[go: up one dir, main page]

TW432294B - Processor having replay architecture - Google Patents

Processor having replay architecture Download PDF

Info

Publication number
TW432294B
TW432294B TW086116266A TW86116266A TW432294B TW 432294 B TW432294 B TW 432294B TW 086116266 A TW086116266 A TW 086116266A TW 86116266 A TW86116266 A TW 86116266A TW 432294 B TW432294 B TW 432294B
Authority
TW
Taiwan
Prior art keywords
instruction
execution
data
detector
coupled
Prior art date
Application number
TW086116266A
Other languages
English (en)
Inventor
David J Sager
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW432294B publication Critical patent/TW432294B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

經濟部中央標率局員工消費合作社印製 4 32 29 4 at 五、發明説明(1 ) 之領域 本發明一般關於高速處理器的領域,及特指重放架構用 以協助資料推測運算。 ijg之背景 圖1表示根據先前技藝的一微處理器10〇。該微處理機包 括一在一第一時脈頻率運算的輸出入環115,及一在一第 二時脈頻率運算的一執行核心i 。例如,Intel486DX2於 2:1比率(1 /2區流排)時可運作其輸出入環於3 3MHz及其 執行核心於66MHz ; IntelDX4於一3:1比率(1/3匯流排)時 可運作其輸出入環在25MHz及其執行核心在75MHz,及該 inte丨Pentium® OverDrive®處理機可運算其輸入環在33MHz 且其執行核心在82·5MHz於2.5:1比率(5/2匯流排)。 可以在"輸出入運算"及"執行運算"間作一區別。例如, 在DX2,琢輸出入環執行輸出入運算如緩衝,匯流排驅 動,接收,同位核對,及其他關於和晶片外界通訊的運 算’同時該執行核心執行運算如加,乘,位址產生,比 較’旋轉和移位’及其他”處理,_操作。 該處理器100可選擇地包括一時脈乘法器ί25。在此模 式*該處理器可根據提供至其輸出入環的一外部緩慢時脈 自動設疋其執行核心的速度。這可以減少需要的針腳數 目。替代地,該處理器可包括一時脈除法器’其中該處理 器響應該提供至執行核心的-外部時脈設定該輸出 度。 該等時脈乘和時脈除功能則邏輯性地如本發明的目的, 所以”時脈乘,除”將在此被使用以指#乘法器或除法器較 -4- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公整) (讀先閱讀背面之注意事項再填寫本頁) 裝 -I—' 線------------ r4 32 2 9 4 A7 B7 五、發明説明(2 經濟部中央標準局員工消費合作衽印製 合適。習知本技藝的讀者將瞭解外部時脈如何被選擇及提 供’及如何被乘或被除。因此,特定時脈分配網路,及時 脈乘和除之詳細,將不被說明展示。此外,該時脈乘/除 單元不受限在整數乘時脈,但可執行如2:5時脈。最後, 該時脈乘/除單元不需受限在功能的匯流排時脈,但可, 在部份實施例,為有彈性的,非同步的,及/或可程式 化,如在提供一p/Q時脈構圖。 在本方式增加時脈頻率的基本動機是減少指令等待時 間。該指令的執行等待時間可被界定為從當其輸入 必須已準備好執行直至其結果已準備由其他指令使用之時 間。假設一程式部份含—系列N假指令,Lhh,, :二假設!n+1需要,如其輸入之部份,該L結果2,二有η 接:我;Π。該程式的部份也可包含任何其他指令, 接耆我們可以看到此程式不能在小於丁= 時間内執行,其中Ln是指令Ιη的等 2 :·為的 ,言。事實上,即使該處理器可以平行執:所的 :的指令,τ保持在一時間之較低限以執行丁本程::數 ^因此快速執行本程式,其將最終減短該指令㈣待: 我們也可從略微不同之觀點者此 運行(in fllght)”是從其需要輸入 疋—‘令In”在 結:已準備由另-指令使用的時間Γ指:厂備好直至其 行—Ln = An*C的時間長产, 々11則因此是在運 所界定’但此時間是以:期待時間,如上 C疋週期時間。讓一程
請 先 閱 讀 背 ίι 之a _ 意 事 項 再 填 % 本 頁 蒗 訂 踝 A7 B7 32 2 9 4 五、發明説明(3 式執行,上之則固指令及採取難"週期"或時間單位以執 亍之。從任何觀點而言,對儘、^ ^ ^ 常重要的。 犯❸執^丁寺待時間是非 平均等待時間習用被界定為_(L|+L2+L3+_為)= cmnAl+A2+A3+...+An)。讓_在週期』·時在運行之指令 數目。我們可以界定平行性!>為程式或跡 在運行的指令平均數目。 2 f3 ·” fM) 2 3 . ίΜ Α+Α2+Α3 + ...+ΑΝ。此等式的兩側 是計㈣«目其中指令在執行’其中若乂個指令則為在 一既定週期中在運行者,該週期為乂個週期。 現在界定該',平均帶寬,,整體執行的指令數目,Ν , 由使用時間M*C所除,或換言之,b=n/(m*c)。 我們也可以簡單地看P=L*B。在此公式,l是一程式的 平均等待時間,B是其平均帶寬’及p是其平均平行性。 請汪意B告訴我們多快執行該程式d其是每秒指令數。若 該程式具有N個指令,其需要N/B秒以執行之。一快速處 理器的目的即是使B更高之目的。 我們現在注意增加B需要增加平行性p,或減少平均等待 時間L -非常熟知地是平行性p,其可作為一程式開發是 有所限制的。其中,事實是特定種類的程式具有大可開發 平行性,一大類重要程式使P被限制在非常小的數量。 先m處理器的一缺點是其整體執行核心被限制在以相同 時脈速度運算。這限制該核心内某些组件成為以"最弱鏈 結”或"最慢路徑”的方式> -6 - 本队張尺度適用中國國家標隼(CNS ) A4規格(210X297公釐) I. ^ ^-- (請先閲讀背面之注意事項再填寫本頁) 訂 經濟部中央標準局員工消費合作.社印策 r4 32 2 9 4 A7 B7 五、發明説明(4 ) 在/96G年197G年,存在中央處理單元其中—乘法器或除 法器k同處理器則被時脈在高於中央處理單元其他電路的 頻率這二中央處理單元則建構為離散组件而非積體電 路或單石微處理器。由於其結構為協同處理器,及/或事 實是其並非與主要處理器集成,該等單元不應被認為是" 副核心"。 部份先前技藝處理器的另一特徵是可以執行,,推測執行" 的能力。這也是習知之"控制推測",目4該處S器猜測何 種控制(分支)指令方式將被執行。部份處理器執行推測取 达,及其他,如Intel Pentium pr〇處理器,也執行推測執 行。控制推測處理器包括機構用以從錯誤預測分支恢復, 以保持程式和資科整體性如無推測發生一般。 圖2展示一習用層系,—大儲存設備,如一硬碟丨3 〇, 儲存孩程式及資料(合稱”資料")供該電腦系統(未示)任意 使用。該資料的一子集則被載入記憶體,如動態隨機存取 6己憶體1 3 2以為快速存取。一子集隨機存取記憶體的子集 内容可被保持在一快取記憶體内丨34,〗36。該快取記憶體 可以自己是層系,及可包括一二階(level tw〇)(L2)快取記 憶體134,及接著一一階(丨evel 〇ne)(Li)快取記憶體ι36 以該一階快取記憶體係保有從該L2之一子集資料。最 後,該處理器的實質暫存器丨3 8包含一最小子集資料。如 眾所習知,可使用不同演算法以決定何資料被儲存在整個 層系的何位階。一般,其可說較為最近的一基準資料已被 使用,或更可能其被需要,則其將被保持在更接近該處理 本紙張尺度適用中國國家標準(CNS ) A4規格(2]〇χ29?公楚) (請先閲讀背面之注意事項再填寫本頁) 訂 經濟部中央標準局一貝工消費合作社印裂 經濟部中央樣準局員工消費合作社印裝 32 29 4 五、發明説明(5 ) 器。 在層系儲存結構内不同點的有效資料存在或不在對先前 技藝處理器的另一缺點具有影響,包括控制推測處理器。 其執行核心内不同組件被設計以使得它們不可能執行"資 料推測",其中一處理器猜測何資料將具有(或,更精簡 地,該處理器假設現行有效資料值是正確且相同最後結果 的值,及使用該等值為一個或更多運算的輸入),而非分 支將走向何方。資料推測可涉及推測從一快取記憶體現有 效資料是相同於該真實值,其中該等資料應具有’或該現 存在部份執行的輸出之現有效資料則相同於在該執行單元 几成其運算,或相似者時’之結果.的真實值。 就像控制推測處理器的恢復機構,資料推測處理器必須 具有某些機構用以從具有該資料值是正確的不正確假設恢 復,以保持程式及資料整體性,雖然並無資料推測發生。 經由層系儲存系統,資料推測變得更困難^特別具其耦合 使用不同設計頻率以為執行環境如不同埠之一微架構。 非常習知地是每一處理器將被採用以執行其特別,,架構,, 的指令。換言之’每-處理器執行—特別指令組,其將以 -特別機器語言予以編碼。部份處;里器,如卜心⑽p⑺處 理^,解碼該等η巨指令"為"微指令"或、〇s”,其可被認 為是該微架構的機II語言及其τ由處理器的執行單元直接 執行。另亦習知的是其他處理器,如該等精簡指令集計 算,可直接執行其巨指令而無需將其分為微指令。為達本 發月的目的’ ”指令” 詞將被考量為可含蓋所有該等例。 - _ I ·1- ^^^1 In · * I - 1 (請先閱讀背面之注意事項再填寫本頁) 訂 级-------- 經濟部中央橾準局員工消費合作社印策 膠'4 "322今 4 A7 -—--B7 五、發明説明(6 ) 發明之概述 本發明是一具有一重放架構及一執行核心用以執行一指 々的資料推測之微處理機,一延遲單元用以做該指令的拷 及在該指令執行時保持該拷貝,及一檢測器用以決定 疋否該資料推測是假的。若該資料推測是假的,該延遲單 几及其緩衝器傳送該指令的拷貝回至執行核心以為重執 行 耦合至該執行核心的輸入之多工器則根據一優先架 2從該指令快取記憶體選擇用以在原始指令執行,從延遲 單元重放指令,及從不同其他單元製造指令,如轉側查緩 衝器或標籤單元。 附圖之簡單說明 圖1是^方塊圖說明一具有一輸出入環及一在不同時脈 速度運具的執行核心的先前技藝處理器。 圖2則展示一如在本技藝所熟知的架構記憶體結構。 圖3疋一方塊圖展示本發明的處理器,及展示多個皆具 有其本身時脈頻率的執行核心段。 圖4疋方塊圖展不—模式其中圖3的該處理器包括具其 本身時脈頻率的另一副核心。 圖5是一方塊圖展示一不同模式其中該副核心不是如圖4 所示成網。 圖6是—方塊圖展示該執行核心的一分解。 圖7疋方塊圖展示本發明的重放架構之一實施例,其 容許資料推測。 圖8展示該重放架構的檢測器單元的一實施例。 -9- 本纸佐尺度顧中固_家樣準(CNS ) Α4規格(21GX297公f ) I--.------^------1T------m (請先閱讀背面之注意事項再填寫本I) 經濟部中央標準局員工消費合作社印製 4 3229 4 A7 B7 五、發明説明(7 )
元件符號說明 100 微處理器 310 資料快取記憶體 110 執行核心 315 旁通匯流排 115 輸出入環 320 内部匯流排 125 時脈乘法器 330 多工器 130 硬碟大儲存設備 602 取還單元 132 動態隨機存取記憶體 604 解碼單元 134 L2快取記憶體 606 微碼檔 136 L1快取記憶體 608 暫存器檔 138 記憶體暫存器 610 命中/誤失邏輯 200 微處理器 612 資料快取籤條 210 執行核心 614 重放機構 205 執行副核心 616 其他功能 215 輸出入環 710 指令快取記憶體 220 時脈乘/除法器單元 715 重命名器 225 時脈乘/除法器單元 720 排程器 250 微處理器 725 檢測器單元 255 執行副核心 730 延遲單元 260 執行副核心 735 緩衝器單元 265 時脈乘/除法器單元 805 計分板 275 時脈乘/除法器單元 810 訊號OP1 280 微處理器 815 訊號OP2 300 算術/邏輯單元 820 訊號OP1V 305 算術/邏輯單元 825 訊號OP2V -10- I--;-----装------IX------線 (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS ) A4規格(210X29?公釐) r4 32 29 4 A7 B7 855 外部重放需求訊號 860 訊號 INSTRUCTION OK 865 延遲線 870 暫存器 875 多工器 五、發明説明(8 )
830 訊號DST 835 等待時間向量
840 訊號 CLEAR 845 訊號SV1 850 訊號SV2 發明之詳細說明 圖3展π本發明處理器2〇〇的高速副核心⑽。該高速副 核…包括U《等待時間的特別架構及/或該微處理器 使用的微架構,,在-英代爾架構處理器,特別算術 和邏輯功能,如資料快取記憶體存取,可以是最不可宽怒 的執行等待時間。 其他功⑯’其並非對執行等待時間敏感的,可以被包含 在-更能容忍等待時間的執行核心21〇内。例如,在一英 代爾架構處理器’非頻率執行指令的執行,如超越的,可 被歸屬於該核心的較緩部份。 該處理器·經由輸出入環215與系统之其他(未示)通 訊。若輸出入環在不同時脈頻率而非可容忍等待時間執行 核心運算’處理器可包括一時脈乘/除單元22〇以根據任何 方式和習用裝置提供時脈除或乘。因為等待時間容忍執行 副核心2G5運算在-較高頻率而非等待時間容忍執行核心 210的其他,在此有一機構225用以提供—不同時脈頻率至 等待時間容忍執行副核心2G卜在—模式,其有—時脈乘/ 除單元225。 -11 表紙張尺度適用中國國家標準(CMS ) Α4規格(210x297公釐) . 表 訂 線 (請先閲讀背面之ii意事項再填寫本頁} 經濟部中央標準局員工消費合作社印製 A7 B7 Θ 羥濟部中失標準局男工消費合作社印裝 鱭432 29 4 五、發明説明( 展示如圖3所示本發明的—改良。圖*的處理器25〇 热〜上 木/除早疋220,及等待時間容忍 Ϊ:,。*論如何’在圖3的單-副核心⑽和時 杆# 域艮處理益包括-等待時間容忍執 仃田〗j核心2 5 5及一甚至更筈接祛明田& ή 文寺待時間臨界執行副核心260 ,及 其時脈乘/除單元265和270。 :知本技藝的讀者將瞭解這晨示一層系的副核個 ==等必須操作至少如各別副核心位準般快。習知本 二買者:更瞭解選擇何單元能深入層系將依據不同設計 晶粒面積1時脈斜置靈敏度,在卡 曰 ===殘留,及相似者。在一模態,一英代爾架 :::地包括僅其最普通的整數算術邏輯單元功 一 ^彳核^的貝枓快取圮億體的資料儲存埠。在 才旲態,該最内副核心、π 4 k、. k + 因包括該等如圖2:::=存器樓;雖然在某些原 高時脈頻率運算,兑在技術上不需在最 副核心所簡化二;=括f在非常必須之更内侧 致二倍快暫存器檔’反之亦然。 卩了獲 在運#時’處理器執行— 出入時脈頻率輸出入運异在輸出入環及在輸 著,該等待時問容^入現未在處理器内者。接 運算以產生-第」果丁^可執行一執行運算在該資料 心可執行-執行運i/第接t該等待時間容忍執行副核 著^争時間臨界執行副核心可執行一第三執行運算在 12 本纸張 (請先Μ讀背面之注意事項再填寫本頁)
經濟部中央榡辛局員工消費合作衽印^ ""4 32 29 4 五、發明説明(10 ) ~' - 第°果以產生帛二結果。該等習知本技藝者將瞭解執 行流將不必須進行在執行副核心架構的嚴格順序。例如, 新讀取的資料項目將立即進入最内核心,且該結果將從此 進入核心段之一或甚至回至輸出入環以為寫回。 圖5展示與圖4略微不同的一實施例,該處理器28〇包括 輸出入環215,執行核心21〇,255 , 26〇及該時脈乘/除單 兀220,265,270。無論如何,在等待時間臨界執行副核 心260的實施例並非巢套在等待時間容忍執行核心255内。 在此模態,颉時脈乘/除單元265和27〇執行不同乘法比率 以致使其各別核心執行在不同速度。 在另一略不同模態(未示),任一核心可以是時脈界面直 接至輸出入環或至外部世界,在該—模態,時脈乘/除單 元可不需要,若該分別時脈訊號從處理器外側被提供口 其應注意在不同層副核心的不同速度可以是在使用’運 算速度。其亦習知,例如在penijum處理器’該部份單元 可以供電號其不使用,係減少或停止其時脈;在此例,該 處理器可具有巨量核心運轉在66MHz,同時一副核心如浮 點單兀是在實質地0MHz。當本發明可結合該關機或時脈 抑制技術以使用之,其並未受限於該等例。 4等習知本技蟄者將瞭解非整數比率可被使用在任何其 他範圍’且在不同環間時脈比率的結合幾乎是設限制的, 且不同基線頻率可使用在輸出入環。其也可能該時脈乘法 係數可能未能保持恒定,例如,在部份模態,施於該最内 副核心的時脈乘法可被上下調整,例如在3 χ和丨χ間或在 -13- 本紙張尺度適用中國^^準(CNS) Α4規格(210^ϋ釐 ~~- I.--:------裝------訂------線 (請先Μ讀背面之注意事項再填寫本頁} ^4 32 29 4 A7 ----------------B7五、發明説明(11 ) 經濟部中央標华局員工消費合作-杜印製 2 X和Ο X間或相似者,a &古/ 者田杈问頻率(及因此較高能量消耗及 產生熱)疋不需要砧。工ιΠ ... 的而且1菡處理器可受到全部或部份 時脈抑制或時脈停+。β ^ ^ 、 〒止或该輸出入時脈不可能是—恒定頻 率’在I衾例其他時脈可因迚枯斗I .. ,〜 J囚此被计I ,或其可以執行部份变 式可採用P/Q時脈架構以保持其希望的執行位準。 圖6展示圖4等待時間臨界副核心2 6 0内容的—實施例。 (其也可瞭解以說明圖3的副核心2〇5的内容或圖4的副核 )μ等待時間各忍執行2 10包括非等待時間靈敏的 組件’但其是依部份生產位準而定。因此,該等待時間容 忍組件可被認為是,,舖設鉛管Μ其工作是兩簡單地提供一特 別”每分鐘加崙”生產,其中—”大管路"是如同一"快速流11 Q 例如’在部份架構該取還6 0 2和解碼6 0 4單元可能不非 常需要在執行等待時間,及可能因此被置於等待時間容忍 核心210而非等待時間非容忍副核心2〇5,255,266。相 似地’該微碼6 0 6及暫存器檔6 0 8可能不需要在副核心 内°在某些架構(或微架構)’該最等待時間靈敏物件是算 術/邏輯功能3 〇 0,3 0 5及該快取記憶體3 1 0。在圖6所示的 模態’僅一子集算術/邏輯功能被認為是足夠等待時間靈 敏的以保證將其置於副核心内,如臨界ALU300所示.。 在部份實施例,該臨界ALU功能包括加,減及邏輯單元 用以執行AND,Ο R *及相似者。在部份實施例其使用索 引暫存器位址,如英代爾架構,該臨界ALU功能可包括一 小的特別目的位移器用以衡量索引暫存器做位址產生。在 (請先聞讀背面之注意事項鼻填荈本頁) 裴· 訂 線 -14- 本紙張尺度適用中國國家標準(CNS ) A4规格(210X297公釐) A7 B7 12 經濟郎中央樣準局員工消費合作社印裝 4 29 4 五、發明説明( 部伤Λ施例,該暫存器檔案可存在等待時間臨界執行相 心,以為設計之方便,該暫存器檔案所在之核心段越快, 該暫存器檔案所需之埠越少a »亥功此一般是比遞歸本質的該等埠之舖設管路還等待時 間里敏,或比包括一依賴鏈亦更靈敏。執行是本理念之一 王$範例;執行傾向是遞歸或迴路,及包括依選代和迴路 而定之錯誤和真實資料。 在问執行呢腦設計的現行技藝(如卩⑺處理器)已 經,發-大等級重要低p程式内最近已可開發平行性。其 變得非Μ困難或甚至實際不可能為該等程式大量增加卜 若希土建及一處理器以快速執行該等程式,在此例並無替 代以減少平均等待時間。 ‘ 反之,有特定其他功能’例如,指令解碼,或暫存器重 :名。當該等功能被執行是基本’現行技藝具有配置為消 逝時間用以執行該等功能可以具有一影響在當一分支已被 誤測足執行度。—分支被誤測典型僅平 令。因此,一 +产八士 .. . 丁五刀疋一心 供1/5〇十倩八、’“ 做解碼或暫存器重命名提 :1/5〇十億…秒增加在平均指令執行等待時間的等 式,同時-十億分之—秒的時間增加以執行一产 均指令等待時間十億分之—秒。我 “q〜口平 :::暫存曜之時間,例如,是明顯地少於執行:令 其也有其他功能6丨6以執行在一處.理器。 是比解碼和暫存器重命名邏高槓签多孩等功能 ΪΤ β寺功能而言, 15- 本紙浪尺度適用中國國家樣準(CNs ) Α4規格 210X297 公楚) I. ^ 參if-----線.----- (請先閱讀背面之.¾意事項真填寫本頁〕 PM 32 n 五、發明説明( A7 B7 13 經濟部中央標準局員工消費合作社印製 —h億分之一秒時間之執行可以增加少於1/50十億分之一 秒至平均執行等待時間°我們可以結論用以執行該等功能 之時間是較不嚴苛的。 如示’其他算術邏輯單元功能305可被歸於較慢速核心 2 10。此外,在圖6所示的模態,僅一子集快取記憶體需要 在副核心内侧。如示’僅該快取記憶體的資料儲存埠3 1〇 是在副核心内侧’同時該命中/誤失邏輯6 1 〇和籤條6 1 2是 在較慢核心210。這是相反於習用智慧,其是該命中/誤失 訊號是如同資料和同時間所需要。一最近論文表示該命中 /誤失訊號是該快取記憶體速波是限制係數(第2 2屆電腦架 構國際論文集,1995年6月18-24,第8章,No. 1,第5 頁,由 Dionisios N. Pneumatikatos,Giandianar S. Sohi 及
Todd M所發表的·’以快速位址計算使流線化資料快取記憶 體存取")。很不幸的,命中/誤失決定是比從快取記憶體 位置讀取資料内容的簡單事物而更困難和耗時。 此外,該指令快取記憶體(未示)可以完整在核心2ΐ〇, 如快取記憶體3 10僅儲存資料。這些指令快取記憶體 (Icache)是被推測存取。這是分支預測之事以預測是;^ 程式流將進行該指令快取記憶體是在該預測基礎上存 :二今曰-般使用的分支預測方法可預測程式流而無需看 =令快取㈣體内指令。若該—方法被使用,㈣該指令 “ 、了』玉敏且又得比爭待時間限制還 f見1 ’ T被歸屬於執行核心的較低時脈頻率痒。 該分支預測本身可以是等待時間靈敏,所以其心是内 -16- (210X297公釐) I I I I- — - i I 1^1 - - n - -: I— IJ ISO- _ HJi ϋ— ------- (請先M讀背面之注意事項再填寫本頁} *"4 3229 4 at ___ Β7 經濟部中央標準局員工消費合作社印製 五、發明説明() 側副核心段之一的一快速週期時間之好候選人。 首先,大家可能認為圖6的最内側副核心2〇5,255或26〇 將因此保持圖2的記憶體層系頂端儲存的該資料,即是, 該儲存在暫存器的資料。無論如何,如圖6所示,無論如 何,如圖6所示’該暫存器檔案不需被限制在副核心,但 可替代地,被保持在該核心2 1 〇的較低速埠。在圖3或4的 模態,該暫存器檔案可以被儲存在核心段2〇5,210, 255,260之任一内,如適合被選擇的特別實施例。如圖6 所7F,該暫存器檔案不需要在最内倒核心的理由是源自在 算術邏輯單元300内執行運算之資料是在一旁通匯流排3 i 5 内於其被計算時。經由適切多工器運算3 3 〇 (以任何習用 方式),該等資料可出現在副核心的下一時脈週期内之算 術邏輯單元3〇〇,遠快於可能被窝至及接著從該暫存器檔 案讀取。 相似地’若資料推測被容許,即是,若算術邏輯單元被 容許在未知是否有效的操作元上的計算,資料快取記憶體 埠不需存在最内側副核心。在此模態,該資料快取記憶體 3 1 0僅保持該實際資料,同時該命中/誤失邏輯及快取記憶 體標籤存在該核心的一較慢埠2 1 〇 .在此模態,資料快取記 憶體3 10的資料被提供在一内部匯流排32〇且混入該.算術邏 輯早70 β 稍後部份數目時脈週期,該外側核心的命中/誤失邏輯 或標籤邏輯可以訊號該推測資料是,事實上,有效。在此 例,其必須有一裝置以從已被執行的推測運算。這包括不 -17 - 本紙張尺度適用中國國家橾孪(CNS ) A4規格(210X297公釐) (請先閲讀背面之注意事項再填寫本頁}
L
*-B 丁 良 經濟部中夹標準局員工消費合作社印策 4 3229 4 五、發明説明(15 ) 僅使用不正確,推測資料為輸入運算元的特定運算’但也 包括任何使用該等特定運算的輸出做輸入之順序運算。而 且,該錯誤產生的輸出可結果被使用以決定分支運算,如 若錯誤產生輸出被使用做一分支位址或一分支狀況。若該 處理器執行控制推測’其可能有錯誤在運算時。 本發明提供一重放機構6 1 4用以從資料上的資料推測恢 復,該資料最後證實是不正確,在一模態,該重放機構可 存在最内側核心外侧,因為其不是非常等待時間嚴苛的。 ^这重放架構結合執行資料推測的多時脈速度執行引擎予 以描述’清瞭解该重放架構可與一廣泛不同的架構及微架 構被使用’包括該等執行資料推測及該等未執行者,該等 其執行依順序執行及該等執行非順序執行等,及其他等。 圖7展示該一重放架構的執行,—般展示該架構的資料 流。首先,一指令被取還入該指令快取記憶體7 1 〇。 從該指令快取記憶體,該指令進行至一重命名7 1 5如一 暫存器代名表。在容忍資料推測及/或控制推測的複雜微 架構’最希望從由指令表示的特定暫存器解耦合實際機 器。這在一缺乏暫存器的一架構是真實的如英代爾架 構。改名是非常有名的,且該改名的詳細並非特別關於本 發明的一暸解。其他習用改名將足夠。希望其是一單值和 單指定改名,諸如一既定指令的每一情況將寫至一不同暫 存器’雖然該指令特定相同暫存器。該改名為每一邏輯暫 存器假定的每一不同值提供一分離儲存位置,以使得其他 邏輯暫存器沒有該值是過早漏失(如在該程式是以該值經 -18 - 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公竣) I--:-----神衣------ΐτ-----.it (請先閱讀背面之注意事項再填寫本頁) 經濟部中央樣华局員工消費合作社印裝 ^229 4 五、發明説明(16 ) ' 過),在一非常良好界定期間。 從該改名,該指令進行一選擇的排程器7 2 〇如—保留 站,其中指令被重新整理以改良執行效率。該排程器可以 檢測當其不容許發出其他指令◊例如,可能沒有有效執行 槽在其中一下指令可被發出。或者,另一單元在某些原Ζ 會使該排程器短暫失能。在部份實施例,該排程器可存在 一等待時間臨界執行核心内,若該特別排程算術可僅排程 每週期產生的單等待時間,及因此連至該算術邏輯單元功 能的等待時間》 從m改名或選擇排程器,該指令處理至該執行核心 205 ,210,255 ,260 (非直接經由下列的一多工器 3 3 0 )’其中是其被執行處。在其執行時或之後,一關聯 該指令的位址被傳送至轉譯側查緩衝器(TLB )及快取記憶 體標籤查詢邏輯(TAG ) 6 1 2。這位址可以是,例如一該指 令需要的資料運算元的位址(實際或邏輯)。從該TLB和 TAG邏輯’該實際參考位址及呈現在存取的快取記憶體位 置之實際位址被傳至該命中/誤失邏輯6 1 〇,其決定是否該 存取的快取記憶體位置事實上包含在該希望資料内。 在一模態’若該被執行指令讀取記憶體,該執行邏輯給 予最高優先權以產生或許僅該位址的一埠,但足夠該資料 可在高速度資料快取記憶體内可查詢。在此模態,這部份 位址可以高優先以從資料快取記憶體檢索資料,及僅是第 二優先是一完全虚擬位址,或在英代爾架構的例,一完整 線性位址’被產生友傳送至該TLB和該TAG查詢邏輯。 -19- 本紙張尺度適用中國國家標準(CNS ) A4規格(2丨0X29?公釐) I:--^------.哀------IT------^ f讀先閱讀背面之;,±意事項再填寫本頁) A7 PM32 29 4 ____B7 五、發明説明(17 ) 因為算術邏輯單元功能和資料快取記憶體是在最内側副 核心一或在至少該處理器的一埠以運轉在—較高時脈頻率 而非TLB和TAG邏輯及命中/誤失邏輯—部份資料將已從 遠資料快取6己憶體所獲致且該處理器將已推測地執行該資 料需要的指令,該處理器已假設該獲得資料已被更正,且 該處理器可能也已執行其他使用該資料或第一推測執行指 令的結果之指令》 因此,該重放架構包括一檢測器單元7 2 5以接收該命中/ 誤失邏輯的接收。若一誤失被標示,該檢測器導致一錯誤 指令的"重放"及任何其他依其而定者或其是不正確的如錯 誤資料推測的結果。當該指令從保存站高至執行核心,其 拷貝則傳送至一提供延遲等待時間的一延遲單元7 3 〇,其 耦合該指令通過該執行核心,TLB/TAG ,及命中/誤失單 元的時間’以使得該拷貝在命中/誤失邏輯告訴檢測器資 料推測是錯誤之相同時間到達該檢測器。在一模態,這是 約該内核心的10-12時脈。在圖7,該延遲單元如示是在檢 測器外側,在其他實施例,該延遲單元可以結合或該檢測 器的一部份。在部份實施例,該檢測器可以存在該等待時 間臨界執行核心内,若該檢測算術是連結至算術邏輯單元 速度a 當該檢測器決定該推測是不正確的*該檢測器傳送該指 令的拷貝回至以為一"重放"。該檢測器將該指令的拷貝傳 至一緩衝器單元7 3 5,其可能一非關.聯事件時發生即是該 TLB/TAG通知該緩衝器該TLB/TAG被插入現在週期的一製 -20- 本纸乐尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) ^^^^1 ^^^^1 ^^^^1 ^1« 1^^^ ϋ , , i 每 (請先閱讀背面之注意事項再填寫本頁,> 經濟部中央標準局員工消費合作社印製 紐濟部中央標準局員工消費合作社印装 ^4-32 2 9 4 at —----------B7 ____ 五、發明説明(18 ) 4的指令。这資訊是該緩衝器所需要的以使得該缓衝器知 道並非在相同週期插入另一指令。該tlb/tag和緩衝器也 在其插入指令時通知該排程器,以使得該排程器知道非在 相同週期傳送-指令1等控制訊號並未示但卻已由該等 習知本技藝者所瞭解。 該緩衝器單元提供閃鎖該拷貝指令以在若其立即被處理 時防止其漏失。在部份實施例,其可能有種狀況即是其不 可立即重插入重放指令,在該等狀況,該緩衝器保持其一 或弄大量一直至其可被重插入。一該等狀況可以是有較高 優先功能以要求執行’如上述般。在部份其他實施例,該 緩衝器可能不必要。 先前,其說明該排程器的輸出被非直接的經由一多工器 提供至執行核心》該多工器的功能是在幾個被傳送以為執 行可能的指令源内選擇。當然,第一源是該例内之排程器 於其是被傳送以為執行的一原始指令。第二源是該緩衝器 單7C,在該例當其是一被傳送以為重放執行的指令拷貝 時。第三源則如示是來自TLB/TAG單元;這容許該架構製 造一 指令’’及將其射入指令流。例如,該丁LB遝輯或 TAG邏輯可需要使其他單元為其做些工作,如從資料快取 記憶體讀取部份資料,如可能需要以收回該資料,或用以 改裝該TLB,或其他目的,且其可經由產生指令而做到, 該指令並非自真實指令流’且接著將該等指令在該多工器 輸入插回至執行核心。 該多工器控制架構可以’在一模態包括一優先架構其中 -21 - 木纸張尺度適用中國國家標準(CNS ) A4規格(2I0X297公釐) I.—;-----装------ir-----昧. (该先fsfl讀背面之注意事項鼻填^:本筲) 經濟部中央標準局員工消費合作社印裝 "4 3229 4 A7 ------B7 五、發明説明(19 ) --^ -重放指令具有比—原始指令更高階優先。這是有益處 的,因為-重放指令是可能比在原始區指令流内原始指令 舊的且可能是阻斷"指令如其有一真實資料依賴。 其也希望重放指令完成越快越好。當有未解指令被傳送 至重放,分配的新指令具有較高可能在依部份未解的而定 及因此使其增加至需要被重放的指令表。當其需要重放— 指令,孩-指令即嘗試成長一長列指令在其後遵循之a該 處理器可快速進入一模態其中多數指令被執行二或三次: 及該-模態可持績-段長時間。因此,解決重放指令是最 佳以導入新指令。 同時有重放的新指令導入是一種賭博。有特定的可能該 新指令是獨立的且部份工作仍將完成。換言之,即是該新 指令有可能是不獨立的且需被重放^最差的是有些指令是 非獨立於該新指令的需要被遵循且所有指令必需被重放, 其中若該機器必須等待直至重放被解決,接著所有指令不 需被執行兩次。 在一模態依製造的指令可能比一重放指令具有較高優先 權·»因為該等製造指令可以使用在重要且對時間靈敏的運 算’故其是有益處的。該一靈敏運算是—種收回。在—快 取記憶體誤失後’新資料將來自於L !快取記憶體。.當該資 料到達’其必須盡快置入該資料快取記憶體()。若此完 成,铉重放負載將符合該新資料且將成功。若該資料比獲 致該資料晚一週期,該重放負載將再次太快通過且必須再 次被重放。不幸地’該處理器置放該資料的資料快取記憶 -22- 本紙張尺度逋用中國國家標準(CNS ) A4現格(2丨〇 X 297公釐) ί請先閱讀背面之注意事11再填寫本頁j 裝
*1T 經濟部中央標準局—工消费合作社印製 r 4 32 29 4 A7 A7 ____B7 五、發明説明(2Q ) fla位址則現在保持該資料及部份先前被寫入的資料拷肖 換言之,該位元址是”污壞,,的。其必須將該污壞資料續 出,以在新資料到達及寫入前儲存。這舊資料讀取"收回,, 該資料。在部份實施例,僅有足夠時間在開始寫入新資料 前完成該收回。該收回是以一個或多個製造指令所完成。 若其保持至一個週期,該收回不會發生以避免上述問題’ 及因此其必須給予最高優先權。 該重放架構約可被使用以致使該處理器有效避開而無須 使該執行核心慢下來或執行時脈抑制或其他。也有部份狀 況其必須進入前中端及/或執行核心以避免該指令結果或 避免其他問題。其中一個範例是其中該處理器的後端短暫 失去資源如有效的暫存器以寫入執行結果。其他範例則包 括其中該外部匯流排被阻斷,一上層快取記憶體是非忙碌 而由其他處理器,一負載或儲存跨頁邊界,一例外發生, 或其他所偵測。 在該等狀態,並非停止前端或抑制該執行核心,該重放 架構可非常簡單地被使用以傳回所有結果遗失被重放的指 令。遠執行核心保持全速功能,並容許該多工器給予優先 權在原始指令上重放指令。 其他使用則建構在重放架構上。例如,假設一儲存位址 指令誤失在TLB而非儲存該線性位址以在該tlb獲致適切 輸入後處理之,該處理器可將其置於基板上及要求該儲存 位址指令被重放如另一範例,該頁誤失處理器(未示)可能 疋非常长碌的。在本例該處理器並未記憶其必須執行一跨 -23- 本紙張尺 - — 1* n 1 H I 訂 11 線 (請先閱讀背面之注意事項再填荇本頁) 經濟部中央標準局負工消費合作社印製 爾4 32 29 4 at _____B7 五、發明説明〜 頁,但是當該儲存位址回溯時發現需再執行時。 。當有快取記憶體誤失時多數例已無資源。也無填充緩衝 器,所以該機器不能要求-Ll查詢,或纟,該Li可為忙 碌。當一快取記憶體誤失發生時’該機器可要求來至較高 位準快取記憶體的資料及可全部忘記且不做任何事以協助 1¾狀況。在任一例,該負載(或儲存位址)指令被重放。不 像一最習用架構,本發明不需要記憶該記憶體副系統内的 本指令及處理之β若該處理器具有資源則必須執行以改善 琢狀況。若否,其可能什麼都不做,更未記憶該一指令是 由記憶體副系統所觀視。該記憶體副系統本身則將不會為 此指令執行。當該指令再次執行,接著其將完全再次被考 慮β在一儲存位址指令之例,該指令以傳送其線性位址到 肩疋隐祖副系統且其不要任何溯。一更傳統的嘴試此指令 被芫成,且在此的問題是記憶體副系統問題,其中該記憶 體副系統必須接著儲存關於此儲存位址直至其可獲致處理 之貝源6本嚐試是該儲存位址重放,及記憶體副系統不需 記憶之。比較清楚該處理器因為不能在記憶體副系統處理 之而需重放該儲存位址。在一模態,當一指令被重放’所 有非獨立指令也被重放。這可包括所有使用該重放指令的 輸出做為輸入者,並根據該重放指令控制分支流。 忑處理器,因為其一重放指令而控制流量,而不儘重放 指令。該控制線串被預測。該處理器一直遵循一預測的控 制線_且在執行時不需知道其是否為.正確。 右一分支獲致不良輸入,該分支指令本身被重放。這是 -24 - 本紙張尺度^ I.--.-----裝------訂----—— 線 (訐先閱讀背面之注意事項再填寫本頁} 顯43229 4 A7 B7 22 五、發明説明( 因為處理益不能從該分支決定是否該預測的線串控制是否 為正確’因為孩分支的輸入資料並非有效。因為該 致不良資料’並無指令需要被重放。最後可能在許多重‘ 後’該分支將被正確地執行。此時,其執行所有分支所必 須做的,其回報是否本分支的預測方向為正確。若其被正 確的預測,則皆依序執行。若其未正確的預測則簡單的存 在*支误預測,事實是本分支被重放的次數並未有所不 同。-疾預測分支不能以一重放來修復。一重放儘可再次 執行相同私令。右—分支被誤預測,該處理器可能已經執 行-午户錯誤&令且需要確實執行部份完全不同指令。 综合之:—指令被重放是在:1)因為該指令本身未被正 確處:’或2 )若本指令使用的輸入資料並不知是否為正 確。若資料是由-正確處理指令所產生且所有其輸入資料 二!!資料必為正確。在此定義下,分支與控制流 f§貝料處理指令報導至該機器的前端但未產生可 :其他扎令使用的輸出資料。因此其他指令之更主對此並 ,任何作用。該控制流量的更正則由—較高權限所處理且 处非:在執行和重放的範圍内。以上所討論之指令管理功 ”非由較巧之權限所處理,而是由與該檢測器相 連接足重放及緩衝器單元740所處理。 圖8展示—檢測器單元。再者,一指令被重放若:”其 萑處理,或2)其使用不正確的輸入 二 況給予討論該檢測器罡士 1 . t 依 以益早兀運异一艮好範圍。第-種狀況是 ^ 7疋。正確執行該指令在該機器内"混”及提供,, -25- 木紙張尺度咖 ~. …· I 裳 .n It 訂--—--線 {讀先聞讀背面之注意事項再填符本頁} 經濟部中央樣华局負工消費合作杜印製 X 297公釐) A7 4 3229 4 五 '發明説明(23 ) 混”訊號給該檢測器。第—種狀況是關於進入該檢測器的 訊號,可能是來自許多地方,即是”我在此指令上混„。 在部份實施例,最普遍的錯誤是資料快取記憶體以為一 負載供給該正確結果。這是由命中/誤失邏輯所給予訊 號。另一一般誤失則是未正確處理一儲存位址;這可能是 典型來自一儲存位址中的一 TLB誤失,但也有其他原因。 f部份實施例,該L1快取記憶體可傳送包含一ECC錯誤的 貝料(其可進入L0快取記憶體且由指令使用)。這可以快速 訊號’及接著在時間容許下被更正。 在部份較少案例,該加法器不能正確地加兩數字。這是 由保持標籤在加法器的旗號邏輯以訊號之。在其他緩見 例’該邏輯單元在執行一 AND,x〇R或其他簡單邏輯運算 時典法獲致正確答案。其也由該旗號邏輯給予訊號。在部 份具體例,孩浮點單元皆未能獲致正確答案,其中當其誤 失-浮點運算時將給予訊號。理論上,在許多型式您可使 用本機構。其可被使用以使用在算術運算誤失且其可被使 用j為硬體錯誤(電路誤失不論其原因’當該處理器未 確實執行其必須做之事#,則誤失將被檢❹,該處理器 的不同單元可經由給予該檢測器一訊號以要求重放。 導致重放的第一種狀況是,不論資料是否正確,則完全 是認檢測器本身的責任。該檢測器包含該資料為正確之正 f表列。有時被稱為"計分板” 8 0 5。這是檢測者貴任以看 每一扎令執行的所有輸入資料及決定是否輸入資料為正 確。該檢測器的责任也是為每一指令執行將其加總,以決 -26- 本纸張尺度適用中國國Τ^Τ7^ΤΙΓ〇χ赠) I- ·-----------ΐτ-----.^ (請先閱讀背面之注意事項再填葙本頁) 經濟部中央標準局—工消費合作社印製 經濟部中央標準局員工消費合作社印裝 ,4 32 29 4 a? _______B7 五、發明説明(24 ) 定是否該指令執行所產生的結果可被認為,,是正確,,的。若 該指令的結果被認為"是正確,•的,這會被轉記在該記分板 上以使得該處理器具有可以是其他指令的輸入之已知正確 資料》 圖8展示一檢測器範例以使用在本發明的實際架構下。 因為該檢測器的詳細並非用於瞭解本發明,一簡化檢測器 則如示以展示一檢測器足夠保持該系統正確運算的需求。 在此實施例,每週期產生一指令。在一指令執行後,其 是由訊號 OP1810,OP1V820,p〇2815,OP2VM5, DST 830及一由運算碼的基礎之解碼器指定至單位運算的 一等待時間向量8 3 5所呈現至該檢測器。該訊號〇ριν及 OP2V表示是否該指令各別包括一第一運算元及一第二運 算元。訊號OP1及OP2則各別界定第一和第二運算元的實 質源暫存器,及在該計分板的讀取位址埠RA1和RA2所接 收。該訊號DST界定實質的目的暫存器其中該指令的結果 被寫入。 该等待時間向量具有除了 1的所有〇在一位置。該1的位 置則指示此指令的等待時間。一指令的等待時間是在兮p 令開始執行後而另一指令可使用其結果前有多少週期。該 計分板具有一數元儲存在該機器的每一實質暫存器内。若 該暫存器不知含有正確資料’則數天為0,若含有正確資 料,則為1。 該暫存器改名,如上述,配置該等暫存器。在一實質暫 存器被安置以保持一些指令的結果,該改名傳送該暫存器 -27- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) I.--_-----^------iT-----0 (請先閲讀背面之注意事項再填寫本頁) 經濟部中央標孪局員工消費合作社印製 32 29 4 at _____B7 五、發明説明(25 ) 數目至該檢測器做為多數元訊號CLEAR 8 4 0。該計分板設 定。至由CLEAR所位址的計分板數元。 該指令現行被檢測的一個或二個暫存器(如〇p 1和〇p2) 則在計分板被查詢以看是否其為正確,且該結果分別被輸 出為計分板值SV1845和SV2850。一 AND閘3 5 0接收第一 計分板值SV1和第一運算元有效訊號0P1v。另一and閘 3 55相似地接收訊號SV2和0P2V以為第二運算元。該運算 元有效訊號0P1V和0P2V導致計分板值SV1和SV2在指令 並未真正需要該等各別運算元時被忽略。 該AND閘的輸出則被提供至n〇r閘360,與一外部重放 需求訊號8 5 5。該NOR閘的輸出為錯係若該指令所需運算 元非為正確,或該外部重放要求訊號被確認,否則該輸出 將為真Λ該NOR閘360輸出是該檢測器檢出INSTRUCTION OK 8 6 0 »若此為真,該指令被正確完成且已被考慮大功 告成。若俱為錯’則指令必須被重放。 一延遲線8 6 5接收該指定暫存器界定器DST及該檢測器 輸出INSTRUCTION OK資訊以為該指令被正確檢測,該簡 單延遲線是由暫存器(單週期延遲)87〇和多工器875所構 成。其應瞭解每一多工器和暫存器是一多數位元設備,或 表示多個單數元設備。該等習知本技藝者將瞭解不同其他 型式延遲線,及因此不同格式等待時間向量,可被使用。 該DST和INSTRUCTION OK資訊被插入該延遲線的一位 置,如坂等待時間向量的值所決定。根據該等待時間所需 又週期數目,本資叙被延遲,且接著其被使用在該計分板 -28- I.--r-----^------ΐτ-----^ (請先閱讀背面之注意事項再填寫本頁) 本紙狀度顧巾酬雜^7^5)丨4祕(加><297公嫠) 經濟部中央標箪局員工消費合作社印裝 4 32 29 4 Α7 _ Β7 五、發明説明(26) " ~~ 的寫蟑Wp。該指令對應指定暫存H DST的計分板數元則 接著根據INSTRUCTION 0K值接著被寫入。一個}值表示 該扣々不需被重放,而一〇值則表示該指令必須被重放, 表示結果之資料並非正確。 一在本設計,其係假設沒有指令具有實質暫存器。以為真 實目的或做為一真實源》若在部份週期沒有有效指令,該 ,期的等待時間向量將皆為零。這將有效地輸人實質暫存 器零與最長可能的等待時間至該延遲線,此是無害的。相 乜地 未具一真貫目的暫存器的指令將特定一全零的等 待時間向量,其為假定在開始時,此單元運轉數個週期而 典有效扣令到達,以在第一真實指令已被配置予一目的暫 存器前且因此係在計分板内對應數元正被清除前填充該延 遲線零。該計分板不需其他啟動。 .可此地’本檢測器每週期檢測一指令(使其他實施例是 w然可行的)。該指令被檢核的週期是一固定數目週期在 其後指令開始執行且捕獲該資料以為其運算元。這週期數 目則足狗容許該指令的EXTERNAL REpLAY REQUEST訊 號與關於孩指令的其他資訊到達該被處理的檢測器。該 EXTERNAL REPLAY REQUEST訊號是所有訊號的OR從該 機益的任何邵份可產生重放請求以表示該指令並未正確處 里例如其可表示從該資料快取記憶體回來的資料未必為 正f,在許多理由下,一個好範例是一快取記憶體誤失a ,白知本技藝者應瞭解上述特定區隔僅為展示’例如,雖 然建"義特定特徵可屬於最外層核心2 10 >其也可希望是存 -29- 本祕尺度刺 I.--.-----裝------訂-----線 (詩先閱讀背面之注意事項再填寫本頁) 4 3229 4 A7 B7 27 五、發明説明( 在μ核心的-中層埠’如圖4的等待時間容忍核心加,位 於最外層核心2】〇和最内核心細間a另雖然本發明以英代 爾架構處理器參考說明’但任何其他替代架構亦為有效, 且在其間是一廣泛的微架構差異。 同時本發明有參考定模態和實施例予以說明,以為說明 和瞭解之簡m本技藝者瞭解本發明並未受限於所示 之特定特徵,且本發明可在所揭露之範圍和精神内有不同 方式之實際應用。因此,本發明是被提供在下列申 範圍内最完整可容許的範圍内。 --·-----,疼------、1X-----' 線 (請先閲讀背面之注意事項再填蔦本頁) 經濟部中央樣莘局貝工消費合作社印策 -30- 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐)

