數(shù)據(jù)長度計數(shù)器加6的值作為發(fā)送緩沖寫地址輸出, 同時產(chǎn)生寫信號;
[0067] ③當(dāng)主機數(shù)據(jù)長度計數(shù)器的值等于主機長度寄存器的值時,產(chǎn)生主機數(shù)據(jù)傳輸完 成信號;
[0068] ④當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)時,每個時鐘周期將幀頭數(shù)據(jù)長度計數(shù)器的 值自增1,并將發(fā)送緩沖尾指針加幀頭數(shù)據(jù)長度計數(shù)器的值作為發(fā)送緩沖寫地址輸出,同時 產(chǎn)生寫信號;
[0069] ⑤當(dāng)幀頭數(shù)據(jù)長度計數(shù)器的值等于7時,產(chǎn)生幀頭數(shù)據(jù)傳輸完成信號;
[0070] ⑥當(dāng)錯誤注入控制狀態(tài)機處于S3狀態(tài)時,將發(fā)送緩沖尾指針加主機數(shù)據(jù)長度寄存 器加7的值作為發(fā)送緩沖寫地址輸出,同時產(chǎn)生寫信號;
[0071] ⑦當(dāng)錯誤注入控制狀態(tài)機處于S4狀態(tài)時,將發(fā)送緩沖尾指針的值加1,跳回步驟 ①。
[0072] c)幀頭組織單元
[0073]幀頭組織單元根據(jù)配置寄存器組中各字段注入值寄存器的值組織幀頭,并在錯誤 注入控制狀態(tài)機轉(zhuǎn)移到S2狀態(tài)前完成,保存在第一寄存器、第二寄存器、第三寄存器、第四 寄存器、第五寄存器、第六寄存器中。
[0074] d)多路選擇單元
[0075]多路選擇單元根據(jù)錯誤注入控制狀態(tài)機所處的狀態(tài)選擇輸出相應(yīng)的數(shù)據(jù)。工作流 程如圖5所示,具體說明如下:
[0076]①當(dāng)錯誤注入控制狀態(tài)機處于SO或S4狀態(tài)時,多路選擇單元輸出全為0;
[0077] ②當(dāng)錯誤注入控制狀態(tài)機處于Sl狀態(tài)時,多路選擇單元選擇輸出主機數(shù)據(jù);
[0078] ③當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為1時選 擇輸出主機數(shù)據(jù);
[0079] ④當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為2時選 擇輸出第一寄存器的值;
[0080] ⑤當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為3時選 擇輸出第二寄存器的值;
[0081] ⑥當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為4時選 擇輸出第三寄存器的值;
[0082] ⑦當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為5時選 擇輸出第四寄存器的值;
[0083] ⑧當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為6時選 擇輸出第五寄存器的值;
[0084] ⑨當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為7時選 擇輸出第六寄存器的值;
[0085] ⑩當(dāng)錯誤注入控制狀態(tài)機處于S3狀態(tài)時選擇輸出主機數(shù)據(jù)。
[0086] 3)發(fā)送緩沖
[0087]發(fā)送緩沖由9個4KB的緩沖單元構(gòu)成,采用環(huán)形隊列的方式進行管理。
[0088] 4)發(fā)送模塊
[0089] 發(fā)送模塊負(fù)責(zé)將發(fā)送緩沖中的數(shù)據(jù)發(fā)送出去,工作流程如圖6所示,具體說明如 下:
[0090] a)檢查發(fā)送緩沖頭尾指針的值,判斷是否有數(shù)據(jù)需要發(fā)送;
[0091] b)若有數(shù)據(jù)需要發(fā)送,則將其發(fā)送到FC接口;
[0092] c)發(fā)送完成后將發(fā)送緩沖頭指針的值加1;
[0093] d)跳回步驟a)。
【主權(quán)項】
1. 一種基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于,包括以下步驟: 1) 主機寫配置寄存器組; 2) 主機啟動錯誤注入模塊,錯誤注入模塊包括錯誤注入控制狀態(tài)機、計算單元、幀頭組 織單元和多路選擇單元; 3) 錯誤注入控制狀態(tài)機檢測發(fā)送緩沖是否未滿,當(dāng)發(fā)送緩沖未滿時,則啟動主機數(shù)據(jù) 傳輸; 4) 錯誤注入控制狀態(tài)機啟動計算單元和幀頭組織單元,并控制多路選擇單元選擇幀頭 輸出到發(fā)送緩沖中、或選擇主機數(shù)據(jù)輸出到發(fā)送緩沖中; 5) 計算單元在數(shù)據(jù)輸出完成后更新發(fā)送緩沖尾指針; 6) 發(fā)送模塊根據(jù)發(fā)送緩沖頭尾指針的值判斷是否有數(shù)據(jù)需要發(fā)送,若有則將發(fā)送緩沖 中的數(shù)據(jù)讀出并發(fā)送; 7) 發(fā)送模塊在發(fā)送完成后更新發(fā)送緩沖頭指針的值,等待下一次發(fā)送。2. 根據(jù)權(quán)利要求1所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于, 所述配置寄存器組包括傳輸啟動寄存器、主機數(shù)據(jù)長度寄存器、FC幀頭模式選擇寄存器、 DID注入值寄存器、SID注入值寄存器、TYPE注入值寄存器、OXID注入值寄存器、RXID注入值 寄存器、RCTL注入值寄存器和FCTL注入值寄存器。3. 根據(jù)權(quán)利要求2所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于, 所述傳輸啟動寄存器主機寫有效,每寫一次表不啟動一幀傳輸;主機數(shù)據(jù)長度寄存器 主機可讀可寫,存儲主機發(fā)送數(shù)據(jù)的長度值;FC幀頭模式選擇寄存器主機可讀可寫,最低位 有效,0表示主機數(shù)據(jù)中無 FC幀頭,1表示主機數(shù)據(jù)中有FC幀頭;DID注入值寄存器主機可讀 可寫,存儲要注入到FC幀頭中的DID值;SID注入值寄存器主機可讀可寫,存儲要注入到FC幀 頭中的SID值;TYPE注入值寄存器主機可讀可寫,存儲要注入到FC幀頭中的TYPE值;OXID注 入值寄存器主機可讀可寫,存儲要注入到FC幀頭中的OXID值;RXID注入值寄存器主機可讀 可寫,存儲要注入到FC幀頭中的RXID值;RCTL注入值寄存器主機可讀可寫,存儲要注入到FC 幀頭中的RCTL值;FCTL注入值寄存器主機可讀可寫,存儲要注入到FC幀頭中的FCTL值。4. 根據(jù)權(quán)利要求3所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于: 所述錯誤注入控制狀態(tài)機控制計算單元和多路選擇單元的工作時序,包括5種狀態(tài):空 狀態(tài)SO、主機數(shù)據(jù)傳輸狀態(tài)S1、幀頭傳輸狀態(tài)S2、幀尾傳輸狀態(tài)S3和傳輸完成狀態(tài)S4; 錯誤注入控制狀態(tài)機最初處于空狀態(tài)SO,主機啟動傳輸后就轉(zhuǎn)移到主機數(shù)據(jù)傳輸狀態(tài) S1,主機數(shù)據(jù)傳輸完畢后轉(zhuǎn)移到幀頭傳輸狀態(tài)S2,幀頭傳輸完畢后轉(zhuǎn)移到幀尾傳輸狀態(tài)S3, 傳輸結(jié)束后轉(zhuǎn)移到完成狀態(tài)S4,最后回到空狀態(tài)SO。5. 根據(jù)權(quán)利要求4所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于: 錯誤注入控制狀態(tài)機的啟動條件為傳輸啟動寄存器的寫操作。6. 根據(jù)權(quán)利要求1至5任一所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特 征在于:所述計算單元在錯誤注入控制狀態(tài)機的控制下計算發(fā)送緩沖的寫入地址和產(chǎn)生寫 信號,同時計算傳輸?shù)臄?shù)據(jù)長度。7. 根據(jù)權(quán)利要求6所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于: 計算單元的工作流程如下: ①當(dāng)錯誤注入控制狀態(tài)機處于so狀態(tài)時,初始化主機數(shù)據(jù)長度計數(shù)器和幀頭長度計數(shù) 器為0; ② 當(dāng)錯誤注入控制狀態(tài)機處于S1狀態(tài)時,每個時鐘周期將主機數(shù)據(jù)長度計數(shù)器的值自 增1,并將發(fā)送緩沖尾指針的值、加主機數(shù)據(jù)長度計數(shù)器的值、再加6的結(jié)果作為發(fā)送緩沖寫 地址輸出,同時產(chǎn)生寫信號; ③ 當(dāng)主機數(shù)據(jù)長度計數(shù)器的值等于主機長度寄存器的值時,產(chǎn)生主機數(shù)據(jù)傳輸完成信 號; ④ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)時,每個時鐘周期將幀頭數(shù)據(jù)長度計數(shù)器的值自 增1,并將發(fā)送緩沖尾指針加幀頭數(shù)據(jù)長度計數(shù)器的值作為發(fā)送緩沖寫地址輸出,同時產(chǎn)生 寫信號; ⑤ 當(dāng)幀頭數(shù)據(jù)長度計數(shù)器的值等于7時,產(chǎn)生幀頭數(shù)據(jù)傳輸完成信號; ⑥ 當(dāng)錯誤注入控制狀態(tài)機處于S3狀態(tài)時,將發(fā)送緩沖尾指針的值、加主機數(shù)據(jù)長度寄 存器的值、再加7的結(jié)果作為發(fā)送緩沖寫地址輸出,同時產(chǎn)生寫信號; ⑦ 當(dāng)錯誤注入控制狀態(tài)機處于S4狀態(tài)時,將發(fā)送緩沖尾指針的值加1,跳回步驟①。8. 根據(jù)權(quán)利要求7所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于: 幀頭組織單元根據(jù)配置寄存器組中、各字段注入值寄存器的值組織幀頭,并在錯誤注入控 制狀態(tài)機轉(zhuǎn)移到S2狀態(tài)前完成,將組織的幀頭保存在第一寄存器、第二寄存器、第三寄存 器、第四寄存器、第五寄存器、第六寄存器中。9. 根據(jù)權(quán)利要求8所述的基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,其特征在于: 多路選擇單元根據(jù)錯誤注入控制狀態(tài)機所處的狀態(tài)選擇輸出相應(yīng)的數(shù)據(jù),具體如下: ① 當(dāng)錯誤注入控制狀態(tài)機處于S0或S4狀態(tài)時,多路選擇單元輸出全為0; ② 當(dāng)錯誤注入控制狀態(tài)機處于S1狀態(tài)時,多路選擇單元選擇輸出主機數(shù)據(jù); ③ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為1時選擇輸 出主機數(shù)據(jù); ④ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為2時選擇輸 出第一寄存器的值; ⑤ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為3時選擇輸 出第二寄存器的值; ⑥ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為4時選擇輸 出第三寄存器的值; ⑦ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為5時選擇輸 出第四寄存器的值; ⑧ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為6時選擇輸 出第五寄存器的值; ⑨ 當(dāng)錯誤注入控制狀態(tài)機處于S2狀態(tài)且計算單元中幀頭長度計數(shù)器的值為7時選擇輸 出第六寄存器的值; ⑩ 當(dāng)錯誤注入控制狀態(tài)機處于S3狀態(tài)時選擇輸出主機數(shù)據(jù)。
【專利摘要】本發(fā)明屬于計算機通信領(lǐng)域,提出了一種基于數(shù)字電路的FC網(wǎng)絡(luò)幀頭數(shù)據(jù)錯誤注入方法,包括配置寄存器組、錯誤注入模塊、發(fā)送緩存模塊和發(fā)送模塊;其中,配置寄存器組用來存儲控制信息和需要注入的幀頭字段的值,由主機進行配置;錯誤注入模塊使用注入值寄存器中的值替換傳輸數(shù)據(jù)中相應(yīng)字段,并將最終數(shù)據(jù)填入相應(yīng)的發(fā)送緩沖單元中;發(fā)送緩沖由M個Nbits的緩沖單元構(gòu)成,采用環(huán)形隊列方式管理。本發(fā)明通過在底層對發(fā)送數(shù)據(jù)進行處理,實現(xiàn)對幀頭數(shù)據(jù)的錯誤注入,進而達到實現(xiàn)簡單,使用靈活,降低成本的目的。
【IPC分類】G06F11/26, G06F11/273
【公開號】CN105550089
【申請?zhí)枴緾N201510889594
【發(fā)明人】蒲愷, 王紅春, 王世奎, 李大鵬, 李玉發(fā), 田園
【申請人】中國航空工業(yè)集團公司西安航空計算技術(shù)研究所
【公開日】2016年5月4日
【申請日】2015年12月7日