国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

SRAM 存儲(chǔ)的容錯(cuò)設(shè)計(jì)和可靠性評(píng)估研究?

2019-11-29 05:13程振洪熊庭剛
關(guān)鍵詞:漢明譯碼鏡像

程振洪 阮 航 熊庭剛

(武漢數(shù)字工程研究所 武漢 430205)

1 引言

計(jì)算機(jī)系統(tǒng)離不開存儲(chǔ)設(shè)備支持,惡劣環(huán)境中的存儲(chǔ)設(shè)備的存儲(chǔ)性能易受影響甚至引發(fā)故障,直接導(dǎo)致計(jì)算機(jī)系統(tǒng)的崩潰。據(jù)統(tǒng)計(jì),80%以上的系統(tǒng)崩潰問題均由存儲(chǔ)設(shè)備數(shù)據(jù)錯(cuò)誤引起。近年來針對(duì)糾錯(cuò)碼的研究推動(dòng)了存儲(chǔ)容錯(cuò)進(jìn)程[1]。文獻(xiàn)[2]針對(duì)硬件實(shí)現(xiàn)糾一檢二的編碼用于內(nèi)存保護(hù)時(shí)糾錯(cuò)能力有限的問題,提出了一種軟硬件協(xié)同的EDAC(error detection and correction)檢錯(cuò)糾錯(cuò)方法。在硬件對(duì)水平方向的每個(gè)字進(jìn)行糾一檢二編碼的基礎(chǔ)上,該方法在軟件上對(duì)垂直方向的每個(gè)位片進(jìn)行奇偶編碼,并通過軟硬協(xié)同方式發(fā)現(xiàn)并糾正內(nèi)存位翻轉(zhuǎn)錯(cuò)誤。該方法無需增加額外硬件開銷,相比純硬件EDAC 的可靠性有一定提高,不足之處是系統(tǒng)性能的開銷有所增加。漢明糾錯(cuò)編碼在硬件容錯(cuò)方向應(yīng)用廣泛,如文獻(xiàn)[3]提出一種基于[12,8]拓展?jié)h明編碼[4]的AES(Advanced Encryption Standard)硬件容錯(cuò)設(shè)計(jì)方法。文獻(xiàn)[5]基于一套ECC加固的SRAM 可靠性評(píng)估體系,采用廣泛應(yīng)用的MTTF(平均無故障失效時(shí)間)作為可靠性依據(jù)。文獻(xiàn)[6]提出了基于閃存錯(cuò)誤特征的聯(lián)合譯碼策略,并研究了面向閃存系統(tǒng)的多進(jìn)制LDPC 碼。文獻(xiàn)[7]針對(duì)內(nèi)存單粒子翻轉(zhuǎn)問題采用SEC-DED編碼進(jìn)行糾錯(cuò)。文獻(xiàn)[8]用軟件實(shí)現(xiàn)SEC-DED 編碼,盡管多位錯(cuò)誤翻轉(zhuǎn)出現(xiàn)概率不大,但仍是該可靠計(jì)算機(jī)設(shè)計(jì)不得不考慮的問題。除了存儲(chǔ)器本身出現(xiàn)的數(shù)據(jù)錯(cuò)誤外,數(shù)據(jù)在片外傳輸通道上的信號(hào)衰變和損耗也會(huì)導(dǎo)致錯(cuò)誤發(fā)生,故設(shè)計(jì)合適的糾錯(cuò)編碼保證傳輸質(zhì)量十分重要[9]。另外,NAND 閃存的糾錯(cuò)工作也是近年的研究熱點(diǎn),多種編碼得到應(yīng)用,如二維漢明編碼[10],QC-LDPC碼[11],RS碼[12]。其他應(yīng)用場(chǎng)景,如存儲(chǔ)系統(tǒng)芯片級(jí)容錯(cuò)[13]、光存儲(chǔ)糾錯(cuò)[14]、云存儲(chǔ)容錯(cuò)[15]也有研究。

采用軟件或者軟硬件結(jié)合的糾錯(cuò)技術(shù)雖然能夠一定程度上滿足糾錯(cuò)需求,但存在數(shù)據(jù)糾正效率較低,難以解決內(nèi)存在連續(xù)訪問模式下的數(shù)據(jù)糾錯(cuò)問題,另外當(dāng)前涉及鏡像存儲(chǔ)結(jié)構(gòu)的可靠性研究十分稀少,本文針對(duì)此情況展開研究。

2 SRAM存儲(chǔ)容錯(cuò)硬件設(shè)計(jì)

