專利名稱:可伸縮多路徑蠕蟲洞互連的制作方法
背景技術(shù):
本發(fā)明涉及計算和通信系統(tǒng)的互連結(jié)構(gòu)。具體地說,本發(fā)明涉及可用在多級互連結(jié)構(gòu)中的可伸縮低延遲交換器。
在計算機(jī)科學(xué)和通信領(lǐng)域一直存在一個意義重大的尚未解決的問題在全負(fù)載條件下,缺乏一種維持高流量和高交叉帶寬的可伸縮式低延遲互連。現(xiàn)有的互連設(shè)計,例如Banyon、Omega和胖樹網(wǎng)絡(luò)、多級網(wǎng)格、環(huán)形和超立方體網(wǎng)絡(luò),在被加載了流量時都在不同程度上無法實現(xiàn)無限的伸縮性,也不支持低延遲和高流量?,F(xiàn)有網(wǎng)絡(luò)的幾何結(jié)構(gòu)是由19世紀(jì)的數(shù)學(xué)家開發(fā)的,甚至是更早的幾何學(xué)家開發(fā)的,而他們從未設(shè)想過支持消息路由選擇方法。
所需要的是一種互連結(jié)構(gòu)和合適的交換器,用于在該結(jié)構(gòu)中形成可無限虛擬伸縮、并支持低延遲和高流量的互連。例如,非常適合于實施可伸縮交換器的多級、最小邏輯網(wǎng)絡(luò)或互連結(jié)構(gòu)已在美國專利US5996020和US6289021中詳細(xì)描述。
發(fā)明內(nèi)容
本發(fā)明涉及一系列互連結(jié)構(gòu)、充分利用該互連結(jié)構(gòu)以獲得可伸縮性、低延遲以及單芯片實現(xiàn)的交換器。所記載的互連結(jié)構(gòu)和交換器支持極為廣泛的應(yīng)用,包括超級計算機(jī)互連、LAN交換器、IP和ATM交換器、電話中央局交換、視頻點播服務(wù)器、巨型機(jī)數(shù)據(jù)庫服務(wù)器、高速工作站互連,以及許多其它本領(lǐng)域技術(shù)人員公知的應(yīng)用。
下面通過結(jié)合附圖的詳細(xì)說明,本發(fā)明的上述及其它目的、特征和優(yōu)點會更加清楚。其中圖1A示出具有設(shè)置為多列多級的節(jié)點陣列和置換塊的創(chuàng)新互連結(jié)構(gòu)的框圖,并示出了水平和垂直數(shù)據(jù)路徑、垂直控制信號路徑和輸入/輸出結(jié)構(gòu)。
圖1B示出了具有設(shè)置為多列多級的節(jié)點陣列和置換塊的互連結(jié)構(gòu)的可選實施例,并示出了水平和對角數(shù)據(jù)路徑以及垂直控制信號路徑。
圖1C舉例示出了多級、最小邏輯網(wǎng)絡(luò)或互連結(jié)構(gòu)的示意圖。為了方便理解該互連結(jié)構(gòu),該圖利用“節(jié)點”描述該結(jié)構(gòu),這些節(jié)點以多個設(shè)置在“圓柱”上的角度連接。虛線表示從輸入端口到指定輸出端口的消息路徑;圖2A簡要說明在節(jié)點陣列內(nèi)單元之間的局部互連示例。該圖示出了位于水平數(shù)據(jù)路徑上的單元的連接,或由數(shù)據(jù)路徑“向上”和控制信號路徑“向下”,通過置換塊連接到相鄰列中的單元、并垂直連接到同列中的單元的“行”;圖2B是簡化的單元圖,以4個方向“北”、“南”、“東”和“西”示出了與其它單元的互連,以方便理解并定義說明書中使用的約定;圖3A是一個表格,描述了包括各種預(yù)先定義位的消息格式,例如“通信量(traffic)”位、二進(jìn)制編碼位或指定目標(biāo)行地址的位。該消息格式一般包括其后跟隨有效載荷的標(biāo)題。圖3B是一個表示支持服務(wù)質(zhì)量(QOS)編碼的可選消息格式的表格。圖3C是一個表格,說明當(dāng)消息移動到下一級時,消息標(biāo)題的修改;圖4A詳細(xì)示出了一個8行3列互連、數(shù)據(jù)的連接拓?fù)浣Y(jié)構(gòu)、單元的控制信號路徑以及輸入/輸出(I/O)線路的示例。虛線說明蠕蟲洞消息流。圖4B簡要示出8行5列互連的可選但功能性等效拓?fù)浣Y(jié)構(gòu);圖5A是表示兩級和4列上的單元的簡化框圖,以說明蠕動穿過這兩級中單元的消息。圖5B也是表示兩級和4列上的單元的簡化方框圖,描述被來自低級單元的控制信號阻塞的消息。盡管該消息被阻塞,它還總是具有一個空閑路徑,可用于通過該互連繼續(xù)蠕蟲洞進(jìn)程,并經(jīng)向下移動到達(dá)另一列;圖5C是表示采用圖1B所示的對角拓?fù)浣Y(jié)構(gòu)的兩級和4列上的單元簡化方框圖。消息蠕動穿過單元,但是可以暫時被控制信號阻塞。當(dāng)?shù)谝幌?dāng)前被阻塞,圖5C的互連拓?fù)浣Y(jié)構(gòu)與前視控制信號一起防止阻塞第二消息。第二消息立即移動到下一級而不被阻塞;圖6A、6B和6C分別詳細(xì)說明了三個內(nèi)部狀態(tài)下的單元,并示出了消息的“垂直”和“水平”移動以及控制信號的傳送和接收;
圖7A至7F描述了一級互連結(jié)構(gòu),并說明多個用于形成該級結(jié)構(gòu)的可選配置,該結(jié)構(gòu)包括各種節(jié)點陣列、置換塊和FIFO。特定的配置可能更有利于一個或多個各種應(yīng)用;圖8A是說明有效采用可用硅的互連結(jié)構(gòu)的“階梯效應(yīng)”實施例方框圖。一個源于輸入設(shè)備,在互連結(jié)構(gòu)內(nèi)分叉,并從兩個目標(biāo)輸出節(jié)點退出該互連結(jié)構(gòu)的線路說明了消息蠕蟲洞流示例的操作;圖8B是表示階梯效應(yīng)互連結(jié)構(gòu)的示意圖;圖8C是說明在通信量爆破條件下保持流量時減少輸出連接數(shù)量的片上輸出隊列的簡化框圖。底行多列上的單元提供一個隊列。
圖9是表示單元、行、信號路徑、級和組之間關(guān)系的示意圖。多數(shù)據(jù)路徑從任意輸入終端或設(shè)備延伸到任意輸出終端或設(shè)備。
圖10是說明用于生成定義置換塊結(jié)構(gòu)的數(shù)字序列的操作的表格。
圖11A至11H詳細(xì)示出了確定用于移動到下一列的消息的行到行連接路徑的置換塊。置換塊操作基于圖10所示的轉(zhuǎn)換序列。
圖12A至12D詳細(xì)示出了以順序連接的M個1次置換塊方式影響消息流的“M次”置換塊。
圖13A是說明在水平和垂直互連路徑上單元的緊密物理結(jié)構(gòu)的框圖。圖13B是表示在水平和垂直互連路徑上進(jìn)行改進(jìn),以便更有效地使用硅和最小化單元至單元布線長度的物理布局的框圖。所改進(jìn)的布局在每級上產(chǎn)生“賽道溢出”(racetrack flow)。
圖14是示出具有超出典型2次冪大小和設(shè)計一類互連的11行互連結(jié)構(gòu)的互連圖。
圖15A至15D詳細(xì)示出了可能用在圖14所示的11行互連中的置換塊示例,該互連超過了典型的2次冪大小和設(shè)計。
圖16說明了生成用于基數(shù)3設(shè)計的數(shù)字序列的操作,該設(shè)計是一類不同于2次冪設(shè)計的互連。
圖17詳細(xì)示出了具有行至行連接路徑的置換塊,該連接路徑用于移動到來自圖16所示的基數(shù)3轉(zhuǎn)換序列的下一列的消息。
圖18時表示采用基數(shù)3設(shè)計的1列3級的27行互連的詳細(xì)互連圖。多列形成一個完整的互連。
圖19A詳細(xì)示出了一個與基數(shù)4節(jié)點和連接到其它單元的節(jié)點內(nèi)控制信號相關(guān)的邏輯單元。該邏輯在確定消息路由選擇的時刻檢查兩個標(biāo)題位。
圖19B示出了形成基數(shù)4節(jié)點的4個基數(shù)4單元的互連和互通信。包括在單元中顯示消息路由選擇優(yōu)先權(quán)以控制到低級的路徑的線路。
圖19C詳細(xì)示出了包括多個連接到南方的路徑以減少擁塞的基數(shù)4節(jié)點的實施例。圖19D詳細(xì)示出了包括其它連接到南方的路徑以進(jìn)一步減少擁塞的基數(shù)4節(jié)點的另一實施例。
圖20A示出了基數(shù)4和具有連接以多列多級連接的單元的4行互連,并示出為平衡通信量溢出而在連續(xù)列上改變優(yōu)先權(quán)的技術(shù)。
圖20B詳細(xì)示出在1列16行互連中的基數(shù)4單元,并說明了在級與列之間的轉(zhuǎn)換序列和單元組中的循環(huán)優(yōu)先權(quán)。
圖20C詳細(xì)示出了基數(shù)4互連實施例的1列和3級。
圖21A至21N以及21P是分別說明多個單元到單元的連接拓?fù)浣Y(jié)構(gòu)的框圖,該拓?fù)浣Y(jié)構(gòu)用于傳送消息和控制信息。所說明的結(jié)構(gòu)獨特的布局和拓?fù)浣Y(jié)構(gòu)在功能上相似。
圖22A是表示采用2單元節(jié)點的實施例的詳細(xì)互連圖,該節(jié)點具有一整套通過所述互連的連接路徑。來自相同節(jié)點的多路徑有效到達(dá)任意具有消除熱點的分岔路徑的目標(biāo)行。
圖22B表示采用2單元節(jié)點的8行、4列互連示例的詳細(xì)互連圖,該節(jié)點具有從輸入終端延伸到輸出終端的多路徑。來自相同節(jié)點的消息具有到任意輸出的多路徑,該輸出具有消除熱點的分岔路徑。
圖23是說明2單元節(jié)點、蠕動穿過該節(jié)點的消息以及通過兩級的數(shù)據(jù)和控制信號路徑對該節(jié)點的連接的示意框圖。
圖24A是表示在相同列但不同級的兩個單元,并表示消息到達(dá)這兩個單元的相對時間的框圖。較低單元接收消息,并在消息到達(dá)較高級單元之前確定路由選擇。該框圖進(jìn)一步關(guān)于在較低單元確定路由選擇時的標(biāo)題位說明在兩個單元中的移位寄存器內(nèi)容。
圖24B時表示用于兩級單元的信息到達(dá)的時間圖。下級使路由選擇先于下一較高級。在不同級別上插入定時偏差,以解決傳播延遲。還說明了消息定時和消息到達(dá)下一列的結(jié)束。
圖24C是說明互連的簡化框圖,該互連將圖24B所示的定時信號和時鐘分配到互連各級和各列的所有單元中。
圖24D是表示具有基于樹的用于在一個節(jié)點陣列中向各節(jié)點等量發(fā)布定時信號的扇出(fanout)傳統(tǒng)結(jié)構(gòu)的示意圖。
圖25是表示確定一條或多條消息進(jìn)入節(jié)點的路由選擇操作的簡化流程圖;圖26是表示圖23所示的2單元節(jié)點的連接狀態(tài)表,并基于從西進(jìn)入的消息的消息標(biāo)題內(nèi)容,結(jié)合從南接收的控制信號一起說明對節(jié)點內(nèi)部連接的確定。
圖27是表示具有內(nèi)部交換的4單元節(jié)點的示例方框圖,該內(nèi)部交換形成一整套至下一級的互連路徑,并顯示與在下級的多節(jié)點中的單元的連接。
圖28A和28B是用4單元節(jié)點形成的32行互連結(jié)構(gòu)的詳細(xì)互連圖,并示出了連接到相鄰行和級中單元的單元連接。圖28C是表示級間置換塊的示意圖。
圖29A是表示在圖1B和5C所示的對角拓?fù)浣Y(jié)構(gòu)的兩級兩列上復(fù)雜度增加的2單元節(jié)點的簡化框圖。該節(jié)點具有一整套互連路徑和控制信號,并支持為在相鄰列中的節(jié)點或單元競爭的單元優(yōu)先權(quán)關(guān)系。圖29B是說明另一種具有各種內(nèi)部單元、交換和控制邏輯的2單元版本的簡化框圖,該版本與圖29A所示的2單元節(jié)點拓?fù)浣Y(jié)構(gòu)不同而功能相同。
圖30示出了采用分形節(jié)點的互連結(jié)構(gòu)。
圖31A是表示包含節(jié)點中連接細(xì)節(jié)的兩級分形互連結(jié)構(gòu)的互連框圖。
圖31B是表示在保持分類順序的同時將數(shù)據(jù)路由到總線底部的壓縮裝置。在一級上,路由較早消息的消息優(yōu)先權(quán)高于到達(dá)同一級的新消息。
圖32是表示在互連內(nèi)生成測試消息和控制信號、并監(jiān)測消息通過互連的成功過程的內(nèi)裝自測試(BIST)子系統(tǒng)的簡化框圖。
圖33是表示無害地從互連中清楚單元、并由此執(zhí)行片上自修補(bǔ)功能的有缺陷單元旁路的簡化框圖。
圖34是表示具有備用芯片的多芯片互連系統(tǒng)一半的框圖。該備用芯片可以切換到該系統(tǒng)中以代替由缺陷的芯片。
圖35A是說明一種多芯片互連系統(tǒng)的框圖,其中,圖34所示的多芯片互連系統(tǒng)元件的兩半進(jìn)行互連,以形成一個完整的系統(tǒng)。備用芯片被切換到該系統(tǒng)中以代替有缺陷的芯片。圖35B是將芯片切換到和切換出該系統(tǒng)的另一種結(jié)構(gòu)的框圖。
圖36A、36B和36C是表示在頂級的輸入連接的簡化框圖,并分別說明不同排列,以滿足不同應(yīng)用的要求。圖36D是說明接收到異步輸入信號時的互連操作,在該輸入信號中在任意時間到達(dá)的輸入消息被路由到與該消息同步的特定列中。
圖37是表示在外部輸入設(shè)備的定時要求之前向該設(shè)備提供外部控制信號的互連結(jié)構(gòu)頂級的簡化互連框圖。該互連結(jié)構(gòu)產(chǎn)生控制信號,并將消息連接到輸入設(shè)備。
圖38是表示產(chǎn)生向外部輸入設(shè)備發(fā)送的及時的控制信號、并顯示采用返回阻塞消息以通知外部設(shè)備的外部“飛行時間”循環(huán)的附加結(jié)構(gòu)簡化互連框圖。該阻塞消息返回到互連結(jié)構(gòu),以便再次嘗試進(jìn)入該結(jié)構(gòu)。
詳細(xì)說明圖1A和圖1B是表示牢固的多路徑互連100的兩個實施例的框圖,該多路徑互連具有多行設(shè)置在多個垂直列和多級上的串行數(shù)據(jù)發(fā)送器和交換單元。在各列上,通過圖1A所示互連中的垂直數(shù)據(jù)路徑142結(jié)構(gòu)、圖1B所是互連路徑中的對角數(shù)據(jù)路徑110以及兩個圖中的垂直控制信號路徑140來互連這些級。示出了K列,從0列到K-1列,示出了J+1級,從0級到J級。每一級都包含多行以執(zhí)行串行數(shù)據(jù)傳輸114。水平行互連各級的節(jié)點陣列108、置換塊110和先進(jìn)先出串行顯示裝置(FIFO)112。
消息形式的串行數(shù)據(jù)被允許通過數(shù)據(jù)輸入端口進(jìn)入互連100。數(shù)據(jù)輸入元件102包括在一列或多列上的多個數(shù)據(jù)端口。從輸入端口進(jìn)入互連100的消息直接通過數(shù)據(jù)總線102進(jìn)入頂級的節(jié)點陣列108??刂菩盘柨偩€140和106上的信號說明可能無法獲得相關(guān)數(shù)據(jù)路徑來接受輸入數(shù)據(jù)。通過每個垂直路徑148上的數(shù)據(jù)輸出線,從互連100中輸出串行數(shù)據(jù)。每個數(shù)據(jù)列都連接到多個輸出端口。外部控制信號164可以通知該互連外部設(shè)備已經(jīng)準(zhǔn)備好或還未準(zhǔn)備好接受數(shù)據(jù)。在該互連的一些實施例中,控制信號164被省略,到達(dá)底級的消息被立即連接到輸出端口。
示出了K列。一列可能包含多個運送消息的獨立數(shù)據(jù)傳輸路徑。例如,互連結(jié)構(gòu)可以具有K列,每列具有2J個下行傳輸路徑,其中J+1是互連級數(shù),并支持上行至2JK個輸入端口和上行至2JK個輸出端口。數(shù)據(jù)線的數(shù)量在同一實施例中可能不是2J。
為了方便理解,認(rèn)為消息一般在互連中是從左向右、從上到下流動的。注意該習(xí)慣用法是人為施加的,以便說明在理論拓?fù)浣Y(jié)構(gòu)中的消息運動,而不是說明網(wǎng)絡(luò)的結(jié)構(gòu)空間限制。該拓?fù)浣Y(jié)構(gòu)可以折疊、扭曲、翻轉(zhuǎn)、褶皺,或在相對位置對應(yīng)于上述拓?fù)浣Y(jié)構(gòu)進(jìn)行任何改變。到達(dá)一級右側(cè)38的消息被路由到左側(cè),以便進(jìn)入左側(cè)136。時鐘126控制節(jié)點陣列108、FIFOs112一級輸入輸出定時的定時。進(jìn)入互連的消息時間由外部定時信號146進(jìn)行控制。
互連100的特性包括以下其中之一,但并不僅限于此(1)采用控制信號來向可能使用該控制信號的交換單元通知消息路徑的可用性;(2)總是可以使用一條來自單元的可選路徑;(3)從任何輸入連接到任何端口的多路徑;(4)蠕動穿過互連的消息。
在互連100中移動的串行消息總是具有可用路徑,以便繼續(xù)蠕蟲洞運動,并且決不會被保留在緩存器中,這減小了通過互連的移動時間。與該重要特征相結(jié)合的還有全局定時模式,其允許在每個節(jié)點上在單個時鐘周期內(nèi)執(zhí)行邏輯和控制,并使穿過互連的蠕蟲洞消息傳輸成為可能。當(dāng)消息在互連中跨越多個節(jié)點時進(jìn)行蠕蟲洞傳輸,其程度甚至達(dá)到在消息尾部進(jìn)入輸入端口之前消息標(biāo)題(頭?)就到達(dá)輸出端口。當(dāng)消息通過互連結(jié)構(gòu)從一個節(jié)點到達(dá)另一個節(jié)點時,不需要任何形式的信號交換就執(zhí)行蠕蟲洞路由。
在一些互連100的實施例中,輸出控制邏輯162識別和路由已到達(dá)底級的消息,并將這些消息連接到合適的目標(biāo)端口166。當(dāng)兩個或更多信息在同一時間周期內(nèi)到達(dá)同一個輸出端口,緩存器160可以用于存儲隨后從互連中輸出的消息。外部控制信號164通知該輸出端口該外部目標(biāo)是否能接受消息。后面將詳細(xì)討論輸出控制功能。在可選的實施例中,輸出控制邏輯162和緩存器166都被省略,消息可直接從底級移動到各輸出端口166。
圖1A示出了水平和垂直方向的消息路徑以及垂直方向的控制信號。圖1B示出了一個可選的實施例,其中消息水平或?qū)窍滦?,且控制信號以垂直方向移動。在圖1A中,在垂直數(shù)據(jù)路徑中向下移動的數(shù)據(jù)立即移動到水平數(shù)據(jù)路徑中的右側(cè),以便從給定的節(jié)點陣列移動到低一級且在其右側(cè)列上的陣列。在圖1B中,數(shù)據(jù)直接從節(jié)點陣列移動到低一級且在其右側(cè)列上的陣列。
圖1C是說明4圓柱、8行網(wǎng)絡(luò)的示意圖,該網(wǎng)絡(luò)示例表示多級、最小邏輯網(wǎng)絡(luò)(MLML)。串行消息形式的數(shù)據(jù)從位于最外端圓柱上的網(wǎng)絡(luò)INPUT(輸入)端口進(jìn)入網(wǎng)絡(luò),如圖1C頂部的圓柱3所示,并從節(jié)點到節(jié)點相該消息標(biāo)題中指定的目標(biāo)輸出端口移動。數(shù)據(jù)總是在一個時間周期內(nèi)移動到另一個角度的節(jié)點上。消息向圖1C中低一級所示的內(nèi)圓柱移動,只要這樣的移動使得該消息更接近于目標(biāo)端口。
該網(wǎng)絡(luò)具有兩種傳輸路徑一種用于數(shù)據(jù),另一種用于控制信息。在所述實施例中,該網(wǎng)絡(luò)中的所有節(jié)點都可能具有相同的設(shè)計。在其它實施例中,這些節(jié)點可能具有共同的其它設(shè)計和特性。節(jié)點接受來自位于相同圓柱上的節(jié)點的數(shù)據(jù),或來自該節(jié)點圓柱外部圓柱的數(shù)據(jù),并將數(shù)據(jù)發(fā)送到位于相同圓柱上的節(jié)點,或發(fā)送到該節(jié)點圓柱內(nèi)部的圓柱。在給定級上的消息的第一位始終圍繞該圓柱移動,從而使得消息始終圍繞中心軸旋轉(zhuǎn)移動。當(dāng)消息位從圓柱移動到較內(nèi)部的圓柱時,消息位與該內(nèi)部圓柱上的消息精確同步。根據(jù)應(yīng)用或?qū)嵤├?,?shù)據(jù)可以進(jìn)入一個或多個列或角度的互連或網(wǎng)絡(luò)中,并能在一個或多個列或角度上退出。
節(jié)點向位于較外部的圓柱發(fā)送控制信息,并從較內(nèi)部的圓柱接收控制信息??刂菩畔⒈粋魉偷皆谕唤嵌然蛄猩系墓?jié)點??刂菩畔⑦€從最外部圓柱上的節(jié)點被傳送到輸入端口,以通知該輸入端口能從輸入端口接收消息的最外部圓柱上的節(jié)點何時不能接受消息。同樣,無論何時輸出端口不能接受數(shù)據(jù),該輸出端口都可以向最內(nèi)部圓柱上的節(jié)點發(fā)送控制信息??偟膩碚f,在任意圓柱上的節(jié)點都發(fā)送控制信號,以便通知節(jié)點或輸入端口該控制信號發(fā)送節(jié)點無法接收消息。節(jié)點接收來自較內(nèi)部圓柱上或在輸出端口上的節(jié)點的控制信號。該控制信號通知該控制信號的接收者,它是否可以向位于接收節(jié)點的圓柱更內(nèi)部的圓柱上的第三節(jié)點發(fā)送消息。
在圖1C所示的網(wǎng)絡(luò)中,如果節(jié)點A向同一圓柱上的節(jié)點B發(fā)送消息,且節(jié)點B從較外部圓柱上的節(jié)點J接收數(shù)據(jù),則節(jié)點A獨立地向節(jié)點J發(fā)送控制信息。從節(jié)點A和J接收消息的節(jié)點B不參與節(jié)點A和J之間的控制信息交換。控制信號和數(shù)據(jù)路由拓?fù)浣Y(jié)構(gòu)以及消息路由模式將在后面詳細(xì)說明。
圖1C中的術(shù)語“圓柱”和“角度”用于參考位置。這些術(shù)語分別類似于“級”和“列”。圖1C中,數(shù)據(jù)水平或?qū)堑貜囊粋€圓柱移動到下一個圓柱,控制信息向外發(fā)送到同一角度上的節(jié)點,類似于圖1B中所示的布局。圖1B的節(jié)點陣列108類似于在一個MLML網(wǎng)絡(luò)角度上的一個圓柱中的節(jié)點列。參照圖2A并結(jié)合圖1A,節(jié)點陣列108包括R個單元202。節(jié)點陣列108位于互連100的一級和一列的交叉點上。所述互連100具有一個在水平行208上的單元,以及一個或多個在垂直路徑210上的單元。行208是水平數(shù)據(jù)路徑,用于從給定級上的一列向下一列傳送消息。行208包含在數(shù)據(jù)總線114中。一級包括R個數(shù)據(jù)行208。一列包括R個垂直數(shù)據(jù)路徑204以及R個垂直控制信號路徑206。垂直數(shù)據(jù)路徑204向下一下級串行傳送消息,并且是數(shù)據(jù)總線142的成員。垂直路徑206從下級上的單元向較高級上的單元傳送控制信號,或者,如果該單元在頂級就向輸入204傳送控制信號。路徑206上的控制信號通知該單元或上面的單元該發(fā)送信號的單元無法接受消息。單元202位于每個水平行208和垂直數(shù)據(jù)路徑204的交叉點上。在一可選的實施例中,不同級上的行數(shù)可能不同。
在一些實施例中,多個垂直數(shù)據(jù)和控制信號路徑可以連接到一個或一組單元。這里使用的術(shù)語“單元”是指位于行208和垂直數(shù)據(jù)路徑210的交叉點上的交換元件。從左側(cè)接收消息的該單元可以通過以下兩種方式之一交換消息(1)水平交換到位于同一級下一列上的單元,或(2)下行交換到下級上的單元。在討論互連與網(wǎng)絡(luò)的文獻(xiàn)中,術(shù)語“節(jié)點”通常用于指交換元件,例如互連中的單個交換器、一組交換器、一個或多個控制元件,或是諸如因特網(wǎng)的分散式網(wǎng)絡(luò)一部分的完整交換器系統(tǒng)。在本說明的上下文中,“節(jié)點”是指單個單元,或在同一節(jié)點陣列中的一組互連單元。在簡單實施例中,一個節(jié)點包括一個單元和用于該單元的控制邏輯。在其它示例中,一個節(jié)點包括多個單元以及用于這些單元的所有或大部分控制邏輯。
置換塊110生成水平移動的消息行到行的轉(zhuǎn)換,并位于一些列之間。先進(jìn)先出元件陣列是多個串行顯示元件,后面表示為FIFO。FIFO112位于行208上。FIFO陣列112位于一列或多列之間。由于垂直數(shù)據(jù)路徑204與對應(yīng)控制信號垂直路徑206相關(guān)聯(lián),因此,這對垂直路徑表示為子列210。同樣,消息輸入端口214和相關(guān)聯(lián)的控制信號輸出216表示為輸入端口240。數(shù)據(jù)輸出路徑218和相關(guān)聯(lián)的控制信號輸入端口220表示為輸出端口242。
數(shù)據(jù)通過輸入端口214進(jìn)入位于最頂部節(jié)點陣列中的單元202,并從位于最底級的單元退出到輸出端口218。輸入端口214的控制信號216可以通知外部輸入設(shè)備相關(guān)聯(lián)的輸入端口無法接受數(shù)據(jù)??刂菩盘栞斎攵丝?20接收來自外部設(shè)備的信號,這可能表示后者不能接收來自相關(guān)輸出端口的數(shù)據(jù)。根據(jù)單元特性,顯示為一行的數(shù)據(jù)路徑204、控制信號路徑206和數(shù)據(jù)行208可能各包括一個或多個信號路徑。在同一節(jié)點陣列互連、并作為一個節(jié)點作用的單元將在后面討論。
參照圖2B,為單元描述了方向習(xí)慣用法。單元202從北或西側(cè)接受一條或多條消息,并向東或南側(cè)傳送消息。單元向北側(cè)發(fā)送一個或多個控制信號,并從南側(cè)接受一個或多個控制信號。如果消息直接或通過置換塊移動到下一列,則將該消息描述為向東移動。同樣,如果消息直接或通過置換塊下行到下級,則將該消息描述為向南移動。采用方向作為習(xí)慣用法是為了表示流入或流出單元的數(shù)據(jù)或控制信號方向。在第L級、第C列的消息在下個時間步長移動到(1)第L級、第((C+1)mod K)列,或(2)第L-1級、第((C+1)mod K)列,其中K是列數(shù)。更為一般地,在留在同一級上或下行到下級期間,消息總是移動到下一個連續(xù)列而無需緩存。
在光學(xué)波分多路復(fù)用(WDM)的實施例中,標(biāo)題位可以全部在同一個采用不同波長傳送不同標(biāo)題位的時間隙內(nèi)移動。可以在時域和頻域中傳送數(shù)據(jù)。
圖3A示出了非常合適的消息格式示例。進(jìn)入互連100的消息包括具有值“1”的通信量位302、指明目標(biāo)行或目標(biāo)輸出端口218的目標(biāo)標(biāo)題304,以及有效載荷306。通信量位302指明當(dāng)前是否有消息。消息標(biāo)題304是二進(jìn)制編碼的目標(biāo)行數(shù),例如地址308的最高有效位(MSB)首先出現(xiàn),最低有效位310最后出現(xiàn),下一個最高有效位326在MSB后面。在一個可選的實施例中,最低有效位最先出現(xiàn)??蛇x地在標(biāo)題(未示出)之后對目標(biāo)列進(jìn)行編碼。有效載荷306包括期望在互連100中從任意輸入端口214傳送到任意輸出行或端口218的數(shù)據(jù)包。在互連100的一些實施例中,有效載荷306可以具有可變長度,最大為預(yù)定的最大長度。最大長度是一種定時功能。例如,允許短消息在一個時間周期或多個時間周期進(jìn)入互連,較長的消息在其它時間進(jìn)入,使消息長度不同的模式能以由外部命令控制的方式進(jìn)行重復(fù)。消息300的總長包括通信量位302、標(biāo)題304和有效載荷306。有效載荷306是串行數(shù)據(jù)流,例如共享存儲器的高速緩存界線(cacheline)、在超級計算機(jī)中通信消息的內(nèi)處理器、交換器或路由器中的ATM單元、以太網(wǎng)幀、交換器或路由器中的IP分組,或任何期望從互連輸入端口傳送到任意輸出端口的其它數(shù)據(jù)。
參照圖3B,除了已討論的一個標(biāo)題或多個標(biāo)題以及有效載荷之外,消息330可能還包括優(yōu)先權(quán)位和/或服務(wù)質(zhì)量(QOS)位332。這些位用在互連中,以指定一條消息是否具有高于另一條消息的優(yōu)先權(quán),以及/或如果互連由于其它消息通信而被阻塞,是否可以在互連中去掉特定的消息。可以在消息進(jìn)入互連之前設(shè)置QOS位,例如以便指明低優(yōu)先權(quán)的ATM(異步傳輸模式)單元或分組。也可以當(dāng)消息在互連結(jié)構(gòu)中時對QOS位進(jìn)行修改,例如以便在互連結(jié)構(gòu)中跟蹤該消息的壽命。
參照圖3C,當(dāng)消息300向南移動到下級時,MSBH1308從該消息中被刪除。因此,下一個最高有效位H2326就成為該消息在下一下級上的MSB。標(biāo)題長度改變的期望邊緣效應(yīng)是,標(biāo)題的長度每級減少一位。MSB位去除優(yōu)選最小化單元中所需的邏輯數(shù)量。當(dāng)消息300到達(dá)目標(biāo)輸出端口時,標(biāo)題304的所有位都已被刪除,這減小了消息的傳送時間。通信量位302作為該消息的第一位,和其它非行標(biāo)題位一起被保留下來。如果消息的接收者需要目標(biāo)地址,可以包含在有效載荷部分中。
圖4A是表示具有在單元之間互連的互連示例圖,并描述了蠕動穿過的消息。每一級的互連拓?fù)浣Y(jié)構(gòu)都和圖1C所示的多級最小邏輯網(wǎng)絡(luò)相同。為清楚起見,該圖每級只有8行、3列。其它實施例具有更多的行和列,例如每級64到1024行或更多行,12到24列或更多列,但不僅限于此。在保持有效流量和蠕蟲洞消息傳輸?shù)耐瑫r,互連規(guī)模向上沒有限制。置換塊110可以設(shè)置在列之間。在節(jié)點陣列108中使用了“恒等”布局。恒等布局是一種沿著所示對角方向的單元設(shè)置。置換塊的布局將在后面結(jié)合圖10進(jìn)行說明?;ミB在每級上具有單個FIFO結(jié)構(gòu)112,采用圖7B所示的配置。圖4A中的一些節(jié)點標(biāo)有“+”,以指明消息通過互連結(jié)構(gòu)的移動規(guī)則。在進(jìn)行路由選擇時,從第L級移動到第L-1級的消息使用標(biāo)題位HL。在一些實施例中,位HL是該地址的最高有效位308。具有HL=1的消息從第L級,從第L級標(biāo)有“+”的節(jié)點傳送到第L-1級。具有HL=0的消息從第L級,從第L級不標(biāo)有“+”的節(jié)點傳送到第L-1級。通過第L級上節(jié)點的消息移動規(guī)則優(yōu)選僅基于來自第L-1級上節(jié)點的通信量位、標(biāo)題位HL和控制位。該控制位的目的是為了指明阻塞條件。通過假設(shè)沒有出現(xiàn)阻塞而簡化了圖4A所示的消息流示例。
消息M從第0列、第3級、第3行的北側(cè)進(jìn)入互連結(jié)構(gòu)。點劃線示出了在消息蠕動穿過互連結(jié)構(gòu)時消息M的全路徑。消息M進(jìn)入位于第一節(jié)點陣列第3行的單元A。消息M的行標(biāo)題304是“100”,以二進(jìn)制符號指明了底級第4行的目標(biāo)。從北進(jìn)入單元的消息立即被向東路由。在退出第一節(jié)點陣列之后,消息向東移動,并通過置換塊□□□1,其中該消息從第3行移動到第7行,并進(jìn)入連接到南方,連接到位于第2級的上一組單元中的單元C的單元B。在圖4A中,用“+”表示連接到上一組中單元的單元,例如單元C。術(shù)語“單元組”將在對圖9的討論中詳細(xì)討論。為清楚起見,路徑410表示為包含兩個信號的單線,這兩個信號是(1)向南的數(shù)據(jù)路徑204,和(2)來自南方的控制信號206。消息M標(biāo)題的MSB是“1”,指定在上一組中的目標(biāo)單元。因此,單元B將消息向南路由到單元C。單元B通過刪除當(dāng)前MSB修改標(biāo)題,該標(biāo)題地址在向南被發(fā)送到第2級之前從“100”改為“00”。通過節(jié)點C的消息通過第4、5、6或7行的輸出端口退出互連結(jié)構(gòu)。
從北進(jìn)入單元的消息被向東路由,從而消息M從單元C通過置換塊□□□1,從第7行向東移動到第4行的連接到較低組的單元D。H2是標(biāo)題的新MSB。H2的值“0”表明消息M的目標(biāo)是通過第0、1、4或5高度的輸出端口退出結(jié)構(gòu)。標(biāo)題的MSB現(xiàn)在為表明較低組的“0”。單元D將消息向南路由到單元E。通過單元E的消息通過第4或第5行的輸出端口退出互連結(jié)構(gòu)。單元D將消息標(biāo)題從“00”修改為“0”。在第1級,單元E將消息向東路由通過置換塊□□□1,通過FIFO112,然后到達(dá)互連的右側(cè)138。消息循環(huán)到西418,并進(jìn)入第一列的同一行,即第5行。更適合的實施例具有超過三個如該例中所示的行,該信息并不這么快就進(jìn)入FIFO。單元F連接到上一組。MSB“0”表示低一組。單元F將消息M向東路由到單元G。連接到低一組的單元G將消息向南向東發(fā)送到第4行,即目標(biāo)行。消息移動到下一列,并在通過整個互連之后退出。圖4A說明蠕動穿過互連的消息。圖1C示出了蠕動穿過網(wǎng)絡(luò)的消息的相似例,其中標(biāo)題在尾部進(jìn)入之前就已退出。沒有被阻塞的消息在蠕動穿過互連結(jié)構(gòu)時平均在每一級上都遇到單元1和5。
3節(jié)點組簡單示出了在所述互連結(jié)構(gòu)中的連接關(guān)系。3節(jié)點組在不是第0級的任何一級上都具有第一節(jié)點,每級上的第一節(jié)點可以向與第一節(jié)點位于同一級上的第二節(jié)點發(fā)送消息??稍L問以接收來自第一節(jié)點的消息的輸出端口集和可從第二節(jié)點訪問的輸出端口集相同。第一節(jié)點也可以向第三節(jié)點發(fā)送消息。第三節(jié)點位于低于第一和第二節(jié)點級的級上。可訪問以接收來自第三節(jié)點的消息的輸出端口集不等于可從第一節(jié)點訪問的輸出端口集,但卻是可從第一節(jié)點訪問的輸出端口集的子集。通過這種方式,當(dāng)消息下降一級時,可訪問輸出端口目標(biāo)的數(shù)量減少,由于消息從未向上移動一級,因此,消息在減小可訪問輸出端口的數(shù)量方面所作的進(jìn)步不會失去。
圖4B示出了8行、5列的互連式示例的布局示例,該互連在拓?fù)浣Y(jié)構(gòu)上等效于圖4A所示的5列互連實施例。每級上的布局都與圖7C所示的結(jié)構(gòu)相同,其中在列之間僅插入了一個FIFO,并且沒有插入置換塊,這使得在芯片上具有更多的空間用于控制邏輯。通過每個節(jié)點陣列中的特殊單元設(shè)置,同樣達(dá)到了列之間的置換塊效果。特別是,單元的位置由西側(cè)和南側(cè)的單元確定。用等同的配置描述第0級和第0列的布局。第0級的單元設(shè)置在相同的配置中,定義為從較低左側(cè)到較高右側(cè)的對角設(shè)置,如圖所示。第0列中的單元在各級也設(shè)置在相同的配置中。保留的節(jié)點陣列108被設(shè)置為從左至右,從下到上的順序在第1列第1級的節(jié)點陣列中的單元位于第2列第1級的節(jié)點陣列單元之前,等等。第1級被設(shè)置在第2級之前,等等。通過檢查同一行上向西的單元以及同一垂直路徑上向南的單元,并將轉(zhuǎn)換序列應(yīng)用到當(dāng)前單元級來確定單元位置。圖10中將詳細(xì)討論轉(zhuǎn)換序列。
在第1級,在第0行上的單元可選地位于第0級單元上方,在第0、1、0、1…行上,如序列S21012所示。此外,在第1級的每行上,單元可選地位于第0、1、0、1…(mod 2)行上。在第2級上,第0行上的單元可選地位于第1級單元上方,以序列S41030位于第0、2、1、3、0行上,此外,在第1級的每行上,單元可選地位于第0、2、1、3、0…(mod 4)行上。在第3級,單元可選地以序列S81036位于第0、4、2、6、1、5、3、7、0…行上。還參照圖4A,消息從第0行開始,在留在第3級的同時移動到右側(cè)。置換塊將消息從第0行置換到第4行,然后從第4行置換到第2行,從第2行到第6行,等等。從圖1A、1B和1C所示的轉(zhuǎn)換序列結(jié)構(gòu)中形成的圖4A和圖4B所示的互連結(jié)構(gòu)相似。
參照圖4B,所有行都向南連接到由轉(zhuǎn)換序列定義的單元。消息總是在上一組和下一組之間交替(循環(huán)?)。連接到上一組的單元用“+”表示,以便說明交替連接的模式。當(dāng)消息從最后一列,即第4列向東移動,該消息在向西循環(huán)到第0列時通過5次置換塊。5次置換塊的操作是繼續(xù)轉(zhuǎn)換序列Sn,這將在后面討論。
圖4B描述了一種設(shè)置單元的方法,其中通過在節(jié)點陣列中對單元進(jìn)行特設(shè)設(shè)置,達(dá)到了期望的每一列之間的置換塊的中間級效應(yīng),具有優(yōu)點地簡化了集成電路芯片的布局。對于具有K列的互連結(jié)構(gòu),在各級中使用了一個K次置換塊,達(dá)到了用于循環(huán)回到第一列的消息的被省略的置換塊效果。該結(jié)果是。圖4B中所示的布局在拓?fù)浣Y(jié)構(gòu)上與另一個在每一列之間都具有1次置換塊的8行、5列交換器相同。
當(dāng)在不同級上的兩條消息競爭同一個水平數(shù)據(jù)路徑208時,由于下級的消息可能在互連上停留了更長的時間,因此下級上的消息具有優(yōu)先權(quán),即優(yōu)先的邏輯分配。圖5A和5B中說明了實施該優(yōu)先權(quán)規(guī)則的合適結(jié)構(gòu)。為清楚起見,每個節(jié)點陣列及示出了一個單元,任何可能位于列之間的置換塊和/或FIFO都被省略。圖5A和5B示出了單元設(shè)置,每個單元具有兩級4列。單元A通過行208向東連接到同一級、下一列的單元B。
圖5A說明了消息M1502從北進(jìn)入單元A的情況。通信量位302是“1”,表示當(dāng)前有消息。當(dāng)消息從北進(jìn)入單元時,該消息保留在同一級上,并立即向東移動到下一列的單元上。因此,消息M1在行208上繼續(xù)向東移動到單元B,從而示該消息在一個時間步長中下降了一級,并右移了一級。標(biāo)題的最高有效位(MSB)制定了下級單元的特定組。單元B檢查通信量位和MSB,并確定到目標(biāo)的路徑是否包括到單元B南部的單元。單元B沒有從下被阻塞,并向單元F發(fā)送該消息。根據(jù)消息從北進(jìn)入的規(guī)則,消息M1立即在行522上被向東路由到下一單元G。
圖5A說明從北進(jìn)入單元、并立即向東移動到下一列單元B的消息M1流。檢查標(biāo)題,消息M1被向南路由到F,然后向東。允許消息M1從單元B下降到單元F,因為(1)消息M1的MSB表示到目標(biāo)的連接包括單元F,(2)消息M1沒有被其它消息阻塞,也就是說,來自F的行522可用。該例說明了允許消息沒有延遲地移動到下一下級的情況。設(shè)置在單元A、B和F中的交換器用于從上述A直接連接到G。
參照圖5B,在另一示例中,同一消息M1從北進(jìn)入單元A,并向東路由到單元B。另一消息M2在單元F,對消息M1具有優(yōu)先權(quán),通過以下兩種方式(1)消息M2對消息M1具有進(jìn)入單元G的優(yōu)先權(quán),(2)消息M2在鏈接522使用中對消息M1具有優(yōu)先權(quán)。當(dāng)消息M1進(jìn)入單元B時,消息M2已經(jīng)從西進(jìn)入單元F。單元F將消息M2在行522上向東路由到下一單元G。由于行522立即被消息M2占用,因此單元F無法接受來自北側(cè)的消息,也就是來自單元B的消息。為了避免在消息M1和M2之間發(fā)生沖突,單元F向北向單元B發(fā)送控制信號206。由此,單元B被阻塞,不能向南發(fā)送消息M1。單元B被迫使類似地向北發(fā)送控制信號,以保護(hù)消息M1不與上述消息發(fā)生可能的沖突,并將消息M1向東路由到單元C;由此,防止可能在單元B上的消息M3向南下降。在一級上向東移動的消息通過到下一下級上的單元的連接,特定的連接可能包含或不包含連接到目標(biāo)的路徑。或者,向東移動的消息被連接到位于具有到消息目標(biāo)的連接的組中單元。只要目標(biāo)組沒有被連接,該單元在同級上向東發(fā)送消息。單元C檢查消息M1標(biāo)題,并確定向南的該單元沒有在目標(biāo)組中。由此,單元C被迫將消息M1向東路由到單元D。為了防止與上述單元發(fā)生可能的沖突,單元C向北發(fā)送控制信號,由此防止可能在單元C上方的消息M4下降。在下一列,單元D連接到單元J,該單元在連接到消息M1目標(biāo)的路徑上,單元D沒有被單元J阻塞。單元D檢查當(dāng)前的MSB和來自單元J的控制信號,并向單元J發(fā)送消息M1。單元F和J在消息M1的目標(biāo)組中,而單元G沒有。單元F忙,而單元J空閑,優(yōu)選在連接到消息M1目標(biāo)的路徑上將消息M1發(fā)送到J。
在圖5B中描述了消息M1流,其中由于消息M2當(dāng)前正直接在消息M1下移動,因此消息M1被阻塞而無法向南移動。消息M1保留在同級上,在找到可用的連接路徑前訪問另外兩列中的單元。只要消息向東移動,就總是向北發(fā)送控制信號,這禁止了較高的單元向下發(fā)送可能導(dǎo)致沖突的消息。該互連拓?fù)浣Y(jié)構(gòu)和阻塞或忙信號的期望效果是,進(jìn)入任何單元的消息優(yōu)選總是具有向東的退出路徑,以及一般向南的退出路徑。消息在通過互連期間總在運動中,且從未由于緩存或存儲而被保留。該消息不會停止向目標(biāo)前進(jìn)。
圖5A和5B示出了在每列上垂直連接的不同級上的單元對。例如,單元B和F為訪問單元G而競爭。圖5C示出了對角的單元互連,如圖1B和1C中所說明的。利用對角互連,移動到下一下級的數(shù)據(jù)直接移動到下一列上的單元,而不是象水平/垂直設(shè)置中出現(xiàn)的那樣,通過該單元直接向南然后向東。在本例中,單元F向北將控制信號發(fā)送到單元B,以通知單元B公共目標(biāo)單元G將被來自單元F的消息占用。對角互連設(shè)計在拓?fù)浣Y(jié)構(gòu)上與圖1A、5A和5B中所示的嚴(yán)格水平和垂直的布局相似。重要的區(qū)別在于(1)對角設(shè)置中在各級之間具有對角的金屬路徑;(2)缺少交換器618以防止上級單元產(chǎn)生沖突;(3)在對角設(shè)置中,單元在西側(cè)具有兩個輸入終端,而在北側(cè)沒有。
圖5C說明消息通過兩行的定時和移動示例。消息進(jìn)入單元的相對定時在互連的每級上從左向右、每列上從底向上進(jìn)行。在圖5C所示的示例中,消息到達(dá)的順序是V、H、W、B、X、C、J和D。后面將結(jié)合圖24A和24B中所示的定時圖詳細(xì)討論定時。在本例中,沒有信息進(jìn)入單元V,從而單元V向上一級和與單元V同一列的單元H發(fā)送表示“空閑”的控制信號“0”,允許單元H向單元V和H的共同目標(biāo)單元W發(fā)送消息。消息M1進(jìn)入單元H,進(jìn)入后被允許對角地向南移動到單元W。單元W檢查消息M1的標(biāo)題,并確定沒有下行連接退出到消息目標(biāo);因此,單元W將該消息路由到同級的單元X。由于單元X被消息M1占用,單元W向南將忙信號“1”發(fā)送到單元B,同時單元B還接收消息M2。由于阻塞信號從下發(fā)出,因此單元B被迫將消息M2向東發(fā)送到同級的單元C。單元X沒有被從下阻塞,并將消息M1向南朝目標(biāo)發(fā)送。單元C沒有被從下阻塞,并連接到單元J,該單元位于連接到消息M2的目標(biāo)的路徑上。單元J接收控制信號“1”,并被迫將消息M2向東路由。
由此,單元W防止單元B將消息向南發(fā)送到單元X。在下一個時間周期,從單元X向東的路徑開放,并可以使來自單元B的消息通行。如果單元W可以預(yù)見單元X將來的狀態(tài),則單元W就可以允許單元B發(fā)送向下的信息。但是這時單元W進(jìn)行路由選擇,無法獲得下一列上的單元的狀態(tài),而單元W阻塞單元B。
圖6A、6B和6C示出了具有垂直連接的單元示例的框圖,并說明了通過該單元的消息路由。說明的單元具有來自北側(cè)N的消息進(jìn)入路徑,來自西側(cè)W的消息進(jìn)入路徑,到東側(cè)E的消息退出路徑,到南側(cè)S的消息退出路徑,到北側(cè)BN的單元忙輸出路徑以及來自南側(cè)BS的單元忙輸入路徑。后面將會討論具有到和來自各方向的多個路徑的更復(fù)雜單元。從西側(cè)進(jìn)入節(jié)點W上單元的消息M2或者(1)向南路由到下一級,如圖6A所示,或者(2)向東路由到下一列,如圖6C所示。來自南側(cè)204的消息總是向東路由,如圖6A和6B所示。
行208將一個單元的輸出線E連接到同一級下一列上的另一個單元的輸入線W。這里沒有討論可能位于列和/或級之間的置換塊110和FIFO112。垂直數(shù)據(jù)路徑204將輸出線S向南連接到下級同一列上的另一個單元的輸入線N??刂坡窂?06將忙輸出線BN向北連接到下一較高級同一列上的單元的輸入線BS。延遲元件D604是1比特的串行寄存器,為控制邏輯進(jìn)行的檢查存儲特殊的消息標(biāo)題位,并調(diào)整后面將要詳細(xì)討論的級間的消息定時。每個消息位在通過延遲元件D期間按計劃都會被延遲一個時鐘周期。延遲元件的一個例子是觸發(fā)器類型D,或時鐘動態(tài)或靜態(tài)移位寄存器。單元的內(nèi)部控制邏輯檢查到來消息的合適首位,這些位當(dāng)前正存儲在延遲元件中,并檢查合適時刻的控制信號。然后,內(nèi)部控制邏輯將內(nèi)部門設(shè)置為將消息向東或向南傳送??刂七壿嬙诖怪甭窂紹N上向北發(fā)送狀態(tài)信息,以便提供前視信息。
在圖6A所示的示例中,消息M2從西側(cè)進(jìn)入單元202。單元邏輯檢查消息標(biāo)題304,控制信號BS,并確定消息將在垂直路徑S204上向南路由。在更令人期望的實施例中,當(dāng)消息向南發(fā)送時刪除標(biāo)題地址MSB208,因此下一個最高有效位326就成為下一級的MSB。通信量位302保留在標(biāo)題中。刪除了MSB后,在輸入線W和輸出線S之間建立直接連接626,設(shè)置為兩個延遲元件的旁路。單元位于狀態(tài)600。由于刪除了一個標(biāo)題位,隨后的消息流定時優(yōu)選提前一個時鐘周期。這加速了下一下級的消息在上一級消息之前,或早于上一級消息移動,期望使下級單元及時生成控制信號BN,以便上級可以應(yīng)用控制信號。后面將詳細(xì)討論定時。
由于消息M2向南移動,輸出線E沒有連接到來自西側(cè)的輸入信號,而是連接到北側(cè)的輸入線N。圖6A中單元的狀態(tài)600由“0”表示,其存儲在一比特的寄存器鎖存器612中。該鎖存器也用于控制流過該單元的消息余數(shù)??刂菩盘朆N連接到鎖存器輸出,并向北發(fā)送“0”,向上級的單元指明后者空閑,可以向南發(fā)送消息到輸入線N。當(dāng)來自西側(cè)的消息M2向南路由,另一條來自北側(cè)的消息M1被允許進(jìn)入單元,并立即向東路由通過交換器618,以便在路徑208上連接到下一列的單元。在從北向東移動的消息的飛行時間中沒有出現(xiàn)延遲;實際上,來自北側(cè)的消息M1直接連接到下一列,從而在一個時間周期內(nèi)消息M1向下移動一級,并向右移動一列。從西向東移動的消息不通過任何延遲元件。從西向東移動的消息通過兩個移位寄存器604。消息不在單元中緩存、維持、保留或存儲。
在圖6B的示例中,或者沒有來自西側(cè)的消息,或者消息標(biāo)題無效。在兩種情況下都沒有向南發(fā)送的消息,而來自北側(cè)的輸入直接通過交換器618連接到東側(cè)。向北發(fā)送“0”值,以便向上級單元指明允許該單元向南發(fā)送消息。
在圖6C所示的示例中,消息M3在線路W上從西側(cè)進(jìn)入單元202。單元邏輯檢查來自南側(cè)的標(biāo)題MSB308和控制信號。位308可能指明由于沒有向南的路徑連接到消息目標(biāo),因此消息無法下降,或者,控制信號可能指明消息從下被阻塞。在本例中,滿足一個或兩個條件,因此消息向東路由到輸出線E。該單元位于狀態(tài)640。值“1”表示圖6C中的單元狀態(tài),存儲在鎖存器612中??刂菩盘朆N連接到鎖存器,并向上級單元發(fā)送邏輯“1”,以表明防止向南發(fā)送消息。北側(cè)的單元推遲控制信號,不發(fā)送向下的消息。交換器618將第二延遲元件的輸出線連接到東側(cè)的輸出線,并防止消息從北側(cè)進(jìn)入單元。當(dāng)消息從西向東移動通過單元時,輸出到南線S的輸出信號被設(shè)置為“0”,這與不向南發(fā)送消息有著相同的效果。從西向東移動的消息M3在通過延遲元件期間按計劃被延遲了兩個時鐘周期。
圖6A、6B和6C說明單元202的狀態(tài)。在狀態(tài)600中,當(dāng)前具有消息,根據(jù)標(biāo)題和阻塞信號的缺乏,該消息向南移動到最終連接到目標(biāo)。同時,允許來自北側(cè)的消息M1使用路徑E來直接連接到下一列。在此情形中,當(dāng)線路W上沒有消息,或消息標(biāo)題無效時,設(shè)置狀態(tài)630,這允許來自北側(cè)的消息使用向東的路徑。不設(shè)置從西到任何單元輸出線的連接,也不向南發(fā)送數(shù)據(jù)。在狀態(tài)640中,消息從西向東移動,按計劃被延遲兩個時鐘周期,而且沒有消息可以從北側(cè)進(jìn)入。諸如時鐘移位寄存器的延遲元件計量從西向東移動的消息速率。當(dāng)消息向南移動時,相對于停留在原級上的消息提前消息定時,期望使下級有充分的時間來及時向北發(fā)送控制信號。
在其它采用更快或更慢技術(shù)的實施例中,延遲元件的數(shù)量可能與所述的實施例不同。在所有情況中,單元在對信息作用之前足夠的時間里接收來自下級的控制消息。圖6A示出了從北向東連接的消息M1。該消息通過交換器618并按計劃不被延遲。消息M2從西向南連接,消息通信量位302按計劃被延遲一個時鐘周期。消息M2的余數(shù)不被延遲,而實際的延遲包括連接路徑門的傳播延遲。圖6B同樣示出了從北向東連接的消息M1,該消息也不被延遲。圖6C示出了從西向東通過兩個延遲元件的消息M3630。。消息M3按計劃被延遲兩個時鐘周期。
結(jié)合圖1A和1B,圖7A到7F示出了互連100實施例的可選配置,說明互連一級上三個主要部件的不同設(shè)置。這些部件包括(1)節(jié)點陣列108,(2)置換塊110,(3)FIFO112。本例表示互連的單級。在一個實施例中,每一列分配了一個節(jié)點陣列,通常每一級具有至少一個FIFO陣列,通常每一級具有至少一個置換塊。第0級沒有使用置換塊110。每一行中組合延遲元件的總延遲足夠容納全部消息,其中該組合延遲元件包括單元中的FIFO和移位寄存器。因此,重復(fù)阻塞的消息可以完全駐留在一級上循環(huán),直到該消息最終能向南移動為止。
圖7A示出了緊隨每個節(jié)點陣列108的每一列上的置換塊110和FIFO陣列112?;ミB結(jié)構(gòu)100的大多數(shù)實施例都優(yōu)選支持蠕蟲洞路由能力。每一列上的FIFO112和置換塊110的相對順序都是任意的,可以在前,也可以在后。如果每個在FIFO陣列112中緩存的FIFO的長度都小于消息300的長度,則該消息可以在其向南向下級移動之前跨越多列。到達(dá)最右端列138的消息向后702路由到第一列136。消息典型地跨越多級,其程度甚至達(dá)到有效載荷的第一部分在尾部進(jìn)入互連結(jié)構(gòu)之前就已退出互連結(jié)構(gòu)100。
圖7B示出了和圖1A和1B相同的置換塊110、FIFO陣列112和節(jié)點陣列108順序,并和圖7A相似,除了每級上僅包括一個FIFO。一行上所有單元中的FIFO和移位寄存器都大得足夠容納全部消息。每行208上有一個FIFO,所有的FIFO都具有相同長度。列之間的置換塊被省略,如圖4B和7C所示,并且只包含了一個M次的置換塊706。圖7D是當(dāng)列數(shù)足夠大而無需置換塊時所使用的布局。FIFO設(shè)置在具有期望低通信量的位置上。圖7E示出了當(dāng)通信量密度較低時適用的布局,例如當(dāng)僅有一列用于輸入,有足夠數(shù)量的輸出端口可用于處理期望的通信量負(fù)載。該布局沒有從右向左的返回路徑。假設(shè)從北側(cè)進(jìn)入的消息在到達(dá)最右端列726之前下降到下級。到達(dá)最右端節(jié)點陣列N’726的消息被向南發(fā)送到節(jié)點陣列N”724中的單元,如果沒有輸出路徑用于來自北側(cè)的消息,則該節(jié)點陣列N”不接受該消息。進(jìn)入最左端單元N0722的消息不與來自西側(cè)的消息競爭,因此立即移動到下一列。同樣參照圖6A和6C,N0中的單元只包括一個從北向東的直接連接,N’中的單元包括從西向南的直接連接,優(yōu)選忽略控制邏輯。當(dāng)向東發(fā)送另一條具有優(yōu)先權(quán)的消息時,N”中的單元使用交換器618來拒絕來自北側(cè)的消息。
在單元的正常操作中,向南路由的消息從旁路通過單元的延遲元件,例如移位寄存器,并基于該路徑上的門數(shù)量進(jìn)行傳播延遲。成功向南路由通過多個單元的消息可能積累一個傳播延遲,該延遲可以相反地影響下級控制邏輯的正確操作。諸如一比特移位寄存器的延遲元件716位于每行上,以便重新調(diào)整定時,即被進(jìn)行了不同累積延遲的消息位的前沿(leadingedge)。在退出延遲元件之后,所有消息進(jìn)入具有相同定時的下一陣列。根據(jù)傳播延遲與時鐘周期的比率,延遲元件按計劃位于每隔2到5列之后。圖24B說明了處理傳播延遲的可選方法。
當(dāng)列數(shù)K足夠大時,一行的單元之間可以提供存儲,以完全容納消息,從而不再需要或不再使用FIFO,如圖7F的實施例所示。當(dāng)K=2N,且N大于互連的級數(shù)時,不使用或不需要置換塊。典型的是,除了使用圖7E所示的布局之外,所有級都具有相同的配置。第0級具有與其它級相同的配置,但是沒有置換塊。本例描述了各種實施例。也可以接受其它符合上述討論的總規(guī)格的配置,他們在滿足互連結(jié)構(gòu)或網(wǎng)絡(luò)的特殊性能和實施要求時可以具有特定的優(yōu)點。
圖8A是非常適合稱為“級聯(lián)互連”的互連結(jié)構(gòu)100的實施例。消息進(jìn)入一列的頂部,以步進(jìn)方式移動,每一步或向下或向右,當(dāng)該消息被阻止向下移動時向右移動。消息在底級聚集。某些消息,例如為同一輸出終端而競爭的消息,可能偏轉(zhuǎn)進(jìn)入FIFO,并從右循環(huán)返回一級最右側(cè)列的左側(cè)814。如果僅使用一列來接收輸入消息,使用兩或三列輸出消息,則頂級的消息總是下降幾列。最適合的布局是(1)具有單個輸入列802,(2)優(yōu)選在頂級具有較少的列(節(jié)點陣列),(3)安排FIFO112的位置以減小消息進(jìn)入FIFO112的可能性,(4)使用2單元節(jié)點以快速向下移動信息,以及(5)選擇性地使用輸出隊列810以容納過多的通信量。由于在廣泛的條件范圍下消息不會進(jìn)入位于上級的FIFO,因此去掉上級的FIFO。由此將FIFO設(shè)置在最直接下行路徑的左側(cè)。
頂級中最合適的行數(shù)等于輸入端口的數(shù)量。輸出端口的數(shù)量等于或大于輸入端口的數(shù)量,以便輸出列能方便地將消息從互連中排除出去。I/O管腳的數(shù)量是限制芯片設(shè)計的因素,因此,使用最大數(shù)量的硅來實現(xiàn)盡可能多的節(jié)點陣列。使用了2節(jié)點陣列,以便未阻塞的消息總是在下一列具有下行的路徑。優(yōu)選未阻塞的消息具有從互連左上方偏離“45度”的對角路徑。FIFO非常適合于緊挨著該對角的左側(cè),如圖8A所示。
在正常通信量時,消息典型地只移動幾列就到該對角路徑的右側(cè)。所有消息的組合移動是級聯(lián)式流程。某些消息幾乎不發(fā)生偏轉(zhuǎn)就移動到該對角的相鄰路徑中。其它消息發(fā)生更多偏轉(zhuǎn),并進(jìn)一步到達(dá)右側(cè)的底部。輸出列非常適合位于對角右側(cè)的幾列上,以便按期望聚集消息的主要部分。輸出列834可能設(shè)置在緊挨著底級FIFO112的左側(cè),以便方便地在消息進(jìn)入FIFO之前聚集消息。如果列834上的輸出裝置總是空閑,則可以省略底級FIFO。
模擬示出了內(nèi)部列的總數(shù)應(yīng)當(dāng)是級數(shù)的1.5到2倍。例如,具有7級的128行互連應(yīng)當(dāng)總共具有12到15列。由于消息在頂級時不太可能被阻塞,因此消息不可能在頂級通過所有列。因此,節(jié)點陣列不需要在所有列上都位于輸入的右側(cè)。優(yōu)選省略頂級的FIFO和節(jié)點陣列,以減少硅的數(shù)量。
該級聯(lián)互連布局的一些實施例可以在每行上具有多個輸出列,如圖8A所示,為向同一目標(biāo)移動的消息提供多個輸出路徑。如果接收設(shè)備可以一次處理多個消息,例如通過緩存,則可以進(jìn)一步減小消息被阻塞的可能性。可選的實施例具有輸出緩存器隊列,每個地址具有一個輸出端口,從而按期望減少了I/O端口的總數(shù)。
參照圖8C,芯片上輸出隊列810接受來自底級804上多個列的消息。為每個目標(biāo)地址都分配了一個隊列,且該隊列中的每個緩存器都保持了一條消息。如果該隊列為空,則到達(dá)底級的消息立即退出互連,或者路由到隊列中的空時隙。如果該隊列被充滿,則該消息保留在底級行上,并嘗試進(jìn)入其它列上的隊列。通過輸出端口218從隊列中排除消息。在一些實施例中,該隊列接受來自外部輸出設(shè)備的控制信號,指明何時該設(shè)備無法接受數(shù)據(jù)。
ATM單元具有“服務(wù)質(zhì)量”(QOS)位,指明是否可以在忙的條件下丟棄該單元。圖3B示出了具有在互聯(lián)中使用的QOS字段332的消息。當(dāng)互連不忙時,很少有消息進(jìn)入FIFO。在忙的條件下,消息可能被反復(fù)阻塞,并被迫在該消息最終進(jìn)入FIFO的級上循環(huán)。在一個實施例中,當(dāng)消息進(jìn)入FIFO時檢查QOS字段。如果互連忙,該消息可能被丟棄。
在最簡單的情況下,QOS字段為一個比特,例如在ATM單元中使用的QOS字段,如果設(shè)置了該比特,則當(dāng)消息進(jìn)入FIFO時丟棄該消息。在另一個實施例中,當(dāng)消息進(jìn)入FIFO時,QOS字段被遞增/縮減,指明該消息循環(huán)的總次數(shù)。當(dāng)一個確定值,例如0,到達(dá)時丟棄該消息。進(jìn)入互連的消息可以具有不同的初始化QOS設(shè)置,以便按期望支持在消息中間具有廣泛的優(yōu)先權(quán)范圍。當(dāng)消息進(jìn)入Q820地FIFO時,非常適合在一些較低級進(jìn)行QOS處理。
圖8A所示的級聯(lián)互連實施例是一種最合適的設(shè)計,該設(shè)計對消息不可能進(jìn)入FIFO的所有輸入端口、2單元節(jié)點的減少的延遲、頂級的低通信量密度和級聯(lián)式流程使用單一的時鐘信號。一列用于輸入消息,多列用于輸出消息。包括128個輸入終端、每個地址具有三個輸出端口的384個輸出終端、7級、15個內(nèi)部列以及蒙特卡洛通信量分布的模擬結(jié)構(gòu)示出了消息在蠕動穿過互連結(jié)構(gòu)期間平均要通過10個單元。在包括設(shè)置為256個輸入端口和256個輸出端口的512個I/O端口、8級、15個內(nèi)部列、但使用圖8C所示的輸出緩存器的可選實施例中,消息在進(jìn)入緩存器前要通過大約20個單元。輸出緩存器用于平滑通信量中的起伏。片上緩存器的使用使得在管腳數(shù)量相同的情況下輸入和輸出端口的數(shù)量加倍。
圖8B是表示階梯級互連結(jié)構(gòu)的示意圖。該階梯級互連結(jié)構(gòu)只有一個輸入列,只有一個輸出列,沒有在后面從右到左的連接,也沒有FIFO。互連100一些實施列的特性是,如果在同一周期內(nèi)不向一個輸出端口發(fā)送超過一條消息,則所有消息都建立從輸入端口到輸出端口的蠕蟲洞連接路徑。換句話說,如果沒有多個輸出端口向一個給定地址發(fā)送消息(如果只有一個輸入端口向一個給定地址發(fā)送消息?),則所有消息蠕動到達(dá)各輸出端口而不發(fā)生向左的偏轉(zhuǎn)。有利的結(jié)果是不需要FIFO,且所有消息在同一時刻到達(dá)輸出端口。該互連結(jié)構(gòu)稱為“階梯級互連”。消息進(jìn)入頂級的最左側(cè)列850,當(dāng)其靠近底級時以很小的程度展開(spread),在底級水平移動到最右側(cè)列854上的輸出端口,并且不會再循環(huán)。以粗線示出使消息通過互連結(jié)構(gòu)的多個可能路徑的兩個例子。例如,線路852示出了相對更常在最終到達(dá)底部之前向右偏轉(zhuǎn)的消息。圖8A所示的階梯級互連非常適合于當(dāng)消息在一個周期內(nèi)沒有雙重輸出地址的情況。該階梯級互連沒有使用FIFO,比相同容量的級聯(lián)互連使用了更少的節(jié)點陣列。一條合適的設(shè)計原則是頂級具有至少三列,且總列數(shù)應(yīng)當(dāng)約為級數(shù)的2倍。圖8B中的例子具有8級、17列,并滿足該設(shè)計原則。
在一個偶爾違反無雙重性規(guī)則的應(yīng)用中,例如向同一地址發(fā)送了兩個或更多消息,則只有一條消息將會成功。其它未成功的消息優(yōu)選不阻止成功的消息到達(dá)目標(biāo)輸出端口。未成功的消息被偏轉(zhuǎn)到下級的最右側(cè)節(jié)點中,以便由收集裝置L856聚集來用于進(jìn)一步處理。
在階梯級互連的可選實施例中,通過為單個有效負(fù)載使用多個標(biāo)題來支持消息的多點傳輸。當(dāng)來自單個輸入端口的有效負(fù)載在一個時間周期內(nèi)被發(fā)送到多個輸出端口時進(jìn)行多點傳輸。每個標(biāo)題為有效負(fù)載指定目標(biāo)地址,且該地址可以是任意輸出端口。仍然遵守在同一周期內(nèi)沒有輸出端口可以接收來自多個輸入端口的消息的原則。對第一標(biāo)題進(jìn)行如后所述的處理,控制邏輯設(shè)置為后面的有效負(fù)載指引方向的內(nèi)部鎖存器。緊跟在第一標(biāo)題后,第二標(biāo)題沿著第一標(biāo)題的路徑,直到到達(dá)為該級確定路由的地址位不同的單元為止。在此,以與第一標(biāo)題不同的方向?qū)Φ诙?biāo)題進(jìn)行路由。在該單元中的附加鎖存器代表和控制從該單元出發(fā)的分岔流。換句話說,第二標(biāo)題跟隨第一標(biāo)題,直到該地址指明不同的方向,并且該單元形成這樣的連接,即,隨后的通信量在兩個方向上退出該單元。同樣,第三標(biāo)題沿著由前兩個標(biāo)題建立的路徑,直到確定該級的標(biāo)題位指明在其它方向上分岔為止。當(dāng)標(biāo)題從左向右移動通過單元時,該標(biāo)題總是向上發(fā)送忙信號,表明無法接收來自上級的消息。
對于第一、第二和任何其它標(biāo)題,都遵循該原則。換句話說,當(dāng)單元向上發(fā)送忙信息時,維持該控制信號,直到處理完所有的標(biāo)題,以防止第二標(biāo)題嘗試使用第一標(biāo)題建立的路徑。所允許的標(biāo)題數(shù)量是定時信號的功能,這可以設(shè)置在芯片外部。階梯級互連的多點傳輸實施例可以在外部定時信號控制下,在不同時刻容納具有一個、兩個、三個或更多標(biāo)題的消息。不進(jìn)行多點傳輸?shù)南⒅挥幸粋€標(biāo)題,后面跟隨著一個空標(biāo)題,例如全為0的標(biāo)題,以代替第二和第三標(biāo)題。一旦一個周期中的所有標(biāo)題都被處理完畢,有效載荷就緊跟在最后一個標(biāo)題后面,如上說述。
階梯級互連優(yōu)選作用為自布線的縱橫欄(self-wiring crossbar)。消息標(biāo)題產(chǎn)生鎖存的輸入到輸出連接,按期望將有效載荷從所有的輸入端口并行傳送到所有的輸出端口??v橫欄的內(nèi)部復(fù)雜度和控制的規(guī)模為N2,而階梯級互連優(yōu)選的規(guī)模為N·log2(N)。在具有256個端口的交換器例子中,縱橫欄具有必須由外部處理器設(shè)置的64K次內(nèi)部交換,而自布線階梯級互連具有256×82階,或16K個單元。
在圖8A和8B所示的實施例中,僅有一列用于輸入端口,來自多個輸入端口的消息可能在一個時間周期內(nèi)都被尋址到同一輸出。在輸出端口與輸入端口之比大于1而具有多個輸出列的實施例中,可以容納多個輸入端口。然而,與多個相反,使用單個輸出列可能是優(yōu)選的,因為可以減小輸出連接,即片上I/O端口的總數(shù)。通過在互連內(nèi)優(yōu)選將FIFO用作在輸出端口間共享的緩存器,單個輸出列可能按期望滿足了波動輸出條件。在其它通信量條件下,低級的行可以被定向為同一輸出端口的消息充滿。這些消息可以阻塞其它指向相鄰端口的消息。圖8C示出了為每個輸出端口218使用片上對列810的實施例。當(dāng)消息到達(dá)底級行806時,該消息隨即被發(fā)送到該隊列中可獲得的最低時隙812。如果該隊列為空,則該消息隨即通過輸出端口退出。如果隊列充滿,則該消息保留在底級行上,并再嘗試進(jìn)入位于連接到該隊列的其它列上的隊列。
每個隊列810都從外部連接到單個輸出端口218,以便按期望將I/O管腳的總數(shù)減至最小,并減少網(wǎng)絡(luò)中的阻塞量。從64到16384個輸出端口的互連模擬示出了每個隊列具有3到10個緩存器就足以容納大多數(shù)輸出速率波動,并按期望地保持底級不擁擠。根據(jù)FIFO從隊列中刪除消息。當(dāng)消息在互連內(nèi)被反復(fù)阻塞時,該消息可能比其它在晚些時候進(jìn)入互連的消息需要更長時間來到達(dá)底級。結(jié)果是一連串發(fā)送到同一輸出端口的消息可能毫無次序地退出。在可選的實施例中,基于時間戳或由消息標(biāo)題中的序列號來填充隊列中的位置。以“循環(huán)”方式清空隊列,由此按期望地防止了排序序列的到達(dá)和退出。
在互連的兩種速率實施例中,消息以與底級行806兼容的時鐘速率進(jìn)入隊列中的空時隙812,并以通常慢得多的其它時鐘速率通過輸出218退出。諸如視頻點播交換器的應(yīng)用接受分組或消息以很高的位速率進(jìn)入交換器,并以較低速率發(fā)布這些消息。優(yōu)選使用較少的高速輸入端口以支持更大數(shù)量的輸出端口。圖36B示出了輸入配置,其中相對較少的頂級行具有輸入連接,這是適合于兩種速率實施例的配置。
互連網(wǎng)絡(luò)包括多級,其中每級具有多個單元組。圖9說明了6個單元組U、V、W、X、Y和Z。U組902在三級中的最上級。數(shù)據(jù)可以通過標(biāo)記為IN(輸入)的線路進(jìn)入U組中的確定單元。這些線路可能連接到上級,也可能從網(wǎng)絡(luò)外的通信源接收數(shù)據(jù)。數(shù)據(jù)通過標(biāo)記為OUT(輸出)的線路910離開X、Y和Z組。這些線路可能連接到下級,也可能是互連的輸出端口。V組和W組位于U組所在級下面的級上,X、Y和Z組也是如此,或位于更下級上。每組都包含一個或多個數(shù)據(jù)路徑,每條路徑被設(shè)置為回路或環(huán)形。U組中的單元A904連接到其它單元B、C、D、E等。在一些與單元數(shù)相比消息很長的實施例中,回路包括FIFO,從而可以將全部消息設(shè)置在一級內(nèi)。在數(shù)據(jù)回路924中循環(huán)的消息具有多次機(jī)會下行移動到下級的組中單元,例如從U組到V、W、X、Y和Z組。進(jìn)入單元B的消息有機(jī)會下降到V組的單元J中。或者,如果該消息從單元B移動到單元C,則該消息有機(jī)會下降到W組中的單元。在一些實施例中,V組和W組分別是較高組和較低組。
只要單元J位于用消息目標(biāo)端口連接單元B的路徑上,進(jìn)入單元B的消息就可能在連接912上下行移動到下級的單元J。單元L頁連接到單元J;如果在同一時間間隔內(nèi)的其它消息從單元L移動到單元J,則下級的單元L對單元B具有向單元J發(fā)送消息的優(yōu)先權(quán)。單元L向上級單元B發(fā)送控制信號914告知這一優(yōu)先權(quán),通知單元B不要向下發(fā)送消息。在一些實施例中,下行路徑912上的交換器922也由控制信號914開放,以防止任何來自被通知單元的消息與共享路徑918上的消息沖突。當(dāng)例如輸入端口908的外部設(shè)備無法響應(yīng)(honor)該控制信號時,交換器922有利地防止了消息發(fā)生沖突。在一些實施例中,下行路徑940跳過一級或多級。
一個單元組中的所有單元都具有到另一單元,或到FIFO的退出路徑918,并且所有單元都具有到一個或多個共享同一個路徑的其它單元的直接控制信號連接912或間接控制信號連接(未示出)。如果單元不向下發(fā)送消息,則該單元在路徑918上向同一組中的另一單元發(fā)送消息。使用控制信號路由消息的重要優(yōu)點是該單元總是可以獲得退出路徑。消息從不在單元中被緩存、存儲、維持或保留,并總是運動著通過單元。此外,停留在級上的消息不會失去當(dāng)前在向消息目標(biāo)移動中獲得的進(jìn)步。換句話說,當(dāng)該消息停留在當(dāng)前組中時,它不會進(jìn)一步遠(yuǎn)離目標(biāo)。該消息迅速通過當(dāng)前組中連接到較低組的其它單元,這些單元位于通向消息目標(biāo)的路徑上。
參照圖2A,數(shù)據(jù)環(huán)924對應(yīng)于同級的一行或多行208,鏈路912對應(yīng)于垂直數(shù)據(jù)路徑210,鏈路918對應(yīng)于列間的連接,而控制信號914對應(yīng)于垂直信號路徑206。在互連的一些實施例中,所有組形成從任意輸入端口到任意輸出端口的二進(jìn)制樹狀連接路徑集合。參照圖9,很多路徑任意輸入端口退出到任意輸出端口。
消息M通過多個設(shè)置為J+1級體系的互連單元,這些級從最高級,即第J級,直到最低級,即第0級?;ミB結(jié)構(gòu)傳送多個通過多個輸入端口進(jìn)入該互連結(jié)構(gòu)的未分類、多比特消息。多個消息中的單個消息M是自路由的,并利用蠕蟲洞路由通過單元,在蠕蟲洞路由中,該消息僅有一部分比特在兩個單元之間傳送,多比特的消息在多個單元之間擴(kuò)展。單個消息M在包括4條路徑的多條路徑中移動,這些路徑足以保證消息M通過標(biāo)題指定的輸出端口退出該互連結(jié)構(gòu)。這4條路徑是(1)消息M從外部設(shè)備進(jìn)入單元,該消息M指定一個或多個輸出端口910;(2)消息M通過互連結(jié)構(gòu)中的單元A904,而無需緩存到指定的輸出端口;(3)消息M通過單元L移動,無需緩存到同級的另一單元J;以及(4)消息M通過單元B移動,無需緩存到更接近目標(biāo)的級上的單元。
圖10是描述產(chǎn)生轉(zhuǎn)換序列方法,即生成置換塊布局操作的第一步的表格。最簡單的序列S2是在兩行之間的可選轉(zhuǎn)換,可以用數(shù)字表示為0,1,0。2次冪的轉(zhuǎn)換序列由轉(zhuǎn)換序列S2、S4、S8、S16等構(gòu)成。由兩個序列生成轉(zhuǎn)換序列S41030,即第一序列S2和增量為2的第二序列S21024。第一轉(zhuǎn)換序列0,1,0的每個值后具有一個間隔(空白?)。在每個間隔(空白?)處插入序列S2+2,從而生成序列S4,即0,2,1,3,0。由序列S4和將S4增加4的序列生成轉(zhuǎn)換序列S81036,從而生成轉(zhuǎn)換序列0,4,2,6,1,5,3,7,0。同樣,由序列S8和將序列S8增加8的序列生成轉(zhuǎn)換序列S16,從而生成轉(zhuǎn)換序列0,8,4,12,2,10,6,4,1,9,5,13,3,11,7,15,0。當(dāng)下標(biāo)R是2次冪時,優(yōu)選通過繼續(xù)應(yīng)用這里和圖10所示的增量及合并方法來生成轉(zhuǎn)換序列SR,直到獲得期望的R值為止。這些序列被稱為遍歷(ground-tour)序列。
轉(zhuǎn)換序列S4是0,2,1,3,0,2…。以0為原點符號,表達(dá)式S4[i]表示該轉(zhuǎn)換序列中的第i個值。例如,S4
=0,S4[1]=2。注意轉(zhuǎn)換序列S4在4個元素之后進(jìn)行重復(fù),也就是說,S4[i]=S4[i+1]??傊?,轉(zhuǎn)換序列Sn在n個元素之后進(jìn)行重復(fù),即,Sn[i]=Sn[i+1],其中i為非負(fù)整數(shù)。
在此,定義術(shù)語“較低組”和“較高組”用于后面的用途。較低組包括所有位于轉(zhuǎn)換序列Sn較低的半?yún)^(qū)數(shù)字中的行上的單元,較高組包括所有位于較高半?yún)^(qū)中的行。例如,假設(shè)轉(zhuǎn)換序列S2(0,1,0,1,0…),第0行在較低組,第1行在較高組。對于轉(zhuǎn)換序列S4(0,2,1,3,0…),第0行和第1行都位于較低組,第2行和第3行都位于較高組。在增量轉(zhuǎn)換序列S4+4(4,6,5,7,4…)的例子中,第4和第5行都在較低組,第6和第7行在較高組。總之,關(guān)于組的“較高”和“較低”定義可以由行號、R和該行所在的級J的二進(jìn)制表達(dá)式來確定。這些行由位RL、RL-1、RL-2…R-2、R1、R0表示為二進(jìn)制形式,其中Ri是0或1。在第J級,當(dāng)RJ=1時第R行定義為較高行,當(dāng)RJ=0時定義為較低行。在8行的例子中,用二進(jìn)制符號如下描述轉(zhuǎn)換在第0級(J=0)第000、010、100和110行在較低組,第001、011、101和111行在較高組(R0是最右位);在第1級(J=1)第000、001、100和101行在較低組,第010、010、011和111行在較高組(R1是中間位);在第2級(J=2)第000、001、010和011行在較低組,第100、101、110和111行在較高組(R2是最左位)。
該創(chuàng)建消息轉(zhuǎn)換序列的方法的期望結(jié)果是可選位置連續(xù)地在轉(zhuǎn)換序列中點的下方和上方。例如,在8行的轉(zhuǎn)換序列S8(0,4,2,6,1,5,3,7,0)中,第一可選位置集的值(0,2,1,3,0)全部小于第二集(4,6,5,7,4)的值。由此,沿著由序列S8定義的路徑的消息總是在較低組和較高組之間交替,然后重復(fù),這是由該方法對所有轉(zhuǎn)換序列產(chǎn)生的一致結(jié)果。這種轉(zhuǎn)換序列的其它有利結(jié)果是,如果消息M1和M2分別保留在同級上,消息M2將不再阻塞消息M1,直到兩條消息都通過2J個列為止,其中J是消息M1的級號。在特殊的例子中,如果消息M1在第5級上被第4級的消息M1阻塞,則在消息M1和M2被再次校準(zhǔn)之前,必須各自都被其它消息阻塞32(25)次,這是極不可能的事。由此,所述機(jī)構(gòu)避免了擴(kuò)大消息的阻塞。
進(jìn)入互連頂級的消息在下行到位于上半?yún)^(qū)行(較高組)和下半?yún)^(qū)行(較低組)中的行的連接之間交替。當(dāng)消息到達(dá)具有向南到目標(biāo)的連接的頂級單元時,消息下降到下個較低級,其范圍減小為總行數(shù)的一半。例如,如果互連在每級具有16行,進(jìn)入頂級的消息在較高的8個行號和較低的8個行號之間交替,也就是在較高組和較低組之間交替。MSB用于做出決定。在下一級,消息在各4行的組間交替(循環(huán)?),而在下個較低級,消息在各2行的組間交替。從16行的互連開始,每級的組大小是8,然后是4,然后是2,最后是1,這時消息已到達(dá)標(biāo)題中指定的目標(biāo)行,并退出互連。
符號Pn,m用于指定置換塊,其中n是置換塊中的行數(shù),m是置換序列的次數(shù)。置換序列的次數(shù)表示該序列中的轉(zhuǎn)換量。第一次轉(zhuǎn)換在兩個節(jié)點之間轉(zhuǎn)換。m次表示依次轉(zhuǎn)換m個轉(zhuǎn)換。“置換塊”是指在同級相鄰列上的單元之間的無源行到行連接集。圖11A到11F示出了1、2、4和8行的轉(zhuǎn)換序列布局。圖11A是一行的轉(zhuǎn)換序列□□□1的簡單情況。序列S1(0,0,0…)指定橫跨(straight-across)連接0到0。輸入行在置換塊的左側(cè),輸出行在右側(cè)。圖11B示出了來源于序列S2(0,1,0,1…)的轉(zhuǎn)換序列□2,1。序列S2
連接到序列S2[1],也就是說,第0行連接到第1行。圖11C示出了來自序列S4(0,2,1,3,0…)的轉(zhuǎn)換序列□□□1。第0行連接到第2行,第1行連接到第3行,等等。圖11E和11G分別來源于序列S8和S16。圖11E示出了圖形上生成置換塊的可選方法(沒有參考序列S8)。由位于左上方的4行置換序列□□□1、位于左下方的置換塊□□□1下面的一系列4水平線路以及位于右側(cè)的一組8個從上到下和從下到上連接的組合形成置換塊□□□1。同樣,可以通過如圖11G所示將左上方的置換塊□□□1、置換塊□□□1下面的8條水平路線以及16行從上到下、從下到上的交叉設(shè)置到右側(cè)來形成置換序列□□6,1??梢圆淮_定地繼續(xù)遞歸的圖形方法,以獲得任意的2次冪置換塊。
轉(zhuǎn)換序列不必對所有行都相同,也無需以與級數(shù)或與其它類似規(guī)則相關(guān)的周期進(jìn)行重復(fù)。例如,在第2級,可以使用轉(zhuǎn)換序列0,1,1,0,2,2,3,3,而不是優(yōu)選的轉(zhuǎn)換序列S4(0,2,1,3,0…)。隨機(jī)地,這樣的轉(zhuǎn)換序列不具有合理消息流、最小阻塞和低飛行時間的期望統(tǒng)計特性。圖11D示出了不期望的轉(zhuǎn)換塊示例,即由通過中線的并聯(lián)連接產(chǎn)生的簡單布局□X4,1。值得注意的是,每條消息通過中線,以便始終在較高組和較低組之間交替。在其它實施例中,可以使用任何允許消息每級至少訪問一次較高行和較低行的轉(zhuǎn)換序列。這些轉(zhuǎn)換序列的性能比遍歷轉(zhuǎn)換序列的性能差。
圖11F和11H示出了來源于隨機(jī)混洗的置換塊。圖11F示出了來源于隨機(jī)混洗的8行轉(zhuǎn)換序列□R8,1。底部行組以隨機(jī)方式連接到上半?yún)^(qū)中的行,而對于上半?yún)^(qū)中的行也以隨機(jī)方式連接到底部行組。例如,第0、1、2和3行隨機(jī)地與第6、4、5和7行連接,頂部行連接同樣如此。圖11H是16行的隨機(jī)置換塊□R16,1。在互連100的優(yōu)選實施例中,互連的每一列中的轉(zhuǎn)換序列都不相同。在可選的實施例中,可以在多個位置使用隨機(jī)生成的模式。通過互連100的各種實施例的消息流模擬已經(jīng)示出,例如圖11F和13B所示的隨機(jī)轉(zhuǎn)換序列可以產(chǎn)生可接受的流量效率。優(yōu)選的互連結(jié)構(gòu)使用遍歷轉(zhuǎn)換序列。
總之,由轉(zhuǎn)換序列Sn生成的置換塊□n,1的結(jié)構(gòu)由以下規(guī)則給出對于在(0,1,…,n-1)中的所有i,輸入端口Sn[i]連接到輸出端口Sn[i+1]。在保證每個連接都跨越中間路線的同時通過隨機(jī)混洗行目標(biāo)來生成隨機(jī)置換塊□Rn,1。
轉(zhuǎn)換序列S8描述了通過用于構(gòu)成置換塊□□,1的8行組的消息流。圖4B和7C示出了在每級僅有一個置換塊的布局。在這些例子中,列到列行連接都是橫跨連接,也就是說,當(dāng)消息向東移動時,該消息不會改變行號。兩個改動將流描述修改為8行的轉(zhuǎn)換序列S8。第一個改動是使用了m次的置換塊706。第二個改動是對節(jié)點陣列中單元的不同內(nèi)部級設(shè)置,如后所述。
M次的置換塊對消息流產(chǎn)生與M個順序連接的(1次)置換塊相同的效果。圖12A至12D說明了M次置換塊的例子。對于轉(zhuǎn)換序列S8(0,4,2,6,1,5,3,7,0…),從第0行出發(fā)的消息在3步之后移動到第7行。置換塊□□,3產(chǎn)生3個順序連接的□□,1置換塊的效果;圖12B示出了通過4步產(chǎn)生的4次置換塊□□,4。圖12C示出了5步后生成的□□,5;圖12D示出了7步之后生成的□□,7。未示出的□□,8與□□,0相同,后者是一組橫跨連接?;ミB100的一個優(yōu)選配置是每級使用單一的置換塊,如圖7C所示??蛇x的配置是每列使用單一的置換塊,如圖1A、1B、7A和7B所示。
置換塊□□,9與□□,1相同??傊脫Q塊Pn,m與置換塊Pn,q相同,其中q=m+n·(整數(shù))。通過以下規(guī)則給出置換塊Pn,m的結(jié)構(gòu)對(0,1…,n-1)中的所有i,輸入端口Sn[i]都與輸出端口Sn[i+m]連接,其中m是轉(zhuǎn)換序列的次數(shù)。隨機(jī)轉(zhuǎn)換塊PRn,m的定義與PRn,1相同,其中m是奇數(shù)。當(dāng)m是偶數(shù)時,該轉(zhuǎn)換序列就是一種隨機(jī)混洗,其中的連接不跨越中間線路。
圖4A和4B所示的框圖布局說明將轉(zhuǎn)換序列應(yīng)用到通過互連結(jié)構(gòu)的消息上。通過將單元緊緊地一起設(shè)置在與前面所述的稀疏配置相對的緊密“方形”布局中,圖13A示出了更有效的硅使用情況。水平208和垂直210連接路徑的特殊設(shè)置產(chǎn)生列間置換序列的效果。示出了5級、16行互連的3列和頂部的4級。未示出第0級。對消息跨越任意行的檢查都證實獲得了用于該級的遍歷轉(zhuǎn)換序列Sn。例如,第4級第0行遵循轉(zhuǎn)換序列S16的順序0,8,4…。該布局的期望邊緣效應(yīng)是單元始終位于相對接近連接到南側(cè)和東側(cè)的單元的位置。值得注意的,在該互連布局中不發(fā)生較長的跟蹤,所有單元到單元的連接都具有相似的長度。
圖13A說明在每個節(jié)點陣列內(nèi)緊密的單元位置,該節(jié)點單元優(yōu)選最小化每級上單元到單元的最大距離。然而,右側(cè)列必須循環(huán)回到最左側(cè)的列。圖13B示出了競爭道(racetrack)布局,其中返回路徑1390被節(jié)點陣列占用,按期望將最大連接距離減至最小。一組FIFO(未示出)可以另外設(shè)置在該回路上。
對于有些實施例,可以為互連結(jié)構(gòu)配置非標(biāo)準(zhǔn)的特性,例如大小不是2次冪。圖14與圖1A相結(jié)合,示出了11行的互連。使2L大于或等于11的最小整數(shù)L是4(24=16`),從而互連結(jié)構(gòu)具有第0級到第4級。每級有11行。在圖9所示的結(jié)構(gòu)中,頂級的11行屬于一個單一組。當(dāng)消息從第4級下降到第3級時,這些消息移動到兩組中的一組。這些組盡量接近于大小相等。因此,第3級的底部組包括6行,而頂部組包括5行。從第4級移動到第3級的消息M也從位于第R行、第C列的第4級單元移動到第R行的第3級單元。如果C<K-1,其中K為總列數(shù),則消息M移動到第C+1列,如果C=K-1,則M移動到第0列,也就是下一列。
第2級包括4組。底部的兩組接收來自第3級底部組的消息,后者包括6行,在第2組分為兩個3行組。頂部的兩組接收來自第3級頂部組的消息,后者包括5行,在第2級分為一個2行組和一個3行組。從第3級移動到第2級的消息從位于第R行、第C列的第3級單元移動到第R行的第2級單元。第1級包括的組是較高級的兩倍;在此是8個組。一個3行組向下連接到一個1行組和一個2行組。一個2行組向下連接到兩個1行組。這第1級的8個組分別包括2、1、2、1、2、1、1和1行,第0級包括11個1行組,每行都是一條消息的目標(biāo)。與以前一樣,從第1級移動到第0級的消息M向下移動到相同代號的行。
參照圖9,沿著行,即數(shù)據(jù)回路移動的消息通過向下連接或沒有向下連接到與輸出路徑相連的行的單元??傊瓿闪藢⑾l(fā)送到最終目標(biāo)行的二進(jìn)制樹狀方法。消息最初在頂級中從行到行進(jìn)行較大的移動,隨后在連續(xù)的較低級中進(jìn)行較小的移動。在優(yōu)選實施例中,頂級的消息交替地連接到位于上半?yún)^(qū)中的下一個較低級的單元,然后連接到較低級的下半?yún)^(qū)行。優(yōu)選地,在到達(dá)向下連接到較低級單元的單元之前,向東移動的消息跨越的行數(shù)不超過兩行,其中的較低級最終將消息連接到該消息指定的目標(biāo)。在下一個較低級,行間的移動范圍優(yōu)選為前一級的一半。最后,當(dāng)該消息到達(dá)第1級時,該消息在兩行之間這樣交替,即,在它能從其目標(biāo)行退出互連之前,只檢查一個該消息標(biāo)題的保留位。
級上的行數(shù)不必是2次冪,如圖14所示。描述了生成11行轉(zhuǎn)換序列的方法。其目的是產(chǎn)生指定消息在保留在任意給定級上的同時向東移動的行到行轉(zhuǎn)換的行號置換。該方法的第一步是將R,即頂級的行數(shù),在本例中為11,分為大致相等的兩半。值11被分為兩個整數(shù)6和5。較大的值6總是寫在首位。相似地分解兩個結(jié)果值6和5。值6被分為3和3。值5被分為3和2。值3分為2和1。當(dāng)達(dá)到2或1時停止該處理。
在以下討論中,序列“Sn”表示包含n個值的轉(zhuǎn)換序列的序列。分解R之后,下個任務(wù)就是構(gòu)成11行轉(zhuǎn)換序列S11。前面處理的步驟顛倒過來由序列S2和S1生成序列S3,由序列S3和S2生成序列S5,由序列S3和S3生成序列S6,最后由序列S6和S5生成序列S11。每種情況中,兩個較小的轉(zhuǎn)換序列用于產(chǎn)生較大的轉(zhuǎn)換序列。轉(zhuǎn)換序列S1定義為0,0…。轉(zhuǎn)換序列S2定義為0,1,0,1…,這意味著向東移動的消息可選擇向下連接到第0行和第1行的單元。轉(zhuǎn)換序列S3由轉(zhuǎn)換序列S2和S1通過將轉(zhuǎn)換序列S2每個值后插入空白生成0,_,1,_,…。下個沒有包含在轉(zhuǎn)換序列S2(0,1,0,1…)中的較大整數(shù)是2,所以將2添加到轉(zhuǎn)換序列S1中,生成(2,2,…)。后面的轉(zhuǎn)換序列(S1+2)位于S2的空白位置處。S3變?yōu)檗D(zhuǎn)換序列0,2,1,0,…。這意味著向東移動的設(shè)置在3行組上的消息可選地以該順序訪問第0、2、1、0、2、1、0…行。
轉(zhuǎn)換序列S5由轉(zhuǎn)換序列S3和S2生成。較大的轉(zhuǎn)換序列S3首先在每個值后面插入空白0,_,1,_,2。下個不在序列S3中的較大整數(shù)是3,因此將3添加到序列S2(0,1)的每個值上。結(jié)果(3,4)插入到S3的空白位置。因此序列S5變?yōu)檗D(zhuǎn)換序列0,3,2,4,1,0…。轉(zhuǎn)換序列S6由轉(zhuǎn)換序列S3和S3加下個可用整數(shù)3生成。如前所述,序列S3在每個值后面插入空白0,_,2,_,1,_。將3添加到序列S3,并將結(jié)果(3,5,4)插入到空白位置。轉(zhuǎn)換序列S11由轉(zhuǎn)換序列S6和S5生成。再次地,轉(zhuǎn)換序列S6在每個值后面插入空白0,_3,_,2,_,5_,1,_,4。下個較大整數(shù)6被添加到序列S6。結(jié)果轉(zhuǎn)換序列是S110,6,3,9,2,8,5,10,1,7,4,0…。
總之,產(chǎn)生轉(zhuǎn)換序列Sn的一般方法是以頂級R的行數(shù)開始,并將行數(shù)分為兩半。如果R是奇數(shù),則獲取總和為該值的最接近的兩個整數(shù),并將較大值寫在前面。類似地分解由第一步產(chǎn)生的整數(shù)或整數(shù)對,并重復(fù)該過程,直到到達(dá)2和/或1為止。本例中的整數(shù)結(jié)果列表11,6,5,3,2,1,以相反順序用于生成行轉(zhuǎn)換序列。利用為序列S1和S2預(yù)先確定的轉(zhuǎn)換序列,序列S3來源于序列對S2和S1,序列S5來源于序列對S3和S2,序列S6來源于序列對S3和S3,序列S11來源于序列對S6和S5。序列對的第一個值在每個數(shù)字后面留有一個空白位置,增加的第二個值就寫在這空白位置處。增量值總是大于第一轉(zhuǎn)換序列中最大整數(shù)的最小整數(shù)(下一個整數(shù)?)。任何轉(zhuǎn)換序列都考慮通過重復(fù)該序列而具有無限長度,例如,序列S3(0,2,1)擴(kuò)展為0,2,1,0,2,1,0,2,1,0…。
用于當(dāng)消息在給定級中向東移動時路由消息的方法的期望結(jié)果是,該消息交替地在下一個較低級中的兩組之間移動。例如,當(dāng)R為11,轉(zhuǎn)換序列S11(0,6,3,9,2,8,5,10,1,7,4)將消息交替地放置在5行6、9、8、10、7的較高組和6行0、3、2、5、1、4的較低組上。當(dāng)頂級消息的MSB為1時,目標(biāo)行定義為在較高組中,如果消息碰巧在較低組中的行上,則該消息必須僅向東移動一列,以便優(yōu)選地位于其它組中的行上。在下一個較低級上,出現(xiàn)相同的交替。因此,當(dāng)下降到下一級時,消息具有大約50%的機(jī)會可以立即從該級向南移動,否則該消息僅再移動一列,到達(dá)消息可以隨后向南移動的東側(cè)。當(dāng)消息通過互連100向南移動時,其平均每級訪問大約1.5個單元。在奇數(shù)組的情況下,在一些列上,消息將不得不向東移動兩列以到達(dá)目標(biāo)組,對所有偶數(shù)號的組來說,這僅輕微地增加了每級的平均訪問數(shù)。
圖15A到15D示出了轉(zhuǎn)換序列S3、S5、S6和S11的置換塊布局。序列S3的轉(zhuǎn)換序列□□,1示出了在列間向東移動的消息遵循序列S3,即行到行序列0,2,1,0。在第0行的消息向下一列的第2行移動,第1行的消息向下一列第0行移動,第2行的消息向下一列的第1行移動。圖15B示出了序列S5(0,3,2,4,1)的轉(zhuǎn)換序列□5,1。對于其它行,第0行的消息移動到下一列的第3行,等等。圖15C和15D分別示出了轉(zhuǎn)換序列□6,1和□□□,1。
圖16示出了用于生成基數(shù)3互連結(jié)構(gòu)的轉(zhuǎn)換序列的方法。該方法類似于圖10所示的用于基數(shù)2互連結(jié)構(gòu)的方法。最小序列S33有3行,定義為0,1,2,0…。下個3次冪是9,序列由三個S33的副本生成。第一個副本在每個數(shù)字后面有一個空白。下一個序列增加下一個可獲得的行號3,并寫在每個數(shù)字右側(cè)的第一個可獲得的空白處。第三序列增加下個行號6,并寫在另一個空白處。所生成的序列S39是0,3,6,1,4,7,2,5,8,0…。由相同的方法生成下個3次冪S327。S39在每個數(shù)字后面具有兩個空白,后面的增量序列寫在這兩個空白處,以生成序列S327。
使用S3N轉(zhuǎn)換序列展開基數(shù)3置換塊。圖17示出了3行的置換塊□3,1,由轉(zhuǎn)換序列S33生成。置換塊□9,1由置換序列S39生成。將轉(zhuǎn)換序列□3,1設(shè)置在左上角,將6個水平行設(shè)置在轉(zhuǎn)換序列□3,1下方,使3到6的交叉也可以圖形生成置換塊□9,1。置換塊□27,1由轉(zhuǎn)換序列S327生成。左上角的轉(zhuǎn)換序列□9,1、轉(zhuǎn)換序列□9,1下方的18個水平行和9-18的交叉說明了該圖形方法。
圖18示出了一個基數(shù)3、27行互連的第1列。在所有3級的第0行上重復(fù)該恒等矩陣布局。基數(shù)3處理的優(yōu)點是所處理的級數(shù)比基數(shù)2處理的少。例如,所述3級互連結(jié)構(gòu)支持27個端口。基數(shù)2系統(tǒng)需要5級,并支持32個端口。基數(shù)3處理的缺點是,優(yōu)選以具有兩個二進(jìn)制位的基數(shù)3符號表達(dá)消息標(biāo)題,其中二進(jìn)制位用于表達(dá)三個值0,1,2?;鶖?shù)3單元檢查兩個標(biāo)題位,以確定是否應(yīng)當(dāng)向南發(fā)送消息。互連結(jié)構(gòu)使用每個節(jié)點一個單元的設(shè)計;3單元設(shè)計可能很有利,但又涉及復(fù)雜性。在此省略該設(shè)計的詳情,其可以通過2單元(基數(shù)2)設(shè)計的討論推導(dǎo)出。互連100的實施例可以使用任意基數(shù)值,以展開系統(tǒng)?;鶖?shù)2很自然地通過二進(jìn)制處理支持,并有效利用邏輯門和地址空間?;鶖?shù)不是2次冪的設(shè)計的優(yōu)點是有限的。然而,更高次的基數(shù)系統(tǒng)在花費和性能上都超越了當(dāng)前市場上可用的大型“低延遲”網(wǎng)絡(luò)。
與前面討論的基數(shù)2的實施例相比,使用基數(shù)4設(shè)計的互連結(jié)構(gòu)100例子減小了因子2,即級數(shù)。圖19A示出了基數(shù)4單元。圖19B說明了4個全都在同級上的節(jié)點A、B、C和D,它們使用控制信號路由信息。每個節(jié)點都有兩個數(shù)據(jù)輸入端口、兩個控制信號輸入端口、3個數(shù)據(jù)輸出端口和兩個控制信號輸出端口。節(jié)點V(未示出)在節(jié)點A所在級下面的級上,并接收來自路線S0的數(shù)據(jù)。與節(jié)點V位于同級上的節(jié)點U(未示出)直接向節(jié)點V發(fā)送數(shù)據(jù)。與節(jié)點V位于同級上的節(jié)點W(未示出)直接從節(jié)點V接收數(shù)據(jù)。來自節(jié)點A或節(jié)點D的沿線路S0向下發(fā)送的數(shù)據(jù),通過節(jié)點V并直接移動到節(jié)點W。節(jié)點V不能影響從路線S0到達(dá)的數(shù)據(jù)流。在節(jié)點V、A和D之間存在優(yōu)先權(quán)關(guān)系,以便向節(jié)點W發(fā)送數(shù)據(jù)。節(jié)點V具有最高的優(yōu)先權(quán)。節(jié)點A具有第二最高優(yōu)先權(quán),最后節(jié)點D具有向節(jié)點V發(fā)送數(shù)據(jù)的最低優(yōu)先權(quán)。
包括所有可從節(jié)點A到達(dá)的端口的系統(tǒng)輸出端口組O,與可從節(jié)點B、C和D到達(dá)的系統(tǒng)輸出端口組一致。每個節(jié)點輸出端口S0、S1、S2和S3都導(dǎo)向下個較低級上的不同節(jié)點。可從下個較低級中的節(jié)點到達(dá)的輸出端口組包含輸出端口組O中輸出端口的1/4。
圖19B中,節(jié)點A通過控制線BS0接收忙信號,并向節(jié)點D轉(zhuǎn)播該信號。可選的設(shè)計包括直接從控制線BS0源延伸到節(jié)點D的路線,以及從節(jié)點A道節(jié)點D的控制線??刂菩盘栍糜诳刂茢?shù)據(jù)流。由控制信號攜帶的特定路徑并不重要。圖19B的4個節(jié)點和在這4個節(jié)點下面的AND(與)門可以被視為一個單一節(jié)點X,具有8個數(shù)據(jù)輸入端口、4個控制信號輸入端口、8個數(shù)據(jù)輸出端口和4個控制信號輸出端口。
來自南側(cè)的數(shù)據(jù)輸入信號總是通過該節(jié)點直接到達(dá)東側(cè)。來自西側(cè)的每個數(shù)據(jù)都能以三種方式被交換。從西側(cè)退出到東側(cè)的數(shù)據(jù)通過與輸入端口位于同級上的輸出端口退出。在輸入端口之間存在優(yōu)先權(quán)關(guān)系,其繼承于該節(jié)點中各單元之間的優(yōu)先權(quán)關(guān)系。在將數(shù)據(jù)發(fā)送出節(jié)點X輸出端口S0方面,來自節(jié)點X輸入端口W0的數(shù)據(jù)對來自節(jié)點X輸入端口W3的數(shù)據(jù)具有優(yōu)先權(quán)。
對于每個設(shè)置來向節(jié)點SW(未示出)發(fā)送數(shù)據(jù)的節(jié)點X輸出端口opx,節(jié)點X的輸入端口IPX組設(shè)置來將數(shù)據(jù)發(fā)送出輸出端口opx。輸入端口組IPX中的最高等級成員向輸入端口發(fā)出命令,通過輸出端口opx向該輸入端口組IPX的最低等級成員發(fā)送數(shù)據(jù)。這樣,消息對輸出端口opx的訪問由基于位置的優(yōu)先權(quán)模式定義。每個進(jìn)入輸入端口組IPX的消息都是目標(biāo)。該目標(biāo)可能是互連結(jié)構(gòu)的輸出端口,也可能是饋送其它結(jié)構(gòu)的目標(biāo)環(huán)。優(yōu)先權(quán)關(guān)系存在于輸入端口組IPX的成員之間,以便向輸出端口opx發(fā)送數(shù)據(jù)。在該優(yōu)先權(quán)關(guān)系中,輸入端口p是輸入端口IPX組的成員。
如果消息MP到達(dá)輸入終端組IPX的輸入端口p,且從輸出端口opx到消息MP目標(biāo)存在路徑,則將通過輸出端口opx有條件地發(fā)送一條到達(dá)輸入終端組IPX的消息。發(fā)送該消息的條件是,輸出端口opx沒有被不通過節(jié)點X傳輸?shù)南⒆枞H绻斎攵丝趒這樣包括在輸入終端組IPX中,即,1)在向輸出端口opx發(fā)送方面,輸入端口q的優(yōu)先權(quán)比輸入端口p高;2)消息MP到達(dá)輸入端口q,從輸出端口opx到消息MP目標(biāo)存在路徑,則不向輸出端口opx發(fā)送消息MP。
該例子將兩級的邏輯和控制組和在一級中,如前所述?;鶖?shù)4節(jié)點向南側(cè)提供4條輸出路徑,并復(fù)制通過兩級向下發(fā)送消息的效果。另一期望特性是跳過省略的級,這可以減少通過互連結(jié)構(gòu)的飛行時間,并產(chǎn)生較低的延遲。同樣參照圖9,一級上的單元連接到下個較低級的兩組上,這兩個組分別被稱為“較高組”和“較低組”。基數(shù)4單元連接到下級的4個組中的一個,相對于二進(jìn)制樹狀路徑,這有效地創(chuàng)建了“基數(shù)4樹”路徑。多個單元互連到向南的共享路徑。在所述基數(shù)4的實施例中,基數(shù)4單元連接到下面的4個組中的兩個。在下一列,該單元連接到另外兩個組。
用于基數(shù)4互連的消息格式和標(biāo)題與圖3A所示的相同。參照圖19A,單元A檢查MSB1902、下個有效位1926以及通信量位1902,以確定該消息應(yīng)當(dāng)被發(fā)送到4個組中的哪一組。每個單元具有向南的兩條路經(jīng)。存在這樣的優(yōu)先權(quán),即,該消息無法使用其中任何一條路經(jīng),因此必須向東路由。該路由類似于從狀態(tài)640中的基數(shù)2單元向東路由的消息。如前所述,當(dāng)向東發(fā)送消息時,控制信號BN1906通知在北側(cè)共享該路徑的單元?;蛘撸瑯?biāo)題可以指明在兩個路徑的其中一個S0或S2上向南的移動。在同一節(jié)點陣列中的另一單元共享路徑S0,單元A在使用路徑S0時對另一單元具有優(yōu)先權(quán)。因此,如果消息標(biāo)題指明通過路徑S0的目標(biāo),且來自南方的控制信號指明該路徑?jīng)]有被阻塞,則單元A沿路徑S0向下發(fā)送消息。單元A也向共享路徑S0的單元D發(fā)送控制信號。當(dāng)單元A試圖在沒有優(yōu)先權(quán)的路徑S2上發(fā)送消息時,單元A檢查來自單元C的控制信號的狀態(tài),其中單元C在使用路徑S2時具有優(yōu)先權(quán)?;鶖?shù)4單元可能被就在下面的單元或同一節(jié)點陣列中的在使用共享路徑S2時具有優(yōu)先權(quán)的單元阻塞。單元A與另一單元D共享優(yōu)先權(quán)輸出路徑S0,并用控制信號向單元D交流對路徑S0的使用。單元A與單元C共享沒有優(yōu)先權(quán)的輸出路徑,并接收來自單元C的控制信號。
圖19B示出了在同一節(jié)點陣列中的4個基數(shù)4單元設(shè)置。單元A在使用路徑S0時對單元D具有優(yōu)先權(quán),以點劃線表示。當(dāng)單元A在路徑S0上向南發(fā)送消息時,單元A同時向單元D發(fā)送控制信號。每個單元具有兩條向南的路徑,顏色較深的路線表示哪條路徑具有優(yōu)先權(quán)。優(yōu)先權(quán)設(shè)置為A-D-B-C-A,其中單元A對單元D具有優(yōu)先權(quán),單元D對單元B具有優(yōu)先權(quán),等等。當(dāng)一個單元被指定在沒有優(yōu)先權(quán)的路徑上發(fā)送消息時,該單元首先檢查來自具有優(yōu)先權(quán)的單元的控制信號。
在所述例子中,構(gòu)成基數(shù)4互連結(jié)構(gòu)的基本建造塊是可以轉(zhuǎn)換4個來自東側(cè)的信號,并將來自北側(cè)的信號直接傳送到東側(cè)的節(jié)點。相同類型的其它節(jié)點可以用在相同的互連結(jié)構(gòu)中。圖19C和19D示出了這些實施例。
圖19C和19D中,路線S0導(dǎo)向位置W??梢哉J(rèn)為位置W是節(jié)點或節(jié)點內(nèi)的單元。與位置W同級的單元V在向位置W發(fā)送數(shù)據(jù)時具有優(yōu)先權(quán)。在4個單元A、B、C和D中,沒有一個單元在向位置W發(fā)送數(shù)據(jù)時對其它三個單元具有優(yōu)先權(quán)。一個共用邏輯判定從單元A、B、C和D向位置W發(fā)送消息的線路競爭??梢哉J(rèn)為單元A、B、C和D是單個節(jié)點。節(jié)點組O表示包含單一節(jié)點V的組。節(jié)點組R表示包含4個節(jié)點A、B、C和D的節(jié)點組。來自節(jié)點組O的消息在向位置W發(fā)送時對來自節(jié)點組R的消息具有優(yōu)先權(quán)。
圖19C所示的節(jié)點包括4個2×2交換器1922以及在單元A、B、C和D的4個交換器1910。該節(jié)點可以將從西側(cè)到達(dá)任意輸入端口的消息發(fā)送到在東側(cè)位于同一行的輸出端口,或在南側(cè)的任意輸出端口。與該節(jié)點相關(guān)的控制邏輯1920接收16個輸入位,包括來自南側(cè)的4個忙信號、來自4個輸入消息的通信量位以及兩個來自每個輸入消息的最夠有效位。該邏輯設(shè)置在單元A、B、C和D的4個交換器,也設(shè)置4個2×2交換器。與節(jié)點相關(guān)的邏輯接受這16位作為一個輸入信號,并產(chǎn)生代表節(jié)點狀態(tài)的8位,包括忙信號。向北的忙信號可以由控制邏輯單元1920或節(jié)點A、B、C和D1910產(chǎn)生,如圖19D所示。
假設(shè)該邏輯采用的規(guī)則使用對節(jié)點A給予訪問路徑S0的最高優(yōu)先權(quán)的優(yōu)先權(quán)模式。假設(shè)節(jié)點A的消息將路徑S0作為目標(biāo),節(jié)點B的消息將路徑S0作為目標(biāo),節(jié)點C的消息將路徑S1作為目標(biāo),節(jié)點D沒有消息??紤]節(jié)點A的消息向節(jié)點A的目標(biāo)移動時,僅允許一條消息向南移動,而其它規(guī)則允許兩條消息向南移動。一組這樣的例子示出了在使用任何將優(yōu)先權(quán)嚴(yán)格基于位置的規(guī)則中的缺點。有效的策略是給定級的消息對來自較高級的消息以及對給定級可能基于其它模式具有優(yōu)先權(quán)的消息具有優(yōu)先權(quán)。兩個這樣的模式包括(1)允許最大數(shù)量的消息下降一級;(2)根據(jù)標(biāo)題中的服務(wù)質(zhì)量(QOS)優(yōu)先權(quán)位給予消息優(yōu)先權(quán)。
參照圖19C和19D,復(fù)合節(jié)點N由多個單元、控制邏輯元件、輸入端口、輸出端口和交換器組成。復(fù)合節(jié)點包括個單元A、B、C和D、控制邏輯1920和交換器1930。復(fù)合節(jié)點N具有4個數(shù)據(jù)輸入端口W1、W2、W3和W4以及8個輸出端口。4個輸出端口S0、S1、S2、S3組成輸出端口組S。4個輸出端口E0、E1、E2、E3組成輸出端口組E。通過輸出端口S傳送的數(shù)據(jù)進(jìn)入比節(jié)點N低一級、且位于節(jié)點N右側(cè)的列上的節(jié)點。通過輸出端口E傳送的數(shù)據(jù)進(jìn)入與節(jié)點N相同級、且位于節(jié)點N右側(cè)的列上的節(jié)點。控制邏輯單元1920根據(jù)控制信號和通過輸出端口組T發(fā)送的消息組的標(biāo)題位確定控制選擇。輸出端口組T中的輸出端口連接到節(jié)點N的輸入端口。
對每條進(jìn)入復(fù)合節(jié)點N的消息,通過復(fù)合節(jié)點N存在一條到消息M指定的目標(biāo)輸出端口的路徑。根據(jù)該消息的標(biāo)題和由控制邏輯1920接收的控制信號,控制邏輯1920控制節(jié)點N中的交換器和節(jié)點之間的交換器。節(jié)點和交換器由邏輯單元1920設(shè)置,以增加或最大化可以向節(jié)點PM發(fā)送的消息M的數(shù)量,節(jié)點PM例如是1)節(jié)點PM在低于節(jié)點N所在級的級上;2)通過節(jié)點PM存在通向消息M的目標(biāo)。
圖19D的節(jié)點具有一個額外的2×2交換器1930,并按期望可以對從西側(cè)到達(dá)的消息進(jìn)行任意置換??刂七壿嫿邮?6位的輸入信號,并產(chǎn)生10位來代表該節(jié)點的狀態(tài)。即使在這種情況下,由于在節(jié)點A、B、C和D用于指定輸出端口的消息之間仍然存在沖突,因此控制邏輯可能使用復(fù)雜的策略。
在可選實施例中,控制通過圖19C和19D中所示節(jié)點的消息流的邏輯可以使用消息標(biāo)題中的QOS位,以便與較低優(yōu)先權(quán)的消息相對照而給予較高優(yōu)先權(quán)的消息較高的優(yōu)先權(quán),以移動到較低級。在一種情況下,優(yōu)先權(quán)首先基于QOS設(shè)置,其次基于節(jié)點中的位置。
圖20A示出了基數(shù)4單元如何在節(jié)點陣列中以及在級之間相互連接。第0級的單元沿對角排列。第2級的單元A位于行-列-級位置
。第0行的單元連接到S4轉(zhuǎn)換序列(0,2,1,3,0)的南側(cè),如每個單元上的符號所示。粗體顯示的值表示具有優(yōu)先權(quán)的路徑。單元A與單元D共享到第0行的向南連接。單元A在使用第0行時對單元D具有優(yōu)先權(quán)。在第0列、第2級,單元位于直接連接到具有優(yōu)先權(quán)的南方的對角上。在下一列,即第1列,影響了轉(zhuǎn)換序列S4的下兩個位置,轉(zhuǎn)換序列S4在后續(xù)列中重復(fù)。在第二次重復(fù)期間,在第一次重復(fù)中沒有優(yōu)先權(quán)的值被給予優(yōu)先權(quán)。檢查沿行粗體顯示的值,示出了行上的相對優(yōu)先權(quán)。在第2級,當(dāng)消息向東通過任意兩列移動時,該消息有機(jī)會下降到第0級的任意4行上。
在節(jié)點陣列中展開第2級單元的方法從第一列開始,這里的單元沿對角設(shè)置。參考序列S4(0,2,1,3,0…),對與行號相同的值授予優(yōu)先權(quán)。下個號碼給出轉(zhuǎn)換序列S4中該對值的另一個行號。例如,第0行上的單元A向南連接到第0行和第2行。由于0也是該單元的行號,因此值0具有優(yōu)先權(quán)。在下一列,即第1列,單元A使用轉(zhuǎn)換序列S4中的下兩個值1和3。這對值的第一個值具有優(yōu)先權(quán)。同樣,根據(jù)繼續(xù)轉(zhuǎn)換序列S4、并給予第一個值優(yōu)先權(quán)的規(guī)則設(shè)置第1列的其余單元。在下一列,即第2列,又繼續(xù)轉(zhuǎn)換序列S4,由于僅在兩列中滿足該轉(zhuǎn)換序列的所有4個值,因此,又重復(fù)該轉(zhuǎn)換序列,但是以相反的優(yōu)先權(quán)。第0行、第2列上的單元A向南連接到第0行和第2行,這是與第0列上的單元A相同的行。然而,消息流的優(yōu)先權(quán)被反置,這由首要符號和控制信號箭頭的相反方向指明。有利的結(jié)果是,向東通過4列的消息有機(jī)會向南下降到所有具有優(yōu)先權(quán)的4行上,如果該消息沒有從下面被阻塞,且其它連接的單元沒有使用共享路徑,則也有機(jī)會到達(dá)任何行。轉(zhuǎn)換序列號S4確定單元對的互連。
在本例中,消息跳過兩級,按期望消除了奇數(shù)號級。檢查兩個標(biāo)題地址位,單元具有能通向南方的4條路徑中的兩條。減少級數(shù)和控制邏輯量,有利地減小了傳輸時間。在所述控制模式中,兩行共享一條向南消息路徑,并具有公平的優(yōu)先權(quán)分布?;鶖?shù)4單元與同一節(jié)點陣列中的其它單元以及在西側(cè)和南側(cè)的單元相組和,以獲得期望的控制和消息流。與在單一路徑實施例中向東移動的消息相比較,在基數(shù)4實施例中向東移動的消息優(yōu)選具有幾乎雙倍的機(jī)會來沿著相同的兩極向下移動。
圖20B示出了16行、基數(shù)4交換器的一列。兩個共享向南的公用路徑的單元通過連接單元2002和單元2004的同級控制信號進(jìn)行通信。為簡單起見,沒有示出控制信號連接。通過將單元沿著各級的對角設(shè)置來給出基數(shù)4單元的布局。合適大小和次數(shù)的置換塊位于節(jié)點陣列的東側(cè)?;鶖?shù)4布局完成了轉(zhuǎn)換序列的兩步,因此,該轉(zhuǎn)換序列的次數(shù)為2。在第4級使用轉(zhuǎn)換塊□□6,2,在第2級使用置換塊□□□2。
圖20A討論的處理產(chǎn)生基數(shù)4單元的布局。對于第4級,在南側(cè)的互連模式與為旋轉(zhuǎn)90度的置換塊□□6,1給出的相同,并在向南的平行垂直路徑上展開。在頂級上,由于所有16個單元都在同一列表中,因此16個單元之間的優(yōu)先權(quán)循環(huán)復(fù)用。同樣,第2級南側(cè)的互連模式與為置換塊□□,1給出的相同,該置換塊在向南的垂直連接上展開。第2級上有4個優(yōu)先權(quán)列表,與圖19B所示的條件相似。
圖20B的互連具有以下特性,在第2級上,單元可以組合成4組,以形成如圖19B所示的節(jié)點類型。然而,圖20B中的每一組第4級節(jié)點都連接到至第4級其它節(jié)點的控制互連線。因此,第4級中的節(jié)點不能分解為4組,以形成如圖19B所示的節(jié)點類型。在圖20C所示的16行基數(shù)4互連中的節(jié)點可以組合成4組,以形成如圖19B所示的節(jié)點類型??梢詾榛ミB中使用的置換做出許多選擇。3個置換P4、Q4和R4用在交換陣列的列與列之間。置換S4可選的用于改善流量。當(dāng)使用該置換S4時,每次僅在第4次時使用。第2級的行被分為4組,每組具有4行。在第0、1、2和3行上以及其它3組行上移動的消息可以只通過定點0、1、2和3上的輸出端口退出。設(shè)計置換P4是為了使每個4單元節(jié)點都能向第2級上的4個行組中的每個組發(fā)送數(shù)據(jù)。
參照圖20C,第4級上節(jié)點2020最左側(cè)的單元向第2級上的最左側(cè)節(jié)點2024發(fā)送數(shù)據(jù)。從左側(cè)起第二個單元2022向第2級每列中的左側(cè)起第二個節(jié)點2028發(fā)送數(shù)據(jù)。對第4級上的4個節(jié)點中的每個繼續(xù)該模式。置換Q4保證第2級上沒有消息可以在后續(xù)時間步長中阻塞來自第4級上的相同節(jié)點的消息。置換R4保證在后續(xù)步長中沒有第4級的消息阻塞第4級上的第二消息。置換S4進(jìn)一步減小在4個或更多時間步長中保留在同一級上的消息之間的競爭。
可以繼續(xù)該模式,以便使用4單元節(jié)點構(gòu)造更大的互連結(jié)構(gòu)。每級64行的互連結(jié)構(gòu)使用如下定義的置換P6、Q6、R6和S6第6級上的最左側(cè)節(jié)點具有連接到第4級上第0、16、32和48行的4個輸出端口。最左側(cè)節(jié)點的相鄰節(jié)點具有連接到第1、17、33和49行輸出端口。繼續(xù)該處理,從而使從右起第n個節(jié)點具有連接到第0+n、16+n、32+n和48+n行的輸出端口。置換Q6將底部60的行r變成第r+4行,頂部的4行r變成第r-60行。置換R4交換偶數(shù)和奇數(shù)行,置換S4將底部30偶數(shù)號碼的行r變成第r+4行,將頂部兩個偶數(shù)號碼的行變成行R-60,并固定其余4行。產(chǎn)生置換P4、Q4、R4和S4的布線模式在64行的第2級重復(fù)4次。
繼續(xù)該處理,從而在每級包括256行的結(jié)構(gòu)中,連接到第0、64、128和192行的最左側(cè)節(jié)點具有4個輸出端口??傊?,每級包括4P行的結(jié)構(gòu)在連接到下面一級上的第0、4P-1、2·4P-1和3·4P-1行的頂級具有最左側(cè)節(jié)點,在頂級最左側(cè)節(jié)點右側(cè)的節(jié)點n連接到下面一級的第0+n、4P-1+n、2·4P-1+n和3·4P-1+n行。
很多其它置換也能有效工作。一種產(chǎn)生好置換的方法是生成具有期望連接到下一列和較低級的隨機(jī)置換,并由模擬通過該結(jié)構(gòu)的通信量來評估不同的置換。
在互連的許多例子中,單元向同級的一個單元和較低級的一個單元傳送數(shù)據(jù),如圖21A和21B的拓?fù)浣Y(jié)構(gòu)中所描繪的,其中不是所有的節(jié)點都示出了所有的連接。在最簡單的網(wǎng)絡(luò)例子中,每個節(jié)點具有兩個數(shù)據(jù)輸入端口、兩個數(shù)據(jù)輸出端口、一個控制線輸入端口和一個控制線輸出端口。節(jié)點只包括一個單元。單元W和X在比單元A、B和C低的級上。單元A在第一列中,單元B和W在第二列中,單元C和X在第三列中。在最基本的例子中,不允許節(jié)點或單元一次接收超過一條信息。在圖21A中,單元B和W都可以直接向單元X發(fā)送數(shù)據(jù)。在單元B和W之間,對于向單元X發(fā)送數(shù)據(jù)存在這樣的優(yōu)先權(quán)關(guān)系,即,在向單元X發(fā)送數(shù)據(jù)時單元W對單元B具有優(yōu)先權(quán)。當(dāng)單元W向單元X發(fā)送數(shù)據(jù)時,單元W也向單元B發(fā)送控制信號206,指明單元W已通過路徑208向單元X發(fā)送了數(shù)據(jù)。在單元X在任意給定時間只能接收一條消息和單元W向單元X發(fā)送消息的例子中,單元B不能向單元B發(fā)送消息。當(dāng)消息MA到達(dá)單元B,單元B的邏輯檢查消息MA的標(biāo)題,以確定單元X是否在從單元B到消息MA目標(biāo)的路徑上。僅在以下兩個條件都被滿足時單元B才向單元X發(fā)送消息MA(1)在從單元B通過單元X到消息MA目標(biāo)之間存在路徑;以及(2)單元X沒有被來自單元B的接收數(shù)據(jù)阻塞。單元的邏輯使用消息MA的標(biāo)題信息以及來自單元W的控制信號,以便確定向何處發(fā)送消息MA。
在圖21A中,從單元B到單元X的消息互連線550、從單元W到單元X的消息互連線208以及從單元W到單元B的控制信號2106的控制互連線都是單獨的線路。該配置引進(jìn)兩種用于向B傳送數(shù)據(jù)的不同模式。在一種模式中,如圖21B所示,從單元B到單元X的消息互連線通過單元W。通過這種方法,單元B使用單元W向單元X發(fā)送數(shù)據(jù)的相同消息互連線2108向單元X發(fā)送數(shù)據(jù),從而使得從單元B到單元X的數(shù)據(jù)從單元B到路徑2102上的單元W,然后從單元W到路徑2108上的單元X。
本領(lǐng)域普通技術(shù)人員可以預(yù)想其它用于設(shè)置支持從單元B或單元W向單元X傳送消息的消息互連線和控制互連線,以及一個單元對其它單元具有優(yōu)先權(quán)的模式。例如,圖21D說明了從單元B到單元X、并通過單元V的消息互連線,從單元W到單元B的控制互連線通過單元U。進(jìn)一步,控制互連線可以通過多個單元。在圖21C中,單元W向單元B發(fā)送一個控制信號,向單元U發(fā)送一個控制信號。這些控制信號可能相等或不相等。從節(jié)點U到節(jié)點B的控制信號可能依賴或不依賴從節(jié)點W到節(jié)點U的控制信號。消息互連線和控制互連線的物理設(shè)置并不重要。然而,在向給定單元X發(fā)送數(shù)據(jù)的單元中,對于向單元X發(fā)送數(shù)據(jù)存在優(yōu)先權(quán),從而使單元W在向單元X發(fā)送數(shù)據(jù)時對單元B具有優(yōu)先權(quán)。該方法使用控制信號來強(qiáng)迫執(zhí)行優(yōu)先權(quán)。該控制信號與其它網(wǎng)絡(luò)中使用的信號交換不同單元B不需要了解單元X的狀態(tài)來向X發(fā)送消息。相反,單元B使用關(guān)于不同于單元X的單元的狀態(tài)信息來確定向何處發(fā)送消息。實際上,指明不同于單元X的節(jié)點狀態(tài)的控制信號可以通過單元X??刂菩盘柦?jīng)過的路徑并不重要。該控制信號可以是單獨信號或消息的一部分,其實質(zhì)功能相同。通過生成控制信號、控制信號內(nèi)容和節(jié)點互連拓?fù)浣Y(jié)構(gòu)的所述方法可以提高效率和流量。
優(yōu)先權(quán)基于位置的方法優(yōu)點很多。由于單元W在比單元B低的級上,因此單元W的消息可能在網(wǎng)絡(luò)上比單元B的消息待的時間更長。本方法與消息在網(wǎng)絡(luò)上待了多久相關(guān),并按期望給予更久的消息優(yōu)先權(quán)。本方法還可以實施有利的特性,例如總是為消息存在一條退出單元的空閑路徑,以及該空閑路徑總是在通向消息輸出端口的路由(路徑?)上。此外,由于每條來自單元B的消息互連線都通向同級上的另一單元C,或者通向較低級的單元X,因此,消息在向目標(biāo)輸出端口前進(jìn)的過程中決不會“失去方向”(lose ground)。這些期望特征可以實施在各種互連的大型集合中。
在實施例的可選集合中,每個單元向同級上的一個或多個單元以及較低級上的兩個或多個單元傳送數(shù)據(jù)。圖21E說明了一個包括控制單元B的電路的一部分,其中控制單元B具有到單元C、X和T的數(shù)據(jù)傳輸線。單元W在向單元X發(fā)送數(shù)據(jù)時對單元B具有優(yōu)先權(quán),單元S在向單元T發(fā)送數(shù)據(jù)時對單元B具有優(yōu)先權(quán)??刂苹ミB線從單元W延伸到單元B,并從單元S到單元B,以強(qiáng)迫執(zhí)行優(yōu)先權(quán)。圖21F通過添加與單元B同級上的單元E、D和F擴(kuò)展了圖21E的說明。所添加的控制單元的附加優(yōu)先權(quán)關(guān)系是單元W在向單元X發(fā)送數(shù)據(jù)時對單元E具有優(yōu)先權(quán),單元S在向單元T發(fā)送數(shù)據(jù)時對單元E具有優(yōu)先權(quán)。其它控制互連線從單元W延伸到單元E和單元B,并從單元S到單元E和單元B,以強(qiáng)迫執(zhí)行該優(yōu)先權(quán)關(guān)系。多個優(yōu)先權(quán)分配指定了在單元B和單元E之間對于向單元X和單元T發(fā)送數(shù)據(jù)的優(yōu)先權(quán),包括以下4中分配(1)單元E在向單元X和單元T發(fā)送數(shù)據(jù)時對單元B具有優(yōu)先權(quán);(2)單元B在向單元X和單元T發(fā)送時對單元E具有優(yōu)先權(quán);(3)單元B在向單元X發(fā)送數(shù)據(jù)時對單元E具有優(yōu)先權(quán);
(4)單元E在向單元T發(fā)送數(shù)據(jù)時對單元B具有優(yōu)先權(quán)。
在第(1)種單元E在向單元X和單元T發(fā)送時對單元B具有優(yōu)先權(quán)的情況中,添加了從單元E到單元B的控制互連線。圖21G說明了一個可選例子,其中從單元W到單元S的控制互連線通過單元E。與單元E相關(guān)的邏輯可以修改通過單元E的控制信號,或者單元E在這方面被動,不改變這些信號。從單元E到單元B的控制信號指明從單元B到單元X的路徑的可用性、從單元B到單元T的路徑的可用性、兩條路徑的可用性,或兩條路徑的不可用性。
參照圖21G,單元B和E在同級上。對于互連結(jié)構(gòu)的單元N,P(N)用于表示可從單元N訪問的輸出端口組。在互連結(jié)構(gòu)的許多實施例中,可從單元B訪問的輸出端口P(B)與可從單元E訪問的輸出端口P(E)相同。輸出端口組P(S)和P(W)不交叉,P(B)組是P(S)和P(W)組的組合。當(dāng)消息MA向南逐級移動時,可由消息MA訪問的輸出端口組被減少,直到最終到達(dá)目標(biāo)行為止。該消息移動一列到達(dá)右側(cè)。很多單元到單元的互連拓?fù)浣Y(jié)構(gòu)都具有這些特性,包括圖21A到21N所示的拓?fù)浣Y(jié)構(gòu)。互連、優(yōu)先權(quán)和控制特性使得本互連結(jié)構(gòu)與傳統(tǒng)網(wǎng)絡(luò)區(qū)別開來,不僅是單元和節(jié)點的特殊電路拓?fù)浣Y(jié)構(gòu)。例如,圖21F到21L的電路在物理或拓?fù)浣Y(jié)構(gòu)上不同,但功能相似。
在這里公開的許多例子中,不允許單元接受兩條消息作為同一時間周期中的輸入信號。在這些情況下,使用多種邏輯等效方法,以允許共享消息互連線。圖21H說明了一個允許消息從單元B到單元X,或允許單元T通過單元E的例子??蛇x的,圖21I說明了從單元E到單元X通過單元W的消息互連鏈路,以及從單元E到單元T通過單元S的消息互連鏈路。除了從單元E下移到單元T的消息首先分別通過單元S和W,并優(yōu)選在電路中只使用水平和垂直線之外,圖21J所示的互連結(jié)構(gòu)在功能上等效于圖21H中所示的結(jié)構(gòu)。與圖21I中的電路相比,圖21J的電路優(yōu)選允許兩條消息進(jìn)入每個單元T和X。對角結(jié)構(gòu)可以用通過在下面同列上單元的連接路徑,加上到下個單元的水平路徑代替,如圖21J所示。
圖21K說明了另一個從單元B或單元E到單元X和單元T的消息通過2×2交換器R2110的例子。該交換器由單元E和B設(shè)置在條2112或交叉2114位置。單元E在向單元X和T發(fā)送時對B具有優(yōu)先權(quán)的情況等效于單元E在設(shè)置交換器R時對單元B具有優(yōu)先權(quán)。該控制和優(yōu)先權(quán)邏輯如下。單元W和S通知單元E是否阻塞單元E或單元T接收來自單元B或E的消息。如果消息MD到達(dá)單元E,則檢查消息MD的標(biāo)題以確定是單元X還是T在從單元E到消息MD目標(biāo)的路徑上。如果沒有阻塞該路徑上的單元接收消息MD,則單元E設(shè)置交換器R以沿著正確路徑向消息目標(biāo)發(fā)送消息MD。如果正確路徑被阻塞,則向單元F發(fā)送消息MD,對交換器R的控制轉(zhuǎn)交給單元B。同樣,如果沒有消息到達(dá)單元E,則對交換器R的控制也交給單元B。如果單元E設(shè)置交換器R,從而使消息MD可以朝著目標(biāo)向下移動到另一級,當(dāng)前具有消息MA,可以通過該配置的交換器朝目標(biāo)移動,且單元X和T沒有都被阻塞,則消息MA和MD通過交換器R朝著由消息MA和MD的消息標(biāo)題指定的目標(biāo)向下移動。這是單元B和E可以在同一時間向下一級向下發(fā)送消息的唯一條件。從單元E到單元B的控制信號指明單元X和T可以獲得一條開放路徑,以及單元B是否有權(quán)設(shè)置交換器R。如果從單元E到單元B的控制信號指明單元B有權(quán)設(shè)置交換器R,且消息MA到達(dá)單元B,則單元B檢查MA的標(biāo)題,以確定時單元X還是單元T在通向消息MA目標(biāo)的路徑上。如果沒有阻塞該路徑上的單元,則單元B設(shè)置交換器R,以使得消息MA繼續(xù)朝目標(biāo)移動,并向下將消息MA發(fā)送到下一級。當(dāng)下一級上的單元被來自單元S、W或E的消息阻塞時,消息MA被發(fā)送到單元C。由于單元B對于向單元C發(fā)送具有最高優(yōu)先權(quán),因此該路徑總是可用。此外,從單元C到消息目標(biāo)行的躍距數(shù)與從單元B到同一行的躍距數(shù)相同。
圖21K也示出了單元B在向單元X發(fā)送消息時對單元E具有優(yōu)先權(quán)以及單元E在向單元T發(fā)送消息時對單元B具有優(yōu)先權(quán)的可選優(yōu)先權(quán)模式。在該優(yōu)先權(quán)模式中,只要消息可以通過并向目標(biāo)移動,交換器R就設(shè)置在條位置2112。如果沒有消息能在交換器位于當(dāng)前位置時被正確向下發(fā)送到下一級,則該交換器被設(shè)置在交叉位置。因此,一個交換器位置對另一個具有優(yōu)先權(quán),在這種情況下即條位置對交叉位置,等效于單元B在向單元X發(fā)送時對單元E具有優(yōu)先權(quán),單元E在向單元T發(fā)送時對單元B具有優(yōu)先權(quán)。單元B和E在該優(yōu)先權(quán)模式下交換控制信號??刂苹ミB線和消息互連線能以多種方式展開,以實施該邏輯。
對于圖22和23所示的2單元節(jié)點,兩個單元B和E以及交換器R優(yōu)選組合成一個節(jié)點P,如圖21L所示。單元B和E各具有兩個輸入端口和兩個輸出端口,組合節(jié)點P具有4個輸入端口和4個輸出端口。向給定節(jié)點的輸入端口發(fā)送消息的優(yōu)先權(quán)不僅取決于發(fā)送節(jié)點的位置,還取決于消息進(jìn)入的節(jié)點P的輸入端口。圖21M說明右圖21I示出的單元B和E的電路形成的節(jié)點Y,其條件是交換器R提供從單元B和E到單元T和X的連接路徑。與下面討論的更為復(fù)雜的內(nèi)部結(jié)構(gòu)相比,節(jié)點Y的優(yōu)點在于使用了相對很少的邏輯門。與圖21A和21B所示的單一單元的節(jié)點的操作相比,節(jié)點Y的另一個優(yōu)點是改善了處理效率。節(jié)點Y本質(zhì)上和其它2單元節(jié)點一樣,都具有很好的性能。在圖1B、1C、21K、21L、21M以及其它圖中,數(shù)據(jù)對角地向西移動到下一列的單元中。
除了將兩個較小單元的邏輯組合成更有效的計算單元,更大節(jié)點中的互連結(jié)構(gòu)可以按期望比更小單元組合的互連結(jié)構(gòu)更復(fù)雜。而圖21K中所示的結(jié)構(gòu)不支持從單元K到單元C、從單元D到單元C、從單元A到單元F或從單元J到單元F的消息,這些連接可以設(shè)置在圖21L的節(jié)點P中。優(yōu)選的,節(jié)點P可以將4條輸入線中的任一條交換為4條輸出線中的任一條。在其它實施例中,控制線通知單元J單元D、A和K的狀態(tài),并通知單元K單元A、D和J的狀態(tài)。由于從節(jié)點P到單元C和單元F存在兩條保證不阻塞的路徑,因此節(jié)點P總是可以一次接受最多兩條信息。同以前一樣,單元A和D在向節(jié)點P發(fā)送消息時對單元K和J具有優(yōu)先權(quán)。在單元K和J之間存在其它優(yōu)先權(quán)關(guān)系。圖21L的更復(fù)雜節(jié)點P在以下情況中比圖21K的單元B和E更有優(yōu)點,即,當(dāng)消息可以向下移動到較低級時,而在圖21K電路中消息仍留在同級。例如,如果消息當(dāng)前在節(jié)點D和K而不在節(jié)點A和J,則兩個消息都可以進(jìn)入節(jié)點P,但只有節(jié)點D的消息可以進(jìn)入圖21K所示結(jié)構(gòu)中的單元E。
組合圖21K中所示的兩個較小單元B和E會生成圖21L中的復(fù)雜連接節(jié)點。一旦這些單元被組合,則內(nèi)部互連結(jié)構(gòu)和該節(jié)點邏輯優(yōu)選可以通過很多方法被擴(kuò)大和充實。例如,超過兩條互連線可以被插入到同級上的節(jié)點之間。圖21N說明具有5條數(shù)據(jù)輸入線和5條數(shù)據(jù)輸出線的節(jié)點Q。該數(shù)據(jù)輸出線中的3條連接到同級上的節(jié)點,另兩條連接到下級上的節(jié)點。來自節(jié)點Q的3條數(shù)據(jù)輸出線可以連接到3個獨立節(jié)點C、F和K,如圖21N所時,或兩條或更多該線路連接到同一個節(jié)點。例如,所有來自節(jié)點Q的3條線路都可以連接到節(jié)點C,從而消息互連線可以是并行傳送多個數(shù)據(jù)的數(shù)據(jù)總線。該數(shù)據(jù)總線可以并聯(lián)連接,如電子總線,也可以是使用時分或波分多路復(fù)用傳送多個信息的單一光纖。后面將更詳細(xì)地討論數(shù)據(jù)總線。
優(yōu)先權(quán)基于位置的模式可以用其它優(yōu)先權(quán)模式組合。例如,標(biāo)題中的信息,例如優(yōu)先權(quán)位或QOS字段332,優(yōu)選將更高或更低的優(yōu)先權(quán)給予與其它消息競爭同一輸出端口組的消息。圖21L說明了其中節(jié)點A和D的消息對節(jié)點K和J的消息具有優(yōu)先權(quán),但在節(jié)點K和J的競爭消息之間的優(yōu)先權(quán)可以基于標(biāo)題中的優(yōu)先權(quán)字段的電路。相同的技術(shù)可以優(yōu)選用于節(jié)點P,從而對于目標(biāo)都指定為節(jié)點X的節(jié)點P中的兩條消息,具有較高優(yōu)先權(quán)的消息競爭成功。在標(biāo)題中表明的優(yōu)先權(quán)可以在消息最初進(jìn)入交換器之前被設(shè)置,也可以是消息在交換器中持續(xù)時間的指示符,還可以依賴于與應(yīng)用相關(guān)的因素。還有其它技術(shù)允許某些優(yōu)先權(quán)基于位置,而另一些優(yōu)先權(quán)在不同時間隨機(jī)指定。隨機(jī)化具有的優(yōu)點是使得某些不期望的流模式不能在互連中展開。
圖21A中所示的子電路示出了節(jié)點W和B,兩個都可以向節(jié)點X發(fā)送數(shù)據(jù)。與節(jié)點B相關(guān)的邏輯使用涉及消息通過節(jié)點W路由的信息,以便通過節(jié)點B路由消息。信息通過節(jié)點W和節(jié)點B之間的控制信息傳輸線206。從節(jié)點B到節(jié)點X的數(shù)據(jù)傳輸線550以及從節(jié)點W到節(jié)點X的數(shù)據(jù)傳輸線208使得節(jié)點W和節(jié)點B可以直接向節(jié)點X發(fā)送數(shù)據(jù)。節(jié)點W在向節(jié)點X發(fā)送數(shù)據(jù)時對節(jié)點B具有優(yōu)先權(quán)。從節(jié)點W直接到節(jié)點B的控制信號強(qiáng)迫執(zhí)行優(yōu)先權(quán)。在一些互連結(jié)構(gòu)中,該路線的唯一目的就是傳送控制信號。
圖21B的子電路示出了都可以向節(jié)點X發(fā)送數(shù)據(jù)的節(jié)點W和B。與節(jié)點B相關(guān)的邏輯使用涉及消息通過節(jié)點W路由的信息,以便通過節(jié)點B將消息路由到節(jié)點X。該信息通過節(jié)點W和B之間的控制信息傳輸線。該控制信息傳輸線僅用于從節(jié)點W向節(jié)點B發(fā)送數(shù)據(jù)。節(jié)點W可以直接向節(jié)點X發(fā)送數(shù)據(jù)。節(jié)點B通過線路205上的節(jié)點W間接向節(jié)點X發(fā)送數(shù)據(jù)。盡管節(jié)點B可以通過節(jié)點X發(fā)送數(shù)據(jù),但節(jié)點B不能直接向節(jié)點X發(fā)送數(shù)據(jù),因此節(jié)點W不能改變來自節(jié)點B的數(shù)據(jù)通過節(jié)點W的路線。該設(shè)計優(yōu)選使用從節(jié)點W到節(jié)點X的數(shù)據(jù)傳輸線208,以便傳輸從節(jié)點W發(fā)送到節(jié)點X的消息,也傳輸從節(jié)點B發(fā)送到節(jié)點X的消息。
圖22A是包括2單元節(jié)點的8行、3列互連結(jié)構(gòu)的示例框圖,其中2單元節(jié)點如圖21M所示。該互連結(jié)構(gòu)包括每列上的節(jié)點陣列108和置換塊110。節(jié)點Y包括兩個單元E和B。從頂級(第3級)開始,每個節(jié)點Y包括兩個單元,一個單元從第0、1、2和3行選擇,另一個從第4、5、6和7行選擇。在下個較低級,一個節(jié)點包括兩個這樣的單元(a)一個單元從第0行和第1行選擇,另一個從第2行和第3行選擇;或(b)一個單元從第4行和第5行選擇,另一個從第6行和第7行選擇。由于置換塊用在所有列之間,相同的布局用于給定級上的所有節(jié)點陣列中。由于第1級的每個2單元節(jié)點都連接到兩個輸出端口,因此,2單元互連不需要或不使用第0級。第1級上水平沿行移動的消息直接連接到兩個端口。或者,第1級節(jié)點檢查標(biāo)題最低有效位310,并將消息路由到目標(biāo)輸出端口。
在同一垂直路徑上的單元是相同2單元節(jié)點Y的一部分。具有優(yōu)先權(quán)的單元顯示為圓形。分別進(jìn)入第3級單元E和B的兩條消息可能競爭向南的同一路徑,也就是說,兩條消息可能將同一組作為目標(biāo),但是E的消息具有優(yōu)先權(quán)。在下一列該優(yōu)先權(quán)相反。虛線表明從單元B開始的沒有優(yōu)先權(quán)的消息移動到單元C,在此該消息獲得優(yōu)先權(quán),然后在下一列失去優(yōu)先權(quán)。同樣,點劃線表明從單元E開始的有優(yōu)先權(quán)的消息移動到單元F,在此該消息失去優(yōu)先權(quán),并優(yōu)選不與來自B的消息競爭。該圖示出了當(dāng)消息沿行移動時優(yōu)先權(quán)交替,且消息不互相阻塞(從各自的路徑中離開?)。虛線和短劃線分別示出了進(jìn)入E和B的節(jié)點Y的消息按期望不會又在下一列競爭。單元E的消息移動到單元F,單元B的消息移動到單元C,其中單元C和單元F不是同一節(jié)點。從任意輸入端口到任意輸出端口存在多條路徑。來源于同一節(jié)點的消息使用這多條路徑到達(dá)目標(biāo)。該路徑按期望互相分岔,消除了在消息之間的重復(fù)競爭,并防止互連中的熱點。
轉(zhuǎn)換序列S4(0,2,1,3,0…)定義了從第2級第0行開始水平移動的消息的高度(長度?height)。對于具有第一位的消息M,其從位于第3級第0行第0列的單元E移動到位于第3級第2行第1列的單元F,然后繼續(xù)移動到第3級。該消息的第一位從高度0到高度2,然后到高度1,等等,從而使第一位沿著高度序列(0,2,1,3,0,2,1,3,0,…)移動。注意單元E下行連接到第2級第0行第0列的單元S。單元下行連接到第2級第1行第1列的單元T。當(dāng)消息M的第一位通過交換器的頂級時繼續(xù)該過程,該消息下行連接到第2級第(0,2,1,3,0,2,1,3,…)行上的單元,如點劃線所示。此外,當(dāng)消息通過第3級時,該消息下行連接到第2級上的節(jié)點,其高度在序列(7,4,6,5,7,4,6,5,7,…)中,如虛線所示。因此,在頂級任意一列上的消息優(yōu)選連接到下一級的較高組和較低組,并實現(xiàn)置換塊的期望特性。在每個單元上,未阻塞的消息總是向下連接到由該消息標(biāo)題指定的目標(biāo)。
圖22B示出了本質(zhì)上等效于圖22A所示布局的可選布局,但是刪除了置換塊。刪除置換塊按期望減小了硅和金屬的使用量。通過沿行的特定單元設(shè)置達(dá)到了內(nèi)列轉(zhuǎn)換序列的效果。通過第3級4列移動的消息優(yōu)選向下連接到第2級的全部8列。圖13B示出了最大利用芯片空間和最小化單元到單元連接的最大距離的競爭道平面圖。
圖4A的討論已表明通過互連100移動的未阻塞消息平均每級要通過1.5個單元。消息隨機(jī)通過一個單元,并有50%的機(jī)會不具有向下到消息目標(biāo)的連接。不希望該消息必須經(jīng)常移動到下一列。為了減少消息的飛行時間,2單元節(jié)點Y按期望連接到較高組和較低組。參照圖23,2單元節(jié)點包括兩個單元E和B,它們每個都能連接到較高組和較低組。節(jié)點邏輯檢查來自西側(cè)W1和W2的輸入信號,以確定每條可能進(jìn)入的消息的方向。2單元節(jié)點包括2×2交換器2310,其可以將來自兩個輸入端口中任一個的消息路由到南側(cè)S1或S2的兩個連接中的任一個。該節(jié)點還檢查來自南側(cè)的控制信號,以確定是否可以獲得到目標(biāo)組的路徑。
當(dāng)來自西側(cè)的兩條消息競爭通過向南路徑的同一可用組時,其中一條消息具有優(yōu)先權(quán)。優(yōu)先權(quán)通常由單元相對于下一列上其它單元的位置確定。優(yōu)先權(quán)是這樣交替的,即,在一列上沒有優(yōu)先權(quán)的消息在下一列上具有優(yōu)先權(quán),如圖22所示。當(dāng)來自西側(cè)的每條消息都被指定移動到不同的組,且向南的路徑?jīng)]有被阻塞時,兩條消息都按期望向南路由。當(dāng)僅一條消息從西側(cè)到達(dá)時,該消息按期望路由到向南的未阻塞路徑。從北向東也有一個連接,允許從上面的單元訪問東側(cè)的路徑。當(dāng)從輸入端口W1使用較低組無法獲得消息時,輸入端口N1連接到輸出端口E1,當(dāng)不使用較低組時,輸入端口N2連接到輸出端口E2。當(dāng)來自西側(cè)的消息無法路由到向南的可用路徑時,該消息通過輸出端口E1或E2向東發(fā)送。只要向東的路徑正在使用,就向北發(fā)送控制信號。
圖23是圖21M所示電路的更詳細(xì)框圖。圖21F到21N的電路可以用于實施不同的優(yōu)先權(quán)模式,并優(yōu)選用于實施更復(fù)雜的內(nèi)部互連。圖21M和23的節(jié)點Y使用最小量的邏輯,并在互連結(jié)構(gòu)100中有效運行。
參照圖5B,到達(dá)單元B的消息M1可能被指定向南移動到單元F,在此該消息立即在串聯(lián)路徑522上向東移動。然而,在較低級上向東移動的當(dāng)前消息M2在使用來自單元F的共享路徑時對消息M1具有優(yōu)先權(quán)。為強(qiáng)迫執(zhí)行優(yōu)先權(quán),較低的單元及時地向北發(fā)送控制信號,從而使較高的單元可以反應(yīng),不向下發(fā)送消息。因此,來自單元F的控制信號有足夠的時間到達(dá)較高級的單元B,以便單元B對控制信號作出發(fā)應(yīng)。最后,消息M2在消息M1到達(dá)單元B之前到達(dá)單元F。在適合的電路中,消息到達(dá)給定級的時間是在到達(dá)就在北側(cè)的級之前一個時鐘周期,Tc。
消息持續(xù)通過沿行的單元和FIFO中的移位寄存器。消息M2的通信量位T302在消息M1的通信量位到達(dá)上面的單元之前一個時鐘周期到達(dá)較低的單元。單元中的兩個延遲元件作用為由時鐘驅(qū)動的2位移位寄存器,如圖24A所示。較低的單元接收定時信號2404,這使得較低的單元檢查兩位T和M,并使來自南側(cè)的控制信號確定向哪個方向發(fā)送消息M2。單一單元節(jié)點控制邏輯只檢查3位,以作出路由選擇,這在一個時鐘周期Tc內(nèi)就可以輕松完成。在該例中,內(nèi)部連接向東發(fā)送消息M2,控制信號“1”被向北發(fā)送。在較高單元接收消息的第一個兩位之前,較低的單元就生成并發(fā)送控制信號。換句話說,當(dāng)控制信號被發(fā)送到較高單元時,該較高單元只接收消息M1的通信量位。在下個時鐘周期,較高單元使所有信息可用,以便確定向何處發(fā)送消息M1。2單元節(jié)點檢查6位,以確定路由選擇,該檢查在一個時鐘周期內(nèi)就能輕松完成。
在任意給定級,不同行上的消息以并行方式向東移動。每個消息的標(biāo)題位以“垂直對準(zhǔn)”方式這樣向東移動,即,當(dāng)所有其它消息在同一節(jié)點陣列中時,每個標(biāo)題進(jìn)入一個單元。同樣,從同級節(jié)點中的單元向南下降的消息在垂直對準(zhǔn)中一起移動。
圖24B示出了在不同級同列上的消息的相對定時。在給定列,較低級上的單元在較高級上的單元之前接收消息的第一位T。第J級路由選擇信號RD[J]2404發(fā)生在第J+1級定時信號RD[J+1]2406之前一個時鐘周期Tc,對于更高級依此類推。所有給定節(jié)點陣列108中的單元都同步運行,都由同一定時信號驅(qū)動。跟蹤邊緣2430指明了消息的結(jié)尾。在每個單元中都具有延遲元件而列之間沒有FIFO的例子中,下一列的定時信號是在西側(cè)的前一列之后兩個時鐘周期Tclm2408。參照圖5A和6A,向南移動的消息從旁路經(jīng)過單元的移位寄存器,并立即連接到下一列的單元;在這種情況下,當(dāng)消息通過單元內(nèi)的門626時,存在小傳播延遲TP2426。向南移動的消息優(yōu)選避免通過移位寄存器,但可能經(jīng)歷累積的傳播延遲,該延遲與連續(xù)通過的單元數(shù)成正比。為保證向南移動時的延遲,較低級的時鐘優(yōu)選在各級延遲TP,從而使向南移動的消息按期望與其它從較低級西側(cè)移動的消息同步。圖7E示出了保證傳播延遲的可選裝置,其中在合適的列之間設(shè)置了一位的移位寄存器716。退出該移位寄存器的消息按期望同步,而無需考慮它們以前的路由。一些電路可能使用兩種技術(shù)來建立和保證消息進(jìn)入節(jié)點陣列的時間一致。
消息具有預(yù)定的最大長度Lmax。消息傳輸時間Tm2430是用于全部消息通過單元的時間,也就是Tm=Lmax·Tc。在消息完成通過單元之后很短的時間里就允許隨后的消息進(jìn)入該單元。消息傳輸時間Tm確定和時發(fā)送下個定時信號2412。在下一列的節(jié)點陣列中的單元定時由每個單元中的延遲元件確定,一般是兩個,加上可能位于一些列之間的FIFO的長度。
所有級、所有輸入和輸出控制操作的定時信號都由時鐘和控制子系統(tǒng)生成,它們向互連結(jié)構(gòu)中的所有節(jié)點陣列發(fā)送定時信號。由于單元到單元通信的局域性單元不必比相鄰列或級上的單元通信得更遠(yuǎn);同一節(jié)點陣列中的所有單元都具有相同的定時,因此定時規(guī)格被有利地簡化了。單元和FIFO中的移位寄存器形成大量的交換元件。同級上的所有單元都使用相同的時鐘。不同級上的時鐘相互之間輕微交錯,以保證向南通過單元時的傳播延遲。不同級上交錯的定時按期望滿足了片上的功率要求。相對于圖24C所示的較高級時鐘2418,第J級的時鐘2420被元件2456延遲了TP2426。按期望,該時鐘信號很容易分布出去,延遲元件DP2456可以具有雙功能,用作放大器或緩存器。在節(jié)點陣列內(nèi),使用樹以扇形散開時鐘,從而使所有節(jié)點都接收同一定時。
同一定時信號以及同一時鐘信號控制同一節(jié)點陣列中的所有單元。典型的是,兩個移位寄存器包括在單元中,從而使留在級上的消息在兩個時鐘周期之后到達(dá)下一列。頂級第一列的消息定時信號2460通過兩位移位寄存器D22450,以生成下一列(在同一級)的定時信號,對剩余列依此類推。如果FIFO包括在列之間,類似的FIFO就用作延遲元件,用于東側(cè)節(jié)點(未示出)的定時信號。為了保證向南下降的消息的傳播延遲TP,較低級的定時信號被延遲相同量2458。按期望,定時信號2460容易分布,延遲元件DP可以具有雙功能,用作放大器或緩存器。圖24C示出了優(yōu)選通過相對少量延遲元件的從第一列開始的時鐘信號傳播延遲?;ミB結(jié)構(gòu)100的大單芯片實施例優(yōu)選僅使用少量的門來控制單元和節(jié)點,以提供可按期望承擔(dān)高流量的大量列和級。
定時和控制優(yōu)選按比例逐步增加,以輕松支持大互連。由于驅(qū)動移位寄存器和FIFO的時鐘在相鄰級上出現(xiàn)偏差,因此按期望簡化了片上功率分布,并最小化功率供應(yīng)噪聲。圖24D是表示具有用于在一個節(jié)點陣列內(nèi)向所有節(jié)點相等地發(fā)布定時信號的樹狀輸出的傳統(tǒng)結(jié)構(gòu)的框圖。
當(dāng)消息通過互連流動時,節(jié)點確定是否向東或向南路由該消息。所有消息路由都在節(jié)點內(nèi)執(zhí)行。圖25是表示邏輯對單元或節(jié)點執(zhí)行的操作的流程圖。在啟動或復(fù)位時,單元的輸出終端和鎖存器被設(shè)置為全零狀態(tài),表明沒有從單元發(fā)送消息。消息一致和同步地通過一級。所有在同一級向東移動的消息的第一位都一致這樣從西向東移動,在任意行上的消息與所有其它進(jìn)入同一節(jié)點陣列的消息同時到達(dá)單元。一些單元組,或節(jié)點組,具有來自各個方向的多個輸入信號路徑。
在時刻2402,通信量位302和MSB308已進(jìn)入節(jié)點。對于每條來自西側(cè)的輸入路徑,控制邏輯都查找通信量位,以確定當(dāng)前是否存在消息。如果當(dāng)前沒有消息,則對該輸入路徑不執(zhí)行進(jìn)一步的消息處理。否則,該節(jié)點檢查一個或多個標(biāo)題位,以確定是否存在有效標(biāo)題。如果不存在有效標(biāo)題或不存在消息,則節(jié)點狀態(tài)被重設(shè)為啟動條件。由于無效消息從不被發(fā)送到較低級,因此對有效標(biāo)題的測試只需要在互連頂級執(zhí)行。對于來自西側(cè)的每條輸入路徑,邏輯根據(jù)向南的可用連接確定合適的消息方向。例如,如果標(biāo)題指明消息必須移動到較高組,且無法獲得到較高組的連接,則不向南路由該消息。或者,如果該節(jié)點連接到通向目標(biāo)的路徑,則在該消息沒有被阻塞的條件下向南路由該消息。向東發(fā)送不能向南路由的消息。當(dāng)向東發(fā)送消息時,控制信號被發(fā)送到北側(cè),以指明無法接受來自上面的消息。
對于每條具有向南連接到消息目標(biāo)的連接路徑的消息,控制邏輯通過檢查來自南側(cè)的控制信號確定該路徑是否可用。或者,當(dāng)存在超過一條通向南側(cè)的輸出路徑時,進(jìn)入節(jié)點的多條消息可能競爭通向南側(cè)的有限數(shù)量的路徑。當(dāng)目前存在比可用路徑更多的消息時,優(yōu)先權(quán)模式用于確定向南路由的消息。當(dāng)指定向南移動的消息被來自南側(cè)的控制信號或被其它在同級試圖使用同一路徑的具有更高優(yōu)先權(quán)的消息阻塞時,向東發(fā)送該消息。當(dāng)向南發(fā)送消息時,從消息中刪除標(biāo)題MSB;由此,下個最高有效位變成較低級的MSB,而總是保留通信量位。一旦確定可以向南發(fā)送該消息,控制邏輯在下個時鐘周期向南發(fā)送該通信量位,然后形成從西側(cè)到南側(cè)的連接,從而使當(dāng)前MSB丟失,下個最高有效位變成較低級的MSB。節(jié)點中的鎖存器或其它存儲元件保持節(jié)點的連接狀態(tài)直至下個消息周期。在消息結(jié)尾,節(jié)點被復(fù)位,并等待下個定時信號2402;在消息到達(dá)時刻,節(jié)點重新準(zhǔn)備好處理下個消息或下個消息組。
總之,全局定時信號用于通知節(jié)點何時檢查單元移位寄存器中的標(biāo)題位,以確定消息是否存在,如果消息存在,還要確定消息方向。當(dāng)向東發(fā)送消息時,控制信號被發(fā)送到北側(cè)的單元,從而使后者不向下發(fā)送消息。北側(cè)的控制邏輯檢查和強(qiáng)迫執(zhí)行該控制信號。如果消息被指定向南移動,則節(jié)點檢查合適的控制信號,以確定是否可以獲得路徑。如果多條消息在一個節(jié)點內(nèi)競爭向南的有限路徑,則使用優(yōu)先權(quán)模式來確定向南移動的消息。每個節(jié)點的狀態(tài)都保存在一個或多個鎖存器獲寄存器中,以控制消息路由直至消息結(jié)束信號。期望的控制邏輯和互連拓?fù)浣Y(jié)構(gòu)結(jié)果是,消息總是具有退出該單元的開放路徑,該消息不必在單元中被緩存,且按照期望,使用最小數(shù)量的控制邏輯來執(zhí)行路由選擇。
圖6A到6C示出了單一單元節(jié)點的3個連接狀態(tài)從西到南和從北到東以及從西到東。參照圖21M、23和26,2單元節(jié)點具有16個連接狀態(tài),標(biāo)記為A到P。如果存在來自西側(cè)的消息,可能被指定移動到較高組或較低組。路徑W1的4個可能狀態(tài)是(1)當(dāng)前沒有消息(空)或標(biāo)題無效;(2)當(dāng)前存在消息,但被阻塞向南移動;(3)消息通過S1連接到較高組;或(4)消息通過路徑S2連接到較低組。同樣,路徑W2也具有相同的4個條件。
圖26是2單元節(jié)點例子的16個狀態(tài)的表格,其中輸入路徑W1對輸入路徑W2具有優(yōu)先權(quán)。狀態(tài)A代表兩條輸入路徑上都沒有消息的情況,因此,來自南側(cè)N1和N2的兩條連接分別連接到路徑E1和E2。只要在路徑W1或W2上沒有消息,來自北側(cè)的各輸入信號都連接到東側(cè)。狀態(tài)B代表何時在路徑W1中沒有消息、且路徑W2中的消息被阻塞,從而導(dǎo)致路徑W2中的該消息向東發(fā)送的條件。當(dāng)向東發(fā)送消息時,總是向北發(fā)送控制信號(未示出),以阻塞來自上面的消息。狀態(tài)C代表何時在路徑W1中沒有消息、且指定路徑W2中的未阻塞消息連接到路徑S1的條件。2×2交換器2110將路徑W2連接到路徑S2。除了路徑W2連接到路徑S2之外,狀態(tài)D類似于狀態(tài)C。除了路徑W1和W2的輸入條件相反之外,狀態(tài)E、I和M類似于狀態(tài)B、C和D。狀態(tài)F具有被阻止向南移動的輸入信號。狀態(tài)L和O代表兩條消息進(jìn)入單元,并都被路由到通向南側(cè)的未阻塞路徑上的情況。狀態(tài)K和P代表何時指定兩條消息移動到通向南側(cè)的同一未阻塞路徑的條件。由于路徑W1具有優(yōu)先權(quán),路徑W1在內(nèi)部阻塞路徑W2,即在節(jié)點內(nèi),路徑W2連接到東側(cè)。在該節(jié)點的可選版本中,路徑W2對路徑W1具有優(yōu)先權(quán)。
使用2單元節(jié)點的互連結(jié)構(gòu)比單一單元版本具有更大的流量和更低的延遲。圖27是表示具有來自西側(cè)的4個輸入連接和來自北側(cè)的4個輸入連接的4單元節(jié)點的框圖;4單元節(jié)點包括4個單元A、B、C和D。該4單元節(jié)點按期望甚至比類似大小的2單元實施例提供更大的流量和更低的飛行時間,并可以認(rèn)為是該2單元互連設(shè)計的延伸。同樣,用于實施4單元節(jié)點的基于2單元節(jié)點設(shè)計的該方法可以擴(kuò)展到N單元,其中N是偶數(shù)。4乘4交換器允許從西側(cè)進(jìn)入任意單元的消息連接到通向南側(cè)較高組或較低組的任意路徑。為每組形成兩個連接。在超過兩條消息競爭同一組的情況下,“A-B-C-D-A”優(yōu)先權(quán)模式用于確定對另一行具有優(yōu)先權(quán)的行。不向南路由的消息移動到下一列,在此重新安排優(yōu)先權(quán),其優(yōu)選的結(jié)果是沒有任何行對另一行具有始終如一的優(yōu)先權(quán)。
4單元節(jié)點與基數(shù)4節(jié)點的不同點在于前者只檢查標(biāo)題位,并向下一級發(fā)送消息。后者檢查兩個標(biāo)題位,消息跳過一級,以便在一個周期中前進(jìn)兩極。
控制邏輯檢查每條來自西側(cè)的消息的通信量位和MSB,并結(jié)合來自南側(cè)的4個控制信號,以確定如何路由該消息。邏輯確定具有向南可用路徑的消息,并在多個消息競爭同一路徑時應(yīng)用優(yōu)先權(quán)。當(dāng)消息向東路由時,向北發(fā)送控制信號(未示出)。較低級上的單元E、F、G和H可以是內(nèi)部不同的節(jié)點。
圖28A和28B說明表示4單元節(jié)點互連的布局,形成該互連結(jié)構(gòu)的32行實施例。在頂級單元的第一列展開的是雙水平V模式,如圖所示。每條垂直線包含4個消息路徑和4個控制信號。當(dāng)?shù)?級第0行的消息向東沿行移動時,其遵循轉(zhuǎn)換序列S32。4單元節(jié)點包括顯示在同一垂直線上的單元,這些單元指明在每一列上連接的行。轉(zhuǎn)換序列□□-32確定南側(cè)的輸出端口如何連接到下一較低級的單元。向南的連接總是與北側(cè)的單元相同的行。例如,最左側(cè)的節(jié)點在第0、8、23和31行上具有單元。字母A、B、C和D表示第4級上的相同4行。這些連接顯示為虛線。使用轉(zhuǎn)換序列S32展開第5級第1列,在下一列同樣如此。使用所示的兩個雙水平V模式展開第0列第4級上的單元;使用轉(zhuǎn)換序列S16展開其余列。圖28B示出了下面一級,即第3級的布局。4單元內(nèi)級轉(zhuǎn)換序列2810和2814如圖28C所示。
在任意頂級行上移動的消息都有機(jī)會向南移動到下一較低級上的單元。任意兩條消息可以移動到兩個未阻塞較高組單元,并同樣移動到兩個較低組單元。進(jìn)入節(jié)點的單個消息具有到下一組的兩個可能連接,從而有利的是當(dāng)一個單元被阻塞時另一個還可用。當(dāng)多個消息競爭向南的同一路徑時應(yīng)用優(yōu)先權(quán)模式。沿著同一行向東路由不能向南移動的消息。4乘4交換器比2單元節(jié)點和前面描述的單一路徑實施例為消息提供了更多的機(jī)會來向南移動。額外的控制邏輯的優(yōu)點是,通過使路徑保持更多的消息通信量,更有效地使用了連接到南側(cè)的垂直路徑。由于消息具有超過一條通向南側(cè)的路徑,因此與2單元節(jié)點相比,總阻塞率更低而有效流量更高。
圖29A示出了前面討論的2單元節(jié)點的強(qiáng)化變形。交換器S2提供另一組向下的連接路徑,有利地增加了流量。公平優(yōu)先權(quán)模式用于增加互連容量。單元A和B在節(jié)點N1中,單元C和D在節(jié)點N2中。兩個節(jié)點都在第J+1級第i列。參照圖5C,所有單元都對角連接節(jié)點向東南發(fā)送數(shù)據(jù)到下一較低級的下一列上的單元,節(jié)點接收來自同一列中節(jié)點的控制信號。2×2交換器S3允許兩個節(jié)點N1和N2向單元M或N發(fā)送數(shù)據(jù)。單元M和N在第J級的較高組中,并可由單元A、B、C和D訪問。單元K和L在第J級的較低組中,也能由單元A、B、C和D訪問。單元A、B、C、D、E、F、G、H和I都在第i列,單元K、L、M、N在第i+1列。由序列H、A、B、C、D給定向單元K發(fā)送消息的優(yōu)先權(quán)。由序列I、C、D、A、B給定向單元L發(fā)送消息的優(yōu)先權(quán)。注意節(jié)點N1在使用單元K時對節(jié)點N2具有優(yōu)先權(quán),節(jié)點N2在使用L時對節(jié)點N1具有優(yōu)先權(quán)。由序列E、B、A、D、C給定向單元M發(fā)送消息的優(yōu)先權(quán)。由序列F、D、C、B、A給定向單元N發(fā)送消息的優(yōu)先權(quán)。
如果單元H具有向單元K發(fā)送的消息,則單元H向節(jié)點N1發(fā)送控制信號,阻止單元A和B向單元K發(fā)送消息。如果節(jié)點N1接收來自單元H的阻塞信號,或如果節(jié)點N1向單元K發(fā)送消息,則節(jié)點N1向節(jié)點N2發(fā)送阻塞信號。如果單元K沒有被阻塞,則單元A的消息將較低組定為目標(biāo),節(jié)點N1設(shè)置“條”中或垂直連接位置的交換器S1。節(jié)點N1也向交換器S2發(fā)送控制,以將交換器S2設(shè)置在“條”位置中,這導(dǎo)致從單元A到單元K的連接,如粗線所示。如果單元H和單元A都不向單元K發(fā)送消息,則單元B具有下個優(yōu)先權(quán);如果單元B被指定向單元K發(fā)送消息,則交換器S1被設(shè)置在交叉,即對角連接位置,節(jié)點N1向節(jié)點N2發(fā)送阻塞信號,并將交換器S2設(shè)置在條形位置。假設(shè)單元K被阻塞,單元A被指定向較低單元發(fā)送消息,單元L沒有被單元I、C或D中任何一個阻塞,則節(jié)點N1將交換器S1設(shè)置在交叉位置,向節(jié)點N2發(fā)送阻塞信號,并將交換器S2設(shè)置在交叉位置。同樣,單元C和D在訪問較低級的單元M和N時對單元A和B具有優(yōu)先權(quán),并能訪問較低優(yōu)先權(quán)上的單元K和L。如果單元H和I中僅一個向西發(fā)送消息到單元K或L,則單元A和B中任何一個都可以向單元K或L發(fā)送消息。在另一個例子中,單元A被指定向單元K或單元L發(fā)送消息,以避免來自單元H或單元I的消息。節(jié)點N1將交換器S2設(shè)置到通向單元K或單元L的可用連接上。優(yōu)選的,如果在較低級存在可用路徑,則較高級上4個單元中的任何一個都可以在公平優(yōu)先權(quán)模式下訪問可用路徑。
圖29B示出了2單元節(jié)點的另一種變形,其中交換器S4是來自較低級單元的消息改變方向,以有利的刪除該消息。內(nèi)節(jié)點通信線沒有示出。如果單元A或B中僅一個被指定向較低組發(fā)送消息,單元H或I中僅一個向西發(fā)送消息,則節(jié)點N3可以向下發(fā)送消息。在本例中,單元A被指定向南發(fā)送消息到單元K。單元A沒有連接到單元L。節(jié)點N3將交換器S4設(shè)置為是來自單元H或I的消息向單元L移動,按期望允許單元A向單元K發(fā)送消息。在圖29A中,節(jié)點N1將交換器S2設(shè)置為引導(dǎo)節(jié)點N1消息的方向。在圖29B中,節(jié)點N3將交換器S4設(shè)置為引導(dǎo)來自較低級上不同節(jié)點的消息??傊?jié)點N3和N4將交換器S4設(shè)置為引導(dǎo)來自單元X的消息,其中單元X在本例中是單元H或I,與節(jié)點N3和N4中的單元不同。此外,單元X在不同于節(jié)點N3或N4的級上。節(jié)點N3控制兩個交換器S5和S4。交換器S5在節(jié)點N3中引導(dǎo)來自單元A和B的消息,交換器S4控制來自不同于自身節(jié)點的消息的方向。
在圖29B中,單元A、B、C和D分別是2單元節(jié)點N3和N4的元件?;蛘撸瑔卧狝、B、C和D可以被認(rèn)為是在它們中間通信的單一單元節(jié)點其中節(jié)點N3和N4的單元A、B、C和D包括一個單一的4單元節(jié)點,其具有8個輸入端口和8個輸出端口。此外,節(jié)點可以包括或不包括位于該節(jié)點附近的交換器,控制邏輯可以在節(jié)點內(nèi),或部分在節(jié)點內(nèi)。不同于其中具有交換器的節(jié)點的單元或節(jié)點可以控制交換器,例如圖29A和29B所示的交換器S2、S3、S4。
在其中節(jié)點具有大量輸入和輸出連接的互連結(jié)構(gòu)實施例中,內(nèi)部邏輯變得非常復(fù)雜,以至于單個節(jié)點的復(fù)雜度就可以接近整個互連網(wǎng)絡(luò)的復(fù)雜度。為減小大節(jié)點的復(fù)雜度,并簡化定時和控制,每個復(fù)雜的單個節(jié)點優(yōu)選由前面描述的“小節(jié)點”互連類型代替。
圖30是表示這樣的實施例的兩個頂級的框圖,即,具有大量輸入和輸出端口的節(jié)點可以實施為使用一些這里所述的結(jié)構(gòu)。換句話說,上述大型互連結(jié)構(gòu)100是這樣形成的(1)用包含多個數(shù)據(jù)和控制路徑的總線代替各數(shù)據(jù)和控制路徑,以及(2)用較小的完整互連結(jié)構(gòu)代替各節(jié)點。由于不同程度的自相似性,產(chǎn)生的互連結(jié)構(gòu)被稱為“分形互連結(jié)構(gòu)”,節(jié)點互連成為“分形節(jié)點”。
圖30是出了兩列具有代表性的連接。分形節(jié)點FB3102包括3級和很少的列,以處理大量輸入端口和輸出端口。多個輸出路徑在同級上相互連接,并下行到下一級。進(jìn)入節(jié)點互連FB的數(shù)據(jù)被發(fā)送到下面一個可以是基數(shù)2設(shè)計的組中。當(dāng)在分形節(jié)點中使用超過兩級時,消息在向消息目標(biāo)前進(jìn)中移動更多,這等效于具有大于2的基數(shù)。
參照圖21F,兩個節(jié)點S和W可以阻止節(jié)點E和B向節(jié)點T和X發(fā)送消息。除了每個數(shù)據(jù)和控制路徑都被多路徑代替,且具有到多級的連接之外,圖30所示的結(jié)構(gòu)與圖21F所示的結(jié)構(gòu)具有相似的大規(guī)模拓?fù)浣Y(jié)構(gòu)。圖30所示的例子中,4條路徑代替了一條路徑。一些分形節(jié)點的實施例在水平方向和在對角方向具有相同的輸入和輸出連接。在另一個實施例中,級間的對角連接可以用垂直連接以圖21J所示的單元方式代替。
考慮圖30所示的分形節(jié)點的例子。節(jié)點FB包括全部互連結(jié)構(gòu)的不同級上的行。在本例中示出了3級,每級可以包括未示出的行。分形節(jié)點FB3002在第N級包括8行,在第N-1級包括4行,第N-2級包括4行,還具有多個內(nèi)部列。分形節(jié)點可以從全部16行向跨越相同3級的另一個分形節(jié)點FC3004發(fā)送數(shù)據(jù)。在所有能向節(jié)點FC發(fā)送數(shù)據(jù)的節(jié)點中,節(jié)點FB具有最高的優(yōu)先權(quán),從而決不會阻止向節(jié)點FC發(fā)送來自節(jié)點FB的消息。
節(jié)點FB的內(nèi)部結(jié)構(gòu)是較早所述的互連類型。第N級的行數(shù)大于第N-1級的行數(shù),以便在該分形節(jié)點的頂級上有足夠的空間使來自更高節(jié)點的所有消息有位置下降。多種程度的自由度允許更廣泛的設(shè)計。本領(lǐng)域的普通技術(shù)人員可以找到很多方法來修改這里描述的互連結(jié)構(gòu),以便容許較多行向較少行發(fā)送的情況。
圖21P說明用于控制多個試圖通過單個節(jié)點的消息的基本方法。第N級上的兩個節(jié)點E和B被設(shè)置為向下發(fā)送數(shù)據(jù)到第N-1級上的節(jié)點X。第N-1級上的節(jié)點W在向節(jié)點X發(fā)送消息時具有最高的優(yōu)先權(quán)。第N級的節(jié)點E在向節(jié)點X發(fā)送消息時具有第二最高的優(yōu)先權(quán)。第N級的節(jié)點B在向節(jié)點X發(fā)送消息時具有最低的優(yōu)先權(quán)。圖21P示出了從節(jié)點W到節(jié)點E的控制線,以表明消息是否已從節(jié)點W發(fā)送到節(jié)點X。從節(jié)點E到節(jié)點B的控制線表明節(jié)點E或W是否向節(jié)點X發(fā)送了消息。
參照圖30,在給定的時間步長,第N級的節(jié)點FB被設(shè)置為向第N-1級的節(jié)點3010發(fā)送消息。在下個時間步長,節(jié)點FB被設(shè)置為向第N-1級的節(jié)點3020發(fā)送消息。由于第N-1級的節(jié)點數(shù)等于第N-2級的節(jié)點數(shù),因此,這些級之間的互連模式與圖1A、1B和1C所示的相同。當(dāng)消息到達(dá)分形節(jié)點的最右側(cè)列時,該消息不會回到該節(jié)點的最左側(cè)列,而是前進(jìn)到同級或較低級上的節(jié)點。通過這種方式,以蠕蟲洞方式移動的給定消息可以分布在不同級的多個大節(jié)點中。
在自相似互連結(jié)構(gòu)中,分形節(jié)點是內(nèi)部的互連結(jié)構(gòu)。分形節(jié)點包括這里所描述的類型的節(jié)點。此外,分形節(jié)點連接在這里所述類型的結(jié)構(gòu)中。N+1表示大結(jié)構(gòu)中的級數(shù),從最低級0級到最高級N級。第N級的分形節(jié)點包括沒有固定目標(biāo)位的8行,固定一個目標(biāo)位的4行,以及固定兩個目標(biāo)位的4行。第N-1的分形節(jié)點包括固定一個目標(biāo)位的8行,固定兩個目標(biāo)位的4行,以及固定3個目標(biāo)位的4行。該模式繼續(xù)向下通過大結(jié)構(gòu)的各級。該大結(jié)構(gòu)中的定時這樣設(shè)置,即,在大于給定消息穿過小節(jié)點所需時間量的時間間隔內(nèi)發(fā)送控制信號。這種更慢的時間有利地允許控制信號通過各種設(shè)備移動更大的距離。
參照圖30,分形節(jié)點FB在第N、N-1和N-2級。從節(jié)點FB的頂部8行中退出的消息被發(fā)送到下一列中的分形節(jié)點FC。來自底部8行的消息也可以移動到節(jié)點FC,但是,此外,這些消息可以移動到較低級上連接的其它節(jié)點??紤]節(jié)點FB的16行r0、r1、…、r15。從節(jié)點FB的底部4行中退出的消息可以移動到在第N-2上連接的節(jié)點。退出節(jié)點FB的第r0行的消息可以進(jìn)入第N-2級節(jié)點FP的頂部8行中的任一個,其中進(jìn)入節(jié)點FP的所有消息都輸出標(biāo)題地址最高有效位(0,0)。退出節(jié)點FB第r1行的消息可以進(jìn)入第N-2級節(jié)點FQ的頂部8行中的任一個,其中進(jìn)入節(jié)點FQ的所有消息都指向最高有效位為(0,1)的輸出。同樣,退出節(jié)點FB第r2行的消息可以進(jìn)入第N-2級節(jié)點FR的頂部8行中的任一個,其中進(jìn)入節(jié)點FR的所有消息都指向最高有效位為(1,0)的輸出。最后,退出節(jié)點FB第r3行的消息可以進(jìn)入第N-2級節(jié)點FS的頂部8行中的任一個,其中進(jìn)入節(jié)點FS的所有消息都指向最高有效位為(1,1)的輸出。退出節(jié)點FB第r4行和第r5行的消息可以進(jìn)入第N-1級節(jié)點FT的頂部8行中的兩個,其中進(jìn)入節(jié)點FT的所有消息都指向第一位為0的輸出。退出第r6行和第r7行的消息進(jìn)入節(jié)點FX的頂部8行中的兩個,其中進(jìn)入節(jié)點FX的所有消息都指向第一位為1的輸出端口。該互連模式繼續(xù)向下通過大結(jié)構(gòu)的各級。
到達(dá)大網(wǎng)絡(luò)最右側(cè)列的消息可以重新循環(huán),已進(jìn)入最左側(cè)的列。然而,分形節(jié)點中的網(wǎng)絡(luò)具有這樣的特性,即,退出最右側(cè)列的消息繼續(xù)前進(jìn)到另一個分形節(jié)點。參照圖31A,分形節(jié)點FX3110的頂部8行被設(shè)置為接收來自同級節(jié)點FW3112以及來自更高級節(jié)點FB3002的消息。節(jié)點FW向FB發(fā)送控制信號3114,以強(qiáng)迫執(zhí)行FW在向FX發(fā)送消息時對FB具有的優(yōu)先權(quán)。
參照圖31B,分形網(wǎng)絡(luò)的一個實施例包括在分形節(jié)點的一些輸出端口的附加邏輯。來自節(jié)點FB的第r6和r7行在標(biāo)記為p0和p1的進(jìn)入點進(jìn)入節(jié)點FX的頂部8行中的兩行。與節(jié)點FX同級的節(jié)點FW可以向節(jié)點FX發(fā)送消息。來自節(jié)點FW的兩行向節(jié)點FX的進(jìn)入點p0和p1發(fā)送消息。如果在給定時刻只有一條消息從第r6和r7行退出節(jié)點FW,則節(jié)點FW的交換器3142向p0發(fā)送該消息。如果在給定時刻,只有一條消息連接到p0和p1的節(jié)點FB端口,則節(jié)點FB的交換器3140向p1發(fā)送該消息,按期望允許兩個節(jié)點都向節(jié)點FX發(fā)送消息。從節(jié)點FW到節(jié)點FB的控制信號表明向端口p0和p1發(fā)送的消息數(shù)量。節(jié)點FB的邏輯可以做出正確的選擇來從節(jié)點FB向節(jié)點FX發(fā)送最大可能數(shù)量的消息。
另一個實施例可能包括N個數(shù)據(jù)線,從節(jié)點FB下行到節(jié)點FX,以及來自節(jié)點FW的N個數(shù)據(jù)線,其中N大于2。從節(jié)點FW到節(jié)點FB的控制信號表明在節(jié)點FW可用的輸入端口數(shù)量。使用該信息,結(jié)合向節(jié)點FX的較低端口發(fā)送消息的節(jié)點FW,節(jié)點FB向節(jié)點FX的可用輸入端口發(fā)送消息,有利地向下發(fā)送了最大數(shù)量的消息。
該模式還可以通過考慮與節(jié)點FB同一級的節(jié)點FE3150進(jìn)一步推廣。節(jié)點FE從節(jié)點FB接收關(guān)于節(jié)點FE可以向節(jié)點FX發(fā)送多少消息的信息。該模式要求控制信息從節(jié)點FW到節(jié)點FB,從節(jié)點FB到節(jié)點FE,可能的話從節(jié)點FE到節(jié)點FB。
所有描述過的概括和相似模式對本領(lǐng)域普通技術(shù)人員來說都是很明顯的。本例是一個小分形節(jié)點。本領(lǐng)域普通技術(shù)人員可以應(yīng)用這些技術(shù)來構(gòu)成更大的分形節(jié)點。由于施加到分形節(jié)點間控制信號上的松弛定時要求,可以有利地構(gòu)成大型網(wǎng)絡(luò),其中每個分形節(jié)點都是芯片上的網(wǎng)絡(luò)。此外,通過擴(kuò)展該原理,本領(lǐng)域普通技術(shù)人員可以構(gòu)成特別大型的網(wǎng)絡(luò),其中每個分形節(jié)點都是大型網(wǎng)絡(luò),該網(wǎng)絡(luò)本身由芯片上的分形節(jié)點構(gòu)成。這類網(wǎng)絡(luò)的流量和效率可以有利地?zé)o限擴(kuò)大規(guī)模。對大小的唯一限制來自于由分組約束施加的技術(shù)限制。通過使用允許構(gòu)成任意大小的高性能互連的自相似或分形網(wǎng)絡(luò)打破該約束。
參照圖32,可選內(nèi)置自測試(BIST)子系統(tǒng)通過將測試消息發(fā)布到數(shù)據(jù)總線102和142中,以及通過監(jiān)測該測試消息由連接到互連結(jié)構(gòu)內(nèi)的數(shù)據(jù)和控制信號路徑和連接到數(shù)據(jù)輸出路徑148的連接3210通過該互連的過程和流程,從而測試互連結(jié)構(gòu)100的操作。由BIST子系統(tǒng)發(fā)送的控制3216繞過其中有缺陷的元件,按期望使操作得以繼續(xù)。內(nèi)置自測試和任何補(bǔ)救旁路或其它修補(bǔ)的結(jié)果可可以從外部由狀態(tài)信號3214告知。BIST子系統(tǒng)可能也產(chǎn)生關(guān)于互連結(jié)構(gòu)活動和狀態(tài)的當(dāng)前和統(tǒng)計信息,并向外提供這些信息。
圖32示出了內(nèi)置自測試(BIST)子系統(tǒng)3202的總框圖,該子系統(tǒng)在合適時刻將一條或多條消息發(fā)送到頂級,并監(jiān)測通過該互連結(jié)構(gòu)的消息進(jìn)程。發(fā)送多條競爭消息來驗證BIST操作。BIST邏輯包括生成消息的消息表和/或這樣的算法,即,當(dāng)執(zhí)行內(nèi)置自測試時通過互連結(jié)構(gòu)傳送這些消息。優(yōu)選產(chǎn)生足夠的消息,以保證每個單元都將消息發(fā)送到南側(cè)和東側(cè)。
可以在每個輸入端口設(shè)置來自BIST子系統(tǒng)的連接,在每級上設(shè)置來自所有單元各控制信號和數(shù)據(jù)路徑的連接。多條消息被這樣注入一個輸入端口,即,至少一條消息被另一條阻塞,以便有利地測試該單元的控制能力。通過在互連運行期間檢查從該單元發(fā)送的控制信號并對消息流采樣來監(jiān)測成功的阻塞。在BIST序列期間,發(fā)送多個消息組合,從而每個單元都生成和接收控制信號。
在完全覆蓋的完整內(nèi)置自測試中,互連結(jié)構(gòu)中的每個單元都向南傳送了至少一條消息,向東傳送了一條消息,并生成和接收了至少一個控制信號。產(chǎn)生外部信號以表明BIST成功或失敗程度。有利的是,可以在運行期間使進(jìn)一步的消息通信量繞過差勁的或有缺陷的單元。有缺陷單元的表格或列表存儲在BIST子系統(tǒng)中,并從消息處理中刪除有缺陷的單元。圖33示出了如何以無損于消息進(jìn)程和流程的方式從電路中刪除有缺陷的單元3302。BIST發(fā)送信號3306,以繞過沒有連接有缺陷單元的元件。
有缺陷單元可能通過向東、向南或向北發(fā)送全0、全1或隨機(jī)信號而出現(xiàn)故障,也可能無法響應(yīng)消息標(biāo)題或控制信號。在任何情況下,有缺陷單元的輸出都沒有連接到消息處理中。旁路信號與有缺陷單元的控制信號組合,從而意味著“忙”的“1”總是被傳送到上面的單元,以防止后者向有缺陷單元發(fā)送消息。同樣,向南的輸出信號被切斷,從而向南的單元不能接收消息或無效數(shù)據(jù)。來自西側(cè)的輸入信號通過延遲元件3320圍繞單元3312路由。該延遲元件是當(dāng)單元從西向東發(fā)送消息時與單元具有相同延遲的小FIFO。從互連結(jié)構(gòu)中刪除在東側(cè)和南側(cè)的輸出端口。該消息通過與從南側(cè)被阻塞的單元功能類似的旁路。該旁路的唯一效果(net effect)是在特定列上的消息沒有機(jī)會向南下降。典型的互連在內(nèi)部包括了比支持I/O端口數(shù)量所需的更多的列。因此,通過旁路移動的消息仍然具有很多機(jī)會來向南移動。有缺陷單元旁路的組合是使用圖8A所示級聯(lián)設(shè)計的另一個原因。對于在每個節(jié)點陣列中都包括至少一個旁路的互連結(jié)構(gòu),可以獲得更高的可靠性。對于每個節(jié)點都包括至少一個旁路元件的互連結(jié)構(gòu),還可以獲得其它改進(jìn)。
本例示出了一個單元的旁路。為2單元和N單元節(jié)點實施的旁路相似。所遵循的原理是,不連接?xùn)|側(cè)和南側(cè)的有缺陷輸出端口,防止北側(cè)的一個或多個有缺陷單元向南發(fā)送消息,并繞過從西到東的有缺陷路徑。BIST子系統(tǒng)和有缺陷單元旁路是可選特性。蒙特卡洛模擬示出了具有1024到65536個I/O端口、使用圖8A所示級聯(lián)設(shè)計的互連可以維持大于90%的輸入率,而沒有任何輸入阻塞。這里描述的互連結(jié)構(gòu)可伸縮的互連容量大大超過了現(xiàn)有技術(shù)的實施能力。薄片規(guī)模技術(shù)是一種獲得大型互連結(jié)構(gòu)的途徑。幾個支持大量I/O端口的例子都組合了BIST子系統(tǒng)和有缺陷單元旁路,以應(yīng)付芯片缺陷。
圖34示出了有多個互連芯片組成的大型互連系統(tǒng)的框圖,該系統(tǒng)具有至少一個互連芯片3408用作備用或保留芯片的期望特性。在本例中,每個互連僅有4個輸入端口和4個輸出端口以簡化該圖。系統(tǒng)3402包括4個互連芯片,加上1個保留芯片3408、一個外部控制3416系統(tǒng)、一個輸入多路復(fù)用器3404以及一個輸出多路解調(diào)器3412。這些組件組成一個完整系統(tǒng)的一半。該系統(tǒng)I/O端口的總數(shù)是單一芯片上端口總數(shù)的平方。例如,在該配置中,4端口互連芯片支持總數(shù)為42或16個I/O端口的系統(tǒng)。兩個一半系統(tǒng)3402前后設(shè)置,以形成完整的系統(tǒng)。
當(dāng)各互連芯片接通電源,嵌入的BIST子系統(tǒng)通知外部控制器3416操作是成功還是失敗。控制器在系統(tǒng)運行期間監(jiān)測芯片性能。在系統(tǒng)接通電源以及運行期間,可以從電路中刪除一個互連芯片,并由保留芯片3408代替。輸入多路復(fù)用器3404包括一系列將輸入的消息引導(dǎo)到兩個芯片之一的1×2交換器3406。每個芯片的輸出端口連接到選擇兩個芯片之一、并將消息和控制信號向東路由到系統(tǒng)副本3402的多路解調(diào)器3414。
圖35A是包括兩個有缺陷芯片旁路子系統(tǒng)3402的框圖,該子系統(tǒng)前后設(shè)置,以形成一個完整的16×16系統(tǒng)。在本例中,互連芯片3504已被確定有缺陷。外部控制單元3416向輸入3404和輸出3412單元發(fā)送控制信息,以便將有缺陷芯片從該數(shù)據(jù)路徑中排除出去。在本例中,本來通過第2號芯片3504的消息相反路由到第3號芯片,本來通過第3號芯片的消息現(xiàn)在通過保留芯片3408路由,等等。在兩各子系統(tǒng)之間的互連將每個輸出信號從左側(cè)子系統(tǒng)的芯片路由到右側(cè)子系統(tǒng)的4個芯片中任何一個的輸入端口。由此,進(jìn)入16個輸入中任一個的消息按期望被傳送到任一個最終輸出端口。
圖35A示出了每各子系統(tǒng)中的4個互連芯片加上一個保留芯片。在一些實施例中,每塊芯片支持的I/O端口的數(shù)量應(yīng)當(dāng)大于這里示出的4個,例如,在64到256的范圍。因此,該系統(tǒng)的容量應(yīng)當(dāng)是642到2562。很有利的是,子系統(tǒng)包括多個保留芯片。在64×64系統(tǒng)的例子中,將一組8或16塊芯片作為一塊,其中具有一個保留芯片。因此,系統(tǒng)包括4塊33個芯片,或8塊9個芯片,按期望為多芯片缺陷提供了保留容量。
圖35B示出了控制單元3404的可選實施例,其中交換器3406的功能在每塊芯片內(nèi)部實施。在本例中,對每個內(nèi)部I/O連接,每個芯片3510具有兩個I/O端口。內(nèi)部2×1輸出交換器(未示出)執(zhí)行與外部交換器3412相同的功能。本例子按期望以每塊芯片包括兩倍I/O端口的代價刪除了輸出單元3404和輸出單元3412。這種代價由整個互連系統(tǒng)的N平方大小補(bǔ)償。
沿行移動的消息阻塞一列上的消息,但不阻塞下一列。在所述結(jié)構(gòu)中,包括了盡可能多的行,以便提供大量機(jī)會使消息向南移動。由于用于實施節(jié)點的邏輯數(shù)量相對較小,由技術(shù)引起的主要限制是有限的I/O管腳數(shù)量。這產(chǎn)生了邏輯對該數(shù)量I/O端口的冗余。邏輯的相對冗余用于創(chuàng)建盡可能多的通過互連的路徑,以便大大減小消息被阻塞的可能性。
圖36A示出了互連中的頂級,其中,可選列連接到輸入端口,使I/O連接對邏輯的數(shù)量減小了1/2。兩個右側(cè)的列示出了另一個例子,其中節(jié)點陣列中的一半單元都連接到輸入端口,而下一列上沒有一個連接到輸入端口,單元對I/O的比例是4∶1。圖36B示出了2單元節(jié)點只有一個輸入端口,從而使進(jìn)入的未阻塞消息總是有機(jī)會向南移動的實施例。只有一列用于輸入連接,從而相對于輸出端口數(shù)量,更少的輸入端口包括在內(nèi),這有利地降低了互連結(jié)構(gòu)中的通信量密度,對一些應(yīng)用也支持少對多I/O比例。
參照圖7C,沿行可獲得足夠的存儲,以包含一個完整信息。對于大量的列,例如每列有兩個或多個存儲元件,可以獲得足夠的存儲,以便在單元中容納整條消息而無需使用獨立的FIFO。邏輯用于單元比用于FIFO更有效。例如,具有約40列的互連結(jié)構(gòu)可以容納80位的消息長度,從而為向南移動提供了很多機(jī)會。如果在芯片上無法獲得足夠的邏輯,則FIFO用于彌補(bǔ)該缺陷。
列總數(shù)與具有輸入互連的列之比由I/O對邏輯的量確定??捎眠壿嬘糜谏杀M可能多的節(jié)點陣列,以便消息到達(dá)目標(biāo)行,而在通過互連期間按期望經(jīng)過很少的阻塞。圖36C示出了使用2單元節(jié)點的例子,其中輸入連接僅位于一列上。所述設(shè)計的優(yōu)點是,外部輸入設(shè)備按期望由單一定時信號控制,且單元對I/O的比例很高。由于消息只能在一個位置進(jìn)入行中,因此進(jìn)入頂級的消息有很多機(jī)會向南移動。在本例中,消息通信量密度相對很低,按期望產(chǎn)生可以忽略的阻塞,并達(dá)到很低的延遲。
圖24A和24B說明了消息必須在特定時刻到達(dá)單元,以便通過互連與其它消息同步路由。圖36D示出了允許輸入設(shè)備在任意時刻發(fā)送消息的結(jié)構(gòu)。輸入控制器和多路解調(diào)器3650檢測通信量位302的到達(dá),并將到達(dá)的消息路由到合適的列3652,以便于該列上的其它消息同步。彈性的延遲元件3654用于進(jìn)行很小的定時調(diào)整,從而使所有消息同步地進(jìn)入頂級。
圖24B示出了在相鄰級上移動的消息的相對定時。單元具有有限的時間周期,一般是一個時鐘周期,用于使該單元生成控制信號并傳送到北側(cè)。定時規(guī)格也適用于外部設(shè)備。頂級節(jié)點在該單元可以接收消息的第一位之前向外部設(shè)備發(fā)送控制信號。當(dāng)I/O比例很高時,信號的離開和返回時間以及輸入設(shè)備3710的處理要求都可能大大超過該時鐘周期。
圖37示出了大大放松輸入定時限制、并允許足夠時間來生成、傳送和響應(yīng)控制信號的結(jié)構(gòu)。該設(shè)計類似于圖36C的單列或單一時鐘輸入,除了從一列3706獲取控制信號,在東側(cè)的另一列3708注入消息。單元3722的被阻塞消息M1向外部輸入設(shè)備3710發(fā)送控制信號。外部設(shè)備就在外部設(shè)備將向輸入端口214發(fā)送消息之前接收該信號。彈性的延遲元件3654可以用于進(jìn)行定時調(diào)整。控制信號輸出和消息輸入之間的時間量通過獲得沿行的單元和FIFO中移位寄存器的總位數(shù)并乘以時鐘周期來計算。例如,時鐘周期為十億分之1.2秒,F(xiàn)IFO包括80位,在單列3706和輸入列3708之間有10個單元(總共20位),則響應(yīng)時間為十億分之1.2·(80+20)=120秒。響應(yīng)時間按期望要比與輸入設(shè)備通信的電信號所需的離開和返回飛行時間加上該輸入設(shè)備的處理時間的和長。消息M1在傳送控制信號之后十億分之幾秒到達(dá)輸入端口120??赡茉O(shè)置或調(diào)整FIFO的長度,以容納外部響應(yīng)時間的需要。當(dāng)輸入單元3728被阻塞時,交換級618不接受來自北側(cè),即外部輸入設(shè)備的輸入,并按期望防止任何不期望的消息進(jìn)入互連結(jié)構(gòu)。
在單元3716的另一個被阻塞消息M2也向外部設(shè)備發(fā)送控制信號。由于在忙輸出列和消息輸入列之間存在大量列,因此消息M2可能在到達(dá)輸入列之前向南3718移動。在這種情況下,生成“錯誤”控制信號。當(dāng)互連在頂級變得擁擠時,“錯誤”控制信號有利地減小了輸入通信量,從而當(dāng)互連變得忙碌,并由此降低通過互連結(jié)構(gòu)的總通信量密度時,產(chǎn)生按期望調(diào)整外部消息通信量接收的自動機(jī)制。由于在忙輸出列和消息輸入列之間沒有輸入連接,因此缺乏控制信號總是意味著相應(yīng)的消息輸入端口可用,且沒有被阻塞。
如果忙信號輸出在直接導(dǎo)向FIFO的列中,則放松輸入定時限制,但忙信號不會出現(xiàn)錯誤。
圖38飛行時間循環(huán)圖38示出了處理外部響應(yīng)時間限制的附加技術(shù)。在本結(jié)構(gòu)中實際上是FIFO回路3840的外部信號路徑用于緩存一條或多條消息。如果該回路為空,則允許輸入設(shè)備3810將消息傳送到回路中。當(dāng)該消息到達(dá)輸入端口3838時,允許該消息在頂級單元空閑的條件下進(jìn)入該單元。如果該單元忙,則該消息通過片上FIFO3846,并試圖訪問其它列和行。如果每次嘗試時該消息都被阻塞,則該消息循環(huán)返回同一或不同的輸入設(shè)備,在此該消息將阻止該設(shè)備發(fā)送另一條消息到回路中。返回的消息按期望作用為控制信號,以通知外部輸入設(shè)備該設(shè)備不能發(fā)送消息。在返回輸入控制器3830之后,該消息被再次回發(fā)到互連中,以便再次嘗試進(jìn)入。FIFO3840和3842一起足夠容納一條或多條消息。虛線3850下的組件典型地置于芯片內(nèi)部。
盡管在此參照各種實施例對本發(fā)明進(jìn)行了描述,但應(yīng)當(dāng)理解,這些實施例只是說明性的,本發(fā)明的范圍并不僅限于此??梢詫@些實施例做出許多修改、添加和改進(jìn)。例如,本領(lǐng)域技術(shù)人員要實施必要的步驟,以提供這里公開的結(jié)構(gòu)和方法,還要理解,過程參數(shù)、材料和尺寸是以示例的方式給出,可以進(jìn)行修改,以完成所期望的結(jié)構(gòu)以及在本領(lǐng)域范圍內(nèi)的修改。這里公開的實施例變形和修改可以基于本說明書,而不背離本發(fā)明權(quán)利要求的范圍和精神。
在權(quán)利要求中,除非特別指明,“一”都是指“一個或多個”。
權(quán)利要求
1.一種互連結(jié)構(gòu),包括多個節(jié)點(202),其中,每個節(jié)點具有多個輸入端口(240)和多個輸出端口(242);與該多個節(jié)點相關(guān)的邏輯(1920);以及節(jié)點X,其包括在該多個節(jié)點中并具有一輸出端口opx;所述節(jié)點X具有一組輸入端口IPX,從而使一與節(jié)點X相關(guān)的邏輯能夠?qū)⑦M(jìn)入IPX組的一個輸入端的消息發(fā)送到輸出端口opx;該與節(jié)點X相關(guān)的邏輯是可操作的,從而使得在一消息MP到達(dá)輸入端口組IPX的輸入端口p,并且存在一從該輸出端口opx到消息MP的目標(biāo)的路徑時,則只要輸出端口opx沒有被正通過節(jié)點X的消息阻塞,一條到達(dá)輸入端口組IPX的消息就會被發(fā)送到該輸出端口opx。
2.根據(jù)權(quán)利要求1所述的互連結(jié)構(gòu),其中與所述節(jié)點X相關(guān)的所述邏輯是可操作的,從而如果輸入端口q這樣包括在所述輸入端口組IPX中,即1)該輸入端口q在向所述輸入端口組IPX發(fā)送消息時比所述節(jié)點p具有更高的優(yōu)先權(quán);以及2)消息Mq到達(dá)輸入端口q,且存在一路徑從所述輸出端口opx到消息Mq的目標(biāo),則該消息Mq將不被發(fā)送到所述輸出端口opx。
3.根據(jù)權(quán)利要求1所述的互連結(jié)構(gòu),進(jìn)一步包括一互連結(jié)構(gòu)輸出端口,可以從輸入端口組IPX的成員但不能從所述輸出端口opx到達(dá)該輸出端口。
4.根據(jù)權(quán)利要求1所述的互連結(jié)構(gòu),進(jìn)一步包括可從輸入端口組IPX中的輸入端口到達(dá)的每個輸出端口,其也都可從所述輸出端口opx到達(dá)。
5.一種互連結(jié)構(gòu),包括多個互連節(jié)點(202),包括不同的節(jié)點FW、FB和FX;裝置,用于發(fā)送多個信息通過多個節(jié)點,包括發(fā)送消息組SW通過節(jié)點FW;裝置,用于通過節(jié)點FW發(fā)送關(guān)于路由消息組SW中消息的信息I,包括通過節(jié)點FW將消息組SW中的部分消息路由到節(jié)點FX;以及裝置,其與節(jié)點FB相關(guān)聯(lián),用于使用信息I通過節(jié)點FB路由消息。
6.根據(jù)權(quán)利要求5所述的互連結(jié)構(gòu),進(jìn)一步包括裝置,用于從所述節(jié)點FW向節(jié)點FB發(fā)送控制信號C,其中包括由節(jié)點FW向節(jié)點FX發(fā)送的消息的計數(shù)。
7.一種互連結(jié)構(gòu),包括多個節(jié)點(202),包括節(jié)點X、節(jié)點組T和包括節(jié)點Y和Z的節(jié)點組S;多個連接節(jié)點的互連路徑(204,208);多個輸出端口(242),其耦合多個節(jié)點;以及邏輯(1920),控制通過節(jié)點到輸出端口的數(shù)據(jù)流,其中節(jié)點X可以向組S中的任何節(jié)點發(fā)送數(shù)據(jù);節(jié)點組T包括可以選擇地傳送數(shù)據(jù)的節(jié)點,否則這些數(shù)據(jù)將由邏輯控制通過節(jié)點X;任何可以訪問通過節(jié)點X的數(shù)據(jù)的輸出端口,其也可以訪問通過節(jié)點Y的數(shù)據(jù);多個輸出端口,包括輸出端口O,其可以訪問通過節(jié)點X的數(shù)據(jù)但不能訪問通過節(jié)點Z的數(shù)據(jù);邏輯,用于控制通過節(jié)點X的數(shù)據(jù)流,以這樣最大化通過一個組T中的節(jié)點發(fā)送的數(shù)據(jù)消息的數(shù)量,即,可從該組T中的節(jié)點訪問的輸出端口的數(shù)量比可從節(jié)點X訪問的輸出端口的數(shù)量少。
8.一種互連結(jié)構(gòu),包括多個節(jié)點(202),包括非交叉節(jié)點組FX、FY、FZ和FT;多個連接這些節(jié)點的互連路徑(204,208);多個輸出端口,與該多個節(jié)點耦合;以及邏輯(1920),控制通過節(jié)點到輸出端口的數(shù)據(jù)流,其中節(jié)點X可以向多個節(jié)點發(fā)送數(shù)據(jù),包括節(jié)點組FY和FZ中的節(jié)點;節(jié)點組FX中的節(jié)點X具有一在節(jié)點組FY中的對應(yīng)節(jié)點Y,為此可從節(jié)點X和節(jié)點Y訪問多個輸出端口的子集;節(jié)點組FX中的節(jié)點X具有一在節(jié)點組FZ中的對應(yīng)節(jié)點Z,為此可從節(jié)點X但不能從節(jié)點Z訪問多個輸出端口的一輸出端口;節(jié)點組T包括可以選擇地傳送數(shù)據(jù)的節(jié)點,否則這些數(shù)據(jù)由邏輯控制通過節(jié)點組FX中的節(jié)點;以及邏輯,控制通過節(jié)點組FX的數(shù)據(jù)流,以這樣最大化從節(jié)點組FX中的節(jié)點發(fā)送到節(jié)點組FT中的節(jié)點的數(shù)據(jù)消息的數(shù)量,即,可從節(jié)點組FT中節(jié)點訪問的輸出端口的數(shù)量比可從節(jié)點組FX中節(jié)點訪問的輸出端口數(shù)量少。
9.一種互連結(jié)構(gòu),包括多個節(jié)點(202),包括節(jié)點X、節(jié)點組T和包括節(jié)點Y和Z的節(jié)點組S;多個連接節(jié)點的互連路徑(204,208);與多個節(jié)點耦合的多個輸出端口;以及邏輯(1920),控制通過節(jié)點到輸出端口的數(shù)據(jù)流,其中節(jié)點X可以向組S中的任何節(jié)點發(fā)送數(shù)據(jù);節(jié)點組T包括可以選擇地傳送數(shù)據(jù)的節(jié)點,否則這些數(shù)據(jù)由邏輯控制通過節(jié)點X;任何可以訪問通過節(jié)點X的數(shù)據(jù)的輸出端口,其也可以訪問通過節(jié)點Y的數(shù)據(jù);多個輸出端口,包括輸出端口O,其可以訪問通過節(jié)點X的數(shù)據(jù)但不能訪問通過節(jié)點Z的數(shù)據(jù)的;以及邏輯,控制通過節(jié)點X的數(shù)據(jù)流,以這樣最大化具有通過一組T中節(jié)點發(fā)送的服務(wù)質(zhì)量位的數(shù)據(jù)消息的數(shù)量,即,可從組T中該節(jié)點訪問的輸出端口的數(shù)量比可從節(jié)點X訪問的輸出端口數(shù)量少。
10.一種互連結(jié)構(gòu),包括多個節(jié)點(202),包括非交叉節(jié)點組FX、FY、FZ和FT;多個連接節(jié)點的互連路徑(204,208);與多個節(jié)點耦合的多個輸出端口;以及邏輯(1920),控制通過節(jié)點到輸出端口的數(shù)據(jù)流,其中節(jié)點X可以向多個節(jié)點發(fā)送數(shù)據(jù),包括節(jié)點組FY和FZ中的節(jié)點;節(jié)點組FX中的節(jié)點X在節(jié)點組FY中有一對應(yīng)節(jié)點Y,為此可從節(jié)點X和節(jié)點Y訪問多個輸出端口的子集;節(jié)點組FX中的節(jié)點X在節(jié)點組FZ中有一對應(yīng)節(jié)點Z,為此可從節(jié)點X但不能從節(jié)點Z訪問多個輸出端口中的一輸出端口;節(jié)點組T包括可以選擇地傳送數(shù)據(jù)的節(jié)點,否則這些數(shù)據(jù)由邏輯控制通過節(jié)點組FX中的節(jié)點;邏輯,控制通過節(jié)點組FX的數(shù)據(jù)流,以便這樣最大化從節(jié)點組FX中節(jié)點發(fā)送到節(jié)點組FT中節(jié)點的高質(zhì)量消息的數(shù)量,即,可從節(jié)點組FT中節(jié)點訪問的輸出端口的數(shù)量比可從節(jié)點組FX中節(jié)點訪問的輸出端口數(shù)量少。
11.一種互連結(jié)構(gòu),包括多個節(jié)點(202),包括不同節(jié)點NF、NA和NE;在節(jié)點NF、NA和NE外的多個交換器(618),用于控制通過節(jié)點NF、NA和NE的消息的路由;多個連接節(jié)點的互連路徑(204,208);裝置,用于發(fā)送包括消息MF和消息MA的多個消息通過該互連結(jié)構(gòu),消息MF包括一個或多個標(biāo)題位;裝置,用于路由消息MF以進(jìn)入節(jié)點NF;裝置,用于路由消息MA以進(jìn)入節(jié)點NA;以及裝置,用于使用關(guān)于通過節(jié)點NF將消息MF路由到節(jié)點NE的信息執(zhí)行一個或多個任務(wù),包括路由消息MA通過節(jié)點NA;以及設(shè)置多個交換器中的一個或多個。
12.一種互連結(jié)構(gòu),包括多個互連節(jié)點(202),這些節(jié)點具有多個輸入端口(240)和多個輸出端口(242),該多個互連節(jié)點包括節(jié)點X和包括在節(jié)點X多個輸出端口中的輸出端口opx;節(jié)點X的輸入端口組IPX,該組IPX的每個輸入端口都可以向節(jié)點X輸出端口opx發(fā)送數(shù)據(jù);輸入端口組IPX的輸入端口,其在向輸出端口opx發(fā)送數(shù)據(jù)時具有這樣的優(yōu)先權(quán)關(guān)系,即如果輸入端口p是組IPX的成員,且消息MP到達(dá)輸入端口p,則消息MP在向輸出端口opx發(fā)送時決不會被組IPX成員的消息Mq阻塞,其中該成員在向輸出端口opx發(fā)送數(shù)據(jù)時的優(yōu)先權(quán)比輸入端口p的優(yōu)先權(quán)低。
13.根據(jù)權(quán)利要求12所述的互連結(jié)構(gòu),進(jìn)一步包括一組所述節(jié)點X的輸出端口OMP,其中,可將所述消息MP發(fā)送至該輸出端口;與所述節(jié)點X相關(guān)聯(lián)的邏輯,該邏輯將輸出端口OMP排序,從最期望發(fā)送通過消息MP的到最不期望發(fā)送通過MP的;與節(jié)點X相關(guān)聯(lián)的邏輯,向輸出端口組OMP的最期望的未被阻塞的成員發(fā)送消息MP。
14.根據(jù)權(quán)利要求13所述的互連結(jié)構(gòu),其中,所述互連結(jié)構(gòu)是多級結(jié)構(gòu),該互連結(jié)構(gòu)中的每個節(jié)點都位于從最高級L到最低級0的層次結(jié)構(gòu)上;如果輸出端口組OMP的輸出端口成員r連接到第n級上的節(jié)點nr,以及輸出端口組OMP的輸出端口成員s連接到第j級上的節(jié)點js,其中第n級在層次結(jié)構(gòu)上比第j級低,且存在一路徑從節(jié)點nr到消息MP的目標(biāo),則與節(jié)點X相關(guān)聯(lián)的邏輯將節(jié)點nr的等級設(shè)定為比節(jié)點js優(yōu)先發(fā)送通過消息MP。
15.一種互連結(jié)構(gòu),包括多個互連節(jié)點(202),這些節(jié)點具有多個輸入端口(240)和多個輸出端口(242),該多個互連節(jié)點包括節(jié)點F和節(jié)點E,節(jié)點F具有包括輸入端口ipf的輸入端口,節(jié)點E具有包括輸出端口組OPE的多個輸出端口,其中在輸出端口組OPE中的每個輸出端口都能向輸入端口ipf發(fā)送消息;輸出端口組OPE的成員在向輸入端口ipf發(fā)送數(shù)據(jù)時具有這樣的優(yōu)先權(quán)關(guān)系,即如果輸出端口p屬于輸出端口組OPE,且消息MP到達(dá)輸出端口p,則消息MP在向輸入端口ipf發(fā)送時決不會被輸出端口組OPX成員的消息Mq阻塞,其中該成員在向輸入端口ipf發(fā)送數(shù)據(jù)時的優(yōu)先權(quán)比輸出端口p的優(yōu)先權(quán)低。
16.根據(jù)權(quán)利要求15所述的互連結(jié)構(gòu),進(jìn)一步包括一組輸入端口IP,向其可以發(fā)送消息MP,該輸入端口組IP包括在多個互連節(jié)點中;以及與所述節(jié)點E相關(guān)聯(lián)的邏輯,該邏輯將輸入端口IP排序,從最期望用于發(fā)送消息MP的到最不期望用于發(fā)送消息MP的,確定輸入端口組IP的成員是否被阻塞,并向輸入端口組IP最期望的未被阻塞的成員發(fā)送消息MP。
17.根據(jù)權(quán)利要求16所述的互連結(jié)構(gòu),其中,所述互連結(jié)構(gòu)是多級結(jié)構(gòu),該互連結(jié)構(gòu)中的每個節(jié)點都位于從最高級L到最低級0的層次結(jié)構(gòu)上;如果輸入端口組IP的輸入端口成員nr在第n級上,輸入端口組IP的輸入端口成員js在第j級上,且存在一路徑從輸入端口nr至消息MP的目標(biāo),則與節(jié)點E相關(guān)聯(lián)的邏輯將輸入端口nr的等級設(shè)定為比輸入端口js優(yōu)先接收消息MP。
18.一種互連結(jié)構(gòu),包括設(shè)置為節(jié)點組的多個互連節(jié)點(202),該節(jié)點組中的節(jié)點具有多個輸入端口和多個輸出端口;該節(jié)點組的節(jié)點子集S;輸出端口子集T,其是節(jié)點子集S成員的輸出端口的子集;節(jié)點組的節(jié)點子集U;輸入端口子集V,其是節(jié)點子集U成員的輸入端口的子集;輸出端口子集W,其是節(jié)點子集S成員的輸出端口的子集,在子集W中的輸出端口由消息MP定義,以包括將該消息MP作為輸入端口子集V成員目標(biāo)的輸出端口;交換的互連子結(jié)構(gòu)X,包括接收來自輸出端口子集T的數(shù)據(jù),和向輸入端口子集V發(fā)送數(shù)據(jù)的互連;該交換的互連子結(jié)構(gòu)X的交換器設(shè)置集合,將輸出端口子集T中的選擇消息發(fā)送到輸入端口子集V中的消息目標(biāo);以及邏輯(1920),確定在每個消息發(fā)送時刻的交換器設(shè)置集合,以便從輸出端口子集T向輸入端口子集V發(fā)送最大數(shù)量的消息。
19.根據(jù)權(quán)利要求18所述的互連結(jié)構(gòu),其中在每個消息發(fā)送時刻,在輸出端口子集T的不被發(fā)送到輸入端口子集V的消息被發(fā)送到互連結(jié)構(gòu)中節(jié)點的不包括在輸入端口子集V中的輸入端口。
全文摘要
一族互連結(jié)構(gòu)和交換器,使用該互連結(jié)構(gòu)獲得可伸縮性、低延遲和單芯片實現(xiàn)。所公開的互連結(jié)構(gòu)和交換器支持廣泛的應(yīng)用,包括超級計算機(jī)互連、LAN交換器、IP和ATM交換器、電話中央局交換、視頻點播服務(wù)器、巨型機(jī)數(shù)據(jù)庫服務(wù)器互連、高速工作站互連,以及許多其它本領(lǐng)域技術(shù)人員公知的應(yīng)用。
文檔編號H04L12/56GK1488216SQ01820867
公開日2004年4月7日 申請日期2001年10月19日 優(yōu)先權(quán)日2000年10月19日
發(fā)明者約翰·赫斯, 約翰 赫斯 申請人:英特拉克蒂克控股公司