具有錯誤糾正邏輯的存儲器設(shè)備的制造方法
【專利說明】
【背景技術(shù)】
[0001]可以在計算系統(tǒng)中使用存儲器設(shè)備以存儲數(shù)據(jù)。在某些情況下,可以將存儲器設(shè)備提供在處理器和永久存儲子系統(tǒng)之間,所述存儲器設(shè)備經(jīng)常以諸如(一個或多個)基于盤的存儲設(shè)備之類的(一個或多個)較低速存儲設(shè)備實現(xiàn)。處理器能夠比在永久存儲子系統(tǒng)處更快地在存儲器設(shè)備處執(zhí)行數(shù)據(jù)訪問。
[0002]為了解決可能發(fā)生在存儲器設(shè)備中的數(shù)據(jù)錯誤,可以采用錯誤檢測和糾正技術(shù)來保護存儲在存儲器設(shè)備中的數(shù)據(jù)??梢詫⒓m錯碼和數(shù)據(jù)存儲在存儲器設(shè)備中,并且可以使用糾錯碼來檢測和糾正從存儲器設(shè)備讀的數(shù)據(jù)中的錯誤。錯誤檢測和糾正可以引起存儲器訪問等待時間的增加,其可以降低可以訪問存儲器設(shè)備的數(shù)據(jù)的速度。
【附圖說明】
[0003]關(guān)于下圖描述某些實施例:
圖1是根據(jù)某些實現(xiàn)的包括存儲器控制器和存儲設(shè)備的示例系統(tǒng)的框圖;
圖2是根據(jù)某些實現(xiàn)的聯(lián)機(inline)錯誤檢測和糾正過程的流程圖;以及圖3是根據(jù)進一步實現(xiàn)的示例系統(tǒng)的框圖。
【具體實施方式】
[0004]隨著存儲器設(shè)備的尺寸繼續(xù)收縮,存儲器設(shè)備可能更易于遭受數(shù)據(jù)錯誤,其已導(dǎo)致在存儲器設(shè)備中增加的數(shù)據(jù)錯誤率。存在可以被用在計算系統(tǒng)(例如臺式計算機、筆記本計算機、平板計算機、智能電話、服務(wù)器計算機、存儲系統(tǒng)、通信節(jié)點等等)中的各種不同類型的存儲器設(shè)備。
[0005]存儲器設(shè)備的示例包括動態(tài)隨機訪問存儲器(DRAM)設(shè)備、閃速存儲器設(shè)備、相變存儲器設(shè)備、憶阻器存儲器設(shè)備等等。憶阻器存儲器設(shè)備可以使用憶阻器來存儲數(shù)據(jù),所述憶阻器基于每個單元的電阻水平存儲數(shù)據(jù)。當(dāng)足夠大的電流以第一方向流經(jīng)憶阻器時,憶阻器的電阻增加。當(dāng)足夠大的電流以相反的方向流經(jīng)憶阻器時,憶阻器的電阻減小。當(dāng)電流停止時,憶阻器保持其具有的最后的電阻,這提供由憶阻器存儲的數(shù)據(jù)比特的表示。
[0006]相變存儲器設(shè)備的存儲器單元實際上還是可變電阻器。在某些情況下,可變電阻器可以由硫?qū)倩衔锊A纬伞榱讼蛳嘧兇鎯ζ鲉卧獙?,加熱單元,這熔化了材料,其然后被冷卻。冷卻的速率控制得到的固體材料的晶體大小,這控制存儲器單元的電阻。不同的電阻水平可以表示不同的數(shù)據(jù)狀態(tài)。
[0007]在某些情況下,數(shù)據(jù)錯誤率可以受如何執(zhí)行寫以將數(shù)據(jù)寫到存儲器設(shè)備的影響。例如,利用憶阻器存儲器設(shè)備,電流流被用于將數(shù)據(jù)狀態(tài)寫到特定憶阻器。相對低的電流水平可以被用于寫憶阻器以延長憶阻器的壽命。然而,使用相對低的電流水平來寫到憶阻器可以導(dǎo)致較高的數(shù)據(jù)誤碼率。
[0008]存儲器設(shè)備的其他類型也與可以導(dǎo)致增加的數(shù)據(jù)錯誤率的相應(yīng)的因素相關(guān)聯(lián)。
[0009]在某些系統(tǒng)中,可以在被用于管理存儲器設(shè)備(或多個存儲器設(shè)備)的訪問的存儲器控制器中執(zhí)行錯誤檢測和糾正。然而,在存儲器控制器處執(zhí)行錯誤檢測和糾正可以增加存儲器訪問等待時間。當(dāng)在存儲器控制器處應(yīng)用錯誤檢測和糾正時,存儲器控制器必須首先從存儲器設(shè)備接收所讀數(shù)據(jù)。在接收所有的所讀數(shù)據(jù)(連同相應(yīng)的糾錯碼)后,存儲器控制器然后可以應(yīng)用存儲器錯誤檢測和糾正,這涉及可以加到在從存儲器設(shè)備向數(shù)據(jù)的請求者提供數(shù)據(jù)中涉及的總時間的計算。請求者可以是處理器或在計算系統(tǒng)中的其他設(shè)備。
[0010]根據(jù)某些實現(xiàn),當(dāng)通過在存儲器設(shè)備和存儲器控制器之間的數(shù)據(jù)鏈路遞送從存儲器設(shè)備讀的數(shù)據(jù)時,提供聯(lián)機錯誤檢測和糾正技術(shù)或機制以執(zhí)行在存儲器設(shè)備內(nèi)的數(shù)據(jù)的聯(lián)機錯誤檢測和糾正。在存儲器設(shè)備內(nèi)部的數(shù)據(jù)路徑可以是并行路徑,其中數(shù)據(jù)比特(連同對應(yīng)于糾錯碼的比特)的集合(例如行)可以被并行讀出。一旦并行地讀,在通過在存儲器設(shè)備和存儲器控制器之間的鏈路傳送所讀數(shù)據(jù)的部分時,存儲器設(shè)備就可以繼續(xù)將錯誤檢測和糾正應(yīng)用在所讀數(shù)據(jù)上。在存儲器設(shè)備處的錯誤檢測和糾正計算完成之前,可以將所讀數(shù)據(jù)的部分從存儲器設(shè)備提供到存儲器控制器。因此,在未檢測到錯誤的正常情況下,錯誤檢測和糾正不增加數(shù)據(jù)訪問等待時間。
[0011]圖1示出了包括存儲器設(shè)備102和存儲器控制器104的示例布置。存儲器設(shè)備102和存儲器控制器104通過數(shù)據(jù)鏈路106連接。在某些示例中,數(shù)據(jù)鏈路106是諸如串行器(Serializer) /解串器(Deserializer ) (SerDes)鏈路之類的串行鏈路。在其他示例中,數(shù)據(jù)鏈路106可以是不同類型的數(shù)據(jù)鏈路。
[0012]存儲器設(shè)備102包括允許存儲器設(shè)備102通過串行鏈路106通信的通信接口 108。在某些實現(xiàn)中,通信接口 108可以包括并行到串行轉(zhuǎn)換器和串行到并行轉(zhuǎn)換器以在(用在串行鏈路106上的)串行格式和(用在存儲器設(shè)備102內(nèi)的并行鏈路110上的)并行格式之間轉(zhuǎn)換。并行鏈路110具有通過其可以并行傳送數(shù)據(jù)比特的多個數(shù)據(jù)路徑。相對地,串行鏈路106具有通過其串行傳送數(shù)據(jù)比特的一個數(shù)據(jù)路徑。
[0013]并行鏈路110被提供在存儲陣列112和通信接口 108之間。存儲陣列112包括存儲器單元的陣列,所述存儲器單元可以是DRAM單元、閃速存儲器單元、憶阻器單元、相變存儲器單元等等,這取決于存儲器設(shè)備102的類型。更一般地,存儲器單元指用于存儲數(shù)據(jù)比特(或多個數(shù)據(jù)比特)的電路。
[0014]并行鏈路110允許在相同時間從存儲陣列112取回數(shù)據(jù)比特的集合(例如數(shù)據(jù)比特的行或數(shù)據(jù)比特的某些其他段)。例如,數(shù)據(jù)比特的集合可以包括所讀數(shù)據(jù)以及糾錯碼(ECC)比特。一旦從存儲陣列112并行地讀,所讀數(shù)據(jù)和ECC就在并行鏈路110上可用于錯誤檢測和糾正邏輯114 (在本文中被稱作“ECC邏輯114”)。
[0015]而且,在并行鏈路110上的所讀數(shù)據(jù)可以被提供到通信接口 108,其中所讀數(shù)據(jù)被轉(zhuǎn)換成適合于通過鏈路106傳送的格式。例如,如上文記錄的那樣,通信接口 108可以應(yīng)用并行到串行轉(zhuǎn)換。
[0016]根據(jù)某些實現(xiàn),在將所讀數(shù)據(jù)從并行鏈路110通過通信接口 108提供到串行鏈路106的時間期間,ECC邏輯114可以執(zhí)行與所讀數(shù)據(jù)上的錯誤檢測和糾正相關(guān)的計算??梢员粦?yīng)用的錯誤檢測和糾正技術(shù)的示例包括諸如Reed-Solomon ECC技術(shù)的基于符號的ECC技術(shù),或者諸如BCH技術(shù)的基于比特的ECC技術(shù)。盡管對示例ECC技術(shù)進行了引用,但是應(yīng)注意在其他實現(xiàn)中,ECC邏輯114可以應(yīng)用其他類型錯誤檢測和糾正技術(shù)。
[0017]由ECC邏輯114執(zhí)行的錯誤檢測和糾正技術(shù)被視為聯(lián)機錯誤檢測和糾正技術(shù),因為可以在通信接口 108正在將從存儲陣列112讀的數(shù)據(jù)的部分通過串行鏈路106傳送到存儲器控制器104時執(zhí)行錯誤檢測和糾正。換言之,通信接口 108能夠在由在存儲器設(shè)備102內(nèi)的ECC邏輯114完成所讀數(shù)據(jù)的錯誤檢測和糾正之前將所讀數(shù)據(jù)從存儲器設(shè)備102的存儲陣列112通過串行鏈路106傳送到存儲器控制器104。
[0018]通過使用ECC邏輯114執(zhí)行聯(lián)機錯誤檢測和糾正,針對錯誤保護了從存儲陣列112讀的數(shù)據(jù)而不增加存儲器訪問時間。例如,如果存儲器設(shè)備102在將所讀數(shù)據(jù)從存儲器設(shè)備102傳送到存儲器控制器104之前等待直到由ECC邏輯114完成錯誤檢測和糾正,那么存儲器訪問等待時間將增加。
[0019]存儲器設(shè)備102還包括數(shù)據(jù)訪問邏輯116,其響應(yīng)于經(jīng)由通信接口 108從存儲器控制器104接收的命令以向存儲陣列112發(fā)出相應(yīng)的命令。從存儲器控制器104接收的請求可以是讀請求或?qū)懻埱蟆?br>[0020]如果ECC邏輯114確定在從存儲器設(shè)備102傳送到存儲器控制器104的所讀數(shù)據(jù)中不存在錯誤,那么ECC邏輯114不需要采取任何進一步行動,因為所讀數(shù)據(jù)已經(jīng)被傳送到存儲器控制器104而沒有錯誤。
[0021]然而,如果ECC邏輯114確定在被傳送或已經(jīng)被傳送到存儲器控制器104的所讀數(shù)據(jù)中存在錯誤,那么ECC邏輯114可以將關(guān)于在傳送的數(shù)據(jù)中的錯誤的存在的指示提供到存儲器控制器104。該指示可以是讀事務(wù)已經(jīng)失敗的指示。事務(wù)已經(jīng)失敗的指示可以是顯式失敗指示(例如被斷言成指定狀態(tài)的信號