專利名稱:一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)及其設(shè)計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及半導(dǎo)體工藝技術(shù)領(lǐng)域,主要是針對(duì)片上網(wǎng)絡(luò)的設(shè)計(jì)方法,特別 是涉及一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)及其設(shè)計(jì)方法。
背景技術(shù):
目前在納米工藝和多核處理器中,片上互連線成為制約芯片設(shè)計(jì)中性能和 功耗要求方面的關(guān)鍵瓶頸。為此,研究人員設(shè)計(jì)了基于包傳輸?shù)钠贤ㄓ嵕W(wǎng)絡(luò),又名片上網(wǎng)絡(luò)(Network-on-Chip, N0C),來滿足系統(tǒng)性能和功耗的要求,適 用多核處理器。但是,由于電路中存在寄生元件,導(dǎo)致VLSI系統(tǒng)有嚴(yán)重的信 號(hào)完整性損失,例如長互連線上常見的串?dāng)_引起的時(shí)延。同時(shí),由于電路中的 外部射線或電氣噪聲,系統(tǒng)的存儲(chǔ)單元會(huì)出現(xiàn)一些單事件翻轉(zhuǎn)(Single Event Upset, SEU),即軟錯(cuò)誤??偠灾?,串?dāng)_效應(yīng)和軟錯(cuò)誤將會(huì)成為影響片上網(wǎng) 絡(luò)設(shè)計(jì)和測(cè)試的關(guān)鍵因素。這兩種缺陷可能導(dǎo)致NOC出現(xiàn)頭包錯(cuò)誤,負(fù)載錯(cuò)誤 和路由崩潰錯(cuò)誤,嚴(yán)重影響系統(tǒng)的可靠運(yùn)行。如果僅采用基于重傳的軟件容錯(cuò) 方法,由于串?dāng)_錯(cuò)誤一旦發(fā)生則可能再次發(fā)生,嚴(yán)重影響系統(tǒng)地性能。因此, 在系統(tǒng)可以接受的面積和功耗開銷之內(nèi),設(shè)計(jì)一種可以同時(shí)容忍串?dāng)_效應(yīng)和軟 錯(cuò)誤的可靠的片上網(wǎng)絡(luò)是一件很有意義的工作。提高控制系統(tǒng)可靠性主要有兩個(gè)途徑其一是避錯(cuò),即通過優(yōu)化設(shè)計(jì)、優(yōu) 選性能穩(wěn)定質(zhì)量高的元器件、按系統(tǒng)設(shè)計(jì)規(guī)范施工等措施來避免故障發(fā)生,一 旦系統(tǒng)出現(xiàn)故障就不再繼續(xù)正常運(yùn)行;其二是容錯(cuò)。容錯(cuò)的基本思想是由 馮*諾伊曼在1962年提出的。當(dāng)出現(xiàn)某些故障時(shí),系統(tǒng)具有自動(dòng)修復(fù)和容忍 故障的能力,仍能執(zhí)行規(guī)定的任務(wù),并且執(zhí)行結(jié)果也不會(huì)因系統(tǒng)中的故障而產(chǎn) 生差錯(cuò)。容錯(cuò)的基本設(shè)計(jì)思想是在系統(tǒng)體系結(jié)構(gòu)上精心設(shè)計(jì)和用外加資源的冗 余技術(shù)來達(dá)到掩蔽故障的影響。容錯(cuò)技術(shù)能夠達(dá)到對(duì)故障的"容忍",并非是 "無視"故障的存在,而是要能夠自動(dòng)、適時(shí)地監(jiān)測(cè)并診斷出系統(tǒng)的故障,然 后采取相應(yīng)的故障控制或處理的策略,而要達(dá)到這些要求,還要有相應(yīng)的硬件作為基礎(chǔ)。硬件容錯(cuò)技術(shù)主要有靜態(tài)冗余和動(dòng)態(tài)冗余兩種。靜態(tài)冗余是采用硬件堆積來達(dá)到提高可靠性的目的,基本的三模冗余TMR方式就是一種靜態(tài)冗余容錯(cuò)技術(shù)。動(dòng)態(tài)冗余也是一種有效的容錯(cuò)技術(shù),它利用二模動(dòng)態(tài)切換來提高系 統(tǒng)的可靠性。從提高可靠性的效果來看,容錯(cuò)方法要強(qiáng)于避錯(cuò)方法。國外的研究者已經(jīng)展開了相應(yīng)的研究。近期,有研究者提出了HC-TS-TMR 容錯(cuò)設(shè)計(jì)方案,圖1是TS-HC-頂R容錯(cuò)設(shè)計(jì)方案圖,如圖1所示,用于設(shè)計(jì)可 以容忍串?dāng)_效應(yīng)和軟錯(cuò)誤的N0C容錯(cuò)。這種方案利用延遲采樣三次再表決的方 法,以及相應(yīng)的電路delay triple-sample register (TS)處理通道上的串 擾效應(yīng);將TS的輸出結(jié)果編成海明編碼HC,保護(hù)包文免受軟錯(cuò)誤的影響;用 三模冗余(Triple Modular Redundancy, TMR)保護(hù)Router中的狀態(tài)和控制 寄存器,使它們免受軟錯(cuò)誤的影響。采用這種方案需要在集成電路中添加額外 的兩個(gè)異步的時(shí)鐘或者更高頻的主時(shí)鐘,這是集成電路設(shè)計(jì)所無法接受的。同 時(shí),串?dāng)_效應(yīng)在高速設(shè)備中影響比較顯著,在這些設(shè)備中串?dāng)_導(dǎo)致的時(shí)延很可 能會(huì)超過系統(tǒng)最大采樣的間隔,即兩次采樣到錯(cuò)誤的數(shù)據(jù)。因此,這種方案應(yīng) 用到高速電路會(huì)出現(xiàn)問題。最后,TS在一個(gè)周期內(nèi)需要采樣三次,而且它的 表決電路在一個(gè)周期內(nèi)翻轉(zhuǎn)三次,帶來了額外的功耗。隨著集成電路頻率和工藝的提高,總線上串?dāng)_導(dǎo)致的時(shí)延不斷增加,甚至 可能超過時(shí)鐘周期。因此,在NOC通道的輸入端采用容錯(cuò)技術(shù)要比在通道的輸 出端采用容錯(cuò)技術(shù)更可取。此外,如何減少容錯(cuò)設(shè)計(jì)的面積和功耗開銷,使它 們可以被系統(tǒng)設(shè)計(jì)所接受同樣值得研究。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)及其設(shè)計(jì)方法,用 于多核處理器的片上網(wǎng)絡(luò)進(jìn)行容錯(cuò)設(shè)計(jì),采用基于碼字選擇的串?dāng)_避免編碼容 忍通道上串?dāng)_效應(yīng)和數(shù)據(jù)緩存的軟錯(cuò)誤,采用三模冗余保護(hù)路由器中的狀態(tài)和 控制寄存器,糾正其中出現(xiàn)的錯(cuò)誤。為實(shí)現(xiàn)本發(fā)明的目的而提供的一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的設(shè)計(jì)方法,包括下列步驟步驟A,設(shè)計(jì)基于蟲洞路由交換方式和輪換路由選擇方式的路由器的軟核;步驟B,對(duì)指定寬度的數(shù)據(jù)設(shè)計(jì)相應(yīng)的SCAC編碼電路和SCAC譯碼電路、 SCAC糾錯(cuò)電路,并將所述SCAC糾錯(cuò)電路加入所述路由器,將所述SCAC編碼 電路和SCAC譯碼電路與所述路由器連接,形成路由器系統(tǒng)的框架;步驟C,對(duì)所述路由器系統(tǒng)的框架設(shè)計(jì)SCAC-TMR容錯(cuò)方案,實(shí)現(xiàn)高可靠 片上網(wǎng)絡(luò)路由器系統(tǒng)。所述步驟C之后還包括步驟步驟D、驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能,并評(píng)估其性能。 步驟A中,所述路由器,包括I/0端口和一個(gè)交換控制單元,其中 所述I/0端口,包括Local端口、 East端口, South端口, West端口和North端口;所述I/0端口中的每個(gè)端口的輸入瑞口包含一個(gè)緩存單元,用于緩存輸入數(shù)據(jù);所述Local端口,用于本地核和所述路由器之間通信;所述East端口, South端口 , West端口和North端口 ,用于所述路由器和相鄰路由器之間通信;所述交換控制單元,用于根據(jù)所述I/O端口的請(qǐng)求為所述I/O端口分配通 信通道。所述交換控制單元按照輪換路由選擇方式為所述I/O端口分配通信通道。所述步驟B包括下列步驟步驟B1、對(duì)指定寬度的數(shù)據(jù),利用SCAC碼字選擇算法,得到最優(yōu)碼字集 合和一致性校驗(yàn)矩陣;步驟B2、從所述最優(yōu)碼字集合中選擇碼字與原始數(shù)據(jù)形成編譯碼本,利 用邏輯優(yōu)化工具SIS將編譯碼本轉(zhuǎn)化成相應(yīng)的SCAC編碼電路和SCAC譯碼電 路;步驟B3、根據(jù)所述一致性校驗(yàn)矩陣生成對(duì)應(yīng)的SCAC糾錯(cuò)電路。 所述步驟B1包括下列步驟步驟Bll、對(duì)于M位的輸入信息,根據(jù)CAC的規(guī)則,生成N位CAC碼字集合.步驟B12、根據(jù)要求,推導(dǎo)群碼的校驗(yàn)矩陣的屬性,得出滿足所述屬性的 所有校驗(yàn)矩陣;步驟B13、對(duì)所述滿足所述屬性的所有校驗(yàn)矩陣進(jìn)行優(yōu)化,獲得一致性校 驗(yàn)矩陣,產(chǎn)生最優(yōu)碼字集合。所述步驟B12包括下列步驟步驟B121、從所述CAC碼字集合中選出碼距等于3的容錯(cuò)子集合; 步驟B122、根據(jù)碼距等于3,推導(dǎo)校驗(yàn)矩陣的屬性,以得出滿足所述屬性 的所有校驗(yàn)矩陣。所述步驟B13包括下列步驟步驟B131、判斷滿足所述屬性的所有校驗(yàn)矩陣是否已經(jīng)進(jìn)行判定,若已 經(jīng)全部進(jìn)行判定,則執(zhí)行步驟B132;否則執(zhí)行步驟B133;步驟B132、將N加上1,重新生成CAC碼字集合,返回步驟B11;步驟B133、從滿足所述屬性的所有校驗(yàn)矩陣中,選取一個(gè)校驗(yàn)矩陣作為 待判定矩陣,從N位CAC碼字集合中,選擇滿足所述待判定矩陣的碼字,將所 述碼字存入碼字集合;步驟B134、若滿足所述待判定矩陣的碼字集合中碼字的數(shù)目滿足編碼M 位信息的數(shù)目,則執(zhí)行步驟B135;否則將待判定矩陣從矩陣集合中刪除,返 回步驟B131;步驟B135、將所述待判定矩陣作為一致性校驗(yàn)矩陣,將所述碼字集合作 為最優(yōu)碼字集合,并輸出所述最優(yōu)碼字集合。 所述步驟B3包括下列步驟步驟B31、根據(jù)一致性校驗(yàn)矩陣生成對(duì)應(yīng)得校驗(yàn)矩陣單元的電路;步驟B32、設(shè)計(jì)能夠輸出糾錯(cuò)信號(hào)的差錯(cuò)譯碼單元的電路;步驟B33、設(shè)計(jì)能夠輸出糾正SCAC碼字中的錯(cuò)誤的差錯(cuò)譯碼單元的電路。所述步驟C包括下列步驟步驟Cl、將負(fù)載譯碼成SCAC編碼,頭包譯碼成海明編碼,形成改進(jìn)的SCAC編碼電路和SCAC譯碼電路,將所述SCAC編碼電路和SCAC譯碼電路設(shè)置在與所述路由器的Local端口相對(duì)應(yīng)的網(wǎng)絡(luò)接口上;步驟C2、修改所述SCAC糾錯(cuò)電路,在所述SCAC糾錯(cuò)電路中添加一控制信號(hào)h,形成改進(jìn)的SCAC糾錯(cuò)電路,使得當(dāng)系統(tǒng)傳輸頭包時(shí),所述改進(jìn)的SCAC糾錯(cuò)電路不工作,并在所述I/O端口的每個(gè)端口的輸出端口添加所述改進(jìn)的SCAC糾錯(cuò)電路;步驟C3、將與所述緩存單元中的握手狀態(tài)機(jī)和交換控制單元中的仲裁狀態(tài)機(jī)相關(guān)的寄存器進(jìn)行三模冗余,并且在交換控制單元中添加海明糾錯(cuò)電路用于頭包糾錯(cuò);步驟C4、實(shí)例化所述路由器的軟核,得到高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)。 所述步驟C3包括下列步驟步驟C31、將所述握手狀態(tài)機(jī)中包括的狀態(tài)寄存器本身,first和last 指針寄存器,數(shù)量寄存器,以及輸出握手信號(hào)寄存器,進(jìn)行三模冗余;步驟C32、將所述仲裁狀態(tài)機(jī)中包括的兩個(gè)狀態(tài)寄存器,相應(yīng)的端口選擇 指針,端口源目標(biāo)寄存器,以及輸出信號(hào)寄存器,進(jìn)行三模冗余;步驟C33、根據(jù)海明校驗(yàn)的原理,設(shè)計(jì)海明編碼的糾錯(cuò)電路,并且將海明 編碼的糾錯(cuò)電路加入到所述交換控制單元,用于糾正頭包中的軟錯(cuò)誤。所述步驟D包括下列步驟步驟Dl、編寫驗(yàn)證文件,設(shè)置頭包使得所述I/O端口的每個(gè)端口都在工 作,驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能;歩驟D2、采用SMIC130nm的工藝庫,綜合所述高可靠片上網(wǎng)絡(luò)路由器系 統(tǒng),得到所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)面積開銷的報(bào)告和標(biāo)準(zhǔn)時(shí)延文件;步驟D3、利用所述驗(yàn)證文件和所述標(biāo)準(zhǔn)時(shí)延文件對(duì)綜合后的所述高可靠 片上網(wǎng)絡(luò)路由器系統(tǒng)進(jìn)行仿真,驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能, 并且得到值變轉(zhuǎn)儲(chǔ)文件;步驟D4、將所述值變轉(zhuǎn)儲(chǔ)文件,所述標(biāo)準(zhǔn)時(shí)延文件和綜合后的所述高可 靠片上網(wǎng)絡(luò)路由器系統(tǒng)加載到功耗評(píng)估工具中,評(píng)估它的實(shí)際功耗。本發(fā)明還提供一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng),所述系統(tǒng)包括路由器、 SCAC編碼電路模塊、SCAC譯碼電路模塊以及驗(yàn)證評(píng)估模塊,其中所述路由器,包括1/0端口、交換控制單元和SCAC糾錯(cuò)電路模塊,其中所述I/0端口,包括Local端口、 East端口, South端口, West端口和 North端口 ;所述Local端口 ,用于本地核和所述路由器之間通信;所述East端口, South端口, West端口和North端口,用于所述路由器 和相鄰路由器之間通信;所述交換控制單元,用于根據(jù)所述I/0端口的請(qǐng)求,為所述I/0端口分配 通信通道;所述SCAC糾錯(cuò)電路模塊,與所述I/0端口的每個(gè)瑞口的輸出端連接,用 于找到并糾正編碼在傳輸中的錯(cuò)誤;所述SCAC編碼電路模塊,與所述Local端口的輸入端連接,用于將輸入 的編碼編碼成SCAC編碼;所述SCAC譯碼電路模塊,與所述SCAC糾錯(cuò)電路連接,用于將所述SCAC 糾錯(cuò)單元輸出的編碼翻譯輸出;所述驗(yàn)證評(píng)估模塊,用于驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能,并 評(píng)估所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的性能。所述SCAC糾錯(cuò)電路模塊,包括校驗(yàn)矩陣單元、差錯(cuò)譯碼單元和糾正單 元,其中所述校驗(yàn)矩陣單元,用于將總線輸出碼字與對(duì)應(yīng)的校驗(yàn)矩陣再次運(yùn)算,得 到的結(jié)果輸入到差錯(cuò)譯碼單元;所述差錯(cuò)譯碼單元,用于根據(jù)輸入的運(yùn)算結(jié)果判定是否有錯(cuò)誤,并將糾錯(cuò) 信息輸入到糾正單元;所述糾正單元,用于根據(jù)糾錯(cuò)信息,糾正碼字相應(yīng)位的錯(cuò)誤。所述SCAC編碼電路模塊和SCAC譯碼電路模塊,位于與所述Local端口相 對(duì)應(yīng)的網(wǎng)絡(luò)接口上。所述交換控制單元,包括海明糾錯(cuò)電路。所述I/O端口的每個(gè)端口的輸入端口包含一個(gè)緩存單元,用于緩存輸入數(shù) 據(jù),以及用于與其它單元進(jìn)行握手。 本發(fā)明的有益效果在于1. 本發(fā)明可以減少片上網(wǎng)絡(luò)的面積和功耗開銷,更加適用于未來的容錯(cuò)多 核處理器設(shè)計(jì);2. 本發(fā)明在通道的輸入端,通過編碼的方法避免導(dǎo)致較大時(shí)延的信號(hào)跳變 出現(xiàn)在通道上,使得信號(hào)可以在普通信號(hào)跳變的信號(hào)到達(dá)時(shí)間之前被輸出端接 受,更加適用于高時(shí)鐘頻率和先進(jìn)工藝下的電路;3.采用本方案的路由器可以確保系統(tǒng)不發(fā)生包路由錯(cuò)誤,負(fù)載錯(cuò)誤,以及 路由崩潰錯(cuò)誤,可以確保片上網(wǎng)絡(luò)可靠地傳輸數(shù)據(jù)。
圖1是TS-HC-TMR容錯(cuò)設(shè)計(jì)方案圖;圖2是本發(fā)明一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的設(shè)計(jì)方法的實(shí)施例流程圖;圖3是本發(fā)明一種高可靠片上網(wǎng)絡(luò)路由器軟核的實(shí)施例的框架圖; 圖4是本發(fā)明中緩存單元與交換控制單元的握手狀態(tài)機(jī)圖; 圖5是本發(fā)明中交換控制單元的仲裁狀態(tài)機(jī)圖;圖6是設(shè)計(jì)SCAC編碼電路和SCAC譯碼電路、SCAC糾錯(cuò)電路的流程圖; 圖7是本發(fā)明中確定具備糾錯(cuò)能力的串?dāng)_避免編碼碼字集合算法流程圖;圖8是本發(fā)明中碼字選擇規(guī)則的一實(shí)施例;圖9是本發(fā)明中設(shè)計(jì)SCAC編碼電路的一實(shí)施例的流程圖;圖10是本發(fā)明中SCAC編碼的糾錯(cuò)電路的一實(shí)施例圖;圖11是本發(fā)明一種高可靠片上網(wǎng)絡(luò)路由器的Local輸入端口圖;圖12是本發(fā)明一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的結(jié)構(gòu)示意圖;圖13是原始路由器,TS-HC-TMR路由器(不包括新的時(shí)鐘生成電路)和 基于SCAC-TMR的高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的面積和功耗開銷對(duì)比圖; 圖14是采用TS-HC-TMR容錯(cuò)方案時(shí)的輸出端時(shí)延圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí) 施例,對(duì)本發(fā)明的一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)及其設(shè)計(jì)方法進(jìn)行進(jìn)一步詳 細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于 限定本發(fā)明。本發(fā)明是一種基于選擇串?dāng)_避免編碼(Selected Crosstalk Avoidance Code, SCAC)-三模冗余(Triple Modular Redundancy, TMR)方案的高可靠片上 網(wǎng)絡(luò)(Network-On-Chip, NOC)路由器(Router)系統(tǒng)及其設(shè)計(jì)方法,包括采 用包傳輸片上網(wǎng)絡(luò)路由器的軟核,SCAC編碼電路、SCAC譯碼電路和SCAC糾錯(cuò)電路,以及高可靠路由器系統(tǒng)的容錯(cuò)方案和評(píng)測(cè)單元確保片上網(wǎng)絡(luò)能夠可靠的 傳輸數(shù)據(jù)。在片上網(wǎng)絡(luò)中,引入基于碼字選擇的串?dāng)_避免編碼(SCAC)的設(shè)計(jì)方法,使得通道上不會(huì)出現(xiàn)引起較大時(shí)延的向量對(duì),可以從通道的輸入端去除串?dāng)_效應(yīng),特別適用于串?dāng)_效應(yīng)顯著的高速電路;同時(shí),根據(jù)片上網(wǎng)絡(luò)中路由器系統(tǒng) 的結(jié)構(gòu)設(shè)計(jì)一種SCAC-TMR容錯(cuò)方案。這種方案要求將在片上網(wǎng)絡(luò)中的數(shù)據(jù)編 碼成SCAC編碼,這種編碼可以容忍路由器通道的串?dāng)_效應(yīng)和存儲(chǔ)單元的軟錯(cuò) 誤;還要求對(duì)路由器中的控制和狀態(tài)寄存器進(jìn)行三模冗余(TMR),使它免受 軟錯(cuò)誤的影響。采用這種容錯(cuò)方案可以避免在片上網(wǎng)絡(luò)中出現(xiàn)由串?dāng)_和軟錯(cuò)誤 導(dǎo)致頭包路由錯(cuò)誤、負(fù)載錯(cuò)誤和路由器崩潰錯(cuò)誤,其中路由器崩潰錯(cuò)誤是由于 狀態(tài)和控制寄存器出現(xiàn)故障,導(dǎo)致系統(tǒng)出現(xiàn)不可恢復(fù)的錯(cuò)誤。最后,優(yōu)化設(shè)計(jì) 方案使得路由器的面積和功耗開銷盡可能小。圖2是本發(fā)明一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的設(shè)計(jì)方法的一實(shí)施例的 流程圖,參照?qǐng)D2,本發(fā)明一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的設(shè)計(jì)方法,包括 下列步驟步驟S100,設(shè)計(jì)基于蟲洞路由交換方式和輪換路由選擇方式的采用 Veri 1 og硬件語言編寫的路由器的軟核;所述路由器的軟核是采用Verilog硬件語言編寫的路由器。 圖3是本發(fā)明一種高可靠片上網(wǎng)絡(luò)路由器的一實(shí)施例框架圖。 根據(jù)國際上常用的基于蟲洞路由交換方式和輪換路由選擇方式,通過握手 狀態(tài)機(jī)和仲裁狀態(tài)機(jī),設(shè)計(jì)通道帶寬和數(shù)據(jù)緩存深度可變的路由器。如圖3 所示,這種路由器包含五個(gè)I/O端口和一個(gè)交換控制(Switch Control)單元。 其中, 一個(gè)I/0端口是用于本地核(Local Core)和路由器(Router)之間通信 的,叫做Local端口。而另外四個(gè)是用于路由器和相鄰路由器之間通信,分別 稱為East端口, South端口, West端口和North端口。在每個(gè)I/0端口中, 僅輸入端口包含一個(gè)緩存單元,負(fù)責(zé)緩存輸入數(shù)據(jù)。同時(shí),緩存單元還同時(shí)負(fù) 責(zé)與其它單元進(jìn)行握手。當(dāng)緩存單元不滿時(shí),只要輸入端接受到輸入請(qǐng)求,就 向請(qǐng)求輸入的核發(fā)出響應(yīng)。緩存單元的輸出端需要與交換控制單元進(jìn)行握手, 請(qǐng)求相應(yīng)的輸出通道。所述本地核可以是處理器或者是存儲(chǔ)單元。所述蟲洞路由交換方式是指數(shù)據(jù)被分成許多小流量控制單位(flit),在 網(wǎng)絡(luò)中以流水方式傳送。不必為被傳送的數(shù)據(jù)包分配與其大小相同的緩沖區(qū)空 間。所述輪換路由選擇方式是指交換控制單元按照East端口-South端口 -West端口-North端口-Local端口-East端口這種輪換的方式選擇待處理的輸 入通道,進(jìn)行仲裁。例如,當(dāng)5個(gè)輸入端口同時(shí)出現(xiàn)端口請(qǐng)求,如果上一個(gè)處 理端口是East端口 ,那么本次將處理South端口的請(qǐng)求。所述握手狀態(tài)機(jī)負(fù)責(zé)控制緩存單元與交換控制單元和交換控制單元與數(shù) 據(jù)包的接收端之間的通信。首先,握手狀態(tài)機(jī)控制緩存單元與交換控制單元的 握手,獲得相應(yīng)的輸出通道,并且傳輸包頭;然后,握手狀態(tài)機(jī)控制緩存單元 與數(shù)據(jù)包接收端進(jìn)行握手,將負(fù)載傳輸?shù)较鄳?yīng)的接收端。圖4是緩存單元與交換控制單元的握手狀態(tài)機(jī)圖。它包括五個(gè)狀態(tài),S0, SI, S2, S3和S4。當(dāng)Reset=l時(shí),握手狀態(tài)機(jī)返回S0。當(dāng)緩存的first和last 指針不同時(shí),握手狀態(tài)機(jī)進(jìn)入SI狀態(tài),將頭包請(qǐng)求信號(hào)h置為1 。當(dāng)收到ack—h 響應(yīng)信號(hào)時(shí),握手狀態(tài)機(jī)進(jìn)入S2狀態(tài)。當(dāng)緩存非空時(shí),發(fā)出數(shù)據(jù)請(qǐng)求信號(hào)。 收到數(shù)據(jù)響應(yīng),握手狀態(tài)機(jī)進(jìn)入S3,進(jìn)行數(shù)據(jù)傳輸。直到計(jì)數(shù)器等于1時(shí), 握手狀態(tài)機(jī)進(jìn)入S4狀態(tài)。最后,握手狀態(tài)機(jī)返回SO狀態(tài)。所述仲裁狀態(tài)機(jī)負(fù)責(zé)仲裁輸入端口的通道請(qǐng)求信號(hào),并且為它們分配相應(yīng) 的通道。它的主要操作是按輪換的方式選擇處理某個(gè)輸入端口的請(qǐng)求信號(hào), 根據(jù)輸入端口包頭的目的地址決定輸出端口,最后按照輸出端口是否空閑決定 響應(yīng)輸入請(qǐng)求。交換控制單元通過仲裁狀態(tài)機(jī)實(shí)現(xiàn)仲裁各I/O端口的請(qǐng)求信號(hào),圖5是交 換控制單元的仲裁狀態(tài)機(jī)圖。當(dāng)Reset二l時(shí),仲裁狀態(tài)機(jī)返回狀態(tài)SO,在下 一個(gè)時(shí)鐘邊沿,仲裁狀態(tài)機(jī)進(jìn)入狀態(tài)Sl。當(dāng)有頭包請(qǐng)求信號(hào)時(shí),仲裁狀態(tài)機(jī) 進(jìn)入狀態(tài)S2。在狀態(tài)S2中,完成選擇等待處理的端口后,仲裁狀態(tài)機(jī)進(jìn)入狀 態(tài)S3。如果目標(biāo)的位置等于本地Router,仲裁狀態(tài)機(jī)進(jìn)入狀態(tài)S4;當(dāng)X方向 不相等時(shí),仲裁狀態(tài)機(jī)進(jìn)入狀態(tài)S5;當(dāng)X相等而Y不相等時(shí),仲裁狀態(tài)機(jī)進(jìn) 入狀態(tài)S6。狀態(tài)S4, S5和S6收到相應(yīng)的響應(yīng)ack—h時(shí),仲裁狀態(tài)機(jī)返回S7, 最后仲裁狀態(tài)機(jī)返回狀態(tài)Sl 。步驟S200,對(duì)指定寬度的數(shù)據(jù)設(shè)計(jì)相應(yīng)的SCAC編碼電路和SCAC譯碼電 路、SCAC糾錯(cuò)電路,并將所述SCAC糾錯(cuò)電路加入所述路由器,將所述SCAC 編碼電路和SCAC譯碼電路與所述路由器連接,形成路由器系統(tǒng)的框架;步驟S210,對(duì)指定寬度的數(shù)據(jù),利用SCAC碼字選擇算法,得到最優(yōu)碼字 集合和一致性校驗(yàn)矩陣;圖6是設(shè)計(jì)SCAC編碼電路和SCAC譯碼電路、SCAC糾錯(cuò)電路的流程圖。 參照?qǐng)D6,對(duì)于M位的輸入信息,首先根據(jù)串?dāng)_避免編碼(CAC)的規(guī)則,生 成N位CAC碼字集合。然后,判斷滿足要求的校驗(yàn)矩陣是否已經(jīng)進(jìn)行判定。如 果全部都被判定過了 ,說明當(dāng)前的N位CAC碼字集合中的碼字的位數(shù)不夠編碼 M位的輸入信息,則將N加上1,重新生成N+1位CAC碼字集合;否則利用校 驗(yàn)矩陣從CAC碼字集合中,選出碼距等于3的容錯(cuò)子集合。接著,判定編碼本 中的碼字?jǐn)?shù)目是否足夠編碼M位信息。如果碼字?jǐn)?shù)目足夠,則輸出該碼字集合 作為最優(yōu)碼字集合;否則,變換校驗(yàn)矩陣,返回第二步重新判定校驗(yàn)矩陣。程 序直到找到合適校驗(yàn)矩陣和最優(yōu)碼字集合結(jié)束。進(jìn)一步地,所述步驟S210,包括下列步驟步驟S211,對(duì)于M位的輸入信息,根據(jù)串?dāng)_避免編碼(Crosstalk Avoidance Code, CAC)的規(guī)則,生成N (N二M+1)位CAC碼字集合;所述串?dāng)_避免編碼可以分為加速編碼(Delay二l+X)、常用編碼(Delay^+2X) 和避免最大時(shí)延編碼(Delay=l+3"。其中常用編碼又分為兩類,即禁止跳變 編碼(Forbidden Transition Code , FTC)和禁止向量編碼(Forbidden Pattern Code, FPC)。在本發(fā)明中,串?dāng)_避免編碼采用禁止向量編碼FPC,即從N位 的碼字全集中去除含有"010"或"101"子向量的碼字,形成CAC碼字集合。例如,假設(shè)輸入信息為3位,那么首先確定4 (3+1)位碼字的碼字全集, 即OOOO, 0010, 0100, 1000, 0110, 1010, 1100, 1110, 0001, 0011, 0111, 1111, 0101, 1001, 1011, 1101,然后從中去掉包含"010"或"101"的子向 量,最終得到禁止向量編碼0000, 0001, 1000, 0110, 1100, 1110, 0011, 0111, 1111, 1001,即CAC碼字集合。用于供下面的步驟進(jìn)行選擇。步驟S212,根據(jù)要求,推導(dǎo)校驗(yàn)矩陣的屬性,得出滿足該屬性的所有校 驗(yàn)矩陣;步驟S2121,從所述CAC碼字集合中選出碼距等于3的容錯(cuò)子集合;Ham(X, Y)表示Cn中的兩碼字的海明距離,其中X, Y表示兩個(gè)任意碼字。 最小的非零海明距離叫做Cn的碼距。步驟S2122,根據(jù)碼距等于3,推導(dǎo)校驗(yàn)矩陣的屬性,以得出滿足該屬性 的所有校驗(yàn)矩陣;推論1當(dāng)且僅當(dāng)生成矩陣中相加等于0T的列向量組,它們的最小列向量數(shù)目等于a,則群碼的碼距等于a。同時(shí),矩陣列向量的維數(shù)m必須不小于1og2(n+l),其中n是碼字的位數(shù)。 符合如上要求的矩陣有很多,較佳地,本發(fā)明通過選擇列向量和列向量重排列,得到所有滿足要求的矩陣,供步驟S2123進(jìn)行優(yōu)化。作為一種可實(shí)施方式,假設(shè)參考設(shè)計(jì)說明書要求電路具有糾正單個(gè)錯(cuò)誤的能力,根據(jù)推論l的推導(dǎo),因?yàn)榇a距等于3,它的校驗(yàn)矩陣中最少有3個(gè)列向量相加等于0T。因此,相應(yīng)校驗(yàn)矩陣必須滿足如下兩個(gè)屬性 1校驗(yàn)矩陣沒有相同的列向量,也沒有向量0T。 2校驗(yàn)矩陣存在由3個(gè)列向量組成的向量組,它們的和等于0T。 同時(shí),矩陣列向量的維數(shù)m必須不小于1og2(n+l),其中n是碼字的位數(shù)。 步驟S213,對(duì)滿足屬性的所有校驗(yàn)矩陣進(jìn)行優(yōu)化,獲得一致性校驗(yàn)矩陣,進(jìn)而產(chǎn)生具備糾錯(cuò)能力的串?dāng)_避免編碼最優(yōu)碼字集合;圖7是本發(fā)明中確定具備糾錯(cuò)能力的串?dāng)_避免編碼碼字集合算法流程圖;圖8是本發(fā)明中碼字選擇規(guī)則的一實(shí)施例;參見圖7和圖8,所述步驟S213,包括下列步驟步驟S2131,判斷滿足屬性的所有校驗(yàn)矩陣是否已經(jīng)進(jìn)行判定,如果已經(jīng) 全部進(jìn)行判定,則執(zhí)行步驟S2132;否則執(zhí)行步驟S2133;步驟S2132,將N加上1,重新生成CAC碼字集合,返回步驟S211;由于滿足N位屬性的所有校驗(yàn)矩陣已經(jīng)全部進(jìn)行判定,仍然找不到符合要 求的碼字的數(shù)目滿足編碼M位信息的數(shù)目,說明當(dāng)前的N位編碼不夠,所以需 要以N+l位重新生成CAC碼字集合。步驟S2133,從滿足所述屬性的所有校驗(yàn)矩陣中,選取一個(gè)校驗(yàn)矩陣作為 待判定矩陣,從N位CAC碼字集合中,選擇滿足所述待判定矩陣的碼字,將所 述碼字存入碼字集合;在選擇碼字的過程中,如果N位CAC碼字集合中的碼字滿足待判定矩陣構(gòu) 成的校驗(yàn)方程,將該碼字添加到符合要求的碼字集合中;反之,該碼字被刪除。定義1如果群碼Cn 二 {X|H ,XT二0Th其中乘操作,是按位與運(yùn)算符,X 群碼的任意碼字,T表示轉(zhuǎn)置,H是群碼的生成矩陣(一致性校驗(yàn)矩陣),則 方程(XlH AT二Cm是群碼Cn的生成方程(一致性校驗(yàn)方程),所有碼字都是 通過方程生成。作為一種可實(shí)施方式,圖8是5位編碼的碼字選擇的一實(shí)施例。子圖(a) 是根據(jù)FPC規(guī)則,從5位的碼字全集中去除包含"101"或"010"的碼字,剩 余的16個(gè)碼字就是FPC碼字集合。子圖(b)是碼距等于3的群碼的校驗(yàn)矩陣H, FPC的碼字需要通過它構(gòu)成的校驗(yàn)方程僅lH ,XT^TV判定。如果碼字符合校驗(yàn) 方程,則碼字屬于具有糾錯(cuò)能力的群碼。例如,F(xiàn)PC的碼字"00111"代入校 驗(yàn)方程運(yùn)算。首先乘操作,矩陣H的列向量(h3,h4,h5)被選中;然后加操作, 列向量(h3,h4,h5)的和等于OT,所以碼字"00111"符合校驗(yàn)方程,它屬于 群碼。當(dāng)FPC的碼字"10011"代入校驗(yàn)方程運(yùn)算,乘運(yùn)算時(shí)列向量(hl,h4, h5) 被選中,加運(yùn)算時(shí)列向量的和等于(1,1,0)T,則碼字"10011"不屬于群碼。 子圖(c)是選擇得到的SFPC集合(Selected FPC),它包含4個(gè)碼字,碼距等 于3 。如果用用該碼字集合編碼2位輸入信息,則片上總線可以同時(shí)避免串?dāng)_ 時(shí)延和提供糾錯(cuò)能力。步驟S2134,若滿足所述待判定矩陣的碼字集合中碼字的數(shù)目滿足編碼M 位信息的數(shù)目,則執(zhí)行步驟S2135;否則將待判定矩陣從矩陣集合中刪除,返 回步驟S2131;步驟S2135,將所述待判定矩陣作為一致性校驗(yàn)矩陣,將所述碼字集合作 為最優(yōu)碼字集合,并輸出所述最優(yōu)碼字集合。步驟S220,從最優(yōu)碼字集合中選擇一定數(shù)目的碼字與原始數(shù)據(jù)形成編譯 碼本,利用邏輯優(yōu)化工具SIS將編譯碼本轉(zhuǎn)化成相應(yīng)的SCAC編碼電路和SCAC 譯碼電路;從步驟S210得到的足夠編碼M位信息的SCAC碼字集合(即最優(yōu)碼字集合) 中,選擇出2M個(gè)SCAC碼字,并且與信息建立合適(合適是指使編碼電路和譯 碼電路的邏輯更加簡單)的映射關(guān)系。這種映射關(guān)系可以使得編譯碼邏輯盡量 小,而且所有編譯碼器輸出端的時(shí)延盡量相等。最后,利用邏輯優(yōu)化工具SIS,優(yōu)化編譯碼邏輯,并利用電路實(shí)現(xiàn)。圖9是本發(fā)明中設(shè)計(jì)SCAC編碼器的一實(shí) 施例的流程圖,如圖9所示,通過步驟S210從CAC碼字中選擇出容錯(cuò)碼字集 合,在步驟S220中,形成編碼邏輯,最后實(shí)現(xiàn)SCAC編碼電路和SCAC譯碼電 路。利用邏輯優(yōu)化工具SIS將編譯碼本轉(zhuǎn)化成相應(yīng)的SCAC編碼電路和SCAC 譯碼電路,是一種現(xiàn)有技術(shù),在此不再一一贅述。步驟S230,根據(jù)一致性校驗(yàn)矩陣生成對(duì)應(yīng)的SCAC糾錯(cuò)電路;所述SCAC糾錯(cuò)電路由校驗(yàn)矩陣單元、差錯(cuò)譯碼單元和糾錯(cuò)單元構(gòu)成。進(jìn)一步地,所述步驟S230,包括下列步驟步驟S231、根據(jù)一致性校驗(yàn)矩陣生成對(duì)應(yīng)得校驗(yàn)矩陣單元的電路; 利用定義1,將一致性校驗(yàn)矩陣的一致性校驗(yàn)方程轉(zhuǎn)化成校驗(yàn)矩陣單元的電路,使得校驗(yàn)矩陣單元實(shí)現(xiàn)將輸入校驗(yàn)矩陣單元的SCAC碼字與一致性校驗(yàn)矩陣再次運(yùn)算的功能。步驟S232、設(shè)計(jì)能夠輸出糾錯(cuò)信號(hào)的差錯(cuò)譯碼單元的電路; 所述差錯(cuò)譯碼單元能夠?qū)崿F(xiàn)將校驗(yàn)矩陣單元的運(yùn)算結(jié)果譯碼成糾錯(cuò)信號(hào)的功能。步驟S233、設(shè)計(jì)能夠輸出糾正SCAC碼字中的錯(cuò)誤的差錯(cuò)譯碼單元的電路; 所述糾錯(cuò)單元能夠?qū)崿F(xiàn)根據(jù)糾錯(cuò)信號(hào)糾正SCAC碼字中的錯(cuò)誤的功能。 步驟S300,對(duì)所述路由器系統(tǒng)的框架設(shè)計(jì)SCAC-TMR容錯(cuò)方案,并實(shí)現(xiàn)基 于SCAC-TMR方案的高可靠片上網(wǎng)絡(luò)路由器系統(tǒng);步驟S310,將負(fù)載譯碼成SCAC編碼,而頭包譯碼成海明編碼,形成改進(jìn) 的SCAC編碼電路和SCAC譯碼電路,將SCAC編碼電路和SCAC譯碼電路設(shè)置在 與Local端口對(duì)應(yīng)的網(wǎng)絡(luò)接口 (Network Interface, NI)上。由于基于片上網(wǎng)絡(luò)的頭包是在頭包握手和負(fù)載握手之間傳輸,而在握手過 程中數(shù)據(jù)總線通常處于高阻狀態(tài)下,不會(huì)對(duì)以后的向量產(chǎn)生串?dāng)_影響,因此頭 包不會(huì)出現(xiàn)串?dāng)_效應(yīng)。因此,只需將負(fù)載譯碼成SCAC編碼,而頭包譯碼成海 明編碼。所述頭包握手是指緩沖單元的輸出端與交換控制單元進(jìn)行握手,向交換控 制單元請(qǐng)求輸出通道。交換控制單元根據(jù)包頭的目的地址分配通道之后,緩沖 單元將包頭發(fā)送到數(shù)據(jù)包接收端。所述負(fù)載握手是指在傳輸包頭之后,緩沖單元的輸出端與數(shù)據(jù)包的接收端 進(jìn)行握手,得到響應(yīng)之后,緩沖單元將負(fù)載發(fā)送到數(shù)據(jù)包接收端。將改進(jìn)的SCAC編碼電路和改進(jìn)的SCAC譯碼電路設(shè)置在與路由器的Local 端口對(duì)應(yīng)的網(wǎng)絡(luò)接口上,使得信息在本地核與所述路由器之間傳輸時(shí)避免串 擾。步驟S320,修改所述SCAC糾錯(cuò)電路,在所述SCAC糾錯(cuò)電路中添加一控 制信號(hào)h,形成改進(jìn)的SCAC糾錯(cuò)電路,使得當(dāng)系統(tǒng)傳輸頭包時(shí),所述改進(jìn)的 SCAC糾錯(cuò)電路不工作,并在所述I/O端口的每個(gè)端口的輸出端口添加所述改 進(jìn)的SCAC糾錯(cuò)電路;其中,所述控制信號(hào)h是與輸出端口對(duì)應(yīng)的輸入端口中的包頭請(qǐng)求信號(hào)h;在數(shù)據(jù)傳輸請(qǐng)求有效時(shí),控制信號(hào)h二l時(shí),表示系統(tǒng)傳輸頭包;控制信號(hào) h^時(shí),表示系統(tǒng)傳輸負(fù)載。步驟S330,將與緩存單元中的握手狀態(tài)機(jī)和交換控制單元中的仲裁狀態(tài) 機(jī)相關(guān)的寄存器進(jìn)行三模冗余,并且在交換控制單元中添加海明糾錯(cuò)電路用于 頭包糾錯(cuò)。所述海明糾錯(cuò)電路是一種現(xiàn)有技術(shù),在此不再一一贅述。為了 Router的控制部分可以容忍軟錯(cuò)誤,使得Router不發(fā)生由軟錯(cuò)誤導(dǎo) 致的崩潰故障。本方案需要將與緩存單元中的握手狀態(tài)機(jī)和交換控制單元中的 仲裁狀態(tài)機(jī)相關(guān)的寄存器進(jìn)行三模冗余。步驟S331,將緩存單元中的握手狀態(tài)機(jī)中包括的狀態(tài)寄存器本身,first 和last指針寄存器,數(shù)量寄存器,以及輸出握手信號(hào)寄存器,進(jìn)行三模冗余;步驟S332,將交換控制單元中的仲裁狀態(tài)機(jī)中包括的兩個(gè)狀態(tài)寄存器, 相應(yīng)的端口選擇指針,端口源目標(biāo)寄存器,以及輸出信號(hào)寄存器,進(jìn)行三模冗 余;所述三模冗余是一種現(xiàn)有技術(shù),本發(fā)明不再一一贅述。步驟S333,根據(jù)海明校驗(yàn)的原理(編碼中特定位進(jìn)行異或,形成一組可以指示出錯(cuò)位的查錯(cuò)信息),設(shè)計(jì)海明編碼的糾錯(cuò)電路,并且將它加入到交換控制單元,用于糾正頭包中的軟錯(cuò)誤。步驟S340,實(shí)例化所述路由器的軟核,得到高可靠片上網(wǎng)絡(luò)路由器系統(tǒng);圖11是本發(fā)明路由器的Local輸入端口圖。圖12是本發(fā)明一種高可靠片 上網(wǎng)絡(luò)路由器系統(tǒng)的結(jié)構(gòu)示意圖。作為一種可實(shí)施方式,假定片上網(wǎng)絡(luò)傳輸長度等于7的頭包,其中4位用 作選址,3位用作記錄負(fù)載的個(gè)數(shù),并且緩存的深度等于4。這樣當(dāng)頭包被編 碼成海明碼后,它的長度等于ll,所以通道的寬度應(yīng)該等于11。同時(shí),負(fù)載 部分被劃分成5位寬的包,這些包被轉(zhuǎn)化成11位基于碼字選擇的禁止跳變編 碼(Selected Forbidden Pattern Code, SFPC)。所以,需要將步驟S310 得到的編譯碼器,如圖11所示,添加到路由器Local端的NI上。其中,h二l 表示系統(tǒng)傳輸頭包,則NI選通海明編碼器HC (7, 11),將輸入的7位頭包 翻譯成ll位的海明編碼,輸入到片上網(wǎng)絡(luò)中;11=0表示系統(tǒng)傳輸負(fù)載,則NI 選通編碼器SFPC (5, 11) (SCAC編碼的一種),5位的數(shù)據(jù)包被翻譯成11 位SFPC編碼傳輸?shù)狡暇W(wǎng)絡(luò)中。同時(shí),需要將步驟S320得到的經(jīng)過修改的 SCAC糾錯(cuò)電路添加到路由器的5個(gè)輸出端口,如圖12所示。接著,5個(gè)緩存 單元中和交換控制單元中的控制和狀態(tài)寄存器都進(jìn)行三模冗余。最后,海明糾 錯(cuò)電路HC (7, 11)添加到交換控制單元中,用于糾正頭包的軟錯(cuò)誤。步驟S400,驗(yàn)證基于SCAC-TMR方案的高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能, 并評(píng)估其性能。步驟S410,編寫驗(yàn)證文件test bench,設(shè)置合適的頭包使得所述I/O端 口每一個(gè)端口都在工作,驗(yàn)證高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能。編寫驗(yàn)證文件test bench的原則,是在East端口的輸入端載入目的地址 是South端口的頭包;在South端口的輸入端載入目的地址是West端口的頭 包;在West端口的輸入端載入目的地址是North端口的頭包;在North端口 的輸入端載入目的地址是Local端口的頭包;在Local端口的輸入端載入目的 地址是East端口的頭包。這樣的設(shè)置可以保證每一個(gè)端口都在工作,方便驗(yàn) 證高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能和功耗。步驟S420,采用SMIC130nm的工藝庫,綜合所述高可靠片上網(wǎng)絡(luò)路由器 系統(tǒng),得到高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)面積開銷的報(bào)告和標(biāo)準(zhǔn)時(shí)延文件 (Standard Delay File, SDF)。步驟S430,利用test bench文件和標(biāo)準(zhǔn)時(shí)延文件對(duì)綜合后的高可靠片上 網(wǎng)絡(luò)路由器系統(tǒng)進(jìn)行仿真,驗(yàn)證高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能,并且得到 值變轉(zhuǎn)儲(chǔ)文件(Value Change Document, VCD)。步驟S440,將值變轉(zhuǎn)儲(chǔ)文件,標(biāo)準(zhǔn)時(shí)延文件和綜合后的高可靠片上網(wǎng)絡(luò) 路由器系統(tǒng)加載到功耗評(píng)估工具PrimePower中,評(píng)估它的實(shí)際功耗。步驟S420-S440中所述的方法均為現(xiàn)有技術(shù),在此不再一一贅述。圖13是原始路由器,TS-HC-T服方案路由器(不包括新的時(shí)鐘生成電路) 和基于SCAC-TMR方案的高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的面積和功耗開銷對(duì)比 圖。其中還列出了各種容錯(cuò)電路的面積和功耗開銷。與TS-HC-TMR方案相比, SCAC-TMR方案可以節(jié)省3337. 09um2的面積開銷,相當(dāng)于原始路由器面積開銷 的18%;可以節(jié)省0.39mw的功耗,相當(dāng)于原始路由器功耗的319L因此,本發(fā) 明可以減少片上網(wǎng)絡(luò)的面積和功耗開銷,更加適用于未來的容錯(cuò)多核處理器設(shè) 計(jì)。相應(yīng)于一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的設(shè)計(jì)方法,本發(fā)明還提供一種高 可靠片h網(wǎng)絡(luò)路由器系統(tǒng),包括路由器、SCAC編碼電絡(luò)模塊和SCAC譯碼電 路模塊、以及驗(yàn)證評(píng)估模塊。所述路由器包括1/0端口、交換控制單元、SCAC糾錯(cuò)電路模塊。 所述I/0端口,包括Local端口、 East端口, South端口, West端口和 North端口。所述Local端口,用于本地核和路由器之間通信;所述East端口, South端口, West端口和North端口,用于路由器和相 鄰路由器之間通信。所述交換控制單元,用于負(fù)責(zé)根據(jù)所述I/O端口的請(qǐng)求為所述I/O端口天 分配通信通道。所述交換控制單元,包括海明糾錯(cuò)電路。所述I/0端口的每個(gè)端口中,僅輸入端口包含一個(gè)緩存單元,負(fù)責(zé)緩存輸 入數(shù)據(jù)。同時(shí),緩存單元還同時(shí)負(fù)責(zé)與其它單元進(jìn)行握手。當(dāng)緩存單元不滿時(shí), 只要輸入端接受到輸入請(qǐng)求,就向請(qǐng)求輸入的核發(fā)出響應(yīng)。緩存單元的輸出端 需要與所述交換控制單元進(jìn)行握手,請(qǐng)求相應(yīng)的輸出通道。所述SCAC糾錯(cuò)電路模i央,位于所述I/0端口中每個(gè)端口的輸岀端,用于找到并糾正編碼在傳輸中的錯(cuò)誤。所述SCAC糾錯(cuò)電路模塊,包括校驗(yàn)矩陣單元將總線輸出碼字與對(duì)應(yīng)的校驗(yàn)矩陣再次運(yùn)算,得到的結(jié)果 輸入到差錯(cuò)譯碼單元;差錯(cuò)譯碼單元根據(jù)輸入的運(yùn)算結(jié)果判定是否有錯(cuò)誤,并將糾錯(cuò)信息輸入 到糾正單元;糾正單元根據(jù)糾錯(cuò)信息,糾正碼字相應(yīng)位的錯(cuò)誤;校驗(yàn)矩陣單元將總線系統(tǒng)單元輸出碼字與對(duì)應(yīng)的校驗(yàn)矩陣再次運(yùn)算,得到的結(jié)果輸入到差錯(cuò)譯碼單元;差錯(cuò)譯碼單元根據(jù)輸入的運(yùn)算結(jié)果判定是否有錯(cuò) 誤,并將糾錯(cuò)信息輸入到糾正單元,如果輸出結(jié)果等于0T,則碼字傳輸沒有錯(cuò)誤,所有輸出保持為0;否則,從校驗(yàn)矩陣中找出與輸出結(jié)果相等的列向量,并且將與該列向量位置相同的輸出設(shè)置成1作為糾錯(cuò)信息。糾正單元根據(jù)糾錯(cuò)信息,糾正碼字相應(yīng)位的錯(cuò)誤,當(dāng)糾錯(cuò)信息輸入o時(shí),表示碼字中相應(yīng)位沒有錯(cuò)誤,保持不變;當(dāng)糾錯(cuò)信息輸入1時(shí),表示碼字中相應(yīng)位出現(xiàn)錯(cuò)誤,信號(hào)翻 轉(zhuǎn)。作為一種可實(shí)施方式,圖IO是本發(fā)明中SCAC編碼的糾錯(cuò)電路的一實(shí)施例。 參照?qǐng)DIO, 一個(gè)5位SCAC編碼的糾錯(cuò)電路,校驗(yàn)矩陣單元將輸入碼字與所述 一致性校驗(yàn)矩陣進(jìn)行運(yùn)算,產(chǎn)生判定結(jié)果。差錯(cuò)譯碼單元負(fù)責(zé)將判定結(jié)果譯碼 成碼字對(duì)應(yīng)信息位的糾錯(cuò)信號(hào)。如果判定結(jié)果是000,則表示碼字沒有錯(cuò)誤。 如果判定結(jié)果同一致性校驗(yàn)矩陣的某個(gè)列向量相等,則表示碼字對(duì)應(yīng)信息位發(fā) 生錯(cuò)誤,需要進(jìn)行糾錯(cuò)。糾正單元根據(jù)糾錯(cuò)信息,糾正碼字相應(yīng)位的錯(cuò)誤。當(dāng) 判定結(jié)果為110,與一致性校驗(yàn)矩陣的第一個(gè)列向量相同,則一定是碼字的第 一位發(fā)生改變,致使判定結(jié)果不等于零向量,碼字的第一位需要被翻轉(zhuǎn)。所述SCAC編碼電路模塊,與所述Local端口的輸入端連接,用于將輸入 的編碼編碼成基于選擇串?dāng)_避免編碼。圖14是采用TS-HC-T服容錯(cuò)方案時(shí)的輸出端時(shí)延圖。采用TS-HC-TMR容 錯(cuò)方案時(shí),延時(shí)采樣寄存器TS需要以d為時(shí)間間隔在1個(gè)周期內(nèi)采樣3次, 則采樣時(shí)間間隔d不能超過l/3個(gè)時(shí)鐘周期。如圖14所示,在130nm工藝和 1GHZ的時(shí)鐘頻率下lmm長的三根導(dǎo)線構(gòu)成的總線系統(tǒng)中,最好的信號(hào)跳變,普通的信號(hào)跳變和最糟糕的信號(hào)跳變?cè)诘诙鶎?dǎo)線上信號(hào)到達(dá)時(shí)間分別是0.75, 0.99和1.3ns (其中信號(hào)的閾值電平等于0. 5v)。假設(shè)普通信號(hào)跳變 下信號(hào)的到達(dá)時(shí)間是采樣時(shí)間。當(dāng)總線上出現(xiàn)最糟糕的信號(hào)跳變時(shí),接收端要 在近1/3個(gè)時(shí)鐘周期(0. 31ns)之后才能接收到信號(hào)。這樣TS-HC-TMR即使延 時(shí)采樣2次,表決的結(jié)果可能依然是錯(cuò)誤的。在先進(jìn)工藝和高時(shí)鐘頻率的電路 中,串?dāng)_導(dǎo)致的時(shí)延通常較大,因此在總線的輸入端處理串?dāng)_效應(yīng)比在輸出端 處理更加可取。本發(fā)明在通道的輸入端,通過編碼的方法避免導(dǎo)致較大時(shí)延的 信號(hào)跳變出現(xiàn)在通道上,使得信號(hào)可以在普通信號(hào)跳變的信號(hào)到達(dá)時(shí)間之前被 輸出端接受,更加適用于高時(shí)鐘頻率和先進(jìn)工藝下的電路。所述SCAC譯碼電路模塊,與所述SCAC糾錯(cuò)電路連接,用于將所述SCAC 糾錯(cuò)單元輸出的編碼翻譯輸出。所述SCAC編碼電路模塊和SCAC譯碼電路模塊,位于與所述Local端口對(duì) 應(yīng)的網(wǎng)絡(luò)接口 (Network Interface, NI)上。所述驗(yàn)證評(píng)估模塊,用于驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能,并 評(píng)估該高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的性能。本發(fā)明的有益效果在于1. 本發(fā)明可以減少片上網(wǎng)絡(luò)的面積和功耗開銷,更加適用于未來的容錯(cuò)多 核處理器設(shè)計(jì);2. 本發(fā)明在通道的輸入端,通過編碼的方法避免導(dǎo)致較大時(shí)延的信號(hào)跳變 出現(xiàn)在通道上,使得信號(hào)可以在普通信號(hào)跳變的信號(hào)到達(dá)時(shí)間之前被輸出端接 受,更加適用于高時(shí)鐘頻率和先進(jìn)工藝下的電路;3. 采用本方案的路由器系統(tǒng)可以確保系統(tǒng)不發(fā)生包路由錯(cuò)誤,負(fù)載錯(cuò)誤, 以及路由崩潰錯(cuò)誤,可以確保片上網(wǎng)絡(luò)可靠地傳輸數(shù)據(jù)。通過結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的描述,本發(fā)明的其它方面及特征對(duì)本 領(lǐng)域的技術(shù)人員而言是顯而易見的。以上對(duì)本發(fā)明的具體實(shí)施例進(jìn)行了描述和說明,這些實(shí)施例應(yīng)被認(rèn)為其只 是示例性的,并不用于對(duì)本發(fā)明進(jìn)行限制,本發(fā)明應(yīng)根據(jù)所附的權(quán)利要求進(jìn)行 解釋。
權(quán)利要求
1、一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的設(shè)計(jì)方法,其特征在于,包括下列步驟步驟A,設(shè)計(jì)基于蟲洞路由交換方式和輪換路由選擇方式的路由器的軟核;步驟B,對(duì)指定寬度的數(shù)據(jù)設(shè)計(jì)SCAC編碼電路和SCAC譯碼電路、SCAC糾錯(cuò)電路,并將所述SCAC糾錯(cuò)電路加入所述路由器,以及將所述SCAC編碼電路和SCAC譯碼電路與所述路由器連接,形成路由器系統(tǒng)的框架;步驟C,對(duì)所述路由器系統(tǒng)的框架設(shè)計(jì)SCAC-TMR容錯(cuò)方案,實(shí)現(xiàn)高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)。
2、 根據(jù)權(quán)利要求1所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟C之后還包括步驟步驟D、驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能,并評(píng)估系統(tǒng)性能。
3、 根據(jù)權(quán)利要求1所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,步驟A中,所述路由器,包括I/0端口和一個(gè)交換控制單元,其中所述I/0端口,包括Local端口、 East端口, South端口, West端口和 North端口;所述I/0端口中的每個(gè)端口的輸入瑞口包含一個(gè)緩存單元,負(fù)責(zé) 緩存輸入數(shù)據(jù);所述Local端口,用于本地核和所述路由器之間通信;所述East端口, South端口 , West端口和North端口,用于所述路由器和相鄰路由器之間通信;所述交換控制單元,用于負(fù)責(zé)根據(jù)所述I/O端口的請(qǐng)求為所述I/O端口分 配通信通道。
4、 根據(jù)權(quán)利要求3所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述交換控制單元按照輪換路由選擇方式為所述I/O端口分配通信通道。
5、 根據(jù)權(quán)利要求2所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟B包括下列步驟步驟B1、對(duì)指定寬度的數(shù)據(jù),利用SCAC碼字選擇算法,得到最優(yōu)碼字集 合和一致性校驗(yàn)矩陣;步驟B2、從所述最優(yōu)碼字集合中選擇碼字與原始數(shù)據(jù)形成編譯碼本,利 用邏輯優(yōu)化工具SIS將編譯碼本轉(zhuǎn)化成相應(yīng)的SCAC編碼電路和SCAC譯碼電 路;步驟B3、根據(jù)所述一致性校驗(yàn)矩陣生成SCAC糾錯(cuò)電路。
6、 根據(jù)權(quán)利要求5所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟B1包括下列步驟步驟Bll、對(duì)于M位的輸入信息,根據(jù)CAC的規(guī)則,生成N位CAC碼字集合.步驟B12、根據(jù)要求,推導(dǎo)群碼的校驗(yàn)矩陣的屬性,得出滿足所述屬性的 所有校驗(yàn)矩陣;步驟B13、對(duì)所述滿足所述屬性的所有校驗(yàn)矩陣進(jìn)行優(yōu)化,獲得一致性校 驗(yàn)矩陣,產(chǎn)生最優(yōu)碼字集合。
7、 根據(jù)權(quán)利要求6所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟B12包括下列步驟步驟B121、從所述CAC碼字集合中選出碼距等于3的容錯(cuò)子集合 步驟B122、根據(jù)碼距等于3,推導(dǎo)校驗(yàn)矩陣的屬性,以得出滿足所述屬性 的所有校驗(yàn)矩陣。
8、 根據(jù)權(quán)利要求6所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟B13包括下列步驟步驟B131、判斷滿足所述屬性的所有校驗(yàn)矩陣是否已經(jīng)進(jìn)行判定,若已 經(jīng)全部進(jìn)行判定,則執(zhí)行步驟B132;否則執(zhí)行步驟B133;步驟B132、將N加上1,重新生成CAC碼字集合,返回步驟B11;步驟B133、從滿足所述屬性的所有校驗(yàn)矩陣中,選取一個(gè)校驗(yàn)矩陣作為 待判定矩陣,從N位CAC碼字集合中,選擇滿足所述待判定矩陣的碼字,將所 述碼字存入碼字集合;步驟B134、若滿足所述待判定矩陣的碼字集合中碼字的數(shù)目滿足編碼M 位信息的數(shù)目,則執(zhí)行步驟B135;否則將待判定矩陣從矩陣集合中刪除,返 回步驟B131;步驟B135、將所述待判定矩陣作為一致性校驗(yàn)矩陣,將所述碼字集合作 為最優(yōu)碼字集合,并輸出所述最優(yōu)碼字集合。
9、 根據(jù)權(quán)利要求5所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟B3包括下列步驟步驟B31、根據(jù)一致性校驗(yàn)矩陣生成對(duì)應(yīng)得校驗(yàn)矩陣單元的電路;步驟B32、設(shè)計(jì)輸出糾錯(cuò)信號(hào)的差錯(cuò)譯碼單元的電路;步驟B33、設(shè)計(jì)輸出糾正SCAC碼字中的錯(cuò)誤的差錯(cuò)譯碼單元的電路。
10、 根據(jù)權(quán)利要求3所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟C包括下列步驟步驟Cl、將負(fù)載譯碼成SCAC編碼,頭包譯碼成海明編碼,形成改進(jìn)的SCAC 編碼電路和SCAC譯碼電路,將所述改進(jìn)的SCAC編碼電路和SCAC譯碼電路設(shè) 置在與所述路由器的Local端口相對(duì)應(yīng)的網(wǎng)絡(luò)接口上;步驟C2、修改所述SCAC糾錯(cuò)電路,在所述SCAC糾錯(cuò)電路中添加一控制 信號(hào)h,形成改進(jìn)的SCAC糾錯(cuò)電路,使得當(dāng)系統(tǒng)傳輸頭包時(shí),所述改進(jìn)的SCAC 糾錯(cuò)電路不工作,并在所述I/O端口的每個(gè)端口的輸出端口添加所述改進(jìn)的 SCAC糾錯(cuò)電路;步驟C3、將與所述緩存單元中的握手狀態(tài)機(jī)和交換控制單元中的仲裁狀 態(tài)機(jī)相關(guān)的寄存器進(jìn)行三模冗余,并且在交換控制單元中添加海明糾錯(cuò)電路用 于頭包糾錯(cuò);步驟C4、實(shí)例化所述路由器的軟核,得到高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)。
11、 根據(jù)權(quán)利要求10所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征 在于,所述步驟C3包括下列步驟步驟C31、將所述握手狀態(tài)機(jī)中包括的狀態(tài)寄存器本身,first和last 指針寄存器,數(shù)量寄存器,以及輸出握手信號(hào)寄存器,進(jìn)行三模冗余;步驟C32、將所述仲裁狀態(tài)機(jī)中包括的兩個(gè)狀態(tài)寄存器,相應(yīng)的端口選擇 指針,端口源目標(biāo)寄存器,以及輸出信號(hào)寄存器,進(jìn)行三模冗余;步驟C33、根據(jù)海明校驗(yàn)的原理,設(shè)計(jì)海明編碼的糾錯(cuò)電路,并且將海明 編碼的糾錯(cuò)電路加入到所述交換控制單元,用于糾正頭包中的軟錯(cuò)誤。
12、 根據(jù)權(quán)利要求2所述的高可靠片上網(wǎng)絡(luò)路由器的設(shè)計(jì)方法,其特征在 于,所述步驟D包括下列步驟步驟Dl、編寫驗(yàn)證文件,設(shè)置頭包使得所述I/O端口的每個(gè)端口都在工 作,驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能;步驟D2、采用SMIC130nm的工藝庫,綜合所述高可靠片上網(wǎng)絡(luò)路由器系 統(tǒng),得到所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)面積開銷的報(bào)告和標(biāo)準(zhǔn)時(shí)延文件;步驟D3、利用所述驗(yàn)證文件和所述標(biāo)準(zhǔn)時(shí)延文件對(duì)綜合后的所述高可靠 片上網(wǎng)絡(luò)路由器系統(tǒng)進(jìn)行仿真,驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能, 并且得到值變轉(zhuǎn)儲(chǔ)文件;步驟D4、將所述值變轉(zhuǎn)儲(chǔ)文件,所述標(biāo)準(zhǔn)時(shí)延文件和綜合后的所述高可 靠片上網(wǎng)絡(luò)路由器系統(tǒng)加載到功耗評(píng)估工具中,評(píng)估它的實(shí)際功耗。
13、 一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng),其特征在于,所述系統(tǒng)包括路由 器、SCAC編碼電路模塊、SCAC譯碼電路模塊以及驗(yàn)證評(píng)估模塊,其中所述路由器,包括1/0端口、交換控制單元和SCAC糾錯(cuò)電路模塊,其中所述I/0端口,包括Local端口、 East端口, South端口, West端口和 North端口;所述Local端口,用于本地核和所述路由器之間通信;所述East端口, South端口, West端口和North端口,用于所述路由器和相鄰路由器之間通信;所述交換控制單元,用于負(fù)責(zé)根據(jù)所述I/0端口的請(qǐng)求,為所述I/0端口分配通信通道;所述SCAC糾錯(cuò)電路模i央,與所述I/0端口的每個(gè)端口的輸出瑞連接,用于找到并糾正編碼在傳輸中的錯(cuò)誤;所述SCAC編碼電路模塊,與所述Local端口的輸入端連接,用于將輸入 的編碼編碼成SCAC編碼;所述SCAC譯碼電路模塊,與所述SCAC糾錯(cuò)電路連接,用于將所述SCAC 糾錯(cuò)單元輸出的編碼翻譯輸出;所述驗(yàn)證評(píng)估模塊,用于驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能,并 評(píng)估所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的性能。
14、 根據(jù)權(quán)利要求13所述的高可靠片上網(wǎng)絡(luò)路由器裝置,其特征在于, 所述SCAC糾錯(cuò)電路模塊,包括校驗(yàn)矩陣單元、差錯(cuò)譯碼單元和糾正單元, 其中所述校驗(yàn)矩陣單元,用于將總線輸出碼字與對(duì)應(yīng)的校驗(yàn)矩陣再次運(yùn)算,得 到的結(jié)果輸入到差錯(cuò)譯碼單元;所述差錯(cuò)譯碼單元,用于根據(jù)輸入的運(yùn)算結(jié)果判定是否有錯(cuò)誤,并將糾錯(cuò) 信息輸入到糾正單元;所述糾正單元,用于根據(jù)糾錯(cuò)信息,糾正碼字相應(yīng)位的錯(cuò)誤。
15、 根據(jù)權(quán)利要求13所述的高可靠片上網(wǎng)絡(luò)路由器裝置,其特征在于, 所述SCAC編碼電路模塊和SCAC譯碼電路模塊,位于與所述Local端口相對(duì)應(yīng) 的網(wǎng)絡(luò)接口上。
16、 根據(jù)權(quán)利要求13所述的高可靠片上網(wǎng)絡(luò)路由器裝置,其特征在于, 所述交換控制單元,包括海明糾錯(cuò)電路。
17、 根據(jù)權(quán)利要求13所述的高可靠片上網(wǎng)絡(luò)路由器裝置,其特征在于, 所述1/0端口的每個(gè)端口的輸入端口包含一個(gè)緩存單元,用于負(fù)責(zé)緩存輸入數(shù) 據(jù),同時(shí)負(fù)責(zé)與其它單元進(jìn)行握手。
全文摘要
本發(fā)明公開了一種高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)及其設(shè)計(jì)方法。高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的設(shè)計(jì)方法,包括步驟設(shè)計(jì)基于蟲洞路由交換方式和輪換路由選擇方式的路由器軟核;對(duì)指定寬度的數(shù)據(jù)設(shè)計(jì)相應(yīng)的SCAC編碼電路和SCAC譯碼電路、SCAC糾錯(cuò)電路,并將所述SCAC糾錯(cuò)電路加入所述路由器,將所述SCAC編碼電路和SCAC譯碼電路與所述路由器連接,形成路由器系統(tǒng)的框架;對(duì)所述路由器系統(tǒng)的框架設(shè)計(jì)SCAC-TMR容錯(cuò)方案,實(shí)現(xiàn)高可靠片上網(wǎng)絡(luò)路由器系統(tǒng);驗(yàn)證所述高可靠片上網(wǎng)絡(luò)路由器系統(tǒng)的功能,并評(píng)估其性能。本發(fā)明能夠減少片上網(wǎng)絡(luò)的面積和功耗開銷,確保片上網(wǎng)絡(luò)可靠地傳輸數(shù)據(jù),避免導(dǎo)致較大時(shí)延的信號(hào)跳變出現(xiàn)在通道上,更加適用于未來的容錯(cuò)多核處理器設(shè)計(jì)。
文檔編號(hào)H04L12/56GK101335606SQ200810117249
公開日2008年12月31日 申請(qǐng)日期2008年7月25日 優(yōu)先權(quán)日2008年7月25日
發(fā)明者穎 張, 李華偉, 李曉維 申請(qǐng)人:中國科學(xué)院計(jì)算技術(shù)研究所