TW201110018A - Microprocessors and instruction processing methods using the same - Google Patents

Microprocessors and instruction processing methods using the same Download PDF

Info

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
Application number
TW099127697A
Other languages
English (en)
Other versions
TWI423125B (zh
Inventor
G Glenn Henry
Gerard M Col
Timothy A Elliott
Rodney E Hooker
Terry Parks
Original Assignee
Via Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW201110018A publication Critical patent/TW201110018A/zh
Application granted granted Critical
Publication of TWI423125B publication Critical patent/TWI423125B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format 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)

  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
TW099127697A 2009-09-09 2010-08-19 微處理器以及相關指令執行方法 TWI423125B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI514265B (zh) * 2011-04-07 2015-12-21 Via Tech Inc 將條件載入/儲存指令轉譯為數量可變的微指令之微處理器

Families Citing this family (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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