專利名稱:存儲器模塊中獨立受控的虛擬存儲器設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及存儲器模塊,并且具體地,涉及被配置為允許包括一個或多個存儲器芯片的單獨虛擬存儲器設(shè)備的獨立控制的存儲器模塊。
背景技術(shù):
在現(xiàn)代計算機系統(tǒng)中,對于存儲器容量和帶寬的需求保持增長。微處理器的近來的性能擴展取決于增加每芯片內(nèi)核的數(shù)量,并且多核和很多內(nèi)核的單芯片多處理器 (“CMP”)通過每處理器多個存儲器控制器而要求甚至更高的存儲器帶寬和容量。因此,主存儲器模塊的功率預(yù)算變得與當(dāng)前計算機系統(tǒng)中的處理器的功率預(yù)算相似,或者甚至高于當(dāng)前計算機系統(tǒng)中的處理器的功率預(yù)算。然而,典型的存儲器模塊是能量低效的。例如,每存儲器訪問激活太多比特,并且被訪問的多數(shù)比特在未使用的情況下被存儲回去,浪費了動態(tài)功率。通過利用訪問模式的局部性,可以通過編譯器或存儲器控制器組合多個時間上鄰近的存儲器訪問,以便每存儲器激活使用更多的比特,但這些努力在具有不規(guī)則訪問模式的應(yīng)用中獲得有限的成功。由于來自多個線程的獨立存儲器訪問請求是交錯的,因此這種方法的效率受到一般應(yīng)用中的存儲器訪問的隨機性質(zhì)的限制并且在CMP存儲器系統(tǒng)中甚至惡化。期望的是在不明顯地犧牲系統(tǒng)性能的情況下節(jié)省能量的使得能夠?qū)Υ鎯υ诖鎯ζ飨到y(tǒng)中的信息進行訪問的存儲器系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明的各個實施例涉及多核存儲器模塊。在一個實施例中,存儲器模塊包括至少一個虛擬存儲器設(shè)備以及電子地連接到該至少一個虛擬存儲器設(shè)備和存儲器控制器的多路分配器(demultiplexer)寄存器。多路分配器寄存器從存儲器控制器接收標識該至少一個虛擬存儲器設(shè)備之一的命令,且將該命令發(fā)送到該命令標識的虛擬存儲器設(shè)備。該至少一個虛擬存儲器設(shè)備中的每一個包括至少一個存儲器芯片。
圖IA示出具有八個存儲器芯片的存儲器模塊的等距視圖。圖IB示出電路板上安裝的存儲器模塊和存儲器控制器的等距視圖。圖2示出構(gòu)成存儲器芯片的八個存儲體(bank)的示意性表示。圖3A示出傳統(tǒng)存儲器模塊的示意性表示。圖;3B示出將命令廣播到傳統(tǒng)存儲器模塊的所有存儲器芯片的示例。圖4A示出根據(jù)本發(fā)明實施例配置的單個多核存儲器模塊的等距視圖。圖4B示出根據(jù)本發(fā)明實施例的電路板上安裝的多核存儲器模塊和存儲器控制器的等距視圖。圖5A示出根據(jù)本發(fā)明的實施例配置的多核、雙列直插(dual in-line)存儲器模塊的一般示意性表示。圖5B示出根據(jù)本發(fā)明的某些實施例配置的第一多路分配器寄存器的示意性表示。圖5C-D示出根據(jù)本發(fā)明的其他實施例配置的第二多路分配器寄存器的示意性表示。圖6A-6D示出根據(jù)本發(fā)明的實施例配置的多核、雙列直插存儲器模塊和兩個相關(guān)的多路分配器寄存器的第一示例的示意性表示。圖7A-7D示出根據(jù)本發(fā)明的實施例配置的多核、雙列直插存儲器模塊和兩個相關(guān)的多路分配器寄存器的第二示例的示意性表示。圖8示出根據(jù)本發(fā)明的實施例的配置成支持糾錯碼的多核、雙列直插存儲器模塊的示意性表示。圖9示出根據(jù)本發(fā)明的實施例的用于控制包含至少一個虛擬存儲器設(shè)備的存儲器模塊的方法的控制流程圖。
具體實施例方式本發(fā)明的各種實施例涉及多核存儲器模塊,該存儲器模塊設(shè)計為在對系統(tǒng)性能具有較小影響的情況下改善存儲器系統(tǒng)的能量效率。存儲器模塊包括存儲器芯片,存儲器芯片被劃分成稱為“虛擬存儲器設(shè)備”(“VMD”)的一個或多個存儲器芯片的組。存儲器芯片可以是動態(tài)隨機存取存儲器(“DRAM”)芯片。每個VMD具有其自己的數(shù)據(jù)路徑且可以以時分復(fù)用的方式通過命令總線接收分離的存儲器請求。結(jié)果,與傳統(tǒng)存儲器模塊相比,每存儲器訪問涉及更少的存儲器芯片,并且更少的比特被存儲回去。存儲器芯片可以不經(jīng)任何修改地使用,且?guī)缀鯖]有功能性變化被添加到存儲器模塊寄存器以向每個VMD提供不同的命令。詳細描述被如下組織。在第一子部分中描述傳統(tǒng)存儲器模塊和相關(guān)的能量低效的一般描述。在第二子部分中提供存儲器模塊實施例和能量效率增強的描述。^mmtmm諸器φ的能χ氏效
存儲器模塊典型地包括形成被稱為“雙列直插存儲器模塊”(“DIMM”)的存儲單元的印制電路板上安裝的若干DRAM芯片。圖IA示出包括八個DRAM芯片的單個DIMM的等距視圖。 然后在電路板上安裝一個或多個DIMM,并且由存儲器控制器控制該一個或多個DIMM。圖IB 示出電路板106上安裝的存儲器102和存儲器控制器104的等距視圖。存儲器102由插入四個DIMM插槽112-115的四個DIMM 108-111組成。存儲器控制器104是計算機芯片或多核微處理器芯片的部分,其管理發(fā)送到DIMM 108-111以及從DIMM 108-111發(fā)送的命令和數(shù)據(jù)流,并且將存儲器102與計算機系統(tǒng)的其他主要組件(例如中央處理單元)對接。每一 DIMM經(jīng)由接口 118與存儲器控制器104進行電通信。接口 118是載送從存儲器控制器104 到存儲器102的時鐘信號和命令以及DMM 108-111與存儲器控制器104之間的數(shù)據(jù)信號的總線。數(shù)據(jù)信號在DIMM 108-111中的DRAM芯片與存儲器控制器104之間并行地發(fā)送。 接口 118可以支持單數(shù)據(jù)率(“SDR”)、雙數(shù)據(jù)率(“DDR”)以及更高的數(shù)據(jù)率傳送。SDR指的是每時鐘周期發(fā)送數(shù)據(jù)一次,以及DDR指的是在計算機系統(tǒng)時鐘信號的上升沿和下降沿都發(fā)送數(shù)據(jù)。存儲器控制器104和DIMM 108-111可以被配置為根據(jù)SDR和DDR發(fā)送并且接收數(shù)據(jù)。在DDR中通過使用時鐘的兩個沿,數(shù)據(jù)信號在相同的極限頻率操作,相比單數(shù)據(jù)率傳輸使得數(shù)據(jù)傳輸率加倍。DRAM芯片將比特存儲在由晶體管和電容器組成的被稱為DRAM存儲器單元的結(jié)構(gòu)中。單個DRAM芯片中存在數(shù)十億個單元,以及可以以被稱為“存儲體”的許多二維陣列的二維布置組織這些單元。圖2示出構(gòu)成DRAM芯片200的標為0_7的八個存儲體的示意性表示。如圖2的示例中所示,每一存儲體經(jīng)由交叉信號線連接到行解碼器、感測放大器以及列解碼器。例如,存儲體0經(jīng)由與χ軸平行走線的信號線(例如信號線204)連接到行解碼器202。存儲體0還經(jīng)由與y軸平行走線的信號線(例如信號線210)連接到感測放大器 206和列解碼器208。存儲器單元位于信號線交點處。例如,存儲器單元212位于信號204 和210交叉的點處。從存儲器控制器104發(fā)送到存儲器102的命令包括READ(讀)、WRITE(寫)、ACTIVATE (激活)、REFRESH (刷新)和PRECHARGE (預(yù)充電)。命令由控制信號和地址信號組成。控制信號表示命令執(zhí)行的操作,以及地址信號標識在其執(zhí)行命令的DRAM芯片中的存儲體地址和行地址或列地址。例如,ACTIVATE命令由激活控制信號和標識在DRAM芯片內(nèi)的哪個存儲體和行執(zhí)行ACTIVATE命令的存儲體地址和行地址組成。READ和WRITE命令由讀取和寫入控制信號以及標識在DRAM芯片中的哪個存儲體和列執(zhí)行READ和WRITE命令的存儲體地址和列地址組成。在兩個步驟中訪問DRAM芯片200的存儲體中存儲的數(shù)據(jù)。首先,存儲器控制器(未示出)發(fā)送指定DRAM芯片200的行地址和存儲體地址的ACTIVATE命令。將典型地是存儲體的8K比特或16K比特的行中的所有比特激活到存儲體內(nèi)的感測放大器中。其次,發(fā)送指定存儲體地址和列地址的一個或多個READ/WRITE命令。數(shù)據(jù)總線的大小和突發(fā)長度確定每READ/WRITE事務(wù)傳送的比特的數(shù)量。突發(fā)長度是控制在數(shù)據(jù)塊的單個突發(fā)事務(wù)或高速傳輸中執(zhí)行的READ/WRITE操作的數(shù)量的常見的存儲器有關(guān)的基本輸入/輸出系統(tǒng)設(shè)置。典型地,將突發(fā)長度設(shè)置為4或8。當(dāng)DRAM芯片接收到例如存儲器READ請求時,芯片通過跨接口 118的信號線提供數(shù)據(jù)來進行響應(yīng)。突發(fā)長度確定響應(yīng)于存儲器READ請求發(fā)送的數(shù)據(jù)塊的大小。具有64比特寬的數(shù)據(jù)總線(即64個單端信號線或1 個差分信號線)和被配置為支持4的突發(fā)長度的DRAM芯片的存儲器模塊響應(yīng)于來自存儲器控制器的單個READ請求發(fā)送32字節(jié)(4x64比特=32字節(jié))的數(shù)據(jù)塊。另一方面,具有64比特寬的數(shù)據(jù)總線和被配置為支持8的突發(fā)長度的DRAM芯片的存儲器模塊響應(yīng)于來自存儲器控制器的單個READ 請求發(fā)送64字節(jié)(8x64比特=64字節(jié))的數(shù)據(jù)塊。當(dāng)在DRAM芯片的同一存儲體中的兩個不同行中讀取數(shù)據(jù)時,在可以讀取第二行中的數(shù)據(jù)之前,必須寫回第一行,對位線充電,以及通過PRECHARGE命令以及ACTIVATE命令鎖存第二行。PRECHARGE命令將該行寫回到DRAM存儲體,因為ACTIVATE命令破壞性地讀取,所以這是必須的。在READ命令、WRITE命令、ACTIVATE命令和PRECHARGE命令中,存儲體地址由小數(shù)量的比特給出。在同一存儲體中,在第一 ACTIVATE和第二 ACTIVATE命令之間,這些命令操作一般花費大約50ns。因此,除非ACTIVATE命令與PRECHARGE命令之間存在很多READ/WRITE命令,否則命令/地址/數(shù)據(jù)總線經(jīng)常保持空閑。然而,如果在不同存儲體中讀取數(shù)據(jù),則因為兩個不同存儲體之間的ACTIVATE至ACTIVATE時間短了大約8ns, 所以可以流水線化到不同存儲體的命令。因此,通過交錯不同存儲體中的請求可以實現(xiàn)更高的吞吐量,當(dāng)ACTIVATE和PRECHARGE命令對之間不存在很多READ/WRITE命令時尤其如此。圖3A示出包括其中每一個具有8比特數(shù)據(jù)總線的8個DRAM芯片的傳統(tǒng)DMM 300 的示意性表示。方向箭頭302表示從存儲器控制器(未示出)發(fā)送到稱為寄存器304的可選設(shè)備的命令的分送。寄存器304位于存儲器控制器與DRAM芯片之間的總線上。寄存器 304鎖存來自存儲器控制器的命令信號,然后以更好的信號質(zhì)量和定時裕度將它們轉(zhuǎn)發(fā)到每一 DRAM芯片,以減少存儲器控制器上的電負載并且保持命令信號的穩(wěn)定性。寄存器304 也可以緩沖命令,并且將時鐘信號廣播到DRAM芯片,以在每存儲器控制器具有多個DIMM的系統(tǒng)中促進對不同DIMM的交疊訪問。寄存器304通過總線將命令廣播到所有8個DRAM芯片,如通過分支方向箭頭306和308指示的那樣。在其它傳統(tǒng)存儲器模塊中,將命令廣播到 DRAM芯片而不用寄存器304。圖:3B示出傳統(tǒng)DIMM操作的示例。如圖的示例中所示,DIMM 300內(nèi)的所有DRAM 芯片從存儲器控制器接收相同命令,并且激活陰影區(qū)域310表示的每一 DRAM芯片中的相同行。結(jié)果,DIMM 300內(nèi)的所有DRAM芯片充當(dāng)具有更寬數(shù)據(jù)路徑和更大行的單個DRAM芯片。如上參照圖2描述的那樣,DRAM芯片行的大小典型地是8(或16K比特)。為了讀取緩存線或者將緩存線寫入DIMM,將READ/WRITE命令廣播到所有DRAM芯片,并且每一 DRAM 芯片激活相同行。換句話說,在由8個DRAM芯片組成的典型DIMM中,每一 DRAM芯片激活包括8K比特的相同行地址。因此,一次激活DI匪的DRAM單元的8x8K比特或64Κ比特,其大于待讀取或?qū)懭氲木彺婢€的大小。典型緩存線在64字節(jié)或512比特的量級。因此,因為典型地使用少于1%的激活的DRAM單元在一個緩存線中讀取或?qū)懭隦EAD和WRITE命令,所以對于單個READ或WRITE事務(wù)未使用超過99%的激活的DRAM單元,這是能量的低效使用。本發(fā)明的實施例
本發(fā)明的存儲器模塊實施例引入用于從存儲器控制器接收命令的多路分配器寄存器 (“多路分配器寄存器”)。存儲器芯片可以被一起分組為VMD且與多路分配器寄存器一起安裝在印刷電路板上以形成稱為“多核雙列直插存儲器模塊”(“MCDMM”)的單個存儲單元。 在某些實施例中,存儲器芯片可以是DRAM芯片。圖4A示出根據(jù)本發(fā)明的實施例配置的包含布置在電路板412上的8個DRAM芯片401-408和多路分配器寄存器410的單個MCDMM 400的等距視圖。DRAM芯片410-408可以分組成包含一個或多個DRAM芯片的VMD,其示例在下面更詳細地描述。與傳統(tǒng)DMM類似,一個或多個MCDMM可以安裝在電路板上且由存儲器控制器控制。圖4B示出根據(jù)本發(fā)明的實施例的安裝在電路板似4上的存儲器420和存儲器控制器 422的等距視圖。存儲器420包含分別插入DIMM插槽430-433的MCDIMM 426-429 MCDIMM 400具有存儲器控制器422和存儲器模塊426-429的多路分配器寄存器之間的接口 434。 接口 434包括從存儲器控制器422到存儲器420載送命令信號的總線以及在存儲器控制器 422和存儲器420之間載送數(shù)據(jù)信號的數(shù)據(jù)總線。在該架構(gòu)中,存儲器控制器422發(fā)送的命令并不廣播到存儲器420的DRAM芯片。相反,存儲器控制器420向MCDMM似6_似9的多路分配器寄存器發(fā)送命令。MCDIMM似6-4四中的每一個包括使得多路分配器寄存器能夠直接向VMD發(fā)送命令的命令總線。圖5A示出根據(jù)本發(fā)明的實施例配置的MCDMM 500的一般示意性表示。MCDMM500包括/ 個VMD,其中/ 是代表MCDIMM 500中的VMD的數(shù)目的整數(shù)。8個VMD被表示在圖 5A中且由VMDi標記,其中下標左是范圍從0到/7-1的整數(shù)。MCDMM 500配置成使得每個 VMD經(jīng)由信號線的分離集合連接到多路分配器寄存器502。下面參考圖5B和5C描述用于多路分配器寄存器502的兩個不同實施例。例如,VMDc^VMD1.VMDpVMDhpVMDt2和VMDyrf經(jīng)由信號線集合504-509連接到多路分配器寄存器502。連接VMD和多路分配器寄存器502的組合的信號線集合被稱為“命令總線”。每個VMD可以由一個或多個存儲器芯片(諸如DRAM 芯片)組成。從存儲器控制器(未示出)發(fā)送到MCDIMM 500的命令通過稱為“命令路徑”的信號線集合510到達多路分配器寄存器502。每個VMD在圖5A中由雙頭箭頭(諸如雙頭箭頭511)標識的分離數(shù)據(jù)總線上與存儲器控制器交換數(shù)據(jù)。圖5B示出根據(jù)本發(fā)明的實施例配置的第一多路分配器寄存器525的示意性表示。 多路分配器寄存器525由寄存器512和多路分配器514組成。多路分配器寄存器525經(jīng)由圖5A的命令路徑510從存儲器控制器接收命令。命令是時分復(fù)用的。換句話說,每個命令被編碼在比特流中,所述比特流在固定的持續(xù)時間時隙中從存儲器控制器發(fā)送到多路分配器寄存器525。在圖5B中,時分復(fù)用的命令的時隙由一系列矩形515-520表示。圖5B中表示的每個命令包括意欲接收命令的圖5A中的VMD的索引。命令被發(fā)送到多路分配器寄存器525的順序由存儲器控制器確定。因而,在圖5B中,命令以該順序出現(xiàn)。嵌入在命令中的是標識待執(zhí)行的特定種類的操作的控制信號、標識存儲體、行或列的地址信號以及標識由存儲器控制器分配為接收命令的特定VMD的VMD地址。例如,當(dāng)命令要被發(fā)送到特定 VMD時,存儲器控制器創(chuàng)建包括標識該VMD的VMD地址的命令。一般而言,VMD地址是包含 Iog2/ 個比特的比特串。寄存器512是接收且臨時存儲命令的緩沖器。多路分配器514包括兩個輸入。如方向箭頭522和5M所表示的,寄存器向一個輸入發(fā)送命令且向另一輸入發(fā)送VMD地址。多路分配器514使用VMD地址來選擇通向由VMD地址標識的VMD的命令總線的信號線的適當(dāng)集合。在圖5B中,命令總線的信號線的η個集合中的6個通過對應(yīng)于信號線集合504-509 的方向箭頭504-509表示,且使用圖5Α中示出的相關(guān)VMD的索引進行標記。注意,在處理后續(xù)命令之前,每個命令在特定時間間隔內(nèi)被多路分配器寄存器525單獨處理。例如參考圖5Α-5Β,考慮存儲器控制器向VMDiS送命令519。在圖5Α中,命令左-1 519沿著命令路徑510發(fā)送到多路分配器寄存器525。如圖5Β所示,寄存器512接收且臨時存儲命令A(yù)-I 519,且VMD地址和命令被發(fā)送到多路分配器514,其然后選擇信號線的適當(dāng)集合506來向圖5Α中的VMDiS送命令519。在發(fā)送命令519之后,下一命令1 518以類似的方式被處理。如圖5B所示,多路分配器寄存器525可選地包括與每個信號線集合相關(guān)的計數(shù)器。當(dāng)VMD的DRAM芯片不能支持與緩存線的READ或WRITE事務(wù)相關(guān)的長突發(fā)長度時,可能需要計數(shù)器。多路分配器寄存器將緩存線劃分為緩存線片段且將命令轉(zhuǎn)換為多個命令,每個命令對應(yīng)于緩存線片段。因而,由計數(shù)器發(fā)送的對應(yīng)命令在發(fā)送到VMD的每個緩存線片段之前。例如,當(dāng)不能將VMD的一個或多個DRAM芯片的突發(fā)長度設(shè)置得足夠長以覆蓋緩存線時,計數(shù)器將列級別命令(例如READ或WRITE)轉(zhuǎn)換為用于每一緩存線片段的若干READ/ WRITE命令,從而可以分離地READ每一緩存線片段或?qū)⒚恳痪彺婢€片段WRITEN到DRAM芯片。每一計數(shù)器包括跟蹤為劃分的緩存線生成的命令的數(shù)量的計數(shù)設(shè)備。計數(shù)器執(zhí)行的轉(zhuǎn)換節(jié)省了來自存儲器控制器的命令帶寬。圖5C示出根據(jù)本發(fā)明的實施例配置的第二多路分配器寄存器527的示意性表示。 多路分配器寄存器527包含標為0至/7-1的/7個命令選擇器以及廣播總線528,對于圖5A 中示出的《個VMD中的每一個都有一個命令選擇器。如上面參考圖5B所描述的,存儲器控制器在命令路徑510上向多路分配器寄存器527發(fā)送時分復(fù)用命令515-520。命令選擇器經(jīng)由支路529-534電子地連接到廣播總線528,且每個命令選擇器經(jīng)由命令總線中的某個信號線集合連接到VMD之一。在圖5C中,命令總線中的信號線的η個集合中的6個由對應(yīng)于信號線集合504-509的方向箭頭504-509表示且使用圖5Α示出的相關(guān)VMD的索引進行標記。如圖5C所示,每個命令被廣播到所有的/7個命令選擇器。每個命令選擇器配置成提取嵌入在命令中的VMD地址以確定命令是否要被轉(zhuǎn)發(fā)到對應(yīng)的VMD或命令是否被尋址到不同VMD,在命令被尋址到不同VMD的情況下,命令被丟棄。因而,對于廣播到所有個命令選擇器的每個命令而言,該命令僅被命令選擇器之一發(fā)送到對應(yīng)的VMD。例如,多路分配器寄存器527接收命令/7-2 520且將其廣播到所有/7個命令選擇器0至/7-1。然而,因為命令 η-2 520包括VMDyrf的地址,所以命令選擇器/7-2通過信號線集合508將命令/7-2 520發(fā)送到VMDyrf且其他命令選擇器丟棄命令/7-2 520。注意,在處理后續(xù)命令之前,每個命令在特定時間間隔內(nèi)被多路分配器寄存器527單獨處理。圖5D示出根據(jù)本發(fā)明的實施例配置的示例性命令選擇器/7-2的示意性表示。其他的/7-1個命令選擇器被類似配置。命令選擇器/7-2包含AND (與)門530、寄存器/計數(shù)器532以及隨機存取存儲器(“RAM”)定時控制534。命令在支路533上被輸入到命令選擇器/7-1。AND門530提取嵌入在每個命令中的VMD地址且接收系統(tǒng)時鐘信號。AND門530配置成在提取的VMD地址匹配對應(yīng)的VMDn_2的地址時向寄存器/計數(shù)器532發(fā)送選擇信號。 寄存器/計數(shù)器接收時鐘信號以確定寄存器/計數(shù)器何時鎖存命令,且可以配置成在每個上升和/或下降時鐘沿對選擇信號執(zhí)行動作。寄存器/計數(shù)器532是在從AND門530接收到選擇信號時臨時存儲命令且向?qū)?yīng)的VMDyrf發(fā)送命令的緩沖器。寄存器/計數(shù)器532還包括如上面參考圖5B所描述的執(zhí)行緩存線和命令劃分的計數(shù)器。RAM定時控制534控制寄存器/計數(shù)器532的計數(shù)器部分。一般而言,AND門在所有輸入信號對應(yīng)于比特“1”時輸出對應(yīng)于比特“1”的信號且在輸入信號中的至少一個對應(yīng)于比特“0”時輸出對應(yīng)于比特“0”的信號,其中比特“1”和 “0”可以分別代表信號的高和低電壓。命令選擇器0至/7-1的AND門可以包括某些輸入信號線上的反相器。反相器將與比特“0”相關(guān)的信號轉(zhuǎn)變成與比特“ 1,,相關(guān)的信號且反之亦然。AND門包括某些輸入信號線上的反相器以將代表對應(yīng)VMD的VMD地址轉(zhuǎn)變成包含全“1” 比特的比特流。AND門然后向寄存器/計數(shù)器532輸出對應(yīng)于比特“1”的選擇信號。例如, 假設(shè)VMD _2的VMD地址包含比特流1L··· 1101。AND門530包括反相器536,其反轉(zhuǎn)在線538 上進入AND門530的信號的電壓。因而,如圖5D所示,當(dāng)嵌入在命令中的VMD地址匹配地址1Ρ··1101時,地址被轉(zhuǎn)變成11··· 1111,且AND門530向寄存器/計數(shù)器532輸出代表比特“1”的選擇信號,當(dāng)由時鐘指示時,寄存器/計數(shù)器532鎖存命令到信號線集合508。對于其他地址,進入AND門530的比特流包括至少一個“0”比特,且AND門530不輸出信號或者輸出對應(yīng)于比特“0”的低信號。因而,寄存器/計數(shù)器532不鎖存命令到信號線集合 508。
下面參考圖6至8描述若干不同的MCDIMM實施例。每個實施例代表不同的多路分配器寄存器和命令總線配置且絕非意欲窮盡可以根據(jù)本發(fā)明的實施例配置的不同多路分配器寄存器和命令總線的數(shù)目。圖6A-6B分別示出根據(jù)本發(fā)明的實施例配置的MCDIMM 600和相關(guān)的多路分配器寄存器602的示意性表示。如圖6A所示,MCDIMM 600包括8個VMD,每個VMD包含標記為 1-8的單個DRAM芯片。命令總線由連接DRAM 1-8的每個與多路分配器寄存器602的信號線的八個集合604-611組成。命令在命令路徑612上從存儲器控制器(未示出)發(fā)送到多路分配器寄存器602。根據(jù)Iog2/ ,其中等于8,DRAM 1_8的每個可以被分配三比特VMD地址000、001、010、011、100、101、110和111中的一個,它們被包括在從存儲器控制器發(fā)送到多路分配器寄存器602的命令中。DRAM芯片1-8的每個通過命令總線接收不同命令且經(jīng)由如雙頭箭頭(諸如雙頭箭頭613)所表示的其自己的數(shù)據(jù)總線獨立于其他DRAM芯片傳輸數(shù)據(jù)。在某些實施例中,圖6B的多路分配器寄存器602包含寄存器614和多路分配器 616。存儲器控制器將每個命令準備成具有對應(yīng)于要接收該命令的DRAM芯片的VMD地址。 如圖6B的示例中所示,每個命令被時分復(fù)用且由標記有與DRAM芯片1-8之一相關(guān)的整數(shù)的矩形表示。寄存器614串行地接收每個命令,讀取VMD地址,且如方向箭頭618和620所示,分別向多路分配器616的分離的輸入發(fā)送VMD地址和命令。多路分配器616使用VMD 地址來選擇載送命令到VMD的信號線的合適集合604-611。多路分配器寄存器602可選地包括計數(shù)器,當(dāng)VMD不能支持長突發(fā)緩存線時可以實施該計數(shù)器。發(fā)送命令到MCDIMM 600的示例開始于存儲器控制器沿命令路徑612向多路分配器寄存器602發(fā)送意欲用于DRAM芯片3的命令。如圖6B所示,寄存器614接收命令3 624 且沿著信號線618和620向多路分配器716發(fā)送DRAM芯片3的VMD地址和命令?;赩MD 地址,多路分配器616選擇信號線集合606以發(fā)送命令到DRAM芯片3。在其他實施例中,圖6C的多路分配器寄存器602包含標為0_7的8個命令選擇器。每個命令被廣播到所有7個命令選擇器。每個命令選擇器配置成提取嵌入在命令中的 VMD地址以確定命令是否要被轉(zhuǎn)發(fā)到對應(yīng)VMD或者命令是否被尋址到不同VMD且被丟棄。 例如,圖6C的多路分配器寄存器602接收命令3且通過廣播總線6 將其廣播到所有7個命令選擇器。然而,因為命令3 6 包括VMD3的地址,所以命令選擇器3在信號線集合607 上向VMD3S送命令3 624,且其他命令選擇器丟棄命令3 624。圖6D示出根據(jù)本發(fā)明的實施例配置的命令選擇器3的示意性表示。命令選擇器 3包含AND門628、寄存器/計數(shù)器630和RAM定時控制632。其他命令選擇器被類似地配置。命令在支路634上被輸入到命令選擇器3。AND門6 提取每個命令的VMD地址部分且確定何時選擇寄存器/計數(shù)器630。當(dāng)VMD地址被輸入到AND門6 時,反相器636對在線638上進入AND門6 的比特值進行反相。因而,當(dāng)嵌入在命令中的VMD地址匹配VMD2 的三比特地址011時,該地址被轉(zhuǎn)變成111,且AND門6 輸出對應(yīng)于比特“1”的選擇信號, 否則,沒有選擇信號被發(fā)送到寄存器/計數(shù)器630。時鐘信號也被輸入到寄存器/計數(shù)器 630,使得寄存器/計數(shù)器630在時鐘信號的上升和/或下降沿鎖存命令。在圖6A-6B的示例MCDIMM 600中,每存儲器訪問請求僅涉及一個DRAM芯片。DRAM 芯片的陰影區(qū)域代表與不同命令相關(guān)的不同獨立存儲器請求。每個DRAM芯片通過命令總線接收命令且獨立地使用其自己的數(shù)據(jù)總線傳輸數(shù)據(jù)。因而較少的比特被激活,節(jié)省了用于激活和預(yù)充電的能量。然而,與傳統(tǒng)DIMM相比,因為數(shù)據(jù)總線大小小于傳統(tǒng)DIMM中的數(shù)據(jù)總線大小,可能需要更多的時間來傳送數(shù)據(jù)。為了傳輸數(shù)據(jù),數(shù)據(jù)可以被劃分成串行化的較小數(shù)據(jù)部分,其中每個部分單獨地從VMD發(fā)送到存儲器控制器。然而,與從傳統(tǒng)DMM向存儲器控制器發(fā)送數(shù)據(jù)相比,串行化數(shù)據(jù)擴展了發(fā)送數(shù)據(jù)需要的時間量。該附加的串行化延時問題可能對于系統(tǒng)性能具有不利影響。串行化延時問題可以通過將MCDIMM配置成具有包含兩個或更多DRAM芯片的VMD來緩解。圖7A-7B示出根據(jù)本發(fā)明的實施例配置的MCDIMM 700和相關(guān)的多路分配器寄存器702的示意性表示。如圖7A所示,MCDIMM 700包括由VMDi標識的4個VMD,其中k是范圍從1至4的整數(shù)。每個VMD包含2個DRAM芯片。命令總線由連接每個VMD到多路分配器寄存器702的信號線的四個集合704-707組成。命令沿著命令路徑708從存儲器控制器 (未示出)發(fā)送到多路分配器寄存器702。根據(jù)Iog2/ ,其中等于4,每個VMD可以被分配兩比特VMD地址00、01、10和11之一,這些地址被包括在命令中以標識意欲接收該命令的 VMD。每個VMD通過命令總線接收不同的命令且經(jīng)由雙頭箭頭(諸如雙頭箭頭709 )所表示的其自己的數(shù)據(jù)總線獨立于其他VMD傳輸數(shù)據(jù)。在圖7B中,多路分配器寄存器702包含寄存器710和多路分配器712。每個命令被時分復(fù)用且由標記有標識MCDIMM 700中的VMD之一的整數(shù)的矩形表示。寄存器701串行地接收每個命令,讀取DRAM地址,且分別沿著信號線714和716將DRAM地址和命令發(fā)送到多路分配器712。多路分配器712使用VMD地址在信號線集合704-707中的合適集合上向VMD發(fā)送命令。在圖7C中,多路分配器寄存器702包含標為0_3的4個命令選擇器。每個命令通過廣播總線718被廣播到所有4個命令選擇器,命令選擇器提取嵌入在命令中的VMD地址以確定命令是否要被轉(zhuǎn)發(fā)到對應(yīng)VMD或者命令是否要被丟棄。圖7D示出根據(jù)本發(fā)明的實施例配置的命令選擇器2的示意性表示。命令選擇器 2包含AND門720、寄存器/計數(shù)器722以及RAM定時控制724。命令在支路7 上被輸入到命令選擇器2。AND門720提取每個命令的VMD地址部分以確定何時選擇寄存器/計數(shù)器722。當(dāng)VMD地址匹配兩比特VMD地址10時,該地址被轉(zhuǎn)變成11,且AND門720向寄存器/計數(shù)器722輸出對應(yīng)于比特“1”的選擇信號,否則沒有選擇信號被發(fā)送到寄存器/計數(shù)器722且命令被丟棄。輸入到寄存器/計數(shù)器722的時鐘信號在時鐘信號的上升和/或下降沿鎖存命令。在圖7A-7B的示例MCDMM 700中,每存儲器訪問請求涉及由DRAM芯片的等同地畫陰影的區(qū)域表示的兩個DRAM芯片。每個VMD的DRAM芯片通過命令總線接收命令且獨立地使用相關(guān)數(shù)據(jù)總線傳輸數(shù)據(jù)。因而,和傳統(tǒng)DI匪相比,較少的比特被激活,但是與MCDI匪 600類似,串行化問題仍可能發(fā)生,且和傳統(tǒng)DIMM相比可能需要更多的時間來傳輸該相同量的數(shù)據(jù)。注意,當(dāng)需要多個突發(fā)來寫緩存線時,多路分配器寄存器702也可選地包括計數(shù)
οDRAM芯片還可以被分組在一起以支持糾錯碼(“ECC”)以便保護數(shù)據(jù)和數(shù)據(jù)傳輸免受軟錯誤,軟錯誤通常是各個存儲器單元的破壞。典型地可以通過針對數(shù)據(jù)的每8個比特添加ECC比特(通常通過并行地訪問9的倍數(shù)的DRAM芯片而不是8的倍數(shù)的DRAM芯片(a multiple of 8 DRAM chips))來實施ECC。因而,在某些實施例中,各個DRAM芯片可以配置有附加數(shù)據(jù)單元和在9比特數(shù)據(jù)路徑而不是8比特數(shù)據(jù)路徑上輸出的總線比特。在其他實施例中,一部分芯片地址范圍可以專用于ECC比特且多路分配器寄存器的相同命令轉(zhuǎn)換特征可用于按組傳輸數(shù)據(jù)和ECC比特。在另外的其他實施例中,分離的較低存儲容量DRAM芯片可以與每VMD的多個DRAM 芯片配對。圖8示出根據(jù)本發(fā)明的實施例的配置成支持ECC的MCDIMM 800的示意性表示。 如圖8的示例所示,MCDIMM 800包括通過命令路徑804從存儲器控制器(未示出)接收命令的多路分配器寄存器802且包括含有四個信號線集合806-809的命令總線。每個信號線集合向每個VMD載送命令。MCDIMM 800幾乎與MCDIMM 700相同,除了每個VMD包括附加的小容量DRAM芯片。例如,VMD2包括用于存儲數(shù)據(jù)的兩個常規(guī)DRAM芯片810和811以及用于存儲ECC比特的附加的相對較小存儲容量的DRAM芯片812。每個VMD的數(shù)據(jù)和ECC比特可以在數(shù)據(jù)總線上被單獨讀出。圖9示出根據(jù)本發(fā)明的實施例的用于控制包括至少一個虛擬存儲器設(shè)備的存儲器模塊的方法的控制流程圖。在步驟901,存儲器控制器準備要由存儲器模塊的VMD之一接收的命令,方式是通過在該命令中編碼該VMD的分配的地址。在步驟902,存儲器控制器將命令發(fā)送到存儲器模塊的多路分配器寄存器。如上面參考圖5A所描述的,多路分配器寄存器通過命令路徑接收命令。在步驟903,多路分配器寄存器包括寄存器,所述寄存器讀取命令的VMD地址且確定哪個VMD要接收命令,如上面參考圖5B所描述的。在步驟904,寄存器向多路分配器發(fā)送命令和地址,多路分配器基于該地址選擇命令總線中的信號線的合適集合,在該信號線的合適集合上放置發(fā)送到VMD的命令,如上面參考圖5A-5B所描述的。在步驟905,方法返回且針對下一存儲器請求重復(fù)步驟901-904。為了解釋的目的,前面的描述使用特定詞匯來提供本發(fā)明的透徹理解。然而,本領(lǐng)域技術(shù)人員應(yīng)理解,為了實踐本發(fā)明,并不需要具體細節(jié)。給出本發(fā)明具體實施例的前面描述,目的是進行說明和描述。它們并非意欲窮盡本發(fā)明或者將其限制為所公開的精確形式。 顯然,根據(jù)以上教導(dǎo),很多修改和變化是可能的。示出并且描述實施例,以最佳地解釋本發(fā)明的原理及其實際應(yīng)用,由此使得本領(lǐng)域其他技術(shù)人員能夠最佳地利用本發(fā)明以及具有適于所考慮的特定使用的各個修改的各個實施例。本發(fā)明的范圍意欲由所附權(quán)利要求及其等同物所定義。
權(quán)利要求
1.一種存儲器模塊(500),包含至少一個虛擬存儲器設(shè)備,其包括至少一個存儲器芯片;以及多路分配器寄存器(502),其電子地連接到該至少一個虛擬存儲器設(shè)備和存儲器控制器,其中,該多路分配器寄存器從該存儲器控制器接收標識該至少一個虛擬存儲器設(shè)備之一的命令且將該命令發(fā)送到在該命令中標識的虛擬存儲器設(shè)備。
2.根據(jù)權(quán)利要求1所述的存儲器模塊,其中該存儲器芯片還包含動態(tài)隨機存取存儲器芯片(401-408)。
3.根據(jù)權(quán)利要求1所述的存儲器模塊,其中該命令以時分復(fù)用的方式從存儲器控制器發(fā)送到多路分配器寄存器,使得在固定持續(xù)時間間隔(515-520)中每個命令到達多路分配器寄存器且被發(fā)送到命令中標識的虛擬存儲器設(shè)備。
4.根據(jù)權(quán)利要求1所述的存儲器模塊,其中該多路分配器寄存器(525)還包含寄存器(512),其配置成接收命令且確定命令中標識的虛擬存儲器設(shè)備的虛擬存儲器設(shè)備地址;以及多路分配器(514),其配置成從該寄存器接收命令和地址且選擇通過其向虛擬存儲器設(shè)備發(fā)送該命令的一組信號。
5.根據(jù)權(quán)利要求4所述的存儲器模塊,其中該多路分配器寄存器502還包含計數(shù)器, 所述計數(shù)器將命令轉(zhuǎn)換成多個命令以使得緩存線能夠由多路分配器寄存器劃分成緩存線片段,其中每個命令與緩存線片段之一相關(guān)且所述多個命令和相關(guān)的緩存線片段串行地被發(fā)送到虛擬存儲器設(shè)備。
6.根據(jù)權(quán)利要求1所述的存儲器模塊,其中該多路分配器寄存器還包含至少一個命令選擇器,每個命令選擇器電子地連接到該至少一個虛擬存儲器設(shè)備之一;以及廣播總線(5觀),其配置成向該至少一個命令選擇器廣播命令,其中每個命令選擇器配置成提取嵌入在命令中的虛擬存儲器設(shè)備地址且在該地址匹配連接的虛擬存儲器設(shè)備的地址時向連接的虛擬存儲器設(shè)備轉(zhuǎn)發(fā)該命令,否則命令選擇器丟棄該命令。
7.根據(jù)權(quán)利要求6所述的存儲器模塊,其中該命令選擇器還包含AND門,其配置成從命令中提取虛擬存儲器設(shè)備地址且在該地址匹配連接的虛擬存儲器設(shè)備的地址時產(chǎn)生選擇信號;寄存器/計數(shù)器,其配置成在AND門提供選擇信號時接收命令并將其發(fā)送到連接的虛擬存儲器設(shè)備,否則寄存器/計數(shù)器丟棄命令;以及RAM定時控制,其控制緩存線和命令到較小緩存線片段的劃分。
8.根據(jù)權(quán)利要求1所述的存儲器模塊,其中電子地連接到該至少一個虛擬存儲器設(shè)備的多路分配器寄存器(502)還包含布置在該多路分配器寄存器和該至少一個虛擬存儲器設(shè)備之間的命令總線,其中該命令總線包含連接該至少一個虛擬存儲器設(shè)備的每一個到多路分配器寄存器(502 )的信號線的分離集合(504-509 )。
9.根據(jù)權(quán)利要求1所述的存儲器模塊,還包含連接存儲器控制器到多路分配器寄存器(502)的命令路徑(510)。
10.根據(jù)權(quán)利要求1所述的存儲器模塊,其中該至少一個虛擬存儲器設(shè)備還包含配置成存儲糾錯碼信息的存儲器芯片(812)。
11.一種用于控制包含至少一個虛擬存儲器設(shè)備的存儲器模塊的方法,該方法包含 在存儲器控制器處準備(901)命令以包括對應(yīng)于該至少一個虛擬存儲器設(shè)備之一的地址;將該命令從存儲器控制器發(fā)送(902)到存儲器模塊的多路分配器寄存器; 確定(903)該至少一個虛擬存儲器設(shè)備中的哪一個被該地址標識;以及發(fā)送(904)該命令到該地址標識的虛擬存儲器設(shè)備。
12.根據(jù)權(quán)利要求11所述的方法,其中將該命令從存儲器控制器發(fā)送到多路分配器寄存器還包含時分復(fù)用該命令以在固定持續(xù)時間間隔(515-520)中到達該多路分配器寄存器且被發(fā)送到該命令中標識的虛擬存儲器設(shè)備。
13.根據(jù)權(quán)利要求1所述的方法,其中確定該至少一個虛擬存儲器設(shè)備中的哪一個被該地址標識還包含讀取嵌入在該命令中的虛擬存儲器設(shè)備地址。
14.根據(jù)權(quán)利要求11所述的方法,其中該虛擬存儲器設(shè)備還包含至少一個存儲器芯片(401-408)。
15.根據(jù)權(quán)利要求11所述的方法,其中發(fā)送該命令到該地址標識的虛擬存儲器設(shè)備還包含將該命令轉(zhuǎn)換成多個命令;以及將該命令分配到緩存線片段。
全文摘要
本發(fā)明的各個實施例涉及多核存儲器模塊。在一個實施例中,存儲器模塊(500)包括至少一個虛擬存儲器設(shè)備和布置在該至少一個虛擬存儲器設(shè)備和存儲器控制器之間的多路分配器寄存器(502)。該多路分配器寄存器從該存儲器控制器接收標識該至少一個虛擬存儲器設(shè)備之一的命令且將該命令發(fā)送到標識的虛擬存儲器設(shè)備。另外,該至少一個虛擬存儲器設(shè)備包括至少一個存儲器芯片。
文檔編號G11C8/00GK102177550SQ200880131469
公開日2011年9月7日 申請日期2008年8月8日 優(yōu)先權(quán)日2008年8月8日
發(fā)明者B. 萊弗里奇 J., P. 朱皮 N., 安廷鎬 申請人:惠普開發(fā)有限公司