欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法及裝置的制作方法

文檔序號:6382487閱讀:292來源:國知局
專利名稱:具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及微處理器中一級緩存(一級cache)設(shè)計領(lǐng)域,具體涉及一種具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法及裝置。
背景技術(shù)
隨著工藝水平的提高,集成電路的特征尺寸不斷減小,不斷降低的供電電壓、持續(xù)減小的節(jié)點電容都使得集成電路對環(huán)境的影響越來越敏感,可靠性問題日益突出。特別是在納米級工藝下,芯片的軟錯誤率急劇增大。所謂軟錯誤是指集成電路受到高能粒子轟擊或噪聲干擾時發(fā)生的瞬時充放電對電路內(nèi)部狀態(tài)的破壞。軟錯誤是一種瞬時錯誤,是可恢復(fù)的,其發(fā)生的時間和位置隨機。軟錯誤發(fā)生的概率與集成電路節(jié)點電量和源漏區(qū)面積相關(guān)。隨著集成電路工藝的進步,供電電壓不斷降低,單個節(jié)點上存儲的電荷越來越少,所以能量較低的粒子或噪聲就可能引起軟錯誤。但同時特征尺寸的降低也使得敏感源漏區(qū)的面積減小,導(dǎo)致單個晶體管器件發(fā)生瞬態(tài)故障的概率降低。由于特征尺寸和供電電壓是同步減小的,所以單個晶體管器件發(fā)生軟錯誤的概率在未來的很多年中將保持不變。但是隨著工藝的進步,單片上集成的晶體管數(shù)目呈指數(shù)增長,所以總的來看,芯片發(fā)生軟錯誤的概率也將呈指數(shù)增長。有研究表明,在納米級工藝條件下,軟錯誤是引起芯片失效的主要原因。在現(xiàn)代微處理器中,各種存儲單元(包括片內(nèi)存儲體和寄存器等)占據(jù)了芯片面積的70%以上,是芯片中對高能粒子最為敏感的部分。存儲單元發(fā)生的軟錯誤包括單事件翻轉(zhuǎn)(單個高能粒子轟擊導(dǎo)致的一位存儲單元發(fā)生翻轉(zhuǎn)錯)和多位翻轉(zhuǎn)(單個高能粒子轟擊導(dǎo)致的多個相鄰存儲單元發(fā)生翻轉(zhuǎn)錯)兩種類型。研究表明微處理器發(fā)生的各種瞬態(tài)故障,絕大部分來自于存儲單元。因此目前高可靠微處理器大多針對各種存儲單元進行保護。對于單事件翻轉(zhuǎn),寄存器(Flip-flop)和片內(nèi)存儲體發(fā)生的概率一樣;但對于多位翻轉(zhuǎn),由于片內(nèi)存儲器電路實現(xiàn)布局相對于寄存器更加緊湊,因此在深亞微米器件的線寬與粒子大小可比擬的條件下,單一的粒子轟擊可能引發(fā)相鄰存儲單元的多位翻轉(zhuǎn)概率將遠(yuǎn)高于寄存器。所以相對于處理器其他部分,片內(nèi)存儲器更容易發(fā)生軟錯誤,更需要采用加固技術(shù)進行防護,除了能夠防護單事件翻轉(zhuǎn)類型軟錯誤外,更重要的是也能夠有效支持多位翻轉(zhuǎn)型軟錯誤防護。片內(nèi)存儲體容軟錯誤設(shè)計一般采用信息冗余技術(shù)進行軟錯誤檢測與糾正,常用的信息冗余技術(shù)包括奇偶檢驗碼技術(shù)和海明校驗碼技術(shù)。這些技術(shù)需要寫入存儲器時對數(shù)據(jù)進行冗余編碼,將原始數(shù)據(jù)和編碼都存儲在存儲器中,讀出時對數(shù)據(jù)和檢驗碼進行校驗。對于奇偶檢驗碼技術(shù),所需的冗余編碼少,增加的面積和時序性能開銷小,但只考慮了容單事件翻轉(zhuǎn),而未考慮容多位翻轉(zhuǎn)。對于海明校驗碼技術(shù),不僅考慮了容單事件翻轉(zhuǎn),也考慮了容多位翻轉(zhuǎn),但需要的冗余編碼多,導(dǎo)致面積增加和時序性能開銷大?!壘彺?LI cache)是處理器片內(nèi)的大容量存儲體,為了提高緩存性能,減少緩存失效率,常組織成多路組相聯(lián)的結(jié)構(gòu)。
如圖I所示,現(xiàn)有技術(shù)的一級緩存存儲裝置一般為組相聯(lián)一級緩存,組相聯(lián)一級緩存包括標(biāo)識陣列、數(shù)據(jù)陣列和數(shù)據(jù)冗余校驗陣列三部分。標(biāo)識陣列和數(shù)據(jù)陣列構(gòu)成了一個典型的CAM-RAM結(jié)構(gòu),標(biāo)識(tag)存儲在CAM結(jié)構(gòu)中,數(shù)據(jù)(data)存儲在RAM結(jié)構(gòu)中,CAM項和RAM項是一一對應(yīng)的,組相聯(lián)一級緩存的標(biāo)識陣列和數(shù)據(jù)陣列實現(xiàn)了 η路組相聯(lián)結(jié)構(gòu)。標(biāo)識陣列的每項包含了路O (Wayci)到路n (wayn)所有路的tag信息,并按Wayci標(biāo)識、Way1標(biāo)識到wayn標(biāo)識的方式組織。數(shù)據(jù)陣列的每項包含了路O (way。)到路n (wayn)所有路的data信息,并按way。數(shù)據(jù)、Way1數(shù)據(jù)到wayn數(shù)據(jù)的方式組織,每路數(shù)據(jù)包含一個Cache line (即一個Cache塊大小),由m個字(word)構(gòu)成,每個字(word)為32位,每路數(shù)據(jù)按wordd、Word1到Wordm的方式組織。當(dāng)訪問組相聯(lián)一級緩存時,用低位地址(address)來索引標(biāo)識陣列,高位地址將作為一個搜索字輸入到標(biāo)識陣列中,同標(biāo)識陣列中所有η路的標(biāo)識進行并行比較,產(chǎn)生每路的命中/未命中信號。與此同時低位地址也用來索引數(shù)據(jù)陣列,讀出索引項的所有η路的數(shù)據(jù),然后基于標(biāo)識陣列命中/未命中(match/dismatch)信 號產(chǎn)生的命中路路選擇信息選擇要讀出的某路數(shù)據(jù)(即一個Cache line)。當(dāng)填充組相聯(lián)一級緩存時,待寫入的數(shù)據(jù)(即一個Cache line)將根據(jù)填充路路選擇信息將數(shù)據(jù)寫入到組相 聯(lián)一級緩存對應(yīng)路的數(shù)據(jù)體中。
現(xiàn)有技術(shù)的一級緩存存儲裝置軟錯誤容錯功能由數(shù)據(jù)冗余校驗陣列實現(xiàn)。數(shù)據(jù)冗余校驗陣列用于組相聯(lián)一級緩存的軟錯誤檢測,與數(shù)據(jù)陣列一一對應(yīng)。當(dāng)寫入某路數(shù)據(jù)時,將同時根據(jù)寫入數(shù)據(jù)生成校驗碼,并把校驗碼寫入該路的冗余校驗陣列中。當(dāng)讀出某路數(shù)據(jù)時,相應(yīng)地也讀出該路的校驗碼,根據(jù)讀出數(shù)據(jù)和校驗碼進行錯誤檢測。冗余校驗陣列每項包含了路O (Waytl)到路n (wayn)所有路的校驗碼信息。Waytl校驗碼用于檢測數(shù)據(jù)陣列中way。數(shù)據(jù)的軟錯誤,Way1校驗碼用于檢測數(shù)據(jù)陣列中Way1數(shù)據(jù)的軟錯誤,依此類推。現(xiàn)有技術(shù)的一級緩存存儲裝置中每路數(shù)據(jù)的冗余校驗機制可采用海明碼等復(fù)雜校驗機制(ECC),也可采用簡單的奇偶檢驗機制(P )。ECC校驗機制容軟錯誤能力強,可檢測存儲體的單事件翻轉(zhuǎn)錯和多位翻轉(zhuǎn)錯,但硬件實現(xiàn)開銷大。P校驗機制硬件實現(xiàn)開銷小,能檢測存儲體的單事件翻轉(zhuǎn)錯,當(dāng)發(fā)生單粒子引發(fā)的相鄰單元多位翻轉(zhuǎn)錯時,由于現(xiàn)有技術(shù)的一級緩存存儲裝置組相聯(lián)結(jié)構(gòu)下相鄰單元多位錯會發(fā)生在同路數(shù)據(jù)體的不同數(shù)據(jù)位上,因此該結(jié)構(gòu)下P校驗機制將無法檢測存儲體發(fā)生的多位翻轉(zhuǎn)錯,容軟錯誤能力相對較弱。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是能夠在低硬件開銷下實現(xiàn)存儲體軟錯誤的高容錯能力。本發(fā)明提供一種容軟錯誤能力強、硬件開銷小、時序性能好的具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法及裝置。為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為
一種具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法,其實施步驟如下
1)在收到數(shù)據(jù)填充命令時,接收待填充數(shù)據(jù)并采用奇偶檢驗信息冗余編碼生成奇偶校驗碼并存儲奇偶校驗碼,同時將所述待填充數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列中;
2)在收到數(shù)據(jù)命中命令時,從數(shù)據(jù)存儲陣列中讀取分散存儲的各個數(shù)據(jù)位,將各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),將命中路數(shù)據(jù)采用奇偶檢驗信息冗余編碼生成奇偶校驗碼,將生成奇偶校驗碼與存儲的奇偶校驗碼進行比較,如果兩者一致則直接將命中路數(shù)據(jù)輸出,否則檢測到數(shù)據(jù)錯誤,報告出錯信息。作為本發(fā)明具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法的進一步改進
所述步驟I)中將數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列中時,且不同路數(shù)據(jù)的相同數(shù)據(jù)位存儲于數(shù)據(jù)存儲陣列中的同一個存儲區(qū)域。本發(fā)明還提供一種具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲裝置,包括數(shù)據(jù)存儲陣列、校驗陣列、解碼器、數(shù)據(jù)寫通路和數(shù)據(jù)讀通路,所述數(shù)據(jù)存儲陣列包含多個數(shù)據(jù)項,任意一個所述數(shù)據(jù)項包括依次排列的多個字存儲單元,所述字存儲單元包含依次排列的多個位存儲模塊,所述位存儲模塊包含所有路的相同數(shù)據(jù)位,所有位存儲模塊中的相同數(shù)據(jù)位存儲的數(shù)據(jù)構(gòu)成完整的一路數(shù)據(jù);所述校驗陣列包含與數(shù)據(jù)存儲陣列中每路數(shù)據(jù)一一對應(yīng)的奇偶校驗項,所述奇偶校驗項中各個奇偶校驗存儲單元分別存儲對應(yīng)數(shù)據(jù)項中一路數(shù)據(jù)的奇偶校驗碼;在收到數(shù)據(jù)填充命令時,所述校驗陣列接收待填充數(shù)據(jù)并采用奇偶檢驗信息冗余編碼生成奇偶校驗碼并存儲奇偶校驗碼,同時數(shù)據(jù)寫通路將待填充數(shù)據(jù)分別以數(shù)據(jù) 位為單位分散存儲于數(shù)據(jù)存儲陣列的各個位存儲模塊中;在收到數(shù)據(jù)命中命令時,所述解碼器根據(jù)數(shù)據(jù)命中命令獲取數(shù)據(jù)存儲陣列中各個位存儲模塊中的數(shù)據(jù)位,所述數(shù)據(jù)讀通路從所述各個位存儲模塊中讀取分散存儲的各個數(shù)據(jù)位并將各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),將命中路數(shù)據(jù)采用奇偶檢驗信息冗余編碼生成奇偶校驗碼,將生成奇偶校驗碼與存儲的奇偶校驗碼進行比較,如果兩者一致則直接將命中路數(shù)據(jù)輸出,否則檢測到數(shù)據(jù)錯誤,報告出錯信息。作為本發(fā)明具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲裝置的進一步改進
所述數(shù)據(jù)寫通路包括與所述位存儲模塊一一對應(yīng)的多個寫多路選擇器,所述寫多路選擇器與對應(yīng)的位存儲模塊相連;所述數(shù)據(jù)讀通路包括與所述位存儲模塊一一對應(yīng)的多個讀多路選擇器,所述讀多路選擇器與對應(yīng)的位存儲模塊相連。本發(fā)明具有軟錯誤容錯功能的一級緩存存儲方法具有下述優(yōu)點
I、容軟錯誤能力強。本發(fā)明采用簡單的奇偶檢驗信息冗余編碼對一級cache存儲體進行容軟錯誤保護,相比于海明ECC等復(fù)雜檢驗信息冗余編碼,對一級cache存儲體增加的面積更少,較小的存儲體面積會減少存儲體軟錯誤發(fā)生率。同時本發(fā)明將一級cache數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列中,在讀取時將各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),數(shù)據(jù)的分散存儲保證了單粒子轟擊導(dǎo)致的相鄰多位存儲單元錯僅發(fā)生在不同路的數(shù)據(jù)體中,不同于現(xiàn)有技術(shù)的一級緩存存儲組相聯(lián)結(jié)構(gòu)下多位翻轉(zhuǎn)錯發(fā)生在同路數(shù)據(jù)體不同數(shù)據(jù)位的情況;對于現(xiàn)有技術(shù)的一級緩存存儲來說,發(fā)生在同路數(shù)據(jù)體不同數(shù)據(jù)位的多位錯,奇偶檢驗機制將無法檢測,但通過存儲體路交叉的分散組織方式可將存儲體多位錯分布到不同路的數(shù)據(jù)體上,每路數(shù)據(jù)體僅包含I位錯誤,這時可通過奇偶檢驗機制分時檢測每路數(shù)據(jù)體的單位錯,從而有效地解決了存儲體多位錯問題,提高存儲體容軟錯誤的能力。2、硬件開銷小。本發(fā)明采用的是硬件面積開銷最小的奇偶檢驗信息冗余編碼,該編碼僅需對每個基本校驗單位增加I位校驗碼即可完成校驗功能,而海明ECC編碼需要的校驗碼位遠(yuǎn)遠(yuǎn)大于奇偶檢驗碼,例如對于緩存的I個基本校驗單位I個字(32位)將需要7位校驗碼方可完成校驗功能,更加復(fù)雜的校驗編碼如Reed-Solomon編碼將需要更多校驗位,這會給大容量一級緩存存儲體帶來巨大的面積開銷,本發(fā)明相比于海明ECC等復(fù)雜檢驗信息冗余編碼,對一級緩存存儲體增加的面積更少,因此本發(fā)明具有硬件開銷小的優(yōu)點。3、時序性能好。微處理器中一級緩存的讀寫通路往往位于芯片訪存的關(guān)鍵路徑上,因此位于存儲體讀寫通路上的冗余編碼編解碼電路時序的好壞將直接影響處理器的性能,編解碼電路的性能通常依賴于編解碼算法和檢驗位數(shù)(包括數(shù)據(jù)位和校驗碼位),復(fù)雜的冗余編碼將需要復(fù)雜的編解碼電路。而本發(fā)明采用奇偶檢驗冗余編碼,其編解碼算法簡單且檢驗位數(shù)相對更少,使得編解碼電路的時序性能相對更好,處理器性能相對更佳;同時本發(fā)明的數(shù)據(jù)組織形式能夠有效避免現(xiàn)有技術(shù)的一級緩存存儲組相聯(lián)結(jié)構(gòu)下引起的數(shù)據(jù)線長和線交叉問題,把現(xiàn)有技術(shù)的一級緩存存儲組相聯(lián)結(jié)構(gòu)下數(shù)據(jù)讀出和寫入時的交叉長線變?yōu)榫植慷叹€,能夠從結(jié)構(gòu)上消除長線、保證存儲體讀寫時序的改善、性能的提升。本發(fā)明具有軟錯誤容錯功能的一級緩存存儲裝置由于具有與具有軟錯誤容錯功能的一級緩存存儲方法對應(yīng)的結(jié)構(gòu),因此也具有與前述具有軟錯誤容錯功能的一級緩存存儲方法相同的技術(shù)效果,在此不再贅述。


