存儲(chǔ)器模塊外的ecc輔助存儲(chǔ)器系統(tǒng)的制作方法
【專利說(shuō)明】
【背景技術(shù)】
[0001]高可用性計(jì)算可通過(guò)使用糾錯(cuò)碼(ECC)存儲(chǔ)器系統(tǒng)避免由于不可避免的數(shù)據(jù)錯(cuò)誤引起的停機(jī)時(shí)間。諸如漢明碼或三模冗余(TMR)之類的糾錯(cuò)碼采用冗余來(lái)允許檢測(cè)和糾正最常見(jiàn)的數(shù)據(jù)錯(cuò)誤。為了適應(yīng)(accommodate)冗余,ECC存儲(chǔ)器模塊為存儲(chǔ)器列(rank)中的每8個(gè)字節(jié)的數(shù)據(jù)(64位)通常提供9字節(jié)的存儲(chǔ)(9X8 = 72位)。像非ECC存儲(chǔ)器,存儲(chǔ)器可被提供在將在基板(baseboard)上安裝的存儲(chǔ)器模塊(例如,SIMM和DIMM)中。實(shí)際的錯(cuò)誤檢測(cè)和糾正由通常在基板上的具有ECC能力的存儲(chǔ)器控制器運(yùn)行。在存儲(chǔ)器模塊上具有控制器的“SMM上的ECC” (E0S)存儲(chǔ)器可用于系統(tǒng),而無(wú)需內(nèi)置ECC支持。
【附圖說(shuō)明】
[0002]以下附圖表示實(shí)例而不是本發(fā)明本身。
[0003]圖1是根據(jù)實(shí)例的ECC存儲(chǔ)器系統(tǒng)的示意圖。
[0004]圖2是根據(jù)實(shí)例的ECC存儲(chǔ)器過(guò)程的流程圖。
[0005]圖3是主控ECC存儲(chǔ)器系統(tǒng)的計(jì)算機(jī)系統(tǒng)的示意圖。
[0006]圖4是根據(jù)實(shí)例的可以在圖3的ECC存儲(chǔ)器系統(tǒng)上實(shí)施的ECC存儲(chǔ)器過(guò)程的流程圖。
【具體實(shí)施方式】
[0007]相對(duì)于非ECC存儲(chǔ)器,ECC存儲(chǔ)器模塊可以是昂貴的,這不僅由于冗余的ECC碼所需的額外容量,而且由于有利于更廣泛使用的非ECC存儲(chǔ)器模塊的規(guī)模經(jīng)濟(jì)學(xué)。因此,雖然容量考慮單獨(dú)會(huì)為ECC存儲(chǔ)器模塊產(chǎn)生大約12%的溢價(jià),但是主要由于規(guī)模經(jīng)濟(jì)學(xué),實(shí)際溢價(jià)可以直到100%。由于每個(gè)E0S存儲(chǔ)器模塊上的ECC控制器的并入,E0S存儲(chǔ)器的溢價(jià)甚至更大。
[0008]通過(guò)使用存儲(chǔ)器模塊外的ECC輔助(0MMES,off-memory-modu 1 eECC-supplemental)存儲(chǔ)器提供經(jīng)過(guò)ECC編碼的數(shù)據(jù)字所需的額外容量,ECC系統(tǒng)100解決了與ECC存儲(chǔ)器模塊相關(guān)聯(lián)的成本考慮。因此,可以在具有ECC能力的系統(tǒng)中實(shí)現(xiàn)由于與非ECC存儲(chǔ)器模塊相關(guān)聯(lián)的規(guī)模經(jīng)濟(jì)學(xué)引起的成本節(jié)約。
[0009]ECC系統(tǒng)100包括具有ECC能力的存儲(chǔ)器控制器102、0MMES存儲(chǔ)器104和非ECC存儲(chǔ)器模塊組106。在本文中,“非ECC存儲(chǔ)器模塊組”是指一個(gè)或更多非ECC存儲(chǔ)器模塊構(gòu)成的組。本領(lǐng)域技術(shù)人員可以容易地區(qū)別ECC存儲(chǔ)器模塊和非ECC模塊。
[0010]眾所周知,計(jì)算機(jī)通常將數(shù)據(jù)存儲(chǔ)為0和1的串的物理(例如,電、磁或光)編碼,并且將所述數(shù)據(jù)作為0和1的串的物理(例如,電、磁或光)編碼傳送。一個(gè)二進(jìn)制值可以表示一個(gè)數(shù)據(jù)“位”。這些位通常以二進(jìn)制值串的形式被布置在“數(shù)據(jù)字”中;數(shù)據(jù)字通常是二的冪位長(zhǎng),例如64位長(zhǎng)。八位經(jīng)常被稱作“字節(jié)”,因此64位數(shù)據(jù)字也可被表征為8字節(jié)的數(shù)據(jù)字。
[0011]不是在單個(gè)存儲(chǔ)器設(shè)備上存儲(chǔ)整個(gè)數(shù)據(jù)字,而是數(shù)據(jù)字的多個(gè)段可以分布在多個(gè)存儲(chǔ)器設(shè)備之間,使得這些段可以被并行訪問(wèn)。在本文中,“存儲(chǔ)器設(shè)備”是指主要被設(shè)計(jì)成存儲(chǔ)數(shù)據(jù)的單片集成電路;通常,存儲(chǔ)器設(shè)備是SDRAM(同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)。因此,在非ECC存儲(chǔ)器中,8字節(jié)的數(shù)據(jù)字可以分布在八個(gè)x8、四個(gè)xl6或16個(gè)x4的存儲(chǔ)器設(shè)備之間。在其間分布字的設(shè)備被統(tǒng)稱為“列”。因此,通常的非ECC雙列直插存儲(chǔ)器模塊(DIMM)可以包括在印刷電路板(PCB)上的兩列八個(gè)集成電路存儲(chǔ)器。
[0012]ECC編碼通常給每八個(gè)字節(jié)增加八位,使得64位(8字節(jié))字消耗經(jīng)過(guò)ECC編碼的形式的72位(九字節(jié))。因此,不是被分布在八個(gè)存儲(chǔ)器設(shè)備上,而是經(jīng)過(guò)ECC編碼的字分布在九個(gè)集成電路存儲(chǔ)器上。因此,通常的ECC存儲(chǔ)器模塊(例如,DIMM)包括九個(gè)存儲(chǔ)器設(shè)備,而通常的雙列ECC DIMM包括18個(gè)集成電路存儲(chǔ)器。其它配置也是已知的。一般來(lái)說(shuō),非ECC存儲(chǔ)器模塊具有八的整數(shù)倍個(gè)集成電路存儲(chǔ)器,而ECC存儲(chǔ)器模塊可以具有每列一個(gè)附加的存儲(chǔ)器設(shè)備,以應(yīng)對(duì)通過(guò)ECC編碼所要求的超額容量。
[0013]在E0S存儲(chǔ)器模塊的情況下,在(一個(gè)或多個(gè))存儲(chǔ)器模塊上提供ECC控制器和ECC超額容量。在常規(guī)的(非EOS)ECC存儲(chǔ)器模塊的情況下,控制器是在模塊外的,例如在基板上,但是在模塊上提供超額容量。在ECC存儲(chǔ)器系統(tǒng)100的情況下,具有ECC能力的存儲(chǔ)器控制器102和提供超額容量的0MMES存儲(chǔ)器104 二者都是在模塊外的,也就是說(shuō),不在常規(guī)的存儲(chǔ)器模塊上。這通過(guò)使用常規(guī)的非ECC存儲(chǔ)器模塊而允許ECC功能性(強(qiáng)化以抗所存儲(chǔ)的數(shù)據(jù)中的錯(cuò)誤)。
[0014]在控制器實(shí)施的(在圖2中用流程圖表示的)過(guò)程200中,在201,數(shù)據(jù)字被ECC編碼。例如,ECC編碼可以使用漢明編碼或TMR編碼。在202,最終得到的經(jīng)過(guò)ECC編碼的數(shù)據(jù)字以分布式方式被存儲(chǔ)在非ECC存儲(chǔ)器模塊和0MMES存儲(chǔ)器之間。
[0015]如在本文中所使用的“模塊外”可以在計(jì)算機(jī)300的情境中被理解,如在圖3中示意性地示出的那樣。計(jì)算機(jī)300包括基板302,在該基板302上裝配有處理器304、通信設(shè)備306、ECC控制器308和存儲(chǔ)器模塊外的ECC輔助(0MMES)存儲(chǔ)器310。注意,雖然基板302可被表征為具有被裝配在其上的存儲(chǔ)器的“模塊”,但是它不是和在本文中和由本領(lǐng)域技術(shù)人員使用的短語(yǔ)一樣的“存儲(chǔ)器模塊”。然而,基板的確包括非ECC存儲(chǔ)器模塊可被安裝到其中的插孔(socket) 312。在變型方案中,插孔的數(shù)目可以變化,例如,從1個(gè)插孔變化到16個(gè)插孔。0MMES存儲(chǔ)器310位于靠近插孔312,并且存儲(chǔ)器控制、地址、命令和數(shù)據(jù)信號(hào)線(未示出)被路由,以便確保信號(hào)完整性。
[0016]如在圖3中所圖解說(shuō)明的那樣,分別使用連接器315和317將存儲(chǔ)器模塊組318的兩個(gè)4GB (千兆字節(jié))的非ECC DMM314和316安裝在插孔312中。DMM 314包括八個(gè)4Gb (千兆位)的集成電路存儲(chǔ)器321-328,而DMM 316包括八個(gè)4Gb的集成電路存儲(chǔ)器331-338。因此,每個(gè)DIMM 314、316都可存儲(chǔ)4GB (千兆字節(jié))的數(shù)據(jù)。然而,當(dāng)經(jīng)過(guò)ECC編碼時(shí),4GB的數(shù)據(jù)要求額外的4Gb (千兆位)的容量。對(duì)于DIMM 314,這由0MMES存儲(chǔ)器310的4Gb存儲(chǔ)器設(shè)備(SDRAM) 342來(lái)提供;同樣,對(duì)于DIMM 316,超額容量由0MMES存儲(chǔ)器310的存儲(chǔ)器設(shè)備344來(lái)應(yīng)對(duì)。
[0017]總起來(lái)說(shuō),ECC控制器308、ECC-輔助存儲(chǔ)器310和存儲(chǔ)器模塊組318定義了是計(jì)算機(jī)300的子系統(tǒng)的被填充的ECC存儲(chǔ)器系統(tǒng)340??商鎿Q地,ECC存儲(chǔ)器系統(tǒng)340可能是未填充的,例如當(dāng)在插孔312中沒(méi)有安裝任何存儲(chǔ)器模塊時(shí),情況如此。
[0018]為了適應(yīng)兩個(gè)以上的存儲(chǔ)器模塊或者具有每個(gè)存儲(chǔ)器模塊一列以上的存儲(chǔ)器設(shè)備的存儲(chǔ)器模塊,ECC輔助存儲(chǔ)器310可以具有已安裝的附加的存儲(chǔ)器設(shè)備,例如存儲(chǔ)器設(shè)備346和348。不是在存儲(chǔ)器模塊上具有每八個(gè)存儲(chǔ)器設(shè)備一個(gè)ECC輔助存儲(chǔ)器設(shè)備,而是或者通過(guò)對(duì)每個(gè)封裝使用不同寬度(例如,x4、x8、xl6)、不同容量或不同管芯(die)的存儲(chǔ)器設(shè)備,或者為了適應(yīng)給每字節(jié)增加一位以上的ECC編碼方案,可以實(shí)施其它比率。例如,雙管芯SDRAM可以代替用于兩列的兩個(gè)單管芯SDRAM。而且,較高容量的輔助SDRAM可以補(bǔ)充具有較低容量的SDRAM的DIMM。
[0019]用于0MMES存儲(chǔ)器的一些可替換的配置包括以下各項(xiàng)。1) 一個(gè)單管芯DRAM設(shè)備,以支持單列的S0-DIMM。2)兩個(gè)單管芯DRAM設(shè)備,以支持雙列的S0_DIMM(單管芯DRAM設(shè)備比雙管芯DRAM設(shè)備便宜得多)。3) —個(gè)雙管芯DRAM設(shè)備,以支持單列的S0_DIMM(以及單和雙密度配置)、雙列的S0-DIMM(用于模擬兩個(gè)單密度配置,以支持雙列的S0-DIMM)。
[0020]雖然(在一些實(shí)施例中)ECC編碼給每個(gè)非ECC編碼過(guò)的數(shù)據(jù)字的字節(jié)增加一位,但是在其它實(shí)施例中,可能增加每字節(jié)一位以上,例如以允許多位數(shù)據(jù)錯(cuò)誤的糾正。在大多數(shù)情況下,具有ECC能力的存儲(chǔ)器控制器將每個(gè)數(shù)據(jù)字的至少80%分布到存儲(chǔ)