專利名稱:改善存儲裝置的可靠性、可用性及可維修性的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例一般涉及集成電路領(lǐng)域,尤其涉及用于改善存儲裝置的可靠性、 可用性及可維修性的系統(tǒng)、方法和裝置。
背景技術(shù):
存儲裝置易發(fā)生錯誤,諸如瞬態(tài)(或軟)錯誤等。如果這些錯誤不被適當處理,就可能導致計算系統(tǒng)故障。以糾錯碼(ECC)形式的冗余信息可用于改善系統(tǒng)的總體可靠性。 然而,冗余信息增加了對存儲系統(tǒng)的存儲要求,因此,增加了存儲系統(tǒng)的成本。因此,ECC通常只用在高端或任務關(guān)鍵的系統(tǒng)中。較低成本的(或較不關(guān)鍵的)系統(tǒng)不使用ECC,而提供適于其使用的一定級別的可靠性。在有些情況下,通過增加額外的存儲裝置(例如,動態(tài)隨機存取存儲器(DRAM)器件),將存儲器的額外位加到系統(tǒng)。例如,用8個DRAM來存儲數(shù)據(jù)的系統(tǒng)也可用一個額外的 DRAM來存儲校驗碼。在另一些情況下,額外位被存儲在特別為在ECC系統(tǒng)中使用而設計的不同DRAM中。例如,非ECC DRAM可具有256M位的容量和16個輸出。DRAM的ECC變形例可具有^SM位的容量和18個輸出。在所有這些例子中,ECC系統(tǒng)具有比非ECC對應部多 12. 5%的存儲容量。在ECC系統(tǒng)中使用不同的DRAM器件會存在有一些不利。例如,增加了與設計、制造和庫存兩種(或更多種)DRAM器件相關(guān)聯(lián)的成本。此外,ECC型DRAM器件比非ECC型的大,所以更難制造。將額外位加到ECC型的DRAM上降低了器件的產(chǎn)量,因此增加了器件的成本。使用兩種(或更多種)的DRAM器件的另一缺點是需要與DRAM器件接口的存儲控制器來支持額外的引腳(例如,ECC引腳)。同時,ECC型的DRAM模塊使用母板上更多的空間,因為其連接部大于非ECC型。
發(fā)明內(nèi)容
本發(fā)明為克服現(xiàn)有技術(shù)中存在的上述不利或缺點構(gòu)思而成。本發(fā)明的一個方面是一種存儲裝置,其中包括存儲核心,它具有存儲數(shù)據(jù)位的第一部分和存儲對應于所述數(shù)據(jù)位的糾錯碼 (ECC)位(所存儲的ECC位)的第二部分;以及糾錯邏輯部件,它與所述存儲核心在同一芯片上,所述糾錯邏輯部件包含ECC計算邏輯部件來計算對應于所述數(shù)據(jù)位的ECC位(所計算的ECC位)。本發(fā)明的又一方面是一種方法,包括從存儲核心的第一部分讀出數(shù)據(jù)位;從所述存儲核心的第二部分讀出所存儲的糾錯碼(ECC)位;
用ECC計算邏輯部件來產(chǎn)生所計算的ECC位,其中,所述存儲核心和所述ECC計算邏輯部件位于共用集成電路上;以及比較所存儲的ECC位和所計算的ECC位來判定所存儲的ECC位是否與所計算的 ECC位匹配。本發(fā)明的再一方面是一種系統(tǒng),其中包括動態(tài)隨機存取存儲器(DRAM),包括包含第一存儲體和第二存儲體的分離的存儲體對,其中,若所述動態(tài)隨機存取存儲器處于錯誤檢驗模式中,則數(shù)據(jù)位將被存儲在第一存儲體中而對應的糾錯碼(ECC)位 (所存儲的ECC位)將被存儲在第二存儲體中;以及與所述分離的存儲體對位于同一芯片上的糾錯邏輯部件,所述糾錯邏輯部件包含 ECC產(chǎn)生邏輯部件來計算對應于所述數(shù)據(jù)位的ECC位(所計算的ECC位);以及與所述動態(tài)隨機存取存儲器(DRAM)連接的請求器。
本發(fā)明的實施例是解釋性的而不是限制性的,在附圖中,相同的附圖標記代表相同的部件要素。圖1是說明本發(fā)明一實施例實現(xiàn)的計算系統(tǒng)的選定形態(tài)的高級框圖。圖2是說明本發(fā)明一實施例實現(xiàn)的動態(tài)隨機存取存儲器(DRAM)的選定形態(tài)的框圖。圖3是說明本發(fā)明一實施例實現(xiàn)的動態(tài)隨機存取存儲器(DRAM)的選定形態(tài)的框圖。圖4是說明本發(fā)明一實施例在數(shù)據(jù)位和錯誤檢驗位之間的地址映射的框圖。圖5A和5B說明本發(fā)明一實施例的寫入數(shù)據(jù)幀序列的選定形態(tài)。圖6是說明本發(fā)明一實施例的片上糾錯邏輯部件的選定形態(tài)的框圖。圖7是說明本發(fā)明一實施例從存儲裝置讀出數(shù)據(jù)的選定形態(tài)的流程圖。圖8表示本發(fā)明一實施例的讀出數(shù)據(jù)幀的序列的選定形態(tài)。圖9是說明本發(fā)明一實施例的電子系統(tǒng)的選定形態(tài)的框圖。圖10是說明本發(fā)明備選實施例的電子系統(tǒng)的選定形態(tài)的框圖。
具體實施例方式本發(fā)明的實施例一般涉及改善存儲裝置的可靠性、可用性及可維修性(RAQ。在一些實施例中,存儲裝置包含至少一個具有第一存儲體和第二存儲體的分離存儲體對。在錯誤檢驗模式中,數(shù)據(jù)位可被存儲在存儲體之一中而對應的錯誤檢驗位被存儲在另一存儲體中。存儲裝置可配置成支持使用寄存器位的任一模式(例如,模式寄存器組(MRQ寄存器位)。存儲裝置還可包含糾錯邏輯部件。如進一步描述的,通過將ECC產(chǎn)生邏輯部件和比較邏輯部件集成到存儲裝置上,糾錯邏輯部件可用讀返回數(shù)據(jù)(read return data)來啟用循環(huán)冗余碼(CRC)位的使用。圖1是說明根據(jù)本發(fā)明一實施例的計算系統(tǒng)的選定形態(tài)的高級框圖。計算系統(tǒng) 100包含請求器102、存儲控制器(或主機)110、存儲裝置130和互連部120。存儲控制器110至少部分控制請求器102和存儲裝置130之間的信息傳送。請求器102可為處理器 (例如,中央處理器和/或核心),服務處理器、輸入/輸出設備(例如,外圍部件互連(PCI) Express設備)、存儲器本身或系統(tǒng)100中請求訪問存儲器的任何其他器件。在一些實施例中,存儲控制器110與請求器102在同一芯片上。在所說明的實施例中,存儲控制器110包含錯誤檢驗邏輯部件112、模式指示符 114和存儲裝置尋址邏輯部件116。錯誤檢驗邏輯部件112使用冗余信息來保護數(shù)據(jù)免于發(fā)生確定的故障。在一些實施例中,錯誤檢驗邏輯部件112是糾錯碼(ECC)。如下面進一步討論的,在一些實施例中,存儲裝置130能運行在錯誤檢驗模式中或者非錯誤檢驗模式中。當運行在錯誤檢驗模式中時,存儲裝置130存儲數(shù)據(jù)位和對應的錯誤檢驗位(例如,ECC位)。當運行在非錯誤檢驗模式中時,存儲裝置130的整個容量(基本上)都被于存儲數(shù)據(jù)位。模式指示符114提供存儲裝置130是運行在錯誤檢驗模式中還是非錯誤檢驗模式中的指示。在一些實施例中,模式指示符114包含一個或多個寄存器位。在一些實施例中,存儲裝置130根據(jù)它在錯誤檢驗模式中還是非錯誤檢驗模式中對讀/寫數(shù)據(jù)施加不同的地址映射。例如,用在錯誤檢驗模式中的地址映射可能構(gòu)成錯誤檢驗位(例如,ECC位)的映射。地址映射邏輯部件116使存儲控制器110能知道由存儲裝置130使用的地址映射。地址映射邏輯部件116可為任何能為一些存儲單元提供地址映射的指示的邏輯部件。存儲裝置130可為各種裝置中的任何一個,其中包括動態(tài)隨機存取存儲器(或簡稱為DRAM)的。存儲核心141可組織成一個或多個分離存儲體對140。分離存儲體對指可配置為單個存儲體或兩個分開的存儲體的一對存儲體。在一些實施例中,分離存儲體對的各存儲體具有其自身的行解碼器和列解碼器。在一些實施例中,分離存儲體對的各存儲體能提供存儲頁面。例如,存儲體OA提供頁面142而存儲體OB提供頁面144?!按鎯w”指由存儲裝置提供的存儲單元陣列。存儲體142和144能共同提供邏輯頁面146。術(shù)語“邏輯頁面”指兩個或更多個物理存儲體的邏輯組合。在一些實施例中,頁面142和144各提供1千字節(jié)(K字節(jié))的存儲而邏輯頁面 146提供I字節(jié)的凈有效頁面尺寸。在所說明的實施例中,存儲裝置130包含模式指示符132、后置寫入緩沖器 (posted write buffer) 134,部分寫入屏蔽(partial write mask) 136 和列地址產(chǎn)生邏輯部件138。模式指示符132提供關(guān)于存儲裝置130是運行在錯誤檢驗模式中還是非錯誤檢驗模式中的指示。在一些實施例中,模式指示符132包含寄存器(如模式寄存器組(MRS)) 中的一個或多個位。后置寫入緩沖器134是數(shù)據(jù)在被寫入存儲裝置130的存儲核心之前被投寄的緩沖器。部分寫屏蔽136為被寫入存儲核心的數(shù)據(jù)提供寫屏蔽。在一些實施例中, 部分寫屏蔽136被用于訪問與存儲在存儲裝置130中的數(shù)據(jù)相關(guān)聯(lián)的錯誤檢驗位。在一些實施例中,列地址產(chǎn)生邏輯部件138產(chǎn)生與存儲在存儲裝置130中的數(shù)據(jù)相關(guān)聯(lián)的錯誤檢驗位的列地址信息。存儲裝置130還可包含片上糾錯邏輯部件160。在一些實施例中,當存儲裝置130 運行在錯誤檢驗模式中時,糾錯邏輯部件160改善了其可靠性、可用性及可維修性(RAS)。 更具體地說,在一些實施例中,糾錯邏輯部件160使存儲裝置130能對讀返回數(shù)據(jù)使用CRC 位,即使當它運行在錯誤檢驗模式時。在一些實施例中,糾錯邏輯部件160包含ECC計算邏輯部件和比較邏輯部件。計算和比較邏輯部件使存儲裝置能在本地計算讀出數(shù)據(jù)的ECC位并能在本地比較所計算的ECC位和所存儲的ECC位。若在本地計算的ECC位匹配所存儲的 ECC位,則CRC位可在讀返回數(shù)據(jù)中代替ECC位。ECC糾錯邏輯部件在下面參照圖6_8進行進一步討論。圖2是說明根據(jù)本發(fā)明一實施例實現(xiàn)的動態(tài)隨機存取存儲器(DRAM)的選定形態(tài)的框圖。DRAM 200包含16個存儲體(OA到7B)和8個分離存儲體對(例如,分離存儲體對 OA、0B)。在一些實施例中,DRAM 200能被配置為x4或x8DRAM。在x4模式中,DRAM200提供16個存儲體(OA到7B)并且各存儲體將64位數(shù)據(jù)提供給4個數(shù)據(jù)Q)Q)引腳。在x8模式中,DRAM 200提供8個分離存儲體對來將1 位數(shù)據(jù)提供給8個DQ引腳。在一些實施例中,DRAM 200可配置成運行在錯誤檢驗模式(例如,ECC模式)或非錯誤檢驗模式中。當運行在錯誤檢驗模式中時,DRAM 200通過將數(shù)據(jù)存儲在分離存儲體中的一個(例如,存儲體OA)中,而將對應的錯誤檢驗位(例如,ECC位)存儲在分離存儲體的另一個(例如,存儲體0B)中來利用其分離存儲體架構(gòu)。在一些實施例中,當運行在錯誤檢驗模式中時,DRAM 200被配置為X8DRAM。圖3是說明根據(jù)本發(fā)明一實施例的將數(shù)據(jù)位和錯誤檢驗位存儲在分離存儲體對中的選定形態(tài)的框圖。分離存儲體對300包含存儲體OA和存儲體0B。在一些實施例中,數(shù)據(jù)被存儲在各存儲體中的存一直到N/M(例如,7/8)的存儲單元中,而對應的錯誤檢驗位被存儲在分離存儲體對300中的另一存儲體的最后的1/M(例如,1/8)中。例如,覆蓋存儲在存儲體OA中的數(shù)據(jù)的錯誤檢驗位可被存儲在存儲體OB的頂部1/8的存儲單元中(302)。 同樣,覆蓋存儲在存儲體OB中的數(shù)據(jù)的錯誤檢驗位可被存儲在存儲體OA的頂部1/8的存儲單元中(304)。在一些實施例中,錯誤檢驗位是錯誤檢驗碼(ECC)位。在一些實施例中,主機(例如,圖1所示的存儲控制器110)尋址分離存儲體對中的特定存儲體來確認正在接收/提供數(shù)據(jù)位的存儲體。若存儲裝置處在錯誤檢驗模式中, 則它使用其內(nèi)部邏輯部件(例如,圖1所示的部分寫屏蔽136、列地址產(chǎn)生邏輯部件138等) 來訪問對應于數(shù)據(jù)位的錯誤檢驗位。訪問數(shù)據(jù)位和對應的錯誤檢驗位在下文參照圖4-8進一步討論。圖4是說明一例根據(jù)本發(fā)明一實施例的數(shù)據(jù)位和錯誤檢驗位之間地址映射的框圖。在所說明的實施例中,數(shù)據(jù)位被存儲在由如410所示的分離存儲體對中的一存儲體提供的頁面的7/8。對應的錯誤檢驗位被存儲在分離存儲體對G30)中的另一存儲體的上部的1/8中。例如,覆蓋字節(jié)0-7的ECC位被存儲在存儲單元896中,如附圖標記432所示。 同樣,覆蓋字節(jié)128-135的ECC位被存儲在存儲單元897中,如附圖標記434所示,并且該模式對如圖4所示的頁面410中的數(shù)據(jù)字節(jié)繼續(xù)保持。在一些實施例中,存儲體430的上部1/8中的最后一個字節(jié)(例如,存儲單元90 不被使用,如附圖標記436所示。在一些實施例中,掩護字節(jié)8-15的錯誤檢驗位被存儲在存儲單元905中并且該序列自行重復。圖5A和5B說明了根據(jù)本發(fā)明一實施例的寫入數(shù)據(jù)幀的選定形態(tài)。圖5A和5B所示的寫序列可被用在具有兩個存儲裝置的并行存儲通道的系統(tǒng)中。各器件能看到所有四個幀并被分配DO到D63和D64到D127。下面進一步討論存儲裝置的分配。在一些實施例中,寫序列包含如下幀寫入報頭(Wh) 502,ECC寫入幀(We) 504,寫入數(shù)據(jù)I(Wdl) 506,以及寫入數(shù)據(jù)2 (Wd2) 508。在一些實施例中,各幀是9位幀(例如,單元間隔0到8和9到17)的6位幀(標注為0到5)。Wh 502包含寫序列的報頭信息以及一
些數(shù)據(jù)位。We 504傳送覆蓋相關(guān)數(shù)據(jù)位的錯誤檢驗位(例如,如UI12-15中所示的ECC位 510)。在一些實施例中,錯誤檢驗位(例如,ECC位)用部分寫屏蔽編碼傳送到存儲裝置 130。就是說,除了屏蔽位由錯誤檢驗位(例如,如單元間隔12-15中所示的ECC位510)代替之外,We504可具有與部分寫屏蔽幀(Wm)相同的命令編碼。ECC位ECC0-ECC7覆蓋數(shù)據(jù)位D0-D63,而ECC位ECC8-ECC15覆蓋數(shù)據(jù)位D64-D127。在一些實施例中,當系統(tǒng)運行在錯誤檢驗模式中時,對所有寫入數(shù)據(jù)傳送都需要We幀504。Wdl 506和W2 508傳送用于寫操作的其余數(shù)據(jù)位。數(shù)據(jù)位D0-D63由一個存儲裝置使用而D64-D127由另一存儲裝置使用。在一些實施例中,存儲裝置中的寄存器位判定哪個存儲裝置獲得哪些數(shù)據(jù)位。例如,MRS寄存器可被用來分配數(shù)據(jù)位給存儲裝置。在一些實施例中,地址位gl (512)配有We 504來啟用分離PWB裝載的執(zhí)行。在一些實施例中,存儲裝置可任選地使用與裝載PWB有關(guān)的gl。地址位gl可配有寫CAS以指示分離存儲體中的一個被用于數(shù)據(jù)存儲而另一個被用于ECC位存儲。圖6是說明根據(jù)本發(fā)明一實施例的片上糾錯邏輯部件的選定形態(tài)的框圖。在一些實施例中,存儲裝置600(例如,DRAM)除了其他部件還包含存儲核心601和糾錯邏輯部件 607。存儲核心601和糾錯邏輯部件607可被集成到普通芯片上。在一些實施例中,存儲核心601可包含多個部分如第一部分602和第二部分604。例如,第一部分602和第二部分 604可各自為分離存儲體對中的分離存儲體。數(shù)據(jù)位603被存儲在第一部分602中而對應的ECC位605被存儲在第二部分604中。在一些實施例中,ECC位605由主機(例如,如圖 1所示的存儲控制器110)計算并在寫入數(shù)據(jù)幀(例如,如圖5所示的ECC寫入幀504)中提供給存儲裝置600。糾錯邏輯部件607包含改善存儲裝置600的RAS的邏輯部件。在一些實施例中, 糾錯邏輯部件607包含校驗并糾正ECC錯誤的邏輯部件。原本用來運輸ECC位的讀出數(shù)據(jù)幀的部分可用來運輸CRC位。因此,對軟錯誤和鏈接錯誤,數(shù)據(jù)位603均可被覆蓋,而不用在讀出數(shù)據(jù)幀中運輸ECC位。在所說明的實施例中,糾錯邏輯部件607包含ECC糾錯邏輯部件606、ECC計算邏輯部件608、CRC計算邏輯部件610、比較器612和幀邏輯單元(FLU)614。在一些備選實施例中,糾錯邏輯部件607可包含更多部件、更少部件和/或不同的部件。此外,在一些實施例中,作為糾錯邏輯部件607的一部分說明的一個或多個部件可在存儲裝置600的一個不同的部分中實現(xiàn)。ECC計算邏輯部件608計算覆蓋數(shù)據(jù)603的ECC位。在一些實施例中,邏輯部件 608用與用于計算ECC位605相同的多項式來計算ECC位。例如,邏輯部件608可使用與如圖1所示的錯誤檢驗邏輯部件112相同的多項式。邏輯部件608可使用幾乎任何糾錯碼多項式。在一些實施例中,多項式可為ECC和CRC的結(jié)合。在所說明的實施例中,邏輯部件 608計算8個ECC位來覆蓋64個數(shù)據(jù)位。在一些備選實施例中,ECC位和/或數(shù)據(jù)位的數(shù)量可以不同。比較器612比較所計算的ECC位和所存儲的ECC位(例如,ECC位605)。若這兩組ECC位匹配,則比較器612確證一匹配信號。若所計算的ECC位不匹配所存儲的ECC位,則數(shù)據(jù)位603可包含一錯誤。在一些實施例中,糾錯邏輯部件607包含ECC糾錯邏輯部件 606來糾正某些錯誤。在這些實施例中,若這兩組ECC位不匹配,則比較器612可提供數(shù)據(jù) (例如,關(guān)于哪些ECC位未匹配的指示)給ECC糾錯邏輯部件606,使得ECC糾錯邏輯部件 606能糾正該問題。在一些實施例中,邏輯部件606包含一位糾錯邏輯部件和表示例如64 位中需要被糾正的信號位的SBC。若比較器612檢測到具有邏輯部件606不能糾正的嚴重程度的錯誤,則它可確證報警信號。例如,若比較器612檢測到雙位錯誤,則它可確證報警信號。比較器612可以是任何適于比較一組位和另一組位并響應該比較來確證一個或多個信號的邏輯部件。如前面討論的,ECC糾錯邏輯部件606包括糾正某些類型的錯誤(例如,單一位錯誤)的邏輯部件。在一些實施例中,邏輯部件606接收數(shù)據(jù)位603和SBC數(shù)據(jù)作為輸入并輸出經(jīng)糾正的數(shù)據(jù)。若沒有檢測到錯誤,則數(shù)據(jù)位603可只是流過ECC糾錯邏輯部件606。CRC計算邏輯部件610計算CRC位來覆蓋由邏輯部件606提供的數(shù)據(jù)位(例如,經(jīng)糾正的數(shù)據(jù)位或初始數(shù)據(jù))。在一些實施例中,CRC計算邏輯部件610計算8個CRC位來覆蓋64個數(shù)據(jù)位。在一些備選實施例中,CRC位的數(shù)量和/或數(shù)據(jù)位的數(shù)量可以不同。CRC 計算邏輯部件610可包括實現(xiàn)各種CRC多項式中任何一個的邏輯部件。在一些備選實施例中,一個不同的方案可被用于產(chǎn)生鏈接錯誤保護位。例如,在一些實施例中邏輯部件610可實現(xiàn)奇偶校驗方案或任何提供鏈接錯誤保護的方案。幀邏輯單元(FLU) 614包括將數(shù)據(jù)位和/或CRC位成幀而傳輸?shù)秸埱笃鞯倪壿嫴考?。在一些實施例中,F(xiàn)LU 614將CRC位附加到數(shù)據(jù)位上。在一些備選實施例中,F(xiàn)LU 614 獨立于數(shù)據(jù)位將CRC位成幀。在一些備選實施例中,若例如檢測到雙位錯誤,則FLU 614可傳送失效的ECC位。圖7是說明根據(jù)本發(fā)明一實施例從存儲裝置讀出數(shù)據(jù)的選定形態(tài)的流程圖。參照處理步驟702,片上糾錯邏輯部件從存儲核心(例如圖6所示的存儲核心601)的相應部分讀出數(shù)據(jù)位和對應的ECC位。為方便討論,術(shù)語“所存儲的ECC位”指在數(shù)據(jù)位被寫入存儲裝置之前產(chǎn)生的、并且與它們所覆蓋的數(shù)據(jù)位一起存儲在存儲裝置上的ECC位。術(shù)語“所計算的ECC位”則指由與存儲核心在同一芯片上的ECC計算邏輯部件計算的ECC位。參照處理步驟704,片上ECC計算邏輯部件(例如,如圖6所示的邏輯部件608)使用與用于計算所存儲的ECC位相同的多項式來為數(shù)據(jù)位計算ECC位。所計算的ECC位在步驟706與所存儲的ECC位進行比較。若所計算的ECC位匹配所存儲的ECC位,則片上CRC 計算邏輯部件計算覆蓋這些位的CRC,如步驟708所示。參照處理步驟710,CRC位和數(shù)據(jù)位被發(fā)送給請求器(用例如圖6所示的FLU 614)。若所計算的ECC位不匹配所存儲的ECC位,則片上糾錯邏輯部件判定檢測到的錯誤是否具有能由片上ECC糾錯邏輯部件糾正的嚴重程度。例如,處理步驟714示出了校驗單一位錯誤的糾錯邏輯部件。若數(shù)據(jù)位包含單一位錯誤,則它可在步驟716被糾正。CRC位然后可被計算(708),并且CRC位和經(jīng)糾正的數(shù)據(jù)位可被發(fā)送給請求器(710)。在一些實施例中,經(jīng)糾正的數(shù)據(jù)可被寫回存儲核心和/或作為錯誤記錄在能被主機隨后擦除的寄存器位置中。若檢測到的錯誤具有指示其不能被糾正的嚴重程度,則糾錯邏輯部件用例如報警信號(718)來報告錯誤。在一些實施例中,該失效的ECC位被存儲在例如寄存器位置中。在一些實施例中,若檢測到單一位錯誤或雙位錯誤,則糾錯邏輯部件發(fā)送ECC位(例如,取代 CRC位)給請求器。在這些實施例中,報警信號也可被確證。主機然后可決定如何處理被破壞的數(shù)據(jù)。圖8說明了根據(jù)本發(fā)明一實施例的讀出數(shù)據(jù)幀的選定形態(tài)。若系統(tǒng)(例如,圖1所示的系統(tǒng)100)處于錯誤檢驗模式中,則,在一些實施例中,64位數(shù)據(jù)通過兩個疊置的幀來傳送。例如,幀802和804在單元間隔(UI) 0-7和9-16中傳送64個數(shù)據(jù)位。此外,幀802 和804傳送8個CRC位。例如,在UI 8中運輸4個CRC位而在UI 17中運輸另外4個CRC 位。在一些實施例中,并行地進行兩個讀操作,并且在4個幀中傳送1 數(shù)據(jù)位。例如,在所說明的實施例中,幀802和804傳送第一 64個數(shù)據(jù)位(例如,d0_d63)而幀806和 808傳送另一 64個數(shù)據(jù)位(例如,d64-dl27)。覆蓋數(shù)據(jù)位d0_d63的CRC位(例如,CRC_ Α)分別在幀802和804的UI 8和17中傳送。同樣,覆蓋數(shù)據(jù)位d64_dl27的CRC位(例如,CRC_B)分別在幀806和808的UI 8和17中傳送。在一些備選實施例中,讀出幀可具有不同的結(jié)構(gòu)和/或可被運輸?shù)牟煌瑪?shù)量的幀。因為數(shù)據(jù)位既覆蓋軟錯誤又覆蓋鏈接錯誤而只有CRC位用讀出數(shù)據(jù)幀返回,所以改善了存儲裝置的RAS。圖9是說明根據(jù)本發(fā)明一實施例的電子系統(tǒng)的選定形態(tài)的框圖。電子系統(tǒng)900包含處理器910、存儲控制器920、存儲器930、輸入/輸出(I/O)控制器940、射頻(RF)電路 950和天線960。在運行中,系統(tǒng)900用天線960來發(fā)送和接收信號,并且這些信號由圖9 所示的各種部件來處理。天線960可為定向天線或全向天線。如本文中使用的,術(shù)語“全向天線,,指任何在至少一個平面中具有基本均勻的方向圖的天線。例如,在一些實施例中,天線960可為諸如偶極天線或四分之一波長天線的全向天線。同時,例如,在一些實施例中, 天線960可為諸如拋物面碟形天線、貼片天線或八木天線的定向天線。在一些實施例中,天線960可包括多個物理天線。射頻電路950與天線960和I/O控制器940通信。在一些實施例中,RF電路950 包含對應于通信協(xié)議的物理接口(PHY)。例如,RF電路950可包含調(diào)制器、解調(diào)器、混頻器、 頻率合成器、低噪聲放大器、功率放大器等。在一些實施例中,RF電路950可包含外差接收器,而在另一些實施例中,RF電路950可包含直接變換接收器。例如,在具有多個天線960 的實施例中,各天線可被連接到對應的接收器。在運行中,RF電路950接收來自天線960 的通信信號并提供模擬或數(shù)字信號給I/O控制器940。此外,I/O控制器940可提供信號給 RF電路950,該電路基于這些信號工作,然后將它們傳輸?shù)教炀€960。處理器910可為任何類型的處理器件。例如,處理器910可為微處理器、微控制器等。此外,處理器910可包含任意數(shù)量的處理核心或可包含任意數(shù)量的單獨處理器。存儲控制器920提供處理器910和圖9所示的其他部件之間的通信路徑。在一些實施例中,存儲控制器920是還提供其他功能的集線器的一部分。如圖9所示,存儲控制器 920連接到處理器910、I/O控制器940和存儲器930。存儲器930可包括多種存儲裝置。這些存儲裝置可基于任何類型的存儲技術(shù)。例如,存儲器930可為隨機存取存儲器(RAM),動態(tài)隨機存取存儲器(DRAM),靜態(tài)隨機存取存儲器(SRAM),非易失性存儲器如閃存,或任何其他類型的存儲器。存儲器930可支持錯誤檢驗模式和非錯誤檢驗模式。在一些實施例中,存儲器930包含片上糾錯邏輯部件932。糾錯邏輯部件932可通過將ECC產(chǎn)生邏輯部件和比較邏輯部件集成到存儲裝置用讀返回數(shù)據(jù)來啟動循環(huán)冗余碼(CRC)位的使用。存儲器930可代表一個或多個模塊上的單個存儲裝置或一些存儲裝置。存儲控制器920通過互連部922將數(shù)據(jù)提供給存儲器930并響應讀請求從存儲器930接收數(shù)據(jù)。命令和/或地址可通過互連部922或通過不同的互連部(圖中未顯示)來提供給存儲器930。 存儲控制器920可從處理器910或從另一來源接收將存入存儲器930的數(shù)據(jù)。存儲控制器 920可將其從存儲器930接收的數(shù)據(jù)提供給處理器910或另一目標裝置?;ミB部922可為雙向互連部或單向互連部。互連部922可包含一些并行導體。信號可為差分的或單端的。 在一些實施例中,互連部922使用前向、多相時鐘方案來運行。存儲控制器920還被連接到I/O控制器940并提供處理器910和I/O控制器940 之間的通信路徑。I/O控制器940包含用于與I/O電路如串行端口、并行端口、通用串行總線(USB)端口等通信的電路。如圖9所示,I/O控制器940提供到RF電路950的通信路徑。圖10是說明根據(jù)本發(fā)明一備選實施例的電子系統(tǒng)的選定形態(tài)的框圖。電子系統(tǒng) 1000包含存儲器930、I/O控制器940、RF電路950和天線960,這些都在上面參照圖9作了描述。電子系統(tǒng)1000還包含處理器1010和存儲控制器1020。如圖10所示,存儲控制器 1020可與處理器1010在同一芯片上。處理器1010可為如上面參照處理器910(圖5)描述的任何類型的處理器。由圖9和10代表的示例系統(tǒng)包括桌上型電腦、膝上型電腦、服務器、 便攜式電話、個人數(shù)字助理、數(shù)字家庭系統(tǒng)等。本發(fā)明實施例的部件還可作為用于存儲機器可執(zhí)行指令的可機讀介質(zhì)來提供。可機讀介質(zhì)可包括(但不限于)閃存、光盤、只讀光盤存儲器(CD-ROM)、數(shù)字通用/視頻光盤 (DVD) ROM,隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、磁或光卡、傳播介質(zhì)或適于存儲電子指令的其他類型的可機讀介質(zhì)。例如,本發(fā)明的實施例可作為計算機程序來下載,該程序可通過通信鏈接(例如,調(diào)制解調(diào)器或網(wǎng)絡連接)借助包含在載波或其他傳播介質(zhì)中的數(shù)據(jù)信號來從遠程計算機(例如,服務器)傳送到請求計算機(例如,客戶機)。要理解到整個說明書中對“一個實施例”或“一實施例”的引用意味著與該實施例相聯(lián)系而描述的特定功能、結(jié)構(gòu)或特征包含在本發(fā)明的至少一個實施例中。因此,應強調(diào)并且理解在本說明書的各部分對“一實施例”或“一個實施例”或“一備選實施例”的兩個或多個引用不必全都參照同一實施例。此外,所述特定功能、結(jié)構(gòu)或特征可適當結(jié)合在本發(fā)明的一個或多個實施例中。同樣,要理解到在對本發(fā)明的實施例的前面描述中,為了簡化本公開以理解各發(fā)明點中的一個或多個,各種特征有時被集中在單個實施例、附圖或其描述中。然而,不應將所公開的方法理解成反映了這樣的意圖所要求的主題需要比在各權(quán)利要求中明確陳述的更多的特征。更確切地說,如下面權(quán)利要求所反映的發(fā)明點少于單個前面公開的實施例的所有特征。因此,“具體實施方式
”部分后的權(quán)利要求在文中被明示地結(jié)合到“具體實施方式
”部分中。
權(quán)利要求
1.一種存儲裝置,包括存儲核心,它具有存儲數(shù)據(jù)位的第一部分和存儲對應于所述數(shù)據(jù)位的糾錯碼(ECC) 位(存儲的ECC位)的第二部分;和糾錯邏輯部件,它與所述存儲核心在同一芯片上,所述糾錯邏輯部件包括糾錯碼ECC 計算邏輯部件來計算對應于所述數(shù)據(jù)位的糾錯碼ECC位(計算的ECC位),其中所述糾錯邏輯部件進一步包括用來糾正所述數(shù)據(jù)位中的錯誤的ECC糾錯邏輯部件,用來比較所存儲的糾錯碼ECC位和所計算的糾錯碼ECC位的比較器,用來產(chǎn)生對應于所述數(shù)據(jù)位的循環(huán)冗余碼CRC位的循環(huán)冗余碼(CRC)產(chǎn)生邏輯部件和用來將所述循環(huán)冗余碼CRC位和所述數(shù)據(jù)位發(fā)送給請求器的成幀邏輯部件。
2.如權(quán)利要求1所述的存儲裝置,其中,所述存儲核心包括具有對應于第一部分的第一存儲體和對應于第二部分的第二存儲體的分離的存儲體對。
3.如權(quán)利要求1所述的存儲裝置,其中所述存儲裝置包括動態(tài)隨機存取存儲器 (DRAM)設備。
4.如權(quán)利要求1所述的存儲裝置,其中所述存儲裝置能夠在錯誤檢驗模式和非錯誤檢驗模式中操作。
5.如權(quán)利要求4所述的存儲裝置,其中所述存儲裝置進一步包括映射邏輯部件,用來將所存儲的糾錯碼ECC位映射到所述存儲核心的第二部分。
6.一種方法,包括從存儲核心的第一部分讀出數(shù)據(jù)位,從所述存儲核心的第二部分讀出存儲的糾錯碼(ECC)位;用糾錯碼ECC計算邏輯部件來產(chǎn)生計算的糾錯碼ECC位,其中,所述存儲核心和所述糾錯碼ECC計算邏輯部件位于共用集成電路上;比較所存儲的糾錯碼ECC位和所計算的糾錯碼ECC位來判定所存儲的糾錯碼ECC位是否與所計算的糾錯碼ECC位匹配;以及在糾正單一位錯誤后,將循環(huán)冗余碼CRC位和所述數(shù)據(jù)位發(fā)送給請求器。
7.如權(quán)利要求6所述的方法,其中,所述存儲核心包括具有對應于第一部分的第一存儲體和對應于第二部分的第二存儲體的分離的存儲體對。
8.如權(quán)利要求6所述的方法,進一步包括如果所存儲的糾錯碼ECC位與所計算的糾錯碼ECC位匹配,則計算對應于所述數(shù)據(jù)位的循環(huán)冗余碼(CRC)位;以及將所述循環(huán)冗余碼CRC位和所述數(shù)據(jù)位發(fā)送給請求器。
9.如權(quán)利要求8所述的方法,進一步包括如果所存儲的糾錯碼ECC位與所計算的糾錯碼ECC位不匹配,則判定所述數(shù)據(jù)位是否包含單一位錯誤;以及如果所述數(shù)據(jù)位包含單一位錯誤,則用糾錯碼ECC糾錯邏輯部件來糾正所述單一位錯誤,其中,所述糾錯碼ECC糾錯邏輯部件和所述存儲核心位于共用集成電路上。
10.如權(quán)利要求6所述的方法,其中,將所述循環(huán)冗余碼CRC位和所述數(shù)據(jù)位發(fā)送到所述請求器包括將所述數(shù)據(jù)位形成為讀出數(shù)據(jù)幀;將所述循環(huán)冗余碼CRC位附加到所述讀出數(shù)據(jù)幀;以及將所述讀出數(shù)據(jù)幀發(fā)送給所述請求器。
11.如權(quán)利要求6所述的方法,進一步包括若所述數(shù)據(jù)位不包含單一位錯誤,則向請求器報告錯誤。
12.—種系統(tǒng),包括動態(tài)隨機存取存儲器(DRAM)設備,包括包括第一存儲體和第二存儲體的分離的存儲體對,其中,如果所述DRAM設備處于錯誤檢驗模式中,則數(shù)據(jù)位將被存儲在第一存儲體中而對應的糾錯碼(ECC)位(存儲的ECC位) 將被存儲在第二存儲體中,以及與所述分離的存儲體對在同一芯片上的糾錯邏輯部件,所述糾錯邏輯部件包括用來糾正所述數(shù)據(jù)位中的錯誤的糾錯碼ECC糾錯邏輯部件,用來比較所存儲的糾錯碼ECC位和所計算的糾錯碼ECC位的比較器,用來產(chǎn)生對應于所述數(shù)據(jù)位的循環(huán)冗余碼CRC位的循環(huán)冗余碼(CRC)產(chǎn)生邏輯部件,和用來將循環(huán)冗余碼CRC位和所述數(shù)據(jù)位發(fā)送給請求器的成幀邏輯部件;以及與所述DRAM設備耦合的請求器。
13.如權(quán)利要求12所述的系統(tǒng),其中,所述糾錯邏輯部件進一步包括 糾錯碼ECC糾錯邏輯部件,用來糾正數(shù)據(jù)位中的錯誤。
14.如權(quán)利要求13所述的系統(tǒng),其中,所述糾錯邏輯部件進一步包括 比較器,用來比較所存儲的糾錯碼ECC位和所計算的糾錯碼ECC位。
15.如權(quán)利要求13所述的系統(tǒng),其中,所述糾錯邏輯部件進一步包括循環(huán)冗余碼(CRC)產(chǎn)生邏輯部件,用來產(chǎn)生對應于所述數(shù)據(jù)位的循環(huán)冗余碼CRC位。
16.如權(quán)利要求13所述的系統(tǒng),其中,所述糾錯邏輯部件進一步包括 成幀邏輯部件,用來將循環(huán)冗余碼CRC位和所述數(shù)據(jù)位發(fā)送給請求器。
17.如權(quán)利要求13所述的系統(tǒng),其中,所述DRAM設備進一步包括 映射邏輯部件,用來將所存儲的糾錯碼ECC位映射到第二存儲體。
全文摘要
本發(fā)明“改善存儲裝置的可靠性、可用性及可維修性”。在一些實施例中,存儲裝置包含具有存儲數(shù)據(jù)位的第一部分和存儲對應于數(shù)據(jù)位的糾錯碼(ECC)位的第二部分的存儲核心。存儲裝置還可在與存儲核心在同一芯片上包含糾錯邏輯部件。在一些實施例中,糾錯邏輯部件使存儲裝置能夠計算ECC位并將所存儲的ECC位與所計算的ECC位進行比較。
文檔編號G11C29/42GK102394112SQ201110266608
公開日2012年3月28日 申請日期2007年6月29日 優(yōu)先權(quán)日2006年6月30日
發(fā)明者K·S·貝恩斯 申請人:英特爾公司