專利名稱:多重陣列處理器的制作方法
一般而言,本發(fā)明涉及處理系統(tǒng),更具體地說,是涉及并行處理結(jié)構(gòu)。
能開發(fā)出許多對(duì)數(shù)據(jù)并行操作的計(jì)算任務(wù)。并行處理器的有效性取決于并行處理器的體系結(jié)構(gòu)、被編成代碼的算法、以及在各并行部件中的數(shù)據(jù)放置。例如,圖像處理、模式識(shí)別、以及計(jì)算機(jī)圖形都是對(duì)自然安排成2維或3維柵格的數(shù)據(jù)進(jìn)行操作的應(yīng)用。數(shù)據(jù)可以代表范圍很廣的信號(hào),例如音頻、視頻、聲納或雷達(dá)信號(hào)。因?yàn)橥ǔ?duì)這類數(shù)據(jù)進(jìn)行的操作,諸如離散余弦變換(DCT)、離散余弦反變換(IDCT)、卷積等可以同時(shí)對(duì)不同的柵格元素來完成,所以已經(jīng)發(fā)展出多處理器陣列系統(tǒng),它們通過允許在一個(gè)時(shí)刻有不只一個(gè)處理器進(jìn)行該任務(wù),從而可以顯著地加速這類操作。并行處理是大量專利的主題,包括,美國專利5,065,339號(hào);5,146,543號(hào);5,146,420號(hào);5,148,515號(hào);5,546,336號(hào);5,542,026號(hào);5,612,908號(hào);以及5,577,262號(hào);歐洲公布申請(qǐng)0,726,529號(hào)和0,726,532號(hào),這里把它們列入作為參考。
實(shí)現(xiàn)并行處理結(jié)構(gòu)的一種傳統(tǒng)途徑是最近鄰網(wǎng)格連接計(jì)算機(jī),它在以下文獻(xiàn)中討論過R.Cypher和J.L.C.Sanz的“用于圖像處理和計(jì)算機(jī)視圖的SIMD結(jié)構(gòu)和算法,IEEE聲學(xué)、語音和信號(hào)處理匯報(bào),第37卷,第12期,2158-2174頁,1989年12月;K.E.Batcher的“大型并行處理器設(shè)計(jì)”IEEE計(jì)算機(jī)匯報(bào),C-29卷,第9期,836-840頁,1980年9月;以及L.Uhr的“人工智能用多計(jì)算機(jī)結(jié)構(gòu),New York,N.Y.,John Wiley & Sons,第8章第97頁,1987。
在
圖1A的最近鄰環(huán)形連接計(jì)算機(jī)中,多個(gè)處理元件(PE)通過環(huán)形連接路徑MP連接到它們的北、南、東、西近鄰,而且所有PE都以同步信號(hào)指令多重?cái)?shù)據(jù)(SIMD)方式進(jìn)行操作。由于可以對(duì)一個(gè)網(wǎng)格連接的計(jì)算機(jī)增加卷繞連接來得到環(huán)形連接的計(jì)算機(jī),所以一個(gè)沒有卷繞連接的網(wǎng)格連接計(jì)算機(jī)可以看作是環(huán)形連接計(jì)算機(jī)的子集合。如圖1B所示,每個(gè)路徑MP可以包括T條發(fā)送線和R條接收線,或者如圖1C所示,每個(gè)路徑MP可以包括B條雙向線。雖然單向和雙向通信兩者都由本發(fā)明予以考慮了,但在一個(gè)路徑上的總線總數(shù)(不包括控制信號(hào))在下文中將統(tǒng)稱為K條線,這里在雙向總線設(shè)計(jì)中K=B,而在單向總線設(shè)計(jì)中K=T+R。假定一個(gè)PE能向它的近鄰PE的任何一個(gè)發(fā)送數(shù)據(jù),但一次只能一個(gè)。例如,在一個(gè)通信周期中,每個(gè)PE能向它的東鄰發(fā)送數(shù)據(jù)。還假定,存在一種廣播機(jī)制,例如,在一個(gè)廣播分發(fā)周期中,數(shù)據(jù)和指令能從一個(gè)控制器同時(shí)分發(fā)到所有PEs。
雖然位串行PE間通信通常用于減少連線復(fù)雜性,但環(huán)形連接陣列的連線復(fù)雜性表現(xiàn)出在實(shí)現(xiàn)上的問題。圖1A的傳統(tǒng)環(huán)形連接陣列包括16個(gè)處理元件連接到PE的4×4陣列10中。每個(gè)處理元件PEij分別以其行號(hào)i和列號(hào)j來作標(biāo)簽。每個(gè)PE以點(diǎn)對(duì)點(diǎn)連接與其最近的北(N)、南(S)、東(E)、西(W)近鄰?fù)ㄐ?。例如,圖1A中所示的PE0,0和PE3,0之間的連接是PE0,0和N界面和PE3,0的南界面之間的一個(gè)卷繞連接,代表了使陣列成為一個(gè)環(huán)形構(gòu)形的卷繞界面之一。在這種構(gòu)形中,每行包含一組N個(gè)互連線,以N行計(jì),共有N2個(gè)水平連接。類似地,以N列計(jì),每列有N個(gè)垂直互連,則共有N2個(gè)垂直互連。對(duì)于圖1A中的舉例,N=4。所以,總的連線數(shù),例如在一個(gè)包含卷繞連接的NXN環(huán)形連接計(jì)算機(jī)中實(shí)現(xiàn)的集成電路里的金屬線,便是2kN2條,這里k是每個(gè)互連中的連線數(shù)。在一個(gè)位串行互連中數(shù)k可以等于1。例如,對(duì)于圖1A所示4×4陣列10,以k=1,則2kN2=32。
對(duì)于N較少的許多應(yīng)用,最好是整個(gè)PE陣列結(jié)合到單一的集成電路中。本發(fā)明不排除例如每個(gè)PE能是一個(gè)單獨(dú)微處理器芯片的那些實(shí)現(xiàn)。由于在環(huán)形連接計(jì)算機(jī)中連線總數(shù)會(huì)很大,所以這些互連會(huì)消耗大量的有價(jià)值的集成電路“不動(dòng)產(chǎn),或者所占用的芯片面積。此外,PE互連路徑相當(dāng)頻繁地彼此交叉,使IC布線過程復(fù)雜化,而且還可能通過串?dāng)_向通信線引入噪聲。再有,連接陣列最北和最南處PE及最東和最西處PE的卷繞鏈路的長度隨著陣列的尺寸增大而增大。這增加了的長度增加了每個(gè)通信線的電容,從而降低了線上的最大位速率并向線上引入附加的噪聲。
轉(zhuǎn)置陣列的另一個(gè)缺點(diǎn)是在轉(zhuǎn)置操作方面產(chǎn)生的。由于在通信路徑中一個(gè)處理元件與其轉(zhuǎn)置被一個(gè)或多個(gè)位于中間的處理元件分離開,所以在利用轉(zhuǎn)置的操作中引入了延遲。例如,如果PE2,1需要從它的轉(zhuǎn)置PE1,2中得到數(shù)據(jù),該數(shù)據(jù)必須穿過中間的PE1,1或PE2,2。自然,即使PE1,1和PE2,2沒有被占用,這也會(huì)給操作帶進(jìn)延遲。然而,在一般情況下,那里PE是作為微處理器元件實(shí)現(xiàn)的,這時(shí)沒有可能PE1,1和PE2,2在完成其他操作,而為了從PE1,2向PE2,1傳送數(shù)據(jù)或命令,它們不得不按順序把這些操作放在一邊。所以,可能要用幾個(gè)操作才即使是開始從PE1,2向PE2,1傳送數(shù)據(jù)或命令,而PE1,1為了傳送轉(zhuǎn)置數(shù)據(jù)被迫放到一邊的那些操作也將被延遲。這種延遲隨著每個(gè)中間的PE介入而滾雪球似地增大,對(duì)于最遠(yuǎn)的轉(zhuǎn)置對(duì),將引入顯著的延遲。例如,圖1A中的轉(zhuǎn)置對(duì)PE3,1/PE1,3有最少3個(gè)中間PE,一般情況下,需要4個(gè)通信步驟的延遲,而且為了在PE3,1和PE1,3之間傳送數(shù)據(jù),還必須使所有那些PE中的任務(wù)放到一邊,這又會(huì)額外地使所有這些任務(wù)造成延遲。
認(rèn)識(shí)到環(huán)形連接陣列的這種局限性,已經(jīng)在下列文獻(xiàn)中公開了新的實(shí)現(xiàn)陣列的途徑美國專利5,612,908號(hào);G.G.Pechanek等的“大規(guī)模并行對(duì)角線褶疊陣列處理器,1993年應(yīng)用特殊陣列處理器國際會(huì)議,140-143頁,1993年10月25-27,Venice,意大利,以及G.G.Pechanek等的“多重褶疊叢集處理器環(huán)形陣列,VLSI設(shè)計(jì)第5次NASA研討會(huì)匯報(bào),8,4.1-11頁,1993年11月4-5,新墨西哥州大學(xué),Albuquerque,新墨西哥,這些文獻(xiàn)全文引入作為參考。這些環(huán)形陣列組織的操作技術(shù)是使用傳統(tǒng)的最近鄰環(huán)形的對(duì)角線PE作為褶疊邊緣對(duì)PE陣列進(jìn)行褶疊。如圖2的陣列20中所示,這些技術(shù)可以用于顯著地(substantially)減小PE間連線,減少卷繞連接的個(gè)數(shù)和長度,并把PE放置在與其轉(zhuǎn)置緊密靠近的位置。這種處理器陣列結(jié)構(gòu)公布在例如美國專利5,577,262,5,612,908和EP 0,726,532和EP0,726,529中,這些是由本發(fā)明的同一發(fā)明者發(fā)明的,并整體納入這里作為參考。盡管這種陣列提供了對(duì)傳統(tǒng)環(huán)形結(jié)構(gòu)的實(shí)質(zhì)性優(yōu)點(diǎn),但由于PE組合的不規(guī)則性,例如在單個(gè)褶疊的對(duì)角線褶疊縫,某些PE叢集“成行,而其他則是單個(gè)的,在一個(gè)3褶疊的對(duì)角線褶疊網(wǎng)格中有4個(gè)PE和8個(gè)PE的叢集。由于這些陣列在總體上的三角形形狀,這種對(duì)角線褶疊形陣列呈現(xiàn)出對(duì)實(shí)現(xiàn)有效、便宜地集成電路造成基本的障礙。再有,在如EP 0,726,532和EP 0,726,529中的對(duì)角線褶疊網(wǎng)格和在其他傳統(tǒng)的網(wǎng)格結(jié)構(gòu)中,互連拓?fù)浣Y(jié)構(gòu)是PE定義中的固有部分。這便固定了在拓?fù)浣Y(jié)構(gòu)中的PE位置,結(jié)果把PE的拓?fù)浣Y(jié)構(gòu)和它們的連接都限制于要實(shí)現(xiàn)的固定構(gòu)形。于是,需要對(duì)處理器陣列結(jié)構(gòu)的處理器互連作進(jìn)一步的改進(jìn)。
本發(fā)明的目標(biāo)是一個(gè)處理元件陣列,與傳統(tǒng)的環(huán)形處理元件陣列的連線需求相比,它基本上減少了陣列互連連線需求。在一個(gè)最佳實(shí)施例中,一個(gè)根據(jù)本發(fā)明的陣列實(shí)現(xiàn)了基本上減小了轉(zhuǎn)置操作的延遲。再有,所發(fā)明的陣列解耦了從陣列各維度的卷繞連線長度,從而減小了最長互連線的長度。還有,對(duì)于不會(huì)在通信的PE之間引起沖突的陣列通信模式,每個(gè)PE只需一個(gè)發(fā)送端口和一個(gè)接收端口,與一具體拓?fù)浣Y(jié)構(gòu)可能要求其PE節(jié)點(diǎn)近鄰連接數(shù)目無關(guān)。該陣列的一種最佳集成電路實(shí)現(xiàn)包括組合成矩形或正方形輪廓的類似處理元件叢的組合。這種處理元件的相似性、處理元件叢的相似性以及陣列總體輪廓的規(guī)則性使這種陣列特別適合于高效費(fèi)比(cost-effctive)的集成電路制作。
為了形成根據(jù)本發(fā)明的陣列,首先可以把處理元件組合成叢,這是建立在單指令多重?cái)?shù)據(jù)(“SIMD”)操作的通信需求基礎(chǔ)上的。然后可以把處理單元分組,從而使一個(gè)叢中的元件在一叢內(nèi)通信和只與其他兩個(gè)叢的成員通信。再有,每個(gè)叢的組成處理元件只在兩個(gè)相互排他的方向上與其他叢的每個(gè)處理元件通信。根據(jù)定義,在一個(gè)具有單向通信能力的SIMD環(huán)形中北/南方向與東/西方向相互排他。顧名思義,處理元件叢是最好按物理上彼此接近的方式形成的處理器組。例如,在一個(gè)集成電路實(shí)現(xiàn)中,一個(gè)叢的處理元件在布局上最好是盡可能地彼此接近,最好是彼此的接近程度要比到陣列中任何其他處理元件都要近。例如,相當(dāng)于傳統(tǒng)的4×4。處理單元陣列的一個(gè)陣列可以包括每叢4個(gè)元件的4個(gè)叢,每個(gè)叢只向北和向東與另一叢通信以及向南和向西與另一叢通信;或者向南和向東與另一叢通信以及向北和向西與另一叢通信。通過按這種方式使PE成叢,可以通過多路復(fù)用來共享PE叢之間的通信路徑,從而基本上減少了陣列所需互連連線。
在一個(gè)最佳實(shí)施例中,這樣來選擇一叢中包含的PE,即讓處理單元和它們的轉(zhuǎn)置位于同一叢中并且彼此間通過叢內(nèi)通信路徑進(jìn)行通信,從而消除了對(duì)傳統(tǒng)環(huán)形陣列進(jìn)行的轉(zhuǎn)置操作所伴隨的延遲。此外,由于把傳統(tǒng)的路徑作為與任何PE到PE路徑同樣的路徑對(duì)待,所以最長的通信路徑可以如同叢間間距一樣地短,而不論陣列的總尺度如何。根據(jù)本發(fā)明,一個(gè)N×M環(huán)形陣列可以轉(zhuǎn)換成M叢每叢N個(gè)PE的陣列或者N叢每叢M個(gè)PE的陣列。
由下文中結(jié)合附圖所作的詳細(xì)描述,那些本領(lǐng)域技術(shù)人員將會(huì)看清楚本發(fā)明的這些和其他特點(diǎn)、方面和優(yōu)點(diǎn)。
圖1A是傳統(tǒng)現(xiàn)有技術(shù)4×4最近鄰連接的環(huán)形處理元件(PE)陣列方框圖;圖1B說明圖1A所示現(xiàn)有技術(shù)環(huán)形連接路徑怎樣可以包括T個(gè)發(fā)送線和R個(gè)接收線;圖1C說明圖1A所示現(xiàn)有技術(shù)環(huán)形連接路徑怎樣可以包括B個(gè)雙向連線;圖2是現(xiàn)有技術(shù)對(duì)角線褶疊網(wǎng)格的方框圖;圖3A是可以合適地應(yīng)用于本發(fā)明PE陣列中的處理元件的方框圖;圖3B是可以合適地應(yīng)用于本發(fā)明PE陣列中的另一種處理元件的方框圖;圖4是一個(gè)4×4環(huán)形的貼面(tiling),它說明全部環(huán)形PE間的通信鏈路;
圖5A至5G是4×4環(huán)形的貼面,它說明根據(jù)本發(fā)明為成叢分組對(duì)PE的選擇;圖6是4×4環(huán)形的貼面,它說明為了成叢對(duì)PE所作的另一種分組;圖7是3×3環(huán)形的貼面,它說明為了PE成叢對(duì)PE的選擇;圖8是3×5環(huán)形的貼面,它說明為了PE成叢對(duì)PE的選擇;圖9是一個(gè)方框圖,說明為PE成叢選擇PE的另一種菱形/圓柱形途徑;圖10是一方框圖,說明各新的PE叢中的叢間通信路徑;圖11A和11B說明選擇PE叢的另一種菱形/圓柱形途徑;圖12是一方框圖,說明一個(gè)5×4PE陣列的菱形/圓柱形PE選擇過程;圖13是一方框圖,說明一個(gè)4×5PE陣列的菱形/圓柱形PE選擇過程;圖14是一方框圖,說明一個(gè)5×5PE陣列的菱形/圓柱形PE選擇過程;圖15A至15D是方框圖,分別說明對(duì)于有3、4、5和6個(gè)叢而每叢有6個(gè)PE的陣列,其叢間通信的路徑;圖16是一方框圖,說明在含有4個(gè)叢而每叢有4個(gè)成員的一個(gè)陣列內(nèi)部的東/南通信路徑;圖17是一框圖,說明在含有4個(gè)叢而每叢有4個(gè)成員的一個(gè)陣列內(nèi)部的東/南和西/北通信路徑;圖18是一方框圖,說明圖17實(shí)施例的一個(gè)叢,圖中更詳細(xì)地說明一個(gè)叢開關(guān)及其到所示叢的接口;圖19A和19B分別說明在一個(gè)示例卷積中所用的卷積窗和卷積路徑,在本發(fā)明的新陣列處理器上實(shí)現(xiàn)這一卷積可以有許多好處;圖19C和19D是方框圖,分別說明一個(gè)圖像在一個(gè)4×4塊內(nèi)的部分以及加載到傳統(tǒng)的環(huán)形位置的塊;圖20A至24B是方框圖,說明在每個(gè)卷積操作步驟結(jié)尾時(shí)根據(jù)本發(fā)明的一個(gè)多重陣列的狀態(tài)。
在一個(gè)實(shí)施例中,根據(jù)本發(fā)明的一個(gè)新陣列處理器把PE組合成叢,或者說組,從而使一個(gè)叢中的元件只與其他兩個(gè)叢的成員通信,而且每個(gè)叢的組成處理元件只在兩個(gè)相互排他的方向上與這其他叢的每個(gè)叢的處理元件通信。通過以這種方式使PE成叢,在PE叢之間的通信路徑可以共享,從而基本上減少了陣列所需的互連線。再有,每個(gè)PE可以有單一的發(fā)送端口和單一的接收端口;或者,在雙向順的或時(shí)間分片的發(fā)送/接收通信實(shí)現(xiàn)的情況中,每個(gè)PE有單一的發(fā)送/接收端口。結(jié)果,單個(gè)PE與陣列的拓?fù)浣Y(jié)構(gòu)解耦。就是說,傳統(tǒng)的環(huán)形連接陣列中每個(gè)PE有4個(gè)雙向通信端口,每個(gè)方向上用其中一個(gè)進(jìn)行通信,與此不同的是,新陣列結(jié)構(gòu)所利用的PE只需有一個(gè)端口。在利用單個(gè)發(fā)送和單個(gè)接收端口的實(shí)現(xiàn)中,一個(gè)陣列中的所有PE可以同時(shí)發(fā)送和接收。在傳統(tǒng)的環(huán)形中,每個(gè)PE將需要4個(gè)發(fā)送和4個(gè)接收端口,總共8個(gè)端口,而在本發(fā)明中,每個(gè)PE需要一個(gè)發(fā)送端口和一個(gè)接收端口,總共2個(gè)端口。
在一個(gè)最佳實(shí)施例中,選擇一個(gè)叢中包含的PE,從而使處理元件和它們的轉(zhuǎn)置位于同一叢中并通過叢內(nèi)通信路徑彼此通信。為了描述方便,把處理元件指作它們?cè)趥鹘y(tǒng)的環(huán)形陣列中會(huì)出現(xiàn)的位置,例如,處理元件PE0,0是在傳統(tǒng)的環(huán)形陣列中會(huì)在“北西角上出現(xiàn)的處理元件。于是,雖然新的成叢陣列與傳統(tǒng)陣列處理器基本上是不同的,但同樣的數(shù)據(jù)將提供給傳統(tǒng)環(huán)形陣列和新成叢陣列的相應(yīng)處理元件。例如,新的成叢陣列的PE0,0元件所接收用于操作的數(shù)據(jù)與傳統(tǒng)的環(huán)形連接陣列的PE0,0元件所接收用于操作的數(shù)據(jù)是相同的。再有,在本描述中所說的方向是指一個(gè)環(huán)形連接陣列中的方向。例如,當(dāng)說到處理元件之間的通信是發(fā)生在從北向南的方向時(shí),那些方向是指在一個(gè)傳統(tǒng)的環(huán)形連接陣列中的通信方向。
PE可以是單個(gè)微處理器芯片,它們可以有為特定應(yīng)用定制的簡單結(jié)構(gòu)。雖然不限定于下面的描述,但將描述一個(gè)基本PE以說明所涉及的概念。圖3A中說明了一個(gè)PE30的基本結(jié)構(gòu),它說明一個(gè)適當(dāng)?shù)膶?shí)施例,該實(shí)施例將被應(yīng)用于根據(jù)本發(fā)明的新PE陣列的每個(gè)PE。為簡化描述,沒有顯示出接口邏輯和緩存器。被連接的廣播指令總線31用于接收由SIMD控制器29分發(fā)的指令,被連接的數(shù)據(jù)總線32用于從存儲(chǔ)器33或PE30外部的另一數(shù)據(jù)源接收數(shù)據(jù)。寄存器存儲(chǔ)器介質(zhì)34向執(zhí)行單元36提供源操作數(shù)。被連接的指令解碼器/控制器38用于通過廣播指令總線31接收指令和向寄存器存儲(chǔ)器34內(nèi)的寄存器提供控制信號(hào),而寄存器存器34又經(jīng)由路徑22向執(zhí)行單元36提供它們的內(nèi)容作為操作數(shù)。執(zhí)行單元36從指令解碼器/控制器38接收控制信號(hào)23并經(jīng)由路徑24向寄存器文件34提供結(jié)果。指令解碼器/控制器38還在標(biāo)為“開關(guān)使能”(“Switch Enable”)的輸出線上提供叢開關(guān)使能信號(hào)。在下文中將結(jié)合圖18更詳細(xì)地討論叢開關(guān)的功能。數(shù)據(jù)或命令的PE間通信是在標(biāo)為“接收”的接收輸入端37接收,由標(biāo)為“發(fā)送的發(fā)送輸出端35發(fā)送。
圖3B顯示了另一種PE代表30′,它包括一個(gè)接口控制單元50,該單元50根據(jù)從指令解碼器/控制器38收到的控制信號(hào)提供數(shù)據(jù)格式操作。數(shù)據(jù)格式操作可包括例如從并行到串行和從串行到并行的轉(zhuǎn)換,數(shù)據(jù)加密,以及為滿足各種標(biāo)準(zhǔn)或接口要求所進(jìn)行的數(shù)據(jù)格式轉(zhuǎn)換。
圖4中顯示了如圖3A中所示相同類型的PE傳統(tǒng)4×4最近鄰環(huán)形,被其本身的貼面包圍。中央的4×4貼面40被環(huán)42包圍,它包括了該環(huán)形的卷繞連接。圖4的貼面是描述性輔助圖,用于使卷繞連接“展平,并從而幫助解釋在本發(fā)明一個(gè)實(shí)施例的陣列中利用的最佳成叢過程。例如,從PE0,0向西的卷繞連接是PE0,3,從PE1,3向東的卷繞連接是PE1,0等,如框42內(nèi)所示。這種圖示的利用將在結(jié)合圖5A-5G所作的描述中看得更清楚。
在圖5A中,基本的4×4PE環(huán)形再次被它本身的貼面包圍。本發(fā)明承認(rèn)從PE0,0向東和向南的通信分別涉及PE0,1和PE1,0。再有,向東與PE1,0通信的PE是PE1,3,而PE1,3向南與PE2,3通信。所以,把四個(gè)PE,即PE0,0,PE1,3,PE2,2,PE3,1,組合成一叢便產(chǎn)生叢44,該叢中的PE只是向南和向東與另一叢46通信,叢46包括PE0,1,PE1,0,PE2,3和PE3,2。類似地,叢46的PE向南和向東與叢48的PE通信,叢48包括PE0,2,PE1,1,PE2,0和PE3,3。叢50的PE,即PE0,3,PE1,2,PE2,1和PE3,0,向南和向東與叢44通信。這種組合產(chǎn)生的PE叢只與其他兩個(gè)叢中的PE通信,而且是在互不相交的方向上與那些叢通信。就是說,叢48的PE向南和向東只與叢50的PE通信,而向北和向西只與叢46的PE通信,與傳統(tǒng)的最近鄰環(huán)形陣列所需相比,正是這種PE分組示例允許根據(jù)本發(fā)明的陣列基本上減少了陣列內(nèi)PE間的連接數(shù)。
許多其他組合是可能的。例如,仍從PE0,0開始,關(guān)于向北和向東的通信,對(duì)PE組合組合產(chǎn)生圖5B所示的叢52、54、56和58。這些叢可以組合成極大地減少PE陣列的互連需要,并減小最長PE間連接的長度。然而,這些叢不象圖5A中的叢44-50所作的那樣把PE及其轉(zhuǎn)置組合在一起。就是說,雖然轉(zhuǎn)置對(duì)PE0,2/PE2,0和PE1,3/PE3,1包含在叢56中,但轉(zhuǎn)置對(duì)PE0,1/PE1,0被分離在叢54和58之間。根據(jù)本發(fā)明最佳實(shí)施例的陣列只利用如同44-50那樣的叢,它們把所有的PE與其轉(zhuǎn)置組合到叢內(nèi)。例如,在圖5A中,PE3,1/PE1,3轉(zhuǎn)置對(duì)包含在叢44內(nèi),PE3,2/PE2,3以及PE1,0/PE0,1轉(zhuǎn)置對(duì)包含在叢48內(nèi),而PE3,0/PE0,3和PE2,1/PE1,2轉(zhuǎn)置對(duì)包含在50內(nèi)。圖5C中的叢60、62、64和68是把向北和向西通信的PE組合而成的。請(qǐng)注意,叢60等效于叢44,叢62等效于叢46,叢64等效于叢48,而叢68等效于叢50。類似地,圖5D的叢70至76是把向南和向西通信的PE組合而成的,它們分別等效于叢52至58。如圖5E所示,叢45、47、49和51等效于最佳叢48、50、44和58,可以從環(huán)形40內(nèi)的任何“起點(diǎn)”出發(fā),把向南和向東通信的PE組合而成。
圖5F中描寫了另一種成叢,這里叢61、63、65和67在環(huán)形40的貼面中形成一個(gè)十字形。這種成叢表明,有多種方式產(chǎn)生在互不相交方向上與其他兩個(gè)叢通信的叢。就是說,叢65的PE0,0和PE2,0分別向東與叢61的PE0,1和PE2,3通信。此外,從65的PE1,1和PE3,3分別向西與叢61的PE1,0和PE3,2通信。如下文中將更詳細(xì)描述的那樣,剛才描述的向東通信路徑,即PE0,0和PE0,1之間以及PE2,2和PE2,3之間的路徑,和其他叢間路徑可以與互不相交的叢間通信路徑組合,例如通過多路復(fù)用,以減少一半PE間通信所需互連線數(shù)。圖5F的成叢也是把轉(zhuǎn)置元件組合到叢內(nèi)。
圖5G顯示了新陣列可伸縮性(scalability)的一個(gè)方面,這里一個(gè)4×8環(huán)形陣列被描繪成兩個(gè)4×4陣列40A和40B。人們可以利用至此已描述的技術(shù)由一個(gè)4×8環(huán)形陣列產(chǎn)生8個(gè)PE組,每組有4個(gè)PE。此外,通過把一個(gè)4×8環(huán)形陣列分解成2個(gè)4×4環(huán)形,并把各自的叢組合成叢,例如叢44A和44B,46A和46B等,便能得到4個(gè)8PE叢,它們具有8個(gè)4PE叢構(gòu)形中包含的4×4子叢所具有的全部連接以及轉(zhuǎn)置關(guān)系。這種成叢組合過程是一般性的,其他伸縮是可能的。
本最佳但不是唯一的成叢過程還可以描述如下。如果給定一個(gè)N×N基本環(huán)形PEi,j,這里i=0,1,2,…N-1,j=0,1,2,…,N-1,通過把Pi,j,PE(i+1)(ModN),(j+N-1)(ModN),PE(i+2)(ModN),(j+N-2)(ModN),…,PE(i+N-1)(ModN),(j+N-(N -1))(ModN)組合,可以形成最佳的向南和向東通信叢。對(duì)于具有N個(gè)NPE的N×N環(huán)形陣列,這一公式可以重寫,在此陣列中可通過選擇一個(gè)i和一個(gè)j來形成成叢分組,所使用的公式是對(duì)任何i,j和對(duì)所有a∈{0,1,…,N-1}取PE(i+a)(ModN),(j+N-a)(ModN)。
圖6顯示產(chǎn)生叢44至50,從PE1,3開始,把向南和向東通信的PE組合。事實(shí)上,叢44至50是新陣列4×4環(huán)形等效物的最佳實(shí)施例的叢,它們是把向南和向東通信的PE組成而成,不管在基本N×N環(huán)形40內(nèi)的那個(gè)PE用作為起始點(diǎn)。圖7和8是這一過程的另二個(gè)例子,分別使用3×3和3×5環(huán)形。
圖9中顯示了表現(xiàn)建叢過程的另一種方式。在這張圖和其后的類似圖中,為清楚起見,從圖中略去了卷繞連線。首先把傳統(tǒng)的4×4環(huán)形扭曲成一個(gè)菱形,由圖中每行向左移表示。這種移動(dòng)用于把轉(zhuǎn)置PE組合到菱形的“垂直切片(vertical slice)”中。為產(chǎn)生相等大小的叢,這些菱形基本上形成為一個(gè)圓柱形。就是說,最左(或者說最西)垂直切片80被卷繞以緊靠在它的行中最東的PE0,3。切片80東邊的垂直切片82被卷繞以緊靠PE0,0和PE1,3,而再向東的垂直切片84被卷繞以緊靠PE0,1,PE1,0和PE2,3。雖然為了清楚而沒有顯示出所有的連接,但所有連接與原始4×4環(huán)形中的連接保持相同。所造成的垂直切片產(chǎn)生圖5A所示最佳實(shí)施例叢44至50,這與用結(jié)合圖5A和圖6所作討論中說明的方式產(chǎn)生的叢相同。在圖10中,由圖9的菱形/圓柱形過程建立的叢是為顯示的目的而被“剝開”的,用以揭示叢間連接。例如,從叢44到叢46的所有PE間連接都是向南和向東的,正如從叢46到叢48,從叢48到叢50以及從叢50到叢44。這種通用化的叢間連接與SIMD處理過程的PE間通信特性相結(jié)合,允許PE間連接數(shù)顯著減少。如下文中結(jié)合圖16和17更詳細(xì)討論的那樣,多重互不相交通信,例如從叢44向南和向東到叢46的通信,可以被多路復(fù)用到叢間通行的共同的一組互連線上。于是,在下文中將稱作“多重陣列(manifold array)”的這種新陣列的PE間連線可以基本上減少到傳統(tǒng)最近鄰環(huán)形陣列伴隨的互連線數(shù)的一半。
用于產(chǎn)生多重陣列的成叢過程是對(duì)稱的,取垂直移動(dòng)環(huán)的水平切形成的叢與取水平移動(dòng)環(huán)的垂直切片形成的叢相同。圖11A和11B說明了這樣的事實(shí),即菱形/圓柱形技術(shù)也能用于從垂直移動(dòng)環(huán)的水平切片產(chǎn)生最佳叢。在圖11A中,傳統(tǒng)4×4環(huán)形陣列的各列被垂直移動(dòng)以產(chǎn)生菱形,在圖11B中該菱形被卷繞成一圓柱形。所成圓柱的水平切片提供了最佳叢44至50。至此所說明的技術(shù)中的任何一種可用于造成多重陣列的叢,它們提供的PE間連接等效于傳統(tǒng)環(huán)形陣列的連接,而所需PE間連線則基本上減少了。
如在發(fā)明概要中指出的那樣,上述成叢過程是通用性的,可以用于產(chǎn)生有M個(gè)叢,每叢含N個(gè)PE的多重陣列,其中每個(gè)PE來自一NXM環(huán)形陣列。例如,圖12中顯示的是造成4個(gè)叢每叢5個(gè)PE的菱形/圓柱形過程,得到5×4環(huán)形陣列等效物。請(qǐng)注意,構(gòu)成新PE叢,例如PE4,0,PE3,1,PE2,2,PE1,3和PE0,0的垂直切片保持了先前所示4×4陣列的轉(zhuǎn)置成叢關(guān)系。類似地,如圖13的圖形所示,一個(gè)4×5環(huán)形將產(chǎn)生每叢4個(gè)PE的5個(gè)叢,每叢具有的轉(zhuǎn)置關(guān)系與從4×4陣列得到的轉(zhuǎn)置關(guān)系只有稍許不同。事實(shí)上,轉(zhuǎn)置PE仍叢集在一起,只是安排上與4×4成叢陣列稍有不同。例如,轉(zhuǎn)置對(duì)PE1,0/PE0,1和PE2,3/PE3,2被分組到最佳4×4多重陣列內(nèi)的同一叢,但它們的表現(xiàn),盡管仍然成對(duì),卻在圖13的4×5多重陣列的分開叢中。如圖14的叢選擇圖中所示,在奇數(shù)乘奇數(shù)陣列中,對(duì)角線PE,即PEi,j,i=j(luò),被分配到每個(gè)叢一個(gè)。
圖15A至15D的框圖說明新多重陣列的叢間連接。為簡化描述,在下文的討論中,除特別說明外,均假定為單向連接路徑。雖然為清楚起見,描述本發(fā)明時(shí)以單線代表并行互連路徑或總線,但本發(fā)明也能實(shí)現(xiàn)位串行通信,換句話說,即具有單線的總線。在使用多路復(fù)用器或總線開關(guān)的地方,多路復(fù)用器和/或開關(guān)用于代替總線中的線數(shù)。此外,利用適當(dāng)?shù)木W(wǎng)絡(luò)連接和PE的微處理器芯片實(shí)現(xiàn),這新陣列可被用于允許MIMD、SIMD和SISD方式動(dòng)態(tài)切換的系統(tǒng),如在P.M.Kogge的美國專利5,475,856中描述的那樣,該專利題為動(dòng)態(tài)多重方式并行處理器陣列技術(shù),這里把它列入作為參考。
在圖15A中,叢80、82和84是3個(gè)PE叢,通過叢開關(guān)86和叢間鏈路88彼此相連。為理解多重陣列的PE如何彼此連接以造成特定拓?fù)浣Y(jié)構(gòu),從一個(gè)PE來看的連接圖必須從單個(gè)PE連接改變成把PE作為一個(gè)PE叢的成員所進(jìn)行的連接。對(duì)于一個(gè)在SIMD單向通信環(huán)境中操作的多重陣列,任何PE只需要一個(gè)發(fā)送端口和一個(gè)接收端口,不依賴于傳統(tǒng)環(huán)形中PE和它的任何直接附著的近鄰之間的連接數(shù)。一般地說,對(duì)于不會(huì)造成PE通信沖突的陣列通信模式,每個(gè)PE只需一個(gè)發(fā)送和一個(gè)接收端口,不依賴于一個(gè)特定拓?fù)浣Y(jié)構(gòu)可能要求其PE的近鄰連接數(shù)。
每叢4個(gè)PE的4個(gè)叢,即44至50,組合在圖15B的陣列中。叢開關(guān)86和連接路徑88把這些叢連接起來,其連接方式將在圖16、17和18的討論中更詳細(xì)地解釋。類似地,每叢5個(gè)PE的5個(gè)叢,即90至98,組合在圖15C的陣列中。在實(shí)踐中,叢90-98的放置要適于使集成電路易于布局和減小最長叢間連線的長度。圖15D顯示一個(gè)有6個(gè)叢,即99、100、101、102、104和106的多重陣列,每叢有6個(gè)PE。由于在新多重陣列中的通信路徑86是在叢間的路徑,從而消除了傳統(tǒng)環(huán)形陣列的卷繞連接問題。就是說,不管該陣列變?yōu)槎嗝创螅疾恍枰魏位ミB路徑長于由連接路徑88所示的基本叢間間距。這與傳統(tǒng)環(huán)形陣列的卷繞連接形成對(duì)照,后者必須伸展到整個(gè)陣列。
圖16的框圖更詳細(xì)地說明了一個(gè)4叢共16個(gè)PE的多重陣列的最佳實(shí)施例。叢44至50被安排成矩形或正方形,與它們會(huì)在集成電路布局中的位置很相像。在這圖中更詳細(xì)地說明了連接路徑88和叢開關(guān)。向南和向東的連接通過叢開關(guān)86多路復(fù)用,以減少PE間連線數(shù)。例如,PE1,2和PE2,2之間的南連接是在連接路徑110上實(shí)現(xiàn)的,這與從PE2,1到PE2,2的東連接是相同的。如前面指出的那樣,每個(gè)連接路徑,如連接路徑110,可以是一個(gè)位串行路徑,于是可以由單個(gè)金屬現(xiàn)在一集成電路實(shí)現(xiàn)中生效。此外,只有當(dāng)各自的控制線被認(rèn)定時(shí)這種連接路徑才能被接通。這些控制線可由圖3A中所示每個(gè)PE3,0的指令解碼器/控制器38產(chǎn)生。或者,這些控制線可由每個(gè)叢開關(guān)中包括的一個(gè)獨(dú)立的指令解碼器/控制器產(chǎn)生。由于每個(gè)開關(guān)有多個(gè)PE,所以對(duì)每個(gè)PE產(chǎn)生的多個(gè)使能信號(hào)進(jìn)行比較,以保證它們有相同值,從而保證沒有發(fā)生錯(cuò)誤并且所有PE同步操作。就是說,每個(gè)標(biāo)明的方向路徑伴有一個(gè)控制線,N用于北,S用于南,E用于東,W用于西。在這些線上的信號(hào)使多路復(fù)用器能在多路復(fù)用器到被連接PE的相應(yīng)數(shù)據(jù)路徑上傳送數(shù)據(jù)。當(dāng)控制信號(hào)未被認(rèn)定時(shí),相應(yīng)的數(shù)據(jù)路徑便不能開通,于是數(shù)據(jù)不能通過多路復(fù)用器沿那些路徑傳送。
圖17的方框圖更詳細(xì)地說明鏈接44到50這4個(gè)叢的互連路徑88和開關(guān)叢86。在這圖中,西和北連接被加到圖16中所示東和南連接上。雖然,在這種圖中每個(gè)處理元件看起來有兩個(gè)輸入和兩個(gè)輸出端口,但在這最佳實(shí)施例中在叢開關(guān)內(nèi)的另一層多路復(fù)用使每個(gè)PE的通信端口數(shù)降到一個(gè)用于輸入和一個(gè)用于輸出。在每個(gè)PE具有4個(gè)近鄰發(fā)送連接而且具有單向通信(即每個(gè)PE只有一個(gè)發(fā)送方向能被啟動(dòng))的標(biāo)準(zhǔn)環(huán)形中,每個(gè)PE中需要4個(gè)多路復(fù)用器或門電路發(fā)送路徑。一個(gè)門電路可以適用地包括具有使能和取消控制信號(hào)的多路復(fù)用器、與門、三態(tài)驅(qū)動(dòng)器/接收器以及其他這種接口使能/取消電路。這是由于被定義為PE一部分的互連拓?fù)浣Y(jié)構(gòu)。純結(jié)果是在標(biāo)準(zhǔn)環(huán)中有4N2個(gè)多重發(fā)送路徑。在具有等效連接和無限制通信的多重陣列中,只需要2N2個(gè)被多路復(fù)用的或有門電路的發(fā)送路徑。減少2N2個(gè)發(fā)送路徑轉(zhuǎn)換成顯著地節(jié)省集成電路“不動(dòng)產(chǎn)”面積,因?yàn)橛啥嗦窂?fù)用器和2N2個(gè)發(fā)送路徑所消耗的面積顯著地少于4N2發(fā)送路徑所消耗的面積。
圖18的方框圖中更詳細(xì)地顯示了一個(gè)完整的叢開關(guān)86。北、南、東、西輸出如先前說明的那樣。已有另一多路復(fù)用層112加到叢開關(guān)86上。這一多路復(fù)用層在標(biāo)為A的東/南接收和標(biāo)為B的北/西接收之間進(jìn)行選擇,從而把每個(gè)PE的通信需求減少到一個(gè)接收端口和一個(gè)發(fā)送端口。此外,轉(zhuǎn)置PE(PE1,3和PE3,1)之間的多路復(fù)用連接是通過標(biāo)為T的叢內(nèi)轉(zhuǎn)置連接生效的。當(dāng)認(rèn)定了一個(gè)特定多路復(fù)用器的T多路復(fù)用器使能信號(hào)時(shí),則在與該多路復(fù)用器相關(guān)聯(lián)的PE處收到來自轉(zhuǎn)置PE的通信。在該最佳實(shí)施例中,所有叢包括轉(zhuǎn)置路徑,如一個(gè)PE與其轉(zhuǎn)置PE之間的這種路徑。這些圖顯示了總體連接方案,但不打算用于說明一個(gè)多層集成電路實(shí)現(xiàn)可能如何實(shí)現(xiàn)整個(gè)常規(guī)陣列連接,這種整個(gè)常規(guī)陣列連接通常會(huì)是設(shè)計(jì)選擇的常規(guī)問題。就象任何集成電路布局那樣,IC設(shè)計(jì)者在對(duì)根據(jù)本發(fā)明的陣列的實(shí)際IC實(shí)現(xiàn)進(jìn)行布局時(shí)要分析各種權(quán)衡。例如,叢開關(guān)可以被分布到PE叢內(nèi),以減小大量接口的連線長度。
為了說明對(duì)一環(huán)形陣列通信能力的等效性和在多重陣列上執(zhí)行圖像處理算法的能力,下文中將描述一個(gè)使用圖19A所示3×3窗的簡單卷積。將使用在一環(huán)形機(jī)器上進(jìn)行卷積的Leen和Aggarwal算法。見S.Y.Lee和J.K.Aggarwal的“在一網(wǎng)格連接陣列處理器上的并行2D卷積”,IEEE模式分析和機(jī)器智能匯報(bào),第PAMI-9卷,第4期,590-594頁,1997年7月。圖3A所示基本PE30的內(nèi)部結(jié)構(gòu)用于說明在具有16個(gè)這種PE的4×4多重陣列上執(zhí)行的卷積。為了這個(gè)例子的目的,指令解碼器/控制器還提供叢開關(guān)多路復(fù)用器使能信號(hào)。由于每個(gè)開關(guān)有多個(gè)PE,所以對(duì)多重使能信號(hào)比較其相等情況,以保證沒有錯(cuò)誤并且所有PE在同步操作。
根據(jù)S.Y.Lee和J.K.Aggarwal的卷積算法,這多重陣列的大小最好是圖像的大小,例如對(duì)于N×N圖像使用N×N陣列。由于實(shí)現(xiàn)方面的問題,對(duì)于大的N,必須假定該陣列小于N×N。假定陣列大小為C×C,圖像處理可以被分塊成多個(gè)C×C塊,并考慮卷積窗大小所需要的圖像塊重疊。有各種技術(shù)可用于處置N×N圖像的邊緣效應(yīng)。例如,可使用象素復(fù)制,它有效地產(chǎn)生一個(gè)(N+1)×(N+1)陣列。應(yīng)該指出,由于所需處理的簡單性,在一個(gè)應(yīng)用的具體實(shí)現(xiàn)中可以定義很小的PE。于是,可以有大量的PE放置在一個(gè)芯片上的多重陣列組織中,從而改善對(duì)大圖像尺寸的卷積計(jì)算效率。
卷積算法提供了一種簡單的手段,用于演示多重陣列組織與北/東/南/西最近鄰環(huán)形陣列的等效性。于是,本例集中于該算法的通信方面,而且為簡化討論,一個(gè)很小的4×4圖像用于一個(gè)4×4多重陣列上。使用這一途徑能處置更大的N×N圖像,作法是在每個(gè)先前的4×4塊結(jié)束之后把一個(gè)新的4×4圖像段加載到陣列中。對(duì)于4×4陣列不使用卷繞,對(duì)于邊緣PE,從物理實(shí)現(xiàn)中不存在的虛擬PE接收0值。在這個(gè)操作例子中將復(fù)蓋對(duì)一個(gè)4×4象素塊的處理。
為開始這個(gè)卷積舉例,假定這些PE已被一個(gè)SIMD控制器(例如圖3A的控制器29)初始化,而且假定初始4×4象素塊已通過數(shù)據(jù)總線加載到每個(gè)PE中的寄存器R1,即每個(gè)PE已加載了一個(gè)象素。圖19C顯示了一個(gè)圖像的一部分,所具有的4×4塊被加載到該陣列中。圖19D顯示這一塊被加載到4×4環(huán)形的邏輯位置。此外,假定每個(gè)PE中的“累加和”寄存器R0已被初始化為零。雖然對(duì)這一算法不會(huì)造成后果,R2也顯示出已被初始化為零。在該算法的每一步,卷積窗元素被一次廣播一個(gè)。這些窗元素被接收到寄存器R2。在廣播窗元素之前機(jī)器的初始狀態(tài)示于圖20A。下面是對(duì)所有PE計(jì)算3×3近鄰中加權(quán)象素值之和的步驟。
該算法的開始是向所有PE發(fā)送(廣播)第一窗元素W00。一旦在每個(gè)PE中收到該值,這些PE計(jì)算第一個(gè)R0=R0+R2*R1或R0=R0+W*P。然后,根據(jù)所選擇的卷積路徑(圖19B)將計(jì)算結(jié)果通信到最近鄰PE。為簡化討論,假定每個(gè)要描述的操作步驟可被分解成三個(gè)子步驟,每個(gè)子步驟由控制器分發(fā)的指令控制廣播窗元素步驟,計(jì)算步驟,以及通信步驟。應(yīng)該指出,能開發(fā)出對(duì)這一簡化過程的改進(jìn),例如以主步驟2開始,以結(jié)果通信步驟復(fù)蓋窗元素廣播步驟。這些點(diǎn)對(duì)于本描述的目的不是實(shí)質(zhì)性的,而且會(huì)是本領(lǐng)域普通技術(shù)人員所理解的。在操作進(jìn)行過程中使用上標(biāo)代表求和步驟之值。為了有助于跟隨計(jì)算值的通信過程,在一個(gè)標(biāo)號(hào)上的下標(biāo)指出在其中產(chǎn)生該值的源PE。對(duì)象素{i,j}的卷積路徑示于圖19B。圖20-24指出每個(gè)計(jì)算步驟之后多重陣列的狀態(tài)。
在圖20B中,W00被廣播到各PE并每個(gè)PE計(jì)算R01=0+W00*R1并把R01通信到南PE,在那里,所收到的R01值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖21A中,W10被廣播到各PE并每個(gè)PE計(jì)算R02=R01+W10*R1并把R02通信到南PE,在那里,所收到的R02值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖21B中,W20被廣播到各PE并每個(gè)PE計(jì)算R03=R02+W20*R1并把R03通信到東PE,在那里,所收到的R03值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖22A中,W21被廣播到各PE并每個(gè)PE計(jì)算R04=R03+W21*R1并把R04通信到東PE,在那里,所收到的R04值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖22B中,W22被廣播到各PE并每個(gè)PE計(jì)算R05=R04+W22*R1并把R05通信到北PE,在那里,所收到的R05值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖23A中,W12被廣播到各PE并每個(gè)PE計(jì)算R06=R05+W12*R1并把R06通信到北PE,在那里,所收到的R06值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖23B中,W02被廣播到各PE并每個(gè)PE計(jì)算R07=R06+W02*R1并把R07通信,在那里,所收到的R07值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖24A中,W01被廣播到各PE并每個(gè)PE計(jì)算R08=R07+W01*R1并把R08通信到南PE,在那里,所收到的R08值被存儲(chǔ)在該P(yáng)E的寄存器R0中。
在圖24B中,W11被廣播到各PE并每個(gè)PE計(jì)算R09=R08+W11*R1并結(jié)束。
在上述9個(gè)步驟的結(jié)尾,每個(gè)PEi,j包含(參考圖19B)Ci,j=W00Pi-1,j-1+W10Pi,j-1+W20Pi+1,j-1+W21Pi+1,j+W22Pi+1,j+1+W12Pi,j+1+W02Pi-1,j+1+W01Pi-1,j+W11Pi,j。例如,對(duì)于i=5和j=6,C5,6=W00P4,5+W10P5,5W20P6,5+W21P6,6+W22P6,7+W12P5,7+W02P4,7+W01P4,6+W11P5,6。
應(yīng)該指出,在完成本例時(shí),如果按給定的操作假設(shè),則已計(jì)算出4個(gè)有效的卷積值,即在PE(1,1),(1,2),(2,1),(2,2)中的值。這是由于先前討論的邊緣效應(yīng)。由于這一算法所需PE的簡單性,可在一個(gè)芯片上容納大量PE,從而極大地提高了大圖像尺寸卷積計(jì)算的效率。
上例表明,多重陣列在其4個(gè)通信方向(北、東、南、西)的通信能力方面等效于一個(gè)標(biāo)準(zhǔn)的環(huán)形陣列,而只需標(biāo)準(zhǔn)環(huán)形的一半連線消耗。如果給定一個(gè)以規(guī)則連接模式、最小連線長度和最小費(fèi)用實(shí)現(xiàn)的多重陣列轉(zhuǎn)置PE間通信能力,那么該多重陣列還提供了超出標(biāo)準(zhǔn)環(huán)形陣列的附加能力。由于多重陣列組織結(jié)構(gòu)更規(guī)則,因?yàn)樗怯赏瑯哟笮〉腜E叢構(gòu)成,而同時(shí)又提供了轉(zhuǎn)置和近鄰?fù)ㄐ诺耐ㄐ拍芰Γ运砹伺c現(xiàn)有技術(shù)的標(biāo)準(zhǔn)對(duì)角線褶疊環(huán)形陣列相比更優(yōu)越的設(shè)計(jì)。
為了演示和描述的目的,前面已展現(xiàn)了本發(fā)明具體實(shí)施例的描述。并不想把本發(fā)明完全地限定在所公開的實(shí)踐形式,而且根據(jù)上面的說明,許多修改和變化都是可能的。選擇和描述這些實(shí)施例是為了最好地解釋本發(fā)明的原理及其實(shí)際應(yīng)用,從而使本領(lǐng)域其他技術(shù)人員能最好地利用本發(fā)明。其意圖是本發(fā)明的范圍只由這里所附權(quán)利要求來限定。
權(quán)利要求
1.多個(gè)處理元件(PE)的互連系統(tǒng),每個(gè)PE有一通信端口用于發(fā)送和接收數(shù)據(jù)和命令,該互連系統(tǒng)包含PE間連接路徑;以及連到所述PE的叢開關(guān),從而把互不相交的PE間連接路徑組合起來,從而基本上減少了為提供等效于傳統(tǒng)環(huán)形連接PE陣列的PE間連接所需的通信路徑數(shù)。
2.權(quán)利要求1的互連系統(tǒng),這里所述叢開關(guān)還包含提供轉(zhuǎn)置PE間直接通信的連接。
3.權(quán)利要求1的互連系統(tǒng),這里數(shù)據(jù)和命令可以按下述4種可選方式之一在所述通信端口上被發(fā)送和接收a)發(fā)送東/接收西方式,用于通過通信端口向東邊的一個(gè)PE發(fā)送數(shù)據(jù),而通過該通信端口從西邊的一個(gè)PE接收數(shù)據(jù);b)發(fā)送北/接收南方式,用于通過通信端口向北邊的一個(gè)PE發(fā)送數(shù)據(jù),而通過該通信端口從南邊的一個(gè)PE接收數(shù)據(jù);c)發(fā)送南/接收北方式,用于通過通信端口向南邊的一個(gè)PE發(fā)送數(shù)據(jù),而通過該通信端口從北邊的一個(gè)PE接收數(shù)據(jù);d)發(fā)送西/接收東方式,用于通過通信端口向西邊的一個(gè)PE發(fā)送數(shù)據(jù),而通過該通信端口從東邊的一個(gè)PE接收數(shù)據(jù)。
4.權(quán)利要求3的互連系統(tǒng),這里可以按用于轉(zhuǎn)置PE間發(fā)送和接收的第5種可選擇的轉(zhuǎn)置發(fā)送/接收方式來發(fā)送和接收數(shù)據(jù)和命令。
5.權(quán)利要求4的互連系統(tǒng),還包含連于PE的控制器和存儲(chǔ)器系統(tǒng),以同時(shí)地向每個(gè)PE控制端口發(fā)送控制信息并向每個(gè)PE數(shù)據(jù)端口發(fā)送數(shù)據(jù)以加載到每個(gè)PE的寄存器中。
6.權(quán)利要求5的互連系統(tǒng),這里所述PE間連接路徑被路徑使能信號(hào)有選擇地切換。
7.權(quán)利要求5的互連系統(tǒng),這里所述路徑使能信號(hào)是根據(jù)來自所述控制器的控制信息而產(chǎn)生的。
8.權(quán)利要求4的互連系統(tǒng),這里每個(gè)通信端口包括B一比特寬發(fā)送和接收路徑,這里B是大于或等于1的整數(shù)。
9.權(quán)利要求1的互連系統(tǒng),這里每個(gè)PE被連接成根據(jù)通過控制端口接收并由駐留在每個(gè)PE上的控制邏輯解碼的通信指令,有選擇地在一通信端口上發(fā)送命令或數(shù)據(jù),而經(jīng)由另一通信端口接收數(shù)據(jù)或命令。
10.權(quán)利要求9的互連系統(tǒng),這里的通信指令是由控制邏輯在所述控制端口從一控制器接收到的。
11.權(quán)利要求9的互連系統(tǒng),這里叢開關(guān)支持一種操作,在這種操作中每個(gè)PE同時(shí)發(fā)送命令或數(shù)據(jù)并接收命令或數(shù)據(jù)。
12.權(quán)利要求11的互連系統(tǒng),這里所述同時(shí)操作被有選擇地切換,從而使每個(gè)PE同時(shí)發(fā)送命令或數(shù)據(jù)并接收數(shù)據(jù)或指令。
13.一種陣列處理器,包含多個(gè)處理元件(PE),每個(gè)PE有單一的PE間通信端口;以及PE間通信路徑,被連接成提供等效于傳統(tǒng)環(huán)形連接陣列的PE間連接。
14.權(quán)利要求13的陣列處理器,還包含PE間通信路徑被連接成提供直接的轉(zhuǎn)置PE通信。
15.一種陣列處理器,包含多個(gè)處理元件(PE),被安排成叢;PE間通信路徑,被連接成使每個(gè)叢的PE在互不相交的方向上與至少兩個(gè)其他叢的每個(gè)叢中的PE通信;以及叢開關(guān),被連接成在所述互不相交的方向上多路復(fù)用PE間通信。
16.一種陣列處理器,包含N個(gè)叢,每叢M個(gè)處理元件,每個(gè)處理元件有一個(gè)通信端口,該處理元件通過此端口在總共B條連線上發(fā)送和接收數(shù)據(jù);小于或等于(M)(B)線寬的通信路徑,它們?cè)诿繉?duì)所述叢之間連接;該對(duì)中的每個(gè)叢成員包含的處理元件相對(duì)于該對(duì)中的另一叢中的處理元件而言是環(huán)形最近鄰,每個(gè)路徑允許所述叢對(duì)之間在兩個(gè)互不相交環(huán)形方向上的通信,即南和東,或南和西,或北和東,或北和西;以及多路復(fù)用器,被連接成把所述叢對(duì)之間的2(M)(B)線寬通信組合成所述少于或等地(M)(B)線寬的路徑。
17.權(quán)利要求16的陣列處理器,這里每個(gè)叢的處理元件向北和西環(huán)形方向與一個(gè)叢通信,向南和東環(huán)形方向與另一叢通信。
18.權(quán)利要求16的陣列處理器,這里每個(gè)叢的處理元件向北和東環(huán)形方向與一個(gè)叢通信,向南和西環(huán)形方向與另一叢通信。
19.權(quán)利要求16的陣列處理器,這里至少一個(gè)叢包括NXN個(gè)環(huán)形轉(zhuǎn)置對(duì)。
20.權(quán)利要求16的陣列處理器,這里的叢開關(guān)包含所述多路復(fù)用器,而所述叢開關(guān)被連接成多路復(fù)用從兩個(gè)互不相交方向收到的向一叢內(nèi)處理元件進(jìn)行的通信。
21.權(quán)利要求20的陣列處理器,這里所述叢開關(guān)被連接成多路復(fù)用從一叢內(nèi)處理單元向另一叢內(nèi)處理單元發(fā)送的通信。
22.權(quán)利要求21的陣列處理器,這里所述叢開關(guān)被連接成多路復(fù)用一叢內(nèi)轉(zhuǎn)置處理元件之間的通信。
23.權(quán)利要求16的陣列處理器,這里N大于或等于M。
24.權(quán)利要求16的陣列處理器,這里N小于M。
25.一種陣列處理器,包含N個(gè)叢,每叢有M個(gè)處理元件,每個(gè)處理元件有一個(gè)通信口,通過這個(gè)通信口,處理元件在總共B條線上發(fā)送和接收數(shù)據(jù),在一個(gè)叢內(nèi)的每個(gè)處理元件與叢內(nèi)的其他處理元件在物理上比該叢外部的處理元件更加靠近;通信路徑,它們小于或等于(M)(B)線寬,在所述叢對(duì)之間連接,在該對(duì)中的每個(gè)叢成員所包含的處理元件是該對(duì)中的另一叢中處理元件的環(huán)形最近鄰,每個(gè)路徑允許在所述叢對(duì)之間沿兩個(gè)互不相交環(huán)形方向進(jìn)行通信,即南和東,或南和西,或北和東,或北和西;以及多路復(fù)用器,把所述叢對(duì)之間的2(M)(B)線寬通信組合成少于或等于(M)(B)線寬路徑。
26.權(quán)利要求25的陣列處理器,這里每個(gè)叢的處理元件向北和西環(huán)形方向與一個(gè)叢通信,向南和東環(huán)形方向與另一叢通信。
27.權(quán)利要求25的陣列處理器,這里每個(gè)叢的處理元件向北和東環(huán)形方向與一個(gè)叢通信,向南和西環(huán)形方向與另一叢通信。
28.權(quán)利要求25的陣列處理器,這里至少一個(gè)叢包括NXN環(huán)形轉(zhuǎn)置對(duì)。
29.權(quán)利要求25的陣列處理器,這里一個(gè)叢開關(guān)包含所述多路復(fù)用器,所述叢開關(guān)被連接成多路復(fù)用從兩個(gè)互不相交環(huán)形方向到一叢內(nèi)處理元件所接收的通信。
30.權(quán)利要求29的陣列處理器,這里所述叢開關(guān)被連接成多路復(fù)用從一叢內(nèi)處理元件向另一叢發(fā)送的通信。
31.權(quán)利要求30的陣列處理器,這里所述叢開關(guān)被連接成多路復(fù)用在一叢內(nèi)轉(zhuǎn)置處理元件之間的通信。
32.權(quán)利要求25的陣列處理器,這里N小于或等于M。
33.權(quán)利要求25的陣列處理器,這里N大于M。
34.權(quán)利要求25的陣列處理器,這里處理元件之間的通信是位串行的,每個(gè)處理元件叢在所述通信路徑上與兩個(gè)其他叢通信。
35.權(quán)利要求25的陣列處理器,這里處理元件之間的通信路徑包含一個(gè)數(shù)據(jù)總線。
36.權(quán)利要求25的陣列處理器,這里所述通信路徑是雙向路徑。
37.權(quán)利要求25的陣列處理器,這里所述通信路徑包含單向信號(hào)線。
38.權(quán)利要求25的陣列處理器,這里P和Q分別是一環(huán)形連接陣列的行數(shù)和列數(shù),該陣列與所述陣列有相同PE數(shù),而且P和Q分別等于N和M。
39.權(quán)利要求25的陣列處理,這里P和Q分別是一環(huán)形連接陣列的行數(shù)和列數(shù),該陣列與所述陣列有相同PE數(shù),而且P和Q分別等于M和N。
40.一種陣列處理器,包含處理元件(PE)PEi,j,這里i和j代表一傳統(tǒng)環(huán)形連接陣列內(nèi)的各行和列的PE位置,而且這里i=0,1,2,…,N-1和j=0,1,2,…,N-1,所述PE對(duì)任何i,j和對(duì)所有a∈{0,1,…,N-1}被安排成叢PE(i+a)(ModN),(j+N- a)(ModN);叢開關(guān),被連接成多路復(fù)用在所述叢之間的PE間通信路徑,從而提供PE間連接等效于環(huán)形連接陣列的PE間連接。
41.權(quán)利要求40的陣列處理器,這里所述叢開關(guān)還進(jìn)一步被連接成提供一叢內(nèi)轉(zhuǎn)置PE對(duì)中的PE之間的直接通信。
42.權(quán)利要求40的陣列處理器,這里所述叢是可伸縮(scaleable)的。
43.構(gòu)成一陣列處理器的方法,包含的步驟是把處理元件安排到N個(gè)叢中,每叢M個(gè)處理器,使得每個(gè)叢包括的處理元件只在互不相交的環(huán)形方向上與至少一個(gè)其他叢的處理元件進(jìn)行通信;以及多路復(fù)用所述互不相交環(huán)形方向通信。
全文摘要
一個(gè)陣列處理器,所包括的處理元件被安排成叢,這些叢又被組合成一個(gè)矩形陣列。每個(gè)叢由這樣一些處理單元構(gòu)成,它們最佳地與至少兩個(gè)其他叢的處理元件通信。此外,每個(gè)叢間通信路徑是互不相交的,就是說,每個(gè)路徑承擔(dān)或者北和西,南和東,北和東,或者南和西通信。由于數(shù)據(jù)路徑的互不相交性,所以每個(gè)叢的處理元件之間的通信可以被組合成單一的叢間路徑。就是說,來自向北和東與另一叢通信的叢的那些通信可以被組合成一條路徑,從而去掉了一半為此路徑所需連線。此外,最長通信路徑不像傳統(tǒng)環(huán)形陣列那樣直接取決于該陣列的總尺度。相反,最長通信路徑只受叢間間距的限制。在一個(gè)實(shí)施例中,一個(gè)NxN環(huán)形的轉(zhuǎn)置元件被組合在叢中并通過叢內(nèi)通信路徑彼此通信。由于轉(zhuǎn)置元件彼此間有直接連接,因而以這種途徑消除了轉(zhuǎn)置操作延遲。另外,每個(gè)PE可以有單一發(fā)送端口和單一接收端口。結(jié)果,PE個(gè)體從陣列拓?fù)浣Y(jié)構(gòu)中解耦出來。
文檔編號(hào)G06F15/173GK1261966SQ98806757
公開日2000年8月2日 申請(qǐng)日期1998年6月24日 優(yōu)先權(quán)日1997年6月30日
發(fā)明者杰拉爾德·G·皮查尼克, 小查爾斯·W·克拉克 申請(qǐng)人:博普斯公司