所屬技術(shù)領(lǐng)域
本發(fā)明專(zhuān)利涉及一種快速的高帶寬的標(biāo)示緩存陣列中各級(jí)邏輯組織結(jié)構(gòu)中的故障分布情況的機(jī)制和存儲(chǔ)結(jié)構(gòu)。
背景技術(shù):
不僅漏檢和磨損老化導(dǎo)致的永久故障對(duì)出廠后的芯片的可靠性造成影響,而且,出廠前難以檢測(cè)的,時(shí)間上隨機(jī)發(fā)生的,位置固定的,持續(xù)一定周期的,但可恢復(fù)的間隙性位失效對(duì)出廠后的芯片的可靠性也造成嚴(yán)重影響。應(yīng)對(duì)暫態(tài)故障有效地糾錯(cuò)檢錯(cuò)碼在處理間隙性位失效時(shí),也面臨延遲開(kāi)銷(xiāo)大的問(wèn)題,而且會(huì)減弱對(duì)暫態(tài)故障的處理,引起多位位故障。有效的標(biāo)示這些位故障成為緩存正常工作的必要條件。這些位故障會(huì)導(dǎo)致緩存的各級(jí)邏輯組織結(jié)構(gòu)的故障,引起緩存工作異常。
技術(shù)實(shí)現(xiàn)要素:
本專(zhuān)利提出了一種實(shí)現(xiàn)快速和高帶寬的查詢(xún)緩存各級(jí)邏輯結(jié)構(gòu)故障的機(jī)制和存儲(chǔ)結(jié)構(gòu)??梢远喑叨鹊臉?biāo)示緩存組、緩存行以及緩存子塊的故障情況,緩存中一片連續(xù)字節(jié)組成一個(gè)緩存子塊,一個(gè)緩存行由若干個(gè)緩存子塊構(gòu)成,一個(gè)緩存組由若干個(gè)緩存行組成,支持高性能的容錯(cuò)緩存架構(gòu)。本專(zhuān)利提出了靜態(tài)分配和動(dòng)態(tài)分配兩種不同的位圖空間配置方式,實(shí)現(xiàn)了更低的存儲(chǔ)開(kāi)銷(xiāo)。
本發(fā)明在靜態(tài)分配模式下存儲(chǔ)結(jié)構(gòu),如圖1,圖2所示,具有如下特征:
1.本存儲(chǔ)結(jié)構(gòu)由緩存組及緩存行故障位圖陣列和子塊故障位圖陣列兩部分組成,其中緩存組及緩存行故障位圖陣列主要包括緩存組故障位圖域,緩存行故障位圖域。子塊故障位圖陣列主要包括標(biāo)志標(biāo)示域和緩存子塊故障位圖域。
2.緩存組故障位圖域,由若干位構(gòu)成,標(biāo)示了該緩存組的故障程度,無(wú)故障,有故障且無(wú)法修復(fù)和有故障且可以修復(fù)等幾種情況
3.緩存行故障位圖域,由若干位構(gòu)成,標(biāo)示了緩存組中的緩存行的故障情況,各行故障情況由其對(duì)應(yīng)位標(biāo)示。
4.指向緩存子塊的指針域,動(dòng)態(tài)分配模式下由若干位構(gòu)成,指向所對(duì)應(yīng)的緩存行的起始位置。
5.標(biāo)志標(biāo)示域,固定分配模式下由若干位構(gòu)成,為同一緩存組對(duì)應(yīng)的緩存行進(jìn)行編號(hào)。。
6.緩存子塊故障位圖域,由若干位構(gòu)成,標(biāo)示了緩存子塊的故障情況。
本發(fā)明在動(dòng)態(tài)分配模式下存儲(chǔ)結(jié)構(gòu),如圖3,圖4所示,具有如下特征:
1.本存儲(chǔ)結(jié)構(gòu)由緩存組及緩存行故障位圖陣列和子塊故障位圖陣列兩部分組成,其中緩存組及緩存行故障位圖陣列主要包括緩存組故障位圖域,緩存行故障位圖域,指向緩存子塊的指針域。子塊故障位圖陣列主要包括分區(qū)標(biāo)示域和緩存子塊故障位圖域。
2.緩存組故障位圖域,由若干位構(gòu)成,標(biāo)示了該緩存組的故障程度,無(wú)故障,有故障且無(wú)法修復(fù)和有故障且可以修復(fù)等幾種情況
3.緩存行故障位圖域,由若干位構(gòu)成,標(biāo)示了緩存組中的緩存行的故障情況,各行故障情況由其對(duì)應(yīng)位標(biāo)示。
4.指向緩存子塊的指針域,動(dòng)態(tài)分配模式下由若干位構(gòu)成,指向所對(duì)應(yīng)的緩存行的起始位置。
5.分區(qū)標(biāo)示域,動(dòng)態(tài)分配模式下由若干位構(gòu)成,其組合分別表示緩存組起始緩存行,緩存組中間緩存行以及緩存組終止緩存行。
6.緩存子塊故障位圖域,由若干位構(gòu)成,標(biāo)示了緩存子塊的故障情況
本發(fā)明提出了兩種初始化方式,分為動(dòng)態(tài)分配模式下的初始化和靜態(tài)分配模式下的初始化:
本存儲(chǔ)結(jié)構(gòu)在系統(tǒng)初始化時(shí)填充,在電壓頻率動(dòng)態(tài)調(diào)整時(shí)更新,類(lèi)似于intelpellson??梢愿鶕?jù)奇偶校驗(yàn)的結(jié)果,及時(shí)更新。如果多次連續(xù)發(fā)現(xiàn)位故障,可以認(rèn)為發(fā)生間歇性位失效。
在靜態(tài)分配模式下:
步驟1:將緩存組及緩存行故障位圖陣列中的緩存組故障位圖域設(shè)為無(wú)故障,將緩存行故障位圖域各位設(shè)為無(wú)故障,將子塊故障位圖陣列中各位設(shè)為無(wú)故障狀態(tài)。
步驟2:檢查是否發(fā)生位故障,若發(fā)生轉(zhuǎn)至步驟3.否則轉(zhuǎn)至步驟2.
步驟3:在子塊故障位圖陣列中將發(fā)生位故障的緩存子塊標(biāo)記為故障狀態(tài)。
步驟4:在緩存組及緩存行故障位圖陣列中查找到故障位所在行,將該行的緩存行故障位圖域中標(biāo)示故障位所在緩存行的那位標(biāo)記為故障。
步驟5:檢查更新后的緩存行故障位圖域,若沒(méi)有兩個(gè)連續(xù)的無(wú)故障緩存行,則將該行的緩存組故障位圖域設(shè)置為禁用;若出現(xiàn)故障的緩存行數(shù)量超過(guò)靜態(tài)分配預(yù)先設(shè)定的數(shù)量,則將該行的緩存組故障位圖域設(shè)置為禁用;否則則將該行的緩存組故障位圖域設(shè)置為有故障且可以被修復(fù)。
在動(dòng)態(tài)分配模式下:
步驟1:將緩存組及緩存行故障位圖陣列中的緩存組故障位圖域設(shè)為無(wú)故障,將緩存行故障位圖域各位設(shè)為無(wú)故障,將子塊故障位圖陣列中各位設(shè)為無(wú)故障狀態(tài)。
步驟2:檢查是否發(fā)生位故障,若發(fā)生轉(zhuǎn)至步驟3.否則轉(zhuǎn)至步驟2.
步驟3:根據(jù)故障位的物理地址在緩存組及緩存行故障位圖陣列中查找其所對(duì)應(yīng)的位置,并在該行的緩存行故障位圖域中把標(biāo)示其所在的緩存行的位設(shè)置為故障狀態(tài)。
步驟4:檢查更新后的緩存行故障位圖域,若沒(méi)有兩個(gè)連續(xù)的無(wú)故障緩存行,則將該行的緩存組故障位圖域設(shè)置為禁用,結(jié)束初始化;若出現(xiàn)故障的緩存行數(shù)量超過(guò)動(dòng)態(tài)分配的限制,則將該行的緩存組故障位圖域設(shè)置為禁用,結(jié)束初始化;否則將該行的緩存組故障位圖域設(shè)置為有故障且可以被修復(fù)。
步驟5:根據(jù)該行的指向緩存子塊的指針域在子塊故障位圖陣列中查找到對(duì)應(yīng)起始的位置,若該行的指針域?yàn)榭?,則轉(zhuǎn)至步驟7。
步驟6:從起始緩存行行開(kāi)始查找,找到第一個(gè)未分配緩存行,在該緩存行中查找故障位所在的緩存子塊,將其對(duì)應(yīng)的位置標(biāo)記為故障,將該行的分區(qū)標(biāo)示域設(shè)為終止行,將該行上一行的分區(qū)標(biāo)示域設(shè)為中間行。轉(zhuǎn)至步驟2。
步驟7:將其賦值為子塊故障位圖陣列中未被分配的緩存行的最小序號(hào)值。在該緩存行中查找故障位所在的緩存子塊,將其對(duì)應(yīng)的位置標(biāo)記為故障。轉(zhuǎn)至步驟2。
本發(fā)明提出了兩種訪問(wèn)查詢(xún)方式,分為動(dòng)態(tài)分配模式下的訪問(wèn)查詢(xún)和靜態(tài)分配模式下的訪問(wèn)查詢(xún):
當(dāng)使用靜態(tài)分配模式時(shí):
步驟1:根據(jù)物理地址的索引值同時(shí)在緩存組及緩存行故障位圖陣列和子塊故障位圖陣列中查找,其位置為r1,r2.
步驟2:根據(jù)緩存組r1行的緩存組的故障位圖域進(jìn)行判斷,若為無(wú)故障或故障無(wú)法修復(fù),則退出并返回相應(yīng)狀態(tài)。
步驟3:檢查r1的緩存行故障位圖域,一個(gè)標(biāo)有故障的位對(duì)應(yīng)于子塊故障位圖陣列中的一行,該緩存行故障位圖域共對(duì)應(yīng)子塊故障位圖陣列中從r2開(kāi)始到r2+k-1行。
步驟4:根據(jù)其對(duì)應(yīng)的字塊故障位圖陣列中的故障位來(lái)進(jìn)行具體的子塊故障定位。
當(dāng)使用動(dòng)態(tài)分配模式時(shí):
步驟1:根據(jù)物理地址的索引值同時(shí)在緩存組及緩存行故障位圖陣列中查找,其位置為r1.
步驟2:根據(jù)緩存組r1行的緩存組的故障位圖域進(jìn)行判斷,若為無(wú)故障或故障無(wú)法修復(fù),則退出并返回相應(yīng)狀態(tài)。
步驟3:檢查r1的緩存行故障位圖域,一個(gè)標(biāo)有故障的位對(duì)應(yīng)于子塊故障位圖陣列中的一行,步驟4:訪問(wèn)fmindex域,查找對(duì)應(yīng)的子塊故障位圖陣列中的起始行。
步驟5:從查找到的子塊故障位圖陣列中的起始行開(kāi)始,依次檢查其后各行的分區(qū)標(biāo)示域并查詢(xún)各行的子塊故障位圖,直到找到分區(qū)結(jié)束標(biāo)志。
本發(fā)明的有益效果是,延遲開(kāi)銷(xiāo)較低,對(duì)于平均的訪問(wèn)查詢(xún)時(shí)間和緩存的性能的影響較小。本故障存儲(chǔ)結(jié)構(gòu)只需要較小的存儲(chǔ)空間,就可以高效的記錄各塊的故障情況,并且與一般故障緩存結(jié)構(gòu)相比,查詢(xún)速度更加快速,可以多尺度的標(biāo)示緩存組,緩存行及緩存子塊的故障情況并且支持高性能的容錯(cuò)緩存架構(gòu)。
具體實(shí)施方式
下面舉例具體說(shuō)明靜態(tài)分配和動(dòng)態(tài)分配的訪問(wèn)查詢(xún)方式:
靜態(tài)分配:
l1緩存的一個(gè)普通的關(guān)聯(lián)度為8的緩存組,緩存組數(shù)量為4,緩存行的字節(jié)數(shù)為64字節(jié),子塊大小為8字節(jié),給每個(gè)緩存組固定分配故障位圖項(xiàng)為3。初始的緩存組及緩存行故障位圖陣列的內(nèi)容,子塊故障位圖陣列的內(nèi)容和物理地址如圖5所示。當(dāng)發(fā)生緩存請(qǐng)求r1時(shí),物理地址為00000011000,根據(jù)其索引值00在緩存組及緩存行故障位圖陣列中查找第一行,其緩存組的故障位圖域?yàn)?1,說(shuō)明改緩存組有故障且故障可以被修復(fù),繼續(xù)訪問(wèn)緩存行故障位圖域,其值為10011000。同時(shí)根據(jù)物理地址索引值00以及給每個(gè)緩存組固定分配故障位圖項(xiàng)數(shù)3在子塊故障位圖陣列中確定改緩存組對(duì)應(yīng)的子塊故障位圖陣列行為第1到3行,根據(jù)物理地址set值000在其對(duì)應(yīng)的子塊故障位圖陣列查找,查找到第1行,根據(jù)其物理地址偏移址在該行中查找,確定其子塊為該行的第4塊,有故障。
動(dòng)態(tài)分配:
l1緩存的一個(gè)普通的關(guān)聯(lián)度為8的緩存組,緩存組數(shù)量為4,緩存行的字節(jié)數(shù)為64字節(jié),子塊大小為8字節(jié),故障位圖項(xiàng)總數(shù)為8。初始的緩存組及緩存行故障位圖陣列的內(nèi)容,子塊故障位圖陣列的內(nèi)容和物理地址如圖6所示。當(dāng)發(fā)生緩存請(qǐng)求r1時(shí),物理地址為00000011000,根據(jù)其索引值00在緩存組及緩存行故障位圖陣列中查找第一行,其緩存組的故障位圖域?yàn)?1,說(shuō)明改緩存組有故障且故障可以被修復(fù),繼續(xù)訪問(wèn)緩存行故障位圖域,其值為10011000。根據(jù)該行的指向緩存子塊的指針域000,在子塊故障位圖陣列中找到該緩存組對(duì)應(yīng)的子塊故障位圖陣列的第一行,根據(jù)分區(qū)標(biāo)示域,向下面各行依次查找直至找到11,該行為緩存行對(duì)應(yīng)的子塊故障終止行,根據(jù)物理地址set值000在其對(duì)應(yīng)的子塊故障位圖陣列查找,查找到第1行,根據(jù)其物理地址偏移址在該行中查找,確定其子塊為該行的第4塊,有故障。
附圖說(shuō)明
圖1是本存儲(chǔ)結(jié)構(gòu)在靜態(tài)分配模式下的緩存組及緩存行故障位圖陣列的結(jié)構(gòu)圖,圖中,1.緩存組故障位圖域,2.緩存行故障位圖域
圖2是本存儲(chǔ)結(jié)構(gòu)在靜態(tài)分配模式下的子塊故障位圖陣列的結(jié)構(gòu)圖,圖中,1.標(biāo)志標(biāo)示域,2.緩存子塊故障位圖域
圖3是本存儲(chǔ)結(jié)構(gòu)在動(dòng)態(tài)分配模式下的緩存組及緩存行故障位圖陣列的結(jié)構(gòu)圖,圖中,1.緩存組故障位圖域,2.緩存行故障位圖域,3.指向緩存子塊的指針域
圖4是本存儲(chǔ)結(jié)構(gòu)在動(dòng)態(tài)分配模式下的子塊故障位圖陣列的結(jié)構(gòu)圖,圖中,1.分區(qū)標(biāo)示域,2.緩存子塊故障位圖域
圖5是本存儲(chǔ)結(jié)構(gòu)在固定模式下的查詢(xún)實(shí)例
圖6是本存儲(chǔ)結(jié)構(gòu)在動(dòng)態(tài)模式下的查詢(xún)實(shí)例。