TW200907698A - Method and apparatus for loading data and instructions into a computer - Google Patents

Method and apparatus for loading data and instructions into a computer Download PDF

Info

Publication number
TW200907698A
TW200907698A TW097116210A TW97116210A TW200907698A TW 200907698 A TW200907698 A TW 200907698A TW 097116210 A TW097116210 A TW 097116210A TW 97116210 A TW97116210 A TW 97116210A TW 200907698 A TW200907698 A TW 200907698A
Authority
TW
Taiwan
Prior art keywords
computer
instruction
processor
instructions
computer system
Prior art date
Application number
TW097116210A
Other languages
English (en)
Inventor
Charles H Moore
Michael B Montvelishsky
Jeffrey Arthur Fox
Original Assignee
Vns Portfolio Llc
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 Vns Portfolio Llc filed Critical Vns Portfolio Llc
Publication of TW200907698A publication Critical patent/TW200907698A/zh

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

200907698 九、發明說明: 【發明所屬之技術領域】 本發明係關於電腦與電腦處理器。 【先前技術】 在電腦工藝中,處理速度是多數要求的品質,因此需 持續地製造更快的電腦與處理器。然而,以目前已知的工 業技術來說,微處理器處理速度已快速地到達極限。因 此,採用多重處理器可分擔電腦工作以增加整體電腦速 度。 刃用夕室處理器會導致處理器間通信需求的產生。的 ,’大$的處理器間之通信造成指令與f料之轉換耗費顯 者的時間。當通信量顯著時,必須執行並完成的每一額外 指令會惡化處理的延遲現象,累積後形成重大的影塑 :電腦間指令或資料之通信首先會將資料或指输 接收電腦處,後續才喚出執行(指令)或處理(資料 減少步驟利於資料或指令 資訊。然而,本案發明人儀以古之傳运、接收以及利用 方式構思本發明。、 心上述習知知識之特殊 在習知技術中亦必須隨時,,注立” 既使電腦正處理第一工作,但二思電腦。亦即,有時 作需求而需暫時將第一時間可能發生敏感的工 此例,當此時使用者輸入裝=腦。例如,但不限於 必須暫時通知此輪入亦/或根據此:輸入時。此時,電腦 輸入而反應。接著,電
3019-9645-PF 6 200907698 猫將繼續先前工作沐播此輪 作,或根據此輪入達行處理。雖然此處以 外指入為例’相同的狀況亦會發生於電腦内部之A L ϋ(數 學運算邏輯單元)間。 a s夫技術以提供兩種方式自1 /〇埠接收資料並改變狀 "種方式為輪詢”(po⑴此埠,在固定時間間隔 料此埠之狀態,以決定資料是否已被讀取或狀態是否改 變。然而,輪詢此埠耗費相當的時間與資源,料可運用 於他處。較佳的方式則是採用”插斷,’(interrupts)。 當使用插斷時’處理器可處理所指定的ol作,而當1/〇埠 ^裝置因已接收位元或改變狀態之事實而需被注意時,會 达出一插斷需求(IRQ)至處理器。處理ϋ因收到插斷需 求會結束目前指令’配置—些事務料疊上,執行適當的 插斷服務作業(ISR),自埠移除此位元至一緩衝器中。當 兀成ISR後,處理器返回原處理階段。利用此方式,處理 器不虛耗費時間是否需注意纟I/G裝置上,進需在必要時 服務插斷之需求。然而,在許多狀況下使用插斷的頻率甚 高。例如,每當插斷發生時,電腦必須暫時儲存前階段欲 完成工作之特定資料,接著载入插斷相關資料,在插斷處 理後再將前階段工作之必要資料重新載入。插斷的發生會 干擾時間敏感度高之處理。基本上會讓時間變成無法預 期。顯然地,降低或抑制時間與資源之過度消耗為當前之 重要課題。’然而,已知之習知技術並無法服和此類插斷情 況之需求。 @ 習知平行計算通常會結合數部電腦與—通信資料通 3019-9645-PF 7 200907698 道或匯流排。在上述配置中,個別電腦分配到對應之一位 址。在局性能集群系統(beowolf cluster)中為例,各 PC連接至乙太網路以TCP/ IP通信,並各配置—組位址戈 URL。當資料或指令傳送至一個別電腦時,係置於由此電 腦定址之數據分組(packet)。 相關待解決的問題為如何在上述各電腦中有效地傳 送資料與指令。在無個別可定址的電腦架構中將是此問 更難解決。 L發明内容】 因此,本發明之一目的為提供一種電腦陣列,每—電 腦經由資料匯流排連接鄰近電腦之電腦埠,此曰 — 丁 7 J /μχ, 貢訊至陣列中任一目標電腦。此資 ’、 句貝枓亦/或指 々,如目標電腦所執行之程式。在一實施例中, 次 訊至目標電腦者為一組程式’以下稱為搜尋:: c:ler),可攜帶資訊並預設通過陣列之起點; 邊緣之一預設電腦)至終點(目標電腦)之路押,、 設之路徑(route)在電腦間自行複製。資訊:並依預 標電腦。若此資訊為指令,則此指令即在此雷二迗至目 电月句中^4ι ^"7 此搜尋程式亦可定義目標電腦至其 丁。 电刀ilj之腺你 至原起點或其他不同的電腦。在一實 二,如 擴帶執行指令之結果至另一電腦。]中,搜尋程式可 在一實施例令,搜尋程式僅簡單地傳 料至一電腦,然後終止。 、王式亦/或資 3019-9645-Pf 8 200907698 在一實施例中,跋似产山丨 ( 工在搜号程式之有效負載 (payload)中靜態地加以定 有負載 預設此路徑(與TCP/Ip中 ,忒貞戰了 亍動恶§又弋路徑不同)。 在—貫施例中’路徑資1 y- ; 複製。若掬聋招貝況在搜哥程式期間於記憶體間 複I 搜哥私式中資料/指令之右峙έ 4人 妨/- | I有效負載包含路徑,而 路桎上之電腦不會消耗此有
Vi 員戟’則目標電腦可接收刭
採取之路徑與其來源之資訊。 』接收J 本發明之一實施例自乜6 ^ ^ 有圮憶體之電腦,具可獨立 。十算之功此。在一實施例中,γ # I數電腦係配置成一陣列。 為協同地完成工作,電腦間 4傳遞資料亦/或指令。因 所有同步處理之電腦提供高 、取大工作1所需之計算能 力’且因不論採用何種機制 H方法分配工作’電腦間會呈 現不對稱(uneven)地的配f八 π配置分配,故至少部分或大多數 的電腦並不會在預設的時間内 1内主動地參與工作的完成。因 此’未被充分地用之雷聰7 窀恥了協助鄰近電腦處理計算源 (computational resources) + 、 °己隐體或—併處理前述兩 者。為使電腦間具效率盘可用,叫 千用性,相鄰電腦間之通信與互 動必須盡可能地快速與有效。囡 ,,,αα 、 ^因此,本發明之一實施例提 供一種電腦之裝置方法,可勃γ 執仃指々亦/或依據其他電腦 直接提供資料而動作,而非在軏 a 户隹動作刖必須接收並儲存資料 亦/或指令。此應注意本發明亦 式η外可運用於媒介型指令,使 一電腦將指令或資料由一雷腦”, 7屯电勒傳遞至另—電腦。 在一實施例中,為防止不 卜乂要之功羊扁耗與熱能的產 生,當電腦欲與鄰近一或多部齋BK<、s户〇士 丨電細通栺時,此電腦將暫時 3019-9645-PF 9 200907698 維持休眠無耗能狀態, 而,卜 1鄰、電腦欲開始完成通信。然 此非本發明之必要縣 盥埶自&纟& . 卜,為完成減少功率消耗 ,、熟月b的產生之目的, 可广μ ^丨 a動中的電腦在等待完成通信時, 式::顯地降低功率消耗。此目的可藉由數種方 例如,假若電腦採用内部或外部時脈計時,在此 '月間可降低或停止時脈來達到上述目的。 體卞*發:< 冑施例中’不論來源為電腦之内部記憶 μ 夕卜邛通仏埠等之來源所接收,基本 上私令與貧料係視為相同類 s 、 因頜外 的操作處理不 再必要’如儲存資料岑人 次私7 ,然後自内部記憶體中召回 等’故可藉此減少所雹夕扣a奴α β Α 私7數目,並增加相關電腦的處 理速度。 在一實施例中,極少部公沾 卩刀的扣令可與其他電腦通信, 一般為同步通信,使得相關碎显^ & 關簡早而需重複之指令可輕易並 快速地被完成處理。此舉可麵 举'Γ "、員者地加速電腦間的通信處 理。 在實她例巾因複數組電腦可執行各類工作,且因 -或數組電腦可於等待輸入而無電源消耗下進入休眠狀 態’故可被指定為等待輪入之 彻入之工作模式,藉此可降低或省 去須’中斷其他正在完成盆 疋成具他工作之電腦之需求。 在一實施例中,資料斑指Α -Γ Μ 叶^知7可於相同的電腦中有效地 被載入與執行’亦/或於電腦間傳送轉換。既使每一電腦 僅與有限鄰近電腦直接連接的_、w ^ ^ 逆接的障況下,亦不需依靠一般匯 流排來達成。 3019-9645-PF 10 200907698 需儲:::之-實施例提供-種方法與裝置,使電腦在不 ==接收並執行自外部來源之指令,利用此方法 源=:電腦間之通信,且使電腦可利用其他電腦之資 ’、本實知例提供一種直接的刦、 晶片上Μϋ 仃方法與裝置,在單—微 求多重電腦’其重要性不僅在料作速率的需 於耗能的節省與降溫可增進後續更強大的效能。 任何熟知此技術領域者 n a. ^ an " 依據透過實踐本發明而達 η:例與圖示之所有特徵與優點。本發明之ϊ w揭不可能之目的與優點。此外,缺少 用-或多項特徵亦/或優點亦可完成本發明。 r圍Γ,任何熟習此技藝者’在不脫離本發明之精神和 乾圍内,當可作争叙命、、时以 τ不 一 /s1飾,因此本發明之保護範圍當視 後附之申請專利範圍所界定者為準。 【實施方式】 更明 洋細 為讓本發明之上述和其他目的、㈣、和優點 顯易懂’下文特舉較佳實施例,並配合所附圖式, 說明如下。 圍 附 任何熟習此技藝者,在不脫離本發明之精神和範 内由當可作更動與潤飾,因此本發明之保護範圍當視後 之申睛專利範圍所界定者為準 理資 本發 本發明之實施例係為改善管電腦線舆陣列中處 料之系統與方法。在各圖式中,特別是第12b圖中, 明之較佳實施例係以—般參考字體1〇〇〇表示。
3019-9645-PF 200907698 ::為本發明之前後敘述基礎,以下將先敘述非同步電 之背景實例,接著再料多埠讀取與寫入操作。 、如第1圖所示為為—電腦陣列1〇。電腦陣列1〇具有 士 ,,斤不為24 )電腦12 (有時在陣列實例中標記為” 二曰或點)。在所示之實例中,所有電腦1 2配置於 早晶片14上。每一電腦12 一般為具獨立功能,以下將詳 述。電腦12經由内連資料匯流排16 (以下將詳論數量)。 ,在^實例巾,資料匯流排16為雙向非同步高速平行資料 匯流排,雖然在本技術領域中其他内連方式亦可達到此目 的。在本實施例之陣列丨〇中,除電腦丨2間之資料通信為 非同步外,個別電腦丨2亦可在内部非同步模式下操作。 此可提供重要的進步。例如因時脈信號不需經由電腦陣列 Μ分散’可節省大量電力。再者,不需分散時脈信號可消 除許多時序問題’進而縮減陣列丨〇之尺寸。各電腦之非 同步操作可節省大量耗能,因各電腦在未執行指令時即無 時脈動作,故不需耗能。 熟知此技藝人士可理解第1圖中省略可加附於晶片 1 4之額外元件。此類額外元件可包括電源匯流排、外部連 接銲墊以及其他如一般外觀之微處理晶片。 電腦12e為電腦12中未配置於陣列1 〇週邊之實例。 亦即電腦12e與鄰近電腦12a、12b、12c、12d相垂直。 以下將利用電腦1 2a至12e詳述陣列1 〇中電腦12間之通 信。如第1圖所示,内部電腦如12e可直接透過匯流排j 6 與其他四組電腦通彳§。以下的5寸論之規則皆適用於所有電 3019-9645-PF 12 200907698 腦12,除配置於陣列1 〇周邊之電腦僅具三向通信,而配 置於角落之電腦僅具兩向通信。 第2圖為第1圖之部分詳細圖式,僅顯示部分電腦 12 ’特別是包含電腦12a至12e部分。第2圖亦揭示每一 資料匯流排16具有讀取線18、寫入線20與複數條(本實 例為18條)資料線22。資料線22。資料線22 —般可同 步平行轉換八位元指令字元之所有位元。此應注意在其他 變化實例中,部分電腦12為鄰近電腦之鏡像(mirror i mage )。然而,電腦12不論為個別功能或作為鄰近電腦 之鏡像皆非重點,以下將不對此相關可能應用作進一步討 論。 如電腦12中之電腦i2e可設定一、二、三或四條讀 取線18以接收鄰近一、二、三或四台電腦j 2之資料。同 樣地,一台電腦1 2可設定一、二、三或四條寫入線2 〇為 高準位(hight)。 當鄰近電腦12a、12b、12c、12d之一與電腦I2e之 間设定一寫入線2 0為高準位,若電腦1 2 e已設定對應讀 取線18為高準位,一字元將在對應資料線22上由電腦 12a、12b、12c、12d轉換至電腦12e。此送出電腦12將 釋放寫入線20,且此接收電腦〗2e (此例)將寫入線2〇 與讀取線18下降為低準位。後續動作為通知此送出電腦 12已接收資料。此處應注意上述不需依序進行。在實際操 作上,在送出電腦12釋放(停止拉高準位)其寫入線2〇 之前,接收電腦會嘗試將寫入線2〇設定為低準位。此時, 3019-9645-PF 13 200907698 s送出電腦12釋放其寫入線20時,寫入線2〇將被接收 電腦12e下拉成為低準位。 在本實例中,僅在程式發生錯誤時,位於匯流排16 相對兩端之兩電腦12會同時設定兩讀取線18為高準位’ 或疋同時设定兩寫入線20為高準位。然而,在不同的條 件下可設定不同組合之讀取線丨8為高準位,使得一電腦 12可為專待狀態以等待被選取之一電腦12之資料,以設 定其對應寫入線2 0為高準位。 f 在上述討論中,電腦1 2e在鄰近電腦(選自電腦1 2a、 12b、12c或12d之一或多組電腦)以設定其寫入線2〇為 鬲準位前,設定其一或多組讀取線丨8為高準位。然而, 此流程可倒序進行。例如,若電腦! 2e欲寫入電腦丨2a時, 電腦12e將設定電腦1 2e與12a間之寫入線為高準位。假 若電腦12e與1 2a間之讀取線未被電腦丨2a設定為高準 位,電腦12e會等待直到電腦12a確實將讀取線1 8設定 / 為咼準位。接著,如上所述,當相對應之讀取線18與寫 入線20接為高準位時,資料線22上之待轉換資料將被轉 換。然後,載送出電腦12e釋放寫入線ι8的同時,接收 電腦12a (在此例中)將兩電腦12e與12a間之讀取線18 與寫入線2 0皆設定為低準位。 如電腦12e之一電腦12在寫入之前已設定其一寫入 線2 0為咼準位時,如上所述,基本上直到資料被鄰近電 腦1 2”請求”前,並未消耗電力,除非資料被設定送達之 電月包12之讀取線18被設定為高準位,此時資料會立即被 3019-9645-PF 14 200907698 傳送。同樣地,當電腦〗2在讀取之前已設定其—讀取線 18為高準位時’並未消耗電力,直到連接至-被選取電腦 12之寫入線20成為高準位’以於兩電腦12間轉換指令。 如上所述,數類可能之裝置亦/或方法可使電腦12達 到上述功能。然、而,在本例巾,電腦12可輕易達成此功 能係因-般為内部非對稱操作(除上述非對稱方式轉換資 料之外)。亦即’指令係接續性地完成。當發生寫入或讀 取指令時,在指令完成前(或中斷,如成發生重置)不會 有進#地動作。在習知技藝中並無時脈脈衝。在此僅於 非5貝取或寫入型病之指令被執行時(讀取或寫入型態之指 7 4由另外的方式元成),或是當讀取或寫入型態之操作 事實上已完成時’產生-脈衝以完成下-指令。 第3圖為第1與2圖之電腦12 一般佈局之區塊圖。 如第3圖所不’每一電腦包括有RAM 24與ROM 26。如 則所述*本例中電腦】2有時亦結合成一單晶片,標記 為「端點」。 電細12之其他基本元件上包括迴返堆疊(return stack) 28 (包含r勒六 κ暫存态29,以下將詳述)、指令區域 30數子運算邏輯單元(則32 )、資料堆疊34以及解碼 邏輯區36以進仃指令解碼。熟知該技藝人士一般可知本 實例中電月& 12之堆疊操作。電腦12為具有資料堆疊34 與分離迴返堆428之雙堆疊式電腦。 I此實知例中’電腦12具有4組通信埠38以與鄰近 電脑12相互通仏。通信埠38為三態驅動器,具有關閉狀
3019—9645-PF 200907698 態、接收狀態(用以驅勤产咕、仓x⑽ 他動k號進入電腦12 )以及送出狀態 (用以驅動信號送出電腦 $ 电% 12 )。當然’若特定電腦12如電 腦1 2e未配置於陣列內〆 内(如第1圖所示),則此特定電腦 將不會使用一或多組 、 < 15埠。然而,比鄰晶片14邊緣之 通仏璋3 8具有外加當1兄々 路,可配合電腦12設計於内部或外 J,使通彳§蟑3 8作為—外μ I / q造卩Q , 外部1/0埠39 (如第1圖所示)。 此類外部I /〇埠39之眚加e / 又貫例包括但不限於USB埠(通用序 歹1J璋)、R S 2 3 2序歹】J匯、、六从丄合 - /從排4、平行通信埠、類比數位亦/ 或數位類比轉換埠、以芬# # # , 及卉夕其他可能的種類。不論採用 何種外加或改良型之雷,々 電路’根據本發明所提供之實施例, 根據接收到之指令亦/或資料操作此”外部” 1/0璋39之 方法皆與”内部”通信埠38相似。在第i圖中,電腦12f 具有一介面電路80(顯+认士&固 顯不於方塊圖中),透外部I /〇埠39 之外部裝置82進行通信操作。 指令區域30包括截· *日漸六时μ , 、’‘暫存益4 0,此例中包括有a暫 存器40a、B暫存器4〇b、p暫在 暫存益4〇c、I/〇控制與狀態 暫存為(I0CS暫存器40d)。在 例宁A暫存器40a與 I0CS暫存器40d為穿单的从-姑— 巧凡整的18位兀暫存器,B暫存器40b 與P暫存器40c為9位元暫存器。 雖然此技藝並不限於此例所示,本發明電腦a可由 執订原生F〇rth電腦語言指令加以完成。另外相類似於 ^電腦語言亦可達成,複…h指令如F〇rth「字 ^由广計適用於電腦之原生處理器指令所組成。卩〇咐 子兀即為所知之「字典」(di 。^ y )隹其他電腦語言
3019-9645〜PF 16 200907698 即為所知之「程式庫」(1 ibrary )。以下是敘述中電腦12 一次自RAM24、R0M26,或直接自資料匯流排16 (第2圖 所示)讀取18位元。然而,因大多Forth指令(即所謂 少數運算元指令)直接自堆疊28與34取得其運算元,— 般單一 18位元指令字元包括僅5位元之長度,即為4組 指令’依此條件下群組之最後指令僅能自僅需3位元之之 限定指令組中選取(在此實施例中,指令之最後兩位特徵 位元没定為0 0 ” )。在第3圖中尚包括一時槽序列器 (slot sequencer) 42 ° 在本實施例中,資料堆疊34係由ALU 32以後入先出 (last-in-first_〇ut)式堆疊參數處理,迴返堆疊為 後入先出堆疊,利用CALL與RETURN指令套疊返回位址。 迴返堆疊28亦利用PUSH、P0P與ΝΕχτ指令。資料堆疊34 與迴返堆# 28在記憶體中並非如f知技術係靠堆疊指標 於記憶體中陣列排列。資料堆疊34 t上兩 =4與S暫存器46。資料堆疊34之其餘部分具: :為陣列34a之8組硬體暫存器’在本例中為&至 為:二暫^ 暫存⑽ 6以下之暫存器。選取S暫存器以下之堆疊 暫存杰之移動暫存器 迴返堆A k J被軟體"買取或寫入。同樣地,在 分且有二/暫存器29,當迴返堆疊28之其餘部 :有:味暫存器陣列28a,其具有 (未不於圖中),標號為存 在本實施例令並盔堆暴 …隹疊之上溢位(〇verfl〇w)或下溢 3019-9645-pp 200907698 位(underflow)狀況之硬體偵測。— 中之處理器利用指標盥圮_體管 又° ^ α技術 佧〇。己IS骽S理4相類似之方式,去 唛指標超過堆疊配置記憶體之範圍 田 為錯誤狀態。此因在記憶體之堆疊 :η 位脾各舜命/ 上位或下溢 寻s伋寫(overwrite)或利用不庫兔μ Α 个應為此堆疊部分之堆 且員目 ''、、、而’因本實施例在堆疊28 陣列W與3“,故堆疊28與34不會在二“具有㈣ -V 會在堆*2:區域發生上 /皿或下溢位之情形。取而代之的為抵$ _ 將僅環繞暫存号之計“ η 衣陣列心與34a 暫存益之循壞陣列。因堆疊28與34之深声有 限,任何推至堆疊28或 又有 鬼办 貝細之動作意謂底部資訊將诎 '寫。推至資料堆疊34超過1 〇組項目,、 28 ^ ίο , 貝目,或推至迴返堆疊 超過13組項目,將使堆疊28或&底部之 軟體之責任為追縱堆疊28與34上之項目數、?… 應之堆疊28與34之項目數目超數目,並避免對 出堆愚庙邱s 、負何。硬體將無會偵測 :底口Μ員目被覆寫或標示為錯誤狀況。然而, 思處為在堆疊28盥34底部 w〆 有幾㈣、” 34底#之循蜋陣列28a與34a可因此 "又皿。例如,軟體可在任何時間# & # +Jl 28或34為、,,〜7字間點輕易地設定堆疊 再需清除舊的項目。故"…朝底部移動時不 閒狀態。、故知式在啟動時不需設定此堆疊為空 除別述所討論之暫存器外, U位元指令暫 如^域30亦劇有-組 以及一外“ 儲存目前使用之指令字元48, 前t I位凡特定指令碼(opcode)匯流排30b供目 引執仃之特別指令所用。 供目
30194645-PF 18 200907698 第4圖為指令字元48之示意圖。(此應注意指令字元 48事實上包括指令、資料或其組合。)指令字元w由μ 位元50所組成。此為二進位電腦,位元5〇之每—將為「】」 或「〇」。如前所述,18位元寬度之指令字元48可包含4 組位元52位於4組時槽中,包括時槽〇54a、時槽i 5处、 時槽2 54c、時槽3 54d。在本實施例t,18位元指令字 元48全為讀取。因此,因在指令字元48中始、終可能存在 4組心令’無操作(n。咐加⑽)指令亦包含於電腦a 支指令組中,用於當使用所有可得時槽託為不必要或甚 至非預叹之情况下。此應注意,在特殊的實例中,部分時 槽(特別是時槽】54b與時槽3 54c)中之位元5〇之極性 (主動高準位對應主動低準位)會被反轉。,然而,此不必 然之狀況係為更進一步解釋本技術,此可能之複雜狀況將 避免於於以下討論中出現。 第5圖為時槽序列器42之結構圖。如第5圖所示, 時槽f列盗42具有成環狀排列之複數組(本例中為14組) 反相裔56 μ及咖間58,當訊號通過u組反 及:開時會經過奇數次的反相處理。當⑽間之二輸 =第之-一 準位時,時槽序列器42中之一信號被啟 4圖)導出。端62將由執行指令52之位元66(第 ALUp」 70 66為南準位,則特定指令52為 目,二p 元66為” Γ,。當立元66為,,「, 則…間輪入端62為高準位,誘發時槽序列 動-脈衝以執行下_ 曰序心42啟
3019-9645-PF 19 200907698 成為2槽序列器42被誘發後,或為第輪入端Μ 、、门立’或為第二0R閘輸入端62成為高準位(後續 =論^訊號將會在時槽序列器42傳第兩次,每次在時 歹;器Si輸出“8產生一輸出訊號。第-次通過時槽序 ^ 68之信號為低準位,第二次在時槽序列器輸 端68之輸出為高準位。提供由時槽序列器輸出端⑽輸 之相對寬域信號至脈衝產生器7〇(方形圖中)以產產生 f輸出一窄域計時脈衝。熟知此技術之人士可理解此窄域 -十時脈衝可正確地起始電腦12之操作。 當特定指令52被執行作為讀取或寫入指令時,或其 他非设定為執行誘發下一個指令52之指令時,Η位元Μ 為(低準位),因此第一⑽閘輸出62為低準位。熟 知此技術支人士可理解在如電腦丨2之裝置中之計數一妒 都相當精確,不容許誤差存在。為檢查時槽序列器42,〇只 閘60之輸出需持續保持高準位,直到信號已環繞nand間 58 —圈以啟動此環之第二環繞。然後,0R閘6〇之輸出在 第二次環繞期間成為低準位以防止電路繼續發生不預期 之振盪。 如上所述,當i4位元66為” 〇”時,時槽序列器42 將不會被誘發一假設此時第二〇R閘輸入64非高準位, 下將詳述。 如上所述,不論讀取或寫入指令,每一指令52之i4 位元66皆會被設定,與不需輸入或輸出之指定不同。在 指令52中剩餘位元50作為特定指令碼(〇pc〇de)之用。 3019-9645-PF 20 200907698 在讀取或寫入之指令中,一或多組位元可用以指定為電腦 ^之資料自何處讀取或寫人何處。在本實例中,寫入資料 通常來自T暫存器44 (資料堆疊34之上部),而資料可自 被執行處選擇性地讀人T暫存$ 44或其他指定區域3〇。 因為在特定實施例中’資料或指令可利用此方式相互通 信,因此指令可直接自資料匯流排16執行。 一或多組位元50將用以指定埠38設定成讀取或寫 入。此後續之操作可利用一或多組位元選擇性地完成指定 2存态40,如A暫存器40a、B暫存器40b等等。在此類 實例中,被指定之暫存器40將預載對應每一埠38之資料 (以及任何其他電腦丨2可能通信之實體,如記憶體、外 部連接埠等等)。例如,特定暫存器40之每一四位元對應 到上琿38a、右埠38b、左埠38c或下埠38d。在此類實例 中,當在位元位置為”丨,,時,將設定經由對應埠⑽進行 通4。如前所述,在本發明之實施例中,雖然通信用之單 扎7令一組寫入之特殊指令碼不能設定大於一組之埠 38 ’但通ϋ之單—指♦中一組讀取之特殊指令碼可設定 大於一組之埠3 8。 以下實例假設電腦l2e欲對電腦12c進行通信並寫 入,此運用可適用於任何相鄰之電腦12。當電腦i2e執行 寫入指令時,被選取之寫入線2〇設定為高準位(在此例 中,寫入線20位於電腦12e與12c之間卜假若對應之讀 取線1 8已為高準位,資料立即由選取之位置經選取之通 信埠38被送出。相反地,若對應讀取線18並非已為高準 3019-9645-pf 21 200907698 腦12e將僅停止操作,直到對應讀取線18到達 :\ :止。此停止機制令讀取或寫人型式指令已於前 述。間§之,因指令52指a <?日7碼在ι4位元66位置為” 〇 ’故〇R開60之第一 πρ叫认 R閘輸入知62為低準位,且時 槽序歹“42並未被誘發產生一致動脈衝。 以:將假設在電腦12 #作中完成讀取或寫入型式之 庙仓 T胃電知12c與12e間之讀取線18與對 心之寫入線2 〇為高準位時,每一 $ 母電細12所維持對應線18 0之尚準位將被釋放(在此例中,送出電腦心將維 持冩入線2 0為高準位,接此带 m 接收電腦12c將維持讀取線18為 南準位)。接著,接收雷腦 / 一 電月“2將使線18與12成為低準 二在貫際運」乍中,接收電腦…會在送出電腦…以釋 放寫入線20前使線18與2。成為低準位。然而,因線μ 與20將被拉升成高準位’且僅微弱地維持(鎖定)在低 準位狀態’實際上無法達成任何下拉線18或Μ成低準位 之目的’直到,線18或20被電腦12釋放並鎖定成高位準。 當資料匯流排16中線18與2〇成為低準位時此為” 確認”(aCkn〇wledge)狀態。根據此確認狀態,每一電腦 …與…會各自設定所屬之内部確認線^高準位。如 第5圖所示,確認線72提供第二⑽閘輸入端Μ。因輸入 至⑽閘6。之輸入端62或64將導致〇R閘6。之輸出端成 為高準位’啟動如冑述之時槽序列$ 42之操作,執行浐 t字元48之下一時槽54中之指令52。確認線72維持: 阿準位,直到下-指令52被解碼為止,可防止假性位址 3019-9645-PF 22 200907698 到達位址匯流排。 當被執行之指今 電腦1 2將取得下 70 48之二個位置上時, 位元66為,,〇', : 8位元指令字元48 ’除非“ 之方法與裝置包含::r:r’預取(~指令 前之取得。然而,非二:48中所有指令52執行結束 非同步貧料通信並非必要。 一八在實際操作下,本發明實施例之機制為包括,,預取” 指令之方法與裝置, 頂取 令52德Η私掷 了在執仃完指令字元48中所有的指 ▽ b Ζ後開始擷取之接作。 必須的。 、‘、、'、而,此舉並非此處實施例所 # Z上述實例中6 _ ^電11 126寫人電腦12e之情形。 依據亡述討論可得知’不論電腦⑼欲先寫入電腦…, 或電知12c欲先讀敌|聰19 l 尤嗔取電恥12e,在操作上基本上皆相 不論電腦12…2。何者先預備完成,必須兩者皆 狀態才能完成操作’其中第—個電腦12僅會維持”睡眠” 狀態,直到另—電腦完成轉換。另-觀察上述程序之方 為在實際操作上,寫人電腦12e與讀取電腦以在分別1 行寫入與讀取指令時,進人睡眠狀態,當讀取線Μ 入線20皆為高準位時,幾乎即時地至少一電腦進入傳遞 喚醒狀態,啟動傳遞之第-電腦12可維持睡眠狀態,直 到第二電腦準備完成此程序為止。 此處關鍵性的技術特徵在於可於裝置間進行有六文 非同步通信,例如確認信號或條件信號。在習知技術中, 大多數裝置間的通信已被時脈化,且送出裝置無法直接矣 3019-9645-PF 23 200907698 道接收裝置已接收到資料。如檢查碼運算(checksum operation )的方法已用來確認資料是否被正確地接收, 但運鼻完成後接收裝置並不會被指定告知。在上述本發明 則提供必要之確認條件使得或至少實現装置間非同步的 通信。此外,確認條件亦可使一或多組裝置進入”睡眠” 狀恶,直到確認條件發生為止。當然,在電腦12間(在 内連資料匯流排1 6或分離之信號線上)可分別送出信號 進行確認條件之通信。因此,此類確認方法可更經濟地不 需任何額外信號、時脈循環、計時脈衝或任何其他資源以 達到通信的目的。 因4組指令52可包含指令字元48,且在電腦12間可 一次通信整組指令字元48,故可提供極小程式在一次操作 下傳送。例如大多數小型” For/Next”迴圈可在單一指令 字元48中完成。第6圖為微型迴圈1〇〇。與習知的迴圈不 同,微型迴圈100具有FOR指令1〇2與ΝΕΧΤ指令1〇4。因 指令字元4“第4圖)包含一樣多的4組指令52, 一組 指令字元48可包括三組操作指令1〇6。操作指令1〇6可為 程式設計者欲包含於微型迴目⑽中之指♦。典型實例為 微型迴圈1G0可自-電腦12傳送至另—電腦,可^取 或寫入第二電腦12之RAM24之指令組,使第—電腦” 借取” RAM12之空間。 FOR指令102將一數值推入迴返堆疊28, 數目。此即為在資料堆434之頂部的τ暫存 : 推入迴返堆疊28之R暫存器29。 值被 通书配置於指令字元48 3019-9645-PF 24 200907698 之時槽3 54d之F0R指令102,事實上可配置於任何時槽 54。FOR指令102並未配置於時槽3 54d,接著在進入微 型迴圈100前執行指令字元48之其餘指令52,一般為下 一次載入之指令字元48。 根據本發明之實施例,第6圖中之ΝΕχτ指令1〇4為 指令104之特別型態。此因其配置於時槽3…中(請參 閱第4圖)。根據本發明之實施例,假設所有特定指令字 元40中之資料係指” f通”贿指令(未示於圖中)為 一位址(此為f0r/next迴圈開始之位址)。不論位於任何 4組時槽54中,NEXT指令1〇4之特殊指令碼係為相同(明 顯的例外則為在時槽3 54d之前兩位位元)。然而,因當 NEXT指令1 〇4在時槽3 54d中時並無跟隨之位址,在此亦 可假設此在時槽3 54d中之ΝΕχτ指令1〇4為们⑽一· 指令l〇4a。UNEXT特殊指令碼與ΝΕχτ特殊指令碼不同。 麵— NEXT指令恥利用位於相同指令字』之時槽〇 54a中之第-指令52之位址作為迴返位址。 指=购自R暫存器29取得數值(原為_指令ι〇2所 推运而至),设定為卜接著迴返該數值至r暫存器Μ。 田R暫存ϋ 29之數值達到預設值(如Q)時,μ⑽ 指令將載入下一組指令字元48並繼續前述後續動作。然 而田MICRO NEXT指令i〇4a自R暫存器29所讀取之數 值大於預設值時,將以自身擁有之指令字元48在時槽〇 54a處恢復操作,並執行配置於時槽組指令 此即為在本發明之實施例中,-組MICR〇-NEXT指令104a
3019-9645-PF 25 200907698 總是執行三組操作 全部使用,故可二1〇6。因三組可利用指令52並不需 殊指令,,之指令。於-或二組時# 54中填入,,非特 此:應庄意的為微型迴圈ι〇。可運用於整組單一電腦 。體可用之機械語言可為操作指令n斤採用,盆 二之=會受限於程式設計者之想像力多s。然二 :二:…48中之微型迴圈10。之執行,與電腦12 對鄰近電腦12送出扣人^ 。 μ 、出私令予几48以執行來自資料匯流排16 之才日々5 2之能力相έ士人主姐 口時扣供一種強大的工具使電腦 1 2可另用其鄰近電腦的資源。 12二t於單一資料字元48中之微型迴圈1〇0可於電腦 傳遞,並如其他包含於指令字元48中之指令一妒 可直接自接收電腦12之通信埠38 Μ執行。當許多使又用 者欲排序使用微型迴圈100時典型的使用方式為電腦η 欲儲存資料至鄰近電腦12之記憶體巾。例如,首先傳送 一指令至鄰近電腦,告知儲存一輸入資料至一特定記憶位 址’接著增加此位址,並重複此數目(傳送資 立 、f卞之數 目)。為讀取回此資料,第一電腦將指示第二電腦(作二 儲存用)利用相同的微型迴圈寫入此儲存之資料回第—「 腦。 —電 利用此微型迴圈100結構並直接執行,當電腦 内建儲存空間小於欲儲存之資料量時,電腦12 w 、 ~利用鄰 近休息之電腦12儲存過多的資料。上述為資料储^_ 、 用,相同的技術亦可運用於使鄰近電腦i 2分享電運 岛12之 3019'9645-PF 26 200907698 計算機資源·'製造微型迴圈100使其他電腦12執行一些 操作、儲存結果並重複預設的次數。微型迴圈1 00結構之 可能性與方式是不受限制的。 在本發明之實施例中,不論資料或指令皆可依上述方 式傳送’因此’基本尚可直接自資料匯流排1 6上執行指 令。此即為不需儲存指令至RAM24中,且需在執行前重喚。 取而代之的’在本實施例中,自通信埠38接收與字RAM24 或26重喚出之指令字元48並無不同。此點相似處已於前 述’以下描述將關注於電腦12之操作,更詳細地介紹如 何擷取指定字元48以瞭解本實施例之運用。 可採用的機械語言為FETCH指令。FETCH指令利用A 暫存器40a上的位址決定至何處擷取一丨8位元字元。當 然,程式必須已提供置於A暫存器4〇a上之正確位址。如 前所述,A暫存器40a為一 18位元暫存器,固有足夠的位 址貝料空間’分辨任何發生擷取之可能來源。以意即有指 疋至ROM之位址範圍,亦有指定至RAM之位址範圍,且亦 有為每一埠38與外部I/O埠39特別指定之位址。—組 FETCH指令可於τ暫存器44擷取以組位元。 、 相反地,如前所述,可執行指令(相對於資料)則暫 存於指令暫存器3〇a中。此處並無特別要求,,擷取,,一 Μ 位兀指令字元48至指令暫存器3〇a中。取而代之的,當 指令暫存1 30a中無遺留可執行的指令時,電腦將會自動 地擷取”下-,,指令字元48。” 了 ―”指令字元之配置係 由程式計數器,,決定(P暫存器4〇c)。p暫存器後通 3019-9645-PF 27 200907698 常自動地增加,在此例中可從RAM 24至 序列指令字元48。然而,此規則有一些例外:出: JUMP或CAU指令使p暫存器於執行完膽或c侃 指令後’載入由目前所载入指令字元48之其餘資料所指 丁之位址§ p暫存器4〇c接著載入對應—或多經埠⑽ 之位址時’下一指令字元48將自埠38被载入指令暫存器 心。指令字元48僅自一組埠38掏取至指令暫存器3〇: 時’ P暫存器40c亦不會增加。相反地,相同的蜂位址會 一直^維持’直到執行特定的腑或CALL指令以改變I 暫存器4〇c。此意即,電腦被告知關注來自埠38之下一指 令,會持續到被告知關注他處為止,如為下—指令字元^ 而回到記憶體(RAM 24或RAM 26)的情況。JUMp指令並 不會載入,暫存器卜其位址將會被配置於位址匯:排 上’持續增加,並在完成指令時儲存至p中。 當目前指令字元48中無遺留可執行的指令時,電腦 12即知曉下一被擷取之18位元將被置於指令暫存器30a 中。結果,在腑或aLL指令(亦或於其他為特別於此 討論之指令)後’將無可執行指令遺留於目前指令字元48 中,因依據定義,在跟隨在JUMP或CALL指令後之18位 元指令字元48之其餘部分係依據几肝或CAU指令提供 位址n方式描述上述程序,在許多m共通性為 一 JUMP或CALL指令可選擇性地為一埠⑽而非僅為一記 此處應注意為,如前所述,電腦1 2可由—埠3 8戋 3019-9645-PF 28 200907698 群埠38之其中任一尋找下一指a m 晶7。因此,位址係依各類
埠組合而決定。例如,當雷腦姑主A 罨細被告知自一群埠38中擷取 一指令時,將會自任何被選取璋3 8 、#平接收第一可得之指令 字元48。若無鄰近電腦32欲寫人任何埠38,則如前所述, 電腦12將近入1眠”狀態直到-鄰近電财定寫入被 選取的埠38。 在此類電腦中可載入資料至曰Η 貝丁叶主曰日片1 0上之個別的電腦 12中。在此類陣列中無個別 祉 < 篇衣不易將將資料定 址至個別電腦。同樣地,必須載 貝戰入並執灯指令至個別電腦 12。一種被提出的方法為舲田她* 忒马此用搜哥程式完成。此方法之檢 驗可引導熟知此技藝之人士施基山吃夕上 入士推導出§午多相似之方法。所示 之搜尋程式僅為如何完成之音你丨^ 也 凡成之實例,並不意謂本發明受限於 其特徵。例如’可採用但不限 ο丨氏π稷锇式F〇rth電腦語言(目 的碼)。在此採用機械式Forth雷腦1山τ饮η 丄也 η电月旬5吾s不僅因為本案發 明人已開發完成,亦因其可較標準電腦語言更清楚地教導 操作。本發明仍可採用f知的標準電腦語言。此外,此處 所示之實例為在一特定雷 饤疋€細上執仃指令,但此方法亦可將 任何資料或指令載入0杠夕 匕括夕重電腦之任何電腦中。 第7圖所示為利用趟、斗、 ,,^ π用機械式Forth電腦語言將資料或指 t載w設電腦12中。此方法標示為搜尋㈣撕。搜尋 私式201在點與點(複數電㈣12)之間㈣n點中 載入搜尋程式201,在雷聪19 „七 任電12間來回移動並不會縮減其大 J他類的搜守程式可不需載入而直接地在電腦1 2間移 為可變動之長度。程式設計者所設計之搜尋程式可依
3019'9645-pF 29 200907698 « 。又疋之方向選取欲執行或载入之電腦。搜尋程式2〇ι在電 腦12d上執行一壓力測試(stress忱討)。 如第7圖所示之搜尋程式2〇1,第一字元設定數字為 十進位並開始於位址45。第二字元宣告搜尋處理之名稱, 並設定方向為資料堆疊34(t)以及下一路徑為迴返堆叠 (r) 28。第三字元b!指向需搜尋程式輸入之“所指定之 埠39 (如第1圖所示),63置於RM 24 (第3圖)且心+ , 置於時槽以擷取63作為一文字。PUSH指令為後續ΝΕχτ 指令推送一小於RAM 24之内容。第四字元複製程式計數 器制止像在資料堆疊34上之字元。在此實例中,程式計 數器正指向dup xor a!,被視為一文字。此動作將清除目 仏點中之暫存器。第五字元複製兩份指令字元並送入鄰 近埠兩次。第一指令字元喚醒此鄰近埠,且在此鄰近埠為 一四埠讀取模式中且無法決定字元之來源時被捨棄。當此 字7L第二次被送出,此鄰近埠可決定來源並跳至該埠開始 I 執行被送出之指令。dup xor指令以〇取代堆疊之頂部項 目。搜尋程式被允許使用來源與目標點之資源,故任何前 堆疊内容並無重要性。第六字元將@ p +指令置於A暫存 器。@ P +指令將堆疊下兩字元,準備將此類字元匯入鄰近 電腦作為此端控制之指令流(instruction stream)的一 部分。此鄰近電腦可依此指令調整所有RAM 24。第_ @ p + 與! a +擷取部傳出之文字,並在預先在RAM指標與第二次 推送前儲存於RAM 24 :使鄰近電腦開始在此接收之位址執 行。開始/下—指令將自第二字元中指令63迴圈執行64 3019-9645-PF 30 200907698 人此迴圈複製24中每一項目至鄰近電腦RAM 24中 之對應位置。在迴圈指示鄰近點利用下一輸入為―文字, 且此犬員點迴返位址後,第一指令被送入鄰近電腦並置於鄰 近:細之迴返堆疊28上。此時兩點具有相同的RM 24之 内容。當鄰近電腦繼續在迴返-堆疊28上之位址時,原始 h止處將重新開始。c。(d指令將此點迴返成一四璋讀取 狀f,且―;指令將一傳喚(⑻1)轉換為跳轉(卿P), 使付知式計數器位址不會遺留於迴返堆疊上,且不會佔據 一組時槽。所示之程式定義R、l、u、d之指令為右、左、 上、下’在其他方法中亦可以採用北南東西。此系統中之 特定點亦採用可非相對位址之絕對位址。搜尋程式謝佔 用RAN 24中之最後19組字元。 犬第1圓中顯示搜尋程式2〇1之路徑202。搜尋程 式2〇1起始於電腦m並向下移動至電腦挪,接著向右 移動至電腦12c,向上移動至電腦 19 ^ 秒動主電細Ik,向右移動至電腦 二’向下移動至電腦12e。接著向下移動至電腦⑼,進 ::1。:::二此測試係觀察電腦12d是否能無誤地加㈣ 電腦12d之堆疊34上。電腦12d直接 12 。己1*體24中之字元十。搜尋程式經由上向電 細e、上向電腦12a、左向電腦12 左向電腦咖、最後上向至電腦12;傳接向電腦心、 據π板字元,“電版⑶傳回。此特定測試佔 的功能,包括/ 或更短,或可能執行任何預設 第8圖At广貝料、擷取並傳爾、或是執行指令。 圖為搜尋程式201之流程圖。在預設埠之第一電 3019-9645-ρρ 31 200907698 腦 '之記憶體中載入搜尋程式20卜若有指令執行,則執 :此扣,。若無指令執行’則確定是否有指令欲移動搜尋 ^。右有此類指+,則則將搜尋程式載入於搜尋程式中 设疋之下一點。重複此流程直到無移動指令為止。 類扣令,則終止搜尋程式。 ‘、、' t尽發明可在不改變數值與範圍下擁有各類型的改 k °例如’在本發明所揭示之實施例中之特定電腦a 依其他電腦設計或他類電腦陣列而調整其許 創造性特徵。 **斤有的 同樣地纟本發明所揭示之實施例令,關於單 上陣列10之電腦12間之通信的相同原理 日日 於直他梦晉μ夕、s > , 〃万,去’可運用 = Γ 電腦12與指定之記憶體間, 或疋陣列10之電腦12與外部裝置之間的通信。 雖然本發明之實例中已揭示電腦陣列10、齋 搜尋程式201、路;^ 202 π贫電腦12、 峪么202以及其他相關裝置, 圖所示之搜尋方法,但可預見仍有許多應用未=與8 發明之一優點為可依據不同的應用而調整出::示。本 法與裝置。 j k性的方 任何熟習此技藝者’在不脫離本發明之 内,當可作更動與潤飾’因此本發明之保護範::和範圍 之申請專利範圍所界定者為準。 到*視後附 【圖式簡單說明】 第1圖係顯不本發明中電腦陣列之圖式
3019-9645-PF 200907698 第2圖係顯示第1圖中電腦之子陣列與内遠次 义貝料線之 圖式; 第3圖係顯示第1與2圖中電腦之一般佈局方塊圖. 第4圖係顯示可運用於第1與2圖中電腦之指令字元; 第5圖係顯示定序器(si〇t sequencer)之結構圖; 第6圖係顯示本發明之微型迴圈圖; 第7圖係顯示本發明實施例中搜尋指令之示意圖’及 第8圖係顯示第7圖實例之流程圖。 【主要元件符號說明】 10〜電腦陣列; 12、12a、12b、12C、i2d、12x、12〜電腦; 14〜單晶片; 1 6〜資料匯流排; 18〜讀取線; 20〜寫入線; 22〜資料線; 24〜RAM ; 26〜R〇m ; 2 8〜迴返堆疊; 28a、34a 〜抵 js 如一 僱%暫存器陣列; 3 〇〜指令區域; 〜指令暫存器; 32〜數學運算邏輯單元; 3019-9645-Pf 33 200907698 34〜資料堆疊; 3 6〜解碼邏輯區; 3 8〜通信埠; 38a〜上埠; 38b〜右淳; 3 8 c〜左埠; 38d〜下埠; 3 9〜外部I / 〇埠; 40、40a、40b、40c、40d〜暫存器; 42〜時槽序列器; 44〜T暫存器; 4 6〜S暫存器; 4 8〜指令字元; 50、52、66〜位元; 5 4 a〜時槽0 ; 5 4 b〜時槽1 ; 5 4 c〜時槽2 ; 5 4 d〜時槽3 ; 5 6〜反相器; 58〜NAND 閘; 6 0〜0 R閘; 6 2〜第一 OR閘輸入端; 64〜第二OR閘輸入端; 68〜時槽序列器輸出端; 3019-9645-PF 34 200907698 70〜 脈衝產生器; 72〜 内部確認線; 8 0〜 介面電路; 82〜 外部裝置; 86〜 ”繼續”操作 8 8〜 確認信號; 1 0 0〜微型迴圈; 102〜FOR指令; 104' 〜NEXT指令; 106' 〜操作指令; 1 0 8〜高位址位元 201, 〜搜尋程式; 2 0 2〜路徑。 35
3019-9645-PF

Claims (1)

  1. 200907698 十、申請專利範圍: 1· 一種電腦系統,包括: 一群^复數埠之複數電腦處理器:以及 複數位指m專送自資料群選取之資訊、 王—第一處理器; 其中,對該第一處理$y ^ - 4 it ^ - 器進仃程序處理以輸入欲輸入該 並傳送該搜尋程式至-第二處理器。 第二處理器進行程序:之電腦系統,其中對該 次处理以輸入欲輸入該第二處理器之 並傳送該搜尋程式至一第三處理器。 繁二如!請專利範圍g 1項所述之電腦系統,其中對該 -处理$進行程序處理以執行來自該輸人埠之複數指 々,而未與該第-處理器產生交互作用(interacti〇n)。 ^ 申叫專利範圍第2項所述之電腦系統,其中該搜 哥私式包括自該群之上、下、左與右中選取之—位置,用 已將該傳送裝置傳送至該第二處理器。 、5.如申請專利範圍第2項所述之電腦系統,其中該資 Λ為複數指令之傳送,自該埠傳送至該第二處理器。 6.如申請專利範圍第2項所述之電腦系統,其中該資 訊為資料傳送,自該埠傳送至該第二處理器。 7·如申請專利範圍第2項所述之電腦系統,其中該資 訊為資料亦/或複數指令之型式,自該埠傳送至該第二處 理器。 該輸 8.如申請專利範圍第1項所述之電腦系統,其中 36 3019-9645〜Ρρ 200907698 入埠唯一外部埠,用以與一 9.如申睛專利範圍第1 於§亥等處理器之一中包括: 外部裝置相互通信。 項所述之電腦系統,其中至少 一指令暫存器 令群;以及 用以暫時性地儲存被執行之一複數指 該位址係來自擷取 記憶體位址或為一 —程式計數器,用以儲存一位址, 一複數指令群至該指令暫存器; 其中,5亥程式計數器之位址可為一 計數器之位址。 10. 如申D月專利範圍第9項所述之電腦系統,豆中一 般係同步地操取該複數指令群至該 /及 依據-堆疊上之-數目為次數重複該等:令 11. 如申明專利範圍第i項所述之電腦系統,其中至 少於έ亥專處理器之一中包括: 複數指令群,一般係同步地棟取至該指令暫存器 及 σ ' 12. -種載人資料至複數電腦的方法,該等電腦配置 於—具一輸入埠之多重電腦陣列中,且至少一電腦未直接 與該輸入埠連接’包括下列步驟: 入埠 第二 (a)導入一輸入至該埠,使一第一電腦連接至該輪 傳送至少該輸人之—部分至未連接至讀人埠之— 腦;以及 b )使該第二電腦輸入至少部分該輸入之該部分。 3019-9645-PF 37 200907698 ί3.如申請專利範圍第12項所述之方法,其中該第二 電腦執行— 作以反應自该第一電腦之該輸入之該部分。 14.如申請專利範圍第12項所述之方法,其中該第二 電腦依該線$ ^ Μ / 旱輸入執行一例行程序(routine)。 I5·如申請專利範圍第14項所述之方法,其中該例行 程序包括料-第三電腦之介面。 其中該例行 其中該例行 其中該例行 其中當該第 。1β.如申請專利範圍第15項所述之方法 私序包括寫入該第三電腦。 浚申„月專利範圍第j 5項所述之方法 程序包括傳送資料進人該第三電腦。 18.如申請專利範圍第15項所述之方法 程序包括傳送複數指令至第三電腦。 I9·如申請專利範圍第18項所述之方法 三電腦接收該等指令後料執行料指令。 行申社專&程式’當於—複數電腦陣列執行時可施 仃甲切專利範圍第12 91 主19項中任一項之方法。 u·—種電腦可讀取媒介 置施杆_ & # ^ ~ 系,具有内嵌碼可使一電子裝 置施订申睛專利範圍第 Μ項之該等步驟。 ^、^^、^叫卜^或 程式。 種載體’可攜裁申請專利範圍第 U·—種電腦系統,包括·· 、 一群複數電腦處理器,至 令之一 ··以及 輸入埠連接至該等處理器其 —搜尋裝置,用以^ ^ 6 遠輸入埠傳送自資料群選取之資 3019-9645-PF 38 200907698 訊、複數位置與複數指令至一該等處理器以及—另―處理 器; 八中亥搜尋程式還包括由複數方向指令所設定之一 路徑及指不該另—處理器載入一有效負載之一裝置。 24·如申凊專利範圍第23項所述之電腦系統,其中該 搜尋裝置#示該處理器與該輸人琿之相對位置。 25_如申凊專利範圍第24項所述之電腦系統,其中該 搜尋裒置杉不该處理器與該輸入埠之相對位置,係包括自 上、下、右及左中選取之一方向。 26·如申睛專利範圍第24項所述之電腦系統,其中該 搜尋裝置私不該處理器與該輸入埠之相對位置,係包括自 北、南、東及西中選取之一方向。 27·如申請專利範圍第23項所述之電腦系統,其中該 搜尋裝置以該處理器位址指示該處理器之絕對位置。 28.如申請專利範圍第23項所述之電腦系統,其中該 有效負載為資料。 βΧ 統’其中該 執行該等指 29.如申請專利範圍第23項所述之電腦系 有效負載為複數指令,請該另一處理器係用以 令。 3019-9645'pp 39
TW097116210A 2007-05-07 2008-05-02 Method and apparatus for loading data and instructions into a computer TW200907698A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/800,714 US20080282062A1 (en) 2007-05-07 2007-05-07 Method and apparatus for loading data and instructions into a computer

Publications (1)

Publication Number Publication Date
TW200907698A true TW200907698A (en) 2009-02-16

Family

ID=39560054

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097116210A TW200907698A (en) 2007-05-07 2008-05-02 Method and apparatus for loading data and instructions into a computer

Country Status (7)

Country Link
US (1) US20080282062A1 (zh)
EP (1) EP1990718A1 (zh)
JP (1) JP2009064411A (zh)
KR (1) KR20080099193A (zh)
CN (1) CN101339544A (zh)
TW (1) TW200907698A (zh)
WO (1) WO2008137142A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007272895A (ja) * 2006-03-31 2007-10-18 Technology Properties Ltd コンピュータプロセッサアレイの操作方法および装置
US8464143B2 (en) * 2009-01-12 2013-06-11 Board Of Regents Of The Nevada System Of Higher Education Error detection method
JP2010218891A (ja) 2009-03-17 2010-09-30 Fujifilm Corp 分散型エレクトロルミネッセンス素子
EP2437170A4 (en) * 2009-05-25 2013-03-13 Panasonic Corp MULTIPROCESSOR SYSTEM, MULTIPROCESSOR CONTROL METHOD AND INTEGRATED MULTIPROCESSOR CIRCUIT
US9417687B2 (en) * 2011-07-12 2016-08-16 Rambus Inc. Dynamically changing data access bandwidth by selectively enabling and disabling data links
US8893088B2 (en) * 2013-04-02 2014-11-18 Apple Inc. Dynamic program evaluation for system adaptation
EP2952299A1 (en) 2014-06-05 2015-12-09 Aldebaran Robotics Standby mode of a humanoid robot
CN112395000B (zh) * 2019-08-13 2023-05-26 杭州中天微系统有限公司 一种数据预加载方法和指令处理装置
US11521085B2 (en) 2020-04-07 2022-12-06 International Business Machines Corporation Neural network weight distribution from a grid of memory elements
US11960438B2 (en) 2020-09-08 2024-04-16 Rambus Inc. Methods and circuits for streaming data to processing elements in stacked processor-plus-memory architecture
CN112615759B (zh) * 2020-12-17 2023-03-31 上海哔哩哔哩科技有限公司 全链路压测组件、全链路压测方法及装置

Family Cites Families (25)

* 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
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
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
US6966002B1 (en) * 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
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
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
US7712080B2 (en) * 2003-05-21 2010-05-04 The Regents Of The University Of California Systems and methods for parallel distributed programming
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
EP1821211A3 (en) * 2006-02-16 2008-06-18 Technology Properties Limited Cooperative multitasking method in a multiprocessor system
JP2007272895A (ja) * 2006-03-31 2007-10-18 Technology Properties Ltd コンピュータプロセッサアレイの操作方法および装置

Also Published As

Publication number Publication date
US20080282062A1 (en) 2008-11-13
JP2009064411A (ja) 2009-03-26
CN101339544A (zh) 2009-01-07
WO2008137142A1 (en) 2008-11-13
EP1990718A1 (en) 2008-11-12
KR20080099193A (ko) 2008-11-12

Similar Documents

Publication Publication Date Title
TW200907698A (en) Method and apparatus for loading data and instructions into a computer
CN110990060B (zh) 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法
US20220261622A1 (en) Special purpose neural network training chip
US11204766B2 (en) Proactive Di/Dt voltage droop mitigation
US9489200B2 (en) Method and apparatus for asynchronous processor with fast and slow mode
EP2438529B1 (en) Conditional operation in an internal processor of a memory device
US8612726B2 (en) Multi-cycle programmable processor with FSM implemented controller selectively altering functional units datapaths based on instruction type
US7900078B1 (en) Asynchronous conversion circuitry apparatus, systems, and methods
USRE26171E (en) Multiprocessing computer system
TW200905556A (en) Communicating data
US7257703B2 (en) Bootable NAND flash memory architecture
GB2029613A (en) Carry anticipator circuit and method
TW200849027A (en) System and method for processing data in a series of computers
TW200809531A (en) Method and apparatus for monitoring inputs to a computer
US11520598B2 (en) Multi-processor mobile computing device
US10365681B1 (en) Multiprocessor system having fast clocking prefetch circuits that cause processor clock signals to be gapped
US10366019B1 (en) Multiprocessor system having efficient and shared atomic metering resource
US20070234098A1 (en) Self-timed clock-controlled wait states
US11921559B2 (en) Power grid distribution for tensor streaming processors
TW200809530A (en) Asynchronous power saving computer
TW200809529A (en) Computer system with increased operating efficiency
CN115016761A (zh) 一种累积系统和方法
Pierce Hardware multiplier processor
Gourounas et al. LAWS: Large-Scale Accelerated Wave Simulations on FPGAs
WO2023121764A1 (en) Multi-cycle scheduler with speculative picking of micro-operations