国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多核處理器核間高速通訊架構(gòu)的研究

2011-02-26 09:41:12王少軒趙忠惠陳亞寧
電子與封裝 2011年6期
關(guān)鍵詞:仲裁數(shù)據(jù)包路由

汪 健,張 磊,王少軒,趙忠惠,陳亞寧

(中國(guó)兵器工業(yè)第214研究所蘇州研發(fā)中心,江蘇 蘇州 215163)

1 引言

在當(dāng)今處理器的發(fā)展中,提高處理器主頻的做法實(shí)現(xiàn)起來似乎更加困難,用戶市場(chǎng)上難以看到芯片主頻率高達(dá)4GHz或者4GHz以上的傳統(tǒng)單核處理器出現(xiàn)。世界頂級(jí)芯片巨頭Intel、AMD公司為代表的供應(yīng)商,依靠不斷提高處理器頻率提升系統(tǒng)性能的時(shí)代即將成為過去。究其原因可能有三點(diǎn):首先僅僅依靠提升主頻已經(jīng)很難大幅度提升CPU的性能,從而減緩了消費(fèi)者對(duì)高頻CPU的熱衷;其次當(dāng)CPU主頻達(dá)到2GHz以上的時(shí)候,處理器功耗也達(dá)到了近100W,這已經(jīng)是目前風(fēng)冷散熱技術(shù)的極限;第三,在嵌入式產(chǎn)品領(lǐng)域,傳統(tǒng)的單核處理器結(jié)構(gòu)越來越不能滿足呈幾何級(jí)數(shù)增長(zhǎng)的計(jì)算規(guī)模的需求。單核模式下的利用局部性追求性能提升的腳步已經(jīng)放緩,而基于多核的線程級(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)多個(gè)內(nèi)核之間相互協(xié)作和通信,確保提高處理速度、提高芯片處理器性能就是核間通訊結(jié)構(gòu)研究的主要內(nèi)容,也是學(xué)術(shù)界關(guān)注的重點(diǎn)。在多核通訊方式中,目前除了繼續(xù)沿用單核SOC中的總線結(jié)構(gòu),如AMBA、CoreConnect、Wishbone、OCP、C*BUS等,主要還有交叉開關(guān)(Crossbar switch)、片上網(wǎng)絡(luò)(NoC,Network on-Chip)等結(jié)構(gòu)。本文將對(duì)這幾種主流結(jié)構(gòu)進(jìn)行討論。

2 總線結(jié)構(gòu)體系

多核處理器系統(tǒng)的總線結(jié)構(gòu)如圖1所示。從圖中可以看到,多核處理器總線結(jié)構(gòu)硬件可以分為三個(gè)主要部分:處理器(計(jì)算節(jié)點(diǎn))、總線接口(通訊節(jié)點(diǎn))和片上總線。雖然時(shí)鐘同步問題和傳統(tǒng)的總線結(jié)構(gòu)限制了多核處理器總線架構(gòu)的發(fā)展,并且由于性能和功耗的限制,總線連接的設(shè)備數(shù)量一般以低于12個(gè)最為合適,但就實(shí)用而言,總線結(jié)構(gòu)設(shè)計(jì)方便、硬件消耗少、成本低,在中小規(guī)模多核芯片中也是一種不錯(cuò)的選擇。

2.1 共享總線結(jié)構(gòu)

共享總線結(jié)構(gòu)如圖2所示。總線上方的處理器為主設(shè)備,是通訊發(fā)起方;下方的設(shè)備為從設(shè)備,全局總線將全部片上部件連接起來。主設(shè)備可以由n個(gè)處理器構(gòu)成,從設(shè)備為n個(gè)本地存儲(chǔ)器和共享設(shè)備。n個(gè)本地存儲(chǔ)器分別屬于各個(gè)處理器,即這n個(gè)本地存儲(chǔ)器在邏輯上統(tǒng)一編址,但每個(gè)處理器只能訪問自己的存儲(chǔ)地址空間;共享設(shè)備為共享存儲(chǔ)器、旗語(yǔ)存儲(chǔ)器和中斷控制器。

