[發明專利]基于檢查點技術的雙冗余流水線及容錯方法有效
| 申請號: | 201710544258.1 | 申請日: | 2017-07-05 |
| 公開(公告)號: | CN107168827B | 公開(公告)日: | 2023-06-27 |
| 發明(設計)人: | 張偉功;王晶;申嬌;尚媛園;朱曉燕 | 申請(專利權)人: | 首都師范大學 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F9/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100048 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 檢查點 技術 冗余 流水線 容錯 方法 | ||
1.一種基于檢查點技術的雙冗余流水線,其特征在于:所述基于檢查點技術的雙冗余流水線包括流水線A、流水線B、指令緩存(301)、備份寄存器組(401)、比較邏輯(501)、寫緩沖(601)、數據緩存(701)和寄存器堆(801);所述流水線A包括取指段(101)、譯碼段(102)、執行段(103)、訪存段(104)、寫回段(105)五個流水段;所述流水線B包括取指段(201)、譯碼段(202)、執行段(203)、訪存段(204)、寫回段(205)五個流水段;數據緩存(701)和寄存器堆(801)由流水線A和流水線B共享,正常情況下,執行指令流時默認寫入流水線A的執行結果;所述指令緩存(301)用于存儲流水線執行的代碼,與流水線A中取指段(101)進行數據交互,流水線A取出指令后分發給兩條流水線執行;所述備份寄存器組(401)以周期粒度對流水線A的級間寄存器進行備份,一旦比較邏輯(501)檢測出單粒子故障,將備份的內容恢復到流水線A和流水線B的級間寄存器中,2個周期后流水線正常執行;所述比較邏輯(501)設置在流水線A與流水線B之間,對比兩條流水線的級間寄存器內容,檢測單粒子故障;所述寫緩沖(601)設置在數據緩存(701)和寄存器堆(801)的入口,用于暫存流水線給出的更新數據;所述數據緩存(701)用于存儲流水線輸出的數據,并向流水線提供運算操作數;所述寄存器堆(801)用于存儲流水線輸出的數據,并向流水線提供運算操作數;所述數據緩存(701)入口設置1個寫緩沖(601),用于緩存流水線A訪存段(104)用于更新數據緩存(701)的信息;所述寄存器堆(801)入口設置2個寫緩沖(601),用于緩存流水線A寫回段(105)和流水線B寫回段(205)用于更新寄存器堆(801)的信息;所述比較邏輯(501)的數量為6個,其中5個分別設置在兩條流水線各個流水段之間,用于對比級間寄存器信息,檢測單粒子故障,1個用于對比寫緩沖(601)中兩條流水線用于更新寄存器堆(801)的信息,檢測流水線單元寫回段發生的SET故障。
2.一種基于檢查點技術的雙冗余流水線的容錯方法,其特征在于:該容錯方法用于基于檢查點技術的雙冗余流水線;所述基于檢查點技術的雙冗余流水線包括流水線A、流水線B、指令緩存(301)、備份寄存器組(401)、比較邏輯(501)、寫緩沖(601)、數據緩存(701)和寄存器堆(801);所述容錯方法采用如下步驟和方法對單粒子導致的SET、SEU、MBU故障進行容錯:
(1)取指段,將流水線A取指段(101)的級間寄存器內容存儲到備份寄存器組(401);流水線A的取指段(101)給出指令地址,從指令緩存(301)中取出指令分發給兩條流水線執行;比較邏輯(501)對比兩條流水線的級間寄存器信息,如果比較結果相同,說明流水線單元的取指段沒有被單粒子轟擊,流水線繼續向下執行,如果比較結果不同,說明一條流水線的取指段的級間寄存器發生SEU/MBU故障,給出流水線取指段的錯誤信號;
(2)譯碼段,將流水線A譯碼段(102)的級間寄存器內容存儲到備份寄存器組(401);流水線A的譯碼段(102)讀地址信息,判斷操作數是否存在寫緩沖(601)中,如果存在,則從寫緩沖(601)中取出操作數并分發給兩條流水線操作,否則,從寄存器堆(801)中取出操作數分發給兩條流水線操作;比較邏輯(501)對比兩條流水線的譯碼段級間寄存器信息,如果比較結果相同,說明流水線單元的譯碼段沒有被單粒子轟擊,流水線繼續向下執行,如果比較結果不同,說明一條流水線的取指段的功能邏輯發生SET故障,或者譯碼段的級間寄存器發生SEU/MBU故障,給出流水線譯碼段的錯誤信號;
(3)執行段,將流水線A執行段(103)的級間寄存器內容存儲到備份寄存器組(401);流水線A的執行段(103)讀地址信息,判斷操作數是否存在寫緩沖(601)中,如果存在,則從寫緩沖(601)中取出操作數并分發給兩條流水線操作,否則,從數據緩存(701)中取出操作數分發給兩條流水線操作;比較邏輯(501)對比兩條流水線的級間寄存器信息,如果比較結果相同,說明流水線單元的執行段沒有被單粒子轟擊,流水線繼續向下執行,如果比較結果不同,說明某條流水線的譯碼段的功能邏輯發生SET故障,或者執行段的級間寄存器發生SEU/MBU故障,給出流水線執行段的錯誤信號;
(4)訪存段,將流水線A訪存段(104)的級間寄存器內容存儲到備份寄存器組(401);流水線A的訪存段(104)給出與數據緩存(701)的寫交互信息,并將其更新到寫緩沖(601);比較邏輯(501)對比兩條流水線的級間寄存器信息,如果比較結果相同,說明流水線單元的訪存段沒有被單粒子轟擊,流水線繼續向下執行,如果比較結果不同,說明某條流水線的執行段的功能邏輯發生SET故障,或者訪存段的級間寄存器發生SEU/MBU故障,給出流水線訪存段的錯誤信號;
(5)寫回段,將流水線A寫回段(105)的級間寄存器內容存儲到備份寄存器組(401);流水線A的寫回段(105)和流水線B的寫回段(205)給出與寄存器堆(801)的寫交互信息,并將其更新到寫緩沖(601);比較邏輯(501)對比兩條流水線的級間寄存器信息,如果比較結果相同,說明流水線單元的寫回段沒有被單粒子轟擊,流水線繼續向下執行,如果比較結果不同,說明某條流水線的訪存段的功能邏輯發生SET故障,或者寫回段的級間寄存器發生SEU/MBU故障,給出流水線寫回段的錯誤信號;
(6)比較邏輯(501)對比步驟(5)中兩條流水線存入寫緩沖(601)中的信息,如果比較結果相同,說明流水線單元沒有被單粒子轟擊,如果比較結果不同,則說明寫回段的功能邏輯發生SET故障,給出錯誤信號;
(7)將步驟(1)、(2)、(3)、(4)、(5)、(6)中錯誤信號進行或操作,生成恢復信號,如果恢復信號有效,作廢當前周期流水線單元所有操作,并將備份寄存器組(401)中的內容恢復到兩條流水線對應的級間寄存器中,同時清空寫緩沖(601)的信息,禁止更新數據緩存(701)和寄存器堆(801),流水線重新執行發生故障的操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于首都師范大學,未經首都師范大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710544258.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種卡座裝殼機構
- 下一篇:一種手機充電器底殼的自動生產裝置