圖I為現(xiàn)有技術(shù)一級緩存存儲裝置的框架結(jié)構(gòu)示意圖。圖2為本發(fā)明實施例存儲方法的基本流程示意圖。圖3為本發(fā)明實施例存儲裝置的框架結(jié)構(gòu)示意圖。圖4為本發(fā)明實施例存儲裝置中數(shù)據(jù)寫通路和數(shù)據(jù)讀通路的框架結(jié)構(gòu)示意圖。圖例說明1、數(shù)據(jù)存儲陣列;11、字存儲單元;12、位存儲模塊;2、校驗陣列;21、奇偶校驗存儲單元;3、解碼器;4、數(shù)據(jù)寫通路;41、寫多路選擇器;5、數(shù)據(jù)讀通路;51、讀多路選擇器。
具體實施例方式如圖2所示,本實施例具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法的實施步驟如下
1)在收到數(shù)據(jù)填充命令時,接收待填充數(shù)據(jù)并采用奇偶檢驗信息冗余編碼生成奇偶校驗碼并存儲奇偶校驗碼,同時將待填充數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列中;
2)在收到數(shù)據(jù)命中命令時,從數(shù)據(jù)存儲陣列中讀取分散存儲的各個數(shù)據(jù)位,將各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),將命中路數(shù)據(jù)采用奇偶檢驗信息冗余編碼生成奇偶校驗碼,將生成奇偶校驗碼與存儲的奇偶校驗碼進行比較,如果兩者一致則直接將命中路數(shù)據(jù)輸出,否則檢測到數(shù)據(jù)錯誤,報告出錯信息。本實施例中,步驟I)中將數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列中,且不同路數(shù)據(jù)的相同數(shù)據(jù)位存儲于數(shù)據(jù)存儲陣列中的同一個存儲區(qū)域,數(shù)據(jù)存儲陣列中從左至右的數(shù)據(jù)組織形式如下第O路數(shù)據(jù)的第O個字的第O位、第I路數(shù)據(jù)的第O個字的第O位、……、第η路數(shù)據(jù)的第O個字的第O位;第O路數(shù)據(jù)的第I個字的第O位、第I路數(shù)據(jù)的第I個字的第O位、……、第η路數(shù)據(jù)的第I個字的第O位組織;……;第O路數(shù)據(jù)的第m個字的第O位、第I路數(shù)據(jù)的第m個字的第O位、……、第η路數(shù)據(jù)的第m個字的第O位組織;其中η為數(shù)據(jù)的路數(shù),m為每一路數(shù)據(jù)中的字?jǐn)?shù)。本實施例的數(shù)據(jù)存儲陣列中數(shù)據(jù)組織形式構(gòu)成了路交叉的方式,將各路數(shù)據(jù)的相同數(shù)據(jù)位物理集中,能夠有效避免現(xiàn)有技術(shù)的一級緩存存儲裝置組相聯(lián)結(jié)構(gòu)下引起的數(shù)據(jù)線長并且線交叉的問題,能夠把讀出和寫入時的交叉長線變?yōu)榫植慷叹€,交叉長線的消除勢必會保證存儲體讀寫時序的改善,性能的提升。本實施例的每路數(shù)據(jù)采用奇偶校驗冗余編碼檢測存儲體的軟錯誤,奇偶校驗編碼僅需I位的信息冗余檢驗碼,硬件實現(xiàn)開銷小,增加的面積少,能有效檢測存儲體發(fā)生的單事件翻轉(zhuǎn)軟錯誤。對于單粒子引發(fā)的相鄰存儲單元多位翻轉(zhuǎn)錯,通過存儲體路交叉的分散組織方式,使得引發(fā)的相鄰單元多位錯不在分布在同路數(shù)據(jù)體的不同數(shù)據(jù)位上,而是分布在不同路的數(shù)據(jù)體上,因此可通過奇偶校驗碼分時檢測每路數(shù)據(jù)體的單位錯,最終解決存儲體多位錯問題。相比現(xiàn)有技術(shù)的一級緩存存儲組相聯(lián)結(jié)構(gòu)下奇偶校驗碼僅能檢測單事件翻轉(zhuǎn)軟錯誤,具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法不僅能處理存儲體單事件翻轉(zhuǎn)軟錯誤,也能處理存儲體多位翻轉(zhuǎn)軟錯誤,增強了存儲體容軟錯誤的能力。如圖3和圖4所示,本實施例具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲裝置包括數(shù)據(jù)存儲陣列I、校驗陣列2、解碼器3、數(shù)據(jù)寫通路4和數(shù)據(jù)讀通路5,數(shù)據(jù)存儲陣列I包含多個數(shù)據(jù)項,任意一個數(shù)據(jù)項包括依次排列的多個字存儲單元11,字存儲單元11包含依次 排列的多個位存儲模塊12,位存儲模塊12包含所有路的相同數(shù)據(jù)位,所有位存儲模塊12中的相同數(shù)據(jù)位存儲的數(shù)據(jù)構(gòu)成完整的一路數(shù)據(jù);校驗陣列2包含與數(shù)據(jù)存儲陣列I中每路數(shù)據(jù)一一對應(yīng)的奇偶校驗項,奇偶校驗項中各個奇偶校驗存儲單元21分別存儲對應(yīng)數(shù)據(jù)項中一路數(shù)據(jù)的奇偶校驗碼;在收到數(shù)據(jù)填充命令時,校驗陣列2接收待填充數(shù)據(jù)并采用奇偶檢驗信息冗余編碼生成奇偶校驗碼并存儲奇偶校驗碼,同時數(shù)據(jù)寫通路4將待填充數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列I的各個位存儲模塊12中;在收到數(shù)據(jù)命中命令時,解碼器3根據(jù)數(shù)據(jù)命中命令獲取數(shù)據(jù)存儲陣列I中各個位存儲模塊12中的數(shù)據(jù)位,數(shù)據(jù)讀通路5從各個位存儲模塊12中讀取分散存儲的各個數(shù)據(jù)位并將各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),將命中路數(shù)據(jù)采用奇偶檢驗信息冗余編碼生成奇偶校驗碼,將生成奇偶校驗碼與存儲的奇偶校驗碼進行比較,如果兩者一致則直接將命中路數(shù)據(jù)輸出,否則檢測到數(shù)據(jù)錯誤,報告出錯信息。本實施例中,數(shù)據(jù)存儲陣列I的每個數(shù)據(jù)項包含了路O (Wayci)到路n (wayn)所有路的數(shù)據(jù)信息,但與現(xiàn)有技術(shù)的一級緩存存儲裝置組相聯(lián)結(jié)構(gòu)不同的是,每個數(shù)據(jù)項中的數(shù)據(jù)組織打破了現(xiàn)有技術(shù)的一級緩存存儲裝置組相聯(lián)結(jié)構(gòu)下的數(shù)據(jù)組織方式,采用了存儲體路交叉的分散組織結(jié)構(gòu),即數(shù)據(jù)存儲陣列I中從左至右的數(shù)據(jù)組織形式如下第O路數(shù)據(jù)
的第O個字的第O位(way_)、第I路數(shù)據(jù)的第O個字的第O位(way·)、......、第η路數(shù)據(jù)
的第O個字的第O位(waynTO);第O路數(shù)據(jù)的第I個字的第O位(way_)、第I路數(shù)據(jù)的第I
個字的第O位(way11Q)、......、第η路數(shù)據(jù)的第I個字的第O位組織(waynlQ);......;第O路
數(shù)據(jù)的第m個字的第O位(way_)、第I路數(shù)據(jù)的第m個字的第O位(waylmQ)、......、第η路
數(shù)據(jù)的第m個字的第O位組織(way—)。其中η為數(shù)據(jù)的路數(shù),m為每一路數(shù)據(jù)中的字?jǐn)?shù)。本實施例中將數(shù)據(jù)存儲陣列中數(shù)據(jù)構(gòu)成了路交叉的方式,路交叉結(jié)構(gòu)下所有路的同一位數(shù)據(jù)物理分布上集中,集中的分布能有效避免現(xiàn)有技術(shù)的一級緩存存儲裝置組相聯(lián)結(jié)構(gòu)下引起的數(shù)據(jù)線長并且線交叉的問題,把讀出和寫入時的交叉長線變?yōu)榫植慷叹€,交叉長線的消除勢必會保證存儲體讀寫時序的改善,性能的提升。
本實施例中,校驗陣列2包含與數(shù)據(jù)存儲陣列I中每路數(shù)據(jù)一一對應(yīng)的奇偶校驗項,采用硬件開銷小的奇偶校驗機制來生成驗證碼,每路數(shù)據(jù)僅需I位校驗碼即可檢測每路數(shù)據(jù)單位錯。針對現(xiàn)有技術(shù)的一級緩存存儲裝置組相聯(lián)結(jié)構(gòu)下單粒子引發(fā)相鄰存儲單元多位錯時奇偶校驗機制無法檢測的問題,本實施例通過路交叉結(jié)構(gòu)的數(shù)據(jù)存儲陣列I能夠有效地避免。對于單粒子引發(fā)的相鄰存儲單元多位錯,在路交叉的數(shù)據(jù)存儲陣列I的結(jié)構(gòu)下,其錯誤不在分布在同路數(shù)據(jù)體的不同數(shù)據(jù)位上,而是分布在不同路的數(shù)據(jù)體上,不同路的數(shù)據(jù)錯可通過不同路的奇偶校驗檢測。例如在本實施例的數(shù)據(jù)存儲陣列I中,Way000,way·發(fā)生了單粒子引發(fā)的相鄰存儲單元多位翻轉(zhuǎn)錯,當(dāng)數(shù)據(jù)訪問到Wayci時,可通過奇偶校驗檢測由多位翻轉(zhuǎn)引起的way_錯誤,當(dāng)數(shù)據(jù)訪問到Way1時,可通過奇偶校驗檢測由多位翻轉(zhuǎn)引起的way·錯誤。本實施例通過這種分時處理單位錯問題,用奇偶校驗機制解決了多位翻轉(zhuǎn)的軟錯誤,保證了低硬件開銷下的軟錯誤高容錯能力。如圖4所示,數(shù)據(jù)寫通路4包括與位存儲模塊12 —一對應(yīng)的多個寫多路選擇器41,寫多路選擇器41與對應(yīng)的位存儲模塊12相連;數(shù)據(jù)讀通路5包括與位存儲模塊12—一對應(yīng)的多個讀多路選擇器51,讀多路選擇器51與對應(yīng)的位存儲模塊12相連。讀出或?qū)懭?的數(shù)據(jù)來自或到達每路數(shù)據(jù)在各個位存儲模塊12中對應(yīng)的數(shù)據(jù)位中,由命中路路選擇和填充路路選擇信號控制。在現(xiàn)有技術(shù)的一級緩存存儲裝置組相聯(lián)結(jié)構(gòu)下,所有路的同一位數(shù)據(jù)物理分布上相對分散,導(dǎo)致讀出或?qū)懭霐?shù)據(jù)中的每一位都需要一個大的多路選擇器來完成讀寫數(shù)據(jù)和存儲體的數(shù)據(jù)交互,大的多路選擇會產(chǎn)生大量的交叉長線,增加了一級緩存存儲體時序設(shè)計的困難;而在本實施例路交叉的一級緩存組相聯(lián)結(jié)構(gòu)下,所有路的同一位數(shù)據(jù)物理分布上集中,讀出或?qū)懭霐?shù)據(jù)中的每一位僅需要一個小的多路選擇器(寫多路選擇器41或者讀多路選擇器51)來完成讀寫數(shù)據(jù)和存儲體的數(shù)據(jù)交互,如圖中出示的多個小的多路選擇器IIiuxcici Cmux00表示所有路的第O個字的第O位Xmuxcil Cmux01表示所有路的
第O個字的第I位)、......、muxmn (!!!! ^表示所有路的第m個字的第η位),本實施例通過
寫多路選擇器41或者讀多路選擇器51的小多路選擇器實現(xiàn)了讀寫數(shù)據(jù)的一位與存儲體的一位數(shù)據(jù)的交互,消除了交叉長線的問題,將交叉長線變?yōu)榫植慷叹€,從而有利于時序緊張的一級緩存讀寫電路時序的優(yōu)化和性能的提高,能夠為微處理器的性能優(yōu)化提供幫助。本實施例已成功應(yīng)用于國防科技大學(xué)計算機學(xué)院設(shè)計并實現(xiàn)的高性能微處理器芯片F(xiàn)T1000及后續(xù)飛騰系列芯片中。FT1000及后續(xù)飛騰系列芯片都包含了大容量的一級緩存存儲體(LI Cache),為了保證芯片的高可靠性,片內(nèi)一級緩存存儲體(LI Cache)采用了本實施例具有軟錯誤容錯功能的一級緩存存儲裝置,經(jīng)FT1000及后續(xù)飛騰系列芯片樣片測試,該發(fā)明能在FT1000及后續(xù)飛騰系列芯片處理器中正確有效地執(zhí)行,具有設(shè)計代價小、容軟錯誤能力強的優(yōu)點,能有效檢測一級緩存存儲體的單事件翻轉(zhuǎn)和多位翻轉(zhuǎn)軟錯誤。以上所述僅是本發(fā)明的優(yōu)選實施方式,本發(fā)明的保護范圍并不僅局限于上述實施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護范圍。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1.一種具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法,其特征在于其實施步驟如下 1)在收到數(shù)據(jù)填充命令時,接收待填充數(shù)據(jù)并采用奇偶檢驗信息冗余編碼生成奇偶校驗碼并存儲奇偶校驗碼,同時將所述待填充數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列中; 2)在收到數(shù)據(jù)命中命令時,從數(shù)據(jù)存儲陣列中讀取分散存儲的各個數(shù)據(jù)位,將各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),將命中路數(shù)據(jù)采用奇偶檢驗信息冗余編碼生成奇偶校驗碼,將生成奇偶校驗碼與存儲的奇偶校驗碼進行比較,如果兩者一致則直接將命中路數(shù)據(jù)輸出,否則檢測到數(shù)據(jù)錯誤,報告出錯信息。
2.根據(jù)權(quán)利要求I所述的具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法,其特征在于所述步驟I)中將數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列中時,且不同路數(shù)據(jù)的相同數(shù)據(jù)位存儲于數(shù)據(jù)存儲陣列中的同一個存儲區(qū)域。
3.一種具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲裝置,包括數(shù)據(jù)存儲陣列(I)、校驗陣列(2)、解碼器(3)、數(shù)據(jù)寫通路(4)和數(shù)據(jù)讀通路(5),其特征在于所述數(shù)據(jù)存儲陣列(I)包含多個數(shù)據(jù)項,任意一個所述數(shù)據(jù)項包括依次排列的多個字存儲單元(11),所述字存儲單元(11)包含依次排列的多個位存儲模塊(12),所述位存儲模塊(12)包含所有路的相同數(shù)據(jù)位,所有位存儲模塊(12)中的相同數(shù)據(jù)位存儲的數(shù)據(jù)構(gòu)成完整的一路數(shù)據(jù);所述校驗陣列(2)包含與數(shù)據(jù)存儲陣列(I)中每路數(shù)據(jù)項一一對應(yīng)的奇偶校驗項,所述奇偶校驗項中各個奇偶校驗存儲單元(21)分別存儲對應(yīng)數(shù)據(jù)項中一路數(shù)據(jù)的奇偶校驗碼;在收到數(shù)據(jù)填充命令時,所述校驗陣列(2)接收待填充數(shù)據(jù)并采用奇偶檢驗信息冗余編碼生成奇偶校驗碼并存儲奇偶校驗碼,同時數(shù)據(jù)寫通路(4)將待填充數(shù)據(jù)分別以數(shù)據(jù)位為單位分散存儲于數(shù)據(jù)存儲陣列(I)的各個位存儲模塊(12)中;在收到數(shù)據(jù)命中命令時,所述解碼器(3)根據(jù)數(shù)據(jù)命中命令獲取數(shù)據(jù)存儲陣列(I)中各個位存儲模塊(12)中的數(shù)據(jù)位,所述數(shù)據(jù)讀通路(5)從所述各個位存儲模塊(12)中讀取分散存儲的各個數(shù)據(jù)位并將各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),將命中路數(shù)據(jù)采用奇偶檢驗信息冗余編碼生成奇偶校驗碼,將生成奇偶校驗碼與存儲的奇偶校驗碼進行比較,如果兩者一致則直接將命中路數(shù)據(jù)輸出,否則檢測到數(shù)據(jù)錯誤,報告出錯信息。
4.根據(jù)權(quán)利要求3所述具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲裝置,其特征在于所述數(shù)據(jù)寫通路(4)包括與所述位存儲模塊(12)—一對應(yīng)的多個寫多路選擇器(41),所述寫多路選擇器(41)與對應(yīng)的位存儲模塊(12)相連;所述數(shù)據(jù)讀通路(5)包括與所述位存儲模塊(12)—一對應(yīng)的多個讀多路選擇器(51),所述讀多路選擇器(51)與對應(yīng)的位存儲模塊(12)相連。
全文摘要
本發(fā)明公開了一種具有軟錯誤容錯功能的一級緩存數(shù)據(jù)存儲方法及裝置,方法實施步驟如下1)在收到數(shù)據(jù)填充命令時,接收數(shù)據(jù)生成奇偶校驗碼并以數(shù)據(jù)位為單位分散存儲;2)在收到數(shù)據(jù)命中命令時,讀取各個數(shù)據(jù)位組合得到命中路數(shù)據(jù),生成奇偶校驗碼并與存儲的奇偶校驗碼進行比較,如果兩者一致則直接將命中路數(shù)據(jù)輸出,否則報告出錯信息;裝置包括數(shù)據(jù)存儲陣列、校驗陣列、解碼器、數(shù)據(jù)寫通路和數(shù)據(jù)讀通路,數(shù)據(jù)存儲陣列包含多個數(shù)據(jù)項,數(shù)據(jù)項包括多個字存儲單元,字存儲單元包含多個位存儲模塊,位存儲模塊包含多個數(shù)據(jù)位,多個位存儲模塊中的相同數(shù)據(jù)位構(gòu)成完整的一路數(shù)據(jù)。本發(fā)明具有容軟錯誤能力強、硬件開銷小、時序性能好的優(yōu)點。
文檔編號G06F11/10GK102929743SQ20121049389
公開日2013年2月13日 申請日期2012年11月28日 優(yōu)先權(quán)日2012年11月28日
發(fā)明者高軍, 王永文, 竇強, 張承義, 孫彩霞, 倪曉強, 隋兵才, 陳微, 趙天磊, 王蕾, 黃立波 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
盐津县| 克什克腾旗| 莱州市| 壶关县| 长海县| 九龙城区| 周宁县| 宜君县| 平陆县| 宾川县| 浦城县| 昌邑市| 蓬安县| 保山市| 雅江县| 甘德县| 叶城县| 平南县| 芮城县| 神农架林区| 连州市| 乌审旗| 甘孜县| 四川省| 襄汾县| 北流市| 南川市| 荣昌县| 青阳县| 玉山县| 德庆县| 建昌县| 溆浦县| 方山县| 大埔县| 仁布县| 太谷县| 汉沽区| 孙吴县| 深州市| 文水县|