TW201042451A - Microprocessor, method for accessing data cache in a microprocessor and computer program product - Google Patents

Microprocessor, method for accessing data cache in a microprocessor and computer program product Download PDF

Info

Publication number
TW201042451A
TW201042451A TW099116092A TW99116092A TW201042451A TW 201042451 A TW201042451 A TW 201042451A TW 099116092 A TW099116092 A TW 099116092A TW 99116092 A TW99116092 A TW 99116092A TW 201042451 A TW201042451 A TW 201042451A
Authority
TW
Taiwan
Prior art keywords
array
cache
data
modified
functional unit
Prior art date
Application number
TW099116092A
Other languages
English (en)
Other versions
TWI417725B (zh
Inventor
Rodney E Hooker
Colin Eddy
G Glenn Henry
Original Assignee
Via Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW201042451A publication Critical patent/TW201042451A/zh
Application granted granted Critical
Publication of TWI417725B publication Critical patent/TWI417725B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays

Landscapes

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

Description

201042451 六、發明說明: 【發明所屬之技術領域】 曰本lx明係有關於微處理器内之快取記憶體,特 別疋有關於其快取列之一致性狀態架構。 【先前技術】 現7的微處理器包含快取記憶體(cache memory),用來減少記憶體存取指令之延遲。快取記 憶體通常包括資料陣列以及標籤陣列;資料陣列用 以儲存資料的實際快取列(cache Hne),而標籤陣 2,用以儲存與資料陣列内之快取列相關之位址標 籤。私籤陣列所儲存的每一項目也一併記錄著快取 列之狀態。此外,快取列狀態用來指示資料陣列内 之對應快取列是否為有效的’以及該快取列自被分 配後是否已被修改過。 另外’現今的微處理器,特別是超純量 (SUperscaiar)處理器,包括許多個功能單元可對快 取5己體進行存取,例如不同的载入單元與儲存單 元。快取記憶體的資料陣列與標籤陣列通常具有多 重埠使仵母一功能皁元可以同時存取資料陣列與 標籤陣列’以將效能最佳化。然而,具多重蜂之陣 列將大幅地增加面積與功率消耗。再者,在從事微 處理器的平面規劃(fl〇or_planning )時,因為陣列 面積通常已相對較大,若更大時將會更難以將其納 CNTR2485I00-TW/ 0608-A42144-TW/fmal 4 201042451 入0 τ對此一問題之解 列,使得每—功能單_ 、方式,即是複製標籤陣 使得標籤陣列變成單1有自己的標籤陣列,進而 合微處理器上蜂:^然此解決方式需要集 小,便減輕平面規劃之負擔,且陣列面積較 可單獨電源管理的,額外地§ ; •一標籤陣列 Ο 〇 使用此—解決方式之有利⑤電源管理°然而, 或狀能需#f在於,當快取列之標籤及/ 而要更新時,必須存取所有標籤陣列,用以 =母:個標籤陣列所相應的快取列之標籤及/或 狀心、。廷將消耗許多標籍 次 更新時,所有標藏陣列m取頻寬,且進行 述的=:需要一種快取記憶想架構,用《解決上 【發明内容】 界勺拓t面’本發明提供一種微處理器。該微處理 =匕括第一與第二功能單元’每一功能單元於一資 料絲及被配置用以存取該資料快取。該資料快取包 括-貝料陣列’具有一既定架構。該資料陣列包括— 寫入埠該第-功能單元透過該寫入埠將資料寫入至該 貧料陣列之一快取列。該資料快取包括一修改位元陣 列’具有該資轉狀㈣應既定架構。該修改位 兀陣列包括-寫入埠,該第一功能單元透過該寫入蜂 CNTR2485I00-TW/ 〇608-A42144-TW/final 5 201042451 設定該修改位元陣列之一已修改位元,用以指示於該資 料陣列中,由4第—功能單元所寫人之該對應快取列已 被^改。玄修改位元陣列亦包括一讀取蜂,該第二功 能單元透過該讀取埠從該修改位元陣列讀取該已修改 位兀,用以判斷該快取列是否已被修改。該資料快取 亦包括一標籤陣歹|卜具有該資料陣列之該對應既定 架構。該標籤陣列包括一讀取埠,該第二功能單元透 過该讀取埠從該資料陣列中讀取該對應快取列之一部 分狀態。該部份狀態不指示該快取列是否已被修改。該 標籤陣列中不包含有提供該第一功能單元更新該快取 列之該部分狀態的一埠。 另一方面,本發明提供一種微處理器之資料快 取存取方法,用於第一與第二功能單元,其中,該 資料快取包括具有一既定架構之一資料陣列、與具 有该對應既定架構之一標籤陣列。該方法包括該第 一功能單元透過該資料陣列之一寫入埠,將資料寫 入至該資料陣列之一快取列。該方法亦包括設定該 資料快取之一修改位元陣列之一已修改位元,用以指示 於该資料陣列中,由該第一功能單元所寫入之該對應快 取列已被修改,其中,該修改位元陣列具有該資料陣列 之该對應既定架構。該第一功能單元透過該修改位元陣 列之一寫入埠設定該已修改位元。該方法亦包括該第 一功能方塊透過該修改位元陣列之一讀取埠,讀取 該修改位元陣列之該已修改位元,用以判斷該快取 CNTR2485I00-TW/ 0608-A42144-TW/fmal 6 201042451 列疋否已被修改。該方法亦包括該第二功能單元透 過該標籤陣列之一讀取埠,讀取該資料陣列之該對應 快取列之一部份狀態。該部份狀態不指示該快取列是 否已被修改。該標籤陣列中不包含有提供該第一功能單 元更新該快取列之該部分狀態的一埠。 另一方面’本發明提供一電腦程式產品’用於 電腦λ置’該電腦程式產品包括一電腦可使用之 ❹儲存媒體,包括該儲存媒體内建之電腦可讀取程式 碼,用以指定微處理器。該電腦可讀取程式碼包括第 一転式碼,用以指定第一與第二功能單元,各自耦 接於一貧料快取及被配置用以存取該資料快取。該電 腦可讀取程式碼亦包括第二程式碼,用以指定該資 料快取。該資料快取包括一資料陣列,具有一既定 架構。該資料陣列包括—寫人埠,該第—功能單元透 過該寫入埠將資料寫入該資料陣列之一快取列。該資 ° 料快取包括一修改位元陣列,具有該資料陣列之該 對應既定架構。該修改位元陣列包括一寫入埠,該 第一功能單元透過該寫入埠設定該修改位元陣列之一 已修改位兀,用以指示於該資料陣列中,由該第一功能 單兀所寫入之該對應快取列已被修改。該修改位元陣 列亦包括一讀取埠,該第二功能單元透過該讀取埠 讀取該修改位元陣列之該已修改位元,用以判斷該 快取列是否已被修改。該資料快取亦包括一標籤陣 列,具有該資料陣列之該對應既定架構。該標陣 CNTR2485I00-TW/ 0608-A42144-TW/fmal 1 201042451 —讀取埠’該第:功能單元透過該讀取埠從該 2 ^餘該對應絲狀—部分㈣。該部份狀 '曰不該快取列是否已被修改。該標籤陣列中不包含 有提供該第一功能單元更新該快取列之該部分狀態的 一蜂。 ^ 本2明之優點在於快取列之修改需要對應地更 斤二狀恶,修改位元陣列之存在減輕了存取標籤陣 列來^新快取列狀態之需求,從而減少標籤陣列之 存取里。除此之外,於其他具有多重標籤陣列之實 # Η中修改位元陣列之存在簡化了微處理器内標 鐵陣列之平面規劃,使其具有較佳電源管理,且沒 有上述額外頻寬消耗之問題。 一為使本發明之上述目的、特徵和優點能更明顯 易丨重,下文特舉實施例,並配合所附圖式,詳細說 明如下。 【實施方式】 多考第1圖’係顯示依據本發明之微處理器1 〇 〇 方塊圖。微處理器100包括指令快取(instructi〇n cache) 102 ’用以儲存程式指令。這些程式指令是微 處理裔100自系統記憶體(未圖示)所取得且由微 處理器100執行。舉例而言,程式指令包括用以存 取记憶體之指令,像是x86 MOV、PUSH或POP指 •7,或者將導致微處理器1〇〇存取記憶體的指令, CNTR2485IOO-TW/ 0608-A42144-TW/fma] 〇 201042451 像是若收到轉譯查詢緩衝器不命中(translation lookaside buffer,TLB, missing)訊號時執行頁面表 格查找(page table walk)。 如支處理器100亦包括指令轉譯器(instruction translator) 104,用以由指令快取ι〇2接收指令,且 將指令(亦被稱為巨集指令)轉譯為一或多個微指 令或為微操作(micro_operati〇ns)。微操作係指微處
理器110之執行單元與記憶體子系統112實際執行 之簡化指令。特別地,微指令可包括载入微指令與 儲存微指令,或者包括載入指令與儲存指令。載入 指令,係用以將記憶體某位置之内容載入至微處理 器 100 之結構化暫存器(architecturairegister) 116 中:儲存指令’係用以將微處理1 1GG之結構化暫 存器Π6之内容儲存至記憶體某位置。於其他之實 施例中’载人與儲存指令,係為微處理器⑽之原 生指令集之一部分。 微處理器⑽_包括暫存器別名表(register aH=Me,RAT)康,用以接收來自指令轉譯器ι〇4 暫存器別名表1〇6依照程式順序接收來自 1 曰:::!Γ04之轉譯指令,以及決定微處理器1〇〇 未退出指令之每一指令之相依性。暫存器 :名表106儲存與微處理器100内之每一未退奸 “目關之暫存器重命名資訊。暫存器重命名資心 CNTR2485I00-TW/ 0608-Α42144-TW/fmal 9 201042451 括程f順序,則重排序緩衝器(reorder buffer, ROB ) 116錯此依照程式順序退出指令。在指令分配至指 令排序器108之前’暫存器別名S 106為每-指令 在重排序緩衝器U6配置—筆項目。當指令來源運 算子根據暫存器別名表1〇6所產生之相依性資訊判 斷為可使用時且當執行單元與記憶體子系統ιΐ2為 可使用$才曰7排序器108由暫存器別名表106接 收“ 7 ϋ將^令發送至執行單元與記憶體子系統 112°。於一實施例中’微處理器議為一亂序執行微 處理器(out-0f-order executi〇n如⑽㈣⑽⑽小重排 序緩衝器116輕接於暫存器別名表1()6、指令排序 器1〇δ、以及執行單元與記憶體子系統112。 、行單元與a己憶體子系統丨丨2包括·資料快取 ⑶、載入單幻22、儲存單元124、儲存㈣^職^ =6、二階(level_2,⑷快取132、與匯流排介面 早凡(bUSlnterfaceunit,BIU) 134,均麵接於資料 快取128。於此,載入單元122、儲存單元a*與儲 存仔列126,可被稱為功能單元。載入單元122執 行載入指令,以由資料快取128載人f料至結構化 暫存器116。儲存單元124與儲存件列126執行儲 存指令’ _將結構化暫存器116之轉儲存於資 料快取128。匯流排介面單^ 134,作為微處理器 1〇〇與微處理器刚匯流排之介面,使得微處理器 00傳輸貢料至記憶體與週邊裝置。— CNTR2485I00-TW/ 0608-Λ42144-TW/fmal ·Λ ’ 匯 10 201042451 Ο 〇 排介面單元134窺探(snoop)微處理器100匯流排, 並且對應地執行針對資料快取128之窺探操作。除 此之外,快取列將由資料快取128收回至二階快 取。於一實施例中’由於資料快取128之各種陣列 (第2圖之m/歷議8) _個時脈週期來 進行存取,因此,載入單元122、儲存單元124及 儲存佇列126均為多重階層之管線架構。下文將詳 細說明資料快取128之架構,以及與載入單元122、 儲存單元124、儲存佇列126、二階快取132及匯流 排介面單元134間之互動。 於一實施例中,微處理器、100之巨集架構為 1^:32巨集架構(亦稱為χ86架構)。如果一個處理 器,夠正確地執行大多數被設計用來於ΙΑ-32微處 理器上執行之制程式,㈣微處理器被視為具有 ΙΑ-32巨集架構。而一個應用程式正確地被執行是指 能得到該應用程式所·的結果。然而,其他實施 例中,微處理器之巨集架構可有別於Χ86巨集架 構,不過仍包括資料快取128及修改位元陣列216 (於第2圖中),用以實現其優點。 參考第2圖,係顯示依據本發明第1圖微處理 态1〇〇 +之執行單元與記憶體子系統112部份方塊 圖如第2圖所不,係顯示第〗圖之執行單元與記 匕版子系、统112之载入單元122、儲存單元】μ與 CNTR2485I〇〇.TW/0608-A42144-TW/fi 11 201042451 列二第二圖所示的資料快取128包含第2 改衍一 ώ 軚紙陣列212、儲存標籤陣列214、修 例令列二6與資料陣列218。於第2圖之實施 之單—人彳錢陣列212包括純於载人單元122 另-讀it寫入埠,而載入標籤陣列212不包含有 124更^^人埠連接至儲存單& 124,供儲存單元 更新載入標籤陣列212中 包括耦接㈣入置”項資料陣列218 伊籤陳= 單一讀取/寫入埠;儲存 :入追4包括耦接於儲存單幻24之單-讀取/ ,’'阜’而錯存標籤陣列214不包含有另一讀取/寫 至載入單元122’供載入單元122更新儲 包:Γ:列214中的項目;以及修改位元陣列216 t 載入單元122之寫入埠及輕接於儲存單 讀取埠。於一實施例中,修改位元陣列216 既=寫入(write_through)陣列’也就是說,於一 ==脈週期中,當儲存單元124讀取修改位元陣 之位置與載入單元122寫入修改位元陣列216 之^相同時’則修改位元陣列216將該位置新寫 :::提供至儲存單元124。於其他實施例中,資 二、128包括衝突檢測與回復邏輯,用以檢測上 :的衝,’並ί於下一時脈週期中’提供新寫入數 >。由於儲存單元122與資料陣列218間具有單一 =/寫人埠’儲存㈣126將執行—快取寫入請求 並提供至第2圖實施例之載入單元122。 CNTR2485I00-TW/ 〇608-A42l44-TW/finaI \2 201042451 載入標籤陣列212、儲存標籤陣列214及修改位 兀陣列216之架構方式與資料陣列2〗8相同,且載 入I籤陣列212、儲存標籤陣列2丨4、及資料陣列 218係由許多個儲存元件所組成。舉例來講,於一 實,例中,資料陣列218、载入標籤陣列212、儲存 標籤陣列214與修改位元陣列216,各自為四集合 關聯記憶體陣列(4_way set ass〇ciative咖二 〇 memory array)’ 藉由載入(1 ⑽0、儲存(store)、 窺探(Sn〇〇P)與收回(eviction)位址之索引部份 (較低位址位元),用以編成索引,其中,該位址用 以選擇資料陣列218之一集合或一列,且每一集合 具有四項目。於資料陣列218之某一被選中的集: 之每一項目將儲存一快取列。於載入標籤陣列212 與儲存標籤陣列214之該被選中的集合之每一項目 ,儲存對應至資料陣列218之該快取列的一位址標 〇 籤與快取列狀態。於該位元陣列216之該被選中的 二口之每一項目將儲存一已修改位元,用以指示資 料p車列218之對應快取列是否被已修改。在另一實 ,例中,資料陣列218、載入標籤陣列212、儲存標 籤陣列214與修改位元陣列216,各自為M集合關 聯記憶體陣列(M-Way set ass〇ciative以㈤咖腑乂 array ) ’ M是自然數,例如M=2,即資料陣列、 载入標籤陣列212、儲存標籤陣列214與修改位元 陣列216,各自為二集合關聯記憶體陣列,而每個 CNTR2485I00-TW/ 0608-A42144-TW/final n 201042451 陣列可包含有N個集合。於一實施例中,根據習知 之MESI快取一致性協定,快取狀態為四種可能狀 態其中之一,該四種可能狀態為:已修改(M〇dified ) 狀態、獨佔(Exclusive)狀態、共用(Shared)狀 態或無效(Invalid)狀態。然而,其他實施例中’ 修改位元陣列216用以儲存已修改位元,表示對應 之快取列已修改,而且已修改位元可用以計算其他 快取一致性協定架構中之快取列完整狀態。於一實 把例中,g資料快取12 8分配一快取列至資料陣列 218時,也同時將該快取列之完整MESI狀態寫入至 載入標籤陣列212以及儲存標籤陣列214,並清除 修改位元陣列216之對應已修改位元。於另一實施 例中,當資料快取128使快取列無效時,清除修改 位元陣列216之對應已修改位元。 於第2圖之實施例中,除了快取寫入請求226 外,載入單元122亦處理載入請求222與收回請求 因為這些操作必須存取資料陣列218,而且載 入單元122為耦接至資料陣列21 8之單一讀取/寫入 阜之唯單元。於第2圖之實施例申,儲存單元124 处里儲存4求228與窺探請求224,係各自配合第4 圖與第5圖詳細說明如下。 於第2圖之貫施例中,資料快取j 28持續更新 载入標籤陣列212,用以反映資料陣列218之對應 CNTR2485I〇〇.TW/〇6〇8a42i44 -TW/fmal μ 201042451 快取列之完整狀態。然而,資料快取128並不會為 了反映資料陣列218之對應快取列之完整狀態而持 續更新儲存標籤陣列214。具體地,當儲存佇列126 執行一快取寫入請求226來更新一快取列時,儲存 標籤陣列214並未被更新為快取列之新MESi狀 態。相反地,載入單元122設定修改位元陣列216 之對應已修改位元。因此,儲存標籤陣列214僅儲 存快取列之部份MESI狀態,而修改位元陣列216 儲存之已修改位元,用來表示快取列已被修改。接 著,當儲存單元124需要知道快取列之完整的mesi 狀心日守儲存單元124 —起讀取修改位元陣列216 之快取列之已修改位元234與儲存標籤陣列214之 快取列之部份MESI狀態232,且儲存單元124之組 合邏輯208將使用第3a圖之表i或第3b圖之表2 之任一不意圖來計算快取列之完整MESI狀態236 〇 (亦提供給儲存佇列126),其中,第3a圖與第3b 圖將詳細說明如下。 參考第3a圖,係顯示依據本發明第丨圖之資料 陕取128所使用之表1示意圖,透過部分快
取列狀態與一已修改位元,用以計算出完整MESI 快取列狀態。 表1包括二個攔位。第一欄位指定資料陣列218 之對應快取列之部份MESI快取列狀態,例如自第2 CNTR2485I00-TW/ 〇608-A42l44-TW/fmal 15 201042451 f之儲存標籤陣列214所讀取之部份MESI狀態 2。t攔位指糊陣列218之制快取列之已 >改位兀’例如自修改位元陣列216所讀取之已修 改位7L 234。第三攔位指定資料陣列之對應快 取列之凡王MESI狀態,例如第2圖之組合邏輯2〇8 所產生之完整MESI狀態236。 於第一列中,表1係顯示若部份MESI狀態為 =改狀態時’則不管已修改位元之數值為何,所 計算之完整MESI狀態亦為已修改狀態。於第二列 中,表1係顯示若部份MESI狀態為獨佔狀態且已 修改位元被設定時,所計算之完整MESI狀態為已 修改狀態。於第三列中,表】係顯示若部份mesi 狀態為獨佔狀態且已修改位元被重置(聰。時, 所計算之完整MESI狀態為獨佔狀態。於第四列中, 表1係顯示若部份MESI狀態為共用狀態且已修改 位7L被設定時,計算之完整MESI狀態為已修改狀 恝。此狀況指示快取列正處於被升級至獨佔狀態之 過耘中,且會發生早期儲存合併。第3a圖之實施例 具有此狀況之優勢,且將快取列升級至已修改狀 態。於第五列中,表1係顯示若部份MESI狀態為 共用狀態且已修改位元被重置時,所計算之完整 MESI狀恶為共用狀態。於第六列中,表1係顯示若 部份MESI狀態為無效狀態,則不管已修改位元之 數值為何,所計算之完整MESI狀態為無效狀態。 CNTR2485I00-TW/ 0608-A42144-TW/final 201042451 從以上的實施例中,可以理解部份MESI狀態無法 正確指出所對應的快取列是否已被修改,必須加上該 快取列所對應的已修改位元,計算得到完整MESI狀 態才能正確判斷該快取列的狀態是否為已修改狀 態。換句話說,該快取列所對應的已修改位元可以 被視為另一個部分MESI狀態,而該快取列之完整 MESI狀態可經由兩個部分MESI狀態加以計算得 到。 〇 參考第3b圖係顯示依據本發明另一實施例,說 明第1圖之資料快取128所使用之表2示意圖,透 過部分MESI快取列狀態與一已修改位元,用以計 算出完整MESI快取列狀態。表2類似於第3a圖之 表1。然而,於表2中,若部份MESI狀態為共用狀 態,則不管已修改位元之數值為何,所計算之完整 MESI狀態為共用狀態。 〇 參考第4圖,係顯示依據本發明第1圖之微處 理器100之操作流程圖,其中,微處理器100具有 第2圖實施例之執行單元與記憶體子系統112,用 以執行一儲存指令。流程始於步驟模塊402。 於步驟模塊402中,儲存單元124接收儲存請 求228。接收儲存請求228後,儲存單元124針對 與儲存位址相關之快取列,執行儲存詢問操作。流 程前進至步驟模塊404。 CNTR2485I00-TW/ 0608-A42144-TW/fmal 17 201042451 於步驟模塊404中,針對與儲存指令之儲存位 址相關之快取列,儲存詢問操作從儲存標籤陣列2 j 4 讀取部份MESI狀態232,並從第2圖之修改位元陣 列2!6讀取已修改位元234。流程前進至步騾模塊 406 ° 於步驟模塊406中,根據第3a圖之表丨或第讣 圖之表2,儲存單元124之組合邏輯208計算快取 列之π整MESI狀態236。流程前進至步驟模塊4〇8。 於步驟模塊408中,儲存單元124於儲存佇列 126 t分配-項目’並將由儲存請求228所指定之 儲存資料及儲存位址寫人至分配項目。流 步驟模塊412。 於決定步驟模塊412中,儲存佇列126判斷 驟模塊406所計算之完整MESI狀態236是否 =狀態或獨佔狀態其中之一。若步驟模塊修所 整MESI狀態236為已修改狀態或獨佔狀 :/、中之一,則流程前進至步驟模塊416,否則, 流程前進至步驟模塊414。 、 於步驟模塊414中,儲左於s, m ^入 介而里-” _甲储存心列126命令匯流排 π 4執行一匯流排寫入無效操作,使得且 ===其他快取之快取列無效,並取得快 獨佔所有權。資料快取128回應地將 戴陣列幻2與儲存標籤陣列21 :、 CNTR24_隱A42i44 Tw/fmai 18 1 狀態升級
20104245J 至獨佔狀態。流程前進至步驟模塊416。 於步驟模塊416中,儲存佇列126執行一快取 f入請求226,用以指定新MESI狀態為已修改狀 態,並將該快取寫入請求226提供至載入單元122。 流程同時前進至步驟模塊426與決定步驟模塊418。 八於步驟模塊426中,載入單元122將與儲存指 令之儲存位址相關之快取列的資料寫入資料陣列 〇 128對應之項目。 另一方面,於決定步驟模塊418中,載入單元 122判斷步驟模塊4〇6所計算之完整狀態 疋否為已修改狀態。若步驟模塊406所計算之完整 MESI狀態236為已修改狀態,則流程結束,否則, 流程同時前進至步驟模塊422與決定步驟模塊424。 於步驟模塊422中’針對與儲存指令之儲存位 〇 址相關之快取列,載入單元122將已修改狀態寫入 至載入標籤陣列212對應於該快取列之項目。流程 結束於步驟模塊422。 於步驟模塊424中’針對與儲存指令之儲存位 址相關之快取列,载入單元122設定修改位元陣列 216對應於該快取列之項目中之已修改位元。儘管 這時儲存標籤陣列214並未同時記錄快取列之完整 MESI狀態(也就是說部份MESi狀態232不是已修 CNTR2485I00-TW/ 〇6〇8-A42144-TW/final 19 201042451 改狀您),這樣的設計有助於之後儲存單元丨24得 =計算資料陣列218之對應快取列之完整MESI狀 態236。流程結束於步驟模塊424。 由第4圖之流程圖中可發現,當資料快取128 執仃快取寫入請求226,用以修改資料陣列218之 快取列時,資料快取128對具有已修改新狀態之載 入標籤陣列212進行更新至最新的已修改狀態(除 非狀態已經為已修改狀態,如第4圖所示之相關步 驟模塊418、422與424),並設定修改位元陣列216 之對應已修改位元。然而,這樣設計之優點在於, 貝料快取128並沒有對儲存標籤陣列214更新為已 修改狀態。不過,儲存單元124可透過同時存取儲 存標籤陣列214與修改位元陣列216,如第4圖之 相關步驟模塊404 (或者第5圖之步驟模塊5〇4 )所 示,用以计异快取列之完整MESI狀態236,如第4 圖之相關步驟模塊406(或者第5圖之步驟模塊5〇6) 所示。 參考第5圖,係顯示依據本發明第丨圖之微處 理為100之操作流程圖,其中,微處理器i 〇〇具有 第2圖實施例之執行單元與記憶體子系統112,用 以執行一無效窺探請求。流程始於步驟模塊5〇2。 於步驟模塊502中,儲存單元124接收一無效 窺探請求(invalidating snoop request) 224,儲存單 CNTR2485I00-TW/ 0608-A42144-TW/final 20 201042451 元124針對與窺探位址相關之快取列,對自己執行 一窺探詢問操作。流程前進至步驟模塊504。 於步驟模塊504中’針對與窺探位址相關之快 取列’窺探詢問操作從儲存標籤陣列214讀取部份 MESI狀態232 ’並從第2圖之修改位元陣列216讀 取已修改位元234。流程前進至步驟模塊506。 於步驟模塊506中,儲存單元124之組合邏輯 〇 208根據第3a圖之表1或第3b圖之表2其中之—, 用以計算快取列之完整MESI狀態236。流程前進至 決定步驟模塊508。 於決定步驟模塊508中,儲存單元124判斷步 驟模塊506所計算之完整MESI狀態236是否為已 Ο改狀,¾。若疋’流程前進至步驟模塊5丨2 ’否則, 流程前進至步驟模塊514。 〇 八於步驟模塊512中,儲存單元124命令匯流排 介面單元134執行匯流排操作,用以將修改快取列 寫回至系統記憶體。流程前進至步驟模塊514。 於步驟模塊5M中,儲存單元124對自己執行 一狀態更新操作,並對載入單元122執行一狀態更 ,作,每一更新係指定新卿狀態為無效狀態。 〜程同時前進至步驟模塊516、518與522。 於步驟模塊516中,斜斟&盘柯& , τ 矸對與窺採位址相關之快 CNTR2485I00-TW/ 〇6〇8-Α42144^/&1η1 21 201042451 取列,载入單元122將無效狀態寫入至載入標鐵陣 列212對應該快取列之項目。流程結束於步驟模塊 516 ° 於步驟模塊518中,針對與窥探位址相關之快 取列,載入單元122清除修改位元陣列216項目對 應《亥决取列之已修改位元。於—實施例令,當資料 陣列218項目為無效時,資料快取12 8並不重置修 改位元陣列216之已修改位元,而是等到對應快取 列被分配至資料陣列218時重置該已修改位元。流 程結束於步驟模塊518。 於步驟模塊522令,針對與窺探位址相關之快 取列,儲存單元124將無效狀態寫入至儲存標籤陣 列214對應該快取列之項目。流程結束於步驟模 522 〇 ' 於第2圖之實施例中,由於儲存單元丨24管線 不像載入單元122管線繁忙,因此窺探詢問操作由 儲存單元124管線來處理。然而,於另一實施例中, 窺探詢問操作由載入單元122處理,而非儲存單元 U4,係因載入標籤陣列212亦提供快取列之完整 MESI 狀態。 70 於第2圖之實施例(以及第6、9與12圖之與 施例)中,載入請求222與收回請求242由載入^ 元122處理,係因載入單元122可存取資料陣列2 = CNTR2485I00-TW/ 0608-A42144-TW/fmal 22 201042451 ,一§胃料。處理載人請求222僅需知道載入位 疋否命中資料快取128,也就是說,處理載入請 =222僅需知道是否有—快取線可表示著戴入地址 ::於資料快取128中。(若載入位址之索弓丨部份編 成索引可指引至載入標籤陣列212之一集合且載入 :址之標籤部份可與該集合中的其中一有效標籤配 對,則表示载入位址命中資料快取128。.)麸而, 收回操作242 (與窺探詢問)需要知道快取列之完 整MESI狀態。收回操作242自第2圖實施例之載 入標籤陣列212中接收完整MESI狀態。 —進步,最低限度上,儲存操作僅需知道所指 疋,取列之狀態是否至少為獨佔狀態(亦即,順工 狀態為獨佔狀態或已修改狀態),以便知道是否可立 即寫入快取列,或者,儲存操作在進行步驟模塊々Μ 時是否需要先取得快取列之獨佔所有權。然而,第 4圖實施例包括對決定步驟模塊418之進行最佳化 設計’也就是當執行步驟模塊418時,若所指定快 取列之狀態已經為已修改狀態,且修改位元陣列 之已修改位兀被設定時,則儲存單元124放棄更新 載入標籤陣列212與修改位元陣列216,進=達到 消耗較少功率之優點。 一般而言,當需要知道快取列之完整Mesi狀 態時’才需要對修改位元陣歹,j 216進行讀取操作。 CNTR2485I00-TW/ 0608-A42144-TW/final 201042451 122或者儲存單元 需對修改位元陣列 任一功能單元進行 212/214 ’ 以及(2) 問操作時(或者儲 7圖實施例所包含 因此,任一功能單元(載入單元 I24)滿足下列條件時,功能單元 216進行讀取,其條件是:” 快取寫人時並未更新其標籤陣列 任功能單元進行收回或窺探詢 存洶問刼作,具有在第4圖及第 之最佳化)。 戈明6圖’係、顯示依據本發明另—實施例, 體微處理器100中,執行單元與記憶 多方=部份方塊圖。第6圖之實施例在許 ^圖之貝施例,且相同編號之元件 為相似的。茲就不同處加以說明。 ^第6圖之實施例t ’修改位元陣列216具有 兩個言買取埠,苴令一瑝田 _ 、f I用以將已修改位元234提供 ^存早=124,而另一埠則將已修改位元634提 载:早元122。除此之外,修改位元陣列216 寫入蟑純於儲存“ 126,於執行快取寫入請 求226時,儲存仔列126藉以更新修改位元陣列216。 ^ 6圖之#_中’載人單元122亦包括組 口璉專608,用以從載入標籤陣列212接收部份 MESI狀悲632,並從修改位元陣列216之第二讀取 埠接,修該已修改位元634,並使用如第3a圖之表
1或第%圖之表2其中之一,用以計算完整MESI CNTR2485I00-TW/0608-A42l44-TW/fmal 24 201042451 狀態63 6
於载入Μ -貫施例中,資料陣列218包括耦接 之寫入:=22之讀取蜂,以及轉接於館存仵歹"26 勃:: 以致能儲存佇列對資料陣列21S 仃、寫入請求226。也就是說,儲存 直接對資料陣列s 文% , ^ 126 寫入(! ^ 位元陣列216執行快取 寫入切求226’而非將其傳送至第2圖之载 Ο 〇 二。因此,載入標蕺陣列212與儲存標鐵陣列叫 Ρ不會因為處理快取寫人請求咖而被更新 ^改新狀態°更確切'地說’處理快取寫入請求226 叹疋修改位元陣歹,J 216之對應已修改位元。 參考第7圖,係顯示依據本發明第1圖之微声 :里器⑽之操作流程圖,其中,微處理器100具; 弟6圖貫施例之執行單元與記憶體子系統112,用 以執行一儲存指令。第7圖之流程圖與第4圖之流 程圖相似。然而’帛7圖之步驟模塊716取代第^ 圖之步驟模塊416,其中’儲存佇列126執行直接 針對資料陣列218之快取寫入請求226,進而寫入 儲存資料。除此之外’因為資料陣列218於步驟模 塊716中直接被寫人,第7圖之流程圖並無包括第 1圖之步驟模塊426。進一步,因為儲存仔们26並 ’又有將新的修改快取列狀態更新至儲存標藏陣列 2!2(亦沒有更新至儲存標籤陣列214),則於第7 0608-Α42144-TW/fmal 25 201042451 圖之流程圖中,並益舍括笛/ S3 M h 广 圖之步驟模塊心2。 取後,饭如於決定步驟模塊4
灿能*此* a 所判斷完整MESI 狀悲亚非為已修改狀態,則笫 5, ,, ^ , ⑴弟7圖之步驟模塊724 取代弟4圖之步驟模塊似,使得 行直接針對修改位元陣列216 126執 996,田、^ 之决取寫入請求 6 ’用以設定對應已修改位元。 依據本發明第1圖實施丫 W只她例之倣處理器100之操 作,,、第5圖所示之操作相似发 目七墙 俏似具中,微處理器100 具有第6圖實施例之勃并苗_ 11〇 執订早凡與記憶體子系統 ’用以執行一無效窺探請求。 。。參考第8圖,係顯示依據本發明第丨圖之微處 理為100—之操作流程圖’其中,微處理器_具有 第圖m知例之執行單元與記憶體子系統工12,用 以執行一收回請求242。流程開始於步驟模塊8〇2。 咕於步驟模塊802中,載入單元122接收一收回 月求242後,载入單元122針對與收回位址相關之 决取列,執行一收回操作。流程前進至步驟模塊8〇4。 於步驟模塊804中,針對與收回位址相關之快 取列,收回操作從载入標籤陣列212讀取部份MESI 狀心632,並從第6圖之修改位元陣列us讀取已 I改位元634。流程前進至步驟模塊806。 方、v ‘1^模塊806中’載入單元^ 22之組合邏輯 CNTR2485I00-TW/ 0608.A42l44.TW/fina! 201042451 208根據第3a圖之表1或第3b之表2,用以計算快 取列之完整MESI狀態636。流程前進至步驟模换 808。 於步驟模塊808中,載入單元122從資料陣列 讀取收回位址所指定之快取列。流程前進至步 驟模塊812。 於步驟模塊812中,載入單元122將步驟模塊 ❹ 806所計算之完整MESI狀態與步驟模塊808所讀取 之快取列提供至第1圖之二階快取132,用以執行 收回操作。流程結束於步驟模塊812。 參考第9圖,係顯示依據本發明另一實施例, 說明於第1圖之微處理器1〇〇中,執行單元與記憶 ,子系統112之部份方塊圖。第9圖之實施例在許 多方面類似於第6圖之實施例,且相同編號之元件 Q 為相似的。茲就不同處加以說明。 於第9圖之貫施例中,修改位元陣列216包括 單一碩取埠,而非如第6圖之兩個讀取埠。因此, 儲存單元124並不包括組合邏輯2〇8,而且不會產 生π整MESI狀態236。相反地,儲存標籤陣列214 將邛伤MESI狀態232直接提供至儲存佇列126。所 以第9圖之資料快取128所執行之儲存請求228 與^前實施例不同,其内容詳述於下文第1〇圖相關 之說明。最後,載入單元122接收窺探請求224, CNTR2485I00-TW/ 0608-A42144-TW/fmal ?7 201042451 而非儲存單元124。 128 ,、'·α果疋,第9圖之資料快取 所執仃之窺探請求224亦右ζ门 11 „ 么“4亦有不同,將於下文第 陣列216 °於第9圖之實施例中,修改位元 124之第包括將已修改位元提供至儲存單元 元mlT取璋,這是因為窺探詢問係由載入單 行如i於第1G圖中儲存單元124並沒有執 圖與第7圖中決定步驟模塊々a所進行的 狀離,禮^i因此並不需要知道快取列之完整MESi 1 〇心圖之=道M E S1狀態是否至少為獨佔狀態(第 之二、1U拉塊】〇12) ’其可由儲存標籤陣列214 之# MESI狀態232來加以判斷。 理-t^ W圖’係顯示依據本發明第1圖之微處 :1之操作流程圖,其中,微處理器1〇〇具有 圖貝轭例之執行單元與記憶體子系統⑴,用 =執行-儲存指令。第1Q圖之流程圖與第7圖之流 .相似。然而’第10圖之步驟模塊1〇〇4取代第 7圖之步驟模塊404,這僅僅將部份MESI狀態232 從儲存標籤陣列214被讀取,而非如第7圖步驟模 塊4〇4所示,需從修改位元陣列216讀取已修改位 凡234。除此之外,第1〇圖並不存在步驟模塊4的, 且流㈣接由步驟模塊1〇〇4前進至步驟模塊彻。 更進第10圖之決定步驟模塊1012取代第7 圖之步驟模塊412 ’這使得儲存符列126將判斷在 收之28部份聰1狀態是否至少為 201042451 獨佔狀態(而非如第7圖之決定步驟模塊412判斷 於其步驟拉塊406中所計算之完整MESI狀態236 是否為獨佔狀態或已修改狀態)。最後,由於儲存佇 列126不需要存取快取列之完整Mesi狀態,因此, 第10圖之流程圖不包括第7圖之決定步驟模塊 418,不用進行第7圖之決定步驟模塊Aw之最佳 化,相反地,流程直接由步驟模塊76前進至步驟 模塊724。 參考第11圖,係顯示依據本發明第1圖之微處 理器100之刼作流程圖,其中,微處理器^⑼具有 第9圖實施例之執行單元與記憶體子系統丨12,用 以執行然效規探請求。流程開始於步驟模塊〗丨〇2。 ^於步驟杈塊1102中,載入單元122接收一無效 窺探請求224。作為回應,針對與窺探位址相關之 快取列’載人單元122冑自己執行-窺探詢問操 作。流程前進至步驟模塊11〇4。 於步驟模塊1104中,針對與窺探位址相關之快 取歹覌.木询問刼作從載入標籤陣列212讀取部份 窺探請求632’並從第9圖之修改位元陣列216讀 取已修改位元634。流程前進至步驟模塊11〇6。 於步驟模塊1106中,載入單元122之组合邏輯 6〇8根據第3a圖之表!或第补圖之表2其中之一, 用以計算快取列之完整MESI狀態咖。流程前進至 CNTR2485I00-TW/ 0608-A42144-TW/fmal 29 201042451 步驟模塊1108。 於決定步驟模塊1108中,載入單元112判斷在 步驟模塊1106所計算之完整MESI狀態636是否為 已修改狀態。若是,流程前進至步驟模塊1112 ;否 則’流程前進至步驟模塊1114。 於步驟模塊1112中,載入單元122命令匯流排 介面單元134執行匯流排操作,將該快取列寫回至 系統記憶體。流程前進至步驟模塊1丨14。 於步驟模塊1114中,載入單元丨22對自己執行 一狀態更新操作,以及對儲存單元124執行一狀態
更新操作,其中,每一狀態更新操作指定新MESI 狀悲為無效狀態。流程同時前進至步驟模塊111 ό與 步驟模塊1122。 於步驟模塊1Π6中’針對與窺探位址相關之快 取列載入單元122將無效狀態寫入至載入標籤陣 列212對應之項目。流程結束於步驟模塊Μ"。 於步驟模塊1122中,針對與窺探位址相關之快 ::存單元124將無效狀態寫入儲存標藏陣列 …之項目。流程結束於步驟模塊1122。 快取的是’於第9圖之實施例中,當對應 决取=讀時,職置修㈣列21 兀,而非如兹ς闽々止_ ° χ ^ Θ V 才果塊5 18在收到窺探請求 CNTO2485IOO-TW/0608-A42l44-TW/fmal 201042451 2 2 4就進行重置。 爹可弟12圖 說明於笛7 你頒不依據本發明另一實施例, 體子系统^之微處理^⑽中’執行單元與記憶 多方面^部份方塊圖。第12圖之實施例在許 為相似I/於第9圖之實施例’且相同編號之元件 為相似的。茲就不同處加以說明。
於第12圖之實施例中’儲存佇列126對儲存單 ^4執行快取寫入請求226 (而非對第2圖之載 入早凡122 ’或者直接對第6圖與第9圖之資料陣 列218與修改位元陣歹"16)。資料陣列218之寫入 埠與修改位轉列216之寫人埠均_於儲存單元 124’使彳于儲存單元124(而非第9圖之資料佇列I%) 將快取列寫人至資料陣列218,並更新修改位元陣 列216之已修改位元,用以回應於資料佇列之 快取寫入請求226。儲存單元124將快取列之完整 MESI狀態更新至儲存標籤陣列214,使得儲存單元 124執行最佳化,其中,上述之最佳化,與第*圖 與第7圖之決定步驟模塊418中,載入單元122與 儲存佇列126所分別執行之最佳化類似,而儲存標 籤陣列214將完整MESI狀態1232提供至儲存佇列 126。 此外’儲存單元124接收窺探請求224,而非载 入單元122。因此’第12圖之儲存單元ι24執行窺 CNTR2485I00-TW/ 0608-A42144-TW/fmal 31 201042451 探請求224,此方式類似於第5圖相關之說明,除 了儲存單it 124係直接由儲存標籤陣列214接收完 整MESI狀態123¾而非由固 > 么人 开田弟2圖之組合邏輯2〇8)。 然而’因為載入單Tt 122亦提供完整MESI狀能 於另-實施例中’載入單元122負責處理窺探 請求224,流程如上述第丨丨圖相關之說明。 最後,收回請求242由載入單元122處理,類 似於上述第8圖之處理方式。 、 參考第13圖,係顯示依據本發明另一實施例, 說明於第1 ®之微處理器!⑼中,執行單元與記憶 體子系統112之部分方塊圖。第13圖之實施例許多 方面類似於第6圖之實施例’且相似數字之元件為 相似的。茲將不同處說明如下。 … 第13圖之實施例包括單一雙蟑標籤陣列 ΠΗ,亦稱為統-標籤陣列1314,而非载入標藏陣 列212與儲存標籤陣列214。也就是說,統一 陣列1314具有耦接於載入單元122之第一讀取:寫 入埠,以及耦接於儲存單元124之第二讀取/寫二 埠。第一讀取/寫入埠將部份MESI狀態DM提供至 載入單元122之組合邏輯_,而第二讀取/寫:埠 將部份MESI狀態232提供至儲存單元124之組人 邏輯208。於第13之實施例中,當儲存仔列126^ 订快取寫入請求226時,資料快取128並不將統一 CNTR2485I00-TW/ 0608-A42144-TW/final 201042451 標戴陣列UU以已修改新狀態進行更新,此一優點 在於,將減少統一標籤陣列1314之麥塞狀況。不 過,透過同時存取統-標籤陣列1314與修改位元陣 歹J ^16信者存單兀124可計算快取列之完整mesi 狀態236,而載入單亓^ _ MESI„ 1332。早疋122可计鼻快取列之完整 Ο Ο —類似於上述第9圖之實施例,於第㈣之另一 例中’載人單it 122處理窺探請求224,且儲 子單7L 124不執行決定步驟模塊418之最佳化,這 ^寻儲存單it m不用產生完整mesi狀態236,而 修改位元陣列216可具有_於載人單元122之單 一讀取埠,而非兩個讀取埠。 :第u圖之實施例中,儘管並無享有獨立載入 =陣列212與館存標籤陣列214之實施例所帶來 =面關及電源管理之好處,第㈣之實施例仍 =二位元㈣之優勢’意即,減少標藏 羞基進一步’第13圖之實施例有利於空 所具有之高效率雙埠標籤陣列設計,遠小於 兩個單一埠標籤陣列所消耗之總空間 、 本發明雖以較佳實施例揭露如上,然宜並非用 Γ艮定本發明的範園’任何所屬技術領域中具有通 吊知識者,在残離本㈣之精神和範圍内,每可 做些許的更動與潤錦。舉例來說,軟體可以致能此 CNTR2485I00-TW/ 〇608-A42144-TW/finaI 3 201042451 處所述之裝置及方法,如致能裝置及方法之功能、 製造、模型、模擬、性質及/或測試。例如,經由使 用一般之程式語言(例如C或C++)、包括Verilog HDL、VHDL 等之硬體描述語言 (hardware description language, HDL )、或其它可使用之程式來 完成。此類軟體可被安裝於任何已知電腦可用之媒 體中,例如半導體、磁碟或光碟(像是CD-ROM、 DVD-ROM等)。此處所述裝置及方法之實施例可被 包含於一半導體智慧財產核心(semiconductor intellectual property core )中,如微處理器的核心(以 HDL實現),之後再以積體電路之製造轉換成硬體。 另外,此處所述之裝置及方法可由硬體及軟體來組 合實現。故本發明不應侷限於此處所述之具體實施 例,而應以其後所附之申請專利保護範圍及其相同 範圍為準。具體地,本發明可於通用型電腦所使用 之微處理器裝置中實現。最後,所屬技術領域中具 有通常知識者應能在不脫離本發明範疇的前提下, 以所附之申請專利保護範圍所揭露之概念及特定實 施例為基礎,設計或修改與本發明執行相同功能之 其他結構。 CNTR2485IOO-TW/ 0608-A42144-TW/fmal 34 201042451 【圖式簡單說明】 第1圖係顯示依據本發明之微處理器方塊圖。 ―第2圖係顯示依據本發” 1圖微處理器之執 仃早元與記憶體子系統部份方塊圖。 Ο Ο 第3 a圖係顯示依據本發明第i圖之資料快取所 ^表格示意圖,透過部分_SI快取列狀態與 一已修改位1用以計算出完整_si快取列狀態。 第%圖係顯示依據本發明另—實施例,說 二圖之臟取所使用之表格示意 :ESI快取列狀態與-已修改位元,用以計算出』; MESI快取列狀態。 1井疋埜 第4圖係顯示依據本發 操作流程圖,其中,微圖之微處理器之 執行單元與記憶體子系統,用二第2圖實施例之 丁凡用以執行一儲存指令。 第5圖係顯示依據本發 操作流程圖,其中,微處= 執行單元與記憶體子系統 *施例之 求。 用以執仃一無效窺探請 第6圖係顯示依據本 第1圖之微處理器令,執行„!另—實施例’說明於 部份方塊圖。 丁早疋與記憶體子系統之 圖之微處理器之 第7圖係顯示依據本 CNTR2485I〇〇.TW/ 0608-A42144-TW/fmal 35 201042451 操作流程圖,其中’微處理哭且 執行單元與記,it體m ; 4 6圖實施例之 ^ 丁凡用以執行一儲存指令。 第8圖係顯示依據本發 操作流程圖,其中,微處理器:1圖=理器之 執行單元與記憶體子系統,用;^第6圖實施例之 用以執行一收回請求。 第9圖係顯示依據本發 第!圖之微處理器中,執另:貫施例’說明於 部份方塊圖。 執仃早兀與記憶體子系統之 第10圖係顯示依據本發明 摔作冷弟1圖之微處理器之 知作4圖,其中’微處理 執行單元與記憶體子系統,用以:第9 例之 丁凡用以執行一儲存指令。 nJ 11圖係顯示依據本發明第1圖之微處理器之 :輪呈圖’其中’微處理器具有第9圖實施例之 ^單元與記憶體子系統’用以執行一無效窺探請 第12圖係顯示依據本發明另_實施例,說明於 弟1圖之微處理器中,勃耔留__ Λ ^ 部份方塊圖。 執仃早-與記憶體子系統之 第u圖係顯示依據本發明另一實施例,說明於 第1圖之微處理器⑽中,執行單元與記憶體子系 統112之部分方塊圖。 、 【主要元件符號說明】 CNTR2485I00-TW/ 0608-Α42144-TW/fmal 36 201042451 100〜微處理器; 104〜指令轉譯器; 108〜指令排序器; 102〜指令快取; 106〜暫存_名表; 112〜執行單元與記憶體子系統;
〜重排序緩衝器(腦)與結構化 122〜載入單元; 124〜儲存單元; 126〜儲存佇列; 128〜資料快取;
132〜二階(L2)快取; 134〜匯流排介面單元(BRJ); 208、608〜組合邏輯; 212〜載入標籤陣列; 216〜修改位元陣列; 222〜載入請求; 226〜快取寫入請求; 214〜儲存標籤陣列 218〜資料陣列; 224〜窺探請求; 228〜儲存請4
232、632、1332〜部份 MESI 狀態; 234、634〜已修改位元; 236、636、1232〜完整MESI狀態;及 242〜收回。 CNTR2485IOO-TW/0608-A42144-TW/fmal 37

Claims (1)

  1. 201042451 七、申請專利範圍: 1. 一種微處理器,包括: 第一與第二功能單元,各自耦接及存取一資料快取; 及 該育料快取,包括· 一資料陣列,具有一既定架構,包括: 一寫入琿,該第一功能單元透過該寫入埠將 資料寫入至該資料陣列之一快取列; 一修改位元陣列,具有該資料陣列之該對應既定 架構,包括: 一寫入埠,該第一功能單元透過該寫入埠設 定該修改位元陣列之一已修改位元,用以指示對 應於該資料陣列中由該第一功能單元所寫入之該 對應快取列已被修改;及 一讀取埠,該第二功能單元透過該讀取埠從 該修改位元陣列讀取該已修改位元,用以判斷對 應於該資料陣列之該快取列是否已被修改;及 一標籤陣列,具有該資料陣列之該對應既定架 構,包括: 一讀取埠,該第二功能單元透過該讀取埠讀 取對應該資料陣列之該快取列之一部分狀態,其 中,該部份狀態無法正確指示該快取列是否已被 修改, 其中,該標籤陣列不包含有一埠以提供該第 CNTR2485I00-TW/ 0608-A42144-TW/fmal 38 201042451 一功能單元藉由該璋更新該快取列之該部分狀 態。 2. 如申請專利範圍第1項所述之微處理器,其 中,該標籤陣列被配置用以儲存對應於該資料陣列之該 快取列之一位址標籤,其中,該修改位元陣列沒有儲存 位址標籤。 3. 如申請專利範圍第1項所述之微處理器,更包 0 括. 一第三功能單元,耦接及存取該資料快取, 其中,該修改位元陣列更包括: 一第二讀取埠,該第三功能單元透過該第二讀取 埠,從該修改位元陣列讀取該已修改位元,用以判斷 該快取列是否已被修改。 4. 如申請專利範圍第3項所述之微處理器,其 ^ 中,該資料快取更包括: 一第二標籤陣列,具有該資料陣列之該對應既定架 構,包括: 一讀取淳,該第三功能單元透過該讀取埠讀取對 應該資料陣列之該快取列之一部份狀態,其中,該部 份狀態無法證確指示該快取列是否已被修改, 其中,該第二標籤陣列中不包含有一埠提供該第 一功能單元藉以更新該對應快取列之該部分狀態。 CNTR2485I00-TW/ 0608-A42144-TW/final 39 201042451 5.如申請專利範圍第3項所述之微處理 i 中,該標籤陣列更包括: °八 一第二讀取埠,該第三功能單元透過該第二 取對應該⑽_之_取狀-部分狀態,其中,^ 份狀態無法正確指示該快取列是否已被修改。 6·一如申請專利範圍第1項所述之微處理器,其 中二該第-功能單元包括一資料佇列單元,係被配置來 執行一快取寫人操作,用以將該資料寫人至該資料陣列 之„亥快取列’並用以設定該修改位元陣列之該已修改位 元。 7. 士申明專利範圍第1項所述之微處理器,其 中,該第二功能單元係被配置從該資料陣列讀取該對應 快取列’用以執行一載入指令。 8·如申請專利範圍第1項所述之微處理器,其 中,該第二功能單元係被配置從該資料陣列讀取該對應 快取列,用以執行一收回請求,以收回該資料快取之該 對應快取列。 9.如申請專利範圍第1項所述之微處理器,其 中,該第二功能單元係被配置從該修改位元陣列讀取該 已修改位7G,並從該標籤陣列讀取該部份狀態,用以計 异忒對應快取列之一完整狀態,以執行指向該對應快取 列之一窺探請求。 CNTR2485I00-TW/ 0608-A42144-TW/fmal 4〇 201042451 Η).如申請。專利範圍帛丨項所述之微處理器,其 中,該第二功能單元係配置從該修改位元陣列讀取該已 修改位元,並從該標籤陣列讀取該部份狀態,用以計/算 該快取列之一完整狀態,以執行一請求來收回該快取 列。 11.如申請專利範圍第丨項所述之微處理器,其 中,該第二功能單元係被配置從該修改位元陣列讀取該 〇 已修改位兀且從該標籤陣列讀取該部份狀態,用以計算 該快取列之一完整狀態,以執行一儲存指令。 12·如申請專利範圍第U項所述之微處理器,其 中,若由該第二功能單元所計算之完整狀態判斷該快取 列已被修改,該第一功能單元係被配置用以避免設定該 對應快取列之該修改位元陣列之該已修改位元。 13.如申請專利範圍第丨項所述之微處理器,其 〇 中,該資料快取更包括: 、 一第二標籤陣列,具有該資料陣列之該對應既定架 構,包括: 一寫入槔,該第一功能單元係透過該寫入埠寫入 對應該資料陣列之該快取列之一完整狀態,用以指示 由該第一功能單元所寫入之該快取列已被修改。 14·如申睛專利範圍第丨3項所述之微處理器,其 中,該第二標籤陣列亦包括一讀取埠,該第一功能單元 CNTR2485IOO-TW/ 0608-A42144-TW/fmal 41 201042451 透過该讀取埠讀取對應該資料陣列之該快取列之該完 整狀態。 15 ·如申請專利範圍第1項所述之微處理器,其 中,當該資料快取將該快取列分配至該資料快取時,該 第一功此單元係被配置來重置該修改位元陣列之該已 修改位元,用以指示該資料陣列之該對應快取列未被修 改0 16·如申晴專利範圍第1項所述之微處理器,其 中’該標籤陣列更包括: 寫入埠,5亥第一功此單元透過該寫入埠寫入對應該 資料陣列之該快取列之該部份狀態, 其中,虽该第二功能單元寫入該快取列之該部份狀 態,使該快取列無效時,該第—功能單元係被配置用以重 置該修改位元陣列之該對應已修改位元。 —種微處理器之資料快取存取方法,用於第一 與第二功能單元,其中,該資料快取包括具有—既Μ 構之一資料陣列、與具有該對應既定架構之一標藏陣 列’該方法包括: 透過該資料陣列之-寫入埠,將資料寫入至該資料陣 列之一快取列,其中,該資料寫人由該第-功能單元執行; 设疋该貧料快取之-修改位元陣列之一已修改位元, 用以指示於該資料陣列中由該第—功能單元所寫入之該對 CNTR2485I00-TW/ 〇608-A42144-TW/fmal 42 201042451 =快取列已被修改,其中,該修改位元陣列具有該資料陣 二:ί!應:定架構’其中’該已修改位元之設定由該第 力月b早兀透過該修改位元陣列之一寫入埠執行; =該似位辑狀該已糾位元,心判_快 取列疋否已被修改,其中,該已修改位元之讀取由 功能單位透職修改位元陣狀—讀科執行;及 ❹ 項取對應該資料陣列之該快取列之一部份狀態,其 中,該部份狀態無法正確指示該快取列是否已被修^,其 中’,部份狀態之讀取由該第三功能單元透過該標藏陣列 之一讀取埠執行,其中,該該標籤陣列不包含有-埠以提 供該第一功能單元藉由該埠更新該快取列之該部分狀離。 ” I8.如申請專利範圍第17項所述之微處理器之資 料决取存取方法,其申,該標籤陣列被配置用以儲存該 資料陣列之該對應快取狀—位址標籤,其中,該修改 位元陣列沒有儲存位址標籤。 “ 19.如申請專利範圍第17項所述之微處理器之資 ,快取存取方法,其中,該微處理器更包括—第三功能 單元’用以存取該資料快取,該方法進一步包括: 第二次讀取該修改位元陣列之該已修改位元,用以判 斷該快取列是否已被修改,其中,該已修改位元之第二次 5賣取由該第三功能單元透過該修改位元陣列之一第二讀取 埠執行。 43 CNTR2485I00-TW/ 〇608-A42144-TW/fmal 201042451 … 4申明專利範圍第19項所述之微處理器之資 :快取存取方法,其中,該資料快取更包括—第二標鐵 1:力::中’該第二標藏陣列具有該資料陣列之該對應 既疋木構,該方法進一步包括·· 第一-人讀取對應該資料陣列之該快取列之一部分狀 態’其中,該部份狀態不指示該快取列是否已被修改,I 令,該快取列之該部份狀態之第二次讀取由該第三功能單 π透過該第二標籤陣狀—讀取埠執行,其中,該第一功 能單元更新該賴快取狀該部錄態所使用之—蜂係不 包含於該第二標籤陣列中。 21.如申請專利範圍帛19項所述 料快取存取方法,進一步包括: 益之貢 ▲第二次讀取對應該資料陣列之該快取列之一部分狀 態’其中’該部份狀態無法正確指示該快取列是否已被修 改’其中’該快取列之該部份狀態之第二次讀取由該第三 功能單元透過補籤陣狀_第二讀取埠執行。 22·如申請專利範圍$ π項所述之微處理器之資 料快取存取方法,其中,該第—功能單元包括—資料仔 列早心係被配置來執行-快取寫人操作,用以執行該 資料陣列之該快取列之該資料寫人,以及該修改位元陣 列之该已修改位元之設定。 23·如申請專利範圍第17項所述之微處理器之資 CNTR2485I00-TW/ 0608-A42144-TW/fmal 44 201042451 料快取存取方法,進一步包括: 令,d:::列之該對應快取列,用以執行-載入指 '、 销應快取狀讀取由該第二功能單元執行。 24·如申請專利範圍第17項所 料快取存取方法,進—步包括··狀4處理益之資 從該資料陣财讀取該快取列,用 回該資料陣列玄矾仃明求以收 Ο 二功能單元2 其中,該讀取該快取列由該第 料快請專㈣圍第17韻述之微處理器之資 计陕取存取方法,進-步包括: 列立元陣列讀取該已修改位元,並從該標籤陣 狀態’用以計算該快取列之一完整狀態’以 整心之;一窺探請求,其中,該快取列之該完 〜又冲异由該弟二功能單元執行。 Ο 料快=專r步:r所述之微處理器之資 列許位r陣列讀取該已修改位元,並從該標籤陣 執^二2狀態’用以計算該快取列之一完整狀態,以 能:;:::來收回該快取列,其中,該快取列之該完整狀 態之计异由該第二功能單元執行。 料二項所述之微處理器之資 CNTR2485I00-TW/0608.A42144.TW/fmal ^ 201042451 從該修改位元陣列讀取該已修改位元,並從該標籤陣 列讀取該部份狀態,用以計算該快取列之一完整狀態,以 執行一儲存指令,其中,該快取列之該完整狀態之計算由 該第二功能單元執行。 28. 如申請專利範圍第27項所述之微處理器之資 料快取存取方法,進一步包括: 若由該第二功能單元所計算之完整狀態判斷該快取列 已被修改,避免設定對應該快取列之該修改位元陣列之該 已修改位元。 29. 如申請專利範圍第17項所述之微處理器之資 料快取存取方法,其中,該資料快取更包括一第二標籤 陣列,具有該資料陣列之該對應既定架構,該方法進一 步包括: 寫入該資料陣列之該快取列之一完整狀態,用以指示 由該第一功能單元所寫入之該快取列已被修改,其中,該 快取列之該完整狀態之寫入由該第一功能單元透過該第二 標籤陣列之一寫入埠執行。 30. 如申請專利範圍第29項所述之微處理器之資 料快取存取方法,進一步包括: 讀取對應該資料陣列中該快取列之該完整狀態,其 中,該快取列之該完整狀態之讀取由該第一功能單元透過 該第二標籤陣列之一讀取埠執行。 CNTR2485I00-TW/ 0608-A42144-TW/final 46 201042451 31.如申請專利範圍第I?項所述之微處理器之資 料快取存取方法,進一步包括: 將該快取列分配至談資料快取;及 重置該修改位元陣列之該已修改位元,用以指示該資 料陣列之该快取列未被修改,以回應於該快取列之分配, 其中,該已修改位元之重置由該第一功能單元執行。 32.如申請專利範圍第I?項所述之微處理器之資 ❹ 料快取存取方法,進一步包括: 寫入對應戎資料陣列之該快取列之該部份狀態,用以 使該快取列無效,其中,該快取列之該部份狀態之寫入用 以使該快取列無效由該第二功能單元透過該標藏陣列之一 寫入埠執行;及 重置對應該修改位元陣狀該已修改位元,其中,該 已修改位元之重置由該第一功能單元執行。 0 33. —種電腦程式產品,用於 程式產.品包括: 一電腦裝置,該電腦 儲存媒體内建之電腦 該電腦可讀取程式碼 一電腦可使用儲存媒體,包括該 可讀取程式碼,用以指定微處理器, 包括: 及 第-程式碼,用以指定第一與 摩禹接於-資料快取及被配置^存取該_=各 該資料快取 第二程式碼’用以指定該資料快取 CNTR2485I00-TW/ 〇608-A42144-TW/final 47 201042451 包括: 一資料陣列,具有一既定架構,包括: 一寫入埠,該第一功能單元透過該寫入 槔將資料寫入該資料陣列之一快取列; 一修改位元陣列,具有該資料陣列之該對應 既定架構,包括: 一寫入埠,該第一功能單元透過該寫入 埠設定該修改位元陣列之一已修改位元,用 以指示於該資料陣列中由該第一功能單元所 寫入之該對應快取列已被修改;及 一讀取埠,該第二功能單元透過該讀取 埠讀取該修改位元陣列之該已修改位元,用 以判斷該快取列是否已被修改;及 一標籤陣列,具有該資料陣列之該對應既定 架構,包括: 一讀取埠,該第二功能單元透過該讀取 埠從該資料陣列讀取該對應快取列之一部分 狀態,其中,該部份狀態無法正確指示該快 取列是否已被修改, 其中,該標籤陣列不包含有一埠以提供 該第一功能單元藉由該埠更新該快取列之該 部分狀態。 CNTR2485!00-TW/0608-A42144-TW/fmal 48
TW099116092A 2009-05-27 2010-05-20 微處理器、微處理器之資料快取存取方法與電腦程式產品 TWI417725B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/472,766 US8108624B2 (en) 2009-05-27 2009-05-27 Data cache with modified bit array

Publications (2)

Publication Number Publication Date
TW201042451A true TW201042451A (en) 2010-12-01
TWI417725B TWI417725B (zh) 2013-12-01

Family

ID=42717594

Family Applications (1)

Application Number Title Priority Date Filing Date
TW099116092A TWI417725B (zh) 2009-05-27 2010-05-20 微處理器、微處理器之資料快取存取方法與電腦程式產品

Country Status (3)

Country Link
US (1) US8108624B2 (zh)
CN (1) CN101833518B (zh)
TW (1) TWI417725B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102176138B (zh) * 2011-03-01 2013-04-03 上海维宏电子科技股份有限公司 数控系统中硬件端口的对象化管理控制方法
US20130173853A1 (en) * 2011-09-26 2013-07-04 Nec Laboratories America, Inc. Memory-efficient caching methods and systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555379A (en) * 1994-07-06 1996-09-10 Advanced Micro Devices, Inc. Cache controller index address generator
US5802586A (en) * 1995-02-27 1998-09-01 Motorola, Inc. Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
US6412051B1 (en) * 1996-11-27 2002-06-25 International Business Machines Corp. System and method for controlling a memory array in an information handling system
US5999474A (en) * 1998-10-01 1999-12-07 Monolithic System Tech Inc Method and apparatus for complete hiding of the refresh of a semiconductor memory
US6804162B1 (en) * 2001-04-05 2004-10-12 T-Ram, Inc. Read-modify-write memory using read-or-write banks
US6981111B1 (en) * 2003-03-31 2005-12-27 Emc Corporation Data storage system
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US7506100B2 (en) * 2005-02-23 2009-03-17 United Memories, Inc. Static random access memory (SRAM) compatible, high availability memory array and method employing synchronous dynamic random access memory (DRAM) in conjunction with a data cache and separate read and write registers and tag blocks
US8924653B2 (en) * 2006-10-31 2014-12-30 Hewlett-Packard Development Company, L.P. Transactional cache memory system
EP1930811A1 (en) * 2006-12-05 2008-06-11 Telefonaktiebolaget LM Ericsson (publ) Methods and devices for cache enhancing
US7822911B2 (en) * 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same

Also Published As

Publication number Publication date
US20100306478A1 (en) 2010-12-02
US8108624B2 (en) 2012-01-31
CN101833518B (zh) 2011-12-07
TWI417725B (zh) 2013-12-01
CN101833518A (zh) 2010-09-15

Similar Documents

Publication Publication Date Title
CN108885583B (zh) 高速缓存存储器访问
TWI397813B (zh) 用於虛擬化交易式記憶體的總體溢位之裝置、方法與系統
US9274856B2 (en) Improving processor performance for instruction sequences that include barrier instructions
US8321634B2 (en) System and method for performing memory operations in a computing system
EP2430551B1 (en) Cache coherent support for flash in a memory hierarchy
US9563568B2 (en) Hierarchical cache structure and handling thereof
US20080010417A1 (en) Read/Write Permission Bit Support for Efficient Hardware to Software Handover
US8898395B1 (en) Memory management for cache consistency
CN106897230B (zh) 用于处理原子更新操作的装置和方法
US10042580B2 (en) Speculatively performing memory move requests with respect to a barrier
TW201030609A (en) Metaphysical address space for holding lossy metadata in hardware
US20160314069A1 (en) Non-Temporal Write Combining Using Cache Resources
TW200908009A (en) Hierarchical cache tag architecture
US6950909B2 (en) System and method for reducing contention in a multi-sectored cache
CN107038125A (zh) 具有加速预取请求的独立流水线的处理器高速缓存
US20170293559A1 (en) Early freeing of a snoop machine of a data processing system prior to completion of snoop processing for an interconnect operation
US20230259459A1 (en) Memory Cache with Partial Cache Line Valid States
CN111201518A (zh) 用于管理能力元数据的设备和方法
WO2020083720A1 (en) I/o coherent request node for data processing network with improved handling of write operations
TWI407306B (zh) 快取記憶體系統及其存取方法與電腦程式產品
CN115176237B (zh) 具有混合回写和透写的数据高速缓存
US20180307601A1 (en) Managing cache operations using epochs
TWI723069B (zh) 用於在多個快取層級之間的共用最近最少使用(lru)策略的設備及方法
TW201042451A (en) Microprocessor, method for accessing data cache in a microprocessor and computer program product
US20140115257A1 (en) Prefetching using branch information from an instruction cache