專利名稱:用于處理不同類型的存儲器命令的仲裁結(jié)構和方法
技術領域:
本發(fā)明一般涉及一種存儲器命令仲裁器,特別是涉及一種存儲器控制仲裁器,可以以大的帶寬和低的讀取等待時間來處理不同的存儲器設備。
背景技術:
存儲器命令的仲裁方案可以描述為一種分層結(jié)構,其確定哪個存儲器命令具有使用特定的數(shù)據(jù)信道的即時優(yōu)先權。典型地,存儲器系統(tǒng)由一組用于完成存儲器系統(tǒng)的必要操作的命令來管理。這些操作由讀取、寫入和周期命令組成。讀取命令響應對數(shù)據(jù)的請求從存儲器單元接收該數(shù)據(jù)。寫入命令向存儲器單元傳輸存儲器數(shù)據(jù)以便存儲。周期命令由必須在某一時間窗內(nèi)執(zhí)行的存儲器刷新或存儲器擦除(scrub)組成。存儲器刷新命令維持存儲器單元的當前值。如果在特定的時間段內(nèi)存儲器單元沒有被刷新,數(shù)據(jù)就變得不穩(wěn)定。存儲器擦除命令從存儲器單元讀取數(shù)據(jù),以檢查數(shù)據(jù)錯誤。如果存在單個的比特誤差,則錯誤被修改并且數(shù)據(jù)被存回到存儲器中。
仲裁方案確定由存儲器系統(tǒng)完成這些命令的順序。在每個存儲器系統(tǒng)中,存在有限的數(shù)據(jù)帶寬可以用于完成必要的存儲器命令。讀取、寫入以及周期命令請求獲得對數(shù)據(jù)信道的所有權,并且仲裁器將特定信道的所有權授予所選定的命令。為每個存儲器子系統(tǒng)選擇命令的順序是唯一的。當在不同類型的命令之間轉(zhuǎn)換時,一些子系統(tǒng)具有較大的延遲。在存在較大延遲的系統(tǒng)中,仲裁器希望在轉(zhuǎn)換到不同的命令之前,盡可能長時間地選擇同一類型的命令。在沒有延遲的系統(tǒng)中,仲裁器具有更大的自由以根據(jù)其隊列有多滿來選擇命令或者選擇多個讀取命令來減少讀取等待時間。
問題是傳統(tǒng)的仲裁方案是不靈活的。傳統(tǒng)的仲裁方案不足以強大到處理寬范圍的存儲器設備和存儲器系統(tǒng)。傳統(tǒng)的仲裁方案必須進行硬編碼,以匹配與其一起設計的存儲器系統(tǒng)。不同的存儲器系統(tǒng)需要利用獨特的仲裁方案來構建,這意味著實現(xiàn)并不是容易的或有效的。很清楚,需要提供一種改進的仲裁方案,提供實施的更大靈活性并使存儲器系統(tǒng)更有效。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于在操作系統(tǒng)中處理多個存儲器命令的仲裁方案的仲裁器結(jié)構、方法和計算機程序。典型地,在存儲器系統(tǒng)中具有三種類型的操作周期、讀取和寫入。這些操作是通過發(fā)布與特定的操作相對應的命令來完成的。仲裁方案確定執(zhí)行這三種命令的優(yōu)先級順序。該仲裁方案是靈活的,因為其包含讀取/寫入優(yōu)先級模塊。讀取/寫入優(yōu)先級模塊可以被編程以便執(zhí)行讀取和寫入命令的任何優(yōu)先級順序組合。這使得任何存儲器系統(tǒng)的仲裁方案都可以被容易地編程,以便存儲器命令被高效地執(zhí)行。通過使效率最大化,本發(fā)明允許存儲器系統(tǒng)以大的帶寬和低的讀取等待時間來操作。
為了更完整地理解本發(fā)明及其優(yōu)點,參照結(jié)合附圖進行的以下描述,其中圖1是描述用于存儲器控制器的、改進的多階段仲裁方案的流程圖;圖2是描述為用于存儲器控制器的、改進的多階段仲裁方案所設計的裝置的框圖。
具體實施例方式
在以下的討論中,為了提供對本發(fā)明的透徹理解,描述了多個具體的細節(jié)。但是,本領域技術人員會意識到不需要這些具體細節(jié)也可以實現(xiàn)本發(fā)明。在其它情況下,為了不使本發(fā)明在不必要的細節(jié)中不清楚,已知的部件以框圖或流程圖的形式來描述。此外,在極大程度上,忽略了關于網(wǎng)絡通信、電磁信令技術等的細節(jié),因為并不認為這樣的細節(jié)是獲取對本發(fā)明的完整理解所必需的,并將其視為在相關領域的普通技術人員的理解范圍之內(nèi)。
當設計用于選擇存儲器命令的仲裁方案時,有幾個特點需要考慮。最大帶寬和最小的讀取等待時間必須在這些設計中實現(xiàn)。為了實現(xiàn)最大帶寬,存儲器系統(tǒng)應當能處理大的數(shù)據(jù)流量而沒有任何空載時間。為了獲得最小的讀取等待時間,存儲器系統(tǒng)應當可以在可能的最短時間內(nèi)完成讀和寫操作。讀取等待時間可能受到讀取操作循環(huán)時間和從讀到寫或從寫到讀的轉(zhuǎn)換延遲的負面影響。
參照附圖的圖1,附圖標記100是描述用在存儲器控制器中的、改進的多階段的仲裁方案。存在三種類型由仲裁方案控制的命令讀取、寫入和周期命令。周期命令由存儲器刷新或存儲器擦除組成。仲裁方案100包含兩個階段。第一階段由從讀取隊列102或?qū)懭腙犃?04中準備將被執(zhí)行的讀取或?qū)懭氩僮鹘M成。第二階段包括選擇最高優(yōu)先級的命令并執(zhí)行該命令。讀取隊列102表示需要被執(zhí)行的讀取操作的堆棧。寫入隊列104表示需要被執(zhí)行的寫入操作的堆棧。在第一階段個別地對讀取隊列102和寫入隊列104的命令進行仲裁。向可用存儲體提供最先命令的步驟106描述了首先由仲裁器選擇讀取隊列102中的最先讀取操作。向可用存儲體提供最先命令的步驟108描述了首先由仲裁器選擇寫入隊列104中的最先寫入操作。由于仲裁器必須首先選擇已經(jīng)等待了最長時間的將被執(zhí)行的命令,從而顯示出步驟106和108。在步驟106和108中,最先的命令與來自存儲體定序器(sequencer)池的可用存儲體110相配對??捎么鎯w110步驟是指空閑的并且可以用于執(zhí)行操作的存儲體定序器。
下一個讀取命令112表示最先的讀取命令106與可用存儲體110相配對并且可以執(zhí)行讀取操作。下一個寫入命令114表示最先的寫入命令108與可用存儲體110相配對并且可以執(zhí)行寫入操作。命令選擇階段118是仲裁方案的核心。這是選擇特定的命令(讀取、寫入或周期)并執(zhí)行的階段(122)。將周期命令116、下一個讀取命令112、下一個寫入命令114以及讀取/寫入優(yōu)先級120都提供給命令選擇118。
周期命令116必須在某一時間窗內(nèi)執(zhí)行,所以在命令選擇階段118中,周期命令116是在讀取命令112和寫入命令114之前被選擇。讀取/寫入優(yōu)先級120確定讀取命令112和寫入命令114的優(yōu)先級順序。可以對讀取/寫入優(yōu)先級120進行編程以執(zhí)行讀取命令112和寫入命令114的任何組合,這意味著可以將其構建為任何存儲器系統(tǒng)的規(guī)格。當選擇了最高優(yōu)先級的命令(118)時,執(zhí)行該命令(122)。在執(zhí)行了該命令之后,執(zhí)行該命令的存儲體在可配置的時間段內(nèi)是不可用的。在該段時間過后,存儲體變?yōu)榭捎?110)并且其可以用于另一個操作。在該延遲時間內(nèi),所有的其它存儲體都可以用于執(zhí)行命令。因此,新的可用存儲體110可以執(zhí)行最先的讀取命令106或最先的寫入命令108。在該仲裁方案的一個實施例中,存儲器系統(tǒng)包括8個存儲體,并且最多4個存儲體可以用于任何時間。
該仲裁方案設計100提供了與以前的仲裁方案相比的許多優(yōu)點。讀取/寫入優(yōu)先級120是該改進的仲裁方案100的核心思想。讀取/寫入優(yōu)先級120可基于存儲器設備的規(guī)格來構建。如果該存儲器設備從讀到寫或者從寫到讀具有大的轉(zhuǎn)換延遲,可以設置該讀取/寫入優(yōu)先級120以影響命令選擇118來選擇同種類型的命令。例如,可以對讀取/寫入優(yōu)先級120進行編程以連續(xù)處理16個讀取命令112。這導致寫入命令被堆積在寫入隊列104中,以便你可以連續(xù)發(fā)送一大組寫入命令114。在該例子中,對于每16個讀取命令,只有一個從讀到寫的轉(zhuǎn)換和一個從寫到讀的轉(zhuǎn)換,表明存儲器命令被更有效地執(zhí)行。由于由轉(zhuǎn)換延遲導致的停機時間有顯著的減少,仲裁方案100的這個特點允許最大帶寬。由于在沒有轉(zhuǎn)換延遲的情況下可以更快地執(zhí)行讀取,仲裁方案100的這個特點也使讀取等待時間最小化。
該仲裁方案100的另一個優(yōu)點是其靈活性。讀取/寫入優(yōu)先級120的可編程性確保了可以從任何存儲器系統(tǒng)中實施該仲裁方案,以獲取最大的效率。通過向希望的規(guī)格設置很少寄存器來對讀取/寫入優(yōu)先級120進行編程。傳統(tǒng)的仲裁方案不容易進行編程,因而對于每個特定的存儲器系統(tǒng)需要完全配置新的芯片??偟恼f來,該仲裁方案100提供了一種靈活、快速并且高效的選擇存儲器命令的技術方案。
參照附圖的圖2,附圖標記200是描述為用于存儲器控制器的多階段仲裁方案所設計的裝置的框圖。處理單元202是實現(xiàn)存儲器系統(tǒng)的邏輯功能的模塊。通信信道212將處理單元202連接到隊列204。隊列204是集合一列將被執(zhí)行的操作(讀取和寫入操作)的存儲器模塊。因此,處理單元202確定需要完成什么操作并在通信信道212上傳輸這些操作,以便由隊列204存儲。通信信道214將處理單元202連接到接口206。該接口模塊206選擇將被執(zhí)行的命令(讀取、寫入或周期)。處理單元202控制周期命令116(圖1),因此如果必須完成一個周期命令,則在通信信道214上將其傳輸?shù)浇涌?06。通過通信信道216將隊列204連接到接口206。通過通信信道216,隊列204傳輸將由接口206執(zhí)行的下一個命令(讀取或?qū)懭?。
通過連接信道218將接口模塊206連接到總線210。通過連接信道220將資源(存儲體)208連接到同一總線210。接口模塊206提供將被執(zhí)行的下一個命令(讀取、寫入或周期)并且資源(存儲體)208提供一個可用存儲體來完成該命令??偩€210用于執(zhí)行該命令并傳輸結(jié)果數(shù)據(jù)。附圖2只描述了為完成該多階段仲裁方案而設置的裝置的一個實施例。
可以理解,本發(fā)明可以采用多種形式和實施例。因此,在不背離本發(fā)明的范圍的情況下可以對本設計作出幾種變形。這里所概括的性能考慮到了多種編程模型的可能性。本發(fā)明所公開的內(nèi)容不應理解為優(yōu)選任何一種特定的編程模型,而是注重于可以在其上構建這些編程模型的基本思想。
通過參照某幾個優(yōu)選實施例對本發(fā)明進行了上述描述,應當注意的是,公開的實施例是解釋性的而不是在本質(zhì)上進行限定,并且在上述的公開中考慮了寬范圍的變形、改進、改變以及置換,并且在一些情況下,本發(fā)明的一些特征可以在沒有與其它特征的相關使用的情況下使用?;趯?yōu)選實施例的以上描述的評述,本領域技術人員可能認為很多這樣的變形和改進是理想的。因此,較寬范圍地解釋所附的權利要求并使其在某種意義上與本發(fā)明的范圍相一致是合適的。
權利要求
1.一種用于處理操作系統(tǒng)中不同類型的存儲器命令的仲裁結(jié)構,包括用于至少準備多個將被執(zhí)行的讀取命令中的至少一個的模塊;用于至少準備多個將被執(zhí)行的寫入命令中的至少一個的模塊;用于至少準備多個將被執(zhí)行的周期命令中的至少一個的模塊;讀取/寫入優(yōu)先級模塊,用于至少確定多個讀取命令和多個寫入命令的優(yōu)先級順序;命令選擇模塊,用于根據(jù)讀取/寫入優(yōu)先級模塊從多個命令中至少選擇將被執(zhí)行的下一個命令;以及存儲器控制器,用于根據(jù)命令選擇模塊至少執(zhí)行存儲器命令。
2.根據(jù)權利要求1所述的仲裁結(jié)構,其中用于準備讀取命令的模塊進一步包括讀取隊列,用于至少堆積多個讀取命令;以及用于至少使該多個讀取命令中的最先的讀取命令與多個存儲體中的可用存儲體相配對的模塊。
3.根據(jù)權利要求1所述的仲裁結(jié)構,其中用于準備寫入命令的模塊,進一步包括寫入隊列,用于至少堆積多個寫入命令;以及用于至少使該多個寫入命令中的最先的寫入命令與多個存儲體中的可用存儲體相配對的模塊。
4.根據(jù)權利要求1所述的仲裁結(jié)構,其中用于至少準備多個將被執(zhí)行的周期命令中的至少一個的模塊進一步包括用于至少準備多個存儲器刷新命令中的至少一個的模塊;以及用于至少準備多個存儲器擦除命令中的至少一個的模塊。
5.根據(jù)權利要求1所述的仲裁結(jié)構,其中用于至少確定多個讀取命令和多個寫入命令的優(yōu)先級順序的讀取/寫入優(yōu)先級模塊進一步包括可以被編程以便應用由多個讀取命令和多個寫入命令的任何組合所組成的優(yōu)先級順序的讀取/寫入優(yōu)先級模塊。
6.根據(jù)權利要求1所述的仲裁結(jié)構,其中用于根據(jù)讀取/寫入優(yōu)先級模塊從多個命令中至少選擇將被執(zhí)行的下一個命令的命令選擇模塊進一步包括至少被配置為從讀取命令模塊、寫入命令模塊、周期命令模塊以及讀取/寫入優(yōu)先級模塊接受輸入的命令選擇模塊。
7.根據(jù)權利要求6所述的仲裁結(jié)構,其中命令選擇模塊進一步包括先于準備好的讀取命令或準備好的寫入命令選擇準備好的周期命令的命令選擇模塊。
8.一種用于處理操作系統(tǒng)中不同類型的存儲器命令的方法,包括準備多個將被執(zhí)行的讀取命令中的至少一個;準備多個將被執(zhí)行的寫入命令中的至少一個;準備多個將被執(zhí)行的周期命令中的至少一個;確定多個讀取命令和多個寫入命令的優(yōu)先級順序;根據(jù)優(yōu)先級順序,從多個命令(讀取、寫入和周期)中選擇將被執(zhí)行的下一個命令;以及根據(jù)被選定的命令,執(zhí)行存儲器命令。
9.根據(jù)權利要求8所述的方法,其中準備多個將被執(zhí)行的讀取命令中的至少一個進一步包括堆積多個讀取命令;使該多個讀取命令中的最先的讀取命令與多個存儲體中的可用存儲體相配對;以及準備將被執(zhí)行的最先的讀取命令。
10.根據(jù)權利要求8所述的方法,其中準備多個將被執(zhí)行的寫入命令中的至少一個進一步包括堆積多個寫入命令;以及使該多個寫入命令中的最先的寫入命令與多個存儲體中的可用存儲體相配對;以及準備將被執(zhí)行的最先的寫入命令。
11.根據(jù)權利要求8所述的方法,其中準備多個將被執(zhí)行的周期命令中的至少一個進一步包括準備多個將被執(zhí)行的存儲器刷新命令中的至少一個;以及準備多個將被執(zhí)行的存儲器擦除命令中的至少一個。
12.根據(jù)權利要求8所述的方法,其中確定多個讀取命令和多個寫入命令的優(yōu)先級順序進一步包括設計允許存儲器系統(tǒng)有效地執(zhí)行命令的優(yōu)先級順序;以及對讀取/寫入優(yōu)先級模塊進行編程,以實現(xiàn)該優(yōu)先級順序。
13.根據(jù)權利要求8所述的方法,其中根據(jù)優(yōu)先級順序從多個命令中選擇將被執(zhí)行的下一個命令進一步包括先于準備好的讀取命令和準備好的寫入命令選擇準備好的周期命令。
14.一種用于處理操作系統(tǒng)中不同類型的存儲器命令的計算機程序產(chǎn)品,該計算機程序產(chǎn)品具有其上包含有計算機程序的媒體,其中該計算機程序包括用于準備多個將被執(zhí)行的讀取命令中的至少一個的計算機代碼;用于準備多個將被執(zhí)行的寫入命令中的至少一個的計算機代碼;用于準備多個將被執(zhí)行的周期命令中的至少一個的計算機代碼;用于確定多個讀取命令和多個寫入命令的優(yōu)先級順序的計算機代碼;用于根據(jù)優(yōu)先級順序從多個命令(讀取、寫入和周期)中選擇將被執(zhí)行的下一個命令的計算機代碼;以及根據(jù)被選定的命令執(zhí)行存儲器命令的計算機代碼。
15.根據(jù)權利要求14所述的計算機程序產(chǎn)品,其中用于準備多個將被執(zhí)行的讀取命令中的至少一個的計算機代碼進一步包括用于堆積多個讀取命令的計算機代碼;用于使該多個讀取命令中的最先的讀取命令與多個存儲體中的可用存儲體相配對的計算機代碼;以及用于準備將被執(zhí)行的最先的讀取命令的計算機代碼。
16.根據(jù)權利要求14所述的計算機程序產(chǎn)品,其中用于準備多個將被執(zhí)行的寫入命令中的至少一個的計算機代碼進一步包括用于堆積多個寫入命令的計算機代碼;以及用于使該多個寫入命令中的最先的寫入命令與多個存儲體中的可用存儲體相配對的計算機代碼;以及用于準備將被執(zhí)行的最先的寫入命令的計算機代碼。
17.根據(jù)權利要求14所述的計算機程序產(chǎn)品,其中用于準備多個將被執(zhí)行的周期命令中的至少一個的計算機代碼進一步包括用于準備多個將被執(zhí)行的存儲器刷新命令中的至少一個的計算機代碼;以及用于準備多個將被執(zhí)行的存儲器擦除命令中的至少一個的計算機代碼。
18.根據(jù)權利要求14所述的計算機程序產(chǎn)品,其中用于確定多個讀取命令和多個寫入命令的優(yōu)先級順序的計算機代碼進一步包括用于設計允許存儲器系統(tǒng)有效地執(zhí)行命令的優(yōu)先級順序的計算機代碼;以及用于對讀取/寫入優(yōu)先級模塊進行編程,以實現(xiàn)該優(yōu)先級順序的計算機代碼。
19.根據(jù)權利要求14所述的計算機程序產(chǎn)品,用于根據(jù)優(yōu)先級順序從多個命令中選擇將被執(zhí)行的下一個命令的計算機代碼進一步包括先于準備好的讀取命令和準備好的寫入命令選擇準備好的周期命令。
全文摘要
本發(fā)明提供了一種用于在操作系統(tǒng)中處理多個存儲器命令的仲裁方案的仲裁結(jié)構、方法和計算機程序。典型地,在存儲器系統(tǒng)中具有三種類型的存儲器命令周期、讀取和寫入。仲裁方案確定執(zhí)行這些命令的優(yōu)先級順序。該仲裁方案是靈活的,因為其包含可以被編程以便執(zhí)行讀取和寫入命令的任何優(yōu)先級順序組合的讀取/寫入優(yōu)先級模塊。這使得任何存儲器系統(tǒng)的仲裁方案都可以被容易地編程以實現(xiàn)最高效率。
文檔編號G06F13/16GK1773475SQ20051011944
公開日2006年5月17日 申請日期2005年11月11日 優(yōu)先權日2004年11月12日
發(fā)明者梅里薩·安·巴努姆, 肯特·哈羅德·哈塞爾霍斯特, 羅尼·蘭布雷奇特 申請人:國際商業(yè)機器公司