基於fpga的ddr2內存故障注入工具及注入方法
2023-05-03 13:49:41 2
專利名稱:基於fpga的ddr2內存故障注入工具及注入方法
技術領域:
本發明涉及信息技術領域,具體涉及基於FPGA的DDR2內存故障注入工具及注入 方法。 硬體故障注入已經成為一種被廣泛認可的對容錯機制進行驗證的重要方法,但自 從硬體故障注入方法被提出以來,大多數的研究者都將注意力集中在計算機系統的處理器 上,設計出了許多關於處理器的硬體故障注入工具,而計算機系統中的其他部件卻很少被 關注。一臺容錯性能優異的計算機系統,尤其是高端容錯計算機系統,容錯機制應該是全面 的,不僅有與處理器相關的容錯機制,也應該有與其他部件相關的容錯機制。
內存是計算機系統中僅次於處理器的重要部件,內存一旦出現問題將會影響整個 計算機系統的工作。但目前在進行容錯計算機評測時,缺乏對內存相關的容錯機制進行驗 證。 對內存相關的容錯機制進行驗證的意義在於內存存儲著系統即將執行的程序和 相關的數據,以及各種運算結果,儘管內存本身並不對它們進行任何的處理,但內存是處理 器最主要的數據來源,對內存進行故障注入完全可以達到對處理器進行管腳級故障注入的 效果;計算機系統的外設同樣需要與內存進行數據交換,對內存進行故障注入在某種程度 上也可以模擬外設的故障;此外,計算機廠商大多執行美國電子器件工程聯合會JEDEC
(Joint Electron Device Engineering Council) 的內存標準,這使得內存的通用性比處理器要好得多,內存的硬體故障注入工具 也就比處理器的硬體注入工具有更好的通用性。
發明內容
為了解決目前在進行容錯計算機評測時,缺乏對內存相關的容錯機制進行驗證的 問題,本發明提供了基於FPGA的DDR2內存故障注入工具及注入方法 本發明的基於FPGA的DDR2內存故障注入工具,它包括宿主機和注入器,所述注入
器包括通訊模塊、主控模塊、同步控制模塊和注入及結果回收模塊,宿主機的信號通訊口連
接通訊模塊的信號通訊口 ,所述通訊模塊的信號輸出端連接主控模塊的信號輸入端,所述
主控模塊的一個信號輸出端連接同步控制模塊的信號輸入端,所述同步控制模塊的信號輸
出端連接注入及結果回收模塊的一個信號輸入端,所述注入及結果回收模塊的另一個信號
輸入端連接主控模塊的另一個信號輸出端,所述注入及結果回收模塊的信號輸出端連接通
訊模塊的信號輸入端,同步控制模塊還設有一個與DDR2內存目標系統進行通訊的信號通
訊口,注入及結果回收模塊亦設有一個與DDR2內存目標系統進行通訊的信號通訊口 ; 宿主機,包含宿主機軟體,用於提供人機互動方式,實現用戶對故障參數的選擇,
發送故障注入命令,還用於接收注入結果,並對注入結果進行存儲和管理; 注入器,由硬體FPGA實現,用於根據接收的故障注入命令,進行故障注入,並實時
返回給宿主機注入結果,其中, 通訊模塊,用於接收宿主機發送的故障注入命令,還用於向宿主機發送注入結果,所述通訊模塊採用RS-232異步通訊方式,所述通訊模塊內部固化有串口數據接收狀態機、 接收緩衝區、串口數據發送狀態機和發送緩衝區, 主控模塊,用於接收通訊模塊輸出的命令數據,還用於向同步控制模塊注入時間 控制命令和開始命令,並向注入及結果回收模塊注入通道控制命令, 同步控制模塊,用於內存狀態監控、地址觸發和計時,同步控制模塊內部固化有內 存狀態監控狀態機、地址觸發狀態機和時間觸發控制狀態機, 注入及結果回收模塊,用於對DQS數據進行截獲,同時根據截獲的DQS數據向DDR2
內存目標系統進行故障注入,並將注入結果通過通訊模塊發送給宿主機。 本發明的基於FPGA的高端容錯計算機評測用DDR2內存故障注入方法,它包括宿
主機軟體工作過程和注入器工作過程,所述注入器工作過程包括串口數據接收狀態機工作
過程、串口數據發送狀態機工作過程、命令執行狀態機工作過程、內存狀態監控狀態機工作
過程、地址觸發狀態機工作過程、時間觸發控制狀態機工作過程和注入及結果回收工作過程。 本發明的有益效果本發明的注入器由硬體FPGA實現,具有較高的靈活性;本發 明選用內存故障注入代替傳統的處理器故障注入,提高了硬體注入工具的通用性;本發明 提供了一種能夠用於容錯計算機評測的內存故障注入工具和注入方法。
圖1是本發明的基於FPGA的DDR2內存故障注入工具的系統示意圖,圖2是本發 明的主控模塊22原理結構示意圖,圖3是本發明的注入單元241的原理結構示意圖,圖4 是本發明的結果回收單元242的原理結構示意圖,圖5是本發明的宿主機軟體U的模型示 意圖,圖6是本發明的宿主機軟體工作過程流程圖,圖7是本發明的串口數據接收狀態機工 作過程示意圖,圖8是本發明的串口數據發送狀態機工作過程示意圖,圖9是本發明的命令 執行狀態機工作過程示意圖,圖10是本發明的內存狀態監控狀態機工作過程示意圖,圖11 是本發明的地址觸發狀態機工作過程示意圖,圖12是本發明的時間觸發控制狀態機工作 過程示意圖。
具體實施例方式
具體實施方式
一 根據說明書附圖1具體說明本實施方式,本實施方式所述的基 於FPGA的DDR2內存故障注入工具,它包括宿主機1和注入器2,所述注入器2包括通訊模 塊2-l、主控模塊2-2、同步控制模塊2-3和注入及結果回收模塊2-4,宿主機1的信號通訊 口連接通訊模塊2-1的信號通訊口,所述通訊模塊2-1的信號輸出端連接主控模塊2-2的 信號輸入端,所述主控模塊2-2的一個信號輸出端連接同步控制模塊2-3的信號輸入端,所 述同步控制模塊2-3的信號輸出端連接注入及結果回收模塊2-4的一個信號輸入端,所述 注入及結果回收模塊24的另一個信號輸入端連接主控模塊2-2的另一個信號輸出端,所述 注入及結果回收模塊2-4的信號輸出端連接通訊模塊2-l的信號輸入端,同步控制模塊2-3 還設有一個與DDR2內存目標系統3進行通訊的信號通訊口 ,注入及結果回收模塊2-4亦設 有一個與DDR2內存目標系統3進行通訊的信號通訊口 ; 宿主機l,包含宿主機軟體U,用於提供人機互動方式,實現用戶對故障參數的選擇,發送故障注入命令,還用於接收注入結果,並對注入結果進行存儲和管理; 注入器2,由硬體FPGA實現,用於根據接收的故障注入命令,進行故障注入,並實
時返回給宿主機1注入結果,其中, 通訊模塊2-l,用於接收宿主機1發送的控制命令,還用於向宿主機1發送注入結 果,所述通訊模塊2-1採用RS-232異步通訊方式,所述通訊模塊2-1內部固化有串口數據 接收狀態機、接收緩衝區、串口數據發送狀態機和發送緩衝區2, 主控模塊2-2,用於接收通訊模塊2-l輸出的命令數據,還用於向同步控制模塊 2-3注入時間控制命令和開始命令,並向注入及結果回收模塊2-4注入通道控制命令,
同步控制模塊2-3,用於內存狀態監控、地址觸發和計時,同步控制模塊2-3內部 固化有內存狀態監控狀態機、地址觸發狀態機和時間觸發控制狀態機,
注入及結果回收模塊2-4,用於對DQS數據進行截獲,同時根據截獲的DQS數據向 DDR2內存目標系統進行故障注入,並將注入結果通過通訊模塊2-l發送給宿主機1。
具體實施方式
二 根據說明書附圖2具體說明本實施方式,本實施方式是對具體 實施方式一的進一步說明,具體實施方式
一中所述的主控模塊2-2包括命令執行器2-21和 鎖存器組2-22,所述命令執行器2-21內部固化有命令執行狀態機,所述鎖存器組2-22包括 通道鎖存器2-221、故障類型鎖存器2-222、通道方向鎖存器2_223、條件鎖存器2_224、條件 通道鎖存器2-225、注入間隔鎖存器2-226、開始延時鎖存器2_227、任務時間鎖存器2-228 和持續時間鎖存器2-229, 命令執行器2-21的命令輸出端連接鎖存器組2-22的命令輸入端; 命令執行器2-21,用於接收通訊模塊2-l輸出的命令數據,並發送注入開始命令
至注入及結果回收模塊2-4,同時設置鎖存器命令至鎖存器組2-22 ; 鎖存器組2-22,用於接收設置鎖存器命令進行存儲,並向同步控制模塊2-3注入 時間控制命令和開始命令,還向注入及結果回收模塊2-4注入通道控制命令,其中,
通道鎖存器2-221 ,用於存儲故障注入的通道選擇信息,還用於將所述通道選擇信 息送往注入及結果回收模塊2-4 ; 故障類型鎖存器2-222,用於存儲每個通道的故障類型信息,還用於將所述故障類 型信息送往注入及結果回收模塊2-4 ; 通道方向鎖存2-223,用於存儲故障注入的方向信息,還用於將所述方向信息送往 注入及結果回收模塊2-4,所述方向信息包括讀方向、寫方向和雙向; 條件鎖存器2-224,用於存儲目標觸發條件,還用於將所述目標觸發條件送往同步 控制模塊2-3 ; 條件通道鎖存器2-225,用於存儲觸發通道的選擇信息,還用於將所述選擇信息送 往同步控制模塊2-3; 注入間隔鎖存器2-226,用於鎖存每次注入結束與下次注入開始之間的時間間隔, 還用於將所述時間間隔送往同步控制模塊2-3 ; 開始延時鎖存器2-227,用於鎖存注入器2開始工作的延遲時間,還用於將所述延 遲時間送往同步控制模塊2-3 ; 任務時間鎖存器2-228,用於鎖存注入器2的全局工作時間,還用於將所述全局工 作時間送往同步控制模塊2-3 ;
持續時間鎖存器2-229,用於鎖存持續時間,還用於將所述持續時間送往同步控制 模塊2-3。
具體實施方式
三根據說明書附圖3具體說明本實施方式,本實施方式是對具體 實施方式一或二的進一步說明,具體實施方式
一或二所述的注入及結果回收模塊2-4包括 64個基本單元,每個基本單元包括一個注入單元2-41和一個結果回收單元2-42,
所述注入單元2-41包括第一方向控制開關2-411、讀方向觸發開關2-412、讀數據 截獲器2-413、讀故障產生器2-414、寫方向觸發開關2-415、寫數據截獲器2-416、寫故障產 生器2-417和第二方向控制開關2-418, 第一方向控制開關2-411的數據選通信號輸出端連接讀方向觸發開關2-412的讀 數據觸發輸入端,所述第一方向控制開關2-411的待截獲讀數據輸出端連接到讀數據截獲 器2-413的讀數據截獲輸入端,所述第一方向控制開關2-411的寫故障數據輸入端連接寫 故障產生器2-417的寫故障數據輸出端,讀方向觸發開關2-412的讀數據觸發輸出端連接 讀數據截獲器2-413的截獲數據觸發輸入端,所述讀數據截獲器2-413的截獲數據輸出端 連接讀故障產生器2-414的讀故障數據輸入端,寫故障產生器2-417的寫故障數據輸入端 連接寫數據截獲器2-416的寫數據截獲輸出端,讀故障產生器2-414的讀故障數據輸出端 連接第二方向控制開關2-418的讀故障數據輸入端,所述第二方向控制開關2-418的待截 獲寫數據輸出端連接到寫數據截獲器2-416的寫數據截獲輸入端,所述第二方向控制開關 2-418的數據選通信號輸出端連接寫方向觸發開關2-415的寫數據觸發輸入端,所述寫方 向觸發開關2-415的寫數據觸發輸出端連接寫數據截獲器2-416的截獲數據觸發輸入端;
結果回收單元2-42包括延遲器2-421、比較器2_422和結果鎖存器2-423,
延遲器2-421的延遲數據輸出端連接比較器2-422的一個數據輸入端,所述比較 器2-422的數據輸出端連接結果鎖存器2-423的結果數據輸入端。
具體實施方式
四根據說明書附圖5說明本實施方式,本實施方式是對具體實施
方式一、二或三的進一步說明,具體實施方式
一、二或三所述的宿主機軟體U包括用戶界面
Ul、故障注入命令生成模塊U2、故障注入進度計算模塊U3、故障注入幫助模塊U4、故障注入
結果回收模塊U5、故障注入結果管理模塊U6、故障資料庫U7和通訊軟體模塊U8, 用戶界面U1,用於實現故障參數輸入和檢測,並用於顯示注入器2的注入進度和
注入結果,還用於顯示和管理歷史注入結果; 通訊軟體模塊U8,用於實現與注入器2通訊,即接收故障注入命令生成模塊U2生 成的故障注入命令和發送注入器2返回的故障注入結果; 故障注入命令生成模塊U2,用於根據用戶界面Ul的故障參數生成相應的故障注 入命令,還用於輸出所述故障注入命令至通訊軟體模塊U8 ; 故障注入進度計算模塊U3,用於根據故障注入命令計算故障注入進度,還用於將 所述故障注入進度反饋給用戶界面U1 ; 故障注入幫助模塊U4,用於與用戶界面U1連結,並提供DDR2內存故障注入工具使 用指南; 故障注入結果回收模塊U5,用於接收注入器2經通訊軟體模塊U8返回的故障注入 結果,還用於將所述故障注入結果反饋給用戶界面U1 ; 故障注入結果管理模塊U6,用於將從用戶界面U1獲得的每次故障注入結果存儲到故障資料庫U7中,還用於故障注入結果的查找和刪除; 故障資料庫U7,用於存儲故障注入參數及故障注入結果。
具體實施方式
五本實施方式所述的基於具體實施方式
四所述的基於FPGA的 DDR2內存故障注入工具的基於FPGA的高端容錯計算機評測用DDR2內存故障注入方法,所 述方法包括宿主機軟體工作過程和注入器工作過程,所述注入器工作過程包括串口數據接 收狀態機工作過程、串口數據發送狀態機工作過程、命令執行狀態機工作過程、內存狀態監 控狀態機工作過程、地址觸發狀態機工作過程、時間觸發控制狀態機工作過程和注入及結 果回收工作過程。
具體實施方式
六根據說明書5和6具體說明本實施方式,本實施方式是對具體實 施方式五的進一步說明,具體實施方式
五中所述的宿主機軟體工作過程具體為
步驟一 打開用戶界面Ul,向所述用戶界面Ul輸入故障參數; 步驟二 用戶界面Ul判斷故障參數是否正確,如果是,執行步驟三,否則返回步驟 步驟三利用故障注入命令生成模塊U2生成故障注入命令,並發送故障注入命令 給通訊軟體模塊U8 ; 步驟四通訊軟體模塊U8對故障參數進行確認,如果同意,執行步驟五,否則返回 步驟一; 步驟五啟動注入器2,並利用故障注入進度計算模塊U3計算故障注入進度,同時 反饋給用戶界面U1 ; 步驟六利用故障注入結果回收模塊U5回收故障注入結果,同時反饋給用戶界面 Ul ; 步驟七故障注入結果管理模塊U6判斷故障注入結果是否存儲,如果是,執行步 驟八,否則執行步驟九; 步驟八存儲故障注入結果至故障資料庫U7,進入步驟九;
步驟九結束對DDR2內存進行故障注入。
具體實施方式
七根據說明書附圖7和8具體說明本實施方式,本實施方式是對具 體實施方式五的進一步說明,具體實施方式
五中所述的串口數據接收狀態機工作過程包括 三個邏輯狀態空閒狀態、移位接收8位數據狀態和接收停止位狀態, 在空閒狀態,通訊模塊2-1檢測串口數據幀開始位,當檢測到串口數據幀開始位 時,進入移位接收8位數據狀態; 在移位接收8位數據狀態,接收串口數據位,並對所述串口數據位加1,當串口數 據位加1後為第8個串口數據位時,輸出第8個串口數據位,進入接收停止位狀態;
在接收停止位狀態,等待第8個串口數據位到達,當第8個串口數據位到達時,停 止檢測並將8位串口數據寫入接收緩衝區,返回空閒狀態; 串口數據發送狀態機工作過程包括三個邏輯狀態空閒狀態、移位發送8位數據 狀態和發送停止位狀態, 在空閒狀態,通訊模塊2-1檢測發送緩衝區不空,當檢測到發送緩衝區不空時,進 入移位發送8位數據狀態; 在移位發送8位數據狀態,發送串口數據位,並對所述串口數據位加1,當串口數
12據位加1後為第8個串口數據位時,輸出第8個串口數據位,進入發送停止位狀態; 在發送停止位狀態,等待第8個串口數據位到達,當第8個串口數據位到達時,停
止檢測,返回空閒狀態。
具體實施方式
八根據說明書附圖2和9具體說明本實施方式,本實施方式是對具 體實施方式五的進一步說明,具體實施方式
五中所述的命令執行狀態機工作過程包括空閒 狀態、注入開始狀態、寫方向狀態、讀方向狀態、雙向狀態、通道狀態、故障類型狀態、條件狀 態、條件通道狀態、持續時間狀態、注入間隔狀態、開始延時狀態和任務時間狀態,
在空閒狀態,等待接收緩衝區出現數據,當接收緩衝區出現的數據為00000000 時,進入注入開始狀態,當接收緩衝區出現的數據為00000001時,進入寫方向狀態,當接收 緩衝區出現的數據為00000010時,進入讀方向狀態,當接收緩衝區出現的數據為00000011 時,進入雙向狀態,當接收緩衝區出現的數據為00000100時,進入通道狀態,當接收緩衝區 出現的數據為00000101時,進入故障類型狀態,當接收緩衝區出現的數據為00000110時, 進入條件狀態,當接收緩衝區出現的數據為00000111時,進入條件通道狀態,當接收緩衝 區出現的數據為00001000時,進入持續時間狀態,當接收緩衝區出現的數據為00001001 時,進入注入間隔狀態,當接收緩衝區出現的數據為00001010時,進入開始延時狀態,當接
收緩衝區出現的數據為00001011時,進入任務時間狀態; 在注入開始狀態,命令執行器2-21向注入及結果回收模塊2-4發出注入開始信
號,當向注入及結果回收模塊2-4發出注入開始信號完畢,返回空閒狀態; 在寫方向狀態,命令執行器2-21將01送到通道方向鎖存器2-223進行鎖存,當鎖
存完畢,返回空閒狀態; 在讀方向狀態,命令執行器2-21將10送到通道方向鎖存器2-223進行鎖存,當鎖 存完畢,返回空閒狀態; 在雙向狀態,命令執行器2-21將11送到通道方向鎖存器2-223進行鎖存,當鎖存 完畢,返回空閒狀態; 在持續時間狀態,命令執行器2-21重新從接收緩衝區取出8位數據00001000,並 將所述8位數據00001000鎖存至持續時間鎖存器2-229,當鎖存完畢,返回空閒狀態;
在注入間隔狀態,命令執行器2-21重新從接收緩衝區取出8位數據00001001,並 將所述8位數據00001001鎖存至注入間隔鎖存器2-226,當鎖存完畢,返回空閒狀態;
在開始延時狀態,命令執行器2-21重新從接收緩衝區取出8位數據00001010,並 將所述8位數據00001010鎖存至開始延時鎖存器2-227,當鎖存完畢,返回空閒狀態;
在條件狀態,命令執行器2-21重複4次從接收緩衝區取出8位數據00000110,組 成32位數據,並將所述32位數據鎖存至條件鎖存器2-224,當鎖存完畢,返回空閒狀態;
在條件通道狀態,命令執行器2-21重複4次從接收緩衝區取出8位數據 00000111,組成32位數據,並將所述32位數據鎖存至條件通道鎖存器2-225,當鎖存完畢, 返回空閒狀態; 在通道狀態,命令執行器2-21重複8次從接收緩衝區取出8位數據00000100,組 成64位數據,並將所述64位數據鎖存至通道鎖存器2-221,當鎖存完畢,返回空閒狀態;
在任務時間狀態,命令執行器2-21重複8次從接收緩衝區取出8位數據 00001011,組成64位數據,並將所述64位數據鎖存至任務時間鎖存器2-228,當鎖存完畢,
13返回空閒狀態; 在故障類型狀態,命令執行器2-21重複16次從接收緩衝區取出8位數據 00000101,組成128位數據,並將所述128位數據鎖存至故障類型鎖存器2-222,當鎖存完 畢,返回空閒狀態。
具體實施方式
九根據說明書附圖10、 11和12說明本實施方式,本實施方式是對具體實施方式
五的進一步說明,具體實施方式
五中所述的內存狀態監控狀態機工作過程包 括三個狀態讀狀態、寫狀態和無操作狀態, 在讀狀態,讀出命令,當讀出寫命令時,進入寫狀態,當讀出激活命令時,進入無操 作狀態; 在寫狀態,讀出命令,當讀出讀命令時,進入讀狀態,當讀出激活命令時,進入無操 作狀態; 在無操作狀態,讀出命令,當讀出讀命令時,進入讀狀態,當讀出寫命令時,進入寫 狀態; 地址觸發狀態機工作過程包括四個狀態行地址同狀態、行地址異狀態、列地址同 狀態和列地址異狀態, 在行地址同狀態,判斷讀/寫命令列地址相同,當讀/寫命令列地址相同時,進入 列地址同狀態,否則,進入列地址異狀態; 在列地址同狀態,判斷讀/寫命令列地址不同,當讀/寫命令列地址不同時,進入 列地址異狀態,並判斷激活命令行地址相同,當激活命令行地址相同同時,返回行地址同狀 態,否則進入行地址異狀態; 在列地址異狀態,判斷激活命令行地址是否相同,當激活命令行地址相同時,返回 行地址同狀態,當激活命令行地址不同時,進入行地址異狀態; 在行地址異狀態,判讀激活命令行地址相同,當激活命令行地址相同,返回行地址 同狀態; 時間觸發控制狀態機工作過程包括四個狀態停止狀態、延時觸發狀態、持續注入 狀態和注入間隔狀態, 在停止狀態,等待注入開始命令到達,當注入開始命令到達時,進入延時觸髮狀 態; 在延時觸發狀態,對注入數據開始延時,當延時時間與開始延時鎖存器2-227中 數據相等時,進入持續注入狀態; 在持續注入狀態,判斷注入數據持續時間,當持續時間與持續時間鎖存器2-229 中數據相等時,進入注入間隔狀態,當持續時間與任務時間鎖存器2-228中數據相等時,進 入停止狀態; 在注入間隔狀態,判斷兩次注入數據的間隔時間,當間隔時間與注入間隔鎖存器 2-226中數據相等時,返回持續注入狀態,當間隔時間與任務時間鎖存器2-228中數據相等 時,進入停止狀態。
具體實施方式
十根據說明書附圖3和4具體說明本實施方式,本實施方式是對具 體實施方式五的進一步說明,具體實施方式
五中所述的注入及結果回收工作過程包括注入 過程和結果回收過程,所述注入過程具體為
第二方向控制開關2-418接收同步控制模塊2-3送來的內存寫狀態,將DQS信號 送入寫方向觸發開關2-415,然後將DQ信號送入寫數據截獲器2-416,寫數據截獲器2-416 根據經寫方向觸發開關2-415延遲處理後的DQS信號對DQ信號進行截取,截取後送入寫故 障產生器2-417,所述寫故障產生器2-417根據主控模塊2-2提供的信號和同步控制模塊 2-3提供的信號決定注入故障類型,所述寫故障產生器2-417將故障注入類型信號經第一 方向控制開關2-411送出至DDR2內存;第一方向控制開關2-411接收同步控制模塊2_3送 來的內存讀狀態,將DQS信號送入讀方向觸發開關2-412,然後將DQ信號送入讀數據截獲器 2-413,讀數據截獲器2-413根據經讀方向觸發開關2-412延遲處理後的DQS信號對DQ信 號進行截取,截取後送入讀故障產生器2-414,所述讀故障產生器2-414根據主控模塊2-2 提供的信號和同步控制模塊2-3提供的信號決定注入故障類型,所述讀故障產生器2-414 將故障注入類型信號經第二方向控制開關2-418送入DDR2內存控制器;
結果回收過程具體為延遲器2-421接收來自第一\第二方向控制開關的原始數 據,進行延遲後送入比較器2-422,所述比較器2-422接收來自讀\寫觸發開關的回收信號 和來自讀\寫故障產生器的注入數據,在接收到注入數據、回收信號和原始數據後,比較器 2-422對所述數據進行注入前後數據對比,當注入前後數據對比結果為不同時,將所述對比 結果經結果鎖存器2-423鎖存後送入通訊模塊2-1。
權利要求
基於FPGA的DDR2內存故障注入工具,其特徵在於它包括宿主機(1)和注入器(2),所述注入器(2)包括通訊模塊(2-1)、主控模塊(2-2)、同步控制模塊(2-3)和注入及結果回收模塊(2-4),宿主機(1)的信號通訊口連接通訊模塊(2-1)的信號通訊口,所述通訊模塊(2-1)的信號輸出端連接主控模塊(2-2)的信號輸入端,所述主控模塊(2-2)的一個信號輸出端連接同步控制模塊(2-3)的信號輸入端,所述同步控制模塊(2-3)的信號輸出端連接注入及結果回收模塊(2-4)的一個信號輸入端,所述注入及結果回收模塊(2-4)的另一個信號輸入端連接主控模塊(2-2)的另一個信號輸出端,所述注入及結果回收模塊(2-4)的信號輸出端連接通訊模塊(2-1)的信號輸入端,同步控制模塊(2-3)還設有一個與DDR2內存目標系統(3)進行通訊的信號通訊口,注入及結果回收模塊(2-4)亦設有一個與DDR2內存目標系統(3)進行通訊的信號通訊口,宿主機(1),包含宿主機軟體(U),用於提供人機互動方式,實現用戶對故障參數的選擇,發送故障注入命令,還用於接收注入結果,並對注入結果進行存儲和管理;注入器(2),由硬體FPGA實現,用於根據接收的故障注入命令,進行故障注入,並實時返回給宿主機(1)注入結果,其中,通訊模塊(2-1),用於接收宿主機(1)發送的故障注入命令,還用於向宿主機(1)發送注入結果,所述通訊模塊(2-1)採用RS-232異步通訊方式,所述通訊模塊(2-1)內部固化有串口數據接收狀態機、接收緩衝區、串口數據發送狀態機和發送緩衝區;主控模塊(2-2),用於接收通訊模塊(2-1)輸出的命令數據,還用於向同步控制模塊(2-3)注入時間控制命令和開始命令,並向注入及結果回收模塊(2-4)注入通道控制命令;同步控制模塊(2-3),用於內存狀態監控、地址觸發和計時,同步控制模塊(2-3)內部固化有內存狀態監控狀態機、地址觸發狀態機和時間觸發控制狀態機;注入及結果回收模塊(2-4),用於對DQS數據進行截獲,同時根據截獲的DQS數據向DDR2內存目標系統(3)進行故障注入,並將注入結果通過通訊模塊(2-1)發送給宿主機(1)。
2. 根據權利要求1所述的基於FPGA的DDR2內存故障注入工具,其特徵在於主控模塊 (2-2)包括命令執行器(2-21)和鎖存器組(2-22),所述命令執行器(2-21)內部固化有命 令執行狀態機,所述鎖存器組(2-22)包括通道鎖存器(2-221)、故障類型鎖存器(2-222)、 通道方向鎖存器(2-223)、條件鎖存器(2-224)、條件通道鎖存器(2-225)、注入間隔鎖存器 (2-226)、開始延時鎖存器(2-227)、任務時間鎖存器(2-228)和持續時間鎖存器(2-229),命令執行器(2-21)的命令輸出端連接鎖存器組(2-22)的命令輸入端;命令執行器(2-21),用於接收通訊模塊(2-1)輸出的命令數據,並發送注入開始命令 至注入及結果回收模塊(2-4),同時設置鎖存器命令至鎖存器組(2-22);鎖存器組(2-22),用於接收設置鎖存器命令進行存儲,並向同步控制模塊(2-3)注入 時間控制命令和開始命令,還向注入及結果回收模塊(2-4)注入通道控制命令,其中,通道鎖存器(2-221),用於存儲故障注入的通道選擇信息,還用於將所述通道選擇信息 送往注入及結果回收模塊(2-4);故障類型鎖存器(2-222),用於存儲每個通道的故障類型信息,還用於將所述故障類型 信息送往注入及結果回收模塊(2-4);通道方向鎖存器(2-223),用於存儲故障注入的方向信息,還用於將所述方向信息送往 注入及結果回收模塊(2-4),所述方向信息包括讀方向、寫方向和雙向;條件鎖存器(2-224),用於存儲目標觸發條件,還用於將所述目標觸發條件送往同步控 制模塊(2-3);條件通道鎖存器(2-225),用於存儲觸發通道的選擇信息,還用於將所述選擇信息送往 同步控制模塊(2-3);注入間隔鎖存器(2-226),用於鎖存每次注入結束與下次注入開始之間的時間間隔,還 用於將所述時間間隔送往同步控制模塊(2-3);開始延時鎖存器(2-227),用於鎖存注入器(2)開始工作的延遲時間,還用於將所述延 遲時間送往同步控制模塊(2-3);任務時間鎖存器(2-228),用於鎖存注入器(2)的全局工作時間,還用於將所述全局工 作時間送往同步控制模塊(2-3);持續時間鎖存器(2-229),用於鎖存持續時間,還用於將所述持續時間送往同步控制模 塊(2-3)。
3. 根據權利要求1或2所述的基於FPGA的DDR2內存故障注入工具,其特徵在於注入 及結果回收模塊(2-4)包括64個基本單元,每個基本單元包括一個注入單元(2-41)和一 個結果回收單元(2-42),所述注入單元(2-41)包括第一方向控制開關(2-411)、讀方向觸發開關(2-412)、 讀數據截獲器(2-413)、讀故障產生器(2-414)、寫方向觸發開關(2-415)、寫數據截獲器 (2-416)、寫故障產生器(2-417)和第二方向控制開關(2-418),第一方向控制開關(2-411)的數據選通信號輸出端連接讀方向觸發開關(2-412)的讀 數據觸發輸入端,所述第一方向控制開關(2-411)的待截獲讀數據輸出端連接到讀數據截 獲器(2-413)的讀數據截獲輸入端,所述第一方向控制開關(2-411)的寫故障數據輸入端 連接寫故障產生器(2-417)的寫故障數據輸出端,讀方向觸發開關(2-412)的讀數據觸發 輸出端連接讀數據截獲器(2-413)的截獲數據觸發輸入端,所述讀數據截獲器(2-413)的 截獲數據輸出端連接讀故障產生器(2-414)的讀故障數據輸入端,寫故障產生器(2-417) 的寫故障數據輸入端連接寫數據截獲器(2-416)的寫數據截獲輸出端,讀故障產生器 (2-414)的讀故障數據輸出端連接第二方向控制開關(2-418)的讀故障數據輸入端,所述 第二方向控制開關(2-418)的待截獲寫數據輸出端連接到寫數據截獲器(2-416)的寫數據 截獲輸入端,所述第二方向控制開關(2-418)的數據選通信號輸出端連接寫方向觸發開關 (2-415)的寫數據觸發輸入端,所述寫方向觸發開關(2-415)的寫數據觸發輸出端連接寫 數據截獲器(2-416)的截獲數據觸發輸入端;結果回收單元(2-42)包括延遲器(2-421)、比較器(2-422)和結果鎖存器(2-423),延遲器(2-421)的延遲數據輸出端連接比較器(2-422)的一個數據輸入端,所述比較 器(2-422)的數據輸出端連接結果鎖存器(2-423)的結果數據輸入端。
4. 根據權利要求3所述的基於FPGA的DDR2內存故障注入工具,其特徵在於宿主機軟 件(U)包括用戶界面(Ul)、故障注入命令生成模塊(U2)、故障注入進度計算模塊(U3)、故障 注入幫助模塊(U4)、故障注入結果回收模塊(U5)、故障注入結果管理模塊(U6)、故障數據 庫(U7)和通訊軟體模塊(U8),用戶界面(Ul),用於實現故障參數輸入和檢測,並用於顯示注入器(2)的注入進度和 注入結果,還用於顯示和管理歷史注入結果;通訊軟體模塊(U8),用於實現與注入器(2)通訊,即接收故障注入命令生成模塊(U2) 生成的故障注入命令和發送注入器(2)返回的故障注入結果;故障注入命令生成模塊(U2),用於根據用戶界面(Ul)的故障參數生成相應的故障注 入命令,還用於輸出所述故障注入命令至通訊軟體模塊(U8);故障注入進度計算模塊(U3),用於根據故障注入命令計算故障注入進度,還用於將所 述故障注入進度反饋給用戶界面(Ul);故障注入幫助模塊(U4),用於與用戶界面(Ul)連結,並提供DDR2內存故障注入工具使 用指南;故障注入結果回收模塊(U5),用於接收注入器(2)經通訊軟體模塊(U8)返回的故障注 入結果,還用於將所述故障注入結果反饋給用戶界面(Ul);故障注入結果管理模塊(U6),用於將從用戶界面(Ul)獲得的每次故障注入結果存儲 到故障資料庫(U7)中,還用於故障注入結果的查找和刪除;故障資料庫(U7),用於存儲故障注入參數及故障注入結果。
5. 基於權利要求4所述的基於FPGA的DDR2內存故障注入工具的基於FPGA的高端容 錯計算機評測用DDR2內存故障注入方法,其特徵在於所述方法包括宿主機軟體工作過程 和注入器工作過程,所述注入器工作過程包括串口數據接收狀態機工作過程、串口數據發 送狀態機工作過程、命令執行狀態機工作過程、內存狀態監控狀態機工作過程、地址觸髮狀 態機工作過程、時間觸發控制狀態機工作過程和注入及結果回收工作過程。
6. 根據權利要求5所述的基於FPGA的高端容錯計算機評測用DDR2內存故障注入方 法,其特徵在於宿主機軟體工作過程具體為步驟一 打開用戶界面(Ul),向所述用戶界面(Ul)輸入故障參數;步驟二 用戶界面(Ul)判斷故障參數是否正確,如果是,執行步驟三,否則返回步驟步驟三利用故障注入命令生成模塊(U2)生成故障注入命令,並發送故障注入命令給 通訊軟體模塊(U8);步驟四通訊軟體模塊(U8)對故障參數進行確認,如果同意,執行步驟五,否則返回步 驟一;步驟五啟動注入器(2),並利用故障注入進度計算模塊(U3)計算故障注入進度,同時 反饋給用戶界面(Ul);步驟六利用故障注入結果回收模塊(U5)回收故障注入結果,同時反饋給用戶界面 (Ul);步驟七故障注入結果管理模塊(U6)判斷故障注入結果是否存儲,如果是,執行步驟 八,否則執行步驟九;步驟八存儲故障注入結果至故障資料庫(U7),進入步驟九;步驟九結束對DDR2內存進行故障注入。
7. 根據權利要求5所述的基於FPGA的高端容錯計算機評測用DDR2內存故障注入方 法,其特徵在於串口數據接收狀態機工作過程包括三個邏輯狀態空閒狀態、移位接收8位數據狀態和接收停止位狀態,在空閒狀態,通訊模塊(2-1)檢測串口數據幀開始位,當檢測到串口數據幀開始位時, 進入移位接收8位數據狀態;在移位接收8位數據狀態,接收串口數據位,並對所述串口數據位加1,當串口數據位 加1後為第8個串口數據位時,輸出第8個串口數據位,進入接收停止位狀態;在接收停止位狀態,等待第8個串口數據位到達,當第8個串口數據位到達時,停止檢 測並將8位串口數據寫入接收緩衝區,返回空閒狀態;串口數據發送狀態機工作過程包括三個邏輯狀態空閒狀態、移位發送8位數據狀態 和發送停止位狀態,在空閒狀態,通訊模塊(2-1)檢測發送緩衝區不空,當檢測到發送緩衝區不空時,進入 移位發送8位數據狀態;在移位發送8位數據狀態,發送串口數據位,並對所述串口數據位加1,當串口數據位 加1後為第8個串口數據位時,輸出第8個串口數據位,進入發送停止位狀態;在發送停止位狀態,等待第8個串口數據位到達,當第8個串口數據位到達時,停止檢 領"返回空閒狀態。
8.根據權利要求5所述的基於FPGA的高端容錯計算機評測用DDR2內存故障注入方 法,其特徵在於命令執行狀態機工作過程包括空閒狀態、注入開始狀態、寫方向狀態、讀方 向狀態、雙向狀態、通道狀態、故障類型狀態、條件狀態、條件通道狀態、持續時間狀態、注入 間隔狀態、開始延時狀態和任務時間狀態,在空閒狀態,等待接收緩衝區出現數據,當接收緩衝區出現的數據為00000000時,進 入注入開始狀態,當接收緩衝區出現的數據為00000001時,進入寫方向狀態,當接收緩衝 區出現的數據為00000010時,進入讀方向狀態,當接收緩衝區出現的數據為00000011時, 進入雙向狀態,當接收緩衝區出現的數據為00000100時,進入通道狀態,當接收緩衝區出 現的數據為00000101時,進入故障類型狀態,當接收緩衝區出現的數據為00000110時,進 入條件狀態,當接收緩衝區出現的數據為00000111時,進入條件通道狀態,當接收緩衝區 出現的數據為00001000時,進入持續時間狀態,當接收緩衝區出現的數據為00001001時, 進入注入間隔狀態,當接收緩衝區出現的數據為00001010時,進入開始延時狀態,當接收緩衝區出現的數據為00001011時,進入任務時間狀態;在注入開始狀態,命令執行器(2-21)向注入及結果回收模塊(2-4)發出注入開始信 號,當向注入及結果回收模塊(2-4)發出注入開始信號完畢,返回空閒狀態;在寫方向狀態,命令執行器(2-21)將01送到通道方向鎖存器(2-223)進行鎖存,當鎖 存完畢,返回空閒狀態;在讀方向狀態,命令執行器(2-21)將10送到通道方向鎖存器(2-223)進行鎖存,當鎖 存完畢,返回空閒狀態;在雙向狀態,命令執行器(2-21)將ll送到通道方向鎖存器(2-223)進行鎖存,當鎖存 完畢,返回空閒狀態;在持續時間狀態,命令執行器(2-21)重新從接收緩衝區取出8位數據00001000,並將 所述8位數據00001000鎖存至持續時間鎖存器(2-229),當鎖存完畢,返回空閒狀態;在注入間隔狀態,命令執行器(2-21)重新從接收緩衝區取出8位數據OOOOIOOI,並將所述8位數據00001001鎖存至注入間隔鎖存器(2-226),當鎖存完畢,返回空閒狀態;在開始延時狀態,命令執行器(2-21)重新從接收緩衝區取出8位數據00001010,並將所述8位數據00001010鎖存至開始延時鎖存器(2-227),當鎖存完畢,返回空閒狀態;在條件狀態,命令執行器(2-21)重複4次從接收緩衝區取出8位數據00000110,組成32位數據,並將所述32位數據鎖存至條件鎖存器(2-224),當鎖存完畢,返回空閒狀態; 在條件通道狀態,命令執行器(2-21)重複4次從接收緩衝區取出8位數據00000111,組成32位數據,並將所述32位數據鎖存至條件通道鎖存器(2-225),當鎖存完畢,返回空閒狀態;在通道狀態,命令執行器(2-21)重複8次從接收緩衝區取出8位數據00000100,組成 64位數據,並將所述64位數據鎖存至通道鎖存器(2-221),當鎖存完畢,返回空閒狀態;在任務時間狀態,命令執行器(2-21)重複8次從接收緩衝區取出8位數據00001011, 組成64位數據,並將所述64位數據鎖存至任務時間鎖存器(2-228),當鎖存完畢,返回空閒 狀態;在故障類型狀態,命令執行器(2-21)重複16次從接收緩衝區取出8位數據00000101, 組成128位數據,並將所述128位數據鎖存至故障類型鎖存器(2-222),當鎖存完畢,返回空 閒狀態。
9.根據權利要求5所述的基於FPGA的高端容錯計算機評測用DDR2內存故障注入方 法,其特徵在於內存狀態監控狀態機工作過程包括三個狀態讀狀態、寫狀態和無操作狀 態,在讀狀態,讀出命令,當讀出寫命令時,進入寫狀態,當讀出激活命令時,進入無操作狀態;在寫狀態,讀出命令,當讀出讀命令時,進入讀狀態,當讀出激活命令時,進入無操作狀態;在無操作狀態,讀出命令,當讀出讀命令時,進入讀狀態,當讀出寫命令時,進入寫狀態;地址觸發狀態機工作過程包括四個狀態行地址同狀態、行地址異狀態、列地址同狀態 和列地址異狀態,在行地址同狀態,判斷讀/寫命令列地址相同,當讀/寫命令列地址相同時,進入列地 址同狀態,否則,進入列地址異狀態;在列地址同狀態,判斷讀/寫命令列地址不同,當讀/寫命令列地址不同時,進入列地 址異狀態,並判斷激活命令行地址相同,當激活命令行地址相同時,返回行地址同狀態,否 則進入行地址異狀態;在列地址異狀態,判斷激活命令行地址是否相同,當激活命令行地址相同時,返回行地 址同狀態,當激活命令行地址不同時,進入行地址異狀態;在行地址異狀態,判讀激活命令行地址相同,當激活命令行地址相同,返回行地址同狀態;時間觸發控制狀態機工作過程包括四個狀態停止狀態、延時觸發狀態、持續注入狀態 和注入間隔狀態,在停止狀態,等待注入開始命令到達,當注入開始命令到達時,進入延時觸發狀態;在延時觸發狀態,對注入數據開始延時,當延時時間與開始延時鎖存器(2-227)中數 據相等時,進入持續注入狀態;在持續注入狀態,判斷注入數據持續時間,當持續時間與持續時間鎖存器(2-229)中 數據相等時,進入注入間隔狀態,當持續時間與任務時間鎖存器(2-228)中數據相等時,進 入停止狀態;在注入間隔狀態,判斷兩次注入數據的間隔時間,當間隔時間與注入間隔鎖存器 (2-226)中數據相等時,返回持續注入狀態,當間隔時間與任務時間鎖存器(2-228)中數據 相等時,進入停止狀態。
10.根據權利要求5所述的基於FPGA的高端容錯計算機評測用DDR2內存故障注入方 法,其特徵在於注入及結果回收工作過程包括注入過程和結果回收過程,所述注入過程具 體為第二方向控制開關(2-418)接收同步控制模塊(2-3)送來的內存寫狀態,將DQS信號 送入寫方向觸發開關(2-415),然後將DQ信號送入寫數據截獲器(2-416),寫數據截獲器 (2-416)根據經寫方向觸發開關(2-415)延遲處理後的DQS信號對DQ信號進行截取,截取 後送入寫故障產生器(2-417),所述寫故障產生器(2-417)根據主控模塊(2-2)提供的信號 和同步控制模塊(2-3)提供的信號決定注入故障類型,所述寫故障產生器(2-417)將故障 注入類型信號經第一方向控制開關(2-411)送出至DDR2內存;第一方向控制開關(2-411) 接收同步控制模塊(2-3)送來的內存讀狀態,將DQS信號送入讀方向觸發開關(2-412), 然後將DQ信號送入讀數據截獲器(2-413),讀數據截獲器(2-413)根據經讀方向觸發開關 (2-412)延遲處理後的DQS信號對DQ信號進行截取,截取後送入讀故障產生器(2-414),所 述讀故障產生器(2-414)根據主控模塊(2-2)提供的信號和同步控制模塊(2-3)提供的信 號決定注入故障類型,所述讀故障產生器(2-414)將故障注入類型信號經第二方向控制開 關(2-418)送入DDR2內存控制器;結果回收過程具體為延遲器(2-421)接收來自第一\第二方向控制開關的原始數據, 進行延遲後送入比較器(2-422),所述比較器(2-422)接收來自讀\寫觸發開關的回收信號 和來自讀\寫故障產生器的注入數據,在接收到注入數據、回收信號和原始數據後,比較器 (2-422)對所述數據進行注入前後數據對比,當注入前後數據對比結果為不同時,將所述對 比結果經結果鎖存器(2-423)鎖存後送入通訊模塊(2-1)。
全文摘要
基於FPGA的DDR2內存故障注入工具及注入方法,它涉及信息技術領域。它解決了目前在進行容錯計算機評測時,缺乏對內存相關的容錯機制進行驗證的問題,本發明的注入工具包括宿主機和注入器,所述注入器包括通訊模塊、主控模塊、同步控制模塊和注入及結果回收模塊;本發明的注入方法包括宿主機軟體工作過程和注入器工作過程,所述注入器工作過程包括串口數據接收狀態機工作過程、串口數據發送狀態機工作過程、命令執行狀態機工作過程、內存狀態監控狀態機工作過程、地址觸發狀態機工作過程、時間觸發控制狀態機工作過程和注入及結果回收工作過程。本發明適用於高端容錯計算機評測。
文檔編號G11C29/56GK101783184SQ20101030035
公開日2010年7月21日 申請日期2010年1月15日 優先權日2010年1月15日
發明者劉宏偉, 周海鷹, 左德承, 張展, 楊孝宗, 董劍, 錢軍 申請人:哈爾濱工業大學