在共享存儲(chǔ)器的多處理器系統(tǒng)中,多個(gè)同時(shí)進(jìn)行的共享存儲(chǔ)器讀寫操作可能會(huì)使數(shù)據(jù)變得不可靠,對(duì)于共享可寫存儲(chǔ)單元的訪問,會(huì)破壞數(shù)據(jù)的完整性,因此必須采取同步措施才能保證讀寫操作的正確性。旗語(yǔ)控制器即用來實(shí)現(xiàn)多核之間的同步功能,標(biāo)記該處理器核可否對(duì)某共享區(qū)域發(fā)起讀寫操作。中斷控制器主要實(shí)現(xiàn)多核之間的任務(wù)調(diào)度,為了對(duì)其他處理器核發(fā)起中斷,發(fā)起中斷請(qǐng)求的處理器核訪問中斷請(qǐng)求寄存器,如果中斷使能寄存器中允許中斷請(qǐng)求,中斷控制器產(chǎn)生外部中斷請(qǐng)求信號(hào)或者快速中斷請(qǐng)求信號(hào)使處理器核進(jìn)入相應(yīng)的中斷服務(wù)程序。

2.2 層次化總線結(jié)構(gòu)

共享總線結(jié)構(gòu)串行分配主設(shè)備的總線周期,不僅效率低而且不能支持兩對(duì)以上的設(shè)備同時(shí)通訊。隨著總線上集成的處理器數(shù)目的增多,這個(gè)固有的缺點(diǎn)表現(xiàn)得越來越明顯。為了克服這些缺點(diǎn),緩解通訊瓶頸的壓力,在原有全局總線的基礎(chǔ)上,為每個(gè)處理器增加本地總線,并將本地存儲(chǔ)器連到本地總線上,使每個(gè)處理器通過本地總線與本地內(nèi)存通訊,構(gòu)成局部的總線網(wǎng)絡(luò),實(shí)現(xiàn)了層次化通訊結(jié)構(gòu)和層次化存儲(chǔ)器結(jié)構(gòu),提高了并行處理能力。層次化總線結(jié)構(gòu)如圖3所示。

局部總線負(fù)責(zé)處理器核與本地存儲(chǔ)器之間的通訊,全局總線實(shí)現(xiàn)處理器核對(duì)共享模塊的訪問,兩層總線通過總線橋連接,這樣同時(shí)減少了關(guān)鍵路徑上的總線負(fù)載。處理器之間的通訊是通過對(duì)共享存儲(chǔ)器區(qū)的訪問完成的,即分配一段存儲(chǔ)空間,讓所有處理器都可以訪問,并合理安排各處理器的訪問機(jī)制,依次讀寫共享存儲(chǔ)區(qū),從而完成處理器之間的通訊。

總線通訊的主要優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單、協(xié)議簡(jiǎn)明、總線優(yōu)先級(jí)可靈活設(shè)置,尤其適用于設(shè)備優(yōu)先級(jí)有明確排序的系統(tǒng)。主要缺點(diǎn)首先是擴(kuò)展性不強(qiáng)。隨著總線設(shè)備數(shù)量的增加,總線上的寄生電容等參數(shù)也變大,從而導(dǎo)致性能降低。因此當(dāng)總線上需要掛接上百個(gè)設(shè)備時(shí),這將是不可逾越的鴻溝。其次是并行性差??偩€無法支持一對(duì)以上的用戶同時(shí)通訊,設(shè)備串行使用總線。這兩個(gè)缺點(diǎn)無疑限制了總線在多核處理器核間通訊中的應(yīng)用。

3 交叉開關(guān)網(wǎng)絡(luò)

3.1 交叉開關(guān)的功能

