專利名稱:在單指令多數據流并行處理機陣列中模擬附加處理機的方法
本發明涉及一種在單指令多數據流并行處理機陣列中模擬附加處理機的方法。
在單指令多數據流計算機中,大量的處理機并行處理一項算題,在Connection Machine(注冊商標)計算機中,并行聯接著32000多個處理機/存儲器的單指令多數據流處理機陣列。雖然大量處理機/存儲器的出現代表著技術的高度進展,但仍然需要具有更多處理機/存儲器的陣列。例如,在顯示時,如果能夠為顯示中每一個象素的數據點提供一個處理機/存儲器,那就十分有益了。為了實現具有這種能力的1000×1000個象素的高分辨率顯示,就必須提供1,000,000個處理機/存儲器。在模擬視覺和其它涉及人工智能研究的裝置中,也需要類似的數量。其它方面的應用,例如在“模擬由偏微分方程描述的系統的方法和設備”中敘述的流體介質的各種模擬方法,如果這些發明要能夠達到實際可用的話,也需要大量的處理機/存儲器。
我們發現,在單指令多數據流計算機中可以這樣來模擬附加的處理機,即把與每一個處理機相聯系的存儲器劃分為一組子存儲器,然后連續地對每一個子存儲器進行操作,就好象它是與另一個單獨的處理機相聯系。這樣,第一條指令或第一組指令提供給陣列的所有處理機,使得至少一部分處理機處理存儲在第一子存儲器的第一個或第一組存儲單元中的數據,然后,同樣的第一條指令或第一組指令提供給陣列的所有處理機,使得至少一部分處理機處理存儲在第二子存儲器的同樣的第一個存儲單元中的數據,以后,對每一個子存儲器都是類似地繼續下去。
用這種方式操作單指令多數據流計算機,就有可能實際上改變陣列中的處理機的數目,按照問題的需要提供處理機的數量。這就允許各種需要大量處理機的程序在那些并不實際具有那么多的處理機的計算機上運行。這樣就有可能對本來要用別的辦法才能實現運算的問題,例如,對產生具有高分辨率的顯示的問題進行運算。
在模擬偏微分方程所描述的系統的情形下,本發明所提供的技術使得在一個僅用32,768個處理機的陣列中計算4,000,000個點以上的數據成為可能。
本發明的上述和其它目的、特點以及優點將由于下面對本發明的最佳實施例的詳細敘述而更容易了解,在這一實施例中圖1和圖2簡略地畫出了本發明的實施中優先采用的一種單指令多數據流處理機的各個部分。
圖3是說明本發明實施的流程圖。
本發明主要用于單指令多數據流計算機,例如用于申請號為499,474的美國專利申請中詳細描述的Connection Machine計算機。
圖1重新畫出了上述申請中的圖1A,圖中,這一計算機系統包括一個計算機主機10,一個微控制器20,一個并行處理集成電路35的陣列30,一個數據發送器(數據源)40,一個第一緩沖器和多路轉換器/多路分配器50,第一、第二、第三和第四雙向總線控制電路60、65、70和75,一個第二緩沖器和多路轉換器/多路分配器80,以及一個數據接收器90。計算機主機10可以是一個編程的、市場上可以購得的通用計算機,例如由數字設備公司(Digital Equipment Corp)制造的VAX(商標)計算機。微控制器20是常規設計的指令序列發生器,用來產生一系列的指令,并利用一條32位的并行總線22傳送到陣列30。微控制器20在線26上接收來自陣列30的信號,這一信號是一個通用或全局信號,可以用于數據輸出和狀態信息。總線22和線26并行連接到每一個集成電路35,因此,來自微控制器20的信號同時加到陣列30中的每一個集成電路35,在線26上提供給微控制器20的信號由這一陣列的所有集成電路35的信號輸出結合而成。
在實施本發明中所采用的Connection Machine計算機的實施例中,陣列30包括4096(=2″)個同樣的集成電路35,每一個集成電路35包括16(=24)個同樣的處理機/存儲器36,這樣,整個陣列30包括65,536(=215)個同樣的處理機/存儲器36。
處理機/存儲器36以兩種幾何結構安排和互聯,一種是常規的兩維網格圖形,處理機/存儲器安排成128×512的處理機/存儲器矩形陣列,并且連接到陣列中四個最鄰近的單元,另一種是十五維的布爾體。
為了把每一個處理機/存儲器連接到它的四個最鄰近的單元,單個處理機/存儲器由網格每一行和每一列上相鄰的處理機/存儲器之間的電氣導線相連接,如上述專利申請499,474的圖6A和7A所示。除了那些位于陣列邊緣的集成電路以外,一個集成電路的四個最鄰近的單元將被看作是在東、南、西、北與該集成電路直接相鄰的四個集成電路。
在布爾體中,每一個處理機/存儲器連接到十五個最鄰近的單元是通過電氣導線和發送程序來實現的,接線的具體方法在上面參見的專利申請740,943中已經提出,發送程序則請參見專利申請499,474。
圖2與專利申請499,474中的圖7A相同,詳盡地揭示了作為舉例說明的處理機/存儲器36。如圖2所示,處理機/存儲器包括隨機存取存儲器(RAM)250,算術邏輯單元(ALU)280和標志控制器290。算術邏輯單元對來自三個數據發送器、隨機存取存儲器中的兩個寄存器的數據和一個標志輸入進行操作,產生兩個輸出,一個“和”輸出寫入隨機存取存儲器的一個寄存器中,一個進位輸出則提供給標志控制器中的某些寄存器以及某些別的處理機/存儲器。
隨機存取存儲器250的輸入是總線152、154、156、158,來自算術邏輯單元270的“和”輸出線285,來自專利申請499,474圖6B中通訊接口單元(CIU)180的信息包輸入線122,以及來自標志控制器290的寫啟動線298。隨機存取存儲器250的輸出是線256、257。線256、257上的信號從隨機存儲器250同一列上兩個不同的寄存器中得到,一個指定為寄存器A,另一個是寄存器B。總線152、154、156、158按照來自微控制器20的指令字訪問這些寄存器和其中的列,作為說明的例子,隨機存取存儲器250的存儲容量為4096位。
標志控制器290是具有八個一位D觸發器292、一個16-2選擇器294和若干邏輯門的陣列。觸發器292的輸入是來自算術邏輯單元280的進位輸出信號,線298上來自選擇器294的寫啟動信號,以及來自專利申請499,474的圖6B中可編程邏輯陣列(PLA)150的總線172的八條線。線172是地址線,其中每一條連接到一個不同的觸發器292以選擇標志位所要寫入的觸發器,觸發器292的輸出則提供給選擇器294。
選擇器294的輸入端連接到16條標志信號線295,其中8條來自觸發器292,選擇器294的輸入端還連接到總線174、176每一條的16根線,線174和176也是地址線,選擇一條標志信號線,作為輸出或進一步處理,當哪一個標志被對應的地址線174和176所選出時,選擇器294就在線296和297上產生輸出,在專利申請499,474的表Ⅳ中詳細定義了這些標志。
算術邏輯單元280包括一個1-8譯碼器282,一個“和”輸出選擇器284和一個進位輸出選擇器286。如在專利申請499,474中詳細描述過的那樣,這使得它能夠產生用于許多功能,包括加、邏輯或和邏輯與的“和”輸出以及進位輸出。算術邏輯單元280一次處理3位,兩個在線256、257上,來自隨機存取存儲器250的寄存器A和B,一個在線296上,來自標志控制器290。算術邏輯單元有兩個輸出一個是線285上的“和”輸出,它被寫入隨機存取存儲器250的寄存器A,一個是線287上的進位輸出,它被寫入標志寄存器292,并傳送到與該處理機/存儲器相連的另一處理機/存儲器36的東、南、西、北和菊花鏈輸入端。
按照本發明,每一個處理機/存儲器可以被分為功能相同的幾個單元,事實上,每一單元就象一個獨立的處理機/存儲器那樣工作,共享一個實際的處理機/存儲器的隨機存取存儲器、算術邏輯單元和標志控制器。在一個實際的處理機/存儲器中可以分成多少個這種單元取決于每一單元對存儲器的需要量。
把一個實際的處理機/存儲器劃分為幾個部分(單元)是通過下列方式來完成的,以同一方法將每一個實際的處理機/存儲器的存儲器分區,并賦予圖1中的微控制器20以一定的能力,使其控制每一個實際的處理機/存儲器首先在分區的存儲器的一段區域上操作,然后在下一段區域上操作,等等,依此類推,在存儲器的每一子區間上進行操作。說明這一過程的流程圖畫在圖3中。
存儲器的劃分很容易完成,例如,在這一例子中的Connection Machine計算機,每一個隨機存取存儲器250包含4096位或512個8位字節,圖中作為例子,每字節具有一個單獨的存儲單元或地址,從000至511,要把存儲器劃分為四個子存儲器,只須把000至127的存儲單元指定為第一子存儲器,128至255的存儲單元指定為第二子存儲器,256至383的存儲單元指定為第三子存儲器,以及把384至511的存儲單元指定為第四子存儲器。如果需要的話,存儲器還可以分成更小的子區間。
在每一個子存儲器中,與第一個存儲單元具有同樣對應關系的存儲單元都以同樣方式使用。例如,如果一個表示角度大小的度、分、秒的數據存儲在第一子存儲器的第一、第二和第三存儲單元000、001和002中,那末給出一個角度的度、分、秒的數據也存儲在第二子存儲器的第一、第二和第三個存儲單元128、129和130中,存儲在第三子存儲器的第一、第二和第三個存儲單元256、257和258中,存儲在第四子存儲器的第一、第二和第三個存儲單元384、385和386中。
無論它涉及的是一個或多個運算操作,在每一段分區的存儲器上所執行的操作序列總是相同的,從分區的存儲器的一段向下一段進行的能力可以用不同的方法獲得。例如,控制器給出的程序中所有尋址可以參照每一個子存儲單元的第一存儲地址來進行,或者,程序中使用的存儲地址可以用程序中的對應項來給出,當從分區的存儲器的一段進行到下一段時,這些地址可以加1(進行增量)。
顯然,對于掌握了本發明的人來說,在上面所描述的發明的范圍內可以作出許多種不同變化。
權利要求
1.一種單指令多數據流并行處理機,包括一個控制器,一個由所述的控制器并行控制的處理機陣列,每一個處理機具有一個同樣的輸入端、一個同樣的輸出端、一個同樣的處理單元和一個與每個處理單元相連的同樣的存儲器,處理單元按照所述的控制器提供的指令對其輸入端和與其相連的存儲器所提供的數據進行操作,并在其輸出端產生數據,一種模擬陣列中存在附加的處理機的方法包括步驟a,以同樣的方式劃分與處理單元相連的存儲單元,形成一組與每一處理單元相連的子存儲器,b,由控制器向處理機至少提供第一條指令或第一組指令,使得至少一部分處理機的處理單元都處理存儲在與處理單元相連的第一子存儲器的第一存儲單元內的數據,c,在其后的一個時刻,由控制器向處理機提供所述的第一條指令或第一組指令,使得至少一部分處理機的處理單元都處理存儲在與處理機相連的第二子存儲器的同樣的第一存儲單元內的數據。
2.權利要求
1所述的方法,還進一步包括對存儲在第一和第二子存儲器的同樣的第一存儲單元內的新數據重復進行步驟(b)和(c)的步驟。
3.權利要求
1所述的方法,它還進一步包括對存儲在第一和第二子存儲器的第二存儲單元內的數據重復進行步驟(b)和(c)的步驟。
專利摘要
本發明是在單指令多數據流計算機中模擬附加處理機的方法,把與每一處理機相聯系的存儲器劃分為一組子存儲器,連續地對每一個子存儲器進行操作,與另一個單獨的處理機相聯系。這樣,第一條指令或第一組指令提供給陣列的所有處理機,使得至少一部分處理機處理存儲在第一子存儲器的第一個或第一組存儲單元中的數據,同樣的第一條指令或第一組指令提供給陣列的所有處理機,使得至少一部分處理機處理存儲在第二子存儲器的同樣的第一個存儲單元中的數據,用這種方式操作單指令多數據流計算機,改變陣列中的處理機的數目,按照問題需要提供處理機的數量。
文檔編號G06F15/177GK87100892SQ87100892
公開日1988年11月16日 申請日期1987年2月20日
發明者威·丹尼爾·希利斯, 克里福德·拉瑟, 布魯斯特·卡爾, 卡爾·西姆斯 申請人:智能機器公司導出引文BiBTeX, EndNote, RefMan