本文的SRAM 存儲(chǔ)容錯(cuò)方案在硬件上采用鏡像內(nèi)存結(jié)構(gòu)。鏡像內(nèi)存采用兩片物理特性相同的內(nèi)存,通過添加額外的特殊控制電路,使得內(nèi)存的寫操作得以同時(shí)進(jìn)入兩片內(nèi)存。當(dāng)錯(cuò)誤發(fā)生時(shí),可以快速切換至備份內(nèi)存總進(jìn)行讀寫操作。鏡像內(nèi)存通過內(nèi)存熱插拔技術(shù),即使內(nèi)存出現(xiàn)物理性的永久損壞,也可以在系統(tǒng)運(yùn)行時(shí)替換內(nèi)存。執(zhí)行替換后,再通過內(nèi)存間拷貝的方式,迅速?gòu)膫浞輧?nèi)存中恢復(fù)有效,提高內(nèi)存系統(tǒng)的可靠性,從而達(dá)到延長(zhǎng)系統(tǒng)無故障運(yùn)行時(shí)間的目的。本文所采用的鏡像內(nèi)存系統(tǒng)原理框圖如圖1所示。

圖1 原理框圖中兩套物理上獨(dú)立的CPU 總線分別與存儲(chǔ)模塊A、B 連接,用于傳遞CPU 的讀寫事務(wù)和內(nèi)存反饋的數(shù)據(jù)信息。總線協(xié)議解析/封裝模塊起到兩個(gè)作用:1)從CPU總線解析得到內(nèi)存訪問的類型、類型、數(shù)據(jù)信息;2)將讀取的內(nèi)存數(shù)據(jù)封裝成CPU 總線的協(xié)議。ECC 編碼模塊將CPU 總線寫入內(nèi)存的原始數(shù)據(jù)進(jìn)行ECC編碼處理,在其后添加校驗(yàn)碼字段,形成ECC編碼字段。ECC解碼模塊將從內(nèi)存讀出的ECC編碼數(shù)據(jù)進(jìn)行解碼,解碼過程中按照ECC 規(guī)則進(jìn)行,如果數(shù)據(jù)校驗(yàn)不通過,則在ECC 的糾錯(cuò)能力范圍內(nèi)對(duì)錯(cuò)誤數(shù)據(jù)位進(jìn)行糾正。如果錯(cuò)誤個(gè)數(shù)超出糾錯(cuò)能力范圍,就通告總線協(xié)議解析模塊,將錯(cuò)誤信息反饋至CPU總線。內(nèi)存分兩部分:一部分是數(shù)據(jù)存儲(chǔ)顆粒,用于存儲(chǔ)數(shù)據(jù),即ECC 的信息碼;另一部分是校驗(yàn)碼存儲(chǔ)顆粒,用于存放校驗(yàn)數(shù)據(jù),即ECC的校驗(yàn)碼。

圖1 鏡像內(nèi)存系統(tǒng)原理框圖

板間修復(fù)控制器用于應(yīng)對(duì)ECC 解碼模塊檢出數(shù)據(jù)錯(cuò)誤,但無法將錯(cuò)誤糾正的情況。一旦出現(xiàn)ECC解碼模塊不能糾正的錯(cuò)誤,ECC解碼模塊通告板間修復(fù)控制器,板間修復(fù)控制器向另一存儲(chǔ)模塊發(fā)出修復(fù)請(qǐng)求,獲取相應(yīng)數(shù)據(jù)單元的正確數(shù)據(jù)。在獲取正確數(shù)據(jù)后,正確數(shù)據(jù)和其校驗(yàn)碼將被存儲(chǔ)控制器重新寫入原出錯(cuò)單元,完成覆蓋和糾正。

對(duì)于圖1 鏡像內(nèi)存系統(tǒng),當(dāng)內(nèi)存數(shù)據(jù)讀出時(shí),ECC 解碼模塊會(huì)存在兩種可能性:第一種情況,數(shù)據(jù)位翻轉(zhuǎn)導(dǎo)致的錯(cuò)誤在糾錯(cuò)碼的糾錯(cuò)能力范圍內(nèi),ECC解碼模塊可以糾正這類錯(cuò)誤,并獲得正確的譯碼后數(shù)據(jù)交給總線協(xié)議封裝模塊進(jìn)行封裝;第二種情況,數(shù)據(jù)位翻轉(zhuǎn)導(dǎo)致的錯(cuò)誤超出糾錯(cuò)碼的糾錯(cuò)能力范圍。此時(shí),ECC 解碼模塊可能檢測(cè)到這類錯(cuò)誤,并將這一錯(cuò)誤通過信號(hào)傳遞給板間修復(fù)控制器。通過板間修復(fù)控制器,正確數(shù)據(jù)可以通過請(qǐng)求和應(yīng)答的握手方式由存儲(chǔ)模塊間的數(shù)據(jù)通道傳遞,完成對(duì)糾錯(cuò)碼不可糾正錯(cuò)誤的糾正工作。

