999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于數控分流策略的2DMesh NoC路由節點設計

2016-05-27 08:46:11高健崔建明
單片機與嵌入式系統應用 2016年5期
關鍵詞:方向信號設計

高健,崔建明

(山東科技大學 信息科學與工程學院,青島 266590)

?

高健,崔建明

(山東科技大學 信息科學與工程學院,青島 266590)

摘要:對NoC設計技術進行了研究,設計了采用數控分流策略的NoC路由節點,并基于該節點建立了NoC模型,該模型采用2DMesh拓撲結構,確定性XY路由算法實現。用Verilog HDL完成了NoC模型的功能設計,并對基于該模型的16核CPU進行了RTL級仿真與測試。測試結果顯示,該模型完全實現了NoC的功能,可應用于多核CPU設計。

關鍵詞:數控分流;2DMesh NoC;FPGA

引言

隨著越來越多的處理機內核以及可重復利用的IP核被集成到單個SoC(System on Chip)芯片上,傳統總線結構時間資源利用率低、可擴展性差的問題越來越突出。在此背景下,基于網絡和路由通信的片上網絡(Network on Chip,NoC)體系結構應運而生。NoC體系結構包括資源節點、路由節點和拓撲結構3部分,這也是NoC設計技術主要研究的3個方面。其中路由節點的任務是接收上一節點發來的數據包,根據目的地址將數據包轉發到下一節點。本文以此為切入點,設計了數據和控制信號分流的路由節點。在拓撲結構的研究中,2DMesh雖然不是最優的網絡拓撲結構,但其以帶寬高、結構簡單、復用性強的特點受到眾多研究者的青睞。在此基礎上本文搭建了2DMesh NoC模型。

12DMesh拓撲結構

圖1 2DMesh拓撲結構

NoC的拓撲結構有2D、3D等多種類型,本文采用了2DMesh拓撲結構,如圖1所示,該結構由路由節點、處理單元、互連網絡3個元素組成。其中,路由節點的主要任務是引導數據的流動并暫時存放流動中的數據,流動中的數據包經過路由節點的仲裁后決定向哪個方向流動。處理單元為微控制器、DSP處理器或者存儲器等具有一定處理能力或存儲能力的模塊,本文使用了NiosII軟核。互連網絡決定了網絡節點的連接方式,節點傳輸必須按照互連網絡的拓樸結構進行。

2路由算法

路由算法可以分為確定性路由、自適應性路由等幾類,其中確定性路由應用最為廣泛。在確定性路由中,數據包的路徑只與源節點和目標節點的地址有關,兩個確定的節點之間傳輸數據包的路徑是確定的,與網絡當前各節點的狀態沒有關系。

本文采用確定性XY維路由算法,路由過程為:先沿X方向將數據包送至目的節點所在的列,再沿Y方向將數據包送至目的節點所在的行[1]。

3通信協議及數據包格式

在NoC中,普遍使用的網絡結構是包交換的直接網絡,本文采用的便是基于包交換的虛擬通道數據交換方式。由于在NoC中沒有專門的協議處理機制,所有的協議都必須由硬件處理,這就要求片上網絡的網絡協議不能太復雜。所以通常都要求NoC中的路由算法簡潔、有效,能將數據包完整、無損、順序地發送出去。

處理單元之間通過片上網絡收發數據包通信。所有的路由信息和數據信息都被包含在數據包中。本文中,片上網絡中緩存的大小決定了數據包的大小。由于本文中的緩存是FIFO模塊,而且每個FIFO都正好容納一個數據包,所以數據包設計成了寬度為16位、深度為16個字的形式。

數據包由包頭和包身構成,因為一個緩存正好容納一個數據包,為了使設計簡潔,沒有設計包尾。在數據包中,包頭占了3個字,剩余的13個字是包身,最低兩位是每個字的標志位。數據包格式如表1所列。

表1 數據包格式

4路由節點

圖2 數控分流邏輯

