專利名稱:異步節電計算機的制作方法
技術領域:
本發明涉及計算機和計算機處理器領域,更具體地說,涉及一種方法和 裝置,其用于使計算機在等待與另一計算機或設備通信時進入"休眠狀態", 從而省電并減少放熱。本發明異步計算機的當前主要用途在于在單個微芯片 上與多臺計算機組合,其中計算能力、功耗和放熱是重要的考慮因素。
背景技術:
在計算領域中,處理速度是一種非常期望的特性,因此對創建更快計算 機和處理器的探索一直在進行。然而,在業內公認的是,提高微處理器速度 的極限正被迅速逼近,至少對于利用目前已知的技術而言。因此,利用多處 理器通過分享處理器中的計算任務來提高整體計算速度越來越引起大家的 興趣。但是還公認的是,有關共享工作量的整體效率幾乎不可避免地會有些
降低。也就是說,僅僅因為一個人60分鐘可以挖一個洞,就推斷60個人必 然能用1分鐘挖一個洞這一諺語將適用。相同的道理幾乎適用于任何任務的 分享,因此處理器中的任務分享也不例外。
當然,正在努力使計算機處理器中的任務分享更有效。正在研究怎樣正 確地分配任務的問題,并且過程得以改善。然而,無論怎樣實現,都沒有人 希望在這樣的安排中浪費哪怕至少某個處理器能力。
在多處理器計算機中,缺乏高水平的效率未必是計算機芯片或系統的整 個計算能力的巨大阻礙。效率缺乏通常可以很容易地通過純粹強制地增加可 用處理器和處理能力來克服。不過,這種解決方式會導致另一問題。也就是, 那么多的處理器和相關部件會產生不斷增加的熱量。即使對當今大功率單處 理器計算機芯片來說,熱量也仍然是個問題。僅僅為了正常搡作,它們就需
要特別的冷卻裝置,例如風扇,甚至需要水冷卻。因此,在小型手持設備、 小型專用數字裝備等設備中,使用更大功率的單處理器實際上是不可能的。 目前,在單個芯片上組合使用多種類型的處理器的想法,似乎超出了封裝的 物理極限,而不能散發所產生的熱量,即使利用特別的輔助裝置。
以上論述的熱量問題在業界是公知的。正在十分努力地解決這個問題。 所提供的解決方案包括用于提高效率并從而降低所需處理器的數量和尺寸 的方法,和用于降低各個處理器功耗的方法。然而,通常所認知的是,對該 問題的最終解決方案還沒有找到。在業內,由于將這些處理器應用于小型手 持設備的趨勢,這一問題進一步加重。雖然散熱問題在更大的計算機封裝中 已經夠困難,但是在非常小型的設備中當考慮到散熱表面的尺寸和該表面的 固有缺乏時,散熱問題幾乎是不可克服的。并且,功耗問題和放熱問題關系 密切。很明顯的是,多余的放熱意味著多余的功耗。這一直都是所不希望的, 而在小型電池供電的設備中,更是不能接受的。
很明顯,找到一種提供大量計算能力而不浪費大量功耗或產生大量熱的 方案是非常有利的。不過,就發明人的認知而言,在本發明之前還沒有滿意 的解決方案。
發明內容
因此,本發明的目的在于提供一種用于提高計算機處理速度同時降低功 耗的裝置和方法。
本發明的另 一 目的在于提供一種用于廉價地提供相當大計算能力的裝 置和方法。
本發明的目的還在于提供一種用于實現大強度計算任務的裝置和方法。 本發明的目的還在于提供一種計算機裝置,其不消耗大量功率就能產生 大量的處理能力。
本發明還有一目的在于提供一種計算機裝置,其不生成大量的熱就能產 生大量的處理能力。
簡要地說,本發明的已知實施例是一種自身具有內存以便能獨立計算的 計算機。在本發明的一個實施例中,多臺計算機被布置成陣列。為了協同完
成任務,這些計算機必須能彼此之間傳輸數據和/或指令。既然所有同時工 作的計算機通常會提供比大多數任務所需的計算能力強得多的計算能力,既
然在若干計算機中分配任務所用的任何算法或方法幾乎肯定導致分配不平 均,因此可以預期的是,計算機中的至少一些,也可能是大多數,在任何給 定的時候都不活躍地參與任務的實現。為了避免不必要的功耗和不必要的放 熱,當計算機試圖與相鄰計算機的一個或多個通信時,它將處于休眠模式, 并且實質上沒有任何功耗,直到相鄰計算機或相鄰計算機中的一個運行起來 以完成通4言。
正如這里所描述的,計算機之間的通信是異步的,原因在于沒有任何時 鐘等來定時。更確切地說,隨著資源變得可用,它既可以開始也可以結束。 也就是說,當計算機的程序指令它這么做時,計算機可以啟動發送數據,或 者也可以使自己處于預備狀態以接收數據。于是,當計算機或其試圖與之通 信的所選擇的計算機之一即將完成通信時,它就這么做。
為了實現所期望的省電并減少放熱,所希望的是,當所啟動的計算機正 在等待通信完成時,它能停止或者至少顯著降低功耗。可以想象的到,這可 以由許多手段中的任一手段來實現。例如,如果計算機由內部或者外部時鐘 來定時,那么在那段時間可以調慢時鐘或者停止時鐘。不過,根據在此描述 的本發明的實施例,計算機內部本身也是異步操作。也就是說,沒有時鐘類 型的信號來驅動計算機(除了這里論述的一個例外)。這種異步裝置的自然 狀態是將停在一種這樣的狀態中,在該狀態中,當計算機正在等待下一操作 時,本質上沒有任何功耗(除了少量泄漏電流所消耗的功耗之外)。
根據本發明,在計算機之間完成異步操作可以通過利用確認操作來實 現。也就是說,在現有技術中,對通信進行計時,通常假定裝置之間的通信 發生在相對于計時信號的特定時間內。發送計算機通常不具有任何直接的正 反饋來確認其數據被接收計算機所接收。不過,根據本發明,當一臺計算機
通過試圖發送或通過試圖接收來試圖通信,然后另一計算機通過接收或通過 發送完成該操作時,接收計算機確認收到發送計算機的動作,以便這兩個計 算機都知道處理完成。在本發明的實施例中,通過使控制線變為低電平來實 現這種確認,以便數據循環或時間不會浪費在完成這種確認的操作中。然而, 發明人認為,確認通信完成的操作本質上適用于裝置之間的任何異步通信, 無論這些裝置內部是否本質上異步,甚至也無論它們是否基于傳統的電子電 路、基本原理或任何其它現存的或將來開發的操作原理。
考慮到這里所描述的實施本發明的模式及其工業實用性的描述以及若 干附圖所示,本發明的這些和其它目的以及優點對本領域的技術人員來說將 變得清楚。這里所列的目的和優點不是本發明的所有可能優點的窮盡列舉。 此外,即使當本申請中沒有或不需要所預期的目的和/或優點中的一個或更 多的情況下,也有可能實行本發明。
進一步地,本領域的^支術人員應該認識到,本發明的各種實施例可以實 現所描述的目的和/或優點中的一個或更多,但沒有必要是全部。因此,這 里所描述的目的和/或優點不是本發明的必要元素,也不應該作為限制來解 釋。
圖1是根據本發明一個實施例的計算機陣列的簡圖; 圖2是示出圖l計算機的子集和圖1中互連數據總線的更多詳情的詳細 視圖3描述圖1和圖2中的一臺計算機的通用布局的結構圖; 圖4是根據本申請的指令字的示圖5是圖3中的時段定序器(slot sequencer ) 42的示圖;和 圖6是描述本發明方法示例的流程圖。
具體實施例方式
在以下說明中,將參考附圖對本發明進行描述,在附圖中,類似的附圖 標記表示相同或相似的元件。雖然本發明根據用于實現本發明目的的方式進 行描述,但是本領域的技術人員應該理解,可以根據這些教義在不脫離本發 明的精神或范圍的情況下做出各種修改。
這里所描述和/或附圖所示的本發明的實施例和變形,僅以示例的方式 呈現出來,并不限制本發明的范圍。除非另外明確地進行陳述,否則本發明 的各個方案和部件都可以被省略或修改,或者因此可以替換已知的等效物, 或者作為還未知的替換物,例如將來開發出來的或者在將來發現的可接受的 替換物。本發明還可以在處于所要求保護的發明的精神和范圍之內的同時, 針對多種應用進行修改,這是因為潛在應用的范圍很廣闊,還因為本發明本 就旨在適于多種這類的變形。
已知的用于實施本發明方式是各個計算機的陣列。該陣列被描述于圖1
的簡圖中,并在此處總地用附圖標記10來指示。計算機陣列10具有多個(在 所示的示例中是24個)計算機12 (在陣列的示例中,有時也稱作"核"或 "節點")。在所示的示例中,所有的計算機12都位于單個芯片(die) 14 上。根據本發明,每個計算機12通常都是獨立運行的計算機,下文中將對 此做更詳細的論述。計算機12由多條(下文中將對該數量做詳細論迷)互 連數據總線16互相連接。在該示例中,數據總線16是雙向、異步、高速、 并行的數據總線,不過針對此目的采用其它互連方式也落入本發明的范圍 中。在本實施例的陣列10中,不僅計算機12之間的數據通信是異步的,而 且各個計算機12內部也以異步模式操作。這已經被發明人所發現,從而能 夠提供重要的優勢。例如,因為時鐘信號不必要分布到整個計算機陣列10 中,因此就很省電。此外,不必分布時鐘信號消除了許多定時問題,這些定 時問題可能限制陣列10的尺寸或可能導致其它已知的麻煩。
本領域的技術人員將認識到,出于清晰的考慮,芯片14上的額外部分在圖l的視圖中被省略。這些額外部分包括電源總線、外部連接鍵盤和微處 理器芯片的其它這類公共方面。
計算機12e是一臺未處于陣列10的周邊上的計算機12的示例。也就是 說,計算機12e有四個垂直相鄰的計算機12a、 12b、 12c和12d。對計算機 12a - 12e進行的這種分組將在下文中用于對陣列10的計算機12之間的通信 進行更為詳細的論述。從圖l的視圖可知,諸如計算機12e的內部計算機具 有通過總線16與該內部計算機直接通信的其它四臺計算機12。在下文的論 述中,所論述的原理將適用于所有計算機12,除了在陣列10的周邊上的計 算機12僅僅與其它三臺計算機直接通信之外,還除了邊角計算機12僅僅與 其它兩臺計算機12直接通信的情況。
圖2是圖1的一部分的更為詳細的視圖,其僅僅示出了一些計算機12, 具體而言,僅僅包括計算機12a-12e。圖2的視圖還揭示了,每條數據總線 16均具有讀取線18、寫入線20和多條(在本示例中為18條)數據線22。 數據線22能夠幾乎同時地并行傳輸一個18比特指令字的所有比特。應該注 意的是,在本發明的一個實施例中, 一些計算機12是相鄰計算機的鏡像。 不過,無論計算機12是全部同一定向或者是作為相鄰計算機的鏡像,均不 構成這里描述的本發明的方案。因此,為了更好地描述本發明,在此并不進 一步論述這種潛在的復雜性。
根據本發明的方法,計算機12,例如計算機12e,可以對它的一條、兩 條、三條或所有四條讀取線18進行設置,從而使得該計算機準備從相應的 一臺、兩臺、三臺或所有四臺相鄰計算機12接收數據。類似地,計算機12 還可以將其一條、兩條、三條或所有四條寫入線20設置為高電平。雖然發 明人認為在同一時刻將不止一臺計算機12的寫入線20設置為高目前還不現 實,但是如此做法并未超出本發明的范圍,因為可以想象到,這種操作的使 用有可能發生。
當相鄰計算機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設置為高電 平之前,計算機12e將其一條或多條讀取線18設置為高電平。不過,這個 過程當然可以按照相反的順序進行。例如,如果計算機12e正試圖向計算機 12a寫入,那么計算機12e將把計算機12e與計算機12a之間的寫入線20設 置為高電平。如果接下來計算機12e和計算機12a之間的讀取線18尚未祐L 計算機12a設置為高電平,則計算機12e將只能等待,直到計算機12a確定 將該讀取線20設置為高電平。然后,如上文所述,當相應一對寫入線18和 讀取線20均為高電平時,就傳送在數據線22上待傳送的數據。此后,發送 計算機12e—釋放,接收計算機12 (在本示例中為計算機12a)就將兩臺計
算機(在本示例中為12e和12a)之間的讀取線18和寫入線20均設置為低
電平。
除非數據將要發送到的計算機12已經將其讀取線18設置為高電平,在 這種情況下,數據會被立即發送,否則,只要諸如計算機12e的計算機12 已經將其寫入線20中的一條設置為高電平以期望寫入,它都將僅僅等待而 幾乎不耗電,直到數據如上文所述那樣由合適的相鄰計算機12 "請求"。 類似地,只要計算機12已經將其一條或多條讀取線18設置為高電平以期望 讀取,它就將僅僅等待而幾乎不耗電,直到所連接至所選計算機12的寫入 線20變為高電平,以在兩臺計算機12之間傳送指令字。
可能有若干潛在的裝置和/或方法來使得計算機12如上所述地運行。不 過,在本示例中,計算機12之所以這樣運轉,僅僅是因為它們通常在內部 異步操作(除了以所述異步方式在它們之間傳送數據之外)。也就是說,指 令按順序被完成。當產生寫入指令或讀取指令時,可以不采取進一步行動, 直到指令被完成(或者,或許可選地,直到其被"重置"等中止)。在現有 技術意義中,并不存在規則的時鐘脈沖。更確切地說,只有當正在執行的指 令既不是讀取類型指令也不是寫入類型指令時(假定讀取或寫入類型的指令 需要由另一實體完成)時,或者當讀取或寫入類型的操作實際上已經完成時,
脈沖才產生以實現下一指令。
圖3是描述圖1和圖2中一臺計算機12的示例通用布局的結構圖。從 圖3的視圖可知,每臺計算機12 —4殳均為自身具有RAM 24和ROM 26的 計算機。如之前所提到的,計算機12有時候也被稱為單獨的"核",假設 在本示例中它們被組合到單個芯片上。
計算機12的其它基礎部件為返回堆棧28、指令區域30、算術邏輯單元 ("ALU" )32、數據堆棧34和用于對指令進行解碼的解碼邏輯部分36。 本領域的技術人員通常很熟悉基于堆棧的計算機的操作,例如本示例的計算 機12。計算機12為具有數據堆棧34和分立的返回堆棧28的雙堆棧計算機。
在本發明的該實施例中,計算機12具有四個通信端口 38,其用于與相 鄰計算機12進行通信。通信端口 38為三態驅動器,其具有截止狀態、接收
狀態(用于將信號驅動進入計算機12)和發送狀態(用于將信號驅動出計 算機12)。當然,如果特定的計算機12不像計算機12e的示例那樣處于陣 列IO(圖l)的內部,那么至少出于在此所描述的目的,在所述特定的計算 機中將不會使用一個或多個通信端口。指令區域30包括多個寄存器40,在 該示例中,包括寄存器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獲取它們的操作數,所以它 們通常只有5個比特的長度,以便在這一組中的最后指令選自只需要3比特 的有限指令集合的狀況下,單個18比特的指令字中可以包含多達4條指令。 在圖3的視圖中,還以塊圖形式描述的有時段定序器42。在本發明的這個 實施例中,數據堆棧34中的最上面兩個寄存器是T寄存器44和S寄存器 46。
圖4是指令字48的示圖。(應該理解,指令字48實際上可以包括指令、 數據或它們的某種組合。)指令字48由18個比特50組成。這是一個二進 制計算機,每個比特50都是'T,或者"0"。如在此之前所論述的,18比 特寬的指令字48可包括被稱為時段零54a、時段一54b、時段二54c和時段 三54d的四個時段54中的多達四條指令52。在本發明的該實施例中,18比 特的指令字48總是作為整體來讀取。因此,由于總是存在在指令字48中具 有多達四個指令的可能性,因而在計算機12的指令集中包含no-op(非操作) 指令,這些指令是為可能沒有必要甚至不希望使用所有可用時段54的情況所提供的。應該注意的是,根據本發明的一個特定實施例,在間隔的時段(具
體而言,時段一 54b和時段三54c)中,比特50的極性(高有效對比于低有 效)被反轉。不過,這并不是在此描述的本發明的必要方案,因此,為了更 好地闡釋本發明,在下文的描述中避免這種潛在的復雜性。
圖5是圖3的時段定序器42的示圖。從圖5的視圖可見,時段定序器 42具有以環狀排列的多個(本示例中為十四個)反相器56和一個NAND門 58,這樣,當信號穿過十四個轉換器56和NAND門58時,該信號^皮反相 奇數次。當OR門60的兩個輸入中的任一個變為高電平時,在時段定序器 42中產生一信號。第一OR門輸入62源自正在執行的指令52的比特i4 66 (圖4)。如果比特i4為高,則特定指令52為ALU指令,并且i4比特66 為'T,。當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的哪一個將被設置成讀取或寫入,如果有這樣端口的話。 可選地,后一操作通過使用一個或多個比特指定諸如A寄存器40a、 B寄存 器之類的寄存器40來實現。在該示例中,指定的寄存器40將被預載入數據, 該數據具有與每個端口 38 (并且還有計算機12可能試圖與其通信的其它任 何可能實體,例如存儲器、外部通信端口 39,等等)對應的比特。例如, 在特定寄存器40中的四個比特中的每一個可對應上端口 38a、右端口 38b、 左端口 38c或下端口 38d中的每一個。在這種情況下,如果在這些比特的位 置中的任意一處為'T',則通信將被設置為通過對應的端口 38進行。如同 之前在此所論述,在本發明的當前實施例中,可以預見的是,讀取操作碼可 以在單個指令中設置不止一個用于通信的端口 38,而同時,雖然可能發生 但是無法預見的是,寫入操作碼將在單個指令中設置不止一個用于通信的端 口 38。
緊接下來的示例將假定如下通信,其中計算機12e正試圖向計算機12c 寫入,雖然該示例可用于任何相鄰計算機12之間的通信。當寫入指令在寫 入計算機12e中被執行時,所選擇的寫入線20 (在本示例中為計算才幾12e 和12c之間的寫入線20)被設置為高電平,如果相應的讀取線18已經為高
電平,則數據立即從所選擇的位置通過所選擇的通信端口 38發送。或者, 如果相應的讀取線18還未為高電平,則計算機12e將僅停止操作,直到相 應的讀取線18確實變為高電平。在此之前已經論述了用于在存在讀取或寫 入類型指令時停止計算機12a (或者更準確地說,使計算機12a不能進一步 操作)的機制。簡而言之,指令52的操作碼將在比特位置i4 66為'0,, 因此,OR門60的第一 OR門輸入62為4氐電平,進而,不觸發時段定序器 42產生使能脈沖。
至于在讀取或寫入類型指令完成時如何重新開始計算機12e的操作,用 于此的機制如下當計算機12e與12c之間的讀取線18和相應的寫入線20 均為高電平時,線18和20由將其保持為高電平的每個相應計算機12釋放。 (在該示例中,發送計算機12e將使寫入線18保持為高電平,而接收計算 機12c將使讀取線20保持為高電平)。接下來,接收計算機12c將把線18 和20拉為低電平。在實際操作中,在發送計算機12e釋放寫入線18之前, 接收計算機12c可能試圖將線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
從而執行在指令字48的下一時段54中的指令52。確認線72保持在高電平, 直到下一指令52 ^皮解碼,以防止偽地址到達地址總線。
無論如何,當正在執行的指令52處于指令字48的時段三位置中時,計 算機12將獲取下一正在等待的18比特指令字48,當然,除非比特i4 66為 "0"。在實際操作中,本發明機制包括一種方法和裝置,其用于"預獲取"指令,從而在指令字48中的所有指令52執行完之前可以開始該獲取操作。 不過,這也不是當前針對異步數據通信的本發明方法和裝置的必要方案。
在此已經詳細描述了上述示例,其中計算機12e正在向計算機12c進行 寫入。如同根據以上論述可以理解的那樣,不論計算機12e首先試圖對計算 機12c寫入,還是計算機12c首先試圖從計算機12e讀取,操作基本相同。 直到計算機12e和12c均準備就緒,才完成操作,并且無論計算機12e或12c 中的哪一 臺首先準備就緒,首先準備就緒的計算機12僅僅"進入休眠狀態", 直到另一臺計算機12e或12c完成傳送。觀察上述過程的另一種方式為,實 際上,在寫入計算機12e和接收計算機12c分別執行寫入和讀取指令時,這 兩臺計算機均進入休眠狀態,但是當讀取線18和寫入線20均為高電平時, 后一臺進行處理的計算機幾乎即刻再喚醒,然而,首先發起處理的計算機 12可以幾乎無限期地保持在休眠狀態,直到第二臺計算機12即將完成上述 過程。
發明人相信,在設備之間進行有效異步通信的關鍵特征是某種確認信號 或條件。在現有技術中,設備之間的大多數通信被定時,并且對于發送設備 而言,沒有直接的方式用于了解接收設備已正確接收數據。諸如校驗和操作 的方法可能已經用于試圖確認數據被正確接收,但是發送設備沒有操作完成
間的異步通信,或者至少使得設備之間的異步通信可實現。此外,確認條件 也使得對于一個或更多設備而言,"進入休眠狀態"直到確認條件發生變得 可能。當然,確認條件可以在計算機12之間由單獨在計算機12之間發送的 信號(或者通過互連的數據總線16或者通過單獨的信號線)進行傳送,并 且這種確認信號處于本發明的該方案的范圍中。不過,根據這里所述的本發 明實施例,可以理解這里存在甚至更多的經濟因素,原因在于,用于確認的 方法不需要任何額外的信號、時鐘周期、定時脈沖,或除了上述之外的任何 這類資源,來實際上實現通信。
根據用于實現它們的步驟和方式的上述論述,現在可以理解本發明方法
的示例的以下簡要描述。圖6是描述該方法示例的流程圖,由附圖標記74 指示。在"啟動通信"的操作76中, 一臺計算機12執行使其試圖與另一計 算機12進行通信的指令53。這可以是試圖寫入或試圖讀取。在通常與"啟 動通信"的操作76同時發生的"將第一線設置為高電平"的操作78中,讀 取線18或寫入線20被設置為高電平(根據第一計算機12是試圖讀取還是 試圖寫入而定)。作為"將第一線設置為高電平"操作的一部分,根據當前 描述的操作的實施例,計算機12這樣做將停止操作,如同在此之前詳細描 述的一樣。在"將第二線設置為高電平"的操作80中,第二線(或者是寫 入線20或者是讀取線18)由第二計算機12設置為高電平。在"傳輸數據" 的操作中,數據(或指令等)通過數據線22被發送和接收。在"將線拉為 低電平"的操作84中,讀取線18和寫入線20被釋放,然后被拉為低電平。 在"繼續"的操作86中,確認條件使計算機12重新開始它們的操作。在本 發明示例的情況下,確認條件產生確認信號86 (圖5),在該情況下,確認 信號86僅是確認線72的"高電平"條件。
可以對本發明進行多種修改,而不改變本發明的價值或范圍。例如,雖 然在此已經針對讀取指令和寫入指令來描述本發明,不過在實際操作中,可 能存在不止一個讀取類型指令和/或不止一個寫入類型指令。僅僅作為一個 示例,在本發明的一個實施例中,存在使寄存器遞增的寫入指令以及其它不 執行此功能的寫入指令。類似地,根據哪一個寄存器40被用來選擇通信端 口 38等等,寫入指令可以變化,如同在此之前所描述的那樣。還可以存在 多個不同的讀取指令,所依據的只是,計算機12的設計者相信何種變化是 可替換讀取行為的有用選擇。
類似地,雖然在此已經針對單個芯片14上的陣列10中的計算機12之 間的通信來描述本發明,不過相同的原理和方法可以用作,或者被改造為用 作完成其它設備間的通信,例如計算機12和其專用內存之間的通信,或者 陣列10中的計算機12和外部設備之間(通過輸入/輸出端口等)的通信。 實際上,可以預見的是,在一些應用中可能要求由陣列組成的陣列一一將這里描述的設備間的通信方法潛在地應用于陣列中的陣列之間的通信。
雖然已經在此論述了本發明的計算機陣列IO和計算機12的特定示例, 不過可以預期,針對于此的大量應用還未被想到。事實上,本發明的一大優 勢在于,本發明方法和裝置可適用于許多不同的使用。
上述全部內容^5U又為本發明的可用實施例的 一 些示例。本領域的^支術人 員將易于想到,在不脫離本發明的精神和范圍的前提下,可進行多種其它修 改和變化。相應地,本7>開在此并不意在限制,并且所附^L利要求書應^^皮理 解為涵蓋了本發明的全部范圍。
本發明計算機陣列10、計算機12以及相關的方法74意在廣泛用于多 種計算機應用場合中。可以預見,它們將特別使用于需要相當計算能力而功 耗和放熱是重要考慮因素應用場合中。
如同此前論述的一樣,本發明的適用性在于,多種類型的設備間的計算 機通信可以因此顯著改善。可以預期,本發明的方法,其中某些計算機在不 用時可被允許"進入休眠狀態,,,能用于降低功耗、減少放熱,并以多種應 用和實現來提高計算機之間以及計算機裝置之間的通信效率。
由于本發明的計算機陣列10、計算機12和方法74可以容易地產生并 與現存的任務、輸入/輸出設備等結合,并且由于提供了在此所述的優點, 所以可以預期,它們將很容易地在業內被接受。由于這些和其它原因,可以 預期,在范圍和長期持續等方面,本發明的實用性和工業實用性都將非常顯 著。
工業實用性
注意提供本對照表僅用于提供信息的目的,它并不是官方專利申請的 一部分。
對照表
10計算機陣列
12計算機
14芯片
16數據總線
18讀取線
20寫入線
22數據線
24 RAM
26 ROM
28返回堆棧
30指令區域 32 ALU 34數據堆棧 36解碼部分 38內部通信端口 38a上端口 38b右端口 38c左端口 38d下端口 40寄存器 40a A寄存器 40bB寄存器 40cP寄存器 42時段定序器44T寄存器
46S寄存器 48指令字 50比特 52指令 54時段 54a時^殳零 54b時段一 54c時段二 54d時段三 56反相器 58 NAND門 60 OR門
62第一 OR門輸入
64第二 OR門輸入
66 i4比特
68時段定序器輸出
70脈沖生成器
72確i人線
74方法
76啟動通信的操作
78將第一線設置為高電平的操作
80將第二線設置為高電平的操作
82傳送數據
84繼續
86確-〖人信號
權利要求
1、一種計算機,包括處理器,其用于執行來自指令區域的指令;和定序器,其用于提供脈沖,以從當前執行的指令前進到下一指令;其中所述指令包括用于向所述定序器提供輸入的比特,以便當所述比特被設置時,所述定序器被觸發而進入運行。
2、 如權利要求1所述的計算機,其中 當所述比特為"1"時,所述比特被設置。
3、 如權利要求1所述的計算機,其中 所述指令為較大指令字的一部分。
4、 如權利要求1所述的計算機,其中當所述用于向所述定序器提供輸入的比特未被設置時,所述定序器不被觸 發進入運行。
5、 如權利要求4所述的計算機,其中當所述用于向所述定序器提供輸入的比特未被設置時,所述計算機與第二 計算機之間的第 一通信狀態線被設置。
6、 如權利要求5所述的計算機,其中 所述第 一通信狀態線為寫入線。
7、 如權利要求5所述的計算機,其中 所述第 一通信狀態線為讀取線。
8、 如權利要求5所述的計算機,其中當第二通信狀態線被設置時,數據在所述計算機與所述第二計算機之間傳送。
9、 如權利要求8所述的計算機,其中 數據從所述計算機傳送到所述第二計算機。
10、 如權利要求8所述的計算機,其中所述數據包括指令。
11、 如權利要求8所述的計算機,其中當所述第二通信狀態線被設置時, 一輸入被提供給所述定序器,以便所述 定序器纟皮觸發而進入運行。
12、 一種用于使計算機暫時降低其功耗的方法,包括(a) 當試圖與外部實體通信時,使所述計算機停止操作;并且(b) 當確認完成與所述外部實體的通信時,使所述計算機重新開始操作。
13、 如權利要求12所述的方法,其中 所述外部實體為另一計算機。
14、 如權利要求12所述的方法,其中 所述計算機和所述外部實體都位于單個芯g上。
15、 如權利要求12所述的方法,其中當所述計算機停止操作時,它也改變所述計算機與所述外部實體之間的第 一狀態線的狀態。
16、 如權利要求12所述的方法,其中當兩條通信狀態線被設置為同 一狀態時,確認與所述外部實體的通信。
17、 如權利要求12所述的方法,其中當停止所述計算機操作時,所述計算機與所述外部實體之間的兩條狀態線 中的第一條被設置;并且當所述兩條狀態線中的第二條被設置時,傳送數據,然后重新開始所述計 算機的操作。
18、 如權利要求12所述的方法,其中 一定序器產生脈沖,以執行多條指令中的每條指令;并且 當試圖與所述外部實體通信時,不立即產生這種脈沖。
19、 如權利要求18所述的方法,其中當確認完成與所述外部實體的通信時,產生一脈沖,以執行下一指令。
20、 在一種用于執行指令的計算機中,所述指令中的至少一些是與外部實體進行通信的指令, 一種改進包括用于當與所述外部實體通信的指令被試圖進行時使所述計算機停止的裝 置S和用于當與所述外部實體通信的指令被完成時使所述計算機重新啟動的裝置。
21、 如權利要求20所述的改進,其中所述用于當與所述外部實體通信的指令被試圖進行時使所述計算機停止的 裝置包括一脈沖生成裝置,該脈沖生成裝置用于當執行每一條指令時都產生一 脈沖,除了當所述指令是與所述外部實體通信的指令時,不產生這種脈沖的情 況。
22、 如權利要求21所述的改進,其中所述用于當與所述外部實體通信的指令被完成時使所述計算機重新啟動的 裝置包括一用于使所述脈沖生成裝置產生脈沖的裝置。
23、 如權利要求21所迷的改進,其中當所述外部實體確認完成所述通信時,使所述脈沖生成裝置產生一脈沖。
全文摘要
計算機陣列(10)具有多臺計算機(12)。計算機(12)彼此之間異步通信,并且計算機(12)自身內部一般也以異步方式操作。當一臺計算機(12)試圖與另一臺通信時,它將進入休眠狀態,直到另一計算機(12)即將完成處理,從而可以省電并減少放熱。在每一計算機中的時段定序器(42)產生定時脈沖,以使計算機(12)執行下一指令。不過,在當前指令是讀取或寫入類型指令時,時段定序器不產生脈沖,直到確認信號(86)啟動它。當確認另一計算機(12)已經完成通信時,產生確認信號(86)。
文檔編號G06F1/00GK101341454SQ200780000014
公開日2009年1月7日 申請日期2007年2月16日 優先權日2006年2月16日
發明者查理斯·H·莫爾 申請人:科技資產股份有限公司