專利名稱:全緩沖dimm讀數據替代寫確認的制作方法
技術領域:
本發明一般涉及存儲系統、組件和方法,特別是涉及有效地引退 (retire)重放隊列中的條目的全緩沖存儲控制器。
背景技術:
通常使用存儲模塊來實現常規計算機存儲子系統。計算機電路板 裝配了具有集成存儲控制器或耦合到獨立存儲控制器的處理器。具有 集成存儲控制器或獨立存儲控制器的處理器通過存儲器總線連接到一 個或多個存儲模塊電連接器(總線也可連接到永久地安裝在電路板上 的附加存儲器)。按照電連接器中插入的存儲;f莫塊的數量和存儲容量來 配置系統存儲器。
當處理器速度增加時,將存儲器總線速度壓制到多點(通常稱作 "多分支(multi-drop)")存儲器總線模型不再保持可行的點。參照圖1, 一種現行解決方案使用"點對點"存儲器總線模型,該模型使用緩沖 存儲模塊。在圖1中,計算機系統100包括主處理器105,它通過前 端總線108與存儲控制器110進行通信,存儲控制器110將主處理器 耦合到各種外圍裝置(除系統存儲器之外其余未示出)。存儲控制器110 通過高速點對點總線112與第一緩沖存儲才莫塊0進行通信。當第二緩 沖存儲模塊1包含在系統100中時,它與第一存儲才莫塊O共享第二高 速點對點總線122。附加高速點對點總線和緩沖存儲片莫塊可鏈接(chain) 在存儲模塊l之后,以便進一步增加系統存儲器容量。
緩沖存儲模塊0通常屬于存儲模塊。存儲模塊緩沖器(MMB)146 將沖莫塊0連接到主機側存儲信道112和下游存儲信道122。多個存儲 設備(示出動態隨機存取存儲設備即"DRAM"、如DRAM 144)通過
存儲設備總線(圖1中未示出)連接到存儲模塊緩沖器146,以便為系統 100提供可尋址讀/寫存儲器。作為一示范轉儲,考慮處理器105需要 訪問與位于存儲才莫塊1上的物理存儲器對應的存儲器地址的情況。向 存儲控制器IIO發出存儲器請求,然后,存儲控制器IIO在主存儲信 道112上發出送往存儲模塊1的存儲器命令。存儲控制器110還將對 應于存儲器命令的條目115指定到重放隊列111中。與先前存儲器命 令對應的先前條目可處于隊列111中的條目115之前。
為了易處理的原因,僅在滿足兩個條件之后,才可從隊列111中 引退條目115。首先,存儲控制器110僅在接收到對應的無差錯響應 之后才引退條目。其次,存儲控制器IIO僅在已經引退所有先前條目 時才引退條目。
緩沖存儲才莫塊0的MMB 146接收該命令,必要時使它重新同步, 并在存儲信道122上將它重新發送給緩沖存儲模塊1的MMB 148。 MMB 146檢測到該命令^皮導向它自己,對該命令解碼,并向那個緩沖 器所控制的DRAM傳送DRAM命令和信令。如果轉儲是成功的,則 MMB 148通過存儲模塊0向存儲控制器110回送無差錯響應。在接收 到無差錯響應之后,但是僅當還引退了所有先前條目時,存儲控制器 IIO才從重放隊列111中引退條目115。
由于經濟性,,重放隊列111的大小受到限制。因此,需要盡可能 迅速地引退條目。由于高速點對點總線112的北行帶寬限制,可能延 遲無差錯響應、如寫確認的接收。這樣一種寫確認的延遲#~收轉而可 延遲在條目115之后進入重放隊列111的后續條目的引退。條目和后 續條目的延遲引退限制了重放隊列111中對于新條目可用的空間量。
由于上述限制,存儲控制器的重放隊列中的自由空間量受到限制。 以下7>開解決這個和其它問題。
圖1是示出常規存儲控制器的簡圖。
圖2是響應單個無差錯響應而從重放隊列中引退兩個條目的存儲 控制器的簡圖。
圖3是示出圖2的存儲控制器如何引退條目的流程圖。
圖4A是示出圖2所示的操作的時序圖。
圖4B是示出圖2的存儲控制器的備選操作的時序圖。
具體實施例方式
圖2示出按照單個無差錯響應來引退兩個重放隊列條目的存儲控 制器200的一個示例。存儲控制器200包括發出引擎(issue engine)201、 存儲器202和重放隊列203。發出引擎201執行圖3的流程圖中所描 述的功能。在圖4a的時序圖中示出圖2所示的信號的時間安排。
存儲控制器200向存儲模塊1發送存儲器命令204a。在這個示例 中,存儲器命令204a是突發長度八的讀命令,該讀命令包括多循環讀 操作的起始地址。在其它示例中,存儲器命令是任何類型的讀命令。 在重放隊列203中創建與存儲器命令204a對應的條目204b。在接收 到存儲器命令204a時,存儲模塊1首先以起始地址開始讀取數據。當 存儲^f莫塊1正讀取數據時,該才莫塊在無差錯存儲器響應204c中回送讀 數據。
隨后,存儲控制器200向位于存儲模塊1的北方的存儲模塊0發 送存儲器命令205a。在這個示例中,存儲器命令205a是突發長度四的 寫命令,該寫命令在四個連續選通脈沖期間向存儲才莫塊0提供寫數據。 在其它示例中,存儲器命令205a是任何類型的寫命令。在重放隊列 203中創建與存儲器命令205a對應的條目205b。條目205b是相對于 條目204b的連續條目。在接收到存儲器命令205a時,存儲模塊0開 始寫入^皮提供存儲器命令205a的數據。存儲模塊0與存儲才莫塊1根據 存儲器命令204b讀取數據并發地開始寫入數據。
存儲控制器200向位于存儲模塊0的南方的存儲模塊1發送存儲 器命令206a。存儲器命令206a是與存儲器命令204a相似的突發讀命
令。在重放隊列203中創建與存儲器命令206a對應的條目206b。
存儲模塊0根據突發長度四的寫命令205a來完成寫入數據。但是, 因為存儲模塊1仍然正經由存儲模塊0的存儲模塊緩沖器(MMB)245 發送讀數據,所以不存在存儲模塊O發送無差錯響應205c的可用帶寬。 包含讀數據的無差錯響應204c消耗北行方向的所有帶寬。因此,存儲 控制器200在這時不會觀測到包含寫確認的無差錯響應。
在根據存儲器命令204a讀取數據之后,存儲纟莫塊1開始根椐存儲 器命令204c讀取數據。當存儲才莫塊l正讀取數據時,它在無差錯響應 206c中回送讀數據。無差錯響應206c消耗北行方向的所有帶寬,并在 無差錯響應204c之后立即被發送。根據常規FBD協議,存儲控制器 200必須繼續等待觀測無差錯響應205c,直到帶寬可用為止。說明書 中所使用的"FBD協議"指的是例如JEDEC網站的FBD規范的任何 修訂版本。無差錯響應205c可包括顯式信號,例如空閑模式或寫確認。
存儲控制器200接收無差錯響應204c。從重放隊列203中引退條 目204b,因為不存在未決的先前條目。雖然存儲控制器200沒有接收 到與條目205b對應的顯式無差錯響應205c,但是,存儲控制器200 還可響應不對應無差錯響應204c而引退條目205b。這與常規FBD協 議形成對照,其中存儲控制器200必須繼續等待無差錯響應205c。因 此,可響應單個無差錯響應204c而引退兩個條目。
由于以下事件,在接收到不對應無差錯響應204c時,可引退條目 205b。第一,條目205b對應于對位于被讀取的存儲模塊的北方的存儲 模塊的寫入。第二,寫入與從南方的存儲模塊中的讀取并發地發生。 第三,沒有接收到與存儲器命令205a對應的告警。與存儲器命令205a 對應的告警會獲得高于無差錯響應204c的優先級。因此,無差錯響應 204c的接收隱式地發信號通知存儲控制器200關于沒有發出告警以及 存儲器命令205a應當已經成功。因此,可有利地在接收到對應無差錯 響應205c之前及早引退條目205b。
隨后,接收到無差錯響應206c。可有利地立即引退條目206b,因
為存儲器隊列203中不存在先前條目。如果存儲控制器200在引退條 目205b之前等待對應無差錯響應205c,則先前條目會存在,從而引 起引退206b中的遲延。因此,與常規存儲控制器相比,存儲控制器 200及早引退條目205b和206b。
最后,可接收包含寫確認的無差錯響應205e。因為已經發信號通 知存儲控制器200關于存儲器命令205a是成功的,所以存儲控制器 200可放棄觀測顯式無差錯響應205c。任選地,由于存在上述事件而 放棄顯式寫確認205c有利地增加南行占用率。南行占用率的增加使最 大帶寬增加超過具有相似重放隊列限制的常規系統的多達50%。
上述過程如圖3的流程圖所示。參照圖3,在框300,存儲控制器 200發出讀命令,以便使第一存儲模塊被讀取。在框301,發出寫命令, 以便使比第 一存儲模塊更向北的第二存儲模塊被并發地寫入。隨后, 在框302,存儲控制器200在重放隊列203中創建與讀命令對應的第 一條目。在框303,創建與寫命令對應的第二條目。
隨后,在框304,存儲控制器200等待與讀命令對應的無差錯響 應。如果在框305接收到無差錯響應,則在框306A,存儲控制器200 引退兩個條目。如果沒有接收到無差錯響應,則在框306B,存儲控制 器200重置該分支,然后對重放隊列203的內容進行重放。
圖4A示出圖2所示系統的時序圖。DIMM 1從存儲控制器200 接收讀命令204a,并在T6開始讀取數據。DIMM0接收寫命令205a, 并在T7與DIMM 1讀取數據并發地開始寫入數據。當DMM 1正讀 取數據時,從DIMM1的傳輸204c在T7開始。傳輸204c繼續進行到 T10,由此防止存儲控制器200立即觀測顯式寫確認205c。
同時,DIMM 1在T9從存儲控制器200接收讀命令206a,并開始 進行讀取。緊接DIMM 1完成傳輸204c之后,傳輸206c在T 開始。 存儲控制器200仍然無法^L測顯式寫確i人205c,因為傳輸204c和206c 消耗所有北行帶寬。
同時,存儲控制器200在T8開始從DIMM 1接收讀數據傳輸204c。
當傳輸在Tu完成時,存儲控制器200從重放隊列203中引退條目204b。 存儲控制器200還響應接收到不對應無差錯響應204c而從重放隊列 203中引退條目205b。不對應無差錯響應204c不響應存儲器命令205a 而被發送,并且不對應于條目205b。然而,條目205b被引退。最后, 在丁15,存儲控制器200接收無差錯響應206c,并引退條目206b。
無需使存儲控制器200在第一開始(opening)Tu觀測寫確認205c。 通過放棄顯式觀測寫確認205c,可為其它傳輸節省帶寬。
圖4B示出按照與圖2所示不同的傳輸系列的時序圖。存儲控制器 200使DMM 1在T6開始第一讀取以及DIMM 0在T 開始寫入數據。 存儲控制器200還使DIMM 0在TK)開始第二讀取。
存儲控制器200在T8開始4妾收與第一讀取對應的無差錯響應。當 在Tn接收到與第一讀取對應的完整無差錯響應時,與第一讀取和所 述寫入相關聯的條目均被引退。換言之,響應不對應無差錯響應而引 退與所述寫入相關聯的條目。最后,存儲控制器200在T!5引退與第二 讀取相關聯的條目。
以上所述的系統可使用執4亍操作的部分或全部的專用處理器系 統、微控制器、可編程邏輯設備或微處理器。以上所述操作的一部分 可通過軟件來實現,而其它操作可通過硬件來實現。
為了方便起見,操作描述為各種互連功能塊或不同的軟件;漠塊。 但是,這不是必要的,并且可能存在一些情況,其中以不清晰的界限 將這些功能塊或才莫塊等效地聚合到單個邏輯設備、程序或操作中。在 任何情況下,功能塊和軟件模塊或者靈活界面的特征可單獨實現,或 者結合硬件或軟件中的操作來實現。
已經在本發明的優選實施例中描述和說明了本發明的原理,應當 清楚地知道,可在不背離這類原理的前提下,對本發明的設置和細節 進行修改。謹要求落入以下權利要求書的精神和范圍之內的所有修改 和變更的4又益。
權利要求
1.一種存儲控制器,包括控制邏輯,響應通過點對點存儲器總線從存儲模塊發送的單個響應而引退一引退隊列中的至少兩個條目。
2. 如權利要求l所述的存儲控制器,其中 所述至少兩個條目的第一條目對應于使第一存儲才莫塊進行讀取的第一存儲器命令;以及所述至少兩個條目的第二條目對應于使第二存儲模塊進行寫入的 第二存儲器命令。
3. 如權利要求2所述的存儲控制器,其中,所述第一存儲模塊是 所述存儲^^莫塊并且位于所述第二存儲才莫塊的南方。
4. 如權利要求3所述的存儲控制器,其中,所述單個響應對應于 所述第 一條目和所述第 一存儲器命令。
5. 如權利要求4所述的存儲控制器,其中,所述單個響應包括從 所述第 一存儲才莫塊中讀取的數椐。
6. 如權利要求5所述的存儲控制器,其中,所述第一存儲器命令 指導所述第二存儲才莫塊與所述第一存儲才莫塊讀取并發地進行寫入。
7. —種方法,包括發送使第 一存儲坤莫塊進行讀取的第 一存儲器命令;發送使第二存儲4莫塊進行寫入的第二存儲器命令,所述第二存儲 模塊比所述第一存儲沖莫塊更向北;指定與所述第 一存儲器命令對應的第 一隊列條目以及與所述第二 存儲器命令對應的第二隊列條目;以及響應從所述第一存儲才莫塊始發的響應而引退兩個隊列條目。
8. 如權利要求7所述的方法,其中,所述響應包括從所述第一存 儲模塊中讀取的數據。
9. 如權利要求7所述的方法,其中,所述響應不對應于所述第二存儲器命令。
10. 如權利要求7所述的方法,其中,沒有接收到響應所述第二 存儲器命令的寫確認。
11. 如權利要求7所述的方法,還包括與所述第一存儲才莫塊讀 取并發地將數據寫入所述第二存儲;^莫塊。
12. 如權利要求7所述的方法,其中,所述第一存儲器命令包括 突發長度八的讀取或者一對緊接的開放頁突發長度四的讀取。
13. —種存儲裝置,包括接收南行存儲器讀命令的控制邏輯,所述控制邏輯將所述南行存 儲器讀命令轉發給存儲模塊的存儲模塊緩沖器,接收存儲器寫命令,向存儲控制器轉發與所述存儲器讀命令對應的北行響應,以及確定是 否發送與所述存儲器寫命令對應的無差錯響應。
14. 如權利要求13所述的存儲裝置,其中,所述存儲控制器根據 所述北行響應來確定發生寫入。
15. 如權利要求13所述的存儲裝置,其中,所述響應包括從所述 存儲模塊中讀取的數據。
16. 如權利要求13所述的存儲裝置,其中,所述存儲控制器響應 所述北行響應而引退重放隊列中的兩個條目,所述北行響應包括從所 述存儲^t塊中讀取的數據。
17. —種系統,包括向第 一存儲模塊發送第 一存儲器命令的控制邏輯;響應所述第 一存儲器命令而進行讀取的所述第 一存儲沖莫塊;向第二存儲模塊發送第二存儲器命令的所述控制邏輯,所述第二存儲模塊比所述第 一存儲才莫塊更向南;響應所述第二存儲器命令而進行寫入的所述第二存儲才莫塊; 指定與所述第一存儲器命令對應的第一隊列條目和與所述第二存儲器命令對應的第二隊列條目的所述控制邏輯;以及響應從所述第一存儲^^莫塊始發的響應而引退兩個隊列條目的所述 控制邏輯。
18. 如權利要求17所述的系統,其中,所述響應包括從所述第一存儲才莫塊中讀取的數據。
19. 如權利要求17所述的系統,其中,所迷響應不對應于所述第 二存儲器命令。
20. 如權利要求17所述的系統,其中,沒有接收到響應所述第二 存儲器命令的寫確認。
21. 如權利要求17所述的系統,還包括與所述笫一存儲模塊讀 取并發地將數據寫入所述第二存儲模塊的所述控制邏輯。
22. 如權利要求18所述的系統,其中,所述第一存儲器命令包括 突發長度八的讀取或者一對緊接的突發長度四的讀取。
全文摘要
存儲控制器因單個無差錯響應而使用某種方案從重放隊列中引退兩個條目。有利的是,可比常規系統更早地引退重放隊列中的條目,從而使重放隊列的大小為最小。
文檔編號G06F13/42GK101346708SQ200680049022
公開日2009年1月14日 申請日期2006年12月11日 優先權日2005年12月28日
發明者B·A·克里斯藤森, J·W·亞歷山大, K·程, R·阿加瓦爾 申請人:英特爾公司