TW454146B - Method and apparatus for reducing latency in set-associative caches using set prediction - Google Patents
Method and apparatus for reducing latency in set-associative caches using set prediction Download PDFInfo
- Publication number
- TW454146B TW454146B TW088122705A TW88122705A TW454146B TW 454146 B TW454146 B TW 454146B TW 088122705 A TW088122705 A TW 088122705A TW 88122705 A TW88122705 A TW 88122705A TW 454146 B TW454146 B TW 454146B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache memory
- collection
- selection information
- data
- address
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000015654 memory Effects 0.000 claims abstract description 228
- 239000000872 buffer Substances 0.000 claims abstract description 21
- 230000002079 cooperative effect Effects 0.000 claims description 16
- 238000006073 displacement reaction Methods 0.000 claims description 10
- 238000003491 array Methods 0.000 claims description 2
- 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
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 238000009434 installation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 241000270666 Testudines Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method 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 or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
- G06F2212/6082—Way prediction in set-associative cache
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Description
454 1 46 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(1 ) 發明背景 1. 技述範疇 (本發明説明電腦記憶體系統;且更詳盡地説,本發明係 説明一種在與集合相關之快取記憶體中減少存取等待時間 之方法和装置。 2. 相關技藝討論 高速緩衝記憶體典型地爲一個量小、高速的緩衝區,位
I 在該中央處理單元(CPU)和主記憶體之間。利用該快取記 憶體暫時保留主記憶體中一般相信目前在使用的該等内容 。一般係根據一個最近最少使用(LRU)的通則決定何時替 換該快憶體的内容。該LRU通則使主記憶體中該等最 近最常使用的内容替代快取記憶體的位置。存取高速緩衝 記憶體中的資訊,遠比存取主記憶體中的資訊所需的時間 少。如是,在快取記憶體中,該CPU浪費較少的時間等候 欲梅取和/或儲存的指令和/或運算元。 一個直接映射的快取記憶體將主記憶體中該任何特殊位 置儲存的内容限制在快取記憶體中特殊的位置上。對照下 ’一個Μ -方向、與集合相關之快取記憶體將該每一個主記 憶體位置的内容映射到快取記憶體、Μ個位置中的任一位 置上。基本上,該Μ-方向、與集合相關之快取記憶體爲Μ 個完全相同的直接映射快取記憶體的一個組合。然而,Μ · 方向、與集合相關之快取記憶體的存取和顧取卻更複雜。 於每一個記憶體存取該Μ_方向、與集合j目關之快取記憶體 期間,必須搜尋該组合(爲Μ個完全相同的直接映射快取記 本紙張尺度適用中國國家標準(CNS)A4規恪(210 X 297
J77 T”-------··裝--------訂---------j 'vV (請先閱讀背面之注意事項^填寫本頁) (V -4- ------_B7________ 五、發明說明(2 ) 憶體的一個組合)中的每一個直接映射快取記憶體,且如有 一個匹配時,則選取該適當的資料、並將該選取之適當的 資料多工至該輸出中。如一個,,未得到,,發生,則必須於Μ 條可能的快取記憶體線之間選擇必須刪除哪一條快取記憶 體線’並以主記憶體中最近r較常使用的内容重寫該條快取 記憶體線。 圖1例證説明該先前技藝中一個虛擬附簽之4 -方向、與集 合相關的高速緩衝記憶體,包括一個快取記憶體目錄i 〇、 —個快取記憶體陣列1 2、一個目錄多工器1 4及一個陣列多 工器1 ό。快取記憶體目錄1 〇包括虛擬位址,給快取記憶體 陣列1 2中每一個相對應的位置。快取記憶體陣列丨2儲存快 取記憶體目錄〗〇中該相對應位置或區塊所指向之該主記憶 體位置的内容。將—個集合定義成,,快取記憶體陣列1 2中 的縱列”和,,快取記憶體目錄1 0中該相對應的0,,。將一個 全等等級定義成”快取記憶體陣列中的一列j和”快取記 憶體目錄1 〇中該相對應矜列”。將一個區塊或一個位置定 義成一個特殊集合(縱列)和一個特殊全等等級(列)的該交 集。一個位置或區塊包括一個或多個位元组的資料。 — 經濟部智慧財產局員工消費合作社印製 才疋供给該高速記憶體的一個位8,包括一個目錄標簽 、一個全等等級22及一個區塊位移24。利用目錄標簽 2 0、經由目錄多工器〗4從快取記憶體目錄丨〇中選取該合適 的集合(縱列)。利用全等等級標簽2 2從快取記憶體目錄』〇 和決取s己憶體陣列〗2兩者中選取—該合適的全等等級(列)。 利用區塊位移2 4從該合適的區壤或位置内選取該合適的位 本紙張尺度家辟(CN:S)A4 (21Q x撕 454146 1 A7 _ B7 五、發明說明(3 ) 元组。利用目錄多工器1 4的該輸出、經由陣列多工器〗6從 快取έ己憶體陣列1 2中選取該合適的集合(縱列)^ /请取相關快取記憶體之等待時間比存取直接映射快取記 憶體的等待時間長,此係因必須比較,,該位址,,和,,儲存在快 取記憶體目錄1 0中其多個集合上的該等彳票簽”》如一個匹 配發生,則利用與該匹配標簽相關的該集合從快取記憶體 陣列1 2該相對應的集合中選取輸出。最後,將快取記憶體 陣列1 2的該輸出定在至暫存器和功能單元的路線上。該所 謂的”遲選問題”意指”在可選取」决取記憶體陣列1 2中該適 當的集合之前、位址必須經歷一個快取記憶體目錄1 〇查尋 和可能的位址翻譯(如利用一個實體附簽的快取記·憶體)。 如是’該遲選問題在一個與_集合相關之快取記憶體中將不 利地影響等待時間。 因此,在搜尋該快取記憶體目錄和翻譯該位址之前、如 可先利用集合選取資訊將係較有利的。 可於下面介紹的書目中獲知快取記憶體其更進一步的詳 委,以提及的方式併入本文中:' 1. Emma etal,美國專利號碼 5,643,1 19,。 1 ,丨 2. Chang, Sheldon S_L·,電子和電腦工程 III ( 1983年)。 3 . Smith, Allan J.,高速緩衝記憶體- ACM計算調查視察 報告1 4册(1 9 8 2年)。 4 · Cekleov Μ.和Dubois Μ.,虚擬位址快取記。.憶名-電子 電機工程師協會(IEEE)Micro( 1997年)。 發明總結 本紙fe尺度適用中國國家標準(CNS)A4規格(2丨〇 x 297公f〉 (請先閱讀背面之注音?事項寫本頁) 裝------ 1T·--------線. 經濟部智慧財產_局員工消費合作社印製 454146 經濟部智慧財產局員工消費合作社印製 A7 五、發明說明(4 ) 根據本發明闡釋的體系,提供一種在與集合相關之快取 ^己憶中減少存取等待時間之方法,其中經由至少一個選取 的快取記憶體從—個可選取記憶體的位置中讀取資料,該 方法包括以下步驟:產生集合選取資訊;及將該集合選取 資訊儲存在一個位置中,使得,,在該乾取之快取記憶體的該 «己隐aa選取資訊到達之前、可先利用該集合選取資訊從锿 記憶體中擷取資料”。 種在與集合相關之快取記憶體中減少存取等待時間之 裝此,包括一個儲龟體,用以儲存集合選取資訊;一僻Μ_ 万向:與集合相關之快取記憶體,接收一個位址和將該位 址判疋灸’’Μ-集合,,的資料輸出;及—個多工器,用以多工 集合選取資訊,,和,,集合相關位址,,中的一個,其中在該集 合相關位址存取該資料之前、使可先利用該集合選取資訊。 種用以減少與集合相關之快取記憶體其功 置,包括—個集合選取儲存體,用以,儲存集合選=訊; 向、與集合相關之快取記憶體,其中該Μ-方向 目錄^目關之快取記憶體包括一個陣列和—個目錄,該 列.及_铜固1乂址的一個與集合相關之標簽部分輸出給崩-部分,,和,,“ r ’用以多工、目綠中—個位址的該標簽 集合,,的資料。 ]以軸出一組,,該 更進—步根據本發明,提供一楂利甩^ 個與集合相關之記憶體其存取速度之方法”m: 一個位移部_分、_ 1固全等等級索引及I寺位址〇 蒼JIL分。該與 (.請先閱讀背面之注意事項今敗寫本頁) -裝 訂---------線
454146
五、發明說明(5 ) 集合相關之記憶體包括一個陣列和一個目錄。該陣列儲存 資料,並分割成多個陣列全等等級。該陣列全等等級分割 成陣列集合。該陣列集合包括一條快取記憶體線。該快取 〇己隐fa線包括多個資料。該目錄分割成多個目錄全等等級 。該目錄全等等級分割成目錄集合,每一個目綠集合包括 —個目錄條目。孩目錄條目包括一個位址標簽和其它的狀 感資訊(包括有效位元、同位…等等)。將該目綠分割、使 該等目錄條目一和該等快取記憶體線之間有一個—對一的相 對應,以便琢等位址標簽和該其中一條快取記憶體線相 聯。 孩方法包括以下步驟係較可取的:利用該全等等級索 、存取一個單一陣列全等等級其集合的内容(該單一陣列 等等級係、由該全等等、級索引指定的),制該全等等級索 、存取—個單—目錄全等等級其集合的内容(該單-目錄 等等級係由該全等等級索引指定的),產生集合選取資訊 利用該集合選取資訊選取該陣列全等等級的該等集合, 該選取的集合中該快取記憶體線中輸出該資料;將_ 部分比喻爲該目錄全等等級該等選取之集合的該等位: 簽’如該選取之全等等級中今·# Φ 乂 經濟部智慧財產局員工消費合作社印製 及τ及其中一個位址標簽等於該 址的該標簽部分,則將該選取的集合比喻爲該集合選取 訊,輸出一第一個控制信號、以指示該存取失敗,且如 選取之全等韓中該等所有的位址標Μ不等於該位址 琢標簽邵分,則從該快取記憶體線輸出的該資料爲無效 ,且如β選取的集合不等於該集合選取資訊,則輸出_ -8 - 本紙張尺度適用中國國家標準(CNSM4 ίΐίΓ(2Ϊ〇Τ297 ---- 454146 A7 B7 五、發明說明(6 ) 二個控制信號 '以指示該快取記檍體線中的該資料爲無效 的。 更進一步根據本發明,提供一種利用資料位址、用以在 一個與集合相關之記憶體中減少存取時間之裝置。該位址 包括一個位移部分、一個全等等級索引及_個標簽部分。 该與集合相關之記憶體包括一個陣列和—個目錄,其中該 陣列包括資料。該陣列分割成多個陣列全等等級。該陣列 全等等級分割成陣列集合,且該等陣列集合判定該與集合 相關之記憶體的集合相關性。該陣列集合包括—條快取記 憶體線,且該快取記憶體線包括多個資料。該目錄分割成 多個目錄全等等級。該目錄全等等級分割成目錄集合。該 目錄集合包括一個目錄條目,且該目錄條目包括一個位址 “簽。知遠目綠分割、使該等目錄條目和.該等快取記憶體 線之間有一個一對一的相對應,以便該目錄中的該等位址 標簽和該至少其中一條快取記憶體線相關聯。在該與集合 相關之記憶體中用以減少存取時間之該裝置包括:用以存 取該陣列全等等級其集合的内容之裝置(該單_陣列全等等 級係由該全等等級索引所指定的該全等等級);用以存取一 個單一目錄全等等級其集合的内容之裝置(該單一目鍊全等 等級係由該全等等級索引所指定的該全等等級);用以產生 集合選取資訊之裝置;利用該集合選取資訊、用以選取該 單一陣列全等等級該其中一個集合之裝置;用以從該選取 的集合中該快取記憶體線中輸出該資料之裝置;用以將該 位址的該標簽部分比喻爲該選取之單一目錄全等等級該等 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項御^'寫本頁) :—敦 訂---------線^1 經濟部智慧財產局員工消費合作社印製 454146 A7 B7 五、發明說明(7 ) 集合中的該等位址標簽之裝置;用以比較該集合(其中該集 合包括和該集合選取資訊相等的該位址標簽)之裝置;及用 以輸出一個控制信號、指示,,該資料存取成功”和,,從該快取 記憶體線中輸出之該資料的有效性,,之裝置。 圖式簡單説明 圖1,爲該先前技藝一個虚擬附簽快取記憶體之方塊圖; 圖2 ’爲一個方境圖,指示將本發明應用至一個實體附簽 、與集合相關之快取記憶體上; 圖2A ’爲根撩本發明應用該方法之一個代表性的流程圖; 圖3,爲本發明一第二個體系之方塊圖; 圖4,爲本發明一第三個體系之方塊圖; 圖5 A、5 B和5 C,分別例證説明使用,,一個分支歷史表,, 、’’ 一個指令快取記憶體,,及,,運算元歷史表,,作爲本發明其 集合選取資訊的儲存體; 圖6,爲例證説明該先前技藝一個運算元歷史表操作之方 塊圖; 圖7 ’爲例證說明在一個中央處理單元中應用本發明之方 塊圖; 圖8A和8B爲時序圖,分別例證説明利用該先前技藝的一 種方法和本發明的一種方法之快取記憶體存取。 較可取體系詳述 利用集会i測以排除”等候該與集舍|闕之快取記憶體存 取的&的需求。本發明揭露”利用集合選取資訊預 測集合、以改ΐϋ令和資料快取記憶體的性能”。 -10·
閱 讀 背 © 之 注 意 華 項 ¢: I裝 本 · 頁I 一 I I 訂 線 經濟部智慧財產局員工消費合作社印製 木紙语尺斥適用中國國家標4 (C\^)AJ ia ^ /ο,Τ - 一 \ - Μ 公 454146 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(8 ) 圖2爲例證説明本發明一個體系之方塊圖。如所示,將集 合選取2 8直接應用到一個實體定址、與集合相_之快取記 憶體中的目錄多工器1 4和陣列多工器〗6上。和圖1中例證 説明之該虛擬定址的快取記憶體相對照下,圖2中例證説明 之該實體定址的快取記憶體包括一個翻譯側行緩衝區 (TLB) 2 6 ’將虛擬位址1 8翻譯成快取記憶體目錄丨〇所使用 的一個實體位址。藉著將集合選取2 8直接提供給陣列多工 器1 6,則可在利用該多工器選取資料(從目錄多工器1 4中 選取以給陣列多工器1 4 )之前,先從也取記憶體陣列1 2中 擷取資料。 根據本發明一個闡釋的體系,可將欲給集合選取2 8的資 料儲存起來或從多個來源(包括一個分‘支目標緩衝區bTB( 亦才曰爲刀支歷史表BH.T)、運算元歷史..表或指令快也記憶體 )中導出該資料。 β BTB爲一個用以、預測分支指}其目標位址的緩衝區。 支持該ΒΤΒ的理論爲”採取或不採取太部分的分支”,如採 取的話,將具有該唣同的目標位址。因此,設立一個採取 的分支表,其中該表中的每—個條目包括該採取分支的位 址(該分支的該目標位址跟在其後)^如產生一個分支一樣 地没立及表中的條目。當孩表爲完全的時,則增加一個新 的條目(典型地包括藉一個]1111;通則替換—個舊的條目)。 參考圖5 A,例證説明利用ΒΗΤ 3 〇作爲儲存集合選取資 Λ的個位置。於扎令執行期間,每一個分支在3 〇中 均有附註(利用該等每一個分支的位址),且如發現該分支 -11 (請先閱讀背面之注意事項#1'%寫本頁) -—裝 «II . 線: 本紙尺度適用中岡岡宕煙浪 £ / 丁 小 j f Μ 公 / y 經濟部智慧財產局員工消費合作社,印製 454146 A7 B7 五、發明說明(9 ) 時,則擷取該分支的目標位址(Ifetch),且該分支的目標位 址變成該執行流中的該下一個指令。如在該B HT中未發現 該免支位址,則假定”不採取(NT ),,。當分支指令繼續執行 時,則據此更新該表。如預測一個分支爲,,欲採取”、但卻 未碜取時,則删除該相對應的3TB條目。如預測一個分支 爲’不欲採取、但卻採取時’則設立·-個新的條目。如該 預測的目標位址爲不正確的時,則輸入該正確的彳立址。 BHT 3 0的每一個锋目保留該一個分支的位址、該相對應 的分支目標位址和集合選取資訊。以一個指令位址(從_個 程式計數释中導出的)存取每一個分支。該集合選取資訊指 示”哪一個集貪最後包括一個特殊BHT條目指向的該等指令 ”,且一旦遇到該分支相對應至該BHT條目時、即利用該集 合選取資訊預測從該指令快取記憶體中應擷取之該適當的 集合。從一個程式計數器中導出該欲擷取的分支位址,並 將該欲擷取的分支位址比喻爲BHT 3 0中的分支位址。如發 現一個匹配,則將該相暫應的分支目標位址和集合選取資 讯提供給該指令快取記憶體。如是,利用該BHT中儲存的 居集合選取資机所預測的該集合,可比”如依賴該Tlb的該 輸出和快取記憶體目錄' 以選取該適當的集合”較早從該指 令快取記憶體中擷取該適當的指令。 藉參考圖2的方塊圖和圖2 A的流程圖説明本發明執行一 個BHT中集合選取之一個體系: κ 個程式计數器指令掏取位址(典型地爲一個相對應至 一個分支指令或指令擷取群組上的程式位置,’預測該.程式 -12- .1'--.1,------I、裝--------訂--------- (請先閱讀背面之注意事項寫本頁) }*、紙度適用中國國家標準 (CNS)A4 規格(210 X 297 公堃) 454146 A7 B7 五、發明說明(1〇 位置包括-個分支指令)中掏取到*支歷史表(bht)中,該 擷取提供-個分支目標位址和—個,’識別—個指令快取記憶 體中一個預測的分支目標組,,的預測集合索引(步驟2〇〇), 該預測集合索引可作爲圖2 士的集合選取28之用。 將分支目標位址提供给位址8上的該指令快取記憶體;該 =標位址可分割成3個部分:部分丨_目錄標簽;部分2_全 等等級索引;部分3-指令的位移(步驟205); 在平行中,將該全等等級索引提供給快取記.憶體目錄10 和快取記憶體陣列12;讀出該全等等級的目錄和陣列條目 ,經由TLB 2 6、將該目綠標簽的部分提供給目錄多工器1 4 ,、並將集合選取28提供给目錄多工器14和陣列多工器 及术口選取選擇陣列多工器】6、以輸出該適當的陣列條目( 從步驟3中所讀出之該全等等級的該陣列條目集合中輸出 步驟210) ; η 利,該位移識龍快取㈣體陣列12中輸㈣該字元, 並將该(寺)字元增加到該指令佇列(或緩衝區)中用以 步驟220) ; ^
經 濟 部 智 慧 財 產 局 員 X 消 費 合 作 社 印 U ,,目錄多工器1 4識別,,集合選取2 8中的該目錄標簽,,是否和 步驟210中、從快取記憶體目錄1〇中讀取之該全等等級 忑其中一個標簽條目,,相匹配(步驟225); , 二―:,不匹配(一個快取記憶體,,未得到”)發生:使步驟 傳统指令仵列上的該(等)字元無效(步驟245): 層b取^未得到”,例如藉從該下—個等級的記憶體階 -心、取彳曰令/資料、處理,,未得到”(步驟25〇);將該指令 規格(210 X 297公莖) 本纸張尺度^ -13- 454146
五、發明說明(11 經濟部智慧財產局員工消費合作V社印製 快取記憶體線置放在快取記憶體中(步驟255);以—組新的 指令快取記憶體線更新BHT。更新預測來源的技藝爲—個 一般熟知該技藝的人所熟知的。,,執行該範例中該_種更新 ’’、並”記錄該預測使用之該啓始BHT條目的該等座標,,(+ 驟260)係較可取的; 如於步驟225中,集合選取28中的該目錄標簽和TLB 26 中提供的標簽相匹配時,則仍必須判定該預測是否爲正 的: 產生一個解析集合索引,識別快取記憶體陣列1 2中該指 令的該解析集合(係由該匹配目錄標簽的該集合識別的)(步驟 2j0) ’在平行中’將該解析集合索引傳遞給陣列多工器】6 '且設定預測解省邏輯(未顯示),並利用該解析集合索引 控制陣列多工器1 6、以選取該適當的陣列條目(從步驟2 J 〇 中1質出之該全等等級的該组陣列條目中選取)(步驟235); 琢預測解析邏輯識別”該解析集合索引,,是否和,,集合選取 2 8中的該預測集合索引,,相匹配: 如一個匹配發生(預測爲正確的),則藉選取相對應至該 解析集合索引的該條目抑制陣列多工器1 6的操作,並驗證 步驟220中增加到該指令佇列上的該字元(步驟24〇); 如一個不匹配發生(預測爲不正確的),則使增加到該指 令仵列上的該(等)字元無效(步驟2 7 0 );利用該位移識別,, 步驟2 4 0中識別之快取記憶體陣列t 2中的該(等)字元”,並 將該(等)字元增加到該指令佇列上(步骤275);及更新集合 選取資訊2 8的該條目、以指示該新預測的集合等於該解析 -14- J;l"-J-裝-------^---訂---------線 ./^. / ' .... f請先閱讀背面之注意事項再势寫本頁) / 本纸張尺度適用中國國家標準(CNS)A4规格(210 X 297公笼)
戶41 46 五、發明說明(12 ) 預測集合(步驟280)。
對一個一般熟知磚技藝的人來説,將輕易明白在本發明 孩上述的體Μ,該BHT包括-個接附在該酣中每一個 緩衝區或位置上的集合-預測襴。利用和該分支目標(位址) 耦合的集合選取或集合-預測,可從該指令快取記憶體中擷 取資料,而無需等候該遲選信號的翻譯或產生目錄查尋(藉 TLB 26、快取記憶體目錄1〇和目錄多工器14)。 B 選擇性地,可將補充的集合選取資訊配置給每一個 條目。該補充的集合選取資訊可指定一個適當的集合給— 個失敗或不採取的路徑。當從不正確預測的分支復原時, 或當該分支指令佔據一個快取記憶體區塊中該最後的位置 、且在一個不同的快取記憶體區塊中儲存該失敗的路徑時 ,该資訊係有效益的^ —旦偵測到該目標路徑和該該失敗 路徑在不同的快取記憶體集合中時,則可同時從該指令快 取 < 憶體中擷取兩個集合。此外,因可在一條單一的指人 快取記憶體線内發生多個分支,故該BTB中補充的集合選 取資訊亦可提供欄給每一個分支。 選擇性地,可將集會選取資訊儲存在該指令快取記憶體 中,以改良資料快取記憶體的性能。參考圖5 B,可將資料 快取記憶體集合選取資訊100租加至指令快取記憶體線丨2〇 上,以指出該指令所需$該預測的運算元集合。如圖5b中 所示,D-快取記憶體集合選取和卜快取記憶體線12〇之相對 應的固定部分(0到8 )相關聯。該指令(可以爲—個載入或儲 存.指令)利用該1料龙取記憶體集合墀取資訊存取該集合( -15· 本纸張尺度適用中國國家標準(CNS)/V1規格(210 X 297公f (請先閱讀背面之注意事項$寫本頁) :裝--------訂---------線. 經濟部智慧財產局員工消費合作社印製 4146 1 A7
五、發明說明(13 ) 括該欲載入或儲存的運算元之該集合)。因在存取該指令 己憶體期間,可在運算元位址產生之前、利用該資料 快取記憶體集合選I[,1 礎取貝訊故經由該方法可顯著地改良資 料快取記憶體的性能。 圖6例證説明該先前技藝一個運算元歷史表⑽T)的操作 匕私式计數器3 2所擷取的每一個指令位址和〇HT 3 6中的該 ,々彳址相對k ^如發現一個匹配,則掏取該相對應的運 f元位址。該運算元因此和該解碼前運算元缓衝區中的該 才曰+相匹配。當解碼該指令時,可利用與該指令相關的該 運算元’且執行可立即開始。 根據本發明另一個闡釋的體系,集合選取資訊亦可儲存 在一個OHT中,以改良資料快取記憶體的性能。該〇^^丁減 1/掏取與.個4曰令相關聯的運算元所需的時間。該oht係 根據琢理論”該等許多要求一個運算元的指令,在每一次執 行該指令時’該指令即計算該相同的運算元位址,,。例如, 可藉増加該基址暫存器 '索引暫存器和該指令提供的替代 欄叶算一個運算元位址。藉利用一個表(其中每—個條目包 括該指令位址和給該指令其運算元的該位址),則即使在該 指令解碼之前、亦可擷取運算元。 經濟部智慧財產局員工消費合作社印製 參考圖5 C ’將資料快取記:塵體集合選取貧訊〗4〇附加至 〇HT 3 6的每一個條目上,可利用該適當運算元的位址,且 可在該指令解碼、之前、從該資料快取記憶體中擷取該運算 元’如是顯著地減少該資料快取記憶體的存取等待時間。 因僅要求該程式計數學存取該OHT,故如該系統因例如增· -16- ---- I 本纸張尺度適用中囤國家標準(CNS)A4規格(2丨〇 * 297公笼) 454146 A7 B7 五、發明說明(14 ) 加運算元的存取時間而非常需要該運算元時,則甚至可在 拍員取該指令之前先擷取該運算元。 圖3例證説明纟發明的—個體系,包括―個傳統的快取記 憶體目錄10和-個修正後 '以減少功率消耗的快取記憶體 '陣列12。該等第一個和第二個體系間的—個差異爲,,已將 陣列多工器1 6移至快取記憶體陣列丨2的前面,以便在存取 快取記憶體陣列12之前、先利用集合選取資訊28,而非利 用集合選取資訊2 8判定在存取快取記憶體陣列丨2之後、將 輸出哪一個集合”。然而,快取記憶體陣列丨2繼續爲與集 合相關的,在任何特殊的循環中、僅從快取記憶體陣列i 2 .中擷取一個集合。如是,藉減少該存取的集合總數,以同 時減少功率消耗。如集合選取資訊28爲不正確的,則可利 用TLB 2 6 +的该遲選資訊和快取記憶體目錄】〇選取和存取 該正確的陣列資訊。 經濟部智慧財產局員工消費合作社印製 圖4例證説明本發明的—個體系,包括一個快取記憶體陣 列1 2和一個快取記憶體目錄丨〇,其中兩者均修正過以減少 功率消耗。該等第二個和第三個體系間的一個差異爲,,在存 取快取记憶體目録1 〇之前、先利用集合選取資訊2 8判定存 取哪一個標簽集合,而非利用集合選取資訊2纟判定在存取 快取記憶體1 0之後、將輸出哪一個集合,,。利用集合選取 資訊2 8選取快取記憶體目錄1 〇中的一個集合和快取記憶體 陣列1 2中的一個集合,使從快取記憶體目錄丨〇和快取記憶 體陣列1 2中僅輸出一個集合。藉減少快取記憶體目錄丨〇和 快取記憶體陣列1 2中、在存取該快取記憶體期間必須存取 -17- 454146 A7 B7 五、發明說明(15 的該集合總數,以減少功率消耗。如集合選取資訊2 8爲不 正確的,則可利用TLB 2 6中的該遲選資訊和快取記憶體目 錄1 0選取和讀出該正確的陣列資訊。 圖7例證説明將本發明應用至一個CPU 4 0上。一個記憶 體系統4 2包括欲由CPU 4 0在該記憶體系統上執行的指令和 程式資料。記憶體系統4 2典型地具有一個階層式的結構, 其中包括主記憶體(例如動態隨機記憶體)和輔助儲存體(例 如磁碟機/光碟機,電氣可清除式可程式僅讀記憶體)。 將冗憶體系統4 2界面至一個指令快取記憶體4 4和二·個資 料快取記憶體4 6中,以便將經常使用的指令和資料分別保 存在和令快取冗憶體4 4和資料快取記憶體4 6中。典型地説 ,將儲存在該等埤取記憶體中的該等指令和資料分割成快 取記憶體線或區塊。一個指令擷取單元4 8擷取指令快取記 憶體44中儲存的一個或多個指令區塊,至—個指令佇列5〇 中。一個解碼和分配單元52從指令佇列5〇中讀取該等指令 ,將該等指令解碼和排程用以執行。可於和
Pierson的電腦結構中獲知排程技&的—個詳細説明:一 種定量的方法、222G_362W(19鱗),以提及的方式完全地 併入本又中。將條件式的分支指令安排在一個分支單元5 4 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 上執订’ JL將序列或非分支的指令安排在功能單元$ 6上執 行。 2所需’-個載人儲存單元58從資料快取記憶體%中將 «料區塊擷取至功能單元56中。載入儲在 _ 戰入儲存早兀58^根據執 仃力此早M6中的指令所產生的資料値、更新資料快私記 • 18 - 454 ί 4 6 五、發明說明(16 憶體56和記憶體系统42中儲存的資料區塊。該咖包括— 個暫存器標60,該暫存器標6〇將運算元提供給功能單元^ 一、用以執行指令,並接收該執行的該等結果。—個完成單 元依CPU 40該特殊結構所考慮的該有效順序完成執行該等 指令。料功能單元56可違反順序執㈣旨令,但可允許或 不允許CPU 40以該相同的順序完成該等指令(視結構 制而定)〇 分支單元54包括-個條件暫存器,用以評估該等條件式 分支的結果;及邏輯’根據功能單元56所執行之該等操作 :結果、更新該條件暫存器。將識別,,欲從記憶體系統Ο 中揭取至指令疗列50 "該指令區塊,,的該位址儲存在_ 訂 個指令揭取暫存器64中。將儲存在指令摘取暫存器64中的 该區塊位址提供給分支單元5 4。 線 每-個功能單元56可能能夠執行經由解碼和分配單元Μ ^專遞々料某些或所有型態的指令。功能單M6從暫存 …和7或資料快取記憶體單以6中接收輸人來源運算 ^並將M等輸出結果窝人暫存器檔6〇和/或資料快取記憶 =凡46中。於該選擇性中,功能單元心爲不對稱的, 其广個特殊單元僅能夠執行某些指令的子集合。於該事 能 分 Λ 馬 ’典型地將暫存器樓6G邏輯化地分割成相對應至功 早7L 5 6其功能性的子集合 \ 土 ... 叱「日7卞果σ /王思,暫存器檔60的該邏輯 構化可視的或隱藏的。此外,暫存器標6〇可馬 遝、^刀離的、但實體上卻共享公用電路。此外,解碼和 刀配早凡52必須知道該不對稱性、並適當地安排該等指令 19 本紙張尺二適用中國國家標準(CNs)a4 4 5 4 1 4 6 A7 五、發明說明(17 ) 。例如,功能單元56可包括—個❹缺 行定點運算;一個或多個浮點單元,用以執行浮社^執 及-個或多個向量單元,用以執行 源 的向量運算。該等定點單元所執行的該等定 如足點加法、定點減法、定點乘法、定點除法、=括: :^斥運算n點比較、定點旋轉和定點挪移運=二 +浮點單元所執行的料浮料算包括例如浮點加法、= 點減法、浮點乘法、浮點除法和浮點比較運算。該等了 單:所執行的該等向量運算在特徵上具有一個承;的高; 仃等級。典型地説,該等向量運算爲SIMD<的運算,其中 一個指令在該等來源向量内的—個多重資料元件上執ς該 相同的運算。 μ 分支單元5 4亦包括一個分支預測裝置(包括集合選取資訊 )。如該分支預測裝置判定該指令區塊未包括一個條件式分 支指令’或包括一個或多個預測爲不欲採取的條件式分支 指令時,則該分支預測裝置控制一個多工器6 6 ,以將該下 一個循序區塊位址(係由一下一個循序區塊位址產生器6 8產 生的)的該集合和區塊位址載入指令擷取暫存器6 4中。於該 事例中,從記憶體系統4 2中將該下一個循序區塊擷取至指 令佇列5 0中。如該分支預測裝置判定該等其中一個或多個 指令爲一個預測爲欲採取的分支指令時,則該分支預測裝 置控制多工器6 6,.以將該目標位址的該集合和區塊位址載 入指令擷取暫存器6 4中。於該事例中,從記憶體系統4 2中 將包括,,該第一個被預測採取之分支指令的該目標指令”之 20- Μ氏張尺度適用中國國家標準(CNS)A4規格297公釐.) -丨:|!裝--- (請先閱讀背面之注意事項寫本頁) 訂· --線· 經濟部智慧財產局員工消費合作社印製 454146 A7
五、發明說明(18 ) 孩集合和區塊擷取至指令伶 7 4 丁 III 5 〇中。該處理實質地減少該 (請先閱讀背面之注音?事項一^寫本頁: 指令快取記憶體的存取等待時間,且可無限制地繼續該處 理、以遠遠地超過CPU4G目前正在㈣㈣區塊前面。然 而,該指令緩衝區的大小、和,,該分支預測裝置將會不正確 預測某些分支,,其漸增的機率(於該事例中,所有更進一步 的區塊預先擷取將係無效益的)均會影響該處理。 將輕易明白在一個區塊内可能預測欲採取一個以上的條 件式分支指令。就識別該第_個被預測採取的條件式分支 指令而5,該目標指令的位元組位址可能儲存在指令擷取 暫存器6 4中,但記憶體系統4 2卻未利用該位元組位址擷取 指令區塊。於該事例中,將該位元组位址提供給該分支預 測裝置、以指示該區塊中該目標指令的進入點。該分支預 測裝置利用該目標的位元組位址識別,,該第—個被預測欲採 取的條件式分支指令(依順序地係在該提供的進入點之後發 生的)。 該分支預測裝置可從一個BTB、OHT、指令快取記憶體或 解碼歷史表中儲存的資料導出集合選取資訊。可於下面介 紹的書目中獲知已知的分支預測技藝的説明。以提及的方 式將該等介紹的書目併入本文中: 經濟部智慧財產局員工消費合作社印制¾¾. 1.81^6吨1^11,美國專利號碼3,559,183。 2 . Losq et al ’ 美國專利號碼 4,477,872。 3 · J. Smith,第24屆電腦結構年報書’’研究分支預策策略” ,135-148頁(1998年5月)。 4 . Yeh和Patt,電腦結構年報書”比較利用兩種分支歷史 -21 - 本纸張尺度適用中國國家標準(CNTS)A4規格(21〇 X 297公f ) 454 1 46 A7 B7 五、發明說明(19 ) 協會年報標準之動態分支預測器”,257-266頁( 1993年)。 (請先閱讀背面之注意事項寫本頁) 5 . P. Emma、J. Pomerence、T. Puzak、R. Rechtschaffen和 F. Sparacio,IBM技述揭露公告12-84”運算元歷史表”,3815-3816 頁。 6. Emma 、J. Knight 、J. Pomerene 、T. Puzak 、R. Rechtschaffen,IBM技述揭露公告0 2 - 8 9 ”隱藏擷取歷史表” ,101-102頁。 7 · Simon Stely Jr. et al,美國專利號碼 5,235,697。 8. L. Liu,美國專利號碼5,41 8,922。 9 · Liu,IEEE記錄-超大型積體電路(VLSI)系統2 ( 2 )、”快 取記憶體存取的部分位址目錄”,226- 240頁(1 994年6月)。 (Liu利用一個稱爲SETLAT的固定表,其中利用該載入位 址的一部分索引該表、以更快速地從一個相關聯的快取記 憶體中擷取資料。因該SETLAT未要求翻譯、且比該傳統的 目錄窄,故該SETLAT使能夠更快地從一個全等等級中選取 一個集合。亦可利用Liu的發明快取虛擬位址翻譯、並在每 一個循環中致能多重的快取記憶體存取。) 經-部智慧財產局員工消費合作社印製 1 0. A. Agarwal和S. Pudar,與縱列相關的快取記憶體:第 2 0屆電腦結構年報書” 一種用以減少直接映射快取記憶體 該未得到速率之技藝”,179- 190頁( 1993年)。 (Agarwal和Pudar揭露如何利用第二個雜凑法、使一個直 接映射快取記憶體像一個雙向、與集合相關的快取記憶體 一樣執行。藉由該技藝,能夠達到更快地存取一個集合該 最近最常使用(MRU)的元件。) -22- _:_i 本纸張尺度適用中國國家標準(CNS)/V1規格(210 X 297公f )
4 54146 五、發明說明(2〇 ) 11 · B. Calder、D_ Grunwald和 J. Emer , IEEE 高性能電腦結 構紂淪會記錄’’預測之循序相關聯的快取記憶體,,,244_ 253 頁(1996年)。 (在一個根據Agarwal和Pudar的著作中,Calder et al説明一 種利用一個預測的技藝選取一個適當的快取記憶體雜湊探 針,用以在每一次以一個不同的雜湊探針、多次存取—個 直接映射的快取記憶體。) 又參考i圖7 ’處理器單元40可包括補充的硬體裝置,在 處理器單凡4 0要求該資訊之前、將指令和資料預先擷取至 鬲速緩衝記憶體44、46中。例如,處理器單元4〇可包括下 面介紹書中所宣布的預先擷取流緩廣區:J〇uppi,第i 7属 電腦結構國際年討論會記錄,,藉增加一個小型、完今相關聯 的快取圮憶體和預先^擷取緩衝區、以改良直接映射快取記 憶體的性能”(1990年5月,西雅圖);IEEE電腦會社印刊, 3 64- 3 73頁;第2 1屆電腦結構國際年討論會記錄,,將水流式 緩衝區評估爲一個輔助的快取記憶體替換”,(1994年4月, 芝加哥);IEEE電腦_會桂„印刊,2 4 _ 3 3頁,以提及的方式完 全地併入本文中。 此外’可將預先埤取的指令(即在處理器·單元4 〇要求該資 訊乙W '預先將指令和實料擷取至高速緩衝記憶體4 4、4 6 中的指令)插入儲存在記憶體系統4 2中的該指令序列中。 Callahan et al,第4屆國際會議軟體預先擷取記錄,,程式語言 和作業乐統的結構支援”(1991年4月),以提及的方式完全 地併入本文中,其揭露,,增加新的指令、以在該指令集合中 -23- 本紙張+關家標準(CNS)A-l規格(210 X 297公楚) l· I-111„--------裝--- (請先閱讀背面之注意事項一^寫本頁) . .線i 經濟部智慧財產局員工消費合作社印製 454146
經濟-智慧財產局員工消費合作社印製 五、發明說明(2!) 執行預先擷取”。在由IBM摩托羅拉和Apple(蘋果)所聯合發 展的PowerPC處理器中,利用一個資料_快取記憶體·區塊_ 觸摸指令(debt,通常稱爲一個觸摸指令)將記憶體區塊預先 擷取至該快取記憶變中。此外,通常將p. Dubey、美國專利 號碼5,774,685(申請號碼〇8/426,502)指定爲本發明的受讓人 ’以提及的方式完全地併入本文中,其説明,,一個臆測的觸 摸指令’’。 可利用該等預先擷取的指令將指令和資料(運算元)兩者 預先掏取至向速緩衝記憶體4 4、4 6中。一般來説,該等預 先Μ取的指气像一個載入指令一樣的運作(除了未將資料轉 私土處理器單元4〇之外)。更明確地説,處理器單元包 括一個”以該預先擷取彳立址搜尋一個快取記憶體目錄,,的裝 置,如一個”未硬到’,發生,則將該資訊從記憶體系統* 2中 轉移至高速緩衝記憶體44、46中。可在實際使用該資訊之 前、藉一個編譯程式將該等預先擷取的指令插入該指令序 列中’以試圖確保”當需要時、該快取記憶體可利該資訊,, 不幸的是’孩編譯器可能無法插入預先擷取的指令、以 在所有的事例中避免快取記憶體未得。例如,可能直到執 行利用該資料的該指令時,才知道該預先擷取的位址。考 慮不直接參考一個運算元的一個載入指令。即一個暫存器 载入儲存在記憶體中的一個指標。於該事例中,直到載入 減別孩資料的該指標時,才知道該預先擷取的位址。 t於其Έ:的事例中,如預先擷取的指令和實際使用該資料 置放的太接近時,則可能從該預先擷取的指令中獲得少許 本紙張尺度適 ——!'裝·! (請先閱讀背面之注意事項寫本頁: - 線· -24 - , A7
454146 五、發明說明(22 ) 的性能利益。例如,將一個預先揭取的指令置放在比實際 使用該資訊(該擷取指令擷取的資訊)只早一個指令,將比 元全不插入該等預先擁取指令具有高一些的性能利益。如 是,於某些事例中忽視無效益的預先擷取指令可係較有益 的。於T. Puzak提出之該共同讓渡的美國專利申請序號 08/ 599,833中,説明一種用以選擇性執行預先掏取指令之裝 置的範例,以提及的方式完全地併入本文中。 除了預先擷取的指令和,資料之外,處理器單元4〇可臆測 性地執行預先擷取的指令《將該等指令意指爲,,臆測的指令” ,此係因”如該臆測爲錯誤的時,則該等指令的執行結果可 能爲無效益的,,之事實。處理器單元4 〇利用分支預測識別 一條路徑(遵循該路徑以臆測性地執行指令)係較可取的。 依據該見解,分支單元54根據該等條件式分支指令的解析 、評估該等預測的有效性。如—個指定的預測判定爲有效 的(即該臆測爲有效的),則使該等臆測指令的執行結果(視 $亥有政預測而定的)成爲永久的。然而,,如一個指定的預測 判定爲無效的(即該臆測爲無效的),則摒棄該等臆測指令 其任何的執行結果(視該等無效預測而定的),且可中斷處 理該等臆測指令(處理器單元4 〇的該等階段所處理的)。最 好如指令佇列5 0中一樣標誌臆測指令。 此外,處理器單元4 0該等不同的階段(分支單元5 4、解 碼和分配單元52、載入/儲存單元5 8、功能單元5 6 ),最好 將識別”該指定階段正在執行之該等臆測指令,,的資訊儲存 起來。此外,完成單元6 2最好將該等臆測指令的執行结等 本紙張尺度適用中國國家標準(CNS)A:1規格(21〇 X 297公髮) 1 —i ^ ;"--------訂··--------線 一.... . (請先閱讀背面之注意事項寫本頁) / 經濟部智慧財產局員工消費合作社印製 4 5 4 1 4 6
五、發明說明(23 經濟部智慧財產局員工消費合作社印製 標就爲臆測的。-旦判定-個指定的臆測爲有效的時,分 支單元54即和完成單元62共同地執行,以將該等臆測指令 的執行結果(視該有效的預測而定的)標誌爲永久的,藉以 允許完成料62完成該等指令(即將該等執行結果寫入&存 :檔60或記憶體系統42中)β另—方面,一旦判定—個指 =的預測爲無效的時,則分支單元54最好依下執行:分^ :元54和指令㈣單元48共同地執行,以摒棄存留在指令 二列50中的該等臆測指令(視該無效的預測而定的)·分支 早疋54和$成單元62共同地執行,以摒棄該等臆測指令的 視該無效的預測而定的),藉以抑制完成單元Μ 〜成β等指令;及分支單元5 4和處理器單元4 〇該等不同的 階段共同地執行,以中斷處理該等臆測的指令(視該無效的 預測而定.的)。 1於圖8Α和8Β中例㈣明利用集合預測資訊的一個範例。 圖8 Α和8 Β顯tf -個很重地管線式快取記憶體的_個時序 圖圖8 A例邊祝明一種先前無集合預測之管線化方法,圖 8B例證説明-種根據本發明、利用集合制之方法。可察 知,在圖8A所示之該先前的方法中,快取記憶體存取和陣 ,讀出係在時間執行期間爲”零”和,,壹,,時發生的。大約在 以巧同的時間上,對資料人執行虛擬位址翻譯、目 綠讀出和標簽檢視。在遲選之後(設定索引解析),則可於 時間執仃期間2中利用資料A。利用本發明該闡釋的方法( 如圖8 B巾所不)’則可於時間執行期間,[中,,陣列讀出,,之 後、和於執行期間,2’中執行遲選之前利用資料A。接著, -τ |【 r --裝--------訂----------線 (請先閱讀背面之注意事項^^寫本頁) / -26- 45幻 46 A7
Claims (1)
- 454146 B8 C8 D8六、申請專利範圍 -種用以在-記憶體中,少存取等待時間之方法,(該 記憶體具有冉集合相關之快取記憶體)其中可根據(可經 由至少-個選取快取記憶體選取之資料選取資訊從該記 憶體的位置中讀取資料,該方法包 τ丰 匕栝以下步驟: 產生集合選取資訊; 將該集合,選取資訊儲存在多個位置中至少其中一個位 置;及 、 傳遞和利用該集合選取資訊,以在經由該至少一個選 取的快取記憶體之該資料選取資訊判定及到達之前從該 記憶體中擷取該資料。 2 4 . 經濟部智慧財產局員工消費合作社印製 如申請專利範圍第丨項之減少存取等待時間之方法,其 中多個位置的其中-個位置為—個分支目標緩衝區,且 該存取的記憶體為一個指令快取記憶體。 如申請專利範圍第,2項之減少存取等待時間之方法,其 中將該集合選取資訊儲存在一個分支目標緩衝區中之該 步驟更進-步包括:將輔助的集合選取資訊儲存在該分 支目標緩衝區中’該輔助的集合選取資訊對—條失敗路 撵預測一部集合,。 如申請專利範園第2項之減少存取等待時間之方、去其 中將該集合選取資訊儲存在-個分支目標 驟更進一步包括:將辅助的集合選取資訊儲存在該分支 目標缓衝區中’該輔助的集合選取資訊對—條未S取的 路徑預測一個集合。 如t請專利範園第1項之減少存取等待時間之方法,其 -28 本紙張尺度適用中國國家標準(CNS ) A4規格(21〇Χ297公釐) 454 Μ 6 Α8 Β8 C8 D8 濟 部 智 慧 財 產 局 消 費 合 作 社 印 製 六、申請專利範圍 中多.個位置的其中—個 + + u 么置係在—個指令快取記憶體中 ,該存取的記憶體爲— 调貝枓快取記憶體。 如申請專利範園第1項+ | 士 、 貝 < 減少存取等待時間之方法,其 中多個位置的其中—伽A se ^ 、 固么置為—個運算元歷史表,該存 取的記憶體快取爲—個資料$取記憶體。 如申請專利範園第1項> .士二士 „ 明币1負 < 減少存取等待時間之方法,更 進一步包括以下步驟: 比較:該集合選取資訊”和,,該資料選取資訊”; 更新β集合選取資訊,且—旦於該比較中判定出—個 不匹配時、即報知”—個無效的資料讀取,,的信號;及 攸下個等級的圮憶體階層中擷取指令或資料。 一種用以在與集合相關之快取記憶體中減少存取等待時 間之裝置,包括:a) —用以儲存集合選取資訊之儲存體: b) —個M-方-向且與集合相關之快取記憶體,用以接 收一個位址和將該位址所判定之,,M_集合,,的資料輸出 ;及 W c) 一個多工器,用以多工,,集合選取資訊,,和,,與集合 相關足位址”中的一個’其中在該與集合相關之位址存 取該資料之前使該集合選取資訊可被先利用。 如申凊專利範園第8項之減少存取等待時間之裳置,其 中該集合選取資訊係儲存在一個分支目標緩衝區中或係 從一個分支目標緩衝區中擷取該集合選取資訊,且该 M-方向且與集合相關之快取記憶體爲一個指令快取記 6. 8. 9. 29- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) _ I----I I 訂·! I n n n m $ 線 454146 A8 B8 C8 D8 六 申請專利範圍 憶體。 1 〇.如申請專利範圍第8項之減少存取等待時間之裝置,其 中孩集合選取資訊係儲存在一個指令快取記憶體中或係 從一個指令快取記憶體中擷取該集合選取資訊,且該M 方向且與集合相關之快取記憶體爲資料快取記憶體。 1 1 _如申請專利範園第8項之減少存取等待時間之裝置,其 中該集合選取資訊係儲存在一個運算元歷史表中或係從 方 —個運算元歷史表中擷取該集合選取資訊,且該 向且與集合相關之快取記憶體爲資料快取記憶體。 1 2.-種用以減少與集合相踔之快取記憶體之功率消耗之裝 痕’包括: a) 個集合選取儲存.體’用以儲存集,合..選取資訊· b) —個M-方向且與集合相關之快取記憶體,包括— 個陣列和-個目產彔’該目錄將-個位址的-個與集合相 關之標簽部分輸出給該陣列;及 該 〇及-個多工器,用以多工,,該目錄中—個位址的 標簽部分”,和,,該集合選取資訊,,中的一個,用以輸出— 組”該Μ _集合,,的資料。 關 U.如申請專利範園第12項之用以減少與集合相關之快取 憶體之功率消耗之裝置,其中祕方向且與集合相。 之快取記憶體爲一個指令快取記憶體。 14·如申請專利範園第13項之用以減少與集合相關之快取々 憶體之功.率消耗.之裝置,其中該集合選取資訊係儲存在 -個分支目標缓衝區中或係從一個分支目標緩衝區中擷 I_________-30- 本紙張尺度適用中國國家標準(CNS)A4規格(210 §88454 1 46六、申請專利範圍 經濟部智慧財產局員工消費合作社印製 取該集合選取資訊。 1 5 .如申凊專利範圍第1 2項之用以減少與集合相關之快取記 憶體之功率消耗之裝置,其中該M-方向且與集合相關 之快取記憶體爲一個資料快取記憶體。 1 6 _如申请專利範圍第i 2'項之用以減少與集合相關之快取記 憶體 < 功率消耗之裝置’其中該集合選取資訊係儲存在 個運算元歷史表中或係從—個運算元摩史表中擷取該 集合選取資訊j 1 7 ·如申请專利範圍第丨2項之用以減少與集合相關之快取記 憶體^功率消耗之裝置,其中該集合選取資訊係儲存在 一個指令快取記憶體中或係從一個指令快取記憶體中擷 取該集合選取資訊。. 1 8. —種利用資料位址以增加與集合相關之記憶體之存取速 度又方法,菘每一個位址包括一個位移部分、一個全等 等級索引及一個樣簽部分,該與集合相關之記憶體包括 個P車列和一個目錄,该陣列儲存資料,並分割成多個 陣列全等等級,該等陣列全等等紙分割成陣列集合,該 等陣列集合包括-條具資料的快取記憶體線,該目錄分 副成多個目錄全等等級,該等目錄全等等級分劉成目錄 集合,該等.目綠集合包括-個目錄條目,該目錄條目包 括一個位址標簽,該目錄被分割以使該等目錄條目和該 等快取記憶體線之間有-個—對―的相對應,俾使該等 位址標簽和該至少其中-條快取記憶體線相關聯,該方 法包括以下步戰: (請先閱讀背面之注意事項再,取寫本頁) _ rllll ! J--------裝----- 訂---------線J---- ,31-n n I n · 4 經濟部智慧財產局員工消費合作社印製 54146 A8 B8 C8 D8 --- --- - — -------^. 六、 申請專利範圍 利用該全等等級索引存取—個單一陣列全等等級之集 合的内容,該單一陣列全等等級係由該全等等級索引指 定的; 利用該全等f級索引存取一個單一目錄全等等級之集 合的内容’該單一目.錄全等等級係由該全等等級索引栺 定的; 產生集合選取資訊; 利用該集合選取資訊以在將該目錄指定之該單一全等 等級輸出之前選取該陣列全等等級的該等集合; 根據該集合選取資訊以從該選取的集合中該快取記憶 體線中輸出該資料。 1 9 ·如申請專利範圍第1 8項之方法.,更進一步包括以下步驟: 將該標簽部分與該目錄全等等級該等選取集合的該等 位址標簽部份比較; 將該選取的集合與該集合選取資訊比較,如果該選取 之全等等級中該其中一個位址標簽等於該位址的該標簽 部分時; 輸出一第一個控制信號以指示該存取失敗,且如該選 取之全等等級中該等所有的位址標簽均不等於該位址的 该標.簽邵分,則從該快取記憶體線中輸出的該資料爲無 效的;且如該選取的集合不等於該集合選取資謂一則輸. 出一第二個控制信號以指示該快取記憶體線中的該資料 爲無效的。 2 0 _如申請專利範園第1 8項之方法,其中該位址.包括一第一 -32- 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 χ 297公藿) ί請先閱讀背面之注意事項再,费寫本頁) --裝 I----訂---------線' 454146 A8 B8 C8 08 申5月專利範圍· 個分割部份和一第二個分割部份,該第一個分斜部i份包 括個陣列位移部分、一個陣列全筆等級索引和一個陣 列標簽部分;一第二個分割部份包括一個目錄部分、一 個目綠全等等級索引和一個目缚播簽部分,其中該陣列 全等等級索引和該目錄全等等級索引可爲不同的長度, 且其中該陣列和該目錄包括不同的集合相關性。 2 1 _如申請專利範園第2 〇項之方法,更進一步包栝以下步骤 :利用該位移部分、從該快取記憶體線中選取該欲輸出 的資料。 2 2 .如申請專利範園第1 8項之方法,更進一步包栝以下步驟 :如和”該預測之集合,,不同的—個集合具有一個位址標 簽與該陣列標簽部分相匹配時,則將資料從該選取的集 合中該快取記憶體線中輸出。 2 3 ·如申請專利範園第2 〇項之方法,更進一步包括以下步驟 :如和”該預測之集合,,不同的—個集合包括與該目綠標 簽邵分相匹配的該位址標簽時,則將資料從該選取的集 合中該快取記憶體線中輸出。 24_如申請專利範圍第ι8項之方法,其中該集合選取資訊係 由一個分支目標:緩衝區提供的。, 經濟部智慧財產局員工消費合作社印製 2 5.如申請專利範圍第2〇項之方声,其中用作指令存取之該 集合選取資訊係由丁個分支目標緩衝區提供的。 26‘如申請專利範圍第1 8項之方法,其中用作運算元存取之 該集合選取資訊係由先前的指令存取提供的。 2 7 ·如申請專利範圍第2 0項之方法,其中用作運算元存取、 -33- 本紙張尺度適用.中國國家標準(CNS)A4規格(210x297公釐) 8888 ABCD 454 彳 46 六、申請專利範圍 該集合選取資訊係由先前的指令存取提件的。 28.如申請專利範圍第18項之方法,其中用作運算元存取、, 該集合選取資訊係由一個運算元歷史表提供的。 ^ 2 9 ·如申請專利範園第2 0項之方法,其中用作運算元存取之 該集合選取資訊係由一個運算元歷史表提供的。 •IT、—J-------' Μ----- (請先閱讀背面之注音?事項再填寫本頁}I 訂經濟部智慧財產局員工消費合作社印製 •34· 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/240,348 US6418525B1 (en) | 1999-01-29 | 1999-01-29 | Method and apparatus for reducing latency in set-associative caches using set prediction |
Publications (1)
Publication Number | Publication Date |
---|---|
TW454146B true TW454146B (en) | 2001-09-11 |
Family
ID=22906170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW088122705A TW454146B (en) | 1999-01-29 | 1999-12-23 | Method and apparatus for reducing latency in set-associative caches using set prediction |
Country Status (6)
Country | Link |
---|---|
US (1) | US6418525B1 (zh) |
JP (1) | JP3542021B2 (zh) |
KR (1) | KR100333470B1 (zh) |
CN (1) | CN1296827C (zh) |
CA (1) | CA2297402A1 (zh) |
TW (1) | TW454146B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051249B2 (en) | 2006-05-29 | 2011-11-01 | Sandisk Il Ltd. | Method for preloading data to improve data-retrieval times |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6418530B2 (en) * | 1999-02-18 | 2002-07-09 | Hewlett-Packard Company | Hardware/software system for instruction profiling and trace selection using branch history information for branch predictions |
US6581140B1 (en) * | 2000-07-03 | 2003-06-17 | Motorola, Inc. | Method and apparatus for improving access time in set-associative cache systems |
JP4071942B2 (ja) * | 2001-04-27 | 2008-04-02 | 株式会社ルネサステクノロジ | データ処理装置及びデータプロセッサ |
US7707397B2 (en) * | 2001-05-04 | 2010-04-27 | Via Technologies, Inc. | Variable group associativity branch target address cache delivering multiple target addresses per cache line |
US6886093B2 (en) * | 2001-05-04 | 2005-04-26 | Ip-First, Llc | Speculative hybrid branch direction predictor |
US6785793B2 (en) | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
US20040107319A1 (en) * | 2002-12-03 | 2004-06-03 | D'orto David M. | Cache management system and method |
KR100511164B1 (ko) * | 2002-12-10 | 2005-08-31 | 정보통신연구진흥원 | 웹 검색엔진에서의 실시간 사용자 질의 분석에 기반한and 연산용 색인데이터의 캐슁 방법 |
US7237098B2 (en) * | 2003-09-08 | 2007-06-26 | Ip-First, Llc | Apparatus and method for selectively overriding return stack prediction in response to detection of non-standard return sequence |
US7099999B2 (en) * | 2003-09-30 | 2006-08-29 | International Business Machines Corporation | Apparatus and method for pre-fetching data to cached memory using persistent historical page table data |
US8117392B2 (en) * | 2003-10-22 | 2012-02-14 | Intel Corporation | Method and apparatus for efficient ordered stores over an interconnection network |
KR100980076B1 (ko) * | 2003-10-24 | 2010-09-06 | 삼성전자주식회사 | 저전력 분기 예측 시스템 및 분기 예측 방법 |
US7093075B2 (en) * | 2003-11-07 | 2006-08-15 | International Business Machines Corporation | Location-based placement algorithms for set associative cache memory |
US7266642B2 (en) | 2004-02-17 | 2007-09-04 | International Business Machines Corporation | Cache residence prediction |
US7219185B2 (en) * | 2004-04-22 | 2007-05-15 | International Business Machines Corporation | Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache |
JPWO2006109421A1 (ja) * | 2005-04-08 | 2008-10-16 | 松下電器産業株式会社 | キャッシュメモリ |
US7802055B2 (en) * | 2006-04-19 | 2010-09-21 | Qualcomm Incorporated | Virtually-tagged instruction cache with physically-tagged behavior |
US8688890B2 (en) * | 2006-12-05 | 2014-04-01 | Hewlett-Packard Development Company, L.P. | Bit ordering for communicating an address on a serial fabric |
JP4980751B2 (ja) * | 2007-03-02 | 2012-07-18 | 富士通セミコンダクター株式会社 | データ処理装置、およびメモリのリードアクティブ制御方法。 |
US8438003B2 (en) * | 2007-04-12 | 2013-05-07 | Cadence Design Systems, Inc. | Methods for improved simulation of integrated circuit designs |
US8271728B2 (en) * | 2008-11-13 | 2012-09-18 | International Business Machines Corporation | Spiral cache power management, adaptive sizing and interface operations |
US8689027B2 (en) * | 2008-11-13 | 2014-04-01 | International Business Machines Corporation | Tiled memory power management |
US8527726B2 (en) | 2008-11-13 | 2013-09-03 | International Business Machines Corporation | Tiled storage array with systolic move-to-front reorganization |
US8543768B2 (en) | 2008-11-13 | 2013-09-24 | International Business Machines Corporation | Memory system including a spiral cache |
US8065485B2 (en) * | 2009-05-22 | 2011-11-22 | Oracle America, Inc. | Method and apparatus for determining cache storage locations based on latency requirements |
CN101727311B (zh) * | 2009-12-03 | 2013-11-27 | 浙江大学 | 用于降低指令缓存功耗的分支序列缓冲器 |
US8972706B2 (en) | 2011-05-26 | 2015-03-03 | International Business Machines Corporation | Performance in predicting branches |
CN103984525B (zh) * | 2013-02-08 | 2017-10-20 | 上海芯豪微电子有限公司 | 指令处理系统及方法 |
US9781015B2 (en) | 2013-03-28 | 2017-10-03 | Hewlett Packard Enterprise Development Lp | Making memory of compute and expansion devices available for use by an operating system |
US10289467B2 (en) | 2013-03-28 | 2019-05-14 | Hewlett Packard Enterprise Development Lp | Error coordination message for a blade device having a logical processor in another system firmware domain |
EP2979171A4 (en) | 2013-03-28 | 2016-11-23 | Hewlett Packard Entpr Dev Lp | MEMORY IDENTIFICATION OF A BLADE ELEMENT FOR USE BY A OPERATING SYSTEM OF A PARTITION WITH THIS BLADE ELEMENT |
CN103279324B (zh) * | 2013-05-29 | 2015-10-21 | 华为技术有限公司 | 一种将内存中的指令提前预取到高速缓存的方法和装置 |
US10296463B2 (en) * | 2016-01-07 | 2019-05-21 | Samsung Electronics Co., Ltd. | Instruction prefetcher dynamically controlled by readily available prefetcher accuracy |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US10318419B2 (en) * | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
GB2570299B (en) * | 2018-01-17 | 2020-04-08 | Advanced Risc Mach Ltd | Increasing effective cache associativity |
CN109918023A (zh) * | 2019-02-22 | 2019-06-21 | 深圳忆联信息系统有限公司 | 基于内存受限ssd的预读取方法、装置和计算机设备 |
CN112559049A (zh) * | 2019-09-25 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 用于指令高速缓存的路预测方法、访问控制单元以及指令处理装置 |
US12014180B2 (en) | 2022-06-08 | 2024-06-18 | Ventana Micro Systems Inc. | Dynamically foldable and unfoldable instruction fetch pipeline |
US12014178B2 (en) * | 2022-06-08 | 2024-06-18 | Ventana Micro Systems Inc. | Folded instruction fetch pipeline |
US12008375B2 (en) | 2022-06-08 | 2024-06-11 | Ventana Micro Systems Inc. | Branch target buffer that stores predicted set index and predicted way number of instruction cache |
US11816489B1 (en) | 2022-08-02 | 2023-11-14 | Ventana Micro Systems Inc. | Microprocessor with prediction unit pipeline that provides a next fetch address at a rate of one per clock cycle |
US11836498B1 (en) | 2022-08-02 | 2023-12-05 | Ventana Micro Systems Inc. | Single cycle predictor |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148538A (en) * | 1989-10-20 | 1992-09-15 | International Business Machines Corporation | Translation look ahead based cache access |
US5235697A (en) | 1990-06-29 | 1993-08-10 | Digital Equipment | Set prediction cache memory system using bits of the main memory address |
US5418922A (en) * | 1992-04-30 | 1995-05-23 | International Business Machines Corporation | History table for set prediction for accessing a set associative cache |
US5634119A (en) | 1995-01-06 | 1997-05-27 | International Business Machines Corporation | Computer processing unit employing a separate millicode branch history table |
US5845323A (en) * | 1995-08-31 | 1998-12-01 | Advanced Micro Devices, Inc. | Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time |
US5918245A (en) * | 1996-03-13 | 1999-06-29 | Sun Microsystems, Inc. | Microprocessor having a cache memory system using multi-level cache set prediction |
US5966737A (en) * | 1996-06-26 | 1999-10-12 | Compaq Computer, Corp. | Apparatus and method for serialized set prediction |
US5956752A (en) * | 1996-12-16 | 1999-09-21 | Intel Corporation | Method and apparatus for accessing a cache using index prediction |
US6016533A (en) * | 1997-12-16 | 2000-01-18 | Advanced Micro Devices, Inc. | Way prediction logic for cache array |
-
1999
- 1999-01-29 US US09/240,348 patent/US6418525B1/en not_active Expired - Fee Related
- 1999-12-19 CN CNB99126911XA patent/CN1296827C/zh not_active Expired - Fee Related
- 1999-12-23 TW TW088122705A patent/TW454146B/zh not_active IP Right Cessation
-
2000
- 2000-01-21 KR KR1020000002818A patent/KR100333470B1/ko not_active IP Right Cessation
- 2000-01-26 JP JP2000017638A patent/JP3542021B2/ja not_active Expired - Fee Related
- 2000-01-28 CA CA002297402A patent/CA2297402A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051249B2 (en) | 2006-05-29 | 2011-11-01 | Sandisk Il Ltd. | Method for preloading data to improve data-retrieval times |
Also Published As
Publication number | Publication date |
---|---|
KR100333470B1 (ko) | 2002-04-25 |
JP2000222205A (ja) | 2000-08-11 |
JP3542021B2 (ja) | 2004-07-14 |
CA2297402A1 (en) | 2000-07-29 |
CN1287311A (zh) | 2001-03-14 |
CN1296827C (zh) | 2007-01-24 |
KR20000076502A (ko) | 2000-12-26 |
US6418525B1 (en) | 2002-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW454146B (en) | Method and apparatus for reducing latency in set-associative caches using set prediction | |
JP3182740B2 (ja) | 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。 | |
US6256721B1 (en) | Register renaming in which moves are accomplished by swapping tags | |
US6339822B1 (en) | Using padded instructions in a block-oriented cache | |
US6687789B1 (en) | Cache which provides partial tags from non-predicted ways to direct search if way prediction misses | |
US6442681B1 (en) | Pipelined central processor managing the execution of instructions with proximate successive branches in a cache-based data processing system while performing block mode transfer predictions | |
US4811215A (en) | Instruction execution accelerator for a pipelined digital machine with virtual memory | |
US7003629B1 (en) | System and method of identifying liveness groups within traces stored in a trace cache | |
KR100698493B1 (ko) | 좁은 피연산자들에서 계산을 수행하는 방법 및 장치 | |
US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
US6427192B1 (en) | Method and apparatus for caching victimized branch predictions | |
JP2003514299A (ja) | インデックスおよび任意の様式一致に基づいてデータを転送するストアバッファ | |
US20070033385A1 (en) | Call return stack way prediction repair | |
EP3321811B1 (en) | Processor with instruction cache that performs zero clock retires | |
JPS5991546A (ja) | 中央処理装置 | |
US6240506B1 (en) | Expanding instructions with variable-length operands to a fixed length | |
US20110320789A1 (en) | Method and Apparatus for High Performance Cache Translation Look-Aside Buffer TLB Lookups Using Multiple Page Size Prediction | |
US6542986B1 (en) | Resolving dependencies among concurrently dispatched instructions in a superscalar microprocessor | |
KR100368166B1 (ko) | 컴퓨터 처리 시스템에서 스택 레퍼런스를 변경하는 방법 | |
US6453387B1 (en) | Fully associative translation lookaside buffer (TLB) including a least recently used (LRU) stack and implementing an LRU replacement strategy | |
US6460116B1 (en) | Using separate caches for variable and generated fixed-length instructions | |
US6332187B1 (en) | Cumulative lookahead to eliminate chained dependencies | |
US6446189B1 (en) | Computer system including a novel address translation mechanism | |
JPH0773104A (ja) | キャッシュ・システム | |
US6253309B1 (en) | Forcing regularity into a CISC instruction set by padding instructions |
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 |