欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于并行計算和并行存儲器訪問的可伸縮互連結(jié)構(gòu)的制作方法

文檔序號:6475863閱讀:271來源:國知局
專利名稱:用于并行計算和并行存儲器訪問的可伸縮互連結(jié)構(gòu)的制作方法
背景技術(shù)
在大規(guī)模并行計算系統(tǒng)中持久存在的一個問題是為處理機提供充分的數(shù)據(jù)流。在美國專利US5996020和US 6289021中描述了高帶寬低延遲的互連結(jié)構(gòu),極大地改進了網(wǎng)絡中的數(shù)據(jù)流。所需要的是一種通過支持網(wǎng)絡中的并行存儲器訪問和計算來使這種高帶寬低延遲的互連結(jié)構(gòu)得到完全實現(xiàn)的系統(tǒng)。

發(fā)明內(nèi)容
使用若干創(chuàng)新技術(shù)可使多個處理機能夠并行訪問相同的數(shù)據(jù)。首先,若干遠程處理機可以請求從同一數(shù)據(jù)位置讀取取數(shù)據(jù),而該請求可以在重疊的時間周期中得到滿足。其次,若干處理機可以訪問位于同一位置的數(shù)據(jù)項,并可以重疊地對同一數(shù)據(jù)項進行讀取、寫或?qū)嵤┒嘀夭僮?。第三,一個數(shù)據(jù)分組可以被多點傳送到若干地方,而多個分組可以被多點傳送到多組目的地。
在以下的描述中,術(shù)語“分組”表示數(shù)據(jù)單位,優(yōu)選地以串行的形式。分組的例子包括因特網(wǎng)協(xié)議(IP)分組、以太網(wǎng)幀、ATM單元、包括一更大幀或分組的一部分的交換結(jié)構(gòu)段、超級計算機處理機間消息,以及其它具有消息長度上限的數(shù)據(jù)消息類型。
本發(fā)明的系統(tǒng)解決了當?shù)竭_一個開關(guān)的多個分組訪問同一位置的數(shù)據(jù)時通信中的相似問題。
其它多級最小邏輯網(wǎng)絡結(jié)構(gòu)在許多很有用的設備和系統(tǒng)中可被用作基本構(gòu)件,這些設備和系統(tǒng)包括各種類型和特性的邏輯設備、存儲設備,以及計算機和處理機。這些設備和系統(tǒng)的具體例子有并行隨機存取存儲器(PRAM)和并行計算引擎。這些設備和系統(tǒng)包括作為基本構(gòu)件的網(wǎng)絡互連結(jié)構(gòu)以及嵌入的存儲器或內(nèi)存和邏輯。數(shù)據(jù)存儲器可以是先進先出(FIFO)環(huán)的形式。


被認為是新穎的所描述實施方式的特征由所附權(quán)利要求具體說明。但是參考下面的描述和附圖,可以更好地理解本發(fā)明的關(guān)于結(jié)構(gòu)和操作方法的實施方式。
圖1示出了一個由構(gòu)件構(gòu)成的通用系統(tǒng)的示意性方框圖,其包括多個網(wǎng)絡互連結(jié)構(gòu)。
圖2示出了并行存儲器結(jié)構(gòu)的示意性方框圖,如以網(wǎng)絡互連結(jié)構(gòu)作為基本單元的并行隨機存取存儲器(PRAM)。
圖3示出了頂部開關(guān)的底級的示意圖,其示出了到通信環(huán)、多個邏輯模塊、循環(huán)FIFO數(shù)據(jù)存儲環(huán)的連接,以及到底部開關(guān)的頂級的連接。
圖4A、圖4B和圖4C示出了描述數(shù)據(jù)通過通信環(huán)和循環(huán)FIFO數(shù)據(jù)存儲環(huán)的示意性框圖,其中,圖4A用于READ和WRITE請求;圖4B和圖4C用于正在進行的READ請求。
圖5示出了互連結(jié)構(gòu)的一部分,當執(zhí)行兩個讀取操作時,從出現(xiàn)在重疊的時間間隔的同一循環(huán)數(shù)據(jù)存儲環(huán)讀取,并進入第二開關(guān),讀取出的數(shù)據(jù)在那里被導向不同的目標。
圖6示出了執(zhí)行WRITE操作時的互連結(jié)構(gòu)的一部分。
圖7示出了利用間接尋址實施多點傳送的結(jié)構(gòu)和技術(shù)的示意框圖。
具體實施例方式
參見圖1,其中示出了一個由構(gòu)件構(gòu)成的通用系統(tǒng)100的示意性方框圖,其包括一個或多個網(wǎng)絡互連結(jié)構(gòu)。在該例中,通用系統(tǒng)100包括由網(wǎng)絡互連結(jié)構(gòu)構(gòu)成的一頂部開關(guān)110和一底部開關(guān)112。術(shù)語“網(wǎng)絡互連結(jié)構(gòu)”也可以指其它互連結(jié)構(gòu)。其它系統(tǒng)可以包括附加的由網(wǎng)絡互連結(jié)構(gòu)構(gòu)成的部件。通用系統(tǒng)100描述了各種可以作為基本示例系統(tǒng)核心部件的組件。一些實施方式還包含除這些核心部件外的其它部件。其它部件可以包括如1)共享存儲器;2)在頂部開關(guān)和底部開關(guān)之間的直接連接130;3)底部開關(guān)和I/O之間的直接連接140,以及4)連接在邏輯單元114和底部開關(guān)112之間的集中器。
通用系統(tǒng)100有一個頂部開關(guān)110,其作用是作為輸入端經(jīng)輸入線136或總線130接收來自外部源和可能來自底部開關(guān)的輸入數(shù)據(jù)分組,并將這些分組分發(fā)到動態(tài)處理機在存儲器中(DPIMdynamic processor-in-memory)邏輯模塊114。頂部開關(guān)110根據(jù)包含在分組頭中的通信信息在通用系統(tǒng)100中為分組選擇路由。分組被從頂部開關(guān)110發(fā)送到DPIM模塊114。從DPIM模塊114到頂部開關(guān)110的控制信號控制分組注入的時序,以避免沖突。這樣就防止了否則就會出現(xiàn)的與DPIM中數(shù)據(jù)的沖突,或與底部開關(guān)中數(shù)據(jù)的沖突。系統(tǒng)還可使用輸出線和總線130、132、134以及136將信息傳送到另外的計算、通信、存儲及其它部件(未示出)。
數(shù)據(jù)分組進入頂部開關(guān)110并根據(jù)各分組中的地址字段前進到目標DPIM114。包含在分組中的信息可以(可能結(jié)合其它信息)用于確定由邏輯DPIM114對包含在分組中和DPIM存儲器中的數(shù)據(jù)所進行的操作。例如,分組中的信息可以修改存儲在DPIM存儲器中的數(shù)據(jù),導致DPIM存儲器中的信息通過底部開關(guān)112發(fā)送,或?qū)е翫PIM邏輯模塊產(chǎn)生的其它數(shù)據(jù)從底部開關(guān)退出。來自DPIM的分組被傳送到底部開關(guān)。另一種選擇是在通用系統(tǒng)100中包括計算單元、存儲器單元或兩者。計算單元126可用于通過I/O單元124向系統(tǒng)100外、或向頂部開關(guān)110,或向兩者發(fā)送數(shù)據(jù)分組。在底部開關(guān)向頂部開關(guān)發(fā)送分組的情況下,分組可以被直接發(fā)送,也可以通過一個或多個在作為系統(tǒng)100的子組件的集成電路之間處理時序和控制的互連模塊(未示出)發(fā)送。
在該系統(tǒng)的一個例子中,數(shù)據(jù)存儲器采用DPIM114中先進先出(FIFO)數(shù)據(jù)存儲環(huán)R和常規(guī)的與計算單元(CU)126相關(guān)聯(lián)的數(shù)據(jù)存儲器的形式。FIFO環(huán)是循環(huán)連接的1位移位寄存器集。FIFO環(huán)包含兩種組件。在第一個常規(guī)的例子中,F(xiàn)IFO環(huán)包括僅連接到下一個1位移位寄存器的1位移位寄存器,以形成一個簡單的FIFO310。在第二個例子中,該環(huán)的其它移位寄存器是包含在系統(tǒng)其它部件(如邏輯模塊114)中的1位或多位寄存器。綜上所述,兩種組件都串行地連接成環(huán)。例如,F(xiàn)IFO環(huán)的總長FL可以為200位,其中,64位存儲在多個邏輯模塊L中,而其余的136位存儲在FIFO的串行連接的寄存器中。一系統(tǒng)范圍內(nèi)的時鐘連接到該FIFO部件和移位寄存器,并使數(shù)據(jù)位以“桶組(bucket-brigade)”方式前進到下一位置。一個循環(huán)周期被定義為數(shù)據(jù)準確地完成FIFO環(huán)的一次循環(huán)的時鐘周期的時間。循環(huán)周期的整數(shù)值與FIFO環(huán)組件的長度相同。例如,對于具有200個組件的環(huán)(長度為200),其循環(huán)周期是200個系統(tǒng)時鐘周期。系統(tǒng)還可以包括以不同速率步進的局部時序源或時鐘。在一些實施方式中,系統(tǒng)中的所有FIFO環(huán)具有相同的長度,或區(qū)別于一個整數(shù)乘以一預定的最小長度。在另一些實施方式中,環(huán)是具有多個并行路徑的總線結(jié)構(gòu),而環(huán)中所持有的數(shù)據(jù)量為一個整數(shù)乘以環(huán)的長度FL。
在通用系統(tǒng)100中,頂部開關(guān)可以處理具有最大為系統(tǒng)最大長度的各種長度的分組。在一些應用中,所有分組的長度相同。更常見的是,將具有不同長度的分組輸入到頂部開關(guān)。一給定分組的長度為PL,其中,PL不大于FL。
類似地,底部開關(guān)也可以處理各種長度的分組。在通用系統(tǒng)100的典型實施方式中,根據(jù)DPIM邏輯模塊114和CU126的功能和操作產(chǎn)生具有不同位長度的數(shù)據(jù)。DPIM可以獨立地起作用,或者,也可以有多個系統(tǒng)(未示出),它們從DPIM收集數(shù)據(jù),并可以將數(shù)據(jù)發(fā)送給DPIM或其它包含在系統(tǒng)100之內(nèi)或之外的部件。
參照圖2,其示出了由比圖1所示系統(tǒng)更少的構(gòu)件構(gòu)成的并行隨機存取存儲器(PRAM)系統(tǒng)200的示意性方框圖。該PRAM系統(tǒng)包括由網(wǎng)絡互連結(jié)構(gòu)構(gòu)成的一個頂部開關(guān)110、一個集中器150,以及一個底部開關(guān)112。該系統(tǒng)還包括存儲數(shù)據(jù)的DPIM114。DPIM單元典型地可以實施READ和WRITE功能,因此,該系統(tǒng)可被用作并行隨機存取存儲器。
在一示出的實施方式中,進入頂部開關(guān)110的數(shù)據(jù)分組的格式為有效負載|操作碼2|地址2|操作碼1|地址1|時序BIT縮寫為PAYLOAD|OP2|AD2|OP1|AD1|BITPAYLOAD(有效負載)字段的位數(shù)被定義為PayL。OP2和OP1的位數(shù)被分別定義為OP2L和OP1L。 AD2和AD1的位數(shù)被分別定義為AD2L和AD1L。BIT字段在優(yōu)選實施方式中的長度為1位。
下表是對分組字段的簡要描述

