[go: up one dir, main page]

TW200905566A - System comprising a plurality of processors and method of operating the same - Google Patents

System comprising a plurality of processors and method of operating the same Download PDF

Info

Publication number
TW200905566A
TW200905566A TW097119627A TW97119627A TW200905566A TW 200905566 A TW200905566 A TW 200905566A TW 097119627 A TW097119627 A TW 097119627A TW 97119627 A TW97119627 A TW 97119627A TW 200905566 A TW200905566 A TW 200905566A
Authority
TW
Taiwan
Prior art keywords
processor
variables
instruction
slave
registers
Prior art date
Application number
TW097119627A
Other languages
English (en)
Other versions
TWI467490B (zh
Inventor
Uwe Kranich
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of TW200905566A publication Critical patent/TW200905566A/zh
Application granted granted Critical
Publication of TWI467490B publication Critical patent/TWI467490B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)
  • Executing Machine-Instructions (AREA)
  • Electrotherapy Devices (AREA)
  • Control Of Eletrric Generators (AREA)
  • Multi Processors (AREA)

Description

200905566 . 六、發明說明: 【發明所屬之技術領域】 本發明之揭示係大致有關電腦系統之領域,尤係有關 包含複數個處理器之系統。 【先前技術】 在現代的電腦系統中,採用了包含複數個指令之處理 器。處理器自被連接到該處理器的系統記憶體讀取指令及 資料,並根據該等指令而修改該等指令及(或)資料。該 系統記憶體可包含諸如隨機存取記憶體(RAM)的揮發性 但可迅速存取的記憶體裝置、以及諸如硬碟等的緩慢但永 久性的記憶體裝置。此外,電腦可自諸如鍵盤、滑鼠、及 (或)網路連線等的裝置接收輸入,並可將輸出提供給諸 如監視器、一個或多個喇叭、及(或)印表機等的裝置。 在大部分的電腦系統中,採用被稱為“作業系統”之專門 電腦程式,以便控制對各種程式的處理、以及該電腦系統 的各組件間之貢料傳輸。 第la圖是現階段技術狀態的電腦系統100之方塊 示意圖。電腦系統100包含處理器101、系統記憶體 104、以及一個或多個輸入/輸出裝置103。箭頭102示 意地指示處理器101、系統記憶體104、與輸入/輸出裝 置103間之資料傳輸。 處理器101包含複數個暫存器102、103、104、105。 可將資料自系統記憶體104讀取到暫存器102至105,且 可將暫存器102至105中之資料寫到系統記憶體104。處 4 94344 200905566 、理s 101可包括適於修改暫存器102至1〇5的内 令、以及在暫存器102至】05與系統記憶 ^ (,在暫存器_i05之間傳輸資料之指令。=及 ,供用來執行這些工作的—組合之指令。處理器⑻、兩 :可取糸統記憶體104中儲存的資料的速度+二 多之速度存取暫存器102至1〇5中之資料。 又與弁 〜^理了。改fn電腦純⑽的效能,最好是可提供取代 早=,1〇1的複數個處理器。因此,可同時執行複數 個工4及(或)執行緒。此種方式可有助於提 100的作業速度。 胸系統 然而,在根據現階段最高技術的電腦系統中,如將於 下文中參照第lb圖而說明的’處理器的數目增加時,可 能需要有作業系統的修改。帛lb圖示出在根據現階段最 高技術的電腦系統100的處理器1〇1中執行之工作加 之示意流程圖。工作201包含將被處理$ 101循序地處 理的複數個21〇至215。因此,處理器1〇1以自指令21〇
至指令211且自指令211至指今A 該等指令。. 扣之方式循序處理 當工作201被處理時,諸如在處理指令212期間或 之後,可能發生以第lb圖中之箭頭23〇示意地指示之中 斷或異常。如果在處理指令212期間發生錯誤,例如,如 果發生除以零,或如果有來自系統記憶體1〇4的諸如分頁 錯誤等的錯誤訊息’則可產生異常。也可由工作2〇ι的指 令(例如,指令212)有規律地產生異常。工作2〇ι所產 94344 5 200905566 生的異常之典型應用是呼叫電腦系統100的作業系統。諸 如輸入到輸入/輸出裝置103或輸入/輸出裝置103的 同步要求等的處理器101以外的其他裝置引起之事件可 產生中斷。如果電腦系統100中執行多工,則可將時序電 路所產生的中斷用來交替地啟動可以是程序或執行緒的各 種工作。 如果發生了中斷或異常,則可中斷工作201的執 行,並執行可以是諸如該作業系統的一部分之中斷常式 202。中斷常式202包含複數個指令220至225。這些指 令被循序地處理。在處理了中斷常式202的最後一個指令 225之後,接續在發生中斷的指令212之後的指令(在上 述例子中為指令213)上繼續對工作201之處理。 中斷常式202可修改處理器101的暫存器102至 105之内容。為了保證工作201在發生中斷或異常之後可 不管該中斷或異常而正確地工作,暫存器102至105之内 容被複製到系統記憶體104中之儲存位置。在繼續執行工 作201之前,該儲存位置的内容被讀回到暫存器102至 105。因此,當執行指令213而繼續執行工作201時,暫 存器102至105可包含如同在指令212之後將立即執行 指令213 —般的實質上相同之資料。 在根據現階段最高技術的電腦系統100中,被實施 為電腦系統100的該作業系統的一部分之中斷常式202 中之指令完成將該等暫存器的複製到該儲存位置及將該儲 存位置的内容複製回該等暫存器。因此,如果電腦系統100 6 94344 200905566 中提供了額㈣處驾,㈣ 求保證:如果在該等處理器的任何處能被要 常,則該等處理器的内容被正確地儲存在系^ 2或異 且該内容在該中斷常式結束之後被讀回到該等暫存中, 理器中之料^作的執行馳 便將個別處 的雷腦备站由,丄 在根據現階段最高技術 h W統中’係由作f系統執行對該等處理器中之 配上行緒的執行以及對將各程式及(或)執行緒分 酉己、,、。該核理器之控制。除了 f要根據複數個處理器的存 在而調整作業系統之外,對程序及(或)執行緒的執行之 :制可^在產生及(或)控制程序及(或)執行緒時需要 車父大的管理負擔(overhead)。尤其在呼叫作業系統常式之 前將該等處理器的暫存器之内容複製到儲存位置以及在該 作業系統常式終止之後將該儲存位置之内容讀回該等暫存 器時’可能產生相當大的管理負擔。 V. 根據現階段最高技術的電腦系統100之問題在於: 在作業系統的製造商實施了對電腦系統100中提供的額 外的處理器或任何其他可能裝置的支援之前,可能無法合 理地使用該等額外的處理器。 根據現階段最高技術的電腦系統100之另外的一問 題在於:利用作業系統執行的對程序及(或)執行緒之產 生及(或)控制的較大之管理負擔可能降低了電腦系統100 的效能,尤其在使用較細粒(fine grain )的多工及(或) 多緒執行(multithreading )時更是如此。 7 94344 200905566 料,縱然在提供了對多個處理器的支援的根據現階 段最高,術之電腦系統中,可能希望對作業系統隱藏額外 的處理益或特徵。額外的處理器或特徵也可能包含作業系 統孙道的額外的硬體及(或)處理器。因此,根據現階 段最南技術的電腦系統之另外的一問題在於:該電腦系統 可叫難以使用諸如作業系統不知道的處理器或硬體等的額 外的資源。 本㈣之揭㈣有關可避免或至少減輕前文所述的 一個或多個問題的影響之各種系統及方法。 【發明内容】 下文巾提供了本發明的簡化摘要,以便提供對本發明 =某f態様的基本了解。該摘要並不是本發明的徹底的概 目的並不是朗本發__性或緊要的元件,也 不疋描逑本發明的範圍。其唯一目的只是以簡化的形式提 供某些觀念,作為將於後文中提供的更詳細的說明之前言。 w Μ ^據H關H包含主控處理11及至少一個 徒屬處理器。該主控處理器之狀態包含第-複數個變數 由該主控處理^^包/声第二複數個變數。該系統包括 式、以及二處理器處理資料的平行作業模 ,資料的序列作f模式。嗲李 =態被設定成在該平行作業模式中發生中斷或異;; 的至少-邻八^弟—複數個變數及該第二複數個變數 序列作業模Π 憶體;以及將該系統切換到該 ”;"糸統之組態被進一步設定成:若該從屬 94344 8 200905566 處理器中發生中斷或異常,則將該第—複數個變數中之至 少-個變數設定為該第二複數個變數中之至少一個變數的 值。 根據另-個顯示範例,系統包含主控處理器及至少一 個從屬處理器。該主控處理器之狀態包括其中包含第一返 回位址之第-複數個變數,且該從屬處理器之狀態包括= 中包含第二返回位址之第二複數個變數。該系統包括由該 ,主控處理器及該從屬處理器處理資料的平行作 及由該主控處理器處理資料的序列作業模式。該系統包含 跳轉(iramp〇line)指令。該系統之組態被設定成在該平行 作業模式期間於該主控處理器中發生中斷或異常時執行下 步^將該第-返回位址及該第二複數個變數儲存到緩 、己體’以該跳轉指令的位址取代該第一返回位址以 ,切換到該序列作業模式。該系統之組態被進-步設定成.. 该平订作#模式㈣於職屬處理ϋ巾發生巾斷或異常 步驟:將該第—複數個變數及該第二複數個變 儲存到緩衝記憶體,·將該第一複數個變數中 隻數設定為該等第二變數中之5小你個 ==的位址取代該第_返回位址;以及切換到該第 =作指令適於執行下列步驟:將該系統切換到 '、式,以及如果在該主控處理器中發生中斷赤 ^吊’則自該緩衝記憶體讀取該第二複數及二 ^位址。該跳轉指令進—步適於執行下列步驟= 、、苑切換到卿行作業模式;自該缓衝域體讀取該第= 94344 9 200905566 數個變數;將該第二複數個變數 姑笙一、卜去嫩▲丄 〒之至>、一個變數設定為 該弟-複數個艾數中之至少一個變數的值 至少-個從屬處理器中發生中斷及如果在該 體讀取該第-複數個變數。戈異吊則自該緩衝記憶 ,據另外的顯示範例,揭示了—種操作包含主控處理 裔及至少-個從屬處理器的系統之方法,魅控處理考之 狀複數個變數,且該從屬處理器之狀態包;第 :=個:數,該系統包含由該主控處理器及該從屬處理 貧料的平行作#模式、以及由該從屬處理器處 料的序列作業模式’該方法包含下列特徵。如果在該平行 作業模式中發生中斷或異常,則執行下列步驟··將該第— 稷數個變數及該第二複數個變數中之至少一部分儲存到緩 衝吞己憶體:以及將該系統切換到該序列作業模式。如果在 個從屬處理器中發生中斷或異常,則將該第一複 3C數中之至少-個變數設定為該第二複數個變數 至少一個變數的值。 【實施方式】 下文t將說明本發明的各實施例。為了顧及說明的产 晰說明書中將不說明實際實施例的所有特徵。當然, 我們當了解,在任何此種實際實施例的開發過程中,必須 =出許多與實施例㈣的決定,以便達簡發者的特定目 諸如符合與系統相關的及與商業相關的限制條件, 該等限制將隨著各實施例而有所不同。此外,我們當了解, 雖然此種開發的工作可能是㈣且耗時的,但是此田種開發 94344 10 200905566 , 工作仍然是對此項技術具有一般知識者在受益於本發明的 揭示後所從事的日常工作。 現在將參照各附圖而說明本發明之標的内容。只為了 解說之用,而在該等圖式中以示意圖之方式示出各種結 構、系統、及裝置,以便不會以熟習此項技術者習知的細 節模糊了本發明之揭示。然而,談等附圖被加入,以便描 述並解說本發明揭示之各例子。應將本說明書所用的字及 辭彙了解及詮釋為具有與熟習相關技術者對這些字及辭彙 〆' '所了解的一致之意義。不會因持續地在本說明書中使用一 術語或辭彙,即意味著該術語或辭彙有特殊的定義(亦即 與熟習此項技術者所了解的一般及慣常的意義不同之定 義)。如果想要使術語或辭彙有特殊的意義(亦即與熟習此 項技術者所了解的意義不同之意義),則會將在本說明書中 以一種直接且毫不含糊地提供該術語或辭彙的特殊定義之 下定義之方式明確地述及該特殊的定義。 根據一個實施例,提供了一種包含主控處理器及至少 一個從屬處理器之電腦系統。雖然在某些實施例中,該電 腦系統可包含單一的從屬處理器,但是在其他實施例中, 可提供複數個從屬處理器。該電腦系統包含由主控處理器 及至少一個從屬處理器處理資料的平行作業模式。在電腦 系統包含複數個從屬處理器之實施例中,每一個從屬處理 器或該等從屬處珪器的一部分可在該平行作業模式中同時 執行一些指令。因此,在該平行作業模式中,可在該主控 處理器及該等從屬處理器中同時執行複數個工作,以便改 11 94344 200905566 .善該電腦系統之效能。在某些實施例中 可以是該電腦系統提供只有單— μ序列作業模式 之相容模式。 &自的先前機型的功能 該主控處理器的狀態包含可代表該主 存器的内容之複數個變數。同樣地,每=理器的暫 ,可包含可代表該從屬處理器之暫存器的:容:理器的狀 數、及(或)用來指示該從屬處理器是否目&硬數個變 令之運行狀態位元。在該主控處理器及指 中,個別處理器的該複數個變數中之° 4從屬處理器 器於沒有中斷或異常時用來繼續指令執^可包合該處理 如,可在該等個別處理器的該等暫存器中丁之芯二中, 供該返回位址。 暫存态中提 變數適於將該主控處理器的該複數個 :個或夕個魏的值寫到該等從屬處理哭中之一 缝屬處理器的該複數個變數中之一個或多個變數。因 1屬:t由該從Γ理器開始執行執行绪之前,先建立該 3處理盗之爹數。可利用可接收將要開始指令執行的從 屬處理盗的識別號碼以及要開始指令執行時作為引數 (a—rgument)的目標位址之分又指令(f〇rkinst_開 始每-仗屬處理器上之指令執行。可利用從屬聯合指令 jslave j0in instructi〇n)停止從屬處理器上的執行緒之執 行。如果在從屬處理器執行的指令序列中發生從屬聯合指 :’則該從屬處理器將停止指令的執行。可將主控聯合指 7 (master join instruction)用來執行該主控處理器與該等 94344 12 200905566 •從屬處理器中之—個從屬處理器間之同步。係以被用來作 為引數的從屬處理器之識別號碼哞叫該主控聯合指令。如 ,在該主控處理器執行的指令序财發生該主控聯合指 7則該主控處理器將等候到該主控聯合指令的引數中指 ^該從屬處理器中之指令的執行終止為止。該電腦系統 進:步包含適於將該等從屬處理器中之—個從屬處理器的 u複,個 < 數巾之-個或多個變數的值寫,到該主控處理器 (的該復數個變數中之一個或多個變數之變數接收指令。可 T該變數接收指令用來接收其中包含該從屬處理器中之工 彳的執行結果的緩衝記憶體之結 因此,在該電腦系統中,可以4=之方式在該主 =理盗及該等從屬處理器中執行程序及(或)執行緒。 ^相料指令時,可以獨立於在該電_統上運行 ^乍業祕之方·始及停止該等從屬處㈣中之一個或 夕個從屬處理器中之工作的執行。 1中發::::::統Γ態設定成:若在該平行作業模式 理;該主控處理器及該等從屬處 v 刀儲存到缓衝記憶體,將該 二:先切換到該序列作業模式。尤其可儲存諸如 =機型中不存在的暫存器之内容等的該等從屬處理器 適於儲存舍入罝一步Γ 無須使該作業系統 卢挪處理器的電腦系統中並未被使用的從屬 f及主控處理器之變數。因此, 系統與包含單—處理⑽先職㈣之相额,且可= 94344 13 200905566 . 於該先前機型的作業系統用於該電腦系統。 若在從屬處理器中發生了中斷或異常,則可將該主控 處理器的該複數個變數中之至少一個變數設定為發生了= 中斷或異常的該從屬處理器的該複數個變數中之至少一個 變數的值。因此,可將該從屬處理器的各變數傳送到該作 業系統’而該作業系統可自該主控處理器讀取與該作業系 統執行的中斷常式相關之資料。 , 该電腦系統可進一步包含跳轉指令。該跳轉指令可適 '於自該緩衝記憶體讀取於中斷或異常時被儲存的該等從屬 處理器及或有的該主控處理器之那些變數。此外,該跳轉 指令可適於將該電腦系統自該序列作業模式切換到該平行 作業模式。若在從屬處理器中發生中斷或異常,則該跳轉 指令可將該情或異常發生時被設定為該從屬處理器的各 變數的值之該主控處理器的那些變數寫到該從屬處理器的 該等變數。可在自該緩衝記憶體讀取該主控處理器的該等 、 原始變數之前,先執行上述步驟。 若發生了中斷或異常,則可以該跳轉指令之位址取代 該主控處理盗之返回位址。因此,在該中斷常式終止之後, 自動地呼叫該跳轉指令。因此,可以獨立於該作業系統之 方式處理包含單-處理器的電腦系統中不存在的從屬處理 器及(或)主控處理器之變數。此種方式可以對作業系統 透通之方式使用該電腦系統的該平行作業模式。因此,實 質上不需要調整該作業系統,即可使用該電腦系統的該平 行作業模式。 94344 14 200905566 . 第2a圖示出根據一個實施例的電腦系統300之示 意圖。電腦系統300包含主控處理器301以及從屬處理 器321、331。然而,本發明並不限於第2a圖所示的提供 兩個從屬處理器之實施例。在其他實施例中,可提供三個 或更多個從屬處理器。在另外的實施例中,電腦系統300 可包含單一從屬處理器。此外,本發明不限於從屬處理器 321、331是一般用途處理器之實施例。在其他實施例中, 從屬處理器321、331可包含特殊功能的硬體。 電腦系統300可進一步包含系統記憶體304及輸 入/輸出裝置303。箭頭314示意地指示主控處理器 301、從屬處理器321、331、系統記憶體304、與輸入/ 輸出裝置303間之資料傳輸。 主控處理器301包含複數個暫存器302至307。在 某些實施例中,該複數個暫存器302至307可包含其中可 包含諸如暫存器302至305之第一子集,以及其中可包含 ^ 暫存器306、307之第二子集。該第一子集之暫存器302 至305可對應於根據現階段最高技術的電腦系統中之處 理器的各暫存器,例如,對應於前文中參照第la至lb圖 所述的電腦系統100中之處理器101的暫存器102至 105。主控處理器301之組態可進一步被設定成:在電腦 系統300的序列作業模式中提供其中包含根據現階段最 高技術的處理器101的指令集之指令集。因此,在該序列 作業模式中,電腦系統300可執行提供給根據現階段最高 技術的電腦糸統10 0之二進位碼。 15 94344 200905566 , 如將於下文中更詳細說明的,可將該第二子集之暫存 器306、307用來處理與主控處理器301及從屬處理器 321、331中之資料的平行處理相關聯之資料傳輸。 與主控處理器301類似,第一從屬處理器321可包 含複數個暫存器322至325,且第二從屬處理器331可包 含複數個暫存器332至335。在某些實施例中,從屬處理 器321、331之暫存器322至325、332至335可對應於 主控處理器301之該第一子集的暫存器302至305。在暫 f ' 存器302至307、322至325、332至335的每一暫存器中, 可儲存代表主控處理器302、第一從屬處理器321、及第 二從屬處理器331的狀態之變數。 在某些實施例中,可使主控處理器301及從屬處理 器321、331中之每一處理器適於提供熟悉此項技術者習 知的x86或x86_64類型的處理器之功能。在其他實施例·· 中,可將主控處理器301及從屬處理器321、331中之每 一處理器之組態設定成提供不同類型的處理器之功能。在 另外的實施例中,可使主控處理器301適於提供與從屬處 理器321、331的類型不同的一類型的處理器之功能。 在一個實施例中,可使主控處理器301適於提供現 有作業系統支援的處理器類型之功能,例如,提供x86或 X86-64處理器之功能,且從屬處理器321、331可以是無 須被該作業系統支援的不同類型之處理器。例如,從屬處 理器321、331可包含簡化架構,以便將從屬處理器321、 331所佔用的晶粒面積最小化。此種方式可有助於增加電 16 94344 200905566 . 腦系統300的從屬處理器32卜331之數目,以便增強電 腦系統300之效能。此外,從屬處理器321、331的簡化 架構可增加從屬處理器321、331的時脈速率,因而增加 了每一個別從屬處理器之工作速度。 在某些實施例中,在單晶粒上提供主控處理器301、 以及從屬處理器321、331中之一個或多個從屬處理器。 在其他實施例中,可在不同的晶粒上提供主控處理器301 以及從屬處理器321、331。 主控處理器301可包含指示器位元308以及控制 暫存器位元309。指示器位元308可以是架構上看不到的 位元,用以指示電腦系統300目前正在可由主控處理器 301處理資料的序列作業模式或可由主控處理器301及 從屬處理器321、331中之一個或多個從屬處理器處理資 料之平行作業模式中運行。控制暫存器位元309可指示是 否容許該平行作業模式。如果控制暫存器位元309被設定 4 為例如值“開”等的第一值,則程式可在電腦系統300的 該平行作業模式中運行。然而,如果控制暫存器位元309 被設定為例如值“關”等的第二值,則只可在該序列作業 模式中使用電腦系統300。 與主控處理器301類似,從屬處理器321、331中 之每一從屬處理器可包含指示器位元及控制暫存器位元。 在第2a圖中,代號328、338表示從屬處理器321、331 之指示器位元,且代號329、339表示從屬處理器321、 331之控制暫存器位元。在其他實施例中,從屬處理器 17 94344 200905566 321、331無須包含指示器位元328、329。在這些實施例 中,可將主控處理器301之控制暫存器位元309用來指 示容許電腦系統300的平行作業模式,且可將主控處理器 301之控制暫存器位元309用來指示電腦系統300正處 於平行作業模式中。 第一從屬處理器321可進一步包含運行狀態位元 330。運行狀態位元330指示第一從屬處理器321目前是 否正在運行或從屬處理器321是否被停止了。例如,運行 狀態位元330之值“開”可指示第一從屬處理器321目 前正在運行,且運行狀態位元330之值“關”可指示第一 從屬處理器321被停止了。與第一從屬處理器321類 似,第二從屬處理器331亦可包含運行狀態位元340。 在系統記憶體304中,可提供緩衝記憶體313。如 將於下文中更詳細說明的,若在電腦系統300處於該平行 作業模式時發生了一中斷或異常,則可將主控處理器的暫 存器302至307的一部分或全部之内容、從屬處理器 321、331的暫存器322至325、332至335的一部分或全 部之内容、以及諸如指示器位元308、328、338、控制暫 存器位元309、329、339、及(或)運行狀態位元330、 340的值等的進一步資訊儲存在在緩衝記憶體313中。若 正在電腦系統300中執行多工,則可為每一程序而分配個 別的緩衝記憶體。 在某些實施例中,可自將使用電腦系統300的該平 行作業模式的一程式之程式碼呼叫中央處理單元(CPU) 18 94344 200905566 驅動常式,而分配緩衝記憶體313。可使該CPU驅動常 式適於分配足以儲存暫存器302至307、322至325、及332 至335、以及前文所詳述之或有的進一步資訊的内容的容 量之記憶體區域。在某些實施例中,可在將不會被作業系 統交換到諸如硬碟等的大量儲存裝置之非分頁系統記憶體 庫(non-paged pool system memory)中提供缓衝記憶體 313。在某些電腦系統300中,只可由CPU驅動常式執 行該非分頁系統記憶體中之記憶體的分配。 有利之處在於:在該非分頁系統記憶體庫中分配缓衝 記憶體313之方式可有助於確保缓衝記憶體313將一直 是保持在實體記憶體的狀態,且不會發生分頁錯誤。此種 方式較易於利用不可分割的作業(at〇mic 〇perati〇n )對 缓衝g己憶體313進行第二複數個暫存器309至312的内 谷及或有的進一步資料之分別寫入及讀取。.因此,可有利 地避免在將資料寫到緩衝記憶體313時碰到中斷或異常 而可能發生的錯誤。 將該CPU驅動常式之組態設定成返回緩衝記憶 313之記憶體位址。在某些實施例中,該記憶體位址可 以疋虛擬位址。此種方式可有助於將在電腦系統300上運 行的所有程序相互隔離,且可能要求每一程序使用獨立的 °己匕、體分頁°如果緩衝記憶體313的分配是不可行的,例 如如果非分頁記憶體區域中沒有可供使用的記憶體,則 該CPU驅動常式可指示失敗。 在某些實施例中’用來分配緩衝記憶體313的該 19 94344 200905566 ,==:式可以是處理器供應商可能提供白勺CPU驅 第二咖用來釋出缓衝記憶趙313之 =式可在開機期間被作業系統載入,且提 電=。上運行的程式可執行之功能。因此= -作業㈣之程式可㈣用來分配 ^第 f之該等CPU驅動常式。㈣讀尤隐體313 電:系統300可包含起動指令, 300之該平行作章 〜初电細糸統 的諸如虛擬位址等的:^指令接收緩衝記憶體阳 收跳轉指令的位址。φ _ 异疋,且該起動指令接 些實施例中,主 1糸統300提供該跳轉指令。在某 下文中更詳細&理器301可提供該跳轉指令。如將於 跳轉指令用來恢==在完成了中斷常式之後,通常將該 ‘至335的-,暫存器302至307、322至325、及332 之程式中提^或全部之内容。可在使用該平行作業模式 程式_提供的^铫轉指令,且該跳轉指令的位址可以是該 可將電轉指令的記憶位置之指標。 被呼叫,則執'矻3⑽之組態設定成:如果該起動指令 器位元301&1'下列步驟。電腦系統300可檢查控制暫存 平行作業模式,果控制暫存器位元309指示不容許使用該 不執行任何壤、彳該起動指令將產生非法指令錯誤,且將 暫存器302 5 步的步驟。否則,可將主控處理器301的 疋3〇7 的第二子集的暫存器306、307中之第 20 94344 200905566 • 一暫存器(例如,暫存器306) 位址,且可將暫存器3〇2 :又疋,、、緩衝記憶體313之 306、307 t之第二暫存器(例如 —子木的暫存器 跳轉指令之位址。在其他實施例中=㈣設定為該 的暫存器302至307中夕H J將主控處理器3〇1 θ存器用來儲在 313及該跳轉指令之位址。此外 謂存緩衝心隐體 器位元308以及或有的彳#属_ ^、、''先300可將指示 尺令的攸屬處理器321 元328、338設定為用來指示該電腦系统正處=器位 業模式之值。然後,電腦系統_ =统正處於該平行作 執行次一指令。 了在該平行作業模式中 在某些實_中,軸動指令之组 清除從屬處理器321、331之暫存器32〜2幻^=成 335。因此,可避免不同一 至 可有助於電腦系統_之安全。、貝訊的傳播,因而 電腦系統300可進—步包含適於將處 的暫存器302至307中之一侗弋夕乂* 工处里™ 301 屬處理器321、331 I或夕㈣存器的内容寫到從 中之一個從屬處理器的暫存哭322至 在苹此之—個或多個暫存器的變數傳;指令。 命、331之識別號碼、用夾 容將被傳送到從屬處^用來識別其内 暫存器之資斜、、31的主控處理器301的 321、33!的暫存==來識別其值將被狀的從屬處理器 子时之賁料,作為運算元。在一 可將該變數料指令之㈣狀成每次將主控 94344 21 200905566 . 的該等暫存器中之一個暫存器的内容傳送到從屬處理器 321、331中之一個從屬處理器,且用來識別主控處理器 301及個別從屬處理器321、331的暫存器之資料可包含 主控處理器301及從屬處理器321、331的個別暫存器之 識別號碼。 可將電腦系統300之組態設定成:如果該變數傳送 指令被呼叫,則執行下列步驟。電腦系統300可檢查指示 器位元308。如果指示器位元308指示電腦系統300並 非處於平行作業模式,則該變數傳送指令將產生非法指令 錯誤,且將不執行任何進一步的步驟。否則,可檢查主控 處理器301是否執行該變數傳送指令。如果從屬處理器 321、331中之一個從屬處理器執行該變數傳送指令,則產 生非法指令錯誤,且將不執行任何進一步的行動。否則, 將該變數傳送指令的運算元中指定的主控處理器301的 暫存器302至307中之一個或多個暫存器的内容寫到被指 定的從屬處理器321、331之被指定的暫存器。然後,電 W - 腦系統300可執行次一指令。 電腦系統300可進一步包含適於將從屬處理器 321、331中之一個從屬處理器的暫存器322至325、332 至335中之一個或多個暫存器的内容寫到主控處理器 301的暫存器302至307中之一個或多個暫存器之變數接 收指令。該變數接收指令可接收將自其接收變數的從屬處 理器321、331之識別號碼、用來識別其内容將被讀取的 從屬處理器321、331的暫存器之資料、以及用來識別其 22 94344 200905566 值將Ϊίΐ的主控處理器301的暫存器之資料,作為運算 ^ 。欠數傳送指令類似,用來識別該等暫存次 控處理器⑽號碼、以及主 丄的暫存盗之識別號碼。 指令:::==Γ態設定成:如果該變數接收 器位元柳。一驟。電腦系統300可檢查指示 「非處於平行作業模;:::::::=系統_並 錯誤,且將不執行任何進-步的曰々將產生非法指令 處理器301是否執行該錄备姑驟。否貝,J,可檢查主控 321、331中之— D夂接收指令。如果從屬處理哭 變數接料執㈣變數接«令,職 的行動。否則,將被指定^屬吳卢且將不執行任何進—步 定的一個或多個暫存哭之處理器321、331之被指 指定的暫存器。 内奋寫到主控處理器301之被 可將該變數傳送指令 控處理器30!與從屬處理器=數接收指令用來交換主 下文中更詳細說明的,尤、331間之資訊。如將於 屬處理器321、331由鬥’、σ '該變數傳送指令用來在從 功,之參數,且尤:^行绪之前先建立從屬處理器 了執行緒的執行之後錄其中=㈣收,令用來在完成 憶位置之結果值或指標。匕3 —個或多個結果值的記 電腦系統3〇〇可進一 + · 321、331中e + v L含適於啟動從屬處理器 中之個攸屬處理器的指令執行之分叉指令。該 94344 23 200905566 . 分叉指令可接收將開始指令執行的從屬處理器321、331 之識別號碼、以及將用來開始指令執行之目標位址,作為 運算元。 可將電腦系統300之組態設定成:如果該分叉指令 被呼叫,則執行下列步驟。電腦系統300可檢查指示器位 元308。如果指示器位元308指示電腦系統300並非處 於平行作業模式,則產生非法指令錯誤,且將不執行任何 進一步的步驟。否則,檢查主控處理器301是否執行該分 / . 叉指令。如果從屬處理器321、331中之一個從屬處理器 執行該分叉指令,則產生非法指令錯誤,且將不執行任何 進一步的行動。否則,將被指定的目標位址傳送到被指定 的從屬處理器321、331。從屬處理器321、331接收該目 標位址。在從屬處理器321、331中,運行狀態位元330、 340被設定為用來指示從屬處理器321、331正在運行之 值,且從屬處理器321、331在該目標位址上開始指令執 行。然後,可執行另外的指令。 k · 在某些實施例中,若於指令的運算元中指定的個別從 屬處理器321、331正在運行時,使用該變數傳送指令、 該變數接收指令、及(或)該分叉指令,則將產生不可預 測的結果。在這些實施例中,可改寫在該電腦系統上運行 的程式之程式碼,使上述的狀況不會發生。在其他實施例 中,如果在運算元中指定的從屬處理器321正在運行時, 呼叫該變數傳送指令、該變數接收指令、或該分叉指令, 則可使電腦系統300適於產生非法指令錯誤。 24 94344 200905566 電腦系統300可進一步包含適於停止從屬處理器 321、331中之一個從屬處理器的指令執行之從屬聯合指 令。從屬處理器321、331中之一個從屬處理器可執行該 從屬聯合指令,且可在執行該從屬聯合指令的從屬處理器 上停止指令執行。更具體而言,可將電腦系統300適於在 該從屬聯合指令被呼叫時執行下列步驟。電腦系統300可 檢查指示器位元308。如果指示器位元308指示電腦系統 300並非處於平行作業模式,則產生非法指令錯誤,且將 不執行任何進一步的步驟。否則,檢查從屬處理器321、 331中之一個從屬處理器是否執行該從屬聯合指令。如果 並非在從屬處理器321、331上執行該從屬聯合指令,則 產生非法指令錯誤,且將不執行任何進一步的行動。否則, 將運行狀態位元330設定為用來指示從屬處理器321、 331並不正在運行且可停止從屬處理器321、331上的指 令執行之值。 電腦系統300可進一步包含適於使主控處理器301 保持等候直到從屬處理器321、331中之一個從屬處理器 上的指令執行停止了為止之主控聯合指令。該主控聯合指 令可接收主控處理器301必須等候的從屬處理器321、 331中之一個從屬處理器的識別號碼,作為運算元。 可將電腦糸統3 0 0之組態設定成:如果該主控聯合 指令被呼叫,則執行下列步驟。電腦系統300可檢查指示 器位元308。如果指示器位元308指示電腦系統300並 非處於平行作業模式,則產生非法指令錯誤,且將不執行 25 94344 200905566 任何進-步的步驟。否則,檢查主控處理器則是 聯合指令。如果主控處理器則並不執行該主控聯 。曰7 ’則產生#法齡錯誤,且將不執行任何進一步的 ,檢查該主控聯合指令的運算元中指定的從屬 二;/ 331之運行狀態位元330、340是否指示個 別的仗屬處理器321、331正在運行。然後,主控處理器 字等候到運行狀態位元330、340被設定為用來指示 =處理器321、331不再運行之值為止。然後,可在接 、·貝在主控聯合指令之後的指令上繼續主控處理器301中 之指令執行。 在其他實施财,該主控聯合指令可檢查該等個別的 從屬處理器32卜331是否仍然在運行中。 合指令可在諸如主控處理器則的暫存器地至307 ^ 之-暫存H㈣架構上可看見之暫存^ t相該結果。在 電腦系統·上運行_式然後可將該狀態用來決定進 :步的作業。因此,主控處理器可檢查該等個別的從 屬處理盗32卜331之運行狀態,,然後繼續程式的執行。 在^些實施例中,該主控聯合指令的進—步之特徵可類似 於兩文所述的其他實施例的那些指令之特徵。 可將該從屬聯合指令及該主控聯合指令用來同步在 主控處理H 301及從屬處理器321、331中運行的執行 緒。該主控聯合指令可精確地指定從屬處理器321、331中 之-個從屬處理器。因此’在程式的執行期間,不需要所 有執行緒的共同聯合點,即可在不同的時點將該不=從屬 94344 26 200905566 , 處理器中運行的執行緒同步。因此,可得到較大程度的彈 性。 本發明不限於提供相互不同的主控聯合指令及從屬 聯合指令之實施例。在其他實施例中,可提供單一的聯合 指令。當該聯合指令被呼叫時,即檢查是在主控處理器301 中或在從屬處理器321、331的一個從屬處理器中執行該 聯合指令。如果是在從屬處理器321、331的一個從屬處 理器中執行該聯合指令,則執行與前文中針對該從屬聯合 指令所述之那些步驟對應的步驟。相反地,如果是在主控 處理器301中執行該聯合指令,則可執行與前文中針對該 主控聯合指令所述之那些步驟對應的步驟。 如前文所述,電腦系統300可進一步包含跳轉指 令。在完成了中斷常式之後,可將該跳轉指令用來恢復主 控處理器301的暫存器302至307以及從屬處理器 321、331的暫存器322至325、332至335的一部分或全 部之内容。 κ ' 可使該跳轉指令適於執行下列步驟:如果在主控處理 器301中發生中斷,則將電腦系統300切換到該平行作 業模式;以及自缓衝記憶體313讀取暫存器322至325、 332至335之内容以及主控處理器301之返回位址。此 外,可自該緩衝記憶體讀取暫存器302至307中之第二子 集的暫存器306、307之内容。 可使該跳轉指令進一步適於執行下列步驟:如果在從 屬處理器321、331中之一個從屬處理器中發生中斷或異 27 94344 200905566 . 常,則將電腦系統300切換到該平行作業模式;自該緩衝 記憶體讀取從屬處理器321、331的暫存器322至325、 332至335之内容;將該主控處理器的暫存器302至307 中之一個或多個暫存器的内容寫到發生該中斷或異常的從 屬核心321、331之各暫存器;以及自該緩衝記憶體讀取 主控處理器301,的暫存器302至307之内容。 在某些實施例中,可將電腦系統300之組態設定 成:若該跳轉指令被呼叫,則執行下列步驟。電腦系統300 r 可檢查控制暫存器位元309。如果控制暫存器位元309指 示不容許使用電腦系統300的該平行作業模式,則將產生 非法指令錯誤。否則,可自主控處理器301的暫存器302 至307中之一個暫存器讀取緩衝記憶體313之位址。在 某些實施例中,可自主控處理器301的暫存器302至307 •中之第一子集的暫存器302至·305中之一個暫存器(例 如,自暫存器305 )讀取鍰衝記憶體313之位址。 '然後,電腦系統300可自緩衝記憶體313讀取造成 中斷或異常的處理器之識別號碼。在某些實施例中,主控 處理器301可具有識別號碼0,第一從屬處理器321可 具有識別號碼1,且第二從屬處理器331可具有識別號碼 2。在提供不同於2的數目的從屬處理器之實施例中,每 一個從屬處理器可具有大於零的自然數之識別號碼,且主 控處理器301可具有識別號碼0。在另外的實施例中,可 使用處理器301、321、331的不同之編號體系。電腦系統 300然後可自該識別號碼決定是由主控處理器301或是 28 94344 200905566 , 由從屬處理器321、331中之一個從屬處理器造成該中斷 或異常。 如果因處理器識別號碼等於零而指出是由主控處理 器301造成該中斷或異常,則電腦系統300可自緩衝記 憶體313讀取第一從屬處理器321的暫存器322至325 以及第二從屬處理器331的暫存器332至335中之每一 暫存器的内容。此外,可自缓衝記憶體313讀取主控處理 器301的暫存器302至307中之第二子集的暫存器 306、307之内容。此外,可自該緩衝記憶體讀取主控處理 器301之返回位址。在某些實施例中,可將該主控處理器 之該返回位址寫到主控處理器301的該等暫存器中之一 個暫存器,例如,寫到暫存器302。此外,可自緩衝記憶 體313讀取從屬處理器321、331之運行狀態位元 330、340。在某些實施例中·,自緩衝記憶體313讀取的從 屬處理器321、331的暫存器322至325、332至335之 k 内容可包含從屬處理器321、331之返回位址。在其他實 施例中,可自緩衝記憶體313分別地讀取從屬處理器 321、331之返回位址。 然後,可交換主控處理器301的暫存器302.至307 中之第二子集的暫存器306、307中之一個暫存器的内容 (例如,暫存器306的内容)、以及用來讀取該緩衝記憶 體的位址之暫存器的内容(例如,暫存器305的内容)。 因此,將鍰衝記憶體313之位址寫到暫存器306,而暫存 器306可以是該起動指令用來儲存缓衝記憶體313的位 29 94344 200905566 . 址之暫存器。自緩衝記憶體313讀取的第二子集的暫存器 306、307中之另一暫存器(例如,暫存器307)可包含該 跳轉指令之位址。 然後,可將指示器位元308設定為用來指示電腦系 統300係處於該平行作業模式之值,例如,設定為值 “開”。因此,可將電腦系統300切換到該平行作業模式, 且可自從屬處理器321、331的每一從屬處理器中開始指 令執行,其中運行狀態位元330、340指示該等個別的從 屬處理器321、331之運行狀態。在主控處理器301中, 係在自緩衝記憶體301讀取的該返回位址上繼續指令的 執行。因此,可在電腦系統300的該平行作業模式中繼續. 被該中斷或異常打斷的程式之處理。 如果從屬處理器321、331中之一個從屬處理器造成 該中斷或異常,則可自緩衝記憶體313讀取第一從屬處理 器321的暫存器322至325及第二從屬處理器331的暫 存器332至335之内容、以及運行狀態位元330、340。 此外,可自缓衝記憶體313讀取主控處理器301的暫存 器302至307中之第二子集的暫存器306、307之内容。 第二子集的暫存器306、307中之暫存器307或在其他實 施例中之另一暫存器可包含該跳轉指令之位址。 然後,可將用來讀取該缓衝記憶體的位址的該等暫存 器中之一個暫存器的内容(例如,暫存器305的内容)寫 到可例如在缓衝記憶體313中提供的暫時性暫存器,且可 自緩衝記憶體313將造成該中斷或異常的從屬處理器 30 94344 200905566 , 321、331的對應的暫存器之内容讀取到暫存器305。例 如,如果第一從屬處理器321造成該中斷或異常,則可自 緩衝記憶體313將第一從屬處理器321的暫存器325 之被儲存的内容讀取到暫存器305。如果第二從屬處理器 331造成該中斷或異常,則可自緩衝記憶體313將第二從 屬處理器331的暫存器335之被儲存的内容讀取到暫存 器 305 〇 如將於下文中更詳細說明的,在完成了該中斷常式之 後,第一處理器301的其他暫存器302至304包含發生 該中斷或異常的從屬處理器321、331的各暫存器之内 容,其中該中斷常式可已經修改了該等暫存器中之某些暫 存器的内容。因此,在將發生中斷或異常的該從屬處理器 的對應的暫存器之内容寫到主控處理器301的暫存器 305之後,主控處理器301的第一子集的暫存器302至 305包含代表發生中斷或異常的該從屬處理器的對應的暫 存器的内容之資料,其中該中斷常式可已經修改了該等暫 fe:,- 存器中之某些暫存器的内容。 現在可將主控處理器301的第一子集的暫存器302 至305之内容寫到發生該中斷或異常的從屬處理器 321、331之暫存器。例如,如果在第一從屬處理器321中 發生該中斷或異常,則可將暫存器302至305之内容寫到 第一從屬處理器321之暫存器322至325。如果在第二從 屬處理器331中發生該中斷或異常,則可將暫存器302 至305之内容寫到第二從屬處理器331之暫存器332至 31 94344 200905566 . 335。因此,可將該中斷常式造成的暫存器内容之修改寫到 從屬處理器321、331之該等暫存器。 本發明並不限於將該主控處理器的暫存器302至307 中之第一子集的暫存器302至305的每一暫存器之内容複 製到造成中斷或異常的該從屬處理器的各暫存器之實施 例。在其他實施例中,可以只將第一子集的暫存器302至 305中已被中斷常式修改的某些暫存器之内容複製到該從 屬處理器。因此,可加速該跳轉指令的執行,這是因為只 f 須將較少量的資料自主控處理器301複製到從屬處理器 32卜33卜 在將主控處理器301的暫存器302至307的第一子 集的暫存器302至305中之一部分或全部的内容寫到造成 該中斷或異常的從屬處理器321、331的各暫存器之後, 可自缓衝記憶體313讀取主控處理器301的暫存器302 至307中之第一子集的暫存器302至305之内容,而該等 内容亦可包含主控處理器301之返回位址。此外,可將先 前被儲存到該暫時性暫存器的緩衝記憶體313之位址寫 到主控處理器301的該第二複數個暫存器中之一個暫存 器,例如,寫到暫存器306。因此,可恢復主控處理器301 在該中斷或異常之前的狀態。 然後,可將電腦系統300的指示器位元308及或有 的從屬處理器321、331的指示器位元328、338設定為 用來指示係在該平行作業模式中操作電腦系統300之 值,且可在從屬處理器321、331的每一從屬處理器中起 32 94344 200905566 動指令的執行,其中運行狀態位元330、340指示個別的 從屬處理器在該中斷或異常之前是正在運行中。此外,可 在主控處理器301的該返回位址上開始主控處理器301 中之指令執行。因此,可在電腦系統300中繼續程式的執 行。 可使電腦系統300適於以一不可分割的作業之方式 執行該跳轉指令的上述之步驟。因此,可有利地避免該跳 轉指令的執行期間因中斷或異常而造成的錯誤。 電腦系統300可進一步包含適於將電腦系統300 自該平行作業模式切換到該序列作業模式之結束指令(e n d instruction ) 〇為達到此一目的,電腦系統300可將指示器 位元308及或有的從屬處理器321、331的指示器位元 328、338設定為用來指示電腦系統300正在該序列作業 模式中操作之值。在一個實施例中,可將指示器位元308、 328、338設定為值“關”。 可使電腦系統300進一步適於在該平行作業模式期 間發生中斷或異常時執行下列步驟:將主控處理器301的 暫存器302至307及從屬處理器321、331的暫存器322 至325、332至335的内容之至少一部分、以及或有的從 屬處理器321、331的運行狀態位元330、340之值儲存 到緩衝記憶體313;以及將電腦系統300切換到該序列作 業模式。如果在從屬處理器321、331中之一個從屬處理 器中正在發生中斷或異常,則電腦系統300可額外地將該 主控處理器的暫存器302至307中之至少一個暫存器的内 33 94344 200905566 , 容設定為個別的從屬處理器的該等暫存器中之至少一個暫 存器的内容。因此,可以獨立於作業系統之方式儲存處理 器301、321、331的該等暫存器中之資料。如果在從屬處 理器321、331中之一個從屬處理器中正在發生中斷或異 常,則可將與作業系統的中斷常式有關之資料自從屬處理 器321、331寫到主控處理器301之各暫存器。因此,該 作業系統可處理這些資料,其中該作業系統無須考慮到從 屬處理器321、331是否存在。尤其無須使該作業系統適 於自從屬處理器321、331中之任何從屬處理器取得與中 斷常式的執行有關之貧料。 在某些實施例中,可將電腦系統300之組態設定 成:如果在指示器位元308被設定為用來指示電腦系統 300處於該第二作業模式中之值時,發生了中斷或異常, 則執行下列步驟。電腦系統300所執行的行動可取決於是 在主控處理器301中或是在從屬處理器321、331的從屬 處理器中發生中斷或異常。 ^ . . 如果正在主控處理器301中發生中斷或異常,則電 腦系統300可停止從屬處理器321、331中之指令執行。 在停止了從屬處理器321、331中之每一從屬處理器的指 令執行之後,電腦系統300可將從屬處理器321、331的 暫存器322至325、332至335之内容寫到缓衝記憶體 313,且可自主控處理器301的暫存器302至307的第二 子集的暫存器306、307中之一個暫存器(例如,自暫存 器306 )讀取緩衝記憶體313之位址。這些暫存器可包含 34 94344 200905566 ,從屬處理器321、331中之氣 址。此外,可將從屬處理的返回位 跡训健存到緩衝記軍331的運行狀態位元 指示從屬處理器321、331中之—魏怨位疋330、340 哭在執行指令。此外,可將^處理 -3〇1的識別號碼儲存到緩 处 在某些實施例中,奸處$”衝4體313。如剛文所述, 這此實施-tb 工處益301可具有識別號碼0。在 卜ΐ:;=,如果在主控處理器3。1中發生了中斷或ΐ =將讀朗號碼〇儲存職衝域體313。 處理器緩衝記憶體313的位址的主控 3〇6、307中之一J^e。2至3〇7的第二子集的暫存器 以是暫存器3二Μ 1器(在某些實施例中,該暫存器可 ,至307的第 、内谷與主控處理器301的暫存器302 内容交ϋΓΓ存器302至305中之一個暫存器的 、存器奶的内器30\的内容交換。其内容與暫 用來讀取緩%二存盗可以相同於該跳轉指令 芍记體313的位址之暫存器。 主控處理器3〇1的第一子集的暫存°器3⑽ '…於根據現階段最高技 可 可將適於在略/ j J处主炙皙存态組。因此, 的該處理器二3 〇 0中運行的根據現階段最高技術 常,則儲存mm m 了中斷或異 305之内容控處理器301的第一子集的暫存器3〇2至 常式之後t且在完成了係為該作業系統的—部分的中斷 U设弟一子集的暫存器302至305之内容。因 94344 35 200905566 盥-1=將匕3該緩衝s己憶體的位址的該暫存器之内容 換弟而確存器302至305中之一個暫存器之内容交 、而t保該緩衝記憶體的該位址衫成了該中斷常式之 暫存5 =處理器301的暫存器302至305中之一個 腦系,^300該位址可被該跳轉指令存取。此外,在電 行的条之S亥平行作業模式中,在電腦系統300中運 存哭,二可使用第一子集的暫存器302至305中之每一暫 式;^^衝㈣體313之錄⑽該平行作業模 中之—個暫存Γ。控處理器的第二子集的暫存器3〇6、3〇7 段最汽技扩的:。因此’可改善電腦系統3〇0與根據現階 ^技術的電腦系統100間之相容性。 第二子::器::1之暫存器302至3"之 313。然後,可褐取主控處理器=容^存到緩衝記憶體 :施例中’可自該第一子集:回在某些 ,,自暫存器302)讀取主控處理中二=暫存器(例 在儲存了主控處理器301的兮、301之該返回位址。 控處理器301的暫存? 位址之後’可以可自主 306、307中之—個暫存器(仓『如3,07耕的=二子集的暫存器 桃轉指令的位址取代主^理曰存器307)讀取的該 此,在完成了該作業系統:二3 〇 1、之該返回位址。因 被啤叫,以便恢復主控處理二=吊式,後,該跳轉指令 3〇6、307之内容、從屬處理;321的3第二子集的暫存器 至325、332至335 、331的暫存器322 之内谷、以及並未被該作業系統恢復 94344 36 200905566 , 的從屬處理器321、331之運行狀態位元330、340。從屬 處理器321、331之該等暫存器可包含從屬處理器321、 331中之每一個從屬處理器的返回位址。 如果正在從屬處理器321、331的其中一個從屬處理 器中發生中斷或異常,則可停止主控處理器301以及從屬 處理器321、331的每一個從屬處理器中之指令的執行。 在所有的處理器301、321、331中停止了指令的執行之 後,電腦系統300可將主控處理器301的暫存器302至 307中之每一個暫存器的内容儲存到缓衝記憶體313,且 可自主控處理器301的暫存器302至307的第二子集的 暫存器306、307中之一個暫存器(例如,自暫存器306) 讀取緩衝記憶體313之位址。此外,可將從屬處理器 321、331中之每一個從屬處理器的暫存器322至325、332 至335之内容以及從屬處理器321、331中之每一個從屬 處理器的運行狀態位元330、340之值儲存到緩衝記憶體 313。運行狀態位元330、340的值指示從屬處理器321、 331在發生該中斷或異常時正在運行。 然後,可將主控處理器301的暫存器302至307的 第二子集的暫存器306、307中用來儲存缓衝記憶體313 的位址之其中一個暫存器的内容寫到暫時性暫存器,而在 某些實施例中,可在緩衝記憶體313中提供該暫時性暫存 器。此外,可將發生中斷或異常的從屬處理器321、331之 識別號碼儲存在缓衝記憶體313。在某些實施例中,第一 從屬處理器321可具有識別號碼1,且第二從屬處理器 37 94344 200905566 . 331可具有識別號碼2。在這些實施例中,如果在第一從 屬處理器321中發生中斷或異常,則可將識別號碼1儲 存到緩衝記憶體313,且如果在第二從屬處理器331中發 生中斷或異常,則可將識別號碼2儲存到缓衝記憶體 313。從屬處理器321、331之該等暫存器可包含從屬處理 器321、331中之每一個從屬處理器的返回位址。 然後,可將發生中斷或異常的從屬處理器321、331 的該等暫存器之内容寫到主控處理器301的暫存器302 5 至307中之第一子集的暫存器302至305。如果在第一從 屬處理器321中發生中斷或異常,則可將第一從屬處理器 321的暫存器322至325之内容寫到主控處理器301之 暫存器302至305。同樣地,如果在第二從屬處理器331中 發生中斷或異常,則可將第二從屬處理器331的暫存器 3.32至335之内容寫到暫存器302至305。本發明不限於 將第一從屬處理器321或第二從屬處理器331的暫存器 322至325或332至335中之每一個暫存器的内容分別寫 到主控處理器301之對應的暫存器之實施例。在其他實施 例中,可以只將被作業系統的中斷常式修改的某些從屬處 理器之内容寫到主控處理器301之暫存器。 在該中斷常式中,作業系統將處理主控處理器301 的暫存器302至307中可對應於根據現階段最高技術的處 理器的暫存器組(例如,對應於前文中參照第la至lb圖 所述的現階段最高技術的處理器101之暫存器102至 105)之第一子集的暫存器302至305之内容。暫存器302 38 94344 200905566 . 至305之内容可包含與該作業系統有關的中斷或異常相 關之所有資訊,其中包括包含了與該中斷或異常有關的進 一步資訊之從屬處理器321、331的堆疊之記憶體位址。 在將發生中斷或異常的從屬處理器321、331的該等 暫存器之内容寫到主控處理器301的暫存器302至307 之後,主控處理器301之狀態可對應於主控處理器301 中若發生中斷或異常時所存在之狀態。因此,對該作業系 統而言,看起來猶如主控處理器301遭遇到了中斷或異 常。因此,縱然在使該作業系統適於只包含單一處理器的 電腦系統之實施例中,該作業系統也可處理該中斷或異常。 然後,可將主控處理器301的暫存器302至307的 第一子集的暫存器302至305中之一個暫存器(諸如暫存 器305,而暫存器305之内容相同於發生中斷或異常的從 屬處理器321、331的對應的暫存器之内容)妁内容寫到 緩衝記憶體313 (可自暫時性缓衝器擷取緩衝記憶體313 之位址),且可將緩衝記憶體313之位址寫到暫存器 %, · . 305。因此,可在主控處理器301的暫存器302至307的 第一子集的暫存器302至305中之一個暫存器中提供緩衝 記憶體313之位址,且在完成了該中斷常式之後,該作業 系統可恢復主控處理器301之狀態。 然後,可將主控處理器301之返回位址儲存在缓衝 記憶體313,且可用可自主控處理器301的暫存器302 至307的第二子集的暫存器306、307中之一個暫存器 (例如,自暫存器307)讀取的該跳轉指令的位址取代主 39 94344 200905566 . 控處理器301之返回位址。因此,可在完成該中斷常式之 後,執行該跳轉指令。 可用不可分割的作業之方式執行電腦系統300的該 平行作業模式期間發生中斷或異常時由電腦系統300執 行的上述步驟。如熟悉此項技術者習知的,因而可避免電 腦系統300執行該等步驟時出現中斷或異常。 在執行了上述的步驟之後,不論是否在主控處理器 301或從屬處理器321、331中之一個從屬處理器中發生 中斷或異常,電腦系統300都可將主控處理器301的指 示器位元308設定為用來指示電腦系統300係處於該序 列作業模式之值,例如,設定為值“關”。在此種方式下, 電腦系統300可被切換到該序列作業模式。然後,可執行 該作業系統之中斷常式。 在下文中,將參照第2b圖及第2c ··圖而說明電腦系 統300之作業,其中第2b圖示出在電腦系統300上運 行的程式400之示意流程圖,且第2c圖示出程式400 及中斷常式502之示意流程圖。 在電腦系統300的作業系統被載入之前,可先識別 主控處理器301及從屬處理器321、331。在某些實施例 中,可以硬體之形式提供將處理器指定為主控處理器301 或從屬處理器321、331中之一個從屬處理器。在這些實 施例中,在電腦系統300的整個使用壽命中,可使作為主 控處理器301或從屬處理器321、331中之一個從屬處理 器的指定保持不變。在其他實施例中,可利用軟體實現作 40 94344 200905566 . 為主控處理器301或從屬處理器321、331中之一個從屬 處理斋的指定。例如,可以電腦糸統3 0 0的基本輸入/輸 出系統(Basic Input/Output System ;簡稱 BIOS)識別主 控處理器301及從屬處理器321、331。在這些實施例中, 可藉由修改電腦系統300的BIOS設定值,而改變對該 等處理器的指定。 . j 在識別了主控處理器301及從屬處理器321、331 之後,電腦系統300的作業系統可被載入。當該作業系統 已啟動時,電腦系統300可處於該序列作業模式。因此, 主控處理器301可提供根據現階段最高技術的電腦處理 器之功能,例如,提供前文中參照第la至lb圖所述的電 腦系統100中之處理器101之功能。因此,電腦系統300 可與在某些實施例中可適於根據現階段最高技術的電腦系 統100之該作業系統協作。一旦該.作業系統在電腦系統 300中運行,即可啟動程式400。 在程式400之步驟401中,可分配系統記憶體304 ‘ ' 中之緩衝記憶體313,其方式係藉由呼叫為該目的而提供 之CPU驅動常式。然後,在步驟402中,可執行起動指 令,以便起動電腦系統300之該平行作業模式,且在步驟 403中,可將堆疊記憶體分配給將被從屬處理器321、331 執行的程式之各執行緒。可將熟悉此項技術者習知的記憶 體分配技術用來分配該堆疊記憶體。 在步驟404中,可執行第一複數個指令。可由主控 處理器301以一種序列之方式執行該第一複數個指令。因 41 94344 200905566 . 為主控處理器301可提供諸如前文中參照第la至lb圖 所述的處理器101等的根據現階段最高技術的處理器之 指令集,所以該第一複數個指令可包含亦可根據現階段最 高技術的該處理器執行之指令碼。因此,可利用適於提供 根據現階段最向技術的處理裔1 〇 1的程式碼之編譯益而 產生該第一複數個指令。因此,來自現有函式庫之程式碼 可被包含在程式400中。 在步驟405中,可一次或多次呼叫該變數傳送指 令,以便將資料傳送到第一從屬處理器321之暫存器322 至325。因此,可使第一主控處理器321準備執行程式 400之執行緒。在步驟407中,可將該變數傳送指令用來 將資料傳送到第二從屬處理器331之暫存器332至335, 以便使該第二從屬處理器準備執行程式400之另一執行 - 緒。本發明不限於先將資料傳送到第一從屬處理器321的 暫存器322至325且然後將資料傳送到第二從屬處理器 331之實施例。在其他實施例中,可在將資料傳送到第一 從屬處理器321的暫存器322至325之前,先將資料傳 送到第二從屬處理器331的暫存器332至335。 在步驟409中,可執行該分叉指令,以便開始執行 第一從屬處理器321中之指令。因此,在步驟410中, 第一從屬處理器321可執行第二複數個指令。在步驟.411 中,可將該分叉指令用來開始第二從屬處理器331中之指 令的執行。因此,在步驟412中,第二從屬處理器331可 執行第三複數個指令。然後,主控處理器301可執行第四 42 94344 200905566 . 複數個指令。電腦系統300可同時執行該第二複數個指 令、該第三複數個指令、及該第四複數個指令,其中談第 二複數個指令的執行、該第三複數個指令的執行、及該第 四複數個指令的執行構成了程式400之不同的執行緒。因 此,程式400的執行速度可比在前文中參照第1 a至1 b 圖所述的根據現階段最高技術的電腦系統100時加快。 在主控處理器301及從屬處理器321、331中之每 一處理器都適於提供特定類型的處理器的功能(例如,前 < 文中參照第la至lb圖所述的根據現階段最高技術的處 理器101的功能)之實施例中,該第二、第三、及第四複 數個指令之每一指令可包含適於在該個別類型的處理器中 執行之指令碼。例如,該第二、第三、及第四複數個指令 之每一個指令可包含適於在該x86或x86-64類型的處 理器中執行之指令碼。 在從屬處理器321、331是與主控處理器301不同 類型的處理器之其他實施例中,該第二複數個指令及該第 三複數個指令可包含特別適於在從屬處理器321、331中 執行的指令碼,而該第四複數個指令可包含特別適於在主 控處理器301中執行的指令碼。 在完成了其中包含該第二複數個指令的執行緒之 後,第一從屬處理器321可以執行該從屬聯合指令,以便 停止執行第一從屬處理器321中之指令(步驟415)。為達 到此一目的,可提供該從屬聯合指令作為該第二複數個指 令之最後的指令。同樣地,亦可提供該從屬聯合指令作為 43 94344 200905566 . 該第三複數個指令之最後的指令,因而在執行了該第三複 數個指令之後,停止執行第二從屬處理器331中之指令 (步驟423)。 在完成了該第四複數個指令的執行之後,主控處理器 301可在步驟414中執行該主控聯合指令,以便等候到第 一從屬處理器321完成了該第二複數個指令的執行為 止。接著,在步驟416中,主控處理器301可再執行該 主控聯合指令一次,以便等候到第二從屬處理器331完成 〔了該第三複數個指令的執行為止。 然後,主控處理器301可在步驟417、419中執行 該變數接收指令,以便分別自第一從屬處理器321及第二 從屬處理器331讀取該第二複數個指令及該第三複數個 指令所提供的執行緒之執行結果。在第2b圖中,代號418 指示第一從屬處理器321提供暫存器322至325之内 容,且代號420指示第二從屬處理器331提供暫存器 332至335之内容。 然後,主控處理器421可以序列之方式執行第五複數 個指令(步驟421)。與在步驟404中執行的該第一複數個 指令類似,該第五複數個指令可包含適於在諸如前文中參 照第la至lb圖所述的處理器101等的根據現階段最高 技術的處理器中執行之指令碼,而主控處理器301提供了 該根據現階段最高技術的處理器之功能。因此,該第五複 數個指令可包含適於提供根據現階段最高技術的處理器 101的程式碼的編譯器所產生之程式碼。 44 94344 200905566 , 在終止程式400的執杆& 步驟422中執行該结束#人W ’主控處理器則可在 到該序列作業模式。便將電腦系統細切換 前,先空出緩衝記憶體31 終止程式彻的執行之 供的,且可呼叫電腦系統3〇〇中提 15動吊式’而執行該步驟。 第2c圖示出程式、 32卜331及主控處理器3〇1 /及分別在從屬處理器 該第二滿赵彳° 中執行該第二複數個指令、 二: "、及該第四複數個指令時發生中斷或里 月形T可執行的中斷常式502之示意流程圖。" 在第2c目中,代號51〇'5ιι、5 =執行的該第四複數個指令之指令。代號:處 示被第一從屬處理器321齡的該第二複數 屬虚曰=指令’且代號510’’、511’’、512,,表示被第二從 屬處理器331處理的該第三複數個指令之指令。 於分別在主控處理器3〇1及從屬處理器Μ丨、Mi t執行該等指令51〇’、511,、512,之時點上,可能發生了 中斷或異常460。在該中斷或異常糊之後,系统可 ,行將主控處理器301的暫存器302 i 307及從屬處理 盗丨321、331的暫存器322至325、332至335之内容之 至少一部分儲存到緩衝記憶體313以及將電腦系統3〇〇 切換到該序列作業模式之步驟。如果在從屬處理器321、 331的一個從屬處理器中發生中斷或異常,則電腦系統 300可進一步將發生中斷或異常的從屬處理器321、331 的暫存态322至325或332至335中之至少一個暫存器 94344 45 200905566 . 的内容分別寫到主控處理器301的暫存器302至307的 第一子集的暫存器302至305中之至少一個暫存器。在第 2c圖中,以代號540指示發生中斷或異常時由電腦系統 300執行的行動。如前文中參照第2a圖所述的,當電腦 系統300處於該平行作業模式時,若發生中斷或異常,則 電腦系統300亦可執行進一步的行動。 然後,電腦系統300可執行中斷常式502之指令 520至525。中斷常式502可以是包含對電腦系統300的 f 該序列作業模式的支援且無須支援該平行作業模式的作業 系統之一部分。因此,中斷常式502可包含適於將該主控 處理器的暫存器302至307的第一子集的暫存器302至 305之内容儲存到系統記憶體304以及在中斷常式502 的執行終止時自系統記憶體304讀取第一子集的暫存器 302至305之内容之指令。此外,中斷常式502可修改主 控處理器301的暫存器302至307的第一子集的暫存器 302至305的一部分或全部之内容。 ^ ' 然而,中斷常式502無須適於儲存且恢復主控處理 器301的暫存器302至307的第二子集的暫存器306、 307之内容、第一從屬處理器321的暫存器322至325之 内容、第二從屬處理器331的暫存器332至335之内容、 以及從屬處理器321、331的運行狀態位元330、340之 值。在某些實施例中,中斷常式502可以是容許多工的作 業系統之一部分。尤其,可使中斷常式502適於執行可使 用電腦系統300的該平行作業模式之另一程式,其中暫存 46 94344 200905566 器306、307、322至325、332至335以及運行狀態位元 330、340的内容可被修改。因為在執行了中斷常式502的 最後的指令525之後,中斷常式502無須恢復暫存器 306、307、322至325、332至335以及運行狀態位元330、 340的内容’所以暫存器306、307、322至325、332至 335以及運行狀態位元330、340的内容可以不同於在執 行了程式400的指令512、512'、512"之後的該等暫存 器以及運行狀態位元之内容。 在完成了中斷常式502之後,電腦系統300執行該 跳轉指令550,這是因為已以跳轉指令550之位址取代了 可在其上執行中斷常式502的主控處理器301之返回位 址0 於執行跳轉指令550時,電腦系統300可執行前文 中參照第2a圖所述之步驟。在執行了該跳轉指令之後, 恢復處理器301、321、331的暫存器302至307、322至 325、332至335中之每一個暫存器以及運行狀態位元 330、340之内容,其中可適當地考慮中斷常式502對某 些暫存器所作的修改。 因此,雖然電腦系統300的作業系統(尤其是中斷 常式502)不適於儲存及恢復處理器301、32卜331的暫 存器302至307、322至325、332至335中之每一個暫存 器以及運行狀態位元330、340之内容,但是在執行了中 斷常式502之後,恢復了暫存器302至307、322至325、 332至335以及運行狀態位元330、340之内容。此外, 47 94344 200905566 ^ 可在電腦系統300的該序列作業模式下執行中斷常式 502。因此,不需要針對電腦系統300的該平行作業模式 而調適該作業系統。因此,根據本發明揭示的電腦系統300 提供了與為不支援從屬處理器321、331的存在的現有電 腦系統所設計的軟體間之高相容性。 在某些實施例中,電腦系統300可進一步包含第一 模式切換指令,用以將電腦系統300自該平行作業模式切 換到該序列作業模式。可使該系統適於執行在該第一模式 切換指令被啤叫時將主控處理器301及從屬處理器 32卜331的暫存器302至307、322至325、332至335的 至少一部分之内容儲存到缓衝記憶體313並將該系統切 換到該序列作業模式之步驟。如果從屬處理器321、331中 之一個從屬處理器執行該第一模式切換指令,則電腦系統 300之組態可額外地被設定成:將執行該第一模式切換指 令的從屬處理器321或從屬處理器331的暫存器322至 325或332至335中之至少一個暫存器的内容分別寫到 主控處理器301的暫存器302至307中之至少一個暫存 器。 在某些實施例中,電腦系統300之組態可設定成: 於執行該第一模式切換指令時,執行下列步驟,電腦系統 300可檢查指示器位元308是否被設定為用來指示電腦 系統300處於該平行作業模式之值。如果指示器位元308 指示電腦系統300係處於該序列作業模式,則產生非法指 令錯誤,且將不執行任何進一步的行動。電腦系統300執 48 94344 200905566 行之進一步的行動係取決於是由主控處理器301或是由 從屬處理器321、331中之從屬處理器執行該第一模式切 換指令。 如果是由主控處理器301執行該第一模式切換指 令,則電腦系統300可停止從屬處理器321、331中之指 令執行。在已停止了從屬處理器321、331的每一從屬處 理器中之指令的執行之後,可將從屬處理器321、331的 暫存器322至325、332至335之内容以及或有的從屬處 理器321、331之運行狀態位元330、340寫到緩衝記憶 體313,且可自主控處理器301的暫存器302至307的 第二子集的暫存器306、307之一個暫存器(例如,自暫 存器306)讀取緩衝記憶體313之位址。此外,可將主控 處理器301之識別號碼(在某些實施例中,該識別號碼可 以是號碼0)寫到緩衝記憶體313。 然後,可將其中包含緩衝記憶體313的位址的主控 處理器301的暫存器302至307的第二子集的暫存器 306、307中之一個暫存器之内容(例如,暫存器306之 内容)與主控處理器301的暫存器302至307的第一子 集的暫存器302至305中之一個暫存器之内容交換(例 如,與暫存器305之内容交換)。如前文所述,可將在電 腦系統300上運行的作業系統之組態設定成:若發生中斷 或異常,則處理主控處理器301之第一子集的暫存器302 至305。因此,暫存器305、306的内容之交換可有助於 保證該作業系統在發生中斷或異常之情形下將儲存並恢復 49 94344 200905566 , 緩衝記憶體313之位址。 然後,該電腦系統可將主控處理器301的第二子集 的暫存器306、307之内容儲存到緩衝記憶體313。如前 文所述,暫存器302至307的第二子集的暫存器306、307 中之一個暫存器(例如,暫存器307)可包含該跳轉指令 之位址。因此,於儲存暫存器306、307之内容時,可將 該跳轉指令之位址儲存到缓衝記憶體313。然後,電腦系 統300可將指示器位元308設定為用來指示該電腦系統 係處於該第二作業模式之值,例如,設定為值“關”。 如果從屬處理器321、331中之一個從屬處理器執行 該第一模式切換指令,則電腦系統300可停止主控處理器 301以及從屬處理器321、331中之指令的執行。在停止 了所有處理器301、321、331中之指令的執行之後,可將 主控處理器301的暫存器302至307之内容儲存到缓衝 記憶體313,且可自主控處理器301的暫存器302至307 的第二子集的暫存器306、307中之暫存器(例如,自暫 存器306)讀取缓衝記憶體313之位址。此外,可將從屬 處理器321、331的暫存器322至325、332至335之内 容以及或有的從屬處理器321、331的運行狀態位元 330、340之值儲存到緩衝記憶體313。 在某些實施例中,無須將執行該第一模式切換指令的 從屬處理器321、331之内容儲存到該緩衝記憶體。在這 些實施例中,只有將另一從屬處理器的暫存器之内容儲存 到緩衝記憶體313。因此,如果第一從屬處理器321執行 50 94344 200905566 該第一模式切換指令,則將第二從屬處理器331的暫存器 332至335之内容以及或有的除了從屬處理器321、331 以外在電腦系統300中提供的另外的從屬處理器的暫存 器之内容儲存到缓衝記憶體313。相反地,如果第二從屬 處理器331執行該第一模式切換指令,則該系統可將第一 從屬處理器321的暫存器322至325之内容儲存到緩衝 記憶體313。然而,在這些實施例中,可將運行狀態位元 330、340中之每一個運行狀態位元的值儲存到缓衝記憶體 313。 _ 然後,可將其中包含該缓衝記憶體的位址的主控處理 器301的暫存器之内容(例如,暫存器306之内容)儲 存到暫時性暫存器,且在某些實施例中,可在緩衝記憶體 313中提供該該暫時性暫存器。此外,可將執行該第一模 式切換指令的該處理器之識別號碼儲存到缓衝記憶··體 313。例如,如果由第一從屬處理器321執行該第一模式 切換指令,則電腦系統300可將識別號碼1儲存到緩衝 記憶體313。如果由第二從屬處理器331執行該第一模式 切換指令,則電腦系統300可將識別號碼2儲存到缓衝 記憶體313。在其他實施例中,可使用不同的識別號碼。 然後,可將執行該第一模式切換指令的從屬處理器 321或331的個別暫存器322至325或332至335之内 容分別寫到主控處理器301的暫存器302至307中之第 一子集的暫存器302至305。在某些實施例中,當將暫存 器322至325或332至335的内容寫到第一子集的暫存 51 94344 200905566 ,器302至305時,可覆寫主控處理器301的暫存器302 至307的第二子集的暫存器306、307之一部分或全部暫 存器的内容。 然後,電腦系統300可將主控處理器301的第一子 集的暫存器302至305中之一個暫存器的内容(例如,暫 存器305的内容)儲存到缓衝記憶體313。然後,可將該 暫時性缓衝器的内容寫到暫存器305。因此,緩衝記憶體 313之位址被儲存在暫存器中,且該作業系統在發生中斷 或異常時可處理該暫存器之内容。然後,可將指示器位元 308設定為用來指示電腦系統300係處於第一作業模式 之值(例如,設定為值“關”),以便將電腦系統300切換 到該序列作業模式。 在某些實施例中,可將電腦系統300之組態設定成 不可分割的作業.之方式執行前文所述之步驟,以避·免在執 行該第一模式切換指令期間因中斷或異常而造成之問題。 在執行了該第一模式切換指令之後,該電腦系統可在 該序列作業模式下執行一個或多個指令。在執行了前文所 述之起動指令或將於後文中更詳細說明的第二模式切換指 令之前,電腦系統300可保持在該序列作業模式中。例 如,電腦系統300可執行對電腦系統300的該作業系統 之呼口” 〇 電腦系統300可進一步包含第二模式切換指令,且 第二模式切換指令適於將電腦系統300自該序列作業模 式切換到該平行作業模式,並自緩衝記憶體313讀取處理 52 94344 200905566 ,器 30卜 321、331 的暫存器 302 至 307、322 至 325、332 至335的一部分或全部暫存器之内容、以及或有的從屬處 理器321、331的運行狀態位元330、340之值。如果從 屬處理器321、331中之一個從屬處理器先前執行了該第 一模式切換指令,則電腦系統300可額外地將主控處理器 3〇1的暫存器302至307中之至少一個暫存器的内容寫到 先前執行了該第一模式切換指令之從屬處理器321、331。 在某些實施例中,電腦系統300之組態可被設定成 於執行該第二模式切換指令時執行下列步驟。首先,電腦 系統300可檢查控制暫存器位元309。如果控制暫存器位 元309之值指示不容許電腦系統300的該平行作業模 式,則產生非法指令錯誤,且將不執行任何進一步的行動。 否則,電腦系統300可讀取用來指示先前執行了該第一模 式切換指令的處理器之識別號碼。電腦系統300所執行的 進一步之步驟可取決於是由主控處理器301或是由從屬 處理器321、331中之一個從屬處理器執行了該第一模式 切換指令。 如果是由在某些實施例中可以0值的指示器號碼指 示之主控處理器301執行了該第一模式切換指令,則電腦 系統300可自緩衝記憶體313讀取從屬處理器321、331 的暫存器322至325、332至335之内容、以及或有的運 行狀態位元330、340之值。此外,則電腦系統300可自 緩衝記憶體讀取主控處理器301的暫存器302至307的 第二子集的暫存器306、307之内容。然後,可將其中包 53 94344 200905566 .含該緩衝記憶體的位址的主控處理器301的暫存器302 至307的第一子集的暫存器302至305中之一個暫存器的 内容與第二子集的暫存器306、307中之一個暫存器的内 容交換,以便將缓衝記憶體313之位址儲存在第二子集的 暫存器306、307。在某些實施例中,可交換暫存器305、 306之内容。 然後,電腦系統300可將指示器位元308設定為用 來指示電腦系統300係處於該平行作業模式之值。在某些 實施例中,可將指示器位元308設定為值“關”。然後, 可恢復主控處理器301及從屬處理器321、331中之任何 從屬處理器中之指令的執行,其中運行狀態位元330、340 之值指示個別的從屬處理器321、331在該第一模式切換 指令被執行之前正在執行指令。 如果該等從屬處理器中可由大於零'的識別號碼的值 指示之其中一個從屬處理器先前執行了該第一模式切換指 令,則可自緩衝記憶體313讀取從屬處理器321、331的 暫存器322至325、332至335之内容、以及運行狀態位 元330、340之值,且可自主控處理器301的第一子集的 暫存器302至305中之一個暫存器(例如,自暫存器305 ) 讀取缓衝記憶體313之位址。在某些實施例中,只須自缓 衝記憶體313讀取先前並未執行該第一模式切換指令的 該從屬處理器321、331的暫存器之内容。此外,電腦系 統300可自緩衝記憶體313讀取主控處理器301的暫 存器302至307的第二子集的暫存器306、307之内容。 54 94344 200905566 然後,可將包含缓衝記憶體313的位址的暫存器(在 某些實施例中,可以是暫存器305 )之内容寫到可在缓衝 記憶體313中提供的暫時性暫存器,且可自緩衝記憶體 313讀取暫存器305之内容。然後,可將主控處理器301 的暫存器302至307的第一子集的暫存器302至305之内 容寫到先前執行了該第一模式切換指令的從屬處理器 321、331之暫存器。因此,從屬處理器321、331之暫存 器可包含當電腦系統300在該序列作業模式下操作時對 主控處理器的暫存器所作之修改。因此,可更容易在該從 屬處理器中繼續於該序列作業模式期間在主控處理器3 01 上運行的執行緒之執行。例如,主控處理器3 01的暫存器 302至307中之第一子集的暫存器302至305可包含當電 腦系統300係處於該並列作業模式時可能被從屬處理器 3·2卜331視為當電腦系統300在該序列作業模式下操作 時發生的中斷或異常有關之異常資訊。 然後,可自緩衝記憶體313讀取主控處理器301的 暫存器302至307的第一子集的暫存器302至305之内 容,且可將指示器位元308設定為用來指示電腦系統300 係處於該平行作業模式之值,且可恢復主控處理器301及 從屬處理器321、331中之那些從屬處理器中之指令的執 行,其中各自的運行狀態位元330、340之值指示當該第 一模式切換指令被呼叫而將該電腦系統切換到該序列作業 模式時係在個別的從屬處理器321、331中執行指令。 在某些實施例中,電腦系統300之組態可被設定 55 94344 200905566 .成:以不可分割的作業之方式執行該第二模式切換指令的 上述步驟,以避免於該第二模式切換指令的執行期間因中 斷或異常的發生而造成之問題。 可將該第一模式切換指令及該第二模式切換指令用 來實施可將電腦系統300在該平行與序列作業模式之間 切換的程式。如果執行該第一模式切換指令,則在執行該 起動指令或該第二模式切換指令之前,將在該序列作業模 式下執行程式之進一步的執行。使用該第一模式切換指令 及(或)該第二模式切換指令之程式可包含用來執行下列 步驟之進一步的指令:在執行該第一模式切換指令之後, 將其中儲存缓衝記憶體313的位址的該主控處理器的該 暫存器302至307的暫存器305或另一暫存器之内容儲 存在糸統記憶體304中,以及在執行該第二模式切換指令 之前,先自系統記憶體304讀取暫存器305之内容。可 利用電腦系統300的該序列作業模式之標準儲存及載入 指令以執行上述步驟。在將暫存器305的内容儲存在該系 統記憶體之後,該程式可使用主控處理器301的暫存器 302至307的第一子集的暫存器302至305中之每一個暫 存器。或者,可在執行該第一及(或)該第二模式切換指 令之前,先將緩衝記憶體313之位址儲存在可自其載入暫 存器305之變數。 可利用主控處理器301及從屬處理器321、331中 提供的專門電路或利用主控處理器301及從屬處理器 321、331中提供的微碼而提供電腦系統300的上述之功 56 94344 200905566 . 能及指令。 前文所揭示的該等特定實施例只是舉例,這是因為熟 悉此項技術者在受益於本發明的揭示之後,可易於以不同 但等效之方式修改及實施本發明。例如,可按照不同的順 序執行前文所述之程序步驟。此外,除了在最後的申請專 利範圍中所述者之外,將不受本說明書中示出的結構或設 計的細節之限制。因此,顯然可改變或修改前文中揭示的 該等特定實施例,且所有此類變化將被視為在本發明之範 圍及精神内。因此,最後的申請專利範圍將述及本發明所 尋求的保護。 【圖式簡單說明】 若配合各附圖而參閱前文中說明,將可了解本發明之 揭示,在該等附圖中,相同的代號識別類似的元件,其中: 第la圖示出根據現階段最高技術的電腦系統之示 意圖; 第lb圖示出在根據現階段最高技術的電腦系統上 ' - 運行的程式及中斷常式之示意流程圖; 第2a圖示出根據本發明所揭示的實施例的電腦系 統之示意圖; 第2b圖示出在根據本發明所揭示的實施例的電腦 糸統上運行的程式之不意流程圖,以及 第2c圖示出在根據本發明所揭示的實施例的電腦 系統上運行的程式及中斷常式之示意流程圖。 雖然易於對本發明所揭示的標的内容作出各種修改 57 94344 200905566 及替代形式,但是該等圖式中係以舉例方式示出本發明的 一些特定實施例,且已在本說明書中詳細說明了這些特定 實施例。然而,我們當了解,本說明書對這些特定實施例 的說明之用意並非將本發明限制在所揭示的該等特定形 式,相反地,本發明將涵蓋最後的申請專利範圍所界定的 本發明的精神及範圍内之所有修改、等效物、及替代。 【主要元件符號說明】 100,300 電腦系統 101 處理器 102 至 105、302 至 307、322 至 325、332 至 335 暫存器
210 至 215、220 至 225 301 308 、 328 、 338 103 、 303 104 、 304 201 202 、 502 309 、 329 、 339 313 314 321 > 331 330 、 340 400 550 輸入/輸出裝置 -糸統記憶體 工作 中斷常式 指令 主控處理器' 指示器位元 控制暫存器位元 緩衝記憶體 箭頭 從屬處理器 運行狀態位元 程式 跳轉指令 58 94344

Claims (1)

  1. 200905566 . 七、申睛專利範圍: 括主控處理益及至少—個從屬處理器之系統, /、中該主控處理||之狀態包括第—複數個變數,且梦 :屬處理器之狀態包括第二複數個變數,該系統包括〆 ^主控處理H及缝屬處理㈣理㈣的平行作業 模式、以及由該主控處理器處理資料的序列作業模式; H统之組態被設定成在該平行作業模式中發生 巾斷或異常時執行下列步驟:將該第—複數個變數及 該第二複數個變數的至少一部分儲存到緩衝記憶體; 以及將該系統切換到該序列作業模式; =之組態被進一步設定成:若該從屬處理器 υ斷或異常,則將該第一複數個變數中之至 ^個變數設定為該第:複數個變數中之至少一個變 數的值。 2. 如申請專利範圍第i項之系 變數包括第一返回位址、,,第Γ “弟1數個 該第一複數個變數包括第二 返回位址,且該系統包括跳轉指令; 其中該系統之組態被設定成在該 斷或異常時執行下列步驟:將該第一返 =苡複數個變數儲存到該緩衝記憶體;以及以該 兆轉k之位址取代該第一返回位址;以及 指令適於執行下列步驟:如果在該主 斷或異常,則將該系統切換到該 Ά且自該緩衝記憶體讀取該第二複數個 94344 59 200905566 變數及該第一返回位址。 3.如中請專利_第2項之系統, 被進一步設宏、Τ 該系、统之組身 〜疋成在該從屬處理器尹發生 、仃下列步驟:將該第―複數 s = :,到該缓衝記億體;以該跳轉 以及該第—返回位址;以及切換到該序列作業模式; ,卜一其中_轉指令適於執行下列步驟:如果在該 夕一個從屬處理器中發生 〜 切換到該平行作料 Η ,中斷或異常’則將該系統 複數個變數;料第1缓衝記憶體讀取該第二 數是數個變數中之該至少一個變 4. 值=及自㈣個變數中之該至少一個變數的 由^及自該緩衝記憶體讀取該第—複數個變數。 談平明專利乾圍第1項之系統’進一步包括用來起動 i — 式之起動指令’該起動指令適於:將該 個欠數之第一變數設定為該緩衝記憶體之位 將該第「複數個變數之第二變數設定為該跳轉指 7之位址’並將該處理器切換到該平行作業模式。 2請專利範圍第」項之系統,進—步包括變數傳送 曰7 ’該變數傳秘令適於將該第—複數個變數中之. 一個或多個變數的值寫到該第二複數個變數中之一個 或多個變數。 ^申睛專利範圍第1項之系統,進-步包括變數接收 才曰令’该變數接收指令適於將該第二複數個變數中之 94344 60 6. 200905566 個 ’ 變數的值寫到該第-複數個變數中之 8. I ^料Γ圍第1項之系統,進—步包括適於開知 I -個從屬處理器的指令執行之分叉指令 s令執行係開始於被指定的記憶體位址。〜 =請專利範圍第!項之系統,進—步包括從 ^,該從屬聯合指令適於停 理器的指令執行。……個攸屬處 :二=合指令適於使該主控處理器保持等候 止。了該至少-個從屬處理器上之指令執行為 10T2:f圍第1項之系統’進-步包括結束指 到該相作業模式。 十仃作業模式切換 處繼至少-個從屬處理器之系統, 之第一\者工逆理盗之狀態包括其中包括第-返回位址 c個變數,且該從屬處理器之狀態包括其中 节主=返回位址之第二複數個變數,該系統包括由 二=里:及該從屬處理器處理資料的平行作業模 Z由該主控處理器處理資料的序列作業模式; /、中該糸統包括跳轉指令; 該系統之組態被設定成在該平行 p 該主控處理器中發生中斷或異常時執竹列將 94344 61 200905566 該第一返回位址及該第二複數個 體;以該跳轉指令的位址取 衝記憶 切換到該序列作業模式·, k 口位址;以及 該系統之組態被進一步設定成在該 期間於該從屬處理器中發 7作業叙式 驟:將該第-複數個變=第斷= 時執行下列步 緩衝記憶體,·料第,/ 複數個變數儲存到 硬數個變數中之至少-個變數 -疋為該第二複數個變數中之至少 該跳轉指令的位址取代1 夂數的值,以 該第—作業模式;^—返回位址;以及切換到 其中,該跳轉指令適於 切換到該平行作業模式;丁^步驟.將該糸統 發生該中斷或異常,則㈣^果^該主控處理器中 數個變數及—返= «讀取該第二複 複數個變數;將該料衝錢㈣取該第二 值複數個變數中之該至少-個變數的 或里〜,該至少一個從屬處理器中發生該中斷 如申二直L自該緩衝錢體讀取該(―複數個變數。 送=圍第、、u項之系統,進-步包括變數傳 之—二赤丈數傳运指令適於將該第-複數個變數中 個或多個變數。 寫至1該弟二複數個變數中之- 94344 62 12. 200905566 13.如申請專利範圍第u項 收指令,該變數接收指八、商I 進—步包括變數接 之一個或多個變數的值寫 數個交數中 個或多個變數。 ❻弟一複數個變數中之— 14.如申請專利範圍第n項之 蝴至少-個從屬處理器的:令開 15 =指令執行仙始於«㈣記«位址7 ’ .合二 項之系統,進-步包㈣^^ 聯合指令適於停止由該 ’ 處理器的指令執行。 個攸屬 圍第15項之系統,進一步包括 二^’魅控聯合指令適於使該主控處理器保“ 候到已終止了該至少一個户 ’、、荨 止。 Ά _攸屬處理器上之指令執行為 17.如申請專利範圍第“ 牵 18. 令,該結束指令適於將步包括結束指 到該序列作業^ 系統自該平行作業模式切換 2=包括主控處理器及至少一個從屬處理器的系 數,Π:該主控處理器之狀態包括第一複數個變 〜攸屬處理器之狀態包括第二複數個變數,該 平控處理器及該從屬處理器處理資料: 作章妒:*式、以及由該從屬處理器處理資料的序列 下菜拉式,該方法包括下列步驟·· 果在該平订作業模式令發生中斷或異常,則執 63 94344 200905566 行下列步驟:將該第—複數個變數及該第二複數個變 數中之至少-部分儲存職衝記憶體:以及將該系統 切換到該序列作業模式;以及 、 ★如果在該至少一個從屬處理器中發生該中斷或異 吊二則將該第一複數個變數中之至少一個變數設定為 該第二複數個變數中之至少—個變數的值。 / 19.如申請專利範圍第18項之方法,其中,該第一複數 個文數包括第一返回位址,該第二複數個變數包括第 一返回位址,且該系統包括跳轉指令,該方法進一步 包括下列步驟: —如果在該主控處理器中發生該中斷或異常,則執 仃下列步驟:將該第一返回位址及該第二複數個變數 儲^到該緩衝記憶體;以及以該跳轉指令之位址取代 該第一返回位址;以及 於執行該跳轉指令時,執行下列步驟:如果在; 主控處理器中發生該中斷或異常,則將該系統切換』 .該平行作業模式,且自該緩衝記憶體讀取該第二複』 個變數及該第一返回位址。 20.如申請專利範㈣19項之方法,進—步包括下⑴ 以及 —如果在該從屬處理器中發生該中斷或異常,則執 步驟:將該第—複數個變數及該第二複數個變 ^到該緩衝記憶體;以該跳轉指令之該位址取代 弟返回位址,·以及切換到該序列作業模式. 94344 64 200905566 . 於執行該跳轉指令時,執行下列步驟:如果在該 至少一個從屬處理器中發生該中斷或異常,則將該系 統切換到該平行作業模式,自該緩衝記憶體讀取該第 二複數個變數,將該第二複數個變數中之該至少一個 變數設定為該第一複數個變數中之該至少一個變數的 值,且自該緩衝記憶體讀取該第一複數個變數。 65 94344
TW97119627A 2007-05-31 2008-05-28 包括複數個處理器之系統以及操作該系統之方法 TWI467490B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102007025397A DE102007025397B4 (de) 2007-05-31 2007-05-31 System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
US12/014,868 US7689809B2 (en) 2007-05-31 2008-01-16 Transparent return to parallel mode by rampoline instruction subsequent to interrupt processing to accommodate slave processor not supported by operating system

Publications (2)

Publication Number Publication Date
TW200905566A true TW200905566A (en) 2009-02-01
TWI467490B TWI467490B (zh) 2015-01-01

Family

ID=39917349

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97119627A TWI467490B (zh) 2007-05-31 2008-05-28 包括複數個處理器之系統以及操作該系統之方法

Country Status (10)

Country Link
US (1) US7689809B2 (zh)
EP (1) EP2171575B1 (zh)
JP (1) JP5295228B2 (zh)
KR (1) KR101485068B1 (zh)
CN (1) CN101730881B (zh)
AT (1) ATE516533T1 (zh)
DE (1) DE102007025397B4 (zh)
GB (1) GB2461841A (zh)
TW (1) TWI467490B (zh)
WO (1) WO2008153797A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US7930519B2 (en) * 2008-12-17 2011-04-19 Advanced Micro Devices, Inc. Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit
JP4572259B1 (ja) * 2009-04-27 2010-11-04 株式会社フォティーンフォティ技術研究所 情報機器、プログラム及び不正なプログラムコードの実行防止方法
CN101882098B (zh) * 2009-07-10 2012-07-11 威盛电子股份有限公司 微处理器集成电路以及相关除错方法
US9710275B2 (en) * 2012-11-05 2017-07-18 Nvidia Corporation System and method for allocating memory of differing properties to shared data objects
US20160147536A1 (en) * 2014-11-24 2016-05-26 International Business Machines Corporation Transitioning the Processor Core from Thread to Lane Mode and Enabling Data Transfer Between the Two Modes
US9747108B2 (en) * 2015-03-27 2017-08-29 Intel Corporation User-level fork and join processors, methods, systems, and instructions
US20170090927A1 (en) * 2015-09-30 2017-03-30 Paul Caprioli Control transfer instructions indicating intent to call or return
US10924416B2 (en) 2016-03-23 2021-02-16 Clavister Ab Method for traffic shaping using a serial packet processing algorithm and a parallel packet processing algorithm
SE1751244A1 (en) * 2016-03-23 2017-10-09 Clavister Ab Method for traffic shaping using a serial packet processing algorithm and a parallel packet processing algorithm
US10541868B2 (en) * 2017-02-24 2020-01-21 Quanta Computer Inc. System and method for automatically updating bios setup options
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831478B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
US12393399B2 (en) 2018-11-06 2025-08-19 International Business Machines Corporation Controlling storage accesses for merge operations
US10831502B2 (en) * 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions
CN111181169B (zh) * 2020-01-13 2023-10-20 深圳市禾望电气股份有限公司 Svg并联运行系统的控制方法、装置以及存储介质
CN114050965B (zh) 2020-07-22 2024-12-03 中兴通讯股份有限公司 查找中断设备的方法、从设备、主设备及存储介质
CN113094111B (zh) * 2021-04-16 2024-01-09 三星(中国)半导体有限公司 设备以及设备的启动方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US5481719A (en) * 1994-09-09 1996-01-02 International Business Machines Corporation Exception handling method and apparatus for a microkernel data processing system
US5812823A (en) * 1996-01-02 1998-09-22 International Business Machines Corporation Method and system for performing an emulation context save and restore that is transparent to the operating system
US6003129A (en) * 1996-08-19 1999-12-14 Samsung Electronics Company, Ltd. System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture
US6058465A (en) * 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US6230259B1 (en) * 1997-10-31 2001-05-08 Advanced Micro Devices, Inc. Transparent extended state save
US6574725B1 (en) * 1999-11-01 2003-06-03 Advanced Micro Devices, Inc. Method and mechanism for speculatively executing threads of instructions
US6651163B1 (en) * 2000-03-08 2003-11-18 Advanced Micro Devices, Inc. Exception handling with reduced overhead in a multithreaded multiprocessing system
KR100456630B1 (ko) * 2001-12-11 2004-11-10 한국전자통신연구원 프로세서간 통신을 위한 인터럽트 중계 장치 및 방법
US7765388B2 (en) * 2003-09-17 2010-07-27 Broadcom Corporation Interrupt verification support mechanism
JP4457047B2 (ja) * 2005-06-22 2010-04-28 株式会社ルネサステクノロジ マルチプロセッサシステム
US7386646B2 (en) * 2005-08-25 2008-06-10 Broadcom Corporation System and method for interrupt distribution in a multithread processor
US7912302B2 (en) * 2006-09-21 2011-03-22 Analog Devices, Inc. Multiprocessor decoder system and method

Also Published As

Publication number Publication date
EP2171575B1 (en) 2011-07-13
DE102007025397A1 (de) 2008-12-04
JP2010529533A (ja) 2010-08-26
DE102007025397B4 (de) 2010-07-15
KR101485068B1 (ko) 2015-01-21
KR20100036279A (ko) 2010-04-07
CN101730881B (zh) 2014-07-09
EP2171575A1 (en) 2010-04-07
US20080301408A1 (en) 2008-12-04
GB2461841A (en) 2010-01-20
WO2008153797A1 (en) 2008-12-18
ATE516533T1 (de) 2011-07-15
TWI467490B (zh) 2015-01-01
CN101730881A (zh) 2010-06-09
JP5295228B2 (ja) 2013-09-18
US7689809B2 (en) 2010-03-30
GB0920863D0 (en) 2010-01-13

Similar Documents

Publication Publication Date Title
TW200905566A (en) System comprising a plurality of processors and method of operating the same
US9135126B2 (en) Multi-core re-initialization failure control system
EP3317999B1 (en) Loading and virtualizing cryptographic keys
TWI326852B (en) Synchronization methods and fence/wait synchronization component of gpu
US8171267B2 (en) Method and apparatus for migrating task in multi-processor system
US20060085794A1 (en) Information processing system, information processing method, and program
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
JP2010510592A (ja) システムプロセッサーのトランスペアレントな交換
JP2003051819A (ja) マイクロプロセッサ
CN102981808B (zh) 用于持续性用户级线程的设备、系统和方法
CN112306669B (zh) 一种基于多核系统的任务处理方法及装置
CN112384893B (zh) 多个热补丁的资源上高效的部署
KR20090081405A (ko) 파티션 유닛을 교체하는 방법 및 컴퓨터 판독가능 매체
WO2016005720A1 (en) A data processing apparatus and method for performing lock-protected processing operations for multiple threads
US10095542B2 (en) Cooperative thread array granularity context switch during trap handling
US20100251250A1 (en) Lock-free scheduler with priority support
CN111124599B (zh) 虚拟机内存数据迁移方法、装置、电子设备及存储介质
EP4109255B1 (en) Scheduling in a container orchestration system utilizing hardware topology hints
CN103649931B (zh) 用于支持由多个引擎执行指令序列的互连结构
JP2008181481A (ja) 要求に基づく処理資源の割り当て
US20160147660A1 (en) Access extent monitoring for data transfer reduction
CN103403698A (zh) 分布式计算方法和分布式计算系统
JP5289688B2 (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
JP2022107229A (ja) 情報処理装置、制御方法及び制御プログラム
CN120704749A (zh) 一种指令处理方法、装置及相关设备