TWI428822B - 微處理器及其相關方法 - Google Patents
微處理器及其相關方法 Download PDFInfo
- Publication number
- TWI428822B TWI428822B TW099121005A TW99121005A TWI428822B TW I428822 B TWI428822 B TW I428822B TW 099121005 A TW099121005 A TW 099121005A TW 99121005 A TW99121005 A TW 99121005A TW I428822 B TWI428822 B TW I428822B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- micro
- microprocessor
- translator
- microcode
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
本發明係有關於微處理器領域,特別是有關於包含微碼之微處理器。
許多當代的微處理器包含一個有別於其架構或巨集架構(macroarchitecture)的微架構(micro-architecture)。此類微處理器的特色在於其包含一個指令轉譯器,此指令轉譯器可將微處理器中的巨集指令(例如x86指令)的指令集架構轉譯為微架構指令集中的一或多個微指令或微運算(micro-operation)。當指令轉譯器遇到一個必須轉譯為比指令轉譯器每秒所能產生的微運算更多的微運算時,指令轉譯器將產生微運算的一個前端(prolog)。接著,由一微碼唯讀記憶體(ROM)中提取用來執行前述巨集指令的指令的剩餘部分。由微碼唯讀記憶體中提取出的指令序列係被稱為”微碼尾部(microcode tail)”。由轉譯器所產生的前端的微運算可以依指令的形式來客製化。最常見的客製化係對一巨集指令的一記憶體形式與對此巨集指令的一暫存器形式產生一不同前端。對一個以記憶體為基礎的形式而言,轉譯器產生一載入指令,用來將來源運算元載入至微處理器的一個暫時暫存器中;而,對一個以暫存器為基礎的形式而言,轉譯器產生一移動指令,用來將來源運算元移動至暫時暫存器中。問題出在於微碼尾部。對記憶體形式而言,其需要一個儲存微運算來將結果儲存至記憶體中;而對暫存器形式而言,則需將其結果移動至目的暫存器中。
一般而言,微碼尾部將包含一條件分支指令以跳至以記憶體為基礎的形式的一個尾部或以暫存器為基礎的形式的一個尾部執行。然而,條件分支指令將對效能產生極大影響。
有鑑於此,本發明實施例提供一種微處理器,包括一第一指令轉譯器,用以轉譯一微處理器之一指令集架構之一指令。上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微處理器將其結果寫入至一目的暫存器,上述第二形式指示上述微處理器將其結果寫入至一記憶體。上述第一指令轉譯器相應於遇到上述指令時,產生上述指令係為上述第一形式或上述第二形式之一指示。一微碼記憶體,用以相應於遇到上述指令時,儲存一尾部指令(tail instruction),作為上述第一指令轉譯器所調用之一微碼常式之一部分。一第二指令轉譯器,用以從上述微碼記憶體中接收上述尾部指令以及上述指示,並且若上述指示指出上述第一形式時,上述第二指令轉譯器回應地產生一第一微運算,而若上述指示指出上述第二形式時,上述第二指令轉譯器回應地產生一第二微運算,其中上述第一微運算係將上述結果寫入至上述目的暫存器,上述第二微運算係將上述結果寫入至上述記憶體。
本發明實施例另提供一種方法。方法包含儲存一尾部指令於一微處理器之一微碼記憶體中,作為一微碼常式之一部分。方法也包含遇到上述微處理器之一指令集架構中之一指令。上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微處理器將其結果寫入至一目的暫存器,而上述第二形式指示上述微處理器將其結果寫入至一記憶體。方法也包含,相應於上述遇到上述指令時,產生上述指令係為上述第一形式或上述第二形式之一指示並調用上述微碼常式。方法也包含,相應於接收上述尾部指令以及上述指示,若上述指示指出上述第一形式時,產生將上述結果寫入至上述目的暫存器之一第一微運算以及若上述指示指出上述第二形式時,產生將上述結果寫入至上述記憶體之一第二微運算。
為使本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下。
為了解決前述的效能問題,本發明提供一個新的微碼指令,稱為TAIL指令。當一個微轉譯器轉譯巨集指令時,微轉譯器係依據巨集指令係為一暫存器形式或一記憶體形式的判斷(其係指示於設置於具有必要資訊的指令轉譯器中的一個暫存器中),將TAIL指令轉譯為適當的儲存微運算序列或移動微運算序列。如此一來,可免除於微碼尾部中執行條件分支指令的需求。
參見第1圖,係顯示依據本發明實施例之一微處理器100之區塊圖。微處理器100包含一指令快取102,用以快取微處理器100的指令集架構中的指令,這些指令稱為巨集指令132。舉例來說,於一實施例中,此指令集架構大致上符合x86指令集架構。
一巨集轉譯器104從指令快取102中接收巨集指令132並將其轉譯為複數微運算138。巨集轉譯器104可將一個巨集指令132轉譯為最多N個微運算138。於一實施例中,N係為3。因此,若巨集指令132足夠地複雜而使得巨集指令132需要比N個微運算138更多的微運算來實作時,巨集轉譯器104將產生一個微運算的前端138並且也將產生一陷阱位址(trap address)134至一微碼唯讀記憶體(ROM)124。
巨集轉譯器104也產生寫入至一指令間接暫存器(instruction indirection register,IIR)126的巨集指令資訊136。舉例來說,儲存於指令間接暫存器126中的巨集指令資訊136包含用以識別巨集指令132所指定的來源暫存器與目的暫存器以及巨集指令132的形式的資訊,例如,巨集指令132係運算於微處理器100的記憶體或一結構暫存器116中的一個運算元(operand)上。如此將致能微碼常式(routine)為一般的,亦即,每個來源及/或目的結構暫存器116不用具有一個不同的微碼常式。
微碼唯讀記憶體124儲存並輸出微碼常式的微碼指令142。微碼唯讀記憶體124係為一個包含一個微定序器(microsequencer)(未繪示)的較大的微碼單元(未繪示)的一部份,其中此微定序器可提供一提取位址(未繪示)至微碼唯讀記憶體124,以指定用來輸出下一個微碼指令142的位址。此初始提取位址係為巨集轉譯器104所提供的陷阱位址134。微碼指令142可被視為相對於共同用來實現巨集指令132的前端138的微碼指令142的一尾部。特別來說,微碼指令142可包含一個新的指令,稱為TAIL指令,此TAIL指令將詳細討論於下。於一實施例中,每個微碼指令142的寬度係為38位元。
微轉譯器122從微碼唯讀記憶體124中接收微碼指令142並將其轉譯為複數微運算144。此外,微轉譯器122接收指令間接暫存器126的內容。特別地,如同以下將詳細討論的,微轉譯器122將依據從指令間接暫存器126所接收到的資訊,特別係依據巨集指令132的形式,來將TAIL微碼指令轉譯為不同序列的微運算144。於一實施例中,每個微運算144的寬度係近似於200位元。於一實施例中,微轉譯器122可從一微碼指令142中產生最多三個微運算。
一多工器(MUX)106從巨集轉譯器104中接收前端微運算138以及從微轉譯器122中接收尾部微運算144,並且提供適當的複數微運算至微處理器100的一暫存器別名表(register alias table,RAT)108。暫存器別名表108用以產生上述接收的微運算的相依性。暫存器別名表108提供微運算以及相依性資訊至持有這些微運算的保留站112,直到這些微運算準備好要被發送至其中一個執行單元114為止。執行單元114從微處理器100的暫存器集116中接收運算元,其中暫存器集116包含由微結構指令集所使用的結構暫存器集以及一暫時暫存器集。一重排序緩衝器(ROB)118從執行單元114中接收微運算結果並且依照程序執行順序將這些結果引退(retire)至微處理器100的結構狀態。
接著參見第2圖,係顯示一依據本發明實施例之第1圖的微處理器100的操作流程圖。流程開始於步驟202。
於步驟202,巨集轉譯器104遇到一個需要比巨集轉譯器104所能夠產生的最大個數的微指令更多的微指令來實作的巨集指令132。接著執行步驟204。
於步驟204,巨集轉譯器104依據巨集指令132的形式,相應於巨集指令132,產生微運算的一個前端138。特別來說,若巨集指令132係為一記憶體形式時,前端138包含用於將來源運算元從記憶體載入至一暫時暫存器116中的微運算,並且若巨集指令132係為一暫存器形式時,前端138則包含用於將來源運算元從巨集指令132所指定的來源暫存器移動至暫時暫存器116中的微運算。此外,巨集轉譯器104亦將巨集指令資訊136寫入至指令間接暫存器126中。最後,巨集轉譯器104產生陷阱位址134,以指定於微碼唯讀記憶體124中包含巨集指令132的微碼尾部的微碼常式。接著執行步驟206。
於步驟206,巨集轉譯器104在陷阱位址134上造成一陷阱至微碼唯讀記憶體124中的微碼常式。其中,微碼常式包含一個TAIL微碼指令。接著執行步驟208。
於步驟208,微碼唯讀記憶體124提供微碼指令142至微轉譯器122,其包含TAIL指令。接著執行步驟212。
於步驟212,微轉譯器122依據儲存於指令間接暫存器126中的資訊,將TAIL指令轉譯為適當的微運算144。特別來說,若指令間接暫存器126指出巨集指令132係為一記憶體形式時,微轉譯器122產生一個用於儲存暫時暫存器中的結果至記憶體的微運算;反之,若指令間接暫存器126指出巨集指令132係為一暫存器形式時,微轉譯器122產生用於將結果從暫時暫存器移動至指令間接暫存器126所指定的結構目的暫存器116中的微運算。接著執行步驟214。在一實施例中,若指令間接暫存器126指出巨集指令132係為一記憶體形式時,巨集轉譯器104所產生之上述前端138包含用以初始(initiate)寫入暫時暫存器中的結果至記憶體之一微運算。
於步驟214,微轉譯器122提供轉譯後的微運算144至多工器106。接著執行步驟216。
於步驟216,執行單元114執行微運算144。有益地,執行單元114並不需要執行在TAIL指令出現之前所要求的一個條件分支指令。流程結束於步驟216。
一個依據本發明實施例的需要超過三個微指令的巨集指令132的例子係為x86 RCR(rotate through carry right,經由進位旗標的向右旋轉)指令。此RCR指令可指定其來源運算元係於記憶體中或係於一般用途暫存器116中。依據一實施例,當巨集轉譯器104於步驟202遇到一RCR指令時,其將產生如下的暫存器形式的微運算前端138:
須提醒的是,前述的程式碼係為簡化的偽程式碼(pseudo-code),僅係用以方便說明,並非用以將程式碼進行實作。
前述的微處理器的其中一項優點在於其消除了其他為了符合巨集指令的各種形式的情形下所必須包含於微碼中的一或多個條件分支指令。在一實施例中,其中上述微碼常式中之上述尾部指令禁能在上述微碼常式中執行一條件分支指令。如此特別的有好處,因為條件分支指令,尤其是由微碼單元所產生的條件分支指令,可能對效能有極大的影響。此至少一部份基於微碼單元,於一實施例中,並不包含分支預測器。當執行管線的長度成長時,這樣的效能代價亦將隨著增加。
另一項優點在於,由於微碼唯讀記憶體可包含較少的條件分支指令,因此可縮小微碼唯讀記憶體的尺寸。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。例如,軟體可致能,例如,功能、製造、模型化、模擬、描述及/或測試本發明所述之裝置以及方法。上述可藉由使用一般程式語言(例如:C、C++)、硬體描述語言(HDL)包括Verilog HDL、VHDL等等或其他有效的程式語言來實現。此類軟體可以以程式碼的型態包含於實體媒體,例如任何其他機器可讀取(如電腦可讀取)儲存媒體如半導體、軟碟、硬碟或光碟片(例如:CD-ROM、DVD-ROM等等),其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以實行本發明之裝置。本發明之方法與裝置也可以以程式碼型態透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以實行本發明之裝置。當在一般用途處理器實作時,程式碼結合處理器提供一操作類似於應用特定邏輯電路之獨特裝置。本發明所述之裝置以及方法可包含於一半導體智財核心例如一微處理器核心(嵌入於HDL),並轉換於積體電路生產時轉換為硬體產品。此外,本發明所述之裝置以及方法可實作於包含具有硬體以及軟體的組合的實體實施例。因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。特別地,本發明可被實作於一微處理器裝置中,其可被用於一一般用途電腦上。最後,任何熟悉此項技藝者,可基於本發明所揭露的概念以及特定實施例,在不脫離本發明之精神和範圍內,可做些許更動與潤飾以達到本發明之相同目的。
100...微處理器
102...指令快取
104...巨集轉譯器
106...多工器(MUX)
108...暫存器別名表(RAT)
112...保留站
114...執行單元
116...暫存器集
118...重排序緩衝器(ROB)
122...微轉譯器
124...微碼唯讀記憶體
126...指令間接暫存器
132...巨集指令
134...陷阱位址
136...巨集指令資訊
138...微運算之前端
142...微碼指令之尾部
144...微運算
202、204、206、208、212、214、216...執行步驟
第1圖係顯示依據本發明施例之一微處理器之區塊圖。
第2圖係顯示依據本發明實施例之第1圖的微處理器之操作流程圖。
100...微處理器
102...指令快取
104...巨集轉譯器
106...多工器(MUX)
108...暫存器別名表(RAT)
112...保留站
114...執行單元
116...暫存器集
118...重排序緩衝器(ROB)
122...微轉譯器
124...微碼唯讀記憶體
126...指令間接暫存器
132...巨集指令
134...陷阱位址
136...巨集指令資訊
138...微運算之前端
142...微碼指令之尾部
144...微運算
Claims (20)
- 一種微處理器,包括:一第一指令轉譯器,用以轉譯一微處理器之一指令集架構之一指令,其中上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微處理器將其結果寫入至一目的暫存器,上述第二形式指示上述微處理器將其結果寫入至一記憶體,其中上述第一指令轉譯器係更用以相應於遇到上述指令時,產生上述指令係為上述第一形式或上述第二形式之一指示;一微碼記憶體,用以相應於遇到上述指令時,儲存一尾部指令,作為上述第一指令轉譯器所調用之一微碼常式之一部分;以及一第二指令轉譯器,用以從上述微碼記憶體中接收上述尾部指令以及上述指示,其中若上述指示指出上述第一形式時,上述第二指令轉譯器回應地轉譯上述尾部指令至一第一微運算,當藉由上述微處理器執行上述第一微運算時,上述微處理器將上述結果寫入至上述目的暫存器,其中若上述指示指出上述第二形式時,上述第二指令轉譯器回應地轉譯上述尾部指令至一第二微運算,當藉由上述微處理器執行上述第二微運算時,上述微處理器執行將上述結果寫入至上述記憶體。
- 如申請專利範圍第1項所述之微處理器,其中上述微碼常式中之上述尾部指令禁能在一條件分支指令之上述微碼常式中之執行。
- 如申請專利範圍第1項所述之微處理器,更包括: 一暫存器,用以從上述第一指令轉譯器中接收上述指示並且用以提供上述指示至上述第二指令轉譯器。
- 如申請專利範圍第1項所述之微處理器,其中上述第一指令轉譯器係更用以相應於遇到上述指令時,產生一前端,其中上述前端以及上述微碼常式實現上述指令。
- 如申請專利範圍第4項所述之微處理器,更包括:一或多個執行單元,用以相應於遇到上述指令時,接收並執行上述第一指令轉譯器所產生之上述前端之上述微運算,並且用以相應於上述尾部指令,接收並執行上述第二指令轉譯器所產生之上述第一微運算或上述第二微運算。
- 如申請專利範圍第4項所述之微處理器,其中於上述指令係上述第一形式時,上述第一指令轉譯器所產生之上述前端包含用以從一來源暫存器讀取一來源運算元之一微運算,其中於上述指令係上述第二形式時,上述第一指令轉譯器所產生之上述前端包含用以從上述記憶體中讀取上述來源運算元之上述微運算。
- 如申請專利範圍第4項所述之微處理器,其中於上述指令係上述第二形式時,上述第一指令轉譯器所產生之上述前端包含用以初始上述寫入上述結果至上述記憶體之一微運算。
- 如申請專利範圍第1項所述之微處理器,其中實作上述指令需要比上述第一指令轉譯器能夠產生於上述微處理器之一時脈週期中的微指令之最大個數更多的微指令。
- 如申請專利範圍第1項所述之微處理器,其中上述微 處理器係更用以相應於遇到上述指令時,產生上述微碼常式之一位址至上述微碼記憶體。
- 如申請專利範圍第1項所述之微處理器,其中上述指令包括一旋轉指令,其中上述旋轉指令包括一x86架構RCR指令。
- 一種微處理器操作方法,包括:儲存一尾部指令於一微處理器之一微碼記憶體中,作為一微碼常式之一部分;遇到上述微處理器之一指令集架構中之一指令,其中上述指令可指定一第一形式或一第二形式,上述第一形式指示上述微處理器將其結果寫入至一目的暫存器,而上述第二形式指示上述微處理器將其結果寫入至一記憶體;相應於上述遇到上述指令:產生上述指令係為上述第一形式或上述第二形式之一指示;調用上述微碼常式;以及相應於接收上述尾部指令以及上述指示:若上述指示指出上述第一形式時,轉譯上述尾部指令至一第一微運算,當藉由上述微處理器執行上述第一微運算時,上述微處理器將上述結果寫入至上述目的暫存器;以及若上述指示指出上述第二形式時,轉譯上述尾部指令至一第二微運算,當藉由上述微處理器執行上述第二微運算時,上述微處理器將上述結果寫入至上述記憶體。
- 如申請專利範圍第11項所述之方法,其中上述微碼 常式中之上述尾部指令禁能在上述微碼常式中執行一條件分支指令。
- 如申請專利範圍第11項所述之方法,其中上述遇到上述指令、上述產生上述指示以及上述調用上述微碼常式之步驟係由上述微處理器之一第一指令轉譯器所執行,其中上述產生上述第一微運算或上述第二微運算之步驟係由上述微處理器之一第二指令轉譯器所執行。
- 如申請專利範圍第13項所述之方法,其中實作上述指令需要比上述第一指令轉譯器能夠產生於上述微處理器之一時脈週期中的微指令之最大個數更多的微指令。
- 如申請專利範圍第11項所述之方法,更包括:相應於上述遇到上述指令時,產生一前端,其中上述前端以及上述微碼常式實現上述指令。
- 如申請專利範圍第15項所述之方法,更包括:執行上述前端之上述微運算以及上述第一微運算或上述第二微運算,其中上述執行步驟係由上述微處理器之一或多個執行單元所執行。
- 如申請專利範圍第15項所述之方法,其中於上述指令係上述第一形式時,上述前端包含用以從一來源暫存器讀取一來源運算元之一微運算,其中於上述指令係上述第二形式時,上述前端包含用以從上述記憶體中讀取上述來源運算元之上述微運算。
- 如申請專利範圍第15項所述之方法,其中於上述指令係上述第二形式時,上述前端包含用以初始上述寫入上述結果至上述記憶體之一微運算。
- 如申請專利範圍第11項所述之方法,其中上述調用上述微碼常式之步驟包括相應於上述遇到上述指令時,產生上述微碼常式之一位址至上述微碼記憶體。
- 如申請專利範圍第11項所述之方法,其中上述指令包括一旋轉指令,其中上述旋轉指令包括一x86架構RCR指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23400809P | 2009-08-14 | 2009-08-14 | |
US12/766,244 US8560810B2 (en) | 2009-08-14 | 2010-04-23 | Microprocessor with microtranslator and tail microcode instruction for fast execution of complex macroinstructions having both memory and register forms |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201106259A TW201106259A (en) | 2011-02-16 |
TWI428822B true TWI428822B (zh) | 2014-03-01 |
Family
ID=43589282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099121005A TWI428822B (zh) | 2009-08-14 | 2010-06-28 | 微處理器及其相關方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8560810B2 (zh) |
TW (1) | TWI428822B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9372696B2 (en) | 2013-10-18 | 2016-06-21 | Via Technologies, Inc. | Microprocessor with compressed and uncompressed microcode memories |
US9361097B2 (en) | 2013-10-18 | 2016-06-07 | Via Technologies, Inc. | Selectively compressed microcode |
CN108958798B (zh) | 2018-06-15 | 2021-04-20 | 上海兆芯集成电路有限公司 | 指令翻译电路、处理器电路及其执行方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0388735A3 (en) * | 1989-03-10 | 1993-01-13 | Nec Corporation | Microprogram controller having fixed-instruction generator and microprogram memory |
JP3497516B2 (ja) * | 1992-02-20 | 2004-02-16 | 株式会社ルネサステクノロジ | データプロセッサ |
US5465224A (en) * | 1993-11-30 | 1995-11-07 | Texas Instruments Incorporated | Three input arithmetic logic unit forming the sum of a first Boolean combination of first, second and third inputs plus a second Boolean combination of first, second and third inputs |
US6041403A (en) * | 1996-09-27 | 2000-03-21 | Intel Corporation | Method and apparatus for generating a microinstruction responsive to the specification of an operand, in addition to a microinstruction based on the opcode, of a macroinstruction |
US5864690A (en) * | 1997-07-30 | 1999-01-26 | Integrated Device Technology, Inc. | Apparatus and method for register specific fill-in of register generic micro instructions within an instruction queue |
-
2010
- 2010-04-23 US US12/766,244 patent/US8560810B2/en active Active
- 2010-06-28 TW TW099121005A patent/TWI428822B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201106259A (en) | 2011-02-16 |
US8560810B2 (en) | 2013-10-15 |
US20110040953A1 (en) | 2011-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210026634A1 (en) | Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register | |
US8533437B2 (en) | Guaranteed prefetch instruction | |
TWI470546B (zh) | 微處理器、管線式微處理器、快速執行條件分支指令之方法、以及解析第一或第二類別條件分支指令之方法 | |
US8601239B2 (en) | Extended register addressing using prefix instruction | |
TWI423127B (zh) | 指令處理方法以及其所適用之超純量管線微處理器 | |
EP2430526B1 (en) | Instruction cracking based on machine state | |
US7979637B2 (en) | Processor and method for executing data transfer process | |
TW201704991A (zh) | 藉由演算法匹配、停用特徵或限制效能之回溯相容性 | |
US6981131B2 (en) | Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction | |
TWI411957B (zh) | 亂序執行微處理器、微處理器及其相關之提升效能之方法及執行方法 | |
KR20090061644A (ko) | 명시적 서브루틴 호출의 브랜치 예측 동작을 에뮬레이트하기 위한 방법 및 장치 | |
US8499293B1 (en) | Symbolic renaming optimization of a trace | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
US7849292B1 (en) | Flag optimization of a trace | |
US9141362B2 (en) | Method and apparatus to schedule store instructions across atomic regions in binary translation | |
JP2009508180A (ja) | マイクロプロセッサにおける効率的なサブプログラムリターン | |
TWI428822B (zh) | 微處理器及其相關方法 | |
US7937564B1 (en) | Emit vector optimization of a trace | |
JP2009524167A (ja) | オペランドの早期の条件付き選択 | |
KR20070108936A (ko) | 조건부 명령어가 실행되지 않을 경우 소스 오퍼랜드를대기하는 것을 중지하는 방법 | |
JP4607958B2 (ja) | プロセッサおよびプログラム変換装置 | |
CN101866279B (zh) | 微处理器及其相关方法 | |
US20050144426A1 (en) | Processor with improved repeat string operations | |
WO2001061475A1 (en) | Transforming a stack-based code sequence to a register based code sequence | |
US20140365751A1 (en) | Operand generation in at least one processing pipeline |