亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

傳送數(shù)據(jù)的制作方法

文檔序號:6462387閱讀:114來源:國知局
專利名稱:傳送數(shù)據(jù)的制作方法
技術領域
本發(fā)明總的來說涉及具有處理架構并進行指令處理的電計算機和數(shù)字 處理系統(tǒng),更具體地說,涉及用于對特別支持或進行數(shù)字傳輸操作的指令數(shù) 據(jù)進行處理器的這類電計算機和數(shù)字處理系統(tǒng)。
背景技術
在計算領域,處理速度是非常期望的品質,并且對創(chuàng)造更快速的計算機 和處理器的探索正在進行中。然而,行業(yè)中普遍認為,至少對于利用目前已 知的技術來提高微處理器的速度而言,微處理器速度的極限正在迅速地被接 近。因此,通過在處理器之間分擔計算機任務來提高整體計算機速度的多處 理器的使用,越來越受到關注。但是還通常認為,在工作量的分擔中幾乎不 可避免地存在整體效率的一些下降。也就是說,所述多處理器的使用適用以
下古老的諺語僅僅由于一個人可以在60分鐘內挖一個柱洞,并不必然得 出60個人可以在1分鐘內挖一個柱洞的結論。同樣的道理幾乎適用于任何 任務的分工,處理器之間的任務分工也不例外。
當然,正在努力使計算機處理器之間的任務分擔更加高效。正在研究和 過程改進的正是如何分配任務的問題。本發(fā)明人在該領域的工作過程中觀察 到,在某些場合下,在多CPU環(huán)境中將數(shù)據(jù)從一個CPU傳輸?shù)搅硪粋€CPU 可能很麻煩。例如,如果必須將數(shù)據(jù)從一個CPU傳輸?shù)搅硪粋€CPU,且目 標CPU與源CPU之間-故一個CPU隔開,則源CPU必須將該lt據(jù)成一直線 直接寫入該CPU,然后,該CPU必須讀取該數(shù)據(jù),并將該數(shù)據(jù)寫入目標CPU, 然后目標CPU必須讀取該數(shù)據(jù)。這種過程需要多次讀操作和寫操作,而且 如果要傳輸大量的數(shù)據(jù),則這么多的讀命令和寫命令可能會阻塞系統(tǒng)運行。

發(fā)明內容
相應地,本發(fā)明的目的是提供用于多端口讀和寫操作的系統(tǒng)及方法。
本發(fā)明的一方面提供一種計算機,該計算機包括將該計算機連接到其 它器件的多條數(shù)據(jù)路徑;和具有位的寄存器,所述位可編程設置為對所述多 條數(shù)據(jù)路徑中的各條數(shù)據(jù)路徑進行尋址,使得該計算機可以通過多條數(shù)據(jù)路 徑中作為所述位并發(fā)設置的基礎的若干條數(shù)據(jù)路徑來進行通信。該計算機可
以是計算機陣列的一部分,并且所述其它器件中的至少一個也為該計算機陣 列中的計算機。該計算機可以異步通信。
本發(fā)明的另 一方面提供一種針對計算機傳送數(shù)據(jù)的方法,該方法包括 (a)針對該計算機連接到其它器件的多條數(shù)據(jù)路徑來對所述其它器件設法 將所述數(shù)據(jù)寫入該計算機的信號加以監(jiān)視;(b)從所述其它器件中的首個 器件讀取所述數(shù)據(jù);并且(c)基于具有可編程設置為對所述多條數(shù)據(jù)路徑 進行尋址的位的寄存器,將所述數(shù)據(jù)寫入所述其它器件中的一個器件。該計 算機可以是計算機陣列的一部分,并且所述其它器件中的至少一個器件也為 該計算機陣列中的計算機。該計算機可以異步通信。
簡言之,本發(fā)明的一個優(yōu)選實施例是一計算機,該計算機具有將該計算 機連接到其它器件的多條數(shù)據(jù)路徑,所述其它器件通常但不一定是其它計算 機。該計算機中的寄存器具有位,所述位可編程為對所述數(shù)據(jù)路徑中的各條 數(shù)據(jù)路徑進行尋址,從而使該計算機可以通過所述數(shù)據(jù)路徑中作為所述位并 發(fā)設置的基礎的若干條數(shù)據(jù)路徑來進行通信。
簡言之,本發(fā)明的另 一優(yōu)選實施例是一種針對計算機傳送數(shù)據(jù)的方法。
針對該計算機連接到其它器件的多條數(shù)據(jù)路徑來對所述其它器件設法將數(shù) 據(jù)寫入該計算機的信號加以監(jiān)視。然后,從所述其它器件中的首個器件讀取 數(shù)據(jù)。并且,基于具有可編程為對多條數(shù)據(jù)路徑進行尋址的位的寄存器,將 該數(shù)據(jù)寫入另一器件。
本發(fā)明實施例的優(yōu)勢在于它提高了在多處理器之間的數(shù)據(jù)傳輸?shù)乃俣龋貏e是當處理器被排列為多維陣列,且各處理器具有至少三條路徑可以讀或
寫數(shù)據(jù)。
本發(fā)明實施例的另 一 優(yōu)勢在于它通過在處理器之間分擔任務,使多處理 器的使用更為容易,從而提高了整體計算速度。
本發(fā)明實施例的再一優(yōu)勢在于是它在多處理器之間分擔任務時減少了開銷。
本發(fā)明還提供了一種計算機程序,當該計算機程序在合適的計算機上運 行時,使該計算機實施根據(jù)所述本發(fā)明的另一方面的方法。該程序可以是位 于載體上,所述載體可以是存貯介質或信號。該存貯介質可以是記錄介質或 其它例子中的存儲設備。
鑒于實施本發(fā)明如這里所述的和在附圖的圖中所示的目前已知是實施 本發(fā)明的最佳模式以及優(yōu)選實施例的工業(yè)實用性的描述,本發(fā)明實施例的這


