TW444180B - Computer processor with a replay system - Google Patents

Computer processor with a replay system Download PDF

Info

Publication number
TW444180B
TW444180B TW088108967A TW88108967A TW444180B TW 444180 B TW444180 B TW 444180B TW 088108967 A TW088108967 A TW 088108967A TW 88108967 A TW88108967 A TW 88108967A TW 444180 B TW444180 B TW 444180B
Authority
TW
Taiwan
Prior art keywords
instruction
processor
replay
memory
multiplexer
Prior art date
Application number
TW088108967A
Other languages
English (en)
Inventor
Amit A Merchant
David J Sager
Darrell D Boggs
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 TW444180B publication Critical patent/TW444180B/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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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, 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; 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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, 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; 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, 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)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Description

經濟部智慧財產局員工消費合作社印製 ^ 1 8 〇 a? Γ________Β7__ 五、發明説明() 1 jg關專利申諸文件的對照參者 本專利申请書乃係一九九六年十一月十三g所提出之第 〇8/746, 54々號專利申請書之部份内容續篇。 發明的技術4g媸 本發明係與一電腦處理器有闞。特別是與一裝有一再播 放系統可再播放指令的電腦處理器有關。 螢明之背景說明 大多數電腦處理器的主要功能為執行電腦指令。而且多 數處理器係按所收到的既定次序執行各種指令。但是,最 近開發的若干電腦處理器,例如:英特爾公司(1_ c 生產的Pentiun^n型處理器則是屬於「不按次序」式的處理 器。一部不按次序式的處理器可以依照各個資料及執行單 元所需要的可利用指令以任何次序執行各該指令。因此, 以=按次序式操作原理設計的處理器,可以有效地利用按 既定次序操作方式設計的處理器中可能閒置不用的一些執 行單元來執行指令。 使用上述任何一種處理器執行從屬指令時,均會發生延 遲現象。如欲正確執行—從屬指令,必須利用已經正確執 行的指令指供-嚷數值。兹以下列指令組之執行為例說明 如次: (1) 載入冗憶體-1 —暫存器_χ ; (2) 增加步驟1暫存器_χ暫存器_γ —暫存器_ζ (/)增加步驟2暫存器_γ暫存器·暫存器_w 第一個指令是將記憶體-1内容載入暫存器-X。第二個指 ---------餐------ΐτ------0 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 80 A7 _ B7 五、發明說明(2 ) 令是將暫存器-X的内容加載至暫存器·γ,並將其結果内容 存入暫存器Ζ中。第三個指令是暫存器γ内容加載至暫存器 Ζ内,並將其結果内容載入暫存器w内。在本組指令中,指 令2和3均爲從屬於指令!之從屬指令(且指令3也是指令2的 從屬指令)。換言之’如果在執行指令2和3之前暫存器 未能被載入指令1的正確數値,則指令2和3即可能產生不 正確結果。從屬指令在已知的處理器中會導致延遲的原因 乃係一般已知之處理器通常是在確知某一從屬指令所從屬 之指令確能產生正確結果之前不會將該從屬指令排入操作 程序之内。 現在請先參閲各附圖,各附圖中之相同電路構成部份均 以相同的參考編號標示之。圖1所示乃係一處理器操作管路 和各階段操作排程時間之方塊圖。在圖1中,有一排程器 負責將各指令排定處理程序。各指令均通過—執行單元 管路進行,該管路包括12,14,16,18,20,22及24各 管路進級。在每一管路進級過程中分別執行一種處理步碟 。例如,在管路進級1 2處,是將指令分配出去。在進級j 4 處’是將該指令作解碼處理並讀出其原始暫存器。在進級 1 6處,是產生一記憶體地址(如係一記憶體指令時),或執 行一次算術邏輯單元(ALU)運算(如係一算術或邏輯指令時) 。在進級1 8處,是讀出高速緩衝記憶體資料,並執行—次 翻譯旁視(lookaside)緩衝區(” TLB")檢查。在進級2〇處理, 是閲讀其高速緩衝記憶體標簽。在進階階22處,產生一代 表標籤閱讀結果之尋到或未尋到信號。該尋到或未尋到作 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------------^--------訂---------線 (請先閱讀背面之江意事項再填寫本頁) 經濟部智慧財產局員工消費合作杜印製 444ί 8〇 Α7 --------Β7____ 五、發明說明(3 ) 號係表示是否已在該高速緩衝記憶體中發現所需要的資料( 亦即:表示在進級1 8處從該高速緩衝記憶體中讀出的資料 是否爲正確的資料)。如圖】所示,通常係在進級i 8處讀出 資料後,始會產生該項尋到/未尋到信號,因爲,產生尋到 /未尋到信號之前必須先經過上述之TLB檢査作業及標藏閲 讀作業兩項附加程序。 圖1中之時序圖解係説明兩個指令:亦即一記憶體載入指 令("L d ’’)和一加載指令("Add"),在處理管路中之進行流程 。該记憶體載入指令係一兩個(雙)週期指令,而該加載指 令則係一單週期指令,且該加載指令乃係從屬於該載入指 令。在時序=0時(亦即:第一個時計週期),Ld被排入作業 程序並被分配在執行作業流程中(管路進級】2)。在時間=1 ’時間- 2及時間=3時L d分別進行至管路進級1 4,1 6及1 8 各處。在時間=4時,Ld已進行至進級20處。在時間=5時 ,L d係在進級2 2處,此時並產生尋到或未尋到信號。排程 器1 0接收此一信號。最後在時間=6時,如果所接收的信號 爲一尋到信號,乃表示該資料爲正確資料,此時,排程器 1 〇乃將加載指令排入至進級〗2處,而在同時該L d指令繼續 進行至進級2 4處,此處係一附加之管路進級。當該加載指 令到達進級1 6處時’即可執行加載作業。但是,如果在時 間-6時接收到的信號是一未尋到信號時,排程器〗〇就會在 一無特定數目的時序週期中處於等待狀態,一直到進入下 一個高速緩衝記憶體存取作業過程中收到資料時爲止。 如圖I中之時序圖解所示,因爲該加載(Add)指令爲 -6 - 本纸張义度適用中國國家標準(CNS)A4 (21〇 X 297 ) I i I I trf n n n n、^- (請先閱讀背面之注意事項再填寫本頁) 訂- 丨線. 經濟部智慧財產局員工消費合作社印製 4 44 180 A7 _ B7 五、發明説明() 一 4 令的從屬指令,故最早須在到達時間=6時才會被排入執行 作業程序中。任:指令的等待時間,其定義係指自其輸入 運算元必須已備妥可以執行該指令之時間起算,一直到其 執行結果可供下-個指令使用時為止的期間。因此,圖】範 例中該項Ld的等待時間為六。又,如圖旧示,排程㈣ 在未收到該尋到/未尋到信號根本無法將加載()指示排 入執行程序。所以,即使利用高速緩衝記憶技術降低自_ 高速緩衝記憶體閱讀資料的時間,該Ld指令的等待時間仍 保持為六,因為該(Ld)指令的執行與否須視所收到的尋蝌 未尋到信號究竟如何而定。 降低在-處理器中的指令之等待時間,有時需要提高處 理作業速度的操作因素。例如:假設有一個程式中的-部 2含有’系列扣7,由I, ’ ι2 ’. .‘In。假定指令需 要1„的結果作為其輸入的—部份,所有的到。這 -部份的程式也可包含任何其他指令。則該程式就不能在 低於T = L1+L2 + L3....Ln的時間内被執行,其中仏就是 指令U的等待時間(亦即由各指令的等待時間)。事實 上,即使該處理器能夠平行執行為數眾多的指令,該項時 間值T仍是執行本程式的最低等待時間。因此,為加速執. 行本程式的時間,終究必須要縮短各相關指令的等待時間 〇 =前述的分析,就需要—種比已知(傳統)的處理器更 肥快速排疋各指令執行程序(特別是從屬指令)之電腦處理 器,以求達到縮短各指令等待時間的目的。 ----------¢------1T------^ (請先閲讀背面之注意事項再填寫本頁) 444180 Α7 ______ Β7 五、發明說明(5 ) 發明之概述 本發明的一個具體實例乃係一電腦處理器,包括一具有 一第一輸入端’一第二輸入端與一輸出端之多工器,以及 一耦接至該多工器第一輸入端之排程器。該處理器另亦包 括一耦接至該多工器輸出端之執行單元。該處理器另亦包 括一再播放系統,其輸出端係耦接至該多工器之第二輸入 端,其輸入端係耦接至該排程器。 附圖簡要説明 圖1所示係一先前技藝設計之處理器作業管路和其作業時 序圖解之方塊圖。説明大多數已知之處理器中因從屬指令 所導致之延遲原因。 圖2所示係一依本發明設計之一具體實例之處理器作業管 路和其作業時序圖解之方塊圖。 圖3所π係一依本發明設計之一種處理器具體實例方塊圖e 圖4所示係一方塊圖,説明依本發明設計之具體實例中執 行單元之各作業進級,以及一再播放系統的平行作業進級。 圖5所不係一依本發明設計之另一具體實例方塊圖。 經濟部智慧財產局員工消費合作社印製 (請先閱讀背面之注意事項再填寫本頁) 圖6所示的方塊圖乃係依本發明一種具體實例所包含之處 理器中的一個記憶體載入單元管路與記憶體次系統,以及 該再播放系統中之各平行執行級與一 ALU單元。 發明之詳細諸.昍 本發明具體實例之—爲—處理器,按推測原則排定各指 •7 9執行%序,並包括一再播放系統。該再播放系統可將 原來分配至-執行單元但並未被正確執行的各指令再播放 -8 - 本紙狀χ 297 公^ 經濟部智慧財產局員Η消費合作社印製 4在4 1 80 w A7 ---B7 五、發明說明(6 ) 至管路中重新執行。此外,該再播放系統仍可保留原來排 定的各指令執行順序。 圖2所示乃係依據本發明—種具體實例所設計之一具處理 器作業管路方塊圖及作業時序圖解a在圖2中,有一排程器 30 ’將各指令分別排入該處理管路各進級12,14,16, 18 ’ 20,22及24中循序執行,各該管路進級與圖1所示者 相同。圖2中之時序圖解係説明一雙週期Ld指令以及一單 週期從屬加載(A d d)指令的執行時序。排程器3 〇並不等待 載入指令(L d)檢查後的尋到/未尋到信號,即先行排定該加 載(Add)指令的執行程序。因此,該Add指令係被排定在時 間=2時執行,如此可保持—相當於兩個進級的距離,因爲該 L d指令係一雙週期指令之故也。加載(八仙)指令到達進級 1 6處時(亦即在l d指令於進級1 8處執行高速緩衝記憶體閱 讀之後一個週期時)在時間=4時被執行。 排程器以推測原則排定A d d之執行程序時,該排程器3 0 係假定該L d應會被正確執行(亦即:在進級〗8處進行資料 檢查程序時將會讀出正確資料)。比較圖2和圖1兩圖,即可 明瞭推測原則排定加載(Add)執行程序此一方法的優點。 特別是,在圖1中,因爲該項加載(Add)指令在時間=6之 前並未被排定其執行程序,因此,該項載入(Ld)指令之等 待時間爲六。相反的,在圖2中,該Add指令係被排定在時 間=2時執行,因此,該Ld指令的等待時間只有二,或比圖 1中之等待時間少四個。再者,圖2中的設計,在時間=3至 時間=6的幾個時間槽中都可用以排入其他附加指令,而圖 -9- 本紙張又度適用中國國家標準(CNS)A4規格(210 x297公釐) ------------^--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) ΑΊ B7 44418〇 五、發明説明() 7 1中的排程器1 0則僅能在時間=6時排入一個附加指令的執 行程序。因此’本發明採用推測排程法的優點乃係既可減 少指令的延遲等待時間’又可比先前技術設計之排程器排 入並處理更多的指令。
但是,如果發生某一指令於其依推測原則排程時假定可 正確執行’但最後卻無法正確執行的情況時,本發明必須 負責解該一問題(亦即:高速緩衝記憶體查證資料結果失敗 時)。因此,本發明乃提供一再播放系統,解決此一問題。 該再播放系統可再播放所有未正確執行的指令D 圖3所示為依據本發明設計的一種具實例之方塊圖。處理 器5 0係包括在一電腦系統9 9中,藉由一系統匯流排9 8與該 電腦系統9 9的其他組件,例如一記憶體裝置(圖中並未顯示 )相耦接。 處理器5 0包括一指令佇列器5 2。指令作列器5 2將各項指 令送入排程器30。在一具體實例中,所處理之各項指令均 為”微指令"。微指令的產生係將複雜的指令翻譯為簡單, 且容易執行的固定長度指令^ 當各項資源可供用以執行指令時,且該項指令所需要的 資料源也已備妥時,該排程器3 0即將其自指令佇列器5 2送 來的相關指令分配至處理器5 0中。排程器3 〇係耦合至一記 分板(scoreboard) 54。該記分板54可顯示處理器5〇内每一資 料源(例如:每一暫存器)的備用狀態。 在一具體實例中,該記分板54可對每一暫存器分配一個位 元’如果該位元為一 ” 1 即表示該暫存器為一備妥可使用 -10- 本紙張尺度適用中國國家標準(CNS ) A4規格(2丨0X297公釐) ----------茛------、玎------線- c請先聞讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 經濟部智慧財產局員工消費合作社印製
Aiu m A7 五、發明說明(8 之暫存器。排程器30根據該記分板54所顯示之各暫存器現 況排足各指令的執行順序。例如,假設有-,,LdX询-3" 指令(亦即:將記憶體位址"X #推 値載入至暫存器3)後面跟隨 一個"Add Reg- 3 4 Reg- 4 "指入 „ 备士 7 (耶即:將暫存器3之値加載 至暫存器4之値内,並將其存入斬 于入暫存斋4)。該Add(加載)指 令係從屬於該L d指令,因爲,产机y 口爲在執行該加載(Add)指令之 前,暫存器3必須備妥才行。拙铝哭,Λ时人 丁 徘程姦3 〇將會首先把L d指令 排程,而該指令爲-雙週期指令。然後,㈣㈣將在# 一週期上檢查_eb〇ard54,以確定Reg3是否備妥由於 Ld指令是-雙週期指令,因此,在第二個週㈣始以前, 該記分板54不會顯示Reg_3是否已備妥。在第二個週期時 ,排程器30再度檢查記分板54,即可看到以§3現已備妥 的指示,始將該加載(Add)指令排定在該週期上。因此,藉 由使用該記分板54,排程器30乃可將各項指令以適當間隔 設定在正確次序上逐個執行。 因爲每逢該記分板54顯示有資料源已備妥時,該排程器 30即可以推測方式排定指令的執行程序。但,該排程器3〇 在排疋一需要該資料源之指令之前並不能確定該資料源是 否備妥可用。例如:一載入指令可能是一雙週期指令^此 即意指,如果在記憶體第一層次中已發現正確資料(例如一 第一層次高速缓衝記憶體檢查中已尋到資料)時,就表示正 確資料已在兩個週期(不包括資料分配及解碼處理時間)内 被載入一暫存器中,此時,scoreb〇ard54即可顯示該source於 二個週期後已備妥可用。不過,如果在記憶體第一層次中 -11 - 本紙張又度通用中國國家標準(CNS)A4規格(210 X洲7公釐) ----- -------· I 1 I I I i I 訂- -- - - ---- {請先閱讀背面之·;1意事項再填寫本頁) 18〇
經濟部智慧財產局員工消費合作杜印製 五、發明說明( 未發現正確資料(例如:一高速緩衝記憶體檢査中並未尋到 正確資料)時,則表示該資料源在兩個週期以後實際上並未 備妥。但,排程器3 〇仍會根據該記分板5 4的顯示以推測方 式排定該指令之執行程序。 排程器30將各項指令輸出至一再播放多工器56處。該多 工器5 6的輸出係耦合至一執行單元5 8。執行單元5 8執行其 收到的各項指令,該執行單元5 8可能是一算術邏輯單元 (ALU),也可能是一浮點ALU,或一記憶體單元。執行單元 58耦合至各暫存器6〇 ,亦即處理器5〇之各暫存器。執行單 凡58於執行各指令時即可將資料載入並儲存在各暫存器⑽ 内。 處理器5 0另亦包括一再播放系統7 〇。該再播放系統7 〇係 用以將各項經過排程器3 〇排程後未能正確執行的指令再播 放一久。與執行單元58 一樣,再播放系統7〇也是接收再播 放多工器56輸出的各項指令。該再播放系統7〇包括兩個進 級處理邵份。其中一個進級處理部份包括多個進級單元8 〇 _ 83。而另一進級處理部份則包括進級器84和85。因此,各 項指令經由再播放系統7 〇之平行進級處理後即可按進級排 疋的次序排入執行單元58内執行之。進級器80-85的級數 則須視每一執行波道内所需要之進級處理量而各異。 再播放系統70另亦包括一檢查器72 a檢查器72接收來自 進級8 3之各指令並認定是否每一指令均已被正確執行^如 指令已被正確執行,檢查器72就會宣佈一"再播放安全”指 令並將該指令送往一撤消單元62,由其撤消該項指令。撤 -12- 本紙張义度適用中國國家標準(CNSM4規格(210 X 297公楚) _ I ' I^--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) S〇 A7 B7 五、發明說明( 消該等指令對處理器50有利,因爲,該等指令不再佔據處 理器資源,並可使處理器開始其他指令。如有任何指令未 被正確處理,檢查器72就會將該指令經由84及85各進級送 往再播放多工器56再播放或再執行該項指令。 在發送應再播放之指令至再播放多工器56的同時,檢查 器72也將一"停止排程器"信號75至排程器3〇。"停止排程 器彳5號7 5至少應在該應再播放之指令到達再播放多工器 5 6之則一個時鐘週期提前送出。在一具體實例中,該"停 止排程器_’信號75通知排程器3〇不要將任一指令排入下一 個時鐘週期内。在其他具體實例中,該「停止排程器」信 號7 5通知排程器3 〇不要將任一指令排入下一時鐘週期後面 的一個時鐘週期内’或其後續之時鐘週期内,依此類推, 其停止作業時間的長短須視該再播放指令檢查器72發送該 停止排程器"信號7 5所需要之提前時間的長短而定。如此 即可對再播放多工器56所輸出的再播放後指令提供一開放 的時間槽’並可避免在同一個時鐘週期内會有兩個指令被 送入該再播放多工器56内。 不能正確執行某一指令的原因很多。最普通的原因包括 —源料源依賴性(source dependency)或一外部再播放情況。 當一指令資料源必須依附於另一指令的執行結時,就會發 生一種資料源依賴性情況。外部再播放情況的事例則包括 一高速緩衝記憶體檢查失敗,資料之不正確傳送(例如:自 一儲存緩衝器至一負載),潛在之記憶體依賴性,寫回衝突 ’不明資料/地址,以及序列處理式指令等情況。 -13- 本紙張&度過用中國國家標箪(CNS)A4規格(210x297公釐) (請先閲讀背面之注意事項再填寫本頁)
-----I — I 訂 — — — — — —--I I 經濟部智慧財產局員工消費合作杜印製 ¾ 44 1 8〇 A7 B7 經濟部智慧財產局員工消費合作杜印製 波 元 憶 五、發明說明(n) 檢查器7 2可根據一外部信號(例如一再播放信號7 8)來決 定一指令應否再播放一次。執行單元5 8將再播放信號7 8送 至檢查器72。再播放信號78可顯示一指令是否已被正確執 行。再播放信號7 8係經過進級處理的信號,因此,該信號 到達檢查器72之點與有問題之指令到達檢查器72之點相同 。例如:如果該問題指令係一 L d,再播放信號7 8係一尋到 或未尋到信號。因爲該L d指令在再播放系統7 0中已接受進 級處理,因此’其到達檢查器72的時間與執行單元5 8產生 該L d指令之尋到或未尋到信號之時間相同。從而,檢查器 72乃能根據所接收的尋到/未尋到信號來決定是否應再播放 該Ld指令。 檢查器72另亦_接至另一 f己分板74,此一記分板74的功 能與前述之記分板54相同,必是顯示那些暫存器存有有效 資料。利用該1己分板7 4,檢查器7 2乃能決定認明未被正確 執行的指令,因爲該資料在所需要的暫存器中爲無效資料 。例如:如果一Ld資料未被尋獲,且檢查器72收到之下一 個指令係一從屬於該Ld指令的加載(Add)指令時,該檢查 器72即可利用該記分板74的_示來確認該加載指令並未被 正確執#,因冑$資料在琢加載指令需要的暫存器中爲無 效資料。 在-具體實例中,處理器50係—多波道處理器。每一 道各含有圖3所示之一切組件。但,每一波道中之執行單 58則各不相同。例如:某—波道中之執行單元”爲一記惊 單疋’但另-波道中的執行單元则是—算術單元。且每 -14 - 本紙張(度剌+關家鮮(CNS)A4祕⑵ i 1 i i nv . Λ ^^4 n tj tt - - -- I ,I ^^1 ^^1 ^^1 ^^1 11 B^i I (請先閲讀背面之注意事項再填寫本頁) ί': 444 1 8〇 Λ7 ______ Β7_ 五、發明說明(12) 一波道各自有一自用再播放系統70。 在一具體實例中,該處理器5 0爲一多線路處理器。在該 具體實例中,檢查器72會於再播放若干線路的指令時導致 若干其他線路失敗。因此,檢查器72可使執行單元58被很 多條線路更有效地運用。 圖4之方塊圖係説明根據本發明設計的一種具體實例中的 執行單元58的各執行進級以及其再播放系統70的各平行進 級。例如:在執行單元5 8中的解碼級1 4處的指令將會以平 行方式出現在再播放系統70内的進級Α處(亦即:進級80) 。此外’在執行單元58内尋到/未尋到進級22處的一個指 令會平行地出現在再播放系統70的檢查器72處。爲簡化起 見’假定圖4内的再播放系統中並不包括圖3所示再播放系 統70之進級E與F(亦即:進級84及85)。因此,由檢查器 72再播放的一些指令於下一個時鐘週期期間會在再播放多 工器5 6處被分配至線路上而不須經過進級排程處理。 圖4中另有一下列一组指令按下列從屬關係執行時的時序 圖解: ---------------------訂---------線 < (請先間讀背面之江意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製
4441 8 0 Λ7 B? 經濟部智慧財產局員工消費合作社印製 五、發明說明(13) 程式次序 — 從屬關係 Ldl Addl 從屬於Ldl Add2 從屬於Addl Add3 從屬於Add2 Add4 從屬於Add3 Ld2 Add5 從屬於Add4 Add6 從屬於Adti5 各載入指令(「Ld」)均爲雙週期指令,而各加載(「Add」 則均爲單週期指令。如上表所示,細從屬於Ldl指令, Add2則係從屬於Addl指令,其餘類推。 參閱圖4中之時序圖,Ldl是在時間=〇時被分配至執行電 路中。在時間=1時,Ldl移動至執行單元58之解碼級14, 以及再播放系統7 0之進級A處。在時問=2時,Addl被排程 ,因爲Ldl是一雙週期指令。同樣地,於時間=3及4時, Add2和Add3分別被排程。於時間=5時,L d】係在尋到/未尋 到進級22以及再播放系統70之檢査器72處。假定在時間 =5時收到一未尋到信號。檢查器72也會受到該未尋到信號 (亦即圖3中之再播放信號78)。檢查器72乃根據該未尋到 L號確疋該Ldl指令未被正確執行,並於時間=5時再播放 於Ldl指令。於時間=5時,檢查器72也同時發送一停止排 -16- 本紙張尺度過用中國國家標準(CNS)A4規格(210 X 297公f ) ---------------------訂---------線 — (靖先閱讀背面之;,1音^事項再填寫本頁> 經濟即智慧財產局員工消費合作社印製 w 444180 五、發明說明(14) 程:言號I5至排程器30,通知排程器30在下-個時序週期( 亦即:時間=6)時勿將任—指令排入執行程序。 在時間=6時,Ldl指令回到發送級12處。請注意,因爲 排程器3G於時間=6時並未將任_指令排人執行程序,因此 ,Ldl乃能佔據該空間時間槽。於時間=7時,賴$指令被 排程,Addl到達檢查器72處。檢查器72利用記分板以的 資訊確認該Addl指令爲Ldl的從屬指令,因此八邮也未被 正確執行。由於Ldl未被正確執行,該記分板74乃顯示該 Addl所需要的暫存器中之資料爲無效資料。因此,檢查器 72於時間=7時再播放Addl指令,同時並將另一停止排程信 號75送往排程器30。同樣地,檢查器72乃於時間=8時再 播放琢Add2指令,並分別於時間=9時再播放八刖3,於時間 =1 〇時再播放Add4。 在時間=11時,Ldl再次到達檢查器72處。此時,檢查 器7 2收到一尋到信號’顯示l d 1指令已被正確執行。因此 ,於時間=12時,因爲檢查器72於時間=11時並未再播放 任何指令,排程器30乃可將Ld2排入執行程序(同時可在管 路中載入多項指令)。同時,L d 1指令已移動至撤消器6 2。 此外,於時間=12時,因爲Add5指令從屬於Ldl指令,檢 查斋72遂於此時確認該Add5指令未被正確執行。因此,檢 查器72乃於時間=12時再播放Add5指令。 在時間=1 3時,A dd 5回到分配點1 2處,而Add丨則是在檢 查器72處。此時,因爲,記分板74顯示該暫存器中含有有 效資料,檢查器72因而可確認Addl指令已被正確執行。在 -17- 本紙張尺度適闬中國國家標準(CNS)A4規烙(210 X 297公釐) ^----I---訂·--------線- (請先閲讀背面之注意事項再填寫本頁) 444 1 80 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明説明() 15 時間=Μ時,Add6被分配到管路上,而Addl則退出執行管 路。在時間=丨5至時間=20的時段裡,其餘指令可在管路 内被正確執行並在執行完畢後退出管路。 如圖4所示,排定好的各項指令執行次序隨時都由再播放 系統70加以保存。例如:Addl,八他及Add3都時在㈤之 後執行,且Add 1經常是在l d 1以後兩個週期才出現。再者 ,排程器3 0在停止排定指令執行程序之操作時,再播放系 統70即可藉由停止排程信號75將需要再播放的各項指令排 入空間的時間槽内。 圖5所示之方塊圖係一依本發明原理所設計之另—處理器 1 〇 〇之具體實例。圖5所示具體實例中;圖3中之執行單元 為一記憶體載入單元。並繪出該單元中每一進級。此外, 在圖5中也有該記憶體載入單元所需要的—種記憶體分系統 之若干组件。 ' 在圖5中,當排程器3 〇將一記憶體載入指令排入或分配 至執行管路中時,再播放多工器56可將該指令輸出後平行 分送至上述圮憶體載入單元和再播放系統7 〇處。在該記憶 體載入單元中,該指令先被解碼,並於一解碼單元11〇中 閱讀各相關資料源暫存器。位置產生單元112可產生—記' 憶體位置信號。該位置信號被送至一 TLB單元114,由檢 查該TLB,並產生一實體「標籤」位置。前述產出之位置 h號也被送至L 0高速緩衝記憶體1 2 8處。該L 0高速緩衝纪 憶體128是處理器丨00之第—層次高速緩衝記憶體,因此可 提供最快速的存取操作。在一具體實例中,該1^〇高速緩衝 _____-18- 本紙張尺度適用中國國冬標準(CNS ) A4規格(210x297公釐) (請先閱讀背面之注意事項再填寫本I)
II —^ϋ —.1 I 裝- 經濟部智慧財產局員工消費合作社印製 444180 A7 ________B7 五、發明説明() 16 記憶體128與處理器1〇〇位於同一個晶粒上。根據前述產生 的位置資料從LO高速緩衝記憶體128内取出之資料被送至 該載入指令中所指定之暫存器組60内之相關暫存器。 由TLB單元1 14產生之實體位置資料被送至「標籤」記 憶體116内。&「標籤」記憶體116内讀出之高速緩衝記憶 體「標籤」被送至「尋到/未尋到」邏輯單元118處,用以 確認該L0高速緩衝記憶體128之檢查結果究為「尋到」抑 或為「未尋到」信號。該項尋到或未尋到確認結果被送至 線路78上之檢查器72處,做為該檢查器72之再播放信號。 此外,如果L 0高速缓衝記憶體1 2 8之確認結果為「未尋到 」信號,該尋到/未尋到邏輯單元118應確認高速緩衝記 憶體1 2 4搜尋該實體位置資料之結果究為尋到或未尋到。 該L1向速緩衝記憶體124乃是處理器1〇〇之第二層次高速 緩衝記憶體’通常比前述L 0高速緩衝記憶體丨2 8所需要的 存取時長4至1 6倍。在一具體實例中’ l 1高速緩衝記憶體 1 2 4係與處理器1 〇 〇設於同一顆晶粒上。資料由七1高速缓 衝記憶體1 2 4中被取出後經由一再填充路徑被送至一再填 充緩衝器126 ’然後再被儲存入LO高速緩衝記憶體128内 〇 如果L 1高速緩衝記憶體1 2 4的檢查結果為「未尋到」, 即由一要求緩衝器向下一層次的記憶體L 2高速緩衝記憶體 122要求提供資料。L2高速緩衝記憶體122是位於處理器 1 0 0的外面,需要進入一外部匯流排。倘依此法向L 2高速 緩衝記憶體1 22要求的資料也是一未尋到信號,即可從其 -19- 本紙張尺度適用中國國家標準(CNS > A4規格(210X297公釐} ----------黎------订------0 {請先閲讀背面之注意事項再填寫本頁) 444180 經濟部智慧財產局員工消費合作社印製 A? B7 五、發明說明(17) 他外部記憶體124中擷取資料,該記憶體包括主記憶體, 磁碟機,以及在處理器1〇〇外面的一切其他記憶體。從L] 高速緩衝記憶體1 22或其他外部記憶體丨24中存取資料所需 要的時間通常比從L 1高速緩衝記憶體中存取資料的時間長 4至16倍。從L2高速緩衝記憶體122或其他外部記憶體124 中顧取的資料經由一圖5中未顯示的再填充路徑後被再填充 於L 1鬲速緩衝記憶體和l 0高速緩衝記憶體丨2 8内。 在處理器1 0 0的一個具體實例中,8 〇至8 5各進級係藉由 再播放系統7 0對各指令實施進級處理,如此即可對—記憶 體載入指令做最佳之排程處理。尤其是在本具體實例中, 大多數(約達90%)記憶體載入指令都會收到l〇高速緩衝記 憶體輸出的「尋到」信號,因此就無須再播放該記憶體載 入指令°就收到L 0高速緩衝記憶體輸出「未尋到」信號之 I己憶體載入指令而言,大多數此等指令(大約爲1 〇 %剩餘指 令中之70%)都會收到L1高速緩衝記憶體124所輸出的一個 「尋到」信號。因此,再播放系統7 0可對一 L 0高速緩衝記 憶體1 2 8之「未尋到」信號和一 L 1高速緩衝記憶體1 24之 「尋到」信號之處理最有助益。 此一最佳化處理效果可參閱圖6加以説明。圖6所示爲記 憶體載入單元管路及處理器1 00之記憶體分系統,以及再 播放系統7 0各平行進級和·一 A L U单元之方塊圖。例如,有 一記憶體載入指令在上述記憶體載入管路之位置產生級 112處,也同時以平行方式出現在再播放系統70的進級B( 亦即進級佇列單元8 1 )處。除圖4所示之各個管路進級外, -20- 本紙張尺度適用令國國家標準(CNS)A4規格(210x 297公釐) --------------------訂·--------線 1 ' (請先間讀背面之注意事項再填寫本頁) A7 444180 ___B7______ 五、發明說明(18) 圖6所示之記憶體載入單元管路亦包括[1高速緩衝記憶體 要求級1 2 0,L Ϊ高速緩衝記憶體閱讀級丨2 4,[ 1尋到/未尋 到顯示級1 1 8,L1回路級1 26(亦即:該資料由高速緩衝 1己憶體1 2 4返回至再塡充緩衝器丨2 6 ),以及l 〇高速缓衝記 隐to再填充器128爭各級電路。圖6中該管路内之各指示數 字相當於圖5中執行進級功能之各組件a 圖6中另有一時序圖解,説明一雙週期載入指令和 一後隨之從屬加載指令(Add)在一 L0高速緩衝記憶體1 28 輸出一「未尋到」信號以及一 L 1高速緩衝記憶體輸出一「 尋到」信號的共同情況下被執行的情形。於時間=〇時,排 程器3 0將L d分配至管路上。於時間=1時,l d到達記憶體 載入單元之解碼器丨1 〇處,同時亦到達再播放系統7 〇的進 級A處(亦即進級佇列單元§ 〇 ) ^於時間=2時,A d d指令被 分配至管路上。於時間=3及4時,Ld指令和Add指令分別 經由各自的管路前進。於時間=5時,Ld指令在檢查器72 處。因檢查器72於時間=5時接收一「未尋到」信號(因L0 高速緩衝記憶體128未尋到需要的指令),因此乃再播放該 Ld指令。 於時間=7時,Ld指令在再播放系統70的進級E處(亦即 :進級佇列單元),以及在該記憶體載入單元之要求緩衝器 120處’執行一L1高速缓衝記憶體124要求指令(因爲原來 L0高速緩衝記憶體128之搜尋結果爲「未尋到」)。於時間 =7時,Add指令被檢查器72再播放,而Ld指令係在進級 F (亦即:進級佇列8 5 )處,且記憶體分系統此時別在執行 -21 - 本紙張义度適用中國國家標準(CNS)A4規格⑵0 X 297公釐1""" (請先閱讀背面之江意事項再填艿本頁) 裝--------訂*-------•線_ 經濟部智慧財產局員工消費合作社印製 444180 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(19) 一次L1閲讀124操作。於時間=8時,Ld指令被再播放,且 該记憶體載入系統則執行—次L丨高速記憶體尋到/未尋到 之搜尋操作1 1 8。在時間=8之同時,收到一 [i高速緩衝記 憶體之「尋到」仏號。於時間=9時,被再播放之L d指令係 分別在解碼器110和進級A處出現。同時,在記憶體次系統 中也在時間=9時執行一L1返回操作126。於時間=1〇, A dd再被分配至管路上,且記憶體次系統也在執行一 L 〇再 填充操作1 2 8。於時間=1 1時,L d指令係在L 0高速緩衝記 憶體1 2 8閲讀操作中。當然,因爲在前一週期(在時間=】〇 時)中已執行L0高速緩衝記憶體128再填補操作,故此時應 可自L0高速緩衝1己憶體128中擷取出正確資料,並將其存 入暫存器内。因此,於時間=13時,檢查器72應收到一 L0 鬲速缓衝憶體1 2 8之「尋到」信號,且此時l d指應爲再播 放士全之結果°於時間=14,15及Ιό時,Ld和Add兩指令 乃依序失效。 如圖6所示,進級E和F將Ld之再分配延遲了兩個週期。 如此乃可使L0高速緩衝記憶體再填補能適時發生,並使該 L d指令執行第二回合之L 〇高速緩衝記憶閲讀操作。然後, 該L d指令經L 0高速緩衝記憶體查證時得到一「尋到」信號 ,因此’無須重覆再播放。如果再播放系統70未到達最佳 化狀況,Ld指令可能在L0高速缓衝記憶體被再填補之前先 執行一次L0高速緩衝體閱讀操作。因此,:Ld指令勢須被再 播放一次’進而延遲該Ld的正確執行,並阻止其他索 (thr ead)使用資源的機會。如此,再播放系統7 〇即可達到 -22- 本紙張又度適用中@國家標準(CNS)A4規格(210 X的7公釐) ------------^--------訂---------線 (請先閱讀背面之:x意事項再填寫本頁) 444180 A? B7 五、發明說明(20) 最佳化狀況,因此,爲了最普通的其 升带放情況,一個l 〇古 速緩衝記憶體「未尋到」信號及—I ^ k 1阿速緩衝記憶體「尋 到」信號,Ld指令就只須再播放—次。 # 如以上説明,依據本發明-種具體實例的設計,其中之 處理器包括-個可用以再播放指令的再播放系統7〇:再播 放系統70以信號指示排程器30暫勿排入任何指令,以利產 生一個可用以插入一再播放指令的時間槽^因此,原來排 定的各指令執行次序乃被暫時保存時來^此外,再播放系 統70達到最佳化狀況後,當發生—般記憶體載入指令再播 放情況時(亦即:一個L 0高速緩衝記憶體1 2 8發出一未尋到 信號,以及一個L 1高速緩衝記憶體丨2 4發出一尋到信號時) ,該指令最多只能再播放一次。 此上已利用本發明的幾個具體實例爲例對本發明加以説 明。但’讀者應了解,以上之説明已包含本發明之各種修 改或變通實行之方法,該等修改或變通方法均在本説明附 帶之申請專利範圍以内,且並不偏離本發明之精神以及其 原定範圍。 ----------I--· I I — t 1 I I ^^ 1111--- (請先閱讀背面之注意事項再填冩本頁> 經濟部智慧財產局員工消費合作社印制农 -23- 本纸張尺度遶用中國國家橾準(CNS)A4規格(210 x 297公釐)

Claims (1)

  1. 44418〇
    六、申請專利範圍 經濟部智慧財產局員工消費合作社印製 ι· 一種電腦處理器,包括: 設有一第一輸入端,一第二輸入端,和一輸出端之 多工器; 排程器轉接至該多工器之第一輸入端; 一執行單元耦接至該多工器之輸出端;及 一再播放系統,其輸出端係耦接至上述多工器之第二 輸入端,其輸入端係耦接至上述排程器。 2 -如申請專利範圍第1項之處理器,其中之再播放系統能 夠藉由發送一停止排程器信號至上述排程器以及將上述 第一指令送至該多工器的方法將未被正確處理的該第— 指令再播放一次。 3. 如申請專利範圍第2項之處理器,其中之排程器於接收 該停止器信號後,至少在—個時鐘週期内不再發出第二 個指令。 4. 如申請專利範圍第3項之處理器,其中該第一指令被發 出後替代上述第二指令。 5 .如申請專利範圍第1項之處理器,該再播放系統包括: 一稱接至該多工器輸出端之第一進級部份;及 一耦接至該第一進級部份之檢查器,該檢查器有一再 播放安全輸出端以及一耦接至該多工器第二輸入端之再 播放輸出端。 6.如申請專利範圍第5項之處理器,該再播放系統另亦包 括: 一第二進級部份轉接至上述再播放輸出端和該多工器 -24 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ^^1 n n I Λ -- 1 ff -"--ΰι fl I (請先閱讀背面之注意事項再填寫本頁) 444180 A8 B8 C8 D8 8. 9 申請專利範圍 之弟一輸入端。 如申請專利範圍第5項之處理器,另亦包括: —耦接至上述再播放安全輸出端之收回單元。 如申請專利範圍第5項之處理器,該處理器包括多個暫 存器,而該再播放系統則包括一個記分板用以顯示該等 暫存器之現況。 如申請專利範圍第1項之處理器,其中之執行單元係一 記憶體載入單元。 I 〇 ·如申請專利範圍第1項之處理器,其中之檢查器可從該 執行單元處接收一再播放信號。 II ·如申請專利範圍第6項之處理器,其中之執行單元係— 記憶體載入單元,且該處理器另亦包括: 一記憶體次系統,該記憶體系統包括: 個辆接至該έ己憶體載入單元之第一層次高速緩衝記 憶體; 一個耦接至該第一層次記憶體單元之第二層次高速緩 衝記憶體; 其中該έ己憶體次系統包括一第一延遲時間,爲該第一 層次高速緩衝記憶體產生一尋到/未尋到信號,以及一 第二延遲時間,由該第二層次高速緩衝記憶體再填補該 第一層次高速緩衝記憶體;及 其中之再播放系統,可由該檢查器於—第三個延遲時 間時接收一記憶體載入指令,該第三延遲時間大約等於 上述之第一延遲時間。 25- 本紙張尺度適用中國國家標,(CNS)A4規格(210x297公犛 — I — I — — — — — — — — I ---I I I I — -----— —-- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作杜印製 444180 0g88 的 ABCS
    經濟部智慧財產局員工消費合作社印製 i2·如,請專利範園第11項之處理器,其中之再播放系統之 功旎乃係,當上述記憶體載入指令被再播放時,該執行 單元即可於一第四個延遲時間上收到該項再播放之指令 ,而且,該第四延遲時間大約等於或大於第二延遲時間。 13. 如申請專利範圍第丨項之處理器,其中之再播放系統可 再播放數個指令,因爲該系統有一系列與上述執行單元 數目相等之管路級,故可保持該等多個指令原來被排定 的次序。 14. 如申請專利範園第丨項之處理器,另包括一第一通道和 一第二通道: 該第一通道包括上述多工器,上述排程器,上述執行 單元’以及上述再播放系統;及 該第一通道包括一第二多工器,一第二排程器,一第 二執行單元’及一第二再播放系統D 1 5 .如申請專利範圍第ϊ項之處理器,其中之排程器理論上 可排定多個指令的執行順序。 16. 如申請專利範圍第i項之處理器,其中之第一指令係因 外來情況的影響而未被正確執行。 17. 如申請專利範園第!項之處理器,其中之第一指令係因 發生資料源依賴性而未被正確執行。 18. —種用以處理電腦指令的方法,包括下列各項步驟: (a) 發送一指令,該指令分別被一執行單元及一再播 放系統同時接收; (b) 判定該指令是否被正確執行;及 ^--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) •26- ΟΛ88ΛΏ ABCD 444 1 80 六、申請專利範圍 (:)如果該指令未被正確執行’重覆步驟⑷之操作。 請專利範園第U之方法,其中之步 各步驟: (b_l)在該指令被—檢查器接收前,先將該指令進級 至上述再播放系統中;及 (b-2)判定該指令是否在該檢查器中已被正確執行。 2〇‘如申請專利範園第〗9項之方法,其中之步驟(c)包括下 列各步驟: (c-1)倘該檢查器確定該指令已被正確執行,即將該 指令輸出至一收回單元;及 (c - 2 )倘孩檢查器確定該指令未被正確執行,即將該 指令輸出至一多工器並將一停止排程器信號輸出至—排 程器。 21. 如申請專利範圍第19項之方法,另包括下列各步驟: 從該執行器接收其輸出的再播放信號; 其中之步驟(b-Ι)中包括一將該指令作進級處理之步 骤,俾使該檢查器大約在同一時間上分別接收該指令以 及一再播放指令。 22. 如申請專利範圍第19項之方法,另亦包括下列各步驟: 從設有第一延遲時間之第一層次高速緩衝記憶體中操 取資料,以產生一個代表在該第一層次高速緩衝記憶體 中檢查結果之尋到或未尋到信號; 其中之步驟(b-Ι)包括一步驟可將該指令進級處理, 以使檢查器在第三延遲時間上(大約與第一延遲時間相 27. 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) I!! — — ! — — — " t衣 I — -----訂-------- (請先閱讀背面之沒意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 4 經濟部智慧財產局員工消費合作杜印製 Λ. ο 8 A8B8C8D8 六、申請專利範圍 等)收到該指令。 2 3 ‘如申請專利範園第2 2項之方法,另亦包括下列各步驟: 由該第二層次高速緩衝記憶體再填補該第一層次高速 緩衝記憶體,該第二層次高速緩衝記憶體設有一第二延 遲時間可用以進行填補該第一高速缓衝記憶體之操作; 及 對該檢查器輸出之該指令施以進級處理,俾使上述執 行單元在一延遲時間上第二次接收該指令,該第四延遲 時間大約大於或等於該第二延遲時間。 24· —電腦系統,包括: 一匯流裝置; 一個耦接至該匯流裝置之記憶體; —個耦接至該匯流裝置之處理器,該處理器包括: —個多工器’其上有一第一輸入端,一第二輸入端, 及一輸出端; 一個耦接至該多工器第一輸入端之排程器; 一個耗接至該多工器輸出端之執行單元,該執行單元 可接收來自該多工器之多個指令;及 一個再播放系統,其輸出端係耦接至該多工器之第二 輸入端’其輸入端係耦至該排程器。 2 5 .如申請專利範圍第2 4項之電腦系統,其中之再播放系統 可再播放未被正確執行的第一指令,其方法是將—停止 排程器信號送至該排程器,並將該第一指令送至上述多 工器。 -28 - 本紙張尺度過用中國國家標準(CNS)A4規格(21〇 x 297公釐 ______—------^--------訂·----— — "5^ (請先閱讀背面之注意事項再填寫本頁) 、申請專利範園 26‘如申請專利範圍第25項之電腦系統,其中之排程器響應 (請先閲讀背面之注意事項再填寫本頁) 於所收到之該停止排程器信號的指示,停止發送第二個 指令β 2 7 .如申請專利範圍第24項之電腦系統,其中之第一指令係 被送出後用以替代該第二指令。 28·如申請專利範圍第24項之電腦系統,該再播放系統包括: 一耗接至該多工器輸出端之第—進級處理部份;及 —耦接至該第一進級處理部份之檢查器’該檢查器有 —再播放安全輸出及一再播放輸出端耦接至上述多工器 之第二輸入端。 2 9 .如申請專利範圍第2 8項之電腦系統,其中之執行單元為 一記憶體載入單元,該處理器另亦包括: 一記憶體次系統,該次系統包括: 一耦接至該記憶體載入單元之第一層次高速緩衝記憶 體;及 —耦接至該第一層次高速緩衝記憶體之第二高速缓衝 記憶體; 經濟部智慧財產局員工消費合作社印製 其中之記憶體次系統設有一第一延遲時間為該等一層 次高速缓衝記憶體產生一尋到/未尋到信號,以及一第 二延遲時間用以使該第一層次高速缓衝記憶體之輸出信 號再填補至該第二層次高速緩衝記憶體内;及 其中該再播放系統之功能係使該檢查器於一第三延遲 時間(大約等於上述第一延遲時間)接收到一記憶體載入 指令。 -29- 本紙張尺度適用中國國家標準(CNS >Α4規格(210X297公釐) 1g〇 A8B8C8D8 -Ο™ 、申請專利範圍 0 ’如申请專利範圍第2 9項之電腦系統’其中之再播放系統 之功能可使該執行單元於—第四延遲時間(大約大於或 等於第—延遲時間)上接收到被再播放之該Λ憶體載入 指令。 (請先閲讀背面之注意事項再填寫本頁) 經濟部智慧財產局員Η消費合作社印製 -30. 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
TW088108967A 1998-06-30 1999-05-31 Computer processor with a replay system TW444180B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/106,857 US6163838A (en) 1996-11-13 1998-06-30 Computer processor with a replay system

Publications (1)

Publication Number Publication Date
TW444180B true TW444180B (en) 2001-07-01

Family

ID=22313636

Family Applications (1)

Application Number Title Priority Date Filing Date
TW088108967A TW444180B (en) 1998-06-30 1999-05-31 Computer processor with a replay system

Country Status (7)

Country Link
US (1) US6163838A (zh)
CN (1) CN1126028C (zh)
DE (1) DE19983330B4 (zh)
GB (1) GB2354615B (zh)
HK (1) HK1037413A1 (zh)
TW (1) TW444180B (zh)
WO (1) WO2000000886A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751779B2 (en) 2002-11-12 2014-06-10 Getac Technology Corporation Method and apparatus for integrating personal computer and electronic device functions
US8949589B2 (en) 2002-11-12 2015-02-03 Getac Technology Corp. Method and apparatus for integrating personal computer and electronic device functions

Families Citing this family (61)

* 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
US6256745B1 (en) 1998-06-05 2001-07-03 Intel Corporation Processor having execution core sections operating at different clock rates
US6385715B1 (en) 1996-11-13 2002-05-07 Intel Corporation Multi-threading for a processor utilizing a replay queue
US6665792B1 (en) * 1996-11-13 2003-12-16 Intel Corporation Interface to a memory system for a processor having a replay system
US6625756B1 (en) * 1997-12-19 2003-09-23 Intel Corporation Replay mechanism for soft error recovery
US6629271B1 (en) * 1999-12-28 2003-09-30 Intel Corporation Technique for synchronizing faults in a processor having a replay system
US6643767B1 (en) * 2000-01-27 2003-11-04 Kabushiki Kaisha Toshiba Instruction scheduling system of a processor
US6880069B1 (en) * 2000-06-30 2005-04-12 Intel Corporation Replay instruction morphing
US6880153B1 (en) * 2000-11-21 2005-04-12 Hewlett-Packard Development Company, L.P. Method and apparatus for varying the level of correctness checks executed when performing correctness checks opportunistically using spare instruction slots
US7203817B2 (en) * 2001-09-24 2007-04-10 Broadcom Corporation Power consumption reduction in a pipeline by stalling instruction issue on a load miss
US6912648B2 (en) * 2001-12-31 2005-06-28 Intel Corporation Stick and spoke replay with selectable delays
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
US6799257B2 (en) 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US20040078558A1 (en) * 2002-03-25 2004-04-22 Sprangle Eric A. Method and apparatus to process instructions in a processor
US7984268B2 (en) * 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
US6986010B2 (en) * 2002-12-13 2006-01-10 Intel Corporation Cache lock mechanism with speculative allocation
US7080209B2 (en) * 2002-12-24 2006-07-18 Intel Corporation Method and apparatus for processing a load-lock instruction using a relaxed lock protocol
US20040123078A1 (en) * 2002-12-24 2004-06-24 Hum Herbert H Method and apparatus for processing a load-lock instruction using a scoreboard mechanism
US7529913B2 (en) * 2003-12-23 2009-05-05 Intel Corporation Late allocation of registers
US20050147036A1 (en) * 2003-12-30 2005-07-07 Intel Corporation Method and apparatus for enabling an adaptive replay loop in a processor
US7502912B2 (en) * 2003-12-30 2009-03-10 Intel Corporation Method and apparatus for rescheduling operations in a processor
JP2007026392A (ja) * 2005-07-21 2007-02-01 Toshiba Corp マイクロプロセッサ
US20070043930A1 (en) * 2005-08-16 2007-02-22 Hill Stephen J Performance of a data processing apparatus
US9529594B2 (en) * 2010-11-30 2016-12-27 Oracle International Corporation Miss buffer for a multi-threaded processor
WO2013188306A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
EP2862069A4 (en) 2012-06-15 2016-12-28 Soft Machines Inc DEFINING INSTRUCTIONS TO REORDER AND OPTIMIZE LOADING AND STORAGE
EP2862062B1 (en) 2012-06-15 2024-03-06 Intel Corporation A virtual load store queue having a dynamic dispatch window with a distributed structure
KR101818967B1 (ko) 2012-06-15 2018-01-16 인텔 코포레이션 명확화 없는 비순차 load store 큐
CN104823154B (zh) 2012-06-15 2017-12-29 英特尔公司 包括虚拟加载存储队列的处理器和系统
WO2013188701A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
US9361103B2 (en) * 2012-11-02 2016-06-07 Advanced Micro Devices, Inc. Store replay policy
KR101837817B1 (ko) 2014-12-14 2018-03-12 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 비순차 프로세서에서 페이지 워크에 따라 로드 리플레이를 억제하는 메커니즘
US10146540B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd Apparatus and method to preclude load replays dependent on write combining memory space access in an out-of-order processor
KR101837816B1 (ko) 2014-12-14 2018-03-12 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 비순차 프로세서에서 i/o­의존 로드 리플레이를 불가능하게 하는 메커니즘
US10114794B2 (en) 2014-12-14 2018-10-30 Via Alliance Semiconductor Co., Ltd Programmable load replay precluding mechanism
US10175984B2 (en) 2014-12-14 2019-01-08 Via Alliance Semiconductor Co., Ltd Apparatus and method to preclude non-core cache-dependent load replays in an out-of-order processor
KR101819316B1 (ko) 2014-12-14 2018-01-16 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 비순차 프로세서에서 캐시 불가­의존 로드 리플레이를 억제하는 메커니즘
WO2016097814A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude shared ram-dependent load replays in out-of-order processor
US10127046B2 (en) 2014-12-14 2018-11-13 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude uncacheable-dependent load replays in out-of-order processor
US10083038B2 (en) 2014-12-14 2018-09-25 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on page walks in an out-of-order processor
WO2016097797A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Load replay precluding mechanism
US10114646B2 (en) 2014-12-14 2018-10-30 Via Alliance Semiconductor Co., Ltd Programmable load replay precluding mechanism
WO2016097815A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude x86 special bus cycle load replays in out-of-order processor
US10108421B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude shared ram-dependent load replays in an out-of-order processor
WO2016097811A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Mechanism to preclude load replays dependent on fuse array access in out-of-order processor
US9804845B2 (en) 2014-12-14 2017-10-31 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude X86 special bus cycle load replays in an out-of-order processor
US10088881B2 (en) 2014-12-14 2018-10-02 Via Alliance Semiconductor Co., Ltd Mechanism to preclude I/O-dependent load replays in an out-of-order processor
US10108420B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on long load cycles in an out-of-order processor
US9703359B2 (en) 2014-12-14 2017-07-11 Via Alliance Semiconductor Co., Ltd. Power saving mechanism to reduce load replays in out-of-order processor
US10228944B2 (en) 2014-12-14 2019-03-12 Via Alliance Semiconductor Co., Ltd. Apparatus and method for programmable load replay preclusion
US10108430B2 (en) 2014-12-14 2018-10-23 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor
US10120689B2 (en) 2014-12-14 2018-11-06 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on off-die control element access in an out-of-order processor
US10209996B2 (en) 2014-12-14 2019-02-19 Via Alliance Semiconductor Co., Ltd. Apparatus and method for programmable load replay preclusion
US10146539B2 (en) 2014-12-14 2018-12-04 Via Alliance Semiconductor Co., Ltd. Load replay precluding mechanism
JP6286067B2 (ja) 2014-12-14 2018-02-28 ヴィア アライアンス セミコンダクター カンパニー リミテッド アウトオブオーダープロセッサでの長いロードサイクルに依存するロードリプレイを除外するメカニズム
US10089112B2 (en) 2014-12-14 2018-10-02 Via Alliance Semiconductor Co., Ltd Mechanism to preclude load replays dependent on fuse array access in an out-of-order processor
WO2016097790A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Apparatus and method to preclude non-core cache-dependent load replays in out-of-order processor
KR101819315B1 (ko) 2014-12-14 2018-01-16 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 비순차 프로세서에서 작성 결합 메모리 공간 접근에 따라 로드 리플레이를 억제하기 위한 장치 및 방법
CN109032665B (zh) * 2017-06-09 2021-01-26 龙芯中科技术股份有限公司 微处理器中指令输出处理方法及装置
CN116450216B (zh) * 2023-06-12 2023-08-29 上海灵动微电子股份有限公司 共享硬件运算单元的局部缓存方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3736566A (en) * 1971-08-18 1973-05-29 Ibm Central processing unit with hardware controlled checkpoint and retry facilities
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
US5197132A (en) * 1990-06-29 1993-03-23 Digital Equipment Corporation Register mapping system having a log containing sequential listing of registers that were changed in preceding cycles for precise post-branch recovery
US5519841A (en) * 1992-11-12 1996-05-21 Digital Equipment Corporation Multi instruction register mapper
US5835745A (en) * 1992-11-12 1998-11-10 Sager; David J. Hardware instruction scheduler for short execution unit latencies
US5828868A (en) * 1996-11-13 1998-10-27 Intel Corporation Processor having execution core sections operating at different clock rates
US5966544A (en) * 1996-11-13 1999-10-12 Intel Corporation Data speculatable processor having reply architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751779B2 (en) 2002-11-12 2014-06-10 Getac Technology Corporation Method and apparatus for integrating personal computer and electronic device functions
US8949589B2 (en) 2002-11-12 2015-02-03 Getac Technology Corp. Method and apparatus for integrating personal computer and electronic device functions

Also Published As

Publication number Publication date
DE19983330B4 (de) 2009-04-09
CN1126028C (zh) 2003-10-29
GB2354615B (en) 2003-03-19
DE19983330T1 (de) 2001-05-31
WO2000000886A1 (en) 2000-01-06
GB2354615A (en) 2001-03-28
HK1037413A1 (en) 2002-02-08
CN1307700A (zh) 2001-08-08
US6163838A (en) 2000-12-19
GB0100244D0 (en) 2001-02-14

Similar Documents

Publication Publication Date Title
TW444180B (en) Computer processor with a replay system
TWI494852B (zh) 維持與處理器內之屏障相關之指令的次序之方法及處理器
US6981129B1 (en) Breaking replay dependency loops in a processor using a rescheduled replay queue
US6877086B1 (en) Method and apparatus for rescheduling multiple micro-operations in a processor using a replay queue and a counter
US7200737B1 (en) Processor with a replay system that includes a replay queue for improved throughput
US7831812B2 (en) Method and apparatus for operating an age queue for memory request operations in a processor of an information handling system
US6094717A (en) Computer processor with a replay system having a plurality of checkers
US6385715B1 (en) Multi-threading for a processor utilizing a replay queue
US7502914B2 (en) Transitive suppression of instruction replay
JP5209933B2 (ja) データ処理装置
JP2005182825A5 (zh)
JP2008515117A (ja) プロセッサ内の命令のソース・オペランドを供給するための方法及び装置
US20140115249A1 (en) Parallel Execution Mechanism and Operating Method Thereof
US7725659B2 (en) Alignment of cache fetch return data relative to a thread
US5924120A (en) Method and apparatus for maximizing utilization of an internal processor bus in the context of external transactions running at speeds fractionally greater than internal transaction times
US20140095814A1 (en) Memory Renaming Mechanism in Microarchitecture
US7725690B2 (en) Distributed dispatch with concurrent, out-of-order dispatch
US7836282B2 (en) Method and apparatus for performing out of order instruction folding and retirement
US11422821B1 (en) Age tracking for independent pipelines
US9959122B2 (en) Single cycle instruction pipeline scheduling
WO2023278323A1 (en) Providing atomicity for complex operations using near-memory computing
US6351803B2 (en) Mechanism for power efficient processing in a pipeline processor
US7124288B2 (en) Programmable unit with a stack buffer storage device configurable into discrete shadow storage elements accessible by a plurality of command execution units
US20230315474A1 (en) Microprocessor with apparatus and method for replaying instructions
US11314505B2 (en) Arithmetic processing device

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