路由節點的主要任務是執行路由算法、接收數據包并轉發到下一節點。一個路由節點需要處理的信號分為兩類,分別為控制信號和輸入/輸出兩路數據信號。如圖2所示,本文將路由節點的信號分流到兩種邏輯電路進行處理,有效提升了路由的流暢性,降低了節點的復雜度。其中控制邏輯主要負責路由、交換等控制功能的實現,主導著數據flit的存儲以及控制數據flit前往下一個節點的方向,而數據邏輯就是flit存儲、傳輸的具體通道和載體。

4.1節點頂層架構

本文中一個NoC路由節點主要由輸入緩存、頭地址寄存器、請求發生器、輪詢仲裁器、預路由模塊、路由選擇器、交叉開關網絡、路由計數器以及輸出緩存(下一節點的輸入緩存)組成,如圖3所示。其中,頭地址寄存器、請求發生器、輪詢仲裁器、預路由模塊、路由選擇器為控制邏輯部分,負責路由、交換等控制功能的實現,主導數據包的存儲以及控制數據包傳輸至正確的方向。輸入緩存和輸出緩存,以及交叉開關網絡,便是數據邏輯部分,負責數據包的傳輸通道和載體。

圖3 NoC頂層架構

4.2具體模塊設計

4.2.1控制邏輯模塊

頭地址寄存器的功能是根據標志位檢測存儲在包頭中的目標節點的地址信息并保存,直至下一個數據包到達,再將寄存器中的信息更新。如圖4所示,其信號分為3類:上一級的寫入使能信號f_en,各個方向的16位輸入數據信號data[15:0],以及從包頭提取出來的7位目標節點地址信息addr[6:0]。關鍵代碼如下所示:

always @(posedge)

if(data_e[1:0] ==2′b10 &&f_en == 1′b1)

addr<= data[8:2];

請求發生器的功能是根據輸入FIFO緩存的滿空情況,產生請求送至輪詢仲裁模塊。其信號如圖5所示,除了時鐘和復位信號外,發送路由請求信號req是由full和empty信號決定的,即輸入緩存的滿空狀況決定的。關鍵代碼如下所示:

always @ (posedgeclk)

if(!rst_n)req<=1′b0;

else if(empty)req<=1′b0;

else if(full)req<= 1′b1;

圖4 頭地址寄存器

圖5 請求發生器

圖6 預路由模塊

如圖6所示,預路由模塊根據頭地址寄存器提取出的目標節點的地址信息,分別進行解析和路由判斷,鑒別出此數據包經過路由節點的目的方向,具體傳輸哪個方向來的數據包,還要由輪詢仲裁器和路由選擇模塊決定。關鍵代碼如下:

always @ (posedgeclk) begin

if(ren ==1) begin

if(addr[5:3]>x0)

(m_en_e,m_en_s,m_en_w,m_en_n)<=6′b10000;

