多核系統(tǒng)中NoC通訊架構(gòu)的關(guān)鍵技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 多核處理器已經(jīng)成為處理器的主流,并發(fā)展成為各種通信與媒體應(yīng)用的主流處理平臺(tái)。通訊結(jié)構(gòu)是多核系統(tǒng)中的核心技術(shù)之一,核間通信的效率是影響多核處理器性能的重要指標(biāo)。目前有3種主要的通訊架構(gòu):總線系統(tǒng)結(jié)構(gòu)、交叉開(kāi)關(guān)網(wǎng)絡(luò)和片上網(wǎng)絡(luò)??偩€結(jié)構(gòu)設(shè)計(jì)相對(duì)方便、硬件消耗較少、成本較低;交叉開(kāi)關(guān)是適合用于構(gòu)建大容量系統(tǒng)的交換網(wǎng)絡(luò)結(jié)構(gòu);而片上網(wǎng)絡(luò)是更高層次、更大規(guī)模的片上網(wǎng)絡(luò)系統(tǒng),目前可以解決多核體系結(jié)構(gòu)問(wèn)題,是多核系統(tǒng)最有前途的解決方案之一。文中在分析了NoC結(jié)構(gòu)的基本原理、系統(tǒng)結(jié)構(gòu)和功能的同時(shí),也提供了部分單元的設(shè)計(jì)實(shí)現(xiàn)。
關(guān)鍵詞 多核處理器;核間通信;總線結(jié)構(gòu);交叉開(kāi)關(guān);片上網(wǎng)絡(luò)
在處理器的發(fā)展中,提高處理器主頻的實(shí)現(xiàn)愈加困難,市場(chǎng)上難以看到芯片主頻率高于4 CHz的傳統(tǒng)單處理器。以Intel、AMD公司為代表,依靠不斷提高處理器頻率提升系統(tǒng)性能的時(shí)代即將成為過(guò)去。究其原因有3點(diǎn):首先僅依靠提升主頻難以大幅度提升CPU的性能,從而減緩了消費(fèi)者對(duì)高頻CPU的熱衷;其次當(dāng)CPU主頻達(dá)到2 GHz以上時(shí),處理器功耗也達(dá)到了近100 W,這是目前風(fēng)冷散熱技術(shù)的極限;第三,在嵌入式產(chǎn)品領(lǐng)域,傳統(tǒng)的單核處理器結(jié)構(gòu),不能滿足呈幾何級(jí)數(shù)增長(zhǎng)的計(jì)算規(guī)模的需求。單核模式下,利用局部性能提升整體性能的發(fā)展越來(lái)越慢,而基于多核的線程級(jí)并行技術(shù)卻為性能提高提供了動(dòng)力,為達(dá)到更高的處理效能,多核處理器體系結(jié)構(gòu)應(yīng)運(yùn)而生。
多核處理器是一個(gè)芯片內(nèi)含有兩個(gè)或兩個(gè)以上的“執(zhí)行內(nèi)核”。多核處理器在進(jìn)行體系結(jié)構(gòu)的技術(shù)研究時(shí),比單核處理器,要面臨更多的挑戰(zhàn),諸如核間通訊、存儲(chǔ)器體系、低功耗、軟硬件協(xié)調(diào)等。如何實(shí)現(xiàn)多核內(nèi)核之間相互協(xié)作和通信,確保提高處理速度、提高芯片處理器性能,是核間通訊結(jié)構(gòu)研究的主要內(nèi)容。在多核通訊方式中,目前除繼續(xù)沿用單核SoC中的總線結(jié)構(gòu),如AMBA,CoreConnect,Wishbone,OCP,C*BUS等,主要有交叉開(kāi)關(guān)(Crossbar Switch)、片上網(wǎng)絡(luò)(NoC,Network on-Chip)等結(jié)構(gòu)。其中NoC結(jié)構(gòu)是更高層次、更大規(guī)模的片上網(wǎng)絡(luò)系統(tǒng),目前可以解決多核體系結(jié)構(gòu)問(wèn)題,是多核系統(tǒng)有效的解決方案之一。
1 NoC解決的問(wèn)題及其優(yōu)點(diǎn)
隨著工藝的進(jìn)步,產(chǎn)品的性能、面積、功耗以及上市時(shí)間的限制,使設(shè)計(jì)開(kāi)發(fā)的要求越來(lái)越高。深亞微米設(shè)計(jì)帶來(lái)的問(wèn)題,使得設(shè)計(jì)中保證時(shí)序收斂更加困難。NoC(Network on-Chip)的出現(xiàn)為深亞微米的SoC帶來(lái)了持續(xù)發(fā)展的動(dòng)力。NoC是更高層次、更大規(guī)模的片上系統(tǒng),是片上的網(wǎng)絡(luò)系統(tǒng)。NoC技術(shù)的核心思想是將計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)移植到芯片設(shè)計(jì)中,解決多CPU的體系結(jié)構(gòu)問(wèn)題。由于網(wǎng)絡(luò)結(jié)構(gòu)本質(zhì)就是多CPU系統(tǒng),因此基于網(wǎng)絡(luò)的體系結(jié)構(gòu)是多CPU系統(tǒng)最有前途的解決方案之一。片上網(wǎng)絡(luò)繼承了分布式系統(tǒng)與計(jì)算機(jī)網(wǎng)絡(luò)的概念,互連結(jié)構(gòu)具有各通信模塊之間并行通信,數(shù)據(jù)的通信帶寬高,擴(kuò)展性好,吞吐量大,并可以在一定程度上改善深/超深亞微米條件下信號(hào)傳輸線延遲等優(yōu)點(diǎn),有人稱(chēng)NoC會(huì)成為下一代多核的主流互連結(jié)構(gòu)。
1.1 NoC解決的問(wèn)題
NoC解決的問(wèn)題主要體現(xiàn)在通訊模塊的可重用性和通訊性能的可預(yù)測(cè)性上。
(1)增加通訊模塊的可重用性。一般SoC概念中,可重用性是IP模塊的復(fù)用?;谀K的設(shè)計(jì)方法,能夠增強(qiáng)設(shè)計(jì)的可重用性,進(jìn)而減小制造工藝同設(shè)計(jì)能力之間的差距??芍赜眉夹g(shù)的優(yōu)越性在于以基于模塊的設(shè)計(jì),搭建整個(gè)系統(tǒng),減少單獨(dú)開(kāi)發(fā)每個(gè)部件的設(shè)計(jì)時(shí)間,同時(shí)減少人為設(shè)計(jì)的出錯(cuò)可能,因此降低了系統(tǒng)的設(shè)計(jì)和驗(yàn)證時(shí)間。但是當(dāng)制造工藝發(fā)展到0.13μm以下后,模塊間的互連延遲成為限制系統(tǒng)整體性能的瓶頸,僅靠IP模塊的復(fù)用已遠(yuǎn)不能滿足整體性能的需求,片上網(wǎng)絡(luò)結(jié)構(gòu)正是利用通信部件的可重用技術(shù),將不同資源單元之間的路由連接通過(guò)規(guī)則的通信部件進(jìn)行連接,為深亞微米技術(shù)帶來(lái)的問(wèn)題提供解決方案。
(2)加強(qiáng)通訊性能的可預(yù)測(cè)性。片上網(wǎng)絡(luò)因其規(guī)則的物理布局和通信網(wǎng)絡(luò)結(jié)構(gòu),通信性能變得可預(yù)測(cè)。從物理性能的角度分析,片上網(wǎng)絡(luò)結(jié)構(gòu)決定了其版圖物理性能的可預(yù)測(cè)性。除時(shí)鐘、電源布線外,交換單元間的互連長(zhǎng)度以及帶寬都是同定不變的,而設(shè)計(jì)的不確定性和不規(guī)則性都限制在資源單元內(nèi)部,對(duì)于其他資源單元沒(méi)有造成影響;從設(shè)計(jì)和驗(yàn)證時(shí)間角度分析,片上網(wǎng)絡(luò)基于模塊的可重用性使得設(shè)計(jì)和驗(yàn)證的時(shí)間都可預(yù)測(cè),由于片上網(wǎng)絡(luò)結(jié)構(gòu)的規(guī)則性,將任務(wù)分配等設(shè)計(jì)問(wèn)題劃分到了資源單元內(nèi)部,進(jìn)而將整體應(yīng)用劃分為獨(dú)立任務(wù)。這樣使得片上網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)在較大程度上獨(dú)立于具體的實(shí)現(xiàn)階段,更好地進(jìn)行模塊化沒(méi)計(jì),增加了通訊性能的可預(yù)測(cè)性。
1.2 NoC的優(yōu)點(diǎn)
NoC設(shè)計(jì)采用全局異步局部同步的方式解決了整個(gè)芯片全局同步面臨的問(wèn)題,有較好的可重用性和可擴(kuò)展性,平均通信帶寬較高。在NoC中,處理核與網(wǎng)絡(luò)的通訊是通過(guò)簡(jiǎn)單的握手協(xié)議來(lái)完成的,因此網(wǎng)絡(luò)與各處理器的電氣參數(shù)、時(shí)鐘信號(hào)都可以相對(duì)獨(dú)立處理,容易控制。此外網(wǎng)絡(luò)與處理器間也可以使用異步通訊,這就不需要系統(tǒng)時(shí)鐘的全局同步,避免了龐大時(shí)鐘樹(shù)所帶來(lái)的時(shí)鐘和面積問(wèn)題,而局部時(shí)鐘線的大量采用可以大幅降低系統(tǒng)功耗。
NoC的各同步單元在遵守通信協(xié)議的前提下協(xié)同工作,如有NoC系統(tǒng)有擴(kuò)展的需要,只需增加一個(gè)系統(tǒng)中已經(jīng)存在的通信開(kāi)關(guān)的副本,同時(shí)設(shè)計(jì)一個(gè)通信接口,把擴(kuò)展的功能單元集成到NoC的網(wǎng)絡(luò)拓?fù)渲芯涂赏瓿?。NoC有可復(fù)用可擴(kuò)展的通信機(jī)制,同時(shí)改用全局異步局部同(Glo bal Asynohronized Local Synchronized,GALS)方式工作,沒(méi)有全局的控制信號(hào)的干預(yù),所以NoC的可擴(kuò)展性好。
衡量NoC性能的主要指標(biāo)就是通信帶寬。NoC采用全局異步局部同步的通信方式,雖然得到了一些好處,但缺點(diǎn)也明顯,例如實(shí)時(shí)通信帶寬不能達(dá)理想高度。但從整個(gè)NoC的平均通信帶寬上看,全局的平均通信帶寬比基于總線方式的平均通信帶寬高。總之隨著工藝集成度的逐漸提高,NoC在解決全局時(shí)鐘同步問(wèn)題、深亞微米效應(yīng)、擴(kuò)展性和設(shè)計(jì)與生產(chǎn)之間的鴻溝上都優(yōu)于傳統(tǒng)設(shè)計(jì)方法。
2 NoC的拓?fù)浣Y(jié)構(gòu)
拓?fù)浣Y(jié)構(gòu)關(guān)心的是節(jié)點(diǎn)的布局和互連。NoC拓?fù)浣Y(jié)構(gòu)的選擇對(duì)系統(tǒng)性能和芯片面積有明顯的影響。NoC可根據(jù)應(yīng)用的需要采用不同的拓?fù)浣Y(jié)構(gòu),可分為規(guī)則結(jié)構(gòu)、非規(guī)則結(jié)構(gòu)等。相對(duì)于規(guī)則拓?fù)浣Y(jié)構(gòu),不規(guī)則拓?fù)浣Y(jié)構(gòu)可以提高性能、降低功耗、減小面積,但同時(shí)產(chǎn)生版圖設(shè)計(jì)、不均勻的線長(zhǎng)等設(shè)計(jì)問(wèn)題。拓?fù)浣Y(jié)構(gòu)的衡量標(biāo)準(zhǔn)通常是以理論上影響路由成本和性能為基礎(chǔ),除了要考慮普通網(wǎng)絡(luò)中所關(guān)心的節(jié)點(diǎn)數(shù)量、邊的數(shù)量、網(wǎng)絡(luò)維度、網(wǎng)絡(luò)直徑、平均距離、對(duì)分寬度之外,還要考慮通信模式的嵌入屬性,例如消息吞吐量、傳輸延遲、功耗、芯片而積等。
圖1是簡(jiǎn)單的NoC拓?fù)浣Y(jié)構(gòu),拓?fù)浣Y(jié)構(gòu)體現(xiàn)NoC中通訊節(jié)點(diǎn)在芯片中的分布和連接。由于系統(tǒng)需求、節(jié)點(diǎn)模塊的尺寸和位置不同,需要不同類(lèi)型的拓?fù)浣Y(jié)構(gòu),有很多種可供選擇的拓?fù)浣Y(jié)構(gòu)。良好的拓?fù)浣Y(jié)構(gòu)必須考慮以下因素:路由節(jié)點(diǎn)與處理器節(jié)點(diǎn)或者路由節(jié)點(diǎn)之間的通信帶有明顯的局部性特征;NoC中資源節(jié)點(diǎn)的物理尺寸與通訊節(jié)點(diǎn)的物理尺寸相互影響;NoC使用物理連線作為通信信道,因此節(jié)點(diǎn)之間的連接不能太復(fù)雜,且要具有易擴(kuò)展性。
片上網(wǎng)絡(luò)結(jié)構(gòu)常用的為直接型結(jié)構(gòu),即網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)與相鄰節(jié)點(diǎn)之間以點(diǎn)對(duì)點(diǎn)方式或直接互聯(lián)的方式連接,如網(wǎng)格(Mesh)結(jié)構(gòu),Mesh結(jié)構(gòu)足規(guī)則的NoC拓?fù)浣Y(jié)構(gòu),具備硬件實(shí)現(xiàn)簡(jiǎn)單、網(wǎng)絡(luò)擴(kuò)展性好等優(yōu)點(diǎn),因此做為NoC以最為常用拓?fù)浣Y(jié)構(gòu)。包括了規(guī)則的Mesh結(jié)構(gòu)、不規(guī)則的Mesh結(jié)構(gòu)、多層Mesh結(jié)構(gòu)、稀疏的Mesh結(jié)構(gòu),二維環(huán)狀Mesh結(jié)構(gòu),還有胖樹(shù)結(jié)構(gòu)、八角形網(wǎng)絡(luò)等。圖2所示為采用二維網(wǎng)格結(jié)構(gòu)的片上網(wǎng)絡(luò),這是較常用的系統(tǒng)結(jié)構(gòu)。該二維網(wǎng)格結(jié)構(gòu)由資源單元和網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)成,其中網(wǎng)絡(luò)結(jié)構(gòu)包括交換單元、通信通道和資源與網(wǎng)絡(luò)的接口,資源單元由嵌入式系統(tǒng)或者存儲(chǔ)器系統(tǒng)構(gòu)成。圖中S表示交換單元,P與C分別表示處理器單元與緩沖存儲(chǔ)器,D表示DSP單元,re表示可配置單元,如FPGA單元。mi表示資源與網(wǎng)絡(luò)的接口,M表示存儲(chǔ)單元。圖中每一個(gè)方形區(qū)域(Region)用于映射不同結(jié)構(gòu)的系統(tǒng),例如處理器子系統(tǒng)和存儲(chǔ)器子系統(tǒng)合成的區(qū)域,區(qū)域的規(guī)??梢源笥谝话愕馁Y源單元,但區(qū)域與片上網(wǎng)絡(luò)其他部分的互連需要通過(guò)交換單元進(jìn)行。
法國(guó)Pierre et Marie Curie大學(xué)的Pierre Guerrier等人在2000年提出了稱(chēng)為胖樹(shù)(Fat-tree)結(jié)構(gòu)的網(wǎng)絡(luò)結(jié)構(gòu),如圖3所示。r是通訊節(jié)點(diǎn),p是資源節(jié)點(diǎn),其在設(shè)計(jì)一種可升級(jí)、可編程的集成網(wǎng)絡(luò)時(shí)采用了這種結(jié)構(gòu)。與二維網(wǎng)狀網(wǎng)絡(luò)相比,胖樹(shù)結(jié)構(gòu)中樹(shù)的深度決定了點(diǎn)對(duì)點(diǎn)的延遲,兩個(gè)資源結(jié)點(diǎn)間的通訊最多需要經(jīng)過(guò)3個(gè)通訊結(jié)點(diǎn)。
與此同時(shí),F(xiàn).Karim等人在設(shè)計(jì)網(wǎng)絡(luò)處理器時(shí)提出了八角形網(wǎng)絡(luò)結(jié)構(gòu),如圖4所示。類(lèi)似于胖樹(shù)網(wǎng)絡(luò),該網(wǎng)絡(luò)中兩個(gè)資源結(jié)點(diǎn)間的點(diǎn)對(duì)點(diǎn)的延遲取決于源點(diǎn)與終點(diǎn)的相對(duì)位置。任意兩個(gè)資源結(jié)點(diǎn)間的通訊最多需要通過(guò)兩個(gè)內(nèi)部連線。
3 NoC的通訊協(xié)議
NoC是片上通信基礎(chǔ)結(jié)構(gòu),借鑒網(wǎng)絡(luò)中的分層思想,NoC設(shè)計(jì)采用普通的通信分層方法,定義5個(gè)協(xié)議層:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和系統(tǒng)層。圖5是NoC一個(gè)典型的層次結(jié)構(gòu)。
(1)物理層。物理層實(shí)現(xiàn)連接處理器資源與網(wǎng)絡(luò)的鏈路寬度和鏈路方向,因此帶寬負(fù)載能力、數(shù)據(jù)包大小及在兩節(jié)點(diǎn)之間的傳輸延遲等物理信息都是檢驗(yàn)物理層設(shè)計(jì)質(zhì)量的評(píng)估標(biāo)準(zhǔn)。片上網(wǎng)絡(luò)的物理層通訊采用握手協(xié)議完成,而握手協(xié)議可以分為同步協(xié)議與異步協(xié)議兩種。圖6為同步握手協(xié)議的示意圖,圖6(a)為物理通道信號(hào)。與計(jì)算機(jī)網(wǎng)絡(luò)多采用串行通訊方式不同,由于片上連線資源豐富,NoC可以使用并行通訊方式。因此同步方式和異步方式的Data信號(hào)寬度n,為>1的整數(shù)。握手協(xié)議需要請(qǐng)求信號(hào)Req和應(yīng)答信號(hào)Ack完成通訊雙方握手操作,除此以外,同步方式需要時(shí)鐘信號(hào)Clock同步其余信號(hào)。
(2)數(shù)據(jù)鏈路層。數(shù)據(jù)鏈路層的功能就是將信息的每一個(gè)字準(zhǔn)確地從一個(gè)節(jié)點(diǎn)傳輸?shù)较噜彽墓?jié)點(diǎn)上,定義了資源節(jié)點(diǎn)、通訊節(jié)點(diǎn)以及兩個(gè)通訊節(jié)點(diǎn)之間的傳輸協(xié)議,保證物理連接之間可靠的信息傳輸。由于兩個(gè)相鄰的節(jié)點(diǎn)可能以異步傳輸模式工作,因此需要考慮數(shù)據(jù)的出錯(cuò)檢測(cè)與糾錯(cuò)外,數(shù)據(jù)鏈路層還需要注意硬件同步問(wèn)題,同時(shí)實(shí)現(xiàn)數(shù)據(jù)編碼和更好地控制數(shù)據(jù)傳輸率以及功耗管理。物理層和數(shù)據(jù)鏈路層均與工藝有關(guān),即如采用新工藝,必須重新定義這兩個(gè)層。
報(bào)文格式的定義如圖7所示。報(bào)文由若干個(gè)幀組成。幀可分為頭幀、尾幀和實(shí)體幀3類(lèi)。所有3類(lèi)幀的組成相同,如圖8所示,均由頭標(biāo)識(shí)位,尾標(biāo)識(shí)位和幀負(fù)載位組成。
(3)網(wǎng)絡(luò)層。負(fù)責(zé)建立互連鏈接以及路由策略,因此片上網(wǎng)絡(luò)中各傳輸路徑的利用情況,在較大程度上取決于網(wǎng)絡(luò)層的設(shè)計(jì)結(jié)果。不同的鏈接建立方式在不同的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中性能各不相同,因此針對(duì)不同的應(yīng)用和片上網(wǎng)絡(luò)結(jié)構(gòu),需要制定相應(yīng)的鏈接建立方式。
(4)傳輸層。負(fù)責(zé)監(jiān)視網(wǎng)絡(luò)流量、對(duì)數(shù)據(jù)包進(jìn)行拆分及組裝,因此數(shù)據(jù)包發(fā)送速度、掉包率以及解決方案是衡量傳輸層設(shè)計(jì)質(zhì)量的標(biāo)準(zhǔn)。另外傳輸層對(duì)網(wǎng)絡(luò)傳輸路徑上的流量控制,直接影響到數(shù)據(jù)傳輸?shù)耐掏铝?,這也是衡量傳輸層性能的指標(biāo)。
(5)系統(tǒng)層。該層的重要功能包括信息的同步和管理、接收端數(shù)據(jù)格式的轉(zhuǎn)換以及一些與應(yīng)用相關(guān)的功能等。
4 路由算法
路由策略的研究是NoC中的一個(gè)重要內(nèi)容,在給定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)下,決定數(shù)據(jù)包在網(wǎng)絡(luò)中的投遞路徑。其目的是使數(shù)據(jù)包的網(wǎng)絡(luò)延時(shí)、數(shù)據(jù)吞吐率、數(shù)據(jù)包投遞所需的功耗和可靠性都達(dá)到指標(biāo)。
NoC路由算法的分類(lèi):依照路由結(jié)果的計(jì)算位置、路徑選擇方式、路徑距離等方法,由算法決定數(shù)據(jù)包在網(wǎng)絡(luò)結(jié)構(gòu)中傳輸?shù)姆较?,把傳輸路徑集合限制為合理的路徑子集。如果消息的路由完全由它的源和目的地址決定,與網(wǎng)絡(luò)中其他流量無(wú)關(guān),這種路由算法稱(chēng)為確定性路由,對(duì)于每一個(gè)源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間,采用確定性路由得到一條路徑計(jì)算結(jié)果。而自適應(yīng)路由算法是允許路徑上的其它流量影響數(shù)據(jù)包的路由策略,對(duì)于每一對(duì)源和目的節(jié)點(diǎn),算法可根據(jù)網(wǎng)絡(luò)的擁堵?tīng)顩r給出多條的路徑計(jì)算結(jié)果。路由計(jì)算模塊是一個(gè)相對(duì)獨(dú)立的處理單元,通常需要根據(jù)不同的算法改變交換節(jié)點(diǎn)中的路由計(jì)算模塊,就可以實(shí)現(xiàn)NoC路由算法的改變。
維序路由采用較為廣泛的路由算法,應(yīng)用了確定性路由的方法,數(shù)據(jù)包無(wú)論其路徑上的鏈路是否阻塞都要沿該路徑走下去。該算法的思想是數(shù)據(jù)包先在低維上投遞,直至數(shù)據(jù)包在該維度上相對(duì)于目的節(jié)點(diǎn)的偏移量為0,然后轉(zhuǎn)移到下一維度以相同的模式進(jìn)行投遞,直到達(dá)到目的節(jié)點(diǎn)。因此維序路由是分布式路由,也是一種較小距離路由。
圖9是二維Mesh網(wǎng)格中維序路由的一種算法,稱(chēng)為xy路由。表示不同源節(jié)點(diǎn)、目的節(jié)點(diǎn)下維序路由算法得出的路由路徑結(jié)果以及在二維Mesh網(wǎng)絡(luò)中,路由路徑的可能轉(zhuǎn)向。數(shù)據(jù)包先在x維度上投遞,然后在y維度上投遞,直至達(dá)到目的節(jié)點(diǎn),該路由算法不會(huì)出現(xiàn)死鎖現(xiàn)象。
5 交換技術(shù)
交換技術(shù)是按照某種方式動(dòng)態(tài)地分配傳輸線路和接口的資源,是影響網(wǎng)絡(luò)性能,決定交換節(jié)點(diǎn)結(jié)構(gòu)的重要技術(shù)。NoC中運(yùn)用的交換技術(shù)可分為兩類(lèi):面向連接的和無(wú)連接的。面向連接的交換方式主要有電路交換,無(wú)連接的方式主要有存儲(chǔ)交換、虛切通和蟲(chóng)孔交換。
(1)電路交換(Circuit Switching)是一種面向連接的交換機(jī)制。在通信之前,要通過(guò)信息頭按照路由規(guī)則選路,然后建立路徑,同時(shí)預(yù)定所經(jīng)過(guò)路徑的信道資源。目的端在成功收到此信息頭后將沿原路返回一個(gè)應(yīng)答,源節(jié)點(diǎn)收到此應(yīng)答后便開(kāi)始傳輸數(shù)據(jù)。數(shù)據(jù)傳輸之前源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間建立直接的連接路徑,一旦數(shù)據(jù)開(kāi)始傳輸,消息的傳輸不會(huì)阻塞。數(shù)據(jù)部分在網(wǎng)絡(luò)中傳輸時(shí)將獨(dú)占此路徑中各段鏈路的整個(gè)帶寬,無(wú)需做路由選擇。
(2)存儲(chǔ)交換(Store and Forward Switching)是先將數(shù)據(jù)完全存儲(chǔ),然后進(jìn)行路南決策,最后再轉(zhuǎn)發(fā)到下一節(jié)點(diǎn)的一種交換機(jī)制。NoC中的存儲(chǔ)交換主要以分組為流控單元,每個(gè)分組有一個(gè)分組頭,含有源、目的節(jié)點(diǎn)地址以及其它控制信息。路由節(jié)點(diǎn)接收到一個(gè)分組后,先將整個(gè)分組存儲(chǔ)在緩存器中,從分組頭中獲取路由信息由路由器的路南決策單元選擇一條輸出通道后,置位交叉矩陣中的內(nèi)部連接,如果下一路由節(jié)點(diǎn)中有足夠的空間存放此分組,就將此分組轉(zhuǎn)發(fā)到下一路由節(jié)點(diǎn)。存儲(chǔ)交換的優(yōu)點(diǎn)是通道只在一個(gè)數(shù)據(jù)包需要傳輸?shù)臅r(shí)候才被占用。
(3)虛切通交換(Virtual Cut-throuth Switching)將分組進(jìn)一步劃分為更小的片,并按順序排好,將所需的路由信息放入第一個(gè)片中,在無(wú)阻塞的情況下,路由節(jié)點(diǎn)收到頭片后,從中讀取路由信息,然后由路由決策單元負(fù)責(zé)選路,如果輸出通道空閑,則將頭片轉(zhuǎn)發(fā)出去,后續(xù)片緊隨頭片向前路由,從而在較大程度上縮小了存儲(chǔ)交換的時(shí)延。由于在任何一個(gè)節(jié)點(diǎn)上都可能有多條消息被阻塞,每一個(gè)節(jié)點(diǎn)都要提供能存儲(chǔ)所要通過(guò)他的數(shù)據(jù)的存儲(chǔ)空間。所以每一個(gè)節(jié)點(diǎn)都需要較大的存儲(chǔ)空間。
(4)蟲(chóng)孔交換(Wormhole Switching)是目前NoC中的主流交換機(jī)制。它和虛切通交換的思想基本相同,只是二者在發(fā)生阻塞時(shí)所表現(xiàn)出的行為不同。在蟲(chóng)孔交換中,數(shù)據(jù)包也被細(xì)分成片,以流水的方式在網(wǎng)絡(luò)上傳輸,并且允許一個(gè)分組由一個(gè)片組成。頭片中包含路由信息,其他數(shù)據(jù)片都跟隨頭片在他確定的路徑上流動(dòng),就像蟲(chóng)子一樣。當(dāng)頭片發(fā)生阻塞時(shí),分組中的所有片都將停止前進(jìn),頭片緩存在當(dāng)前節(jié)點(diǎn),數(shù)據(jù)片就地緩存在其后的若干個(gè)中間節(jié)點(diǎn)中。每個(gè)路由節(jié)點(diǎn)只需提供一個(gè)片大小的緩存資源。蟲(chóng)孔交換對(duì)數(shù)據(jù)包大小和路徑長(zhǎng)度不敏感,資源占用少,實(shí)現(xiàn)代價(jià)小,且效率高,適合NoC使用。蟲(chóng)孔交換的示意圖如圖10所示。
蟲(chóng)孔交換結(jié)構(gòu)的處理過(guò)程如下:數(shù)據(jù)包的片段到達(dá)蟲(chóng)孔交換結(jié)構(gòu),存儲(chǔ)在輸入通道緩存單元中,并進(jìn)行路由計(jì)算。得到路由信息后,數(shù)據(jù)包提出傳輸請(qǐng)求,仲裁器根據(jù)請(qǐng)求進(jìn)行帶寬資源分配,一旦該數(shù)據(jù)片被允許傳輸,它將被交換到目的端口并投遞出去,直到數(shù)據(jù)包的最后一個(gè)片段離開(kāi)交換節(jié)點(diǎn)。根據(jù)此處理過(guò)程,蟲(chóng)孔交換電路的結(jié)構(gòu)如圖11所示,由緩存單元、路由計(jì)算單元、仲裁請(qǐng)求管理單元、交換分配和交換陣列5部分組成。
在VLSI實(shí)現(xiàn)中,NoC交換節(jié)點(diǎn)多采用流水結(jié)構(gòu)設(shè)計(jì),一般流水處理結(jié)構(gòu)分為路由計(jì)算、通道分配、交換分配、數(shù)據(jù)交換和傳輸?shù)?級(jí)。在NoC設(shè)計(jì)中,總是希望得到良好的網(wǎng)絡(luò)性能,從交換節(jié)點(diǎn)設(shè)計(jì)角度考慮,減少交換結(jié)構(gòu)的流水處理級(jí)數(shù)是縮短網(wǎng)絡(luò)延時(shí)的有效方法,流水處理級(jí)數(shù)越少,數(shù)據(jù)包通過(guò)交換節(jié)點(diǎn)的時(shí)間就越短。
不同的NoC交換技術(shù),對(duì)應(yīng)著不同的網(wǎng)絡(luò)性能和實(shí)現(xiàn)代價(jià),要根據(jù)實(shí)際要求進(jìn)行選擇。
6 片上網(wǎng)絡(luò)面臨的挑戰(zhàn)
為提高片上網(wǎng)絡(luò)的資源單元處理速度,降低通信通路間以及資源單元互連問(wèn)的通信延遲,片上網(wǎng)絡(luò)的設(shè)計(jì)面臨以下幾方面挑戰(zhàn):
(1)任務(wù)分配與調(diào)度,片上網(wǎng)絡(luò)將通信任務(wù)分配到合適的處理單元,并且盡量以最佳方式為這些任務(wù)進(jìn)行排序,此步驟是典型的多處理器系統(tǒng)的關(guān)鍵設(shè)計(jì)步驟。
(2)網(wǎng)絡(luò)分配,包括處理單元映射與路徑分配。處理單元映射對(duì)系統(tǒng)功耗起著決定性的影響,路徑分配則是對(duì)執(zhí)行性能產(chǎn)生直接影響。
(3)動(dòng)態(tài)網(wǎng)絡(luò)最佳化路徑分配,對(duì)靜態(tài)通信路徑分配時(shí),由于對(duì)即時(shí)性的要求較低,因此只要對(duì)現(xiàn)有的最短路徑進(jìn)行確認(rèn)即可。但對(duì)于片上網(wǎng)絡(luò)的動(dòng)態(tài)通信而言,需要將計(jì)算機(jī)網(wǎng)絡(luò)中的動(dòng)態(tài)網(wǎng)絡(luò)調(diào)度算法進(jìn)行調(diào)整,應(yīng)用到片上網(wǎng)絡(luò)應(yīng)用中。
7 結(jié)束語(yǔ)
NoC通訊方式是目前多核系統(tǒng)通訊結(jié)構(gòu)中研究最為廣泛的結(jié)構(gòu),也使得NoC成為當(dāng)前研究熱點(diǎn),部分大學(xué)、研究所以及工業(yè)界的研究單位正積極從事NoC研究工作,但是NoC依然面臨著許多技術(shù)挑戰(zhàn)。在實(shí)際應(yīng)用中,應(yīng)根據(jù)系統(tǒng)的實(shí)際要求,選擇合適的拓?fù)浣Y(jié)構(gòu)和交換技術(shù),避免一味追求最新的技術(shù)而帶來(lái)其他的問(wèn)題。