BIT字段首先進入開關(guān),在表示有分組存在時總是被設置為“1”。BIT字段也被描述為“業(yè)務位(traffic bit)”。AD1字段被用來將分組通過頂部開關(guān)路由到分組的目標DPIM。頂部開關(guān)110可以被設置為多層級和列,分組傳遞過這些級。每當分組進入頂部開關(guān)110的一個新級,AD1字段就被去掉1位,因此,該字段被縮短了。系統(tǒng)200利用相同的技術(shù)。當分組從頂部開關(guān)退出時,在AD1字段已沒有剩余的位了。因此,離開頂部開關(guān)的分組具有如下格式PAYLOAD|OP2|AD2|OP1|BIT
系統(tǒng)100和200包括DPIM單元。圖3為說明DPIM單元114的一個例子的示意框圖,并示出了DPIM和頂部開關(guān)110以及底部開關(guān)112之間的數(shù)據(jù)和控制連接路徑。圖3示出了四個互連結(jié)構(gòu)Z、C、R、B。互連結(jié)構(gòu)Z可以是位于頂部開關(guān)110的FIFO環(huán)?;ミB結(jié)構(gòu)C和R是位于DPIM模塊的FIFO環(huán)。在一些實施方式中,DPIM直接向底部開關(guān)發(fā)送數(shù)據(jù)。在這些實施方式中,如果底部開關(guān)是互連結(jié)構(gòu),則互連結(jié)構(gòu)B是一個FIFO環(huán)。在另一些實施方式中,DPIM發(fā)送數(shù)據(jù)到集中器,然后由集中器將數(shù)據(jù)發(fā)送到底部開關(guān)。在這些實施方式中,如果集中器是互連結(jié)構(gòu),則B是環(huán)狀或非環(huán)狀的數(shù)據(jù)FIFO。圖1和圖7示出了不包括集中器的系統(tǒng)。圖2、3、4A和圖5示出了包括集中器的系統(tǒng)。
數(shù)據(jù)穿過頂部開關(guān)110,到達目標輸出環(huán)ZJ,其中,J=AD1。Z=ZJ的環(huán)具有多個連接到輸出線326的節(jié)點330。DPIM模塊包括一被稱為“數(shù)據(jù)通信環(huán)”的分組接收環(huán)C 302和一個或多個“數(shù)據(jù)存儲環(huán)”R 304。圖3示出了帶有單數(shù)據(jù)存儲環(huán)R的DPIM。每個結(jié)構(gòu)Z、C、R和B都是包括互連的1位FIFO節(jié)點的FIFO。結(jié)構(gòu)中的一些節(jié)點具有單一數(shù)據(jù)輸入端口和單一數(shù)據(jù)輸出端口,并相互連接形成簡單多節(jié)點FIFO。結(jié)構(gòu)中的其它節(jié)點還具有另外一個數(shù)據(jù)輸入端口,或另一個數(shù)據(jù)輸出端口,或兩者。這些節(jié)點還可以包括控制信號輸出端口或控制信號輸入端口。環(huán)Z接收來自環(huán)C的控制信號,并向邏輯模塊L314發(fā)送數(shù)據(jù)。環(huán)C和R接收并向邏輯模塊L314發(fā)送數(shù)據(jù)。FIFO B 380向邏輯模塊L發(fā)送控制信號,并從邏輯模塊L接收數(shù)據(jù)。DPIM可以包含多個能夠在互連結(jié)構(gòu)中或FIFO B中向多個輸入端口發(fā)送數(shù)據(jù)的邏輯模塊。來自DPIM的數(shù)據(jù)可以被注入系統(tǒng)B頂級的多個行。DPIM的個數(shù)可與存儲單元的個數(shù)相同,其中,每個DPIM具有一個包含一個數(shù)據(jù)字的單環(huán)存儲環(huán)R。作為另一種選擇,DPIM單元還可以包含多個存儲環(huán)R。一個特定的存儲環(huán)可由地址字段AD1的一部分或操作碼字段OP1的一部分來標識。
分組移動的時序在所有四個環(huán)中是同步的。當分組在環(huán)中循環(huán)時,被相對于BIT字段對齊。對齊的具有優(yōu)點的結(jié)果在于,環(huán)C向環(huán)Z發(fā)送允許或阻止環(huán)Z中的節(jié)點向環(huán)C發(fā)送分組的控制信號328。當環(huán)Z上的節(jié)點312接收到環(huán)C上的節(jié)點330的允許時,可以向邏輯模塊L發(fā)送分組,以使邏輯模塊L定位于立即以位串行的方式處理分組。類似地,在數(shù)據(jù)存儲環(huán)R中循環(huán)的分組與環(huán)C同步,以使邏輯模塊L在分組在各環(huán)中循環(huán)時,能夠有利地分別處理各位。數(shù)據(jù)存儲環(huán)R起到以下將描述的可以用于若干新應用的存儲單元的作用。位于環(huán)Z的節(jié)點和邏輯模塊L之間的分開的數(shù)據(jù)通信環(huán)(未示出)可以在DPIM和頂部開關(guān)沒有位于同一芯片上時用于芯片內(nèi)的時序和控制。
存儲環(huán)R中的數(shù)據(jù)可以多個分組的方式從頂部開關(guān)110進行訪問,與頂部開關(guān)的Z環(huán)306中的分組部分對齊和重疊,并使循環(huán)周期一致。多個邏輯模塊314與數(shù)據(jù)通信環(huán)C和數(shù)據(jù)存儲環(huán)R相關(guān)聯(lián)。邏輯模塊L能夠從環(huán)C和R中讀取數(shù)據(jù),在一些條件下對數(shù)據(jù)實施操作,并向環(huán)C和R寫數(shù)據(jù)。邏輯模塊L還能夠向底部開關(guān)112或集中器的FIFO308上的節(jié)點320發(fā)送分組。位于邏輯模塊L314和互連結(jié)構(gòu)B的節(jié)點320之間的分開的數(shù)據(jù)通信環(huán)(未示出)可以在DPIM和底部開關(guān)沒有位于同一芯片上時用于芯片內(nèi)的時序和控制。分開的數(shù)據(jù)通信環(huán)還可以在一個單一設備需要在一個單周期內(nèi)訪問通信環(huán)的若干位時,用于時序和控制操作。
分組通過邏輯模塊L314進入通信環(huán)C。分組退出邏輯模塊L,并從不同角度通過輸入通道進入底部開關(guān)。
在通用系統(tǒng)100的一些例子中,所有沿著DPIM114的環(huán)C和R的邏輯模塊都具有相同的類型,并實施類似的邏輯功能。在其它一些例子中,使用多個不同的邏輯模塊類型,允許對存儲在一特定DPIM的環(huán)R中的數(shù)據(jù)實施多種邏輯功能。在數(shù)據(jù)繞環(huán)R循環(huán)時,邏輯模塊L314可以修改數(shù)據(jù)。邏輯模塊對從環(huán)C和環(huán)R、以及環(huán)Z上的節(jié)點串行穿過該模塊的數(shù)據(jù)位進行操作。典型的邏輯功能包括(1)數(shù)據(jù)傳輸操作,如加載、存儲、讀取和寫;(2)邏輯運算,如AND(與)、OR(或)、NOR(或非)、NAND(與非)、EXCLUSIVE OR(異或)、位測試,等等;(3)算術(shù)運算,如加、減、乘、除、超越函數(shù),等等。還可以包括許多其它邏輯操作類型。邏輯模塊功能可以用硬件在邏輯模塊中實現(xiàn),也可以基于軟件由發(fā)送到邏輯模塊的分組加載到邏輯模塊中。在一些實施方式中,與特定數(shù)據(jù)存儲環(huán)R相關(guān)聯(lián)的邏輯模塊獨立地工作。在另一些實施方式中,邏輯模塊組由一個可從一組邏輯模塊接收數(shù)據(jù)的分立的系統(tǒng)(未示出)控制。在還有一些實施方式中,邏輯模塊組由一個邏輯模塊控制系統(tǒng)控制。在另一些實施方式中,邏輯模塊控制系統(tǒng)對從邏輯模塊接收的數(shù)據(jù)執(zhí)行控制指令。
在圖1和2中,每個DPIM包括一個環(huán)R和一個環(huán)C。在系統(tǒng)100的另一種實施方式中,一個特定的DPIM114包括多個環(huán)R。在多個環(huán)R的實施方式中,邏輯模塊314可以同時從環(huán)C和所有環(huán)R存取數(shù)據(jù)。同時存取允許邏輯模塊基于環(huán)R的內(nèi)容,還基于接收到的分組和相關(guān)聯(lián)的通信環(huán)C的內(nèi)容在一個或多個環(huán)R上修改數(shù)據(jù)。
邏輯模塊實施的典型功能是,執(zhí)行在字段OP1規(guī)定的操作,即結(jié)合在環(huán)R中保持的數(shù)據(jù)對保持在分組PAYLOAD字段中的數(shù)據(jù)進行操作。在一個具體的例子中,操作OP1可以規(guī)定將分組PAYLOAD字段中的數(shù)據(jù)加到位于地址AD1的環(huán)R所包含的數(shù)據(jù)上。所得的和被送到底部開關(guān)的位于地址AD2的目標端口。如在OP1操作的數(shù)據(jù)字段保持的指令所規(guī)定的,邏輯模塊可以實施若干操作。例如,邏輯模塊可以使數(shù)據(jù)不加改變地保留在環(huán)R304中。邏輯模塊可以用PAYLOAD字段的內(nèi)容替換環(huán)R304中的數(shù)據(jù)。邏輯模塊L還可以用對環(huán)R304中以前的和PAYLOAD字段中的內(nèi)容進行功能操作的結(jié)果替換PAYLOAD字段中保持的數(shù)據(jù)。在另一些例子中,存儲FIFO可以存儲程序指令以及數(shù)據(jù)。
包括多于一種類型的、與一通信環(huán)C和一存儲環(huán)R相關(guān)聯(lián)的邏輯模塊314的通用系統(tǒng)100,其可能使用OP1字段的一位或多位去指定實施操作的具體邏輯模塊。在一些實施方式中,多個邏輯模塊對同一數(shù)據(jù)實施操作。在地址AD1=x的邏輯模塊集可以與在地址AD1=y(tǒng)的邏輯模塊集實施不同的操作。
數(shù)據(jù)分組通過通用系統(tǒng)100的有效移動取決于數(shù)據(jù)流的時序。在一些系統(tǒng)中,與邏輯模塊相關(guān)聯(lián)的緩存器(未示出)有助于維持數(shù)據(jù)傳輸?shù)臅r序。在許多實施方式中,時序的維持不需要緩存數(shù)據(jù)。通用系統(tǒng)100的互連結(jié)構(gòu)優(yōu)選具有能夠?qū)е掠行Р⑿杏嬎?、產(chǎn)生和存取數(shù)據(jù)的可操作的時序。
由多個組件構(gòu)成的通用系統(tǒng)100包括至少一個開關(guān)、數(shù)據(jù)存儲環(huán)304以及相關(guān)邏輯314,該通用系統(tǒng)100可以用于構(gòu)成各種計算和通信開關(guān)。計算和通信開關(guān)的例子包括用于因特網(wǎng)交換系統(tǒng)的IP分組路由器或交換機、一專用分類引擎、通用計算機,或許多具有通用或?qū)S霉δ艿牟⑿杏嬎阆到y(tǒng)。
參見圖2,其中示出了以網(wǎng)絡互連結(jié)構(gòu)作為基本構(gòu)件的并行隨機存取存儲器(PRAM)的示意性方框圖。該PRAM存儲可從多個源同時存取、并可同時發(fā)送給多個目標的數(shù)據(jù)。該PRAM具有一頂部開關(guān)110,可以有或沒有從頂部開關(guān)110的目標環(huán)接收分組的通信環(huán)。在沒有通信環(huán)的互連結(jié)構(gòu)中,環(huán)Z穿過邏輯模塊。頂部開關(guān)110具有T個來自各目標環(huán)的輸出端口210。在一典型的PRAM系統(tǒng)200中,地址單元的數(shù)量大于系統(tǒng)I/O端口的數(shù)量。舉例來說,一PRAM系統(tǒng)可以有128個I/0端口,用于訪問存儲在DPIM中數(shù)據(jù)的64K字。AD1字段為16位長,可以容納64K的DPIM地址114。AD2字段為8位長,可以容納128個輸出端口204,其中,7位為地址位,1位為地址的BIT2部分。頂部開關(guān)110有128個輸入端口202,和64K個Z環(huán)(未示出),每個Z環(huán)通過輸出端口206多連接到DPIM單元。集中器150具有64K(65536)個輸入端口208和128個輸出端口210。底部開關(guān)112具有128個輸入端口和128個輸出端口204。集中器遵循與頂部開關(guān)和底部開關(guān)以及邏輯模塊相同的用于輸入、輸出的控制時序和信號規(guī)則。
作為另一種選擇,頂部開關(guān)可以有更少的輸出Z環(huán)以及關(guān)聯(lián)的DPIM單元。DPIM單元可以包含多個R環(huán),以使總的數(shù)據(jù)大小保持不變。
圖2中示出的PRAM包括DPIM單元114,其包含直接連接到通信環(huán)C302和存儲環(huán)R304的邏輯模塊314。DPIM單元114連接到將輸出數(shù)據(jù)饋入底部開關(guān)112的分組集中器150。
參見圖3,環(huán)C上的節(jié)點330向頂部開關(guān)環(huán)Z上的節(jié)點312發(fā)送控制信號,允許環(huán)Z上的各節(jié)點312向邏輯模塊L發(fā)送分組。當邏輯模塊L從環(huán)Z接收到分組時,邏輯模塊L可以實施幾種動作之一。首先,邏輯模塊L可以開始將分組放到C環(huán)上。其次,邏輯模塊L可以立即開始使用分組中的數(shù)據(jù)。第三,邏輯模塊L可以立即開始將所產(chǎn)生的分組發(fā)送到集中器150中,而不用將該分組放到C環(huán)上。邏輯模塊Li可以開始將分組P放到C環(huán)上。在邏輯模塊Li將若干位放到C環(huán)上之后,另一邏輯模塊Lk(其中,k>i)可以開始處理并移去這些位。在一些情況中,整個分組P從未被放在C環(huán)上。邏輯模塊可以向環(huán)C或環(huán)R插入數(shù)據(jù),或向集中器150發(fā)送數(shù)據(jù)。對進入集中器的分組的控制借助于來自集中器的線324上的控制信號。與環(huán)R304相關(guān)聯(lián)的邏輯模塊314可以包括至可與環(huán)R相關(guān)聯(lián)的輔助設備(未示出)的附加發(fā)送和接收互連。輔助設備可以依據(jù)系統(tǒng)的目的和功能具有各種結(jié)構(gòu),并實施各種功能。輔助設備的一個例子是系統(tǒng)控制器。
在一些實施方式中,PRAM200具有包含邏輯類型相同且功能相同的邏輯模塊314的DPIM。
在另一些實施方式中,在一特定地址的第一DPIMS可以具有不同類型和功能的邏輯模塊。第二DPIM T可以具有與第一DPIMS中的相同或不同類型的邏輯模塊。在一個PRAM應用的例子中,在一個單一存儲環(huán)R中存儲一個數(shù)據(jù)字。當數(shù)據(jù)在環(huán)R中循環(huán)時,該邏輯模塊可以修改數(shù)據(jù)。在PRAM中,邏輯模塊改變存儲程序指令以及數(shù)據(jù)的存儲環(huán)R中的內(nèi)容。
PRAM利用分組存儲和檢索數(shù)據(jù),該分組被定義包括以下字段PAYLOAD|OP2|AD2|OP1|AD1|BIT置為1表示有一個分組的BIT字段進入通用系統(tǒng)100。AD1字段指定具體DPIM的地址,該DPIM包括一包含所期望數(shù)據(jù)的數(shù)據(jù)存儲環(huán)R。頂部開關(guān)將分組路由到由地址AD1指定的DPIM(AD1)。在所示出的例子中,OP1字段是一個1位字段,用于指定要執(zhí)行的操作。例如,邏輯值1規(guī)定READ(讀)請求,邏輯值0規(guī)定WRITE(寫)請求。
在READ請求中,DPIM中位于AD1的接收邏輯模塊將存儲在環(huán)R的數(shù)據(jù)發(fā)送到底部開關(guān)112的地址AD2。在WRITE請求中,分組的PAYLOAD字段在地址AD1被放到R環(huán)上。AD2是僅在READ請求中用于通過底部開關(guān)112路由數(shù)據(jù)的地址指定,并規(guī)定了存儲器內(nèi)容所要發(fā)往的位置。OP2可選地描述了在地址AD2的設備將對發(fā)送到該AD2設備的數(shù)據(jù)實施的操作。如果操作OP1是一READ請求,則執(zhí)行READ操作的邏輯模塊不使用PAYLOAD字段。
在所示的實現(xiàn)中,PRAM僅包括一種類型的邏輯模塊,即執(zhí)行READ和WRITE操作的類型。在其它PRAM實現(xiàn)的例子中,使用其它類型的邏輯模塊,包括單獨的READ類型單元和單獨的WRITE類型單元。
參見圖2和3,所示出的PRAM200在合適的時刻通過將分組接收到頂部開關(guān)110中開始操作。分組P被通過頂部開關(guān)路由,并到達位于地址AD1的目標環(huán)Z。分組的AD1字段指定頂部開關(guān)的目標環(huán)ZJ306,其中J=AD1。節(jié)點S(未示出)和節(jié)點T(未示出)被定義來描述消息時序。節(jié)點S被定義為環(huán)RJ節(jié)點330,節(jié)點T被定義為環(huán)ZJ節(jié)點312,因此,節(jié)點S被定位于在控制線328上向節(jié)點T發(fā)送控制信號?;谝粋€全局時序信號,環(huán)RJ節(jié)點S330確定時序位到達時間在節(jié)點S的出現(xiàn)。如果具有值1的時序位在時序位到達時間到達節(jié)點S,則節(jié)點S在線328上向環(huán)Z上的節(jié)點T312發(fā)送阻塞信號,防止節(jié)點T沿線326向下向邏輯模塊L發(fā)送分組。如果節(jié)點S在時序位到達時間未收到具有值1的位,則沒有消息從節(jié)點C進入節(jié)點S,節(jié)點S向節(jié)點T發(fā)送非阻塞控制信號。全局時序即,控制信號到達節(jié)點T的時間與消息從Z環(huán)或從頂部開關(guān)中位于Z環(huán)上一級的節(jié)點U到達節(jié)點T的時間一致。分組從節(jié)點312在路徑326退出頂部開關(guān)110,至邏輯模塊。該邏輯模塊可以將該分組放到通信環(huán)C302上,或不將分組放到通信環(huán)C上而立即對分組進行處理。在此,分組P的格式如下PAYLOAD|OP2|AD2|OP1|BIT分組P沿線326向下從Z環(huán)傳輸?shù)竭壿嬆KL。當分組P開始向邏輯模塊L傳輸時,Z環(huán)上的節(jié)點Nz發(fā)送一控制信號,向頂部開關(guān)中較高級的節(jié)點W通知節(jié)點Nz的非阻塞情況。該控制信號授予節(jié)點W將分組路由到定位于從節(jié)點Nz接收數(shù)據(jù)的節(jié)點Nx的權(quán)利。邏輯模塊L對到達線326的分組和到達環(huán)C的分組關(guān)于時序以相同方式進行操作。分組P進入邏輯模塊L,邏輯模塊L對OP1字段的命令進行解析并加以執(zhí)行。
在所示出的實施方式中,通信環(huán)C的長度與存儲環(huán)R的長度一致。位以位串行的方式、以公共時鐘控制的速率穿過環(huán)C和R。分組PAYLOAD字段的第一位與環(huán)R的DATA字段的第一位對齊。因此,在READ請求的情況下,環(huán)R中的數(shù)據(jù)可以被拷貝到分組的有效負載區(qū)。在WRITE請求的情況下,分組的有效負載區(qū)的數(shù)據(jù)可從分組被傳輸?shù)酱鎯Νh(huán)R。
READ請求在READ請求情況下,分組P的格式為PAYLOAD|OP2|AD2|OP1|AD1|BIT
分組進入頂部開關(guān)。通常,在地址AD1的DPIM的邏輯模塊通過檢查OP1字段的操作來識別READ請求。邏輯模塊將分組的PAYLOAD字段替換為環(huán)R的DATA字段。然后,更新后的分組被通過集中器發(fā)送到底部開關(guān)中,該底部開關(guān)將分組導向在地址AD2的計算單元(CU)126或其它設備。該CU或其它設備可以結(jié)合PAYLOAD字段的數(shù)據(jù)執(zhí)行操作碼2(OP2)指定的指令。
分組P進入環(huán)Z上的節(jié)點T312,為響應進入節(jié)點T的分組P的時序位,以及來自環(huán)C節(jié)點330的非阻塞控制信號,節(jié)點T開始沿數(shù)據(jù)路徑326向下向邏輯模塊L發(fā)送分組P。當BIT和OP1字段進入邏輯模塊L之后,在線324上的控制信號也到達邏輯模塊L,表示集中器150、或在結(jié)構(gòu)中不包含集中器時為底部開關(guān)是否可以接收消息。如果該控制信號表示集中器不能接收消息,則邏輯模塊L開始向環(huán)C傳輸分組P。分組P移動到環(huán)C上的下一個邏輯模塊。
在同一點,環(huán)C上的邏輯模塊L之一接收到一個來自低層的不忙控制信號。此時,邏輯模塊L開始向互連結(jié)構(gòu)B的輸入節(jié)點320傳輸分組P。
在READ請求中,邏輯模塊從分組中剝?nèi)P1字段,并開始在路徑322上向集中器的輸入節(jié)點320發(fā)送分組。首先,邏輯模塊發(fā)送BIT字段,隨后是AD2字段,再后是OP2字段。時序是這樣設置的,以使OP2字段的最后位離開該邏輯模塊的時間和存儲環(huán)R的DATA字段的第一位到達邏輯模塊的時間相同。邏輯模塊使存儲環(huán)R中的DATA字段保持不變,將DATA的復本置于向下發(fā)送的分組的PAYLOAD字段中,并繼續(xù)以位串行的方式將分組發(fā)送到集中器中。環(huán)R中的數(shù)據(jù)保持不變。
進入和離開集中器的分組不變,并進入底部開關(guān)112,其格式為DATA|OP2|AD2|BITPAYLOAD字段現(xiàn)在包含環(huán)R的DATA字段。當分組路由經(jīng)過底部開關(guān)時,AD2字段被除去。分組退出底部開關(guān)的在地址AD2的輸出端口204。在退出時,分組的格式為DATA|OP2|BIT
OP2字段是一個代碼,可用于不同的用途。其中之一是表示底部開關(guān)輸出設備利用包含在PAYLOAD字段中的數(shù)據(jù)所實施的操作。
PRAM的互連結(jié)構(gòu)固有地具有導致有效的并行產(chǎn)生和存取數(shù)據(jù)的循環(huán)時序。例如,在不同的輸入端口202的多個外部源可對某一特定DPIM114的同一DATA字段請求READ操作。多個READ請求可以在不同節(jié)點312進入頂部開關(guān)的特定的目標環(huán)Z306,然后進入目標DPIM的不同邏輯模塊L。READ請求可以在同一循環(huán)周期中進入環(huán)C的不同邏輯模塊。通信環(huán)C320和存儲環(huán)R304,總是相對于分組在頂部開關(guān)的目標環(huán)Z以及集中器的輸入互連結(jié)構(gòu)B中的移動同步的。
對于來自環(huán)R、要被添加到前向分組的適當PAYLOAD位置的數(shù)據(jù),READ請求總是在正確的時間到達邏輯模塊。有利的結(jié)果是,對于環(huán)R中同一數(shù)據(jù)的多重請求可同時發(fā)出。同一DATA字段由多個請求訪問。來自環(huán)R的數(shù)據(jù)被發(fā)送到多個最終目標。多個READ操作可并行執(zhí)行,前向分組同時到達多個輸出端口204。通過由不同邏輯模塊從環(huán)R中的不同位置同時讀取,該多重READ請求以重疊的方式執(zhí)行。此外,其它多重READ請求在同一循環(huán)周期中,在PRAM存儲器的不同地址執(zhí)行。
由于系統(tǒng)時序,READ請求以重疊、有效以及并行的方式執(zhí)行。圖4A、4B和4C中示出了一單個READ的時序。存儲環(huán)R的長度與通信環(huán)C的長度相同。環(huán)R包含長度為PayL的循環(huán)數(shù)據(jù)414。環(huán)R的其余存儲單元包含零或“空白(blank)”,或被忽略,以及可以是任何值。BLANK字段412是未包含在DATA字段414中的位集。
參見圖4A,每個環(huán)C和R的部分都穿過一特定DPIM的邏輯模塊。一邏輯模塊包含至少構(gòu)成環(huán)C的移位寄存器集的兩位,以及至少構(gòu)成環(huán)R的移位寄存器的兩位。在一些實施方式中,DPIM314包含多個邏輯模塊314。一個邏輯模塊被定位于在一個時鐘周期中讀取通信環(huán)302的兩位。在全局信號表明的時間(未示出),邏輯模塊檢查BIT字段和OP1字段。在示出的實施方式中,邏輯模塊一起讀取出整個OP1字段和BIT字段。在其它實施方式中,OP1字段和BIT字段可在多重操作中被讀取。在READ請求中,一未阻塞的邏輯模塊314在正確的時間發(fā)送分組到集中器或底部開關(guān),以將分組與在集中器或底部開關(guān)的輸入中的其它位對齊。
在READ請求中,被阻塞的邏輯模塊將分組放到環(huán)C上,在那里分組將移動到下一邏輯模塊。該下一邏輯模塊可能被阻塞或未被阻塞。如果隨后的邏輯模塊被阻塞,則該阻塞的邏輯模塊也類似地將環(huán)C上的分組發(fā)送到下一邏輯模塊。如果該分組進入被阻塞的最右邏輯模塊LR,則最右邏輯模塊LR通過環(huán)C上的FIFO發(fā)送分組。分組在退出FIFO時,進入最左邏輯模塊。分組如此循環(huán)直至遇到一個未被阻塞的邏輯模塊。環(huán)C長度的設置要使循環(huán)的分組永遠完全地與環(huán)相適應。換言之,分組的長度PL永遠都不會大于環(huán)長度FL。
在READ操作中,分組的格式為|PAYLOAD|OP2|AD2|OP1|AD1|BIT|。
分組被插入頂部開關(guān)。地址字段AD1表示包含所期望的數(shù)據(jù)的環(huán)R304的目標地址。操作字段OP1表示READ請求。地址字段AD2是發(fā)送結(jié)果的底部開關(guān)輸出端口204的目標地址。操作碼OP2指定要由輸出設備實施的功能。
在一典型實施方式中,輸出設備與輸入設備相同。因此,一單一設備連接到PRAM的輸入端口202和輸出端口204。對于READ請求,邏輯模塊忽略PAYLOAD字段,其可有任意值。相反,在WRITE操作中,PAYLOAD字段包含要放到與在地址AD1的DPIM相關(guān)聯(lián)的環(huán)R304上的數(shù)據(jù)。離開邏輯模塊的改變后的分組的格式為|DATA|OP2|AD2|BIT|進入底部開關(guān)的數(shù)據(jù)的格式為|DATA|OP2|BIT|數(shù)據(jù)通過由地址字段AD2指定的輸出端口離開底部開關(guān),在那里DATA是環(huán)R的數(shù)據(jù)字段414。
圖4A、4B和4C示出了通信環(huán)C、數(shù)據(jù)存儲環(huán)R以及集中器B之間的時序協(xié)調(diào)。在一實施方式中,這些環(huán)在一總線結(jié)構(gòu)中包含多個并行的FIFO。邏輯模塊314可以一次讀取取多位。在本例中,邏輯模塊L在每個時鐘周期僅接收1位。集中器B包括多個可從一邏輯模塊接受分組的、FIFO3O8上的輸入節(jié)點320。邏輯模塊被定位于通過輸入端口322向集中器的頂級注入數(shù)據(jù)。
參見圖4A,BIT字段402被置為1,與數(shù)據(jù)環(huán)R上的BLANK字段的第一位B0408同時到達邏輯模塊。安排了循環(huán)數(shù)據(jù)的相對時序,從而使環(huán)R中DATA的第一位與環(huán)C中的請求分組的有效負載字段的第一位對齊(由線410示出)已在集中器B中的數(shù)據(jù)在從集中器的另一節(jié)點進入節(jié)點316時,比來自上面在路徑322上的數(shù)據(jù)進入節(jié)點316具有更高的優(yōu)先權(quán)。一全局分組到達時序信號(未示出)通知節(jié)點316分組可能進入的時間。如果已在集中器中的分組進入節(jié)點316,則節(jié)點316在路徑324上向連接到節(jié)點316的邏輯模塊發(fā)出一個阻塞信號。為響應該阻塞信號,邏輯模塊L如上所述將一READ請求分組發(fā)送到通信環(huán)C中。如果沒有從低層到達的阻塞信號,則邏輯模塊L在線322上向集中器B中節(jié)點316的下游節(jié)點320發(fā)送一個分組。
圖4A示出了在時間T=0時的READ請求,即接收到該請求的邏輯模塊處理該請求的開始時間。在這一點,邏輯模塊具有足夠的信息確定該邏輯模塊接收到一個READ請求,且該請求未被從低層阻塞。特別是,該邏輯模塊檢查BIT和OP1字段,并對三個條件加以響應在線324上接收到來自低層的不忙信號,BIT=1,以及OP1=READ請求。
當這三種條件得到滿足時,該邏輯模塊在初始化READ處理時,為下一時間節(jié)拍做好準備。在OP1=WRITE的情況下,該邏輯模塊在下一時間節(jié)拍初始化WRITE處理。
圖4B、4C示出了當沒有從節(jié)點316向邏輯模塊發(fā)送阻塞信號時的READ請求過程。
圖4B示出了在時間T=1的READ請求。環(huán)Z、C、和R中的所有數(shù)據(jù)位均向右移動一個位置。環(huán)的最右位進入一個FIFO。該FIFO向最左元素提供一位。邏輯模塊L沿線322向下向集中器的輸入端口發(fā)送BIT字段。在移位之后,C環(huán)寄存器包含分組的第二和第三位,分別為1位的OP1字段和AD2字段的第一位。該邏輯模塊還包含環(huán)R的BLANK字段的第二和第三位,即B1和B2。PRAM200的典型操作中,來自環(huán)Z的分組可能已進入所示邏輯模塊左邊的邏輯模塊(未示出)。因此分組沒有完全包含在環(huán)C中。該分組的其余部分在頂部開關(guān)110中,或者可能在進入邏輯模塊L314時,仍然留在從輸入端口經(jīng)頂部開關(guān)并從環(huán)Z中退出的蠕蟲洞過程中。為便于理解,圖4A、4B和4C示出了READ請求分組完全包含在環(huán)C中的情況。
在下一步AD2L+OP2L中,邏輯模塊L讀取AD2和OP2字段,并將它們復制到輸入端口320。在這一點,集中器已以位串行的方式接收到BIT字段、AD2字段和OP2字段。在DATA字段414的第一位到達邏輯模塊L之前,集中器以蠕蟲洞方式接收并處理該序列。當邏輯模塊L讀取環(huán)C上的AD2和OP2時,環(huán)R的BLANK字段通過該邏輯模塊L,并被忽略。邏輯模塊L定位于在環(huán)R的DATA字段的第一位到達的同時,讀取通信環(huán)C中分組的PAYLOAD區(qū)的第一位(由線410示出)。
邏輯模塊L向兩個方向發(fā)送輸出數(shù)據(jù)。首先,邏輯模塊L向環(huán)C返回一個變?yōu)榱愕姆纸M。其次,邏輯模塊L向下發(fā)送DATA字段。發(fā)送給環(huán)C的所有位都被置為零430,以使環(huán)C上隨后的邏輯模塊不會重復READ操作。換言之,當邏輯模塊L成功地處理了一個請求時,該請求分組被從通信環(huán)C中清零,這樣,有利地使同一環(huán)上的其它邏輯模塊在同一循環(huán)周期中有機會接受其它請求分組。理想地是由邏輯模塊以蠕蟲洞方式處理分組,而多個不同的請求分組可由一特定的DPIM在一個循環(huán)周期中處理。
在時間K+1,有效負載的第一位被定位于將由L替換為零,環(huán)R上的第一數(shù)據(jù)位D1被定位于將被發(fā)送到底部開關(guān)或一將數(shù)據(jù)傳輸?shù)降撞块_關(guān)的集中器。處理的繼續(xù)如圖4C所示。邏輯模塊將第二DATA位D2發(fā)送到集中器,同時從數(shù)據(jù)環(huán)R讀取第三DATA位D3。在處理的結(jié)尾,整個分組被從通信環(huán)C中移去,分組的格式為|DATA|OP2|AD2|BIT|分組被發(fā)送到集中器的輸入端口320或底部開關(guān)。DATA被從環(huán)R的DATA字段復制到集中器。在數(shù)據(jù)環(huán)R中的DATA字段414保持不變。
參見圖5,邏輯模塊L1504和L2502同時執(zhí)行READ請求。通常,不同的請求分組P1和P2被從不同的輸入端口202發(fā)送,并進入頂部開關(guān),引起在一個DPIM中以蠕蟲洞方式對多個READ請求進行處理。在所示例子中的所有請求都相對于同一由各請求分組的AD1字段所規(guī)定的PRAM地址。分組P1和P2分別到達目標DPIM中的不同邏輯模塊L1和L2。各邏輯模塊相互獨立地處理分組。在所示例子中,第一到達的READ請求P2由模塊L2502處理。模塊L2已先讀取并處理了BIT字段、OP1字段、和AD2字段的五位。模塊L2已先將BIT字段和AD2字段的四位發(fā)送到集中器的輸入節(jié)點512。類似地,模塊L1已先讀取和處理分組P1的AD2字段的兩位,并將AD2的第一位向下發(fā)送到節(jié)點514。兩個分組的AD2字段各不相同,因此,DATA字段414被發(fā)送到底部開關(guān)的兩個不同的輸出端口。對該兩個請求的處理是以重疊的方式進行的,其中,第二請求僅在第一請求后很少的時鐘周期出現(xiàn)。DPIM有T個邏輯模塊,潛在地可在同一循環(huán)周期中處理T個READ請求。作為處理READ請求的結(jié)果,邏輯模塊總是將零430放到C環(huán)上。
對請求和響應的蠕蟲洞路由選擇分別通過頂部開關(guān)和底部開關(guān)進行,允許任何輸入端口與其它輸入端口同時發(fā)送請求分組。一般地說,任何輸入端口202可以獨立于其它輸入端口同時發(fā)送的請求而向任何DPIM發(fā)送READ請求。PRAM200支持多個請求者對單一數(shù)據(jù)庫的并行、重疊地訪問,并支持對同一數(shù)據(jù)位置的多個請求。
WRITE請求在WRITE請求中,分組的AD1字段用于將分組路由經(jīng)過頂部開關(guān)。分組在進入環(huán)C的位置離開頂部開關(guān)的節(jié)點312。OP1字段指定一WRITE請求。在該WRITE請求中,沒有數(shù)據(jù)被發(fā)送到集中器。因此,邏輯模塊忽略來自集中器的控制信號。邏輯模塊發(fā)送“0”到集中器的輸入端口320,以傳達沒有分組正在發(fā)送的信息。在Z環(huán)的WRITE請求總是被允許進入在C環(huán)上遇到的第一邏輯模塊。
為使說明簡明,在環(huán)C中示出了請求分組。在更典型的應用中,該請求將經(jīng)頂部開關(guān)通過蠕蟲洞進入邏輯模塊。對于WRITE請求,邏輯模塊忽略字段OP1和PAYLOAD以外的字段的信息。
圖6示出了在時間T=K+5的WRITE請求。環(huán)C上的WRITE分組和環(huán)R中的數(shù)據(jù)同步一起旋轉(zhuǎn)通過邏輯模塊。OP2字段的最后一位在邏輯模塊與存儲環(huán)R的BLANK字段的最后一位對齊的同時由邏輯模塊丟棄。當分組的PAYLOAD字段的第一位到達邏輯模塊L時,邏輯模塊L從環(huán)C去掉該第一位,并將該第一位放在環(huán)R的DATA字段中。處理繼續(xù)進行,直至整個PAYLOAD字段被從通信環(huán)傳輸?shù)江h(huán)R的DATA字段。邏輯模塊L將分組清零,理想地是將分組從環(huán)C除去,以使其它邏輯模塊不會重復WRITE操作。
為了可視化,圖6示出了在從環(huán)C向環(huán)R移動中的分組。典型地,數(shù)據(jù)從頂部開關(guān)到達。更具體地說,數(shù)據(jù)散布在頂部開關(guān)上。
在另一實施方式中,在一個DPIM中有多個R環(huán),DPIM模塊的地址存儲在AD1字段,而DPIM模塊中一給定R環(huán)的地址被存儲為擴展的OP1字段的部分。在一個DPIM存儲模塊中有八個R環(huán)的例子中,OP1字段為四位長,其中,第一位表示READ或WRITE操作,后三位表示請求將被導向哪個R環(huán)。當每個DPIM都包含多個R環(huán)時,頂部開關(guān)的級數(shù)以及集中器的級數(shù)都被減少。
一個DPIM中包含多個R環(huán)還允許要求更多數(shù)據(jù)和模塊中的更多邏輯的更復雜的操作,以及更復雜的OP1碼。例如,一個向DPIM的請求可以是要求發(fā)送所有R環(huán)中的最大值的請求,或是要求發(fā)送R環(huán)的一個子集的值的和的請求。DPIM請求還可以是將每個包含指定子字段的字的復本發(fā)送到一計算的地址的請求,因此,允許對一定的數(shù)據(jù)類型進行有效的查詢。
在所示出的PRAM系統(tǒng)中,BLANK字段被忽略,并可具有任何值。在其它實施方式中,BLANK字段可被定義為支持各種操作。在一個例子中,BLANK字段被用于記分板功能。一個系統(tǒng)包括N個處理機,其中,處理機數(shù)N小于BL。所有N個處理機必須在允許DATA字段被覆蓋之前讀取DATA字段。當一個新的DATA值被放到存儲環(huán)R上時,BLANK字段全部被置為零。當N個處理機中的處理機W讀取數(shù)據(jù)時,則BLANK字段的位W被置為1。只有在BLANK的適當?shù)腘位子字段都被置為1的情況下,環(huán)R的DATA部分才可被覆蓋。BLANK字段被重新置為全零。
記分板功能只是BLANK字段用途的多種類型之一。本領(lǐng)域的技術(shù)人員可以在許多計算和通信應用中有效地利用BLANK字段。
在一些應用中,DPIM中的多個邏輯模塊必須能夠相互通信。這種應用的一個例子是用于異步傳輸模式(ATM)因特網(wǎng)交換機的漏桶(1eakybucket)算法。在所示出的并行存取存儲器200中,計算邏輯模塊314在接收一READ請求項時,向本地計數(shù)器(未示出)發(fā)送一個信號。在一個DPIM中沒有兩個計算邏輯模塊同時接收讀取分組的第一位,因此,公共DPIM總線(未示出)方便地用于步進連接到所有邏輯模塊的計數(shù)器。該計數(shù)器可以響應所有的計算邏輯模塊,因此,當通知“漏桶轉(zhuǎn)遍”時,所有適當?shù)倪壿嬆K都被通知到,并通過修改AD2和OP2字段產(chǎn)生至適當目標的合適回答來響應該信息。
參照圖1,在示意性方框圖中示出了以網(wǎng)絡互連結(jié)構(gòu)作為基本單元構(gòu)成的計算引擎100。該計算引擎的各種實施方式包括在關(guān)于圖1的討論中提到的通用系統(tǒng)100的核心單元。對于該計算引擎一種作為計算系統(tǒng)的實施方式,底部開關(guān)112將分組發(fā)送到包括一個或多個處理機和存儲器的計算單元126。參照圖3,與環(huán)R關(guān)聯(lián)的計算邏輯模塊執(zhí)行系統(tǒng)全部計算功能的一部分。從底部開關(guān)112接收數(shù)據(jù)的計算單元126執(zhí)行附加的邏輯運算。
邏輯模塊根據(jù)計算引擎的全部理想功能執(zhí)行常規(guī)的和新穎的處理機操作。
系統(tǒng)100的第一個例子是一可伸縮的、并行計算系統(tǒng)。在運行的一方面,該系統(tǒng)執(zhí)行并行SORT,其包括該SORT操作的并行比較子操作。邏輯模塊L從分組接受第一數(shù)據(jù)元素,并從存儲環(huán)R304接受第二數(shù)據(jù)元素。邏輯模塊將兩個數(shù)據(jù)元素中較大的放到存儲環(huán)R上,將較小的值放到PAYLOAD字段,并將該較小的值發(fā)送到由分組的AD2字段指定的地址。如果兩個這樣的邏輯模塊相串聯(lián),如圖3所示,則第二邏輯模塊可以僅在很少的時鐘周期中對來自第一邏輯模塊的數(shù)據(jù)執(zhí)行第二比較。比較和替換處理在很多排序算法中是公共單位的工作,熟知現(xiàn)有技術(shù)的人可將比較和替換處理集成到更大的、并行排序引擎中。
本領(lǐng)域的技術(shù)人員可以構(gòu)造許多有用的、有效適用于系統(tǒng)應用的廣泛范圍的邏輯模塊314。一個邏輯模塊可實施大量操作,或可以構(gòu)造不同類型的邏輯模塊,以使每個單元處理較少量的任務。在系統(tǒng)100中包括兩類處理單元,在DPIM114中的單元和在計算單元CU126中的單元。DPIM處理位串行數(shù)據(jù)移動,并實施移動大量數(shù)據(jù)的計算類型。CU包括一個或多個處理機,如通用處理機和常規(guī)RAM。CU有效地對對該CU設置為本地的數(shù)據(jù)執(zhí)行“數(shù)字倒弄(number crunching)”操作,并產(chǎn)生、傳輸和接收分組。DPIM的一個重要功能是以低延遲并行的方式向CU提供具有便于進一步處理的格式的數(shù)據(jù)。
在功能性的一個例子中,一個大區(qū)域的計算問題可被分解為一組不重疊的子區(qū)域。CU被選擇用來從各子區(qū)域接收預定類型的數(shù)據(jù),這些子區(qū)域以重要方式對CU實施的計算作出貢獻。DPIM準備數(shù)據(jù)并將結(jié)果發(fā)送到適當?shù)腃U。例如,區(qū)域可以是國際象棋棋子在可能的十移動中的位置,而每個子區(qū)域包含在給定的移動對的八移動中所有可能的位置。DPIM僅向CU返回有希望的第一移動對,其中,數(shù)據(jù)按照最有希望至最少希望排列。
在另一應用中,區(qū)域包含物體在三維空間的表示,而子區(qū)域則為空間的一種劃分。在一個具體的例子中,感興趣的情況被定義為在感興趣的物體上重力超過了一額定值。DPIM將數(shù)據(jù)從包含與感興趣的條件一致的數(shù)據(jù)的子區(qū)域轉(zhuǎn)發(fā)給CU。
圖1所示的可伸縮系統(tǒng)和利用可伸縮系統(tǒng)的核心單元的實施方式可用于超級計算機應用。在超級計算機應用中,CU并行地以方便的形式和適時的方式接收數(shù)據(jù)。CU并行地處理數(shù)據(jù),發(fā)送處理結(jié)果,并產(chǎn)生對隨后迭代(interation)的請求。
DPIM作為簿記員和任務調(diào)度器是很有用的。一個例子是,在集合H中使用多個K計算單元(CU)的任務調(diào)度器。集合H CU典型地實施并行計算中的各種任務。在任務完成時,K個CU中的N個被分配以新任務。數(shù)據(jù)存儲環(huán)R能夠存儲至少K位數(shù)據(jù),將一個長度為K的字W置為零。字W中每個位的位置都與集合H中一特定的CU相關(guān)聯(lián)。當一CU完成分配的任務時,該CU向包含環(huán)R的DPIM發(fā)送一分組M。數(shù)據(jù)存儲環(huán)R上的邏輯模塊L1通過在與發(fā)送分組M的CU相關(guān)的位位置上插入1來修改字W。數(shù)據(jù)存儲環(huán)R上的另一邏輯模塊L2跟蹤字W中1的個數(shù)。當字W中有N位時,H中N個空閑的CU開始新的任務。新任務由向N個處理機多點傳送分組開始。以下將討論一種向集合H的子集多點傳送的有效方法。
參照圖7,該示意框圖示出了利用間接尋址實施多點傳送操作的結(jié)構(gòu)和技術(shù)。向多個由相應的地址指定的目標多點傳送分組是計算和通信應用中非常有用的功能。一個單一的第一地址指向一組第二地址。這些第二地址是多點傳送分組有效負載的復本的目的地。
在一些實施方式中,互連結(jié)構(gòu)系統(tǒng)具有一輸出端口的集合C,其特性為在一定的條件下,系統(tǒng)發(fā)送預定的分組有效負載到集合C0中的所有輸出端口。每個集合C0,C1,C2,…,CJ-1是一組輸出端口,因此,對于一小于J的特定整數(shù)N,作為一次多點傳送請求的結(jié)果,集合CN中的所有端口都可接收到同一特定分組。
多點傳送互連結(jié)構(gòu)700在存儲環(huán)R704中存儲一組集合CN的輸出地址。每個環(huán)的地址容量為FMAX個地址。在所示的例子中,圖7中環(huán)R的地址容量為FMAX=5個地址。
可以使用各種開關(guān)配置和尺寸,在一示出的例子中,底部開關(guān)包括64個輸出端口。輸出端口地址可存儲在一6位二進制模式中。環(huán)R包括五個標記為F0、F1、F2、F3、F4的、包含集合CN中輸出端口位置的字段702。每個字段的長度為7位。如果CN的一個位置存儲在該字段的后6位中,則該7位字段的第一位被設為1,否則為0。
至少有兩種類型的分組到達多點傳送邏輯模塊MLM714,包括MULTICAST READ和MULTICAST WRITE分組。
第一類分組PW具有一指定MULTICAST WRITE操作的OP1字段。該WRTE分組到達通信環(huán)302且格式如下|PAYLOAD|OP1|BIT|PAYLOAD等于F0、F1、F2、F3、F4字段的連接。分組PW在適合于MLM714的位置到達通信環(huán)302,以在適當?shù)臅r間讀取F0的第一位。MLM將PAYLOAD的第一位寫到環(huán)R,其方式與上面對圖6的討論的WRITE操作類似。
圖7示出了一個連接到支持多點傳送能力的特殊硬件DPIM714的邏輯模塊。為響應WRITE請求,系統(tǒng)實施一將字段F0、F1、F2、F3、F4從環(huán)Z和C傳輸?shù)綌?shù)據(jù)存儲環(huán)R304的操作。BIT=1表示一分組。當BIT=0時,分組的其余部分總是被忽略。操作碼字段OP1跟隨BIT字段。在MULTICAST WRITE操作中,OP1表示有效負載將從分組傳輸?shù)酱鎯Νh(huán)中,替換任何當前在存儲環(huán)中的數(shù)據(jù)。數(shù)據(jù)被串行地從MLM傳輸?shù)酱鎯Νh(huán)R。
如圖所示,數(shù)據(jù)提高最右線334傳輸。數(shù)據(jù)以正確的格式在適當?shù)臅r間和位置到達存儲環(huán)704。在MULTICAST WRITE操作中,線722上的從底部開關(guān)到MLM的控制信號可以被忽略。
另一類分組PR指定MULTICAST READ請求,可以到達通信環(huán)302,其格式為|PAYLOAD|OP2|BLANK|OP1|BIT|該例中的BLANK區(qū)為6位長。BLANK字段被CN的字段之一的目標地址所取代。OP1字段也許能或不能用于特定的分組或應用。一組分組進入底部開關(guān)112,且格式如下|PAYLOAD|OP2|AD2|BIT|地址字段AD2最初來自環(huán)R字段。操作字段OP2和PAYLOAD最初來自MULTICAST READ分組。
在所示的例子中,存儲環(huán)R704位于目標地址AD1,存儲三個輸出端口地址,例如3、8和17。輸出地址3存儲在字段F0。地址3的最高有效位先出現(xiàn),然后是下一最高有效位,等等。因此,表示十進制整數(shù)3的標準六位二進制模式是000011。標題位以最高有效位至最低有效位的順序被使用。更合適的是,標題位的存儲以最高有效位在前,以使在字段F0中,表示目標輸出3的字段由六位模式110000表示。包括時序位的整個F0字段具有一七位模式1100001。類似地,字段F1以模式0001001存儲十進制數(shù)8。字段F2以模式1000101存儲十進制數(shù)17。由于沒有額外的輸出端口被編址,字段F3和F4被全部置為00000000。
線722上的控制信號表示底部開關(guān)的未阻塞狀況,允許分組在線718上進入開關(guān)。如果從底部開關(guān)至邏輯模塊714的在線722上的控制信號上的控制信號表示忙的情況,則沒有數(shù)據(jù)向下發(fā)送。當“不忙”控制信號到達MLM時,環(huán)R中的地址數(shù)據(jù)字段被適當?shù)囟ㄎ挥诋a(chǎn)生并發(fā)送響應向下到讀單元708和底部開關(guān)112。在“不忙”信號到達邏輯模塊之后的合適時間,MLM開始通過底部開關(guān)112向集合CN的地址發(fā)送多個MULTICASTREAD響應分組。
該系統(tǒng)可以向在地址AD1的DPIM發(fā)送MULTICAST READ分組,然后將該分組的PAYLOAD字段多點傳送到存儲在環(huán)R704中的集合CN中的多個地址。
典型地,該多點傳送系統(tǒng)包含能夠?qū)嵤┐罅坑嬎愫蛿?shù)據(jù)存儲任務的硬件。在所示的例子中,多點傳送能力通過使用DPIM單元700而獲得,該DPIM單元進行了特殊配置,以保持和傳輸多點傳送地址。
一個以上所述的通用多點傳送功能是一個具體的模式,其中,一個分組M被廣播到集合CN中具有指定成員地址的輸出端口的預定子集。一個表示哪些成員將被發(fā)送的位掩模稱為發(fā)送掩模。在一個例子中,地址3、8和17是集合CN的三個成員。發(fā)送掩模0,0,1,0,1表示在列表CN中的第一和第三輸出端口將接收分組。響應分組被多點傳送到輸出端口3和17。在一個例子中,控制信號表示是否所有的輸入端口都準備好接收分組,或者有一個或多個輸入端口被阻塞。
在另一個例子中,存儲未阻塞輸出端口的列表。該列表是被稱為阻塞掩模的掩模。在發(fā)送掩模第N位置的值1表示CN的第N個成員是希望被發(fā)送的。在阻塞掩模第N位置的值1表示CN的第N個成員未被阻塞,可以向其發(fā)送。對于在該兩個掩模第N位置上的值1,分組M將被發(fā)送到表中的第N個輸出端口。
對于由發(fā)送掩模指定的子集,將要多點傳送到列在CN中的輸出端口的子集的分組的格式如下|PAYLOAD|OP2|掩模|多點傳送OP|AD1|BIT|分組被插入系統(tǒng)的頂部開關(guān)。地址字段AD2未使用,因為AD2字段中的地址通常包含在存儲在AD1地址字段的數(shù)據(jù)中。
參照圖7,BIT字段和OP1碼被從環(huán)C或環(huán)Z發(fā)送到邏輯模塊714中。發(fā)送掩模和阻塞掩模同時進入邏輯模塊。PAYLOAD被發(fā)送到地址FJ,如果發(fā)送掩模和阻塞掩模的第J位都被置為1的話。該操作的其余部分將繼續(xù)以沒有掩模的多點傳送模式進行。
集合CN中的輸出端口集被表示為P0,P1,…,Pm。輸出端口被劃分為組,其中最多包含可以存儲在數(shù)據(jù)存儲環(huán)R中的CN的成員數(shù)。在數(shù)據(jù)環(huán)R有五個輸出地址以及集合CN有九個輸出端口的情況下,則前四個輸出端口存儲在組0,下四個輸出端口存儲在組1,最后四個輸出端口存儲在組3。輸出端口序列P0,P1,…,P9還可以加上索引為q00,q01,q02,q03,q10,q11,q12,q13,q20。以這種方式,可以用表示組號和地址字段下標的兩位整數(shù)完整地描述目標的物理地址。
對一些應用來說,分組的有效負載攜帶下述信息
CN的下標N表示輸出端口集中哪個端口被用于定位地址,地址所定位于的CN組,地址所屬的組的成員,以及分組將被插入的頂部開關(guān)的輸入端口。
信息項(2)和(3)表示成員q的兩個下標,從該兩下標可以容易地計算出p的索引。對于攜帶該信息的分組,PAYLOAD字段的格式為N|q的第一下標|q的第二下標|輸入端口號|圖7還示出了在多點傳送中使用間址的系統(tǒng)。一個更簡單的操作是間接尋址到一個輸出端口。在一個間接尋址的例子中,數(shù)據(jù)存儲環(huán)R包含表示該間接地址的單一字段。作為例子,在地址17的DPIM的數(shù)據(jù)存儲環(huán)R包含值153。發(fā)送到地址17的分組被轉(zhuǎn)發(fā)到底部開關(guān)的輸出端口153。
在這里描述的實施方式中,所有與給定環(huán)R相關(guān)聯(lián)的邏輯模塊向底部開關(guān)112發(fā)送數(shù)據(jù)。在一個DPIM發(fā)送突發(fā)業(yè)務,而其它DPIM單元發(fā)送較小量的業(yè)務到底部開關(guān)的情況下,每個環(huán)R向一組環(huán)B而不是向同一環(huán)發(fā)送分組。在另一個例子中,環(huán)R發(fā)送分組到向底部開關(guān)112傳送數(shù)據(jù)的集中器150。
在這里所記載的系統(tǒng)中,數(shù)據(jù)存儲環(huán)R304和通信環(huán)R302中的信息以循環(huán)連接的FIFO的形式循環(huán)。該系統(tǒng)的一種變形是環(huán)R704中的信息是靜態(tài)的。來自頂部開關(guān)110的級0環(huán)的數(shù)據(jù)可以被連接為進入靜態(tài)緩存器。靜態(tài)緩存器中的數(shù)據(jù)能以與上述循環(huán)模式邏輯等價的方式交互。靜態(tài)模型的優(yōu)點是對數(shù)據(jù)可能的更有效的存儲。
在本說明書中,數(shù)據(jù)X被發(fā)送到保持數(shù)據(jù)Y的環(huán)R。計算環(huán)C接收數(shù)據(jù)X和Y的流作為輸入信號,對數(shù)據(jù)X和Y執(zhí)行數(shù)學函數(shù)F,并將計算結(jié)果發(fā)送到目標輸出端口。目標可以存儲在環(huán)R的字段中,或存儲在分組的AD2字段。此外,目標還可以有條件地基于F(X,Y)的結(jié)果,或由另一函數(shù)G(X,Y)產(chǎn)生。
在另一種應用中,可對數(shù)據(jù)X和Y實施多種操作,該多種操作的結(jié)果可以傳送到多個目標。例如函數(shù)F(X,Y)的結(jié)果被發(fā)送到由地址AD2指定的目標。函數(shù)H(X,Y)的結(jié)果可被發(fā)送到由分組中的地址AD3指定的目標。多種操作的優(yōu)點在于允許系統(tǒng)100有效地并行實施多種變換。
除了對兩個變量X和Y執(zhí)行更復雜的算術(shù)函數(shù)外,也可執(zhí)行更簡單的任務,以使函數(shù)F僅為X或Y的函數(shù)。簡單函數(shù)F(X)或F(Y)的結(jié)果被發(fā)送到由地址AD2指定的目標,或由另一函數(shù)G(X)產(chǎn)生。
盡管參考各種實施方式對本發(fā)明進行了描述,但應理解,所說明的實施方式和本發(fā)明的范圍并不僅限于此。許多變形、修改、和對所述實施方式的改進是可能的。例如,本領(lǐng)域的技術(shù)人員可以實現(xiàn)這里公開的結(jié)構(gòu)和方法所需的步驟,并可理解,過程參數(shù)、材料、以及范圍僅為舉例給出;并可調(diào)節(jié)以實現(xiàn)所期望的功能特征,修改是在本發(fā)明的范圍內(nèi)的。對這里公開的實施方式的改變和修改在不超出按照權(quán)利要求的本發(fā)明的范圍和精神的情況下可依據(jù)說明書進行。
本領(lǐng)域的技術(shù)人員可在本發(fā)明的范圍內(nèi)進行有益的改變和修改。一些這樣的改變和修改的例子被列出,但可能擴展到其它系統(tǒng)。
在權(quán)利要求中,除非另作說明,冠詞“a”表示“一個或多于一個”。
權(quán)利要求
1.一種并行數(shù)據(jù)處理裝置,其包括互連結(jié)構(gòu)(100),其互連多個位置;一個或多個存儲單元(114),其耦合到該互連結(jié)構(gòu),并可通過該互連結(jié)構(gòu)作為位置被訪問,所述存儲單元包括在位置L的存儲單元W,該存儲單元W具有多個存儲區(qū);以及多個計算單元(126),其耦合到所述互連結(jié)構(gòu),并可作為該互連結(jié)構(gòu)上的位置被訪問,該多個計算單元可以通過該互連結(jié)構(gòu)從一個或多個存儲單元存取數(shù)據(jù),所述計算單元包括計算單元C1和計算單元C2,計算單元C1和C2可以同時從所述存儲單元W的不同存儲區(qū)讀取數(shù)據(jù),并可以將該存儲單元W的存儲區(qū)的數(shù)據(jù)內(nèi)容發(fā)送到不同的目標位置。
2.一種并行數(shù)據(jù)處理裝置,其包括互連結(jié)構(gòu)(100),其互連多個位置;一個或多個存儲單元(114),其耦合到該互連結(jié)構(gòu),并可通過該互連結(jié)構(gòu)作為位置被訪問,所述存儲單元包括分別位于位置L1和L2的存儲單元W1和W2;以及多個計算單元(126),其耦合到所述互連結(jié)構(gòu),并可作為該互連結(jié)構(gòu)上的位置被訪問,該多個計算單元可以通過該互連結(jié)構(gòu)從一個或多個存儲單元存取數(shù)據(jù),所述計算單元包括計算單元C1和計算單元C2,計算單元C1可以同時對存儲單元W1和W2的數(shù)據(jù)進行讀取和操作,計算單元C2可以與計算單元C1所進行的讀取和操作時間重疊地對存儲單元W1和W2的數(shù)據(jù)進行讀取和操作。
3.一種并行數(shù)據(jù)處理裝置,其包括互連結(jié)構(gòu)(100),其互連多個位置;一個或多個存儲單元(114),其耦合到該互連結(jié)構(gòu),并可通過該互連結(jié)構(gòu)作為位置被訪問,所述存儲單元包括一循環(huán)移位寄存器R1,該移位寄存器R1存儲一具有多個存儲區(qū)的字W1;以及多個計算單元(126),其耦合到所述互連結(jié)構(gòu),并可作為該互連結(jié)構(gòu)上的位置被訪問,該多個計算單元可以同時對字W1的分開的存儲區(qū)進行操作。
4.根據(jù)權(quán)利要求3所述的裝置,其中,所述存儲單元包括一循環(huán)移位寄存器R2(302),該移位寄存器R2存儲一具有多個存儲區(qū)的字W2;以及所述多個計算單元能夠利用所述字W1中的信息對字W2進行操作。
5.一種并行數(shù)據(jù)處理裝置,其包括互連結(jié)構(gòu)(100),用于攜載數(shù)據(jù),其包括多個分層互連的節(jié)點(330),該互連結(jié)構(gòu)包括一邏輯(114),該邏輯預見節(jié)點的數(shù)據(jù)沖突,并根據(jù)按照層次確定的優(yōu)先權(quán)解決數(shù)據(jù)沖突;第一開關(guān)(110),其耦合到該互連結(jié)構(gòu),根據(jù)包含在數(shù)據(jù)中的通信信息向該互連結(jié)構(gòu)發(fā)布數(shù)據(jù);多個邏輯模塊(114),其耦合到該互連結(jié)構(gòu),這些邏輯模塊能夠?qū)?shù)據(jù)實施操作;第二開關(guān)(112),其耦合到所述多個邏輯模塊,并從所述多個邏輯模塊接收數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的裝置,進一步包括多個互連模塊,它們耦合到所述多個邏輯模塊,并耦合到所述第一開關(guān),所述多個互連模塊可以監(jiān)測邏輯模塊中的數(shù)據(jù)流量,并控制由所述第一開關(guān)注入數(shù)據(jù)的時序,以避免數(shù)據(jù)沖突。
7.根據(jù)權(quán)利要求5所述的裝置,其中,所述第一開關(guān)具有多個輸出端口,該裝置進一步包括多個互連模塊,它們耦合到所述多個邏輯模塊,并耦合到所述第一開關(guān),該多個互連模塊分別與多個第一開關(guān)輸出端口相關(guān)聯(lián)。
8.根據(jù)權(quán)利要求5所述的裝置,其中,所述多個邏輯模塊包括利用數(shù)據(jù)中包含的信息確定由該多個邏輯模塊中的一個所實施的操作的邏輯。
9.根據(jù)權(quán)利要求5所述的裝置,其中,所述多個邏輯模塊具有多個不同的邏輯單元類型,其邏輯功能為從數(shù)據(jù)傳輸操作、邏輯運算和算術(shù)運算中選出的邏輯功能,其中,數(shù)據(jù)傳輸操作包括加載、存儲、讀取和寫;邏輯運算包括與、或、或非、與非、異與和異或、位測試;而算術(shù)運算包括加、減、乘、除和超越函數(shù)。
10.根據(jù)權(quán)利要求5所述的裝置,進一步包括多個互連模塊,其耦合到所述多個邏輯模塊,并耦合到所述第一開關(guān),該多個互連模塊能夠監(jiān)測邏輯模塊中的數(shù)據(jù)流量,其包括緩存器和集中器,用于保持和集中數(shù)據(jù),這些互連模塊還控制由所述第一開關(guān)注入數(shù)據(jù)的時序,以避免數(shù)據(jù)沖突。
11.根據(jù)權(quán)利要求5所述的裝置,其中,所述第一和第二開關(guān)、多個互連結(jié)構(gòu),以及多個邏輯模塊構(gòu)成一互連單元,所述裝置進一步包括一個或多個計算單元(126),其耦合到所述互連結(jié)構(gòu),并定位于向該互連單元外發(fā)送數(shù)據(jù),以及向所述頂部開關(guān)發(fā)送數(shù)據(jù)。
12.根據(jù)權(quán)利要求5所述的裝置,其中,所述第一和第二開關(guān)、多個互連結(jié)構(gòu),以及多個邏輯模塊構(gòu)成一互連單元,所述裝置進一步包括一個或多個存儲器單元,其耦合到所述互連結(jié)構(gòu),并定位于向該互連單元外發(fā)送數(shù)據(jù),以及向所述頂部開關(guān)發(fā)送數(shù)據(jù)。
13.根據(jù)權(quán)利要求5所述的裝置,其中,所述頂部開關(guān)和底部開關(guān)處理多種不同位長的數(shù)據(jù)。
14.根據(jù)權(quán)利要求5所述的裝置,其中,所述邏輯模塊是動態(tài)程序在存儲器中邏輯模塊。
15.根據(jù)權(quán)利要求5所述的裝置,其中,所述裝置對數(shù)據(jù)消息進行操作,該數(shù)據(jù)消息包括多個信息和數(shù)據(jù)字段,其中,包括一能攜載數(shù)據(jù)有效負載的有效負載字段、一指定保持待操作的數(shù)據(jù)的存儲單元的第一地址、一指定對保持在第一地址中的數(shù)據(jù)所執(zhí)行的操作的第一操作碼、一指定對第一地址存儲單元中的數(shù)據(jù)進行操作的可選設備的第二地址、以及指定并運行該第二地址設備以對第一地址存儲單元中的數(shù)據(jù)實施操作的第二操作碼。
16.根據(jù)權(quán)利要求5所述的裝置,其中,所述裝置對數(shù)據(jù)消息進行操作,該數(shù)據(jù)消息包括多個信息和數(shù)據(jù)字段,其中,包括一表示數(shù)據(jù)分組存在的字段、一能攜載數(shù)據(jù)有效負載的有效負載字段、一指定保持待操作的數(shù)據(jù)的存儲單元的第一地址、一指定對保持在第一地址中的數(shù)據(jù)所執(zhí)行的操作的第一操作碼、一指定對第一地址存儲單元中的數(shù)據(jù)進行操作的可選設備的第二地址、以及指定并運行該第二地址設備以對第一地址存儲單元中的數(shù)據(jù)實施操作的第二操作碼。
17.根據(jù)權(quán)利要求5所述的裝置,進一步包括一個或多個計算單元(126),其耦合到所述第二開關(guān),該第二開關(guān)可以向該一個或多個計算單元發(fā)送數(shù)據(jù)分組,所述裝置是一計算引擎。
18.根據(jù)權(quán)利要求5所述的裝置,進一步包括一個或多個存儲單元,其耦合到所述互連結(jié)構(gòu),并可通過該互連結(jié)構(gòu)作為位置被訪問,所述存儲單元具有多個存儲區(qū);以及多個計算單元(126),其耦合到所述互連結(jié)構(gòu),并可作為該互連結(jié)構(gòu)上的位置被訪問,該多個計算單元可以通過該互連結(jié)構(gòu)從一個或多個存儲單元存取數(shù)據(jù),所述計算單元包括第一計算單元和第二計算單元,該第一和第二計算單元可以同時從一存儲單元的不同存儲區(qū)讀取數(shù)據(jù),并可以將不同存儲區(qū)的數(shù)據(jù)內(nèi)容發(fā)送到不同的目標位置。
19.根據(jù)權(quán)利要求5所述的裝置,進一步包括一個或多個存儲單元(116),其耦合到所述互連結(jié)構(gòu),并可通過該互連結(jié)構(gòu)作為位置被訪問;以及多個計算單元(126),其耦合到所述互連結(jié)構(gòu),并可作為該互連結(jié)構(gòu)上的位置被訪問,該多個計算單元可以通過該互連結(jié)構(gòu)從一個或多個存儲單元存取數(shù)據(jù),所述計算單元包括第一計算單元和第二計算單元,該第一計算單元可以同時對兩個存儲單元的數(shù)據(jù)進行讀取和操作,該第二計算單元可以與第一計算單元所進行的讀取和操作時間重疊地對該兩個存儲單元的數(shù)據(jù)進行讀取和操作。
20.一種并行存取存儲器,其包括多個邏輯模塊(114),其連接到一分層互連結(jié)構(gòu),該互連結(jié)構(gòu)能夠攜載數(shù)據(jù),并能預見節(jié)點的數(shù)據(jù)沖突,并根據(jù)至少部分地按照層次確定的優(yōu)先權(quán)解決數(shù)據(jù)沖突;第一開關(guān)(110),其耦合到該互連結(jié)構(gòu),根據(jù)包含在所述數(shù)據(jù)中的通信信息向該多個邏輯模塊發(fā)布數(shù)據(jù);第二開關(guān)(112),其耦合到所述多個邏輯模塊,并從所述多個邏輯模塊接收數(shù)據(jù)。
21.根據(jù)權(quán)利要求20所述的存儲器,其中,所述多個邏輯模塊中的一個邏輯模塊包括一數(shù)據(jù)通信環(huán)(306)和一數(shù)據(jù)存儲環(huán)(304),該數(shù)據(jù)通信環(huán)和數(shù)據(jù)存儲環(huán)是循環(huán)的FIFO。
22.根據(jù)權(quán)利要求20所述的存儲器,其中,所述多個邏輯模塊中的一個邏輯模塊包括一數(shù)據(jù)通信環(huán)(302)和一數(shù)據(jù)存儲環(huán)(304),該數(shù)據(jù)通信環(huán)和數(shù)據(jù)存儲環(huán)是循環(huán)的FIFO,數(shù)據(jù)元素被保持在一單存儲器FIFO中,當數(shù)據(jù)元素繞數(shù)據(jù)存儲環(huán)移動時,該邏輯模塊可以對數(shù)據(jù)進行修改。
23.根據(jù)權(quán)利要求20所述的存儲器,其中,所述多個邏輯模塊中的一個邏輯模塊包括一數(shù)據(jù)通信環(huán)(302)和一數(shù)據(jù)存儲環(huán)(304),該數(shù)據(jù)通信環(huán)和數(shù)據(jù)存儲環(huán)是循環(huán)的FIFO,數(shù)據(jù)元素被保持在一單存儲器FIFO中,該單存儲器FIFO可以同時存儲程序指令和數(shù)據(jù)。
24.根據(jù)權(quán)利要求20所述的存儲器,其中,所述多個邏輯模塊中的一個邏輯模塊包括一數(shù)據(jù)通信環(huán)和一數(shù)據(jù)存儲環(huán),該數(shù)據(jù)通信環(huán)是耦合到該通信環(huán)的所述第一開關(guān)的底級上的環(huán)的鏡像。
25.根據(jù)權(quán)利要求20所述的存儲器,其進一步包括一數(shù)據(jù)通信環(huán);以及多個數(shù)據(jù)存儲環(huán),所述多個邏輯模塊中的一個或多個邏輯模塊與該數(shù)據(jù)通信環(huán)和數(shù)據(jù)存儲環(huán)相關(guān)聯(lián)。
26.根據(jù)權(quán)利要求20所述的存儲器,其進一步包括一數(shù)據(jù)通信環(huán);以及多個數(shù)據(jù)存儲環(huán),所述多個邏輯模塊中的一個或多個邏輯模塊與該數(shù)據(jù)通信環(huán)和數(shù)據(jù)存儲環(huán)相關(guān)聯(lián),所述多個邏輯模塊具有相同的邏輯單元類型。
27.根據(jù)權(quán)利要求20所述的存儲器,其進一步包括一數(shù)據(jù)通信環(huán);以及多個數(shù)據(jù)存儲環(huán),所述多個邏輯模塊中的一個或多個邏輯模塊與該數(shù)據(jù)通信環(huán)和數(shù)據(jù)存儲環(huán)相關(guān)聯(lián),所述多個邏輯模塊具有多種不同的邏輯單元類型。
28.根據(jù)權(quán)利要求20所述的存儲器,其進一步包括一數(shù)據(jù)通信環(huán);以及多個數(shù)據(jù)存儲環(huán),所述多個邏輯模塊中的一個或多個邏輯模塊與該數(shù)據(jù)通信環(huán)和數(shù)據(jù)存儲環(huán)相關(guān)聯(lián),所述多個邏輯模塊具有多種不同的邏輯單元類型,其邏輯功能為從數(shù)據(jù)傳輸操作、邏輯運算和算術(shù)運算中選出的邏輯功能,其中,數(shù)據(jù)傳輸操作包括加載、存儲、讀取和寫;邏輯運算包括與、或、或非、與非、異與和異或、位測試;而算術(shù)運算包括加、減、乘、除和超越函數(shù)。
29.根據(jù)權(quán)利要求20所述的存儲器,其進一步包括多個互連模塊,其耦合到所述多個邏輯模塊,并耦合到所述第一開關(guān),該多個互連模塊能夠監(jiān)測邏輯模塊中的數(shù)據(jù)流量,其包括緩存器和集中器,用于保持和集中數(shù)據(jù),所述互連模塊還控制由所述第一開關(guān)注入數(shù)據(jù)的時序,以避免數(shù)據(jù)沖突。
30.根據(jù)權(quán)利要求20所述的存儲器,其進一步包括一數(shù)據(jù)通信環(huán)(302);以及多個數(shù)據(jù)存儲環(huán)(304),該數(shù)據(jù)存儲環(huán)存儲可從多個源同時進行存取并同時發(fā)送到多個目標的數(shù)據(jù)。
31.根據(jù)權(quán)利要求20所述的存儲器,其中,所述邏輯模塊是動態(tài)程序在存儲器中邏輯模塊(114)。
32.一種多存取存儲器和計算設備,包括多個邏輯設備,這些邏輯設備包括存儲設備;以及一互連結(jié)構(gòu),其耦合到該邏輯設備,用于將數(shù)據(jù)和操作碼路由到這些邏輯設備,該互連結(jié)構(gòu)進一步包括多個節(jié)點(330);多個與該多個節(jié)點相關(guān)聯(lián)的邏輯單元(114);多條消息互連路徑,其中,每條路徑耦合到所述多個節(jié)點中選出的節(jié)點,以便從一個作為發(fā)送節(jié)點的節(jié)點向一個作為接收節(jié)點的節(jié)點發(fā)送數(shù)據(jù);多條控制信號互連路徑,其中,每條路徑耦合到所述多個節(jié)點中選出的節(jié)點,以便從發(fā)送節(jié)點向與接收節(jié)點關(guān)聯(lián)的邏輯單元發(fā)送控制信號;所述多個節(jié)點包括不同的節(jié)點A、B和X;與節(jié)點B關(guān)聯(lián)的邏輯LB,其為節(jié)點B確定路由判斷;一從作為發(fā)送節(jié)點的節(jié)點B至作為接收節(jié)點的節(jié)點X的消息互連路徑;一從作為發(fā)送節(jié)點的節(jié)點A至作為接收節(jié)點的節(jié)點X的消息互連路徑;一從作為發(fā)送節(jié)點的節(jié)點A至邏輯LB的控制信號互連路徑,所述控制信號強制從節(jié)點A向節(jié)點X發(fā)送數(shù)據(jù)具有比從節(jié)點B向節(jié)點X發(fā)送數(shù)據(jù)更高的優(yōu)先權(quán)。
33.一種多存取存儲器和計算設備,包括多個邏輯設備(114),這些邏輯設備包括存儲設備;以及一互連結(jié)構(gòu),其耦合到所述邏輯設備,用于將數(shù)據(jù)和操作碼路由到這些邏輯設備,該互連結(jié)構(gòu)進一步包括多個節(jié)點(330),其中包括不同的節(jié)點A、B、X和Y;多條互連路徑,其有選擇地耦合所述多個節(jié)點中的節(jié)點,這些互連路徑包括用于從控制信號發(fā)送節(jié)點向與控制信號利用節(jié)點關(guān)聯(lián)的邏輯模塊發(fā)送控制信號的控制信號互連路徑,和用于從數(shù)據(jù)發(fā)送節(jié)點向數(shù)據(jù)接收節(jié)點發(fā)送數(shù)據(jù)的數(shù)據(jù)互連路徑;節(jié)點B包括用于向節(jié)點X和向節(jié)點Y發(fā)送數(shù)據(jù)的數(shù)據(jù)互連路徑;節(jié)點A包括用于向與節(jié)點B關(guān)聯(lián)的邏輯LB發(fā)送控制信號的控制互連路徑,邏輯LB是可操作的,使得對于到達節(jié)點B的消息M,節(jié)點A向該邏輯LB發(fā)送一控制信號C,邏輯LB利用該控制信號C決定將消息M發(fā)送給節(jié)點X還是節(jié)點Y。
34.根據(jù)權(quán)利要求33所述的多存取存儲器和計算設備,其中,所述邏輯模塊LB是可操作的,使得可以將到達節(jié)點B的消息M’路由到一不同于節(jié)點X、Y和B的節(jié)點D。
35.一種多存取存儲器和計算設備,包括多個邏輯設備(114),所述邏輯設備包括存儲設備;以及一互連結(jié)構(gòu)(100),其耦合到所述邏輯設備,用于將數(shù)據(jù)和操作碼路由到這些邏輯設備,該互連結(jié)構(gòu)進一步包括多個節(jié)點(330),其中包括一節(jié)點A、一節(jié)點B和一節(jié)點集P,節(jié)點A和B是節(jié)點集P以外的不同節(jié)點,節(jié)點B可以向節(jié)點集P中的所有節(jié)點發(fā)送數(shù)據(jù);以及多條互連路徑,其有選擇地耦合所述多個節(jié)點中的節(jié)點,這些節(jié)點是以包含一發(fā)送節(jié)點和一接收節(jié)點的節(jié)點對被選出的,所述發(fā)送節(jié)點向接收節(jié)點發(fā)送數(shù)據(jù),該多條互連路徑包括數(shù)據(jù)互連路徑和控制互連路徑;該多條控制互連路徑有選擇地耦合該多個節(jié)點中作為控制信號發(fā)送節(jié)點的節(jié)點,用于向與控制信號利用節(jié)點關(guān)聯(lián)的邏輯發(fā)送控制信號;多條控制互連路徑,包括從節(jié)點A至與節(jié)點B關(guān)聯(lián)的邏輯LB的控制互連路徑,邏輯LB利用來自節(jié)點A的控制信號決定節(jié)點B將數(shù)據(jù)發(fā)送給節(jié)點集P中的哪個節(jié)點。
36.一種多存取存儲器和計算設備,包括多個邏輯設備(114),所述邏輯設備包括存儲設備;以及一互連結(jié)構(gòu)(100),其耦合到所述邏輯設備,用于將數(shù)據(jù)和操作碼路由到這些邏輯設備,該互連結(jié)構(gòu)進一步包括多個節(jié)點(330),其中包括一節(jié)點A、一節(jié)點B和一節(jié)點集P,節(jié)點A和B是節(jié)點集P以外的不同節(jié)點,節(jié)點B可以向節(jié)點集P中的所有節(jié)點發(fā)送數(shù)據(jù);以及多條互連路徑,其有選擇地耦合所述多個節(jié)點中的節(jié)點,這些節(jié)點是以包含一發(fā)送節(jié)點和一接收節(jié)點的節(jié)點對被選出的,發(fā)送節(jié)點向接收節(jié)點發(fā)送數(shù)據(jù);一邏輯LA,其與節(jié)點A相關(guān)聯(lián),能夠確定將數(shù)據(jù)從節(jié)點A路由到哪里;一邏輯LB,其與節(jié)點B相關(guān)聯(lián),能夠確定將數(shù)據(jù)從節(jié)點B路由到哪里,邏輯LA與邏輯LB不同,邏輯LB利用邏輯LA確定的信息來確定節(jié)點B將數(shù)據(jù)發(fā)送給節(jié)點集P中的哪個節(jié)點。
37.根據(jù)權(quán)利要求36所述的多存取存儲器和計算設備,其中,所述節(jié)點B可以向所述節(jié)點集P的節(jié)點輸出發(fā)送數(shù)據(jù)。
38.一種多存取存儲器和計算設備,包括多個邏輯設備(114),所述邏輯設備包括存儲設備;以及一互連結(jié)構(gòu)(100),其耦合到所述邏輯設備,用于將數(shù)據(jù)和操作碼路由到這些邏輯設備,該互連結(jié)構(gòu)進一步包括多個節(jié)點(330),其中每個節(jié)點包括多個數(shù)據(jù)輸入端口、多個數(shù)據(jù)輸出端口,以及一個控制通過該節(jié)點的數(shù)據(jù)流的邏輯單元;所述多個節(jié)點包括相互不同的節(jié)點A、B、X和Y;多條互連路徑,其有選擇地耦合所述多個節(jié)點中的節(jié)點,這些互連路徑包括用于從控制信號發(fā)送節(jié)點向與控制信號利用節(jié)點關(guān)聯(lián)的邏輯發(fā)送控制信號的控制信號互連路徑,和用于從數(shù)據(jù)發(fā)送節(jié)點向數(shù)據(jù)接收節(jié)點發(fā)送數(shù)據(jù)的數(shù)據(jù)互連路徑,所述數(shù)據(jù)互連路徑有選擇地與所述數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口相耦合,所述多條控制互連路徑耦合節(jié)點和邏輯單元,用于從控制信號發(fā)送節(jié)點向與具有依賴于控制信號的數(shù)據(jù)流的節(jié)點相關(guān)聯(lián)的邏輯單元發(fā)送控制信號;節(jié)點B與邏輯LB相關(guān)聯(lián),邏輯LB利用來自節(jié)點A的控制信號確定將消息M穿過節(jié)點B的路由,從節(jié)點A接收的控制信號C使得將消息M發(fā)送給節(jié)點X,從節(jié)點A接收的控制信號C’使得消息M被從節(jié)點B發(fā)送到節(jié)點Y。
39.根據(jù)權(quán)利要求38所述的多存取存儲器和計算設備,其中,所述經(jīng)節(jié)點B路由消息M,無論來自節(jié)點A的控制信號是控制信號C還是控制信號C’都是一樣的。
40.根據(jù)權(quán)利要求38所述的多存取存儲器和計算設備,其中,發(fā)送給節(jié)點B的所述控制信號從節(jié)點A的數(shù)據(jù)輸出端口引出。
41.一種多存取存儲器和計算設備,包括多個邏輯設備(114),所述邏輯設備包括存儲設備;以及一互連結(jié)構(gòu)(100),其耦合到所述邏輯設備,用于將數(shù)據(jù)和操作碼路由到這些邏輯設備,該互連結(jié)構(gòu)進一步包括多個節(jié)點(330),其中包括節(jié)點X和節(jié)點集P,該節(jié)點集P包括多個能向節(jié)點X發(fā)送數(shù)據(jù)的節(jié)點;以及多條互連路徑,其有選擇地耦合所述多個節(jié)點中的節(jié)點,這些互連路徑包括用于從發(fā)送節(jié)點向接收節(jié)點發(fā)送數(shù)據(jù)的數(shù)據(jù)互連路徑,節(jié)點集P中的節(jié)點具有向節(jié)點X發(fā)送數(shù)據(jù)的優(yōu)先權(quán)關(guān)系,其中,具有向節(jié)點X發(fā)送數(shù)據(jù)的最高優(yōu)先權(quán)的節(jié)點向節(jié)點X發(fā)送數(shù)據(jù)時從不會被阻塞。
42.根據(jù)權(quán)利要求41所述的多存取存儲器和計算設備,其中,節(jié)點集P中的節(jié)點A在其向節(jié)點X發(fā)送數(shù)據(jù)時,不會被其向節(jié)點X發(fā)送數(shù)據(jù)的優(yōu)先權(quán)低于該節(jié)點A的節(jié)點B向節(jié)點X所發(fā)送的數(shù)據(jù)所阻塞。
43.根據(jù)權(quán)利要求41所述的多存取存儲器和計算設備,其中,所述節(jié)點集P中節(jié)點間的向節(jié)點X發(fā)送數(shù)據(jù)的優(yōu)先權(quán)關(guān)系取決于節(jié)點集P中各節(jié)點在互連結(jié)構(gòu)中的位置。
全文摘要
利用若干新技術(shù)可使多處理機能夠并行地訪問相同的數(shù)據(jù)。首先,多個遠程處理機可以請求從同一數(shù)據(jù)位置讀取數(shù)據(jù),而這些請求可以在重疊的時間周期中得到滿足。其次,若干處理機可以訪問位于同一位置的數(shù)據(jù)項,并可在重疊的時間內(nèi)對同一數(shù)據(jù)項進行讀取、寫或?qū)嵤┒嘀夭僮鳌5谌?,可將一個數(shù)據(jù)分組多點傳送到若干位置,而多個分組可以被多點傳送到多組目的地。
文檔編號G06F15/177GK1489732SQ01820887
公開日2004年4月14日 申請日期2001年10月19日 優(yōu)先權(quán)日2000年10月19日
發(fā)明者約翰·赫斯, 科克·S·里德, S 里德, 約翰 赫斯 申請人:英特拉克蒂克控股公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
胶南市| 涞源县| 襄垣县| 房产| 布尔津县| 麻城市| 荥阳市| 贵阳市| 昌乐县| 旺苍县| 吉木乃县| 遵义县| 资阳市| 保亭| 秦皇岛市| 延吉市| 泉州市| 佳木斯市| 潜江市| 古交市| 澄迈县| 静海县| 永顺县| 湟中县| 衡阳市| 乌苏市| 苍山县| 马龙县| 镇安县| 呼图壁县| 嵩明县| 徐闻县| 云龙县| 昆山市| 凤阳县| 隆安县| 屯留县| 友谊县| 广东省| 巩义市| 汉沽区|