else if(addr[5:3]

(m_en_e,m_en_s,m_en_w,m_en_n)<=6′b001000;

else if(addr[2:0]>y0)

(m_en_e,m_en_s,m_en_w,m_en_n)<=6′b000100;

else if(addr[2:0]

(m_en_e,m_en_s,m_en_w,m_en_n)<=6′b010000;

else

(m_en_e,m_en_s,m_en_w,m_en_n)<=6′b000001;

輪詢仲裁器的任務是在接收到路由請求后,采用優先級輪轉的方式依次響應E(東)、S(南)、W(西)、N(北)4個方向的請求,其仲裁方式如圖7所示,關鍵代碼如下:

case(count)

east:

if(a_req_e == 1′b1 &&d_fullen_e == 1′b0)

ans_e<= 1;

else if(a_req_s == 1′b1 &&d_emptyen_s == 1′b1)

ans_s<= 1;

else if(a_req_w == 1′b1 &&d_emptyen_w == 1′b1)

ans_w<= 1;

else if(a_req_n == 1′b1 &&d_emptyen_n == 1′b1)

ans_n<= 1;

else if(a_req_c == 1′b1 &&d_emptyen_c == 1′b1)

ans_c<= 1;

else (ans_e,ans_s,ans_w,ans_n,ans_c) <= 5′b00000;

圖7 輪詢仲裁

路由選擇模塊是控制邏輯的最后一個模塊,它以預路由模塊和輪詢仲裁器的輸出作為輸入信號,輸出為各個方向的使能信號,即下一級路由緩存的寫使能信號。經過預路由模塊,每個方向都會產生一組至各個方向的使能信號,在正常的路由過程中,每組信號都是one-hot形式的,且下一級只能有一個方向獲得使能,這就對下一級不同方向的路徑進行了選擇。在這種使能組信號的控制下,數據包只可能寫入下一級一個方向的輸入緩存中,至此完成數據包的傳遞過程。

4.2.2數據邏輯模塊

交叉開關網絡如圖8所示,由5選1的多路選擇器組成,每個多選器的輸出通往一個方向。從整體來看,每個方向都有輸入、輸出兩路,分別連接交叉開關網絡和輸入輸出緩存。

圖8 交叉開關網絡

在本文設計的NoC中,緩存模塊分為兩種。一種是路由節點之間的同步FIFO緩存,如圖9所示。其作用是暫存流動中的數據包,接收前一級路由發送來的寫入信號進而將數據寫入緩存,在接到本級路由發來的讀出信號后將數據包讀出,其大小由數據包大小決定(本文中為16×16位),每個路由節點都有來自東、南、西、北4個方向的輸入和輸出。數據輸入時根據上一節點的寫使能信號,將數據先緩存至輸入FIFO中,待數據包存儲滿之后,滿使能置位,發送路由請求,經過輪詢仲裁器的仲裁,得到響應后讀使能有效,將數據包按順序逐個flit傳輸,中間不間斷地讀出。

另一種是與處理器接口相連接的異步FIFO緩存,如圖10所示。由于NoC系統是跨兩個時鐘域的異步系統:一個是片上網絡,另外一個是處理單元。這兩個系統之間就是通過處理器接口相連接的,所以處理器接口緩存便是連接這兩個時鐘域的橋梁。因此,在本設計中,采用異步FIFO作為處理器接口的緩存單元。

圖9 同步FIFO

圖10 異步FIFO

5Verilator仿真與測試

為了對NoC模型進行測試,本文在該模型的基礎上搭建了基于NoisII軟核的4×4的16核CPU,其中,NoC在QuartusII 13.0中使用Altera公司的EP2S180F1508C5芯片的綜合結果如表2所列。本文還對該CPU在Verilator上進行了RTL級仿真,利用該CPU實現了PI運算。

表2 NoC綜合結果

5.1Verilator仿真

Verilator仿真是RTL級仿真的一種,這是一個開放的源碼軟件工具,可以把RTL代碼編譯為C++代碼或SystemC模塊進行仿真的工具鏈。仿真過程為:每個軟核通過NoC向0核發送“hello world!”消息,0核收到消息后打印到GUI,仿真結果略——編者注。

5.2性能測試

本文采用了常用的PI算法對基于NoC模型的16核進行了性能測試。PI的運算體為pi+=W/(1.0+(0.5+i)×(0.5+i)×W2),W=4.0/N,W2=W×W/16.0,N值越大,運算的次數越多,計算結果越接近pi值。軟件算法流程如圖11所示。

圖11 PI運算流程圖

PI運算的測試結果略——編者注。根據T=t2-t1,得到運算時間。當N分別取10、50、100、300、500、1 000、2 000、3 000、4 000、5 000、6 000、7 000、8 000、9 000、10 000時,進行仿真,計算出T1(pi_manycore運算時間)、T2(pi_single運算時間)、加速比T2/T1。

基于NoC模型的16核CPU與單核CPU相比,其加速比如圖12所示,隨著N值的增大,16核CPU的性能更加接近單核的15倍,說明本文設計的NoC模型性能完全滿足多CPU設計的要求。

圖12 16核和單核的加速比

結語

本文設計了一種基于數控分流策略的NoC路由節點,基于該節點構建了2DMesh架構的NoC模型,并對使用該模型搭建的16核CPU進行了仿真與性能測試,測試結果表明,該模型完全實現了NoC的功能,可用于多核CPU的設計。

編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。

參考文獻

[1] 張澤坤.一種NoC路由架構設計與分析[D].西安:西安電子科技大學,2011.

[2] 徐懿,杜高明,李麗,等.基于總線的片上多處理器SoC仲裁算法研究[J].儀器儀表學報,2006,27(6).

[3] S Wallentowitz,A Lankes,A Zaib,et al.一個開源的眾核處理器SoC框架[C]//現場可編程邏輯(FPL)第22次國際會議,2012.

[4] 納瓦畢.Verilog數字系統設計-RTL綜合測試平臺與驗證[M].李廣軍,譯.北京:電子工業出版社,2007.

[5] 汪偉.片上網絡路由節點的設計及性能分析[D].上海:上海大學,2008.

高健(碩士),主要研究方向為嵌入式系統及應用;崔建明(副教授),主要研究方向為微電子學與物聯網技術。

Gao Jian,Cui Jianming

(College of Information Science and Engineering,Shandong University of Science and Technology,Qingdao 266590,China)

Abstract:A node of Network on Chip(NoC) is designed,which is based on data and control separately strategy.A model based on the node is built,which adopts 2DMesh topological structure and XY way-find algorithm.The functional design of the NoC model is completed with Verilog HDL,and the RTL level simulation and testing of the 16-core CPU based on the model is carried out.The test results show that the model can complete all the functions of the NoC and suitable for a CPU which has multiplecores.

Key words:data and control separately;2DMesh NoC;FPGA

收稿日期:(責任編輯:薛士然2015-11-09)

中圖分類號:TP368.1

文獻標識碼:A

猜你喜歡
方向信號設計
2022年組稿方向
計算機應用(2022年2期)2022-03-01 12:33:42
2021年組稿方向
計算機應用(2021年4期)2021-04-20 14:06:36
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
2021年組稿方向
計算機應用(2021年1期)2021-01-21 03:22:38
完形填空二則
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 91香蕉国产亚洲一二三区 | 99在线视频精品| 91麻豆国产在线| 青草视频在线观看国产| 欧美国产日韩在线观看| 波多野结衣AV无码久久一区| 午夜在线不卡| 思思热在线视频精品| 国产精品美女自慰喷水| 国产日韩精品欧美一区喷| 成人自拍视频在线观看| 亚洲av成人无码网站在线观看| 午夜福利视频一区| 99er精品视频| 免费观看三级毛片| 国产精品网址你懂的| 丁香五月亚洲综合在线| 欧美日韩午夜| 福利一区在线| 亚洲成人一区二区| 91国内在线观看| 国产精品深爱在线| www.99在线观看| 夜夜爽免费视频| 伊人AV天堂| 免费女人18毛片a级毛片视频| 麻豆国产原创视频在线播放| 中文字幕丝袜一区二区| 欧美国产日韩另类| 国内精品久久久久鸭| 国产一区在线观看无码| m男亚洲一区中文字幕| 好吊日免费视频| 99在线观看国产| 亚洲男人的天堂在线| 免费国产黄线在线观看| 黄片在线永久| 亚洲欧美日韩色图| 狠狠色香婷婷久久亚洲精品| 午夜毛片免费观看视频 | 中文字幕欧美日韩高清| 久无码久无码av无码| 国产在线八区| 日本尹人综合香蕉在线观看| 毛片大全免费观看| 国产精品妖精视频| 国内精品视频| 日韩国产黄色网站| 九九热免费在线视频| 免费高清毛片| 草草线在成年免费视频2| 亚洲天堂视频在线免费观看| 国产精品尤物铁牛tv| 特级欧美视频aaaaaa| 理论片一区| 国产激情国语对白普通话| 亚洲日韩久久综合中文字幕| 成人午夜福利视频| 91精品国产91欠久久久久| 亚洲高清资源| 久久久久88色偷偷| 97久久免费视频| 美女免费精品高清毛片在线视| 欧美久久网| 亚洲精品少妇熟女| 久久91精品牛牛| 国产高清自拍视频| 久久综合九色综合97婷婷| 任我操在线视频| 亚洲精品在线影院| 狠狠色丁香婷婷综合| 伊人91在线| 精品国产一区91在线| 青草视频网站在线观看| 国产精品亚洲一区二区三区z| 欧美视频二区| 91久久精品国产| 91网在线| 国产高清在线精品一区二区三区| 国产麻豆福利av在线播放| 亚洲资源在线视频| 亚洲av日韩av制服丝袜|