址并識別在對應于所指定的地址的適當MM的對應條目/位置所必需的電路。換句話說,MCU(106A-106D)執(zhí)行將地址映射到MMS內(nèi)的位置的映射操作。映射操作可以被稱為尋址方案。
[0018]在本發(fā)明的一個或多個實施例中,MCU經(jīng)由一個或多個鏈路(例如,鏈路A(110A)、鏈路B(110B)、鏈路C(110C)、鏈路D(110D))操作地連接到一個或多個緩沖區(qū)芯片(例如,緩沖區(qū)芯片A (108A)、緩沖區(qū)芯片B (108B)、緩沖區(qū)芯片C (108C)、緩沖區(qū)芯片D (108D))。在本發(fā)明的一個或多個實施例中,緩沖區(qū)芯片隨后經(jīng)由一個或多個通道(例如,通道A(114A)、通道 B(114B)、通道 C(114C)、通道 D(114D)、通道 E(114E)、通道 F(114F)、通道G(114G)、通道H(114H))連接到一組兩個MM。作為替代,在本發(fā)明的一個或多個實施例中,MCU可以直接連接到麗。
[0019]在本發(fā)明的一個或多個實施例中,MCU(106A-106D)能夠執(zhí)行不同類型的映射操作。換句話說,MCU(106A-106D)被配置為處理多于一種類型的尋址方案。由MCU接收的訪問請求可以指示要使用的尋址方案的類型(下面將討論)。例如,標簽可以被用來指示尋址方案的類型。如果附連到訪問請求的標簽指示第一尋址方案,則MCU可以根據(jù)第一尋址方案解釋訪問請求中的地址。如果附連到訪問請求的標簽指示第二尋址方案,則MCU可以根據(jù)與第一尋址方案不同的第二尋址方案解釋訪問請求中的地址。例如,第一尋址方案可以是16路交織映射,而第二尋址方案可以是15路交織映射。許多其它尋址方案也是可能的。
[0020]在本發(fā)明的一個或多個實施例中,可能變得有必要重定位MM中的內(nèi)容。例如,如果MM被預測要失效,或者已經(jīng)失效但失效的本質(zhì)仍然允許經(jīng)由糾錯碼(ECC)對數(shù)據(jù)進行糾正,則MM中的內(nèi)容可能需要被重定位到一個或多個操作的MM中的新位置。假定存在一組引用需要被重定位的存儲器位置的地址。在重定位之后,新的尋址方案可以被應用到這組地址。換句話說,可能有必要從第一(舊)尋址方案迀移到第二(新)尋址方案。但是,由于重定位不是瞬間的,因此尋址方案之間的迀移也不是瞬間的。在迀移/重定位期間,第一尋址方案仍應用到引用尚未被重定位的位置的地址(“未迀移的地址”)。相比之下,第二尋址方案被應用到引用已經(jīng)重定位的位置的地址(“已迀移的地址”)。
[0021]在本發(fā)明的一個或多個實施例中,處理器(102)包括相關性排序單元(C0U)(104)。COU(104)是處理器(102)內(nèi)能看到所有(或大多數(shù))存儲器流量的硬件單元。C0U(104)包括界線指針。界線指針在迀移過程中被使用。具體而言,界線指針引用在引用處于重定位過程中的位置的地址集合中的界線地址。界線地址有效地將該地址集合分區(qū)(即,分開、分組)成已迀移的地址和未迀移的地址。例如,在被界線指針引用的地址“之上”的每個地址可以被認為是已迀移的地址。類似地,在被界線指針引用的地址“之下”的每個地址可以被認為是未迀移的地址。界線地址本身可以被認為是未迀移的地址。
[0022]在一個或多個實施例中,C0U (104)具有接收針對MM中任何存儲器位置的訪問請求的功能。這些請求可以源自在處理器(102)上執(zhí)行的用戶應用(116)。訪問請求可以對應于只讀訪問請求、只寫訪問請求、讀/寫訪問請求,或者操縱或檢查MM中的數(shù)據(jù)的任何請求。另外,C0U(104)具有比較訪問請求中的地址與界線指針以確定應當被用來將地址映射到存儲器位置的尋址方案的功能。例如,
[0023]如果訪問請求中的地址落入已迀移的地址內(nèi),則第二尋址方案應當被用來解釋該地址。作為另一個例子,如果該訪問請求中的地址落入未迀移的地址內(nèi),則第一尋址方案應當被用來解釋該地址。更進一步,
[0024]C0U(104)包括標記訪問請求以指示用于解釋的適當尋址方案的功能。
[0025]在本發(fā)明的一個或多個實施例中,當訪問請求是只寫或讀/寫請求并且在訪問請求中指定的存儲器地址是界線地址時,C0U(104)包括更新界線指針以引用下一個未迀移的存儲器地址的功能。重定位是通過匹配界線地址的寫請求以及該寫請求中的內(nèi)容到由第二尋址方案識別的存儲器位置的后續(xù)寫入而發(fā)生的。受益于該詳細描述的本領域技術人員將認識到,更新界線指針可以包括增大或減小界線指針。
[0026]受益于本詳細描述的本領域技術人員將認識到,正常的存儲器流量會自動造成界線指針移動。但是,存在很少被寫入的存儲器區(qū)域。為了保證迀移在可預測的時間量內(nèi)完成,有必要具有幫助界線指針前進的擦洗器(scrubber)功能,該功能在后臺運行直到迀移完成。擦洗器功能檢測到界線地址未移動已有預定的時間窗口,然后生成匹配界線地址的寫訪問。擦洗器功能可以被實現(xiàn)為硬件狀態(tài)機,或者委托給軟件應用(例如,擦洗器應用(114))。在本發(fā)明的一個或多個實施例中,擦洗器應用(114)在處理器(102)上執(zhí)行。如果界線指針更新在預定時間窗口內(nèi)未發(fā)生,則擦洗器應用(114)包括創(chuàng)建匹配界線地址的寫訪問的功能,從而迫使界線指針更新,并且因此迫使迀移繼續(xù)。擦洗器應用可以獨立于發(fā)出訪問請求的用戶應用。當界線指針被更新為引用新界線地址時,擦洗器應用啟動定時器或時間窗口。如果界線指針繼續(xù)引用相同的界線地址預定的時間窗口(例如,5毫秒、10秒、3個周期等等),則擦洗器被觸發(fā),以發(fā)出對存儲在界線地址中的內(nèi)容(即,數(shù)據(jù)值)的讀請求,然后發(fā)出帶有該數(shù)據(jù)值的、針對界線地址的寫請求。如以上所討論的,這將迫使C0U(104)更新界線指針,以引用新界線地址。
[0027]雖然圖1示出了 16個麗,但是在不背離本發(fā)明的情況下,2N個麗或任何數(shù)量的MM都可以被使用。另外,雖然圖1示出了部件的配置,但是在不背離本發(fā)明范圍的情況下,可以使用其它配置。例如,各種部件可以被組合,以創(chuàng)建單個部件。作為另一個例子,由單個部件執(zhí)行的功能可以由兩個或更多個部件執(zhí)行。
[0028]圖2示出了根據(jù)本發(fā)明的一個或多個實施例的流程圖。圖2中的一個或多個步驟可以由圖1中的一個或多個部件(例如,C0U(104)、擦洗器應用(114)等等)執(zhí)行。雖然這個流程圖中的各個步驟依次被給出并進行描述,但是普通技術人員將認識到,這些步驟當中的一些或全部可以以不同的次序被執(zhí)行、可以被組合或省略,并且這些步驟當中的一些或全部可以被并行執(zhí)行。此外,這些步驟可以被主動或動地執(zhí)行。例如,根據(jù)本發(fā)明的一個或多個實施例,一些步驟可以利用輪詢來執(zhí)行或者可以被中斷驅(qū)動。作為例子,根據(jù)本發(fā)明的一個或多個實施例,確定步驟可以不需要處理器處理指令,除非接收到表示那種條件存在的中斷。作為另一個例子,根據(jù)本發(fā)明的一個或多個實施例,確定步驟可以通過執(zhí)行測試來執(zhí)行,諸如檢查數(shù)據(jù)值來測試該值是否與被測試的條件一致。
[0029]最初,對存儲器地址的訪問請求由C0U接收(步驟202)。訪問請求可以由例如用戶應用、硬件處理發(fā)出,不管迀移還沒有開始、已完成或者正在進行中。訪問請求可以是讀請求、寫請求或者讀/寫請求。訪問請求在不同尋址方案之間的迀移期間被接收。
[0030]在步驟204中,確定在訪問請求中指定的存儲器地址是否在界線地址的已迀移偵k換句話說,存儲器地址與引用界線地址的界線指針進行比較。如以上所討論的,界線地址有效地將地址集合分區(qū)(即,分開、分組)為已迀移的地址與未迀移的地址。當確定存儲器地址落入已迀移的地址內(nèi)時,過程前進到步驟208,在那里,請求被標記為根據(jù)新的尋址方案進行解釋。然后,加標簽的地址請求被發(fā)送到MCU。
[0031 ] 在步驟210中,存儲器地址由MCU基于標簽的類型進行解釋(即,標簽是指示舊尋址方案還是新尋址方案)。如以上所討論的,MCU被配置為處理多于一種類型的尋址方案,并且尋址方案實質(zhì)上是識別對應于所指定地址的適當MM中的對應條目/位置的映射操作。期望的尋址方