TW586073B - Method, apparatus, and system for executing multi-cycle instructions - Google Patents
Method, apparatus, and system for executing multi-cycle instructions Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims 30
- 230000007704 transition Effects 0.000 claims description 45
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 20
- GZPBVLUEICLBOA-UHFFFAOYSA-N 4-(dimethylamino)-3,5-dimethylphenol Chemical compound CN(C)C1=C(C)C=C(O)C=C1C GZPBVLUEICLBOA-UHFFFAOYSA-N 0.000 description 14
- 230000004044 response Effects 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 206010011469 Crying Diseases 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011257 shell material Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address 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
-
- 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/3836—Instruction 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)
- 六、申請專利範圍j i、年月日卜'、y 1m-W>^.:'«.« ·=. ‘十 τ*,6. . -ί ...................... 1· -種處理.多重循環指令之方法,其中包括: 在一個管線處理器中接收一個多重循環指令; 將該多重循環指令停滯在管線處理器中之-個管線的 一個階段;並 在孩多重循環指令停滞時發出複數個指令給該管 的後續階段。 2. 如申請專㈣㈣η之方法,該方法還包括在解碼多 重循環指令前偵測一個停滯條件。 3. 如申請專利㈣第2項之方法’其中偵測—個停滞條件 的步驟包括: 判定所接收的指令是否包括一個多重循環指令; 決定多重循環指令所指定之暫存器的個數。 4. 如申請專利範圍第!項之方法,該方法還包括: 在多重循環指令完成前的至少兩個循環前,取消一個 預先停滯信號;以及 在多重循環指令完成前的至少一個循環前,取消一個 停滞信號。 5. 如申請專利第!項之方法,其中停滞多重循環指令 包括停滯多重循環指令在管線中的解碼階段。 6·如申請專利範圍第!項之方法,其中發出複數個指令包 括在該多重循環指令停滯時發出相同的指令若干次。 7.如申請專利範圍第6項之方法,其中發出相同的指令若 干;人包括發出一個壓入指令。 &如申請專利範圍第】項之方法,其中發出複數個指令包 本紙張尺度適财s S家標準(CNS) Α4規格(210X297公着) 8 ABCD 括在該多重循環指令停滞時發出若干個不同的指令。 =專利範圍第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月)
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)
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)
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 |
-
2000
- 2000-12-06 US US09/731,523 patent/US7472259B2/en active Active
-
2001
- 2001-12-05 TW TW090130095A patent/TW586073B/zh not_active IP Right Cessation
- 2001-12-06 KR KR1020037007429A patent/KR100571328B1/ko not_active IP Right Cessation
- 2001-12-06 JP JP2002548581A patent/JP3737083B2/ja not_active Expired - Lifetime
- 2001-12-06 WO PCT/US2001/046706 patent/WO2002046920A2/en active IP Right Grant
- 2001-12-06 CN CNB01820175XA patent/CN1308815C/zh not_active Expired - Fee Related
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 |