交叉開關(guān)(Cross-bar)是片上網(wǎng)絡(luò)的一種,來源于計(jì)算機(jī)網(wǎng)絡(luò)的一種交換結(jié)構(gòu),是業(yè)界公認(rèn)用于構(gòu)建大容量系統(tǒng)的交換網(wǎng)絡(luò)結(jié)構(gòu)。Cross-bar引入了交換矩陣這種新的交換方式,摒棄了共享帶寬的交換方式,在數(shù)據(jù)交換上是一場(chǎng)革命性的變化。Crossbar交換網(wǎng)絡(luò)使用仲裁機(jī)制確定數(shù)據(jù)流向,很好地解決了總線結(jié)構(gòu)的擁塞問題。Cross-bar的拓?fù)浣Y(jié)構(gòu)如圖4所示。

在多處理器Cross-bar通訊設(shè)計(jì)中,每個(gè)處理器核可以有獨(dú)立的一級(jí)緩存(L1 Cache),共享二級(jí)緩存L2 Cache。L2 Cache被用來作為數(shù)據(jù)交換的共享存儲(chǔ)器,而各個(gè)處理器核使用L1 Cache作為其私有存儲(chǔ)器。共享的二級(jí)緩存具有很大的優(yōu)勢(shì)。首先,二級(jí)緩存的全部資源可以被任何一個(gè)處理器訪問,當(dāng)二級(jí)緩存的數(shù)據(jù)更新之后,多個(gè)處理器并不需要做緩存數(shù)據(jù)同步的工作,工作量相對(duì)減少了,而且極大地降低了緩存數(shù)據(jù)延遲問題,這有利于處理器性能的提升。其次共享的二級(jí)緩存任何一個(gè)處理器都可以根據(jù)工作量的大小來決定占用多少二級(jí)緩存資源,利用效率相對(duì)于獨(dú)立的二級(jí)緩存得到了極大的提高。

Cross-bar的作用是為處理器訪問存儲(chǔ)器提供較大的帶寬。其由n條橫向和m條縱向的連線構(gòu)成的網(wǎng)狀結(jié)構(gòu)使得每一個(gè)處理器能夠和任意一塊L 2 Cache進(jìn)行連接。每一條交叉線中的交叉位置等效于一個(gè)開關(guān),需要控制邏輯來控制具體是哪一個(gè)核與L2 Cache連接。如果有不同的處理器核需要同時(shí)訪問同一塊L2 Cache,則需要有相應(yīng)的仲裁機(jī)制對(duì)不同處理器核的訪問進(jìn)行控制。

3.2 一種典型的Cross-bar設(shè)計(jì)實(shí)現(xiàn)

Cross-bar的基本原理是讓處理器核能與不同的Cache塊相連,進(jìn)行數(shù)據(jù)的傳遞。在多核處理器中Cross-bar要設(shè)計(jì)成雙向的,主要負(fù)責(zé)控制多個(gè)處理器核與多個(gè)緩存區(qū)、輸入/輸出設(shè)備之間的數(shù)據(jù)傳輸。所有在Cross-bar中的數(shù)據(jù)交換都有兩個(gè)方向,因此整個(gè)Cache Cross-bar要分成兩個(gè)獨(dú)立的部分,處理器到緩存的CPU-Cache開關(guān)模塊(processor-cache cross-bar PCX)和緩存到處理器的Cache-CPU開關(guān)模塊(cache-processor cross-bar CPX)。PCX模塊管理從CPU核到二級(jí)緩存、輸入/輸出設(shè)備的通信;CPX模塊管理從二級(jí)緩存、輸入輸出設(shè)備至CPU核的通信。處理器會(huì)通過Cache Cross-bar中的PCX部分向L2 Cache發(fā)出數(shù)據(jù)請(qǐng)求,而L2 Cache則會(huì)通過Cache Cross-bar中的CPX部分向處理器發(fā)送返回的數(shù)據(jù)以及一些缺失或者命中的信息。PCX的結(jié)構(gòu)和CPX的結(jié)構(gòu)除了輸入輸出端口的數(shù)量有差別之外,其他的功能是類似的。

圖5是Cross-bar的數(shù)據(jù)交換示意圖。

