TW201110018A - Microprocessors and instruction processing methods using the same - Google Patents
Microprocessors and instruction processing methods using the same Download PDFInfo
- Publication number
- TW201110018A TW201110018A TW099127697A TW99127697A TW201110018A TW 201110018 A TW201110018 A TW 201110018A TW 099127697 A TW099127697 A TW 099127697A TW 99127697 A TW99127697 A TW 99127697A TW 201110018 A TW201110018 A TW 201110018A
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- mentioned
- execution
- instructions
- executed
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims description 8
- 230000001788 irregular Effects 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 16
- 238000010606 normalization Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 5
- 230000033228 biological regulation Effects 0.000 claims description 2
- 239000000463 material Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 210000004907 gland Anatomy 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- 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/3001—Arithmetic instructions
-
- 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/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
201110018 六、發明說明: 【發明所屬之技術領域】 本發明係有關於微處理器中之浮點數(floating point number)計算領域,特別是有關於具有非正規數(denormal number)之浮點數計算。 【先前技術】 在一微處理器中所表示的浮點數本文中,非零有限數 值或運算元(operand)係分為兩個類別:正規化數值 (normalized number)(或正規數(normal number))以及非正規 化數值(denormalized number)(或非正規數(denormal number))。舉例來說,更詳細的相關討論請共同參照由英 特爾(Intel)公司所發表的文獻”IA-32 Architecture Software
Developer’s Manual, Volume 1: Basic Architecture, 2002, Order Number 245470-008”中的段落 4.8.2.1 以及 4.8.3.2 中 的内谷’此處僅摘要列舉其結果。一正規數、或正規化數 或以正規化的形式所編碼的數值具有一個有效位數 (significand)以及一個指數部分(exp〇nent),其中有效位數係 為數字1與2之間的一個實數(亦即,一整數位元接著組成 一小數(fraction)的數個位元),指數部分則指定數值中二進 小數點的位置。當一個浮點數非常趨近於〇時,由於指數 的範圍不足夠A來補償將r進小數點往右移卩消除前置 零’使得前述正規㈣值格式無法再使祕表減數值。 當指數(偏差為0時’較小的數僅可透過令整數位元(以及 或許其他前置位元)的有效位數為Q來表示。在這個範圍之 CNTR2361I00-TW/O608-A42571 -TW/Final 4 201110018 内的數值便稱為非正規數、或非正規化數或非正規化形式 的數值。前置零與非正規化數的使用可允許表示較小的 數。然而,這樣的非正規化將造成精度的損失(前置零將減 少小數部分的有效位元數)。 一般而言,一微處理器中的浮點數單元係用以執行以 正規化形式表示的運算元的計算。因此,當一個指令指定 一非正規運算元(denormal operand)時,微處理器將此非正 規運算元轉換為一正規運算元,以便執行此指令所指定的 計算。這個程序將會浪費一相對大量的時間及/或要求一非 固定數量的執行時間來增加指令執行延遲(latency),其將引 發討論於下的問題。 【發明内容】 本發明實施例提供一種微處理器。微處理器包含複數 執行單元,用以接收複數指令以及上述指令中之指令運算 元並用以執行上述指令。微處理器也包含一指令排程器, 用以發送上述指令至上述執行單元並且選擇上述指令運算 元之來源。上述執行單元之其中至少一者係用以:偵測出 上述指令之其中一者之上述運算元中之一運算元係為一非 正規運算元、相應於偵測出上述非正規運算元,產生一指 示,上述指示表示上述指令需要被重新執行;並且相應於 偵測出上述非正規運算元,提供上述非正規運算元至上述 指令排程器。上述指令排程器係用以:相應於上述指示, 將上述非正規運算元正規化,並且當上述指令係被重新執 行時,提供上述已正規化運算元至上述執行單元。 本發明另一實施例提供一指令處理方法,用以於一微 CNTR2361I00-TW/0608-A42571-TW/Final 5 201110018 處理器中處理一指定一补正規運算元之一人 微處理器包含一執行單元以及一指令排::令’其中上述 測出上述指令之上述運算元係為—非正:二方法包括偵 述偵測步驟係由上述執行單元所執行。方算元其中上 上述债測出上述非正規運算元,產生n、也匕括相應於 示上述指令需要被重新執行’其中上述』:指示表 驟係由上述執行單元所執行。方法也 述‘不之步 出上述非正規運算元,提供上述非正規運』應:上述偵測 排程器,其中上述提供上述非正規運 7上述指令 執行單元所執行。方法也包括相應於 ^驟係由上述 正規運算元正規化,其中上述將上述非將上述非 之步驟係由上述指令排程器所執行。 70正規化 供上述非正規運算元之後,重新執行上述指1括於上述提 括相應於上述重新執行上述指令,提2方去也包 元至上述執行單元。 已正規化運算 本發明又-實施例提供-種微處理器。微處 :::單元以及複數執行單元。上述執行單元用以接: 數才曰令以及上述指令中之指令運算元並用以執行上: 令。上述執行單元之其中至少-者係H制出场 :之其中一者之上述運算元中之一運算元係為一非正規; 鼻元,以及相應於偵測出上述非正規運算元,產生—t 上述指示表示上述指令需要被重新執行。上賴處^^ 用以相應於上述㈣, (invoke)上述微碼單^用以將 述非正規運算元正規化。上述微處理器係用以當上述j 係被重新執行時,提供上述已正規化運算元至上述執/曰1 CNTR2361I00-TW/0608-A42571-TW/Final 6 201110018 元。 為使本發明之上述和其他目的、特徵、和優點能更明 顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳 細說明如下。 【實施方式】 請參見第1圖,顯示一依據本發明實施例之一微處理 器100之方塊圖。 微處理器100包含一個指令快取記憶體(cache) 102,其 • 可從系統記憶體中快取程式指令。一指令轉譯器 (translator)104從指令快取記憶體1〇2中接收程式指令並且 將接收到的指令轉譯為微指令(microinstruction)。一暫存5| 別名表(register alias table,以下簡稱RAT) 106依照程式順 序從指令轉譯器104中接收微指令。RAT 106於一重排序 緩衝器(reorder buffer,以下簡稱ROB) 114中為每一個微 指令配置一項目(entry) 148、產生這些微指令的相依性資訊 並且依照程式順序發送這些微指令及其相依性資訊至保留 • 站108中。R〇B 114中每一項目148保持與此指令相關的 資訊’包含一旗標138,其表示此指令是否需要被重新執 行(replay),因為此指令指定一非正規運算元,其細節將於 下討論。 ' 前述微指令係被發送至執行單元112來執行。於 施例中,每個執行單元112具有其對應的保留站1〇8,^ 以保持將發送至執行單元112的指令。執行單元在名士 果匯流排136上提供其執行結果至ROB 114。當—執行Ί 元112(即一浮點運算單元112)偵測出其已接收到用以執行 CNTR2361I00-TW/0608-A42571-TW/Final 7 201110018 的一指令具有一或多個非正規運算元並且浮點運算單元 112無法在一非正規運算元上執行所需的操作時,浮點運 算單元112將輸出一個指定R0B 114中配置給該指令的項 目148的標記(tag) 154。其中,標記154係為進入rOB 114 的項目148的一個索引。此外,浮點運算單元112也發出 一訊號132至ROB 114,以致使R〇B 114來設定在與該指 令相關的項目148中的旗標138。當一個指令變成微處理 器中最舊的指令且旗標138表示其需要被重新執行 時,ROB Π4發出一重新執行訊號152至保留站ι08,以 表示此條件’並且提供欲重新執行的指令給保留站1〇8。 夕個多工器122提供指令運算元至執行單元112。多工 器122接收來自多個來源的運算元,包括:從執行單元ιΐ2 本身所回饋的結果匯流排136 ;與rob 114相關的暫時結 果暫存器,一結構暫存器集(general pUp〇se registers, GPRs) 118 ’以及一排程器(scheduler) 116中的一運算元緩衝 器142。排程器116將指令從保留站1〇8發送至執行單元 112並選擇指令運算元的來源,以便連同其對應的指令提 供給執行單元112。 排程器116包含一標記緩衝器146,其可由浮點運算單 112中接收標記i 54。排程器1丨6也接收表示浮點運算 單元112已偵測出指定有一非正規運算元的一指令的指示 132。排程器116也包含可由浮點運算單元U2的結果匯流 排136上接收非正規運算元的運算元緩衝器M2。排程器 116也包含一正規器(normalizer)144,其可由運算元緩衝器 142中接收非正規運算元並將其轉換為一正規化形式的運 CNTR2361I00-TW/0608-A42571-TW/Final 8 2〇1Π〇〇|8 於一實二將已正規化運算元寫回運算元緩衝器142中。 規化心:列I ’正規器144係為一移位器(shifier),可於正 利用等间’將非正規運算元的有效位數左移並且可以 遞減非I規運?位數被左移的位元位置數目的-個數量來 於每—拄 部分,一實施例中,正規器144 中,果有效位數左移-位元、將指數減-並將 點S T緩衝器142 ^於一實施例中,由浮 定的結構所處理的運算元Μ料格式係與指令所指 勹人 運鼻元格式不同。也就是說,浮點運算單元112 次個轉換器來轉換一結構化資料格式運算元成為非結 貝料格式以由浮輯算單元112加以處理並且包含— 格,換器來轉換前述非結構化資料格式結果回結構化資料 外、t以引退至GPR 118。前述非結構化資料格式包含額 去的指,位元,以提供非正規數值的正規化。具體來說, ^正規器144轉換-非正規運算元成為—正規運算元時, "將非正規運异元從結構化資料格式轉換為非結構化 格式。 竹 在一實施例中,上述執行單元係設計為不具有用以將 非正規數正規化之一電路,其中上述指令排程器係具有用 以將上述非正規運算元正規化之一電路。 、在一實施例中,複數保留站用以於上述指令等待被上 述才曰令排程器發送至上述執行單元時保持上述指令,其中 上述執行單元係設計為不具有用以儲存上述指令運开 儲存單元。 之 參見第2圖,顯示依據第丨圖之微處理器1〇〇的操作 CNTR2361I00-TW/0608-A42571 -TW/Final 9 201110018 流程圖。流程開始於步驟2〇2。 正規點運算單元112偵測出其接收到具有非 …孚點運算單元112相應地輸出此指令 的W m、發出訊號132以表示此條件
及ROB 114,並輪出:耜.笛瞀一 ^ 116 U 在絲果…Γ 而非輸出其產生的結果 在八、·,°果匯&排136上。接著執行步驟204。 於步驟204 ’排程II 1 1 6腺非T招 _ 136 ^ X 5 ^ 、、運“·元從結果匯流排 136載入至運异喊衝器142並謂存標記154在其標記 緩衝器146中並且標記此非正規運算元條件。於—實施例 中’排程器116 -個時間只可處理—個具有非正規運算元 條件的指令。於本實施财,排程器116可比對新指令的 標§己154與標記緩衝器146的值,並且若新指令係較舊於 排程器m目前正在執行正規化的運算元的指令時,排程 器116放棄目前指令、將標記緩衝器146的值更新為新的 標記154的值、並且於步驟2〇6開始將新指令的運算元正 規化。接著執行步驟206。 於步驟206’排程器116正規化在運算元緩衝器⑷ 中的運算元。接著執行步驟208。 於步驟208,前述具有非正規運算元的指令變為微處理 器100中最舊的指令並且ROB 114標記旗標138,表示需 要一個重新執行。對應地,R Ο B 114發出重新執行訊號'ϋ 將指令重新派送其回到保留站來重新執行指令。於」實施 例中,ROB 114也同時重新執行所有較舊於此指令的指 令;而於另一實施例中,ROB 114則只會重新執行較舊於 此指令且相依於此指令的指令。接著執行判斷步驟212。 CNTR2361100-TW/06Q8-A42571 -TW/Final 10 201110018 於判斷步驟212,排程器116偵測出前述指令係將被重 新執行,亦即,排程器116偵測到標記緩衝器146中的有 效值與保留站108中準備要發出來執行的一指令的標記相 符合。若排程器116判斷出運算元緩衝器142中的非正規 運算元已完成正規化時,執行步驟216 ;反之,則執行步 驟 214。 於步驟214,排程器116維持浮點運算單元112的保留 站為關閉,直到排程器116完成非正規運算元的正規化為 止。接著執行步驟216。 於步驟216,排程器116將指令從保留站108發送至浮 點運算單元112並且控制多工器122提供來自運算元缓衝 器142而非運算元的其他正規化來源,例如來自於GPR 118、ROB 114或結果匯流排136的已正規化運算元至浮點 運算單元112。浮點運算單元112接著利用已正規化運算 元執行指令。注意的是,一個指令可包含一個以上非正規 形式的運算元。於一實施例中,當指令係以排程器116所 正規化後的運算元重新執行時,若浮點運算單元112偵測 出一非正規運算元時(亦即,一第二非正規運算元,因為第 一非正規運算元現在已被正規化),其將再一次發出訊號 132以及標記154,使得排程器116將正規化第二非正規運 算元並且ROB 114將依據第二圖所示的流程圖再一次重新 執行指令。流程結束於步驟216。 本案發明人觀察到非正規運算元的發生相對地較少, 使得在微處理器100中執行的程式所處理的大量多數的資 料集中,假設已正規化運算元所得到的優點超過了與重新 CNTR2361I00-TW/0608-A42571 -TW/Final 11 201110018 執行一包含一非正規運算元的指令所 價。本發明另外一些優點係來自排程器可=遲相關的代 時間基礎上發送指令。也就是說,排程器可的執行 -個給定執行單元需要多少時脈來執行n確地知道 令。本發明其中一優點係降低了排程器::員型的指 另一優點在於排程器可較早於在其等待知、首〃又本發明 經完成—個可變執行時間指令的執行之前c于單元已 效能。也就是說,假設指令B具有—相;提升 A上。假設排程器發出—指令的時間卿^在“的指令 以執行的時間之間有—些已知的_ χ到達執行單元 行時間,因為排程器準確地知道何時 固定的執 元Η2將提供其結果,排程器可於指令a = Α的執行單 時脈發出指令B。這些優點可藉由一 ^之前的X個 實現。 也較小的成本來 在一實施例中,上述執行單元相應 規運算元,提供上述非正規運算元至^述,出上述非正 非將上述非正規運算元正規化,上述執上”排程器,而 令於一固定的執行時間中,其使:早兀執行上述指 定的執行時間基礎上發送指令至上述執=排程器於-固 -種傳統解決方案係將保留站設置 得其得以在執行單元中内部地重新在執仃早凡中’使 部地重新執行,錢置保㈣來保持^=腦從外 元。為了保持前述指令運算元 的指令運算 時間以及增加的保留站數目缺點二可變的執行 方案造成-固定的執行時間並允許本發明之保=決 CNTR2361100-TW/060S-A42571 -TW/Final 12 201110018 因為這些保留站並不需要保持這些運算元;或者,這些運 算元係可從各種來源直接(on the fly)應用。另一種傳統解決 方案係包含一大的以及耗時間/電力的固定執行時間正規 器電路於浮點運算單元(FPU)中,以便保持固定的執行時間 統治(regime)。 雖然前述實施例中排程器116係用以轉換非正規運算 元至一正規運算元,另一實施例係可考慮相應於浮點運算 單元112於偵測到一非正規來源運算元而致使微處理器 100產生一内部例外時,利用由微處理器100中的一微碼 單元所執行的微碼來轉換非正規運算元至一正規運算元。 雖然本發明已以較佳實施例揭露如上,然其並非用以 限定本發明,任何熟悉此項技藝者,在不脫離本發明之精 神和範圍内,當可做些許更動與潤飾,因此本發明之保護 範圍當視後附之申請專利範圍所界定者為準。例如,軟體 可致能,例如,功能、製造、模型化、模擬、描述及/或測 試本發明所述之裝置以及方法。上述可藉由使用一般程式 語言(例如:C、C++ )、硬體描述語言(HDL)包括Verilog HDL、VHDL等等來實現。此類軟體可以以程式碼的型態 置放於任何已知的電腦可用媒體,例如一磁帶、半導體、 磁片、軟碟、硬碟或光碟片(例如:CD-ROM、DVD-ROM 等等)、一網路、有線連線、無線或其他通訊媒體。其中, 當程式碼被機器,如電腦載入且執行時,此機器可成為用 以實施本發明之裝置。本發明所述之裝置以及方法可包含 於一半導體智財核心,例如一微處理器核心(嵌入於 HDL),並轉換成積體電路的硬體產品。此外,本發明實施 CNTR2361100-TW/0608-A42571 -TW/Final 13 201110018 例所述之裝置以及方法可包含具有硬體以及軟體的組合的 實體實施例。因此本發明之保護範圍當視後附之申請專利 範圍所界定者為準。特別來說,本發明係可被實作在一微 處理器裝置中,而使用於——般用途處理器中。最後,任 何熟悉此項技藝者,可基於本發明所揭露的概念以及特定 實施例,在不脫離本發明之精神和範圍内,可做些許更動 與潤飾以達到本發明之相同目的。 【圖式簡單說明】 第1圖顯示一依據本發明實施例之一微處理器之方塊 圖。 第2圖顯示第1圖之微處理器的操作流程圖。 【主要元件符號說明】 100〜微處理器; 102〜指令快取記憶體; 104〜指令轉譯器; 106〜暫存器別名表; 108〜保留站; 112〜執行單元; 114〜重排序緩衝器; 116〜排程器; 118〜結構暫存器集; 122〜多工器; 132〜訊號; 136〜結果匯流排; 138〜旗標; CNTR2361100-TW/0608-A42571 -TW/Final 14 201110018
142〜運算元緩衝器; 144〜正規器; 146〜標記緩衝器; 148〜項目; 152〜訊號; 15 4〜標記; 202、204、206、208、212、214、216〜執行步驟。 CNTR2361I00-TW/0608-A42571 -TW/Final 15
Claims (1)
- 201110018 七、申請專利範圍: 1. 一種微處理器,包括: 複數執行單元,用以接收複數指令以及上述指令中之 指令運算元並用以執行上述指令;以及 一指令排程器,用以發送上述指令至上述執行單元並 且用以選擇上述指令運算元之來源; 其中上述執行單元之其中至少一者係用以: 積測出上述指令之其中一者之上述運算元中之一運算 元係為一非正規運算元; 相應於偵測出上述非正規運算元,產生一指示,上述 指示表示上述指令需要被重新執行;以及 相應於偵測出上述非正規運算元,提供上述非正規運 算元至上述指令排程器; 其中上述指令排程器係用以: 相應於上述指示,將上述非正規運算元正規化;以及 當上述指令係被重新執行時,提供上述已正規化運算 元至上述執行單元。 2. 如申請專利範圍第1項所述之微處理器,其中若於 上述指令係重新執行時上述指令排程器尚未完成上述正規 化上述非正規運算元,上述指令排程器係用以在上述指令 排程器完成上述正規化上述非正規運算元之前,等待發送 上述指令至上述執行單元。 3. 如申請專利範圍第1項所述之微處理器,更包括: 一重排序緩衝器,耦接至上述執行單元,上述重排序 緩衝器包括複數項目,每一上述項目用以儲存一指令的執 CNTR2361100-TW/0608-A42571 -TW/Final 16 201110018 行資訊,每一上述項目具有一旗標,用以表示其儲存之上 述指令是否需要被重新執行; 其中上述重排序緩衝器係用以相應於上述執行單元所 產生關於上述指令需要被重新執行的上述指示,設定上述 指令所對應之上述項目的上述旗標。 4. 如申請專利範圍第3項所述之微處理器,其中上述 重排序緩衝器係用以相應於偵測到上述指令的項目中的上 述旗標係被設定時,於上述指令變成上述重排序緩衝器中 的最舊指令時重新執行上述指令。 5. 如申請專利範圍第3項所述之微處理器,其中上述 執行單元係用以相應於偵測出上述非正規運算元,提供上 述重排序緩衝器一標記,上述標記用以識別上述重排序緩 衝器中之上述指令的項目,其中上述重排序緩衝器係用以 使用上述標記來設定上述旗標,其中上述指令排程器係用 以儲存上述標記並接著使用儲存之上述標記來偵測上述指 令於何時被重新執行。 6. 如申請專利範圍第1項所述之微處理器,更包括: 一匯流排,耦接至上述執行單元; 其中在上述指令之一初始執行期間,該執行單元係用 以相應於偵測出上述非正規運算元,在上述匯流排上提供 上述非正規運算元至上述指令排程器; 其中在上述指令之上述初始執行之後的一執行期間, 該執行單元係用以利用上述已正規化運算元,在上述匯流 排上提供上述執行單元所產生之上述指令之一結果。 7. 如申請專利範圍第1項所述之微處理器,其中上述 CNTR2361I00-TW/0608-A42571-TW/Final 17 201110018 執行單元係用以: ‘運算元係為一第二非正規写 偵測出上述指令之一第 算元; -相應於偵測出上述第二非正規運算元 ,產生一第二 不’表不上述指令需要被重新執行;以及 一 相應於偵測出上述第二 非正規運算元至上述指令排=規運^乂供上述第 其中上述指令排程器係用以·· 相應於上述第二指示, 化;以及 將上述第二非正錢算元正3 當上述指令係被重新執 二運算元至上述執行單元執订時々供已正規化之上心 上:第7:專利範圍第1項所述之微處理器,其㈤ 上述第一指令之上述重新執 丹τ右4 存有上述第-指令之上述已正規化運/指令排程器係傳 因為-第二指令具有—非正規運算知^上述執行單元 執行順序係較新於上述第一八711以及上述第二指令的 要被重新執行之-指示時,生關於—第二指令需 :第-指令之上述已正規化運算二棄上 令之上述非正規運算元正規化。 開始將上述第二指 9. 一種指令處财法,心於— -非正規運算元之-指令,其中 :中處理-指定 單元以及-指令排程器,該方法包括包含一執行 偵測出上述指令之上述運算元係為一^驟: 其中上述偵測步驟係由上述執行單元所非正規運算元, 汴執行; CNTR2361100-TW/0608-A42571 -TW/Final ,〇 201110018 上述指c偵,上述非正規運算元,產生-指示, 述指示之步跡扣令需要被重新執行,其中上述產生上 相應述執行單元所執行; 規運算元至上出上述非正規運算元,提供上述非正 算元之步驟传ί 排程器’其中上述提供上迷“㈣ 相應:=述執行單元所執行;切正規運上述將上述非正二算將士述非正規運算元正規化,立中 器所執行; 70 '見化之步驟係由上述指令排程 令;^提供上輪料算㈣,執行上述指 算元執行上述指令,提供上〜規化運 如申請專利範圍當Q ε 包括: 所述之指令處理方法,更 器 重㈣行上述指令’偵測 β π成上述正規化上述 4指令排程 /上述指令排程器完成上述2=、广及 之月”專待發送上述指令至上述執行單元。非正規運算元 如申請專利範圍第9項 理器也包含一重排序緩衝器,二=方法,其 β包括複數項目,每一上述項 上4重姆序缓衝 訊,每一上述項目具有一旗標,用以子:指令的執行資 令疋否需要被重新執行,上述 Μ、錯存之上述指 相應於上述產生上述指… CNTR2361100-TW/06O8-A42571 -TW/Final 19 的上述才日 201110018 示,設定上述指令所對應之上述項目的上述旗標。 12. 如申請專利範圍第11項所述之指令處理方法,更 包括: 相應於偵測到上述指令的項目中的上述旗標係被設定 時,於上述指令變成上述重排序緩衝器中的最舊指令時重 新執行上述指令。 13. 如申請專利範圍第11項所述之指令處理方法,更 包括: 相應於偵測出上述非正規運算元,提供上述重排序緩 衝器一標記,上述標記用以識別上述重排序緩衝器中之上 述指令的項目,以及 儲存上述標記並接著使用儲存之上述標記來偵測上述 指令於何時被重新執行,其中上述儲存以及使用上述標記 之步驟係由上述指令排程器所執行。 14. 如申請專利範圍第9項所述之指令處理方法,其 中上述微處理器也包含一匯流排,耦接至上述執行單元, 上述方法更包括: 在上述指令之一初始執行期間,相應於上述偵測出上 述非正規運算元,在上述匯流排上提供上述非正規運算元 至上述指令排程器,其中上述在上述匯流排上提供上述非 正規運算元至上述指令排程器之步驟係由上述執行單元所 執行;以及 在上述指令之上述初始執行之後的一執行期間,利用 上述已正規化運算元,在上述匯流排上提供上述執行單元 所產生之上述指令之一結果,其中上述在上述匯流排上提 CNTR2361100-TW/0608-A42571 -TW/Final 20 201110018 供上述指令 15.如申性直、果之步驟係由上述執行單元所執行。 包括: 月引範圍第9項所述之指令處理方法,更 算元,、.其中上之第—運算元係為—第二非正規運 係由上述執行單元:二述指令之上述第二運算元之步驟 二二應出上述第二非正規運算元,產生-第 述第二指示驟需要被重新執行,其中上述產生上 〜元所執。 第二非正規運笪一、、/L _正規運异元,提供上述 第二非正規運I疋至上述指令排程器,其中上述提供上述 相;之步驟係由上述執行料所執行; 化,其中上指示’將上述第二非正規運算元正規 上述指令二=非正規運算元正規化之步驟係由 述指令;述第—非正規運算元之後,重新執行上 第一運^上述重新執彳了上述指令,提供已正規化之上述 弟一建昇7L至上述執行單元。 包括申請專利範圍第9項所述之指令處理方法,更 一條件成立,其中:⑴在上述重新執行上述第 述已:二’ ΐ述指令排程器係儲存有上述第-指令之上 -非正規運f异兀’⑺上述執行單元因為-第二指令具有 '异凡’已產生關於—第二指令需要被重新執行 CNTR2361 I〇〇-TW/〇6〇8-A42571 -TW/Final 21 201110018 之一指示,以及(3)上述第二指令的執行順序係較新於上述 第一指令; 相應於偵測到上述條件成立,放棄上述第一指令之上 述已正規化運算元並且將上述第二指令之上述非正規運算 元正規化,其中上述放棄步驟係由上述指令排程器所執行。 17.—種微處理器,包括: 複數執行單元,用以接收複數指令以及上述指令中之 指令運算元並用以執行上述指令; 其中上述執行單元之其中至少一者係用以: 偵測出上述指令之其中一者之上述運算元中之一運算 元係為一非正規運算元;以及 相應於偵測出上述非正規運算元,產生一指示,上述 指示表示上述指令需要被重新執行; 其中上述微處理器係用以相應於上述指示,調用一微 碼單元用以將上述非正規運算元正規化; 其中上述微處理器係用以當上述指令係被重新執行 時,提供上述已正規化運算元至上述執行單元。 CNTR23 61100-TW/0608-A42571 -TW/Final 22
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US24069609P | 2009-09-09 | 2009-09-09 | |
US12/793,821 US8495343B2 (en) | 2009-09-09 | 2010-06-04 | Apparatus and method for detection and correction of denormal speculative floating point operand |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201110018A true TW201110018A (en) | 2011-03-16 |
TWI423125B TWI423125B (zh) | 2014-01-11 |
Family
ID=43648579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099127697A TWI423125B (zh) | 2009-09-09 | 2010-08-19 | 微處理器以及相關指令執行方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8495343B2 (zh) |
CN (1) | CN102023841B (zh) |
TW (1) | TWI423125B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI514265B (zh) * | 2011-04-07 | 2015-12-21 | Via Tech Inc | 將條件載入/儲存指令轉譯為數量可變的微指令之微處理器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102308274B (zh) * | 2011-07-19 | 2013-04-24 | 华为技术有限公司 | 一种访问关机硬盘的方法、网卡和硬盘卡 |
JP6951622B2 (ja) * | 2017-05-18 | 2021-10-20 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966085A (en) * | 1998-04-09 | 1999-10-12 | Lockheed Martin Corporation | Methods and apparatus for performing fast floating point operations |
US6684323B2 (en) * | 1998-10-27 | 2004-01-27 | Stmicroelectronics, Inc. | Virtual condition codes |
US6487653B1 (en) * | 1999-08-25 | 2002-11-26 | Advanced Micro Devices, Inc. | Method and apparatus for denormal load handling |
US6571265B1 (en) * | 1999-10-29 | 2003-05-27 | Intel Corporation | Mechanism to detect IEEE underflow exceptions on speculative floating-point operations |
US6826704B1 (en) * | 2001-03-08 | 2004-11-30 | Advanced Micro Devices, Inc. | Microprocessor employing a performance throttling mechanism for power management |
US7313790B2 (en) * | 2003-06-23 | 2007-12-25 | Intel Corporation | Methods and apparatus for preserving precise exceptions in code reordering by using control speculation |
US20060179273A1 (en) * | 2005-02-09 | 2006-08-10 | Advanced Micro Devices, Inc. | Data processor adapted for efficient digital signal processing and method therefor |
CN101515310B (zh) * | 2009-02-16 | 2010-10-06 | 中国科学院计算技术研究所 | 微处理器浮点单元的随机验证方法及系统 |
US8452831B2 (en) * | 2009-03-31 | 2013-05-28 | Oracle America, Inc. | Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations |
-
2010
- 2010-06-04 US US12/793,821 patent/US8495343B2/en active Active
- 2010-08-19 TW TW099127697A patent/TWI423125B/zh active
- 2010-08-23 CN CN201010261278.6A patent/CN102023841B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI514265B (zh) * | 2011-04-07 | 2015-12-21 | Via Tech Inc | 將條件載入/儲存指令轉譯為數量可變的微指令之微處理器 |
Also Published As
Publication number | Publication date |
---|---|
US20110060943A1 (en) | 2011-03-10 |
CN102023841A (zh) | 2011-04-20 |
US8495343B2 (en) | 2013-07-23 |
CN102023841B (zh) | 2013-10-30 |
TWI423125B (zh) | 2014-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635448B2 (en) | Byte and nibble sort instructions that produce sorted destination register and destination index mapping | |
US9104399B2 (en) | Dual issuing of complex instruction set instructions | |
CN108052348B (zh) | 用于处理文本串的指令和逻辑 | |
TWI439930B (zh) | 具選擇性啟動早期引退功能之失序執行微處理器 | |
US9483273B2 (en) | Dependent instruction suppression in a load-operation instruction | |
US9424037B2 (en) | Instructions and functions for evaluating program defined conditions | |
US20120060016A1 (en) | Vector Loads from Scattered Memory Locations | |
US20150095627A1 (en) | Two level re-order buffer | |
TW201337738A (zh) | 用以提供向量水平式多數決投票功能之指令與邏輯 | |
US20200042322A1 (en) | System and method for store instruction fusion in a microprocessor | |
TWI394077B (zh) | 最佳化微處理器執行x87浮點加法指令之裝置及方法 | |
US20150100767A1 (en) | Self-timed user-extension instructions for a processing device | |
US9274829B2 (en) | Handling interrupt actions for inter-thread communication | |
Lahiri et al. | Deductive verification of advanced out-of-order microprocessors | |
TW201110018A (en) | Microprocessors and instruction processing methods using the same | |
CN104615409B (zh) | 跳越mov指令的处理器和由该处理器使用的方法 | |
US10719355B2 (en) | Criticality based port scheduling | |
US20140258697A1 (en) | Apparatus and Method for Transitive Instruction Scheduling | |
US9959122B2 (en) | Single cycle instruction pipeline scheduling | |
US10719325B2 (en) | System and method of VLIW instruction processing using reduced-width VLIW processor | |
CN110221862A (zh) | 指令执行方法及指令执行装置 | |
US9582286B2 (en) | Register file management for operations using a single physical register for both source and result | |
US20090113239A1 (en) | Method and apparatus for instruction trace registers | |
US20240111535A1 (en) | Instruction fusion | |
Poduel et al. | Design and implementation of synthesizable 32-bit four stage pipelined RISC processor in FPGA using verilog/VHDL |