Claims (1)

  1. ABCD P43229 4 申請專利範圍 1· 一種具有一重放架構的微處理_^丨含 一執行核心用以在執行一第時執行資料推測; 一延遲單元用以做第一指令拷貝及用以保持該拷貝至 少一時脈週期; 一檢測器’接合至該執行核心’用以決定是否該資科 推測是錯的,及耦合至延遲單今傳送第一指令拷貝 回至該執行核心,若該推測為錯!_:釜執行d 2.如申請專利範圍第1項之微處理破^包含: 一指令快取記憶體用以除存供第一指令及—其後 指令; — 一多工器,耦合至該指令快取記憶體以接收第一指令 及其後指令,及耦合至該檢測器以接收第/指令的拷 貝,及耦合至該執行核心的輸4¾%選擇地提供其後指 令或第一指令的拷貝至該執行核心以為執行。 3,如申請專利範圍第2項之微處理包含: 一延遲單元耦合至該多工器出及至該檢測器的 一輸入,以稍後提供第一指令之該拷貝一預定數目時脈 週期,其中該預定數目時脈週期^萌該執行核心對應第 """指令的約一時間延遲a 4.如申請專利範圍第3項之微處理彳|^其中該多工器從該指 令快取記憶體給原始指令一第一 權,從該檢測器^ 重放指令第二優先權,其中第二,優先權是高於第—優先 權。 :" 5_如申請專利範圍第2項之微處理機乂另,包含·· -31 - 表紙浪尺度適用中國國家標準(CNS ) Α4規爲(210Χ297公釐) IU--L------裝------ir------4 (請先閔讀背面之注意事項再填寫本頁J 經濟部中央標华局員工消費合作社印製 經濟部中央標华局員工消費合作社印策 A8 B8 C8 D8 六'申請專利範圍 裝置用以從該指令快取記憶體製造不是在—指令流的 指令,及耦合至該多工器用以傳送^至該執行核心以為 執行。 舡:¾ ί- : ··/ 6·如申請專利範圍第5項之微處理:中該多工器從該指 令快取记憶體給原始指令一低優__,從該檢測器給重 放指^^中間優先權,及一最高權給製造指令。 7. -種 一第一段在一第一時脈頻率運算及包括, —執行核心;及 一第二段在一低於第一時脈頻率的第二時脈頻率運算 及包括, 檢測器用以決定是否一指令被正確處理及使用已 知正確的輸入資料s 卿 8. 如申請專利範圍第7項之處理其中該第二段另包含 一改名^ 齡:; 9. 如申請專利範圍第8項之處理翁其中該改名器包含: 一暫存器配置表。 10. 如申έ青專利範圍第7項之處理機妙,其中: 該處理器另包含多個暫存器y:及該檢測器包含, 一計分板用以追蹤何暫存^具有正確内容,· 延遲線’輕合以接收一等待時間向量表示在第一 扣令開始執行後多少時脈週期一第二指令可使用第一指 令的結果,及 邏輯电路,耦合至該計分板及至該延遲線,用以表 本紙張尺度適用中國國家標准fwmjTT -32- —U---.-----广裝------訂------4 (請先閱讀背面之注意事項再填寫本頁) ABCD 432294 六、申請專利範圍 示疋否該指令是正確完成或該指令需要被重放。 11. 一種微處理器,包含: 一指令快取記憶體用以儲存原始指令; 一改名器,耦合至該指令快取記憶體,用以改良該原 始指令以重命名在該原始指令内界定之暫存器; 一排心器’耦合至該改名器,用以分配指令以為執 行; 一多工器,具有一第一輸入耦合至該排程器以接收該 分配的原始指令; 一執行核心’耦合至該多工器的一輸出,用以執行指 令’該執行核心包括 一算術邏輯單元,及 一資料快取記憶體, 其中該執行核心在被推測存在該資料快取記惊體之資料 内之資料上執行資料推測; TLB /標籤邏輯耦合至該執行核心用以執行該已執行之 指令上之轉譯側查及標籤耦合運算; 叩中/ s吳失邏輯’搞合至έ玄丁LB /標藏遇輯,用以檢測 是否該指令的資料運算元是或不是在該資料快取記憶體 内; 一仏測Is· ’搞合至該命中/誤失邏輯’用以決定是否該 資料推測是錯的,及耦合至該多~第二輸入,用 以重放一錯誤資料推測指令。 丨:初. 12. 如申請專利範圍第1 1項之微處理另包含: _ -33- 本紙張尺度逋用中國國家標準(CNS Μ衫見格(210X 297公瘦) -- 1·>--L------裝------訂-------4 (請先閲讀背面之注意事項再填寫本頁) 經濟部中央標準局員工消費合作社印製 r 32 2 9 4 A8 B8 C8 D8 六、申請專利範圍 一延遲單元耦合至該多工器的輸出及至該檢測器, 以提供一既有指令的一拷貝及實質同時至該檢測器,^ 時該命中/誤失邏輯告訴該檢測器該推測的資料未呈P 在或未有效在該資料快取記憶體内;及 現 該檢測器經由將該拷貝經由該多工器回復至該執^枝 心以重放該既有指令。 Λ 13. 如申請專利範圍第1 2項之微處理丨另包含: 一緩衝器單元耦合在該檢測器和:該^工器間以栓鎖該 拷貝至少一時脈週期。 ::.1 以 A -- S. 14. 如申請專利範圍第1 3項之微處理;其中: 該多工器指定一低優先權至來自該指令快取記憶體的 指令’及一較高優先權至來自該檢測器的重放拷貝指 令。 15. 如申請專利範圍第1 4項之微處理機其,其中: 遠TLB /&籤卓元被棋合至該多工器,.的.一第三輸入及另 至非來自指令快取記憶體且其非重放拷貝指令的製造指 令;及 該多工器指定一最高優先權至該製造指令。 (請先閲讀背面之注意事項再填寫本頁;Ϊ 裝 二-0 丨级 經濟部中央標準局貝工消費合作社印製 -34- 本紙張尺度適用中國國家標準(CNS ) A4規格(210xm公着)
TW086116266A 1996-11-13 1997-11-03 Processor having replay architecture TW432294B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/746,547 US5966544A (en) 1996-11-13 1996-11-13 Data speculatable processor having reply architecture

Publications (1)

Publication Number Publication Date
TW432294B true TW432294B (en) 2001-05-01

Family

ID=25001320

Family Applications (1)

Application Number Title Priority Date Filing Date
TW086116266A TW432294B (en) 1996-11-13 1997-11-03 Processor having replay architecture

Country Status (9)

Country Link
US (1) US5966544A (zh)
AR (1) AR008321A1 (zh)
AU (1) AU4818597A (zh)
DE (2) DE19781995T1 (zh)
GB (1) GB2333384B (zh)
HK (1) HK1041531B (zh)
TW (1) TW432294B (zh)
WO (1) WO1998021684A2 (zh)
ZA (1) ZA979601B (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631454B1 (en) 1996-11-13 2003-10-07 Intel Corporation Processor and data cache with data storage unit and tag hit/miss logic operated at a first and second clock frequencies
US6735688B1 (en) * 1996-11-13 2004-05-11 Intel Corporation Processor having replay architecture with fast and slow replay paths
US6163838A (en) * 1996-11-13 2000-12-19 Intel Corporation Computer processor with a replay system
US6256745B1 (en) 1998-06-05 2001-07-03 Intel Corporation Processor having execution core sections operating at different clock rates
US6212626B1 (en) * 1996-11-13 2001-04-03 Intel Corporation Computer processor having a checker
US6385715B1 (en) * 1996-11-13 2002-05-07 Intel Corporation Multi-threading for a processor utilizing a replay queue
US7200737B1 (en) 1996-11-13 2007-04-03 Intel Corporation Processor with a replay system that includes a replay queue for improved throughput
US6665792B1 (en) * 1996-11-13 2003-12-16 Intel Corporation Interface to a memory system for a processor having a replay system
US6772324B2 (en) 1997-12-17 2004-08-03 Intel Corporation Processor having multiple program counters and trace buffers outside an execution pipeline
US6625756B1 (en) * 1997-12-19 2003-09-23 Intel Corporation Replay mechanism for soft error recovery
US6205542B1 (en) * 1997-12-24 2001-03-20 Intel Corporation Processor pipeline including replay
US6094717A (en) * 1998-07-31 2000-07-25 Intel Corp. Computer processor with a replay system having a plurality of checkers
US6304955B1 (en) * 1998-12-30 2001-10-16 Intel Corporation Method and apparatus for performing latency based hazard detection
US20010032307A1 (en) * 1998-12-30 2001-10-18 Joseph Rohlman Micro-instruction queue for a microprocessor instruction pipeline
JP2000330785A (ja) * 1999-05-18 2000-11-30 Sharp Corp 実時間プロセッサおよび命令実行方法
SE9904685D0 (sv) * 1999-12-17 1999-12-17 Switchcore Ab A programmable packet decoder
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6629271B1 (en) * 1999-12-28 2003-09-30 Intel Corporation Technique for synchronizing faults in a processor having a replay system
JP2001209535A (ja) * 2000-01-27 2001-08-03 Toshiba Corp プロセッサの命令スケジューリング装置
DE10085438B4 (de) * 2000-02-14 2006-01-05 Intel Corporation, Santa Clara Prozessor mit Wiederholarchitektur mit schnellen und langsamen Wiederholpfaden
US6880069B1 (en) * 2000-06-30 2005-04-12 Intel Corporation Replay instruction morphing
US6981129B1 (en) * 2000-11-02 2005-12-27 Intel Corporation Breaking replay dependency loops in a processor using a rescheduled replay queue
US6877086B1 (en) * 2000-11-02 2005-04-05 Intel Corporation Method and apparatus for rescheduling multiple micro-operations in a processor using a replay queue and a counter
SE0004913D0 (sv) * 2000-12-29 2000-12-29 Ericsson Telefon Ab L M Processor
SE0102564D0 (sv) 2001-07-19 2001-07-19 Ericsson Telefon Ab L M Arrangement and method in computor system
US6976152B2 (en) * 2001-09-24 2005-12-13 Broadcom Corporation Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard
US7203817B2 (en) * 2001-09-24 2007-04-10 Broadcom Corporation Power consumption reduction in a pipeline by stalling instruction issue on a load miss
US7114059B2 (en) * 2001-11-05 2006-09-26 Intel Corporation System and method to bypass execution of instructions involving unreliable data during speculative execution
US6952764B2 (en) * 2001-12-31 2005-10-04 Intel Corporation Stopping replay tornadoes
US6925550B2 (en) * 2002-01-02 2005-08-02 Intel Corporation Speculative scheduling of instructions with source operand validity bit and rescheduling upon carried over destination operand invalid bit detection
US7069424B2 (en) * 2002-01-02 2006-06-27 Intel Corporation Placing front instruction in replay loop to front to place side instruction into execution stream upon determination of criticality
US6799257B2 (en) 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US7120780B2 (en) * 2002-03-04 2006-10-10 International Business Machines Corporation Method of renaming registers in register file and microprocessor thereof
US20040078558A1 (en) * 2002-03-25 2004-04-22 Sprangle Eric A. Method and apparatus to process instructions in a processor
US7278136B2 (en) * 2002-07-09 2007-10-02 University Of Massachusetts Reducing processor energy consumption using compile-time information
US7493607B2 (en) 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US6934865B2 (en) * 2002-07-09 2005-08-23 University Of Massachusetts Controlling a processor resource based on a compile-time prediction of number of instructions-per-cycle that will be executed across plural cycles by the processor
US6950925B1 (en) 2002-08-28 2005-09-27 Advanced Micro Devices, Inc. Scheduler for use in a microprocessor that supports data-speculative execution
US20040111594A1 (en) * 2002-12-05 2004-06-10 International Business Machines Corporation Multithreading recycle and dispatch mechanism
US6986010B2 (en) * 2002-12-13 2006-01-10 Intel Corporation Cache lock mechanism with speculative allocation
US7103880B1 (en) 2003-04-30 2006-09-05 Hewlett-Packard Development Company, L.P. Floating-point data speculation across a procedure call using an advanced load address table
US7325228B1 (en) 2003-04-30 2008-01-29 Hewlett-Packard Development Company, L.P. Data speculation across a procedure call using an advanced load address table
US7266673B2 (en) * 2003-05-02 2007-09-04 Advanced Micro Devices, Inc. Speculation pointers to identify data-speculative operations in microprocessor
US7363470B2 (en) * 2003-05-02 2008-04-22 Advanced Micro Devices, Inc. System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor
US7165167B2 (en) * 2003-06-10 2007-01-16 Advanced Micro Devices, Inc. Load store unit with replay mechanism
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
JP2007026392A (ja) * 2005-07-21 2007-02-01 Toshiba Corp マイクロプロセッサ
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US7865770B2 (en) * 2008-01-10 2011-01-04 Advanced Micro Devices, Inc. Processor including efficient signature generation for logic error protection
US20090183035A1 (en) * 2008-01-10 2009-07-16 Butler Michael G Processor including hybrid redundancy for logic error protection
US11106466B2 (en) 2018-06-18 2021-08-31 International Business Machines Corporation Decoupling of conditional branches
US12373274B2 (en) 2023-03-20 2025-07-29 Google Llc Selective re-execution of instruction streams for reliability

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153848A (en) * 1988-06-17 1992-10-06 Bipolar Integrated Technology, Inc. Floating point processor with internal free-running clock
US5134693A (en) * 1989-01-18 1992-07-28 Intel Corporation System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5309561A (en) * 1990-09-28 1994-05-03 Tandem Computers Incorporated Synchronous processor unit with interconnected, separately clocked processor sections which are automatically synchronized for data transfer operations

Also Published As

Publication number Publication date
WO1998021684A2 (en) 1998-05-22
AR008321A1 (es) 1999-12-29
HK1023192A1 (zh) 2000-09-01
DE19781995T1 (de) 1999-08-12
GB2333384A (en) 1999-07-21
HK1041531B (zh) 2003-02-28
GB9902049D0 (en) 1999-03-17
US5966544A (en) 1999-10-12
WO1998021684A3 (en) 2001-07-12
AU4818597A (en) 1998-06-03
GB2333384B (en) 2001-12-05
ZA979601B (en) 1999-04-28
DE19781995C2 (de) 2002-01-03
HK1041531A1 (zh) 2002-07-12

Similar Documents

Publication Publication Date Title
TW432294B (en) Processor having replay architecture
US5828868A (en) Processor having execution core sections operating at different clock rates
USRE45487E1 (en) Processor having execution core sections operating at different clock rates
JP6113705B2 (ja) ロック命令を実行するためのプロセッサ及び装置
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
JP5719350B2 (ja) Smtマシーンに比較と転送命令を使用する信頼性の高い実行
US6604060B1 (en) Method and apparatus for determining CC-NUMA intra-processor delays
WO1998021684A9 (en) Processor having replay architecture
US6772368B2 (en) Multiprocessor with pair-wise high reliability mode, and method therefore
TWI439930B (zh) 具選擇性啟動早期引退功能之失序執行微處理器
US8285937B2 (en) Fused store exclusive/memory barrier operation
US6457119B1 (en) Processor instruction pipeline with error detection scheme
US7849293B2 (en) Method and structure for low latency load-tagged pointer instruction for computer microarchitechture
EP0372751B1 (en) Pipelined data-processing apparatus
KR100472346B1 (ko) 명령어 리플레이를 포함하는 프로세서 파이프라인
JP2003519833A (ja) 依存性連鎖の発行および再発行が可能なスケジューラ
CN101416163A (zh) 通过选择重新执行来检测瞬态错误
US6631454B1 (en) Processor and data cache with data storage unit and tag hit/miss logic operated at a first and second clock frequencies
US12530295B2 (en) Decoupling atomicity from operation size
US6230263B1 (en) Data processing system processor delay instruction
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
US8347066B2 (en) Replay instruction morphing
KR100508320B1 (ko) 고속 및 저속 리플레이 경로를 갖는 리플레이 구조를구비한 프로세서
Caironi et al. Context reorder buffer: an architectural support for real-time processing on RISC architectures
JPH09244895A (ja) パニック・トラップ・システム

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees