新四季網

用於監控計算機的輸入的方法和裝置的製作方法

2023-04-29 11:48:01 3

專利名稱:用於監控計算機的輸入的方法和裝置的製作方法
技術領域:
本發明涉及計算機和計算機處理器領域,更具體地說,涉及一種允許計 算機執行從外部源接收到的指令而不需要先存儲所述指令的方法和裝置,以 及一種利用該方法和裝置來促進計算機之間的通信和計算機使用另 一計算 機的可用資源的能力的相關方法。本創造性直接執行方法和裝置的當前主要 應用是,在單個微晶片上與多臺計算機相結合,其中操作效率很重要,這不 僅是因為提高操作速度的需要,而且還因為更高效率所導致的省電和降低熱 量的緣故。
背景技術:
在計算領域,處理速度是一種非常期望的品質,因此對創建更快計算機 和處理器的探索一直在進行。不過,在業界,通常公認的是,提高微處理器 速度的極限正被迅速逼近,至少對於利用目前已知的技術而言。因此,利用 多處理器通過分享處理器中的計算任務來提高整體計算速度越來越引起大 家的興趣。
多處理器的使用趨於需要處理器之間的通信。實際上,在處理器之間可 能存在足夠大量的通信,以致相當大的一部分時間花費在在處理器之間傳輸指令和數據。在這種通信量相當大的情況下,每條為了實現通信所必須被執 行的附加指令,在處理過程中設置了一種遞增的延遲,其累積起來可能是相
當大的。將指令或數據從一臺計算機傳送到另 一 臺計算機的常規方法包括 首先將數據或指令存儲在接收計算機中,隨後調用數據或指令以用於在所述 計算機上執行(在為指令的情況下)或者操作(在為數據的情況下)。
減少在計算機之間傳送、接收、然後使用數據或指令格式的信息所需的 步驟數,將是很有用的。不過,據發明人所知,沒有任何現有技術系統以有 效的方式來簡化上述處理過程。
而且,在現有技術中,已知的是,有時必需"引起計算機的注意"。也 就是說,有時候即使計算機可能忙於一個任務,但仍可能需要另一對時間敏 感的任務,即可能必需使計算機暫時從第一任務移開。這種示例包括但不限 於,用戶輸入設備用於將輸入提供給計算機的情況。在這些情況下,計算機 可能需要暫時對輸入進行確認和/或根據輸入進行響應。然後,計算機繼續 在輸入之前正在進行的工作,或者基於該輸入改變正在進行的工作。儘管在 此處使用外部輸入作為示例,不過當在計算機內部各方面之間存在用於引起 ALU注意的潛在沖突時,也發生相同的狀況。
當從I/O埠接收數據或狀態改變時,在現有技術中已存在兩種可用的 方法。 一種是"輪詢"該埠 ,這包括以固定的間隔讀取埠的狀態,以確 定是否已接收到任何數據或者狀態是否改變。不過,輪詢埠耗費相當多的 時間和資源,而這些時間和資源用做其它事情通常可能更好。通常,較佳的 可選方案是使用"中斷"。當使用中斷時,處理器可以著手執行被分配給它 的任務,並且當I/O埠/設備需要由已接收到字節或狀態已經改變這樣的事 實所指示的注意時,I/O埠/設備將中斷請求(IRQ)發送到處理器。 一旦 處理器接收到中斷請求,就結束其當前指令,將少數事情放在堆棧中,並執 行適當的可以從埠移動字節並將其放置在緩衝器中的中斷服務例程 (ISR)。 一旦ISR結束,處理器就返回至它離開的位置。利用這種方法, 處理器不必要浪費時間來查看1/0設備是否需要注意,而是僅在設備需要注意時提供中斷服務。不過,在許多情況下,使用中斷本身遠達不到期望,這 是由於可能存在大量的與使用中斷有關的開銷。例如,每次當中斷發生時, 計算機可能不得不暫時存儲一定的與它之前試圖實現的任務有關的數據,然 後載入有關中斷的數據,再然後一旦處理完中斷,就再載入先前任務所需的 數據。很明顯,希望減少或消除所有這種時間和資源的消耗開銷。不過,還 沒有開發出任何可緩解這種中斷需要的現有技術方法。

發明內容
因此,本發明的一目的在於,提供一種在兩臺或更多計算機之間傳送數 據和/或指令的情況下用於提高操作速度的裝置和方法。
本發明的另 一 目的在於,提供一種用於廉價地提供相當大計算能力的裝 置和方法。
本發明的再一目的在於,提供一種用於在最小量的時間內實現計算量密 集任務的裝置和方法。
本發明的又一目的在於,提供一種產生大量處理能力的計算機裝置。 本發明的另一目的在於,提高計算機與計算機可控設備之間的通信效率。
本發明的再一目的在於,提高計算機之間的通信效率。
本發明的又一目的在於,提高計算機彼此之間以及與諸如用戶輸入設備 之類的其它設備之間的通信方式的效率。
簡要地說,本發明的已知實施例是本身具有存儲器以便能獨立發揮計算 功能的計算機。在本發明的一個實施例中,多臺計算機被排列成陣列。為了 協作實現任務,計算機必須能彼此之間傳遞數據和/或指令。由於所有同時 工作的計算機通常將提供較之大多任務所需的計算能力大得多的計算能力, 並且由於任何用於在數個計算機之間分配任務的算法或方法將幾乎肯定導
致分配不平均,因此可以預期的是,至少一些而且可能是大多數的計算機不 可能在給定的時間活躍地參與任務的實現。因此,希望找到一種方法,對於可用的但還未使用的計算機而言,通過"借出"計算資源、存儲器或者將二 者都"借出"來用於幫助它們更忙碌的鄰居。為了使這種關係有效且有用, 將進一步希望相鄰計算機之間的通信和交互應該儘可能的快速和有效。因 此,本發明提供一種這樣的裝置和方法,即計算機執行直接從另一臺計算機 提供的指令和/或作用於數據,而不是在這樣的動作之前不得不接收然後存 儲數據和/或指令。需要注意的是,該發明對於這樣的指令也是有效的,即 用作媒介以促使一計算機將指令或數據從另一計算機"傳遞"到又一計算機 的指令。
在所描述的實施例中,為了防止不必要的功耗和不必要的放熱,當計算 機試圖與它的一個或多個鄰居通信時,將處於 一種基本上不消耗任何功率的 休眠模式,直到該鄰居或多個鄰居中的一個運行起來完成通信。不過,這不 是本發明的必要方案。此外,為了實現所期望的省電和降低放熱,所需要的 是,啟動的計算機在等待通信完成的同時,停止或者至少明顯降低其功耗。 可以想像的是,這可以通過許多手段中的任一種手段來實現。例如,如果計 算機由內部或者外部時鐘來定時,那麼在那段時間可以調慢或停止時鐘。實 際上,所預期的是,儘管目前所描述的實施例現在是發明人已知的最佳且最 有效的實施例,但是由於某種原因而處於本發明的範圍之外的實施例也可能 被執行。
此處所描述的本發明的一個方案是,指令和數據得到基本相同的處理, 而不論它們的來源是計算機的內部存儲器還是這樣的指令和數據正被接收 自諸如另一計算機、外部通信埠之類的另一來源。這是顯而易見的,因為 諸如存儲數據或指令、然後從內部存儲器再調用它們之類的"附加"操作是 不必要的,從而減少了所需要的指令數,並提高了涉及到的計算機的操作速 度。
所描述實施例的另一方案在於,非常小的指令組通常可以同時被傳送到 另 一計算機,以致需要重複迭代的相對簡單的操作可以被快速且容易地實
現。這將大大加快計算機之間的通信過程。
8所描述實施例的又一方案在於,由於存在一些可用於執行各種任務的計 算機,並且由於一臺或多臺計算機可以被設置成處於等待輸入的同時基本上 不使用任何功率的休眠狀態,因此這樣的計算機可以被分配以等待輸入的任 務,從而減少或消除使可能正實現其它任務的其它計算機"中斷"的需要。
如同此處所描述的和在附圖的幾幅圖中所圖示的 一樣,考慮到對執行本 發明的模式和其工業實用性的說明,對於本領域的技術人員來說,本發明的 這些和其它目的和優點將變得清楚。所列出的目的和優點不是本發明所有可 能優點的窮盡列舉。而且,即使在一個或多個預計目的和/或優點在實際應 用中可能缺少或者不需要的情況下,也將可能實現本發明。
進一 步地,本領域的技術人員應該認識到本發明的各種實施例可以實現 所描述的目的和/或優點中的一個或更多,但沒有必要是全部。因此,這裡 所描述的目的和/或優點不是本發明的必要元素,也不應該作為限制來解釋。


