專利名稱:用于響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)與方法
用于響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)與方法技術(shù)領(lǐng)域
本發(fā)明總體上涉及數(shù)據(jù)通信,尤其涉及對(duì)錯(cuò)誤檢測(cè)進(jìn)行響應(yīng)。
技術(shù)背景
數(shù)據(jù)中的錯(cuò)誤會(huì)阻礙數(shù)據(jù)的成功存儲(chǔ)與發(fā)送。多種因素可能造成數(shù)據(jù)破壞。例如, 軟錯(cuò)誤可能源自由alpha粒子或噪聲造成的無(wú)意位翻轉(zhuǎn)。作為另一個(gè)例子,由于溫度或電壓隨時(shí)間的變化導(dǎo)致的漂移或歪斜可能造成數(shù)據(jù)中的硬錯(cuò)誤。
校正性動(dòng)作通常是響應(yīng)于對(duì)錯(cuò)誤的檢測(cè)而啟動(dòng)的。例如,存儲(chǔ)器控制器可以在確定命令在發(fā)送過(guò)程中被破壞之后重新發(fā)布命令。在有些情況下,存儲(chǔ)器控制器可以在經(jīng)該存儲(chǔ)器控制器與存儲(chǔ)器結(jié)構(gòu)之間的鏈路重新發(fā)布命令到該存儲(chǔ)器結(jié)構(gòu)之前啟動(dòng)對(duì)該鏈路的再訓(xùn)練。
校正性動(dòng)作可能限制存儲(chǔ)器結(jié)構(gòu)用以執(zhí)行某些操作的能力。例如,在再訓(xùn)練該鏈路時(shí),存儲(chǔ)器控制器可能不能夠使用該鏈路向存儲(chǔ)器結(jié)構(gòu)發(fā)送讀命令和寫命令。減少存儲(chǔ)器控制器執(zhí)行校正性動(dòng)作的時(shí)間量可以增加存儲(chǔ)器控制器用以執(zhí)行正常操作的可用性??捎眯缘脑黾愚D(zhuǎn)化為效率的提高和存儲(chǔ)器等待時(shí)間的減少。因此,期望增加存儲(chǔ)器控制器花在正常操作上的時(shí)間與花在校正性動(dòng)作上的時(shí)間之比。發(fā)明內(nèi)容
在一種特定的實(shí)施方式中,公開(kāi)了一種用以響應(yīng)錯(cuò)誤檢測(cè)的方法。該方法包括向第一重新驅(qū)動(dòng)設(shè)備發(fā)布第一命令,而向第二重新驅(qū)動(dòng)設(shè)備發(fā)布第二命令。該方法還包括響應(yīng)于檢測(cè)到在存儲(chǔ)器控制器與所述第二重新驅(qū)動(dòng)設(shè)備之間的發(fā)送錯(cuò)誤而向該第二重新驅(qū)動(dòng)設(shè)備重新發(fā)布所述第二命令。該方法進(jìn)一步包括在第一緩沖器處存儲(chǔ)響應(yīng)于所述第一命令而從所述第一重新驅(qū)動(dòng)設(shè)備接收到的第一數(shù)據(jù)。該方法包括在第二緩沖器處存儲(chǔ)響應(yīng)于重新發(fā)布的第二命令而從所述第二重新驅(qū)動(dòng)設(shè)備接收到的第二數(shù)據(jù)。該方法還包括合并所述第二數(shù)據(jù)與所述第一數(shù)據(jù)。
在另一種實(shí)施方式中,公開(kāi)了一種用以響應(yīng)錯(cuò)誤檢測(cè)的方法。該方法包括響應(yīng)于啟動(dòng)對(duì)在存儲(chǔ)器控制器與重新驅(qū)動(dòng)設(shè)備之間鏈路的再訓(xùn)練而發(fā)送常量模式(constant pattern)。該方法還包括在該常量模式發(fā)送了最小持續(xù)時(shí)間之后中斷該常量模式的發(fā)送, 以便發(fā)送轉(zhuǎn)變(transition)序列。該方法還包括在發(fā)送完所述轉(zhuǎn)變序列之后恢復(fù)對(duì)所述常量模式的發(fā)送。
在另一種實(shí)施方式中,公開(kāi)了一種用以響應(yīng)錯(cuò)誤檢測(cè)的方法。該方法包括在第一擦除控制器處創(chuàng)建第一擦除命令。該方法還包括在第二擦除控制器處創(chuàng)建第二擦除命令。 該方法還包括在存儲(chǔ)器控制器端口處交替發(fā)布所述第一擦除命令和第二擦除命令。
現(xiàn)在將參考附圖僅僅作為例子描述本發(fā)明的實(shí)施方式,附圖中
圖1是用以響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)的第一實(shí)施方式的框圖2是用以響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)的第二實(shí)施方式的框圖3是用以響應(yīng)錯(cuò)誤檢測(cè)的方法的第一實(shí)施方式的流程圖4是用以響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)的第三實(shí)施方式的框圖5是用以響應(yīng)錯(cuò)誤檢測(cè)的方法的第二實(shí)施方式的流程圖6是用以響應(yīng)錯(cuò)誤檢測(cè)的方法的第四實(shí)施方式的框圖7是用以響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)的第五實(shí)施方式的框圖;及
圖8是用以響應(yīng)錯(cuò)誤檢測(cè)的方法的第三實(shí)施方式的流程圖。
具體實(shí)施方式
圖1是用以響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)的第一實(shí)施方式的圖,該系統(tǒng)總體上標(biāo)記為100。 系統(tǒng)100包括第一重新驅(qū)動(dòng)設(shè)備104、第二重新驅(qū)動(dòng)設(shè)備106及具有第一緩沖器108和第二緩沖器110的存儲(chǔ)器控制器102。存儲(chǔ)器控制器102和第一重新驅(qū)動(dòng)設(shè)備104可以經(jīng)第一高速鏈路連接,而存儲(chǔ)器控制器102和第二重新驅(qū)動(dòng)設(shè)備106經(jīng)第二高速鏈路連接。每條高速鏈路可以是指兩條單向的高速鏈路。例如,存儲(chǔ)器控制器102可以經(jīng)第一高速鏈路的南向鏈路向第一重新驅(qū)動(dòng)設(shè)備104進(jìn)行發(fā)送,而第一重新驅(qū)動(dòng)設(shè)備104可以經(jīng)第一高速鏈路的北向鏈路向存儲(chǔ)器控制器102進(jìn)行發(fā)送。
總的來(lái)說(shuō),存儲(chǔ)器控制器102可以把單個(gè)命令分成兩個(gè)命令(例如,第一命令112 和第二命令114)。第一命令112可以發(fā)送到第一重新驅(qū)動(dòng)設(shè)備104,而第二命令114可以發(fā)送到第二重新驅(qū)動(dòng)設(shè)備106。為了完成單個(gè)命令,可以執(zhí)行第一命令112和第二命令114 兩者。存儲(chǔ)器控制器102可以響應(yīng)于第一命令112的發(fā)送而從第一重新驅(qū)動(dòng)設(shè)備104接收好的數(shù)據(jù)(例如,第一數(shù)據(jù)116),并且可以響應(yīng)于第二命令114的發(fā)送而檢測(cè)存儲(chǔ)器控制器 102與第二重新驅(qū)動(dòng)設(shè)備106之間的發(fā)送錯(cuò)誤118。在沒(méi)有響應(yīng)于第一命令112和第二命令114而接收到的好的數(shù)據(jù)的情況下,對(duì)于單個(gè)命令的響應(yīng)可能不能完成。代替丟棄第一數(shù)據(jù)116并且重新發(fā)送第一命令112和第二命令116兩者,存儲(chǔ)器控制器102可以存儲(chǔ)響應(yīng)于第一命令112接收到的好的數(shù)據(jù)(例如,第一數(shù)據(jù)116)。存儲(chǔ)器控制器102可以向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令114(例如,重新發(fā)布的第二命令120)。
在響應(yīng)于重新發(fā)布的第二命令120而接收到好的數(shù)據(jù)(第二數(shù)據(jù)12 之后,存儲(chǔ)器控制器可以合并第一數(shù)據(jù)116和第二數(shù)據(jù)122,以產(chǎn)生對(duì)單個(gè)命令的同步完成數(shù)據(jù)響應(yīng)。 只重新發(fā)布第二命令114而不是兩個(gè)命令都重新發(fā)布可以防止有些錯(cuò)誤。例如,第一命令 112的執(zhí)行可能改變存儲(chǔ)器結(jié)構(gòu)中的數(shù)據(jù)。第一命令112的重新發(fā)布可能啟動(dòng)對(duì)存儲(chǔ)器結(jié)構(gòu)中的改變后的數(shù)據(jù)而不是如在第一數(shù)據(jù)116中檢索到的初始數(shù)據(jù)的檢索。
保存第一數(shù)據(jù)116用以與響應(yīng)于重新發(fā)布的第二命令120接收到的第二數(shù)據(jù)122 合并可以減少所執(zhí)行的校正動(dòng)作的復(fù)雜性。減少校正動(dòng)作的復(fù)雜性可以減少專用于執(zhí)行校正動(dòng)作所花的時(shí)間量,并增加存儲(chǔ)器控制器可用于執(zhí)行正常操作的時(shí)間量。增加執(zhí)行正常操作所花的時(shí)間與執(zhí)行校正動(dòng)作所花的時(shí)間之比可以提高存儲(chǔ)器控制器102的效率并減少存儲(chǔ)器等待時(shí)間。
存儲(chǔ)器控制器102可以配置成把第一命令112發(fā)布到第一重新驅(qū)動(dòng)設(shè)備104,而把第二命令114發(fā)布到第二重新驅(qū)動(dòng)設(shè)備106。存儲(chǔ)器控制器102可以配置成,響應(yīng)于檢測(cè)到存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的發(fā)送錯(cuò)誤118而向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令(例如,重新發(fā)布的第二命令120)。存儲(chǔ)器控制器102配置成, 在第一緩沖器108處存儲(chǔ)響應(yīng)于第一命令112而從第一重新驅(qū)動(dòng)設(shè)備104接收到的第一數(shù)據(jù)116。存儲(chǔ)器控制器102可以配置成在第二緩沖器110處存儲(chǔ)響應(yīng)于重新發(fā)布的第二命令120而從第二重新驅(qū)動(dòng)設(shè)備106接收到的第二數(shù)據(jù)122。存儲(chǔ)器控制器102配置成合并第二數(shù)據(jù)122與第一數(shù)據(jù)116。
存儲(chǔ)器控制器102可以把第一命令112發(fā)布到第一重新驅(qū)動(dòng)設(shè)備104。第一重新驅(qū)動(dòng)設(shè)備104可以解碼并重新格式化第一命令112,以發(fā)送到與該第一重新驅(qū)動(dòng)設(shè)備104連接的第一存儲(chǔ)器結(jié)構(gòu)(未例示)。例如,在解碼并重新格式化第一命令112之后,第一重新驅(qū)動(dòng)設(shè)備104可以把第一命令112發(fā)送到第一存儲(chǔ)器結(jié)構(gòu)。
響應(yīng)于從第一重新驅(qū)動(dòng)設(shè)備104接收到第一命令112,第一存儲(chǔ)器結(jié)構(gòu)可以把第一數(shù)據(jù)116發(fā)送到第一重新驅(qū)動(dòng)設(shè)備104。第一重新驅(qū)動(dòng)設(shè)備104可以重新格式化第一數(shù)據(jù)116,并把重新格式化后的第一數(shù)據(jù)116經(jīng)第一高速鏈路的北向鏈路發(fā)送到存儲(chǔ)器控制器102。響應(yīng)于接收到第一數(shù)據(jù)116,存儲(chǔ)器控制器102可以把第一數(shù)據(jù)116存儲(chǔ)在第一緩沖器108處。把第一數(shù)據(jù)116存儲(chǔ)在第一緩沖器108處可以允許存儲(chǔ)器控制器102在響應(yīng)于檢測(cè)到存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的發(fā)送錯(cuò)誤118而執(zhí)行校正動(dòng)作時(shí)保存好的數(shù)據(jù)。
檢測(cè)發(fā)送錯(cuò)誤118可以包括第二重新驅(qū)動(dòng)設(shè)備106檢測(cè)從存儲(chǔ)器控制器102接收到的第二命令114中的發(fā)送錯(cuò)誤118。例如,第二重新驅(qū)動(dòng)設(shè)備106可以包括用以檢查從存儲(chǔ)器控制器102接收到的命令中的循環(huán)冗余校驗(yàn)(CRC)錯(cuò)誤的邏輯。CRC校驗(yàn)可以指示經(jīng)第二南向鏈路從存儲(chǔ)器控制器102接收到的第二命令114包含CRC錯(cuò)誤(例如,發(fā)送錯(cuò)誤 118)。
在檢測(cè)到發(fā)送錯(cuò)誤118之后,第二重新驅(qū)動(dòng)設(shè)備106可以丟掉(drop)從存儲(chǔ)器控制器102接收到的第二命令流中的第二后續(xù)命令,并向存儲(chǔ)器控制器102返回告警狀態(tài)幀 150。丟掉第二命令流中的第二后續(xù)命令可以包括,第二重新驅(qū)動(dòng)設(shè)備106不向第二存儲(chǔ)器結(jié)構(gòu)(未例示)重新驅(qū)動(dòng)第二命令114或者第二后續(xù)命令。
第二重新驅(qū)動(dòng)設(shè)備106可以響應(yīng)于檢測(cè)到發(fā)送錯(cuò)誤118而經(jīng)第二高速鏈路的北向鏈路向存儲(chǔ)器控制器102返回告警狀態(tài)幀的流。存儲(chǔ)器控制器102可以使用所接收到的告警狀態(tài)幀來(lái)檢測(cè)存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的發(fā)送錯(cuò)誤118。例如,存儲(chǔ)器控制器102可以確定在第二高速鏈路的南向鏈路中發(fā)生了發(fā)送錯(cuò)誤118。該確定可以基于經(jīng)第二高速鏈路的北向鏈路對(duì)告警狀態(tài)幀150的接收。
響應(yīng)于檢測(cè)到發(fā)送錯(cuò)誤118,存儲(chǔ)器控制器102可以停止發(fā)布后續(xù)命令到第一重新驅(qū)動(dòng)設(shè)備104和第二重新驅(qū)動(dòng)設(shè)備106兩者,以便在存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的鏈路上執(zhí)行校正動(dòng)作。例如,在接收到告警狀態(tài)幀150之后,存儲(chǔ)器控制器 102可以發(fā)布第二高速鏈路的鏈路復(fù)位。鏈路復(fù)位可以從第二高速鏈路清除告警狀態(tài)幀。 在清理了第二高速鏈路之后,第二高速鏈路可以準(zhǔn)備好重新發(fā)布第二命令流。存儲(chǔ)器控制器102可以經(jīng)第二高速鏈路的南向鏈路向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令(例如,重新發(fā)布的第二命令120)。
存儲(chǔ)器控制器102可以向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令流,以便允許第二重新驅(qū)動(dòng)設(shè)備106把第二命令流重新驅(qū)動(dòng)到第二存儲(chǔ)器結(jié)構(gòu)。例如,存儲(chǔ)器控制器102 可以從第二重新驅(qū)動(dòng)設(shè)備106響應(yīng)于檢測(cè)到發(fā)送錯(cuò)誤118而終止第二命令流的點(diǎn)開(kāi)始重新發(fā)布第二命令流。存儲(chǔ)器控制器102可以從重新發(fā)布的第二命令120開(kāi)始向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令流。
第二重新驅(qū)動(dòng)設(shè)備106可以把重新發(fā)布的第二命令120重新驅(qū)動(dòng)到第二存儲(chǔ)器結(jié)構(gòu)。響應(yīng)于接收到重新發(fā)布的第二命令120,第二存儲(chǔ)器結(jié)構(gòu)可以檢索第二數(shù)據(jù)122并把該第二數(shù)據(jù)122發(fā)送到第二重新驅(qū)動(dòng)設(shè)備106。第二重新驅(qū)動(dòng)設(shè)備106可以把第二數(shù)據(jù)122 發(fā)送到存儲(chǔ)器控制器102。存儲(chǔ)器控制器102可以把第二數(shù)據(jù)122存儲(chǔ)在第二緩沖器110 中,以與第一緩沖器108中的第一數(shù)據(jù)116合并。代替在檢測(cè)到發(fā)送錯(cuò)誤118時(shí)重新發(fā)布命令到兩個(gè)重新驅(qū)動(dòng)設(shè)備,存儲(chǔ)第一數(shù)據(jù)116允許存儲(chǔ)器控制器102避免可能由于向第一重新驅(qū)動(dòng)設(shè)備104重新發(fā)布第一命令112而造成的錯(cuò)誤。例如,第一命令112的執(zhí)行可能已經(jīng)改變了存儲(chǔ)器結(jié)構(gòu)中的原始數(shù)據(jù)。
重新發(fā)布第一命令112可能啟動(dòng)對(duì)存儲(chǔ)器結(jié)構(gòu)中已改變數(shù)據(jù)的檢索,而不是對(duì)如第一數(shù)據(jù)116檢索的原始數(shù)據(jù)的檢索。保存第一數(shù)據(jù)116用以與響應(yīng)于重新發(fā)布的第二命令120而接收到的第二數(shù)據(jù)122合并可以減少所執(zhí)行的校正動(dòng)作的復(fù)雜性。減少校正動(dòng)作的復(fù)雜性又可以減少專用于執(zhí)行校正動(dòng)作所花的時(shí)間量并增加存儲(chǔ)器控制器102可用于執(zhí)行正常處理的時(shí)間量。增加執(zhí)行正常處理所花的時(shí)間與執(zhí)行校正動(dòng)作所花的時(shí)間之比可以提高存儲(chǔ)器控制器102的效率并減少存儲(chǔ)器等待時(shí)間。
參考圖2,例示了用以響應(yīng)錯(cuò)誤檢測(cè)并且總體上標(biāo)記為200的系統(tǒng)的另一種實(shí)施方式的圖。系統(tǒng)200包括許多在參考圖1的系統(tǒng)100中找到的元件,其中相似的元件具有相同的附圖標(biāo)記。
在操作期間,存儲(chǔ)器控制器102可以向第一重新驅(qū)動(dòng)設(shè)備104發(fā)布第一命令112。 第一重新驅(qū)動(dòng)設(shè)備104可以解碼并重新格式化第一命令112,以發(fā)送到第一存儲(chǔ)器結(jié)構(gòu)(未例示)。第一存儲(chǔ)器結(jié)構(gòu)可以連接到第一重新驅(qū)動(dòng)設(shè)備104。例如,在解碼并重新格式化第一命令112之后,第一重新驅(qū)動(dòng)設(shè)備104可以把第一命令112發(fā)送到第一存儲(chǔ)器結(jié)構(gòu)。
響應(yīng)于從第一重新驅(qū)動(dòng)設(shè)備104接收到第一命令112,第一存儲(chǔ)器結(jié)構(gòu)可以把第一數(shù)據(jù)116發(fā)送到第一重新驅(qū)動(dòng)設(shè)備104。第一重新驅(qū)動(dòng)設(shè)備104可以重新格式化第一數(shù)據(jù)116,并把重新格式化后的第一數(shù)據(jù)116經(jīng)第一高速鏈路的北向鏈路發(fā)送到存儲(chǔ)器控制器102。響應(yīng)于接收到第一數(shù)據(jù)116,存儲(chǔ)器控制器102可以把第一數(shù)據(jù)116存儲(chǔ)在第一緩沖器108處。把第一數(shù)據(jù)116存儲(chǔ)在第一緩沖器108處可以允許存儲(chǔ)器控制器102在響應(yīng)于檢測(cè)到存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的發(fā)送錯(cuò)誤118而執(zhí)行校正動(dòng)作時(shí)保存好的數(shù)據(jù)(即,第一數(shù)據(jù)116)。
檢測(cè)發(fā)送錯(cuò)誤118可以包括第二重新驅(qū)動(dòng)設(shè)備106檢測(cè)從存儲(chǔ)器控制器102接收到的第二命令114中的發(fā)送錯(cuò)誤118。例如,第二重新驅(qū)動(dòng)設(shè)備106可以包括用以檢查從存儲(chǔ)器控制器102接收到的命令中的CRC錯(cuò)誤的邏輯。CRC校驗(yàn)可以指示經(jīng)第二南向鏈路從存儲(chǔ)器控制器102接收到的第二命令114包含CRC錯(cuò)誤(例如,發(fā)送錯(cuò)誤118)。
在檢測(cè)到發(fā)送錯(cuò)誤118之后,第二重新驅(qū)動(dòng)設(shè)備106可以丟掉從存儲(chǔ)器控制器102 接收到的第二命令流中的第二后續(xù)命令。第二重新驅(qū)動(dòng)設(shè)備106還可以向存儲(chǔ)器控制器 102返回告警狀態(tài)幀。丟掉第二命令流中的第二后續(xù)命令可以包括第二重新驅(qū)動(dòng)設(shè)備106不把第二命令114或者第二后續(xù)命令重新驅(qū)動(dòng)到第二存儲(chǔ)器結(jié)構(gòu)(未例示)。
第二重新驅(qū)動(dòng)設(shè)備106可以向存儲(chǔ)器控制器102返回告警狀態(tài)幀160的流。幀160 可以響應(yīng)于檢測(cè)到發(fā)送錯(cuò)誤118而經(jīng)第二高速鏈路的北向鏈路返回。存儲(chǔ)器控制器102可以使用所接收到的告警狀態(tài)幀160來(lái)檢測(cè)存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的發(fā)送錯(cuò)誤118。例如,存儲(chǔ)器控制器102可以確定在第二高速鏈路的南向鏈路中發(fā)生了發(fā)送錯(cuò)誤118。該確定可以基于經(jīng)第二高速鏈路的北向鏈路對(duì)告警狀態(tài)幀的接收。
響應(yīng)于檢測(cè)到發(fā)送錯(cuò)誤118,存儲(chǔ)器控制器102可以停止發(fā)布后續(xù)命令到第一重新驅(qū)動(dòng)設(shè)備104和第二重新驅(qū)動(dòng)設(shè)備106兩者。可以執(zhí)行在存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的第二高速鏈路上的校正動(dòng)作。例如,在接收到告警狀態(tài)幀160之后,存儲(chǔ)器控制器102可以發(fā)布第二高速鏈路的鏈路復(fù)位。鏈路復(fù)位可以從第二高速鏈路清除告警狀態(tài)幀160。第二高速鏈路可以進(jìn)一步準(zhǔn)備好重新發(fā)布第二命令流。存儲(chǔ)器控制器102 可以經(jīng)第二高速鏈路的南向鏈路向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令(例如,重新發(fā)布的第二命令120)。
存儲(chǔ)器控制器102可以向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令流,以便允許第二重新驅(qū)動(dòng)設(shè)備106把第二命令流重新驅(qū)動(dòng)到第二存儲(chǔ)器結(jié)構(gòu)。例如,存儲(chǔ)器控制器102 可以從第二重新驅(qū)動(dòng)設(shè)備106響應(yīng)于檢測(cè)到發(fā)送錯(cuò)誤118而終止第二命令流的點(diǎn)開(kāi)始重新發(fā)布第二命令流。存儲(chǔ)器控制器102可以從第二命令(例如,重新發(fā)布的第二命令120)開(kāi)始向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令流。
在特定的實(shí)施方式中,第二重新驅(qū)動(dòng)設(shè)備106可以把重新發(fā)布的第二命令120重新驅(qū)動(dòng)到第二存儲(chǔ)器結(jié)構(gòu)。響應(yīng)于接收到重新發(fā)布的第二命令120,第二存儲(chǔ)器結(jié)構(gòu)可以檢索第二數(shù)據(jù)122并把該第二數(shù)據(jù)122發(fā)送到第二重新驅(qū)動(dòng)設(shè)備106。第二重新驅(qū)動(dòng)設(shè)備 106可以把第二數(shù)據(jù)122發(fā)送到存儲(chǔ)器控制器102。存儲(chǔ)器控制器102可以把第二數(shù)據(jù)122 存儲(chǔ)在第二緩沖器110中,以與第一緩沖器108中的第一數(shù)據(jù)116合并。
第二組命令可以在檢測(cè)到發(fā)送錯(cuò)誤118之前從存儲(chǔ)器控制器102發(fā)布到重新驅(qū)動(dòng)設(shè)備。例如,存儲(chǔ)器控制器102可以在發(fā)布第一命令112之后向第一重新驅(qū)動(dòng)設(shè)備104發(fā)送第三命令162。存儲(chǔ)器控制器102可以在發(fā)布第二命令114之后向第二重新驅(qū)動(dòng)設(shè)備106 發(fā)送第四命令166。存儲(chǔ)器控制器102可以響應(yīng)于第三命令162而接收第三數(shù)據(jù)164。第三數(shù)據(jù)164可以存儲(chǔ)在第一緩沖器108處。然而,在從第二重新驅(qū)動(dòng)設(shè)備106接收到告警狀態(tài)幀160之后,存儲(chǔ)器控制器102可以向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第四命令(例如,重新發(fā)布的第四命令170)。存儲(chǔ)器控制器102可以響應(yīng)于重新發(fā)布的第四命令170而接收第四數(shù)據(jù)172。存儲(chǔ)器控制器102可以把第四數(shù)據(jù)172存儲(chǔ)在第二緩沖器110處,以與第一緩沖器108中的第三數(shù)據(jù)164合并。在特定的實(shí)施方式中,第一緩沖器108包括幾個(gè)緩沖器。第一數(shù)據(jù)116可以存儲(chǔ)在第一緩沖器的幾個(gè)緩沖器中的一個(gè)中,而第三數(shù)據(jù)164 可以存儲(chǔ)在第一緩沖器的幾個(gè)緩沖器中的另一個(gè)中。
代替在檢測(cè)到發(fā)送錯(cuò)誤118時(shí)向兩個(gè)重新驅(qū)動(dòng)設(shè)備都重新發(fā)布命令,存儲(chǔ)第一數(shù)據(jù)116和第三數(shù)據(jù)164允許存儲(chǔ)器控制器102避免可能由于向第一重新驅(qū)動(dòng)設(shè)備104重新發(fā)布第一命令112和第三命令162而造成的錯(cuò)誤。例如,第一命令112的執(zhí)行可能已經(jīng)改變了存儲(chǔ)器結(jié)構(gòu)中的原始數(shù)據(jù)。第一命令112的重新發(fā)布可能檢索存儲(chǔ)器結(jié)構(gòu)中已改變的數(shù)據(jù),而不是如在第一數(shù)據(jù)116中所檢索到的原始數(shù)據(jù)。保存第一數(shù)據(jù)116用以與響應(yīng)于重新發(fā)布的第二命令120而接收到的第二數(shù)據(jù)122合并可以減少所執(zhí)行的校正動(dòng)作的復(fù)雜性。減少校正動(dòng)作的復(fù)雜性可以減少專用于執(zhí)行校正動(dòng)作所花的時(shí)間量并增加存儲(chǔ)器控制器102可用于執(zhí)行正常處理的時(shí)間量。增加執(zhí)行正常處理所花的時(shí)間與執(zhí)行校正動(dòng)作所花的時(shí)間之比可以提高存儲(chǔ)器控制器102的效率并減少存儲(chǔ)器等待時(shí)間。
圖3是用以響應(yīng)錯(cuò)誤檢測(cè)并且總體上標(biāo)記為300的方法的第一實(shí)施方式的流程圖。在特定的實(shí)施方式中,方法300是由圖1和2中的任何一個(gè)系統(tǒng)或者其組合執(zhí)行的。方法300可以包括在塊302向第一重新驅(qū)動(dòng)設(shè)備發(fā)布第一命令并向第二重新驅(qū)動(dòng)設(shè)備發(fā)布第二命令。例如,圖1和2的存儲(chǔ)器控制器102可以向第一重新驅(qū)動(dòng)設(shè)備104發(fā)布第一命令 112,并向第二重新驅(qū)動(dòng)設(shè)備106發(fā)布第二命令114。方法300還可以包括在塊304響應(yīng)于檢測(cè)到存儲(chǔ)器控制器與第二重新驅(qū)動(dòng)設(shè)備之間的發(fā)送錯(cuò)誤而向第二重新驅(qū)動(dòng)設(shè)備重新發(fā)布第二命令。例如,圖1和2的存儲(chǔ)器控制器102可以響應(yīng)于檢測(cè)到存儲(chǔ)器控制器102與第二重新驅(qū)動(dòng)設(shè)備106之間的發(fā)送錯(cuò)誤而向第二重新驅(qū)動(dòng)設(shè)備106重新發(fā)布第二命令120。
方法300還可以包括在塊306把響應(yīng)于第一命令而從第一重新驅(qū)動(dòng)設(shè)備接收到的第一數(shù)據(jù)存儲(chǔ)在第一緩沖器處。例如,圖1和2的存儲(chǔ)器控制器102可以把響應(yīng)于第一命令112而從第一重新驅(qū)動(dòng)設(shè)備104接收到的第一數(shù)據(jù)116存儲(chǔ)在第一緩沖器108處。方法 300可以包括在塊308把響應(yīng)于重新發(fā)布的第二命令而從第二重新驅(qū)動(dòng)設(shè)備接收到的第二數(shù)據(jù)存儲(chǔ)在第二緩沖器處。例如,存儲(chǔ)器控制器102可以把響應(yīng)于重新發(fā)布的第二命令120 而從第二重新驅(qū)動(dòng)設(shè)備106接收到的第二數(shù)據(jù)122存儲(chǔ)在第二緩沖器110處。方法300還包括在塊310合并第二數(shù)據(jù)與第一數(shù)據(jù)。例如,圖1和2的存儲(chǔ)器控制器102可以合并第二數(shù)據(jù)122與第一數(shù)據(jù)116。
圖4是用以響應(yīng)錯(cuò)誤檢測(cè)并且總體上標(biāo)記為400的系統(tǒng)的另一實(shí)施方式的圖。這種實(shí)施方式可以用作用于響應(yīng)于如前所述的鏈路復(fù)位而清理鏈路的方法。系統(tǒng)400包括存儲(chǔ)器控制器402和重新驅(qū)動(dòng)設(shè)備404。存儲(chǔ)器控制器402和重新驅(qū)動(dòng)設(shè)備404可以經(jīng)鏈路 406連接。鏈路406可以包括兩條單向的高速鏈路。例如,存儲(chǔ)器控制器402可以經(jīng)鏈路 406的南向鏈路向重新驅(qū)動(dòng)設(shè)備404發(fā)送,而重新驅(qū)動(dòng)設(shè)備404可以經(jīng)鏈路406的北向鏈路向存儲(chǔ)器控制器402發(fā)送。
總的來(lái)說(shuō),存儲(chǔ)器控制器402可以向重新驅(qū)動(dòng)設(shè)備404發(fā)送信號(hào)模式,用以指示存儲(chǔ)器控制器402正在啟動(dòng)407鏈路的再訓(xùn)練。為了區(qū)分指示鏈路再訓(xùn)練動(dòng)作的信號(hào)模式的發(fā)送與常規(guī)的數(shù)據(jù)發(fā)送,該信號(hào)模式可以是無(wú)轉(zhuǎn)變的常量模式。
例如,存儲(chǔ)器控制器402可以發(fā)送等于數(shù)字常量一的一個(gè)信號(hào)達(dá)多個(gè)循環(huán)。這個(gè)信號(hào)將不包括到等于數(shù)字常量零的轉(zhuǎn)變。
存儲(chǔ)器控制器402和重新驅(qū)動(dòng)設(shè)備404可以依賴于信號(hào)模式中的轉(zhuǎn)變來(lái)維持對(duì)準(zhǔn)。如果在常量模式的發(fā)送期間沒(méi)有接收到轉(zhuǎn)變,則存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404 可能不能夠維持對(duì)準(zhǔn)。例如,常量模式408的發(fā)送可能導(dǎo)致存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404失去對(duì)準(zhǔn)或者變得進(jìn)一步失準(zhǔn)。進(jìn)一步失準(zhǔn)可能導(dǎo)致對(duì)準(zhǔn)鎖定算法在隨后的階段中執(zhí)行更多處理來(lái)重新獲得對(duì)準(zhǔn)。
在恢復(fù)414對(duì)常量模式416的發(fā)送之前中斷常量模式的發(fā)送409以便發(fā)送轉(zhuǎn)變 412的序列410,可以允許存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404在鏈路再訓(xùn)練工作期間維持對(duì)準(zhǔn)。當(dāng)所發(fā)送的轉(zhuǎn)變412的個(gè)數(shù)滿足最小可接受的轉(zhuǎn)變密度時(shí),對(duì)準(zhǔn)可以維持。在鏈路再訓(xùn)練動(dòng)作期間維持對(duì)準(zhǔn)可以允許存儲(chǔ)器控制器402和重新驅(qū)動(dòng)設(shè)備404在鏈路再訓(xùn)練動(dòng)作的隨后階段使用效率較低的對(duì)準(zhǔn)鎖定算法。例如,可選擇可以相對(duì)慢地執(zhí)行但是具有減小的功率、空間與制造需求的對(duì)準(zhǔn)鎖定算法。因?yàn)閷?duì)準(zhǔn)沒(méi)有丟失,所以對(duì)準(zhǔn)鎖定算法可以執(zhí)行更少的處理來(lái)重新確認(rèn)對(duì)準(zhǔn)或者恢復(fù)對(duì)準(zhǔn)。減少對(duì)準(zhǔn)鎖定算法所執(zhí)行的處理的個(gè)數(shù)可以減少鏈路再訓(xùn)練動(dòng)作的整體等待時(shí)間。減少鏈路再訓(xùn)練動(dòng)作的等待時(shí)間可以提高存儲(chǔ)器控制器402的整體效率,而且減小尺寸將使得成本更低。
存儲(chǔ)器控制器402可以配置成,響應(yīng)于啟動(dòng)407存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404之間的鏈路的再訓(xùn)練而發(fā)送常量模式。存儲(chǔ)器控制器402可以配置成,在常量模式發(fā)送了最小持續(xù)時(shí)間之后中斷409常量模式408的發(fā)送,以便發(fā)送轉(zhuǎn)變412的序列410。存儲(chǔ)器控制器402可以配置成在發(fā)送轉(zhuǎn)變412的序列410之后恢復(fù)414常量模式416的發(fā)送。
存儲(chǔ)器控制器402可以向重新驅(qū)動(dòng)設(shè)備404發(fā)布命令流。例如,重新驅(qū)動(dòng)設(shè)備404 可以經(jīng)鏈路406的南向鏈路從存儲(chǔ)器控制器402接收命令流。重新驅(qū)動(dòng)設(shè)備404可以解碼并重新格式化該命令流,以發(fā)送到與重新驅(qū)動(dòng)設(shè)備404連接的存儲(chǔ)器結(jié)構(gòu)(未例示)。該存儲(chǔ)器結(jié)構(gòu)可以響應(yīng)于命令流而檢索數(shù)據(jù),并可以把數(shù)據(jù)發(fā)送到重新驅(qū)動(dòng)設(shè)備404。重新驅(qū)動(dòng)設(shè)備404可以重新格式化數(shù)據(jù),并且把重新格式化后的數(shù)據(jù)發(fā)送到存儲(chǔ)器控制器402。 例如,重新驅(qū)動(dòng)設(shè)備404可以在重新格式化數(shù)據(jù)之后把數(shù)據(jù)經(jīng)鏈路406的北向鏈路發(fā)送到存儲(chǔ)器控制器402。
檢查南向鏈路和北向鏈路兩者上的通信中的錯(cuò)誤。對(duì)經(jīng)南向鏈路接收到的命令流上的錯(cuò)誤檢測(cè)可以由重新驅(qū)動(dòng)設(shè)備404來(lái)執(zhí)行。例如,重新驅(qū)動(dòng)設(shè)備404可以包括用以執(zhí)行CRC校驗(yàn)的邏輯。CRC校驗(yàn)可以確定命令流中的特定命令包含單個(gè)位錯(cuò)誤(即,發(fā)送錯(cuò)誤)。在檢測(cè)到發(fā)送錯(cuò)誤之后,重新驅(qū)動(dòng)設(shè)備404可以丟掉命令流中所有后續(xù)命令,并把告警狀態(tài)幀返回到存儲(chǔ)器控制器402。
在特定的實(shí)施方式中,重新驅(qū)動(dòng)設(shè)備404響應(yīng)于發(fā)送錯(cuò)誤而經(jīng)北向鏈路把告警狀態(tài)幀流返回到存儲(chǔ)器控制器402。存儲(chǔ)器控制器402可以使用所接收到的告警狀態(tài)幀,來(lái)檢測(cè)存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404之間的發(fā)送錯(cuò)誤。例如,存儲(chǔ)器控制器402可以基于經(jīng)北向鏈路對(duì)告警狀態(tài)幀的接收來(lái)確定在鏈路406的南向鏈路中發(fā)生的發(fā)送錯(cuò)誤。
響應(yīng)于檢測(cè)到發(fā)送錯(cuò)誤,存儲(chǔ)器控制器402可以執(zhí)行校正動(dòng)作。例如,在接收到告警狀態(tài)幀之后,存儲(chǔ)器控制器402可以發(fā)布鏈路406的鏈路復(fù)位。該鏈路復(fù)位可以從鏈路 406清除告警狀態(tài)幀。鏈路406可以準(zhǔn)備好重新發(fā)布命令流。例如,存儲(chǔ)器控制器402可以經(jīng)鏈路406的南向鏈路向重新驅(qū)動(dòng)設(shè)備404重新發(fā)布命令流。
鏈路復(fù)位可能沒(méi)有成功地從鏈路406清除告警狀態(tài)幀。鏈路406可能沒(méi)有準(zhǔn)備好接收重新發(fā)布的命令。例如,存儲(chǔ)器控制器402可以在執(zhí)行鏈路復(fù)位之后在北向鏈路上繼續(xù)接收告警狀態(tài)幀。存儲(chǔ)器控制器402可以啟動(dòng)407鏈路再訓(xùn)練動(dòng)作。鏈路再訓(xùn)練動(dòng)作可以包括再訓(xùn)練存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404之間的鏈路406。
再訓(xùn)練鏈路406可以包括存儲(chǔ)器控制器402向重新驅(qū)動(dòng)設(shè)備404通知該鏈路正在被再訓(xùn)練。向重新驅(qū)動(dòng)設(shè)備404通知存儲(chǔ)器控制器402正在啟動(dòng)407鏈路再訓(xùn)練動(dòng)作可以包括向重新驅(qū)動(dòng)設(shè)備404發(fā)送常量模式408。在特定的實(shí)施方式中,該常量模式是在重新驅(qū)動(dòng)設(shè)備處禁用正常操作的“禁用b”信號(hào)。例如,在常量模式408的發(fā)送期間,存儲(chǔ)器控制器402可以發(fā)送無(wú)轉(zhuǎn)變的數(shù)字常量序列。存儲(chǔ)器控制器402可以發(fā)送沒(méi)有到零的轉(zhuǎn)變的全一。響應(yīng)于接收到無(wú)轉(zhuǎn)變的信號(hào)模式,重新驅(qū)動(dòng)設(shè)備404可以確定存儲(chǔ)器控制器402正在啟動(dòng)407鏈路再訓(xùn)練動(dòng)作。
該常量模式可以被發(fā)送達(dá)最小持續(xù)時(shí)間,以確保重新驅(qū)動(dòng)設(shè)備404把該發(fā)送注冊(cè)為存儲(chǔ)器控制器402正在啟動(dòng)407鏈路再訓(xùn)練動(dòng)作的指示。該最小持續(xù)時(shí)間可以基于重新驅(qū)動(dòng)設(shè)備404識(shí)別出常量模式的最小單位間隔個(gè)數(shù)。該單位間隔可以是存儲(chǔ)器控制器402 在鏈路上以線路速度(line speed)發(fā)送一個(gè)轉(zhuǎn)變的時(shí)間。例如,存儲(chǔ)器控制器402可以發(fā)送常量模式達(dá)一百四十四個(gè)單位間隔而沒(méi)有一個(gè)轉(zhuǎn)變,以便向重新驅(qū)動(dòng)設(shè)備404指示存儲(chǔ)器控制器402已經(jīng)啟動(dòng)407鏈路再訓(xùn)練動(dòng)作。
通過(guò)發(fā)送轉(zhuǎn)變412的序列410,存儲(chǔ)器控制器402可以在常量模式已經(jīng)發(fā)送了最小持續(xù)時(shí)間之后中斷409常量模式408的發(fā)送。發(fā)送轉(zhuǎn)變412的序列410維持存儲(chǔ)器控制器 402與重新驅(qū)動(dòng)設(shè)備404之間的對(duì)準(zhǔn)。轉(zhuǎn)變412的序列410中轉(zhuǎn)變412的個(gè)數(shù)可以基于鏈路406的最小位轉(zhuǎn)變密度。該最小位轉(zhuǎn)變密度可以指示轉(zhuǎn)變412的最小個(gè)數(shù),以便維持存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404之間的位對(duì)準(zhǔn)。例如,維持位對(duì)準(zhǔn)所必需的轉(zhuǎn)變412 的最小個(gè)數(shù)可以是八個(gè)轉(zhuǎn)變412。在恢復(fù)全一的常量模式之前,存儲(chǔ)器控制器402可以發(fā)送等效于數(shù)字常量一和零的交替信號(hào)模式。
在發(fā)送轉(zhuǎn)變412的序列410之后,存儲(chǔ)器控制器402可以恢復(fù)414常量模式416的發(fā)送。中斷409常量模式408以便發(fā)布轉(zhuǎn)變412的序列410可以允許存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404保持對(duì)準(zhǔn)。在鏈路再訓(xùn)練動(dòng)作期間維持對(duì)準(zhǔn)可以允許存儲(chǔ)器控制器402 與重新驅(qū)動(dòng)設(shè)備404在鏈路再訓(xùn)練動(dòng)作的隨后階段使用效率較低的對(duì)準(zhǔn)鎖定算法。例如, 可選擇執(zhí)行慢但使用較少功率和占用較少空間的對(duì)準(zhǔn)鎖定算法。盡管該對(duì)準(zhǔn)鎖定算法可以執(zhí)行得相對(duì)慢,但是該對(duì)準(zhǔn)鎖定算法可以執(zhí)行更少的處理來(lái)重新獲得對(duì)準(zhǔn)。減少對(duì)準(zhǔn)鎖定算法所執(zhí)行的處理的個(gè)數(shù)可以減少鏈路再訓(xùn)練動(dòng)作的整體等待時(shí)間。減少鏈路再訓(xùn)練動(dòng)作的等待時(shí)間可以提高存儲(chǔ)器控制器402的整體效率。
圖5是用以響應(yīng)錯(cuò)誤檢測(cè)并且總體上標(biāo)記為500的方法的第二實(shí)施方式的流程圖。在特定的實(shí)施方式中,方法500是由圖4的系統(tǒng)執(zhí)行的。方法500在塊502包括響應(yīng)于啟動(dòng)存儲(chǔ)器控制器與重新驅(qū)動(dòng)設(shè)備之間的鏈路的再訓(xùn)練而發(fā)送常量模式。例如,圖4的存儲(chǔ)器控制器402響應(yīng)于啟動(dòng)407存儲(chǔ)器控制器402與重新驅(qū)動(dòng)設(shè)備404之間的鏈路406 的再訓(xùn)練而發(fā)送常量模式408。方法500還包括在塊504在常量模式已經(jīng)發(fā)送了最小持續(xù)時(shí)間之后中斷對(duì)常量模式的發(fā)送,以便發(fā)送轉(zhuǎn)變序列。例如,圖4的存儲(chǔ)器控制器402可以在常量模式已經(jīng)發(fā)送了最小持續(xù)時(shí)間之后中斷409對(duì)常量模式408的發(fā)送,以便發(fā)送轉(zhuǎn)變 412的序列410。方法500還包括在塊506在發(fā)送轉(zhuǎn)變的序列之后恢復(fù)對(duì)常量模式的發(fā)送。 例如,圖4的存儲(chǔ)器控制器402可以在發(fā)送轉(zhuǎn)變412的序列410之后恢復(fù)414對(duì)常量模式 416的發(fā)送。
圖6是用以響應(yīng)錯(cuò)誤檢測(cè)并且總體上標(biāo)記為600的系統(tǒng)的第五實(shí)施方式的圖。系統(tǒng)600包括重新驅(qū)動(dòng)設(shè)備604、具有命令仲裁邏輯612、第一擦除控制器608和第二擦除控制器610的存儲(chǔ)器控制器端口 602。存儲(chǔ)器控制器端口 602和重新驅(qū)動(dòng)設(shè)備604經(jīng)鏈路606 連接。鏈路606可以包括兩條單向的鏈路。例如,存儲(chǔ)器控制器602可以經(jīng)鏈路606的南向鏈路向重新驅(qū)動(dòng)設(shè)備604進(jìn)行發(fā)送,而重新驅(qū)動(dòng)設(shè)備604可以經(jīng)鏈路606的北向鏈路向存儲(chǔ)器控制器602進(jìn)行發(fā)送。
總的來(lái)說(shuō),每個(gè)擦除控制器都可以創(chuàng)建用以擦除特定存儲(chǔ)器結(jié)構(gòu)的擦除命令。例如,第一擦除控制器608可以創(chuàng)建針對(duì)第一存儲(chǔ)器結(jié)構(gòu)(未例示)的第一擦除命令614,而第二擦除控制器610可以創(chuàng)建針對(duì)第二存儲(chǔ)器結(jié)構(gòu)(未例示)的第二擦除命令616。存儲(chǔ)器控制器可以交替發(fā)布來(lái)自每個(gè)擦除控制器的擦除命令。每個(gè)擦除控制器之間的交替可以允許存儲(chǔ)器控制器端口 602經(jīng)單個(gè)鏈路606擦除多個(gè)存儲(chǔ)器結(jié)構(gòu)。
存儲(chǔ)器控制器端口 602可以配置成在第一擦除控制器608處創(chuàng)建第一擦除命令 614。存儲(chǔ)器控制器端口 602可以配置成在第二擦除控制器610處創(chuàng)建第二擦除命令616。 存儲(chǔ)器控制器端口 602可以配置成在存儲(chǔ)器控制器端口 602處交替發(fā)布第一擦除命令614 和第二擦除命令616。
存儲(chǔ)器控制器端口 602可以使用擦除命令來(lái)檢測(cè)和校正數(shù)據(jù)中的錯(cuò)誤。例如,第一擦除控制器608可以創(chuàng)建從存儲(chǔ)器控制器端口 602發(fā)布的擦除讀命令(例如,第一擦除命令)。響應(yīng)于該擦除讀命令的發(fā)布,存儲(chǔ)器控制器端口 602可以接收擦除讀數(shù)據(jù)。存儲(chǔ)器控制器端口 602可以包括用以檢查該擦除讀數(shù)據(jù)中的糾錯(cuò)碼(ECC)的邏輯。例如,ECC 檢查可以指示該擦除讀數(shù)據(jù)包含單個(gè)位錯(cuò)誤。存儲(chǔ)器控制器端口 602可以調(diào)用位冗余控制 (RBS)來(lái)校正錯(cuò)誤。在錯(cuò)誤被校正之后,第一擦除控制器608可以創(chuàng)建從存儲(chǔ)器控制器端口 602發(fā)布的擦除寫命令。該擦除寫命令可以把校正后的擦除讀數(shù)據(jù)寫到之前從其檢索出擦除讀數(shù)據(jù)的存儲(chǔ)器地址中。
存儲(chǔ)器控制器端口 602可以交替發(fā)布第一擦除命令614和第二擦除命令616。命令仲裁邏輯612交替發(fā)布第一擦除命令614和第二擦除命令616。擦除命令的交替發(fā)布可以包括以下列次序發(fā)布擦除命令第一擦除命令、第二擦除命令、第一擦除命令和第二擦除命令。在每個(gè)擦除命令之間交替可以允許存儲(chǔ)器控制器端口 602經(jīng)單個(gè)鏈路(例如,鏈路 606)擦除多個(gè)存儲(chǔ)器結(jié)構(gòu)。例如,第一擦除命令614可以針對(duì)第一存儲(chǔ)器結(jié)構(gòu),而第二擦除命令616可以針對(duì)第二存儲(chǔ)器結(jié)構(gòu)。第一存儲(chǔ)器結(jié)構(gòu)和第二存儲(chǔ)器結(jié)構(gòu)中的地址可以同時(shí)被同一存儲(chǔ)器控制器端口 602擦除。
參考圖7,例示了用以響應(yīng)錯(cuò)誤檢測(cè)并且總體上標(biāo)記為700的系統(tǒng)的另一實(shí)施方式的圖。系統(tǒng)700包括重新驅(qū)動(dòng)設(shè)備604、第一存儲(chǔ)器結(jié)構(gòu)730和第二存儲(chǔ)器結(jié)構(gòu)732。該系統(tǒng)還包括具有命令仲裁邏輯612、第一擦除控制器608和第二擦除控制器610的存儲(chǔ)器控制器端口 602。存儲(chǔ)器控制器端口 602和重新驅(qū)動(dòng)設(shè)備604可以經(jīng)鏈路606連接。鏈路 606可以包括兩條單向鏈路。例如,存儲(chǔ)器控制器可以經(jīng)鏈路606的南向鏈路向重新驅(qū)動(dòng)設(shè)備604進(jìn)行發(fā)送,而重新驅(qū)動(dòng)設(shè)備604可以經(jīng)鏈路606的北向鏈路向存儲(chǔ)器控制器進(jìn)行發(fā)送。重新驅(qū)動(dòng)設(shè)備604可以經(jīng)第一存儲(chǔ)器總線736連接到第一存儲(chǔ)器結(jié)構(gòu)730并經(jīng)第二存儲(chǔ)器總線738連接到第二存儲(chǔ)器結(jié)構(gòu)732。
總的來(lái)說(shuō),每個(gè)擦除控制器都可以創(chuàng)建用以擦除特定存儲(chǔ)器結(jié)構(gòu)的擦除命令。例如,第一擦除控制器608可以創(chuàng)建針對(duì)第一存儲(chǔ)器結(jié)構(gòu)730的第一擦除命令614。第二擦除控制器610可以創(chuàng)建針對(duì)第二存儲(chǔ)器結(jié)構(gòu)732的第二擦除命令616。存儲(chǔ)器控制器可以經(jīng)鏈路606交替發(fā)布來(lái)自每個(gè)擦除控制器的擦除命令到重新驅(qū)動(dòng)設(shè)備604。重新驅(qū)動(dòng)設(shè)備 604可以把第一擦除命令614發(fā)布到第一存儲(chǔ)器結(jié)構(gòu)730,并把第二擦除命令616發(fā)布到第二存儲(chǔ)器結(jié)構(gòu)732。每個(gè)擦除控制器之間的交替可以允許存儲(chǔ)器控制器端口 602經(jīng)單個(gè)鏈路(例如,鏈路606)擦除多個(gè)存儲(chǔ)器結(jié)構(gòu)。
存儲(chǔ)器控制器端口 602可以使用擦除命令來(lái)檢測(cè)和校正數(shù)據(jù)中的錯(cuò)誤。例如,第一擦除控制器608可以創(chuàng)建從存儲(chǔ)器控制器端口 602發(fā)布到重新驅(qū)動(dòng)設(shè)備604的第一擦除讀命令(例如,第一擦除命令)。重新驅(qū)動(dòng)設(shè)備604可以格式化并解碼該擦除讀命令,以便發(fā)送到第一存儲(chǔ)器結(jié)構(gòu)730。例如,重新驅(qū)動(dòng)設(shè)備604可以把該擦除讀命令變成由第一存儲(chǔ)器結(jié)構(gòu)730識(shí)別的DDR地址。重新驅(qū)動(dòng)設(shè)備604可以把格式化后的擦除讀命令經(jīng)第一存儲(chǔ)器總線736發(fā)送到第一存儲(chǔ)器結(jié)構(gòu)730。
響應(yīng)于接收到格式化后的擦除讀命令(例如,第一擦除命令),第一存儲(chǔ)器結(jié)構(gòu) 730可以檢索擦除讀數(shù)據(jù)(例如,第一數(shù)據(jù)720),并把該擦除讀數(shù)據(jù)經(jīng)第一存儲(chǔ)器總線736 發(fā)送到重新驅(qū)動(dòng)設(shè)備604。第一存儲(chǔ)器結(jié)構(gòu)730可以按照突發(fā)突變四(burst chop four mode, BC4)模式檢索擦除讀數(shù)據(jù)。在以BC4模式運(yùn)行時(shí),第一存儲(chǔ)器結(jié)構(gòu)730可以檢索后面跟著四拍間隙的四拍數(shù)據(jù)。例如,第一存儲(chǔ)器結(jié)構(gòu)730可以把四拍擦除讀數(shù)據(jù)(例如,第一數(shù)據(jù)720)發(fā)送到重新驅(qū)動(dòng)設(shè)備604,后面跟著四拍間隙。重新驅(qū)動(dòng)設(shè)備604可以接收包括間隙與第一數(shù)據(jù)720的部分的交替模式的第一數(shù)據(jù)流。
重新驅(qū)動(dòng)設(shè)備604可以經(jīng)鏈路606從存儲(chǔ)器控制器接收第二擦除命令616。在特定的實(shí)施方式中,命令仲裁邏輯612交替發(fā)布第一擦除命令614和第二擦除命令616。重新驅(qū)動(dòng)設(shè)備604可以在第二存儲(chǔ)器總線738上把第二命令發(fā)送到第二存儲(chǔ)器結(jié)構(gòu)732。響應(yīng)于第二擦除命令616,第二存儲(chǔ)器結(jié)構(gòu)732可以檢索第二數(shù)據(jù)722,并把第二數(shù)據(jù)722經(jīng)第二存儲(chǔ)器總線738發(fā)送到重新驅(qū)動(dòng)設(shè)備604。在以BC4模式運(yùn)行時(shí),第二存儲(chǔ)器結(jié)構(gòu)732 可以向重新驅(qū)動(dòng)設(shè)備604發(fā)送四拍第二數(shù)據(jù)722,后面跟著四拍間隙。重新驅(qū)動(dòng)設(shè)備604可以接收包括間隙與第二數(shù)據(jù)722的部分的交替模式的第二數(shù)據(jù)流。
重新驅(qū)動(dòng)設(shè)備604可以格式化并解碼第一數(shù)據(jù)流中的第一數(shù)據(jù)720和第二數(shù)據(jù)流中的第二數(shù)據(jù)722。例如,重新驅(qū)動(dòng)設(shè)備604可以把第一數(shù)據(jù)720和第二數(shù)據(jù)722變成對(duì)應(yīng)于存儲(chǔ)器控制器端口 602中地址的數(shù)據(jù)。在格式化第一數(shù)據(jù)720和第二數(shù)據(jù)722之后,重新驅(qū)動(dòng)設(shè)備604可以把第一數(shù)據(jù)720和第二數(shù)據(jù)722經(jīng)鏈路606發(fā)送到存儲(chǔ)器控制器端口 602。
重新驅(qū)動(dòng)設(shè)備604可以交替發(fā)送來(lái)自第一數(shù)據(jù)流的第一數(shù)據(jù)720和來(lái)自第二數(shù)據(jù)流的第二數(shù)據(jù)722。重新驅(qū)動(dòng)設(shè)備604可以發(fā)送無(wú)間隙的第一數(shù)據(jù)流和第二數(shù)據(jù)流。存儲(chǔ)器控制器端口 602可以接收無(wú)間隙的第一數(shù)據(jù)720和第二數(shù)據(jù)722的交替模式。存儲(chǔ)器控制器端口 602可以把第一數(shù)據(jù)720引導(dǎo)到第一擦除控制器608并把第二數(shù)據(jù)722引導(dǎo)到第二擦除控制器610。經(jīng)鏈路606無(wú)間隙地接收數(shù)據(jù)可以提高鏈路606的利用率。
存儲(chǔ)器控制器602可以包括用以檢查經(jīng)鏈路606接收的數(shù)據(jù)中的錯(cuò)誤的邏輯。例如,ECC檢查可以指示擦除讀數(shù)據(jù)(例如,第一數(shù)據(jù)720)包含單個(gè)位錯(cuò)誤。存儲(chǔ)器控制器端口 602可以調(diào)用RBS來(lái)校正錯(cuò)誤。在錯(cuò)誤被校正之后,第一擦除控制器608可以向重新驅(qū)動(dòng)設(shè)備604發(fā)布擦除寫命令(例如,第一命令)。重新驅(qū)動(dòng)設(shè)備604可以格式化該擦除寫命令并把該擦除寫命令發(fā)送到第一存儲(chǔ)器結(jié)構(gòu)730。該擦除寫命令可以指示第一存儲(chǔ)器結(jié)構(gòu)730利用被RBS校正過(guò)的擦除讀數(shù)據(jù)重寫第一存儲(chǔ)器結(jié)構(gòu)730中的數(shù)據(jù)。
由存儲(chǔ)器控制器端口 602發(fā)布的第二擦除命令616中的一個(gè)可以是擦除寫命令。 重新驅(qū)動(dòng)設(shè)備604可以發(fā)布到第一存儲(chǔ)器結(jié)構(gòu)730和第二存儲(chǔ)器結(jié)構(gòu)732兩者的擦除寫命令的交替模式。第一擦除命令614和第二擦除命令616的交替發(fā)布可以允許存儲(chǔ)器控制器端口 602經(jīng)單個(gè)鏈路606既擦除第一存儲(chǔ)器結(jié)構(gòu)730又擦除第二存儲(chǔ)器結(jié)構(gòu)732。對(duì)多個(gè)存儲(chǔ)器結(jié)構(gòu)執(zhí)行存儲(chǔ)器擦除提高了存儲(chǔ)器控制器端口 602的效率并減小了存儲(chǔ)器等待時(shí)間。
圖8是用以響應(yīng)錯(cuò)誤檢測(cè)并且總體上標(biāo)記為800的方法的第三實(shí)施方式的流程圖。方法800是由圖6和7的系統(tǒng)中的任何一種或者其任意組合來(lái)執(zhí)行的。方法800包括在塊802在第一擦除控制器處創(chuàng)建第一擦除命令。例如,圖6和7的第一擦除控制器608 可以創(chuàng)建第一擦除命令614。方法800還包括在塊804在第二擦除控制器處創(chuàng)建第二擦除命令。例如,圖6和7的第二擦除控制器610可以創(chuàng)建第二擦除命令616。方法800還包括在塊806在存儲(chǔ)器控制器端口處交替發(fā)布第一擦除命令和第二擦除命令。例如,圖6和 7的存儲(chǔ)器控制器端口 602可以交替發(fā)布第一擦除命令614和第二擦除命令616。
特定的實(shí)施方式可以采取完全硬件實(shí)施方式、完全軟件實(shí)施方式或者包含硬件和軟件元素的實(shí)施方式的形式。
所公開(kāi)的方法是在軟件中實(shí)現(xiàn)的,其包括但不限于固件、駐留軟件、微代碼,等等。
另外,實(shí)施方式可以采取可以從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品的形式,其中計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)提供了由計(jì)算機(jī)或者任何指令執(zhí)行系統(tǒng)使用或者相關(guān)使用的程序代碼。為了本描述的目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可包含、存儲(chǔ)、傳送、傳播或運(yùn)輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者相關(guān)使用的任何裝置。
介質(zhì)可以是電、磁、光、電磁、紅外或者半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或者傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可拆卸計(jì)算機(jī)盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、剛性磁盤和光盤。目前光盤的例子包括緊湊盤-只讀存儲(chǔ)器(CD-ROM)、緊湊盤-讀 / 寫(CD-R/W)和 DVD。
適于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)直接或者通過(guò)系統(tǒng)總線間接耦合到存儲(chǔ)器元件的處理器。存儲(chǔ)器元件可以包括在程序代碼實(shí)際執(zhí)行過(guò)程中所采用的本地存儲(chǔ)器、大容量?jī)?chǔ)存器和高速緩存存儲(chǔ)器,其中高速緩存存儲(chǔ)器提供對(duì)至少一些程序代碼的臨時(shí)存儲(chǔ),以便減少在執(zhí)行過(guò)程中必須從大容量?jī)?chǔ)存器檢索代碼的次數(shù)。
輸入/輸出或者I/O設(shè)備(包括但不限于鍵盤、顯示器、指向設(shè)備,等等)可以直接或者通過(guò)中間I/O控制器耦合到系統(tǒng)。
網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng),以便使數(shù)據(jù)處理系統(tǒng)能夠通過(guò)中間的私有或公共網(wǎng)絡(luò)耦合到其它數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和以太網(wǎng)卡僅僅是目前可用的網(wǎng)絡(luò)適配器的一些類型。
盡管已經(jīng)通過(guò)對(duì)各種實(shí)施方式的描述例示了本發(fā)明,而且盡管已經(jīng)相當(dāng)具體地描述了這些實(shí)施方式,但是本申請(qǐng)人的意圖不是要把所附權(quán)利要求的范圍約束到或者以任何途徑限制到這種細(xì)節(jié)。因此,本發(fā)明更廣的方面不限于所示出和描述的具體細(xì)節(jié)、代表性裝置、方法和例示性例子。相應(yīng)地,在不背離如所附權(quán)利要求定義的本申請(qǐng)人總的
權(quán)利要求
1.一種用于響應(yīng)錯(cuò)誤檢測(cè)的方法,該方法包括向第一重新驅(qū)動(dòng)設(shè)備發(fā)布第一命令,并向第二重新驅(qū)動(dòng)設(shè)備發(fā)布第二命令; 響應(yīng)于檢測(cè)到存儲(chǔ)器控制器與所述第二重新驅(qū)動(dòng)設(shè)備之間的發(fā)送錯(cuò)誤而向該第二重新驅(qū)動(dòng)設(shè)備重新發(fā)布所述第二命令;在第一緩沖器處存儲(chǔ)響應(yīng)于所述第一命令而從所述第一重新驅(qū)動(dòng)設(shè)備接收到的第一數(shù)據(jù);在第二緩沖器處存儲(chǔ)響應(yīng)于重新發(fā)布的第二命令而從所述第二重新驅(qū)動(dòng)設(shè)備接收到的第二數(shù)據(jù);及合并所述第二數(shù)據(jù)與所述第一數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,還包括在發(fā)布所述第一命令后向所述第一重新驅(qū)動(dòng)設(shè)備發(fā)布第三命令;及在所述第一緩沖器處存儲(chǔ)響應(yīng)于所述第三命令而從所述第一重新驅(qū)動(dòng)設(shè)備接收到的第三數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,還包括在發(fā)布所述第二命令后向所述第二重新驅(qū)動(dòng)設(shè)備發(fā)布第四命令; 響應(yīng)于檢測(cè)到所述存儲(chǔ)器控制器與所述第二重新驅(qū)動(dòng)設(shè)備之間的發(fā)送錯(cuò)誤而向所述第二重新驅(qū)動(dòng)設(shè)備重新發(fā)布所述第四命令;及在所述第二緩沖器處存儲(chǔ)響應(yīng)于重新發(fā)布的第四命令而從所述第二重新驅(qū)動(dòng)設(shè)備接收到的第四數(shù)據(jù)。
4.如權(quán)利要求3所述的方法,還包括合并所述第四數(shù)據(jù)與所述第三數(shù)據(jù)。
5.如權(quán)利要求1所述的方法,其中檢測(cè)發(fā)送錯(cuò)誤包括響應(yīng)于所述第二命令而從所述第二重新驅(qū)動(dòng)設(shè)備接收告警狀態(tài)幀。
6.如權(quán)利要求5所述的方法,還包括響應(yīng)于接收到所述告警狀態(tài)幀而停止向所述第一重新驅(qū)動(dòng)設(shè)備和所述第二重新驅(qū)動(dòng)設(shè)備發(fā)布后續(xù)命令。
7.如權(quán)利要求1所述的方法,還包括發(fā)布軟復(fù)位,用以從所述存儲(chǔ)器控制器與所述第二重新驅(qū)動(dòng)設(shè)備之間的鏈路清除告警狀態(tài)幀。
8.如權(quán)利要求1所述的方法,其中在檢測(cè)到?jīng)]有從所述第二重新驅(qū)動(dòng)設(shè)備接收到的告警狀態(tài)幀之后重新發(fā)布所述第二命令。
9.一種用于響應(yīng)錯(cuò)誤檢測(cè)的方法,該方法包括響應(yīng)于啟動(dòng)對(duì)存儲(chǔ)器控制器與重新驅(qū)動(dòng)設(shè)備之間的鏈路的再訓(xùn)練而發(fā)送常量模式; 在所述常量模式已經(jīng)發(fā)送了最小持續(xù)時(shí)間之后中斷對(duì)所述常量模式的發(fā)送,以便發(fā)送轉(zhuǎn)變序列;及在發(fā)送了所述轉(zhuǎn)變序列之后恢復(fù)對(duì)所述常量模式的發(fā)送。
10.如權(quán)利要求9所述的方法,其中所述常量模式是無(wú)轉(zhuǎn)變的數(shù)字常量序列。
11.如權(quán)利要求9所述的方法,其中發(fā)送轉(zhuǎn)變序列維持了所述存儲(chǔ)器控制器與所述重新驅(qū)動(dòng)設(shè)備之間的對(duì)準(zhǔn)。
12.如權(quán)利要求9所述的方法,其中所述轉(zhuǎn)變序列中轉(zhuǎn)變的個(gè)數(shù)基于所述鏈路的最小位轉(zhuǎn)變密度。
13.如權(quán)利要求12所述的方法,其中所述最小位轉(zhuǎn)變密度指示用以維持所述存儲(chǔ)器控制器與所述重新驅(qū)動(dòng)設(shè)備之間的位對(duì)準(zhǔn)的最小轉(zhuǎn)變個(gè)數(shù)。
14.如權(quán)利要求9所述的方法,其中所述最小持續(xù)時(shí)間基于所述重新驅(qū)動(dòng)設(shè)備識(shí)別出所述常量模式的最小單位間隔的個(gè)數(shù)。
15.如權(quán)利要求9所述的方法,其中所述常量模式是禁用b信號(hào)。
16.一種用于響應(yīng)錯(cuò)誤檢測(cè)的方法,該方法包括 在第一擦除控制器處創(chuàng)建第一擦除命令;在第二擦除控制器處創(chuàng)建第二擦除命令;及在存儲(chǔ)器控制器端口處交替發(fā)布所述第一擦除命令和第二擦除命令。
17.如權(quán)利要求16所述的方法,其中所述第一擦除命令經(jīng)與所述存儲(chǔ)器控制器端口連接的第一存儲(chǔ)器總線被引導(dǎo)到第一存儲(chǔ)器結(jié)構(gòu),而所述第二擦除命令經(jīng)與所述存儲(chǔ)器控制器端口連接的第二存儲(chǔ)器總線被引導(dǎo)到第二存儲(chǔ)器結(jié)構(gòu)。
18.如權(quán)利要求16所述的方法,其中第一存儲(chǔ)器和第二存儲(chǔ)器運(yùn)行在突發(fā)突變四模式下。
19.如權(quán)利要求16所述的方法,還包括接收數(shù)據(jù),其中所述數(shù)據(jù)由在響應(yīng)于所述第一擦除命令的第一數(shù)據(jù)與響應(yīng)于所述第二擦除命令的第二數(shù)據(jù)之間交替的模式構(gòu)成。
20.如權(quán)利要求16所述的方法,其中所述第一擦除命令和第二擦除命令發(fā)布到重新驅(qū)動(dòng)設(shè)備。
21.一種用于響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng),包括能操作成執(zhí)行如權(quán)利要求1至8中任何一項(xiàng)的步驟的存儲(chǔ)器控制器。
22.一種用于響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng),包括能操作成執(zhí)行權(quán)利要求9至20中任何一項(xiàng)的步驟的邏輯。
全文摘要
提供了用以響應(yīng)錯(cuò)誤檢測(cè)的系統(tǒng)與方法。一種特定的方法可以包括向第一重新驅(qū)動(dòng)設(shè)備發(fā)布第一命令并向第二重新驅(qū)動(dòng)設(shè)備發(fā)布第二命令。該方法還可以包括響應(yīng)于檢測(cè)到存儲(chǔ)器控制器與第二重新驅(qū)動(dòng)設(shè)備之間的發(fā)送錯(cuò)誤而向該第二重新驅(qū)動(dòng)設(shè)備重新發(fā)布所述第二命令。該方法還可以進(jìn)一步包括在第一緩沖器處存儲(chǔ)響應(yīng)于所述第一命令而從所述第一重新驅(qū)動(dòng)設(shè)備接收到的第一數(shù)據(jù)。該方法可以包括在第二緩沖器處存儲(chǔ)響應(yīng)于重新發(fā)布的第二命令而從所述第二重新驅(qū)動(dòng)設(shè)備接收到的第二數(shù)據(jù)。該方法還可以包括合并所述第二數(shù)據(jù)與所述第一數(shù)據(jù)。
文檔編號(hào)G06F13/16GK102498473SQ201080041241
公開(kāi)日2012年6月13日 申請(qǐng)日期2010年9月8日 優(yōu)先權(quán)日2009年9月17日
發(fā)明者E·麥格隆, H·L·布萊克蒙, J·A·科斯特, R·S·哈拉登 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司