資源描述:
《【socvista】.脈動(dòng)陣列》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、【SoCVista】7.脈動(dòng)陣列這一章,與大家一起討論四種上古神器(包括:重定時(shí)、展開、折疊和脈動(dòng))的最后一件:脈動(dòng)陣列。說起來這項(xiàng)技術(shù)還是咱們“龍的子孫”發(fā)明的,來自卡內(nèi)基梅隆大學(xué)(現(xiàn)在哈佛?)的孔祥重教授。不過在正式講解脈動(dòng)陣列之前,有必要給大家打個(gè)預(yù)防針:脈動(dòng)陣列在所討論的四件神器中應(yīng)該是最費(fèi)腦筋的一件,要想真正理解并掌握脈動(dòng)陣列,不僅需要良好的立體幾何思維,也需要超人的細(xì)心,同時(shí)還需要一點(diǎn)點(diǎn)創(chuàng)造性思維。這種難啃的東西,很多人會(huì)放棄,但如果你深入進(jìn)去,你肯定著迷。這里所討論的脈動(dòng)陣列只能說
2、是入門,很多學(xué)者正努力擴(kuò)展傳統(tǒng)的脈動(dòng)陣列理論,以拓寬脈動(dòng)陣列的應(yīng)用領(lǐng)域。對(duì)這方面感興趣的同學(xué)可以google看文獻(xiàn)深入學(xué)習(xí),這里我們的目的就是講解最簡單的脈動(dòng)陣列設(shè)計(jì)技術(shù),帶領(lǐng)大家入門,至于登堂入室那是你自己的事情咯!脈動(dòng)陣列到底是什么呢?如幻燈片1給出的一維脈動(dòng)陣列(線形)和二維脈動(dòng)陣列(矩形),它們與主處理器的關(guān)系就像是“心臟和脈絡(luò)”的關(guān)系,脈動(dòng)陣列不斷的接收從處理器泵出的待處理數(shù)據(jù),然后從另一邊將處理后的結(jié)果傳回處理器。較為正規(guī)的定義:多個(gè)相同的處理單元(簡稱PE)按一定互聯(lián)規(guī)則組成的網(wǎng)絡(luò)
3、,稱為脈動(dòng)陣列。脈動(dòng)陣列可以是一維線形、二維三角形、二維矩形、二維六邊形、二維二叉樹型、三維長方體形等等。脈動(dòng)陣列(這種PE網(wǎng)絡(luò))的特點(diǎn)是:1.每一個(gè)節(jié)點(diǎn),也就是PE,也稱為胞元,都是相同的。2.每個(gè)PE只與其相鄰的PE進(jìn)行通信,也就是說PE之間的通信具有局部性,而且通信是規(guī)則的??上攵绻ㄐ挪皇蔷植康亩也灰?guī)則,那么網(wǎng)絡(luò)中各PE的連接關(guān)系將會(huì)很錯(cuò)亂,硬件上進(jìn)行布局布線也會(huì)遇到困難。3.每個(gè)PE都有其局部的存儲(chǔ)器,也就是PE的某些邊帶有延時(shí),延時(shí)在硬件上對(duì)于寄存器。這說明脈動(dòng)陣列數(shù)據(jù)儲(chǔ)存具有
4、局部性,同時(shí)這也是流水運(yùn)行的必要條件。由于脈動(dòng)陣列的以上特點(diǎn),造成PE之間的高度流水化、規(guī)則化,因此系統(tǒng)吞吐率非常大且易于VLSI的實(shí)現(xiàn)。流水化意味著吞吐率大,規(guī)則化則意味著版圖流片成功率大。以上所說的脈動(dòng)陣列特點(diǎn)是一種理想的特點(diǎn),工程上為了擴(kuò)大脈動(dòng)陣列的用途,會(huì)引入一些弛豫,比如允許使用鄰近(靠近但不是相鄰)互聯(lián),使用數(shù)據(jù)廣播操作,以及在系統(tǒng)中使用不同的胞元,尤其是邊界上的胞元往往和網(wǎng)絡(luò)內(nèi)部胞元不太一樣?;脽羝?給出了脈動(dòng)陣列的keywords,大家可以在看完這一章,看懂這一章之后好好來品味這
5、些keywords所代表的含義。雖然還沒開始脈動(dòng)設(shè)計(jì)技術(shù)的討論,但是通過前面的鋪墊,大家應(yīng)該知道這么一點(diǎn):脈動(dòng)陣列是高度流水化和規(guī)則化的多處理器網(wǎng)絡(luò)(注意,處理器/胞元/PE為同一個(gè)東西,均指脈動(dòng)陣列的一個(gè)處理單元)。既然脈動(dòng)陣列是高度規(guī)則的,那么脈動(dòng)陣列所完成的功能是不是也應(yīng)該是規(guī)則的呢?這是脈動(dòng)入門的第一道坎,一定要記?。翰皇侨我獾乃惴ǘ伎梢杂妹}動(dòng)陣列來實(shí)現(xiàn),只有規(guī)則的迭代算法,才能用投影技術(shù)設(shè)計(jì)出脈動(dòng)結(jié)構(gòu)。問題又來了,怎么判斷一個(gè)迭代算法是不是規(guī)則的?FIR是規(guī)則迭代嗎?矩陣乘法是不是規(guī)則
6、迭代?其他等等…….判斷一個(gè)迭代算法是否規(guī)則,首先畫出該算法的依賴圖(DG),關(guān)于DG是什么,在第一章、敲門磚——入門的準(zhǔn)備的內(nèi)容有講到,這里我們假設(shè)迭代算法的DG是已知,只討論如何根據(jù)規(guī)則DG設(shè)計(jì)出脈動(dòng)結(jié)構(gòu)。比如三階FIR濾波器和2x2矩陣乘法的DG如下圖1和圖2所示,圖1三階FIR依賴圖,y(n)=w0*x(n)+w1*x(n-1)+w2*x(n-2)b22b12圖22x2矩陣乘法C=AxB請(qǐng)大家根據(jù)第一章中對(duì)DG的解說來驗(yàn)證這兩個(gè)DG,并總結(jié)出一些根據(jù)規(guī)則迭代公式畫出DG的做法;這兩個(gè)DG
7、也正是課本上例子。規(guī)則DG的判據(jù):如果依賴圖的任一節(jié)點(diǎn)沿某個(gè)方向的邊存在,則稱依賴圖是規(guī)則的;通俗的說,依賴圖的所有節(jié)點(diǎn)具有相同形式的邊。T例如圖1的每個(gè)節(jié)點(diǎn)都可以看成具有三條邊,一條從左向右[1,0]的權(quán)值邊,一條從下到上[0,1]T的輸入邊,一條斜向右下角[1,-1]T的輸出邊。圖2的每個(gè)節(jié)點(diǎn)也有三條邊,分別是[1,0,0]TTT方向的輸入b,[0,1,1]方向的輸入a和[0,0,1]方向的輸出“c”。說起來,這個(gè)判據(jù)也不是絕對(duì)的嚴(yán)格,大家體會(huì)體會(huì)吧,也許等你大致弄明白脈動(dòng)的設(shè)計(jì)方法之后,你
8、會(huì)理解現(xiàn)在所說的這些話。這里值得注意的是,我們用[0,0,1]之類的符號(hào)表示方向,比如在圖二中,清楚的標(biāo)出了坐標(biāo)系i-j-k,那么[0,0,1]T就表示向上的一個(gè)方向,又比如在圖一中是以i-j構(gòu)成坐標(biāo)系,那么[1,-1]就表示斜向右下角的方向?;脽羝?給出脈動(dòng)陣列的設(shè)計(jì)步驟,大家可以“先死記硬背”著。接下來的內(nèi)容將以3階FIR和2x2矩陣相乘為例,詳細(xì)討論如何來導(dǎo)出課本上所列出的各個(gè)設(shè)計(jì)結(jié)果。TT題外話:我自己在學(xué)習(xí)這一章的時(shí)候,看到這里一直是暈暈乎乎的狀態(tài),根本不解脈動(dòng)陣列是什么東西。但是在例