專利名稱::以復(fù)制寫(xiě)入請(qǐng)求用于一致性存儲(chǔ)器拷貝的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本揭示內(nèi)容大體有關(guān)于用以由來(lái)源存儲(chǔ)器重新分配存儲(chǔ)器內(nèi)容至目標(biāo)存儲(chǔ)器的方法,且更特別的是,有關(guān)于數(shù)種用于重新分配在集成電路(例如,芯片)外的外部存儲(chǔ)器與位于芯片上的內(nèi)部存儲(chǔ)器之間的存儲(chǔ)器內(nèi)容的方法及設(shè)備。
背景技術(shù):
:手持裝置(例如,智能手機(jī)、多媒體播放器、數(shù)字音頻播放器及其它手持裝置)需要改良電池壽命。手持芯片(位于手持裝置里的集成電路)的低功率操作對(duì)于長(zhǎng)電池壽命是不可或缺的。在這些芯片啟動(dòng)應(yīng)用程序(例如,音頻播放應(yīng)用程序)時(shí),嘗試分配存儲(chǔ)器空間給在內(nèi)部芯片存儲(chǔ)器結(jié)構(gòu)里的應(yīng)用程序。如果內(nèi)部存儲(chǔ)器結(jié)構(gòu)已經(jīng)被其它應(yīng)用程序使用,該芯片分配存儲(chǔ)器給在芯片外的新的應(yīng)用程序存儲(chǔ)器結(jié)構(gòu)。不過(guò),使用外部存儲(chǔ)器會(huì)增加手持裝置的電力消耗而縮短電池壽命。在芯片上的內(nèi)部存儲(chǔ)器有空時(shí),當(dāng)前手持裝置通常無(wú)法讓?xiě)?yīng)用程序由外部存儲(chǔ)器移到內(nèi)部存儲(chǔ)器,因?yàn)榛谲浖拇鎯?chǔ)器分頁(yè)(memorypage)遷移既復(fù)雜又不可靠。因此,即使有內(nèi)部存儲(chǔ)器結(jié)構(gòu)可供使用,該裝置通常繼續(xù)使用外部存儲(chǔ)器。這會(huì)導(dǎo)致不必要的電力消耗。使用外部存儲(chǔ)器需要會(huì)耗費(fèi)額外電力的外部通信針腳。如果手持裝置進(jìn)入低功率模式以及正在執(zhí)行的應(yīng)用程序可駐留在內(nèi)部存儲(chǔ)器中,則需要較少的操作,然而該應(yīng)用程序通常是駐留在外部存儲(chǔ)器。其它系統(tǒng),例如,可能允許正在執(zhí)行的所有應(yīng)用程序由外部存儲(chǔ)器移到內(nèi)部存儲(chǔ)器或者在移動(dòng)最大數(shù)目的應(yīng)用程序的同時(shí)允許某個(gè)最小數(shù)目的應(yīng)用程序從外部存儲(chǔ)器開(kāi)始執(zhí)行。不過(guò),這些通常利用軟件同步與轉(zhuǎn)移操作。此外,在移動(dòng)應(yīng)用程序時(shí),操作系統(tǒng)中止應(yīng)用程序并且將數(shù)據(jù)由外部存儲(chǔ)器移到內(nèi)部存儲(chǔ)器。不過(guò),中止應(yīng)用程序會(huì)中斷使用者服務(wù)因而是不可接受的。企圖使應(yīng)用程序于來(lái)源及目標(biāo)存儲(chǔ)器(例如,外部存儲(chǔ)器與內(nèi)部存儲(chǔ)器)之間移動(dòng)的一個(gè)已知解決方案是以軟件為基礎(chǔ)的。它們通常需要復(fù)雜的軟件同步技術(shù)。以軟件為基礎(chǔ)的轉(zhuǎn)移操作造成應(yīng)用程序在轉(zhuǎn)移應(yīng)用程序期間完全或部份無(wú)法使用。不論持續(xù)時(shí)間多短,這種中斷對(duì)于多媒體應(yīng)用程序(例如,音頻及視訊播放)是不可接受的。使信息由外部存儲(chǔ)器移到內(nèi)部存儲(chǔ)器的已知硬件技術(shù)可包含,例如已知由來(lái)源存儲(chǔ)器拷貝數(shù)據(jù)至目標(biāo)存儲(chǔ)器的“存儲(chǔ)器拷貝引擎”或直接存儲(chǔ)器存取拷貝引擎(DMA引擎)。此類拷貝引擎的問(wèn)題是來(lái)源存儲(chǔ)器中已拷貝至目標(biāo)存儲(chǔ)器之特定位置的任何更新不會(huì)反映至目標(biāo)存儲(chǔ)器。因此,沒(méi)有實(shí)施存儲(chǔ)器一致性。在直接存儲(chǔ)器存取引擎操作時(shí),必需中止該應(yīng)用程序以便中斷服務(wù)。此外,直接存儲(chǔ)器存取引擎通常不曉得虛擬地址。例如在主機(jī)處理器上執(zhí)行的軟件應(yīng)用程序會(huì)告訴直接存儲(chǔ)器存取拷貝引擎要移動(dòng)數(shù)據(jù)。該軟件應(yīng)用程序必須請(qǐng)求虛擬至實(shí)體存儲(chǔ)器的轉(zhuǎn)譯。因此,期望能有一種基于硬件的系統(tǒng)在進(jìn)行由來(lái)源存儲(chǔ)器拷貝或移動(dòng)內(nèi)容至目標(biāo)存儲(chǔ)器時(shí)允許應(yīng)用程序繼續(xù)運(yùn)行。由下文伴隨以下附圖的說(shuō)明可更加明白本發(fā)明,圖中類似的組件用相同的組件符號(hào)表不。圖1的方塊圖根據(jù)陳述于本揭示內(nèi)容之一實(shí)施例圖示集成電路之一部份,其系包含可操作以移動(dòng)存儲(chǔ)器內(nèi)容的邏輯;圖2的流程圖根據(jù)陳述于本揭示內(nèi)容之一實(shí)施例圖示用于重新分配存儲(chǔ)器內(nèi)容之方法的一實(shí)施例;圖3的流程圖根據(jù)陳述于本揭示內(nèi)容之一實(shí)施例圖示用于重新分配存儲(chǔ)器內(nèi)容之方法的一實(shí)施例;圖4的流程圖根據(jù)陳述于本揭示內(nèi)容之一實(shí)施例圖示用于重新分配存儲(chǔ)器內(nèi)容之方法的一實(shí)施例;圖5的方塊圖根據(jù)陳述于本揭示內(nèi)容之一實(shí)施例圖示陳述于第1圖的一拷貝引擎實(shí)施例;圖6的流程圖根據(jù)陳述于本揭示內(nèi)容之一實(shí)施例圖示用于重新分配存儲(chǔ)器內(nèi)容之方法的一實(shí)施例;以及圖7的流程圖根據(jù)陳述于本揭示內(nèi)容之一實(shí)施例圖示用于重新分配存儲(chǔ)器內(nèi)容之方法的一實(shí)施例。具體實(shí)施例方式一般而言,作為存儲(chǔ)器拷貝處理的一部份,存儲(chǔ)器拷貝邏輯可操作成復(fù)制對(duì)于來(lái)源存儲(chǔ)區(qū)的寫(xiě)入請(qǐng)求來(lái)產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求。一致性存儲(chǔ)器拷貝邏輯也可操作成執(zhí)行該復(fù)制寫(xiě)入請(qǐng)求來(lái)確保寫(xiě)入請(qǐng)求更新來(lái)源存儲(chǔ)器的任何內(nèi)容在目標(biāo)存儲(chǔ)器也被更新。在內(nèi)部存儲(chǔ)器正被使用時(shí),則可降低來(lái)源存儲(chǔ)器的功率以節(jié)省電力。因此,一種“硬件存儲(chǔ)器移動(dòng)器”不需要使用任何復(fù)雜的軟件同步以及在存儲(chǔ)器移動(dòng)期間不會(huì)導(dǎo)致任何服務(wù)中斷。該一致性存儲(chǔ)器拷貝邏輯以對(duì)于應(yīng)用軟件及使用者是透明的方式,重新分配例如由外部存儲(chǔ)器至芯片內(nèi)之內(nèi)部存儲(chǔ)器的應(yīng)用存儲(chǔ)器空間。在由來(lái)源區(qū)移動(dòng)數(shù)據(jù)至目標(biāo)區(qū)時(shí)提供一致性的另一實(shí)施例包含使用一致性存儲(chǔ)器拷貝引擎把存儲(chǔ)器中之一區(qū)的內(nèi)容重新分配到同一實(shí)體存儲(chǔ)器(例如,非內(nèi)部及外部存儲(chǔ)器)內(nèi)的新位置(區(qū)域)。這允許重整裝置在正常操作期間可能已支離破碎的存儲(chǔ)區(qū)。熟諳此藝者會(huì)明白其它的優(yōu)點(diǎn)。該一致性存儲(chǔ)器拷貝邏輯可包含輸入請(qǐng)求路由器邏輯(其攔截對(duì)于正被拷貝至目標(biāo)存儲(chǔ)區(qū)之來(lái)源存儲(chǔ)區(qū)的存儲(chǔ)器寫(xiě)入請(qǐng)求),以及拷貝寫(xiě)入控制器邏輯(其可操作成比較被攔截的存儲(chǔ)器寫(xiě)入請(qǐng)求的地址與擱置數(shù)據(jù)隊(duì)列(pendingdataqueue)的項(xiàng)目(entry)以促進(jìn)拷貝一致性)。該擱置數(shù)據(jù)隊(duì)列暫時(shí)儲(chǔ)存待拷貝自外部存儲(chǔ)器來(lái)源區(qū)的數(shù)據(jù)及表示擱置數(shù)據(jù)隊(duì)列中之項(xiàng)目備妥被拷貝至內(nèi)部存儲(chǔ)器的數(shù)據(jù)。擱置數(shù)據(jù)隊(duì)列的每個(gè)項(xiàng)目暫時(shí)儲(chǔ)存由來(lái)源存儲(chǔ)器讀出但是尚未寫(xiě)入目標(biāo)存儲(chǔ)器的數(shù)據(jù)片段。該擱置數(shù)據(jù)隊(duì)列也包含與正被拷貝至目標(biāo)存儲(chǔ)區(qū)之?dāng)?shù)據(jù)片段關(guān)聯(lián)的數(shù)據(jù)。此類關(guān)聯(lián)數(shù)據(jù)可包含來(lái)源及目標(biāo)存儲(chǔ)器中之?dāng)?shù)據(jù)片段的實(shí)體地址,指示此數(shù)據(jù)片段備妥被寫(xiě)入目標(biāo)存儲(chǔ)器的旗標(biāo),以及指示應(yīng)丟棄此數(shù)據(jù)片段的丟棄旗標(biāo)(discardflag)。在另一實(shí)施例中,該一致性存儲(chǔ)器拷貝邏輯包含內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)(internaltranslationlookasidebuffer)用以儲(chǔ)存來(lái)自位在外部或來(lái)源存儲(chǔ)器之外部轉(zhuǎn)譯后備緩沖區(qū)中含有實(shí)體地址的信息之子集(例如,少于所有分頁(yè)的所有轉(zhuǎn)譯)或修改子集。外部TLB經(jīng)修改成可指向內(nèi)部位置而不是外部位置。存儲(chǔ)器控制器區(qū)塊存儲(chǔ)器接口116、110使用內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)136只轉(zhuǎn)譯儲(chǔ)存于內(nèi)部存儲(chǔ)器之分頁(yè)中的實(shí)體地址及虛擬地址。以下也描述包含集成電路的手持裝置與對(duì)應(yīng)方法。圖1顯示手持裝置100(例如但不受限于,智能手機(jī))中之一部份的實(shí)施例,然而圖中不包括標(biāo)準(zhǔn)組件,例如顯示器、無(wú)線蜂巢式子系統(tǒng)、相機(jī)及其它習(xí)知組件。圖1的處理器102(例如,圖形處理單元,例如但不受限于微處理器集成電路10包含為處理器102之內(nèi)部存儲(chǔ)器的目標(biāo)存儲(chǔ)器104。圖中也有例如可為動(dòng)態(tài)RAM(DRAM)的來(lái)源存儲(chǔ)器106與可為SRAM的目標(biāo)存儲(chǔ)器107,不過(guò)應(yīng)了解到也可使用任何適當(dāng)?shù)拇鎯?chǔ)器類型。來(lái)源存儲(chǔ)器106圖示成為在集成電路102外部的外部存儲(chǔ)器。手持裝置100也可包含可在同一個(gè)集成電路或個(gè)別集成電路上的另一處理器108(例如,中央處理核心)。處理器102包含經(jīng)由適當(dāng)總線112與內(nèi)部存儲(chǔ)器104通信的內(nèi)部存儲(chǔ)器接口110,以及也包含經(jīng)由適當(dāng)總線118與外部存儲(chǔ)器106通信的外部存儲(chǔ)器接口116。僅為了圖解說(shuō)明,也在橢圓形內(nèi)顯示經(jīng)由總線112及總線118來(lái)通信的個(gè)別通信路徑。處理器102也包含作為存儲(chǔ)器控制器區(qū)塊122之一部份或個(gè)別區(qū)塊的一致性存儲(chǔ)器拷貝邏輯124、復(fù)用仲裁邏輯(multiplexingarbitrationlogic)126、以及與其它客戶端及處理器102內(nèi)之電路通信的一個(gè)或多個(gè)存儲(chǔ)器客戶端128、130。一致性存儲(chǔ)器拷貝邏輯124為包含分頁(yè)拷貝工作隊(duì)列(pagecopyworkqueue)132、拷貝邏輯134、視需要之內(nèi)部存儲(chǔ)器轉(zhuǎn)譯后備緩沖區(qū)136及拷貝流引擎(copyflowengine)138的硬件邏輯。一致性存儲(chǔ)器拷貝邏輯1經(jīng)由適當(dāng)通信總線140與處理器108通信。如以下的進(jìn)一步描述,處理器108可包含適當(dāng)程序,在執(zhí)行它時(shí)可用作操作成填入(populate)分頁(yè)拷貝工作隊(duì)列132的邏輯142。如本技藝所習(xí)知,復(fù)用及仲裁邏輯1經(jīng)由適當(dāng)總線150、152與各種客戶端接口1至130通信。拷貝引擎134可操作地經(jīng)耦合成可通過(guò)適當(dāng)鏈路巧4與分頁(yè)拷貝工作隊(duì)列132通信,以及通過(guò)適當(dāng)鏈路156與拷貝流引擎138通信??截惲饕?38(例如,狀態(tài)機(jī))通過(guò)適當(dāng)通信鏈路158與內(nèi)部存儲(chǔ)器TLB136通信,以及通過(guò)鏈路160與分頁(yè)拷貝工作隊(duì)列通信。內(nèi)部存儲(chǔ)器TLB136通過(guò)適當(dāng)通信鏈路999與不同的存儲(chǔ)器接口(內(nèi)部或外部的)通fn°也參考圖2,操作時(shí),一致性存儲(chǔ)器拷貝邏輯IM可操作成由一存儲(chǔ)器位置拷貝數(shù)據(jù)至另一存儲(chǔ)器位置(參考區(qū)塊204及206)。僅供舉例說(shuō)明,拷貝可包含依序地用讀取請(qǐng)求182來(lái)讀取來(lái)源存儲(chǔ)區(qū)164的數(shù)據(jù)片段以及用寫(xiě)入請(qǐng)求184寫(xiě)入數(shù)據(jù)片段于目標(biāo)存儲(chǔ)區(qū)180。這圖示于區(qū)塊204、206。一致性存儲(chǔ)器拷貝邏輯124也可操作成復(fù)制來(lái)自存儲(chǔ)器客戶端130-128中任一者的寫(xiě)入請(qǐng)求162,其指示寫(xiě)入來(lái)源存儲(chǔ)器106,例如寫(xiě)入?yún)^(qū)域164(例如,可為存儲(chǔ)器中的分頁(yè)),以產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求170以寫(xiě)入在目標(biāo)存儲(chǔ)器104中的對(duì)應(yīng)目標(biāo)存儲(chǔ)區(qū)180。這圖示于區(qū)塊200。直線163表示讀取。如區(qū)塊202所示,一致性存儲(chǔ)器拷貝邏輯IM也可操作成執(zhí)行復(fù)制寫(xiě)入請(qǐng)求170以由來(lái)源存儲(chǔ)器106拷貝內(nèi)容至目標(biāo)存儲(chǔ)器104中的目標(biāo)存儲(chǔ)區(qū)180。鏈路171表示正常操作期間的讀取及寫(xiě)入。對(duì)于所有的讀取及寫(xiě)入請(qǐng)求,拷貝邏輯134(也被稱作拷貝引擎)可操作虛擬地址(圖1中以VA表示)或者是實(shí)體地址(圖2中以PA表示)。如果存儲(chǔ)器客戶端1至130或分頁(yè)拷貝工作隊(duì)列132提供實(shí)體地址,則拷貝邏輯134使用它們所提供的實(shí)體地址。如果存儲(chǔ)器客戶端1至130或分頁(yè)拷貝工作隊(duì)列132提供虛擬地址,則拷貝邏輯134會(huì)把虛擬地址轉(zhuǎn)譯成實(shí)體地址。熟諳此藝者會(huì)曉得有許多已開(kāi)發(fā)及了解的方法可用于存儲(chǔ)器之虛擬及實(shí)體地址的轉(zhuǎn)譯。此外,直線186顯示可讀取來(lái)源存儲(chǔ)器之信息的存儲(chǔ)器客戶端請(qǐng)求以及來(lái)源存儲(chǔ)器106用直線188顯示作為客戶端讀取之參考依據(jù)的信息。在此實(shí)施例中,一致性存儲(chǔ)器拷貝邏輯124操作成提供存取外部存儲(chǔ)器106的連續(xù)讀取及寫(xiě)入同時(shí)利用它的拷貝功能并且產(chǎn)生及使用復(fù)制寫(xiě)入請(qǐng)求170,從來(lái)源區(qū)拷貝數(shù)據(jù)片段至目標(biāo)存儲(chǔ)區(qū)180,其中這些片段的總合形成一個(gè)或多個(gè)存儲(chǔ)器分頁(yè)。在不必中止正在處理器108上執(zhí)行之應(yīng)用的操作下,可完成此事。為了進(jìn)行存儲(chǔ)器分頁(yè)由來(lái)源存儲(chǔ)器106至目標(biāo)存儲(chǔ)器104的一致性拷貝,一致性存儲(chǔ)器拷貝邏輯1例如經(jīng)由分頁(yè)拷貝工作隊(duì)列132接收來(lái)自正在處理器108上執(zhí)行之應(yīng)用程序的命令。存儲(chǔ)器分頁(yè)可具有虛擬基地址,圖中為對(duì)應(yīng)至實(shí)體基地址PA-I的VA-1?;蛘撸幚砥?08可提供該分頁(yè)的實(shí)體基地址PA-I。處理器108也可提供待通過(guò)分頁(yè)拷貝工作隊(duì)列132來(lái)拷貝的數(shù)個(gè)分頁(yè)的基地址(VA-11,VA-IlL···、等等或PA-Il,PA-111…等等)。對(duì)于每個(gè)待拷貝自來(lái)源存儲(chǔ)器的存儲(chǔ)器分頁(yè),處理器108也提供目標(biāo)存儲(chǔ)區(qū)的基地址,在此一致性拷貝引擎會(huì)拷貝當(dāng)下位于來(lái)源存儲(chǔ)器的數(shù)據(jù)至該基地址。目標(biāo)存儲(chǔ)區(qū)的基地址可為實(shí)體地址(PA-2)或者是虛擬地址(VA-2)。通過(guò)分頁(yè)拷貝工作隊(duì)列132內(nèi)的隊(duì)列或通過(guò)基于緩存器的簡(jiǎn)單命令,也可發(fā)生此命令的接收??截惲饕?38讀取分頁(yè)拷貝工作隊(duì)列132的內(nèi)容以及通過(guò)適當(dāng)總線156發(fā)出拷貝命令給拷貝邏輯134。拷貝邏輯134拷貝基地址為PA-I的分頁(yè)以及將它寫(xiě)到基底為PA-2的分頁(yè)同時(shí)在拷貝操作期間維持一致性。在拷貝操作期間應(yīng)該能以對(duì)于所有客戶端區(qū)塊是透明的方式來(lái)維持一致性。下文有進(jìn)一步的說(shuō)明。除了或視需要地,也可利用可在虛擬地址及實(shí)體地址之間轉(zhuǎn)譯或可在一實(shí)體地址及另一實(shí)體地址之間轉(zhuǎn)譯的內(nèi)部存儲(chǔ)器轉(zhuǎn)譯后備緩沖區(qū)136的維護(hù)(maintenance)。例如,在虛擬至實(shí)體分頁(yè)轉(zhuǎn)譯表儲(chǔ)存于外部或來(lái)源存儲(chǔ)器時(shí)會(huì)遇到困難是因?yàn)橥獠看鎯?chǔ)器必須仍可存取存儲(chǔ)器存取單元用以將虛擬地址轉(zhuǎn)譯成實(shí)體地址,甚至是在要求的分頁(yè)被轉(zhuǎn)移到內(nèi)部存儲(chǔ)器之后。在處于僅內(nèi)部存儲(chǔ)器模式(IMOM)時(shí),利用只針對(duì)內(nèi)部存儲(chǔ)器分頁(yè)的內(nèi)部存儲(chǔ)器TLB的維護(hù)。請(qǐng)參考圖3,維護(hù)內(nèi)部存儲(chǔ)器TLB及降低功率以允許利用內(nèi)部存儲(chǔ)器分頁(yè)的方法,如區(qū)塊300所示,包含由外部存儲(chǔ)器或來(lái)源存儲(chǔ)器轉(zhuǎn)移操作至處理器102的內(nèi)部存儲(chǔ)器。如區(qū)塊302所示,此方法包含在降低來(lái)源存儲(chǔ)器106的功率之前,藉由儲(chǔ)存(例如,拷貝)信息的子集至內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)來(lái)產(chǎn)生該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)136,該信息來(lái)自位于含有實(shí)體地址之外部來(lái)源存儲(chǔ)器的整個(gè)轉(zhuǎn)譯后備緩沖區(qū)。例如,這可用拷貝邏輯134來(lái)完成。只對(duì)于儲(chǔ)存于內(nèi)部存儲(chǔ)器的分頁(yè),存儲(chǔ)器接口110、118用內(nèi)部TLB136轉(zhuǎn)譯來(lái)自存儲(chǔ)器客戶端1至130的地址。這可在執(zhí)行時(shí)當(dāng)作邏輯142之軟件模塊的控制下完成。在進(jìn)入僅內(nèi)部存儲(chǔ)器模式之前,內(nèi)部存儲(chǔ)器TLB可用邏輯142構(gòu)成。內(nèi)部存儲(chǔ)器TLB的實(shí)體大小為內(nèi)部存儲(chǔ)器大小的函數(shù),但是通常比內(nèi)部存儲(chǔ)器的大小小一個(gè)數(shù)量級(jí)。因此,內(nèi)部存儲(chǔ)器TLB136為允許關(guān)電源從而節(jié)省電力可藉由切斷外部存儲(chǔ)器106來(lái)提供的可擴(kuò)展解決方案。如區(qū)塊304所示,該方法則可包含中止外部存儲(chǔ)器106的存取以降低功率。使來(lái)源存儲(chǔ)器處于低功率模式包含使來(lái)源存儲(chǔ)器處于自刷新模式(selfrefreshmode)或?qū)?lái)源存儲(chǔ)器的電源移除。應(yīng)用程序的進(jìn)一步操作是單獨(dú)通過(guò)使用內(nèi)部存儲(chǔ)器104來(lái)完成。內(nèi)部存儲(chǔ)器TLB136可為RAM中與內(nèi)部存儲(chǔ)器104分開(kāi)的一片或?yàn)榇鎯?chǔ)器中之一部份。不過(guò),內(nèi)部存儲(chǔ)器轉(zhuǎn)譯后備緩沖區(qū)136最好在SRAM中以降低整體功率。圖示于區(qū)塊304的中止存取來(lái)源存儲(chǔ)器106允許減少來(lái)源存儲(chǔ)器106的耗電量。然后,使來(lái)源存儲(chǔ)器處于低功率模式,如本技藝所習(xí)知。例如,這可用處理器102或處理器108或其它適當(dāng)電源控制模塊來(lái)完成??蓪?nèi)部存儲(chǔ)器轉(zhuǎn)譯后備緩沖區(qū)136制作成為二元或M元查找樹(shù)(M-arysearchtree)0可用基于硬件的簡(jiǎn)單方法來(lái)查找該結(jié)構(gòu)。M元查找樹(shù)可受益于廣泛的RAM接口而減少查找時(shí)間?;蛘?,IMTLB136可為雜湊表(hashtable)。當(dāng)處于僅內(nèi)部存儲(chǔ)器模式時(shí),內(nèi)部存儲(chǔ)器接口110藉由提供進(jìn)入交易(incomingtransaction)的地址來(lái)發(fā)出查找命令給TLB。內(nèi)部存儲(chǔ)器TLB136查找其內(nèi)容以及送回內(nèi)部存儲(chǔ)器104的對(duì)應(yīng)地址。不過(guò),使用雜湊查找方法有一個(gè)比較不合意的結(jié)果是雜湊表的碰撞(collision)。此種碰撞可能造成長(zhǎng)時(shí)間的查找以及可能使表格的實(shí)際建構(gòu)復(fù)雜化。因此,查找樹(shù)的辦法可能比較合乎需要。再參考一致性存儲(chǔ)器拷貝邏輯124中與其相關(guān)的復(fù)制寫(xiě)入請(qǐng)求及操作,也參考圖4至圖7。圖5顯示拷貝邏輯134的一個(gè)實(shí)施例,其包含來(lái)源讀取控制器500、耦合至該來(lái)源讀取控制器的擱置數(shù)據(jù)隊(duì)列502、也耦合至該擱置數(shù)據(jù)隊(duì)列及該來(lái)源讀取控制器的拷貝讀取控制器504、耦合至該外部來(lái)源存儲(chǔ)器接口116及拷貝寫(xiě)入控制器508和內(nèi)部存儲(chǔ)器接口110的輸入請(qǐng)求路由器506。輸入請(qǐng)求路由器506處理在拷貝邏輯134外的請(qǐng)求,例如來(lái)自在拷貝邏輯134外之存儲(chǔ)器客戶端1至130的讀取或?qū)懭胝?qǐng)求,以及使用適當(dāng)總線(例如,510及512)提供讀取響應(yīng)。擱置數(shù)據(jù)隊(duì)列502包含構(gòu)造成為數(shù)據(jù)隊(duì)列項(xiàng)目516的存儲(chǔ)器。每一數(shù)據(jù)隊(duì)列項(xiàng)目含有表示讀取數(shù)據(jù)518、備妥旗標(biāo)520、來(lái)源地址522、目標(biāo)地址5及讀取丟棄旗標(biāo)526的數(shù)據(jù)。再參考圖1、圖4及圖5,描述一種用于由來(lái)源存儲(chǔ)器(例如,外部存儲(chǔ)器)轉(zhuǎn)移內(nèi)容至目標(biāo)存儲(chǔ)區(qū)或存儲(chǔ)器(例如,內(nèi)部存儲(chǔ)器104)的方法。如區(qū)塊400所示,判斷分頁(yè)拷貝工作隊(duì)列132是否存在任何項(xiàng)目。例如,這可用拷貝流引擎138來(lái)完成。如果分頁(yè)拷貝工作隊(duì)列132中沒(méi)有待完成的項(xiàng)目,處理包含等待由來(lái)源存儲(chǔ)器位置至目標(biāo)位置擱置于分頁(yè)拷貝工作隊(duì)列132的拷貝請(qǐng)求,例如分頁(yè)拷貝請(qǐng)求。這圖示于區(qū)塊402。如果分頁(yè)拷貝工作隊(duì)列132有分頁(yè)拷貝請(qǐng)求,該方法包含用例如退出隊(duì)列(dequeuing)及隊(duì)列的項(xiàng)目來(lái)處理請(qǐng)求。分頁(yè)拷貝工作隊(duì)列132的項(xiàng)目可包含目標(biāo)起始地址、來(lái)源起始地址、分頁(yè)長(zhǎng)度及步距(stride)。這圖示于區(qū)塊404。此處理也可包含設(shè)定目標(biāo)地址計(jì)數(shù)器為起始目標(biāo)地址、設(shè)定來(lái)源地址計(jì)數(shù)器為起始來(lái)源地址、以及設(shè)定最終來(lái)源地址為起始來(lái)源地址加上分頁(yè)長(zhǎng)度。例如,這可藉由讓拷貝流引擎138設(shè)定這些計(jì)數(shù)器的數(shù)值于拷貝讀取控制器504中。除了提及的項(xiàng)目信息以外,若有需要,該項(xiàng)目也可包含每個(gè)讀取請(qǐng)求的讀取數(shù)。如區(qū)塊406所示,該方法包含判斷來(lái)源地址計(jì)數(shù)器是否等于最終來(lái)源地址計(jì)數(shù)器。這可用拷貝讀取控制器504來(lái)完成。如果來(lái)源地址計(jì)數(shù)器等于最終來(lái)源地址,則該方法包含,如區(qū)塊408所示,等待擱置數(shù)據(jù)隊(duì)列變空。一旦空了,該方法包含,如區(qū)塊410所示,更新拷貝工作隊(duì)列132。這可在每當(dāng)拷貝邏輯134通知拷貝完成時(shí),利用拷貝流引擎138來(lái)完成。也如區(qū)塊410所示,該方法包含用目標(biāo)存儲(chǔ)器中之分頁(yè)的新位置更新來(lái)源存儲(chǔ)器的轉(zhuǎn)譯后備緩沖區(qū)。可用拷貝流引擎138或處理器108來(lái)完成此操作。再參考區(qū)塊406,如果來(lái)源地址計(jì)數(shù)器不等于最終來(lái)源地址,則該方法包含判斷擱置數(shù)據(jù)隊(duì)列520是否沒(méi)空位,如區(qū)塊412所示。如果擱置數(shù)據(jù)隊(duì)列502沒(méi)空位,如區(qū)塊414所示,該方法包含等待擱置數(shù)據(jù)隊(duì)列有空位。如果擱置數(shù)據(jù)隊(duì)列502有空位,如區(qū)塊416所示,該方法包含取得擱置數(shù)據(jù)隊(duì)列的下一個(gè)空項(xiàng)目的編號(hào),例如隊(duì)列寫(xiě)入槽編號(hào)(queuewriteslotnumber)0這可由拷貝讀取控制器504來(lái)完成。如區(qū)塊418所示,該方法包含插入擱置數(shù)據(jù)隊(duì)列502的隊(duì)列項(xiàng)目,其以已知的寫(xiě)入槽編號(hào)的數(shù)字標(biāo)示,來(lái)源地址必須等于來(lái)源地址計(jì)數(shù)器,目標(biāo)地址必須等于目標(biāo)地址計(jì)數(shù)器,備妥旗標(biāo)必須設(shè)定成無(wú)效,以及讀取丟棄旗標(biāo)設(shè)定成無(wú)效。如區(qū)塊420所示,該方法包含使來(lái)源地址計(jì)數(shù)器增加步距量以及使目標(biāo)地址計(jì)數(shù)器增加步距量。區(qū)塊418及420可用例如拷貝流引擎138執(zhí)行,且更特別的是用拷貝讀取控制器504。然后,方法繼續(xù)到區(qū)塊406。此外,該方法包含如區(qū)塊422所示,在取得擱置數(shù)據(jù)隊(duì)列的下一個(gè)空項(xiàng)目的編號(hào)(寫(xiě)入槽編號(hào))后,用若干參數(shù)發(fā)出讀取請(qǐng)求給來(lái)源讀取控制器500。這些參數(shù)包含必須等于來(lái)源地址計(jì)數(shù)器的讀取地址、步距及隊(duì)列寫(xiě)入槽編號(hào)。如區(qū)塊4M所示,該方法也包含等待由來(lái)源存儲(chǔ)器106返回的讀取數(shù)據(jù)。例如,這可用來(lái)源讀取控制器500來(lái)完成。如區(qū)塊426所示,該方法包含針對(duì)一隊(duì)列寫(xiě)入槽編號(hào),判斷讀取丟棄旗標(biāo)是否有效。如果該讀取丟棄旗標(biāo)有效,該方法包含設(shè)定對(duì)應(yīng)隊(duì)列寫(xiě)入槽編號(hào)的備妥旗標(biāo)為有效,如區(qū)塊4所示。不過(guò),若是讀取丟棄旗標(biāo)無(wú)效,該方法包含,如區(qū)塊430所示,寫(xiě)入來(lái)自來(lái)源存儲(chǔ)器的讀取數(shù)據(jù)至擱置數(shù)據(jù)隊(duì)列中以隊(duì)列寫(xiě)入槽編號(hào)識(shí)別之項(xiàng)目的讀取數(shù)據(jù)欄。然后,該方法繼續(xù)到區(qū)塊428ο請(qǐng)參考圖6,描述一種在進(jìn)行勾畫(huà)圖4的拷貝操作時(shí)維持來(lái)源及目標(biāo)存儲(chǔ)器中的內(nèi)容一致性的方法。如區(qū)塊600所示,一旦讀取或?qū)懭胝?qǐng)求從拷貝引擎134以外收到后,如區(qū)塊602所示,該方法包含判斷該請(qǐng)求是否為讀取請(qǐng)求。此判斷可用輸入請(qǐng)求路由器506來(lái)完成。若成立,路由該讀取請(qǐng)求至適當(dāng)?shù)拇鎯?chǔ)器接口(內(nèi)部或者外部存儲(chǔ)器接口),如區(qū)塊604所示。在此實(shí)施例中,所有的存儲(chǔ)器存取請(qǐng)求都通過(guò)拷貝邏輯134以及用輸入請(qǐng)求路由器506檢查以及拿地址位置與當(dāng)下正被拷貝的區(qū)域做比較。輸入請(qǐng)求路由器506攔截存儲(chǔ)器寫(xiě)入請(qǐng)求,如區(qū)塊606所示,在此該請(qǐng)求為寫(xiě)入請(qǐng)求。輸入請(qǐng)求路由器506攔截正被拷貝至內(nèi)部目標(biāo)存儲(chǔ)區(qū)之外部存儲(chǔ)區(qū)(或來(lái)源區(qū))的存儲(chǔ)器寫(xiě)入請(qǐng)求。如果該寫(xiě)入請(qǐng)求的目標(biāo)不是當(dāng)下正被拷貝的區(qū)域,則路由該寫(xiě)入請(qǐng)求至適當(dāng)?shù)拇鎯?chǔ)器接口,如區(qū)塊608所示。針對(duì)正從來(lái)源存儲(chǔ)器拷貝至目標(biāo)存儲(chǔ)器的區(qū)域,攔截被攔截的存儲(chǔ)器請(qǐng)求。因此,如果寫(xiě)入請(qǐng)求的目標(biāo)是當(dāng)下正被拷貝的區(qū)域,如區(qū)塊610所示,則該方法包含將寫(xiě)入請(qǐng)求送到來(lái)源存儲(chǔ)器,亦即寫(xiě)入拷貝請(qǐng)求162。同樣地,將原始寫(xiě)入請(qǐng)求送到來(lái)源存儲(chǔ)器。輸入請(qǐng)求路由器506提供數(shù)據(jù)550給指示需要復(fù)制寫(xiě)入請(qǐng)求的拷貝寫(xiě)入控制器508。如區(qū)塊620所示,該方法包含一種飛行中操作一致性檢查(inflightoperationcoherencecheck),其包含判斷寫(xiě)入請(qǐng)求的地址是否等于擱置數(shù)據(jù)隊(duì)列中其備妥旗標(biāo)設(shè)定為零之項(xiàng)目的來(lái)源地址。如果不等于,則該方法包含,如區(qū)塊622所示,用拷貝寫(xiě)入控制器508將寫(xiě)入請(qǐng)求的拷貝送到目標(biāo)存儲(chǔ)器,如170所示。如果寫(xiě)入請(qǐng)求的地址等于擱置數(shù)據(jù)隊(duì)列中之項(xiàng)目的來(lái)源地址,則該方法繼續(xù),如區(qū)塊擬4所示,在此拷貝寫(xiě)入控制器識(shí)別擱置數(shù)據(jù)隊(duì)列502內(nèi)對(duì)應(yīng)至寫(xiě)入操作之來(lái)源地址的項(xiàng)目編號(hào)。如區(qū)塊6所示,該方法包含由拷貝寫(xiě)入控制器508執(zhí)行將寫(xiě)入請(qǐng)求的數(shù)據(jù)寫(xiě)到擱置數(shù)據(jù)隊(duì)列中經(jīng)識(shí)別之項(xiàng)目編號(hào)的讀取數(shù)據(jù)欄。如區(qū)塊6所示,該方法包含拷貝寫(xiě)入邏輯508經(jīng)由擱置數(shù)據(jù)隊(duì)列中經(jīng)識(shí)別之項(xiàng)目編號(hào)的訊號(hào)552來(lái)設(shè)定讀取丟棄旗標(biāo)為有效。同樣地,防止寫(xiě)入來(lái)源讀取控制器寫(xiě)入擱置數(shù)據(jù)隊(duì)列中之該項(xiàng)目。圖7顯示用于移除擱置數(shù)據(jù)隊(duì)列502之?dāng)?shù)據(jù)的一方法實(shí)施例,在此實(shí)施例中,可用拷貝寫(xiě)入邏輯508完成。如區(qū)塊700所示,該方法包含等待直到擱置數(shù)據(jù)隊(duì)列502中之項(xiàng)目有被設(shè)定為有效的備妥旗標(biāo)。如區(qū)塊702所示,該方法包含寫(xiě)入來(lái)自隊(duì)列項(xiàng)目中備妥旗標(biāo)為有效之讀取數(shù)據(jù)欄的數(shù)據(jù)至目標(biāo)存儲(chǔ)器。這可包含,例如目標(biāo)存儲(chǔ)器寫(xiě)入要等于隊(duì)列項(xiàng)目中備妥旗標(biāo)為有效之目標(biāo)地址欄的地址。如區(qū)塊704所示,該方法包含標(biāo)示該項(xiàng)目的備妥旗標(biāo)為無(wú)效以及標(biāo)示該讀取丟棄旗標(biāo)為無(wú)效。然后,每當(dāng)擱置數(shù)據(jù)隊(duì)列中有數(shù)據(jù)時(shí),可重復(fù)該方法。換言之,在正常操作期間,拷貝讀取控制器504發(fā)出讀取給來(lái)源存儲(chǔ)器位置以及使該請(qǐng)求在擱置數(shù)據(jù)隊(duì)列502中排隊(duì),其中將備妥旗標(biāo)520設(shè)定成無(wú)效、讀取丟棄旗標(biāo)5設(shè)定成無(wú)效。外部存儲(chǔ)器106通常有長(zhǎng)延遲(longlatency)0在延遲期后,外部存儲(chǔ)器接口116送回發(fā)出讀取請(qǐng)求的讀取結(jié)果。來(lái)源讀取控制器500寫(xiě)入由擱置數(shù)據(jù)隊(duì)列項(xiàng)目之讀取操作送達(dá)的數(shù)據(jù)以及設(shè)定備妥旗標(biāo)520為有效??截悓?xiě)入控制器508發(fā)現(xiàn)擱置數(shù)據(jù)隊(duì)列中有備妥旗標(biāo)為有效的項(xiàng)目,而因此將在擱置隊(duì)列之項(xiàng)目中的數(shù)據(jù)寫(xiě)入至目標(biāo)存儲(chǔ)器。為了促進(jìn)一致性,拷貝讀取控制器504發(fā)出讀取給來(lái)源存儲(chǔ)器位置以及使該請(qǐng)求在擱置數(shù)據(jù)隊(duì)列520中排隊(duì)。該外部存儲(chǔ)器有長(zhǎng)延遲,如上述。在數(shù)據(jù)從外部存儲(chǔ)器回來(lái)之前,如果有新的寫(xiě)入操作送達(dá)以同一個(gè)存儲(chǔ)器位置為目標(biāo)的輸入請(qǐng)求路由器506,則輸入請(qǐng)求路由器506復(fù)制此寫(xiě)入請(qǐng)求以及送到拷貝寫(xiě)入控制器508作為數(shù)據(jù)550。拷貝寫(xiě)入控制器508查找擱置數(shù)據(jù)隊(duì)列502以及判斷同一個(gè)位置有來(lái)自外部來(lái)源存儲(chǔ)器的擱置讀取。如果擱置數(shù)據(jù)隊(duì)列520中之項(xiàng)目的來(lái)源地址與復(fù)制寫(xiě)入請(qǐng)求的來(lái)源地址匹配,拷貝寫(xiě)入控制器508將復(fù)制寫(xiě)入請(qǐng)求含有的數(shù)據(jù)放入該項(xiàng)目的讀取數(shù)據(jù)欄518以及也設(shè)定擱置數(shù)據(jù)隊(duì)列502中之該項(xiàng)目的讀取丟棄旗標(biāo)5為有效,使得當(dāng)讀取結(jié)果隨后由來(lái)源存儲(chǔ)器送達(dá)時(shí),它不會(huì)觸發(fā)過(guò)時(shí)數(shù)據(jù)(staledata)至擱置數(shù)據(jù)隊(duì)列項(xiàng)目的寫(xiě)入。當(dāng)外部存儲(chǔ)器接口接收因讀取請(qǐng)求而產(chǎn)生的讀取信息時(shí),只有在讀取丟棄旗標(biāo)526為無(wú)效時(shí),將讀取數(shù)據(jù)寫(xiě)入擱置數(shù)據(jù)隊(duì)列。當(dāng)外部存儲(chǔ)器接口接收因讀取請(qǐng)求而產(chǎn)生的讀取信息時(shí),將備妥旗標(biāo)設(shè)定成有效,而不管讀取丟棄旗標(biāo)526的數(shù)值為何??截悓?xiě)入控制器發(fā)現(xiàn)擱置數(shù)據(jù)隊(duì)列中備妥旗標(biāo)設(shè)定成有效的項(xiàng)目以及寫(xiě)入來(lái)自該擱置數(shù)據(jù)隊(duì)列項(xiàng)目(其備妥旗標(biāo)520為有效)的數(shù)據(jù),已確保不會(huì)有來(lái)自來(lái)源讀取控制器的過(guò)時(shí)數(shù)據(jù)覆寫(xiě)擱置數(shù)據(jù)隊(duì)列520的任何復(fù)制數(shù)據(jù)。此時(shí),當(dāng)前的項(xiàng)目不持有可被拷貝讀取控制器504取得再利用的數(shù)據(jù)。同樣地,該拷貝寫(xiě)入邏輯可操作成比較被攔截之存儲(chǔ)器寫(xiě)入請(qǐng)求的地址與擱置數(shù)據(jù)隊(duì)列中所有項(xiàng)目的地址以促進(jìn)拷貝一致性。擱置數(shù)據(jù)隊(duì)列520暫時(shí)儲(chǔ)存拷貝自外部或來(lái)源存儲(chǔ)區(qū)的數(shù)據(jù)及表示項(xiàng)目直到拷貝寫(xiě)入邏輯508能夠由擱置數(shù)據(jù)隊(duì)列520拷貝數(shù)據(jù)至目標(biāo)存儲(chǔ)區(qū)時(shí)的數(shù)據(jù)。與使用擱置數(shù)據(jù)隊(duì)列502作為一種緩沖器以暫時(shí)儲(chǔ)存待拷貝數(shù)據(jù)的方式相反,可使用將數(shù)據(jù)立即寫(xiě)入目標(biāo)存儲(chǔ)器而不需暫時(shí)儲(chǔ)存于擱置數(shù)據(jù)隊(duì)列的方式,但是仍然使用讀取丟棄旗標(biāo)。在可促進(jìn)一致性的替代方法中,拷貝讀取控制器504發(fā)出讀取給來(lái)源存儲(chǔ)器位置以及使該請(qǐng)求在擱置數(shù)據(jù)隊(duì)列520中排隊(duì)。該外部存儲(chǔ)器有長(zhǎng)延遲,如上述。在數(shù)據(jù)從外部存儲(chǔ)器回來(lái)之前,如果有新的寫(xiě)入操作送達(dá)以同一個(gè)存儲(chǔ)器位置為目標(biāo)的輸入請(qǐng)求路由器506,輸入請(qǐng)求路由器506復(fù)制此寫(xiě)入請(qǐng)求以及送到拷貝寫(xiě)入控制器508作為數(shù)據(jù)550以及送到顯示于162的來(lái)源存儲(chǔ)器接口。然后,拷貝寫(xiě)入控制器508送出復(fù)制寫(xiě)入170給目標(biāo)或內(nèi)部存儲(chǔ)器接口110??截悓?xiě)入控制器508也查找擱置數(shù)據(jù)隊(duì)列502以及判斷同一個(gè)位置有來(lái)自外部來(lái)源存儲(chǔ)器的擱置讀取??截悓?xiě)入控制器508設(shè)定擱置數(shù)據(jù)隊(duì)列502中之該項(xiàng)目的讀取丟棄旗標(biāo)5為有效,使得當(dāng)讀取結(jié)果隨后從來(lái)源存儲(chǔ)器進(jìn)來(lái)時(shí),它不會(huì)觸發(fā)將過(guò)時(shí)數(shù)據(jù)寫(xiě)入至目標(biāo)存儲(chǔ)器104的動(dòng)作。當(dāng)外部存儲(chǔ)器接口接收因讀取請(qǐng)求而產(chǎn)生的讀取信息時(shí),將備妥旗標(biāo)設(shè)定成有效,而不管讀取丟棄旗標(biāo)526的數(shù)值為何。拷貝寫(xiě)入控制器發(fā)現(xiàn)擱置數(shù)據(jù)隊(duì)列中備妥旗標(biāo)設(shè)定成有效以及讀取丟棄旗標(biāo)也設(shè)定成有效的項(xiàng)目。這意謂已經(jīng)完成內(nèi)部目標(biāo)存儲(chǔ)器的復(fù)制寫(xiě)入,因此擱置數(shù)據(jù)隊(duì)列中之項(xiàng)目的數(shù)據(jù)是過(guò)時(shí)的。因此,拷貝寫(xiě)入控制器508丟棄擱置數(shù)據(jù)隊(duì)列中之該項(xiàng)目的數(shù)據(jù)以及重設(shè)備妥及讀取丟棄旗標(biāo)520及5。此時(shí),當(dāng)前項(xiàng)目不持有可被拷貝讀取控制器504取得再利用的數(shù)據(jù)。同樣地,該拷貝寫(xiě)入邏輯可操作成比較被攔截之存儲(chǔ)器寫(xiě)入請(qǐng)求的地址與擱置數(shù)據(jù)隊(duì)列中所有項(xiàng)目的地址以促進(jìn)拷貝一致性。擱置數(shù)據(jù)隊(duì)列520暫時(shí)儲(chǔ)存拷貝自外部或來(lái)源存儲(chǔ)區(qū)的數(shù)據(jù)以及表示項(xiàng)目直到拷貝寫(xiě)入邏輯508能夠由擱置數(shù)據(jù)隊(duì)列520拷貝數(shù)據(jù)至目標(biāo)存儲(chǔ)區(qū)時(shí)或者是能夠丟棄表示讀取丟棄旗標(biāo)526已設(shè)定而且備妥旗標(biāo)520也已設(shè)定之項(xiàng)目的數(shù)據(jù)時(shí)的數(shù)據(jù)。如上述,拷貝寫(xiě)入邏輯508可操作成從該擱置數(shù)據(jù)隊(duì)列判斷對(duì)于來(lái)源存儲(chǔ)器是否有同一地址對(duì)應(yīng)至基于產(chǎn)生該復(fù)制寫(xiě)入請(qǐng)求步驟之寫(xiě)入請(qǐng)求的一擱置讀取請(qǐng)求,若成立,設(shè)定該項(xiàng)目的丟棄旗標(biāo)為有效。該一致性存儲(chǔ)器拷貝邏輯可操作成立即執(zhí)行復(fù)制寫(xiě)入或拷貝寫(xiě)入邏輯將來(lái)自復(fù)制寫(xiě)入的數(shù)據(jù)插入擱置數(shù)據(jù)隊(duì)列。此外,在拷貝數(shù)據(jù)時(shí),拷貝包含在以下兩種情況時(shí)從擱置數(shù)據(jù)隊(duì)列讀出項(xiàng)目(a)在備妥旗標(biāo)有效、丟棄旗標(biāo)無(wú)效以及寫(xiě)入到目標(biāo)存儲(chǔ)區(qū)時(shí),或者是(b)在備妥旗標(biāo)有效、讀取丟棄旗標(biāo)有效時(shí)以及其中復(fù)制寫(xiě)入的內(nèi)容已預(yù)先置入擱置數(shù)據(jù)隊(duì)列。也可使用僅部份內(nèi)部存儲(chǔ)器模式(partialinternalmemoryonlymode),在此例如軟件應(yīng)用程序可能因?yàn)閮?nèi)部存儲(chǔ)器太小而無(wú)法移動(dòng)所有需要進(jìn)入內(nèi)部存儲(chǔ)器的分頁(yè)。就此情形而言,藉由把使用最頻繁的分頁(yè)移入內(nèi)部存儲(chǔ)器仍可減少外部存儲(chǔ)器使用率。在處于此僅部份內(nèi)部存儲(chǔ)器模式時(shí),把經(jīng)常被處理器108存取的存儲(chǔ)器分頁(yè)放入內(nèi)部存儲(chǔ)器。這可減少處理器的存取延遲同時(shí)減少存取外部存儲(chǔ)器的次數(shù)。同樣地,該方法可包含判斷哪些存儲(chǔ)器分頁(yè)比其它分頁(yè)被處理器更頻繁地存取,例如,這可使用在處理器108上執(zhí)行的軟件以及拷貝使用更頻繁的存儲(chǔ)器分頁(yè)至內(nèi)部目標(biāo)存儲(chǔ)器來(lái)完成。此外,該方法包含藉由儲(chǔ)存來(lái)自位于外部來(lái)源存儲(chǔ)器之外部轉(zhuǎn)譯后備緩沖區(qū)的信息之子集來(lái)產(chǎn)生內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)以及在查找外部TLB之前查找內(nèi)部TLB來(lái)決定地址轉(zhuǎn)譯??捎脭?shù)種方法完成虛擬至實(shí)體的轉(zhuǎn)譯。選項(xiàng)之一是使用用于地址轉(zhuǎn)譯的外部存儲(chǔ)器分頁(yè)表。另一選項(xiàng)是使用內(nèi)部存儲(chǔ)器轉(zhuǎn)譯后備緩沖區(qū)與外部存儲(chǔ)器分頁(yè)表兩者。在使用此一選項(xiàng)時(shí),首先查找內(nèi)部存儲(chǔ)器TLB。如果內(nèi)部存儲(chǔ)器TLB不包含需要的轉(zhuǎn)譯,則用外部存儲(chǔ)器分頁(yè)表來(lái)進(jìn)行查找。在CPU上執(zhí)行的軟件模塊可用基于用例(usecase)的先驗(yàn)方式(apriorimanner)來(lái)識(shí)別內(nèi)部存儲(chǔ)器中為合適儲(chǔ)存候選者的分頁(yè)?;蛘?,動(dòng)態(tài)分頁(yè)歷史緩沖器(未圖示)可放入存儲(chǔ)器控制器區(qū)塊122以識(shí)別及計(jì)數(shù)在給定時(shí)段內(nèi)最常用的存儲(chǔ)器分頁(yè)。然后,可用邏輯或執(zhí)行中的軟件模塊142以用分頁(yè)歷史緩沖器的內(nèi)容來(lái)發(fā)出拷貝操作給一致性存儲(chǔ)器拷貝邏輯。如果分頁(yè)拷貝工作隊(duì)列為循環(huán)緩沖器(circularbuffer)會(huì)是有用的,這使得若需要的話可使用批次操作。在通知軟件層之前,該一致性存儲(chǔ)器拷貝邏輯也可以順序方式拷貝數(shù)個(gè)分頁(yè)。若需要,也可并行進(jìn)行拷貝多個(gè)分頁(yè)以及取決于應(yīng)用程序來(lái)執(zhí)行叢發(fā)讀取(burstreads)或叢發(fā)寫(xiě)入(burstwrites)。如前述,用于重新分配存儲(chǔ)器內(nèi)容之方法包含下列步驟提供存取外部來(lái)源存儲(chǔ)區(qū)的連續(xù)讀取及寫(xiě)入,同時(shí)拷貝外部來(lái)源存儲(chǔ)區(qū)的數(shù)據(jù),例如,此系藉由繼續(xù)運(yùn)行引起外部來(lái)源存儲(chǔ)區(qū)之存儲(chǔ)器寫(xiě)入的當(dāng)前應(yīng)用程序。當(dāng)應(yīng)用程序正在運(yùn)行時(shí),該方法包含下列步驟復(fù)制對(duì)于外部來(lái)源存儲(chǔ)區(qū)的寫(xiě)入請(qǐng)求以產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求。該方法包含下列步驟執(zhí)行該復(fù)制寫(xiě)入請(qǐng)求以從該外部來(lái)源存儲(chǔ)區(qū)拷貝內(nèi)容至該內(nèi)部目標(biāo)存儲(chǔ)區(qū)。該方法也包含下列步驟降低包含該外部存儲(chǔ)區(qū)的外部存儲(chǔ)器的功率以響應(yīng)拷貝內(nèi)容至該內(nèi)部目標(biāo)存儲(chǔ)區(qū)的步驟。本技藝一般技術(shù)人員會(huì)了解,盡管此時(shí)以前描述了手持或可攜式裝置的示范具體實(shí)施例,然而本發(fā)明的具體實(shí)施例可包括例如筆記本計(jì)算機(jī)、游戲機(jī)、其它可攜式裝置(例如,可攜式游戲系統(tǒng))、桌上計(jì)算機(jī)、工作站及服務(wù)器計(jì)算機(jī)等等。此外,已知集成電路設(shè)計(jì)系統(tǒng)(例如,工作站)是基于儲(chǔ)存于計(jì)算機(jī)可讀取存儲(chǔ)器(例如但不受限于,CDROM、RAM、其它形式的ROM、硬盤、分布式存儲(chǔ)器等等)上的可執(zhí)行指令而制作集成電路。可用任何適當(dāng)語(yǔ)言表示這些指令,例如但不受限于硬件描述符語(yǔ)言(hardwaredescriptorlanguage)或其它適當(dāng)語(yǔ)言。同樣地,用此類系統(tǒng)也可將描述于本文的邏輯(例如,電路)制作成集成電路。例如,可制作集成電路用于使用儲(chǔ)存于計(jì)算機(jī)可讀取媒體上的指令的顯示器,在執(zhí)行這些指令時(shí)造成集成電路設(shè)計(jì)系統(tǒng)所制成的集成電路可操作成向圖像來(lái)源提供者指示廣色域RGB指示信息及用于待接收于多刺激顏色空間的廣色域RGB顏色數(shù)據(jù)的廣色域顏色格式定義信息;從該圖像來(lái)源提供者接收廣色域確認(rèn)信息;以及,顯示因應(yīng)廣色域RGB指示信息及格式定義信息而收到的廣色域RGB顏色數(shù)據(jù)。也可適當(dāng)?shù)禺a(chǎn)生具有可執(zhí)行其它本文所述操作之邏輯的集成電路。已描述一種用以提供存儲(chǔ)器內(nèi)容一致性的新型DMA邏輯及方法作為存儲(chǔ)器拷貝操作之一部份。以上提出的詳細(xì)說(shuō)明及描述于本文的實(shí)施例僅供圖解說(shuō)明而非限制。因此,希望本發(fā)明涵蓋落入以上所揭示的基本原理及以下權(quán)利要求書(shū)的精神及范疇內(nèi)的任何及所有修改、變異或等價(jià)陳述。權(quán)利要求1.一種用于重新分配存儲(chǔ)器內(nèi)容的方法,其包含下列步驟從一存儲(chǔ)器位置拷貝數(shù)據(jù)至另一存儲(chǔ)器位置;復(fù)制對(duì)于來(lái)源存儲(chǔ)區(qū)的寫(xiě)入請(qǐng)求以產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求;以及執(zhí)行該復(fù)制寫(xiě)入請(qǐng)求以從該來(lái)源存儲(chǔ)區(qū)拷貝內(nèi)容至該目標(biāo)存儲(chǔ)區(qū)。2.如權(quán)利要求1所述的方法,其中該來(lái)源存儲(chǔ)器為外部存儲(chǔ)器,以及其中該目標(biāo)存儲(chǔ)器為內(nèi)部存儲(chǔ)器,以及其中該方法包含下列步驟通過(guò)儲(chǔ)存信息的子集或修改子集至內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)來(lái)產(chǎn)生該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū),該信息來(lái)自位于含有數(shù)個(gè)實(shí)體地址的該外部存儲(chǔ)器的外部轉(zhuǎn)譯后備緩沖區(qū);對(duì)于該目標(biāo)存儲(chǔ)區(qū)的地址轉(zhuǎn)譯,只使用該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū);中止對(duì)于該來(lái)源存儲(chǔ)器的存??;以及通過(guò)使該來(lái)源存儲(chǔ)器處于低功率模式來(lái)減少該來(lái)源存儲(chǔ)器的耗電量。3.如權(quán)利要求2所述的方法,其中使該來(lái)源存儲(chǔ)器處于低功率模式的步驟包含下列步驟使該來(lái)源存儲(chǔ)器處于自刷新模式或?qū)⒃搧?lái)源存儲(chǔ)器的電源移除。4.如權(quán)利要求1所述的方法,其包含下列步驟判斷哪些存儲(chǔ)器分頁(yè)比其它分頁(yè)被處理器更頻繁地存?。豢截愡@些使用更頻繁的存儲(chǔ)器分頁(yè)至內(nèi)部目標(biāo)存儲(chǔ)器;以及通過(guò)儲(chǔ)存信息的子集或修改子集來(lái)產(chǎn)生內(nèi)部轉(zhuǎn)譯后備緩沖區(qū),該信息來(lái)自位于含有數(shù)個(gè)實(shí)體地址的該外部來(lái)源存儲(chǔ)器的外部轉(zhuǎn)譯后備緩沖區(qū);在查找該外部轉(zhuǎn)譯后備緩沖區(qū)之前,查找該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)以決定地址轉(zhuǎn)譯。5.如權(quán)利要求1所述的方法,其包含下列步驟判斷對(duì)于該來(lái)源存儲(chǔ)器是否有同一地址對(duì)應(yīng)至基于產(chǎn)生該復(fù)制寫(xiě)入請(qǐng)求步驟的寫(xiě)入請(qǐng)求的擱置讀取請(qǐng)求;以及若成立,設(shè)定該項(xiàng)目的丟棄旗標(biāo)為有效。6.如權(quán)利要求5所述的方法,其包含下列步驟立即執(zhí)行該復(fù)制寫(xiě)入。7.如權(quán)利要求5所述的方法,其包含下列步驟將來(lái)自該復(fù)制寫(xiě)入的數(shù)據(jù)插入該擱置數(shù)據(jù)隊(duì)列。8.如權(quán)利要求1所述的方法,其中該拷貝步驟包含下列步驟從一擱置數(shù)據(jù)隊(duì)列讀取一項(xiàng)目,(a)在備妥旗標(biāo)有效、丟棄旗標(biāo)無(wú)效以及寫(xiě)入到該目標(biāo)存儲(chǔ)區(qū)時(shí),或者是(b)在該備妥旗標(biāo)有效、讀取丟棄旗標(biāo)有效且其中該復(fù)制寫(xiě)入的內(nèi)容已預(yù)先置入該擱置數(shù)據(jù)隊(duì)列時(shí)。9.一種用于重新分配存儲(chǔ)器內(nèi)容的方法,其包含下列步驟通過(guò)以下步驟來(lái)提供存取外部來(lái)源存儲(chǔ)區(qū)的連續(xù)讀取及寫(xiě)入以及從該外部來(lái)源存儲(chǔ)區(qū)拷貝數(shù)據(jù)至內(nèi)部目標(biāo)存儲(chǔ)區(qū)繼續(xù)運(yùn)行對(duì)于該外部來(lái)源存儲(chǔ)區(qū)引起存儲(chǔ)器寫(xiě)入的當(dāng)前應(yīng)用程序;復(fù)制對(duì)于該來(lái)源存儲(chǔ)區(qū)的該寫(xiě)入請(qǐng)求以產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求;以及執(zhí)行該復(fù)制寫(xiě)入請(qǐng)求以確保來(lái)自該來(lái)源存儲(chǔ)區(qū)的內(nèi)容與該目標(biāo)存儲(chǔ)區(qū)的內(nèi)容相同;以及降低含有該外部存儲(chǔ)區(qū)的該外部存儲(chǔ)器的功率以響應(yīng)拷貝內(nèi)容至該內(nèi)部目標(biāo)存儲(chǔ)區(qū)的步驟。10.如權(quán)利要求9所述的方法,其包含下列步驟在減少該外部存儲(chǔ)器的耗電量之前,通過(guò)儲(chǔ)存整個(gè)轉(zhuǎn)譯后備緩沖區(qū)信息的子集或修改子集至內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)來(lái)產(chǎn)生該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū),該整個(gè)轉(zhuǎn)譯后備緩沖區(qū)信息位于含有數(shù)個(gè)實(shí)體地址的該外部來(lái)源存儲(chǔ)器中。11.如權(quán)利要求10所述的方法,其中在降低該外部存儲(chǔ)器的功率之前產(chǎn)生該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)的步驟包含下列步驟儲(chǔ)存該實(shí)體地址的子集作為硬件查找樹(shù)或雜湊表的至少“"者O12.一種用于重新分配存儲(chǔ)器內(nèi)容的方法,其包含下列步驟從外部存儲(chǔ)器轉(zhuǎn)移操作至芯片的內(nèi)部存儲(chǔ)器;在降低該外部存儲(chǔ)器的功率之前,通過(guò)儲(chǔ)存信息的子集或修改子集至內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)來(lái)產(chǎn)生該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū),該信息在位于含有數(shù)個(gè)實(shí)體地址的該外部來(lái)源存儲(chǔ)器的整個(gè)轉(zhuǎn)譯后備緩沖區(qū)(TLB)中;以及降低該外部存儲(chǔ)器的功率。13.如權(quán)利要求12所述的方法,其中在降低該外部存儲(chǔ)器的功率之前產(chǎn)生該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)的步驟包含下列步驟儲(chǔ)存該實(shí)體地址的子集或修改子集作為硬件查找樹(shù)或雜湊表中的至少一者。14.一種集成電路,其包含一致性存儲(chǔ)器拷貝邏輯,其可操作成從一來(lái)源存儲(chǔ)區(qū)拷貝數(shù)據(jù)至一目標(biāo)存儲(chǔ)區(qū),以及可操作成復(fù)制進(jìn)入寫(xiě)入請(qǐng)求至來(lái)源存儲(chǔ)區(qū)以產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求;以及執(zhí)行該復(fù)制寫(xiě)入請(qǐng)求以使該來(lái)源存儲(chǔ)區(qū)及該目標(biāo)存儲(chǔ)區(qū)的內(nèi)容同步。15.如權(quán)利要求14所述的集成電路,其中該一致性存儲(chǔ)器拷貝邏輯包含輸入請(qǐng)求路由器邏輯與拷貝寫(xiě)入邏輯,該輸入請(qǐng)求路由器邏輯可操作成攔截對(duì)于來(lái)源存儲(chǔ)器且正被拷貝至該目標(biāo)存儲(chǔ)器的目標(biāo)存儲(chǔ)區(qū)的存儲(chǔ)器寫(xiě)入請(qǐng)求,以及該拷貝寫(xiě)入邏輯可操作成比較被攔截的該存儲(chǔ)器寫(xiě)入請(qǐng)求的地址與在擱置數(shù)據(jù)隊(duì)列中的項(xiàng)目以促進(jìn)拷貝一致性。16.如權(quán)利要求15所述的集成電路,其中該擱置數(shù)據(jù)隊(duì)列暫時(shí)儲(chǔ)存待拷貝自該來(lái)源存儲(chǔ)區(qū)的數(shù)據(jù)以及至少暫時(shí)儲(chǔ)存表示該擱置數(shù)據(jù)隊(duì)列中的項(xiàng)目備妥被拷貝至該目標(biāo)存儲(chǔ)器的數(shù)據(jù)及表示項(xiàng)目已被拷貝至該目標(biāo)存儲(chǔ)區(qū)的數(shù)據(jù)。17.如權(quán)利要求14所述的集成電路,其包含儲(chǔ)存信息的子集或修改子集的內(nèi)部轉(zhuǎn)譯后備緩沖區(qū),該信息來(lái)自位于含有數(shù)個(gè)實(shí)體地址的該外部來(lái)源存儲(chǔ)器的外部轉(zhuǎn)譯后備緩沖區(qū),以及包含使用該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)轉(zhuǎn)譯只儲(chǔ)存于該內(nèi)部存儲(chǔ)器的分頁(yè)的實(shí)體地址及虛擬地址的存儲(chǔ)器接口邏輯。18.如權(quán)利要求14所述的集成電路,其中該一致性存儲(chǔ)器拷貝邏輯包含含有擱置數(shù)據(jù)隊(duì)列的拷貝邏輯、可操作地耦合至該擱置數(shù)據(jù)隊(duì)列的拷貝寫(xiě)入邏輯,其中該拷貝寫(xiě)入邏輯可操作成從該擱置數(shù)據(jù)隊(duì)列判斷對(duì)于來(lái)源存儲(chǔ)器是否有同一地址對(duì)應(yīng)至基于產(chǎn)生該復(fù)制寫(xiě)入請(qǐng)求步驟的寫(xiě)入請(qǐng)求的擱置讀取請(qǐng)求;以及若成立,設(shè)定該項(xiàng)目的丟棄旗標(biāo)為有效。19.如權(quán)利要求18所述的集成電路,其中該一致性存儲(chǔ)器拷貝邏輯可操作成立即執(zhí)行該復(fù)制寫(xiě)入。20.如權(quán)利要求18所述的集成電路,其包含可操作成將來(lái)自該復(fù)制寫(xiě)入的數(shù)據(jù)插入該擱置數(shù)據(jù)隊(duì)列的拷貝寫(xiě)入邏輯。21.如權(quán)利要求14所述的集成電路,其中該拷貝步驟包含下列步驟從一擱置數(shù)據(jù)隊(duì)列讀取一項(xiàng)目,(a)在備妥旗標(biāo)為有效、丟棄旗標(biāo)無(wú)效以及寫(xiě)入到該目標(biāo)存儲(chǔ)區(qū)時(shí),或者是(b)在該備妥旗標(biāo)有效、讀取丟棄旗標(biāo)有效且其中該復(fù)制寫(xiě)入的內(nèi)容已預(yù)先置入該擱置數(shù)據(jù)隊(duì)列時(shí)。22.一種包含如權(quán)利要求14所述的集成電路的裝置。23.一種裝置,其包含集成電路,包含內(nèi)部存儲(chǔ)器于其上;外部存儲(chǔ)器,位在該集成電路外;邏輯,其可操作成從該外部存儲(chǔ)器轉(zhuǎn)移操作至該內(nèi)部存儲(chǔ)器,以及在降低該外部存儲(chǔ)器的功率之前,可操作成通過(guò)儲(chǔ)存信息的子集或修改子集至內(nèi)部轉(zhuǎn)譯后備緩沖區(qū)來(lái)產(chǎn)生該內(nèi)部轉(zhuǎn)譯后備緩沖區(qū),該信息在位于含有數(shù)個(gè)實(shí)體地址的該外部來(lái)源存儲(chǔ)器的整個(gè)轉(zhuǎn)譯后備緩沖區(qū)中;以及,可操作成降低該外部存儲(chǔ)器的功率。24.如權(quán)利要求23所述的裝置,其中該邏輯包含含有輸入請(qǐng)求路由器邏輯及拷貝寫(xiě)入邏輯的一致性存儲(chǔ)器拷貝邏輯,該輸入請(qǐng)求路由器邏輯可操作成攔截對(duì)于來(lái)源存儲(chǔ)器且正被拷貝至該目標(biāo)存儲(chǔ)區(qū)的存儲(chǔ)器寫(xiě)入請(qǐng)求,以及該拷貝寫(xiě)入邏輯可操作成比較被攔截的該存儲(chǔ)器寫(xiě)入請(qǐng)求的地址與擱置數(shù)據(jù)隊(duì)列中的項(xiàng)目以促進(jìn)拷貝一致性。25.如權(quán)利要求M所述的裝置,其中該擱置數(shù)據(jù)隊(duì)列暫時(shí)儲(chǔ)存待拷貝自該來(lái)源存儲(chǔ)區(qū)的數(shù)據(jù)以及至少暫時(shí)儲(chǔ)存表示該擱置數(shù)據(jù)隊(duì)列中的項(xiàng)目備妥被拷貝至該目標(biāo)存儲(chǔ)器的數(shù)據(jù)及表示項(xiàng)目已被拷貝至該目標(biāo)存儲(chǔ)區(qū)的數(shù)據(jù)。26.如權(quán)利要求M所述的裝置,其中該拷貝寫(xiě)入邏輯可操作成判斷對(duì)于該來(lái)源存儲(chǔ)器是否有同一地址對(duì)應(yīng)至基于產(chǎn)生該復(fù)制寫(xiě)入請(qǐng)求步驟的寫(xiě)入請(qǐng)求的擱置讀取請(qǐng)求;以及若成立,設(shè)定該項(xiàng)目的丟棄旗標(biāo)為有效。27.一種計(jì)算機(jī)可讀取媒體,其包含儲(chǔ)存于其上的數(shù)個(gè)可執(zhí)行指令,在執(zhí)行這些指令時(shí)造成集成電路設(shè)計(jì)系統(tǒng)所制成的集成電路可操作成通過(guò)下列步驟來(lái)重新分配存儲(chǔ)器內(nèi)容從一存儲(chǔ)器位置拷貝數(shù)據(jù)至另一存儲(chǔ)器位置;復(fù)制對(duì)于來(lái)源存儲(chǔ)區(qū)的寫(xiě)入請(qǐng)求以產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求;以及執(zhí)行該復(fù)制寫(xiě)入請(qǐng)求以從該來(lái)源存儲(chǔ)區(qū)拷貝內(nèi)容至該目標(biāo)存儲(chǔ)區(qū)。28.如權(quán)利要求27所述的計(jì)算機(jī)可讀取媒體,其中這些可執(zhí)行指令為硬件描述符語(yǔ)言指令。全文摘要一致性存儲(chǔ)器拷貝邏輯可操作成從來(lái)源存儲(chǔ)器位置拷貝數(shù)據(jù)至目標(biāo)存儲(chǔ)器位置以及復(fù)制對(duì)于來(lái)源存儲(chǔ)區(qū)的寫(xiě)入請(qǐng)求以產(chǎn)生復(fù)制寫(xiě)入請(qǐng)求。一致性存儲(chǔ)器拷貝邏輯也可操作成執(zhí)行復(fù)制寫(xiě)入請(qǐng)求以從外部存儲(chǔ)區(qū)拷貝內(nèi)容至目標(biāo)存儲(chǔ)區(qū)。在內(nèi)部存儲(chǔ)器正被使用時(shí),則可降低來(lái)源存儲(chǔ)器的功率以節(jié)省電力。因此,一種“硬件存儲(chǔ)器移動(dòng)器”不需要使用任何復(fù)雜的軟件同步并且在存儲(chǔ)器移動(dòng)期間不會(huì)導(dǎo)致任何服務(wù)中斷。該一致性存儲(chǔ)器拷貝邏輯以對(duì)于應(yīng)用程序軟件及使用者是透明的方式,重新分配例如由外部存儲(chǔ)器至芯片內(nèi)之內(nèi)部存儲(chǔ)器的應(yīng)用存儲(chǔ)器空間。本發(fā)明也提出數(shù)種對(duì)應(yīng)的方法。文檔編號(hào)G06F12/02GK102326153SQ200980157214公開(kāi)日2012年1月18日申請(qǐng)日期2009年12月16日優(yōu)先權(quán)日2008年12月19日發(fā)明者S·M·加德拉布申請(qǐng)人:Ati技術(shù)無(wú)限責(zé)任公司