在一個(gè)時(shí)鐘周期內(nèi),只允許一個(gè)數(shù)據(jù)包發(fā)送給一個(gè)特定的目標(biāo)。當(dāng)有多個(gè)單元發(fā)送數(shù)據(jù)包給同一個(gè)目標(biāo)時(shí),交叉開關(guān)會(huì)暫時(shí)保存這些數(shù)據(jù)包并裁決這些包的發(fā)送順序,而不會(huì)改變或處理這些數(shù)據(jù)包。交叉開關(guān)可以處理兩種通信請(qǐng)求方式:第一種是發(fā)送一個(gè)數(shù)據(jù)包,在一個(gè)時(shí)鐘周期內(nèi)完成;第二種是連續(xù)發(fā)送兩個(gè)數(shù)據(jù)包,在兩個(gè)時(shí)鐘周期內(nèi)完成。一般一個(gè)數(shù)據(jù)包從源傳輸?shù)侥繕?biāo)所需的總時(shí)鐘周期數(shù)可能大于理論上所需的周期數(shù),這是因?yàn)楫?dāng)多個(gè)源同時(shí)發(fā)送數(shù)據(jù)包到同一個(gè)目標(biāo)時(shí),PCX(或是CPX)發(fā)送一個(gè)特定數(shù)據(jù)包的時(shí)間會(huì)大于一個(gè)時(shí)鐘周期。

源單元一次可發(fā)送最多兩個(gè)單數(shù)據(jù)包請(qǐng)求或一個(gè)雙數(shù)據(jù)包請(qǐng)求到一個(gè)特定的目標(biāo)單元。PCX模塊為每個(gè)源單元—目標(biāo)單元提供一個(gè)隊(duì)列緩沖器(Data Queue,DQ)來保存數(shù)據(jù)包,緩沖器為兩個(gè)數(shù)據(jù)包深度。PCX模塊在發(fā)送一個(gè)數(shù)據(jù)包給目標(biāo)單元后,會(huì)發(fā)送一個(gè)確認(rèn)信號(hào)給源單元。每個(gè)源單元通過這個(gè)確認(rèn)信號(hào)來監(jiān)控隊(duì)列緩沖器是否已滿。每個(gè)源單元會(huì)發(fā)送一個(gè)數(shù)據(jù)包和一個(gè)目標(biāo)識(shí)別碼(Identifier,ID)給CPX模塊。CPX模塊從二級(jí)緩存、輸入/輸出設(shè)備接受數(shù)據(jù)包并發(fā)送給多個(gè)處理器核。緩存和輸入/輸出設(shè)備能處理的數(shù)據(jù)包是有限的。當(dāng)目標(biāo)單元達(dá)到接受極限時(shí),會(huì)發(fā)送一個(gè)停止信號(hào)到PCX模塊,這個(gè)信號(hào)會(huì)阻止PCX模塊向源單元發(fā)送確認(rèn)信號(hào)。

3.3 仲裁器的設(shè)計(jì)

多核處理器運(yùn)行過程中會(huì)有多個(gè)處理器核可能會(huì)同時(shí)請(qǐng)求相同緩存塊的內(nèi)容,因此仲裁部分是必須的,仲裁器是cross-bar的核心模塊之一。仲裁部分首先會(huì)根據(jù)核所發(fā)出的請(qǐng)求先后順序發(fā)出確認(rèn)信號(hào)到贏得仲裁的核,在這個(gè)過程中最先發(fā)出請(qǐng)求的核具有最高的優(yōu)先級(jí)。仲裁器用來決定是哪個(gè)核贏得了對(duì)L2 Cache的請(qǐng)求訪問權(quán)。對(duì)于仲裁的需求,無論是PCX還是CPX都是相同的,因此在設(shè)計(jì)上可以將仲裁器設(shè)計(jì)成可重用的結(jié)構(gòu),以提供給CPX和PCX。