3 SRAM存儲(chǔ)容錯(cuò)邏輯設(shè)計(jì)

3.1 存儲(chǔ)容錯(cuò)邏輯頂層設(shè)計(jì)

根據(jù)圖1 所述鏡像內(nèi)存系統(tǒng)原理框圖,并結(jié)合自頂而下的數(shù)字邏輯設(shè)計(jì)思想,本文設(shè)計(jì)了如圖2所示的鏡像內(nèi)存系統(tǒng)邏輯頂層。

圖2 用于鏡像內(nèi)存的糾錯(cuò)系統(tǒng)具有數(shù)據(jù)/地址總線、存儲(chǔ)模塊A、存儲(chǔ)模塊B,其中存儲(chǔ)模塊A 與存儲(chǔ)模塊B 具有相同的內(nèi)部結(jié)構(gòu),形成冗余關(guān)系。訪問類型指定內(nèi)存存儲(chǔ)陣列的訪問模式,如單次寫、單次讀、突發(fā)寫、突發(fā)讀;原始數(shù)據(jù)指定即將寫入內(nèi)存的數(shù)據(jù)流;無誤讀出數(shù)據(jù)指定從內(nèi)存單元讀出的經(jīng)過糾錯(cuò)處理的正確數(shù)據(jù)流;交錯(cuò)通道A-B與交錯(cuò)通道B-A 實(shí)現(xiàn)存儲(chǔ)模塊A 與存儲(chǔ)模塊B 間的錯(cuò)誤信息和正確數(shù)據(jù)片段的實(shí)時(shí)交換。另外,存儲(chǔ)模塊A與B結(jié)構(gòu)相同,可以替換使用。

圖2 鏡像內(nèi)存系統(tǒng)邏輯頂層

事件/數(shù)據(jù)緩沖單元實(shí)現(xiàn)了對(duì)訪問類型和原始數(shù)據(jù)的忙時(shí)緩沖和閑時(shí)釋放功能。當(dāng)糾錯(cuò)控制核心處于數(shù)據(jù)糾錯(cuò)、恢復(fù)的繁忙狀態(tài)時(shí),事件/數(shù)據(jù)緩沖單元分別將訪問類型和原始數(shù)據(jù)緩存到一級(jí)事件緩存和一級(jí)數(shù)據(jù)緩存中。當(dāng)糾錯(cuò)控制核心完成糾錯(cuò)控制過程,只要一級(jí)事件緩存或一級(jí)數(shù)據(jù)緩存非空,則打開緩存使能,選擇器將選擇緩存類型和緩存數(shù)據(jù)分別作為事件輸入和寫入數(shù)據(jù)進(jìn)行輸出,從而提高下一個(gè)內(nèi)存訪問事務(wù)的處理速度。另外,如果糾錯(cuò)控制核心空閑時(shí)這兩個(gè)一級(jí)緩存為空,則選擇器選擇訪問類型和原始數(shù)據(jù)作為事件輸入和寫入數(shù)據(jù),從而達(dá)到減少內(nèi)存訪問的延遲,提高內(nèi)存響應(yīng)速度的效果。

編碼觸發(fā)單元實(shí)現(xiàn)了對(duì)不同訪問類型的編碼和觸發(fā)功能。它的輸入為事件輸入,來自事件/數(shù)據(jù)緩沖單元。它的輸出為事件編碼,連至糾錯(cuò)控制核心。ECC 編碼/譯碼單元實(shí)現(xiàn)對(duì)寫入數(shù)據(jù)的糾錯(cuò)編碼和內(nèi)存讀出數(shù)據(jù)的糾錯(cuò)譯碼。它的寫入數(shù)據(jù)來自事件/數(shù)據(jù)緩沖單元,即待編碼數(shù)據(jù),由它輸出的編碼數(shù)據(jù)連接數(shù)據(jù)修復(fù)存儲(chǔ)控制器及存儲(chǔ)陣列,是通過糾錯(cuò)編碼處理后的結(jié)果。糾錯(cuò)譯碼過程相反,待譯碼數(shù)據(jù)來自數(shù)據(jù)修復(fù)存儲(chǔ)控制器及存儲(chǔ)陣列,經(jīng)過ECC 編碼/譯碼單元譯碼后輸出譯碼結(jié)果交給糾錯(cuò)控制核心處理。交錯(cuò)修復(fù)單元實(shí)現(xiàn)存儲(chǔ)模塊間的錯(cuò)誤字節(jié)碼、正確字節(jié)段的交換和數(shù)據(jù)修復(fù)功能的輔助功能。

