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

基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)系統(tǒng)及方法

文檔序號(hào):6483964閱讀:231來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種抗單粒子效應(yīng)的系統(tǒng)及其實(shí)現(xiàn)方法。
背景技術(shù)
近年來(lái),隨著工藝發(fā)展,器件尺寸越來(lái)越小、工作電壓越來(lái)越低,單粒子
效應(yīng)變得越來(lái)越嚴(yán)來(lái)越嚴(yán)重。尤其是隨著時(shí)鐘頻率的增加,SET所導(dǎo)致的錯(cuò)誤 率成線性增加,甚至超過(guò)SEU,從而限制了處理器系統(tǒng)時(shí)鐘頻率的增加。研究 表明,SET的脈寬數(shù)量級(jí)為350ps 1.3ns,所以當(dāng)脈寬超過(guò)1ns,時(shí)鐘頻率就 被限制在1GHz以下,否則將可能發(fā)生SET效應(yīng)。另一方面,超深亞微米工藝 下,存儲(chǔ)電路發(fā)生多位翻轉(zhuǎn)的概率增加,處理器進(jìn)行抗單粒子效應(yīng)的設(shè)計(jì)顯得 十分重要。
針對(duì)處理器來(lái)進(jìn)行抗輻射研究,處理器內(nèi)部電路從類(lèi)型上可以分為存儲(chǔ)電 路(時(shí)序電路)和組合電路,其中存儲(chǔ)電路主要是寄存器堆和cache,以及處 理器內(nèi)部中間寄存器,組合電路最主要集中在流水線,因?yàn)檫\(yùn)算電路和關(guān)鍵數(shù) 據(jù)通道主要集中在流水線部件上。因此,針對(duì)處理器的抗輻射研究,需要將重 點(diǎn)放在處理器的存儲(chǔ)電路和流水線電路上。
目前,從系統(tǒng)邏輯級(jí)進(jìn)行抗輻射研究,針對(duì)處理器中存儲(chǔ)電路抗單粒子翻 轉(zhuǎn)主要采用如下方法對(duì)Cache糾檢錯(cuò), 一般使用奇偶校驗(yàn)碼檢測(cè)出錯(cuò)誤,然 后通過(guò)強(qiáng)制cache訪問(wèn)缺失而讀入外部存儲(chǔ)器對(duì)應(yīng)的單元內(nèi)容重新填充來(lái)糾正 單粒子翻轉(zhuǎn)錯(cuò)誤,由于奇偶校驗(yàn)碼筒單,不會(huì)對(duì)cache訪問(wèn)時(shí)序有大的影響, 因此,通過(guò)該方法就能比較好的解決cache單粒子翻轉(zhuǎn)錯(cuò)誤。對(duì)于處理器內(nèi)部 中間寄存器抗輻射設(shè)計(jì), 一般使用三模冗余表決方式,加以解決。對(duì)寄存器堆 抗輻射設(shè)計(jì),使用糾1檢2的漢明碼。對(duì)處理器中組合電路的抗單粒子瞬變, 主要釆用算術(shù)碼方法(如剩余碼和AN碼)和冗余方法。該方法主要適合時(shí)序要求不高算法比較簡(jiǎn)單的算法,不同類(lèi)型算法(如乘法、加法)需要不同的算 術(shù)碼。冗余方法主要是對(duì)整個(gè)組合電路采用雙?;蛉H哂啵ㄟ^(guò)對(duì)結(jié)果進(jìn)行 比較表決來(lái)檢測(cè)是否發(fā)生了單粒子瞬變錯(cuò)誤。
隨著處理器及集成電路工作頻率和集成度大幅提高,以及實(shí)際應(yīng)用中對(duì)功 耗和面積越來(lái)越敏感,上述設(shè)計(jì)技術(shù)中所使用的糾檢錯(cuò)編碼方法,如果直接附 加在對(duì)頻率敏感的寄存器堆訪問(wèn)機(jī)制中,會(huì)成為整個(gè)電路頻率的制約因素。而 直接用兩模或多模電路冗余方法則導(dǎo)致集成電路功耗和面積顯著增加。因此, 為了克服傳統(tǒng)方法和技術(shù)的缺點(diǎn),近年來(lái)利用同步多線程技術(shù)SMT
(Simultaneous Multithreading)構(gòu)成雙冗余線程來(lái)抗單粒子效應(yīng)成為一種新 方法的研究熱點(diǎn)。該方法主要利用多線程具有的性能潛在優(yōu)勢(shì)和冗余粒度相對(duì) 較小(只與內(nèi)部流水線執(zhí)行相關(guān)的資源才需要冗余)的特點(diǎn),來(lái)減小抗單粒子 效應(yīng)對(duì)性能和面積的負(fù)面影響。冗余線程中,兩個(gè)線程各自擁有自己的執(zhí)行流 水線, 一個(gè)稱(chēng)之為前導(dǎo)線程(Leading Thread), —個(gè)稱(chēng)之為跟蹤線程(Trailing Thread), 二者冗余地執(zhí)行同一個(gè)程序代碼,執(zhí)行完成后比較結(jié)果。 但該方法有以下缺點(diǎn)
一是只能糾檢組合電路的單粒子瞬變SET錯(cuò)誤,而無(wú)法糾檢處理器中單粒 子翁3轉(zhuǎn)SEU錯(cuò)誤;二是這種方法的兩個(gè)線程需要整個(gè)流水線冗余,需要在存{諸 器級(jí)和寫(xiě)回級(jí)設(shè)置前導(dǎo)線程執(zhí)行結(jié)果保存緩沖區(qū),以便跟蹤線程的結(jié)果與前導(dǎo) 線程結(jié)果比較;三是為了保存兩個(gè)線程糾錯(cuò)時(shí)回轉(zhuǎn)到所執(zhí)行程序段的起始位置, 需要設(shè)置一個(gè)較大的保存回轉(zhuǎn)現(xiàn)場(chǎng)緩沖區(qū)。四是前導(dǎo)線程和跟蹤線程之間產(chǎn)生 空閑時(shí)間,而這個(gè)空閑時(shí)間可能會(huì)影響到整體的性能,如專(zhuān)利號(hào)為 CN200480039553,名為使用推測(cè)性存儲(chǔ)器支持來(lái)管理用于冗余線程系統(tǒng)中故 障檢測(cè)的外部存儲(chǔ)器更新,所描述的同步和冗余線程體系結(jié)構(gòu),這種方法在i殳 計(jì)時(shí)需要考慮空閑時(shí)間的上限。
因此,這種全流水線冗余方式就需要多個(gè)緩沖區(qū),這樣就大大增加了系鄉(xiāng)充 的硬件開(kāi)銷(xiāo),更重要的是,緩沖區(qū)這種存儲(chǔ)電路對(duì)單粒子翻轉(zhuǎn)非常敏感,會(huì)使得在解決了組合電路單粒子瞬變SET問(wèn)題的同時(shí),帶來(lái)了單粒子翻轉(zhuǎn)的隱患。

發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問(wèn)題是克服現(xiàn)有技術(shù)的不足,提供一種基于同步冗余 線程與編碼技術(shù)的抗單粒子效應(yīng)系統(tǒng)及方法,該系統(tǒng)及方法通過(guò)將同步冗余線 程與編碼技術(shù)結(jié)合,采用部分冗余,以相對(duì)較小的代價(jià),檢測(cè)和糾正處理器寄 存器堆單粒子翻轉(zhuǎn)SEU、組合電路單粒子瞬變SET,提高處理器的可靠性。
本發(fā)明系統(tǒng)的技術(shù)解決方案是基于同步冗余線程與編碼技術(shù)的抗單粒子 效應(yīng)系統(tǒng),包括取指模塊、線程選通模塊、譯碼模塊I、執(zhí)行模塊I、譯碼模 塊II、執(zhí)行模塊II、檢錯(cuò)電路I、檢錯(cuò)電路U、寄存器堆I、寄存器堆II,比 較模塊、存儲(chǔ)模塊和系統(tǒng)控制器;
取指模塊,根據(jù)系統(tǒng)控制器的從命中的CACHE或是從外部存儲(chǔ)器中讀取 指令,并將讀取的指令緩存;
線程選通模塊,讀取取指模塊緩存的指令,將該指令寫(xiě)入冗余線程指令緩 沖區(qū)后發(fā)射;同時(shí)將譯碼模塊I 、譯碼模塊II選通;
譯碼模塊I、譯碼模塊TI分別將線程選通模塊發(fā)射的指令進(jìn)行譯碼,并將 譯碼后的結(jié)果分別發(fā)送給執(zhí)行模塊I 、執(zhí)行模塊II;
執(zhí)行模塊I 、執(zhí)行模塊II ,根據(jù)接收的譯碼后的結(jié)果,分別從寄存器堆I 、 寄存器堆II中讀取數(shù)據(jù),并將讀取的數(shù)據(jù)發(fā)送給檢錯(cuò)電路I 、檢錯(cuò)電路II;根 據(jù)系統(tǒng)控制器的控制,執(zhí)行相應(yīng)操作;
檢錯(cuò)電路i、檢錯(cuò)電路n,檢測(cè)讀取的數(shù)據(jù)是否發(fā)生單粒子翻轉(zhuǎn),并將檢
錯(cuò)結(jié)果發(fā)送給系統(tǒng)控制器;
系統(tǒng)控制器,根據(jù)檢錯(cuò)結(jié)果,控制執(zhí)行模塊i、執(zhí)行模塊n利用所述的讀
取數(shù)據(jù)執(zhí)行當(dāng)前指令,或者控制寄存器堆I、寄存器堆II用正確的數(shù)據(jù)4^4炎發(fā)
生單粒子翻轉(zhuǎn)的數(shù)據(jù),并將替換后的數(shù)據(jù)分別發(fā)送給執(zhí)行模塊I 、執(zhí)行模塊n;
或者控制執(zhí)行模塊i、執(zhí)行模塊n停止工作,同時(shí)控制取指模塊重新讀取該指
令;根據(jù)比較模塊通知的當(dāng)前狀態(tài),控制取指模塊重新讀取當(dāng)前指令;比較模塊,將執(zhí)行模塊i、執(zhí)行模塊n執(zhí)行指令后的結(jié)果進(jìn)行比較,若結(jié)
果一致,則將該結(jié)果發(fā)送給存儲(chǔ)^f莫塊存儲(chǔ);否則,將當(dāng)前狀態(tài)通知系統(tǒng)控制器。
還包括寫(xiě)回模塊,寫(xiě)回模塊將存儲(chǔ)模塊存儲(chǔ)的結(jié)果寫(xiě)回寄存器堆I、寄存 器堆II 。
本發(fā)明方法的方案是基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)方法, 該方法由兩個(gè)線程分五級(jí)流水同步執(zhí)行,兩個(gè)線程的共享資源為取指級(jí)、線程 選通級(jí)、存儲(chǔ)級(jí),冗余資源為譯碼級(jí)和執(zhí)行級(jí);方法步驟如下
(1 )取指級(jí)從命中的CACHE或是從外部存儲(chǔ)器中讀取指令,并將讀取的 指令緩存;
(2) 線程選通級(jí)讀取步驟(1)中緩存的指令,將該指令緩存后發(fā)射;同 時(shí)將所述的冗余資源選通;
(3) 冗余資源中的譯碼級(jí)接收線程選通級(jí)發(fā)送的指令,并將該指令進(jìn)行i奪 碼,譯碼后發(fā)送給纟丸行級(jí);
(4) 冗余執(zhí)行級(jí)根據(jù)所述的指令,分別從各自所在線程的寄存器堆中讀取 數(shù)據(jù),讀取過(guò)程中,判斷讀取的數(shù)據(jù)是否發(fā)生單粒子翻轉(zhuǎn),若冗余執(zhí)行級(jí)從寄 存器堆中讀取的數(shù)據(jù)都未發(fā)生單粒子翻轉(zhuǎn),則冗余執(zhí)行級(jí)分別利用讀取的數(shù)據(jù)
執(zhí)行該指令,轉(zhuǎn)步驟(5);若冗余執(zhí)行級(jí)從寄存器堆中讀取的數(shù)據(jù)都發(fā)生單粒 子翻轉(zhuǎn),停止兩個(gè)線程流水線,從步驟(1 )開(kāi)始重新執(zhí)行;否則,先停止兩個(gè) 線程流水線,冗余執(zhí)行級(jí)將未發(fā)生單粒子翻轉(zhuǎn)的數(shù)據(jù)替換發(fā)生單粒子翻轉(zhuǎn)的數(shù) 據(jù),再啟動(dòng)所述流水線,并分別利用讀取的數(shù)據(jù)執(zhí)行該指令,轉(zhuǎn)步驟(5);
(5) 存儲(chǔ)級(jí)將冗余執(zhí)行級(jí)執(zhí)行結(jié)果進(jìn)行比較,若結(jié)果一致,則存儲(chǔ)該結(jié)果; 否則,表明發(fā)生單粒子瞬態(tài),停止流水線執(zhí)行,從步驟(1 )開(kāi)始重新執(zhí)行。
所述的兩個(gè)線程的共享資源還包括寫(xiě)回級(jí),寫(xiě)回級(jí)將步驟(5)中存儲(chǔ)的執(zhí) 行結(jié)果寫(xiě)回到所述的寄存器堆中。
本發(fā)明與現(xiàn)有技術(shù)相比有益效果為
1 )本發(fā)明方法設(shè)計(jì)了同步多線程(SMT)技術(shù)和錯(cuò)誤檢測(cè)與糾正技術(shù)(ErrorDetection And Correction ),共同實(shí)現(xiàn)軟錯(cuò)誤的糾檢錯(cuò)的機(jī)制的體系結(jié)構(gòu)。將寄 存器堆電路糾檢錯(cuò)和組合電路流水線的糾片企錯(cuò)統(tǒng)一在線程中實(shí)現(xiàn)和控制,使得 糾檢錯(cuò)實(shí)現(xiàn)機(jī)制與處理器各部件的執(zhí)行和控制相對(duì)獨(dú)立,避免了傳統(tǒng)方法中處 理器自身流水線與糾檢錯(cuò)邏輯的并行控制、錯(cuò)誤傳播控制、時(shí)序控制的復(fù)雜處 理,使得整個(gè)處理器抗單粒子翻轉(zhuǎn)錯(cuò)誤結(jié)構(gòu)模塊化,控制簡(jiǎn)單。
2) 本發(fā)明方法設(shè)計(jì)雙冗余線程只有部分功能電路冗余,而大部分功能電路 可以共享,因而比冗余雙核處理器抗輻射設(shè)計(jì)方法和完全冗余的雙冗余線程方 法的硬件開(kāi)銷(xiāo)小,同時(shí)利用多線程固有特性,設(shè)計(jì)合理的寄存器堆和CACHE 糾檢錯(cuò)編碼機(jī)制,大大減小了存儲(chǔ)電路糾檢錯(cuò)耗費(fèi)的硬件開(kāi)銷(xiāo)。
3) 本發(fā)明方法由寄存器堆糾檢錯(cuò)電路采用快速檢錯(cuò)編碼方法檢錯(cuò),在兩個(gè) 線程的兩個(gè)寄存器堆之間建立了數(shù)據(jù)交換通道用來(lái)寄存器數(shù)據(jù)替換實(shí)現(xiàn)糾^", 通過(guò)重啟流水線方法來(lái)糾正流水線發(fā)生的單粒子瞬變錯(cuò)誤,糾錯(cuò)實(shí)時(shí)性強(qiáng),有 效地避免性能損失。
4 )本發(fā)明方法,在冗余雙線程的兩個(gè)寄存器對(duì)應(yīng)存儲(chǔ)字只有一個(gè)存儲(chǔ)字發(fā) 生單粒子翻轉(zhuǎn)的狀況下,無(wú)論發(fā)生錯(cuò)誤的存儲(chǔ)字有多少位發(fā)生翻轉(zhuǎn),都可通過(guò) 替換正確存儲(chǔ)器堆的對(duì)應(yīng)存儲(chǔ)器數(shù)據(jù)來(lái)糾正錯(cuò)誤,其糾正率達(dá)到100%。對(duì)于 雙冗余線程流水線,如果其中1條流水線發(fā)生單粒子瞬變錯(cuò)誤,則通過(guò)重啟流 水線方法而完全糾正。因此,該方法糾檢錯(cuò)輻射引起的翻轉(zhuǎn)和瞬變錯(cuò)誤,具有 很高覆蓋率。
5 )本 方法是在體系結(jié)構(gòu)邏輯設(shè)計(jì)層上實(shí)現(xiàn)的抗輻射加固方法,不依賴(lài)具體 工藝線和單元庫(kù),與在版圖級(jí)、器件級(jí)和電路級(jí)采用的抗輻射方法相比,沒(méi)計(jì) 成本和生產(chǎn)成本大大降低,具有很強(qiáng)的實(shí)用價(jià)值。


