TWI249131B - Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor - Google Patents

Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor Download PDF

Info

Publication number
TWI249131B
TWI249131B TW93100761A TW93100761A TWI249131B TW I249131 B TWI249131 B TW I249131B TW 93100761 A TW93100761 A TW 93100761A TW 93100761 A TW93100761 A TW 93100761A TW I249131 B TWI249131 B TW I249131B
Authority
TW
Taiwan
Prior art keywords
instruction
signal
queue
clock cycle
microprocessor
Prior art date
Application number
TW93100761A
Other languages
Chinese (zh)
Other versions
TW200414035A (en
Inventor
Thomas C Mcdonald
Original Assignee
Ip First Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ip First Llc filed Critical Ip First Llc
Publication of TW200414035A publication Critical patent/TW200414035A/en
Application granted granted Critical
Publication of TWI249131B publication Critical patent/TWI249131B/en

Links

Landscapes

  • Advance Control (AREA)

Abstract

An apparatus for killing an instruction after it has already been loaded into an instruction queue of a microprocessor is disclosed. The apparatus includes control logic that detects a condition in which the instruction must not be executed, such as a branch instruction misprediction; however, the control logic determines the condition too late to prevent the instruction from being loaded into the instruction queue. The control logic generates a kill signal indicating the instruction must not be executed. A kill queue receives the kill signal and stores its value. The kill queue maintains its entries in parallel with the instruction queue entries so that when the instruction queue subsequently outputs the instruction, the kill queue also outputs the value of the kill signal associated with the instruction. If the kill signal value output from the kill queue is true, then the microprocessor invalidates the instruction and does not execute it.

Description

1249131 _案號93100761_年月日__ 五、發明說明(1) 發明所屬之技術領域 本發明涉及一種微處理器中的指令緩衝,特別是涉及 一種在指令被載入指令緩衝器之後的指令刪除。 本發明是一相關申請,本申請主張美國專利申請第 60/440063號的優先權,該申請於2003年1月14日遞交,其 名稱為用於刪除在前級管線階段中採用分支目標位址快取 記憶體的微處理器中的指令格式化之後被作廢的指令的裝 置及方法(APPARATUS AND METHOD FOR KILLING INSTRUCTIONS DETERMINED INVALID AFTER INSTRUCTION FORMATTING IN A MICROPROCESSOR EMPLOYING A BRANCH TARGET ADDRESS CACHE IN AN EARLY PIPELINE STAGE ) 〇 先前技術 現代微處理器都是管線微處理器。它們可在微處理器 的不同模組或管線階段中同時操作多個指令。H e η n e s s y與 Patterson在其合著書中將管線技術定義為”多個指令重疊 執行的實施技術1f --<<電腦結構:量化方法〉〉,第二版, John L. Hennessy, David A. Patterson 合著,Morgan Kaufmann 出版社,San Francisco, CA, 1 99 6。他們 還提供了如下對於管線技術極佳的形象解釋: 一個管線就像一條流水線。在汽車生產的流水線上,有許 多階段,每個階段給汽車裝配一個零部件。每個階段與其 他階段並行運作,但各自對不同汽車進行裝配。在一個電 腦管線内,每個步驟完成指令的一部分。像流水線一樣,BACKGROUND OF THE INVENTION 1. Field of the Invention The invention relates to an instruction buffer in a microprocessor, and more particularly to an instruction after an instruction is loaded into an instruction buffer. delete. The present invention is a related application, which claims priority to U.S. Patent Application Serial No. 60/440,063, filed on Jan. 14, 2003, which is incorporated herein by reference for APPARATUS AND METHOD FOR KILLING INSTRUCTIONS DETERMINED INVALID AFTER INSTRUCTION FORMATTING IN A MICROPROCESSOR EMPLOYING A BRANCH TARGET ADDRESS CACHE IN AN EARLY PIPELINE STAGE 〇 〇 快 快 快 微处理器 微处理器 APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP APP Prior Art Modern microprocessors are pipeline microprocessors. They can operate multiple instructions simultaneously in different modules or pipeline stages of the microprocessor. H e η nessy and Patterson define pipeline technology as "implementation technique for overlapping execution of multiple instructions in their co-authors 1f --<<computer structure: quantification method", second edition, John L. Hennessy, David A. Patterson, Morgan Kaufmann, San Francisco, CA, 1 99 6. They also provide an excellent visual explanation of the pipeline technology as follows: A pipeline is like a pipeline. There are many pipelines in the production of automobiles. In the phase, each stage is equipped with a component for the car. Each phase operates in parallel with the other phases, but each assembles a different car. In a computer pipeline, each step completes part of the instruction. Like a pipeline,

12829twf1.ptc 第9頁 1249131 案號 93100761 曰 修正 五、發明說明(2) 不同的步驟同 步驟被稱為一 體構成一個完 個階段 同步微處理器 内,指令由一 車流水線上, 麼整條流水線 週期内一個微 時並行完成 個管線階段 整的管線, 最後又另一端輸 (一種 的運算 _一 段間採 缓衝器 空間。 操作, 衝器就 時,指 憶體指 另 理器接 位址並 個順序 根據某 通常被 效率也 個常用 用指令 可在其 例如, 而在管 可發揮 令緩衝 令缺失 一種可 收到一 從目標 位址。 一條件 按時 個微 如果 的生 處理 稱為 會降 來避 緩衝 前後 當管 線1¾ 其作 器可 造成 能的 個分 位址 另外 存在 脈週期 處理器 階段上 產效率 器階段 管線氣 低。 免管線 器,其 管線階 線執行 端的快 用。此 為執行 的影響 管線氣 支指令 取得指 ’如果 與否而 不同 ,或 指令 出, 工作 的管 有工 就會 因沒 泡的 氣泡 常用 段處 階段 取記 種情 階段 Ο 泡產 時, 令, 此分 決定 指令的 管線片 從一端 正像流 。一般 線階段 人沒有 降低。 有指令 現象) 不同 斷。 進入 水線 地, 進行 汽車 同樣 可進 ,那 部分。每個 所有階段連 ,經過管線 上的汽車一 在一個時脈 到下 可進 ,如 行操 麼這 一個。 行操作 果某個 作而被 個微處 此種 成一 中各 樣。 週期 在汽 ,那 時脈 閒置 理器 現象的方法是在管線不同階 結構為佇列結構。一個指令 理速度不同時提供一個緩衝 (如低端)需要指令來進行 憶體中沒有指令時,指令緩 況下,在記憶體讀取的同 提供指令,因此減小快取記 生的原因是分支指令。當處 它必須確定分支指令的目標 而不是從分支指令後的下一 支指令為條件分支指令(如 是否執行此分支指令),處12829twf1.ptc Page 9 1249131 Case No. 93100761 曰 Amendment 5, Invention Description (2) Different steps and steps are called integral to form a phase synchronization microprocessor, the instruction is from a car line, the whole line In the cycle, a pipeline completes the pipeline phase in a micro time, and finally the other end is input. (An operation _ a buffer space between the sections. Operation, when the buffer is on, means that the memory is connected to the address and The order is based on a general efficiency and a commonly used instruction can be used in it, for example, but the tube can be used to make the buffer order missing one can receive a target address. In order to avoid the buffer before and after the buffer, the pipeline can cause the energy of the sub-address. In addition, there is a low cycle in the generator stage of the pulse cycle processor stage. The pipeline-free device, its pipeline line execution end is fast. This is the execution. The impact of the pipeline gas command is obtained, 'if it is different, or if it is commanded, the work will be done because of Bubbles are commonly used in the stage. Take note of the stage. Ο When the bubble is produced, let this point determine that the commanded line piece is flowing from one end. The general line stage is not lowered. There is a command phenomenon) Different. Entering the waterline, the car can also enter, that part. For each phase, the car passing through the pipeline can go in one clock to the next, such as the one. The operation is a slight result of a certain operation. The cycle in the steam, the clock idle mechanism phenomenon is in the different stages of the pipeline structure is a queue structure. When a command speed is different, a buffer (such as the low end) is required to execute the instruction. When there is no instruction in the memory, the instruction is in the memory and the instruction is provided in the memory, so the reason for reducing the cache is Branch instruction. When it must determine the target of the branch instruction instead of the next instruction from the branch instruction as a conditional branch instruction (such as whether to execute this branch instruction),

12829twfl.ptc 第10頁 1249131 _案號93100761_年月日 修正_ 五、發明說明(3) 理器在確定目標位址之外,還必須確定此分支指令是否將 被執行。因為確定目標位址和/或決定是否執行分支指令 的管線階段在取得指令的管線階段之後,所以管線氣泡可 能由此產生。 指令緩衝的確可以減少管線氣泡的數量,但現代微處 理器一般都採用分支預測的機制來提前預測目標位址和/ 或分支指令是否將被執行,以進一步減小此問題。然而, 如果分支預測錯誤,無論因此預測而取得的指令為下一順 序指令或目標位址指令,此指令均不應執行,否則將會產 生錯誤。 更正錯誤地分支指令預測,正是必須將已載入微處理 器的指令加以刪除的一個例子,亦即,不應由管線來執行 此錯誤分支指令。然而,實際情況可能是當指令已經被寫 入指令緩衝器之後才確定其必須被刪除。因此,亟需一種 方案來實現被寫入指令記憶體的指令的刪除。 發明内容 本發明提供一種指令刪除裝置,其用於刪除一個在第 一時脈週期載入微處理器指令佇列而在下一個時脈週期從 佇列底端輸出的指令。其包括:一個刪除信號,用以傳 遞前述第一時脈週期之後的第三時脈週期内產生的值;一 個刪除佇列,與刪除信號合用,用以載入前述第三時脈週 期產生的刪除信號值,並在下一個時脈週期將此值輸出; 一個在第二時脈週期產生的有效性信號,與刪除佇列合 用,用以說明此指令是否需要被微處理器執行。如果刪除12829twfl.ptc Page 10 1249131 _ Case No. 93100761_年月日日 Fix _ V. Invention Description (3) In addition to determining the target address, the processor must also determine whether this branch instruction will be executed. Since the target address and/or the pipeline stage that determines whether to execute the branch instruction is after the pipeline phase of the fetch instruction, the pipeline bubble may be generated thereby. Instruction buffering does reduce the number of pipeline bubbles, but modern microprocessors typically use a branch prediction mechanism to predict in advance whether the target address and/or branch instructions will be executed to further reduce this problem. However, if the branch prediction is incorrect, the instruction fetched regardless of the prediction is the next sequential instruction or the target address instruction, and this instruction should not be executed, otherwise an error will be generated. Correcting an incorrect branch instruction prediction is an example of the need to delete an instruction that has been loaded into the microprocessor, that is, the error branch instruction should not be executed by the pipeline. However, the actual situation may be that the instruction has to be deleted after it has been written to the instruction buffer. Therefore, there is a need for a solution to implement the deletion of instructions written to the instruction memory. SUMMARY OF THE INVENTION The present invention provides an instruction deletion apparatus for deleting an instruction to load a microprocessor instruction queue in a first clock cycle and output from a bottom end of a queue in a next clock cycle. The method includes: a delete signal for transmitting a value generated in a third clock cycle after the first clock cycle; and a delete queue for use in combination with the delete signal for loading the third clock cycle The signal value is deleted and outputted at the next clock cycle; a validity signal generated during the second clock cycle is used in conjunction with the delete queue to indicate whether the instruction needs to be executed by the microprocessor. If deleted

12829twf1.ptc 第11頁 1249131 _案號93100761_年月日 修正_ 五、發明說明(4) 佇列在第二時脈週期輸出的刪除信號值為真,則此有效性 信號值為假。 另一方面,本發明提供一種刪除微處理器中指令的方 法。其包括:在第一時脈週期内將指令載入第一佇列,在 下一個時脈週期内產生一個删除信號並將此删除信號的值 載入另一個佇列;在第三時脈週期内將此指令從第一佇列 的底端輸出,並確定第二佇列中的信號值是否為真,如果 此值為真則執行此指令。 另一方面,本發明提供一種微處理器。其包括:第 一佇列,用來接收指令以進行指令缓衝;一個邏輯,與第 一佇列合用以發現指令不得被微處理器執行的情況,此邏 輯產生一個值為真的信號來說明此情況,此信號在指令被 第一佇列接收後產生;第二佇列,與邏輯合用,用以載入 此真值信號並於第一佇列輸出指令同時輸出此信號。此微 處理器回應此真值信號,作廢相應指令。 另一方面,本發明提供一種電腦可用之傳輸媒體,用 以儲存一資料信號,此資料信號包括電腦可讀的程式碼, 此電腦可讀的程式碼被電腦讀取並執行時,使一裝置可實 現對在第一時脈週期載入微處理器指令佇列而在下一時脈 週期從佇列底端輸出的指令的刪除操作。其中,此電腦可 讀的程式碼包括:第一段程式碼,被電腦讀取並執行時用 以 生刪除信號及傳遞第三時脈週期 生的信號值;第二 段程式碼,被電腦讀取並執行時用以 生刪除佇列,與删 除信號合用,載入第三時脈週期 生的刪除信號,並在第12829twf1.ptc Page 11 1249131 _ Case No. 93100761_年月日日 Correction _ V. Invention Description (4) If the value of the delete signal outputted in the second clock cycle is true, the validity signal value is false. In another aspect, the invention provides a method of deleting instructions in a microprocessor. The method includes: loading an instruction into the first queue during the first clock cycle, generating a delete signal in the next clock cycle, and loading the value of the delete signal into another queue; in the third clock cycle Output this instruction from the bottom of the first queue and determine if the signal value in the second queue is true. If this value is true, execute this instruction. In another aspect, the invention provides a microprocessor. The method includes: a first queue for receiving instructions for instruction buffering; and a logic for combining with the first array to find that the instruction is not executable by the microprocessor, the logic generating a signal indicating that the value is true In this case, the signal is generated after the instruction is received by the first queue; the second queue is used in conjunction with the logic to load the true value signal and output the signal simultaneously in the first array output command. The microprocessor responds to the true value signal and invalidates the corresponding instruction. In another aspect, the present invention provides a computer-usable transmission medium for storing a data signal, the data signal comprising a computer-readable code, the computer-readable code being read and executed by a computer to enable a device A delete operation of an instruction to load a microprocessor command queue in the first clock cycle and output from the bottom end of the queue in the next clock cycle can be implemented. The computer readable code includes: a first piece of code, which is used by a computer to read and execute a signal for deleting and transmitting a signal generated by a third clock cycle; the second code is read by a computer. When the data is fetched and executed, the delete column is used together with the delete signal, and the delete signal generated in the third clock cycle is loaded.

12829twf1.ptc 第12頁 1249131 SS_Ml〇〇761 五、發明說明(5) --±_I-曰 $ X__ 二時脈週期將此刪除传 讀取並執行時用以生^值輸出,第三段程式碼,被雷月《< 用,此有效性信號於第〜=有效性信號,並與刪除佇列= 是否將被微處理器執行了時脈週期生,並用以說明指I 所輸出的刪除信號真,如果刪除佇列在第二時脈週期^ 本發明的一個優&二此有效性信號值將假。 預測機制之類的要求护t於它使得採用指令佇列及如分 式能夠正確執行。另〜7刪除功能的微處理器管線中的程 能夠在後面產生,而=好處在於’本發明使得刪除信蘩 列。 场要額外的管線階段來儲存指令^ 和其他目的、特徵、和優點能更明 佳實施例,並配合所附圖式,作詳 為讓本發明之上返 顯易懂,下文特舉一較 細說明如下: 實施方式: 圖一個微處理器100的結構示意圖。微處 理器1 0 0是一個具備多個管線階段的管線處理器。示意圖 展示了部分階段’包括一個指令階段(I ― s t a g e ) 1 5 1, 一個提取階段(F-stage ) 153, 一個轉譯階段(X-stage ) 155 和一個暫存階段(R-stage ) 157。I-stage 1 5 1包括一個從記憶體或快取記憶體提取指令位元組的階 段。在一種實例中,I - stage 1 51包括了多個階段。F-stage 1 53包括一個將一段未格式化指令位元組格式化的 階段。X-stage 155包括一個將巨集指令轉化為微指令的 階段。R-stage 157包括一個從暫存器檔載入運算元的暫12829twf1.ptc Page 12 1249131 SS_Ml〇〇761 V. Invention description (5) --±_I-曰$ X__ Two clock cycle to read and execute this output to generate ^ value output, the third program Code, by Lei Yue "< use, this validity signal in the ~= validity signal, and delete queue = whether will be executed by the microprocessor clock cycle, and used to illustrate the deletion of the output of the finger I The signal is true, if the deletion is listed in the second clock cycle ^ An excellent & second of this invention, the validity signal value will be false. A requirement such as a predictive mechanism allows it to be executed correctly using a sequence of instructions and as a fraction. The process in the microprocessor pipeline of the other ~7 delete function can be generated later, and the advantage is that the present invention causes the letter buffer column to be deleted. The field requires additional pipeline stages to store instructions and other purposes, features, and advantages to better understand the embodiments, and in conjunction with the drawings, the details of the present invention are readily apparent. The details are as follows: Embodiment: A schematic diagram of the structure of a microprocessor 100 is shown. Microprocessor 100 is a pipeline processor with multiple pipeline stages. The schematic shows a partial phase 'including an instruction phase (I s s a g e ) 155, an extraction phase (F-stage) 153, a translation phase (X-stage) 155 and a temporary phase (R-stage) 157. I-stage 1 5 1 includes a stage for extracting instruction bytes from memory or cache memory. In one example, I-stage 1 51 includes multiple stages. F-stage 1 53 includes a stage for formatting an unformatted instruction byte. The X-stage 155 includes a stage for converting macro instructions into microinstructions. R-stage 157 includes a temporary load of operands from the scratchpad file.

12829twfl.ptc 第13頁 1249131 案號 93100761 曰 修」 五、發明說明(6) 存階段。其他R - s t a g e 1 5 7之後的諸如位址產生,資料, 執行,儲存及結果寫回等微處理器1 〇 〇的執行階段未在圖1 中列出。 微處理器1 0 0在I - s t a g e 1 5 1中包括了一個指令快取記 憶體1 0 4。指令快取記憶體1 〇 4緩衝從與微處理器1 〇 〇合用 的糸統§己憶體中取得的指令。指令快取記憶體1 〇 4接收一 個當前選取位址1 8 1,據此來選擇容量為一個快取線 (cache line)的指令位元組167並將其輸出。在一種實 例中’指令快取記憶體1 0 4係為一多階段快取記憶體,亦 即’指令快取記憶體1 0 4要求多個時脈週期來相應當前選 取位址並輸出一個快取線。 微處理器100在I - stage 151内還包括一個多工器 1 7 8。多工器1 7 8提供當前選取位址1 8 1。多工器1 7 8接收下 一個目標位址1 7 9,此位址係將當前目標位址1 8 1加上指令 快取記憶體1 0 4記憶體所輸出的快取線大小所取得。多工 器1 7 8還將接收一個更正位址1 7 7,此位址明確指出一個供 微處理器1 0 0更正錯誤的分支預測所用的位址。多工器1 7 8 還接收一個預測的分支目標位址1 7 5。 微處理器100在I-stage 151内還包括一個分支目標位 址快取記憶體B T A C 1 0 6,此快取記憶體搞接至多工器 178。BTAC 106回應當前目標位址181並產生一個預測的分 支目標位址175。BTAC 106緩衝儲存執行過的分支指令的 分支目標位址及分支指令位址。在一種實例中,B T A C 1 0 6 包括一個4路組合快取記憶體,並且被選中組合的每一路12829twfl.ptc Page 13 1249131 Case No. 93100761 曰 Repair" V. Description of invention (6) Storage stage. The execution stages of the microprocessor 1 〇 等, such as address generation, data, execution, storage, and result write back, after other R - s t a g e 1 5 7 are not listed in Figure 1. The microprocessor 100 includes an instruction cache memory 1 0 4 in I - s t a g e 1 5 1 . The instruction cache memory 1 〇 4 buffers the instructions fetched from the § 己 体 与 与 微处理器 微处理器 微处理器 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 The instruction cache memory 1 〇 4 receives a currently selected address 1 8 1 , and accordingly selects an instruction byte 167 having a capacity of a cache line and outputs it. In one example, the instruction cache memory 104 is a multi-stage cache memory, that is, the instruction cache memory 104 requires multiple clock cycles to correspondingly select the address and output a fast. Take the line. Microprocessor 100 also includes a multiplexer 1 7 8 within I-stage 151. The multiplexer 1 7 8 provides the currently selected address 1 8 1 . The multiplexer 1 7 8 receives the next target address 1 7 9, which is obtained by adding the current target address 1 8 1 to the size of the cache line output by the instruction cache memory 104 memory. The multiplexer 1 7 8 will also receive a corrected address 177. This address clearly indicates the address used by the branch prediction for the microprocessor 100 correction error. The multiplexer 1 7 8 also receives a predicted branch target address of 1 7 5 . The microprocessor 100 also includes a branch target address cache memory B T A C 1 0 6 in the I-stage 151, and the cache memory is coupled to the multiplexer 178. The BTAC 106 responds to the current target address 181 and generates a predicted branch target address 175. The BTAC 106 buffers the branch target address and branch instruction address of the executed branch instruction. In one example, B T A C 1 0 6 includes a 4-way combined cache memory and each of the selected combinations

12829twf1.ptc 第14頁 1249131 案號 931007fi1 修正 五、發明說明(7) 包含了多個項目,以供儲存目標位址及所預測分支指令的 分支預測資訊。除預測的分支目標位址1 7 5外,BTAC 1 0 6 還輸出分支預測相關資訊1 9 4。在一種實例中,B T A C資訊 1 9 4包括··一個偏移位元,說明當前選取位址1 8 i選中的快 取線的預測的分支指令的首位元組;一條資訊說明預測的 分支指令是否跨越半個快取線;針對選中項目中每個項目 的一個有效位元;一條資訊說明選中組合中的哪一路為最 近所最少使用的路;一條資訊說明選中路中的哪一個為最 近所最少所用的項目;及一個分支指令是否將會被執行的 預測。 微處理器1 0 0還包括控制邏輯1 〇 2。如果當前目標位址 181與BTAC 106中一個執行過的分支指令的有效的快取位 址相符合’並且B T A C 1 〇 6預測此分支指令將會被執行,則 控制邏輯1 02控制多工器1 78來選擇BTAC目標位址1 75。如 果錯誤的分支預測發生,控制邏輯1 〇 2則控制多工器1 7 8選 擇更正位址1 7 7。否則,控制邏輯1 〇 2將控制多工器1 7 8來 選擇下一個目標位址179。控制邏輯102也接受BTAC資訊 194 ° 微處理器100在其I-stage 151内還包括前置解碼邏輯 1 0 8,此前置解碼邏輯1 0 8與指令快取記憶體1 〇 4合用。前 置解碼邏輯1 0 8接收指令快取記憶體丨〇 4提供的指令位元 組1 6 7的快取線及B T A C資訊1 9 4,並據此產生前置解碼資訊 1 6 9。在一種實例中’前置解碼資訊1 6 9包括··與每個指令 位元組相關的一個位元,此位元用來預測此位元組是否為12829twf1.ptc Page 14 1249131 Case No. 931007fi1 Revision 5. Invention Description (7) Contains multiple items for storing the target address and branch prediction information for the predicted branch instruction. In addition to the predicted branch target address 157, BTAC 1 0 6 also outputs branch prediction related information 1 94. In one example, the BTAC information 194 includes an offset bit indicating the first byte of the predicted branch instruction of the cache line currently selected for the address 1 8 i; a piece of information indicating the predicted branch instruction Whether to span half of the cache line; one valid bit for each item in the selected item; a piece of information indicating which of the selected combinations is the least recently used path; a piece of information indicating which of the selected paths is The least recently used item; and a prediction as to whether a branch instruction will be executed. The microprocessor 100 also includes control logic 1 〇 2. If the current target address 181 matches the valid cache address of an executed branch instruction in the BTAC 106 and BTAC 1 预测 6 predicts that the branch instruction will be executed, the control logic 102 controls the multiplexer 1 78 to select the BTAC target address 1 75. If the wrong branch prediction occurs, control logic 1 〇 2 controls the multiplexer 1 7 8 to select the corrected address 1 7 7 . Otherwise, control logic 1 〇 2 will control multiplexer 1 7 8 to select the next target address 179. Control logic 102 also accepts BTAC information. 194 ° Microprocessor 100 also includes predecode logic 1 0 in its I-stage 151, and predecessor logic 1 0 8 is used in conjunction with instruction cache 1 〇 4. The pre-decoding logic 1 0 8 receives the instruction cache 丨〇 4 provided by the instruction bit tuple 1 6 7 cache line and B T A C information 1 9 4, and generates pre-decode information 1 6 9 accordingly. In one example, the pre-decoded information 169 includes one bit associated with each instruction byte, which is used to predict whether the byte is

12829twfl.ptc 第15頁 1249131 --— 案號 93100761 __年月曰 修正__ 五、發明說明(8) BTAC 1 〇 6所預測執行的分支指令的運算代碼;根據預測的 指令長度來預測下一指令長度的多個位元;與每個指令位 凡組相關的一位元,此位元用來預測此位元組是否為指令 的字首位元組;及分支指令輸出結果的預測。 微處理器100在其F-Stage 153内還包括一個指令位元 組緩衝器1 1 2,此緩衝器1丨2與前置解碼邏輯1 〇 8合用。指 令位元組緩衝器1 1 2從前置解碼邏輯1 〇 8接收前置解碼資訊 1 6 9 ’並從指令快取記憶體丨〇 4處接收指令位元組1 6 7。指 令位元組缓衝器1 1 2通過信號1 9 6向控制邏輯1 0 2提供前置 解碼資訊。在一種實例中,指令位元組緩衝器丨丨2能夠缓 衝4個快取線的指令位元組及相關的前置解碼資訊。 微處理器1 0 0還包括指令位元組缓衝控制邏輯1 1 4,其 與指令位元組緩衝器1 1 2合用。指令位元組緩衝控制邏輯 1 1 4控制輸入及輸出指令位元組緩衝器丨丨2的指令位元組及 相關前置解碼資訊資料的流程。指令位元組缓衝控制邏輯 114同時也接收BTAC資訊194。 微處理器100在其F —stage 153内還包括一個指令格式 器1 1 6,其與指令位元組緩衝器丨丨2合用。指令格式器u 6 從指令位元組缓衝器1 1 2處接收指令位元組及前置解碼資 訊1 6 5,並由此產生格式化指令丨9 7。即,指令格式器u 6 查閱從指令位元組緩衝器1 1 2内一個指令位元組的字串, 確定哪些位元組包含下一個指令及指令長度,並將下一指 令作為格式化後指令1 9 7輸出。在圖1所示實例中,指令格 式器11 6包括了 一個組合邏輯,此邏輯查閱指令位元組緩12829twfl.ptc Page 15 1249131 --- Case No. 93100761 __ Year Month 曰 Correction __ V. Invention Description (8) BTAC 1 〇6 operation code of the branch instruction predicted to be executed; predict the next according to the predicted instruction length A plurality of bits of an instruction length; a bit associated with each instruction bit group, the bit element is used to predict whether the byte is the prefix of the instruction; and the prediction of the output of the branch instruction. Microprocessor 100 also includes an instruction byte buffer 112 in its F-Stage 153, which is used in conjunction with pre-decoding logic 1 〇 8. The instruction byte buffer 1 1 2 receives the pre-decode information 1 6 9 ' from the pre-decode logic 1 〇 8 and receives the instruction byte 1 167 from the instruction cache 丨〇 4. The instruction byte buffer 1 1 2 provides pre-decode information to control logic 1 0 2 via signal 196. In one example, the instruction byte buffer 丨丨2 is capable of buffering the instruction byte of the four cache lines and associated pre-decode information. Microprocessor 100 also includes instruction byte buffer control logic 1 1 4 that is used in conjunction with instruction byte buffer 1 1 2 . The instruction byte buffer control logic 1 1 4 controls the flow of the instruction byte of the input and output instruction byte buffer 丨丨2 and the associated pre-decoded information material. The instruction byte buffer control logic 114 also receives the BTAC information 194. Microprocessor 100 also includes an instruction formatter 1 1 6 in its F-stage 153 for use with instruction byte buffer 丨丨2. The instruction formatter u 6 receives the instruction byte and the predecoded message 165 from the instruction byte buffer 1 1 2 and thereby generates a format instruction 丨97. That is, the instruction formatter u 6 refers to the string of an instruction byte from the instruction byte buffer 1 1 2, determines which bytes contain the next instruction and the instruction length, and formats the next instruction as Command 1 9 7 output. In the example shown in Figure 1, the instruction format 116 includes a combinational logic that consults the instruction byte

12829twf1.ptc12829twf1.ptc

第16頁 1249131 __案號93100761_年月日 修正_ 五、發明說明(9) 衝器1 1 2提供的指令位元組1 6 5並在同一個時脈週期内輸出 格式化後指令1 9 7。在一種實例中,格式化後的指令1 9 7所 提供的格式化後的指令包含了充分符合X 8 6結構指令組合 的指令。在一種實例中,格式化後的指令又被稱作由巨集 指令轉化成的可由微處理器1 0 0管線執行階段所執行的微 指令。格式化後指令197是在F-stage 153内產生的。每次 指令格式器1 1 6輸出一個格式化後指令1 9 7,指令格式器 116產生一個值為真的F_new_instr 152信號來說明格式化 後指令1 9 7包含一個有效的格式化後的指令。另外,指令 格式器116通過一個信號F_instr_info 198輸出格式化後 指令1 9 7的相關資訊,並將此信號提供給控制邏輯1 〇 2。在 一種實例中,信號F 一 i n s t r 一 i n f ο 1 9 8包括:一個預測資訊 (如果此指令為分支指令),此預測資訊說明分支指令是 否被執行;一個指令的字首;此指令的位址是否命中在微 處理器分支位址緩衝記憶體内;是否此指令為一個遠距直 接分支指令(far direct branch instruction);是否 此指令為一個遠距間接分支指令(far indirect branch instruction);是否此指令為一個調用分支指令(call branch instruction); 是否此指令為一個返回分支指令 (return branch instruction);是否此指令為一個長 距轉移返回分支指令(far return branch instruction);是否此指令為一無條件分支指令 (unconditional branch instruction );及是否此指令 為一條件分支指令(conditional branchPage 16 1249131 __ Case No. 93100761_ Year Month Day Correction _ V. Invention Description (9) The instruction byte 1 1 5 provided by the processor 1 1 2 outputs the formatted instruction 1 in the same clock cycle. 9 7. In one example, the formatted instruction provided by the formatted instruction 197 includes instructions that are sufficiently compliant with the X 8 6 structure instruction combination. In one example, the formatted instructions are also referred to as microinstructions that are converted by the macro instructions and that are executable by the microprocessor 1000 pipeline execution stage. The formatted instruction 197 is generated within the F-stage 153. Each time the instruction formatter 1 16 outputs a formatted instruction 197, the instruction formatter 116 generates a true F_new_instr 152 signal to indicate that the formatted instruction 197 contains a valid formatted instruction. In addition, the instruction formatter 116 outputs the relevant information of the formatted instruction 197 via a signal F_instr_info 198 and supplies this signal to the control logic 1 〇 2. In one example, the signal F - instr - inf ο 1 9 8 includes: a prediction information (if the instruction is a branch instruction), the prediction information indicating whether the branch instruction is executed; the prefix of an instruction; the address of the instruction Whether it is in the microprocessor branch address buffer memory; whether the instruction is a far direct branch instruction; whether the instruction is a far indirect branch instruction; whether this is The instruction is a call branch instruction; whether the instruction is a return branch instruction; whether the instruction is a far return branch instruction; whether the instruction is unconditional An unconditional branch instruction; and whether the instruction is a conditional branch

12829twf1.ptc 第17頁 1249131 _案號 93100761 _年月日_修正 _ 五、發明說明(10) instruction )。另外,指令格式器1 1 6通過當前指令指 標C I P信號1 8 2輸出袼式化的指令的位址,此位址等於前一 指令之位址加上前一指令長度。 微處理裔100在其X — stage 155内還包括一個格式化後 的指令佇列F I Q 1 8 7。格式化後的指令佇列1 8 7從指令格式 器1 1 6處接收格式化後指令1 9 7。格式化後的指令佇列1 8 7 還通過一個早期信號(ear 1 y 0 ) 1 9 3輸出條格式化後的指 令。另外,格式化後的指令佇列1 8 7通過一個信號 X一r e 1 - i n f ο 1 8 6從控制邏輯1 〇 2處接收相關由格式化後指 令197所獲格式化後指令的資訊。X_rel_info 186是在X-stage 155内產生的。格式化後的指令佇列187還通過 lateO 信號191輸出其由earl y〇 信號193輸出格式化後的 指令的相關資訊。格式化後的指令仔列1 8 7及X _ r e 1 _ i n f 〇 1 8 6將在下面做詳細闡述。 微處理器1 0 0還包括格式化後指令佇列F I Q的控制邏輯 1 1 8。F I Q控制邏輯1 1 8從指令格式器1 1 6處接收信號 F_new_instr 152cFIQ控制邏輯118產生一個真值信號 F I Q _ f u 1 1 1 9 9,並在格式化後的指令佇列1 8 7滿時,將此 信號發送給指令格式器1 1 6。F I Q控制邏輯1 1 8還產生一個 e sh i f t信號1 6 4,用來控制格式化後的指令佇列1 8 7内指令 的輪換。FIQ控制邏輯118還產生多個e load信號1 62,用來 控制從格式化後指令1 9 7向空的格式化後的指令佇列1 8 7項 目載入指令。在一種實例中,F I Q控制邏輯1 1 8為每一個格 式化後的指令佇列187的項目產生一個e load信號162。在12829twf1.ptc Page 17 1249131 _ Case No. 93100761 _年月日日_修正 _ V. Invention description (10) instruction ). In addition, the instruction formatter 1 16 outputs the address of the formatted instruction via the current instruction index C I P signal 1 8 2 , which is equal to the address of the previous instruction plus the previous instruction length. The microprocessor 100 also includes a formatted command queue F I Q 1 8 7 in its X-stage 155. The formatted command queue 1 8 7 receives the formatted command 1 9 7 from the instruction formatter 1 1 6 . The formatted command queue 1 8 7 also passes an early signal (ear 1 y 0 ) 1 9 3 output strip formatted instruction. In addition, the formatted command queue 1 8 7 receives information relating to the formatted instruction obtained by the formatted command 197 from the control logic 1 〇 2 via a signal X_r e 1 - i n f ο 1 8 6 . X_rel_info 186 is generated within X-stage 155. The formatted command queue 187 also outputs its associated information of the formatted command output by the earl y signal 193 via the lateO signal 191. The formatted instructions 1 8 7 and X _ r e 1 _ i n f 〇 1 8 6 will be explained in detail below. Microprocessor 100 also includes control logic 1 1 8 of the formatted instruction queue F I Q . The FIQ control logic 1 1 8 receives the signal F_new_instr from the instruction formatter 1 16 152cFIQ control logic 118 generates a true value signal FIQ _ fu 1 1 1 9 9 and when the formatted command queue 1 8 7 is full, This signal is sent to the instruction formatter 1 16 . The F I Q control logic 1 1 8 also generates an e sh i f t signal 1 6 4 for controlling the rotation of the instructions in the formatted command queue 1 8 7 . The FIQ control logic 118 also generates a plurality of e load signals 1 62 for controlling the loading of instructions from the formatted instruction 197 to the empty formatted instruction queue 187. In one example, F I Q control logic 1 18 generates an e load signal 162 for each of the formatted instruction queues 187. in

12829twfl.ptc 第18頁 1249131 __案號 93100761___年月 J_ίΐί:___ 五、發明說明(11) 一種實例中,格式化後的指令佇列1 8 7包括1 2個項目,每 一個項目儲存^^條格式化後的巨集4a令。但疋’為了使示 意圖簡明清楚,圖1至圖3中的格式化後的指令佇列1 8 7僅 展示3個項目;因此圖1展現3個e load信號1 62,其可標為 e 1 〇 a d [ 2 : 0 ] 〇 F I Q控制邏輯11 8還為每一個格式化後的指令佇列1 8 7 的項目保持一個有效位元1 3 4。圖1所示實例包含了 3個有 效位元,分別標示為FV2, FV1,和FVO qFVO 134與格式 化後的指令佇列1 87最低端項目相對應;FV 1 1 34與格式化 後的指令佇列1 8 7中間項目相對應;而F V 2 1 3 4與格式化後 · 的指令佇列1 8 7最高端項目相對應。F I Q控制邏輯1 1 8還輸 ® 出一個信號F _ v a 1 i d 1 8 8,在一種實例中,此信號即為F V 0 w 1 3 4。有效位元1 3 4說明格式化後的指令佇列1 8 7對應的項 目是否包含一個有效的指令。F I Q控制邏輯1 1 8還接收一個 XIQ—ful1 信號1 95。 微處理器100在其X-stage 155内還包括一個指令轉譯 器1 3 8,與格式化後的指令佇列1 8 7合用。指令轉譯器1 3 8 從格式化後的指令佇列187處通過一個ear lyO信號193接收 一個格式化後的指令,並將此格式化後的巨集指令轉譯成 一個或多個微指令1 7 1。在一個實例中,微處理器1 〇 〇包括 了 一個精簡指令集電腦(r I SC )核心,用來執行原始的或 ▼ 簡化的指令集。在圖1所示實例中,指令轉譯器1 3 8包括了鲁, 組合邏輯:以通過early〇 193來接收格式化後的巨集指 令’並在同一時脈週期内輸出轉譯後的微指令丨7 1。即,12829twfl.ptc Page 18 1249131 __ Case No. 93100761___Year Month J_ίΐί:___ V. Invention Description (11) In one example, the formatted command queue 1 8 7 includes 12 items, each item is stored ^ ^ The formatted macro 4a order. However, in order to make the schematic clear and concise, the formatted command queues in Figures 1 to 3 show only three items; therefore, Figure 1 shows three e load signals 1 62, which can be labeled e 1 〇ad [ 2 : 0 ] 〇 FIQ Control Logic 11 8 also maintains a valid bit 1 3 4 for each formatted instruction queue 1 8 7 item. The example shown in Figure 1 contains three valid bits, denoted as FV2, FV1, and FVO qFVO 134, respectively, corresponding to the formatted instruction queue 1 87 lowest-end item; FV 1 1 34 and the formatted instruction The queue 1 8 7 corresponds to the intermediate item; and the FV 2 1 3 4 corresponds to the formatted command column 1 8 7 highest-end item. The F I Q control logic 1 1 8 also outputs a signal F _ v a 1 i d 1 8 8 , which in one example is F V 0 w 1 3 4 . The valid bit 1 3 4 indicates whether the formatted instruction queue 1 8 7 corresponds to whether the item contains a valid instruction. The F I Q control logic 1 1 8 also receives an XIQ-ful1 signal 1 95. Microprocessor 100 also includes an instruction translator 138 in its X-stage 155 for use with the formatted command queue 187. The instruction translator 1 3 8 receives a formatted instruction from the formatted instruction queue 187 via an early lyO signal 193 and translates the formatted macro instruction into one or more microinstructions 1 7 1. In one example, the microprocessor 1 includes a reduced instruction set computer (r I SC ) core for executing the original or ▼ simplified instruction set. In the example shown in FIG. 1, the instruction translator 138 includes Lu, combinatorial logic: to receive the formatted macro instruction 'by early〇 193' and output the translated micro-instruction in the same clock cycle丨7 1. which is,

12829twf1.ptc 第19頁 1249131 — 案號 93100761 _^^_g_修正_ 五、發明說明(12) 無論指t轉譯器138的輸入是否包含有效的巨集指令,它 均會在每一個時脈週期對其輸入端資訊進行轉譯。 微處理器100在其X — stage 155内還包括一個轉譯後的 指令狩列X I Q 1 5 4,與指令轉譯器1 3 8合用。X I Q 1 5 4緩衝 由指令轉譯器138處接收的微指令171 〇xiq 154還緩衝由 格式化後的指令佇列1 8 7處通過1 a t e 0信號1 9 1接收到的相 關資訊。此資訊與微指令丨7 1轉譯之前的格式化後的巨集 指令相關’因此也與微指令丨7 1相關。此相關資訊被微處 理器1 0 0的執行階段用來執行相關的微指令丨7 1。在一種實 例中,X I Q 1 5 4包括4個項目,而在另外的實例中,X I q 1 5 4分別包括6個或者8個項目。然而,為簡明清楚起見, 圖1 所示X I Q 1 5 4僅包含3個項目。 微處理器100還包括XIQ控制邏輯156,與XIQ 154合 用。XIQ控制邏輯156接收F—valid信號188並產生XIQ_full 信號195。XIQ控制邏輯156還產生X — load信號164來控制轉 譯後的微指令1 7 1及相關資訊載入至X I Q 1 5 4中。X I Q控制 邏輯1 56還產生X_sh i f t信號1 1 1來控制微指令在X I Q 1 54内 的向下轉移。XIQ控制邏輯156還為XIQ 154的每一個輸入 保持一個有效位元1 4 9。圖1所示實例包括3個有效位元, 分別標記為XV 2, XVI和XV0。XV0 149對應XIQ 1 54低端項 目的有效位元;XVI 149對應XI Q 154中端項目的有效位 元;X V 2 1 4 9對應XI Q 1 5 4高端項目的有效位元。X I Q控制 邏輯1 5 6還輸出一個X _ v a 1 i d信號1 4 8,在一種實例中,此 信號即為X V 0 1 4 9。有效位元1 4 9說明一個X I Q 1 5 4内對應12829twf1.ptc Page 19 1249131 — Case number 93100761 _^^_g_Correction _ V. Description of the invention (12) Regardless of whether the input of the t-translator 138 contains a valid macro instruction, it will be in every clock cycle. Translate the input information. The microprocessor 100 also includes a translated instruction X 1 Q 1 5 4 in its X-stage 155 for use with the instruction translator 138. X I Q 1 5 4 Buffer The microinstruction 171 〇xiq 154 received by the instruction translator 138 also buffers the relevant information received by the formatted instruction queue 1 8 7 through the 1 a t e 0 signal 1 9 1 . This information is related to the formatted macro instruction prior to the translation of the microinstruction 17 1 and is therefore also associated with the microinstruction 丨7 1 . This related information is used by the execution stage of microprocessor 10 to execute the associated microinstruction 丨7 1 . In one example, X I Q 1 5 4 includes 4 items, while in another example, X I q 1 5 4 includes 6 or 8 items, respectively. However, for the sake of brevity and clarity, X I Q 1 5 4 shown in Figure 1 contains only 3 items. Microprocessor 100 also includes XIQ control logic 156 for use with XIQ 154. The XIQ control logic 156 receives the F-valid signal 188 and generates an XIQ_full signal 195. The XIQ control logic 156 also generates an X-load signal 164 to control the translated microinstructions 171 and related information to be loaded into the X I Q 1 5 4 . The X I Q control logic 1 56 also generates an X_sh i f t signal 1 1 1 to control the downward transfer of the microinstruction within X I Q 1 54. The XIQ control logic 156 also maintains a valid bit 1 4 9 for each input of the XIQ 154. The example shown in Figure 1 includes 3 valid bits, labeled XV 2, XVI and XV0, respectively. XV0 149 corresponds to the valid bit of the low-end item of XIQ 1 54; XVI 149 corresponds to the effective bit of the middle item of XI Q 154; X V 2 1 4 9 corresponds to the effective bit of the high-end item of XI Q 1 5 4 . The X I Q control logic 1 5 6 also outputs an X _ v a 1 i d signal 1 4 8, which in one example is X V 0 1 4 9 . The valid bit 1 4 9 indicates an internal X I Q 1 5 4 corresponding

12829twf1.ptc 第20頁 1249131 案號 93100761 _Ά 曰 修正 五、發明說明(13) 的項目是否包含一個有效的轉譯後的微指令。 微處理器100在其X-Stagel55内還包括一個2輸入的多 工裔172 ’其係麵接至XIQ154。多工器172作為一個選擇 性地旁路X I Q 1 5 4的旁路多工器運作。多工器丨7 2在一個輸 入端接收XIQ 154的輸出,而在另一端接收XIq 154的輸入 信號,如微指令171及late〇 191。多工器172在XIQ控制邏 輯1 5 6產生的一個控制信號丨6 1輸入的控制下選擇其所接受 的一個輸入,並將其輸出至卜3 tagel 57内的一個執行階段 暫存器1 7 6。如果執行階段暫存器丨7 6狀態為可接收一條指 令’且當指令轉譯器丨3 8輸出微指令丨n時乂丨q 1 5 4為空, 則f工器i7 2在x 1Q控制邏輯1 5 6控制下旁路X 1 Q 1 5 4。微處 理器1〇〇還包括一個有效位元暫存器RV 189,此暫存器189 從XIQ控制邏輯156處接收χ — vai id信號148,並以此說明儲 存於執行階段暫存器1 7 6的微指令及相關資訊是否有效。 格式化後的指令佇列1 87包括:早期佇列丨32,用來 儲存通過袼式化後指令信號丨9 7接收到的格式化後的巨集 指令;一個相對應的晚期佇列146,用來儲存通過 /、 X_r el 一:info信號186接收到的相關資訊。圖i顯示早期佇列12829twf1.ptc Page 20 1249131 Case No. 93100761 _Ά 修正 Amendment 5. Does the project of the invention (13) contain a valid translated microinstruction. The microprocessor 100 also includes a 2-input multi-working 172' in its X-Stagel 55 that is attached to the XIQ 154. The multiplexer 172 operates as a bypass multiplexer that selectively bypasses the X I Q 1 5 4 . The multiplexer 丨 7 2 receives the output of the XIQ 154 at one input and the input signals of the XIq 154 at the other end, such as the microinstruction 171 and the later 191. The multiplexer 172 selects an input it accepts under the control of a control signal 丨6 1 input from the XIQ control logic 156 and outputs it to an execution stage register in the 3 tagel 57. 6. If the execution stage register 丨7 6 state is to receive an instruction 'and when the instruction translator 丨3 8 outputs the micro instruction 丨n 乂丨q 1 5 4 is empty, then the f i7 2 is in the x 1Q control logic 1 5 6 Control the bypass X 1 Q 1 5 4. The microprocessor 1A further includes a valid bit register RV 189, which receives the χ-vai id signal 148 from the XIQ control logic 156, and stores the instructions in the execution stage register 7 6 micro-instructions and related information is valid. The formatted command queue 1 87 includes an early queue 32 for storing the formatted macro instruction received by the modified command signal 丨97; a corresponding late queue 146, It is used to store related information received through the /, X_r el a: info signal 186. Figure i shows the early queue

1249131 ^號 931007fi1 年 月 曰 修正 五、發明說明(14) _ — L E 0 ° L E 0為晚期符列1 4 6的低端項目;[e 1為晚期仔列 1 4 的中端項目;LE2為晚期佇列1 46的高端項目。le〇的 内容提供作為輸出信號181^〇 191。 哭 格式/匕後的指令佇列1 8 7還包括一個暫存器1 8 5。暫存 為1 8 5在^第一時脈週期末尾從F 1 Q控制邏輯1 1 8處接收 5 \信號164,並在下一個時脈週期通過一個1shi f t信 ^168來輸出第一時脈週期接收到的_^信號164的值。 上f的指令件列1 8 7還包括3個暫存器1 8 3。暫存器1 8 3 栌啼脈週期末尾從FIQ控制邏輯1 18處接收el〇ad[2: 〇] 142來輸出月丨通過一個11〇ad[2:〇]信號 守脈週期接收到的eload[ 2 : 0 ]信號162的 「2.01 仁’Zf 器185 和 183 分別將eshift 信號164 及eload 在 J延遲一個時脈週期輸出。 庳微指人=ί,中,X一rel一inf0 186包括:用來轉譯成對 式化後的巨集指令的長度;-個對此巨集指 置;此】Ϊ i,快取線的說明;此巨集指令的一個存放位 標;及在ϊΐίϋ:個當前位置;此巨集指令的指令指 關分支預測的Ϊ7被預測為分支指令的情況下與各種相 在二個ί彳κ,此資訊為分支預測的更正。 用來預测分1二=,與分支預測及更正相關的資訊包括: 預測分支指八Γ々是否會被執行的分支歷史表資訊;用來 一部分;用^ ί ΐ會被執行的分支指令的線性指令指標的 以藉此預測分立、Γ述線性指令指標進行互斥或邏輯演算, 又指令是否會被執行的一個分支樣式;在分1249131^号931007fi1 年月曰 Revision 5, invention description (14) _ — LE 0 ° LE 0 is the low-end item of the late stage 1 4 6; [e 1 is the mid-end item of the late stage 1 4; LE2 is The high-end project of the late stage 1 46. The content of le〇 is provided as an output signal 181^〇 191. The crying format/detailed command queue 1 8 7 also includes a scratchpad 1 8 5 . The temporary memory is 1 8 5 receives the 5 \ signal 164 from the F 1 Q control logic 1 1 8 at the end of the first clock cycle, and outputs the first clock cycle through a 1 shift signal 168 at the next clock cycle. The value of the received _^ signal 164. The command column 1 8 of the upper f also includes 3 registers 1 8 3 . The register 1 8 3 receives the el〇ad[2: 〇] 142 from the FIQ control logic 1 18 at the end of the pulse period to output the eload received by the 11〇ad[2:〇] signal pulse period. [2:0] The "2.01 Ren' Zf 185 and 183 of signal 162 respectively output the eshift signal 164 and eload delayed by one clock cycle in J. 庳微指人=ί,中,X一rel一inf0 186 includes: The length of the macro instruction used to translate into a pair; a set of this macro; this] Ϊ i, the description of the cache line; a storage location of this macro instruction; and in ϊΐ ϋ ϋ: Current position; the instruction of this macro instruction refers to the prediction that the branch prediction is 为7 is predicted as the branch instruction and the various phases are in two 彳κ, this information is the correction of the branch prediction. Information related to branch predictions and corrections includes: a branch branch history table information that predicts whether a branch is going to be executed; a portion; a linear instruction indicator that uses a branch instruction that is executed by ^ ί 以 to predict the separation Describing linear instruction indicators for mutual exclusion or logical calculus, and whether the instruction is A branch pattern is performed; in minutes

1249131 _ 案號 931007611249131 _ case number 93100761

五、發明說明(15) 支預測錯誤的情況下用以回溯的第二分支樣 >、V. Description of the invention (15) The second branch sample used for backtracking in the case of a prediction error >

分支指令特徵的標誌位元,如:此分支指令:不,祝明 =指令,一調用指令,-個返回堆疊的,二::: 刀支,一個間接分支,及分支指令結果的預測是 I 預測器所做;相關BTAC 1 0 6所做預測的各種次 ^ I二 選取位址1 8 1是否對應一個BTAC 1 0 6内部位址貝/此對如寐备刖 址是否有效’分支指令被預測為執行或是不執行,被位 目標位址181選中的BTAC 106組合的最近使用的項目田J 果指令的執行要求BTAC 106進行更新,應替換中’人 哪-個項目,即BTAC 1〇6輸出的目標位址的 中’ X一re 1— inf 〇 186的一部分是在前一個時脈週二峰 的’並與在此巨集指令被由早期佇列丨3 2的項目ee〇 ΐϋΪίί1。93提供之後一個時脈週期產生的相關資訊一 微處理器100在其X-Stagel55内還包括一個刪除佇列 如^/、/絲輕接至FIQ控制邏輯118。刪除佇列H5儲存一個由 =盔^輯1 〇 2產生的刪除信號1 4 1。控制邏輯1 0 2產生一個 值為真的刪除信號141來說明早期佇列132在前一 期所接收到的格式化後指令信號丨9 7所包含的的巨、^ ° ,能被微處理器100執行。刪除佇 5 式、‘/ 3個項目,分別標記為ΚΕ2、KE1及ΚΕ〇,並與“丁所列示匕格各 式化f的指令佇列丨87項目相對應。ΚΕ〇為刪 人口項目,κΕ1為刪除仔列的中端項目,ΚΕ2為删除\宁勺==The flag bit of the branch instruction feature, such as: this branch instruction: no, Zhu Ming = instruction, a call instruction, - return to the stack, two::: knife branch, an indirect branch, and the prediction of the branch instruction result is I The predictor does; the relevant BTAC 1 0 6 predictions of the various times ^ I 2 select the address 1 8 1 corresponds to a BTAC 1 0 6 internal address shell / this pair if the backup address is valid 'branch instruction is It is predicted that execution or non-execution, the execution of the most recently used project of the BTAC 106 combination selected by the bit target address 181 requires the BTAC 106 to be updated, and the "people-item", ie, BTAC 1 should be replaced. 〇6 output of the target address in the 'X-re 1—inf 〇 186 part of the peak of the previous clock on the 'the same time as the ee in this macro instruction is 由 丨 3 2 ΐϋΪίί1.93 provides information about the subsequent clock cycle. The microprocessor 100 also includes a delete queue, such as ^/, / in the X-Stagel 55, to the FIQ control logic 118. The delete queue H5 stores a delete signal 1 4 1 generated by = Helmet 1 〇 2. The control logic 1 0 2 generates a value delete signal 141 to indicate that the formatted command signal 丨97 received by the early queue 132 in the previous stage can be used by the microprocessor. 100 execution. Delete 伫5, '/ 3 items, which are marked as ΚΕ2, KE1, and ΚΕ〇, respectively, and correspond to the “List of 各 各 各 各 各 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨 丨, κ Ε 1 is the middle item of the delete column, ΚΕ 2 is deleted \ 宁 spoon ==

1249131 _案號 93100761 _本月日 倐正___ 五、發明說明(16) 頂端入口項目。如圖4、5、6所示,ΚΕ0的内容由輸出信號 k i 1 1 0 1 4 3提供。删除佇列1 4 5接收1 1 〇 a d [ 2 : 0 ]信號1 4 2, 1 s h i f t信號1 6 8及e s h i f t信號1 6 4,用來控制刪除件列1 4 5 的載入及轉換。在以下對圖4、5、6的闡述中將進一步解 釋刪除佇列。 控制邏輯1 02根據從BTAC資訊1 94、predecode Jnf0 196、F一instr_info 198和當前指令指標182發現的不同情 況產生一個真值信號。一種情況是察覺BTAC 1 06錯誤預測 一個分支指令。在一種實例中,BT AC 1 0 6因錯誤預測分支 指令的長度,如預測的指令長度不同於指令格式器1丨6所 確認的長度,而造成對分支指令的錯誤預測。在一種實例 中,BTAC 106因錯誤預測一個普通指令為分支指令而造成 分支指令的錯誤預測,例如BTAC 1 06預測一條指令為分支 指令,而指令格式器1 1 6確認其非分支指令。在一種實例 中,BTAC 1 06因錯誤預測分支指令的位址而造成分支指令 的錯誤預測,例如所預測由BTA C 1 0 6輸出的指令偏移位^ 與被B T A C 1 0 6用來做此預測的選取位址1 8 1的和不等於於 令格式器1 1 6所產生的指令位址1 8 2。 曰 在一種實例中,當BTAC 1 0 6進行預測時,被錯誤預 的指令與後續指令必須被刪除;因此,控制邏輯1 0 2針對、 每一個需要被刪除的指令產生一個值為真的刪除信號 1 4 1。控制邏輯1 0 2在指令被提供給指令格式器n 6之後 一個時脈週期產生刪除信號丨4 1。另外,控制邏輯丨〇 2通、= 一個作廢信號1 47來提供資訊以作廢產生錯誤預測的βΤα^1249131 _ Case No. 93100761 _ This Month 倐 ___ V. Invention Description (16) Top entry item. As shown in Figures 4, 5 and 6, the content of ΚΕ0 is provided by the output signal k i 1 1 0 1 4 3 . Delete queue 1 4 5 Receive 1 1 〇 a d [ 2 : 0 ] Signal 1 4 2, 1 s h i f t Signal 1 6 8 and e s h i f t Signal 1 6 4, used to control the loading and conversion of the delete column 1 4 5 . The deletion queue will be further explained in the following description of Figures 4, 5 and 6. Control logic 102 generates a true value signal based on the different conditions found from BTAC information 194, predecode Jnf0 196, F-instr_info 198, and current command indicator 182. One situation is to detect that the BTAC 1 06 mispredicts a branch instruction. In one example, BT AC 1 6 6 incorrectly predicts the length of the branch instruction, such as the predicted instruction length being different from the length confirmed by instruction formatter 1-6, resulting in erroneous prediction of the branch instruction. In one example, BTAC 106 causes a misprediction of a branch instruction by erroneously predicting that a normal instruction is a branch instruction. For example, BTAC 06 predicts an instruction as a branch instruction, and instruction formatter 161 confirms its non-branch instruction. In one example, BTAC 106 causes erroneous prediction of the branch instruction due to erroneous prediction of the address of the branch instruction, such as the instruction offset bit ^ predicted by BTA C 1 0 6 is used to do this by BTAC 1 0 6 The sum of the predicted selected address 1 8 1 is not equal to the instruction address 1 8 2 generated by the formatter 1 16 .一种 In one example, when BTAC 1 0 6 is predicted, the error pre-command and subsequent instructions must be deleted; therefore, control logic 1 0 2 generates a true deletion for each instruction that needs to be deleted. Signal 1 4 1. The control logic 1 0 2 generates a delete signal 丨 4 1 after a command is supplied to the instruction formatter n 6 . In addition, the control logic 丨〇 2 pass, = an invalid signal 1 47 to provide information to invalidate the β Τ α ^ which produces the erroneous prediction

1249131 _奢號 93100761 一_±——3-§ 修正_ 五、發明說明(17) 1 0 6的項目。當控制邏輯1 0 2作廢做錯誤預測的BTAC 1 0 6項 目後,控制邏輯1 02控制多工器1 78來選擇更正位址1 77以 便重新獲取被錯誤預測的指令及其後續指令,藉此以更正 原先的錯誤預測。因為此時BTAC 1 06内做錯誤預測的項目 已無效,B T A C 1 0 6不會再預測上次被錯誤預測的指令為被 執行的分支指令;因此’無論此指令是否為分支指令,它 均會被指令格式器1 1 6格式化,被指令轉譯器1 3 8轉譯, 並被微處理器管線1 0 0的執行階段執行。 另一種控制邏輯1 0 2產生真值刪除信號1 4 1的情況為, 控制邏輯102導致微處理器100採用一個由BTAC 106回應其 所做之一分支指令將被執行的預測而產生的一個目標位 址。在此情況下,由指令快取記憶體1 〇 4取出,並傳送到 指令位元組緩衝器1 1 2的分支指令的任何後續指令都必須 被刪除;因此’控制邏輯1 0 2針對每一個需被刪除的指令 產生一個真值刪除信號1 4 1。控制邏輯1 0 2在指令提供給指 令格式器1 1 6之後的一個時脈週期產生此刪除信號1 4 1。 在一種實例中,指令格式器11 6能夠在一個時脈週期内格 式化2個巨集指令。如果b T A C 1 0 6預測此2個指令中的第_ 個為一個需執行的分支指令,控制邏輯丨〇 2則會刪除第二 個指令。 圖2展示了根據本發明的圖1所示的格式化後的指令件 列1 8 7的早期佇列1 3 2的結構示意圖。早期佇列1 3 2包括3 ^ 選擇-暫存器,此3個選擇—暫存器順序相連形成一個佇 列。此3個選擇-暫存器包括圖1所示的項目EE2、eei、1249131 _ extravagance 93100761 a _±——3-§ amendment _ five, invention description (17) 1 0 6 items. After the control logic 1 0 2 invalidates the BTAC 1 0 6 item for error prediction, the control logic 102 controls the multiplexer 1 78 to select the corrected address 1 77 to reacquire the incorrectly predicted instruction and its subsequent instructions. To correct the original error prediction. Because the error prediction item in BTAC 06 is invalid at this time, BTAC 1 0 6 will no longer predict that the last error-predicted instruction is the executed branch instruction; therefore, 'whether or not this instruction is a branch instruction, it will It is formatted by the instruction formatter 1 16 and interpreted by the instruction translator 1 3 8 and executed by the execution phase of the microprocessor pipeline 100. Another type of control logic 1 0 2 generates a true value delete signal 1 4 1 in that control logic 102 causes microprocessor 100 to employ a target generated by BTAC 106 in response to a prediction that one of its branch instructions will be executed. Address. In this case, any subsequent instructions fetched by the instruction cache 1 〇 4 and transferred to the instruction byte buffer 1 1 2 must be deleted; therefore 'control logic 1 0 2 for each The instruction to be deleted generates a true value delete signal 1 4 1 . Control logic 1 0 2 generates this delete signal 1 4 1 at a clock cycle after the instruction is supplied to instruction formatter 1 16 . In one example, the instruction formatter 116 is capable of formatting 2 macro instructions in one clock cycle. If b T A C 1 0 6 predicts that the _th of the two instructions is a branch instruction to be executed, the control logic 丨〇 2 deletes the second instruction. Figure 2 is a block diagram showing the structure of the early queue 1 1 2 of the formatted command block 187 shown in Figure 1 in accordance with the present invention. The early queue 1 3 2 includes a 3 ^ selection-scratchpad, and the three selections - the registers are sequentially connected to form a queue. The three options - the scratchpad include the items EE2, eei shown in Figure 1,

12491311249131

EEO 〇 早期佇列132頂端的選擇-暫 工器2 1 2及一個暫存5| 22 2,屮嶄六匕括個Ζ輸入的夕 收多工器212的輸出多2工2哭=:子:f記為㈣,用來接 用來接收圖1所示的格式化後指令=號19載貝^輸人端’ = = Ϊ入端,用來接收暫存器ER”22的輸 二。如果el〇ad[2] 162為真’多工器212將選中負載i = ,入端上的格式化後指令信號197 ;否則,多工器Ί貝科 璉中保持貧料輸入端上的暫存器ER2 2 ^ =2 22在一個時脈週期(clk) 2 0 2的上:m; Z 1 2的輸出。 早期佇列132中段的選擇—暫存器包括一個3輸入的多 工器211及一個暫存器221,此暫存器標記為ER1 ,用來 工器211的輸出。多工器211包括負載資料輸入端, 用來接收格式化後指令信號1 9 7。多工器2丨丨還包括一個 保持資料輸入端,用來接收暫存器ER1 221的輸出。 器211還包括一個轉換資料輸入端,用來接收暫存器er2 2 2 2的輸出。多工器211接收圖1所示doadu]信號162 為控制輸入。多工器211還接收圖1所示eshift信號164 為控制信號。如果e 1 〇 a d [ 1 ] 1 6 2為真,多工器2 1 j U、琴中倉 載資料輸入端上的格式化後指令信號1 9 7 ;如果e s h = t 、 號164為真,多工器211選中轉換資料輸入端上 = 2 2 2的輸出;否則,多工器2 1 2則選中保持資料輪入‘上的EEO 〇 Early selection of the top of the 132 column - the temporary machine 2 1 2 and a temporary storage 5 | 22 2, the output of the multiplexer 212 of the input of the 屮崭 匕 多 多 多 2 2 = = = : : : :f is written as (4), which is used to receive the formatted command shown in Figure 1 = 19, which is the input end of the input terminal = = = input terminal, used to receive the input of the register ER "22". If el〇ad[2] 162 is true 'multiplexer 212 will select the load i = , the formatted command signal 197 on the input; otherwise, the multiplexer Ί 琏 保持 保持 保持 保持The register ER2 2 ^ = 2 22 is on a clock cycle (clk) 2 0 2 on: m; the output of Z 1 2. The selection of the middle segment of the early queue 132 - the register includes a 3-input multiplexer 211 and a register 221, the register is labeled ER1, and is used for outputting of the workpiece 211. The multiplexer 211 includes a load data input terminal for receiving the formatted command signal 197. The multiplexer 2 The 丨丨 further includes a hold data input terminal for receiving the output of the register ER1 221. The device 211 further includes a conversion data input terminal for receiving the output of the register er2 2 2 2. The multiplexer 211 receives The doadu signal 162 shown in Fig. 1 is a control input. The multiplexer 211 also receives the eshift signal 164 shown in Fig. 1 as a control signal. If e 1 〇ad [ 1 ] 1 6 2 is true, the multiplexer 2 1 j U, The formatted command signal on the data input end of the bin is 1 9 7; if esh = t and 164 are true, the multiplexer 211 selects the output of the conversion data input = 2 2 2; otherwise, the multiplexer 2 1 2 is selected to keep the data rounded on

1249131 修正 曰 案號 93100761 五、發明說明(19) 1存器ER1 221的輸出。暫存器ER1 221在一個時脈週期 cIk 202的上升緣載入多工器211的輸出。 1期佇列132底端的選擇—暫存器包括一個3 的多 210及一個暫存器22 0,此暫存器標記為肫〇,用來接 益210的輸出。多工器21〇包括負載資料輸入端, 保式化後指令信號197。多工器210還包括-個 哭ί二端,用來接收暫存器ER〇 2 2 0的輪出。多工 2^ 1 & 括厂個^換資料輸入端,用來接收暫存器ER1 為抑制I入。夕夕工器210接收圖1所示el〇ad[〇]信號162作 ίΪΞΪΐ。2㈣接收圖1所示eshi “信號164作 ,控制j5唬。如果el〇ad[〇] 162為真,則哭 負載資料輸入端上的格式化後指令 9 °。 . f 哭ΕΙΠ 選中轉換資料輸人端上暫存 TOER1 221的輸出;否則,多工器 入端上的暫存器ER0 2 2 0的輸出m輸 脈週期。"〇2的上升緣載入多工心T 2 20在-個時 副2 20將、结果作為early〇信號^輸=〇。的輪出。暫存器 圖3展示了根據本發明的圖1所示的 列187的晚期仵列146的結構示意 ° \ j 、;二丁 個暫存-多工器、,此3個暫存一多工;列146包括3 列。此3個暫存一多工考::順序相連形成-個佇 LE〇。 夕為包括圖1所不的項目LE2、LE1 、 晚期佇列1 4 6頂端的暫存—吝τ抑^ 工器312及-個暫存器3 22, ;包括二個2輸入的多 句廿态才示舌己為LR2,用來接1249131 Amendment 曰 Case No. 93100761 V. Invention Description (19) 1 Output of ER1 221. The register ER1 221 loads the output of the multiplexer 211 at the rising edge of a clock cycle cIk 202. The selection of the bottom of the first stage 132 - the scratchpad includes a multi-type 210 of 210 and a register 22 0, the register is labeled 肫〇, which is used to receive the output of 210. The multiplexer 21A includes a load data input terminal, and a guaranteed command signal 197. The multiplexer 210 also includes a crying terminal for receiving the round-out of the register ER 〇 2 2 0. Multiplex 2^ 1 & includes the factory ^ change data input terminal, used to receive the register ER1 to suppress I input. The evening work device 210 receives the el〇ad[〇] signal 162 shown in FIG. 2 (4) Receive the eshi shown in Figure 1 "Signal 164, control j5 唬. If el〇ad[〇] 162 is true, then the formatted command on the input of the load data is 9 °. . . f cry ΕΙΠ Select the conversion data The output of the TOER1 221 is temporarily stored on the input terminal; otherwise, the output of the register ER0 2 2 0 on the multiplexer input end is pulsed. The rising edge of the 〇2 is loaded into the multi-working T 2 20 - The time of the secondary 2 20, the result as the early 〇 signal ^ 〇 = 〇. The register Figure 3 shows the structure of the late 仵 146 of the column 187 shown in Figure 1 according to the present invention ° j,; two temporary storage-multiplexer, the three temporary storage one multiplex; the column 146 includes three columns. The three temporary storage one multi-work test:: sequentially connected to form a 伫LE〇. For the inclusion of the items LE2, LE1, and the late stage of the late stage 1 4 6 of the temporary storage - 吝 抑 抑 312 312 and a temporary register 3 22, including two 2-input multi-sentences Only show that the tongue is LR2, used to pick up

12491311249131

案號 93100761 五、發明說明(20) =多„輸出:多工器312包括-個負載資料輸入 來^收圖1所示1一『6;^;111£〇186。多工器312還 個,持貧料輸入端,用來接收暫存器LR2 322的輸出。 夕工w 3 1 2接收1 1 〇 a d [ 2 ] “號1 4 2作為控制輸入。如果 l loaj[2] 142值為真,則多工器312選中負載資料輸入端 i一1nf0186;否則多卫器312選中保持資料輪入 鈿上的暫存器LR2 322的輸出。暫存器LR2 3 2 2在圖2中 示的時脈週期clk 2 0 2的上升緣載入多工器312的輸出值斤。 晚期佇列146中段的暫存-多工器包括一個3輸入的 工,3H及一個暫存器321 ,此暫存器標記為lri,用來 ,夕:,311的輸出。多工器311包括一個負載資料輸入接 鈿,用來接收圖1所示X_ref 一 inf〇 186。多工器311還 一個,持資料輸入端,用來接收暫存器LR】3 2 i的輸出。 多工器3 1 1還包括一個轉換資料輸入端,用來接收暫 ^2^ 3 22的輸出。多工器311接收U〇ad[1]信號142作為控 制輸入。多工器311還接收lshi ft信號168作為控制輸入。 如果1 load[ 1 ] 142值為真,則多工器31 i選中負載資 186;^^lshift 1 6 δ/Λ Λ 工益311述中LR2 322的輸出;否則多工器311選中保持資 料輸入端上的暫存器LR1 321的輸出。暫存器LR1 3'21在圖 2中所示的時脈週期clk 2 0 2的上升緣載入多工器3n 出值。 晚期佇列146底端的暫存-多工器包括—個3輸入的多 工器310及一個暫存器32〇,此暫存器標記為1^〇,用來接Case No. 93100761 V. Invention Description (20) = Multiple Output: The multiplexer 312 includes - load data input to receive 1 "6; ^; 111 £ 186 as shown in Figure 1. The multiplexer 312 is also The lean input is used to receive the output of the register LR2 322. Xigong w 3 1 2 Receive 1 1 〇ad [ 2 ] "No. 1 4 2 as a control input. If l loaj[2] 142 is true, multiplexer 312 selects load data input i -1nf0186; otherwise, multi-guard 312 selects the output of register LR2 322 holding data entry 钿. The register LR2 3 2 2 loads the output value of the multiplexer 312 at the rising edge of the clock period clk 2 0 2 shown in FIG. The temporary storage-multiplexer in the middle of the late queue 146 includes a 3-input worker, 3H and a scratchpad 321, which is labeled lri for the output of 夕:, 311. The multiplexer 311 includes a load data input interface for receiving the X_ref_inf〇 186 shown in FIG. The multiplexer 311 also has a data input terminal for receiving the output of the register LR] 3 2 i. The multiplexer 3 1 1 also includes a conversion data input for receiving the output of the temporary ^2^32. The multiplexer 311 receives the U〇ad[1] signal 142 as a control input. The multiplexer 311 also receives the lshi ft signal 168 as a control input. If the value of 1 load[ 1 ] 142 is true, the multiplexer 31 i selects the output of the LR2 322 in the load 186; ^^lshift 1 6 δ/Λ Λ 益 311; otherwise the multiplexer 311 selects to keep The output of the register LR1 321 on the data input. The register LR1 3'21 loads the multiplexer 3n output value at the rising edge of the clock period clk 2 0 2 shown in FIG. The temporary storage-multiplexer at the bottom of the late array 146 includes a 3-input multiplexer 310 and a scratchpad 32〇, and the register is labeled 1^〇 for connection.

1249131 案號 931007611249131 Case number 93100761

-a- ' \lij 收多工器310的輸出。多工器310包括一個負載資料 端,用來接收圖1所示X一ref—info 186。多工器310、$勺 一個保持資料輸入端,用來接收暫存器LR 〇 3 2 〇的^匕。 多工器3 1 0還包括一個轉換資料輸入端,用來接收^ 哭 LR1 321的輸出。多工器310接收11〇ad[〇]信號142作二 制輸入。多工器310還接收lshi ft信號168作為控制輸入工。 如果lload[0] 142值為真,則多工器31〇選中負載資 入端上的X一ref —info 186 ;如果lshift 168值為真、,’則 工态3 1 0選中L R 1 3 2 1的輸出;否則多工器3 i 〇選中保 料輸入一端上的暫存器LR0 320的輸出。暫存器LR1 32〇在圖 2中所示的時脈週期cik 2 0 2的上升緣載入多工器31〇的 出值。多工一器3 1 0將結果作為圖j中! a t e 〇信號丨g J輸出。 —圖4展示依據本發明的圖i中所示刪除佇列145的第一 個貫例的結構示意圖。圖4中刪除佇列實例的結構類似於 中晚期佇列146的結構。刪除佇列包括3個暫存—多工、 抑删除佇列1 4 5頂端的暫存—多工器包括一個2輸入的多 ^态412及一個暫存器422,暫存器標記為KR2,用來接收 輸出。多工器412包括一個負載資料輸入端, 刪除信號141。多工器412還包括-個保 持貝料輸入端’用來接收暫存器KR2 422的輸出。多工器 |12接,HoadM]信號142作為控制信號。如果u〇ad[2] 142值為|,多工器412選中負載資料輸入端上的刪除信號 器,3%個暫存-多工器順序連接,構成一個佇列。3個暫存— 多工ι§包括了圖1所示的項目KE2、KE1 *KE〇。-a- ' \lij Receives the output of multiplexer 310. The multiplexer 310 includes a load data terminal for receiving the X-ref_info 186 shown in FIG. Multiplexer 310, $spoon A hold data input for receiving the register LR 〇 3 2 〇. The multiplexer 310 also includes a conversion data input for receiving the output of the crying LR1 321 . The multiplexer 310 receives the 11 〇ad[〇] signal 142 as a binary input. The multiplexer 310 also receives the lshi ft signal 168 as a control input. If lload[0] 142 is true, then multiplexer 31 selects X_ref_info 186 on the load side; if lshift 168 is true, then 'action 3 1 0 selects LR 1 The output of 3 2 1; otherwise the multiplexer 3 i selects the output of the register LR0 320 on the end of the feed input. The register LR1 32〇 loads the output value of the multiplexer 31〇 at the rising edge of the clock cycle cik 2 0 2 shown in FIG. Multiplex 3 1 0 will be the result in Figure j! a t e 〇 signal 丨 g J output. - Figure 4 shows a schematic view of the first example of the deletion queue 145 shown in Figure i in accordance with the present invention. The structure of the deleted array example in Fig. 4 is similar to the structure of the middle and late array 146. The delete queue includes three temporary storage-multiple-duplex, and the temporary storage-duplexer includes a 2-input multi-state 412 and a register 422, and the register is marked as KR2. Used to receive output. The multiplexer 412 includes a load data input and a delete signal 141. The multiplexer 412 also includes a hold-before input ' used to receive the output of the register KR2 422. The multiplexer |12, HoadM] signal 142 is used as the control signal. If the value of u〇ad[2] 142 is |, the multiplexer 412 selects the delete signal on the load data input, and 3% of the temporary storage-multiplexer are sequentially connected to form a queue. 3 temporary storage - multiplex ι includes the items KE2, KE1 * KE 所示 shown in Figure 1.

1249131 曰 案號 931007B1 五、發明說明(22) 的二f夕::4:2選中保持貧料輸入端上的暫存器KR 2 4 2 2的輸出。暫存器KR2 42 2在圖2中所示的時脈週期 202的上升緣載入多工器412的輸出值。 =除仔歹^中段的暫存一多卫器包括一個3輸 ^411及-個暫存器421,此暫存器標 收多工器4Η的輸出。多工器411包括一個負載資料用末入接 $於用來接收刪除信號141。,工器411還包括二持資 料輸入端,用來接收暫存器KR1 421的輸出。多工^邊 ^括夕:?4,九料輸人端,用來接收暫存器KR2 422的輸、 ΐ 4 η ?收11 〇 a d [1 ]信號14 2作為控制輪入。多工 ;4 2 Ϊ 6; ^ ^ ^ ^ ^ Π oad [ 1 ] 141 ,·如果1 shift °168值^為中直負載^料輸入端上的刪除信號 輸出;否則多工哭41?ϊίί“工器411選中KR2 42 2的 421 ^ ^ Α ^ ^ ^ ^ ^ # ^KRl 2〇2的上升緣載入;工器411的:2出中值所,的時脈週期cik 工器二=4以二暫存-多工f包括,輸入的多 收多工器“ο的輪出7多工二用來接 端’用來接收刪除信號! 4 !。多 J 2資料輸入 =人端,用來接收暫存 =〇還包括個 出。多工H貝接科上入t「,用來接收暫存器Km 421的輸 器…還二4 = = ^ 唬168作為控制輸入。如果ll〇ad[0] 12829twfl.ptc 第30頁 12491311249131 曰 Case No. 931007B1 V. Inventive Note (22) The second eve::4:2 selects the output of the register KR 2 4 2 2 on the input of the lean material. The register KR2 42 2 loads the output value of the multiplexer 412 at the rising edge of the clock cycle 202 shown in FIG. = In addition to the 歹 歹 ^ middle section of the temporary storage multi-guard includes a 3 input ^ 411 and a register 421, this register is the output of the multiplexer 4 。. The multiplexer 411 includes a load data for receiving the delete signal 141. The worker 411 further includes a second data input terminal for receiving the output of the register KR1 421. Multiplex ^^^^^: 4, the nine input end, used to receive the register KR2 422 output, ΐ 4 η ? receive 11 〇 a d [1] signal 14 2 as a control wheel. Multiplex; 4 2 Ϊ 6; ^ ^ ^ ^ ^ Π oad [ 1 ] 141 , · If 1 shift ° 168 value ^ is the delete signal output on the input of the medium straight load; otherwise multiplexed cry 41? ϊ ίί" The tool 411 selects the rising edge of the 421 ^ ^ Α ^ ^ ^ ^ ^ # ^KRl 2〇2 of the KR2 42 2; the workpiece 411: 2 out of the median, the clock cycle cik 2 4 to 2 temporary storage - multiplexed f including, input multi-receiver multiplexer "O's turn out 7 multiplex 2 for the terminal" used to receive the delete signal! 4 !. Multiple J 2 data input = human terminal, used to receive temporary storage = 〇 also includes individual. Multiplex H is connected to t", which is used to receive the register of the register Km 421... Also 2 = = ^ 唬 168 as the control input. If ll〇ad[0] 12829twfl.ptc Page 30 1249131

ly值為真,多工器410選中負載資料輸入 ;如果lshift 168值為真,多工器41。選中KR1Jf21^;虎 則多/+器410選中保持資料輸入端上的暫存器kr〇 320的輸出。暫存器KR0 42 〇在圖2中所示的時脈週期cik 02的上升緣載入多工器41〇的輸出值。多工器41〇將結果 作為圖1中k 1 1 1 0信號1 4 3輸出。 —圖5展示依據本發明的圖1中所示刪除佇列丨4 5的第二 個實例的結構示意圖。刪除佇列丨4 5包括三個選擇-暫存器 及第四個多工器彼此相連構成一個佇列。此三個選擇—暫1^ 存斋包括圖1所是的項目KE2、KE1和ΚΕ0。 刪除佇列145頂端的選擇-暫存器包括一個2輸入的多 工器5 12及一個暫存器5 22,暫存器標記為KR2,用來接收 多工器5 1 2的輸出。多工器5丨2包括一個負載資料輸入端, 用^接收圖1所示删除信號丨4 i。多工器5丨2還包括一個保 持貧料輸入端’用來接收暫存器KR2 5 2 2的輸出。多工器 5 1 2接收圖1所示的1 1 0 a d [ 2 ]信號丨4 2作為控制信號。如果 lload [2] 142值為真,多工器5 12選中負載資料輸入端上 的刪信號1 4 1 ;否則多工器5丨2選中保持資料輸入端上的 暫存器KR2 52 2的輸出。暫存器KR2 5 2 2在一個時脈週期的 上升緣載入多工器5丨2的輸出值,此時脈週期標記為c i k 刪除佇列145中段的選擇—暫存器包括一個3輸入的多 工器5jl及一個暫存器521 ,暫存器標記為KR1 ,用來接收 多工器511的輸出。多工器511包括一個負載資料輸入端The ly value is true, and the multiplexer 410 selects the load data input; if the lshift 168 value is true, the multiplexer 41. KR1Jf21^ is selected; the tiger/multiple/+410 selects the output of the scratchpad kr〇 320 on the data input end. The register KR0 42 loads the output value of the multiplexer 41A at the rising edge of the clock period cik 02 shown in FIG. The multiplexer 41 outputs the result as k 1 1 1 0 signal 1 4 3 in Fig. 1. - Figure 5 shows a block diagram of a second example of the delete queue 丨45 shown in Figure 1 in accordance with the present invention. The delete queue 丨 4 5 includes three selections - the scratchpad and the fourth multiplexer are connected to each other to form a queue. These three choices—temporary 1^ include the items KE2, KE1, and ΚΕ0 in Figure 1. The selection of the top of the delete queue 145 - the scratchpad includes a 2-input multiplexer 5 12 and a register 5 22, the register being labeled KR2 for receiving the output of the multiplexer 5 1 2 . The multiplexer 5丨2 includes a load data input terminal, and receives the delete signal 丨4 i shown in FIG. The multiplexer 5丨2 also includes an output for holding the lean input terminal' for receiving the register KR2 5 2 2 . The multiplexer 5 1 2 receives the 1 1 0 a d [ 2 ] signal 丨 4 2 shown in Fig. 1 as a control signal. If lload [2] 142 is true, multiplexer 5 12 selects the delete signal 1 4 1 on the load data input; otherwise, the multiplexer 5丨2 selects the hold register KR2 52 2 on the data input. Output. The register KR2 5 2 2 loads the output value of the multiplexer 5丨2 at the rising edge of a clock cycle, at which time the pulse period is marked as cik. The selection of the middle segment of the column 145 is included. The register includes a 3-input The multiplexer 5j1 and a register 521, the register is labeled KR1, for receiving the output of the multiplexer 511. The multiplexer 511 includes a load data input terminal

第31頁 1249131 案號 五、發明說明(24) 用^接收刪除#號1 4 1。多工器5丨j還包括一個保持資料輸 、1用來接收暫存器KR1 521的輸出。多工器511還包括Page 31 1249131 Case No. 5. Invention Description (24) Use ^ to receive the deletion #1 1 1 1. The multiplexer 5丨j also includes an output for holding data, and an output for receiving the register KR1 521. The multiplexer 511 also includes

入端 :個,換資料輸入端,用來接收暫存器KR2 5 2 2的輸出 =工斋5 1 1接收圖1所示的丨丨〇ad [丨]信號丨4 2作為控制信 〜。多工器5 1 1還接收圖1所示丨sh丨f t信號丨6 8作為控制輸 入。如果lload[l] 142值為真,多工器511選中負載資料 ,入,上的刪除信號141 ;如果lshift信號168值為真, 選中KR2 522的輸出;否則多工器511選中保持 輸入端上的暫存器KR1 521的輸出。暫存器KR1 521在 牯氏週期Clk 202的上升緣載入多工器511的輸出值。 除佇列145底端的選擇-暫存器包括一個2輸入的多 工益5 10、一個暫存器52〇標記為KR(), 的輸出,以及-個2輸入的多工器5〇9。多工器5〇夕9包:5」〇 個負載資料輸入端,用來接收刪除信號141。多工器5〇9 ^括:個保持資料輸入端,用來接收暫存器KR〇 52〇的輸 ί,夕2 接收圖1所示的1 load⑷信號⑷作為控制 ==。如果iload[0] 142值為真,多工器5〇9選中負載資 =輸入端上的删除信號141 ;否則多工器5〇9 持料 J =的暫存器KR 0 52 0的輸出。多工器51〇包括= 持貝料輸入端,用來接收多工器5〇9的輸出,此輸出 多工器5Π的輸出。多工器510接收eshift ^號1 64作為控制輸入。如果es h丨f t信號丨6 4值為真, 器5 1 0選中轉換資料輸人端上的多卫器5 i i的輸出^否則多Incoming: one, change data input, used to receive the output of the register KR2 5 2 2 = work fast 5 1 1 Receive the 丨丨〇ad [丨] signal 丨 4 2 shown in Figure 1 as the control letter ~. The multiplexer 51 1 also receives the 丨sh丨f t signal 丨6 8 shown in Fig. 1 as a control input. If lload[l] 142 is true, the multiplexer 511 selects the load data, the input delete signal 141; if the lshift signal 168 is true, the output of the KR2 522 is selected; otherwise, the multiplexer 511 selects the hold The output of the scratchpad KR1 521 on the input. The register KR1 521 loads the output value of the multiplexer 511 at the rising edge of the Clk period Clk 202. In addition to the selection of the bottom of the column 145 - the register includes a 2-input multi-function 5 10, a register 52 〇 labeled KR (), and a 2-input multiplexer 5 〇 9. The multiplexer 5 〇 9 pack: 5" 负载 load data input terminal for receiving the delete signal 141. The multiplexer 5〇9 includes: a hold data input terminal for receiving the register KR〇 52〇, and a 1 load(4) signal (4) shown in FIG. 1 as the control ==. If iload[0] 142 is true, multiplexer 5〇9 selects the load signal = delete signal 141 on the input; otherwise the multiplexer 5〇9 holds the output of register J = register KR 0 52 0 . The multiplexer 51 includes a = feed input for receiving the output of the multiplexer 5〇9, which outputs the output of the multiplexer 5Π. The multiplexer 510 receives the eshift ^ number 1 64 as a control input. If the es h丨f t signal 丨 6 4 is true, the device 5 1 0 selects the output of the multi-guard 5 i i on the conversion data input terminal ^ otherwise

1249131 ___ 案號 931007(Π_年月日__ 五、發明說明(25) 工器510選中保持資料輸入端上的多工器509的輸出。暫存 器KR 0 5 2 0在時脈週期cik 20 2的上升緣載入多工器510的 輸出值。 圖6展示依據本發明的圖1中所示刪除佇列1 4 5的第三 個實例的結構示意圖。圖中刪除佇列1 4 5與圖5中刪除仔列 1 4 5相類似,並且對應元件也都標以類似序號。圖6所示刪 除4丁列與圖5所示值不同之處在於以下幾點。圖6中刪除仔 列1 45的輸入ΚΕ0也包括四個邏輯閘:一個反相器6 0 2、二 個2輸入的及閘6 〇 4和6 0 6、及一個2輸入的或閘6 0 8。反相 器6 0 2接收1 1 〇 a d [ 0 ]信號1 4 2,並將其輸出提供給一個及閘 604。及閘604接收暫存器KR0 520的輸出並將其作為第二 _ 個輸入。及閘6 0 6接收1 1 〇 a d [ 0 ]信號1 4 2作為其一個輸入, 同時接收删除信號1 4 1作為其另一個輸入。兩個及閘6 〇 4及 6 0 6的輸出作為或閘6 〇 8的輸入。或閘6 0 8的結果作為圖1所 示刪除佇列1 4 5的k i 1 1 〇信號1 4 3輸出,而不是圖5中所示刪 除佇列145中多工器509的輸出。 圖7展示了 F I Q控制邏輯1 1 8内產生根據本發明圖1所示 F 一 v a 1 i d信號1 8 8之邏輯的結構示意圖。此邏輯包括一個反 相器7 1 2及一個2輸入的及閘7 1 4。反相器7 1 2接收圖1所示 k i 1 1 〇信號1 43,並將其輸出提供給及閘7 1 4作為其一個輸 入。及閘7 1 4的另一個輸入為圖1所示格式化後的指令仔列 187的有效位元FV0 134。因此,有效位元FV0 134經killO _ 信號限定,以使得X I Q控制邏輯丨5 6能得知通過ear i y 〇信號 1 93提供給指令轉譯器丨38的指令為無效指令,如:被刪除1249131 ___ Case No. 931007 (Π_年月日日__ V. Invention Description (25) The tool 510 selects to keep the output of the multiplexer 509 on the data input. The register KR 0 5 2 0 is in the clock cycle. The rising edge of cik 20 2 loads the output value of multiplexer 510. Figure 6 shows a schematic diagram of a third example of the delete queue 1 4 5 shown in Figure 1 in accordance with the present invention. 5 is similar to the deletion of the column 1 4 5 in Fig. 5, and the corresponding elements are also marked with similar serial numbers. The deletion of the 4 series shown in Fig. 6 is different from the value shown in Fig. 5 in the following points. The input ΚΕ0 of the 1/4 column also includes four logic gates: one inverter 6 0 2, two 2 input gates and gates 6 〇 4 and 6 0 6 , and a 2 input gate or gate 6 0 8 . The device 6 0 2 receives the 1 1 〇ad [ 0 ] signal 1 4 2 and supplies its output to a AND gate 604. The gate 604 receives the output of the register KR0 520 and uses it as the second _ input. Gate 6 0 6 receives 1 1 〇ad [ 0 ] signal 1 4 2 as its input, and receives the delete signal 1 4 1 as its other input. The outputs of the two gates 6 〇 4 and 6 0 6 For the input of the OR gate 6 〇 8 or the result of the gate 6 0 8 is output as the ki 1 1 〇 signal 1 4 3 of the delete queue 1 4 5 shown in FIG. 1 instead of the delete queue 145 shown in FIG. Output of multiplexer 509. Figure 7 shows a schematic diagram of the logic for generating the F-va 1 id signal 188 shown in Figure 1 of the present invention in FIQ control logic 181. This logic includes an inverter 7 1 2 and a 2-input gate 7 1 4. The inverter 7 1 2 receives the ki 1 1 〇 signal 1 43 shown in Figure 1 and supplies its output to the gate 7 1 4 as its input. The other input of 1 4 is the valid bit FV0 134 of the formatted instruction queue 187 shown in Figure 1. Therefore, the valid bit FV0 134 is defined by the killO_ signal so that the XIQ control logic 丨5 6 can know The instruction provided to the instruction translator 丨38 by the ear iy 〇 signal 193 is an invalid instruction, such as: deleted.

12829twf1.ptc 第33頁 1249131 Λ 修正 曰 931Q07B1 五、發明說明(26) 指令。 加w f 8展不了根據本發明圖1中所示的微處理器1 0 0指令 ,示衣置運作原理的流程圖。流程從區塊8 〇 2開始。 组綞Ϊ 中’圖1所示之指令格式器116將指令位元12829twf1.ptc Page 33 1249131 修正 Amendment 931 931Q07B1 V. Inventions (26) Directive. The addition of w f 8 shows a flow chart of the operation principle of the garment arrangement according to the microprocessor 1 0 0 command shown in Fig. 1 of the present invention. The process starts with block 8 〇 2. The instruction formatter 116 shown in Figure 1 will group the instruction bits.

控制邏載:ίΪί 2式化,格式化後的指令由FIQ 在圖V標記種為:=、區Ϊ8; 24V「時Γ週期内發生, 圖1所示的刪除ΐ號14;:不=輯102產生-個真值於 時載人早期仔列132的指令必續===在前一個時脈週期 區塊8 04在時脈週期i的下—f被刪除。在一種實例中, 記為clock 2。流程前進到8〇個6妗脈週期發生,在圖8中標 在區塊8 0 6中,刪除佇列 141的值載入。此值被載入冊彳‘二0中產生的删除信號 中。流程前進到判定功能區列取低端的無效項目 在判定功能區塊8 08中f 你 入格式化後指令佇列187的指八j,峤條件為在區塊80 2中載 令,是否位在格式化後指令彳例如需要被刪除的指 果此指令在格式化後指令件^ ^87 $最低端項S中。如 程前進到判定功能區塊8丨2 ; 的最低端項目中,則流 塊818。 , 果不是,則流程前進到區 在判定功能區塊8 1 2中,細i J斷條件為刪除信號141值 12829twf1.ptc 第34頁 1249131Control logic: ίΪί 2, the formatted instruction is marked by FIQ in Figure V: =, zone Ϊ 8; 24V "time Γ cycle occurs, delete nickname 14 shown in Figure 1;: not = 102 generates - a true value at the time of the early manned row 132 instruction must be continued === in the previous clock cycle block 8 04 is deleted under the clock cycle i - f is deleted. In one example, Clock 2. The flow advances to 8 妗 6 妗 cycles, which is marked in block 8 0 6 in Figure 8, and deletes the value of 伫 column 141. This value is deleted in the file 彳 '2 0 In the signal, the flow proceeds to the decision function area to select the low-end invalid item. In the decision function block 8 08, you enter the formatted command column 187, and the condition is to block the block 80 2 Whether the bit is in the formatted command, for example, the finger that needs to be deleted. This command is in the lowest end item S of the command ^^87 $ after formatting. The process proceeds to the lowest end item of the decision function block 8丨2; In the middle, the flow block 818. If not, the flow advances to the zone in the decision function block 8 1 2, and the fine I J break condition is the delete signal 141 value 12829twf1.ptc Page 34 1249131

案號 931007m 五、發明說明(27) 是否非真。如果為真,流程前進 前進到區塊816。 塊814,否則,流程 •在區塊814中,將產生一個值為真的圖i中所示 k^llO信號143,通過對FIQ有效位元^^ 134的限定來產生 一個值為假的,1所示F_valid信號188,並以此來實現指 令的刪除。流程在區塊8 1 4結束。 、 而二在區塊816中,將產生一個值為假的圖丨中所示的 killO # 唬143,因此,如果FV0 134 為真,則 也為真。流程在區塊8 1 6結束。在一個實例中,一 8 0 4到區塊816全部在第二時脈週期發生J Y攸&塊 下/Γί8日 18 式化後指令仔列1;7及删除仔列145向 下移一個項目。流程前進到判定功能區塊82 2。 在判定功能區塊8 2 2中,判斷條件為 載入之格式化後指令佇列187的指令,办丨Τ所 此入 η ^ , 士从1 」 J ?日7 例如需要被刪除的 才曰々,疋否位在格式化後指令佇列187的最低端項目。如 果是’流程前進到判定功能區塊824 ;否則,流程返回區 塊 8 1 8 〇 ,判”能區4 824,判斷條件為刪除仵列的最低端 項目疋否為真。如果是,流程前進到區塊8 2 6 ; 流 程前進到區塊8 2 8。 在區塊8 2 6,將產生一個值為真的圖J所示的kiu〇信 號143 ’通過對FIQ有效位元FV0 134的限定來產生一個值 為假的圖1所示F_valid信號188 ’並以此來實的刪 除。流程在區塊8 2 6結束。 、Case No. 931007m V. Invention Description (27) Whether it is true. If true, the process proceeds to block 816. Block 814, otherwise, flow • In block 814, a k^110 signal 143, shown in Figure i, is generated, and a value of false is generated by defining the FIQ effective bit ^^ 134. The F_valid signal 188 is shown as 1 and is used to implement the deletion of the instruction. The flow ends at block 8 1 4 . In the block 816, a killO # 唬 143 shown in the figure 假 is generated, so if FV0 134 is true, it is also true. The flow ends at block 8 1 6 . In one example, a 804 to block 816 all occur in the second clock cycle after the JY 攸 &; Γ Γ Γ 8 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 指令 删除 删除 删除. Flow proceeds to decision function block 82 2 . In the decision function block 8 2 2, the judgment condition is that the instruction of the formatted command queue 187 is loaded, and the input is η ^ , and the slave is from 1 " J ? 7 , for example, the need to be deleted. 々, 位 No bit is placed at the lowest end of the command queue 187 after formatting. If the flow is proceeding to the decision function block 824; otherwise, the flow returns to the block 8 1 8 〇, and the energy zone 4 824 is judged to be the lowest end item of the delete queue. If yes, the flow proceeds. Go to block 8 2 6 ; the flow proceeds to block 8 2 8. At block 8 2 6, a value of true is generated for the kiu〇 signal 143 ' shown in Figure J, by defining the FIQ effective bit FV0 134 To generate a false value of the F_valid signal 188 ' shown in Figure 1 and delete it. The flow ends at block 8 2 6 .

1249131 j多正1249131 j more positive

案號 93100761 、發明說明(28) 在區塊8 2 8,將產生一個值為假的k丨丨 此,如果FVO 134為真,則F_valid 188 諕;因 塊828結束。在一個實例中,每個從區塊”8 一。流程在區 的避圈都發生在clock 2相鄰的下一個時脈 1區塊828 dock 3,或再下一個相鄰的時脈週期,直要、,標記為 曰令轉移到格式化後指令佇列1 8 7的最低端項^刪除的 圖9為說明依據本發明之圖1所示指壯止。 理的時序圖。圖9顯示了 5個時脈週期, :=置工作原 ^用邏輯高準位來表示。圖9展示了如下一種|圖9中 ,'格式器、1 1 6產$ -個新的格式化後的巨集指障令時當 绿的XIQ I54狀態為不滿,例如XIQ I54可以從指人鏟圖 ;杰138接收巨集指♦;格式化後指令佇列187為空”轉 人的ί ΐ9的實例中,當指令轉譯器138轉譯early〇 193所 Α σ式化後的巨集指令並產生新的微指令1 7 1時,X I Q 為空。因此,XIQ控制邏輯156以x — vaHd信號148來提 L — valu信號188的值,而不是象圖9所示,將F_va 1 88儲存為有效位元^ 149。 一 如圖中所示,在第一時脈週期1内,指令格式器丨i 6 產生個值為真的圖1中所示F一 new—instr信號152,來說 明圖1中的格式化後指令信號1 9 7包含一個有效的新的格式 化後的巨集指令。因為格式化後指令佇列丨8 7為空,圖1中 FIQ控制邏輯118產生一個值為真的el〇ad[〇]信號162,以 此將格式化後指令信號丨9 7的有效的新的格式化後的巨集Case No. 93100761, Invention Description (28) In block 8 2 8, a value of false k 丨丨 will be generated. If FVO 134 is true, then F_valid 188 諕; since block 828 ends. In one example, each slave block "8". The loop in the zone occurs in the next clock 1 block 828 dock 3 adjacent to clock 2, or another adjacent clock cycle, I want to, in order to transfer to the lowest order item of the instruction sequence 1 1 格式化 格式化 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除 删除5 clock cycles, := set the work ^ is represented by logic high level. Figure 9 shows the following | In Figure 9, 'formatter, 1 1 6 production $ - a new formatted giant When the green XIQ I54 status is dissatisfied, for example, XIQ I54 can be scribbled from the person; 138 receives the macro ♦; after formatting, the command 187 is empty. When the instruction translator 138 translates the σ 式 的 macro instruction and generates a new micro instruction 1 7 1 , the XIQ is empty. Thus, XIQ control logic 156 evaluates the value of L-valu signal 188 with x-vaHd signal 148 instead of storing F_va 1 88 as a valid bit 149 as shown in FIG. As shown in the figure, in the first clock cycle 1, the instruction formatter 丨i 6 generates a F-new-instr signal 152 as shown in FIG. 1 to illustrate the formatting in FIG. The command signal 197 contains a valid new formatted macro instruction. Since the command queue 丨8 7 is empty after formatting, the FIQ control logic 118 in Fig. 1 generates a value of the true e〇ad[〇] signal 162, which will format the post-instruction signal 丨9 7 effective new Formatted macro

12829twf1.ptc 第36頁 1249131 _案號93100761_年月日 铬t_ 五、發明說明(29) 指令載入格式化後指令仔列1 8 7最底層的空項目e e 0。如圖 中所示,在同一個實例内,刪除信號1 4 1 ,k i 1 1 〇信號 143,F — valid 188,X_valid 148 及有效位元 rv 189 均為 假。 在第二時脈週期2内,圖1中的格式化後指令仔列1 8 7 的項目ΕΕ0的有效位元FV0 134,被設置為說明ΕΕ0是否包 含一個有效指令。在時脈週期2的上升緣,圖1中的一個暫 存器183載入eload[0] 162並輸出一個值為真的ll〇ad[0] 142。如圖中所示,因為el〇ad[0] 162為真,新指令被載 入ER0 220並輸出於圖1中的early〇信號193,作為圖1中指 令轉譯器1 3 8的輸入。指令轉譯器1 3 8轉譯這個新的巨集指 令,並把得出的微指令1 7 1提供給X I Q 1 5 4。另外,如圖所 示,控制邏輯102產生相關X_rei_ inf0 186上新的指令的 新資訊。因為lload[0] 142為真,如圖所示,多工器410 選擇負載資料輸入端,並將X_r el_inf 〇1 86所包含的相關 資訊輸出到lateO 191上作為xiq 154及圖1所示多工器172 的輸入。進一步,因為指令轉譯器138已經在第二時脈週 期轉譯過此新指令,F I Q控制邏輯1 1 8產生一個真值於圖1 中的e sh i f t信號1 64上,以使得指令能在第三時脈週期轉 移出格式化後的指令佇列1 8 7。 同樣在第二時脈週期2内,控制邏輯1 〇 2發現一個第一 時脈週期内產生的新指令必須被刪除的情況,並因此在第 二時脈週期後半周產生一個值為真的圖1所示刪除信號 141。因為在clock 2的後半部11〇&(1[0] 142及删除信號均12829twf1.ptc Page 36 1249131 _ Case No. 93100761_Year Month Day Chromium t_ V. Invention Description (29) After the instruction is loaded, the instruction will load the empty item e e 0 at the bottom of the sequence. As shown in the figure, in the same instance, the delete signal 1 4 1 , k i 1 1 〇 signal 143, F - valid 188, X_valid 148 and valid bit rv 189 are both false. In the second clock cycle 2, the valid bit FV0 134 of the item ΕΕ0 of the formatted instruction sequence 1-8 in Fig. 1 is set to indicate whether ΕΕ0 contains a valid instruction. At the rising edge of clock cycle 2, a register 183 in Figure 1 loads eload[0] 162 and outputs a value of ll〇ad[0] 142. As shown in the figure, since el〇ad[0] 162 is true, a new instruction is loaded into ER0 220 and output to the early〇 signal 193 in FIG. 1 as an input to the instruction translator 1 3 8 in FIG. The instruction translator 1 3 8 translates the new macro instruction and provides the resulting microinstruction 1 7 1 to X I Q 1 5 4 . Additionally, as shown, control logic 102 generates new information relating to new instructions on X_rei_inf0 186. Since lload[0] 142 is true, as shown in the figure, multiplexer 410 selects the load data input terminal, and outputs the related information contained in X_r el_inf 〇1 86 to lateO 191 as xiq 154 and as shown in FIG. Input to the 172. Further, because the instruction translator 138 has translated the new instruction in the second clock cycle, the FIQ control logic 1 1 8 produces a true value on the e sh ift signal 1 64 in FIG. 1 so that the instruction can be in the third The clock cycle shifts out the formatted command queue 1 8 7. Also during the second clock cycle 2, control logic 1 〇 2 finds that a new instruction generated during the first clock cycle must be deleted, and thus produces a true value for the second half of the second clock cycle. The delete signal 141 is shown in FIG. Because in the second half of clock 2, 11〇&(1[0] 142 and delete signals are both

12829twf1.ptc 第37頁 124913112829twf1.ptc Page 37 1249131

進一步 因 為真,依據圖4至圖6,kiii〇信號143也為直 為killO信號143位元真,依據圖7,F〜va、、ud 188 田 後二如圖所不,因為F一val id i 88為假,且^又办取 在第二時脈週期結束時X一val id 148為假。 ”、、二, 後上ΐ inlfl期3内,、因為新指令:經轉移出格式化 緣134為假。在第三時脈週期的上升 iV/i十Q ㈣控制邏輯156將轉譯後的微指令 71及lateO 191所提供的指令相關資訊 器m。另外’則中暫存器185載入eshift信號心::子 一個真值13匕“ 168。進一步,在第二時脈週期末尾 假的X — valid 148被載入RV 189 ’此信號在第三時脈週期、 内為假。因此,在第二時脈週期產生並載入執行階段暫 器1 7 6的微指令1 7 1被標誌為無效,而如同預期的一樣, 會被微處理器1 0 0管線的執行階段所執行。 ^ 從圖9可看出,儘管新的巨集指令在第一時脈週期内 就已產生並且被載入入格式化後指令彳宁列1 8 7,刪除信梦 1 4 1直到弟^一時脈週期才產生。圖1中的指令刪除裝'置方便 地使巨集指令能夠被删除,例如標誌為無效,因此執行階 段不會執行已被删除地指令。 圖1 0為說明依據本發明之圖1所示指令刪除裝置工作 原理的時序圖。除當指令格式器1 1 6產生一個新的格式化 後的巨集指令時X I Q 1 5 4為滿之外,圖1 〇與圖9相類似。因 為圖1 0所時實例中X I Q 1 5 4為滿X I Q 1 5 4的有效位元X v 2 1 4 9有顯示,而R V 1 8 9及X — v a 1 i d 1 4 8的值則沒有顯示。Further, because of the truth, according to FIG. 4 to FIG. 6, the kiii〇 signal 143 is also true for the killO signal of 143 bits. According to FIG. 7, F~va, and ud 188 are not shown in the figure, because F-val id i 88 is false, and ^ is taken at the end of the second clock cycle when X val id 148 is false. ",, 2, after the inlfl period 3, because the new instruction: the transfer of the format edge 134 is false. The rise of the third clock cycle iV / i ten Q (four) control logic 156 will be translated after the micro-instruction 71 and the instruction related information device m provided by the lateO 191. In addition, the middle register 185 loads the eshift signal heart: a sub-true value of 13 匕 "168. Further, a false X - valid 148 at the end of the second clock cycle is loaded into RV 189 ' This signal is false during the third clock cycle. Therefore, the microinstruction 1 7 1 that is generated and loaded into the execution phase of the second phase clock cycle is flagged as invalid, and as expected, is executed by the execution phase of the microprocessor 1 0 0 pipeline. . ^ As can be seen from Figure 9, although the new macro instruction was generated during the first clock cycle and loaded into the formatted instruction, the command is saved 1 8 7 and deleted the dream 1 4 1 until the brother The pulse cycle is generated. The instruction delete device in Figure 1 conveniently sets the macro instruction to be deleted, for example, the flag is invalid, so the execution stage does not execute the instruction that has been deleted. Figure 10 is a timing diagram showing the operation of the instruction deleting apparatus shown in Figure 1 in accordance with the present invention. Figure 1 is similar to Figure 9 except when the instruction formatter 1 16 generates a new formatted macro instruction when X I Q 1 5 4 is full. Because the XIQ 1 5 4 in the example of Figure 10 is the valid bit X ν 2 1 4 9 of the full XIQ 1 5 4 is displayed, and the values of RV 1 8 9 and X — va 1 id 1 4 8 are not displayed. .

1249131 __案號93100761_年月曰 铬if.__ 五、發明說明(31) 在時脈週期1内,XIQ__full 195為真。如同圖9所示一 樣,指令格式器116在formatted 一 instr 197上產生一個 新的指令,F_new_i ns tr 1 52為真。因為格式化後指令佇 列1 8 7為空,如同圖9所示一樣,F I Q控制邏輯1 1 8產生一個 值為真的e 1 oad [ 0 ]信號1 6 2,以此將有效的新的格式化後 的巨集指令從格式化後指令信號1 9 7載入E E 0。圖1中所示 刪除信號141、kill0信號143及F__valid 188,如同圖9中 所示,均為假。但是,因為X I Q 1 5 4為滿,因此有效位元 XV2 149為真,亦即,XIQ 154的輸入2有效。 在時脈週期2内,如同圖9所示一樣,F V 0 1 3 4被設置 為說明E E 0是否包含一個有效指令;暫存器1 8 3輸出一個值 為真的lload[0] 142,新指令被載入ER0 220之中,並被 輸出為earl y0信號193以作為指令轉譯器138的輸入;相關 新指令的新資訊被產生為X 一 rel一 info 186 ;多工器31〇選 中負載資料輸入端’並將X一rel 一 info 186所提供的新相'的 資訊輸出為lateO 191 ,作為XIQ 154及多工器172的輪 释 入。但是,因為在第二時脈週期起始時X I q 1 5 4為滿,不 同於圖9所示情況,F I Q控制邏輯1 1 8產生一個值為假的 e s h i f t信號1 6 4。X I Q控制邏輯1 5 6隨之取消X I Q — f u 1 1 1 9 5 ’以藉此表示指令轉譯器丨3 8已準備好將在第三時脈 期内轉譯一條新的巨集指令。 & 同樣的,在時脈週期2内,控制邏輯1 〇 2發現一個第— 時脈週期内產生的新指令必須被刪除的情況,並因此在二 二時脈週期後半周產生一個值為真的刪除信號1 4 1。因為弟1249131 __ Case No. 93100761_Yearly 曰 Chromium if.__ V. Description of invention (31) In clock cycle 1, XIQ__full 195 is true. As shown in Figure 9, instruction formatter 116 generates a new instruction on formatted an instr 197, F_new_i ns tr 1 52 is true. Since the command queue 1 8 7 is empty after formatting, as shown in Figure 9, the FIQ control logic 1 1 8 produces a value of true e 1 oad [ 0 ] signal 1 6 2, which will be valid new The formatted macro instruction loads EE 0 from the formatted command signal 197. The delete signal 141, kill0 signal 143, and F__valid 188 shown in Fig. 1, as shown in Fig. 9, are all false. However, since X I Q 1 5 4 is full, the valid bit XV2 149 is true, that is, input 2 of XIQ 154 is valid. In clock cycle 2, as shown in Figure 9, FV 0 1 3 4 is set to indicate whether EE 0 contains a valid instruction; register 1 8 3 outputs a value of lload[0] 142, new The instruction is loaded into ER0 220 and output as earl y0 signal 193 as input to instruction translator 138; new information about the new instruction is generated as X-rel-info 186; multiplexer 31 selects load The data input terminal 'and outputs the information of the new phase provided by X rel a info 186 as lateO 191 as the wheel release of XIQ 154 and multiplexer 172. However, since X I q 1 5 4 is full at the beginning of the second clock cycle, unlike the case shown in Fig. 9, the F I Q control logic 1 1 8 produces a value e s h i f t signal 1 6 4 which is false. The X I Q control logic 1 5 6 then cancels X I Q — f u 1 1 1 9 5 ' to thereby indicate that the instruction translator 丨 3 8 is ready to translate a new macro instruction during the third clock period. & Similarly, during clock cycle 2, control logic 1 〇 2 finds that a new instruction generated during the first - clock cycle must be deleted, and therefore produces a value of true in the second half of the second clock cycle. Delete signal 1 4 1. Because brother

1249131 發明說明(32) 在clock 2的後半部1 l〇ad[〇] 142及刪除信號均為真,依 據圖4至圖6,kill〇信號143也為真。進一步,因為Iill〇 信號143為真,因此依據圖7可知F_val id 188為假。因為 XIQ 154被向下轉移,使得XIQ } 54在第二時脈週期不再”為 滿’ XV2 1 4 9轉為假,表示X丨q i 5 4頂端項目的指令,亦” 即’由X V 2 1 4 9所明確指示其有效性的項目,不再有效。 在時脈週期3内,因為e s h i f t信號1 6 4在時脈週期c j k 2 0 2上升緣為假,新指令被保持在ER() 220内,並通過 ear ly〇 1 93被提供給指令轉譯器丨38進行轉譯。相當的, FV0 134保持為真。指令轉譯器138轉譯新的巨集指胃令,並 把轉譯成的微指令171提供給XIQ 154。因為u〇ad[〇] 142 在時脈週期elk 2 02上升緣為真,在第二時脈週期通過 一re 1一1 nf ο 1 86提供的相關資訊被載入LR〇 "ο。因為在 =脈週期其他時間11〇以[0] 142及lshift 168為假,”如圖 =不,LR 0 32 0的内容,亦即,與指令相關的新的資訊, 將通過lateO 191而被提供給XIQ 154。在第二 =制邏輯118產生一個值為真= 〜Γ指令以狩列=的指令在第四個時㈣ 保持Γί在:脈V根據圖4至圖6,kill°信號繼續 “5輸入KE0的删除信號141在 =刪Π kiiio信號143提供。因為kiUQ 持,並通過 1 8 8在整個時脈週期3 裨 3為真,F-va 1 1 d 功3内保持為假來表示提供給指令轉譯器1249131 Description of Invention (32) In the latter half of clock 2, 1 l〇ad[〇] 142 and the delete signal are both true, and according to Figs. 4 to 6, the kill〇 signal 143 is also true. Further, since the Iill〇 signal 143 is true, it can be seen from Fig. 7 that F_val id 188 is false. Because XIQ 154 is shifted down, XIQ } 54 is no longer "full" in the second clock cycle. XV2 1 4 9 turns false, indicating the command of the X丨qi 5 4 top item, also known as 'by XV 2 1 4 9 items that clearly indicate their effectiveness are no longer valid. In clock cycle 3, since the eshift signal 164 is false at the rising edge of the clock cycle cjk 2 0 2 , the new instruction is held in ER() 220 and is supplied to the instruction translator by ear ly〇1 93.丨38 is translated. Quite, FV0 134 remains true. The instruction translator 138 translates the new macro to the stomach order and provides the translated microinstruction 171 to the XIQ 154. Since u〇ad[〇] 142 is true at the rising edge of the clock cycle elk 2 02, the relevant information provided by a re 1 - 1 nf ο 1 86 in the second clock cycle is loaded into LR〇 "ο. Because at the other time of the pulse period, 11〇 is [0] 142 and lshift 168 is false," as shown in Figure = No, the content of LR 0 32 0, that is, the new information related to the instruction, will be passed through the lateO 191. Provided to XIQ 154. In the second = system logic 118 produces a value of true = ~ Γ instruction to hoke column = instruction at the fourth time (four) keep Γ ί in: pulse V according to Figure 4 to Figure 6, kill ° signal continues "5 input KE0 delete signal 141 is provided at = delete kiiio signal 143. Since kiUQ holds and passes through 1 8 8 for the entire clock cycle 3 裨 3 is true, F-va 1 1 d works within 3 is false to indicate that it is supplied to the instruction translator.

1249131 - t^9310076j__年月口 狄 χ 五、發明說明(33) ' " ,指令1 93為無效指令。此步驟為必需的,原因在於在時 f週^2内控制邏輯102產生一個值為真的刪除信號i4i來 ==日、,脈週期1内產生的指令丨9 7必須被刪除。x v 2 i 4 9繼 =二進一步’控制邏輯在時脈週期3内賦假值給删除 仏號1 41 (或稱取消刪除信號丨4 1 )。 在時脈週期4内,因為新的指令被轉移出格式化後指 令仔列1 8 7,F V 0 1 3 4轉為假。在時脈週期4的上升緣,圖i 中的暫存器185載入eshift信號164並通過lshift 168輸出 一真值。另外’ X I Q控制邏輯1 5 6載入轉譯後的微指令1 7 1 及通過1 a t e 0 1 9 1提供的指令相關資訊給义丨q ! 5 4。但是, 因為在時脈週期3末尾F —v a 1 i d 1 8 8為假,一個假值被載入 XV2 149來表示載入XIQ 154的轉譯後的微指令171無效。 因此,在時脈週期3由指令轉譯器1 38產生並被載入X I Q 1 5 4的微指令1 7 1被標誌為無效,並且如同預期一樣,當其 從X I Q 1 5 4輸出時,不會被微處理器丨〇 〇管線的執行階段執 行。在一種實例中,因為X丨Q 1 54接收微指令1 7 1的輸入被 標誌為無效,它可能被下一個微指令所覆蓋。 從圖1 0可看出,儘管新的巨集指令在第一時脈週期内 就已產生並且被載入格式化後指令佇列1 8 7,但刪除信號 1 4 1卻直到第二時脈週期才會產生。圖1中的指令刪除裝置 方便地使巨集指令能夠被刪除,亦即,將其標誌為無效, 因此執行階段不會執行已被刪除地指令。 圖1 1為說明依據本發明之圖1所示指令刪除裝置工作 原理的時序圖。除當指令格式器1丨6產生一個新的格式化1249131 - t^9310076j__年月口 Di χ V, invention description (33) ' " , instruction 1 93 is invalid instruction. This step is necessary because the control logic 102 generates a true delete signal i4i == day during the period f2, and the command 丨97 generated in the pulse period 1 must be deleted. x v 2 i 4 9 followed by = further] The control logic assigns a false value to the nickname 1 41 (or cancels the delete signal 丨 4 1 ) within the clock cycle 3. In the clock cycle 4, since the new instruction is transferred out of the format, the command queue 1 8 7 , F V 0 1 3 4 turns false. At the rising edge of clock cycle 4, register 185 in Figure i loads eshift signal 164 and outputs a true value through lshift 168. In addition, the X I Q control logic 1 5 6 loads the translated microinstruction 1 7 1 and the instruction related information provided by 1 a t e 0 1 9 1 to the sense q 5 . However, because F_v a 1 i d 1 8 8 is false at the end of clock cycle 3, a false value is loaded into XV2 149 to indicate that the translated microinstruction 171 loaded into XIQ 154 is invalid. Therefore, the microinstruction 1 7 1 generated by the instruction translator 1 38 and loaded into the XIQ 1 5 4 in the clock cycle 3 is marked as invalid, and as expected, when it is output from the XIQ 1 5 4, Executed by the execution phase of the microprocessor 丨〇〇 pipeline. In one example, because the input of X丨Q 1 54 receiving microinstruction 171 is flagged as invalid, it may be overwritten by the next microinstruction. As can be seen from Figure 10, although the new macro instruction was generated during the first clock cycle and loaded into the formatted command queue 1 8 7 , the signal 1 4 1 is deleted until the second clock. The cycle will only be generated. The instruction deletion means in Fig. 1 conveniently enables the macro instruction to be deleted, i.e., marked as invalid, so that the execution stage does not execute the instruction that has been deleted. BRIEF DESCRIPTION OF THE DRAWINGS Figure 11 is a timing chart showing the operation of the instruction deleting apparatus shown in Figure 1 in accordance with the present invention. Except when the instruction formatter 1丨6 produces a new format

12829twfl.ptc 第41頁 1249131 _案號93100761__年月日 倏正___ 五、發明說明(34) 後的巨集指令時X I Q 1 5 4為滿且格式化後指令仔列丨8 7不為 空外,圖1 1與圖1 0相類似。圖1中所示的刪除信號丨4 1的值 必須被載入刪除佇列中與格式化後指令佇列丨8 7内此新的 巨集指令所載入項目相對應的項目,並且與格式化後指令 佇列1 8 7相應的向下轉移,以此保證當格式化後指令佇列 1 8 7提供新的巨集指令時,與其對應的正確的刪除信號的 值也能被刪除佇列提供出來。其相關具體細節將在以下闡 述。因此刪除佇列1 4 5中暫存器KR 1 (在圖4中標記為4 2 1 , 在圖5、6中標記為521,而在此後將稱為KR1 421 )的值也 在圖1 1中表示出來。 在時脈週期1内’XIQ 一 full 195為真。如同圖9、1〇所 示一樣’指令格式器116在formatted 一 instr 197上產生 一個新的指令,F — new一 instr 152為真。因為ΕΕ0包含一個 有效指令’FV0 134為真;但是,如圖所示,因為ΕΕι不包 含一個有效指令,圖1中所示格式化後指令佇列丨8 7的項目 E E 1的有效位元F V 1 1 3 4為假。因此,f I Q控制邏輯1 1 8產 生一個值為真的eload[ 1 ]信號1 62,以此將格式化後指令 信號1 97的有效的新的格式化後的巨集指令載入ΕΕι。信7號 earlyO 193提供保存在ΕΕ0的指令,此指令在圖丨丨中被°標^ 記為〇1\ instr ;信號lateO 191提供保存在LE0的舊指^ 的相關資訊’此資訊被標記為〇 1 d i n f 〇,如圖所示。與 10所示相同,圖1中的刪除信號141&kill〇信號143均^圖 假’有效位元X V 2 1 4 9為真。但是,因為ρ v 〇 1 3 4為真, 刪除信號1 4 1為假,所以F 一 v a 1 i d 1 8 8為真。K R 1 4 2 1為而12829twfl.ptc Page 41 1249131 _ Case number 93100761__年月日日正正___ V. Invention description (34) After the macro instruction XIQ 1 5 4 is full and the formatted command is 丨8 7 not Outside, the Figure 1 is similar to Figure 10. The value of the delete signal 丨4 1 shown in Figure 1 must be loaded into the delete queue in the format corresponding to the project loaded by the new macro instruction in the formatted command queue 丨8, and the format After the instruction, the corresponding column is shifted downwards to ensure that the value of the correct deletion signal corresponding to the command can be deleted when the command queue 1 87 provides a new macro instruction after formatting. Offer it. The relevant details will be explained below. Therefore, the value of the register KR 1 (labeled as 4 2 1 in FIG. 4, labeled 521 in FIG. 5 and 6, and will be referred to as KR1 421 hereinafter) in the queue 1 4 5 is also deleted. Said in the middle. In the clock cycle 1 'XIQ a full 195 is true. As shown in Figures 9, 1 ', the instruction formatter 116 generates a new instruction on the formatted one instr 197, F - new - instr 152 is true. Because ΕΕ0 contains a valid instruction 'FV0 134 is true; however, as shown, since ΕΕι does not contain a valid instruction, the formatted instruction shown in Figure 1 is listed as the valid bit FV of item EE 1 of 丨8 7 1 1 3 4 is false. Thus, f I Q control logic 1 1 8 produces a value of true eload[ 1 ] signal 1 62, thereby loading a valid new formatted macro instruction of the formatted instruction signal 1 97 into ΕΕι. The letter 7 earlyO 193 provides the instruction stored in ΕΕ0, which is marked as 〇1\ instr in the figure; the signal lateO 191 provides the relevant information of the old finger saved in LE0' This information is marked as 〇1 dinf 〇 as shown. As shown in Fig. 10, the delete signal 141 & kill 〇 signal 143 in Fig. 1 is assuming that the dummy bit X V 2 1 4 9 is true. However, since ρ v 〇 1 3 4 is true, the delete signal 1 4 1 is false, so F a v a 1 i d 1 8 8 is true. K R 1 4 2 1 is for

1249131 案號 93100761 曰 修正 五、發明說明(35) 假。 在時脈週期2内,FV1 134被設置為說明EE1是否包含 一個有效指令,F V 0同樣保持被設置的狀態。舊指令保存 在ER 0 2 2 0,而舊指令的相關資訊則保存在LR 0 3 2 0。暫存 器183輸出一個值為真的li〇ad[l] 142。新指令被載入ER1 2 2 1 ,如圖所示。與新指令相關的新的資訊被產生為 X 一 rel 一 info 186,且圖3中的多工器311將選中負載資料輸 入端,此輸入同樣被提供給暫存器LR 1 3 2 1。因為在第二 時脈週期起始時XIQ 1 54為滿,所以FIQ控制邏輯118產生 一個值為假的eshi f t信號1 64。XIQ控制邏輯1 56隨之賦假 XIQ一 f ul 1 1 95,藉此以表示指令轉譯器丨38將準備在 第二時脈週期内轉譯一條新的巨集指令。 、 同樣在時脈週期2内,控制邏輯1 〇 2發現一個第一時脈 週期内產生的新指令必須被刪除的情況,並因此在第二時 脈週巧後半周產生一個值為真的刪除信號141。KR1 421保 持為假。根據圖4至圖6,因為此例中格式化後指令佇列 187的ΕΕ0内的指令不需被刪除,ki 11〇信號143為假。進一 步,因為ki 110信號143為假,而FV() 134 ,188為假。因為XIQ 154被向下轉移依f吏 ί - ίί ί —時脈週期不再為滿,XV2 149轉為假。這 54頂端項目的指令,亦即,其有效性為XV2 149 所明確的項目,不再有效。 。 20?卜在期3内’因為eshift信號164在時脈週期clk 升緣為饭,新指令被保持在ER1 221内,另外舊指令1249131 Case No. 93100761 修正 Amendment 5. Invention Description (35) False. During clock cycle 2, FV1 134 is set to indicate whether EE1 contains a valid command and F V 0 remains in the set state. The old instructions are saved in ER 0 2 2 0, while the information about the old instructions is stored in LR 0 3 2 0. The register 183 outputs a value of li〇ad[l] 142. The new instruction is loaded into ER1 2 2 1 as shown. The new information associated with the new instruction is generated as X - rel - info 186, and the multiplexer 311 in Figure 3 will select the load data input, which is also provided to the scratchpad LR 1 3 2 1 . Because XIQ 1 54 is full at the beginning of the second clock cycle, FIQ control logic 118 produces an eshi f t signal 1 64 with a value of false. The XIQ control logic 1 56 then falsifies XIQ-f ul 1 1 95, whereby the instruction translator 丨38 will be ready to translate a new macro instruction during the second clock cycle. Also during clock cycle 2, control logic 1 〇 2 finds that a new instruction generated during the first clock cycle must be deleted, and therefore a true value is deleted in the second half of the second clock cycle. Signal 141. KR1 421 remains false. According to Figs. 4 to 6, since the instruction in ΕΕ0 of the command queue 187 after formatting in this example does not need to be deleted, the ki 11〇 signal 143 is false. Further, because ki 110 signal 143 is false, and FV() 134, 188 is false. Because XIQ 154 is shifted down by f吏 ί - ίίί — the clock cycle is no longer full and XV2 149 turns false. The instructions of the top 54 project, that is, the items whose validity is XV2 149, are no longer valid. . 20? Bu in period 3 'Because the eshift signal 164 rises to the meal during the clock cycle clk, the new instruction is kept in ER1 221, and the old instruction

第43頁 1249131Page 43 1249131

w 在-i / 20 ’並通過early0 193被提供給指令轉譯 =! 行轉澤。FV1與FV0 1 34保持為真。指令轉譯器1 38 售的巨集指令,並把轉譯成的微指令171提供給XIQ 。因為在時脈週期3的其他時間區域内,;i i〇ad[〇] 142 ^ 1 shift 168均為假,因此,lr0 32 〇的内容,亦即,舊w is at -i / 20 ′ and is provided to the command translation by early0 193 =! FV1 and FV0 1 34 remain true. The instruction interpreter 1 38 sells the macro instruction and provides the translated microinstruction 171 to XIQ. Because in the other time zone of the clock cycle 3, i i〇ad[〇] 142 ^ 1 shift 168 is false, therefore, the content of lr0 32 〇, that is, the old

指令的舊相關資訊,將通過1&4〇 191而被提供給XIQ 54。因為ii〇ad[0] 142在時脈週期clk 2〇2上升緣為真, ί f在第二時脈週期通過X-rel-inf0 186提供的新的相關 ^訊被載入LR 1 3 2 1。在第三時脈週期開始後,ρ丨q控制邏 輯1—18產生一個值為真的eshift信號164,以使得新的指令 在第四個時脈週期被由EE 1轉移至EE〇。 同樣在時脈週期3内,因為在時脈週期2末尾丨1〇ad[ i ] 142及刪除信號141為真,所以一個真值被載入ΚΙΠ 421,The old related information of the instruction will be provided to XIQ 54 through 1&4〇191. Since ii〇ad[0] 142 is true at the clock period clk 2〇2 rising edge, ί f is loaded into the LR 1 3 2 by the new correlation signal provided by X-rel-inf0 186 in the second clock cycle. 1. After the start of the third clock cycle, ρ丨q control logic 1-18 produces a true value of eshift signal 164 such that the new instruction is transferred from EE 1 to EE 第 during the fourth clock cycle. Also in the clock cycle 3, since 丨1〇ad[ i ] 142 and the delete signal 141 are true at the end of the clock cycle 2, a true value is loaded ΚΙΠ 421,

如圖所示。但是,根據圖4至圖6,ki 11〇信號丨43將保持為 假。因為FV0 134保持為真,所以F — valid 188也保持為 真。進一步,控制邏輯丨〇 2在時脈週期3賦假值給刪除信號 141。 口 JU 在時脈週期4内,因為新的指令被由ΕΕΐ轉移至ee〇, 所以F V1 1 3 4為假。在時脈週期4的上升緣,X丨q控制邏輯 156將由舊指令轉譯後的微指令171及通過Ute〇 ι91提供 的指令相關資訊載入至XIQ 154。另外,暫存器185載入 eshift信號164並通過ishift 168輸出一真值。因為xiq 1 5 4狀態為可以接受另一個微指令,所以e s h丨f t為真。因 為在時脈週期c 1 k 2 0 2上升緣e s h i f t信號1 6 4為真,所以新as the picture shows. However, according to Figures 4 to 6, the ki 11 〇 signal 丨 43 will remain false. Since FV0 134 remains true, F — valid 188 also remains true. Further, the control logic 丨〇 2 gives a false value to the delete signal 141 at the clock cycle 3. Port JU is in the clock cycle 4, because the new command is transferred from ΕΕΐ to ee〇, so F V1 1 3 4 is false. At the rising edge of the clock cycle 4, the X丨q control logic 156 loads the microinstruction 171 translated by the old instruction and the instruction related information supplied by Ute〇ι 91 into the XIQ 154. In addition, register 185 loads eshift signal 164 and outputs a true value via ishift 168. Since xiq 1 5 4 state is acceptable for another microinstruction, e s h丨f t is true. Because the rising edge e s h i f t signal 1 6 4 is true in the clock cycle c 1 k 2 0 2 , so new

12829twfl.ptc 第44頁 1249131 ---案號 931007m 五、發明說明(37) 年月曰 條π1— ^令由ER1 221轉移至ER0 220,並通過early〇 193提供給 ,令轉譯器138以進行轉譯。FV〇 134保持為真。指令轉譯 為1 3 8轉譯新指令,並把得到的微指令丨7 1提供給χ工卩 154。因為在時脈週期4内ishi ft 168為真,所以保持在 L R 1 3 2 1的新指令相關資訊被選中為多工器3 1 〇的切換資料 輸入端,並被通過1 ate0信號191向外提供,如圖所示。、 同樣在時脈週期4内,在時脈週期2内產生並被保存在 刪除件列1 4 5的刪除信號1 4 1的值,亦即,刪除位元,被由 KR1 421轉移至圖4的KR0 4 2 0 (或圖5、6的KR0 5 2 0 )。因 此,根據圖4至圖6可知其導致產生一個值為真的“丨丨^信 號143。根據圖7,F一valid 188相應的轉為假。 " 在時脈週期5内,因為新指令被轉移出格式化後指令 仔列187,所以FIQ控制邏輯丨18清除FV0 134。在時脈週期 5的上升緣,xiq控制邏輯156將由新指令轉譯後所得的微 指令1Π及通過iate〇 191提供的新指令相關資訊載入至^ XIQ 154。但是,因為在時脈週期4末尾F — vaUd U8為 假」因此一個假的值被載入XV2 149來表一示載入XIQ 154的 轉譯後的微指令無效。因此,在時脈週期3由指令轉譯器 1 3 8產生並被載入X I q 1 5 4的微指令1 7 1被標記為無效,並 且如同所預期一樣,當其&XIQ 154輸出時,不會被微處 理器1 〇 〇管線的執行階段所執行。在一種實例中,因為χ j q 154用來接收微指令171的項目被標記為無效,它可能合 下一個微指令覆蓋。 9破 從圖1 1可看出,儘管新的巨集指令在第一時脈週期内12829twfl.ptc Page 44 1249131 --- Case No. 931007m V. Invention Description (37) The year 曰 π π — 令 令 令 令 令 令 令 令 令 令 ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER ER 〇 〇 〇 〇 Translation. FV〇 134 remains true. The instruction is translated into a 1 3 8 translation new instruction, and the obtained micro-instruction 丨 7 1 is provided to the 卩 卩 154. Since ishi ft 168 is true during clock cycle 4, the new instruction related information held at LR 1 3 2 1 is selected as the switching data input of multiplexer 3 1 , and is passed through 1 ate0 signal 191 Provided as shown. Similarly, in the clock cycle 4, the value of the delete signal 1 4 1 generated in the clock cycle 2 and stored in the delete block column 1 4 5, that is, the delete bit is transferred from KR1 421 to FIG. 4 KR0 4 2 0 (or KR0 5 2 0 of Figures 5 and 6). Therefore, it can be seen from FIG. 4 to FIG. 6 that it causes a value of 丨丨^ signal 143 to be generated. According to FIG. 7, F-valid 188 is correspondingly turned false. " In the clock cycle 5, because of the new instruction After being formatted, the instruction is queued 187, so FIQ control logic 丨18 clears FV0 134. At the rising edge of clock cycle 5, xiq control logic 156 will be provided by the new instruction translated by the new instruction 1 Π and provided by iate 191 The new instruction related information is loaded into ^ XIQ 154. However, since F - vaUd U8 is false at the end of clock cycle 4, a false value is loaded into XV2 149 to indicate the translation of XIQ 154 after loading. The microinstruction is invalid. Therefore, the microinstruction 1 7 1 generated by the instruction translator 1 3 8 in the clock cycle 3 and loaded into the XI q 1 5 4 is marked as invalid, and as expected, when its &XIQ 154 is output, It is not executed by the execution phase of the microprocessor 1 〇〇 pipeline. In one example, because the item used by χ j q 154 to receive microinstruction 171 is marked as invalid, it may be combined with the next microinstruction. 9 broken As can be seen from Figure 11, although the new macro instruction is in the first clock cycle

12829twfl.ptc 第45頁 1249131 案號 93100761 五、發明說明(38) 就已產生並且被載入格式化 卻直到第二時脈週期才產生。私π仔列1 8 7,刪除信號1 4 1 地使巨集指♦能夠被刪除,亦圖1中的指令刪除震置方便 執行階段不會執行已被刪除令將,、標誌為無效,因此 雖然本發明與其g的、# :々二 細解釋,它還可以包括其他^ 及,點已在士文檔中詳 芬客絲杜人 π 、實例。例如,儘管文中ρ接 及夕種I曰令必須被刪除的情況, =中已耠 下的指令刪除。另外,儘管 :、:仍:】於其他情況 將巨集指令轉譯成微指令的實二,,、士迷一,表示微處理器 令集電腦u!sc)代替,解·sc指:微= g:譯成微指令的實例仍不脫離本發明的可預期的實施; 除用硬體來實施本發明外,它還可以通過電腦可讀代 ,^電腦可讀程式碼、資料等)在_個電腦可用(如可 =的)媒體内實現。此類電腦代碼可造成對此發明功能的 I她、模仿或兩者都有。例如,此功能可用通用的編程語 s (如C、C + +、JAVA、及其它類似語言)實現;亦可用 GDSII資料庫,硬體描述語言(HDL),包括Veril〇g HDL、VHDL、Altera HDL (AHDL)等,或者其他程式和/或 電路(如schematic )捕獲工具等行業記憶體在的工具實 現。電腦代碼可儲存於任何電腦可用(如可讀的)媒體、 内’包括半島器記憶體、磁片、光碟、CD - ROM、DVD K3M 及類似品,或作為電腦資料被放置在電腦可用(如可讀 的)傳播媒體(如載波或其他媒體包括數位的\光學的、12829twfl.ptc Page 45 1249131 Case No. 93100761 V. The invention description (38) has been generated and loaded into format but not generated until the second clock cycle. Private π 仔 1 8 7, delete signal 1 4 1 to make the macro ♦ can be deleted, also the instruction in Figure 1 deletes the shock, the execution phase will not execute the deleted command, the flag is invalid, so Although the present invention and its g, #: 々 细 解释 , , , , , , , , 。 。 。 。 。 。 。 。 。 。 。 。 点 点 点 点 点 点 点 点 点 点 、 For example, although the ρ and 夕 I commands must be deleted in the text, the instruction in the = has been deleted. In addition, although::: still:] In other cases, the macro instruction is translated into the actual two of the micro-instruction, and the fan is one, indicating that the microprocessor makes the computer u!sc) instead, the solution·sc refers to: micro= g: An example of translation into a microinstruction does not deviate from the predictable implementation of the present invention; in addition to implementing the invention by hardware, it can also be read by a computer, computer readable code, data, etc. in _ A computer can be implemented in the media (as can be =). Such computer code can cause the invention, the imitation, or both. For example, this feature can be implemented in a common programming language (such as C, C++, JAVA, and other similar languages); it can also use the GDSII database, hardware description language (HDL), including Veril〇g HDL, VHDL, Altera HDL (AHDL), etc., or other programs and/or circuits (such as schematic) capture tools such as tool memory implementations. The computer code can be stored in any computer-usable (eg readable) media, including peninsula memory, magnetic disk, CD-ROM, CD-ROM, DVD K3M and similar products, or can be placed on a computer as computer data (eg Readable) media (such as carrier or other media including digital \ optical,

12829twfl.ptc 第46頁 1249131 _案號93100761_年月曰 修正_ 五、發明說明(39) 或類比媒體)。因此,電腦代碼可在通訊網絡中傳播,包 括因特網和企業内部網路。作為知識產權的一部分,本發 明可以包含於電腦代碼核心,例如微處理器核心,或者系 統級設計’例如单片機糸統(S 0 C )内’並作為積體電路 產品的一部分而被轉移到硬體内。同時,本發明也可以用 硬體及電腦代碼的結合來實現。 最後,熟悉本專業的技術人員在不脫離本發明技術方 案範圍内,當可利用上述揭示的技術内容作出些許更動或 修飾為等同變化的等效實施例,但是凡是未脫離本發明技 術方案的内容,依據本發明的技術實質對以上實施例所作 的任何簡單更正、等同變化與修飾,均仍屬於本發明技術 方案的範圍内。12829twfl.ptc Page 46 1249131 _ Case No. 93100761_Yearly 曰 Amendment _ V. Invention Description (39) or analog media). As a result, computer code can be spread across communications networks, including the Internet and corporate intranets. As part of intellectual property, the invention may be embodied in a computer code core, such as a microprocessor core, or in a system-level design, such as a microcontroller system (S0C), and is transferred as part of an integrated circuit product. To the hard body. At the same time, the invention can also be implemented by a combination of hardware and computer code. In the following, those skilled in the art can make some modifications or modifications to the equivalent embodiments by using the above-disclosed technical contents without departing from the technical solutions of the present invention. Any simple corrections, equivalent changes and modifications made to the above embodiments in accordance with the technical spirit of the present invention are still within the scope of the technical solutions of the present invention.

12829twf1.ptc 第47頁 1249131 _案號93100761_年月曰 修正_ 圖式簡單說明 圖1為本發明所述一種微處理器的 < 個結構示意圖。 圖2為說明依據本發明之圖1 所示格式化的指令佇列 的第一佇列的結構示意圖。 圖3 為說明依據本發明之圖1 所示格式化的指令佇列 的第二佇列的結構示意圖。 圖4 為說明依據本發明之圖1 所示删除佇列的第一個 實例的結構示意圖。 圖5為說明依據本發明之圖1 所示刪除佇列的第二個 實例的結構示意圖。 圖6為說明依據本發明之圖1 所示刪除佇列的第三個 實例的結構示意圖。 圖7為產生依據本發明之圖1 所示F_valid信號的FIQ 控制邏輯的結構示意圖。 圖8為說明依據本發明之圖1所示微處理器指令刪除裝 置工作原理的流程圖。 圖9為說明依據本發明之圖1所示指令刪除裝置工作原 理的時序圖。 圖1 0為說明依據本發明之圖1所示指令刪除裝置工作 原理的時序圖。 圖1 1為說明依據本發明之圖1所示指令刪除裝置工作 原理的時序圖。 圖式標記說明 : 1 0 0 ··微處理器 1 0 2 :控制邏輯12829twf1.ptc Page 47 1249131 _Case No. 93100761_年月曰 修正 Revision _ Schematic description of the drawing Fig. 1 is a schematic structural view of a microprocessor according to the present invention. Figure 2 is a block diagram showing the first array of command strings formatted in Figure 1 in accordance with the present invention. Figure 3 is a block diagram showing the structure of a second array of command strings formatted in accordance with Figure 1 of the present invention. Fig. 4 is a block diagram showing the first example of the deletion queue shown in Fig. 1 according to the present invention. Figure 5 is a block diagram showing the second example of the delete queue shown in Figure 1 in accordance with the present invention. Figure 6 is a block diagram showing the third example of the delete queue shown in Figure 1 in accordance with the present invention. Figure 7 is a block diagram showing the structure of the FIQ control logic for generating the F_valid signal of Figure 1 in accordance with the present invention. Figure 8 is a flow chart showing the operation of the microprocessor instruction deletion device of Figure 1 in accordance with the present invention. Fig. 9 is a timing chart showing the principle of operation of the instruction deleting apparatus shown in Fig. 1 in accordance with the present invention. Figure 10 is a timing diagram showing the operation of the instruction deleting apparatus shown in Figure 1 in accordance with the present invention. BRIEF DESCRIPTION OF THE DRAWINGS Figure 11 is a timing chart showing the operation of the instruction deleting apparatus shown in Figure 1 in accordance with the present invention. Schematic description: 1 0 0 ··Microprocessor 1 0 2 : Control logic

12829twfl.ptc 第48頁 1249131 案號 93100761 圖式簡單說明 104 指令快取記憶體 106 分支目標位址快取 108 前置解碼邏輯 111 X _ s h i f t 信號 112 指令位元組緩衝器 1 14 指令位元組緩衝控 116 指令格式器 118 F I Q控制邏輯 132 早期佇列 134 有效位元 138 指令轉譯器 141 刪除信號 142 1 1 〇 a d信號 146 晚期佇列 148 X_va 1 i d 信號 149 有效位元 151 I階段 152 F_new_instr 信號 153 F階段 154 轉譯後的指令佇列 155 X階段 156 X I Q控制邏輯 157 R階段 161 控制信號 _Ά 曰 修正12829twfl.ptc Page 48 1249131 Case No. 93100761 Brief Description of Patterns 104 Instruction Cache Memory 106 Branch Target Address Cache 108 Predecode Logic 111 X _ Shift Signal 112 Instruction Byte Buffer 1 14 Instruction Bytes Buffer Control 116 Instruction Formatter 118 FIQ Control Logic 132 Early Array 134 Valid Bit 138 Instruction Translator 141 Delete Signal 142 1 1 〇ad Signal 146 Late Queue 148 X_va 1 id Signal 149 Valid Bit 151 I Stage 152 F_new_instr Signal 153 F stage 154 translated instructions queue 155 X stage 156 XIQ control logic 157 R stage 161 control signal _Ά 曰 correction

12829twf1.ptc 第49頁 1249131 _案號93100761_年月日_修正 圖式簡單說明 1 6 2 : e 1 〇 a d 信號 164 :eshift 信號 164 : X_load 信號 1 6 7 :指令位元組 1 6 9,1 9 6 :前置解碼資訊 1 7 1 :微指令 1 7 2 ,1 7 8 :多工器 1 7 5 :預測的分支目標位址 1 7 6 :執行階段暫存器 1 7 7 :更正位址 1 7 9 :下一個目標位址 1 8 1 :當前選取位址 1 8 2 :當前指令指標 1 8 3,1 8 5 :暫存器 186 :X_rel_info信號 1 8 7 :格式化後的指令佇列 188 :F_valid 信號 1 8 9 :有效位元暫存器 1 9 1 :晚期信號 1 9 3 :早期信號 1 9 4 :分支預測相關資訊 195 : XIQ_ful1 信號 1 9 7 :格式化後指令 198 :F_instr_info 信號12829twf1.ptc Page 49 1249131 _ Case No. 93100761_Year Month Day_Revision Diagram Simple Description 1 6 2 : e 1 〇ad Signal 164 : eshift Signal 164 : X_load Signal 1 6 7 : Command Bits 1 6 9, 1 9 6 : Pre-decoding information 1 7 1 : Micro-instruction 1 7 2 , 1 7 8 : Multiplexer 1 7 5 : Predicted branch target address 1 7 6 : Execution stage register 1 7 7 : Correction bit Address 1 7 9 : Next target address 1 8 1 : Current selected address 1 8 2 : Current instruction indicator 1 8 3,1 8 5 : Register 186 : X_rel_info signal 1 8 7 : Formatted command伫Column 188: F_valid signal 1 8 9 : Valid bit register 1 9 1 : Late signal 1 9 3 : Early signal 1 9 4 : Branch prediction related information 195 : XIQ_ful1 Signal 1 9 7 : Formatted instruction 198 : F_instr_info signal

12829twf1.ptc 第50頁 1249131 _案號93100761_年月曰 修正_ 圖式簡單說明 199 : FIQ_ful1 信號 2 0 2 :時脈訊號 210 ,211 ,212 ,310 ,311 ,312 ,410 ,411 ,412 ,509 , 5 1 0 ,5 1 1 ,5 1 2 ··多工器 220 ,221 ,222 ,320 ,321 ,322 ,420 ,421 ,422 ,520 , 5 2 1 ,5 2 2 :暫存器 6 0 2 ,71 2 :反相器 604 ,606 5 714 :及閘 6 0 8 :或閘12829twf1.ptc Page 50 1249131 _ Case No. 93100761_ Year Month 曰 Correction _ Simple Description of the Drawing 199 : FIQ_ful1 Signal 2 0 2 : Clock Signals 210 , 211 , 212 , 310 , 311 , 312 , 410 , 411 , 412 , 509, 5 1 0 , 5 1 1 , 5 1 2 ··Multiplexer 220,221,222,320,321,322,420,421,422,520, 5 2 1 ,5 2 2 : register 6 0 2 , 71 2 : Inverter 604 , 606 5 714 : and gate 6 0 8 : or gate

12829twf1.ptc 第51頁12829twf1.ptc第51页

Claims (1)

1249131 案號93100761 年月日 修正 裝彳 、的 除 ^ 0 冊£ 令理》 處 匕曰 t猬 種 圍一 一 範 利 > 專入 請載 申 ί 六 # 於 週 脈 時 1 第一 在 令 指 1 中 其 置 指 列 佇 令 的 後 之 在 令 指 該 將 並 裝 除 删 令 指 該 出 輸 目 項 端 底 列 佇 令 指 從 期 週 脈 時: 二括 第包 一置 第一 的 後 之 期 週 脈 時一 第 述 前 遞 傳 ; 來值 用的 ,生 號產 信内 除期 刪週 一脈 時 三 三期 第週 述脈 前時 入二 載第 來述 月、一月 ,於 號並 信, 除值 刪的 該號 至信 合除 耦刪 ,該 列的 仔生 除產 刪期 一週 脈 時 脈在 時果 二如 第, 述行 前執 於器 mc- ,J1 列處 佇微 除被 刪將 該否 至是 合令 耦指 ,示 及號表 以信於 ;性用 出效, 輸有生 值一產 此 期 將 週 為 值 的 # 信 除 刪 的 出 輸 列 佇 除。 刪假 述為 前值 由號 期信 週性 rr效 時有 二此 第則 过, 前真 第 圍 範 利 專 請 申 據 根 的週 述脈 所時 項二 第 述 前 與 期 週 脈 時 三 第 述 前 ο 中期 其 ,週 置脈 裝時 除一 刪同 令為 期 匕曰 第 圍 範 利 專 請 中 據 根 的週 述脈 所時 項二 第 述 前 為 期 週 脈 時 三 第 述 前。 中期 其週 ,脈 置時 裝個 除一 刪前 令之 期 匕曰 還 置 裝 除 刪 令 指 的 述 所 項 1X 第 圍 範 利 專 請 申 據 根 括 包 週 脈 時 二 第 在 來 用 列 佇 除 刪 該 至 合 耦 # 信 入 4与 佇 令 指 述 前 到 入 載 被 已 期 週 脈 時一 第 在 否 是。 令目 指項 示端 表底 内的 月1249131 Case No. 93100761 Correction of the installation of the month, in addition to the ^ 0 book of the order of the order of the 》 猬 猬 猬 猬 一 一 一 一 一 & & 专 专 专 专 专 专 专 专 专 专 专 专 专 专 专 专 专 专 专 专 六 六 六 六 六 六 六 六 周In the case of the first order of the order, the order of the order is the order of the order, and the order is the end of the line. In the period of the Zhou dynasty, the first pre-transmission; the value used, the birth number of the birth letter, the deletion of the week, the third and the third week, the first week before the pulse, into the second, the first month, January, I believe that the number is deleted from the letter to the letter and decoupling. The list of the child's birth and the deletion of the week is the same as the time of the second, as stated in the mc-, J1 column. If the micro-division is deleted, it will be the coupling of the order, and the sign-and-sale form will be used by the letter; if the sexual use is effective, the value of the output will be deleted. . The depreciation is described as the former value. The period is circumscribed by the periodical rr. There are two cases in the first period. The former true range of Fan Li is requested to apply for the root of the Zhou Shumai, the second item, the first and the last period. In the middle of the first ο mid-term, the circumstance of the circumstance of the circumstance, except for the deletion of the same order, the period of the second round of Fan Li’s request for the syllabus of the Zhou dynasty. In the middle of the week, in addition to the deletion of the pre-order, the fashion is also included in the deduction of the order. 1X The following paragraphs Fan Li’s application for the application of the package is included in the second paragraph. In addition to deleting the to the coupling # 信入4 and the order of the order to the time of entry into the period of the period is no. Order the month in the bottom of the item I2829twfI.ptc 第52頁 1249131 六 --93100761 _ 、申請專利^ ^ 根據申請專利範HI楚/1右 ,前述載入信號為真,則圍,弟4:員所,的指令刪除裝置,如 R週卩期為同一時脈週期j別;L弟一打脈週期與前述第二時 5前述载入虞信申號月為專假利,^圍/4 f所述的指令刪Μ 脈週期之後。 、則述弟二時脈週期在前述第三時 包括7:、羅根據申請專利範圍第4項所述的指令刪除裝置,還 2根據前ί載:列:用來在前述第二時脈週 、值8來產生前述有效性信^除佇列輸出的前述刪除信號 中前,:除據仵申歹月包專括利範圍第1項所述的指令刪除裝置,其 複數個項目,用來儲卢1 八 的硬數個前述除信號^目對應之複數個時脈週期内產 、根據申請專利範珀 =述複數個刪除仵列弟8 ^斤述的指令刪除裝置,其 二:入端,此負载資料輪:::-個都包括一個負載資 述刪除信號。 鸲耦接至對應的項目以接收^ 1 〇、根據申請專利r 3中前述複數個删除 3項所述的指令刪除裝置, 資料輸入端,此保持資丁U目中的每-個都包括一個保持 此對應項目的當前值。⑥入端耦接至對應的項目以接收 π、根據申請專利 乾圍弟8項所述的指令刪除裝置, 12829twfl.ptc 第53頁 1249131 _案號93100761_年月曰 修正_ 六、申請專利範圍 其中前述複數個刪除佇列項目中的每一個都包括一個轉移 資料輸入端,此轉移資料輸入端耦接至對應的項目,以接 收由前述複數個刪除佇列項目之中位於此對應項目之上的 項目所傳來之刪除信號的複數個值中的一個。 1 2、根據申請專利範圍第8項所述的指令刪除裝置, 其中指令佇列包括複數個項目用來儲存複數個指令,而前 述複數個刪除佇列項目則用來儲存與前述複數個指令佇列 項目内的前述複數個指令相對應的前述刪除信號的值。 1 3、根據申請專利範圍第1項所述的指令刪除裝置, 其中的指令包括一個可變長度指令。 1 4、根據申請專利範圍第1 3項所述的指令刪除裝置, 其中前述可變長度指令包括一個X8 6結構的指令。 1 5、根據申請專利範圍第1 3項所述的指令刪除裝置, 指令由一指令格式器在第一時脈週期提供給指令佇列,前 述指令格式器決定指令的長度。 1 6、根據申請專利範圍第1項所述的指令刪除裝置, 其中前述指令在前述第二時脈週期由前述指令佇列底端項 目輸出給指令轉譯器,以轉譯成為一個或多個微指令,並 由微處理器根據前述有效性信號選擇性執行。 1 7、一種在微處理器中刪除指令的方法,包括: 在一第一時脈週期將一指令載入在一第一佇列中; 在前述第一時脈週期之後的一第二時脈週期產生一刪 除信號; 在前述第二時脈週期内將前述刪除信號的一個值載入I2829twfI.ptc Page 52 1249131 VI--93100761 _ , Apply for a patent ^ ^ According to the application patent Fan HI Chu / 1 right, the above loading signal is true, then, the brother, the 4: staff, the instruction to delete the device, such as R The cycle is the same clock cycle; the L-one pulse cycle and the aforementioned second time 5 are loaded into the letter of the month, which is a special holiday, and the instruction described in ^f/4f is deleted after the pulse cycle. The second clock cycle of the second phase includes 7:, the instruction to delete the device according to the fourth paragraph of the patent application scope, and 2 according to the preceding: column: used in the aforementioned second clock week a value of 8 to generate the aforementioned validity signal, except for the aforementioned deletion signal outputted by the queue, in addition to the instruction deletion device described in item 1 of the exclusive application of the monthly package, the plurality of items are used for The hard number of the storage of the first eight, except for the signal, corresponds to the number of clock cycles, and according to the patent application, the number of the deleted devices is deleted. The load data round:::- all include a load statement delete signal.鸲 is coupled to the corresponding item to receive ^1 〇, according to the instruction deletion device described in the foregoing plurality of deletions in the patent r3, the data input terminal, each of the retention entities includes one Keep the current value of this corresponding item. The 6th end is coupled to the corresponding item to receive π, according to the instruction to delete the device according to the application of the patented cadre 8th, 12829twfl.ptc page 53 1249131 _ case number 93100761_ year 曰 correction _ 6. Patent application scope Each of the plurality of deletion queue items includes a transfer data input end, and the transfer data input end is coupled to the corresponding item to receive the plurality of delete queue items located above the corresponding item. One of the plural values of the deleted signal from the project. 1 2. The instruction deletion device according to item 8 of the patent application scope, wherein the instruction queue includes a plurality of items for storing a plurality of instructions, and the plurality of deletion queue items are used for storing the plurality of instructions. The value of the aforementioned delete signal corresponding to the plurality of instructions in the column item. 1. The instruction deletion device according to claim 1, wherein the instruction comprises a variable length instruction. The instruction deletion device according to Item 13 of the patent application scope, wherein the variable length instruction comprises an instruction of an X8 6 structure. 15. The instruction deletion device according to claim 13 of the patent application scope, wherein the instruction is provided to the instruction queue by the instruction formatter in the first clock cycle, and the instruction formatter determines the length of the instruction. The instruction deletion device according to claim 1, wherein the instruction is output to the instruction translator by the bottom command item in the second clock cycle to be translated into one or more microinstructions. And selectively executed by the microprocessor according to the aforementioned validity signal. 17. A method of deleting an instruction in a microprocessor, comprising: loading an instruction in a first queue during a first clock cycle; a second clock after the first clock cycle Generating a delete signal; loading a value of the aforementioned delete signal during the aforementioned second clock cycle 12829twf1.ptc 第54頁 1249131 _案號93100761_年月曰 修正_ 六、申請專利範圍 在一第二佇列中; 在一第三時脈週期判斷該第二佇列内的前述值是否為 真,在前述第三時脈週期内指令由前述第一佇列的底端項 目輸出;以及 如果前述值為真,執行前述指令。 1 8、根據申請專利範圍第1 7項所述的在微處理器中刪 除指令的方法,其中前述第三時脈週期與前述第二時脈週 期為同一時脈週期。 1 9、根據申請專利範圍第1 7項所述的在微處理器中刪 除指令的方法,其中前述第三時脈週期為前述第二時脈週 期的下一個時脈週期。 2 0、根據申請專利範圍第1 7項所述的在微處理器中刪 除指令的方法,還包括: 在將前述指令載入前述第一佇列之前,將前述指令格 式化。 2 1、根據申請專利範圍第1 7項所述的在微處理器中刪 除指令的方法,還包括: 在將前述指令載入於前述第一佇列之後,判斷前述指 令有否在前述第一佇列内向下轉移;以及 如果前述指令在前述第一彳宁列内已被向下轉移,在將 前述删除信號的值載入第二佇列之後,將前述刪除信號的 值在前述第二仵列内向下轉移。 2 2、根據申請專利範圍第1 7項所述的在微處理器中刪 除指令的方法,還包括:12829twf1.ptc Page 54 1249131 _ Case No. 93100761_Yearly revision _ 6. The patent application scope is in a second queue; in a third clock cycle, it is determined whether the aforementioned value in the second queue is true The instruction is output by the bottom end item of the first array in the aforementioned third clock cycle; and if the foregoing value is true, the foregoing instruction is executed. The method of deleting an instruction in a microprocessor according to claim 17, wherein the third clock period and the second clock period are the same clock period. The method of deleting an instruction in a microprocessor according to claim 17, wherein the third clock cycle is a next clock cycle of the second clock cycle. The method of deleting an instruction in a microprocessor according to claim 17 of the patent application scope, further comprising: formatting the foregoing instruction before loading the foregoing instruction into the first queue. The method for deleting an instruction in a microprocessor according to claim 17 of the patent application scope, further comprising: after loading the foregoing instruction in the first queue, determining whether the instruction is in the first Moving downwards within the queue; and if the aforementioned instruction has been shifted downward in the first sequence, after loading the value of the delete signal into the second queue, the value of the delete signal is in the second Move down the column. 2 2. The method for deleting instructions in a microprocessor according to claim 17 of the patent application scope further includes: 12829twf1.ptc 第55頁 1249131 _案號93100761_年月日_Μ-_ 六、申請專利範圍 在將前述指令載入前述第一佇列之前,預測前述指令 為進行分支指令; 發現一個對前述分支進行指令的錯誤預測;以及 回應前述發現的錯誤預測,在前述第二時脈週期,進 行前述產生前述刪除信號的操作。 2 3、根據申請專利範圍第2 2項所述的在微處理器中删 除指令的方法,其中微處理器的一個分支位址快取記憶體 進行前述指令為進行分支指令的預測。 2 4、根據申請專利範圍第2 2項所述的在微處理器中删 除指令的方法,其中,對前述分支指令的錯誤預測包含一 個對前述分支指令長度的錯誤預測。 2 5、根據申請專利範圍第2 2項所述的在微處理器中刪 除指令的方法,其中,對前述分支指令的錯誤預測包含一 個對前述分支指令位址的錯誤預測。 2 6、根據申請專利範圍第2 2項所述的在微處理器中删 除指令的方法,其中,對前述分支指令的錯誤預測包含將 非分支指令判斷為分支指令的錯誤預測。 2 7、根據申請專利範圍第1 7項所述的在微處理器中删 除指令的方法,還包括: 基於一個分支指令進行的預測,使此微處理器分支處 理,該指令為此分支指令之下一個指令;以及 在使此微處理器分支處理之後,在前述第二時脈週期 進行產生前述刪除信號的操作。 2 8、根據申請專利範圍第1 7項所述的在微處理器中刪12829twf1.ptc Page 55 1249131 _ Case No. 93100761_年月日日_Μ-_ VI. Patent Application Scope Before the above instructions are loaded into the first queue, the above instructions are predicted to be branch instructions; Performing an error prediction of the command; and in response to the erroneous prediction of the foregoing finding, performing the foregoing operation of generating the aforementioned delete signal in the second clock cycle. 2. A method of deleting an instruction in a microprocessor according to the scope of claim 2, wherein a branch address of the microprocessor caches the memory to perform the prediction of the branch instruction. The method of deleting an instruction in a microprocessor according to claim 22, wherein the error prediction of the branch instruction includes an error prediction of the length of the branch instruction. The method of deleting an instruction in a microprocessor according to claim 22, wherein the error prediction of the branch instruction includes an error prediction of the branch instruction address. The method of deleting an instruction in a microprocessor according to claim 22, wherein the error prediction of the branch instruction includes determining that the non-branch instruction is an error prediction of the branch instruction. 2 7. The method for deleting an instruction in a microprocessor according to claim 17 of the patent application scope, further comprising: performing, according to a prediction by a branch instruction, the microprocessor branch processing, the instruction is a branch instruction The next instruction; and after the microprocessor branch is processed, the operation of generating the aforementioned delete signal is performed in the aforementioned second clock cycle. 2 8. Deleted in the microprocessor according to item 17 of the scope of application for patents 12829twf1.ptc 第56頁 1249131 _案號93100761_年月曰 修正_ 六、申請專利範圍 除指令的方法,其中,前述指令為被預測進行的分支指令 的下一個指令,該方法還包括: 回應於發現前述分支指令被預測為進行,在前述第二 時脈週期進行產生前述刪除信號的操作。 2 9、一種微處理器,包括: 一第一彳宁列,用來接收一個指令並進行缓衝; 一邏輯,耦接至前述第一佇列,用來發現一個前述指 令不能被微處理器執行的情況,其中前述邏輯在一個信號 上產生一個真值來說明前述情況,其中前述具真值的信號 在前述指令被前述第一佇列接收之後產生;以及 一第二佇列,耦接至前述邏輯,用來載入前述具真值 的信號並隨後與前述第一佇列輸出前述指令同時輸出前述 真值,其中微處理器回應前述具真值的信號並作廢前述指 令,而不對其進行執行。 3 0、根據申請專利範圍第2 9項所述的微處理器,其中 前述第二彳宁列包括: 多個儲存單元,用來儲存前述邏輯在相應的多個時脈 週期内產生的前述信號的多個值。 3 1、根據申請專利範圍第3 0項所述的微處理器,其中 前述第一佇列包括複數個儲存單元,用來儲存複數個指 令,其中前述第二佇列的複數個儲存單元用來儲存與前述 第一佇列的複數個儲存單元所儲存的前述複數個指令相應 的複數個信號值。 3 2、一種電腦可用之傳輸媒體,用以儲存一資料信12829twf1.ptc Page 56 1249131 _ Case No. 93100761_Yearly revision _ 6. Application of patent scope In addition to the instruction method, wherein the foregoing instruction is the next instruction of the predicted branch instruction, the method further includes: It is found that the aforementioned branch instruction is predicted to be performed, and the operation of generating the aforementioned delete signal is performed in the aforementioned second clock cycle. A microprocessor comprising: a first serial array for receiving an instruction and buffering; a logic coupled to the first queue for discovering that the aforementioned instruction cannot be used by the microprocessor Execution of the foregoing, wherein the foregoing logic produces a true value on a signal, wherein the signal having a true value is generated after the foregoing instruction is received by the first queue; and a second array coupled to The foregoing logic is configured to load the foregoing signal having a true value and then output the foregoing true value simultaneously with the foregoing first array outputting the foregoing instruction, wherein the microprocessor responds to the foregoing signal having a true value and invalidates the foregoing instruction without performing the same carried out. The microprocessor of claim 29, wherein the second serialization comprises: a plurality of storage units for storing the foregoing signals generated by the logic in a corresponding plurality of clock cycles Multiple values. The microprocessor according to claim 30, wherein the first queue includes a plurality of storage units for storing a plurality of instructions, wherein the plurality of storage units of the second array are used for And storing a plurality of signal values corresponding to the plurality of instructions stored in the plurality of storage units of the first queue. 3 2. A computer-usable transmission medium for storing a data message 12829twf1.ptc 第57頁 1249131 _案號93100761_年月曰 修正_ 六、申請專利範圍 號,該資料信號包括: 一電腦可讀程式碼,被電腦讀取並執行時用來提供一 裝置以刪除在第一時脈週期載入微處理器指令佇列而在一 第二時脈週期由指令仔列底端項目輸出的指令,且此第二 時脈週期係在前述第一時脈週期之後,前述電腦程式碼包 括: 一第一程式碼,被電腦讀取並執行時用來提供一刪除 信號,用來傳遞一個在前述第一時脈週期之後的第三時脈 週期内 生的值; 一第二程式碼,被電腦讀取並執行時用來提供一刪除 佇列,耦接至前述删除信號,用來載入前述第三時脈週期 生的前述刪除信號的值,並在第二時脈週期内輸出前述 刪除信號的值;以及 一第三程式碼,被電腦讀取並執行時用來提供一有效 性信號,耦接至前述刪除佇列,該有效性信號在第二時脈 週期 生,用來指示前述指令是否將被微處理器執行,其 中,如果前述刪除佇列在第二時脈週期内輸出的前述刪除 信號值 真,則前述有效性信號值 假。12829twf1.ptc Page 57 1249131 _ Case No. 93100761_Yearly revision _ 6. Application patent range number, the data signal includes: A computer readable code, used to provide a device to delete when read and executed by the computer An instruction to load a microprocessor command queue in a first clock cycle and output by a bottom-end item in a second clock cycle, and the second clock cycle is after the first clock cycle The computer program code includes: a first code, which is read and executed by the computer to provide a delete signal for transmitting a value generated in a third clock cycle after the first clock cycle; The second code, which is read and executed by the computer, is used to provide a delete queue coupled to the delete signal for loading the value of the delete signal generated by the third clock cycle, and in the second time And outputting the value of the foregoing delete signal in a pulse period; and a third code, which is used by the computer to read and execute to provide a validity signal, coupled to the deletion queue, the validity signal is in the second clock cycle Health, used to indicate whether the instruction is to be executed by the microprocessor, wherein, if the value of the output signal of the deleted in the second clock cycle delete queue true, then the validity signal value is false. 12829twf1.ptc 第58頁12829twf1.ptc第58页
TW93100761A 2003-01-14 2004-01-13 Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor TWI249131B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US44006303P 2003-01-14 2003-01-14

Publications (2)

Publication Number Publication Date
TW200414035A TW200414035A (en) 2004-08-01
TWI249131B true TWI249131B (en) 2006-02-11

Family

ID=34375164

Family Applications (1)

Application Number Title Priority Date Filing Date
TW93100761A TWI249131B (en) 2003-01-14 2004-01-13 Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor

Country Status (2)

Country Link
CN (1) CN1316353C (en)
TW (1) TWI249131B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604235B (en) * 2009-07-10 2012-03-28 杭州电子科技大学 Method for branch prediction of embedded processor
US9317293B2 (en) * 2012-11-28 2016-04-19 Qualcomm Incorporated Establishing a branch target instruction cache (BTIC) entry for subroutine returns to reduce execution pipeline bubbles, and related systems, methods, and computer-readable media
CN109708156B (en) * 2018-10-25 2024-04-12 青岛海尔智能技术研发有限公司 Control method for gas stove and gas stove
CN114090077B (en) * 2021-11-24 2023-01-31 海光信息技术股份有限公司 Method and device for calling instruction, processing device and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW253946B (en) * 1994-02-04 1995-08-11 Ibm Data processor with branch prediction and method of operation
US5644779A (en) * 1994-04-15 1997-07-01 International Business Machines Corporation Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction
US5649137A (en) * 1994-10-20 1997-07-15 Advanced Micro Devices, Inc. Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US6289442B1 (en) * 1998-10-05 2001-09-11 Advanced Micro Devices, Inc. Circuit and method for tagging and invalidating speculatively executed instructions

Also Published As

Publication number Publication date
CN1549113A (en) 2004-11-24
CN1316353C (en) 2007-05-16
TW200414035A (en) 2004-08-01

Similar Documents

Publication Publication Date Title
US9858081B2 (en) Global branch prediction using branch and fetch group history
US7117347B2 (en) Processor including fallback branch prediction mechanism for far jump and far call instructions
TW455810B (en) A method and apparatus for branch prediction using a second level branch prediction table
TWI436275B (en) Microprocessor and method for immediately executing instructions of call and return instruction types using the same
US7159097B2 (en) Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
TWI470547B (en) Out-of-order execution microprocessor and operation method thereof
US7143269B2 (en) Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
US7237098B2 (en) Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence
US7162619B2 (en) Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer
TWI288351B (en) Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions
TWI416408B (en) A microprocessor and information storage method thereof
US7234045B2 (en) Apparatus and method for handling BTAC branches that wrap across instruction cache lines
US8640008B2 (en) Error recovery in a data processing apparatus
EP2084602B1 (en) A system and method for using a working global history register
US11816489B1 (en) Microprocessor with prediction unit pipeline that provides a next fetch address at a rate of one per clock cycle
US11836498B1 (en) Single cycle predictor
CN111886581A (en) Accurate early branch prediction in high performance microprocessors
US12020032B2 (en) Prediction unit that provides a fetch block descriptor each clock cycle
US7844806B2 (en) Global history branch prediction updating responsive to taken branches
KR20210097156A (en) Macro-Operation Fusion
US7689816B2 (en) Branch prediction with partially folded global history vector for reduced XOR operation time
TWI249131B (en) Apparatus and method for killing an instruction after loading the instruction into an instruction queue in a pipelined microprocessor
TWI231450B (en) Processor including fallback branch prediction mechanism for far jump and far call instructions
TWI232403B (en) Apparatus and method for buffering instructions and late-generated related information using history of previous load/shifts
US7849299B2 (en) Microprocessor system for simultaneously accessing multiple branch history table entries using a single port

Legal Events

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