司大愣子媳婦遇見我,悄悄地說:“嫂子我是過來人,你呀,還是離別呦呦遠(yuǎn)點(diǎn),她是妖精,你小小年紀(jì),別被她吸干了。”

3.2 糾錯(cuò)控制核心設(shè)計(jì)

圖2 中糾錯(cuò)控制核心采用狀態(tài)機(jī)設(shè)計(jì)實(shí)現(xiàn)。該狀態(tài)機(jī)在多個(gè)外部輸入條件的變化下,在不同的狀態(tài)間進(jìn)行跳轉(zhuǎn),并控制內(nèi)存控制器進(jìn)行各種操作,如內(nèi)存單次寫、內(nèi)存單次讀、內(nèi)存burst 讀。糾錯(cuò)控制核心中重要的功能是多個(gè)出錯(cuò)狀態(tài)的檢測(cè)和對(duì)應(yīng)的糾錯(cuò)控制狀態(tài)。為了使糾錯(cuò)控制的過程更加明白清晰,在此使用圖3 糾錯(cuò)控制核心狀態(tài)機(jī)流程圖進(jìn)行解釋。

圖3 糾錯(cuò)控制核心狀態(tài)機(jī)流程圖

糾錯(cuò)控制核心狀態(tài)機(jī)的行為如下。

在IDLE 狀態(tài)下,等待各種類型內(nèi)存訪問事件的觸發(fā)。在WRITE狀態(tài)下,進(jìn)行單次/突發(fā)寫控制,指示內(nèi)存控制器將編碼數(shù)據(jù)寫入存儲(chǔ)陣列。在SINGLE_READ狀態(tài)下,進(jìn)行內(nèi)存單次讀控制,指示內(nèi)存控制器將待譯碼數(shù)據(jù)從存儲(chǔ)陣列讀出。在ECC_CHECK 狀態(tài)下,單次檢查ECC 譯碼單元輸出的錯(cuò)誤字節(jié)碼。在LOCAL_FIX 狀態(tài)下,控制本模塊內(nèi)存數(shù)據(jù)修復(fù)過程,修復(fù)數(shù)據(jù)來自與之通過交錯(cuò)通道連接的另一存儲(chǔ)模塊。在OTHER_FIX 狀態(tài)下,將本模塊譯碼數(shù)據(jù)通過交錯(cuò)通道交給與之連接的另一存儲(chǔ)模塊,以滿足其他存儲(chǔ)模塊數(shù)據(jù)修復(fù)需求。在BURST_READ 狀態(tài)下,進(jìn)行內(nèi)存突發(fā)讀,按照設(shè)定的突發(fā)長(zhǎng)度管理內(nèi)存控制器從存儲(chǔ)陣列中連續(xù)讀數(shù)。在BURST_CHECK 狀態(tài)下,連續(xù)檢查ECC 譯碼單元輸出的錯(cuò)誤字節(jié)碼。在BURST_FIX狀態(tài)下,控制交錯(cuò)修復(fù)單元在兩個(gè)存儲(chǔ)模塊間交換錯(cuò)誤字節(jié)碼,并將對(duì)方錯(cuò)誤字節(jié)碼對(duì)應(yīng)所需的正確字節(jié)片段進(jìn)行互換,最后在各自存儲(chǔ)模塊通過內(nèi)存控制器寫入修復(fù)數(shù)據(jù)完成數(shù)據(jù)修復(fù)。

4 SRAM存儲(chǔ)容錯(cuò)可靠性評(píng)估

為了提高系統(tǒng)存儲(chǔ)的可靠性,針對(duì)每個(gè)字節(jié)增加了5位監(jiān)督碼元,構(gòu)成了13位的漢明編碼。漢明編碼可以糾正存儲(chǔ)字最多出現(xiàn)1 位錯(cuò)誤,同時(shí)可以檢出2 位錯(cuò)誤,即俗稱的“糾一檢二”。令p 為單個(gè)位出錯(cuò)概率,并假設(shè)各個(gè)位的故障是獨(dú)立的,提供了系統(tǒng)可靠性的上界。在這種情況下,可以容忍每個(gè)字一個(gè)故障。通過排列組合可以得到無錯(cuò)誤概率Pno_error,一位錯(cuò)誤概率Pone_error,兩位錯(cuò)誤概率Ptwo_error,如下所示。

