專利名稱:用于執(zhí)行存儲器中命令的優(yōu)先權方案的制作方法
技術領域:
本發(fā)明大體而言涉及存儲器,且更具體而言,涉及一種用于存儲器的命令執(zhí)行優(yōu) 先權方案。
背景技術:
當前,存儲器在數(shù)字系統(tǒng)中廣泛地用于存儲各種處理實體所需的數(shù)據(jù)。大多數(shù)存 儲器的內(nèi)部構建有多個存儲庫??蓪⒚恳淮鎯熳鳛樾信c列的陣列個別地尋址。這意 味著,各種處理實體可通過發(fā)出適宜的讀取或寫入命令并行地從每一存儲庫中訪問數(shù) 據(jù)。
存儲器控制器可用于管理各種處理實體對存儲庫的訪問。存儲器控制器將讀取及 寫入命令接收成命令隊列,并按其接收的順序執(zhí)行所述命令。與每一命令的執(zhí)行相關 聯(lián)的延遲取決于是否訪問存儲庫中的開放頁面。"頁面"通常與存儲器的行相關聯(lián),且 "開放頁面"意指存儲庫正指向存儲器的行、且只需要來自存儲器控制器的列地址選 通來訪問存儲位置。為訪問存儲庫的未開放頁面,存儲器控制器必須向存儲庫提供行 地址選通,以在提供列地址選通之前移動指針。因此,每當在存儲庫中訪問新的頁面 時,系統(tǒng)的等待時間可受到不利的影響。
除等待時間以外,還可能需要大量功率以打開存儲庫中的新頁面。這種情況在例
如蜂窩式及無線電話、膝上型計算機、個人數(shù)字助理(PDA)等依靠電池操作的裝置中 尤其令人關注。如果來自各種處理實體的命令序列導致存儲庫中要打開及關閉的頁面 的數(shù)量過多,則可顯著地降低電池的壽命。
發(fā)明內(nèi)容
在本發(fā)明一個方面中,提供一種用于在存儲器中存儲并檢索數(shù)據(jù)的方法,其包括 將多個命令接收成命令隊列,所述命令的每一者均可請求訪問所述存儲器、評估所述 命令隊列中的命令塊以從所述塊中選擇所述命令中的一者來執(zhí)行、及執(zhí)行所述選擇的 命令。
在本發(fā)明另一方面中,提供一種存儲器系統(tǒng),其包括存儲器;命令隊列,其經(jīng) 配置以接收多個命令,所述命令中的每一者均可請求訪問所述存儲器;及命令選擇器, 其經(jīng)配置以評估所述命令隊列中的命令塊以從所述塊中選擇所述命令中的一者來執(zhí) 行,并執(zhí)行所述選擇的命令。
在本發(fā)明又一方面中,提供一種存儲器系統(tǒng),其包括存儲器;命令隊列,其經(jīng) 配置以接收多個命令,所述命令中的每一者均可請求訪問所述存儲器;用于評估所述 命令隊列中的命令塊以從所述塊中選擇所述命令中的一者來執(zhí)行的裝置;及用于執(zhí)行 所述選擇的命令的裝置。
應了解,根據(jù)下文的詳細闡述,所屬領域的技術人員將容易理解本發(fā)明的其它實 施例,其中本發(fā)明的各種實施例均以圖解說明的方式加以顯示及闡述。應了解,本發(fā) 明能夠具有其它且不同的實施例,并能夠在各種其它方面對其數(shù)個細節(jié)加以修改,此 均不違背本發(fā)明的精神及范圍。因此,應將這些附圖及詳細說明視為例示性質的,而
非限制性的。
圖l是概念性方塊圖,其圖解說明存儲器系統(tǒng)的一實例; 圖2是概念性方塊圖,其圖解說明存儲器系統(tǒng)的另一實例;
圖3是概念性方塊圖,其圖解說明具有存儲器控制器細節(jié)的存儲器系統(tǒng)的實例; 圖4是圖解說明算法的實例的流程圖,存儲器控制器使用所述算法訪問存儲器系 統(tǒng)中的存儲器;
圖5是圖解說明圖4中的算法的實例的流程圖,所述算法經(jīng)編程以消除賦予一種 訪問存儲器的命令類型的優(yōu)先權;及
圖6是圖解說明圖4中的算法的實例的流程圖,所述算法經(jīng)編程以消除賦予另一 種訪問存儲器的命令類型的優(yōu)先權。
具體實施例方式
下文結合附圖所闡述的詳細說明意在說明本發(fā)明的各種實施例,而非代表本發(fā)明 僅可實施為這些實施例。詳細說明包括具體細節(jié),以便達成對本發(fā)明的透徹了解。然 而,所屬領域的技術人員應了解,本發(fā)明的實施也可以不使用這些具體細節(jié)。在某些 事例中,以方塊圖的形式顯示各己知結構及組件,以免淡化對本發(fā)明的說明。
圖l是概念性方塊圖,其圖解說明存儲器系統(tǒng)的一實例。存儲器系統(tǒng)100可包括 存儲器102,雖然圖中顯示具有四個庫102a-102d,但其可具有任何數(shù)量的庫,這取決 于具體的應用及總體設計約束條件。存儲器102可為同步動態(tài)隨機訪問存儲器 (SDRAM)或任何其它類型的存儲器。
存儲器控制器104可用于管理各種處理實體(未顯示)對存儲庫102a-102d的訪 問。存儲器控制器104可包括命令隊列106以緩沖來自處理實體的命令。雖然未顯示, 但存儲器控制器106也可包括數(shù)據(jù)隊列以便將數(shù)據(jù)存儲至存儲庫及從存儲庫檢索數(shù) 據(jù)。輸入/輸出(I/O)裝置108可向總線或任何其它通信媒體提供接口。命令選擇器 110或任何其它類型的處理元件可用于執(zhí)行來自命令隊列106的命令以訪問存儲庫102a-102d。
圖2是概念性方塊圖,其圖解說明存儲器系統(tǒng)的另一實例。在該實施例中,存儲 器控制器104可包括用于每一存儲庫的單獨命令隊列,且在此情況下,存儲器控制器 104包括四個命令隊列106a-106d。除向通信媒體提供接口外,I/O裝置108還可用于 為從通信媒體所接收的每一命令確定目的地存儲庫,并將所述命令存儲于適當?shù)拿?隊列中。
可通過重新排序存儲器控制器104所接收的命令實現(xiàn)等待時間及功率消耗的降 低,以最小化在存儲器102中打開及關閉頁面的次數(shù)。出于示例的目的,在了解這些 技術可擴展至具有支持一個或一個以上存儲庫的單個命令隊列的存儲器系統(tǒng)的前提 下,將在具有用于每一存儲庫的單獨命令隊列的存儲器系統(tǒng)的上下文中闡述各種用于 降低等待時間及功率消耗的技術。
圖3是圖解說明存儲器系統(tǒng)的實例的概念性方塊圖,其中可重新排序由命令隊列 106為存儲庫104'中的一者所接收的命令以降低等待時間及功率消耗。在該配置中, 可獨立于其它存儲庫的命令重新排序所述命令。命令隊列106可為先進先出(FIFO) 存儲器,或任何其它類型的存儲裝置。可將命令選擇器緩沖器112設置在命令隊列106 與命令選擇器110之間。命令選擇器緩沖器112可配置有四個獨立的寄存器112a-112d, 但其可配置有任何數(shù)量的寄存器,這取決于所屬領域技術人員的設計偏好、存儲器系 統(tǒng)的特定應用及總體設計約束條件。命令隊列106可經(jīng)配置以將命令載入至輸入寄存 器112a中,且命令選擇器110可經(jīng)配置以從輸入寄存器112a中檢索命令。命令選擇 器110也可具有對剩余三個保持寄存器112b-112d的排它性訪問。
在操作中,命令選擇器110從命令選擇器緩沖器112中的四個寄存器112a-112b 中檢索命令,并在四個命令中選擇一個命令來執(zhí)行。命令選擇器110是基于經(jīng)設計以 通過最小化在對應的存儲庫104'中打開及關閉頁面的次數(shù)來降低等待時間及功率消 耗的控制算法作出所述選擇。 一旦命令選擇器110作出選擇,其執(zhí)行所選擇的命令, 從而產(chǎn)生對存儲庫104'的讀取或寫入操作。將三個未選擇的命令載回至保持寄存器 112b-112d中,且將來自命令隊列106的新命令載入至輸入寄存器112a中。隨后可重 復所述過程。
現(xiàn)在,將在了解命令選擇器IIO可實施各種屬于本發(fā)明范圍內(nèi)的其它算法的前提 下,闡述可由命令選擇器110實施的控制算法的實例。所述控制算法可應用于能夠支 持單個存儲庫或者整個存儲器裝置的命令隊列。所述整個裝置可構造有一個或一個以
上存儲庫。
在一個實施例中,在給未開放頁面選擇命令之前,控制算法可經(jīng)配置以針對存儲 器中的開放頁面從命令選擇器緩沖器112中選擇命令??稍趯懭氩僮髦?,重新排序 針對存儲器中的開放頁面的多個命令以執(zhí)行讀取操作,只要所述命令是來自不同的處 理實體。如果讀取及寫入操作是由同一處理實體發(fā)出的,則維持所述命令的序列極為 重要。所述命令中可包括源識別符以便存儲器控制器IIO可確定多個命令是否來自同
一處理實體。如果命令選擇器緩沖器112中不存在針對存儲器中的開放頁面的命令, 則可執(zhí)行針對存儲器中的未開放頁面的命令??少x予讀取操作高于寫入操作的優(yōu)先權。 在圖4的流程圖中圖解說明所述控制算法的實例。在方塊402中,所述控制算法 可確定命令選擇器緩沖器中是否存在任何針對存儲器中的開放頁面的命令。如果命令 選擇器緩沖器中的所有命令均針對存儲器中的未開放頁面,則在方塊404中,控制算 法可確定命令選擇器緩沖器中是否存在任何用于讀取操作的命令。如果在命令選擇器 緩沖器中存在一個或一個以上用于讀取操作的命令,則在方塊406中,控制算法可選 擇最舊的一個命令來執(zhí)行。否則,在方塊408中,控制算法可選擇最舊的寫入操作命 令來執(zhí)行。
返回到方塊402,如果控制算法確定命令選擇器緩沖器中存在一個或一個以上針 對存儲器中的開放頁面的命令,則在方塊410中,控制算法可確定是否存在一個以上 的命令。如果在命令選擇器緩沖器中只存在一個針對存儲器中的開放頁面的命令,則 在方塊412中,控制算法可選擇這個命令來執(zhí)行。另一方面,如果控制算法確定存在 一個以上的命令,則在方塊414中,可檢查每一命令的源識別符以確定是否存在來自 同一處理實體的多個命令。如果存在,則在方塊416中,控制算法可執(zhí)行針對存儲器 中的開放頁面的最舊命令。否則,在方塊418中,控制算法可確定命令控制器緩沖器 中是否存在任何針對存儲器中的開放頁面的讀取操作的命令。如果存在,則在方塊420 中,控制算法可執(zhí)行最舊的一個命令。否則,在方塊422中,控制算法可針對存儲器 中的開放頁面執(zhí)行命令選擇器緩沖器中最舊的寫入操作命令。
從圖4中可以看出,在命令選擇器執(zhí)行控制算法的整個過程中,將優(yōu)先權賦予各 種類型的命令。舉例而言,可將優(yōu)先權賦予針對存儲器的開放頁面而不是關閉頁面的 命令。對于存儲器中任何既定的頁面,可將讀取操作高于寫入操作的優(yōu)先權賦予命令。 在存儲器控制器的至少一個實施例中,可使用控制寄存器中的可編程數(shù)據(jù)啟用或禁用 所述算法中實施的一個或一個以上優(yōu)先權。舉例而言,如圖5所示,可在多個來自同 一處理實體的針對存儲器中開放頁面的命令中禁用讀取操作高于寫入操作的優(yōu)先權。 參照圖5,如果在方塊402中控制算法確定命令選擇器緩沖器中不存在針對存儲器中 的開放頁面的命令,則選擇過程保持不變。如果在方塊402及410中選擇算法確定命 令選擇器緩沖器中存在一個且只存在一個針對開放頁面的命令,則情況同樣如此。然 而,如果在方塊402及410中控制算法確定命令選擇器緩沖器中存在多個針對存儲器 中打開的開放頁面的命令,則算法可在步驟502中僅選擇最舊的一個命令來執(zhí)行,而 不是將優(yōu)先權賦予讀取操作。
或者,如圖6中所示,當命令選擇器緩沖器中的所有命令都針對存儲器中的未開 放頁面時,可禁用讀取操作高于寫入操作的優(yōu)先權。如果在方塊402中控制算法確定 命令選擇器緩沖器中存在至少一個針對存儲器中的開放頁面的命令,則選擇過程保持 不變。然而,如果在方塊402中控制算法確定命令選擇器緩沖器中不存在針對存儲器 中的開放頁面的命令,則算法可在步驟602中僅選擇命令選擇器緩沖器中的最舊命令
來執(zhí)行,而不是將優(yōu)先權賦予讀取操作。
結合本文所揭示實施例闡述的各種例示性邏輯塊、模塊、電路、元件及/或組件可
通過通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣 列(FPGA)或其它可編程邏輯組件、離散門或晶體管邏輯、離散硬件組件、或設計用 于執(zhí)行本文所述功能的其任何組合來實施或執(zhí)行。通用處理器可為微處理器,或者, 處理器可為任何常規(guī)處理器、控制器、微控制器、或狀態(tài)機。處理器也可實施為計算 組件的組合,例如DSP與微處理器的組合、多個微處理器的組合、一個或一個以上微 處理器與DSP核心的組合、或任何其它這種配置。
結合本文所揭示實施例闡述的方法或算法可直接實施在硬件、可由處理器執(zhí)行的 軟體模塊,或兩者的組合中。軟體模塊可常駐于RAM存儲器、快閃存儲器、ROM存 儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可裝卸磁盤、CD-ROM、 或現(xiàn)有技術中已知的任何其它形式的存儲媒體中。存儲媒體可耦接至處理器,以使處 理器可自存儲媒體讀取信息或向存儲媒體寫入信息?;蛘?,存儲媒體可為處理器的組 成部分。
提供上述有關所揭示實施例的說明意在使任何所屬領域的技術人員都能夠制作 或使用本發(fā)明。所屬領域的技術人員將易知這些實施例的各種修改,且本文所定義的 一般原理也可適用于其它實施例,此并不違背本發(fā)明的精神或范圍。因此,本發(fā)明并 非意在限定為本文所示實施例,而是意在符合其與權利要求書相一致的全部范圍,其 中除非明確指明,否則,以單數(shù)形式指帶的元件并非意在表示"一個及只有一個",而 是"一個或一個以上"的意思。所有所屬領域的一般技術人員所熟知或此后將熟知的 貫穿本揭示內(nèi)容中所闡述的各種實施例的元件的結構及功能等效物都明確地以引用方 式并入本文中并意在涵蓋于權利要求書中。此外,無論是否在權利要求書中明確引用 此揭示內(nèi)容,本文的揭示內(nèi)容皆并意在奉獻給大眾。權利要求書的要素都不根據(jù) 35U.S.C. § 112第六段的規(guī)定加以解釋,除非使用短語"用于…的裝置"明確描述所述 要素,或在方法項中使用短語"用于…的步驟"描述所述要素。
權利要求
1、一種用于在存儲器中存儲及檢索數(shù)據(jù)的方法,其包括將多個命令接收成命令隊列,所述命令中的每一者均請求訪問所述存儲器;評估所述命令隊列中的所述命令的塊以從所述塊中選擇所述命令中的一者來執(zhí)行;及執(zhí)行所述選擇的命令。
2、 如權利要求1所述的方法,其中所述選擇的命令請求訪問所述存儲器中的開 放頁面。
3、 如權利要求1所述的方法,其進一步包括執(zhí)行所述塊中跟隨所述選擇的命 令的剩余命令,在所述塊中請求訪問所述存儲器中的未開放頁面的剩余命令之前,執(zhí) 行所述塊中請求訪問所述存儲器中的開放頁面的剩余命令。
4、 如權利要求1所述的方法,其中所述塊中的所述命令是來自所述命令隊列中 的最舊的命令。
5、 如權利要求1所述的方法,其中通過識別所述塊中請求訪問所述存儲器中開 放頁面的所有所述命令來評估所述命令塊,且其中所述選擇的命令包括所述識別的命 令中的一者。
6、 如權利要求5所述的方法,其中所述識別的命令包括至少兩個來自所述命令 塊的命令,且其中所述選擇的命令包括所述識別的命令中的最舊者。
7、 如權利要求5所述的方法,其中通過確定所述識別的命令中的至少兩個命令 是來自同一處理實體來進一步評估所述命令塊,且其中響應于所述確定,所述選擇的 命令包括所述識別的命令中的最舊者。
8、 如權利要求5所述的方法,其中通過確定所述識別的命令中沒有一個命令是 來自同一處理實體,且所述識別的命令中的至少一者請求訪問所述存儲器以實施讀取 操作來進一步評估所述命令塊,且其中所述選擇的命令包括所述識別的命令中請求訪 問所述存儲器以實施所述讀取操作的最舊者。
9、 如權利要求5所述的方法,其中通過確定所述識別的命令中沒有一個命令是 來自同一處理實體,且所有所述識別的命令均請求訪問所述存儲器以實施寫入操作來 進一步評估所述命令塊,且其中所述選擇的命令包括所述識別的命令中請求訪問所述 存儲器以實施所述寫入操作的最舊者。
10、 如權利要求l所述的方法,其中通過確定所述塊中的所有所述命令均請求訪 問所述存儲器中的未開放頁面來評估所述命令塊,且其中所述選擇的命令包括所述塊 中的所述命令中的最舊者。
11、 如權利要求l所述的方法,其中通過確定所述塊中的所有所述命令均請求訪 問所述存儲器中的未開放頁面,且所述塊中的所述命令中的至少一者請求訪問所述存 儲器以實施讀取操作來評估所述命令塊,且其中所述選擇的命令包括所述塊中的所述 命令中請求訪問所述存儲器以實施所述讀取操作的最舊者。
12、 如權利要求l所述的方法,其中通過確定所述塊中的所有所述命令均請求訪 問所述存儲器中的未開放頁面,且所述塊中的所有所述命令均請求訪問所述存儲器以 實施寫入操作來評估所述命令塊,且其中所述選擇的命令包括所述塊中的所述命令中 的最舊者。
13、 一種存儲器系統(tǒng),其包括 存儲器;命令隊列,其經(jīng)配置以接收多個命令,所述命令中的每一者均請求訪問所述存儲 器;及命令選擇器,其經(jīng)配置以評估所述命令隊列中的所述命令的塊以在所述塊中選擇 所述命令中的一者來執(zhí)行,及執(zhí)行所述選擇的命令。
14、 如權利要求13所述的存儲器系統(tǒng),其中所述選擇的命令請求訪問所述存儲 器中的開放頁面。
15、 如權利要求13所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以執(zhí) 行所述塊中跟隨所述選擇的命令的剩余命令,在所述塊中請求訪問所述存儲器中的未 開放頁面的剩余命令之前,執(zhí)行所述塊中請求訪問所述存儲器中的開放頁面的剩余命 令。
16、 如權利要求13所述的存儲器系統(tǒng),其中所述塊中的所述命令是來自所述命 令隊列中的最舊命令。
17、 如權利要求13所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以通過識別所述塊中請求訪問所述存儲器中開放頁面的所有所述命令來評估所述命令塊, 且其中所述選擇的命令包括所述識別的命令中的一者。
18、 如權利要求17所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以確 定所述識別的命令是否包括至少兩個來自所述命令塊的命令,且其中如果所述命令選 擇器作出所述確定,則所述選擇的命令包括所述識別的命令中的最舊者。
19、 如權利要求17所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以通 過確定所述識別的命令中的至少兩者是否來自同一處理實體來評估所述命令塊,且其 中如果所述命令選擇器作出所述確定,則所述選擇的命令包括所述識別的命令中的最 舊者。
20、 如權利要求17所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以通 過確定所述識別的命令中的每一者是否來自不同的處理實體、且所述識別的命令中的 至少一者是否請求訪問所述存儲器以實施讀取操作來評估所述命令塊,且其中如果作 出所述兩個確定,則所述選擇的命令包括所述識別的命令中請求訪問所述存儲器以實 施所述讀取操作的最舊者。
21、 如權利要求17所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以通 過確定所述識別的命令中的每一者是否來自不同的處理實體、且所有所述識別的命令 是否請求訪問所述存儲器以實施寫入操作來評估所述命令塊,且其中如果作出所述兩 個確定,則所述選擇的命令包括所述識別的命令中請求訪問所述存儲器以實施所述讀 取操作的最舊者。
22、 如權利要求13所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以通過確定所述塊中的所有所述命令是否請求訪問所述存儲器中的未開放頁面來評估所述 命令塊,且其中如果作出所述確定,則所述選擇的命令包括所述塊中的所述命令中的 最舊者。
23、 如權利要求13所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以通 過確定所述塊中的所有所述命令是否請求訪問所述存儲器中的未開放頁面、且所述塊 中的所述命令中的至少一者是否請求訪問所述存儲器以實施讀取操作來評估所述命令 塊,且其中如果作出所述確定,則所述選擇的命令包括所述塊中的所述命令中請求訪 問所述存儲器以實施所述讀取操作的最舊者。
24、 如權利要求13所述的存儲器系統(tǒng),其中所述命令選擇器進一步經(jīng)配置以通 過確定所述塊中的所有所述命令是否請求訪問所述存儲器中的未開放頁面、且所述塊 中的所有所述命令是否請求訪問所述存儲器以實施寫入操作來評估所述命令塊,且其 中如果作出所述兩個確定,則所述選擇的命令包括所述塊中的所述命令中的最舊者。
25、 如權利要求14所述的存儲器系統(tǒng),其中所述存儲器包括SDRAM。
26、 一種存儲器系統(tǒng),其包括 存儲器;命令隊列,其經(jīng)配置以接收多個命令,所述命令中的每一者均請求訪問所述存儲明. 益°命令選擇器,其包括用于評估所述命令隊列中的所述命令的塊以從所述塊中選 擇所述命令中的一者來執(zhí)行的裝置;及用于執(zhí)行所述選擇的命令的裝置。
27、 如權利要求26所述的存儲器系統(tǒng),其中所述選擇的命令請求訪問所述存儲 器中的開放頁面。
28、 如權利要求26所述的存儲器系統(tǒng),其中所述用于執(zhí)行所述選擇的命令的裝 置執(zhí)行所述塊中跟隨所述選擇的命令的剩余命令,在所述塊中請求訪問所述存儲器中 的未開放頁面的剩余命令之前,執(zhí)行所述塊中請求訪問所述存儲器中的開放頁面的剩 余命令。
全文摘要
本發(fā)明揭示一種用于存儲器的命令執(zhí)行優(yōu)先權方案。所述優(yōu)先權方案涉及用于在存儲器中存儲及檢索數(shù)據(jù)的系統(tǒng)及技術。命令隊列可用于接收多個命令,所述命令中的每一者均可請求訪問所述存儲器。命令選擇器可用于評估所述命令隊列中的命令塊,以從所述塊中選擇所述命令中的一者來執(zhí)行,并執(zhí)行所選擇的命令。
文檔編號G06F13/16GK101103343SQ200580046913
公開日2008年1月9日 申請日期2005年11月23日 優(yōu)先權日2004年11月24日
發(fā)明者佩里·威爾曼·小雷馬克呂斯, 羅伯特·邁克爾·沃克 申請人:高通股份有限公司