仲裁器的主要功能這樣設(shè)計(jì):采用深度為若干的FIFO存儲(chǔ)來自于處理器核的傳輸請(qǐng)求,可定義越早發(fā)出的請(qǐng)求優(yōu)先級(jí)越高,也可以定義其他的優(yōu)先級(jí)。仲裁器會(huì)以請(qǐng)求發(fā)出的先后順序來給各個(gè)處理器核發(fā)送訪問L2 Cache的確認(rèn)信號(hào)。因此對(duì)于不同的處理器核在同一時(shí)間發(fā)出的請(qǐng)求,仲裁器采取不偏向于任意一個(gè)核的方式進(jìn)行處理,具體的實(shí)現(xiàn)方式在仲裁器的結(jié)構(gòu)中進(jìn)行定義。根據(jù)L2 Cache塊的輸入信號(hào),可停止對(duì)處理器核發(fā)出確認(rèn)信號(hào)。如果請(qǐng)求FIFO滿,則對(duì)處理器核發(fā)出停止發(fā)送請(qǐng)求信號(hào)。

仲裁器通過流水線來實(shí)現(xiàn)整個(gè)仲裁過程。流水線的基本周期包括三個(gè),分別是PQ、PA和PX。PQ周期處理器核發(fā)出請(qǐng)求,PA周期仲裁器進(jìn)行仲裁,PX周期發(fā)送確認(rèn)信號(hào)給處理器核,并實(shí)現(xiàn)數(shù)據(jù)的多路選擇,仲裁器流水結(jié)構(gòu)如圖6所示。

所有請(qǐng)求首先被發(fā)送到輸入寄存器,輸入寄存器及其后面的電路包括FIFO、旁路選擇器和請(qǐng)求選擇器一起構(gòu)成了仲裁流水線的PA周期。這些電路用來實(shí)現(xiàn)對(duì)請(qǐng)求的緩存操作。由于采用了先入先出的機(jī)制,所有緩存的數(shù)據(jù)是按照先后次序存儲(chǔ)的,也就達(dá)到了最先發(fā)出的請(qǐng)求會(huì)有最高的優(yōu)先級(jí)的要求。如果仲裁器沒有正在處理之前的請(qǐng)求,當(dāng)前的請(qǐng)求會(huì)被直接發(fā)送到請(qǐng)求寄存器,而如果之前還有請(qǐng)求在仲裁器中進(jìn)行處理,則當(dāng)前的請(qǐng)求會(huì)被先存儲(chǔ)到FIFO中。請(qǐng)求寄存器以及整個(gè)左半部分的電路構(gòu)成了仲裁流水線的PX周期。左半部分電路中的升序優(yōu)先編碼器和降序優(yōu)先編碼器(DES PE)實(shí)現(xiàn)了對(duì)同一時(shí)間發(fā)出的請(qǐng)求采取不偏向仲裁的功能。在仲裁結(jié)束后,相應(yīng)確認(rèn)信號(hào)會(huì)發(fā)送給贏得仲裁的處理器核。

采用不同的處理器,仲裁器時(shí)序的要求是不同的,要根據(jù)處理器的實(shí)際進(jìn)行設(shè)計(jì),此處不再詳述。

4 片上網(wǎng)絡(luò)結(jié)構(gòu)

NoC(Network on-Chip)是更高層次、更大規(guī)模的片上系統(tǒng),是片上的網(wǎng)絡(luò)系統(tǒng)。NoC技術(shù)的核心思想是將計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)移植到芯片設(shè)計(jì)中來,徹底解決多CPU的體系結(jié)構(gòu)問題。由于網(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),有人稱NoC會(huì)成為下一代多核的主流互連結(jié)構(gòu)。

4.1 NoC的拓?fù)浣Y(jié)構(gòu)

拓?fù)浣Y(jié)構(gòu)體現(xiàn)了NoC中通訊節(jié)點(diǎn)在芯片中的分布和連接。由于系統(tǒng)需求、節(jié)點(diǎn)模塊的尺寸和不同的位置,需要不同類型的拓?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)方式或直接互連的方式連接。如網(wǎng)格(Mesh)結(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),還有胖樹結(jié)構(gòu)、八角形網(wǎng)絡(luò)等。圖8所示為采用了二維網(wǎng)格結(jié)構(gòu)(2D mesh)的片上網(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ò)的接口(mi),資源單元由嵌入式系統(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ò)其他部分的互連需要通過交換單元進(jìn)行。