通過漢明編碼提高存儲(chǔ)可靠性的原理可以通過以下公式證明:

這表明,通過向1 字節(jié)增加5 位監(jiān)督碼元構(gòu)成的漢明編碼比無糾錯(cuò)編碼的原始字節(jié)數(shù)據(jù)的正確概率高。若系統(tǒng)使用的存儲(chǔ)為16MB(含監(jiān)督碼元)的靜態(tài)存儲(chǔ)器,根據(jù)《電子設(shè)備可靠性預(yù)計(jì)手冊(cè)》,查表可得該靜態(tài)存儲(chǔ)器的整體失效率:

現(xiàn)在需要根據(jù)整體失效率得到單bit 失效率,根據(jù)單bit 失效率繼續(xù)求得無錯(cuò)、單錯(cuò)、雙錯(cuò)概率,繼而得出ECC 功能下的存儲(chǔ)失效率。根據(jù)統(tǒng)計(jì)規(guī)律,充分的數(shù)據(jù)表明,整個(gè)芯片失效這一方式對(duì)大部分芯片來說不是主要失效方式,個(gè)別位、行、列失效才是導(dǎo)致芯片失效的主要原因,因此有理由使用單個(gè)位失效模型SBFM(Single Bit Failure Mode)進(jìn)行存儲(chǔ)失效性分析。該模型假設(shè)單個(gè)位的失效是獨(dú)立事件,并且每個(gè)位單元都遵循指數(shù)失效規(guī)律,其失效率為λb,可靠度函數(shù)為Rb( )t ,每n個(gè)位組成一個(gè)字,存儲(chǔ)器一共有w 字。根據(jù)可靠性函數(shù)與MTTF的關(guān)系:

即:

經(jīng)過整理,得到:

為了在系統(tǒng)可靠性模型分析中使用單存儲(chǔ)模型失效率參數(shù)λsingle和雙存儲(chǔ)模型的失效率參數(shù)λdouble,必須分情況求解存儲(chǔ)器的整體失效率。單存儲(chǔ)模型和鏡像存儲(chǔ)模型下的失效率:

在式(13)中,有:

在式(12)與式(13)中,n為13,w是存儲(chǔ)器總字?jǐn)?shù),經(jīng)計(jì)算得到:

根據(jù)式(12)與式(13)計(jì)算所得結(jié)果,證實(shí)本文采用的SRAM 容錯(cuò)存儲(chǔ)方法在可靠性方面較未采用ECC 和存儲(chǔ)鏡像技術(shù)的方案均有明顯提升。其中,含ECC 的單存儲(chǔ)模型可靠性提高了大約22 倍,而鏡像存儲(chǔ)模型則比單存儲(chǔ)模型的可靠性高三個(gè)數(shù)量級(jí)。

5 結(jié)語

針對(duì)SRAM 的數(shù)據(jù)糾錯(cuò)問題,本文提出一種基于漢明編碼的鏡像存儲(chǔ)糾錯(cuò)方法,在漢明編碼提供每個(gè)字節(jié)可糾正一位錯(cuò)誤的基礎(chǔ)上,利用兩個(gè)SRAM 存儲(chǔ)間數(shù)據(jù)片段共享的特征,建立數(shù)據(jù)交換信道,從而提高了糾錯(cuò)能力的提高。理論分析也表明,該方法較未采用ECC和存儲(chǔ)鏡像技術(shù)的方案均有明顯提升。今后的工作可以進(jìn)一步研究存儲(chǔ)數(shù)據(jù)恢復(fù)技術(shù)對(duì)于可靠性的影響,用馬爾可夫建模方法評(píng)估分析,并用實(shí)驗(yàn)方法對(duì)可靠性進(jìn)行驗(yàn)證。

猜你喜歡
漢明譯碼鏡像
一種5G系統(tǒng)自適應(yīng)快速SCL極化碼譯碼算法
基于擴(kuò)大候選碼元范圍的非二元LDPC加權(quán)迭代硬可靠度譯碼算法
有限域上一類極小線性碼的構(gòu)造
分段CRC 輔助極化碼SCL 比特翻轉(zhuǎn)譯碼算法
基于校正搜索寬度的極化碼譯碼算法研究
鏡像
鏡像
媳婦管錢
鏡像
一種新的計(jì)算漢明距方法