TW586073B - Method, apparatus, and system for executing multi-cycle instructions - Google Patents

Method, apparatus, and system for executing multi-cycle instructions Download PDF

Info

Publication number
TW586073B
TW586073B TW090130095A TW90130095A TW586073B TW 586073 B TW586073 B TW 586073B TW 090130095 A TW090130095 A TW 090130095A TW 90130095 A TW90130095 A TW 90130095A TW 586073 B TW586073 B TW 586073B
Authority
TW
Taiwan
Prior art keywords
instruction
state
instructions
issue
push
Prior art date
Application number
TW090130095A
Other languages
English (en)
Inventor
Charles P Roth
Ravi P Singh
Gregory A Overkamp
Original Assignee
Intel Corp
Analog 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 Intel Corp, Analog Devices Inc filed Critical Intel Corp
Application granted granted Critical
Publication of TW586073B publication Critical patent/TW586073B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

586073 五、 發明説明( 本發明是關於在一個可程々 令。 “式處理器上執行多重循環指 -個可程式處理器,如用於—台.電腦上 處理系統上之-個微處理器,可以支援 ’以 環”機器指令,其中-個單一機器 指夕固多重循 重勺運#舉例來祝,一個典型之多重循環 -個載入多重(Load M,e)指令,其中處理器會執二: 串的載入動作以回應一個單一機器指令。另—個例二一 個指示處理器將多個暫存器壓入一個堆叠中或從一個二 中退出多個暫存器之,,壓人·退出多重,,指令。由於多^ 令是利用-個單一機器指令執行多重的動作,因此其可: 減少程式碼的大小並改善可程式處理器之運作的效率。 圖式說明 附圖1是一個方塊圖,說明根據本發明之一 例之一個管線可程式處理器的-織^ 附圖2是一個概略圖,說明根據本發明之一個具體實施 例之一個執行管線的一個實例。 附圖3疋一個狀態圖例,用以說明如何將多個暫存器壓 入一個堆叠中。 附圖4是一個狀態圖例,用以說明如何從一個堆疊中退 出多個暫存器。 附圖5疋一個狀態圖例,用以說明_個[丨n k指令的執 行0 4 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
行0 附圖6是—個狀態圖例’用以說明-個Unlink指令,, 的執 圖 附圖7是—個說明一個停滞控制器之具體實施例的概略 附圖8是一個停滯控制器之時序圖。 附圖9是—個用以產生一個停滯信號給多重循環指 一個電路的例子的概略圖。 附圖與附圖Η是位址產生電路的例子的概略圖。 Α發明的詳細i»曰^ 、附圖1是-個說明—個支援若干個多重循環指令之可程 式處,器2之方塊圖。處理器2包含一個執行管線4與一個 &制單元6。控制單元6根據一個系統時脈控制指令與資料 通過官線4。在處理一個指令期間,控制單元6可以指示管 線的各個兀件對指令解碼並正確的執行對應的動作,例 如’將結果寫回記憶體。 指令會被載入到管線4的一個第一階段,然後由後續的 階段處理。每個階段通常會跟其他階段同時處理。資料根 據系統時脈信號通過管線4中之相鄰的階段。指令的執行 結果會快速的連續出現在管線4的末端。 在下文中將會詳細的說明,處理器2支援若干個多重循 %扣令。在回應一個多重循環指令時,停滯控制器8可藉 由主張停滞信號9停止管線4之一個或多個階段,以阻止管 線4提取或解碼更多的指令,在停滯管線4之一部份後,多 重循環指令(MCI)控制器5會主張MCI信號7並指示管線4執 -5- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公董) 行由現在的多重循環指令所定義之其他的工作。 附圖2是一個根據本發明管線4的範例。舉例來說,管線 4可把曰有五個階段··指令提取(丨F ),指令解碼(),位 址計算(AC),執行(Εχ)與寫回(WB)。指令可能是在第一 階段(IF )由提取單元π從一個記憶體裝置提取的,例如主 :憶體或一個指令快取記憶體,並在第二階段(DEC)由指 7解碼單元1 2解碼。在下一個時脈循環,結果會傳給第三 1¾ & (A C ),由貧料位址產生器丨3計算出記憶體位址以執 行運算。 在執行階段(E X)期間,執行單元1 5執行一個指定的運 算例如兩個數的加法或乘法。執行單元1 5可能包含專門 的硬體以執行運算,例如算術邏輯單元(ALU,S), 洋點運算單元(FPU)與桶型移位器。有各種不同的資料可 以運用於執行單元15 ,如由資料位址產生器13所產生的位 址,從記憶體所取出的資料或從資料暫存器U所取出的資 料。在最後階段(WB),結果會被寫回資料記憶體或資料 暫存器1 4中。 一個多重循環指令的行為類似在數個時脈循環期間從管 、=的解碼階段發出多數個指令。當_個_在執行時,當 多數個’’子指令”在控制器5的控制下傳遞給管線4時, 孩MCI會保持停滯在管線4的解碼階段,Μ(:ι控制器5合根 據數個内部狀態機運作以指示指令解碼單元12在乂〇1^行 期間的數個時脈循環内分派數個工作。 停滯控制器8可以藉由主張停滯信號9來停滯一或多個管 586073 A7 B7
線4的階段,以阻止管線4提取或 、^ ^ &唧碼更多的指令。更明確 的就,官線4的階段包含儲存電路, 、 合如用來儲存現階段的 結果之階段暫存器19,階段暫存哭〗0
白又I存咨丨9通常會根據系統時脈 ^結Ί騎存器19會接收停滞信號9,該信號控制 階段暫存W9是否要鎖住前_個階段的結果,如此,停滞 控制器8可以停滯管線4之一或多個 iU 1自奴以回應一個多重循 環指令。 處理器2所支援之多重循環浐人 /里1目衣铂令的例子如一個
PushP叩Mump丨e機器指令,一個Link指令與—個制故指令。 iW〇pMultiple指令指示處理器2壓入或退出i到N個資料暫 ’ PushP_ultip㈣令會崎停滞在解 碼階段數個時脈循環,其減等於存取之暫存器的個數。 以下說明一個壓入多重機器指令的例子: [-sp] = (r7-r4,p5-p0) 在此例中,一個單一機器指令指示處理器2壓入四個資 料暫存器(r4到r7)與六個指標暫存器(13〇到?5)。通常一個 單一機器指令可以指定零或多個資料暫存器與零或多個指 標暫存器,只要至少指定一種暫存器。 附圖3是一個在MCI控制器5中用以將多個暫存器壓入一 個堆疊的一個狀態機的一個狀態圖例3 〇。如以下所說的, MCI控制备5依狀態圖3 0運作以回應一個壓入多重指令, 藉此壓入一或多個暫存器。當根據狀態圖3 0運作時,MCI 控制器5可能會主張一或多個MCI信號7,包括一個指示解 碼器1 2產生管線控制信號以分派一個壓入一個資料暫存器 本紙張尺度適用中國國家標準…^^) A4規格(210 X 297公釐)
裝 訂
586073 A7 B7五、發明説明(5 ) 之PUSH_DREG信號,與一個指示解碼器1 2產生管線控制信 號以分派一個壓入一個指標暫存器之PUSHJPREG信號;此 夕卜,MCI控制器5也可能會主張一個D_REGJPRESELECT信 號,以初始化一個指出要壓入哪些資料暫存器的計數器, 或一個P_REG_PRESELECT信號,以初始化一個指出要壓入 哪些指標暫存器的計數器;MCI控制器5還可以主張一個 MCI_PRESTALL信號,以指示停滯控制器5在後續的時脈循 環停滯管線4。 以下的表格概括了在MCI控制器5中之使Push Multiple狀態 機轉換狀態的條件以及對應之主張的輸出信號,其中D是 一個表示將要壓入一個資料暫存器的指令位元,其中P是 一個表示將要壓入一個指標暫存器的指令位元,D R是一 個指出將要壓入之起始資料暫存器的指令欄位,P R是一個 指出將要壓入之起始指標暫存器的指令欄位,D_TAG代表 現在正要壓入之資料暫存器,PJTAG代表現在正要壓入之 指標暫存器,DMAX代表在有效之資料暫存器範圍中之最 大的資料暫存器,PMAX代表在有效之指標暫存器範圍中 之最大的指標暫存器: € 裝 訂
▲ 路徑 條件 輸出 34A 不是一個壓入多重指令 沒有 34B D & !P & DR=DMAX 主張 PUSH_DREG 34C !D & P & PR二PMAX 主張 PUSH_PREG 34D D& !P&DR=DMAX-1 主張 PUSH一DREG 主張 D_REG_PRESELECT 34E 沒有 主張 PUSH—DREG _-8- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A7 B7 五、發明説明(6 ) 34F !D&P&DR=PMAX-1 主張 PUSKLPREG 主張 P_REG_PRESELECT 34F' D & P & DR=DMAX & PR=PMAX 主張 PUSHJDREG 34G 沒有 主張 PUSHJPREG 34H D& !P&DR<DMAX-1 主張 PUSHJDREG 主張 D_REG_PRESELECT 主張 MCI_PRESTALL 34H' D & P & DR<DMAX 主張 PUSHJDREG 主張 D_REG_PRESELECT 主張 MCI_PRESTALL 341 ((!P & D_TAG<DMAX-1) | (P & D—TAG<DMAX)) 主張 PUSH_DREG 主張 DJREGJPRESELECT 主張 MCIJPRESTALL 34J !D & P & PR<PMAX-1 主張 PUSH_PREG 主張 PJIEG^PRESELECT 主張 MCI_PRESTALL 34P D & P & DR=DMAX & PR<PMAX 主張 PUSHJDREG 主張 D_REG_PRESELECT 主張 MCI_PRESTALL 34K PR=PMAX-1 主張 PUSHJPREG 主張 P_REG_PRESELECT 34L P & D_TAG=DMAX & PJTAG<PMAX 主張 PUSH一DREG 主張 0_ΚΕ0_ΡΙΙΕ3ΕΙ^(:Τ 主張 MCI_PRESTALL 34M P & D_TAG=DMAX & P TAG=PMAX 主張 PUSH_DREG 主張 D_REG_PRESELECT 34N P_TAG<PMAX-1 主張 PUSHJPREG 主張 PJREGJPRESELECT 主張 MCI_PRESTALL 340 D_TAG=DMAX-1 & !P 主張 PUSHJDREG 主張 D_REG_PRESELECT 表格1 -9- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A7 B7 五、發明説明(7 ) 起初,MCI控制器5是從一個WAIT狀態開始,直到一個 指令由提取單元1 1提取並由解碼單元1 2解碼,假如該指令 不是一個PushPopMultiple指令,則MCI控制器5回到WAIT狀 態,如路徑3 4 A所指出。 假如該指令是一個PushPopMultiple指令,但是只有指示處 理器2壓入單一個資料暫存器,則狀態機會主張一個 PUSHJDREG信號並經由路徑3 4 B回到WAIT狀態。假如該指 令是一個PushPopMultiple指令,並指示處理器2愿入單一個 指標暫存器,則狀態機會主張一個PUSHJPREG信號並經由 路徑3 4 C回到WAIT狀態。 假如該指令指定壓入兩個資料暫存器或兩個指標暫存 器,則狀態機會分別轉移狀態至3 2 A或3 2 C,狀態機是經 由路徑34D或34F轉移至這些狀態,並在轉移至狀態32A 時主張PUSH_DREG信號或在轉移至狀態3 2 C時主張 PUSH_PREG信號。此外在沿著路徑3 4 D轉移時,狀態機會 主張D_REGJPRESELECT信號以初始化一個指出要壓入哪些 資料暫存器的計數器,同樣地,在沿著路徑3 4 F轉移時, 狀態機會主張P_REG_PRESELECT信號以初始化一個指出要 壓入哪些指標暫存器的計數器。 狀態機從狀態3 2 A經由路徑3 4 E回到WAIT狀態,在此轉 移期間’ MCI控制器5又再度主張PUSHJDREG並取消 D一REGJPRESELECT,使得解碼單元1 2分派壓入另一個資料 暫存器的工作;同樣地,狀態機從狀態3 2 c經由路徑3 4 G 回到WAIT狀態,在此轉移期間,MCI控制器5主張 __ -10- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A7 B7 五、發明説明(8 ) PUSH_PREG並取消P_REG_PRESELECT,使得執行單元1 5壓 入另一個指標暫存器。 以一個需要指令解碼單元1 2分派壓入三個或更多資料暫 存器的一個PushPopMultiple指令而言,狀態機從WAIT狀態經 由路徑3 4 Η轉移至狀態3 2 B,在轉移的期間,MCI控制器5 主張PUSH—DREG信號並主張D_REG_PRESELECT,使執行單 元1 5壓入第一個資料暫存器;此外,MCI控制器5主張 MCIJPRESTALL信號,使停滯控制器8在後續的時脈循環中 停滯管線4之一或多個階段,舉例來說,在一個具體實施 例中,停滯控制器8主張STALLJDEC以停滯管線4之解碼階 段。一旦處在狀態3 2 B,MCI控制器5會持續壓入資料暫存 器直到剩下兩個資料暫存器待壓入,舉例來說,假設指令 需要壓入六個資料暫存器,則MCI控制器5會通過路徑3 4 I 三次,每次壓入一個資料暫存器,直到現在要壓入之資料 暫存器等於最大之可用資料暫存器(DMAX)減一,也就是當 剩下兩個資料暫存器待壓入時。 當通過路徑3 4 I時,MCI控制器5會主張PUSH_DREG信 號,DJIEGJPRESELECT 信號與 MCIJPRESTALL 信號。當剩下 兩個資料暫存器待壓入時,MCI控制器5會在壓入其中一個 剩下的資科暫存器時經由路徑3 4 0轉移至狀態3 2 A,在此 轉移期間,MCI控制器5會取消MCIJPRESTALL。指令解碼 器1 2在MCI控制器5通過路徑3 4 E並壓入剩下的資料暫存器 之下一個時脈循環,會接收到一個新的指令。 同樣地,以一個需要指令解碼單元1 2分派壓入三個或更 本紙張尺度適用中國國家標準(CNS) A4規格(21〇 X 297公釐) -11-____________ 586073 A7 B7 五、發明説明(9 ) 多指標暫存器的一個PushPopMultiple指令而言,狀態機從 WAIT狀態經由路徑3 4 J轉移至狀態3 2 D,在轉移的期間, MCI控制器5主張PUSH_PREG信號並主張P_REG_PRESELECT, 使執行單元1 5壓入一個第一指標暫存器;此外,MCI控制 器5主張MCI_PRESTALL信號,使停滯控制器8停滯管線4之 一或多個階段。在狀態3 2 D中,MCI控制器5會藉由通過路 徑3 4N來壓入指標暫存器直到剩下兩個指標暫存器待壓 入。在通過路徑3 4 N時,MCI控制器5會主張PUSH__DREG信 號,DJRJEGJPRESELECT 信號與 MCIJPRESTALL 信號。一旦只 剩下兩個資料暫存器待壓入時,MCI控制器5會在壓入一個 指標暫存器時經由路徑3 4 K轉移至狀態3 2 C,在此轉移期 間,MCI控制器5會取消MCI_PRESTALL。如此,管線4會在 MCI控制器5經由路徑3 4 G轉移至WAIT狀態並已經壓入剩 下的指標暫存器之後的下一個時脈循環重新運作。 除了以上的功能,一個PushPopMultiple指令可以指定多個 資料暫存器與多個指標暫存器。大致上,狀態機3 0是設計 成首先壓入資料暫存器,接著是指標暫存器,但本發明並 不受限於此。 以一個指定壓入單一個資料暫存器與單一個指標暫存器 之Push Multiple指令而言,MCI控制器5經由路徑3 4 F '轉移至 狀態3 2 C並主張PUSH_DREG信號以壓入資料暫存器;接 著,MCI控制器5經由路徑3 4 G轉移回WAIT狀態並壓入指 標暫存器。 以一個指定壓入單一個資料暫存器與多個指標暫存器之 ___ · 12- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073
Push Multiple指令而言,MCI控制器5經由路徑34j,轉移至狀 怨 3 2 D 並主張 PUSH—DREG 信號,D—reg—PR£SELECT 信號與 mci—prestall信號以壓入資料暫存器;接著,MCI控制器 5藉由通過路徑3 4 N壓入除了兩個指標暫存器外的所有暫 存器,藉由通過34K壓入一個指標暫存器以及藉由通過路 徑3 4 G壓入最後一個指標暫存器並回到ψΑΙΤ狀態。 最後,以一個指定壓入多個資料暫存器與至少一個指標 暫存姦之PushPopMultiple指令而言,Μα控制器5經由路徑 3 4H轉移至狀怨32B並主張信號, D一REG—PRESELECT信號與MCIJPRESTall信號以壓入一個第 '貝料暫存态,接著,MCI控制器5藉由通過路徑3 41'壓入 除了 一個之外的所有資料暫存器。假如該指令指定要壓入 單一個指標暫存器,則MCI控制器5藉由通過路徑34M| 入最後的貧料暫存器並藉由通過路徑3 4 G壓入單一個指標 存器,否則,MCI控制姦5藉由通過路徑3 4 L壓入最後之 ^料暫存态,並耠由通過路徑3 4 N ,如需要的話緊接著通 過34K與34G ’以壓入多個指標暫存器。 附圖4是一個說明在MCI控制器5中從一個堆疊中退出多 個暫存器之狀態機的一個狀態圖例4〇,Μα控制器5根據 狀態圖40運作以回應一個指定從一個堆疊中退出一或多個 4存器到5己fe體中之PushPopMultiple指令。在根據狀態圖4 0 運作時,MCI控制器5可能會主張一或多個Μα信號7,包 括一個指示管線4退出一個資料暫存器之p〇p_DREG信號, 與一個指示管線4退出一個指標暫存器之p〇p_pREG信號; -13- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A7 ____ B7 五、發明説明(11 ) 此外,MCI控制器5也可能會主張一個dj^g—pR£SELECT信 號’以初始化一個指出要退出哪些資料暫存器的計數器, 或一個P—REG一PRESELECT信號’以初始化一個指出要退出 哪些指標暫存器的計數器;MCI控制器5也可能會主張一個 MCI—PRESTALL信號,使得在後續的時脈循環中停滯管線 4 〇 以下的表格概括了使MCI控制器5在狀態圖4 0之狀態間 移轉的條件以及對應之主張的輸出信號,其中D是一個表 示將要退出一個資料暫存器的指令位元,其中p是一個表 示將要退出一個指標暫存器的指令位元,D R是一個指出 將要從堆疊中退出之最後一個資料暫存器的指令欄位,PR 是一個指出將要從堆疊中退出最後一個指標暫存器的指令 欄位’ D—TAG代表現在正要退出之資料暫存器,p_TAG代 表現在正要退出之指標暫存器,DMAX代表在有效之資料 暫存咨範圍中之最大的資料暫存器,ρΜΑχ代表在有效之 指標暫存器範圍中之最大的指標暫存器:
裝 訂
路徑 _ ------ 條件 輸出 44Α 不是一個退出多重指令 沒有 44Β Ρ & !D & PR=PMAX 主張 POPJPREG 44C — ------- !P & D & DR=DMAX 主張 POPJDREG 44D P & !D & PR=PMAX-1 主張 P0P_PREG 主張 P REG PRESELECT 44「〜 沒有 主張 POP PREG 44F !P & D & DR-DMAX-1 主張 P0P__DREG —" -----—-, 主張 D_REG_PRESELECT
— -14- 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 586073 A7 B7 五、發明説明(12 )
44P D & P & DR二DMAX & PR 二 PMAX 主張 POP_PREG 44G 沒有 主張 POP_DREG 44H P & !D & PR<PMAX-1 主張 POP_PREG 主張 P_REG_PRESELECT 主張 MCI PRESTALL 44H' D & P & PR<PMAX 主張 POP_PREG 主張 P_REG_PRESELECT 主張 MCI PRESTALL 441 ((!D&P 一TAG>PR+1)| (D & P_TAG>PR)) 主張 POP_PREG 主張 P_REG_PRESELECT 主張 MCI JPRESTALL 44J !P & D & DR<DMAX-1 主張 POPJDREG 主張 DJREGJPRESELECT 主張 MCI PRESTALL 44P D & P & PR-PMAX & DR<DMAX 主張 POP PREG 主張 P_REGJPRESELECT 主張 MCI PRESTALL 44K D—TAG=DR+1 主張 POPJDREG 主張 D REG PRESELECT 44L D & P_TAG=PR & DR<DMAX 主張 POP_PREG 主張 P_REG_PRESELECT 主張 MCI JPRESTALL 44M D & P—TAG=PR & DR=DMAX 主張 P0P_PREG 主張 P REG PRESELECT 44N D 一 TAG〉DR+1 主張 POP_DREG 主張 D_REG_PRESELECT 主張 MCI_PRESTALL 440 P—TAG=PR+1 & !D 主張 POPJPREG 主張 P—REG_PRESELECT 表格2 -15-
本紙張尺度適用中國國家標準(CNS) A4規格(21QX297公D 586073 A7 _ B7 五、發明説明(~' 起初’ MCI控制器5是從一個WAIT狀態開始,直到一個 指令由提取單元1 1提取以及由解碼單元丨2解碼,假如該指 令不是一個PushPopMultiple指令,則MCI控制器5回到WAIT 狀態,如路徑4 4 A所指出。 假如該指令是一個pushpopMultiple指令,指示處理器2退 出單一個指標暫存器但不退出任何資料暫存器,則Μα控 制器5會主張一個p〇p一DREG信號並經由路徑44B回到WAI丁 狀悲。假如該指令是一個p0p Multiple命令,並指示處理器2 退出單一個資料暫存器,則MCI控制器5會主張一個 POPJDREG信號並經由路徑4 4 C回到WAIT狀態。 假如該指令指定退出兩個指標暫存器或資料暫存器,則 MCI控制器5會分別經由路徑4 4 D或4 4 F轉移狀態至4 2 A或 4 2 C , MCI控制态5會在轉移至狀態4 2 A時主張pop pp£G信 號或在轉移至狀態4 2 C時主張POP—dreg信號。此外在沿著 路徑4 4 D轉移時,MCI控制器5會主張pjrjegjpreselec丁信 號以初始化一個指出要退出哪些指標暫存器的計數器,同 樣地,在沿著路徑4 4 F轉移時,MCI控制器5會主張 DJRJEG—PRESELECT信號以初始化一個指出要退出哪些資料 暫存器的計數器。 在退出兩個指標暫存器中的第一個指標暫存器後,Μα 控制态5從狀怨4 2 A經由路徑4 4 E回到WAIT狀態,在此轉 移期間’ MCI控制5又再度主張p〇p—pREG並取消 P—REG 一 PRESELECT,使得執行單元丨5退出另— 一個指標暫存 器,·同樣地,在退出兩個資料暫存器中的第一個資料暫存 ___ __- 16 _ 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) ' —- 586073
态後,MCI控制器5從狀態4 2 C經由路徑4 4 G回到WAIT狀 態,在此轉移期間,MCI控制器5主張p〇p—dreg並取消 D—REGJPRESELECT ,使得執行單元丨5退出另一個資料暫存 器。 ’、曰 以一個需要指令解碼單元12分派退出三個或更多資料暫 存器的一個Pop Multiple指令而言,MCI控制器5從WAI丁狀態
經由路徑44H轉移至狀態42B ,在轉移的期間,MQ控= 态5王張POP—preg信號並主張p—preselect,使執行單 元1 5退出一個第一指標暫存器;此外,Μα控制器5主張 MCI—PRESTALL信號,使停滞控制器8在以下的時脈循環中 裝 停滯管線4之一或多個階段。一旦在狀態42β,mci控制器 5曰持”.只退出指標暫存器直到剩下兩個指標資料暫存器待 退出,舉例來說,假設指令需要壓入六個指標暫存器°,則 訂
MCI控制器5會通過路徑441三次,每次退出一個指標暫存 器,直到現在要退出之指標暫存器等於最大之可用指標^ 存器(PMAX)減一,也就是當剩下兩個指標暫存器待退出 時。 當通過路徑441時,MCI控制器5會主張P〇p—pREG信號, P-REG一PRESELECT信號與MQ—PRESTALL信號。當剩下兩^個 指標暫存器待被退出時,MCI控制器5會在退出其中一個κ 下的指標暫存器時經由路徑4 4 0轉移至狀態4 2 A,在a # 移期間,MCI控制器5會取消MCI—PRESTALL。指八解碼Μ 12在MCI控制器5通過路徑44£並已退出剩下的指標暫^ 之下一個時脈循環,會接收到一個新的指令。 -17-
586073 A7 B7 五、發明説明(l5 ) 同樣地,以一個需要指令解碼單元1 2分派退出三個或更 多資料暫存為且沒有指標暫存器的一個PushPopMultiple指令 而言,MCI控制器5會從WAIT狀態經由路徑4 4 J轉移至狀態 4 2 D,在轉移的期間,MCI控制器5主張P0P_DREG信號並 主張D_REG_PRESELECT,使執行單元1 5退出一個第一指標 暫存器·;此外,MCI控制器5主張MCIJPRESTALL信號,使 停滯控制器8停滯管線4之一或多個:階段。在狀態4 2 D中, MCI控制器5會藉由通過路徑4 4 N來退出資料暫存器直到剩 下兩個資料暫存器待退出。在通過路徑4 4 N時,MCI控制 器5會主張P〇PJ)REG信號,DJRJEG+PRESELECT信號與 MCI_PRESTALL信號。一旦只剩下兩個資料暫存器待退出 時,MCI控制器5會在退出一個資料暫存器時經由路徑4 4 K 轉移至狀態4 2 C,在此轉移期間,MCI控制器5會取消 MCI—PRESTALL,接著MCI控制器5經由路徑4 4 G轉移至 WAIT狀態並壓入剩下的資料暫存器。 除了以上的功能,一個PushPopMultiple指令可以指定退出 多個資料暫存器與多個指標暫存器。大致上,狀態機3 0是 設計成首先退出指標暫存器,接著是資料暫存器,但本發 明並不受限於此。 以一個指定退出單一個指標暫存器與單一個資料暫存器 之PushPopMultiple指令而言,MCI控制器5經由路徑4 4 F '轉移 至狀態4 2 C並主張P〇P_PREG信號以退出指標暫存器;接 著’ MCI控制器5經由路徑4 4 G轉移回WAIT狀態,主張 POP JDREG信號並退出資料暫存器。 ____-18-_ 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A7 B7 五、發明説明(Ιό 以一個指定退出一個指標暫存器與多個資料暫存器之 PushPopMiiltiple指令而言,MCI控制器5經由路徑4 4 j ,轉移至 狀怨4 2 D並主張POP-PREG信號,p—RgG—pRESELECT信號與 MCI一PRESTALL k唬以退出指標暫存器;接著,Μα控制器 5藉由通過路徑4 4 N退出除了兩個資料暫存器外的所有暫 存器,耠由通過路徑4 4 K退出一個資料暫存器以及藉由通 過路徑4 4 G退出最後一個資料暫存器並回到wai丁狀態。 最後,以一個指疋退出多個指標暫存器與至少一個資料 暫存器之Pop Multiple指令而言,Μα控制器5經由路徑4 4 h , 轉移至狀怨4 2 β並主張POP—preg信號與p—丁 信號以退出第一個指標暫存器;接著,Μα控制器5藉由通 過路徑441退出除了一個之外的所有指標暫存器。假如該 指令指足要退出單一個資料暫存器,則Μα控制器5藉由通 過路徑44M退出最後一個指標暫存器並藉由通過路徑44〇 退出單一個資料暫存器,否則,Μα控制器5藉由通過路徑 44L退出最後之指標暫存器,並藉由通過路徑44N,如需 要的話緊接著通過44K與44G,以退出多個資料暫存器。 其他根據本發明之指示管線處理器2執行多重工作的指 令還包括Link指令與Unhck指令。Link指令通常是用在呼叫 -個次常式時,使管線處理器4壓入一個次常式的返回位 址到堆疊中,壓入一個框架指標到堆叠中,將堆疊指標搬 移到框架指標内並根據次常式的框架大小更新堆疊指標。 Unlick指令通常是用在離開次常式時,且使管線處理器2從 堆疊中回復返回位址,回復堆疊指標並依指令的指示從堆 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) -19 586073 A7 —____B7 五、發明説明(I7 ) 疊中回復框架指標。 以下的例子是用來說明Link指令與Unlick指令: link 1234; unlink; 附圖5是一個說明在MCI控制器5中執行以吐指令之工作 之狀態機的一個狀態圖例5 〇。在根據狀態圖5 〇運作時, MCI控制為5可能會主張一或多個指示管線4執行一個對應 之工作的MCI信號7 ;此外’ MCI控制器5可能會主張 MCIJPRESTALL信號以停滞管線4。 以下的表格列出當MCI控制器5經狀態機5 0轉移狀態時 所主張之輸出信號:
路徑 輸出信號 54A 1----- 沒有 54B PUSH RTS,MCI PRESTALL 54C PUSH—FP,MCI一PRESTALL 54D MOVE SP TO FP 54E UPDATE SP 表格3 假如現在的指令不是一個Link指令,則狀態機指示MCI 控制器5經由路徑5 4 A回到WAIT狀態;假如指令是一個 Link指令’則MCI控制器5經由路徑5 4 B轉移到狀態5 2 B並 主張PUSH—RTS k號,使解碼單元1 2分派壓入返回位址到堆 4中;此外’ MCI控制器5會主張MCI_PRESTALL信號以便 在後續的時脈循環中停滯管線4。 ______ -20- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A7 B7 五、發明説明(IS ) 接著,MCI控制器5經由路徑5 4 C轉移到狀態5 2 C,主張 PUSH_FP,使解碼單元1 2分派壓入框架指標暫存器到堆疊 中,並主張MCI_PRESTALL以便在後續的時脈循環中停滯管 線4 ; MCI控制器5接著經由路徑5 4 D轉移至狀態5 2 D,並 主張MOVE_SP_T〇JFP,使指令解碼單元1 2分派搬移堆疊指 標暫存器的内容到框架指標暫存器;最後,MCI控制器5經 由路徑5 4 E轉移至WAIT狀態並主張UPDATE_SP,使指令解 碼單元1 2分派一個依指令的指示將堆疊指標減去框架的大 小的工作。 附圖6是一個說明在MCI控制器5中執行Unlink指令之工作 之狀態機的一個狀態圖例6 0。以下的表格列出當MCI控制 器5經狀態機6 0轉移狀態時所主張之輸出信號:
路徑 輸出信號 64A 沒有 64B LOAD—RTS,MCI—PRESTALL 64C LOAD SP 64D UPDATE FP 表格4 假如現在的指令不是一個Unlink指令,則狀態機6 0指示 MCI控制器5經由路徑6 4 A回到WAIT狀態;假如指令是一 個Unlink指令,則MCI控制器5經由路徑6 4 B轉移至狀態 6 2 B並主張LOAD_RTS信號,使指令解碼單元1 2主張能夠 從堆疊中取得一個返回位址如:RETS=[FP+ 4 ]之控制信號; 此外,MCI控制器5會主張MCI_PRESTALL信號以便在後續 的時脈循環中停滯管線4。 -21 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A7
接著,MCI控制器5經由路徑6 4 C轉移至狀態6 2 c並主張 LOAD一SP信號,使指令解碼單元丨2主張能夠使堆疊指標有 如下之設定·· SP = FP + 8之控制信號。 取後,MCI控制咨5經由路徑6 4 D轉回到WAIT狀熊、並主 張UPDATE—FP,使指令解碼單元12主張能夠從堆疊中載入 框架指標如:F P = [ F P ]之控制信號。 附圖7是一個說明停滯控制器8之一部分之一個具體實施 例的概略圖。停滯控制器8可能會接收到好幾個輸入信 號,如 stall一condition一 1 到 stall一condition一8 ,這些信號在偵測到 個別之停滯條件時會被主張。這些輸入信號只是示範性質 而已,舉例來說,停滯控制器8可在管線4之各個不同的階 段接收任意個不同的停滯條件。 停滯控制器8可能產生停滯信號9來停滯管線4以回應輸 入停滯條件信號。停滯控制器8可能產生複數個停滯信號 9 ’個數是跟管線4的階段數一致。舉例來說,當 stall一condition—1或stall—condition一2被主張後,且處理器2不是在 重置狀態,停滯控制器8可能會主張stall—Wb輸出信號,造 成管線4之W B階段的停滞,特別是,staii_wb輸出信號是用 未產生管線4初期階段之停滞輸出信號,如輸出信 號’更明確的說,停滯控制器8在stall conditi〇n 3 , stall—condition—4或stalljwb被主張時且處理器2不是在重置狀態 時會主張stall-ex輸出信號,如此,在w B階段的停滯會強制 在E X階段的停滯。同樣地,停滯控制器8會根據獨立的偶 然條件和在管線4之後期階段的停滯產生stau_ac與stall_dec信 -22- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
586073 A7 B7
五、發明説明(22 ) 4d解碼早疋12以壓入或退出暫存器,並且會被回p 當成是MCI控制器5之狀態控制邏輯的輸人。 貝 附圖11疋個指標暫存器位址產生電路110之實例的概 :圖,用以輸出一個代表現在正要壓入或退出之指標暫存 备的值(二—TAG)。與附圖1〇之電路1〇〇類似的是,以退出的 作業而言,電路110在鲂左哭々々㈤t/、 ,、 υ在曰存斋的靶圍内往下計數,而以壓 裝 入的作業而言,是從—個起始指標暫存器往上計數。 以上說明了關於本發明之各種具體實施例,例如,以上 所說明之—個包含—個重置單元之管線處理器提供-個輸 出重置信號給一個執行管線之至少一個階段,該重置單元 處理重置請求、,如硬體重置,軟體重置純擬重置,當成 是具有一個指定優先權之重置事件。 訂
線 此種處理II可以在各種的系統中實袍,包括_般用途之 計算系統’數位處理系統,膝上型電腦,個人數位助理 (PDA’s)與行動電話;在這樣的一個系統中,處理器可以跟 -個儲存著-個作業系統或其他軟體應用程式之記情體裝 置結合,Η快閃記憶體裝置或—個靜態隨機存取記憶 體(SRAM)。14些與其他的具體實施例都是包含在之 申請專利範圍内。 ° -25-

Claims (1)

  1. 六、申請專利範圍j i、年月日卜'、y 1m-W>^.:'«.« ·=. ‘十 τ*,6. . -ί ...................... 1· -種處理.多重循環指令之方法,其中包括: 在一個管線處理器中接收一個多重循環指令; 將該多重循環指令停滯在管線處理器中之-個管線的 一個階段;並 在孩多重循環指令停滞時發出複數個指令給該管 的後續階段。 2. 如申請專㈣㈣η之方法,該方法還包括在解碼多 重循環指令前偵測一個停滯條件。 3. 如申請專利㈣第2項之方法’其中偵測—個停滞條件 的步驟包括: 判定所接收的指令是否包括一個多重循環指令; 決定多重循環指令所指定之暫存器的個數。 4. 如申請專利範圍第!項之方法,該方法還包括: 在多重循環指令完成前的至少兩個循環前,取消一個 預先停滯信號;以及 在多重循環指令完成前的至少一個循環前,取消一個 停滞信號。 5. 如申請專利第!項之方法,其中停滞多重循環指令 包括停滯多重循環指令在管線中的解碼階段。 6·如申請專利範圍第!項之方法,其中發出複數個指令包 括在該多重循環指令停滯時發出相同的指令若干次。 7.如申請專利範圍第6項之方法,其中發出相同的指令若 干;人包括發出一個壓入指令。 &如申請專利範圍第】項之方法,其中發出複數個指令包 本紙張尺度適财s S家標準(CNS) Α4規格(210X297公着) 8 A
    BCD 括在該多重循環指令停滞時發出若干個不同的指令。 =專利範圍第8項之方法,其中發出若干個不同的 ^括發出壓人-個次常式之返回位址到—個堆最 上:壓入-個框架指標到堆叠上,搬移一個堆疊指標ς 木札才取以及根據次常式的框架大小更新堆疊指標等之 指令。 10.如申請專利範圍第!項之方法,其中發出複數個指令包 括根據一個狀態機發出指令。 11·如申請專利範圍第!項之方法,其中停滞多重循環指令 的步驟包括在多重循環指令指定至少一個退出與壓入超 過個暫存器時主張一個停滞信號。 12·—種處理-多重循環指令之方法,其中包括: 接收一個多重循環指令,該指令指示一個管線處理器 從一個堆疊中退出一或多個暫存器; 將該多重循環指令停滯在一個管線處理器中之一個管 線的一個階段;以及 根據一個狀態機發出複數個指令給該管線中的後續階 段。 13·如申請專利範圍第1 2項之方法,其中當多重循環指令指 疋退出兩個暫存器,並發出複數個指令時包括: 從第一個狀態轉移到第二個狀態並發出第一個退出指 令;以及 從第二個狀態轉移回到第一個狀態並發出第二個退出 指令。 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
    586073 A8 B8 C8 D8 申請專利範圍
    14·如申請專利範圍第1 2項之方法,其中當多重循環指令指 定從一個堆疊中退出三個或更多個暫存器,並發出複數 個指令時包括: 從第一個狀態轉移到第二個狀態並發出第一個退出指 令; 發出若干個退出指令直到剩下兩個暫存器待退出; 仗第一個狀悲轉移到第三個狀態並發出另一個退出指 令以退出第二個到最後一個暫存器;以及 攸弟二個狀悲轉移回到第一個狀態並發出一個退出指 令以退出最後一個暫存器。 15·如申請專利範圍第12項之方法,其中當多重循環指令指 足從一個堆疊中退出多個資料暫存器與多個指標暫存 器,並發出複數個指令時包括: 從第一個狀態轉移到第二個狀態並發出第一個退出指 令以退出一個指標暫存器; 發出若干個退出指令直到剩下一個指標暫存器待退 出; 從第二個狀態轉移到第三個狀態並發出另一個退出指 令以退出最後一個指標暫存器; 發出若干個退出指令直到剩下兩個資料暫存器待退 出; 從第三個狀態轉移到第四個狀態並發出一個退出指令 以退出第二個到最後一個資料暫存器;以及 從第四個狀態轉移回到第一個狀態並發出一個退出指 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 586073 A8 B8 C8
    令以退出最後一個資料暫存器。 16·如申請專利範圍第12項之方法,停滞多重循環指令的步 驟包括在多重循環指令指定退出超過一個暫存 一個停滞信號。 。 推 17·一種處理-多重循環指令之方法,其中包括: …接收個,重循環指令,該冲旨令指示一個管線處理器 壓入一或多個暫存器到一個堆疊上; ° 將泫夕重循環指令停滯在一個管線處理器中之一個管 線的一個階段;以及 根據一個狀態機發出複數個壓入指令給該管線中的後 續階段。 18·如申凊專利範圍第1 7項之方法,其中當多重循環指令指 足壓入兩個暫存器,並發出複數個指令時包括: 從第一個狀態轉移到第二個狀態並發出第一個壓入指 令;與 從第二個狀態轉移回到第一個狀態並發出第二個壓入 指令。 19·如申請專利範圍第1 7項之方法,其中當多重循環指令指 足壓入三個或更多個暫存器到堆疊中,並發出複數個指 令時包括: 從第一個狀態轉移到第二個狀態並發出第一個壓入指 令; 發出若干個壓入指令直到剩下兩個暫存器待壓入; 從第二個狀態轉移到第三個狀態並發出另一個壓入指 -4- 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 586073 A B c D 、申請專利範圍 令以壓入第二個到最後一個暫存器;以及 從第二個狀態轉移回到第一個狀態並發出一個壓入指 令以壓入最後一個暫存器。 9 2〇·如申請專利範圍第17項之方法,其中當多重循環指令指 足壓入多個資料暫存器與多個指標暫存器到一個堆疊 中,並發出複數個指令時包括·· 從第一個狀態轉移到第二個狀態並發出第一個壓入指 令以壓入一個資料暫存器; 發出若干個壓入指令直到剩下一個資料暫存器待壓 入; 從第二個狀態轉移到第三個狀態並發出另一個壓入指 令以壓入最後一個資料暫存器; 發出若干個壓入指令直到剩下兩個指標暫存器待壓 入; 從第二個狀態轉移到第四個狀態並發出一個壓入指令 以壓入第二個到最後一個指標暫存器;以及 從第四個狀態轉移回到第一個狀態並發出一個壓入指 令以壓入最後一個指標暫存器。 21.如申請專利範圍第17項之方法,其中停滯多重循環指令 的步驟包括在多重循環指令指定壓入超過一個暫存器時 主張一個停滯信號。 22·—種用於處理_多重循環指令之裝置,其中包括: 一個具有複數個階段的執行管線;以及 一個多重循環指令控制器,該控制器調適為主張一個 本紙張尺度制+ S S家標準(CNS) A4規格(21GX 297^57 586073
    ^帶信號以停滯多重循環指令進人執行管線的某—個階 焱其中多重循環指令控制器在多重循環指令停滯時發 出複數個指令給管線中之後續的階段。 23·=申請專利範圍第22項之裝置,還包括—個停滞控制 ^停滞担制器接收來自多重循環指令控制器之多重 =指令_器停隸號並產生複數個停滞信二以停滞 '"泉中持有夕重播琢指令的階段與先前的階段。 24.t申請專利範圍第22項之裝置,其中多重循環指令控制 器調適為在多重循環指令停滯時發出若干次相同的指 令0 &如中請專利範_22項之裝置’其中多重循環指令控制 ,調適為發出-個壓人指令以指示管線壓人複數個暫存 器0 26·如申請專利範圍第22項之裝置’其中多重循環指令控制 器調適為在多重循環指令停滞時發出若干個不同的指 令。 27. 如申請專利範圍第22項之裝置,纟中多重循環指令控制 器調適為發出指令以壓入一個次常式之返回位址到一個 堆畳上,壓入一個框架指標到堆疊上,搬移一個堆疊指 標到框架指標以及根據次常式的框架大小更新堆疊指 標。 28. 如申請專利範圍第22項之裝置,其中多重循環指令控制 器在多重循環指令指定退出或壓入超過一個暫存器時主 張停滯信號。 -6 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) ' ------_____ 586073 六、申請專利範圍 29. 一種用於處理-多重循環指令之系統,其中包括: 一個快閃記憶體裝置;與 一個與該快閃記憶體裝置結合之處理器,其中該處理 器包括-個具有複數個階段之執行管線與_個調適為在 執行管線之某-階段主張-個停滞信號以停滯多重循環 指令之多重循環指令控制器;其中多重循環指令控制器 調適為在多重循環指令停滞時發出複數個指令給管線中 之後續的階段。 30. 如申請專利第則之系統,其中處理器含包括一個 停滞控制器’該停滞控制器接收來自多重循環指令控制 器之多重«指令控制器停㈣號並產生複數個停滞信 號以停滯管線中持有多重循環指令的階段與先前 段。 3L如申請專利範圍第29項之系统,其中多重循環指令控制 器賙適為在多重循環指令停滞時發出若干次相同的指 令。 32. 如申請專利範圍第29項之系统,其中多重循環指令控制 2調適為在多重循環指令停滞時發出若干個不同的指 33. 如申請專利範圍第29項之i统,其中多重循環指令控制 器在多重循環指令指定至少一個退出與壓入超過一個暫 存器時主張停滯信號。 34·—種處理-多重循環指令之方法,其中包括: 接收一個連結機器指令; 本紙張尺度適用中國國家標準(CNS) A4規格(21〇χ297公釐) 586073 A8 B8 C8 ------— D8____ 、申請專利範圍 將多重循環指令停滯在一個管線處理器中之一個管線 的一個階段;以及 藉由根據一個狀態機發出複數個指令給該管線中的後 續階段以執行連結指令。 35·如申請專利範圍第3 4項之方法,其中發出複數個指令包 括: 從第一個狀態轉移到第二個狀態並發出一個指令以I 入一個返回位址到一個堆疊上; 從第二個狀態轉移到第三個狀態並發出一個指令以壓 入一個框架指標到堆疊上; 從第三個狀態轉移到第四個狀態並發出一個指令以搬 移一個堆疊指標到框架指標;以及 從第四個狀態轉移回到第一個狀態並發出一個指令以 根據多重循環指令所指定之一個框架的大小更新一個堆 登指標。 36. —種處理-多重循環指令之方法,其中包括: 接收一個解連結機器指令; 將多重循環指令停滯在一個管線處理器中之一個管線 的一個階段;並 藉由根據一個狀態機發出複數個指令給該管線中的後 續階段以執行解連結指令。 37. 如申請專利範圍第36項之方法,其中發出複數個指令包 括: 從第一個狀態轉移到第二個狀態並發出一個指令以回 -8-
    申請專利範
    復一個在堆疊上之返回位址; 從第二個狀態轉移到第三個狀態並發出一個指令以回 復一個堆疊指標;以及 從第二個狀態轉移回到第一個狀態並發出一個指令以 回復一個在堆疊上之框架指標。 38·—種用於處理_多重循環指令之裝置,其中包括: 回應一個多重循環指令之狀態機邏輯,用以控制在一 個管線處理器中發出複數個次工作;與 一個位址產生單元,調適為在該次工作執行期間產生 暫存器位址以供使用。 39.如申請專利範圍第38項之裝置,其中該位址產生單元包 括-個用以增加或減少-個現行暫存器位址之計數器。 4〇·如中請專利範圍第38項之裝置,其中該位址產生單元包 括-個用以儲存一個現行暫存器位址之時脈儲存電路。 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公 -9- 586073 第090130095號專利申請案 中文圖式替換頁(92年7月)
TW090130095A 2000-12-06 2001-12-05 Method, apparatus, and system for executing multi-cycle instructions TW586073B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/731,523 US7472259B2 (en) 2000-12-06 2000-12-06 Multi-cycle instructions

Publications (1)

Publication Number Publication Date
TW586073B true TW586073B (en) 2004-05-01

Family

ID=24939880

Family Applications (1)

Application Number Title Priority Date Filing Date
TW090130095A TW586073B (en) 2000-12-06 2001-12-05 Method, apparatus, and system for executing multi-cycle instructions

Country Status (6)

Country Link
US (1) US7472259B2 (zh)
JP (1) JP3737083B2 (zh)
KR (1) KR100571328B1 (zh)
CN (1) CN1308815C (zh)
TW (1) TW586073B (zh)
WO (1) WO2002046920A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3886870B2 (ja) 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
US7000233B2 (en) * 2003-04-21 2006-02-14 International Business Machines Corporation Simultaneous multithread processor with result data delay path to adjust pipeline length for input to respective thread
US7330988B2 (en) * 2004-06-30 2008-02-12 Sun Microsystems, Inc. Method and apparatus for power throttling in a multi-thread processor
US20060224864A1 (en) * 2005-03-31 2006-10-05 Dement Jonathan J System and method for handling multi-cycle non-pipelined instruction sequencing
US20060282821A1 (en) * 2005-06-10 2006-12-14 Renno Erik K Efficient subprogram return in microprocessors
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US8078846B2 (en) * 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US20090089564A1 (en) * 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities
TW201123732A (en) * 2009-12-31 2011-07-01 Ind Tech Res Inst Processing devices
US8959469B2 (en) 2012-02-09 2015-02-17 Altera Corporation Configuring a programmable device using high-level language
CN107770090B (zh) * 2017-10-20 2020-05-01 深圳市楠菲微电子有限公司 用于控制流水线中寄存器的方法和装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493029A (en) * 1982-05-14 1985-01-08 At&T Bell Laboratories Microprocessor with PLA adapted to implement subroutines
JPS62226231A (ja) * 1986-03-27 1987-10-05 Toshiba Corp プロセツサ
JPS62226234A (ja) * 1986-03-28 1987-10-05 Toshiba Corp スタツクポインタ制御回路
US5185870A (en) * 1987-04-10 1993-02-09 Tandem Computers, Inc, System to determine if modification of first macroinstruction to execute in fewer clock cycles
US5005118A (en) * 1987-04-10 1991-04-02 Tandem Computers Incorporated Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
US5127103A (en) * 1987-10-14 1992-06-30 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
JPH02190930A (ja) * 1988-12-29 1990-07-26 Internatl Business Mach Corp <Ibm> ソフトウエア命令実行装置
JPH02197924A (ja) 1989-01-27 1990-08-06 Matsushita Electric Ind Co Ltd 中央演算処理装置
US5142635A (en) * 1989-04-07 1992-08-25 Intel Corporation Method and circuitry for performing multiple stack operations in succession in a pipelined digital computer
US5253308A (en) * 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
US5193167A (en) * 1990-06-29 1993-03-09 Digital Equipment Corporation Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system
JP2847974B2 (ja) * 1991-01-21 1999-01-20 三菱電機株式会社 データ処理装置
JPH05127894A (ja) 1991-10-30 1993-05-25 Oki Electric Ind Co Ltd 命令実行方式
JPH06161778A (ja) 1992-11-26 1994-06-10 Fujitsu Ltd マルチフロー命令制御方法及び命令処理装置
JPH1091443A (ja) * 1996-05-22 1998-04-10 Seiko Epson Corp 情報処理回路、マイクロコンピュータ及び電子機器
US5923862A (en) 1997-01-28 1999-07-13 Samsung Electronics Co., Ltd. Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions
US5848423A (en) * 1997-04-23 1998-12-08 Sun Microsystems, Inc. Garbage collection system and method for locating root set pointers in method activation records
US5893121A (en) * 1997-04-23 1999-04-06 Sun Microsystems, Inc. System and method for swapping blocks of tagged stack entries between a tagged stack cache and an untagged main memory storage
US6076159A (en) 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline
FR2770659A1 (fr) * 1997-10-31 1999-05-07 Sgs Thomson Microelectronics Processeur de traitement perfectionne
US6349383B1 (en) * 1998-09-10 2002-02-19 Ip-First, L.L.C. System for combining adjacent push/pop stack program instructions into single double push/pop stack microinstuction for execution
CN1100292C (zh) * 1998-10-12 2003-01-29 北京多思科技工业园股份有限公司 指令控制替换方法及其装置
US6209082B1 (en) * 1998-11-17 2001-03-27 Ip First, L.L.C. Apparatus and method for optimizing execution of push all/pop all instructions

Also Published As

Publication number Publication date
CN1308815C (zh) 2007-04-04
JP2004515857A (ja) 2004-05-27
CN1479892A (zh) 2004-03-03
JP3737083B2 (ja) 2006-01-18
US7472259B2 (en) 2008-12-30
WO2002046920A3 (en) 2003-05-08
US20020103991A1 (en) 2002-08-01
KR20030057571A (ko) 2003-07-04
KR100571328B1 (ko) 2006-04-17
WO2002046920A2 (en) 2002-06-13

Similar Documents

Publication Publication Date Title
TW586073B (en) Method, apparatus, and system for executing multi-cycle instructions
TWI223196B (en) Method, apparatus, and system for exception handling in a pipelined processor
US4916652A (en) Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
TW538349B (en) Array searching operations
JP3096427B2 (ja) 複数ロード命令の実行方法、複数ストア命令の実行方法およびマイクロプロセッサ
JP2005182825A5 (zh)
KR100241646B1 (ko) 병행적 멀티태스킹 프로세서 및 프로세서의 병행적 멀티태스킹 방법
US5870582A (en) Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
US6098167A (en) Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
JPH02227731A (ja) データ処理システム
US8370671B2 (en) Saving power by powering down an instruction fetch array based on capacity history of instruction buffer
TW475149B (en) Secondary reorder buffer microprocessor
CA1311563C (en) Information processing system capable of carrying out advanced execution
JP2004511042A (ja) プログラム可能なプロセッサのリセット
JPH0916409A (ja) マイクロコンピュータ
KR100260680B1 (ko) 순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
JPH06295243A (ja) データ処理装置
JPS6161416B2 (zh)
WO2001061480A1 (en) Processor having replay architecture with fast and slow replay paths
CN101615114B (zh) 完成两次乘法两次加法两次位移的微处理器实现方法
TW589574B (en) Use of a future file for data address calculations in a pipelined processor
US20030028756A1 (en) Programmable unit
TWI232401B (en) Method, article, processor and system for providing security on hardware loops
US6918028B1 (en) Pipelined processor including a loosely coupled side pipe

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent