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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 36
- 238000012545 processing Methods 0.000 claims description 17
- 210000004556 brain Anatomy 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 7
- 238000003491 array Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 239000000463 material Substances 0.000 claims description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims 1
- 244000046052 Phaseolus vulgaris Species 0.000 claims 1
- 238000012360 testing method Methods 0.000 abstract description 5
- 238000004519 manufacturing process Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 33
- 238000012790 confirmation Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000005611 electricity Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 3
- 235000012431 wafers Nutrition 0.000 description 3
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- KQRHTCDQWJLLME-XUXIUFHCSA-N (2s)-2-[[(2s)-2-[[(2s)-2-[[(2s)-2-aminopropanoyl]amino]-4-methylpentanoyl]amino]propanoyl]amino]-4-methylpentanoic acid Chemical compound CC(C)C[C@@H](C(O)=O)NC(=O)[C@H](C)NC(=O)[C@H](CC(C)C)NC(=O)[C@H](C)N KQRHTCDQWJLLME-XUXIUFHCSA-N 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 108010054982 alanyl-leucyl-alanyl-leucine Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 210000004907 gland Anatomy 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000004185 liver Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 210000000952 spleen Anatomy 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- 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
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)
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)
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 | コンピュータプロセッサアレイの操作方法および装置 |
-
2007
- 2007-05-07 US US11/800,714 patent/US20080282062A1/en not_active Abandoned
-
2008
- 2008-04-29 EP EP08251560A patent/EP1990718A1/en not_active Withdrawn
- 2008-05-02 TW TW097116210A patent/TW200907698A/zh unknown
- 2008-05-06 WO PCT/US2008/005780 patent/WO2008137142A1/en active Application Filing
- 2008-05-07 JP JP2008121123A patent/JP2009064411A/ja active Pending
- 2008-05-07 KR KR1020080042500A patent/KR20080099193A/ko not_active Application Discontinuation
- 2008-05-07 CN CNA2008100969359A patent/CN101339544A/zh active Pending
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 |