TW200817925A - Method and apparatus for operating a computer processor array - Google Patents

Method and apparatus for operating a computer processor array Download PDF

Info

Publication number
TW200817925A
TW200817925A TW096110969A TW96110969A TW200817925A TW 200817925 A TW200817925 A TW 200817925A TW 096110969 A TW096110969 A TW 096110969A TW 96110969 A TW96110969 A TW 96110969A TW 200817925 A TW200817925 A TW 200817925A
Authority
TW
Taiwan
Prior art keywords
computer
computers
instruction
data
array
Prior art date
Application number
TW096110969A
Other languages
English (en)
Inventor
Charles H Moore
Jeffrey Arthur Fox
John W Rible
Original Assignee
Technology Properties Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Technology Properties Ltd filed Critical Technology Properties Ltd
Publication of TW200817925A publication Critical patent/TW200817925A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)

Description

200817925 九、發明說明: 【發明所屬之技術領域】 優先權相關申請案 本發明之宣告享有2006年3月31日所申請,名稱 為 ” Allocation Of Resources Among An Array Of Computers” 之美國第 60/788,265 號臨時申請案 (provisional)之優先權,該相關申請案之全部内容在本 案中作為交互參照之用。 本發明係有關於電腦(computer)及電腦處理器 (computer processor)領域,特別係有關於電腦間交互作 用之一獨特類型之方法及手段。本發明所提出之電腦陣列 目鈾主要用途在於結合多電腦於單一微晶片(micr〇ch丨p) 上。本發明更有關於電腦及電腦處理器領域,特別係有關 於在堆疊(stack)電腦處理器中更有效地使用堆疊之方法 及手段。 【先前技術】 現行技術已可使用多個電腦處理器,協同運作而完成 一工作(task)。多緒(Multi-threading)及若干其他機制 已被使用來允許處理器來進行操作。然而,在此研究領域 中尚有空間可改進。再者,在單一晶片上結合若干不同處 理器係為一趨勢。因此,此問題漸趨嚴重且急需一可使電 腦協同運作之有效方法。目前所知,對於多應用之多重處 里器的表佳女排為一包含多電腦的陣列,每一電腦具有處
3019-8760-PF 5 200817925 理Ή及至少—些專用記憶體(dedicated議。…。在 此一範例巾,每一個電腦分別單獨的能力並不特別強大, 但這些電腦密切協同作業後卻能達到強大的能力。 與本發明相關之其他發明,描述及宣告了前述電腦陣 列之某二創造性特徵,包括例如此等電腦陣列如何排列, ^ ^ 1 II) ήί; 4 it it (communication channel)#^ 〇 前述電腦陣列之新觀念的實作需要更新的發明創作以達 到高效率的運作。 很清楚地,有關電腦如何排列、電腦間如何溝通、如 何區分工作、以及如何使用電腦陣列等許多問題,均尚待 解決。這些問題中可能有些問題已有解決方法,然而目前 解決方法還有許多可改善的空間。在某些情況下,解決方 法可要求強調第一印象的問題,以解決不存在先前技術中 的新問題。 堆豐機(stack machine)所提供給處理器的複雜度遠 比複雜指令集電腦(Complex instructi〇n Set c⑽puter, CI SC)來的低,而且整體系統複雜度比精簡指令集電腦 (Reduced Instruction Set Computer, RISC)或複雜指令 集電腦機器來的低。堆疊機可在不要求複雜編譯器 (compi 1 er)或高效率的快取緩衝記憶體(cache)控制硬體 的情形下,完成前述目的。同時,在大多可程式化環境中, 其所給定的價格,也可達到具競爭性的初效率(γ· performance)以及優越效率(superior perf〇rmance)。其 第一個成功的應用領域為即時(real time)内建控制環 3019-8760-PF 6 200817925 境,在此藉由寬廣範圍,其所表現的性能優於其他系統設 計方法。在此,較早的堆疊機通常位在程式記憶體中,而 較晚的堆疊機則保存在獨立的記憶體晶片或甚至是為堆 疊所設的on-chip記憶體之一區域。這些堆疊機提供相當 快速的子常式(subroutine)呼叫能力,以及優越的中斷處 理(interrupt handling)與工作切換效率。 在 Zahir,et al.(usPN 6,367,005)中揭露一暫存器
堆疊機(register stack engine),其保留暫存器堆疊 (register stack)之足夠暫存器給記憶體以在堆疊溢2 (stack overflow)的情形下,提供更多可用的暫存器。在 堆疊溢滿的情形下,暫存器堆疊機同時延遲微處理器 (microprocessor),直到暫存器堆疊機可回復適當數目的 暫存器。 stonKUSPN 6,219,685)揭露一種以定限值 (threshold value)比較操作(〇perati〇n)結果之方法。缺 而’此方法並未對經過捨入達到定限值(此可能導致溢: 例外)的結果’以及恰好等於定限值的結果進行區分。 Story所提出的另-個方法可讀取(read)及寫人 硬體旗標(flag)以識別溢滿或未溢滿的條件。 在記憶體中具有堆疊,溢滿.夫 乂禾,益滿可能改寫堆疊項 目或使用不屬於堆疊一部份的堆最 、 W ^ $項目。因此需要一改良 方法以減少或消除堆疊中的溢滿及未溢滿。
Forth系統已可在同一 式碼(code)”定限值” 時間中具有多於一個的執行程 此通常稱為協同循環法
3019-8760-PF 200817925 (cooperative rc)Und-rQbin)。其中,定限值循環使用中 央處理單元(cpu)的順序是固定的。例如,定限值4的順 序水遠在定限值3之後及定限值5之前。每一定限值可依 其所須擁有中央處理單元,而後再自動地撤回。定限值藉 由呼叫PAUSE(暫停)一字來達成前述工作。在PAUSE(暫停) 功能執行期間,僅有一些資料項目必須被保留,以便恢復 原=的執仃工作。相對地,在中斷功能執行期間則有大量 内容必須被保留。 每一定限值可有或可沒有工作需要執行。若工作4具 有工作要執行且工作4循環順序前的工
PAUSE(暫停),則工作4將 ;吁H — 、· (wake up)並工作直到它決 疋要=PAUSE(暫停)為止。若工作4沒有工作 订,則會將控制傳遞給工作5。當一 以執行輸入/輸出功能,因 1子(W〇rd) 束,% 屬荨待輸入/輸出功能結 束貝muSE(暫停)會在輸入/輸出呼叫中建立。 PAUSE(暫停)料_性使得 常,Forth為主的協同循環 芦吊有效率。通 多工者(-⑴一)在較少的時::先行(ΡΓ—^ 中央處理單元中的順序,以:内給疋母一定限值在 理單元。 、何者應下—個取得中央處 外, 利的 然而,一特殊的工作可能 將PAUSE(暫停)功能延展至 會壓潰中央處理單元。此 一個中央處理單元外是有
3019-8760-PF 8 200817925 【發明内容】 簡言之,本發明包括一電腦陣列(array),每一 “ w 有其專屬記憶體以及獨立的運算功能。為能協同運 成工作,電腦必須由一電腦傳送資料及/或指令至另二: 腦。-種可能的組態是將電腦排列成與直角鄰近 : 有連接資料路徑’以使每一電腦可直接和四個 :: (福咖㈣”直接進行溝通。若—電腦想和_ = 的目的地。 編會透過其他電腦到達所欲溝通 既然,根據所描述的環境,包含4個指令的資料字 ⑽㈣)可被平行地傳送,無論在電腦間或去回每一 電腦的内部記憶體間’在單一資料字中的小型程 (mini program)之一類切力&时、丄化 頰尘在此將被參照為微迴圈 (micro-1C)Gp)。應注意的是,在大的處理器陣列中,大的 工作通常會被區分為多個較小的工作,每一個小工作合由 一處理器以些微受限的能力 曰 7刀口以兀成。因此,4個指今之 迴圈相當有用。此一現炱驻山4日日 心 象错由相關現象會更加明顯,既然 電腦受限於本身設借,目丨 、、 則因時不同由鄰近者,,借入 (borrow)”設備將是有利 J此即顯不微迴圈使用之理相 機會。當電腦需由鄰近者件A ♦ w a 心 迎考^處理能力或其他能力,另一 種可能即為其必須由鄰近者 ,柏入e己憶體,而以類似使用 部記憶體的方式來使用它。 文用円 一 错者傳迗微迴圈到鄰近者以指 不其δ貝或寫^一序列資斜,乂、丄、 、 則述的記憶體借入可被輕易地完 成。例如,微迴圈可包含_ 才曰々由一特定的内部位址
3019—8760—PF 9 200817925 (location)以寫入 然微迴圈為單一字 (fetch) 〇 ’增加位址,以及重覆執行若干次。既 ,因此無法多次執行指令記憶體存取 々前述有關傳送微㉟圈至鄰近者係為本發明之一面向 之耗例其被參照為” F〇rthlets”,因為其係以 電腦語二加以實現一雖然本發明之應用並不嚴格限定在 "F〇rth〗et係為一種可直接傳輸到電腦以執行 的小型程式。相較於微迴圈,其可大於一字且可執行多次 記憶體存取。纟已知的電腦中,指令必須在執行前被讀取 以及儲存,然而前所描述,根據本發明則為非必要的。事 實上,可預見地,本發明之一重要面向為一電腦可產生 F〇rthlet並將其傳送給其他電腦加以執行。Forthlet可 由耘式人員”事先寫成(Pre-written),,並儲存以利使 用。事實上,Forthlet可累積到,,程式庫(library)”中, 當需要時便加以利用。然而,在一電腦中,根據預先程式 化的準則以產生Forthlet,亦在本發明之範疇中。 舉例說明,在本發明之一實施例中,丨/〇暫存器被視 為記憶體位址,其意味著讀取及寫入記憶體的相同(或類 似)指令也可同時執行1/0操作。在多核心(multi—c〇re) 晶片的情形中,存在對1/0結構選擇的強大分歧。核心處 理器不僅可由本域(1〇cal)R0M及]讀取及執行指令,同 寺了 買取在I/O埠(P〇rf)或暫存器中的指令。目前,緊密 循環(tight loop)傳輸資料變成相當強大。可允許指令串 流(stream)在I/O埠直接顯示給核心並且直接被執行。因 3019-8760-PF 10 200817925 此,一核心可將程式碼物件傳送到鄰接的核心處理器中, 鄰接的核心處理器可直接執行此程式碼物件。程式碼物件 可於核心之間傳送,而在暫存器中執行。程式碼物件可以 高速到達因為每一核心基本上完全在本域的位址空間中 執行,無將時間化在程式碼物件的傳輸上。 如上所述,每一指令擷夾帶多個指令(如前所述之範 例為4個)到核心處理器中。雖然此種内建的,,快取記憶 (,體(Cache)”相當小,但當指令本身利用此它時卻具極^ 、效率。例如,micro f0r-next循環可被建立,其完全包含 在單一 18-位元的指令字範圍中。當與建置於1/()暫存器 中的自動狀態信號結合時,此等結構是非常理想的,因為 此意謂著大區塊資料可以單一指令擷取進行傳輸。以此種 指令包裝,來自鄰接處理器核心而表現在1/〇暫存器上執 行指令的概念會呈現新能力,因為出現在站存器中的每一 字不僅表現一個,而是4個指令。此等軟體/硬體結構的 (類型及其在多核心晶片執行上的觸發衝擊在傳統語言中 無法達成一在傳統語言中,僅能在一指令集以單一字包裝 多個指令,而完全循環可在此字中被執行。 在此所描述之裝置,其中傳統資料及返回堆疊係被暫 存器陣列所取代,此暫存器陣列以循環及重複的樣態執行 功能。-資料堆疊包括_ τ暫存器、—s暫存器、以及8 個固線式(hardwired)暫存器’其以可變的樣態互相電性 $接。此8個固線式暫存器會以前述方式電性連接而以循 環重複的樣態執行功能。此種組態可避免堆疊外的讀取, 3019-8760-PF 11 200817925 並避免讀取—去@ # 未預期的空暫存器值。 與資料堆疊類似,返回堆疊包括 、 固線式暫存器,1 暫存益以及8個 °八以可變的樣態互相電性遠 線式暫存器合以一+… U生連接。此8個固 逑方式電性連接而以循環重複的樣離 執行功能。此瀚如能Λ J俅恕 未預期的*赵/ 免堆疊外的讀取’並避免讀取- 未預期的空暫存器值。 ㈣如!:述之雙堆疊處理器可如獨立的功能性處理号 广丁功能,或者也可在一相互連接之電腦陣列: 其他類似或不同處理器進行。 個 熟習本發明之技術領域者,由本發明所描述之實行模 揭不之圖式,輕易地理解本發明。在此所列之目的 及優點並非本發明之可能優點的完整列表。此外,在= :’也可能只實現本發明所涵蓋之其中—或多目二 再者,熟習本發明之技術領域者輕易可知本發 現其中一或多實施例,但盔需實 /㈣w “ …、而實現以上所述之所有目的及 /優點。口此,本發明在此所揭示之目的及/優點並非本發 明之必要兀素,亦不用於限制本發明。 x 【實施方式】 本發明之實施例將於下輔以圖式說明詳加教述,盆中 數字用以表示相同或類似元件。然而以各種模式係用二描 述本發明之㈣,熟習本發明所屬技術領域者當可在不^ 背本發明之精神下,完成本發明之各種應用。 3019-8760-PF 12 200817925 以下之說明肖圖式$描述之本發明《實施㈣及豆變 化係為範例之用,然非用以限定本發明。除特定敘述Ϊ本 發明之各別部份及元件可被忽略或潤飾,或可以等同的元 件取代’甚或可以未來可能發展之等同元件取代。既然本 發明之應用範圍極廣,在不違反本發明所宣告及精神下, 本發明可推廣為許多不同的應用。 於下所描述之實施例中,係以具有電腦間非同步 (asynchronous)溝通及個別非同步操作電腦之電腦陣列 作為範例’然本發明之實際應用絕非限於此範例。 本發明包括多個個別電腦的-陣列(array)。本發明 所揭示之電腦陣列如第1圖所示。且在此以字& 10作為 通用參考符號。電腦陣列1〇具有複數個(在圖示中為Μ 個)電腦12(在陣列之範例中有時亦稱為,,核心&㈣),, / 'i 或:節點(n〇de)”)。如範例所示,所有24個電腦被配置 於早-模塊(die)14中。每一電腦12均為通用之獨立功能 電腦’於下將更詳細描述之。電腦12間係以複數(其數量 於下將更詳細描述之)相互連接之資料匯流排(data bus)16加以連結。在此範例中,資料匯流排i6係為雙向 (bidirectional)非同步面速平行資料匯流排,雖然本發 明所揭不之範例並未提及’但可達到連結效果之其他連接 方式亦可應用於本發明中。在本實施例之陣列ι〇中不 僅電腦12間的資料溝通(c〇mmunicati〇n)為非同步的,個 別的電腦12也以内部非同步模式進行操作。此為本發明 所揭示之重要優點之一。例如,由於時鐘信號
3019-8760-PF 200817925 叫nal)無需分散至電觸陣列】",便可 么 二’無需分散時鐘信號可消除許多會對陣列的: 並=:制或其他已知困難的時間問題,個電腦陣列 本毛月之限制,電腦的數量將可隨晶片 成熟及組態的實際需求而增加。 打更加 本發明所屬技㈣域者可清楚得知,模塊 的右干附加元件在第lRd? Ύ 用。此等附加元件包括如 栝如電細匯流排、外部連接墊(pad)、 以及其他微處理器(1Di cr。㈣cessQr )晶片之通用部件。 之内部電腦具有4個透過匯流排16與其進行直接溝通之 其他電腦12。在以下的討論中,基本上針對所有電腦12, 除了在陣列1G週邊的電腦12,因為位在週邊的電腦進直 接和3個甚至2個其他電腦進行直接溝通。 電腦⑼係為電腦12之一範例且並不在陣们〇的週 、上換5之’電腦12e具有4個直角鄰接的電腦12a、 ⑽、12c及12d。電腦群12a到…將於下用來更詳細地 时論陣列10之電腦12的溝通。如第!圖所示,如電腦仏 第2圖為第1圖之部份細部圖,其僅顯示某些電腦 12,特別地,如包括電腦12a至12e。第2圖同時顯示每 一資料匯流排16具有讀取線(read line)18、寫入線 (wr i te 1 ine)20以及複數(8個,在本例中)資料線(data line)22。資料線22通常可同步平行傳送ι8-位元指令字 之所有位元。在此需注意的是’在本發明之一實施例中, 某些電腦12是鄰接電腦的鏡射影像(mirror image)。然 3019-87 60-PF 14 200817925 而,無論電腦12是屬於完全獨立或為鄰接電腦的鏡射影 像,並非本發明之重點。因此,為能更詳細地描述本發明, 潛在的複雜度將於下討論。 根據本發明所提出之方法,一電腦1 2,如電腦1 2e 可設定1、2、3或4條讀取線18,用來準備依序由ι、2、 3或4鄰接電腦來接收資料。相同地,對於電腦丨2也可設 疋1、2、3或4條寫入線20為高(high)。雖然目前描述 並未說明如何在同一時間設定大於j個電腦丨2寫入線2〇 為南,然此方式仍在本發明之範疇内。可想像此種操作發 生的情形,如寫入多埠(multi-p〇rt)位址。 當鄰接電腦12a、12b、12c及12d之一設定其與電腦 12e間之寫入線20為高,若電腦12e也已設定對應的讀取 線18為高,則字可在相關的資料線22上由電腦12”12卜 12c及12d傳輸至電腦i2e。接著,傳送電腦12將釋放寫 入線20,而接收電腦(在本例中為12〇將寫入線2〇及讀 :線丄8設為低。後者會通知傳送電腦12資料已被接收。 明庄思以上的描述,並未指明事件發生的順序。實作上, 在本範财㈣電腦可能嘗試設定寫人線20為低僅稍早 於傳送電腦12釋放(停止為高)寫入線20。在此情形下, 一旦傳送電腦12釋放其寫人線2G,寫人線2G將被接收電 月& 12 e設為低。 在本fe例中,僅程式錯誤(err〇i^可能導致匯流排16 :端的如2嘗試將介於其間的讀取線18設為高。同 排16兩端的電腦12在同—時間嘗試將介於其間
3019-8760-PF 15 200817925 的頃取線18設為高係為一種錯誤。類似地,如前所討論, 目前無法預計單一電腦12是否欲將4條寫入線2〇之中多 於1的寫入線設為高。然而,目前可知的是,可能會有某 些情況必須將讀取線18的不同組合設為高,以使電腦12 中之一進入等待狀態以等待由所選擇的電腦i 2之一設定 其對應的寫入線20為高。 在丽面所討論的範例中,描述電腦i 2e在鄰接電腦(由 lja、12b、12c《12d中選擇一或多)設定其寫入線2〇為 高之前將其一或多讀取線18設為高。然而,此過程也可 以相反的順序執行。例如,若電腦12e企圖寫入電腦, 電腦12e會將介於電腦12e及電腦12a中的寫入線別設 為高。若介於電腦l2e及電腦12a中的讀取線18尚未由 電腦12a設為高,則電腦12e將單純地等 確實將讀取…為高。接著,如前所述,二: 寫入線18及讀取線20設為高,則在資料線22上等待被 傳送的資料會被傳送。其後,接收電腦12(在本例中為i2a) 當傳送電腦1 2e釋放時,會設定在兩電腦間的(在本例中 為12e及12a)讀取線18及寫入線2〇為低。 一旦如電腦12e之一電腦12已設定其寫入線2〇之一 為高,則預計會寫人以待,幾乎無需使用能源,直到如 前所述之資料由適當的鄰接電腦1 2被,,要求,,,除非欲 傳送資料的電腦12已將讀取線18設為高,在此情形下則 會立即傳送資料。類似地,一旦如電腦丨2e之一電腦丄2 已設定其一或多讀取線18為高,則預計會讀取且等待, 3019-8760-PF 16 200817925 幾乎無需使用能源,直到連接至所選擇電腦^ 2〇為高,以在兩電腦12間傳輸指令字。 的罵 可能存在若干工具及/或方法可使 友j便冤細12如前所述的 執订功-。然而,在本例中,電腦12如此簡單的行為是 因,其-般内部操作為非同步的(除以前述非同步方式傳 輸貧料外)。換言之,指令是完全 或讀取指令發生,直到指八 、。‘”、論當寫入 a 1 7儿成都不再有動發生(或者可 月^由重設(reset),,等直到中止)。在此,以先前技術 的硯點,不會有規則的時鐘脈衝(pulse)。再者,脈衝的 產生係用以完成下—指令,且僅當此指令不為讀取或寫入 類型指令(給定讀取或寫入類型指令可由另一實體要求完 成),或當此讀取或寫入類型操作事實上已完成。 第3圖係為描述第i圖及第2圖之電腦之一之通用配 置之區塊示意圖。由第3圖中可看出’每一電腦12通常 為自我包含(self contained)的電腦,其具有自屬的_ 24及_ 26。如前所述’電腦12有時參用為獨立的,,核 心(c㈣),’,在本範例中,其給定與單—晶片相結合。乂 其他電腦12的基本元件為返回堆疊28、指令區3〇、 算術邏輯單元(“ALU”)32、資料堆疊34以及用來對指令 進打解碼之解碼邏輯區段36。熟習本發明之所屬技術領域 者當熟知以電腦為基礎的堆疊操作,如本範例中之電腦 12。電腦12為具有資料堆疊34及獨立返回堆疊28之雔 堆疊電腦。 又 在本發明之實施例中,電腦12具有4個溝通埠⑽以 3019-87 60-PF 17 200817925 進行與鄰接電腦12的溝通。溝通埠38為三態(tri-state) 驅動程式,具有停止狀態(〇f f status)、接收狀態(receive status)(用來驅動信號到電腦12中)、以及傳送狀態(send status)(用來驅動信號離開電腦12中)。當然,若特定電 月自12不在陣列内部中(弟1圖),如範例中電腦1 2 e所示, 則一或多溝通埠則不會被用於此電腦,至少不會如前所述 之目的而用。罪近模塊邊緣的溝通埠3 8可能有額外的線 路,其可設計於電腦12中或者在電腦12外部但與電腦12 連接,如此可使溝通埠38如同外部1/〇埠39 一般運作(第 1圖)。外部I/O埠39包括,但並不限於,USB(universai serial bus,通用序列匯流排)埠、rS232序列匯流排埠、 平行溝通埠、類比至數位及/或數位至類比轉換埠、以及 許多其他的變化。在第Ϊ圖中,,,邊緣,,電腦12f與界面 線路80相互連結以透過外部I /〇埠39與外部裝置82進 仃溝通。指令區30包括若干暫存器(register)4〇,例如 包括A暫存器40a、B暫存器40b、以及P暫存器40c、。 在本範例中,A暫存器40a為完全18 —位元暫存器,而β 暫存器40b及P暫存器4〇c為9-位元暫存器。 為確涊计算結果的準確性,處理器會確認每一操作以 决定疋否將其昇高為例外(excepti〇n)狀況。例如,算術 操作X溢滿(〇verf 1 ow)或未溢滿(underf 1 〇w)例外影響。 溢滿例外發生於,當所計算的數字大於此數字設定格式的 最大數時。而未溢滿例外發生於,當所計算的數字小於此 數字設定格式的最小數時(ΪΕΕΕ 754-1 985之二元算術操 3019-87 βθ-pp 18 200817925 作標準)。 本發明揭露一種堆疊電腦處理器,其中此堆疊包括相 互連接的暫存器之一陣列,其以循環的樣態執行功能。與 冻夕先如技術之電腦不同,資料堆疊及返回堆疊並非為在 記體中而以堆疊指標(pointer)進行存取。 第4圖係為表現指令字48之示意圖。(請注意指令字 48可忐包含指令、資料、或其組合)。指令字48由18位 貧 元5 〇所纟且成。在一元電腦中,位元5 0的每一位元將 為1或’ 0” 。如前所述,18-位元長度指令字48可包 含4個指令52在4個分別稱為槽_〇 54a、槽—丨54b、槽 -2 54c以及槽-3 54d。在本發明之本實施例中,—位元 指令字48會以整體讀取之。因此,既然在指令字48中可 能有4個指令,則no_op(no operation,無操作)指令會 包含在電腦12的指令集中,以用來在無需使用全部可用 的槽54的情形中。必須注意的是,根據本發明之一特定 實施例,位元50的極性(相較於活性低的活性高)在輪替 的槽中(特別地,槽—1 54b及槽-3 54c)係為相反順序的。 然而,在本發明中此其並非必要之面向,因此為能較佳地 解釋本發明,在以下的討論中忽略潛在的複雜度。 第5圖係為第3圖中槽程序器(si〇t seqUencer)42 之系統不意圖。如第5圖所示,槽程序器42具有複數(在 本例中為14)轉換器(inVerter)56及NAND閘58以環形排 列’使得信號在14個轉換器56及NAND閘58中傳輸時, 會被轉換奇數次。信號會在槽程序器42中被設定初始化, 3019-87 60-pf 19 200817925 當2個OR閘中之佐_袁古势 μ… 為同苐一個0R閘輸入62係由執 仃才日々52位元i4 66(第4圖)衍生而來。若 則特定指令52為ALU指令,且14位元66為” i,,上 位几為1”,則第-個0R閘輸入62為高,且槽程序号 42被觸發以啟動一脈衝以促使下一指令52的執行。η
當槽程序器42被觸發,藉由第一個〇R閉輸入⑽或 :―:⑽間輸入64轉變為高(將於下討論),則信號將在 广序器42中傳輸2次’每次都在槽程序器輸出μ產生 輸出°信號第—次通過槽程序器輸出68輸出為低,而第 二次在槽程序器輸* 68的輸出則為高。來自槽程序器輸 出68相當寬的輸出會提供給脈衝產生器7〇(以區塊圖表 方式表示)以產生窄的時鐘脈衝以作為輸出。任何熟習本 發明所屬之技術領域者當知窄的時鐘脈衝可準確地對電 腦12的操作進行初始化。 當特定指令執行為讀取或寫入指令,或任何其他指令 時’其中指令52並不希望在下一指令52執行後立即執行 觸發器,則i4位元66為,,〇,,(低),且第一個〇R閘輸入 6 2也為低。任何熟習本發明所屬之技術領域者當知在如電 月自1 2之裝置中的時序通常很重要,且不能有例外發生。 {何熟省本發明所屬之技術領域者當知,根據槽程序器4 2 的檢查,來自0R閘60的輸出必須保持在高直到信號已循 %通過NAND閘58,以初始化環中的,,循環(lap)” 。其 後,在第二個”循環(lap)”期間,來自〇R閘6〇的輸出 將為低以避免不必要的電路振盪(〇sciUati〇n)。 3019-87 60-PF 20 200817925 0” ,則槽程序器42將 入66不為高,此將於下 針對前述,當i 4位元6 6為,, 無法被觸發,假設第二個〇R閘輸 討論。
、如前所述,每—指令52之i4位以6會根據指令是 否為指令讀取或寫人模式而被設^。指令52巾的剩餘位 元5〇提供此指令剩餘的特殊〇pc〇de。在讀取或寫入模式 指令情形下,-或多位元可被用來指出資料是否被讀取或 寫作入電腦12中。在本發明之範例中,來自τ暫存器44(資 料堆疊34的頂端)的資料永遠會被寫人,而資料可選擇性 的由Τ暫存器44或可被執行的指令區3〇被讀取。這是由 於,在本發明之實施例中,資料或指令可以前述的方法進 行溝通,因此指令可由資料匯流排16直接被執行,然並 非本發明之必要。再者,一或多位元5〇將被用來指出埠 38中的那一個會被设定為讀取或寫入。後者可選擇性的以 使用-或多位元指定暫存器4〇,如Α暫存器4()a、B暫存 器二或其他類似暫存器而完成。在此範例中,被指定的暫 存器40將連同具有一位元對應至每一埠38的資料(同 時,電腦1 2企圖溝通得任何潛在實體,如記憶體、外部 溝通淳或其他類似實體)被預先載入。例如,特定暫存琴 40中4位元的每一個可對應至上埠38a、右埠38b、左埠 38c及下埠38d。在此例中,其中位元位置被設為,,丨,,的, 溝通將透過對應埠38進行。如前所述,在本發明之本實 施例中,讀取opcode可在單一指令中設定多於一個埠38 以進行溝通’此外則不希望會有寫入〇pC〇de在單一指令
3019-8760-PF 200817925 中設定多於一個埠38以進行溝通。 下述的範例假設溝通之進行為電腦12e企圖寫入電腦 12c ’雖然本範例實際上可應用在任何兩個鄰接電腦12的 溝通上。當寫入指令在寫入電腦心中執行,所選擇的寫 入線2G(在本例中為電腦…及12c中之寫入線2〇)設定 為高,若對應的讀取線18也已設為高,則資料馬上透過 7選擇的溝通埠38由所選擇的位置進行傳送。相對地, f H項取、線18並未設為高,貝U f腦12e會停止操作 j對應的喂取線18設為高。停止電腦i 2 (或更精確的 說,無任何後操作)的機制,當存在如前所述之讀取或寫 入類型指令。簡t, 人 ” σ ^々52的0Pcode在位元位置丨4 66 曰為〇因此0R閘60的第一個0R閘輸入62為低, 而槽程序!不會被驅動以產生啟動脈衝。 當讀取或寫入類型指令完成時,電腦i2e如何恢復 (resume)操作’其機制如下:當電腦⑶及…之間的讀 取線18及相對庫的& ( 應的寫入線20為高,則線18及20將會由 將其維持在高的雷腦;隹 仃釋放(在本例中,傳送電腦12e 維持寫入線18尨古,二& 一 ^ 接收電腦12c維持讀取線20為 咼)。則接收電腦1合脸Μ η 3將線18及20設為低。在實作中, 接收電腦12c合名彳# 1 @ 1〇 曰在傳送電腦12e釋放寫入線18前,企圖 將線18及2 0設為你 a», 广c —氐。w而,既然線18及20為高且很少 停留於低,任何相脾妗 ^ 〇n . 、、 及20设為低的行為,直到線18 及20由將其鎖定為高 〆一 打罨恥12釋放之前,均無法成功。 虽貧料匯流排16中的線18及20被設為低,此即為”
3019-8760-PF 22 200817925 通知(acknowledge)”條件。根據通知條 12c的每一電腦將會設定其所屬的内塥 電恥12e及 丨通知線72為高。如 第5圖所示,通知線7 2提供第二⑽估认 值輪入64。既缺or 閘60輸入6264之任一可能導致〇R閘 …、 閣60之輸出為高,此 將槽程序器4 2啟動如前所述的操作, Μ使在指令字48下 一槽54中之指令52會被執行。通知線?2保持為高直到 下-指令52被解碼,以避免來自到達位址匯流㈣㈣ 位址。
當指令52在指令字48的槽-3位置執行時,㈣㈣ 取下一等待18-位元指令字48,除非位元““為,,〇” 。 在實作中’本發明所提出的機制包括一種,,預先搁取 (prefetching)”指令的方法和裝置,以使指令擷取可在 指令字48中所有指令52執行結束前開始。然而,此—特 性也並非本發明所提出方法及裝置對於非同步資料溝通 之必要面向。 以上範例其中電腦12e如何寫入電腦12c已有詳盡描 述。根據前所討論的内容,前述操作還是必要的無論1 & 企圖先寫入電腦12c或電腦12c先企圖由電腦i2e進行讀 取。此操作不會被完成直到電腦12及電腦12c均備妥 (ready),無論是電腦12或電腦i2c先備妥,第一個電腦 12會進入休眠(g〇 "to sleep)” ,直到另一電腦i2e成 12c完成傳輸。另一種檢視前述過程的方法為,事實上當 寫入電腦12e及接收電腦12c執行寫入及讀取指令時,皆 為休眠狀態,但當讀取線18及寫入20均為高時,最後一 3019-8760-PF 23 200817925 個會立即進人喚醒(reawaken)交易(tra職心),盆中 第-個啟動交易的電滕12會停留在休眠狀態,直到第二 電腦12完成程序。 士 乂種在裝置間有效啟動非同步溝通的方法類似通知 ^號或條件。此方法’如前所述,提供必要通知條件以允 許,或至少使其可行’裝置間的非同步溝通。再者,通知 條件同時使得—或多裝置”進人休眠”直到通知條件發 生的操作變的可行。當然,通知條件可在電腦^ 2間藉由 :隔的信號在電腦12間傳送來達成溝通(可透過相連接的 貧料匯流排16或透過獨立的信號線),且此等信號係涵蓋 在本發明之範圍中。根據本發明在此所描述的範例中,係 :相當經濟的方式進行,即通知無需額外信號、時鐘循 %、時序脈衝、或任何描述之外實際影響溝通的資源。 在不影響本發明之價值與範圍下,可進行各種的潤 飾。例如,本發明以讀取及寫入指令進行描述,在實作中, 可能有多於一之讀取及/或寫入類型指令。作為一範例, 在本發明之一實施例中,某寫入指令可能會增加暫存器而 其他則否。類似地’如前所述’寫入指令可能隨著用來選 擇溝通埠38的暫存器而變。讀取指令也可能有不同類型, 端視電腦12設計者是否欲完成不同讀取行為而定。 類似地,如前所述地,當介於單一模塊14上之陣列 10中的電腦12進行溝通時,會使用相同的原則和方法, 或修正後的方法,以完成裝置間的溝通,如電腦12及其 專屬记憶體間的溝通,或者陣列1 〇之電腦〗2及外部裝置 3019-87 60-PF 24 200817925 (透過輸入/輸出埠或其他類似設備等)之溝通。事實上, 某些應用會要求陣列之陣列一以前所述的裝置間溝通應 用於其中。 當一電腦,如第1圖中丨2g,執行程式碼以完成其主 要指定任務時,程式人員可決定電腦間偶發的交互作用, 如12f及12g。程式人員會提供電腦12g偶發的暫停以確 涊其一或多鄰接者是否企圖進行溝通,如指示,,尋找輸入 ,(look for input)”操作166。若一溝通等待”輸入 (inpUt)?”決策操作168指示,如由電腦I2f到電腦i2g 的寫入,,,則電腦12g會以,,由其他接收(receive fr〇m 0ther)操作17〇來70成溝通。若非上述情形,則電腦12g 會返回執行被指定的功能,如第9圖所示。在,,由其他接 收(receive from other)” 操作 17〇 後,電腦 i2g 會以” 啟動輸入(act on input),’ 172啟動所接收之輸入。程式 人員可提供電腦12g所需要的指令作為輸入,在此情況下 「電腦12g會執行此等指令。相對地,電腦❿也可被程式 '化以啟動資料。 在’啟動輸入(act on input)” 172後,電腦吻返 回其主要功能,亦即,返回,,執行主要功能(咖他 pnfflaryfunction)”操作162。然而,更複雜的範例可能 存在。例如’程式可使電腦12f接收特定輸入以使其放棄 原指定主要功能而開始新功能,或者可暫時停止以等待後 續輸入。熟習本發明所屬之技術領域者當知,動作具各種 可能性端視程式人員之想像力而定。 3019-8760-PF 25 200817925 必須注意的是,根據本發明所描述之實施例 仏 :電腦12執行卫作時無需被中斷,因為另-電腦12讀 才曰派以監視及處理輸人,若非如此則必須要求中斷。狹 而’另須注意一點即電· 12忙碌於進行另一工作時不处 被打斷,除非執到程式提供料38作為輸人之用。因此: 有時電腦12會暫停以等待其他輸入。
。以下說明pause指令的操作。在此描述的是多個處理 器間的”協同性多工(cooperative multi—tasking)” 。 工作集合會内駐於一節點(node)或多節點。pAUSE會循序 地檢驗所有節點或埠以獲得可執行的程式碼。喚醒 (wake-up)或暖開機(wa〇i start)係在 4 個 no —op(····)後 進行。PAUSE指令以返回(return)(;)指令作為結束,而下 一執行緒(thread)則被輪詢(p〇l 1)。最後一個被檢驗的埠 會使用2個4 no-ops集合。在重設後會發生冷開機(c〇ld start) 〇 具有輸入/輸出針腳39之邊緣處理器I2a或角落處理 器12f可由PAUSE進行輪詢,例如由外部裝置82執行工 作。PAUSE也可置放於ROM中以作為開機條件之一部份。 啟始常式(initiator routine)將跳至暫停且到臨接處理 器的四點讀取。雖然多重處理器間的PAUSE功能在此係參 考Forth揭露,然多重處理器間的PAUSE功能可應用於其 他程式語言中。 既然根據本發明4指令52可包含在指令字48中,則 全指令(entire instruction)字48可在電腦12中一次進
3019-8760-PF 26 200817925 行溝通,此代表-理想的機會以一個操作傳輸非常小的程 式。例如大部份的小” For/Next”迴圈(1〇〇p)可在單一指 令字48中實現。第6圖係根據本發明描述微迴^ (miCr〇-l〇op)l00之一範例之流程圖。與其他已知的迴圈 不同,微迴圈!00具有F0R指令1〇2及ΝΕχτ指令ι〇4。既 然指令字48(第4圖)包含4個指令52,指令字48可在單 一指令字48中包含3個操作指令1〇6。操作指令ι〇6可= 程式人員欲包含在微迴圈1〇〇中之任何指令的必要部份。 微迴圈100的典型範例為由電腦12所傳輸之一組指令 集,其用來讀取或寫入第二電腦12的RAM 24,以使第一 電腦12可”借用(borr〇w),,RM 24的容量。 FOR指令102會推入一值到返回堆疊28中以表示所 欲重覆的次數。換言之,在資料堆疊34頂端τ暫存器44 上的值會被推入返回堆疊28的R暫存器中。f〇r指令ι〇2 雖然經常落在指令字48的槽—3 54d,但其實可落在任何 槽54中。當F0R指令1〇2不落在槽_3 54d日夺,指令字仙 中的其他指令52會在微迴圈1〇〇前執行,此其通常為下 一個被載入的指令字4 8。 八根據本發明之一實施例,如第6圖中所述之ΝΕχτ指 7 1 〇4係為ΝΕχτ指令i 〇4之一特例。此係因為其位於槽 b八4^中(第4圖)。根據本發明之一實施例,假設在特殊 私7子40中遵循”原始(ordinary),,NEXT指令(未圖示) 有貝料係為一位址(f〇r/next迴圈開始的位址 指令1〇4 @ opcode亦相同,無論其位在槽54中的任一個 3019-8760-pf 27 200817925 (若為槽-3 54d時首兩位會明顯的例外,如前所述地而不 以明確的寫出)。然而,既然當使用槽-3 54d時可能不會 有位址跟隨於NEXT指令104後,可假設在槽-3 54d的NEXT 指令 104 為 MICRO-NEXT 指令 104a。MICRO-NEXT 指令 104a 使用第一指令52的位址,落在相同指令字48的槽-0 54a 中’作為返回的位址。MICRO-NEXT INSTRUCTION 104a同 時將R暫存器29的值(其原始由FOR指令102推入)減1, 而後返回R暫存器29。當R暫存器29中的值達到一預定 值(如0),則MICRO-NEXT指令會載入下一指令字48並繼 續前述動作。然而,當MICR〇 —ΝΕΧΤ指令由R暫存器 2 9瀆入值大於預疋值時,則會重新恢復(resume)在所屬 私令字48槽-〇 54a的操作,並執行位在槽-〇到3的指令 52。換吕之,根據本發明之實施例,—指令 將會永遠執行3操作指+ 106。在某些情況下,因為可能 不會想要使用所有3個潛在可用指令52,依據需 求no—op”指令會用來填補一或多槽54。 必須注意的是微迴圈100可在單一電腦12中完全被 =用/事實上’機器語言指令之全集(entireset)可為操 才曰7 106所用’微迴圈的應用與使用僅受程式人員之想 2所限制°然而’當在單一指令字48中全微迴圈1〇〇 以:能力與允許電腦12傳送指令字48至鄰接電腦12 力相:::行主要直接來自資料匯流排16之指令52的能 :&時,此即提供一有力的工具以 用鄰接者的資源。 使 3019-8760-pf 28 200817925 所有包含在單一資料字48中的小微迴圈1〇〇可在電 細12間進行溝通’且其可由接收電腦j 2的溝通埠直 接被執行,如同其他任何包含在指令字48中的指令集。 而此種微迴圈100具有多種用途,一典型的用途為電腦12 可儲存若干資料於鄰接電腦12的記憶體中。例如,可以 先傳送一指令至鄰接電腦以告知它去儲存輸入的資料到 特定的記憶體位址中,而後增加位址,再重覆一給定的重 覆次數(所傳輸資料字的數目)。為讀取資料回來,第一電 腦可使用類似的微迴圈指示第二電腦(用來儲存資料之處) 將所儲存之資料寫回第一電腦。 利用微迴圈100結構與前所述的直接執行,當資料儲 存需求超出個別電腦12所内建的小容量時,電腦12可利 用其他鄰接電腦12以儲存超出的資料。本範例說明係以 貧料儲存為主,但相同的技術可使電腦丨2分享其鄰接者 的計算資源一藉由創造微迴圈100以使其他電腦12執行 某些操作、儲存結果、以及重覆執行一給定次數而完成。 本發明所提出的微迴圈丨00結構的使用方式幾乎無限制。 如前所述,在本發明之實施例中,無論資料或指令可 以前述方式進行溝通,且指令可由資料匯流排16直接執 订。換言之,無需將指令儲存於RAM 24然後再執行前呼 叫。相反地,根據本發明之實施例,在溝通埠38所接收 的指令字48與由RAM 24或ROM 26所呼叫回的指令處理 並無不同。此種特性已於前面描述,關於電腦12的操作, 下面將針對指令字48如何擷取及使用進行說明以加強了 3019-8760-PF 29 200817925 解本發明。 一可用的機器語言指令為FETCH指令。FETCH指令使 用A暫存器40a中的位址以決定由何處擷取18位元字。 當然,程式必須已經將正確的位址放置於A暫存器4〇a 中。如前所述,A暫存器40a為18位元暫存器,因此具有 足夠範圍的位址資料,任何可能發生擷取的潛在資源均可 被£刀。有就疋說,具有一範圍的位址指定給R⑽,一不 同範圍的位址指定給RAM,以及特定位址指定給每一埠38 及外部I/O埠39。FETCH指令永遠放置此18位元以擷取τ 暫存器44。 相反地,如前所述,可執行指令(相對於資料)係暫時 儲存在指令暫存器30a中。並沒有特殊的指令用來,,擷 取18位元指令字48到指令暫存器3〇a中。相反地,當 指令暫存器30a中沒有餘留下可執行指令,則電腦將自: 擷取下一個指令字48。下一個指令字的位置係由,,程式常 式(program routine)”(P暫存器4〇c)所決定。當指令字 48序列由RAM 24或R0M 26中擷取時,p暫存器4〇c^常 會自動增加。然而,此通則尚存在若干例外。例如,】_ 或CALL指令會導致p暫存器4〇c以所指定的位址被載入, 此位址係以目前JUMP或CALL指令後被載入的指令字48 剩餘部份資料所指定,而不是被增加。# 恢以 對應於一或多埠38的位址被載入時,則下一指令字“將 阜38載入私令暫存器3 〇a中。當指令字μ由埠⑽載 入指令暫存器30a中’ Ρ暫存器4〇c也不會增力口。更進_ 3019-8760-PF 30 200817925 步,相同的埠位址不會改變直到執行特定的JUMP或CALL 指令以改變P暫存器40c。換言之,一旦電腦12被告知尋 找下一個來自埠3 8的指令時,會繼續尋找來自埠3 8的指 令直到被告知到他處尋找,如回到記憶體(RAM 24或r〇m 26) 以尋求下一指令字48。 如前所述,當沒有可執行指令剩餘在目前指令字48 中時,電腦12會得知下一被擷取的18位元係置放在指令 , 暫存器3〇a中。預設的情形是沒有可執行指令剩餘在jUMp ' 或CALL指令後的目前指令字48中(或其他未在此討論的 指令後),因為根據定義,在JUMP或CAU後18位元指令 字的剩餘部份專屬為jUMP或CALL指令所參用的位址。前 述方式僅為多種方式中之一種,其他如不限於juMp或 CALL指令,也可為埠38或是不限於記憶體位址等等。 必須注意的是,如前所述,電腦12可由埠38或任何 璋38的群組尋找下一指令。因此,位址會被提供以對應 (至埠38的不同組合。例如,當一電腦被告知由埠38的群 «取指令’則此電腦會接受由任所較的埠38的第一 ^可用的指令字。若沒有任何鄰接電腦12已準備寫入任 皐Μ中,則電腦12將如前所述般,,進入休眠(g〇 t〇 s ee=)直到鄰接者確實寫入所選定的支阜Μ中。 第7圖係為述本發明所揭示之直接執行方法1 20之流 作的,,正常(咖⑴,,流程在指令暫存器3〇a中 字,仃的指令剩餘時。此時,電腦12將依據”擷取” 子#作122的指示,”掏取,,另一指令字(注意,,擷取” 3〇19-8760-pf 31 200817925 在此為通用的詞,而未使用實際的FETTH社八、 知令)。前述操 作將根據在P暫存器40c中的位址完成(如楚7门 70风(如苐7圖流程圖
中”位址”決定操作124所示)。若p暫存器4〇c中的位 址為_ 24或_ 26位址’則下一指令字48將由,,由 記憶體操取(fetch from memory),,操作126中所指定的 位址進行擷取。若P暫存器40c中的位址為埠38(非2憶 體位址),則則下一指令字48將由,,由埠擷取(fetch;r(;m Port)”操作128中所指定的埠位址進㈣取。無論前述 何種情形,所擷取的指令字48會被置於,,擷取指令字 (retrieve instructi〇n word)” 操作 ,30c〇,^^„(execute lnstru^^ 操作132中,指令字48槽54中的指令會被循序完成。 在”跳躍(jump)”決定操作中,會決定指令字48中 的操作是否為JUMP指令,或為其他可使後續程序由前所 述之正吊程序衍生出現之操作。若是,則在JUMP(或 其他類似)指令後之指令字48所提供的位址會提供給,,載 P暫存器(load P register),,操作136中的p暫存器4〇c, 以及序列再次在,,擷取字(fetch w〇rd)操作” 122中開 始,如第7圖中所示。若非,則下一動作會視最後一指令 擷取係來自埠38或記憶體位址,如在,,埠位址(p〇rt address)決定操作138中所示。若最後指令擷取係來自 埠38,則P暫存器3〇a不會改變且序列會以,,擷取字 (fetch word)操作” 122開始重覆。另一方面,若最後指 令擷取係來自記憶體位址(RAM 24或R〇M 26),則在p暫 3019-8760-PF 32 200817925 存器30a的位址會增加,如第7圖中,,增加p暫存器 (increment P register)” 操作 14〇 所示,在,,擷取字 (fetch word)操作” 122 完成前。 f 以上的討論並非用來表示實際的操作步驟。相對地 以上討論用以表示根據本發明之實施例 所導致的執行動作之示意圖。事實上, 解為每一描述的操作均需要分別循序的 描述的插作也可以同步的方式完成。 ,不同決定及操作 此流程圖不宜被理 步驟。第7圖中所 弟8園係描述本發 ▼ μ ά〜「又雙一電月甾之一 範例之流程圖。如前所述,本實施例中當所述的電腦 等待輸入時,會進行”進入休眠(g。t。sieep)”。 可來自鄰接電腦12,如第1至5圖所描述的關係。相對:, 如前所述’鄰接至模塊14邊緣具有溝料⑽電腦 具有額外的電路,可設計在電腦12内部或是於電腦 部,但必須與電腦12相連接,以使溝通埠38可如 卜 埠39般運作。在任一情形下,本 外的優點,當接收到輸入時,,、 、,且合將可提供額 備醒來以及開始若干前述動作。,電& 12維持並準 法以使用中斷(interrupt)來處理輪々本發:同時提供方 部輸入裝置或來自陣列中另一電腦12無淪輸入來自外 不採用使電腦12停止(或暫停) 本發明之方法如前所述允許電腦丨2、、方式以處理中斷, (asleep but alert),,狀態。因此,〜進入夕休眠但警示 指定來接收及根據特定輸入動作。 或夕電腦12可被 此特性可以不同方式完 3019-8760-PF 33 200817925 成,例如第8圖所示之電知警示方法(computer alert method),,,以參考符號150表示。如第8圖中所示,在” 進入警示狀態(enter alert state)”操作152中,電腦
12被導為”進入休眠狀悲(g〇 to sleep)” ,使其可等待 來自鄰接電腦12的輸入,或大於1(最多為4)鄰接電腦, 而在邊緣(edge)電腦12的情形為外部輸入,或一此 外部輸入及/或來自鄰接電腦12的組合。如前所述,電腦 12可”進入休眠(go to sleep)”以等待讀取或寫入操作 結束。如本例中所述,當電腦12被使用以等待某些可能 的’’輸入(input)” ,則可假設等待電腦將其讀取線18為 高,以等待來自鄰接者或外部資源的,,寫入(write),,。 事實上,此為目前預定有用之條件。然而,本發明的範圍 仍包括等待電腦12將設定其寫入線2〇為高,因此當鄰接 者或外部資源由它進行,,讀取,,時可被喚醒。 ^ ....... Hi τ,怀眠電腦12被設 定為恢復操作,因為鄰接者電腦丨2或外部裝置39已完成 所等待的工作。若所等待的卫作為接收將被執行的指:字 48’則電㈣12將繼續執行此指令。若所等待的工作 收資料’則《 12將繼續循序執行下―指令,1 前指令字48下—槽54中之指+,或者下-指令字48、將 被载入以及下一指令將在下_指令字48中的槽—〇。 —情形中,當使用上述方法時 θ 在任 式夕社人— 万凌時,則下一指令會開始執行— 擇二曰二之歹“乂處理所接收的輸入。處理此種輸入的選 擇了包括反L若干㈣預定的錢,與陣列10^ 3〇19-8760-pf 34 200817925 的 …他電腦12進行溝通,或甚至 統習知技術中在前述條件下中斷可被忽略)(:同傳 選擇可作為”對輸入動作(act〇ninput),,i563^的 意的是,在某些情況下,輸入的内容可能並不重要, J情況下,例如外部裝置已企圖與有興趣的對象進= 右電細12被指定為卫作進行動作為,,警示 電腦,在第8圖所示的方法中’通常會返回到 示(aSleePbutalert),,狀態,如第8圖所示。秋而 腦12可開放被指定其他工作,如當不需要再監 入或輸入已被監視的情形下’或者當其更便利的傳輪: 給陣列中的若干其他電腦12。 j作 熟習本發明技術領域者當知,前述操作模式相 統中斷的使用係為更有效率的方法。t電㈣12具有二 多設為高的自屬讀取線18(或寫入線2〇),則可說其處於: 警示”條件中。在警示條件中,電腦12備妥以執行在 應於設定為高之讀取線或線18的資料匯流排16上任何’、 達的指令,或者對透過資料匯流# 16所傳送的資料= 反應。在此只要有可用的電月遂12陣列,則在任何給定: 間,一或多電腦可進入前述警示條件,因此潤一前述輪入 可觸發其進行動作。此種方式在傳統方法中,以中斷= 電腦”得到注意(get the attenti〇n)”來完成,因為: 斷將使電腦必須儲存固定資料、載入固定資料等等,2 應中斷要求。相反地,根據本發明,電腦可被設於鑿示狀 3019-8760-PF 35 200817925 態且被指派等待有興趣的輸入之工作,因此在開始執行由 輸入所提供的指令時,不會浪費指令時區(peri〇d)。再次 地"月注忍在目前所描述之實施例中,電腦在警示條件將 實際為”休眠但警示(asleep but alert)”,意謂電腦 在休目民狀態則基本上不需要電源,但,,警示則表示可 由輸入觸發進行動作,,。然而,,,警示,,條件内建在電腦 中即使電腦處於”休眠”狀況,仍在本發明之範圍中。前 ,述警示條件基本上可用於傳統習知中斷(無論硬體中斷或 軟體中斷)的任何情況中。 雖然本發明不限於此範例,目前電腦丨2可被實作成 執行自然Forth語言指令。對於熟知F〇rth電腦語言者而 複雜的Forth指令如Forth”字(words),,係由設計在 電腦中的自然處理器指令構建而來。字的收集係 以扣南(dlrectory)”呈現。在其他語言中,此係以,, 圖書館(library),,表示。於下將更詳細地討論,電腦12 ( 由RAM 24、R〇M 26、或直接由資料匯流排16(第2圖)之 在時間讀取18位元。然而,在Forth中,大部份 =指令(如運算元-缺少指令)直接由堆疊28及34獲得運 昇元,它們的長度通常只有5位元以使多達4個指令可被 包含在單一 18一位元指令字中,依此條件則在群組中的最 支心々會由只要求3位元的指令限定集中被選擇。在第3 °中同時指述槽程序器4 2。在本發明之實施例中,在資料 堆覺34十的頭兩個暫存器為T暫存器44及S暫存器46。 本發明所示之方法包括forthlets的使用。F〇rthlets 3019-87 60-pf 36 200817925 是一種結合applets與Forth的名稱,雖然以上定義並非 精確的定義。Forth為在1 970年代早期所發展的一種電腦 程式語言。Forthlets係為一種封套資料環繞(wrapper around)程式碼,因此程式碼可視為資料。另一種定義則 為forthlet係為由封套資料環繞之機器可執行碼之字 串’封套資料可包括標頭(header)以及尾部(tai 1)或只包 含標頭。
Forthlets為支援可量化後入式陣列 Embedded Array)類型平行處理器平行程式之部件及工 具。Forthlets具有某些檔案的特質(property),這些特 質包括名稱、類型、位址、長度、以及於下將說明之不同 進階選擇類型領域。Forthlets為工具或編譯器(compi ler) 由原始碼(source code)或模板(template)所建立之封套 資料。Forthlets為程式碼及資料之封套資料,且可對其 他forthlets進行封套。Forthlets為分散程式與資料之 機制’且有助於程式的建立及除錯。 此等硬體功能提供簡單且快速的遠端程序呼叫 (remote procedure caU)以及互斥(mutex)。互斥為程式 物件在執行緒中相互排斥的協商,因此互斥通常稱為鎖定 (lock)。之可量化嵌入式陣列處理器的特質之一可使复適 ^於簡單平行程式,此特質為藉由硬體頻道連接,將處理 =置於超低(Ultra-l〇w)電源休眠狀態直到等待訊息交換 完成,以同步處理器及程序。 本發明軟體之-特質使用於上述環境中,係以典型的 3019-8760-PF 37 200817925 方式採取傳統F〇rth類型協同多工者(jjjuih tasker),以 協同處理每個處理器在本域記憶體空間(1〇cal mem〇ry space)及串流於執行頻道程式之程式間的執行。在此,結 合硬體多埠(multi_p〇rt)位址選擇邏輯,可提供平行硬體 及軟體的簡單結合,以及使得由多工程式至真實平行多程 序程式化變得簡單。 第一個特質為同步的溝通頻道位於處理器位址空間 的相同位置,且可使用指標(p〇inter)以讀取及寫入資 料,或者可由分流(branch)或由程序程式計數器呼叫及讀 取來執行。 第三個特質為多重溝通頻道可被選擇由處理器進行 讀取或寫入,以作為在溝通埠選擇個別頻道位址範圍中位 址的個別位元。 引導f〇rthlet(b〇〇t forthlet)係為整個應用的封套 資料。此與傳統電腦操作由傳統χ86處理器。在傳統微處 理器指令中,首先以高階電腦語言如叫或c#等寫成,稱 為原始碼(source code)。原始碼而後轉換為機器語言稱 為物件碼(object code)。轉換過程係屬複雜且用來完成 此過程的程式或機器稱為編譯器(c〇mpiler)。既然相^過 程與功能可藉由編譯高階命令為執行所有f〇rthlets程序 的機器碼,本發明不限於直接可執行的f〇rthlets。 引導forthlet為forthlet最基本的類型,其可執行 而無分流。下一 f0rthlet最複雜類型為串流可執行 forthlet包括呼叫,呼叫會放置位址於返回堆疊28中。 3019-8760-PF 38 200817925 田呼Η為置放位址於PC中,則會推放入返回堆疊。在記 憶體PC中將會被増加以使其永遠指出根據此呼叫在記憶 體中的下一循序的指令。因此,當返回指令返回堆疊中的 位址時,它會返回呼叫之後的0Pcode。以下為以機器F〇rth 寫成之低階forthlet範例,係為一簡單字埠可執行
Forthlet ° 範例一
Target
Forthlet p〇rt-f〇rthlet !p+ !p+ @p+ @p+
Fend 第1行設定環境以及第2行宣告程式名稱為 port-forthlet。第3行傳送頭兩個堆疊項目到埠中其 會執行然後由埠中讀取兩個堆疊項目。然後在埠上回到休 眠狀態以等待寫入下一個F〇rthlet到此埠中。最後一行 將Forthlet封套並放至伺服器(server)上,以使名$ port-forthlet返回所封包(package)之位址。 當呼叫由埠所完成則在PC上的位址為此埠。埠位址 並不會自動增加,而會等待其他處理器去重新寫入此埠, 位址不會增加,而會再次讀取相同埠位址以及保持休眠直 到此埠被寫入。因此若在埠執行的程式碼呼叫一不同埠 呼叫RAM或ROM,則當呼叫完成時,造成此呼叫的返回= 址會放置在返回堆疊上。當返回指令發生時,將會返时 3019-8760-PF 39 200817925 Η璋因為位址將會回到pc。 第二類型的forthlet為記憶體可執行f〇rtMet。 憶體可執行fQrthlet使用引導fQrthlet或串流可切 f〇rthlet作為封套資料。記憶體可執行forthlet可為如 佔據記憶體節點〇位址0(rev 7節點〇, rev 9$2〇〇):記 憶體可執行forthlet在記憶體中給定位址上執行。其^ 在任一節點之位址〇或i或紉或$34上執行。其可在節點 〇或節點1或節點2。 第四類型的forthlet為節點可執行f〇rthlet。節點 可執行forthlet使用引導f0rthlet或串流可執行 forthlet作為封套資料。節點可執行f〇rthlet可由任一 節點執行。節點可執行forthlet檢查記憶體的位置。 第五類型的forthlet為可變可執行位址f〇rthlet , 使用引導forthlet或串流可執行f0rthlet作為封套資 料。可變可執行位址forthlet由一可變節點進行操作。 範例二說明forthlet包括直接串流opc〇de執行。 範例二 target $14 org : dosample \getbit is a routine in ram \if it hasn t been defined previously \give the word getbit meaning forthlet call-from-stream [$12345]# dosample 3019-8760-PF 40 200817925 fend 本範例編譯名 A ” , 1 ^ ^ caH-from—stream” 的 forthlet,它開始於女窆认丑 、 的載入,當其被執行時,會先載 入文字$12345到T然後啤叫么 又τ門名為 dosample 的子常 式。文子載入指令、範例、Γ, 以及在RAM呼叫子常式會被封 套在此fQrthklet中’且若寫人—節點會使得此載入開始
執行’以及執行_中常式的呼叫。#常式返回時,則會 返回到呼叫以為更多程式碼的埠中。 直接埠串、流opcode執行,提供對於5 —位元指令的存 取,此5-位疋指令表示在F〇rth語言中大部份的原始操 作,且其由編譯器排列為程式。這些forgets會串流至 處,器溝通頻道,並且逐字執行。事實上它們沒有分流且 不是位址或節點。這些f〇rtMets形成詞組(phase)以黏 合其他forthlets,如資料形成訊息。程式計數器保持在 可選擇缚的位址,並且在包含至多4 _de的字 執仃後,程式計數器並不會増加。在完成串劉程式碼字之 執行後,處理器將進入休眠直到下一個串流指令字到達。 通常此種forthlet會以返回指令作為結束,其返回呼叫 此埠常式的執行,很可能為pAUSE多工者。 範例三說明forthlet包括具呼叫rAM/R0M中的程式 碼之程式碼串流之埠執行。 範例三 target 3019-8760-PF 41 200817925 forthlet ram-based-spi-driver 5 node! \specify this is for node 5 only 0 org \this resides at address 0 on node 5 :spi-code ordinary-code fend 本範例設定名為” ram_basecj —Spi-driver,,的 forthlet,其具有程式碼以要求針腳特別對節點5,並必 須駐留使用。同時界定設定位址為由内部所定義的字來設 定。” spi-code” 一字用以編譯一呼叫到位址〇。當此 f orthl et執行時,此程式碼將在節點5上之位址〇被載入 且被執行。 串流的F〇rthlets可包括呼叫在R〇M或RAM中的常
式。所二叫常式的位址係由編譯器由其名稱而產生。在RAM :的$式必須在其被呼叫前被載人。若在謂$麗中的 、七j被呼4,則處理器極可能分送令串流,將提供下 , 阜中執行,且當處理器正在執行在RAM或β〇Μ 勺二I Η的币式時進入休眠狀態。訊息的路由(r〇Uting) :傳运埠可執行串流以喚醒處理器,以及 由子於ROM中。#此a从— 八 $ & D二予依序讀取更多指令串流,而後傳遞 串1下-個處理器以朝向其終點進行。 耗例四說明ram執行forthlet之開始。 3019-8760-pf 42 200817925 範例四 target forthlet0 runs-on-ram-server ordinary-code other-forthlet-execution etc. fend 此forth let係設計來在節點〇位址0處執行,可藉 由傳送” runs-on-ram-server” forthlet aa 位址 到 X 〇 ”命令呼叫而在節點0被載入及執行。栽入及使用 在RAM伺服器上的外部ram之應用會由命令將其封包為 FothletO類型forthlets。應用也可表示成其他袼式,如 被要求由SPI或同步序列界面載入的應用,當與r賴飼服 器所使用的格式不同時。此種類型的落在 RAM底部的程式。在被載入R〇M的底部後,則根據某些位 址執行。因為ram執行f〇rthlets在RAM執行,它們可能 有分流指令且可能跳躍(jUfflp)、呼叫、或返回在RAM、⑽Μ、 或溝通蟑中的位址。這些f 〇rth丨ets如同· c〇m可執行槽在 DOS —般。它們開始於記憶體的起始且具有長度。它們會 被載入及被執行。它們可以在被載入之後再次被呼叫。 範例五說明載入forthlet被載入或載入及在其他 RAM位址、程式碼或資料覆蓋(〇veriay)上執行。 範例五 target 0 node! 3019-87 60-PF 43 200817925 forthlet ram-based-anynode 0 org :do-something ordinary-code fend 本範例設定在位址〇執行的程序碼,但並不限於 forth let封套資料内部任何特定程式碼。其可於任何程式 碼的位址〇執行。 所載入的forthlet係為程式碼及資料覆蓋 (overlay)。程式碼或資料可在節點上之任何位址被載 入。相同的程式碼可被載入多個節點上的一位址範圍中, 且若此位址為RAM的起始,則其可為與第8圖類似的ram 執行forthlet。當程式碼或資料被載入於RAM起始的其他 位址時’則其往往用诶記憶體的起始。數個在程式中經常 使用的子常式可被載人於高記憶體(high __)中、,且 由低記憶體(1QW raemQry)中的被覆蓋程式碼常式進行 叫。程式碼可被載入低記憶體且留置該處以便由載入 憶體中的程式碼進行重覆地呼叫。前述情形之-範例ΓΓ 同的程式碼可被置於多個節點的同一位址,但二 的節點可在由程式石民%老J田次:η 、、且中 料覆蓋。料的設定中獲得-獨特資 範例六說明由特殊節點所限制之forthiet。
3019-8760-PF 44 200817925 範例六 target forthletO runs-on-ram-server ordinary-code other-forthlet-execution etc. fend 此forth let設計以在節點0位址0上執行,且可藉 由 傳送” runs-on-ram-server” forthlet 的位址 到” X0”命令呼叫而載入與執行。由命令進行封包而用以 載入及使用來自外部 RAM伺服器的外部 RAM係為 ForthletO 類型 forthlets。 範例七說明由10電路特殊forthlet。 範例七 target 0 node! forth1e12p ram-based-sync-seri a1-driver 0 org :sync-code ordinary-code fend 本範例建立一 forthlet,其係受限於具有至少兩針腳 之所執行節點之需求上。此對10節點而言是典型的。只 有0或1針腳的節點無法執行此forthlet,因為其必須將 位元-1 7及10CS暫存器之位元-1所進行的針腳讀取讀取 3019-8760-PF 45 200817925 與寫入針腳。 此等forthlets包含對固定節點獨特之讀取或寫入 1〇電路之程式碼。實體的電路如SPI連接、a/d、或 重設電路具有軟體驅動程式,軟體驅動程式則僅適合具有 適合執行此等Forthlets的符合i〇硬體的節點。 XOforthlets,在節點〇位址〇處執行,此 在Ram伺服器上執行。此等f〇rthlets功能在多數系統中 , 大都與一般程式類似,由外部記憶體直接載入且由cpu執 。 行由外部記憶體的讀取。有些處理器一次讀取及執行來自 記憶體的一字,而有些則在執行前由外部記憶體讀取多個 區塊到快取記憶體中。這些forthlets對硬體而言是有幫 助的,由於並不會明確地將所快取記憶體的本域位址映射 (map)至外部記憶體位址,以使處理器視為僅執行外部記 憶體,但從快取記憶體。此forthlet可藉由執行已在ram 或ROM中的程式,將明確地由外部記憶體載入程式碼至本 域記憶體’以及接著將跳至已載入之程式碼。任何節點可 傳送訊息至節點〇,RAM伺服器,以及給定原本 (native)forthlet位址以在RAM伺服器上的本域ram開始 處載入及執行。任何處理器可單純地放置位址於堆疊中並 呼叫X0功能,X0訊息將透過RAM伺服器緩衝器節點送至 RAM祠服器,以便在RAM伺服器上的該位址執行 forthlet。接著所發生者便視伺服器上原本 (native)forthlet所執行的内容而定。 最基本的資料轉換forthlet為fsend,在RAM伺服 3019-8760-PF 46 200817925 裔上載入及執行原本Forth let過程包括呼叫在R0M BI〇s 或RAM上的一常式,其由外部記憶體被讀入且用來載入幼 forthlet至本域RAM以執行。在RAM伺服器上執行的 forthlets會由外部記憶體載入其他f〇rthlets,但以導 管(pipe)方式傳送。埠可執行f〇rthiet片語會和記憶體 可執行forthlet結合以傳輸資料,其也可為由一處至另 一處的forth let。傳送資料之驅動程式透過如SPI或I2C 等協定啟動或關閉晶片,或者透過資料的無線軟體鏈結 '口 、 (link)處理(handle)傳輸啟動或關閉晶片,而資料傳輸 forthlets處理可在晶片的節點間移動資料。編譯器 (compi ler)可組成應用程式以透過RAM伺服器、或由spi 埠連接至序列f 1 ash、或由PC發展系統傳送序列鏈結至處 理器’以耗盡外部記憶體。應用程式需要足夠的外部記憶 體以確保使用節點〇作為連接至廣大的外部RAM、R〇M或 f lash裝置之RAM伺服器,此將取決於應用程式在伺 f 服器上由編譯器封包成Forthlets。透過前述Forthlet 類型應用程式的使用可協同、載入程式碼覆蓋、以及與rAm 伺服器交換資料。可透過事件(event)喚醒週邊處理器節 點,且可與其他已被喚醒的節點協同處理資料。 範例九說明可重定位(rel〇catabl e) forth let並不受 限於特定節點。 範例九 target 3019-8760-PF 47 200817925 0 node! 0 org forth1etr ram-based-re1ocatab1e-word :mycode if."then··· mycode begimntil··· ordinary-code fend 本範例具有- forthlet,其不限於一節點,而呈有内 部分流(branch)其為位址所決定。當載入到特定位2,分 流的分流攔位會設為重定位常式在一特定位址執行。 此等forthlet由記憶體開始執行且可包括7分流指 令、,但當其載入至一節點以重定位到一不同執行位址時, 可被訊息化。此可提供—機制類⑽DU,其中某些可呼叫 功能的結合可在執行時進行不同安排4仍安㈣呼叫編 譯器forgets。編譯器可協助建立f〇rthiets,藉由社 合不同的原始f0rthle1:類刑 以担说击 口 串流fQI*thlet片語係由編譯器以其他以編譯之f〇rthlet 進行結合’以提供更複雜的forthlet類型之安全建立。 編譯器及程式人員可jb々 曰疋forthlet特性給forthlet,以 使物件處理更成孰。LL ^ i 成…、此同時提供程式人員工以產生 forth let物件,其呈右金 一^、有數學可證明之特性以協助安全程 的建立。
3〇19—8760_PF 48 200817925 傳送forthlet由編譯器為程式人員所建立,其可使 另一 forthlet使用特定的路徑由一位置傳送至另一位 置。程式人員利用命令FSEND建立傳送類型f〇rtMet如 範例十中所示。 範例十
Dataforthlet myroute fsend myforthlet 此片語建立一稱為” myf〇rthlet,,新的傳送類型 forthlet,當其被執行時可能會導致” dataf〇rthiet”被 下傳至由路徑描述器’’ myr〇ute,,所描述的路徑。編譯器 將允許路徑描述器由描述一序列步驟之路徑而建立、追 蹤、或由設定起始及終端節點所設定。 另一型式的forthlet是一執行forthlet。執行 forthlet係由編譯器為程式人員所建立。此類型之 forthlet將使一 ram執行f〇rthlet使用所設定的路徑, 由一位置傳送至另一位置,且由RAM開始處執行。程式人 員使用FRUN命令以建立執行類型的f〇rthlet如範例十一 中所示。 範例十一
App2 route1-21 frun run-app2 此片语建立一稱為” run —app2”新的執行類型 forth let,當其被執行時可能會導致” app2”被下傳至由 路徑描述器” routel-21”所描述的路徑。 3019-8 7 60-PF 49 200817925 許多forthlet和傳送forthlet類似。一獲得 forthlet類似傳送f0rthlet但程序相反。其開啟一二= 且在導管(pipe)中拉引(pull)所開啟的f〇rthlet而非傳 送forthlet。編譯器會建立一廣播f〇rthlet以傳送一 forthlet至多個位置。糾正及收集f〇rthlet會由編譯器 進行以由多個位置糾正及收集資料至一單一位置。編譯器 會建立分散Forthlet以將所收集之資料的部份由一位置 分散至多個位置。 除了前述簡單的forthlet,還有一些中階的forthlet 物件。中階的forthlet物件具有物件特性由程式人員及 編譯器設定,且由高階forth lets使用以協助程式人員。 範例十二說明一模板(template)forthlet。 範例十二
Target 0 node! 0 org
Forthletr clipper \clip data stream to unsigned fmax# ioport# !a \specify an unset input output port address fniax# \specify an unset maximum value for clipper :clip … \couId be coded many ways @b Cntmsg# and \specify an unset port for control messages 3019-8760-PF 50 200817925
Clip
Fend 本範例顯示資料剪裁器(data cl ipper)的 可重定位之F〇rthlet。使用名稱A ” . 為 .„ ,斗” κ⑺石稱為i〇p〇rt#,, 及 fmax# fCntmsg#,,指出此 Forthlet;t3 個搁位 具有Forthlet相對内部位址’包含模板作為範例時之範 例變數。在可重定位F〇rthlet
告知編譯器可進行―t的複Μ 係用以 仃forthlet的複製、重定位至任何節點 及5己憶體中符合之任何位址,且會例示具有已知特的3個 ,位二當建立可重定位F〇rthlet時,編譯器會重組關鍵 子且得去lport#包括兩鄰接者所結合之位址,豆中兩 資料範例會由!Wthlet進行讀取及寫人。當此程絲例 置於陣列中之位置時,攔位的内容會被設為適當鄰接頋之 兩埠之結合位址,以在真實程式中處理資料範例。 編譯器同時會得知” Cntmsg#,,攔位設定埠的位址, 其將檢驗輸入控制訊息,而” fmax#,,欄位包含由剪裁器 在串/’IL中所傳送之最大值。編譯器會決定此hnh I"具 有需求3埠的特性,因此不會置放於僅有2埠的角落節 點。軟體可置放模板化程式於陣列中,置放方式以可數學 I*生地也明透過陣列中的每一節點,訊息與控制路徑均為正 確的且不流程死結(deadlock)存在。 杈板forthlet係為可執行類型之f〇rthlet,其具有 與杈板相關之特性。物件特性攔位可告知編譯器及程式人 員何者為此forthlet的一般功能,以及可安全運算的特 3019-8760-PF 51 200817925 性。例如’〜過濾、器單元模板。多層fir過渡器可建立 在節點工作群組之上’每一節點執行一部份過濾器功能。 :過濾器功能由連續過濾器單元之每一階層上之特定設 定而決定。每一過濾器單元中的程式碼為單一的,除了分 接(tap)回饋(feedback)的延遲,用來在每一分接中計算 資料回饋的常數’以及資料讀取及寫出至下—過濾器階層 的埠。模板forthlet包括設定之程式碼,其中參數可被 處理及表示。 當編譯器以安全方式映射預先定義功能模板至功 能,透過此種使用方式可使許多問題獲得解決。這些特性 同時可以圖形化的方式纟示給程式A員以協助設計的可 視行並確保3又s十之正確度。較高階的f 1 e t s會使用模 板forthlet特性攔位以確保模組以部份建立,且其符合 鄰接模組以避免程式碼允許模組以可能產生死結的方式 連接。 回P白forth let同時稱為for thlet精靈(wizard)可如 前所述之高階層。其屬編譯器的一部份並協助程式人員設 冲建立及檢測程式碼。它們使用forth 1 et的物件特性 以建立程式人員所須的物件。在f〇rthlet資料庫(1 ibraq) 中存在若干forthlet精靈,同時記載for*thlet精靈可用 來建立新的forthlet精靈。 在先如FIR過濾器模板f〇rthiet中,過濾器建立器 精靈forthlet可接受過濾器的高階描述,且執行所需計 算以決定每一節點所需的延遲(delay)、分接(taps)、常 3019-8760-PF 52 200817925 數及埠方向,以在一群節點中建立平行分散式多層fir過 濾器。可用來說明每一節點之FIR過濾器F〇rthlet模板, 以及增加所需的f0rthlet封套資料以便在節點之整體工 做群組中載入及啟動軟體。 前述精靈可協助建立類比元件物件。R/F元件物件包 括傳送器、接收器、過濾器、協定轉換器、或者任何加入 資料庫的元件。 診斷forthlet在處理器埠上執行,且傳回處理器之 全視(complete viewO狀態或有關狀態的任何資訊至其他 位置’如1 PC上的發展系統’或甚至透過無線電鍵結至 一遠端終點。 此forthiet直譯器非常類似傳統F〇rth系統,在其 中可由一 forthlet位址列原執行f〇rthlets。此列表可内 建於外部記憶體且逼次由此列表讀取一位址。位址可在 RAM伺服器X0處執行。内部細節與傳統執行緒系統 類似。分流可重設f0rthlet直譯器指標及^⑽執行等等。 fohhlet直譯器的操作可寫入大程式,此大程式之操作如 同可從如傳統處理器上的大位址空間進行。F〇rth字的大 小並不受限於本域節點記憶體的大小,而是取決於外部記 憶體的大小。使用fGrthlet直譯器可允許許多原本在編 譯時間所發生的事在執行時間發生。編譯器所建立與分散 的f orthl ets可選擇性的於執行時間完成。其中—範例為 動態過建立器類型程式,其在執行時間於内建晶片完成, 以利用所載人fQrthlet程式碼之壓縮及在分散式處理器 3019-8760-PF 53 200817925 執行之優點。包括執行時間Forthlet直譯器物件之 2範例程式會比範例節點的完整集合小,其中過遽器元 會母次進行複製。 動態f〇rtMet》派器(dispatcher)為一高階 f〇rtMet。針對某些應用可完成動態執行時間載平衡,以 上工作可利用可動態分派可執行及 工作群的Whlet來完成,以在—時刻可用節點數目為 基礎,或錢时體或R/F鏈結結合為料之 基礎。 馮 高階fortMet同時可作為可見之工具及檔案器 (profiler)。高階f0rthlet可檢視所編譯心如…的 物件特性,並提供有用的分散可見度、使用、及應用效率。 工具及檔案器的可見度可包括完全互動式的環境,愈傳統 F〇rthlet命令直譯器(interpreter)行為相同在每一核 心以與處理器及程式碼互動的能力執行。此為F〇rth之傳 統力量’經常消除煩人線上模擬(in_circuit刪㈣⑻ 硬體的需要,線上模擬硬體用來快速除錯。 —在此討論本發明所提出之電腦陣列1〇及電腦Μ的特 定範例,然相當大量的應用並未在此討論。事實上,本發 明之優點之-即可被應用於許多應用中。如前所述僅為本 發明可用實施例之範例。熟習本發明所屬 在不違背本發明之精神與範圍下,修改及湖飾=:了 雖然本發明已以較佳實施例揭露如上,然其並非用以 限疋本發明,任何熟習此技藝者,在不脫離本發明之精神 3019-8760-PF 54 200817925 和範圍内’當可作些許之更動與潤飾,因此本發明之保護 範圍當視後附之申請專利範圍所界定者為準。 工業可利用性 本發明所提出之電腦陣列10、1 Oa及其相關的方法可 被廣泛地使用在不同的電腦應用中。此等電腦陣列在需要 兀成大置不同但相關功能的電腦加強應用中特別有效。本 f發明所提出之電腦陣列10、l〇a及其相關的方法的最佳應 用在於當所欲執行的工作可被切分,以使每一電腦1 2具 有計算需求。然而,即使某些電月I 12可能有時或即使永 遠都在小於最大性能以下工作。本發明之創作人仍發現由 於工作可被動態地指定,電腦陣列1〇、1〇a整體效能及執 行速度仍然優於現有電腦陣列。 口月庄思,許多應用可能利用多於一個電腦陣列丄〇、 1 Oa,例如要求GPS輸入的數位無線電,在此範例中,無 i線電可為電腦陣列10,其由分離的用來完成Gps功能的電 陣列10接收輸入。 請再注意,雖然電腦12可被最佳化為執行個別工作, 但如前所述,若此工作並不需要在特定應用中執行,則電 腦12可簡單地被程式化以執行其他工作,視程式人員之 設計而定。 一本發明所提出之電腦陣列10、l〇a可以Forth電腦語 。實現匕具有將工作輕易切分的特性以實現本發明。 C〇 1 〇r F〇rth為Forth語言最近的版本,也可同等應用於 3019-8760-PF 55 200817925 本發明。 既然本發明所& 法%可以現有工1電腦陣列及電腦陣列方 作輕易地產生及整合,輸入/輪出穿晋 其他類似裝置可提供 、置及 捉供如刖所述之優點,可預期地,复 j輕易地被接受。綜上所述,本發明於卫 ^ 要意義且可長期存續。 上具重 【圖式簡單說明】 固第1圖係為根據本發明所揭示之一電腦陣列之示咅 第2圖係為如第丨圖所示之電腦之一子集合以及一第 1圖中之相互連結資料匯流排(data bus)之細部示意圖。 第3圖係為描述第丨圖及第2圖之電腦之一之通用配 置之區塊示意圖。 第4圖係為表現指令字48之示意圖。 第5圖係為第3圖中槽程序器(si〇t sequencer)42 之系統示意圖。 第6圖係根據本發明描述微迴圈之一範例之流程圖。 第7圖係描述本發明所揭示之方法之由埠執行指令之 —範例之流程圖。 第8圖係描述本發明所揭示之方法之改變一電腦之一 範例之流程圖。 第9圖係顯示電腦12f及12g之操作。 3019-8760-PF 56 200817925 【主要元件符號說明】 1 〇 -電腦陣列; 12、12a〜12g—電腦; 14 —模塊; 1 6 _料匯流排; 18 —讀取線; 20 —寫入線; 22 —資料線; ' 24- RAM ; 26- ROM ; 28- 返回堆疊; 29— R暫存器; 30、30a_指令區; 32—算術邏輯單元; 34、34a-資料堆疊; 36 —解碼邏輯區段; 38 -溝通埠; 38a〜38d —上、左、右、下蜂; 39 —外部I/O埠; 40、40a〜40c —暫存器; 42 —槽程序器; 44— T暫存器; 46- S暫存器; 48 —指令字; 3019-8760-PF 57 200817925 5 0 — 18位元; 52 —指令; 54a〜54d-槽-0、槽-1、槽-2、槽-56—轉換器; 58— NAND 閘; 60 — 0R 閘; 6 2 — 0 R閘輸入; 64 — 0R閘輸入; 66—且i4位元; 6 8 —槽程序器輸出; 70 —脈衝產生器; 72 —内部通知線; 80 —界面線路; 82 —外部裝置。 \ 3019-8760-PF 58

Claims (1)

  1. 200817925 十、申請專利範圍·· ^ 一種電腦陣列系統,包括·· 複數電腦; 複數貧料路徑,連接至上述電腦;以及 J用以在一上述複數電腦及另一上述複數電腦 間’分散程式以及資料。 2·如申明專利範圍第1項所述之電腦陣列系統,其中 上述機制更包括一封套資斗斗,1田L 貝料八用以§上述封套資料遭遇 一上述複數電腦時,指示曼少— τ相不主V 上述稷數電腦採取何種行 動。 3·如申晴專利範圍第2項所述之電腦陣列系統,其中 上述封套資料指示至少一上诚滿童丨蕾^ # 、、 1王^上迷複數電腦載入資料,以接續 在上述封套資料之後。 4. 如申請專利範圍第2項所述之電腦陣列系統,其中 上述封套資料指示至少—上述複數電腦載人指令,以接續 在上述封套資料之後。 5. 如申請專利範圍第2項所述之電腦陣列系統,其中 上述封套請指示至少-上述複數電㈣輸—載子^另 一上述電腦。 6. 如中請專利範圍第2項所述之電腦陣列系統,其中 上述封套資料係在一埠上為直接可執行的。 7·如申請專利範圍第2項所述之雷^^ / L , 1 k您電知陣列系統,其中 上述封套資料包括一呼叫,其争上述 在返回堆疊中放 置一位址並返回。 3019-8760-pf 59 200817925 8.如申請專利範圍第2項所述之電腦陣列系统, 上述封套資料更包括一計數器,用以指出上述封套資料之 長度。 I如申請專利範圍第1項所述之電腦陣列系统,其中 上述電腦係實體配置為5x5陣列。 ’、 10·如申請專利範圍第i項所述之電腦陣列系統,其 中至少一些上述電腦係實體配置為4x6陣列。 ’、 、11·如申請專利範圍第i項所述之電腦陣列系統,其 中沿上述陣列每一邊的電腦數量係為一偶數。 12·如申請專利範圍第1項所述之電腦陣列系統,其 中至少-上述電腦係直接與—外部記憶體來源進行溝通。 13·如申凊專利範圍第丨項所述之電腦陣列系統,其 中至少-上述電腦係溝通來自一外部記憶體來源到至少 一些上述複數電腦之資料。 14 · 一種執行電腦化工作之方法,包括: 提供複數電腦;以及 指派一不同工作至至少一上述電腦。 15·如申請專利範圍第14項所述之方法,其中至少一 上述電腦被指派與一快閃記憶體進行溝通。 16·如申睛專利範圍第14項所述之方法,其中至少一 上述電腦被指派與一隨機存取記憶體進行溝通。 17·如申請專利範圍第14項所述之方法,其中至少一 上述電腩被才曰派完成一輸入/輸出功能。 18·如申請專利範圍第14項所述之方法,其中一上述 3019-8760-PF 60 200817925 電腦發送指派至其他上述電腦。 19· 一電腦陣列,包括: 複數電腦;以及 複數資料連接,在上述電腦間; 其中至少一些上述電腦係被程式化以執行不同功能。 20·如申請專利範圍第19項所述之電腦陣列,其中上 述不同功能協同合作以完成一工作。 、 21 ·如申4專利範圍第19項所述之電腦陣列,其中告 上述電腦陣列進行初始化時,每一上述功能係被程式化到 個別的上述電腦中。 22·如申請專利範圍第19項所述之電腦陣列,其中上 述電腦間的溝通係為非同步的。 23.種使用複數電腦以完成一工作之方法,包括· 將一工作區分為操作組成部份,並指派 組成部份給一上述電腦;以& … 將至少一些上述電腦程式化以完成每一上述操作組 成部份。 24_如申請專利範圍第23項所述之完成一工作之方 法,其中上述操作組成部份係為用來完成全球定位系統接 收器之操作。 25. 如申請專利範圍第23項所述之完成一工作之方 法其中在上述工作開始前,將上述電腦程式化以完成每 一上述操作組成部份。 26. 如申請專利範圍第23項所述之完成一工作之方 3019-8760-PF 61 200817925 法,其中上述電腦係以一電腦陣列排放 3019-8760-PF 62
TW096110969A 2006-03-31 2007-03-29 Method and apparatus for operating a computer processor array TW200817925A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US78826506P 2006-03-31 2006-03-31

Publications (1)

Publication Number Publication Date
TW200817925A true TW200817925A (en) 2008-04-16

Family

ID=38283039

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096110969A TW200817925A (en) 2006-03-31 2007-03-29 Method and apparatus for operating a computer processor array

Country Status (7)

Country Link
US (1) US20070250682A1 (zh)
EP (1) EP1840742A3 (zh)
JP (1) JP2007272895A (zh)
KR (1) KR20070098760A (zh)
CN (1) CN101051301A (zh)
TW (1) TW200817925A (zh)
WO (1) WO2007117414A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185898B2 (en) 2009-10-01 2012-05-22 National Tsing Hua University Method of streaming remote procedure invocation for multi-core systems
TWI384374B (zh) * 2008-05-27 2013-02-01 Nat Univ Tsing Hua 具資料串流功能之多核心遠端程序呼叫方法
TWI594131B (zh) * 2016-03-24 2017-08-01 Chunghwa Telecom Co Ltd Cloud batch scheduling system and batch management server computer program products

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126472A1 (en) * 2006-08-28 2008-05-29 Tableau, Llc Computer communication
US20080052525A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Password recovery
US20080052490A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Computational resource array
WO2008064882A2 (en) * 2006-11-28 2008-06-05 Nokia Corporation Robust remote reset for networks
US20080282062A1 (en) * 2007-05-07 2008-11-13 Montvelishsky Michael B Method and apparatus for loading data and instructions into a computer
GB2454996B (en) * 2008-01-23 2011-12-07 Ibm Method for balanced handling of initiative in a non-uniform multiprocessor computing system
US20090254886A1 (en) * 2008-04-03 2009-10-08 Elliot Gibson D Virtual debug port in single-chip computer system
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US20100158076A1 (en) * 2008-12-19 2010-06-24 Vns Portfolio Llc Direct Sequence Spread Spectrum Correlation Method for a Multiprocessor Array
KR101738641B1 (ko) 2010-12-17 2017-05-23 삼성전자주식회사 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법
US9910823B2 (en) * 2011-05-16 2018-03-06 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch
US9588881B2 (en) 2011-05-16 2017-03-07 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses
US9195575B2 (en) * 2013-05-17 2015-11-24 Coherent Logix, Incorporated Dynamic reconfiguration of applications on a multi-processor embedded system
RU2530285C1 (ru) * 2013-08-09 2014-10-10 Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования "Саратовский Государственный Университет Имени Н.Г. Чернышевского" Активный аппаратный стек процессора
GB2580165B (en) 2018-12-21 2021-02-24 Graphcore Ltd Data exchange in a computer with predetermined delay
CN112559440B (zh) * 2020-12-30 2022-11-25 海光信息技术股份有限公司 多小芯片系统中实现串行业务性能优化的方法及装置

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4215401A (en) * 1978-09-28 1980-07-29 Environmental Research Institute Of Michigan Cellular digital array processor
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
DE3533800C1 (de) * 1985-09-21 1987-02-05 Hans-Werner Lang Verfahren zum Betreiben eines hochintegrierten Wellenfront-Feldrechners sowie entsprechender Wellenfront-Feldrechner
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US5222237A (en) * 1988-02-02 1993-06-22 Thinking Machines Corporation Apparatus for aligning the operation of a plurality of processors
US5257395A (en) * 1988-05-13 1993-10-26 International Business Machines Corporation Methods and circuit for implementing and arbitrary graph on a polymorphic mesh
CA2019299C (en) * 1989-06-22 2002-01-15 Steven Frank Multiprocessor system with multiple instruction sources
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
DE4019040A1 (de) 1990-06-14 1991-12-19 Philips Patentverwaltung Multirechnersystem
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
JPH0713945A (ja) * 1993-06-16 1995-01-17 Nippon Sheet Glass Co Ltd 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造
US5832291A (en) * 1995-12-15 1998-11-03 Raytheon Company Data processor with dynamic and selectable interconnections between processor array, external memory and I/O ports
EP0840223B1 (en) * 1996-10-31 2002-05-15 STMicroelectronics Limited Microcomputer capable of accessing an external memory
US6895452B1 (en) * 1997-06-04 2005-05-17 Marger Johnson & Mccollom, P.C. Tightly coupled and scalable memory and execution unit architecture
US6292822B1 (en) * 1998-05-13 2001-09-18 Microsoft Corporation Dynamic load balancing among processors in a parallel computer
SE514785C2 (sv) 1999-01-18 2001-04-23 Axis Ab Processor och metod för att exekvera instruktioner från flera instruktionskällor
US6966002B1 (en) * 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US6691219B2 (en) * 2000-08-07 2004-02-10 Dallas Semiconductor Corporation Method and apparatus for 24-bit memory addressing in microcontrollers
US20060248360A1 (en) * 2001-05-18 2006-11-02 Fung Henry T Multi-server and multi-CPU power management system and method
US20030005168A1 (en) * 2001-06-29 2003-01-02 Leerssen Scott Alan System and method for auditing system call events with system call wrappers
US7069372B1 (en) * 2001-07-30 2006-06-27 Cisco Technology, Inc. Processor having systolic array pipeline for processing data packets
US7249357B2 (en) * 2001-08-20 2007-07-24 Silicon Graphics, Inc. Transparent distribution and execution of data in a multiprocessor environment
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US7415594B2 (en) * 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
US7237045B2 (en) * 2002-06-28 2007-06-26 Brocade Communications Systems, Inc. Apparatus and method for storage processing through scalable port processors
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
JP3987784B2 (ja) * 2002-10-30 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US7353501B2 (en) * 2002-11-18 2008-04-01 Microsoft Corporation Generic wrapper scheme
US7673118B2 (en) * 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US7581081B2 (en) * 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US7269805B1 (en) * 2004-04-30 2007-09-11 Xilinx, Inc. Testing of an integrated circuit having an embedded processor
US7484041B2 (en) * 2005-04-04 2009-01-27 Kabushiki Kaisha Toshiba Systems and methods for loading data into the cache of one processor to improve performance of another processor in a multiprocessor system
US20080282062A1 (en) * 2007-05-07 2008-11-13 Montvelishsky Michael B Method and apparatus for loading data and instructions into a computer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI384374B (zh) * 2008-05-27 2013-02-01 Nat Univ Tsing Hua 具資料串流功能之多核心遠端程序呼叫方法
US8185898B2 (en) 2009-10-01 2012-05-22 National Tsing Hua University Method of streaming remote procedure invocation for multi-core systems
TWI594131B (zh) * 2016-03-24 2017-08-01 Chunghwa Telecom Co Ltd Cloud batch scheduling system and batch management server computer program products

Also Published As

Publication number Publication date
CN101051301A (zh) 2007-10-10
KR20070098760A (ko) 2007-10-05
US20070250682A1 (en) 2007-10-25
JP2007272895A (ja) 2007-10-18
WO2007117414A3 (en) 2008-11-20
WO2007117414A2 (en) 2007-10-18
EP1840742A3 (en) 2008-11-26
EP1840742A2 (en) 2007-10-03

Similar Documents

Publication Publication Date Title
TW200817925A (en) Method and apparatus for operating a computer processor array
US5752068A (en) Mesh parallel computer architecture apparatus and associated methods
JP6495208B2 (ja) ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置
TWI541725B (zh) 用於管理多核心架構之資源的方法和設備
Rossbach et al. PTask: operating system abstractions to manage GPUs as compute devices
Butts Synchronization through communication in a massively parallel processor array
JP2564805B2 (ja) 情報処理装置
US9779042B2 (en) Resource management in a multicore architecture
CN101320360B (zh) 用于并行集成电路结构的消息排队系统和相关操作方法
CN106462395B (zh) 多线程处理器架构中的线程等待
JPH03211656A (ja) マルチプロセッサシステム
US20030177288A1 (en) Multiprocessor system
CN103392171A (zh) 来自用户模式的图形处理分派
JP2009064411A (ja) データおよび命令をコンピュータにロードするための方法および装置
Mohr et al. Cutting out the middleman: OS-level support for X10 activities
Nadezhkin et al. Realizing fifo communication when mapping kahn process networks onto the cell
Lee et al. Hardware/software partitioning of operating systems: focus on deadlock detection and avoidance
Rossbach et al. Operating Systems Must Support {GPU} Abstractions
Kavi et al. Multithreaded systems
Bier et al. A Class of Multiprocessor Architectures for Real-Time DSP
Amouri et al. FPGA implementation of an invasive computing architecture
Samman et al. Architecture, on-chip network and programming interface concept for multiprocessor system-on-chip
de difusión Público et al. Información del Documento
Maximo et al. Unleashing the power of the playstation 3 to boost graphics programming
Salih et al. Design and implementation of embedded multiprocessor architecture using FPGA