圖1是根據本發明的計算機陣列的簡圖2是示出圖1計算機的子集和圖1中互連數據總線的更多詳情的詳細視
圖3是描述圖1和圖2中的一臺計算機的通用布局的框圖4是根據本創造性申請的指令字的圖示;
圖5是圖3中的時段定序器(slot sequencer) 42的示圖6是描述根據本發明的微循環示例的流程圖7是描述用於執行來自埠的指令的創造性方法的示例的流程圖8是描述用於提醒(alert)計算機的創造性改進方法的示例的流程和
圖9是圖示用於喚醒非活躍的處理器並將輸入數據從已喚醒的處理器發送 到可操作地處理輸入數據的執行處理器的方法的流程圖。
具體實施例方式
在以下描述中,將參照附圖對本發明進行說明,在附圖中相同的標記表 示相同或相似的元件。雖然按照用於實現本發明目的的方式對本發明進行描 述,但是本領域的技術人員應該理解的是,可以根據這些所教授的東西在不 脫離本發明的精神或範圍的情況下做出各種修改。
此處所描述和/或在附圖中所示的本發明的實施例和變形,^f又通過示例 的方式被呈現出來,並不用於限制本發明的範圍。除非以另外的方式具體指 出,否則本發明的各個方案和部件都可以被省略或修改,或者因此可以替代 已知的等價物,或者作為還未知的替換物,例如將來開發出來的或者在將來 發現的可接受的替換物。本發明還可以在處於所要求發明的精神和範圍之內 的同時,針對多種實際應用進行修改,因為潛在應用的範圍很廣闊,還因為 本發明本就旨在適於多種這類變形。
已知的用於實現本發明的模式是各個計算機的陣列。該陣列在圖1的簡
圖中被描述,並且在此處總地用附圖標記IO表示。計算機陣列IO具有多個 (在所示示例中,為24個)計算機12 (在陣列示例中,有時也稱作"核" 或"節點")。在所示的示例中,所有計算機12都位於單個晶片(die) 14 上。根據本發明,每個計算機12通常都是獨立運行的計算機,這在下文中 將更詳細地論述。計算機12通過多條(該數量將在下文中更詳細地論述) 互連數據總線16互連。在該示例中,數據總線16是雙向、異步、高速、並
在本實施例的陣列10中,不僅計算機12之間的數據通信是異步的,而且各 個計算機12內部也以異步模式運行。這些已經由本發明人發現,從而提供 重要的優勢。例如,由於時鐘信號不必要被分布在整個計算機陣列10上, 因此就很省電。此外,不必發布時鐘信號消除了許多定時問題,這些定時問 題可能限制陣列10的尺寸或可能導致其它公知的麻煩。而且,各個計算機 異步運行的事實,節省了大量的功率,這是由於每臺計算機不執行指令時,將基本上不使用任何功率,原因在於其中不運行任何時鐘。
本領域的技術人員應該認識到,出於清晰的考慮,晶片14上的額外部
分在圖i的視圖中被省略了。這些額外部分包括電力總線、外部連接^r建盤和 微處理器晶片的其它這類公共方面。
計算機12e是一臺不位於陣列10的周界上的計算機12的示例。也就是 說,計算機12e具有四個垂直相鄰的計算機12a、 12b、 12c和12d。作為示 例,對計算機12a-12e進行的這種分組將在下文中用於對陣列10的計算機 12之間的通信進行更為詳細的討論。在圖1的示圖中可以看到的是,例如 計算機12e的內部計算機將具有經由總線16與其直接通信的其它四臺計算 機12。在下面的論述中,所論述的原理將適用於所有計算機12,除了位於 陣列IO周界上的計算機將僅與其它三臺計算機12直接通信之外,還除了邊 角計算機12將僅與其它兩臺計算機12直接通信。
圖2是圖1的一部分的更為詳細的視圖,其僅僅示出了一些計算機12, 具體而言,僅僅包括計算機12a-12e。圖2的示圖還揭示出每條數據總線 16均具有讀取線18、寫入線20和多條(在該示例中,為18條)數據線22。 數據線22能夠幾乎同時地並行傳輸一個18比特的指令字的所有比特。應該 注意的是,在本發明的一個實施例中, 一些計算機12是相鄰計算機的鏡像。 不過,不論計算機12是全部同一定向的或者是作為相鄰計算機的鏡像,都 不是目前所描述發明的方案。因此,為了更好地描述該發明,此處將不進一 步地論述這種潛在的複雜性。
根據本創造性的方法,例如計算機12e的計算機12可以將其讀取線18 中的一條、兩條、三條或四條都設定為高電平,以便預備從相應的一臺、兩 臺、三臺或四臺相鄰計算機接收數據。類似地,還有可能的是,計算機12 將其寫入線20中的一條、兩條、三條或四條都設定為高電平。雖然發明人 認為在同 一時刻將計算機12的不止一條寫入線20設置為高電平目前還不現 實,但是如此做法並未超出本發明的範圍,因為可以想像,這種操作的使用 在將來可能發生。
ii當相鄰計算機12a、 12b、 12c或12d中的一臺將它本身與計算機12e之 間的寫入線20設定為高電平時,如果計算機12e已經將對應的讀取線18設 定為高電平,那麼在相關數據線22上,字將從那臺計算機12a、 12b、 12c 或12d傳輸到計算機12e。然後,發送計算機12將釋放寫入線20,而接收 計算機(在該示例中,為12e)將寫入線20和讀取線18都拉低。後一動作 將向發送計算機12確認已經接收到數據。需要注意的是,上述描述意不在 於必需按次序表示事件的順序。在實際實踐中,接收計算機可以在發送計算 機12釋放(停止拉高)其寫入線20之前不久,就試圖將寫入線20設定為 低電平。在這樣的例子中,發送計算機12—旦釋放其寫入線20,寫入線20 就由接收計算機12e拉低。
在本示例中,僅有編程錯誤才會引起一條總線16相反兩端的兩臺計算 機12都試圖將其間的讀取線18設定為高電平。而且,對於一條總線16相 反兩端上的兩臺計算機12來說,試圖將其間的寫入線18同時設定為高電平 也將是一種錯誤。類似地,如上所述,目前可預見的是,不希望使單個計算 機12將其四條寫入線20中的不止一條設定為高電平。不過,目前可預見的 是,將存在這樣的機會,其中希望將讀取線18的不同組合設定為高電平, 以便一臺計算機12可以處於等待來自第一臺被選中計算機12的數據的等待 狀態,以將其相應的寫入線20設定為高電平。
在以上論述的示例中,計算機12e被描述成在相鄰計算機(選自一臺或 多臺計算機12a、 12b、 12c或12d)將其寫入線20設定為高電平之前就將其 一條或多條讀取線18設定為高電平。不過,這種過程當然可以按相反順序 發生。例如,如果計算機12e試圖寫入到計算機12a,那麼計算機12e會將 計算機12e與計算機12a之間的寫入線20設定為高電平。如果計算機12e 與計算機12a之間的讀取線18之後未被計算機12a設定為高電平,那麼計 算機12e將只是等待,直到計算機12a確實將該讀取線20設定為高電平。 然後,如上所述,當相應的一對寫入線18和讀取線20都是高電平時,待在 數據線22上傳輸的數據被傳輸。此後,發送計算機12e—旦釋放寫入線18,接收計算機12 (在該示例中,是計算機12a)就將兩個計算機(在該示例中, 是12e和12a)之間的讀取線18和寫入線20都i殳定為^^電平。
除非數據將要發送到的計算機12已經將其讀取線18設置為高,在這種 情況下,數據會被立即發送,否則,只要諸如計算機12e的計算機12已經 將其寫入線20中的一條設置為高以期望寫入,它都將僅僅等待而幾乎不耗 電,直到數據如上文所述那樣由合適的鄰近計算機12 "請求"。類似地, 只要計算機12在期望讀取過程中將其一或多條讀取線18設定為高電平,它 就只是等待而幾乎不耗電,直到連接至所選擇計算機12的寫入線20成為高 電平,以在這兩個計算機12之間傳輸指令字。
如上所述,可能存在幾種潛在的裝置和/或方法,以使得計算機12如所 描述的一樣運行。不過,在本示例中,計算機12之所以這樣運轉,僅僅是 因為它們在內部通常也異步運行(除了以所描述的異步方式在它們之間傳輸 數據之外)。也就是說,指令通常被順序地完成。當寫入或讀取指令出現時, 可以不採取任何進一步的動作,直到指令被完成(或者,或許可選地,直到 其被"重置"等中止)。在現有技術的意義中,並不存在規則的時鐘脈衝。 更確切地說,只有當正被執行的指令不是讀取型或寫入型指令(假定讀取或 寫入型指令通常需要由另一實體完成)時,或者當讀取型或寫入型的操作實 際上已經完成時,脈沖才產生以實現下一指令。
圖3是描述圖1和圖2中一臺計算機12示例的通用布局的框圖。從圖 3的示圖中可以看出,每臺計算機12 —般均為自身具有RAM 24和ROM 26 的計算機。如之前所提到的,計算機12有時還稱為單獨的"節點",在該 示例中假定它們被組合在單個晶片上。
器29)、指令區域30、算術邏輯單元("ALU"或"處理器,,)32、數據 堆棧34和用於解碼指令的解碼邏輯部分36。本領域的技術人員通常會熟悉 基於堆棧的計算機的操作,例如本示例的計算機12。計算機12是具有數據 堆棧34和分立的返回堆棧28的雙堆棧計算機。
13在本發明的該實施例中,計算機12具有四個通信埠 38,用於與相鄰 計算機12通信。通信埠 38是三態驅動器,具有截止狀態、接收狀態(用 於將信號驅動進入計算機12中)和發送狀態(用於將信號驅動出計算機12)。 當然,如果特定計算機12不像計算機12e的示例那樣位於陣列(圖1 )內部, 那麼至少為了以上所描述的目的,在所述特定的計算機中將不會使用 一個或 多個通信埠 38。不過,那些確實鄰接晶片14邊緣的通信埠 38可以具 有被設計在這種計算機12中或者被設計在計算機12的外部但與之相連的附 加電路,從而使得這種通信埠 38用作外部I/O埠 39 (圖1 )。這樣的 外部I/O埠 39的示例包括^旦不限於USB (通用串行總線)埠 、 RS232 串行總線埠 、並行通信埠 、模擬-數字和/或數字-模擬轉換埠 ,和其它 許多可能的變形。無論是什麼類型的附加或修改電路應用於這個目的,根據 本發明當前所描述的實施例,"外部"1/0埠 39的對於從其接收到的指令 和/或數據的處理的操作方法,將與此處關於"內部"通信埠 38所描述的 相似。在圖1中,"邊緣"計算機12f被描述為與相關接口電路80 (示為塊 圖形式) 一起通過外部I/0埠 39與外部設備82通信。
在當前所描述的實施例中,指令區域30包括許多寄存器40,在該示例 中,包括有A寄存器40a、 B寄存器40b,和P寄存器40c。在該示例中,A 寄存器40a是滿18位的寄存器,而B寄存器40b和P寄存器40c是9位的 寄存器。
儘管本發明不受該示例的限制,但是目前計算機12執行自然的Forth 語言指令。熟悉Forth計算機語言的人員應該理解,被認為是Forth "字,,的 複雜Forth指令,由為計算機設計的自然處理器指令構成。Forth字的集合被 認為是"字典(dictionary)"。在其它語言中,這可能被稱為是"庫(library)"。 如下文中將更詳細描述的,計算機12每次從RAM24、 ROM26或直接從一 條數據總線16 (圖2)讀取18比特。不過,由於在Forth中,大多數指令(被 認為是無操作數指令)直接從堆棧28和34獲得它們的操作數,所以它們通 常在長度上只有五比特,以便在組中的最後指令選自只需要3比特的有限指令集合的狀況下,有多達四條指令都可以被包括在單個18比特的指令字中。
(在所描述實施例中,最後位置中指令的兩個最低有效位被假定為"or )。
在圖3的示圖中,還以塊圖形式描述了時段定序器(slot sequencer) 42。
在本發明的該實施例中,數據堆棧是ALU 32所控制的參數的後進先出 的堆棧,而返回堆棧28是CALL和NEXT指令所使用的嵌套返回地址的後 進先出的堆棧。如下文中將更詳細論述的,返回堆棧28還由PUSH、 POP 和NEXT指令使用。數據堆棧34和返回堆棧28不是與許多現有技術計算機 中一樣的由堆棧指針訪問的存儲器中的陣列。相反,堆棧34和28是寄存器 陣列。數據堆棧34中的頂部兩個寄存器是T寄存器44和S寄存器46。數 據堆棧34的剩餘部分具有循環寄存器陣列34a,其中具有被編號的8個附加 硬體寄存器,在該示例中為S2到S9。循環寄存器陣列34a中的8個寄存器 之一在任何時刻都將被選作S寄存器46下方的寄存器。用於選擇位於S下 方的堆棧寄存器的移位寄存器中的值不能由軟體讀取或寫入。類似地,返回
堆棧28中的頂部位置是專用的R寄存器29,而返回堆棧28的剩餘部分具 有循環寄存器陣列28a,其中具有被編號的12個附加硬體寄存器(在圖中沒 有具體示出),在該示例中為R,到Rn。
在本發明的該示例中,不存在對堆棧上溢或下溢條件的硬體檢測。通常, 現有技術的處理器使用堆棧指針和存儲器管理等,以便當堆棧指針超出了為 該堆棧分配的存儲器的範圍時,就標記出錯誤條件。這是因為如果堆棧位於 存儲器中,則上溢或下溢將重寫或用作將不是堆棧部分的堆棧項(stack item)。不過,由於本發明在堆棧28和34的底部具有循環陣列28a和34a, 所以堆棧28和34不會上溢或下溢出堆棧區域。相反,循環陣列28a和34a 將只是迴繞寄存器的循環陣列。由於堆棧28和34具有有限的深度,所以將 任何東西壓入堆棧28或34的頂部意味著底部上的某些東西正4皮重寫。將 10項以上壓入數據堆棧34或者將13項以上壓入返回堆棧28,將導致位於 堆棧28和34底部的所述項被重寫。軟體的作用在於保持對堆棧28和34上 的項數目的跟蹤,並不試圖在此處放置超出相應堆棧28和34能容納的項。硬體不會檢測出堆棧底部處的項的重寫或者將它標記為錯誤。不過,應該注
意到的是,軟體可以以若干方式利用堆棧28和34底部處的循環陣列28a和 34a。僅作為一個示例,軟體可以簡單地假定堆棧28或34在任何時刻均為 "空,,。由於陳舊項將朝底部被向下壓,在底部處當堆棧填滿時陳舊項將丟 失,所以不需要從堆棧清除陳舊項。因此,對於程序來說不存在任何初始化 來假定堆棧為空。
除了在此之前所論述的寄存器之外,指令區域30還具有用於存儲當前 正被使用的指令字48的18比特的指令寄存器30a,和在當前被執行的特定 指令中針對指令的附加5比特的操作碼寄存器30b。
圖4是指令字的圖示。(應該注意的是,指令字48實際可以包含指令、 數據,或它們的某種組合)。指令字48由18比特50組成。由於是二進位 計算機,所以每個比特50都將為"1"或"0"。如在此之前所論述的,18 比特寬的指令字48可以在稱為時段零54a、時段一54b、時段二54c和時段 三54d的四個時段54中包括多達四條指令52。在該發明的本實施例中,18 比特的指令字48—直作為整體被讀取。因此,由於在指令字48中一直存在 具有多達四條指令的可能性,所以no-op (非操作)指令被包括在計算機12 的指令集合中,以規定當使用所有可用時段54可能不必要或者甚至不需要 時的情況。應該注意的是,根據本發明的一個具體實施例,在間隔的時段(具 體地說,為時段一54b和時段三54c)中,比特50的極性(高有效對比於低 有效)被反向。不過,這不是當前所描述發明的必要方案,因此,為了更好 地闡述本發明,該潛在含義避免出現在下面論述中。
圖5是圖3中時段定序器42的圖示。從圖5的示圖中可以看出,時段 定序器42具有排列成環形的多個(在該示例中,為14個)反相器56和一 個NAND門58,以便當信號穿過14個反相器56和NAND門58時被反相 奇數次。當到OR門60的兩個輸入中的任一個變成高電平時,在時段定序 器42中產生信號。第一 OR門輸入62來源於被執行的指令52的比特i4 66 (圖4)。如果比特i4為高電平,那麼該特定指令52是ALU指令,而i4比特66為"1"。當i4比特為"1"時,那麼第一OR門輸入62為高電平, 而且時段定序器42被觸發,以產生將要導致下一指令52執行的脈衝。
當時段定序器42通過第一 OR門輸入62變為高電平或者通過第二 OR 門輸入64變為高電平(如下文中將論述的)而被觸發時,那麼信號將圍繞 時段定序器42行進兩次,每次都在時段定序器輸出68處生成一輸出。第一 次該信號經過時段定序器輸出68時,其將為低電平,而第二次時段定序器 輸出68處的輸出將為高電平。來自時段定序器輸出68的相對寬的輸出被提 供給脈衝生成器70 (示為塊圖的形式),脈沖生成器70生成窄的定時脈衝 作為輸出。本領域的技術人員將認識到,需要窄定時脈沖來精確地啟動計算 機12的操作。
當被執行的特定指令52是讀取或寫入指令或者其它任何指令時,其中 不希望被執行的指令52立即觸發執行順次的下一指令52,那麼i4比特66 為"0"(低電平),因此第一OR門輸入62也為低電平。本領域的技術人 員將認識到,例如計算機12的裝置中的事件的定時通常相當嚴格,而不能 有例外。在對時段定序器42進行考察之後,本領域的技術人員將認識到, 來自OR門60的輸出必須保持高電平,直到信號已經循環通過NAND門58, 從而開始循環的第二 "圈(lap),,之後。此後,在第二 "圏,,期間來自OR 門60的輸出將變成低電平,從而防止電路的有害持續振蕩。
根據以上論述可以理解的是,當i4比特66是'0,時,時段定序器42 將不被觸發-假定將在下文中論述的第二 OR門輸入66不是高電平。
如前面所述,每條指令52的i4比特66根據該指令是讀取還是寫入型 指令而被設置,相對於該指令是不需要任何輸入還是不需要輸出的 一條指 令。指令52中的其餘比特50為該指令提供了特定操作碼的剩餘部分。在讀 取或寫入型指令的情況下,在該特定計算機12中, 一個或更多的比特可以 用於指示數據將從何處讀取或者寫入何處。在本發明的該示例中,將被寫入 的數據一直來自於T寄存器44 (數據堆棧34的頂部),但是數據可以有選 擇地被讀入T寄存器44或者指令區域30,從此處可以執行數據。這是由於在本發明的該具體實施例中,數據或者指令可以以此處所描述的方式被傳
送,並且指令因此可以直接從數據總線16執行。
一個或者更多的比特50將被用於指示埠 38的哪一個將被設置成讀取 或寫入,如果有這樣埠的話。可選地,後一操作通過利用一個或更多的比 特來指定寄存器40,例如A寄存器40a、 B寄存器40b等而被完成。在這樣 的示例中,所指定的寄存器40將被預載入數據,數據具有對應於每個埠 38 (並且還有計算機12可能試圖與其通信的其它任何潛在實體,例如存儲 器(RAM24或ROM26)、外部通信埠 39,等等)的比特。例如,特定 寄存器40中的四個比特中的每個可以分別對應於上埠 38a、右埠 38b、 左埠 38c或下埠 38d中的每個。在這種情況下,在那些比特的位置的任 一處存在'l,的地方,通信將被設定成通過相應埠 38進行。如同在此之前 所論述的,在本發明的該實施例中,所期望的是,讀取操作碼可能在單個指 令中設置一個以上的用於通信的埠 38,而儘管可能,但不期望寫入操作 碼在單個指令中設置一個以上的用於通信的埠 38。
緊接下來的例子將假定計算機12e試圖寫入計算機12c的通信,儘管該 示例適用於任何相鄰計算機12之間的通信。當寫入指令在寫入計算機12e 中被執行時,所選擇的寫入線20(在該示例中是計算機12e與12c之間的寫 入線20)被設定為高電平,如果相應的讀取線18已經是高電平,那麼數據 從所選擇的位置通過所選擇的通信埠 38被立即發送。或者,如果相應的 讀取線18還不是高電平,那麼計算機12e將僅停止操作,直到相應的讀取 線18確實變成高電平。當存在讀取和寫入型指令時,用於停止計算機12a (或者,更確切地說,使其不能進行進一步的操作)的機制,先前已被論述。 簡而言之,指令52的操作碼將在比特位置i4 66處具有'0,,因此OR門 60的第一 OR門輸入62是低電平,因此時段定序器42沒有被觸發以生成使 能脈衝。
至於當讀取或寫入型指令被完成時計算機12e的操作如何重新開始,這 種機制是這樣的當計算機12e與12c之間的讀取線18和相應的寫入線20都為高電平時,那麼線18和20都將由保持其為高電平的每個相應計算機 12釋放。(在該示例中,發送計算機12e將保持寫入線18為高電平,而接 收計算機12c將保持讀取線20為高電平)。然後,接收計算機12c將線18 和20都拉低。在實際的實踐中,接收計算機12c可能在發送計算機12e釋 放寫入線18之前就試圖將線18和20拉低。但是,由於線18和20被拉高 並且僅被不牢靠地保持(鎖存)為低電平,因此任何將線18和20拉低的企 圖實際上都將無法成功,直到線18或20由正保持其為高電平的計算機12 所釋放。
當數據總線16中的線18和20都被拉低時,這為"確認"條件。基於 這種確認條件,每一計算機12e和12c將它自己內部的確認線72設定為高 電平。從圖5的示圖中可以看出,確認線72提供了第二 OR門的輸入64。 由於到OR門60的輸入62或64的輸入將引起OR門60的輸出變成高電平, 因此這將以在此之前所述的方式啟動時段定序器42的操作,以便執行在指 令字48的下一個時段54中的指令52。為了防止偽地址到達地址總線,確 認線72保持高電平,直到下一個指令52被解碼。
在任何情況下,當指令52在指令字48的時段三位置中被執行時,計算 機12將取出下一個等待的18比特的指令字48,當然除非比特i4 66是'0,, 或者還除非時段三中的指令是"next"指令,這將在下文中更為詳細地進行 論述。
在實際實踐中,本創造性機制包括這樣的方法和裝置,其用於預取出指 令,以便在指令字48中的所有指令52的執行結束前,這種取出可以開始。 但是,這也不是目前所描述的發明的必要方案。
已經詳細描述了以上示例,其中計算機12e正向計算機12c寫入。依照 前面論述可以理解的是,不管計算機12e是否首先試圖向計算機12c寫入或 者計算機12c首先試圖從計算機12e讀取,這些操作在本質上是相同的。直 到計算機12e和12c都預備好,並且無論哪一個計算機12e或者12c首先預 備好簡單地"進入休眠"直到另一計算機12e或12c完成傳輸,這些操作才能完成。觀察前述過程的另一方式在於,實際上寫入計算機12e和接收計算 機12c當它們分別執行寫入和讀出指令時都進入休眠,但是,當讀取線18 和寫入線20都是高電平時,進行處理的後者幾乎立即再喚醒,然而開始處 理的第 一計算機12可以幾乎不確定地保持休眠直到第二計算機12即將完成 該過程。
發明人相信的是,用於實現設備之間有效異步通信的關鍵特徵在於幾種 確認信號或條件。在現有技術中,大多數設備之間的通信被計時,並且對於 發送設備來說並沒有了解接收設備已正確接收到數據的直接方式。例如校驗 和的操作方法可能已經用於試圖確保數據被正確接收到,但是發送設備沒有 操作完成的任何直接指示。如此處所描述的,本創造性的方法提供了必要的 確認條件,其允許或至少使設備之間的異步通信實用化。此外,確認條件也 使一或多臺設備"進入休眠"直到確認條件發生成為可能。當然,確認條件 可以由正在計算機12之間發送(或者通過互連數據總線16或者通過單獨的 信號線)的單獨信號在計算機12之間傳送,並且這樣的確認信號將落入本 發明的該方案的範圍之內。然而,根據此處所描述的本發明的實施例,可以 理解的是,這裡存在甚至更多的經濟利益,原因在於,用於確認的方法不需 要任何額外的信號、時鐘周期、定時脈衝,或除了上述之外的任何這類資源, 來實際上影響通信。
由於四條指令52可以被包括在指令字48中,並且由於根據本發明,整 個指令字48可以在計算機12之間被一次傳送,這展示了用於在一個操作中 傳送非常小的程序的理想機會。例如,多數小的"For/Next"循環可以在單 個指令字48中被實現。圖6是微循環100的圖示。不同於其它現有技術的 循環,微循環100具有FOR指令102和NEXT指令104。由於指令字48 (圖 4)包含四條指令52,因此指令字48可以在單個指令字48中包括三個操作 指令106。操作指令106本質上可以是程式設計師可能想要將其包括在微循環100 中的任何可用的指令。可以從一個計算機12傳送到另一個的微循環100典 型示例可以是,用於讀取或者寫入第二個計算機12的RAM 24的一組指令,以便第一計算機12可以"借出,,可用的RAM24容量。
FOR指令102將表示所需迭代數的值壓入返回堆棧28上。也就是說, 數據堆棧34頂部的T寄存器44中的值;陂壓入(PUSH )到返回堆棧28的R 寄存器29中。雖然經常位於指令字48的時段三54d中,不過FOR指令102 實際上可以被設置在任意時段54中。當FOR指令102沒有在時段三54d中 時,該指令字48中的剩餘指令52將在進行微循環100之前被執行,這通常 將是下一次被載入的指令字48。
根據本發明當前所描述的實施例,在圖6的示圖中所描述的NEXT指令 104是特定類型的NEXT指令104。這是因為它位於時段三54d (圖4)中。 根據本發明的該實施例,假定特定指令字40中所有遵照"普通"NEXT指 令(未示出)的數據是地址(for/next循環開始的地址)。無論用於NEXT 指令104的操作碼位於四個時段54中的哪一個(除了很明顯的例外,即如 前面所論述的,如果其位於時段三54d,則前兩位數被假定,而不是詳細寫 出)中,它都是相同的。但是,由於當處於時段三54d中時沒有任何遵照 NEXT指令104的地址數據,因此也可以假定時段三54d中的NEXT指令 104是MICRO-NEXT指令104a。 MICRO-NEXT指令104a使用第 一指令52 的地址,其位於所在的同一指令字48的時段零54a中,作為其返回地址。 MICRO-NEXT指令104a也可以取R寄存器29中的值(它最初由FOR指令 壓到這裡),對它減l,然後將它返回到R寄存器29。當R寄存器29中的 值達到預定值(例如0)時,那麼MICRO-NEXT指令將載入下一個指令字 48,並在此如上所述繼續進行。但是,當MICRO-NEXT指令104a從R寄 存器29中讀取的值大於預定值時,將在自身指令字48的時段零54a處重新 開始操作,並執行其中包含的位於時段零到時段三中的三條指令52。也就 是說,在本發明的該實施例中,MICRO-NEXT指令104a將一直執行三條操 作指令106。在某些情況下,由於可能不需要使用所有三條潛在可用的指令 52,因此按照需要,"no-op"指令可用於填充一個或兩個時段54。
應該注意的是,微循環100可以整個用於單個計算機12中。實際上,整組可用的機器語言指令都可以作為操作指令106使用,並且對微循環的應 用和使用僅受限於程式設計師的構想。但是,當在單個指令字48中執行整個微 循環100的能力,與允許計算機12將指令字48發送到相鄰計算機12以在 其中執行本質上直接來自數據總線16的指令52的能力相結合時,這提供了 用於允許計算機12利用其相鄰計算機的資源的有力工具。
如在此所述,全部包含在單個數據字48中的小孩i循環100可以在計算 機12之間傳送,並且其可以直接從接收計算機12的通信埠 38被執行, 如同此處所述的指令字48中所包含的其它任何指令組。這類"微循環,,100 雖然存在很多用途,但典型的用途在於一個計算機12想要將一些數據存儲 在相鄰計算機12的存儲器中。例如,它可以首先將指令發送到相鄰計算機, 告訴相鄰計算機將輸入數據字存儲在特定存儲器地址中,然後遞增該地址, 再然後重複給定的迭代數(數據字將被傳送的次數)。為了讀回數據,第一 計算機將僅指令第二計算機(這裡指用於存儲的計算機)使用類似的微循環 將已存儲數據寫回到第 一計算機。
通過結合此處所述的直接執行方案來使用微循環100結構,計算機12 可以使用另一休眠的相鄰計算機12,用於當數據存儲需要超過內置於單個 計算機12中的相對較小容量時,存儲超出數據。雖然該示例按照數據存儲 進行了描述,不過相同的技術可以等同地用於允許計算機12使其鄰居共享 其計算資源_通過創建微循環100來使其它計算機12執行一些操作,存儲 結果,並且重複給定次數。可以理解的是,本創造性的微循環100結構可以 被使用的方式的數量幾乎是無限的。
如在此之前所提到的,在本發明當前所描述的實施例中,數據或指令都 可以通過此處所描述的方式進行通信,因此指令實質上可以直接從數據總線 16被執行。也就是說,不需要在執行之前將指令存儲到RAM 24中,然後 再調用它們。相反,根據本發明的這個方案,在通信埠 38接收到的指令 字48在本質上沒有被視為與4叚設從RAM 24或ROM 26再調用的情況有所 不同。雖然在之前的關於計算機12所述操作的討論中揭示了這種差異的缺乏,但是以下對指令字48如何被取出並被使用的更詳細論述將幫助理解本 發明。
一種可用的機器語言指令是FETCH指令。FETCH指令使用A寄存器 40a中的地址以確定從何處取出18比特的字。當然,將不得不為了在A寄 存器40a中設置正確的地址而提供程序。如在此之前所論述的,A寄存器40a 是18比特的寄存器,以便有足夠的地址數據範圍,以用於區別所述取出可 能發生自哪個任何潛在資源。也就是說,存在分配給ROM的地址範圍,分 配給RAM的不同地址範圍,並且存在每個埠 38和外部1/0埠 39的特 定地址。FETCH指令一直將其取出的18比特設置在T寄存器44中。
相反地,如在此之前所論述的,可執行指令(相對於數據)被暫時存儲 在指令寄存器30a中。不存在專用的命令,用於將18比特指令字48 "取" 到指令寄存器30a中。相反,當在指令寄存器30a中未留下任何更多的可執 行指令時,那麼計算機將自動取出"下一"指令字48。"下一"指令所在 的位置由"程序計數器,,(P寄存器40c)確定。在從RAM 24或ROM 26 中取出指令字48序列的情況下,P寄存器40c通常自動遞增。然而,對於 這個總原則也有許多例外。例如,JUMP或CALL指令將導致P寄存器40c -故載入地址,該地址由JUMP或CALL指令後的當前載入指令字48的剩餘 部分中的數據所指定,而不是被遞增。然後,當P寄存器40c被載入對應於 一或更多埠 38的地址時,下一指令字48將從埠 38被載入指令寄存器 30a。當指令字48剛從埠 38被取回到指令寄存器30a時,P寄存器40c 也不遞增。相反,它將繼續保持相同埠地址,直到執行專用JUMP或CALL 指令,以改變P寄存器40c。也就是說, 一旦告訴計算機12從埠 38尋找 它的下一條指令,那麼它就將從該同一埠 38 (或多個埠 38)繼續尋找 指令,直到其被告知尋找其它地方,例如返回到存儲器(RAM 24或ROM 26 ) 以尋找它的下一指令字48。
如以上所應該注意的,在當前指令字48中未留下任何更多的可執行指 令時,計算機12知道已取出的下一個18比特將被放置在指令寄存器30a中。在默認情況下,在JUMP或CALL指令(或者也在此處將不被具體論述的其 它一些指令)之後,在當前指令字48中未留下任何更多的可執行指令,這 是因為根據定義遵照JUMP或CALL指令的18比特的指令字的剩餘部分被 專用於由JUMP或CALL指令所引用的地址。另一種陳述方式是,前述過程 在許多方式下是獨一無二的,包括但不限於這種事實,即JUMP或CALL指 令可選地到埠 38而不是只到內存地址等。
應該記住的是,如在此之前所論述的,計算機12可以從一個埠 38或 從埠組38的任何一個尋找其下一條指令。因此,提供對應於埠 38的各 種組合的地址。例如,當計算機被告知從埠組38中取出指令時,它將從 所選擇的埠 38的任一個接受第一個可用指令字48。如果沒有相鄰計算機 12試圖向這些埠 38中的任一個寫入,如前面所詳細描述的,所;故考慮的 計算機12將"進入休眠",直到鄰居確實向所選擇的埠 38寫入為止。
圖7是描述以上所述的直接執行方法120的示例的流程圖。如在此之前 所論述的,當指令寄存器30a中不再留下可執行指令時,操作的"正常 (normal)"流程將開始。這時,如由"取出字,,操作122所指示的,計算 機12將"取出"另一指令字(注意這裡所使用術語"取出"是普通含義上 的,因為實際的FETCH指令並沒有被使用)。該操作將按照P寄存器40c 中的地址(由圖7流程圖中的"地址"判斷操作124所指示)被完成。如果 P寄存器40c中的地址是RAM 24或ROM 26地址,那麼下一指令字48將 在"從存儲器中取出"的操作126中從指定的存儲器位置被取回。另一方面, 如果P寄存器40c中的地址是埠 38或多個埠 38的地址(不是存儲器地 址),那麼下一指令字48將在"從埠取出',的操作128中從指定的埠 位置被取回。在任一情況下,被取回的指令字48在"取回指令字,,的操作 130中被放置在指令寄存器30c中。如在此之前所描述的,在"執行指令字" 的操作132中,指令字48的時段54中的指令依次被完成。
在"跳轉"判斷的操作134中,確定指令字48中的操作之一是JUMP 指令,還是如在此之前所述的,其它的將操作從連續"正常"進程轉移的指令。如果是,那麼如圖7的示圖所示,在"栽入P寄存器"的操作136中, 在JUMP (或其它這種)指令之後,指令字48中所提供的地址被提供給P 寄存器40c,並且在"取出字,,的操作122中,序列再次開始。如果否,那 麼下一個動作取決於最後指令的取出是來自埠 38還是來自存儲器地址, 如"埠地址"判斷操作138中所示。如果最後指令的取出是來自埠 38, 那麼不對P寄存器30a作任何修改,並且序列從"取出字"的操作122開始 重複。另一方面,如果最後指令的取出是來自存儲器地址(RAM24或ROM 26),那麼在"取出字,,的操作122完成之前,P寄存器30a中的地址被遞 增,如圖7中的"遞增P寄存器"操作140所示。
以上描述並不是用來表示實際的操作步驟。相反,它是由此產生的根據 本發明所述實施例被執行的各種判斷和操作的圖示。實際上,該流程圖不應 該被理解成意味著每個所描述和所顯示的步驟都需要分開的明顯的順序步 驟。實際上,圖7的流程圖中的許多所述操作在實踐中通常同時完成。
圖8是描述用於提醒計算機的本創造性改進方法的示例的流程圖。如在 此之前所論述的,所述實施例中的計算機12在等待輸入的同時將"進入休 眠"。這樣的輸入可以來自關於圖1到圖5所述實施例中的相鄰計算機12。 可選擇地,也如同在此之前所論述的,具有鄰接晶片14邊緣的通信埠38 的計算機12可以具有附加電路,所述附加電路設計在這種計算機12中或者 設計在計算才幾12與之相連的外部,以j吏這種通信埠 38 4旦當外部I/O埠 39。在任一情況下,本創造性的組合可以提供附加優點,即"休眠"計算機 12可以保持狀態,並預備好在接收到輸入時喚醒並跳轉到一些規定的動作 中。因此,本發明也提供了對使用中斷處理輸入的可選方案,而無論這些輸 入來自於外部輸入設備,還是來自陣列10中的另一計算機12。
如前面所述,不用使計算機12為了處理中斷不得不停止(或暫停)其 正在進行的工作,此處所描述的創造性組合將允許計算機12處於"休眠但 警醒,,的狀態。因此,可以分配一臺或多臺計算機12以接收並作用於一定 的輸入。雖然有很多可以使用這種特徵的方式,在圖8的示圖中僅示出一種示例用於圖示這樣的"計算機提醒方法",並且在此處用附圖標記150列出。 從圖8的示圖中可以看出,在"進入提醒狀態"的操作152中,計算機12 被促使"進入休眠",以便它正在等待來自相鄰計算機12或者一臺以上(可 為所有的四臺)相鄰計算機的輸入,或者在"邊緣"計算機12的情況下, 等待外部輸入,或者等待外部輸入和/或來自相鄰計算機12的輸入的某種組 合。如同在此之前所述的,計算機12可以在等待讀取或寫入操作的完成時
"進入休眠,,。如同該示例中所描述的,當計算機12正被用於等待一些可 能的"輸入"時,那麼自然會假定,等待計算機在等待來自鄰居或外部源的
"寫入"時已將它的讀取線18設定為高電平。實際上,目前所預期的是, 這將是通常的狀況。然而,等待計算機12將它的寫入線20設定為高電平並 因此在鄰居或外部源從其"讀取,,時被喚醒,都在本發明的範圍之內。
在"喚醒"的操作154中,休眠的計算機12被促使重新開始操作,這 是因為相鄰計算機12或外部設備39已完成了正被等待的處理。如果正被等 待的處理是接收將被執行的指令字48,那麼計算機12將繼續執行其中的指 令。如果正被等待的處理是接收數據,那麼計算機將繼續執行隊列中的下一 條指令,其將是目前指令字48的下一時段54中的指令,或者下一指令字 48將被載入,並且下一指令將位於下一指令字48的時段零中。在任何情況 下,既然以所描述的方式被使用,那麼下一條指令將開始一條或多條指令的 序列(sequence),用於處理剛接收到的輸入。用於處理這種輸入的選項可 以包括,對執行某種內部預定功能的反應,與陣列IO中的一臺或多臺其它 計算機12通信,甚或是忽略輸入(正如同常規現有技術一樣,中斷可以在 規定的條件下被忽略)。選項在圖8的示圖中被描述為"作用於輸入"的操 作156。應該注意的是,在一些例子中,輸入的內容可能不重要。例如,在 一些情況下,外部設備試圖進行感興趣的通信可能才是事實。
在圖8所示的方式下,如果計算機12^皮分配擔任"提醒"計算;t幾的任 務,那麼它通常返回到"休眠但警醒,,的狀態,如圖8所示。但是,選項一 直打開,以給計算機12分配一些其它的任務,例如當不再需要監視特定的在被監控的輸入時,或當更便於將該任務傳輸到隊列中的其它 一 些計算機 12時。
本領域的技術人員人將認識到,前述操作模式將用作比使用常規中斷更
有效的替代方案。當計算機12已將其一條或多條讀取線18 (或寫入線20) 設定為高電平時,可以說是處於"提醒,,條件。在提醒條件中,計算機12 預備好立即執行在對應於被設定為高電平的一條或多條讀取線18的數據總 線16上被發送至此的任何指令,或者可選擇地,作用於在數據總線16上被 傳輸的數據。當有計算機12的陣列可用時,在任何給定時刻, 一臺或多臺 計算機將處於前述提醒條件,以便所規定的輸入組中的任一個將觸發它進行 動作。優選地,使用常規中斷技術來"引起計算機的注意",這是因為中斷 將導致計算機必須響應於中斷需求來存儲一定數據,載入一定數據,等等。 按照本發明,計算機可以被設置在提醒條件並專用於等待感興趣的輸入,以 便在由這些輸入觸發的指令開始執行時,不會浪費一個指令周期。此外,注 意到的是,在目前所述的實施例中,警醒狀態中的計算機實際上將是"休眠 但警醒",這意味著它們在基本上不使用任何功率方面是"休眠"的,但在 它們會由輸入立即觸發進入動作方面,又是"警醒"的。不過,即使不處於 "休眠"狀態,"警醒,,狀態仍可以體現在計算機中,這些都在本發明該方 案的範圍之內。所描述的警醒狀態基本上可以用於任何狀況下,其中常規現 有技術的中斷(或者是硬體中斷或者是軟體中斷)可能以其它方式被使用。
圖9是計算機提醒方法150a的另一示例。這只是一個示例,其中監控 計算機12f (圖1 )與另一個被分配以其它某種任務的計算機12g (圖1 )之 間的交互可能是需要的或必要的。從圖9的示圖可見,有兩個通常獨立的流 程圖,分別對應計算機12f和12g。這指示出本發明的合作共同處理器方式 的自然特性,其中每個計算機12自身通常獨立執行地分配,除了此處描述 的完成交互的情況之外。
對於計算機12f來說,"進入警醒狀態"的操作152,"喚醒"操作154 和"作用於輸入,,操作中的每個,都如在此之前關於計算機提醒方法150的第一示例所描述的一樣被實現。但是,由於該示例預期可能需要計算機12f 與12g之間的交互,在接著"作用於輸入"的操作156的是,計算機12f進 入"發送信息?"的判斷操作158,其中按照其自己的程序,確定剛接收到 的輸入是否需要引起其它計算機12g的注意。如果否,那麼計算機12f返回 到警醒狀態,或者如此前所論述的其它一些可選項。如果是,那麼在"發送 到其它"的操作160中,如此前詳細描述的,計算機12f開始與計算機12g 通信。應該注意的是,按照程式設計師的選擇,計算機12f可以發送指令,例如 可以發送響應於來自外部設備82的輸入而在內部產生的指令,或者發送例 如從外部設備82接收到的指令。可選擇地,計算機12f可以將數據傳遞到 計算機12g,並且這些數據可以在計算機12f內部產生,或者從外部設備82 "經過"。另一可選方案還可以是,在一些狀況下,計算機12f可能在其接 收來自外部設備82的輸入時試圖從計算機12g讀取。所有這些可能程式設計師 都可以使用。
同時,如在"執行主要功能,,操作162中所示的,計算機12g通常執行 代碼以完成分配給它的主要任務,無論是什麼任務。然而,如果程式設計師確定 需要計算機12f和12g之間的偶然交互處理,那麼程式設計師將提供出,計算機 12g偶然暫停以查看其一臺或多臺相鄰計算機是否試圖通信,如"尋找輸入,, 的操作166所示。如"輸入?"的判斷操作158所示,是否存在等待的通信 (例如,計算機12f是否已開始向計算機12g寫入)。如果存在已開始的通 信(是),那麼如此前詳細描述的,在"從其它接收,,的操作170中,計算 機12g將完成通信。如果否,那麼計算機12g將返回其主要功能162的執行, 如圖9所示。在"從其它接收"搡作170之後,計算機12g將作用於在"作 用於輸入"的操作172中接收到的輸入。如前面提到的,程式設計師可能已經提 供了計算機12g所期待輸入中的指令,在這種情況下,如同此前所描述的, 計算機12g將執行指令。可選擇地,計算機12g可以被編程以等待所作用的 數據。
在圖9的示例中,示出了在"作用於輸入"的操作172之後,計算機
2812g返回完成它的主要功能(也就是說,其返回到"執行主要功能,,的操作 162)。然而, 一定存在甚至更複雜示例的可能性。例如,編程可以是這樣 的,即從計算機12f接收到的某種輸入將導致計算機12g中斷之前被分配的 主要功能,並開始一個新功能,或者它可以簡單地暫時停止並等待進一步的 輸入。本領域的技術人員將認識到,此處動作的各種可能性僅受限於程式設計師 的構思。
應該注意的是,按照此處所描述的本發明的實施例,給定的計算機12 當正執行任務時不需要被中斷,這是因為另一計算機12被分配了監控和處 理可能另外需要中斷的輸入的任務。但是,有趣的是,還注意到,忙於處理 其它任務的計算機12也不能被打擾,除非並且直到它的程序提供了它查看 其埠38以尋找輸入。因此,有時將需要使計算機12暫停尋找其它輸入。 重要的是要認識到,此處正描述的是可被描述為"合作多任務"的計算範例 的示例,其中以前可通過單個處理器被完成的任務,以新的有趣方式在多個 處理器中被劃分。
在不改變本發明的值或範圍的情況下,可以對本發明做各種修改。例如, 雖然此處使用特定計算機12的示例描述了本發明,但是很多或所有創造性 的方案將容易適於其它計算機設計、其它類型的計算機陣列,等等。
類似地,雖然此處主要針對在單個晶片14上的陣列10中的計算機12 之間的通信描述了本發明,不過,相同的原理和方法可以被使用或修改,以 用於完成其它設備間通信,例如計算機12與其專用存儲器或陣列IO的計算 機12與外部設備之間的通信。
雖然此處論述了本創造性的計算機陣列10、計算機12、微循環100、 直接執行方法120和相關裝置以及計算機提醒方法150的具體示例,不過所 期望的是,對於未被構想的那些將有大量的應用。實際上,本發明的一個優 點在於本創造性的方法和裝置可以適於多種應用。
以上所有的這些只是本發明可用實施例的一些示例。本領域的技術人員 將容易觀察到,在不脫離本發明的精神和範圍的情況下,可以進行其它許多修改和替換。因此,此處的公開並不意圖限定,而所附的權利要求書將被解 釋為包括本發明的整個範圍。
工業實用性
本創造性的計算機陣列10、計算機12、微循環100、直接執行方法120 和相關裝置以及計算機提醒方法150意在廣泛地用於多種計算機應用場合。 所期望的是,它們在需要相當大計算能力並且功耗和放熱還是重點考慮因素 的應用場合將特別有用。
如此前論述,本發明的應用性是這樣的陣列中的計算機之間的信息和 資源的共享得到大大增強,無論在速度和通用性方面。另外,根據所描述的 方法和裝置,計算機陣列與其它設備之間的通信得到增強。
由於本發明的計算機陣列10、計算機12、微循環100、直接執行方法 120和相關裝置以及計算機提醒方法150可以容易產生並與現有任務、輸入 /輸出設備等等一起集成,並且由於此處所描述的優點被提供,因此可預見 的是,它們將易於在業界被接受。由於這些或其它原因,可預見的是,本發 明的實用性和工業應用在範圍和長期持續方面都將是明顯的。
權利要求
1、在一組計算機處理器中,一種改進包括第一處理器;和第二處理器;並且其中在所述第一處理器實現另一任務的同時,所述第二處理器監控至少一個輸入埠。
2、 如權利要求l所述的改進,其中所述第一處理器被編程為,偶爾檢驗以查看所述第二處理器是否已經啟 動它們之間的通信。
3、 如權利要求l所述的改進,其中所述第二處理器被編程為,不需要與所述第一處理器交互而處理來自所 述輸入埠的輸入。
4、 如權利要求3所述的改進,其中所述第二處理器被編程為,使得其程序設計可選地啟動與所述第一計算 機的通信。
5、 如權利要求4所述的改進,其中所述通信是從所述第二處理器到所述第一處理器的指令傳輸。
6、 如權利要求4所述的改進,其中所述通信是從所述第二處理器到所述第一處理器的數據傳輸。
7、 如權利要求4所述的改進,其中所述通信採用從所述第二處理器被發送到所述第一處理器的數據和/或 指令的格式。
8、 如權利要求l所述的改進,其中 所述輸入埠是用於與外部設備通信的外部埠 。
9、 如權利要求l所述的改進,其中所述處理器中的至少一個包括 指令寄存器,用於暫時存儲待被執行的指令組;和程序計數器,用於存儲地址,其中從所述地址取回指令組,放到所述指令寄存器中;並且其中所述程序計數器中的地址是存儲器的地址或者是寄存器的地址。
10、 如權利要求9所述的改進,其中 所述指令組通常同時被取回到所述指令寄存器中;以及 所述多條指令重複由堆棧上的數值所指示的迭代數。
11、 如權利要求l所述的改進,其中所述處理器中的至少一個包括 多條指令,其通常被同時讀取;並且其中所述多條指令重複由堆棧上的數值所指示的迭代數。
12、 一種用於處理計算機的輸入的方法,包括(a) 使第一計算機等待來自埠的輸入;(b) 使第二計算機執行任務;以及(c) 萬一來自所述埠的輸入出現,則使所述第一計算機對該輸入做出反應。
13、 如權利要求12所述的方法,其中所述第一計算機不與所述第二計算機交互就對來自所述埠的輸入做 出反應。
14、 如權利要求12所述的方法,其中響應於來自所述埠的輸入,所述第一計算機運行一例行程序。
15、 如權利要求14所述的方法,其中 所述例行程序包括與所述第二計算機交互。
16、 如權利要求15所述的方法,其中所述例行程序包括向所述第二計算機寫入。
17、 如權利要求15所述的方法,其中所述例行程序包括向所述第二計算機發送數據。
18、 如權利要求15所述的方法,其中 所述例行程序包括向所述第二計算機發送指令。
19、 如權利要求18所述的方法,其中當所述指令被接收到時,所述指令由所述第二計算機依次執行。
20、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求12 中的所述步驟的代碼。
21、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求13 中的所述步驟的代碼。
22、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求14 中的所述步驟的代碼。
23、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求15 中的所述步驟的代碼。
24、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求16 中的所述步驟的代碼。
25、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求17 中的所述步驟的代碼。
26、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求18 中的所述步驟的代碼。
27、 一種計算機可讀介質,其中具有用於使電子設備執行權利要求19 中的所述步驟的代碼。
28、 一種計算機,包括 一組處理器;和一裝置,用於在所述處理器中的一個執行其它任務的同時,利用所述處 理器中的另一個監控至少一個輸入埠 。
全文摘要
計算機陣列(10)具有多臺計算機(12)。計算機(12)彼此異步通信,並且計算機(12)本身在內部通常以異步方式運行。當一臺計算機(12)試圖與另一臺計算機通信時,它將進入休眠,直到其它計算機(12)即將完成處理,從而省電並減少放熱。休眠的計算機(12)可以正等待數據或指令(12)。在指令的情況下,休眠的計算機(12)可以正等待存儲指令或立即執行指令。在後者情況下,當接收指令時,指令被置於指令寄存器(30a)中,並從此處被執行,而不需要首先將指令置於存儲器中。指令可以包括能重複執行一系列操作的微循環(100)。在一種應用中,休眠的計算機(12)由輸入喚醒,以便開始一動作,該動作在另外的方式下可能需要其它活躍的計算機中斷。
文檔編號G06F15/00GK101563679SQ200780000016
公開日2009年10月21日 申請日期2007年2月16日 優先權日2006年2月16日
發明者傑佛瑞·亞瑟·福克斯, 查理斯·H·莫爾, 約翰·W·瑞博 申請人:Vns組合有限責任公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