4.2 NoC的通訊協(xié)議

NoC是一種片上通信基礎(chǔ)結(jié)構(gòu),借鑒網(wǎng)絡(luò)中的分層思想,NoC設(shè)計(jì)采用了一個(gè)普通的通信分層方法,定義了5個(gè)協(xié)議層:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層和系統(tǒng)層。圖9是NoC一個(gè)典型的層次結(jié)構(gòu)。

(1)物理層

物理層實(shí)現(xiàn)連接處理器資源與網(wǎng)絡(luò)的鏈路寬度和鏈路方向,因此帶寬負(fù)載能力、數(shù)據(jù)包大小、數(shù)據(jù)包在兩節(jié)點(diǎn)之間的傳輸延遲等物理信息都是檢驗(yàn)物理層設(shè)計(jì)質(zhì)量的評(píng)估標(biāo)準(zhǔn)。

(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ù)鏈路層還需要注意硬件同步問題,同時(shí)實(shí)現(xiàn)數(shù)據(jù)編碼和更好地控制數(shù)據(jù)傳輸率以及功耗管理。物理層和數(shù)據(jù)鏈路層均與工藝有關(guān),也就是說,如果采用新工藝,必須重新定義這兩個(gè)層。

(3)網(wǎng)絡(luò)層

網(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.3 路由算法

路由策略的研究是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路由算法的分類主要有:依照路由結(jié)果的計(jì)算位置,依照路徑選擇方式,依照路徑距離等方法,由算法決定了數(shù)據(jù)包在網(wǎng)絡(luò)結(jié)構(gòu)中傳輸?shù)姆较颍芽赡艿膫鬏斅窂郊舷拗茷楹侠淼穆窂阶蛹?。如果消息的路由完全由它的源和目的地址決定,與網(wǎng)絡(luò)中其他流量無關(guān),這種路由算法稱為確定性路由,對(duì)于每一個(gè)源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間,采用確定性路由得到唯一一條路徑計(jì)算結(jié)果。而自適應(yīng)路由算法是允許路徑上的其他流量影響數(shù)據(jù)包的路由策略,對(duì)于每一對(duì)源和目的節(jié)點(diǎn),算法可以根據(jù)網(wǎng)絡(luò)的擁堵狀況給出多條的路徑計(jì)算結(jié)果。路由計(jì)算模塊是一個(gè)相對(duì)獨(dú)立的處理單元,通常只需要根據(jù)不同的算法改變交換節(jié)點(diǎn)中的路由計(jì)算模塊,就可以實(shí)現(xiàn)NoC路由算法的改變。

維序路由是采用較為廣泛的路由算法,采用了確定性路由的方法,數(shù)據(jù)包不管其路徑上的鏈路是否阻塞都要沿該路徑走下去。該算法的思想是數(shù)據(jù)包先在低維上投遞,直到數(shù)據(jù)包在該維度上相對(duì)于目的節(jié)點(diǎn)的偏移量為0,然后轉(zhuǎn)移到下一維度以相同的模式進(jìn)行投遞,直到達(dá)到目的節(jié)點(diǎn)。因此維序路由是一種分布式路由,也是一種最小距離路由。

圖10是二維Mesh網(wǎ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)象。

4.4 交換技術(shù)

交換技術(shù)是按照某種方式動(dòng)態(tài)地分配傳輸線路和接口的資源,是影響網(wǎng)絡(luò)性能、決定交換節(jié)點(diǎn)結(jié)構(gòu)的重要技術(shù)。NoC中運(yùn)用的交換技術(shù)主要可分為兩類:面向連接的和無連接的。面向連接的交換方式主要有電路交換,無連接的方式主要有存儲(chǔ)交換、虛切通和蟲孔交換。