本發(fā)明實施例的意圖和優(yōu)勢將從以下結合附圖的詳細描述中變得明顯,
在附圖中
圖1為根據(jù)本發(fā)明的計算機陣列的概略圖2為示出圖1的計算機的子集的詳細圖及圖l的互連數(shù)據(jù)總線的更詳 細視圖3為描繪圖l和圖2的計算機中一個計算機的一般布局的框圖; 圖4為可在圖1和圖2的計算機中使用的指令字的概略圖; 圖5為圖3的時間片定序器的示意圖; 圖6為描繪根據(jù)本發(fā)明的一種方法的例子的流程圖; 圖7為示出用于討論根據(jù)本發(fā)明示例性實施例的圖1和圖2中計算機陣 列一部分的詳細圖;圖8a-f為示出可在圖7的部分中的計算機中使用的端口地址解碼的概觀 的表格;
圖9為描繪圖7和圖8d-f所示的多寫方法如何具體地與在單指令字中 包括多條指令的能力相結合的示意性框在附圖中的各幅圖中,相同的附圖標記用于表示相同的或相似的元件或步驟。
具體實施例方式
雖然根據(jù)用于實現(xiàn)目的的模式對本發(fā)明的實施例進行描述,但是本領域 技術人員將認知到鑒于這些啟示并未脫離本發(fā)明的精神或范圍,因此可以實 現(xiàn)變體。
這里所描述的和/或在附圖中所示的本發(fā)明的實施例及其變體僅以示例 方式給出,并不限定本發(fā)明的范圍。除非以其它方式具體說明,本發(fā)明的獨 立方面和部件可以被省略或修改,或可以具有因此被替代的等價物,或可以 具有還未知的替代品,例如可能在未來開發(fā)的,或例如可能在未來被發(fā)現(xiàn)是 可接受的替代品的。由于潛在應用的范圍很大,且由于本發(fā)明意在適應很多 這樣的變體,因此只要保持在所要求的發(fā)明的精神和范圍之內,本發(fā)明還可 以針對各種各樣的應用而被修改。
本發(fā)明的優(yōu)選實施例是用于多端口讀和寫操作的系統(tǒng)及方法。如這里的 多個附圖所示出的,尤其是在圖7的視圖中所示出的,由一般附圖標記100 來表示本發(fā)明的優(yōu)選實施例。
作為本發(fā)明的場景和基礎,首先給出異步計算機通信的詳細例子。為此, 圖1中的概略圖中描繪一計算機陣列,該計算機陣列在此由一般附圖標記 IO來指代。計算機陣列IO具有多個(在示出的例子中是24個)計算機12 (在陣列的例子中有時也稱作"核"或"節(jié)點")。在示出的例子中,所有 的計算機12都位于單個電路小片14上。各計算機12通常是獨立運行的計 算機,如在下文更詳細地討論的。計算機12由多條相互連接的數(shù)據(jù)總線16(其數(shù)量將在下文更詳細地討論)相互連接。在該例子中,數(shù)據(jù)總線16是 雙向異步高速并行數(shù)據(jù)總線,盡管出于該目的而采用其它的互連手段也在本 發(fā)明的范圍之內。在陣列IO的本實施例中,不僅計算機12之間的數(shù)據(jù)通信 是異步的,而且獨立的計算機12內部也以異步模式運行。已經(jīng)發(fā)現(xiàn)這種模式提供了重要的優(yōu)勢。例如,由于沒有必要在整個計算機陣列10中分發(fā)時鐘信號,因此可以節(jié)省大量的功率。此外,沒有必要分發(fā)時鐘信號還消除了可能限制陣列10的大小或產(chǎn)生其它困難的很多時序問題。本領域技術人員將認識到,電路小片14上還存在附加的部件,為了清楚起見,圖1的視圖中省略了這些部件。這些附加的部件包括微處理器芯片 的電源總線、外部連接焊盤及其它這些普通方面。計算機12e為不處于陣列10邊界的一個計算機12的例子。也就是說, 計算機12e具有四個互相垂直的相鄰計算機12a, 12b, 12c和12d。在下 文中將使用計算機12a-12e的這個分組,來更詳細討論陣列10的計算機12 間的通信。如圖1的視圖所見,諸如計算機12e這樣的內部計算機12具有 四個其他的可以通過總線16與其通信的計算機12。在以下討論中,所討i侖 的原理將應用于所有計算機12,除了只能夠與三個其他計算機12直接通信 的位于陣列io邊界的計算機12,以及只能夠與兩個其他計算機12直接通 信的拐角計算機12。圖2為圖1中的一部分的更詳細視圖,只示出一些計算機12,特別是 包括計算機12a-12e。圖2的視圖還揭示每條數(shù)據(jù)總線16都具有讀線18、 寫線20和多條(在本例子中為18)數(shù)據(jù)線22。數(shù)據(jù)線22能夠并行同時傳 輸一個18位指令字的所有位。應當注意到,在替代實施例中, 一些計算機 12是相鄰計算機的鏡像。然而,計算機12是全部具有同一方向,還是作為 相鄰計算機的鏡像在此并不重要,且在此將不再進一步討論該潛在的復雜情 況。諸如計算機12e的計算機12可以將其一條、兩條、三條或全部四條讀 線18設置為高,從而準備從相應的一個、兩個、三個或全部四個相鄰計算機12中接收數(shù)據(jù)。相似地,計算機12也可以將其一條、兩條、三條或全部 四條寫線設置為高。(在下文中會更詳細地討論這兩種情況。)
當一個相鄰計算機12a、 12b、 12c或12d將其自身與計算機12e之間的 寫線20設置為高時,如果計算機12e已經(jīng)將對應讀線18設置為高,那么字 在相關聯(lián)的數(shù)據(jù)線22上從那個計算機12a、 12b、 12c或12d傳輸至計算機 12e。然后,發(fā)送計算機12將釋放寫線20,并且接收計算機12e (在該例子 中)將寫線20和讀線18拉低。后一個動作是向發(fā)送計算機12確認已經(jīng)接 收到數(shù)據(jù)。注意,上述說明并不必然地意在按次序指示事件的順序。在實際 應用中,接收計算機可以在發(fā)送計算機12釋放(停止拉高)寫線20之前, 試著將寫線20設置得略低。在這種情況下,發(fā)送計算機12—釋放寫線20, 寫線20就會被接收計算機12e拉低。
在本例子中,只有編程錯誤才會使位于一條總線16的對立端的兩個計 算機12試著同時將它們的兩條讀線18均設置為高或同時將它們的兩條寫線 20均設置為高。然而,目前預計到,將存在以下時機期望將讀線18的不 同組合設置為高,從而使一個計算機12可以處于等待來自選中計算機12中 的首個計算機的數(shù)據(jù)來將該首個計算機的對應寫線20設置為高的等待狀態(tài)。
在以上討論的例子中,計算機12e被描述為在相鄰的計算機(選自計算 機12a、 12b、 12c或12d中的一個以上計算機)將該相鄰計算機的寫線20 設置為高之前,計算機12e將該計算機12e的讀線18中的一條以上讀線設 置為高。然而,該過程當然也可以以相反的次序發(fā)生。例如,如果計算機 12e正嘗試向計算機12a寫,那么計算機12e會將計算機12e和計算機12a 之間的寫線20設置為高。如果計算機12e和計算機12a之間的讀線18還沒 有被計算機12a設置為高,則計算機12e會簡單地等待,直到計算機12a將 該讀線18設置為高為止。然后,如上所討論的,當讀線18與寫線20的對 應對均為高時,等待在數(shù)據(jù)線22上進行傳輸?shù)臄?shù)據(jù)被傳輸。之后,發(fā)送計 算機12e—釋放寫線20,接收計算機12a(在該例子中)就會將兩個計算機
1012e與12a (在該例子中)之間的讀線18和寫線20都設置為低。
每當諸如計算機12e的計算機12預計要寫,將其一條寫線20設置為高 時,它將簡單等待,基本不消耗功率,直到如上所述有適當?shù)南噜徲嬎銠C 12 "請求"該數(shù)據(jù)為止,除非數(shù)據(jù)待被發(fā)送到其上的計算機12已經(jīng)將它的 讀線18設置為高,在這種情況下數(shù)據(jù)被立即發(fā)送。類似地,每當計算機12 預計要讀取,將其一條以上讀線18設置為高時,它將簡單等待,基本不消 耗功率,直到連接到所選擇的計算機12的寫線20變高以在兩個計算機12 之間傳輸指令字為止。
可能存在若干種潛在的手段和/或方法來使計算機12如所述工作。但是, 在本例子中,計算機12之所以運轉得這樣簡單是因為它們通常都是內部異 步運行(除了以所述異步方式相互之間傳輸數(shù)據(jù))。也就是說,通常是按順 序完成指令。當發(fā)生寫指令或讀指令時,直到該指令完成(或者,也許作為 替代地,直到其因為"復位"或其他原因被異常中斷時)才會有進一步的動 作。現(xiàn)有技術中,沒有規(guī)則的時鐘脈沖。更具體地說,只有當正在被執(zhí)行的
指令既不是讀類型指令也不是寫類型指令時(假如讀或寫類型指令經(jīng)常需要 另一個實體完成)或當該讀或寫類型操作事實上已經(jīng)完成時,才生成脈沖以
完成下一個指令。
圖3為描繪圖l和圖2的一個計算機12例子的總體布局的框圖。如圖 3的視圖所見,各計算機12為具有其自己的RAM 24和ROM 26的通用整 裝計算機。如以上提到的,計算機12有時也稱為獨立的"核"。在本例子 中,假如計算機12被組合在單芯片上。
計算機12的其他基本部件為返回堆棧28、指令區(qū)域30、算術邏輯單元 (ALU 32)、數(shù)據(jù)堆棧34和用于對指令進行解碼的解碼邏輯段36。本領域 技術人員通常應該很熟悉基于諸如本例子中的計算機12的堆棧計算機的操 作。計算機12為具有數(shù)據(jù)堆棧34和分離的返回堆棧28的雙堆棧計算機。
在本發(fā)明的這個實施例中,計算機12具有與相鄰計算機12進行通信的 四個通信端口 38。通信端口 38為三態(tài)驅動器,具有關閉狀態(tài)、接收狀態(tài)(用于驅動信號使其進入計算機12)和發(fā)送狀態(tài)(驅動信號使其離開計算機12)。
當然,如果特定計算機12不在諸如計算機12e的例子的陣列(圖1)內部, 那么至少出于這里所述的意圖, 一個以上通信端口 38不會被那個特定計算 機使用。指令區(qū)域30包括若干寄存器40,在本例子中,寄存器40包括A 寄存器40a、 B寄存器40b、 P寄存器40c以及I/O控制和狀態(tài)寄存器(IOCS 寄存器40d)。在本例子中,A寄存器40a和IOCS寄存器40d為全18位寄 存器,而B寄存器40b和P寄存器40c為9位寄存器。
盡管本發(fā)明并不限于該例子,但是本計算機12被實施為執(zhí)行本機Forth 語言指令。如熟悉Forth計算機語言的人將認知的,復雜Forth指令,即通 常所說的Forth "字"是根據(jù)設計在計算機中的本機處理器指令所構建的。 在其它語言中,這可能為通常所說的"庫,,。如下文將更詳細描述的,計算 機12在一個時段從RAM 24、 ROM 26或直接從一條l丈據(jù)總線16 (圖2 )讀 取十八位。然而,由于Forth中的大多數(shù)指令(即通常所說的無操作數(shù)指令) 直接從堆棧28和34中得到它們的操作數(shù),因此它們的長度通常僅為5位, 使得在單個十八位指令字中可以包含多達四條指令,條件是該組指令的最后 一條指令選自僅需三位的指令的有界集。在該實施例中,數(shù)據(jù)堆棧34頂部 的兩個寄存器是T寄存器44和S寄存器46。在圖3的視圖中以框圖的形式 描繪的還有時間片定序器42 (稍后詳細討論)。
圖4為指令字48的概略圖。(應該注意指令字48實際上可以包含指令、 數(shù)據(jù),或包含指令和數(shù)據(jù)的一些組合。)指令字48由十八位50組成。作為 二進制計算機,各位50將為'T'或"0"。如這里先前所討論的,十八位 寬的指令字48可以包含位于四個時間片54中的多達四條指令52,該四個 時間片54 ^皮稱為時間片零54a、時間片一 54b、時間片二 54c和時間片三54d。 在本實施例中,十八位指令字48總是作為整體被讀取。因此,由于指令字 48中總是存在具有多達四條指令的潛能,因此在計算機12的指令集中包括 no-op (無操作)指令以提供用于當沒有必要或甚至是不期望使用所有可用 的時間片54的情況。應該注意,根據(jù)一個特定實施例,在間隔的時間片(具體來說,時間片一 54b和時間片三54c )中位50的極性(與有效低相比較是
有效高)是相反的。然而,這不是必需的,因此,為了更好地解釋這項發(fā)明, 在下面的討論中也避免這種潛在的復雜情況。
圖5為圖3的時間片定序器42的示意圖。從圖5的視圖中可以看出, 時間片定序器42具有排列成環(huán)形的多個(在該例子中是十四個)反相器56 和一個與非門58,使得信號在經(jīng)過該十四個反相器56和與非門58時被反 相奇數(shù)次。當或門60的兩個輸入中的任一個變?yōu)楦邥r,在時間片定序器42 中發(fā)起一信號。第一或門輸入端62得自正在被執(zhí)行的指令52的i4位66。 如果i4位66為高,則該特定指令52是ALU指令,且i4位66為"1"。當 i4位66為"1"時,則第 一或門輸入端62為高,則時間片定序器42被觸發(fā), 以發(fā)起使下一條指令52被執(zhí)行的脈沖。
當?shù)谝换蜷T輸入端62變高或被第二或門輸入端64變高(如將在下文中 討論的)而觸發(fā)時間片定序器42時,信號繞時間片定序器42移動兩圈,每 次在時間片定序器輸出端68產(chǎn)生輸出。該信號第一次通過時間片定序器輸 出端68時,時間片定序器輸出端68的輸出為低,而第二次時為高。來自時 間片定序器輸出端68的相對寬的輸出被提供給脈沖發(fā)生器70 (以框圖的形 式示出),該脈沖發(fā)生器70產(chǎn)生窄時序脈沖作為輸出。本領域技術人員應 該認識到窄時序脈沖是為準確發(fā)起計算機12的操作所期望的。
當正在被執(zhí)行的特定指令52為讀指令或寫指令或任何其它指令時,其 中所述任何其它指令不期望正在被執(zhí)行的指令52順序地觸發(fā)下一條指令52 的執(zhí)行,則i4位66為"0"(低),并且因此第一或門輸入端62也為低。 本領域技術人員將認識到,在諸如計算機12的器件中,事件的時序通常很 關鍵,而且無一例外。本領域技術人員將認識到,在檢測時間片定序器42 后,來自或門60的輸出必須保持為高,直到該信號循環(huán)通過與非門58以便 發(fā)起環(huán)的第二 "圈"之后為止。之后,在第二 "圈"期間,來自或門60的 輸出會變低,以便阻止電路的多余繼續(xù)振蕩。
沖艮據(jù)以上討論可以認知到,假設下文會討論的第二或門輸入端64不為高,則當i4位66為"0"時,時間片定序器42不會被觸發(fā)。
如上所述,根據(jù)各指令52是否為讀類型指令或寫類型指令來設置各指 令52的i4位66。指令52的剩余位50為該指令提供了特定操作碼的剩余部 分。在讀類型指令或寫類型指令的情況下, 一個以上位可用于指示從該特定 計算機12讀取數(shù)據(jù)的地址或將數(shù)據(jù)寫入該特定計算機12的地址。在本例子 中,待寫入的數(shù)據(jù)總是來自于T寄存器44 (數(shù)據(jù)堆棧34的頂部),然而數(shù) 據(jù)可以被選擇性地讀入T寄存器44或可以執(zhí)行該數(shù)據(jù)的指令區(qū)域30。也就 是說,在該特定實施例中,由于可以以在此所述的方式來傳送數(shù)據(jù)或指令, 因此盡管不是必需的,也可以從數(shù)據(jù)總線16直接執(zhí)行指令。此外, 一個以 上位50將用來指示哪個端口 38,如果存在的話,將被設置為讀或寫。當前 的操作可以通過利用 一個以上位指代諸如A寄存器40a、 B寄存器40b等的 寄存器40來可選地完成。在這種例子中,將具有與各端口 38 (以及計算機 12可嘗試與之通信的任何其它潛在實體,例如存儲器、外部通信端口等) 相對應的位的數(shù)據(jù)預載入所指代的寄存器40。例如,在特定寄存器40中, 四位中的各位可以對應于上端口 38a、右端口 38b、左端口 38c或下端口 38d 中的各端口。在這些位的位置中的任意位置存在"1"的情況下,通過對應 的端口 38將通信設置為繼續(xù)進行。
緊接著的例子采用計算機12e嘗試向計算機12c寫的通信,盡管該例子 適用于在任意相鄰計算機12之間的通信。當在寫計算機12e中執(zhí)行寫指令 時,選中的寫線20被設置為高(在該例子中,是計算機12e與12c之間的 寫線20)。如果對應的讀線18已經(jīng)為高,則通過所選中的通信端口 38馬 上將數(shù)據(jù)從選中的位置發(fā)送出去。作為替換地,如果對應的讀線18還不為 高時,則計算機12e筒單地停止操作,直到對應的讀線確實變高為止。這里 先前已經(jīng)討論過當存在讀類型指令或寫類型指令時停止計算機12a (或更準 確地說是禁止計算機12a的進一步操作)的機制。簡言之,指令52的操作 碼在i4位66的位置處為'0,,因此或門60的第一或門輸入端62為低, 并且時間片定序器42不會被觸發(fā)而生成使能脈沖。關于如何在讀類型指令或寫類型指令完成時恢復計算機12e的操作,機 制如下當計算機12e和12c之間的讀線18和對應寫線20均為高時,則兩 條線18和20分別被將相應線保持為高的相應計算機12中的各計算機12釋 放。(在該例子中,發(fā)送計算機12e將寫線20保持為高,而接收計算機12c 會將讀線18保持為高)。然后,接收計算機12c將兩條線18和20拉低。 在實際應用中,接收計算機12c可以在發(fā)送計算機12e釋放寫線20之前嘗 試將線18和20拉低。然而,由于線18和20被拉高,且只能微弱地保持(鎖 存)為低,因此將線18或20拉低的任何嘗試實際上都不會成功,直到線 18或20被將其鎖存為高的計算機12釋放為止。
當數(shù)據(jù)總線16中的兩條線18和20均被拉低時,則這是"確認"條件。 計算機12e和12c中的各計算機在接收該確認條件之后,將其自身的確認線 72設置為高。如從圖5的視圖中可以看出的,確認線72提供給第二或門輸 入端64。由于到任意或門60輸入端62或64的輸入都會使或門60的輸出 變高,所以這將以這里先前所述的方式來發(fā)起時間片定序器42的操作,使 得將執(zhí)行指令字48的下一個時間片54中的指令52。確認線72保持為高, 直到下一條指令52被解碼為止,從而防止偽地址到達地址總線。
當正在被執(zhí)行的指令52位于指令字48的時間片三的位置時,無論如何, 計算機12將提取下一個等待的十八位指令字48,當然除非i4位66為'0,。 在實際應用中,可以包括用于"預提取"指令的方法和裝置,使得可以在指 令字48中所有指令52的執(zhí)行結束之前開始該提取。然而對于異步數(shù)據(jù)通信 來說這也不是必需的。
已經(jīng)詳細描述了計算機12e向計算機12c寫的以上例子。如根據(jù)以上討 論可以認知的,無論計算機12e首先嘗試向計算機12c寫還是計算機12c首 先嘗試從計算機12e讀取,其操作基本相同。操作在計算機12e和12c都就 緒之后才會完成,而且無論計算機12e還是計算機12c首先就緒,該首先就 緒的第一計算機12簡單地"進入睡眠',,直到另一個計算機12e或12c完 成傳輸為止。實際上,考慮上述處理的另一種方式是,當寫計算機12e和接收計算機12c分別執(zhí)行寫指令和讀指令時,它們均進入睡眠,但是當讀線18 和寫線20都為高時,最后進入事務處理的計算機幾乎瞬時再度醒來,而發(fā)
起事務處理的第一計算機12會幾乎無限期地保持睡眠,直到第二計算機12
做好完成處理的準備為止。
當正在被執(zhí)行的指令52位于指令字48的時間片三的位置時,無論如何, 計算機12將提取下一個等待的十八位指令字48,當然除非i4位66為'0'。 在實際應用中,可以包括用于"預提取,,指令的方法和裝置,使得可以在指 令字48中所有指令52的執(zhí)行結束之前開始該提取。然而對于異步數(shù)據(jù)通信 來說這也不是必需的。
已經(jīng)詳細描述了計算機12e向計算機12c寫的以上例子。如根據(jù)以上討 論可以認知的,無論計算機12e首先嘗試向計算機12c寫還是計算機12c首 先嘗試從計算機12e讀取,其操作基本相同。操作在計算機12e和12c都就 緒之后才會完成,而且無論計算機12e還是計算機]2c首先就緒,該首先就 緒的首個計算機12筒單地"進入睡眠,,,直到另一個計算機12e或12c完 成傳輸為止。實際上,考慮上述處理的另一種方式是,當寫計算機12e和接 收計算機12c分別執(zhí)行寫指令和讀指令時,它們均進入睡眠,但是當讀線18 和寫線20都為高時,最后進入事務處理的計算機幾乎瞬時再度醒來,而發(fā) 起事務處理的首個計算機12會幾乎無限期地保持睡眠,直到第二計算機12 做好完成處理的準備為止。
根據(jù)對程序和用于完成該程序的手段的以上討論,現(xiàn)在可以理解對背景 方法的例子的以下簡單描述。圖6為描繪該方法例子的流程圖74。在'發(fā) 起通信,操作76中, 一個計算機12執(zhí)行使其嘗試與另一計算機12通信的 指令52。該指令可以是對寫的嘗試或對讀的嘗試。在通常與'發(fā)起通信' 的操作76同時發(fā)生的'將第一線設置為高,操作78中,將讀線18或寫線 20設置為高(取決于首個計算機12是嘗試讀還是嘗試寫)。作為"將第一 線設為高,,操作78的一部分,如此操作的計算機12將如這里先前所詳細描 述的。在'將第二線設置為高'操作80中,第二線(寫線20或讀線18)被第二計算機12設置為高。在'傳送數(shù)據(jù)操作'82中,在數(shù)據(jù)線22上發(fā) 送并接收數(shù)據(jù)(或指令等)。在'拉低線,操作84中,釋放讀線18和寫線 20,然后將該讀線18和寫線20拉低。在'繼續(xù)'操作86中,確認條件使 計算機12恢復它們的操作。在本例子的情況下,確認條件產(chǎn)生確認信號88 (圖5),在這種情況下該確認信號88僅僅是確認線72的"高"條件。
圖7為示出圖1和圖2中計算機12的計算機陣列10的一部分100的詳 細視圖,因為該部分IOO屬于根據(jù)本發(fā)明的示例性實施例。為了強調該部分 100采用了本發(fā)明的實施例,計算機(節(jié)點、核等)現(xiàn)在仍然被稱作CPU 12。
如圖7所示,中心CPU 12通過相應的數(shù)據(jù)總線16連接到鄰居CPU 12a、 12b 、 12c和12d,每條數(shù)據(jù)總線16都包括讀線18 、寫線20和十八條數(shù)據(jù)線 22。然而,在CPU 12中,總線16內部連接,如果同時有至少兩個端口 38 待讀取,則CPU 12會創(chuàng)建未定義的硬件狀態(tài)。在軟件設計中應當考慮這種 情形,以允許從這些狀態(tài)中復原。
CPU 12e具有其自身的存儲器102 (例如圖3所示的RAM 24和ROM 26),該存儲器102可以包含其自身的軟件104。 CPU 12e還具有一套寄存 器40,以包含用于操作的操縱指針。這些寄存器包括用于數(shù)據(jù)操作的A寄 存器40a和B寄存器40b、用于保持程序指針的P寄存器40c,以及I/0控 制和狀態(tài)寄存器(1OCS寄存器40d)(也見圖3)。
圖8a-f為示出可在圖7中部分100的CPU 12中使用的端口地址解碼的 總體的表格圖。圖8a示出當寄存器40中的地址位108被設置為'T'時, 寄存器40通常對一個以上端口 38進行尋址。相反地,未示出,當?shù)刂肺?108為"0"時,寄存器40對存儲器102中的位置進行尋址。當?shù)刂肺?08 被設置為高時,接下來的八位充當選擇位110,選擇位110指出哪個或哪些 特定的端口 38被選中,且它們是待被讀還是待被寫。因此,對于CPU 12e 中的寄存器40,"右"指示右側或東側鄰居CPU 12a,"下"指示下側或南 側鄰居CPU12b,"左"指^左側或西側鄰居CPU 12c,且"上"指4、上側 或北側鄰居CPU 12d。針對"RR,,動作而設置的選擇位110指示即將到來的讀請求,而針對"WR"動作而設置的選擇位110指示即將到來的寫請求。
注意,為了一致且最小化混淆,我們在此堅持一般的慣例高值或'T, 表示真條件,低值或"0"表示假條件。然而,這并不是必要條件,并且可 以使用替代的慣例。例如,CPU 12的某些當前優(yōu)選實施例在RR位的位置 使用"0"來表示真,在WR位的位置使用"1"表示真。
順便應該注意到,該端口地址解碼方法還允許將地址位108設置為"1", 并且不設置選擇位110。這可以有利地用來對CPU 12中的其它元件進行尋 址。例如,可以以這種方式對IOCS寄存器40d進行尋址。
在CPU 12的本實施例中,IOCS寄存器40d使用相同的端口地址排列 來報告端口 38的讀線18和寫線20的當前狀態(tài)。這使得IOCS寄存器40d 中的這些相應位有助于允許對1/0 4乘作狀態(tài)的編程測試。例如,與其CPU 12e 從CPU 12b中異步讀取,其中如果CPU 12b尚未將共用的寫線20設置為高, 則CPU 12e會進入睡0民,倒不如CPU 12e測試IOCS寄存器40d中位13 (下 /WR)的狀態(tài)(反映將CPU 12b連接到CPU 12e的寫線20的狀態(tài)),并轉 移到來自CPU 12b的就緒數(shù)據(jù)且立即讀取或轉移到另一條指令且立即執(zhí)行。
圖8b示出簡單的第一例子。這里設置針對右/RR的選擇位110,指示待 從端口38b讀取數(shù)據(jù)。圖8c示出筒單的第二例子。這里設置針對右/WR的 選才奪位110,現(xiàn)在指示^f寺寫入端口 38b。
習慣上在任何給定的時段,只可以使能一個選擇位110來指定單個端口 38和單個動作(讀或寫)。然后若干個高位被解碼為錯誤條件。然而,在 此公開的新穎方法并不遵從該習慣,而是可以同時有利地使能針對端口 38 的一個以上選擇位110,從而請求若干個讀和/或寫操作。在這種情況下,所 有相應端口 38上會給出數(shù)據(jù),包括給出新數(shù)據(jù)的信號。
圖8d-f示出若干個讀和/或寫"t喿作的一些例子。圖8d示出CPU12e中的 寄存器40可以以何種方式并發(fā)指定從CPU 12b的讀取和對CPU 12a的寫。 圖8e示出可以以何種方式并發(fā)指定從CPU 12b的讀耳又和對CPU 12c的寫。 圖8f示出指定從CPU 12b的讀取和對CPU 12a或CPU 12c的寫。(如預示的,人們可以將圖8d-f與圖9進行比較,在圖9中數(shù)據(jù)傳輸路徑由箭頭132 和134來代表。)
在多寫期間的實踐中,CPU 12e將在與一個以上目標CPU 12a、 12b、 12c或12d共用的總線16上給出數(shù)據(jù)并將寫線20設置為高。然后,源CPU 12e會等待,直到接收到數(shù)據(jù)已經(jīng)被讀取的指示為止。在某些最終意義上來 說,可假定地, 一個以上目標CPU 12a、 12b、 12c或12d在與CPU 12e共 用的總線16上將相應的讀線18i殳置為高。然后,目標CPU 12正式讀取4丈 據(jù),并在與CPU 12e共用的總線16上將相應讀線18和寫線20拉j氐,,人而 確認來自CPU 12e的數(shù)據(jù)的接收。
圖9為描繪圖7和圖8d-f所示的多寫方法可以以何種方式具體與一個 數(shù)據(jù)字120中包括多達四條指令的能力相結合的示意性框圖。各指令通常是 五位,所以18位寬的數(shù)據(jù)字120容納大約四條指令。于是最后一條指令可 以只有三位,但這對于許多指令已足夠。該方法的一個值得注意的有利方面 是它允許使用非常高效的數(shù)據(jù)傳輸機制。
在下文中,@=提取,!=存儲,且p是指"程序計數(shù)器"或P寄存器40c。 在@ +和*+中的"+"是指在執(zhí)行之后寄存器中的存儲器地址遞增,除非如 果寄存器內容指向另一寄存器或端口,該寄存器內容不被遞增。這樣,在后 者這些情況下的"+"將這些指令區(qū)分為"專用的",而不是通常的⑨p和!p 指令。
圖9給出單個指令序列程序如何將數(shù)據(jù)從一個CPU 12傳輸?shù)搅硪?CPU 12的例子,該程序可以包括在僅利用用來讀和寫數(shù)據(jù)的P寄存器40c的單 個18位的數(shù)據(jù)字120中。這里"@p+"是時間片零54a中裝載的指令122。 這是從P寄存器40c中指定的當前地址中提取下一個18位數(shù)據(jù)字120的直 接量操作,將該數(shù)據(jù)字120壓入數(shù)據(jù)棧34。[而且,通過將P寄存器40c中 的地址遞增,除非當?shù)刂肥轻槍拇嫫骰蚨丝跁r才不遞增,這里P寄存器 40c中地址位108會指示正在指定端口。]接下來,"."是時間片一 54b中 裝載的指令124。這是不執(zhí)行任何操作的筒單的iwp操作(無操作)。而且接下來,"!p+"是時間片二 54c中裝載的指令126。這是將頂部的數(shù)據(jù)字 120從數(shù)據(jù)堆棧34中彈出、并將該數(shù)據(jù)字120寫入P寄存器40c中所指定 的當前地址的存貯操作。注意,P寄存器40c中所指定的地址沒有改變,其 僅是在功能上使不同的鄰居CPU 12被訪問而已。最后"unext"是時間片三 54d中裝載的指令128。這是根據(jù)返回堆棧28的頂部是否為零來執(zhí)行不同的 操作的微下一步(micro-next)操作。當返回堆棧28不為零時,微下一步使 返回堆棧28遞減,使在當前所高速緩存的數(shù)據(jù)字120的時間片零54a中的 指令處(即在這里的例子中,再次在指令122處)繼續(xù)執(zhí)行。尤其應該注意, 這里使用微下一步不需要提取新的數(shù)據(jù)字120。相反,當返回堆棧28為零 時,微下一步從P寄存器40c中所指定的當前地址中提取下一個數(shù)據(jù)字120, 并使執(zhí)行在該新的數(shù)據(jù)字120的時間片零54a中的指令處開始。
針對該特定的例子,P寄存器40c可以被裝載以101100000b,且返回堆 棧28的頂部可以包含101b(十進制的5 )。由于P寄存器40c包含101100000b
(見例如圖8a和圖8d),因此這里指令122中的"@p+"指令CPU 12e從 CPU 12b讀取(通過其端口 38d)下一個數(shù)據(jù)字120,并將讀取的數(shù)據(jù)字120 壓入數(shù)據(jù)堆棧34。不過,由于P寄存器40c中的地址是針對端口的,因此 不會遞增。這里指令124中的" " nop僅僅是填充器,用來填滿18位當前 數(shù)據(jù)字120。接下來,由于P寄存器40c仍然包含101100000b,這里指令 126中的"!p+"指令CPU 12e彈出數(shù)據(jù)棧34的頂部數(shù)據(jù)字120 (即由指令 122置入的數(shù)據(jù)字120 ),并將該數(shù)據(jù)字120 (通過端口 38b )寫入CPU 12a。 再次,由于P寄存器40c中的地址是針對端口的,因此該地址不會遞增。然 后,指令128中的"unext"使返回堆棧28縮減到100b (十進制的4 ),并 在指令122處繼續(xù)執(zhí)行。并且,指令122、 124、 126和128中的單個字程序 以這種方式繼續(xù),將返回堆棧28縮減到01 lb、 OlOb、 001b,最終縮減到000b
(十進制的0),從CPU 12b提取下一數(shù)據(jù)字120,并執(zhí)行這個新數(shù)據(jù)字120 的時間片零54a中的指令。
總之,在這里的例子中的P寄存器40c被裝載以指定源和目的(端口38d和38b,以及CPU 12b和12a)的一個地址值,返回堆棧28被裝載以迭 代計數(shù)(5)。然后,通過CPU 12e有效地傳輸("流水線地")五個數(shù)據(jù) 字120,然后CPU 12e在也由CPU 12b提供的第六數(shù)據(jù)字120的時間片零 54a中的指令處繼續(xù)執(zhí)行。
各種其它優(yōu)勢是使用該簡單但一流的方法的結果。例如,不需要使用A 寄存器40a和B寄存器40b,從而使得A寄存器40a和B寄存器40b可由 CPU 12e針對其它的數(shù)據(jù)目的而使用。從此得出,當進行數(shù)據(jù)傳輸時,可以 消除指針交換(除雜)。
例如,針對數(shù)據(jù)流水線技術的傳統(tǒng)軟件例程會在某個點從輸入端口讀取 數(shù)據(jù),并在另一個點將數(shù)據(jù)寫入輸出端口。為此,除了正在使用的相應輸入 端口和輸出端口的指針外,還需要指向存儲器的至少一個指針。由于端口可 能有不同的地址,因此這里繼續(xù)進行的最直接方式會是使用直接量指令將輸 入端口地址載入堆棧,將該地址置入尋址寄存器,從輸入端口進行讀取,然 后使用直接量指令將輸出端口的地址載入堆棧,將該地址置入尋址寄存器, 并對輸出端口進行寫。
該方法中兩次直接量載入各需要4個周期,兩個寄存器設置指令各需要 l.個周期。即在環(huán)路內部設置輸入和輸出指針總共花費10個周期。此外, 當需要這種指針交換時會有額外損失,因為在環(huán)路內部需要三個字的存儲空 間,從而不允許使用包含在單個18位字中的環(huán)路。相應地,該例子中的指 令環(huán)路將需要具有存儲器訪問的分支,這增加了 4個周期的進一步開銷,且 使總的指針交換和環(huán)路開銷至少為14個周期。
然而,相反,由于可以在CPU 12中進行多端口尋址,用于選擇輸入端 口 38和輸出端口 38兩者的地址可以纟皮裝載到I/O環(huán)^^的外部,且可用于輸 入和輸出兩者。由于在多端口讀取期間僅來自一個鄰居的數(shù)據(jù)被讀取,且多 端口寫期間僅一個鄰居在讀取,因此該方法可以運行。這樣,就不需要傳統(tǒng) 中設置輸入和輸出指針所花費的環(huán)路內部的14個周期的開銷。該環(huán)路仍然 具有讀指令和寫指令,但是現(xiàn)在這些指令都可以使用同一指針,所以指針不需要改變。
這意味著使用多端口寫技術可以將某些類型的I/O環(huán)路的開銷減少14 個周期(或更多)。發(fā)明人已經(jīng)觀察到,在最好情況下,該技術允許在CPU 12的處理環(huán)路中從23個周期減少到6個周期。在一個周期需要大約一納秒 的情況下,這表示有效處理器速度從43MHz提高到167MHz,這表示相當 可觀的改進。
現(xiàn)在簡要地繼續(xù)圖8f,并重新繼續(xù)圖9,圖8f和圖9示出可以以何種 方式進行多寫,甚至是使用單字程序來進行多寫。這里CPU 12e從CPU 12b 讀取,并寫入CPU 12a或CPU 12c。在效果上,這里的流水線技術為CPU 12a 或CPU 12c首先可用。該流水線技術圖示出在CPU 12中可能增加的靈活性, 且僅僅是以何種迄今認為過于困難或不切實際的方式來使用根據(jù)本發(fā)明的 CPU 12的一個可能的例子。
總之,CPU 12必須處理對端口 38的讀取和到端口 38的跳轉。在/人多 端口地址讀取或向跳轉到多端口地址時,如果沒有正在執(zhí)行的顯式代碼用來 發(fā)現(xiàn),則無法得知數(shù)據(jù)或指令是從哪個端口 38獲得的。(最快的方式依賴 于對兩個CPU 12都相同的端口 38。)傳統(tǒng)上,由于不同的數(shù)據(jù)或代碼可能 來自不同的端口,因此這個問題被看作是要避免的問題。然而,在假定的協(xié) 同環(huán)境下,發(fā)明人已經(jīng)找出如何將一切變?yōu)槔?。并且本發(fā)明就是這種情況。
如果CPU 12從多端口地址中執(zhí)行,且所有尋址鄰居CPU 12協(xié)同地(即 同步地)寫, 一個鄰居CPU 12可以供應指令流,而不同的CPU12提供直 接量數(shù)據(jù)。直接量提取操作碼(@p+)產(chǎn)生可以選擇性地(并不同所有的直 接量都需要這樣做)滿足不同鄰居CPU 12的從P寄存器40c中多端口地址 的讀取。這僅僅需要鄰居CPU 12之間的廣泛"協(xié)同"。
然而,在流水線的多端口4吏用時,在一個鄰居CPU 12正在讀耳又,而一 個CPU 12正在寫的情況下,對同一多端口地址的讀取和寫不會產(chǎn)生問題。 跳轉到這種多端口地址并執(zhí)行直接量存貯操作碼(!p+)的思想允許P寄存 器40c在完全安全的情況下對兩個端口 38進行尋址。這使A寄存器40a和B寄存器40b均空閑,可為本機使用。
可以在不改變本發(fā)明的實施例的值或范圍的情況下,對其進行各種額外 的修改。例如,雖然這里在讀指令和寫指令方面對該發(fā)明進行了描述,但是 在實際應用中,可以存在至少兩種讀類型指令和/或至少兩種寫類型指令。 僅作為一個例子,在本發(fā)明的一個實施例中,存在使寄存器遞增的寫指令和 不使寄存器遞增的其它寫指令。類似地,可以根據(jù)使用哪個寄存器40來選
擇通信端口 38等而改變寫指令,如這里先前所描述的。還可以存在若干不 同的讀指令,僅取決于計算機12的設計者認為哪種改變是作為替換的讀行
為的有用選項。
類似地,盡管在這里已經(jīng)關于單個電路小片14上的陣列IO中的計算機 12之間的通信描述了本發(fā)明的實施例,但相同的原理和方法可用于或被修 改為用于完成其它器件間通信,例如計算機12與其專用存儲器之間的通信, 或陣列10中的計算機12與外部器件之間的通信(通過輸入/輸出端口等)。 實際上,預計到, 一些應用可能需要陣列的陣列一利用當前描述的器件間通 信方法潛在地適用于陣列的陣列中的通信。
盡管這里已討論了創(chuàng)造性計算機陣列10和計算機12的具體例子,但是, 預期將存在很多還無法想象的應用。實際上,本發(fā)明的一個優(yōu)勢在于本創(chuàng)造 性方法及裝置可以適于大量使用。
本發(fā)明還提供一種計算機程序,當該計算機程序在合適的計算機上運行 時,使該計算機實施在此之前所描述的創(chuàng)造性方法。該程序可以位于載體上。 該載體可以是存貯介質或信號。該存貯介質可以是記錄介質或在其它例子中 的存儲設備。
上面的所有僅是本發(fā)明的可用實施例的 一些例子。本領域技術人員將容 易看出可以在不脫離本發(fā)明的精神或范圍的情況下,進行大量其它的修改和 變動。相應地,這里的公開內容目的不意在限定,且所附的權利要求被解釋 為包含本發(fā)明的全部范圍。
2權利要求
1. 一種計算機,包括將該計算機連接到其它器件的多條數(shù)據(jù)路徑;以及具有位的寄存器,所述位可編程設置為對所述多條數(shù)據(jù)路徑中的各條數(shù)據(jù)路徑進行尋址,使得該計算機可以通過所述多條數(shù)據(jù)路徑中作為所述位并發(fā)設置的基礎的若干條數(shù)據(jù)路徑來進行通信。
2、 根據(jù)權利要求1所述的計算機,其中所述寄存器具有分別將所述 其它器件表示為該計算機可以從中讀取數(shù)據(jù)的源器件的情況和將所述其它 器件表示為該計算機可以將數(shù)據(jù)寫入的目的器件的情況的位,從而允許用所 述寄存器中的單 一 地址來兼表示由該計算機傳送的數(shù)據(jù)的源器件和目的器 件雙方。
3、 根據(jù)權利要求1或2所述的計算機,其中 該計算機包括堆棧存貯元件;并且該計算機僅采用所述寄存器和所述堆棧存貯元件來從所述其它器件中 的第一其它器件讀取數(shù)據(jù)并將所述數(shù)據(jù)寫入所述其它器件中的第二其它器件。
4、 根據(jù)權利要求1、 2或3所述的計算機,其中該計算機采用長度足以包括若干條指令的指令字,并可以實現(xiàn)所述指令 字中給出的所述指令的情況,所述指令字在所述數(shù)據(jù)路徑上給出;該計算機僅采用單個所述指令字中的程序、所述寄存器和堆棧存貯元件 來從所述其它器件中的第一器件讀取數(shù)據(jù)并將所述數(shù)據(jù)寫入所述其它器件 中的第二器件。
5、 根據(jù)權利要求l、 2、 3或4所述的計算機,其中該計算機通過所述數(shù)據(jù)路徑中由所述寄存器指定的第 一數(shù)據(jù)路徑來從 所述其它器件中的一個器件讀取數(shù)據(jù);并且該計算機通過所述數(shù)據(jù)路徑中由所述寄存器并發(fā)指定的第二數(shù)據(jù)路徑來將數(shù)據(jù)寫入所述其它器件中的另 一個不同的器件。
6、 根據(jù)權利要求5所述的計算機,其中該計算機可以從若干個所述其它器件中由所述寄存器并發(fā)指定的一個其它器件讀取數(shù)據(jù);或該計算機可以將數(shù)據(jù)寫入由所述寄存器并發(fā)指定的若干個所述其它器件;并且該計算機從所述其它器件中提供所述數(shù)據(jù)的第一其它器件讀取,并寫入 所述其它器件中接受所述數(shù)據(jù)的第二其它器件。
7、 根據(jù)前述權利要求中任一項所述的計算機,其中 所述寄存器中定義該計算機可以從中讀取的所述其它器件的所述位是讀位;所述寄存器定義該計算機可以寫入的所述其它器件的所述位是寫位; 當所述讀位被置位時,該計算機嘗試從所述其它器件中對應的所有第二其它器件讀??;并且當所述寫位被置位時,該計算機嘗試寫入所述其它器件中對應的所有第二其它器件。
8、 一種針對計算機傳送數(shù)據(jù)的方法,包括(a )針對該計算機連接到其它器件的多條數(shù)據(jù)路徑來對所述其它器件設法將該數(shù)據(jù)寫入該計算機的信號加以監(jiān)視; (b)從所述其它器件中的首個器件讀取所述數(shù)據(jù);并且 (c )基于具有可編程設置為對所述多條數(shù)據(jù)路徑進行尋址的位的寄存器,將所述數(shù)據(jù)寫入所述其它器件中的一個器件。
9、 根據(jù)權利要求8所述的方法,其中所述(a)包括僅監(jiān)視在所述寄存器中設有相應位的所述數(shù)據(jù)路徑,從 而允許用所述寄存器中的單一地址來兼表示正在被傳送的數(shù)據(jù)的源器件和 目的器件雙方。
10、 根據(jù)權利要求8或9所述的方法,其中所述(b)包括嘗試從在所述寄存器中設有相應位的所有所述其它器件讀取。
11、 根據(jù)權利要求8、 9或10所述的方法,其中所述(c)包括嘗試對所述寄存器中設有相應位的所有所述其它器件進 行寫。
12、 根據(jù)權利要求8、 9、 10或11所述的方法,其中所述(a)包括響應于接收到首個所述信號,停止所述監(jiān)視,從而保證 所述讀取來自所述其它器件中與所述首個所述信號相關聯(lián)的那個器件。
13、 根據(jù)權利要求8、 9、 10、 11或12所述的方法,其中所述數(shù)據(jù)包括 一連串數(shù)據(jù)字,并且進一步,其中所述(b)包括將各所述數(shù)據(jù)字直接從所述數(shù)據(jù)路徑中的一條數(shù)據(jù)路徑 讀入該計算機中的堆棧存貯元件;并且所述(c)包括將各所述數(shù)據(jù)字直接從所述堆棧存貯元件寫入所述數(shù)據(jù) 路徑中的 一條數(shù)據(jù)路徑。
14、 根據(jù)權利要求8至13中任一項所述的方法,其中該計算機采用長 度足以包括若干條指令的指令字,并且進一步,其中所述(b)和所述(c)包括僅采用單個所述指令字中的程序、所述寄存 器和堆棧存貯元件。
15、 根據(jù)權利要求14所述的方法,進一步包括接收所述數(shù)據(jù)路徑中的 一條數(shù)據(jù)路徑上的所迷單個所述指令字。
16、 一種計算機程序,該計算機程序在合適的計算機上運行,使該計算 機實施根據(jù)權利要求8至15中任一項所述的方法。
全文摘要
計算機(12)具有連接到其它器件的多條數(shù)據(jù)路徑(38a-d),所述其它器件可以是類似的計算機。提供具有位(110)的寄存器(40d),所述位可編程設置為對各條數(shù)據(jù)路徑進行尋址,從而使該計算機可以通過所述數(shù)據(jù)路徑中作為所述位并發(fā)設置的基礎的若干條數(shù)據(jù)路徑來進行通信。可選擇地,該計算機中的若干個計算機可以串聯(lián)連接(稱為流水線)或以形成陣列(10)的方式連接。
文檔編號G06F9/38GK101295241SQ20081009408
公開日2008年10月29日 申請日期2008年4月25日 優(yōu)先權日2007年4月27日
發(fā)明者約翰·W·瑞博 申請人:科技資產(chǎn)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1