圖1為本發(fā)明系統(tǒng)示意圖2為本發(fā)明系統(tǒng)中系統(tǒng)控制器工作流程圖3為本發(fā)明檢錯(cuò)電路示意圖;圖4為本發(fā)明方法流程圖。
具體實(shí)施例方式
如圖1所示,本發(fā)明系統(tǒng)包括取指模塊、線程選通模塊、譯碼模塊I 、執(zhí) 行模塊I 、譯碼模塊II 、執(zhí)行模塊II 、檢錯(cuò)電路I 、檢錯(cuò)電路II 、寄存器堆I
(Regfilel )、寄存器堆II (RegfileII),比較模塊、存儲(chǔ)模塊和系統(tǒng)控制器;
取指模塊,根據(jù)系統(tǒng)控制器的從命中的CACHE或是從外部存儲(chǔ)器中讀取 指令A(yù),并將讀取的指令A(yù)緩存;所述從外部存儲(chǔ)器中讀取的指令需經(jīng)過(guò)EDAC 糾錯(cuò)檢錯(cuò)處理;從命中的CACHE中讀取的指令經(jīng)過(guò)奇偶校驗(yàn)處理;這兩種處 理方法是本領(lǐng)域技術(shù)人員公知的技術(shù),這里不再詳細(xì)說(shuō)明,關(guān)于EDAC糾4普斗企 錯(cuò)處理可以參見(jiàn)中國(guó)專(zhuān)利200510041617.9,名稱(chēng)"空間計(jì)算機(jī)抗單粒子翻轉(zhuǎn) 的存儲(chǔ)器糾檢錯(cuò)與自動(dòng)回寫(xiě)方法",奇偶校驗(yàn)處理可以參見(jiàn)西北工業(yè)大學(xué)博士i侖 文,辛明瑞,"面向空間應(yīng)用的容錯(cuò)RISC處理器體系結(jié)構(gòu)研究"中的相關(guān)介紹。 線程選通模塊,讀取取指模塊緩存的指令A(yù),將該指令A(yù)寫(xiě)入冗余線程指令緩 沖區(qū)后發(fā)射;同時(shí)將譯碼模塊I和譯碼模塊II選通;譯碼模塊I將線程選通模 塊發(fā)射的指令A(yù)進(jìn)行譯碼,并將譯碼后的結(jié)果發(fā)送給執(zhí)行模塊I ;譯碼沖莫塊II 將線程選通模塊發(fā)射的指令A(yù)進(jìn)行譯碼,并將譯碼后的結(jié)果發(fā)送給執(zhí)行模塊II; 執(zhí)行模塊I,根據(jù)接收的譯碼后的結(jié)果,從寄存器堆I中讀取數(shù)據(jù),并將讀取 的數(shù)據(jù)發(fā)送給檢錯(cuò)電路I;執(zhí)行模塊n,根據(jù)接收的譯碼后的結(jié)果,從寄存器 堆II中讀取數(shù)據(jù),并將讀取的數(shù)據(jù)發(fā)送給檢錯(cuò)電路II;執(zhí)行模塊l和執(zhí)行模塊 II根據(jù)系統(tǒng)控制器的控制,執(zhí)行相應(yīng)操作;檢錯(cuò)電路I和檢錯(cuò)電路II分別4企測(cè) 讀取的數(shù)據(jù)是否發(fā)生單粒子翻轉(zhuǎn),并將檢錯(cuò)結(jié)果發(fā)送給系統(tǒng)控制器;系統(tǒng)控制 器,根據(jù)檢錯(cuò)結(jié)果,控制執(zhí)行模塊I和執(zhí)行模塊il利用所述的讀取數(shù)據(jù)執(zhí)行當(dāng) 前指令A(yù),或者控制寄存器堆I和寄存器堆II用正確的數(shù)據(jù)替換發(fā)生單粒子番3 轉(zhuǎn)的數(shù)據(jù),并將替換后的數(shù)據(jù)分別發(fā)送給執(zhí)行模塊I和執(zhí)行模塊H;或者^(guò)空制 執(zhí)行模塊I和執(zhí)行模塊丄I停止工作,同時(shí)控制取指模塊重新讀取該指令A(yù);才艮 據(jù)比較模塊通知的當(dāng)前狀態(tài),控制取指模塊重新讀取當(dāng)前指令A(yù);比較模塊,
10將執(zhí)行模塊i和執(zhí)行模塊n執(zhí)行指令后的結(jié)果進(jìn)行比較,若結(jié)果一致,則將該
結(jié)果發(fā)送給存儲(chǔ)模塊存儲(chǔ);否則,將當(dāng)前狀態(tài)通知系統(tǒng)控制器。
為了后續(xù)利用本系統(tǒng)中的結(jié)果,系統(tǒng)中還可以設(shè)置寫(xiě)回模塊,寫(xiě)回模塊將 存儲(chǔ)模塊存儲(chǔ)的結(jié)果寫(xiě)回寄存器堆i和寄存器堆n 。
如圖2所示,本系統(tǒng)中系統(tǒng)控制器工作過(guò)程如下
第一步,判斷是否收到檢錯(cuò)電路l、檢錯(cuò)電路I1發(fā)送的檢錯(cuò)結(jié)果,若收到 該檢錯(cuò)結(jié)果,則轉(zhuǎn)第二步,否則,判斷受否收到比較模塊發(fā)送的當(dāng)前狀態(tài)信息, 若收到當(dāng)前狀態(tài)信息,則控制取指模塊重新讀取該指令A(yù);若未收到當(dāng)前狀態(tài) 信息,則繼續(xù)等待;
第二步,若檢錯(cuò)結(jié)果表明執(zhí)行模塊I和執(zhí)行模塊II從寄存器堆I 、寄存器 堆II中讀取的數(shù)據(jù)都未發(fā)生單粒子翻轉(zhuǎn),則控制執(zhí)行模塊I和執(zhí)行模塊II利用 讀取的數(shù)據(jù)執(zhí)行當(dāng)前指令A(yù);
若檢錯(cuò)結(jié)果表明執(zhí)行模塊I和執(zhí)行模塊II從寄存器堆I 、寄存器堆II中讀 取的數(shù)據(jù)都發(fā)生單粒子翻轉(zhuǎn),則控制執(zhí)行模塊I和執(zhí)行模塊II停止工作,同時(shí) 控制取指模塊重新讀取當(dāng)前指令A(yù);
若檢錯(cuò)結(jié)果表明只有一個(gè)執(zhí)行模塊從其寄存器堆中讀取的數(shù)據(jù)發(fā)生單粒子 翻轉(zhuǎn),現(xiàn)設(shè)Regfile1中的數(shù)據(jù)發(fā)生錯(cuò)誤,當(dāng)前的要執(zhí)行的指令是指令A(yù),系統(tǒng) 控制器將控制停止執(zhí)行模塊I和執(zhí)行模塊II停止工作,并選通Regfile2和 Regfile1的數(shù)據(jù)交換通道L,將Regfile2中對(duì)應(yīng)的正確數(shù)據(jù)經(jīng)過(guò)兩寄存器堆間 的數(shù)據(jù)通道替換Regfile1中對(duì)應(yīng)的錯(cuò)誤數(shù)據(jù),這樣,就實(shí)現(xiàn)了將Regfile1中的 單粒子翻轉(zhuǎn)錯(cuò)誤糾正,再啟動(dòng)執(zhí)行模塊I和執(zhí)行模塊II ,由執(zhí)行模塊I和執(zhí)行 模塊II利用替換的數(shù)據(jù)執(zhí)行當(dāng)前指令A(yù)。
上述檢錯(cuò)電路I、檢錯(cuò)電路II的檢錯(cuò)過(guò)程首先將寫(xiě)入的數(shù)據(jù)進(jìn)行編碼, 并生成相應(yīng)的校驗(yàn)位,將該數(shù)據(jù)及校驗(yàn)位存儲(chǔ)到相應(yīng)的寄存器堆中;在凝:據(jù)讀 出時(shí),檢錯(cuò)電路T、檢錯(cuò)電路II對(duì)讀出的數(shù)據(jù)進(jìn)行解碼,即將生成的校驗(yàn)位與 編碼時(shí)生成的校驗(yàn)位進(jìn)行比較,當(dāng)二者一致時(shí),證明數(shù)據(jù)正確,否則,說(shuō)明數(shù)據(jù)發(fā)生單粒子翻轉(zhuǎn)4晉誤。上述編碼、解碼的實(shí)現(xiàn)方式為異或樹(shù),具體參見(jiàn)圖3。
如圖4所示,基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)方法,該方法
由兩個(gè)線程分五級(jí)流水同步執(zhí)行,兩個(gè)線程的共享資源為取指級(jí)、線程選通級(jí)、
存儲(chǔ)級(jí),冗余資源為譯碼級(jí)和執(zhí)行級(jí);方法步驟如下
(1 )取指級(jí)從命中的CACHE或是從外部存儲(chǔ)器中讀取指令,并將讀取的 指令緩存;從外部存儲(chǔ)器中讀取的指令需經(jīng)過(guò)EDAC糾錯(cuò)檢錯(cuò)處理;從命中的 CACHE中讀取的指令經(jīng)過(guò)奇偶校驗(yàn)處理。
(2) 線程選通級(jí)讀取步驟(1)中緩存的指令,將該指令緩存后發(fā)射;同 時(shí)將所述的冗余資源選通;
(3) 冗余資源中的譯碼級(jí)接收線程選通級(jí)發(fā)送的指令,并將該指令進(jìn)行i爭(zhēng) 碼,譯碼后發(fā)送給執(zhí)行級(jí);
(4) 冗余執(zhí)行級(jí)根據(jù)所述的指令,分別從各自所在線程的寄存器堆中讀取 數(shù)據(jù),讀取過(guò)程中,判斷讀取的數(shù)據(jù)是否發(fā)生單粒子翻轉(zhuǎn),若冗余執(zhí)行級(jí)從寄 存器堆中讀取的數(shù)據(jù)都未發(fā)生單粒子翻轉(zhuǎn),則冗余執(zhí)行級(jí)分別利用讀取的數(shù)據(jù)
執(zhí)行該指令,轉(zhuǎn)步驟(5);若冗余執(zhí)行級(jí)從寄存器堆中讀取的數(shù)據(jù)都發(fā)生單粒 子翻轉(zhuǎn),停止兩個(gè)線程流水線,從步驟(1 )開(kāi)始重新執(zhí)行;否則,先停止兩個(gè) 線程流水線,冗余執(zhí)行級(jí)將未發(fā)生單粒子翻轉(zhuǎn)的數(shù)據(jù)替換發(fā)生單粒子翻轉(zhuǎn)的凄史 據(jù),再啟動(dòng)所述流水線,并分別利用讀取的數(shù)據(jù)執(zhí)行該指令,轉(zhuǎn)步驟(5);
(5) 存儲(chǔ)級(jí)將冗余執(zhí)行級(jí)執(zhí)行結(jié)果進(jìn)行比較,若結(jié)果一致,則存儲(chǔ)該結(jié)果; 否則,表明發(fā)生單粒子瞬態(tài),停止流水線執(zhí)行,從步驟(1)開(kāi)始重新執(zhí)行。
所述的兩個(gè)線程的共享資源還包括寫(xiě)回級(jí),寫(xiě)回級(jí)將步驟(5)中存儲(chǔ)的執(zhí) 行結(jié)果寫(xiě)回到所述的寄存器堆中。
本發(fā)明未詳細(xì)說(shuō)明部分屬本領(lǐng)域技術(shù)人員公知常識(shí)。
權(quán)利要求
1、基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)系統(tǒng),其特征在于包括取指模塊、線程選通模塊、譯碼模塊I、執(zhí)行模塊I、譯碼模塊II、執(zhí)行模塊II、檢錯(cuò)電路I、檢錯(cuò)電路II、寄存器堆I、寄存器堆II,比較模塊、存儲(chǔ)模塊和系統(tǒng)控制器;取指模塊,根據(jù)系統(tǒng)控制器的從命中的CACHE或是從外部存儲(chǔ)器中讀取指令,并將讀取的指令緩存;線程選通模塊,讀取取指模塊緩存的指令,將該指令寫(xiě)入冗余線程指令緩沖區(qū)后發(fā)射;同時(shí)將譯碼模塊I、譯碼模塊II選通;譯碼模塊I、譯碼模塊II分別將線程選通模塊發(fā)射的指令進(jìn)行譯碼,并將譯碼后的結(jié)果分別發(fā)送給執(zhí)行模塊I、執(zhí)行模塊II;執(zhí)行模塊I、執(zhí)行模塊II,根據(jù)接收的譯碼后的結(jié)果,分別從寄存器堆I、寄存器堆II中讀取數(shù)據(jù),并將讀取的數(shù)據(jù)發(fā)送給檢錯(cuò)電路I、檢錯(cuò)電路II;根據(jù)系統(tǒng)控制器的控制,執(zhí)行相應(yīng)操作;檢錯(cuò)電路I、檢錯(cuò)電路II,檢測(cè)讀取的數(shù)據(jù)是否發(fā)生單粒子翻轉(zhuǎn),并將檢錯(cuò)結(jié)果發(fā)送給系統(tǒng)控制器;系統(tǒng)控制器,根據(jù)檢錯(cuò)結(jié)果,控制執(zhí)行模塊I、執(zhí)行模塊II利用所述的讀取數(shù)據(jù)執(zhí)行當(dāng)前指令,或者控制寄存器堆I、寄存器堆II用正確的數(shù)據(jù)替換發(fā)生單粒子翻轉(zhuǎn)的數(shù)據(jù),并將替換后的數(shù)據(jù)分別發(fā)送給執(zhí)行模塊I、執(zhí)行模塊II;或者控制執(zhí)行模塊I、執(zhí)行模塊II停止工作,同時(shí)控制取指模塊重新讀取該指令;根據(jù)比較模塊通知的當(dāng)前狀態(tài),控制取指模塊重新讀取當(dāng)前指令;比較模塊,將執(zhí)行模塊I、執(zhí)行模塊II執(zhí)行指令后的結(jié)果進(jìn)行比較,若結(jié)果一致,則將該結(jié)果發(fā)送給存儲(chǔ)模塊存儲(chǔ);否則,將當(dāng)前狀態(tài)通知系統(tǒng)控制器。
2、 根據(jù)權(quán)利要求1所述的基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)系統(tǒng),其特征在于還包括寫(xiě)回模塊,寫(xiě)回模塊將存儲(chǔ)模塊存儲(chǔ)的結(jié)果寫(xiě)回寄存 器堆I 、寄存器堆n。
3、 根據(jù)權(quán)利要求1或2所述的基于同步冗余線程與編碼技術(shù)的抗單粒子效 應(yīng)系統(tǒng),其特征在于所述的系統(tǒng)控制器工作過(guò)程如下第一步,判斷是否收到檢錯(cuò)電路I、檢錯(cuò)電路II發(fā)送的檢錯(cuò)結(jié)果,若收到 該檢錯(cuò)結(jié)果,則轉(zhuǎn)第二步,否則,判斷受否收到比較模塊發(fā)送的當(dāng)前狀態(tài)信息, 若收到當(dāng)前狀態(tài)信息,則控制取指模塊重新讀取該指令;若未收到當(dāng)前狀態(tài)信 息,則繼續(xù)等待;第二步,若檢錯(cuò)結(jié)果表明執(zhí)行模塊I 、執(zhí)行模塊II從寄存器堆I、寄存器 堆II中讀取的數(shù)據(jù)都未發(fā)生單粒子翻轉(zhuǎn),則控制執(zhí)行模塊I、執(zhí)行模塊II利用 讀取的數(shù)據(jù)執(zhí)行當(dāng)前指令;若檢錯(cuò)結(jié)果表明執(zhí)行模塊i、執(zhí)行模塊n從寄存器堆i、寄存器堆n中讀 取的數(shù)據(jù)都發(fā)生單粒子翻轉(zhuǎn),則控制執(zhí)行模塊i、執(zhí)行模塊n停止工作,同時(shí)控制取指模塊重新讀取當(dāng)前指令;若檢錯(cuò)結(jié)果表明只有一個(gè)執(zhí)行模塊從其寄存器堆中讀取的數(shù)據(jù)發(fā)生單粒子翻轉(zhuǎn),則先控制執(zhí)行模塊i、執(zhí)行模塊n停止工作,用另一執(zhí)行模塊讀^c的正 確的數(shù)據(jù)替換該發(fā)生單粒子翻轉(zhuǎn)的數(shù)據(jù),并將替換后的數(shù)據(jù)分別發(fā)送給執(zhí)行模 塊i、執(zhí)行模塊n ,再啟動(dòng)執(zhí)行模塊i、執(zhí)行模塊n,由執(zhí)行模塊i、執(zhí)行模 塊n利用替換的數(shù)據(jù)執(zhí)行當(dāng)前指令。
4、 根據(jù)權(quán)利要求1或2所述的基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)系統(tǒng),其特征在于所述取指模塊從外部存儲(chǔ)器中讀取的指令需經(jīng)過(guò)EDAC 糾錯(cuò)檢錯(cuò)處理;從命中的CACHE中讀取的指令經(jīng)過(guò)奇偶校驗(yàn)處理。法由兩個(gè)線程分五級(jí)流水同步執(zhí)行,兩個(gè)線程的共享資源為取指級(jí)、線程選通 級(jí)、存儲(chǔ)級(jí),冗余資源為譯碼級(jí)和執(zhí)行級(jí);方法步驟如下(1 )取指級(jí)從命中的CACHE或是從外部存儲(chǔ)器中讀取指令,并將讀取的 指令緩存;(2)線程選通級(jí)讀取步驟(1)中緩存的指令,將該指令緩存后發(fā)射;同時(shí)將所述的冗余資源選通;(3) 冗余資源中的譯碼級(jí)接收線程選通級(jí)發(fā)送的指令,并將該指令進(jìn)行譯碼,譯碼后發(fā)送給執(zhí)行級(jí);(4) 冗余執(zhí)行級(jí)根據(jù)所述的指令,分別從各自所在線程的寄存器堆中讀取 數(shù)據(jù),讀取過(guò)程中,判斷讀取的數(shù)據(jù)是否發(fā)生單粒子翻轉(zhuǎn),若冗余執(zhí)行級(jí)從寄 存器堆中讀取的數(shù)據(jù)都未發(fā)生單粒子翻轉(zhuǎn),則冗余執(zhí)行級(jí)分別利用讀取的數(shù)據(jù)執(zhí)行該指令,轉(zhuǎn)步驟(5);若冗余執(zhí)行級(jí)從寄存器堆中讀取的數(shù)據(jù)都發(fā)生單粒 子翻轉(zhuǎn),停止兩個(gè)線程流水線,從步驟(1 )開(kāi)始重新執(zhí)行;否則,先停止兩個(gè) 線程流水線,冗余執(zhí)行級(jí)將未發(fā)生單粒子翻轉(zhuǎn)的數(shù)據(jù)替換發(fā)生單粒子翻轉(zhuǎn)的數(shù) 據(jù),再啟動(dòng)所述流水線,并分別利用讀取的數(shù)據(jù)執(zhí)行該指令,轉(zhuǎn)步驟(5);(5) 存儲(chǔ)級(jí)將冗余執(zhí)行級(jí)執(zhí)行結(jié)果進(jìn)行比較,若結(jié)果一致,則存儲(chǔ)該結(jié)果; 否則,表明發(fā)生單粒子瞬態(tài),停止流水線執(zhí)行,從步驟(1 )開(kāi)始重新扭J亍。
5.<image>image see original document page 4</image>
6、 根據(jù)權(quán)利要求1所述的基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)方 法,其特征在于所述的兩個(gè)線程的共享資源還包括寫(xiě)回級(jí),寫(xiě)回級(jí)將步驟(5) 中存儲(chǔ)的執(zhí)行結(jié)果寫(xiě)回到所述的寄存器堆中。
7、 根據(jù)權(quán)利要求5或6所述的基于同步冗余線程與編碼技術(shù)的抗單4立子效 應(yīng)方法,其特征在于所述步驟(1 )中的取指級(jí)從外部存儲(chǔ)器中讀取的指令需 經(jīng)過(guò)EDAC糾錯(cuò)檢錯(cuò)處理;從命中的CACHE中讀取的指令經(jīng)過(guò)奇偶校驗(yàn)處理。
全文摘要
基于同步冗余線程與編碼技術(shù)的抗單粒子效應(yīng)系統(tǒng)及方法,通過(guò)對(duì)糾檢錯(cuò)編碼的研究和改進(jìn),使得該編碼技術(shù)能夠快速檢測(cè)出寄存器堆中發(fā)生的單粒子翻轉(zhuǎn),同時(shí)將處理器同步雙線程機(jī)制設(shè)計(jì)為冗余雙線程機(jī)制,當(dāng)檢測(cè)到某線程的寄存器堆發(fā)生單粒子翻轉(zhuǎn)時(shí),將通過(guò)替換為另一個(gè)冗余線程的寄存器堆對(duì)應(yīng)存儲(chǔ)單元的數(shù)據(jù),糾正發(fā)生翻轉(zhuǎn)錯(cuò)誤的寄存器數(shù)據(jù);通過(guò)冗余雙線程指令級(jí)同步執(zhí)行結(jié)果比較機(jī)制,判斷出流水線電路是否發(fā)生單粒子瞬變錯(cuò)誤。當(dāng)發(fā)生該錯(cuò)誤時(shí)通過(guò)設(shè)計(jì)的冗余線程流水線重啟機(jī)制,快速消除流水線單粒子瞬變錯(cuò)誤。本方法較好的解決了處理器中寄存器堆多位單粒子翻轉(zhuǎn)和流水線單粒子瞬變兩種常發(fā)生而又難解決的問(wèn)題。
文檔編號(hào)G06F11/00GK101551764SQ200910078908
公開(kāi)日2009年10月7日 申請(qǐng)日期2009年2月27日 優(yōu)先權(quán)日2009年2月27日
發(fā)明者于立新, 彭和平, 麗 郝 申請(qǐng)人:北京時(shí)代民芯科技有限公司;中國(guó)航天時(shí)代電子公司第七七二研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
德庆县| 上饶市| 石台县| 上饶县| 凯里市| 安塞县| 京山县| 临颍县| 九江县| 伊吾县| 深圳市| 清河县| 运城市| 丰城市| 盐山县| 达州市| 荥经县| 正定县| 巫溪县| 洛隆县| 北宁市| 孝感市| 凉城县| 华蓥市| 荆门市| 双辽市| 万盛区| 新邵县| 安多县| 招远市| 宜兰市| 尚志市| 黑水县| 威宁| 河曲县| 水富县| 贵定县| 屯留县| 保德县| 柳河县| 赣州市|