TW444180B - Computer processor with a replay system - Google Patents
Computer processor with a replay system Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims description 22
- 238000000034 method Methods 0.000 claims description 20
- 230000002079 cooperative effect Effects 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 21
- 101100490488 Mus musculus Add3 gene Proteins 0.000 description 11
- 230000001419 dependent effect Effects 0.000 description 9
- 101150060298 add2 gene Proteins 0.000 description 5
- 239000000872 buffer Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 101150014859 Add3 gene Proteins 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001108921 Asclepias asperula Species 0.000 description 1
- 206010011469 Crying Diseases 0.000 description 1
- 241000218206 Ranunculus Species 0.000 description 1
- 101100412401 Rattus norvegicus Reg3a gene Proteins 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation 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)
- 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公釐)
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)
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)
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)
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 |
-
1998
- 1998-06-30 US US09/106,857 patent/US6163838A/en not_active Expired - Lifetime
-
1999
- 1999-05-31 TW TW088108967A patent/TW444180B/zh not_active IP Right Cessation
- 1999-06-21 WO PCT/US1999/013655 patent/WO2000000886A1/en active Application Filing
- 1999-06-21 GB GB0100244A patent/GB2354615B/en not_active Expired - Fee Related
- 1999-06-21 CN CN99808020A patent/CN1126028C/zh not_active Expired - Fee Related
- 1999-06-21 DE DE19983330T patent/DE19983330B4/de not_active Expired - Fee Related
-
2001
- 2001-11-21 HK HK01108212A patent/HK1037413A1/xx not_active IP Right Cessation
Cited By (2)
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 |