對包括非兼容性存儲器技術(shù)或與其接合的存儲器模塊的寫入流控制的制作方法
【專利說明】
【背景技術(shù)】
[0001]動態(tài)隨機訪問存儲器(DRAM)是一種在電容器中存儲數(shù)據(jù)位且需要電力來保持位值的易失性存儲器。因為需要電力來保持值,與靜態(tài)存儲器相對,DRAM被稱作易失性或動態(tài)存儲器。各種現(xiàn)代計算系統(tǒng)利用DRAM DIMMs來實施系統(tǒng)存儲器。DIMM(雙列直插存儲器模塊)是包括一些DRAM存儲器電路的計算機存儲器部件或模塊。DIMM可以是印刷電路板并且可以包括安裝在其上的DRAM存儲器電路。DIMM可以插入到計算系統(tǒng)的母板中或者與其連接以與存儲器總線接合,存儲器總線可以依次與存儲器控制器接合。
【附圖說明】
[0002]以下詳細描述參考附圖,其中:
[0003]圖1A是實施對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊的寫入流控制的示例性計算系統(tǒng)的方框圖;
[0004]圖1B是實施對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊的寫入流控制技術(shù)的示例性計算系統(tǒng)的方框圖;
[0005]圖2A是用于對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊進行寫入流控制的示例性方法的流程圖;
[0006]圖2B是用于對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊進行寫入流控制的示例性方法的流程圖;
[0007]圖3是用于對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊進行寫入流控制的示例性計算系統(tǒng)的方框圖;以及
[0008]圖4是用于對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊進行寫入流控制的示例性方法的流程圖。
【具體實施方式】
[0009]各種DIMM可以與雙倍數(shù)據(jù)率(DDR)數(shù)據(jù)傳輸標準兼容。在該情形中,為了使得存儲器控制器和存儲器總線和與DDR兼容的(DDR-compliant)DI麗通信,可能需要存儲器控制器和存儲器總線也與DDR兼容。因此在各種計算系統(tǒng)中,存儲器控制器和存儲器總線被設(shè)計為根據(jù)DDR數(shù)據(jù)率傳輸標準來操作(即,它們與DDR兼容)。在包括與DDR兼容的存儲器控制器的計算系統(tǒng)中,計算系統(tǒng)的各個其他部件(例如中央處理器、母板等)可以被設(shè)計為和與DDR兼容的存儲器控制器接合。此外,因為與DDR兼容的存儲器控制器可被設(shè)計為和與DDR兼容的存儲器總線以及與DDR兼容的DIMM接合,與DDR兼容的存儲器控制器可以被設(shè)計為預(yù)期某些存儲器通信特性。例如,當存儲器控制器向DIMM發(fā)出寫入命令(簡單地被稱作“寫入”)時,存儲器控制器可以預(yù)期在限定時間段(例如,短時間段)內(nèi)完成寫入。具體地講,DDR規(guī)范可要求存儲器控制器能夠以可預(yù)測、限定和相對快速的速率將寫入命令饋送至DIMM。換言之,DDR標準被稱作確定性協(xié)議,意味著當從存儲器控制器向存儲器總線發(fā)送命令時,預(yù)期命令將在特定數(shù)目的周期內(nèi)完成。DDR DRAM存儲器電路能夠在可預(yù)測、限定和相對快速的速率內(nèi)完成向它們發(fā)出的寫入命令,但是其他類型存儲器電路/技術(shù)不可以。
[0010]在一些情形中,實施(例如經(jīng)由DI麗或類似存儲器模塊)和與DDR兼容的存儲器總線以及存儲器控制器接合的非易失性存儲器技術(shù)(例如閃存、旋轉(zhuǎn)型硬驅(qū)等)是可取的。各種非易失性存儲器技術(shù)可能無法確保將在可預(yù)測、限定和/或相對快速速率內(nèi)完成向它們發(fā)出的寫入命令。例如,非易失性存儲器技術(shù)可以指示(例如經(jīng)由導(dǎo)線、線路或信號)何時寫入已經(jīng)完成,而不是以限定速率完成寫入命令。因為這些各種非易失性存儲器技術(shù)可能起不到可由與DDR兼容的存儲器控制器預(yù)期的作用,這種存儲器控制器可能無法與這些存儲器技術(shù)通信。
[0011]操縱非易失性存儲器技術(shù)的一些方案可以包括添加額外的導(dǎo)線或線路使得DIMM可以在DIMM(例如非易失性存儲器技術(shù))未準備好接受另一寫入時發(fā)信號。然而,該方案可能需要對計算系統(tǒng)的數(shù)個部件進行修改。例如,可能需要對母板、存儲器總線和存儲器控制器進行修改以針對這種信號運行額外的線路/導(dǎo)線。此外,可能需要對存儲器控制器進行修改以理解如何操縱/支持額外的線路/導(dǎo)線和信號。換言之,對于該方案可能至少需要非兼容性(例如與DDR兼容的)母板、存儲器總線和存儲器控制器。這可能需要系統(tǒng)管理員花費巨大成本來替換計算系統(tǒng)的各個部件。
[0012]操縱非易失性存儲器技術(shù)的其他方案可以包括(例如不在諸如DIMM的存儲器模塊上或者經(jīng)由這種模塊)連接在計算系統(tǒng)中的其他地方的這些技術(shù)。在該情形中,為了使得存儲器控制器(以及或許處理器)從這些非易失性存儲器技術(shù)讀取數(shù)據(jù),在存儲器控制器和/或處理器可以訪問數(shù)據(jù)之前,該數(shù)據(jù)可能首先需要被明確地移動至DIMM(例如DIMM上的DRAM存儲器電路)。除了其他潛在問題之外,數(shù)據(jù)的這種初步明確轉(zhuǎn)移可以是耗時的。
[0013]本公開描述了對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊的寫入流控制。本公開描述了一種允許非兼容性(例如非易失性)存儲器技術(shù)與兼容性(例如與DDR兼容的)存儲器總線和兼容性(例如與DDR兼容的)存儲器控制器接合的流控制模塊。這可以允許非易失性存儲器技術(shù)利用與存儲器控制器通信的益處(例如性能益處)。本公開描述了向存儲器控制器發(fā)送信用或信用計數(shù),其可以使得存儲器控制器抑制發(fā)送寫入命令以避免壓制各個存儲器電路/技術(shù)超越它們完成寫入的能力。本公開描述了一種在存儲器控制器(例如已修改但是仍然兼容性的存儲器控制器)與至少一個非兼容性存儲器電路/技術(shù)之間的流控制模塊。流控制模塊可以緩沖、追蹤和管理寫入命令,并且可以在存儲器控制器可以發(fā)出寫入命令時(例如經(jīng)由流控制信用)向存儲器控制器發(fā)信號。當存儲器控制器發(fā)出寫入命令時,其可以以與特定數(shù)據(jù)傳輸標準(例如DDR)兼容的方式發(fā)送它們;然而,如果各個存儲器電路/技術(shù)無法跟上,則存儲器控制器可以抑制發(fā)送寫入。例如,通過不壓制較慢的非易失性存儲器技術(shù),這些技術(shù)可以具有足夠時間來完成寫入命令。
[0014]本公開也可以提供在如下一些方案之上的益處:該方案包括添加額外的導(dǎo)線或線路使得DIMM在DIMM未準備好接受另一寫入時可以發(fā)信號。本公開描述了一種如下解決方案:可以經(jīng)由兼容性(例如與DDR兼容的)接口和布線路徑請求、讀取或發(fā)送流控制信用或信用計數(shù)。例如,寄存器可以保持已更新的流控制信用計數(shù)并且存儲器控制器可以通過向與寄存器相關(guān)聯(lián)的地址發(fā)出讀取命令而讀取該計數(shù)。在這點上,本公開可以允許高容量、低成本、非易失性存儲器與存儲器控制器接合,這可以允許這些存儲器在計算系統(tǒng)中在傳統(tǒng)存儲器(例如DDR DRAM存儲器)的旁邊工作。額外地,兼容性(例如與DDR兼容的)存儲器控制器可以與具有未知或不確定寫入延遲的存儲器電路/技術(shù)通信。
[0015]在本公開全文中,術(shù)語“兼容性(compliant) ” (例如在兼容性存儲器技術(shù)或兼容性存儲器控制器中)可指被設(shè)計為與特定數(shù)據(jù)傳輸標準(例如DDR或其他數(shù)據(jù)傳輸標準)兼容的計算機部件。同樣地,術(shù)語“非兼容性(non-compliant) ”可指未被設(shè)計為與特定數(shù)據(jù)傳輸標準兼容(或者與其不兼容)的計算機部件。術(shù)語“數(shù)據(jù)傳輸標準”可以指如下的協(xié)議:數(shù)據(jù)通過該協(xié)議在一些通信導(dǎo)線或線路(例如在其之上發(fā)送和/或接收信息的金屬導(dǎo)線)之上傳輸。數(shù)據(jù)傳輸標準可以規(guī)定數(shù)據(jù)傳輸周期的數(shù)目,各個命令(例如讀取、寫入等)的時序以及可能對一個計算機部件發(fā)送和/或從另一計算機部件接收數(shù)據(jù)所需的各種其他細節(jié)。作為一個具體示例,如果數(shù)據(jù)傳輸標準是DDR,則計算機部件可以是針對DDR數(shù)據(jù)傳輸標準的兼容性(例如與DDR兼容的)計算機部件或非兼容性(例如與DDR不兼容的)計算機部件。在DDR的情況下,一些非易失性存儲器電路或技術(shù)是非兼容性計算機部件的示例,例如,因為它們并非如易失性DDR存儲器電路一樣工作。因此,在以下各個說明中,當參考非易失性存儲器電路或技術(shù)時,可以推斷的是,其是非兼容性計算機部件。非易失性存儲器技術(shù)(例如它們與DDR不兼容)的示例可以包括PCRAM、SATA、STT-RAM、reRAM、憶阻器(memristor)、閃存和PCIe上的旋轉(zhuǎn)型磁盤。本公開也可以適用于各種其他類型的非易失性存儲器技術(shù)。在本公開全文中,術(shù)語“命令”(例如在寫入命令或讀取命令中)可指多位數(shù)字值,其中每個位可以在專用通信導(dǎo)線或線路之上發(fā)送。命令可以具有多個“字段”,其中每個字段是多位數(shù)字值。示例性的字段可以是“地址”(addr)、“命令”(cmd)和“數(shù)據(jù)”。不應(yīng)將命令字段(即,cmd)與更廣泛命令(例如寫入或讀取命令)混淆。Cmd字段可以指示更廣泛命令意旨何種類型命令,并且更廣泛命令可以包括執(zhí)行命令所需的額外信息(例如地址和數(shù)據(jù))。
[0016]圖1A是示例性計算系統(tǒng)100的方框圖,其實施了對包括非兼容性存儲器技術(shù)或者與其接合的存儲器模塊的寫入流控制。計算系統(tǒng)100可以是任何計算系統(tǒng)或計算裝置,其包括例如經(jīng)由存儲器總線(例如104)訪問存儲器模塊(例如106)的存儲器控制器(例如102)。在圖1A的示例中,涉及的數(shù)據(jù)傳輸標準是DDR;然而,應(yīng)該理解的是,在此所述的技術(shù)和解決方案可以采用任何其他數(shù)據(jù)傳輸標準。計算系統(tǒng)100可以包括存儲器控制器102、存儲器總線104、存儲器模塊106、處理器108以及母板和