(1)電路交換(Circuit Switching)是一種面向連接的交換機(jī)制。在開始通信之前,一般要通過一個(gè)信息頭按照一定的路由規(guī)則選路,然后建立路徑,同時(shí)預(yù)定所經(jīng)過路徑的信道資源。目的端在成功收到這個(gè)信息頭后將沿原路返回一個(gè)應(yīng)答,源節(jié)點(diǎn)收到這個(gè)應(yīng)答后便開始傳輸數(shù)據(jù)。數(shù)據(jù)傳輸之前源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間建立直接的連接路徑,一旦數(shù)據(jù)開始傳輸,消息的傳輸從不會(huì)阻塞。數(shù)據(jù)部分在網(wǎng)絡(luò)中傳輸時(shí)將獨(dú)占此路徑中各段鏈路的整個(gè)帶寬,并且不需要再做路由選擇。

(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è)片中(稱為頭片,后續(xù)片稱為數(shù)據(jù)片),在無阻塞的情況下,路由節(jié)點(diǎn)收到頭片后,從中讀取路由信息,然后由路由決策單元負(fù)責(zé)選路,如果輸出通道空閑,則將頭片轉(zhuǎn)發(fā)出去,后續(xù)片緊隨頭片向前路由,從而大大縮小了存儲(chǔ)交換的時(shí)延。由于在任何一個(gè)節(jié)點(diǎn)都有可能有多條消息被阻塞,每一個(gè)節(jié)點(diǎn)都要提供能存儲(chǔ)所要通過它的數(shù)據(jù)的存儲(chǔ)空間,所以在每一個(gè)節(jié)點(diǎn)需要相當(dāng)大的存儲(chǔ)空間。

(4)蟲孔交換(Wormhole Switching)是目前NoC中的主流交換機(jī)制。它和虛切通交換的思想基本相同,只是二者在發(fā)生阻塞時(shí)所表現(xiàn)出的行為不同。在蟲孔交換中,數(shù)據(jù)包也被細(xì)分成片,以流水的方式在網(wǎng)絡(luò)上傳輸,并且允許一個(gè)分組只由一個(gè)片組成。頭片中包含路由信息,其他數(shù)據(jù)片都跟隨頭片在它確定的路徑上流動(dòng),就像蟲子一樣。當(dāng)頭片發(fā)生阻塞時(shí),分組中的所有片都將停止前進(jìn),頭片緩存在當(dāng)前節(jié)點(diǎn),數(shù)據(jù)片就地緩存在其后的若干個(gè)中間節(jié)點(diǎn)中。每個(gè)路由節(jié)點(diǎn)只需提供一個(gè)片大小的緩存資源。蟲孔交換對(duì)數(shù)據(jù)包大小和路徑長(zhǎng)度都不敏感,資源占用少、實(shí)現(xiàn)代價(jià)小、且效率高,適合NoC使用。蟲孔交換的示意圖如圖11所示。

蟲孔交換結(jié)構(gòu)的處理過程是這樣:數(shù)據(jù)包的片段到達(dá)蟲孔交換結(jié)構(gòu),存儲(chǔ)在輸入通道緩存單元中,并進(jìn)行路由計(jì)算。得到路由信息后,數(shù)據(jù)包提出傳輸請(qǐng)求,仲裁器根據(jù)請(qǐng)求進(jìn)行帶寬資源分配,一旦該數(shù)據(jù)片被允許傳輸,它將被交換到目的端口并投遞出去,直到數(shù)據(jù)包的最后一個(gè)片段離開交換節(jié)點(diǎn)。根據(jù)這個(gè)處理過程,蟲孔交換電路的結(jié)構(gòu)如圖12所示,由緩存單元、路由計(jì)算單元、仲裁請(qǐng)求管理單元、交換分配和交換陣列五個(gè)部分組成。

在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ò)性能,如較短的網(wǎng)絡(luò)延遲時(shí)間,從交換節(jié)點(diǎn)設(shè)計(jì)角度考慮,減少交換結(jié)構(gòu)的流水處理級(jí)數(shù)是縮短網(wǎng)絡(luò)延時(shí)的有效方法,流水處理級(jí)數(shù)越少,數(shù)據(jù)包通過交換節(jié)點(diǎn)的時(shí)間就越短。

不同的NoC交換技術(shù),對(duì)應(yīng)著不同的網(wǎng)絡(luò)性能和實(shí)現(xiàn)代價(jià),要根據(jù)實(shí)際要求進(jìn)行選擇。

5 結(jié)束語(yǔ)

多核處理器通訊架構(gòu)的研究在國(guó)際上是一個(gè)熱點(diǎn)課題,上述幾種通訊方式是目前廣泛使用的。但是無論采用何種結(jié)構(gòu),設(shè)計(jì)人員必須著重考慮多處理器系統(tǒng)芯片的兩個(gè)應(yīng)用特征:實(shí)時(shí)性和低功耗。選擇適合的拓?fù)?、路由類型和流量控制策略、?duì)列管理策略、數(shù)據(jù)包/消息格式和端對(duì)端的網(wǎng)絡(luò)服務(wù)類型等,對(duì)這些性能進(jìn)行折衷,只有合適的才是最好的。

[1]孫利榮,蔣澤軍,王麗芳.片上網(wǎng)絡(luò)[J].計(jì)算機(jī)工程,2005,31.

[2]閆輝.多核是軟件開發(fā)行業(yè)的遷移目標(biāo)[J].程序員,2006,(9):47-48.

[3]馬關(guān)勝,馮剛.SoC設(shè)計(jì)與P核重用技術(shù)[M].北京:國(guó)防工業(yè)出版社,2006.

[4]荊元利,樊曉椏.網(wǎng)絡(luò)互連多線程處理器[J].計(jì)算機(jī)工程與應(yīng)用,20.

[5]歐陽(yáng).多核時(shí)代改變計(jì)算發(fā)展歷史[J].程序員,2006,(9):42-46.

[6]張恒龍,顧華璽,王長(zhǎng)山.片上網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的研究[J].中國(guó)集成電路,2007,16(11):42-46.

[7]劉軼,張昕,等.一種面向多核處理器并行系統(tǒng)的啟發(fā)式任務(wù)分配算法[J].計(jì)算機(jī)研究與發(fā)展. 2009,46(6).

[8]Kangmin Lee, Se Joong Lee, Hoi Jun Yoo. A Dis-tributed Crossbar Switch, Switch Scheduler for On-ChipNetworks[A]. IEEE Proceedings of Custom Integrated Circuits Conference, 2003. 671-674.

[9]Rakesh Kumar, Dean M Tullsen, Norman P Jouppi.Heterogeneous Chip Multiprocessors[J].IEEE, 2005, 32-38.

[10]Valderrama CA, Changuel A, Jerraya A. Virtual prototyping for modular and flexible hareware-software systems[J]. Design Automation for embedded systems, 1997, 2(3):267-282.

猜你喜歡
仲裁數(shù)據(jù)包路由
一種多通道共享讀寫SDRAM的仲裁方法
電子制作(2018年19期)2018-11-14 02:36:44
SmartSniff
探究路由與環(huán)路的問題
ICSID仲裁中的有效解釋原則:溯源、適用及其略比
兩岸四地間相互執(zhí)行仲裁裁決:過去、現(xiàn)在及將來(上)
仲裁研究(2015年4期)2015-04-17 02:56:33
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
PRIME和G3-PLC路由機(jī)制對(duì)比
WSN中基于等高度路由的源位置隱私保護(hù)
eNSP在路由交換課程教學(xué)改革中的應(yīng)用
河南科技(2014年5期)2014-02-27 14:08:56
視覺注意的數(shù)據(jù)包優(yōu)先級(jí)排序策略研究
托里县| 定日县| 新邵县| 成都市| 织金县| 蒙城县| 秦皇岛市| 会宁县| 岳池县| 临泉县| 连平县| 阿拉善左旗| 梨树县| 万盛区| 维西| 河间市| 石门县| 涟源市| 醴陵市| 揭阳市| 武功县| 温宿县| 泸西县| 綦江县| 马山县| 长汀县| 和平区| 峨眉山市| 淮滨县| 定州市| 原阳县| 灵丘县| 甘孜县| 广昌县| 碌曲县| 滨海县| 忻城县| 正定县| 方城县| 许昌县| 济宁市|