TWI811151B - 快取裝置中管理記憶體寫入要求的方法 - Google Patents
快取裝置中管理記憶體寫入要求的方法 Download PDFInfo
- Publication number
- TWI811151B TWI811151B TW111142793A TW111142793A TWI811151B TW I811151 B TWI811151 B TW I811151B TW 111142793 A TW111142793 A TW 111142793A TW 111142793 A TW111142793 A TW 111142793A TW I811151 B TWI811151 B TW I811151B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- request
- write
- data
- write request
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 420
- 238000000034 method Methods 0.000 title claims abstract description 45
- 239000000872 buffer Substances 0.000 claims abstract description 172
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
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)
Abstract
本發明為一種運用於快取裝置中管理記憶體寫入要求的方法。該快取裝置耦接於一中央處理器與一系統記憶體之間。該快取裝置包括複數級,且一第N級包括一第N級指令緩衝器、一第N級快取記憶體與一寫入配置緩衝器。N為大於1的整數。該方法包括下列步驟:接收一前一級傳送的一要求;當該要求為一記憶體寫入要求時,將該記憶體寫入要求暫存至該寫入配置緩衝器中的一自由入口,其中該記憶體寫入要求包括一位址資訊與一寫入資料;以及,當該要求不是該記憶體寫入要求時,將該要求暫存至該第N級指令緩衝器中的一自由入口。
Description
本發明是有關於一種電腦系統中快取裝置的管理方法,且特別是有關於一種電腦系統的快取裝置中管理記憶體寫入要求的方法。
在電腦系統中,中央處理器(CPU)以及系統記憶體(system memory)的運作速度差異很大。中央處理器存取(access)系統記憶體時通常會耗費時間等待系統記憶體進行存取動作。因此,在電腦系統中,中央處理器與系統記憶體之間加入了存取速度快於系統記憶體的快取裝置(cache device)。當然,快取裝置也可以直接設計於中央處理器內部。
請參照第1圖,其所繪示為習知電腦系統中的快取裝置示意圖。快取裝置170耦接(couple to)至中央處理器150,且快取裝置170經由匯流排(bus) 耦接至系統記憶體160。中央處理器150可連續發出多筆要求(request)來存取(access)系統記憶體160。當該筆要求為記憶體寫入要求(memory write request)時,該筆要求會包括位址資訊(address information)與寫入資料(write data)。當要求為記憶體讀取要求(memory read request)時,該筆要求中會包括位址資訊(address information)。
在快取裝置中,每一個快取記憶體112、122、132內皆包括多條快取線(cache line)。舉例來說,第二級快取記憶體122中有M條快取線,每一條快取線至少可記錄位址資訊與儲存資料。M為大於1的整數。當然,每一個快取記憶體112、122、132中可以有不同數目的快取線。
當中央處理器150發出一筆要求至系統記憶體160時,快取裝置170會接收並判斷快取記憶體112、122、132的所有快取線內是否記錄相同的位址資訊。如果快取記憶體112、122、132的其中一條快取線記錄的位址資訊相同於該筆要求中的位址資訊時,則視為命中(hit)。反之,如果快取記憶體112、122、132中所有快取線記錄的位址資訊皆異於該筆要求中的位址資訊時,則為未命中(miss)。以下簡單地區分為各種狀況。
於命中(hit)的情況下,如果該筆要求為記憶體讀取要求,快取裝置170將快取記憶體112、122、132中對應快取線的儲存資料作為讀取資料(read data),並回傳至中央處理器150。
於命中(hit)的情況下,如果該筆要求為記憶體寫入要求,則快取裝置170將寫入資料更新(update)於快取記憶體112、122、132中對應快取線內。亦即,對應快取線中的儲存資料會被更新。
於未命中(miss)的情況,如果該筆要求為記憶體讀取要求,則快取裝置170會將該筆要求傳遞至系統記憶體160。當系統記憶體160回傳讀取資料時,讀取資料會傳遞至中央處理器150與快取裝置170。而快取裝置170會在快取記憶體112、122、132尋找一條可用快取線(available cache line),例如空白快取線(empty cache line),來儲存位址資訊以及讀取資料。
另外,於未命中(miss)的情況,如果該筆要求為記憶體寫入要求,則快取裝置170會將該筆要求傳遞至系統記憶體160,並將寫入資料更新(update)至系統記憶體160。以下更詳細地說明快取裝置170的運作。
如第1圖所示,快取裝置170中區分為很多級(level),例如N級。因此,快取裝置170包括:第一級快取記憶體(L
1cache memory)112、第二級指令緩衝器(L
2command buffer)120、第二級快取記憶體(L
2cache memory)122、第N級指令緩衝器(L
Ncommand buffer)130以及第N級快取記憶體(L
Ncache memory)132。其中,N為大於1的整數,第N級指令緩衝器130與第N級快取記憶體132為快取裝置170中最後一級指令緩衝器以及最後一級快取記憶體。
當中央處理器150發出要求(request)至快取裝置170時,快取裝置170會先判斷是否命中(hit)第一級快取記憶體112。
於命中的情況下,如果該筆要求為記憶體讀取要求,則第一級快取記憶體112中對應快取線的儲存資料即為讀取資料,並回傳讀取資料至中央處理器150,且該筆記憶體讀取要求被退休(retired),代表該筆記憶體讀取要求已經完成。
於命中的情況下,如果該筆要求為記憶體寫入要求,則將寫入資料更新(update)於第一級快取記憶體112的對應快取線內,亦即對應快取線中的儲存資料會被更新。接著,該筆記憶體寫入要求被退休(retired),代表該筆記憶體寫入要求已經完成。
於未命中的情況下,該筆要求會被傳送至第二級指令緩衝器120。第二級指令緩衝器120中包括多個入口(entry),每一個入口可暫存一筆要求。也就是說,當該筆要求會被傳送至第二級指令緩衝器120時,該筆要求會被暫存於第二級指令緩衝器120中的一個自由入口(free entry)。基本上,當一個入口已經暫存一筆要求時,該入口被視為一個使用入口(used entry)。當一個入口尚未儲存要求時,該入口被視為一自由入口(free entry)。再者,第二級指令緩衝器120與第二級快取記憶體122相互搭配。
快取裝置170可選擇第二級指令緩衝器120中多個使用入口(used entry)的其中一筆要求,並判斷是否命中第二級快取記憶體122。
舉例來說,快取裝置170選擇第二級指令緩衝器120中的一筆要求並判斷是否命中第二級快取記憶體122。於命中的情況下,如果該筆要求為記憶體讀取要求,則第二級快取記憶體122中對應快取線的儲存資料即為讀取資料,並回傳讀取資料至中央處理器150,且該筆記憶體讀取要求被退休(retired),代表該筆記憶體讀取要求已經完成。
於命中的情況下,如果該筆要求為記憶體寫入要求,則將寫入資料更新於第二級快取記憶體122的對應快取線內,亦即對應快取線中的儲存資料會被更新。接著,該筆記憶體寫入要求被退休(retired),代表該筆記憶體寫入要求已經完成。基本上,當要求被退休時,對應使用入口(used entry)的內容會被清空(clear)或者被設定為無效(invalid),並成為自由入口(free entry)可在未來暫存新的要求。
另外,於未命中的情況下,該筆要求會被傳送至下一級指令緩衝器。類似地,下一級指令緩衝器包括多個入口(entry)可暫存多個要求,每一個入口可暫存一筆要求。也就是說,當該筆要求會被傳送至下一級指令緩衝器時,該筆要求會被暫存於下一級指令緩衝器中的一個自由入口。再者,下一級指令緩衝器與下一級快取記憶體相互搭配。其運作模式類似於第二級指令緩衝器120與第二級快取記憶體122。此處不再贅述。
在一直未命中的情況下,該筆要求最後會被傳送至第N級指令緩衝器130。第N級指令緩衝器130包括多個入口(entry)可暫存多個要求,每一個入口可暫存一筆要求。也就是說,當該筆要求會被傳送至第N級指令緩衝器130時,該筆要求會被暫存於第N級指令緩衝器130中的一個自由入口(free entry)。再者,第N級指令緩衝器130與第N級快取記憶體132相互搭配。
類似地,快取裝置170可選擇第N級指令緩衝器130中多個使用入口(used entry)內的其中一筆要求,並判斷 該筆要求是否命中第N級快取記憶體132。
舉例來說,快取裝置170選擇第N級指令緩衝器130中的一筆要求並判斷命中是否第N級快取記憶體132。於命中的情況下,如果該筆要求為記憶體讀取要求,則第N級快取記憶體132中對應快取線的儲存資料即為讀取資料,並回傳讀取資料至中央處理器150,且該筆記憶體讀取要求被退休(retired),代表該筆記憶體讀取要求已經完成。
於命中的情況下,如果該筆要求為記憶體寫入要求,則將寫入資料更新於第N級快取記憶體132的對應快取線內,亦即對應快取線中的儲存資料會被更新。接著,該筆記憶體寫入要求被退休(retired),代表該筆記憶體寫入要求已經完成。
另外,於未命中的情況下,該筆要求會被傳送並系統記憶體160。舉例來說,於未命中的情況下,快取裝置170將記憶體讀取要求傳送至統記憶體160後,系統記憶體160根據記憶體讀取要求產生讀取資料並回傳至中央處理器150與快取裝置170。此時,快取裝置170即結合該筆記憶體讀取要求中的位址資訊以及回傳的讀取資料,並選擇快取記憶體112、122、132的至少一條可用快取線(available cacheline)來儲存位址資訊以及讀取資要。之後,該筆記憶體讀取要求被退休(retired),代表該筆記憶體讀取要求已經完成。
或者,快取裝置170將記憶體寫入要求傳送至統記憶體160後,該筆記憶體寫入要求被退休(retired),代表該筆記憶體寫入要求已經完成。另外,系統記憶體160即根據記憶體寫入要求中的位址資訊,將寫入資料更新於系統記憶體160。
眾所周知,電腦系統在運作的過程中,中央處理器150會持續地發出要求。因此,快取裝置170中的所有指令緩衝器120、130會持續地接收並暫存要求、執行要求、退休要求或者將要求傳送至下一級。
本發明的目的在於修改上述電腦系統的快取裝置及提供管理記憶體寫入要求的方法。
本發明係有關於一種運用於快取裝置中管理一記憶體寫入要求的方法,該快取裝置耦接於一中央處理器與一系統記憶體之間,該快取裝置包括複數級,且一第N級包括一第N級指令緩衝器、一第N級快取記憶體與一寫入配置緩衝器,N為大於1的整數,該方法包括下列步驟:接收一前一級傳送的一要求;當該要求為一記憶體寫入要求時,將該記憶體寫入要求暫存至該寫入配置緩衝器中的一自由入口,其中該記憶體寫入要求包括一位址資訊與一寫入資料;以及,當該要求不是該記憶體寫入要求時,將該要求暫存至該第N級指令緩衝器中的一自由入口。
本發明係有關於一種運用於快取裝置中管理一記憶體寫入要求的方法,該快取裝置耦接於一中央處理器與一系統記憶體之間,該快取裝置包括複數級,且一第N級包括一第N級指令緩衝器、一第N級快取記憶體與一寫入配置緩衝器,N為大於1的整數,該方法包括下列步驟:(a)接收一前一級傳送的一要求;(b)當該要求不是一記憶體寫入要求時,將該要求暫存至該第N級指令緩衝器中的一自由入口;(c)當該要求為該記憶體寫入要求時,將該記憶體寫入要求傳送至該寫入配置緩衝器,其中該記憶體寫入要求包括一位址資訊與一寫入資料;(d)當該寫入配置緩衝器中所有使用入口皆未記錄相同的該位址資訊時,將該記憶體寫入要求暫存至該寫入配置緩衝器中的一自由入口;(e)當該寫入配置緩衝器中僅有一特定使用入口記錄相同的該位址資訊,且該寫入資料可以合併時,將該記憶體寫入要求的該寫入資料合併至該特定使用入口的一儲存資料,並退休該記憶體寫入要求;(f)當該寫入配置緩衝器中僅有該特定使用入口記錄相同的該位址資訊,且該寫入資料不可以合併時,將該記憶體寫入要求暫存至該寫入配置緩衝器中的該自由入口;以及,(g)當該寫入配置緩衝器中有多於一個使用入口記錄相同的該位址資訊時,將該記憶體寫入要求的該寫入資料合併至一較新的該使用入口的該儲存資料,並退休該記憶體寫入要求。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
在第1圖的快取裝置170中,當中央處理器150發出記憶體寫入要求至快取裝置170後。在未命中快取記憶體112、122、132的情況下,則該筆記憶體寫入要求會依序暫存於各級的指令暫存器120、130。最後,第N級指令暫存器132輸出該筆記憶體寫入要求至系統記憶體160,並且退休(retire)該筆記憶體寫入要求,代表該筆記憶體寫入要求已經完成。
利用習知快取裝置170的管理方法,如果中央處理器150連續發出位址資訊相同的多筆記憶體寫入要求時,在未命中的情況下,這些記憶體寫入要求皆會被快取裝置170輸出至系統記憶體160。此時,快取裝置170無法發揮其效能。
因此,本發明針對記憶體寫入要求,提出一種具有寫入配置模式(write allocate mode)的快取裝置管理方法。本發明的快取裝置管理方法適用於第1圖的快取裝置。再者,本發明快取裝置170管理記憶體讀取要求(memory read request)的方法皆相同,所以以下僅介紹 快取裝置170管理記憶體寫入要求的方法。
請參照第2圖,其所繪示為電腦系統中快取裝置管理記憶體寫入要求的方法第一實施例。本發明的方法可運用於第1圖的快取裝置170。以下以第N級指令緩衝器130與第 N級快取記憶體132為例來說明,當然本發明也可以運用於其他級的指令緩衝器與快取記憶體。
首先,當快取裝置170選擇第N級指令緩衝器130中的一筆記憶體寫入要求(步驟S272)時,快取裝置170判斷是否命中第N級快取記憶體132(步驟S274)。也就是說,快取裝置170判斷第N級快取記憶體132的所有快取線內是否記錄相同的位址資訊。如果第N級快取記憶體132的其中一條快取線記錄的位址資訊相同於該筆要求中的位址資訊時,則為命中(hit)。反之,如果第N級快取記憶體132中所有快取線記錄的位址資訊皆異於該筆要求中的位址資訊時,則為未命中(miss)。
於命中(hit)的情況下,快取裝置170執行該筆記憶體寫入要求(步驟S276)。也就是說,快取裝置170將寫入資料更新於第N級快取記憶體132中的對應快取線內,亦即對應快取線中的儲存資料會被更新。接著,該筆記憶體寫入要求被退休(步驟S288),代表該筆記憶體寫入要求已經完成。
於未命中(miss)的情況下,快取裝置170將該筆記憶體寫入要求修改為記憶體讀取要求,並輸出記憶體讀取要求至系統記憶體160(步驟S282)。
根據本發明的實施例,於未命中第N級快取記憶體132的情況下,快取裝置170先將記憶體寫入要求修改為記憶體讀取要求,並輸出記憶體讀取要求至系統記憶體160。之後,系統記憶體160根據記憶體讀取要求產生讀取資料,並回傳至快取裝置170。基本上,對應於此筆讀取資料的記憶體讀取要求並不是由中央處理器150所發出,所以該筆讀取資料不會傳回中央處理器150,僅回傳至快取裝置170。
再者,於收到系統記憶體160產生的讀取資料時,快取裝置170會將該筆記憶體寫入要求的寫入資料合併(merge)至讀取資料,成為合併資料(merged data)(步驟S284)。接著,將位址資訊與合併資料儲存至快取線(步驟S286)。最後,退休記憶體寫入要求(步驟S288)。
根據本發明的實施例,於收到系統記憶體160產生的讀取資料後,快取裝置170會將第N級指令緩衝器130中記憶體寫入要求所對應的寫入資料與讀取資料合併(merge),成為合併資料(merged data)。接著,將記憶體寫入要求中的位址資訊以及合併資料儲存至第N級快取記憶體132中的一條快取線。最後,退休第N級指令緩衝器130中的該筆記憶體寫入要求,代表該筆記憶體寫入要求已完成。
明顯地,當中央處理器150連續發出多筆相同位址資訊的記憶體寫入要求時,本發明第一實施例的方法可以更有效率地運作快取裝置170。舉例來說,當中央處理器150連續發出5筆相同位址資訊的記憶體寫入要求時,第一筆記憶體寫入要求會進行步驟S272、步驟S274、步驟S282至步驟S288的管理流程。也就是說,第一筆記憶體寫入要求會被修改為記憶體讀取要求,並被輸出至系統記憶體160。當系統記憶體160輸出讀取資料至快取裝置170後,快取裝置170即合併讀取資料與寫入資料,成為合併資料。之後,將位址資訊以及合併資料儲存至第N快取記憶體132的一條快取線,並退休該第一筆記憶體寫入要求。
再者,第二筆記憶體寫入要求至第五筆記憶體寫入要求則僅會進行步驟S272、步驟S274、步驟S276與步驟S288的管理流程。也就是說,第二筆記憶體寫入要求至第五筆記憶體寫入要求皆會命中快取裝置170的第N級快取記憶體132,第二筆記憶體寫入要求至第五筆記憶體寫入要求並不會被輸出至系統記憶體160,確實可以提高快取裝置170的運作效率。
然而,第一實施例仍有其缺點。舉例來說,由於記憶體讀取指令由快取裝置170輸出至系統記憶體160後,系統記憶體160會耗費較長的時間才能產生讀取資料並回傳至快取裝置170。也就是說,第2圖中步驟S282至步驟S284之間會有較長的等待時間,會導致快取裝置170的運作效能下降。
舉例來說,假設第N級指令緩衝器130為排序指令緩衝器(in-order command buffer)。在第N級指令緩衝器130中,由於快取裝置170正在等待回傳的讀取資料,代表記憶體寫入要求尚未退休(retire)。此時,快取裝置170無法選擇第N級指令緩衝器130中其他的要求來執行,必須等到該筆記憶體寫入要求退休後才可以繼續執行其他要求。
或者,假設第N級指令緩衝器130為亂序指令緩衝器(out-of-order command buffer)。在第N級指令緩衝器130中,由於快取裝置170正在等待回傳的讀取資料,代表記憶體寫入要求尚未退休(retire)。此時,快取裝置170可以執行第N級指令緩衝器130中的其他要求。然而,由於等待時間較長,當第N級指令緩衝器130內其他要求皆執行完畢時,該筆記憶體寫入要求成為第N級指令緩衝器130中最舊的要求(oldest request),且該筆最舊的要求尚未退休。此時,第N級指令緩衝器130無法接收新的要求,必須等到最舊(oldest)的記憶體寫入要求退休後,第N級指令緩衝器130才可以繼續接收其他的要求。
為了解決第一實施例的缺陷。本發明修改快取裝置,並提出管理記憶體寫入要求的第二實施例。如第3A圖所示,其為本發明電腦系統中的快取裝置示意圖。第3B圖為管理記憶體寫入要求暫存至寫入配置緩衝器的方法。第3C圖為本發明快取裝置中執行記憶體寫入要求的方法。
如第3A圖所示,快取裝置370耦接至中央處理器350,且快取裝置370經由匯流排(bus)耦接至系統記憶體360。中央處理器350可連續發出多筆要求(request)來存取(access)系統記憶體360。當該筆要求為記憶體寫入要求(memory write request)時,該筆要求會包括位址資訊(address information)與寫入資料(write data)。當要求為記憶體讀取要求(memory read request)時,該筆要求中會包括位址資訊(address information)。
在快取裝置中,每一個快取記憶體312、322、332內皆包括多條快取線(cache line)。舉例來說,第二級快取記憶體322中有M條快取線,每一條快取線至少可儲存位址資訊與資料。M為大於1的整數。當然,每一個快取記憶體312、322、332中可以有不同數目的快取線。
如第3A圖所示,快取裝置370中區分為很多級(level),例如N級。快取裝置370包括:第一級快取記憶體(L
1cache memory)312、第二級指令緩衝器(L
2command buffer)320、第二級快取記憶體(L
2cache memory)322、第N級指令緩衝器(L
Ncommand buffer)330、寫入配置緩衝器(write allocate buffer)331以及第N級快取記憶體(L
Ncache memory)132。其中,N為大於1的整數,第N級指令緩衝器130與第N級快取記憶體132為快取裝置170中最後一級指令緩衝器以及最後一級快取記憶體。
相較於第1圖的快取裝置170,本發明於快取裝置370的第N級中更增加一寫入配置緩衝器331。寫入配置緩衝器331僅用來暫存記憶體寫入要求。以下詳細說明本發明快取裝置370的運作。
當中央處理器350發出要求(request)至快取裝置370時,快取裝置370會先判斷是否命中(hit)第一級快取記憶體312。
於命中的情況下,如果該筆要求為記憶體讀取要求,則第一級快取記憶體312中對應快取線的儲存資料即為讀取資料,並回傳讀取資料至中央處理器350,且該筆記憶體讀取要求被退休(retired),代表該筆記憶體讀取要求已經完成。
於命中的情況下,如果該筆要求為記憶體寫入要求,則將寫入資料更新(update)於第一級快取記憶體312的對應快取線內,亦即對應快取線中的儲存資料會被更新。接著,該筆記憶體寫入要求被退休(retired),代表該筆記憶體寫入要求已經完成。
於未命中的情況下,該筆要求會被傳送至第二級指令緩衝器320。第二級指令緩衝器320中包括多個入口(entry),每一個入口可暫存一筆要求。也就是說,當該筆要求會被傳送至第二級指令緩衝器320時,該筆要求會被暫存於第二級指令緩衝器320中的一個自由入口(free entry)。再者,第二級指令緩衝器320與第二級快取記憶體322相互搭配。
快取裝置370可選擇第二級指令緩衝器320中多個使用入口(used entry)的其中一筆要求,並判斷是否命中第二級快取記憶體322。
舉例來說,快取裝置370選擇第二級指令緩衝器320中的一筆要求並判斷是否命中第二級快取記憶體322。於命中的請況下,如果該筆要求為記憶體讀取要求,則第二級快取記憶體322中對應快取線的儲存資料即為讀取資料,並回傳讀取資料至中央處理器350,且該筆記憶體讀取要求被退休(retired),代表該筆記憶體讀取要求已經完成。
於命中的情況下,如果該筆要求為記憶體寫入要求,則將寫入資料更新於第二級快取記憶體322的對應快取線內,亦即對應快取線中的儲存資料會被更新。接著,該筆記憶體寫入要求被退休(retired),代表該筆記憶體寫入要求已經完成。
另外,於未命中的情況下,該筆要求會被傳送至下一級指令緩衝器。類似地,下一級指令緩衝器包括多個入口(entry)可暫存多個要求,每一個入口可暫存一筆要求。也就是說,當該筆要求會被傳送至下一級指令緩衝器時,該筆要求會被暫存於下一級指令緩衝器中的一個自由入口。再者,下一級指令緩衝器與下一級快取記憶體相互搭配。其運作模式類似於第二級指令緩衝器320與第二級快取記憶體322。此處不再贅述。
根據本發明的實施例,在一直未命中的情況下,該筆要求最後會被傳送至第N級指令緩衝器330或者寫入配置緩衝器331。第N級指令緩衝器330與寫入配置緩衝器331包括多個入口(entry)可暫存多個要求。寫入配置緩衝器331的入口用來暫存記憶體寫入要求,第N級指令緩衝器330的入口用來暫存其他的要求。也就是說,如第3B圖所示的管理流程圖,第N級接收到該筆要求時(步驟S362),會先判斷該筆要求是否為記憶體寫入要求(步驟S364)。當該筆要求為記憶體寫入要求時,記憶體寫入要求被暫存於寫入配置緩衝器331中的自由入口(步驟S368),而其他要求則被暫存於第N級指令緩衝器330中的自由入口(步驟S366)。
再者,快取裝置370可以任意選擇第N級指令緩衝器330或者寫入配置緩衝器331中多個使用入口(used entry)內的其中一筆要求,並判斷是否命中第N級快取記憶體132。也就是說,第N級指令緩衝器330與寫入配置緩衝器331可各自獨立運作,彼此之間不會互相影響。
舉例來說,快取裝置370選擇第N級指令緩衝器330中的一筆要求並判斷命中第N級快取記憶體332時,如果該筆要求為記憶體讀取要求,則第N級快取記憶體332中對應快取線的儲存資料即為讀取資料,並回傳讀取資料至中央處理器350,且該筆記憶體讀取要求被退休(retired),代表該筆記憶體讀取要求已經完成。基本上,快取裝置370對於記憶體讀取要求(memory read request)的管理方式相同於習知管理方式以及第一實施例,所以以下僅介紹 快取裝置370管理記憶體寫入要求的方法。
如第3C圖所示的管理流程圖,當快取裝置370選擇寫入配置緩衝器331中的一筆記憶體寫入要求(步驟S372)時,快取裝置370判斷是否命中第N級快取記憶體332(步驟S374)。也就是說,快取裝置370會判斷第N級快取記憶體332的所有快取線內是否記錄相同的位址資訊。如果第N級快取記憶體332的其中一條快取線記錄的位址資訊相同於該筆要求中的位址資訊時,則為命中(hit)。反之,如果第N級快取記憶體332中所有快取線記錄的位址資訊皆異於該筆要求中的位址資訊時,則為未命中(miss)。
於命中(hit)的情況下,快取裝置370執行該筆記憶體寫入要求(步驟S376)。也就是說,快取裝置370將寫入資料更新於第N級快取記憶體332中的對應快取線內,亦即對應快取線中的儲存資料會被更新。接著,該筆記憶體寫入要求被退休(步驟S388),代表該筆記憶體寫入要求已經完成。
於未命中(miss)的情況下,快取裝置370將該筆記憶體寫入要求修改為記憶體讀取要求,並輸出記憶體讀取要求至系統記憶體360(步驟S382)。
根據本發明的實施例,於未命中第N級快取記憶體332的情況下,快取裝置370先將記憶體寫入要求修改為記憶體讀取要求,並輸出記憶體讀取要求至系統記憶體360。之後,系統記憶體360根據記憶體讀取要求產生讀取資料,並回傳至快取裝置370。基本上,對應於此筆讀取資料的記憶體讀取要求並不是由中央處理器350所發出,所以該筆讀取資料不會傳回中央處理器350,僅回傳至快取裝置370。
再者,於收到系統記憶體360產生的讀取資料時,快取裝置370會將該筆記憶體寫入要求的寫入資料合併(merge)至讀取資料,成為合併資料(merged data)(步驟S384)。接著,將位址資訊與合併資料儲存至快取線(步驟S386)。最後,退休記憶體寫入要求(步驟S388)。
根據本發明的實施例,於收到系統記憶體360產生的讀取資料後,快取裝置370會將第N級指令緩衝器330中記憶體寫入要求所對應的寫入資料與讀取資料合併(merge),成為合併資料(merged data)。接著,將記憶體寫入要求中的位址資訊以及合併資料儲存至第N級快取記憶體332中的一條快取線。最後,退休第N級指令緩衝器330中的記憶體寫入要求,代表該筆記憶體寫入要求已完成。
根據本發明的第二實施例,在第3C圖中步驟S382至步驟S384之間會有較長的等待時間。由於本發明快取裝置370的第N級中包括第N級指令緩衝器330與寫入配置緩衝器331。第N級指令緩衝器330與寫入配置緩衝器331可各自獨立運作,彼此之間不會互相影響。因此,在等待時間的過程,快取裝置370仍可以選擇第N級指令緩衝器330內的要求來執行,所以可以維持快取裝置170的運作效能。
另外,由第3B圖的管理流程可知,當記憶體寫入要求被傳送至第N級時,皆會被暫存至寫入配置緩衝器331。也就是說,如果第N級連續接收5筆相同位址資訊的記憶體寫入要求時,該5筆記憶體寫入要求都會被暫存於寫入配置緩衝器331的自由入口。之後,快取裝置370則根據第3C圖的流程來依序執行這5筆記憶體寫入要求。
針對多個相同位址資訊的記憶體寫入要求,本發明更改善第3B圖中記憶體寫入要求暫存至寫入配置緩衝器的方法。使得寫入配置緩衝器可以利用最少的自由入口來暫存多個相同位址資訊的記憶體寫入要求。
請參照第4圖,其所繪示為記憶體寫入要求暫存至寫入配置緩衝器的另一方法。首先,當第N級接收到一筆要求時(步驟S362),會先判斷該筆要求是否為記憶體寫入要求(步驟S364)。當該筆要求為記憶體寫入要求時,記憶體寫入要求被傳送至寫入配置緩衝器331(步驟S402),而其他要求則被暫存於第N級指令緩衝器330中的自由入口(步驟S366)。
當一筆記憶體寫入要求傳送至寫入配置緩衝器331時,快取裝置370會先判斷寫入配置緩衝器331中是否有使用入口也記錄相同位址資訊。於確認所有使用入口記錄的位址資訊皆異於該筆記憶體寫入要求的位址資訊,則將該筆記憶體寫入要求暫存至寫入配置緩衝器331中的自由入口(步驟410)。
再者,於確認有使用入口記錄的位址資訊相同於該筆記憶體寫入要求的位址資訊時,則進一步判斷是否有多個使用入口記錄的位址資訊相同於該筆記憶體寫入要求的位址資訊(步驟S408)。
於確認有多個使用入口記錄的位址資訊相同於該筆記憶體寫入要求的位址資訊時,將該筆記憶體寫入要求的寫入資料合併至寫入配置緩衝器331內最新(newest)使用者入口的儲存資料(步驟S420)。接著,退休該筆記憶體寫入要求(步驟S422)。在步驟S420中,快取裝置370會在相同位址資訊的多個使用入口之中,決定一個最新使用者入口。然後,將此筆記憶體寫入要求的寫入資料合併至最新使用者入口的儲存資料。
於確認僅有單一使用入口記錄的位址資訊相同於該筆記憶體寫入要求的位址資訊時,再判斷可否將寫入資料合併至寫入配置緩衝器331內對應的使用入口(步驟S412)。
於確認可以合併至對應的使用入口時,將該筆記憶體寫入要求的寫入資料合併至寫入配置緩衝器331中對應的使用者入口的儲存資料(步驟S416)。接著,退休該筆記憶體寫入要求(步驟S422)。
於確認不可以合併至對應使用入口時,將該筆記憶體寫入要求暫存至寫入配置緩衝器331中的自由入口(步驟410)。
由以上的說明可知,當第N級連續接收多筆相同位址資訊的記憶體寫入要求時,可以適當地將寫入資料合併至使用入口的儲存資料,並退休該筆記憶體寫入要求。因此,第4圖搭配第3C圖的管理方式確實可以減少寫入配置緩衝器331中自由入口的使用數目,更可以提高快取裝置170的運作效能。
請參照第5A圖至第5F圖,其所繪示為寫入配置緩衝器的管理流程各種範例。如第5A圖所示,寫入配置緩衝器331包括五個入口(entries)。每個入口皆有對應的代碼欄位(ID)、有效欄位(Valid)、位址資訊欄位(Address)、位元組致能欄位(BE[7:0])、資料欄位(Data[63:0])以及忙碌欄位(BUSY)。除此之外,每個入口也可以根據實際需求而增加其他功能的欄位。再者,第5A圖中僅以寫入配置緩衝器331具有五個入口為例來說明,寫入配置緩衝器331也可以有其他數目的入口。
在一個入口中,代碼欄位(ID)的數值越小,代表中的記憶體寫入要求暫存於寫入配置緩衝器331的暫存時間越長。也就是說,代碼欄位(ID)的數值0所對應的入口為最舊(oldest)入口,暫存的記憶體寫入要求為最舊的(oldest)的記憶體寫入要求。
在一個入口中,有效欄位(Valid)的數值代表對應的入口為自由入口或者是使用入口。如第5A圖所示,代碼欄位(ID)為“0”與“1”入口所對應的有效欄位(Valid)為“1”,代表代碼欄位(ID)為“0”與“1”的入口為使用入口。而其他的入口的有效欄位(Valid)為“0”,代表其他入口為自由入口。
在一個入口中,位址資訊欄位(Address)的數值為位址資訊,代表記憶體寫入要求欲更新的系統記憶體位址。
在一個入口中,位元組致能欄位(BE[7:0])與資料欄位(Data[63:0])互相搭配。其中,位元組致能欄位(BE[7:0])之數值為2進位的數值,資料欄位(Data[63:0])的數值為16進位的數值,而“x”為不理踩數值(don’t care value)。舉例來說,快取記憶體中一條快取線可記錄8位元組(8 bytes)的儲存資料,亦即64位元(64 bits)的儲存資料。因此,寫入配置緩衝器331中每個入口的資料欄位(Data[63:0])內的資料長度(data legth)為64位元(64 bits)。再者,位元組致能欄位(BE[7:0])代表欲更新寫入資料位置。
以代碼欄位(ID)為“0”的使用入口為例來說明,該使用入口暫存一第一記憶體寫入要求,其位元組致能欄位(BE[7:0])為“00001111”,代表第一記憶體寫入要求僅更新8個位元組中的後4個位元組。亦即,寫入資料為四位元組,依序為“12”、“34”、“AB”、“CD”。
同理,代碼欄位(ID)為“1”的使用入口暫存一第二記憶體寫入要求,其位元組致能欄位(BE[7:0])為“11100000”,代表第二記憶體寫入要求僅更新8個位元組中的前3個位元組。亦即,寫入資料為三位元組,依序為“56”、“78”、“90”。
在一個入口中,忙碌欄位(BUSY),代表該使用入口是否正在執行中。舉例來說,當忙碌欄位(BUSY)設定為“0”代表該使用入口的記憶體寫入要求尚未被選擇。此時,對應的該使用入口內的儲存資料可以被合併。反之,當快取裝置370選擇並判斷第一記憶體寫入要求是否命中第N級快取記憶體332時,該使用入口的忙碌欄位(BUSY)會被設定為“1”。此時,對應的該使用入口內的儲存資料不可以被合併。。
在第5A圖的情況下。當快取裝置370的第N級接收到一第三記憶體寫入要求,且第三記憶體寫入要求的位址資訊(Address)為 “1000”,位元組致能欄位(BE[7:0])數值為“00001111”, 資料欄位(Data[63:0])的數值為 “xxxxxxxx AAAAAAAA”。
此時,快取裝置370判斷寫入配置緩衝器331中沒有使用入口也記錄“1000”的位址資訊(Addrss)。由於所有使用入口記錄的位址資訊(Addrsss)皆異於第三記憶體寫入要求的位址資訊(Address)“1000”。因此,如第5B圖所示,快取裝置370將第三記憶體寫入要求暫存至寫入配置緩衝器331中的編號( ID)2的自由入口。也就是說,經由步驟(S362)、步驟(S364)、步驟(S402)、步驟(S406)、步驟(S410)後,第三記憶體寫入要求被暫存至編號( ID)2的自由入口。
在第5B圖的情況下。當快取裝置370的第N級接收到一第四記憶體寫入要求,且第四記憶體寫入要求的位址資訊(Address)為 “1000”,位元組致能欄位(BE[7:0])數值為“00111000”, 資料欄位(Data[63:0])的數值為 “xxxxBBBB BBxxxxxx”。
此時,快取裝置370判斷寫入配置緩衝器331中有使用入口也記錄“1000”的位址資訊(Addrss)。由於使用入口代碼欄位(ID)“2”內記錄的位址資訊(Addrsss)為“1000”,且忙碌欄位(BUSY)為“0”。因此,如第5C圖所示,快取裝置370將第四記憶體寫入要求的寫入資料合併至使用入口代碼欄位(ID)“2”內的儲存資料。在第5C圖中,位元組致能欄位(BE[7:0])數值修改為“00111111”, 資料欄位(Data[63:0])的數值合併為 “xxxxBBBB BBAAAAAA”。之後,該第四記憶體寫入要求被退休。也就是說,經由步驟(S362)、步驟(S364)、步驟(S402)、步驟(S406)、步驟(S408) 、步驟(S412)、步驟(S416)後,第四記憶體寫入要求的寫入資料與第三寫入要求的寫入資料合併,第四記憶體寫入要求不會被暫存至自由入口,且第四記憶體寫入要求會被退休。
在第5C圖的情況下,當快取裝置370選擇使用入口代碼欄位(ID)“2”內的記憶體寫入要求並判斷是否命中第N級快取記憶體332時,如第 5D圖所示,對應使用入口的忙碌欄位(BUSY)為“1”。
在第5D圖的情況下。當快取裝置370的第N級接收到一第五記憶體寫入要求,且第五記憶體寫入要求的位址資訊(Address)為 “1000”,位元組致能欄位(BE[7:0])數值為“00000011”, 資料欄位(Data[63:0])的數值為 “xxxxxxxx xxxxCCCC”。
此時,快取裝置370判斷寫入配置緩衝器331中雖然有使用入口也記錄“1000”的位址資訊(Addrss)。但是,由於使用入口代碼欄位(ID)“2”內記錄的位址資訊(Addrsss)為“1000”,且忙碌欄位(BUSY)為“1”。因此,如第5E圖所示,快取裝置370無法合併寫入資料。因此,如第5E圖所示,快取裝置370將第五記憶體寫入要求暫存至寫入配置緩衝器331中的編號( ID)3的自由入口。也就是說,經由步驟(S362)、步驟(S364)、步驟(S402)、步驟(S406)、步驟(S410)後,第五記憶體寫入要求被暫存至編號( ID)3的自由入口。此時,有二個相同位址資訊的記憶體寫入要求暫存於寫入配置緩衝器331中。
在第5E圖的情況下。當快取裝置370的第N級接收到一第六記憶體寫入要求,且第六記憶體寫入要求的位址資訊(Address)為 “1000”,位元組致能欄位(BE[7:0])數值為“11111111”, 資料欄位(Data[63:0])的數值為 “08090A0B0C0D0E0F”。
此時,快取裝置370判斷寫入配置緩衝器331有使用入口也記錄“1000”的位址資訊(Addrss)。由於使用入口代碼欄位(ID)“2”與“3”內記錄的位址資訊(Addrsss)皆為“1000”。因此,如第5F圖所示,快取裝置370將第六記憶體寫入要求的寫入資料合併至最新(newest)使用入口代碼欄位(ID)“3”內的儲存資料。在第5F圖中,位元組致能欄位(BE[7:0])數值修改為“11111111”, 資料欄位(Data[63:0])的數值合併為 “08090A0B0C0D0E0F”。之後,該第六記憶體寫入要求被退休。也就是說,經由步驟(S362)、步驟(S364)、步驟(S402)、步驟(S406)、步驟(S408) 、步驟(S420)、步驟(S422)後,第六記憶體寫入要求的寫入資料與第五寫入要求的寫入資料合併,第六記憶體寫入要求不會被暫存至自由入口,且第六記憶體寫入要求會被退休。
另外,在第5D圖的情況下,對應使用入口的忙碌欄位(BUSY)為“1”。代表快取裝置370正選擇使用入口代碼欄位(ID)“2”內的記憶體寫入要求並判斷是否命中第N級快取記憶體332。當快取裝置370判斷記憶體寫入要求並未命中第N級快取記憶體332時,該筆記憶體寫入要求會被修改為記憶體讀取要求並被傳送至系統記憶體360。此時,將會有一段等待時間,等待系統記憶體360回傳讀取資料。而在等待時間的過程,入口代碼欄位(ID)“2”的忙碌欄位(BUSY)會被改為“0”。因此,如果在等待時間內,快取裝置370的第N級接收到一第七記憶體寫入要求,且第七記憶體寫入要求的位址資訊(Address)為 “1000”,則第七記憶體寫入要求中的寫入資料也可以合併至入口代碼欄位(ID)“2”使用入口的儲存資料。
由以上的說明可知,本發明提出一種快取裝置中管理記憶體寫入要求的方法。在快取裝置370的第N級中更增加了一寫入配置緩衝器331,寫入配置緩衝器331僅能暫存記憶體寫入要求。由於第N級指令緩衝器330與寫入配置緩衝器331可各自獨立運作,彼此之間不會互相影響,所以可以維持快取裝置170的運作效能。另外,本發明更提出另一種寫入配置緩衝器331的管理方式,可以適當地將寫入資料合併至使用入口的儲存資料,降低寫入配置緩衝器331使用自由入口的數目。
另外,在上述的說明中,皆假設第N級為快取裝置370的最後一級,且寫入配置緩衝器331則增加在第N級。然而,本發明並不限定於此,本發明的寫入配置緩衝器331也可以不用增加在最後一級(level)。舉例來說,快取裝置370中有P級(level),且P為大於2的整數。再者,且N為大於1小於P的整數,且寫入配置緩衝器331增加在第N級。如此,在寫入配置緩衝器331不是增加在最後一級的情況下,也能夠達成本發明的目的。
綜上所述,雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
112,312:第一級快取記憶體
129,320:第二級指令緩衝器
122,322:第二級快取記憶體
130,330:第N級指令緩衝器
132,332:第N級快取記憶體
150,350:中央處理器
160,360:系統記憶體
170,370:快取裝置
331:寫入配置緩衝器
S272~S422:步驟流程
第1圖為習知電腦系統中的快取裝置示意圖;
第2圖為電腦系統中快取裝置管理記憶體寫入要求的方法第一實施例;
第3A圖為本明電腦系統中的快取裝置示意圖;
第3B圖為管理記憶體寫入要求暫存至寫入配置緩衝器的方法;
第3C圖為本發明快取裝置中執行記憶體寫入要求的方法;
第4圖為記憶體寫入要求暫存至寫入配置緩衝器的另一方法;以及
第5A圖至第5F圖為寫入配置緩衝器的管理流程各種範例。
312:第一級快取記憶體
320:第二級指令緩衝器
322:第二級快取記憶體
330:第N級指令緩衝器
331:寫入配置緩衝器
332:第N級快取記憶體
350:中央處理器
360:系統記憶體
370:快取裝置
Claims (13)
- 一種運用於快取裝置中管理一記憶體寫入要求的方法,該快取裝置耦接於一中央處理器與一系統記憶體之間,該快取裝置包括複數級,且一第N級包括一第N級指令緩衝器、一第N級快取記憶體與一寫入配置緩衝器,N為大於1的整數,該方法包括下列步驟: 接收一前一級傳送的一要求; 當該要求為一記憶體寫入要求時,將該記憶體寫入要求暫存至該寫入配置緩衝器中的一自由入口,其中該記憶體寫入要求包括一位址資訊與一寫入資料;以及 當該要求不是該記憶體寫入要求時,將該要求暫存至該第N級指令緩衝器中的一自由入口。
- 如請求項1所述的方法,更包括下列步驟: (a)選擇該寫入配置緩衝器中的該記憶體寫入要求,並判斷該記憶體寫入要求是否命中該第N級快取記憶體; (b)於命中該第N級快取記憶體時,執行該記憶體寫入要求,並退休該記憶體寫入要求;以及 (c)於未命中該第N級快取記憶體時,更包括下列步驟: (c1)將該記憶體寫入要求修改為一記憶體讀取要求,並輸出該記憶體讀取要求至該系統記憶體; (c2)將該寫入資料合併至該系統記憶體回傳的一讀取資料,成為一合併資料; (c3)將該位址資訊與該合併資料儲存至該第N級快取記憶體中的一快取線;以及 (c4)退休該記憶體寫入要求。
- 如請求項2所述的方法,其中於命中該第N級快取記憶體時,該記憶體寫入要求的該位址資訊相同於該第N級快取記憶體中一對應快取線中的一位址資訊。
- 如請求項3所述的方法,其中於執行該記憶體寫入要求時,將該寫入資料更新於該對應快取線中,使得該對應快取線內的一儲存資料被更新。
- 如請求項2所述的方法,其中於該步驟(c1)與該步驟(c2)之間的一等待時間,選擇並執行該第N級指令緩衝器中的另一要求。
- 一種運用於快取裝置中管理一記憶體寫入要求的方法,該快取裝置耦接於一中央處理器與一系統記憶體之間,該快取裝置包括複數級,且一第N級包括一第N級指令緩衝器、一第N級快取記憶體與一寫入配置緩衝器,N為大於1的整數,該方法包括下列步驟: (a)接收一前一級傳送的一要求; (b)當該要求不是一記憶體寫入要求時,將該要求暫存至該第N級指令緩衝器中的一自由入口; (c)當該要求為該記憶體寫入要求時,將該記憶體寫入要求傳送至該寫入配置緩衝器,其中該記憶體寫入要求包括一位址資訊與一寫入資料; (d)當該寫入配置緩衝器中所有使用入口皆未記錄相同的該位址資訊時,將該記憶體寫入要求暫存至該寫入配置緩衝器中的一自由入口; (e)當該寫入配置緩衝器中僅有一特定使用入口記錄相同的該位址資訊,且該寫入資料可以合併時,將該記憶體寫入要求的該寫入資料合併至該特定使用入口的一儲存資料,並退休該記憶體寫入要求; (f)當該寫入配置緩衝器中僅有該特定使用入口記錄相同的該位址資訊,且該寫入資料不可以合併時,將該記憶體寫入要求暫存至該寫入配置緩衝器中的該自由入口;以及 (g)當該寫入配置緩衝器中有多於一個使用入口記錄相同的該位址資訊時,將該記憶體寫入要求的該寫入資料合併至一最新使用入口的該儲存資料,並退休該記憶體寫入要求。
- 如請求項6所述的方法,更包括下列步驟: (h)選擇該寫入配置緩衝器中的該記憶體寫入要求,並判斷該記憶體寫入要求是否命中該第N級快取記憶體; (i)於命中該第N級快取記憶體時,執行該記憶體寫入要求,並退休該記憶體寫入要求;以及 (j)於未命中該第N級快取記憶體時,更包括下列步驟: (j1)將該記憶體寫入要求修改為一記憶體讀取要求,並輸出該記憶體讀取要求至該系統記憶體; (j2)將該寫入資料合併至該系統記憶體回傳的一讀取資料,成為一合併資料; (j3)將該位址資訊與該合併資料儲存至該第N級快取記憶體中的一快取線;以及 (j4)退休該記憶體寫入要求。
- 如請求項7所述的方法,其中於命中該第N級快取記憶體時,該記憶體寫入要求的該位址資訊相同於該第N級快取記憶體中一對應快取線中的一位址資訊。
- 如請求項8所述的方法,其中於執行該記憶體寫入要求時,將該寫入資料更新於該對應快取線中,使得該對應快取線內的一儲存資料被更新。
- 如請求項7所述的方法,其中於該步驟(j1)與該步驟(j2)之間的一等待時間,選擇並執行該第N級指令緩衝器中的另一要求。
- 如請求項6所述的方法,其中於該步驟(e)中,該特定使用入口的一忙碌欄位未被設定時,該特定使用入口的該儲存資料可以跟該寫入資料合併。
- 如請求項6所述的方法,其中於該步驟(f)中,該特定使用入口的一忙碌欄位被設定時,該特定使用入口的該儲存資料不可以跟該寫入資料合併。
- 如請求項6所述的方法,其中於該步驟(g)中,於相同該位址資訊的該些使用入口之中,根據該些使用入口的代碼欄位內,數值最大的該使用入口為該最新使用入口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111142793A TWI811151B (zh) | 2022-11-09 | 2022-11-09 | 快取裝置中管理記憶體寫入要求的方法 |
US18/113,307 US20240152459A1 (en) | 2022-11-09 | 2023-02-23 | Method for managing memory write request in cache device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111142793A TWI811151B (zh) | 2022-11-09 | 2022-11-09 | 快取裝置中管理記憶體寫入要求的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI811151B true TWI811151B (zh) | 2023-08-01 |
TW202420101A TW202420101A (zh) | 2024-05-16 |
Family
ID=88585473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111142793A TWI811151B (zh) | 2022-11-09 | 2022-11-09 | 快取裝置中管理記憶體寫入要求的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240152459A1 (zh) |
TW (1) | TWI811151B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW378293B (en) * | 1995-12-27 | 2000-01-01 | Intel Corporaiton | Method and apparatus for combining multiple writes to a memory |
CN113853652A (zh) * | 2019-05-24 | 2021-12-28 | 德州仪器公司 | 高速缓冲存储器中的管线化读取-修改-写入操作 |
TW202211021A (zh) * | 2020-09-02 | 2022-03-16 | 美商賽發馥股份有限公司 | 競爭時執行原子記憶體操作方法 |
US20220164217A1 (en) * | 2019-05-24 | 2022-05-26 | Texas Instruments Incorporated | Merging data for write allocate |
US20220327055A1 (en) * | 2019-05-24 | 2022-10-13 | Texas Instruments Incorporated | Aliased mode for cache controller |
-
2022
- 2022-11-09 TW TW111142793A patent/TWI811151B/zh active
-
2023
- 2023-02-23 US US18/113,307 patent/US20240152459A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW378293B (en) * | 1995-12-27 | 2000-01-01 | Intel Corporaiton | Method and apparatus for combining multiple writes to a memory |
CN113853652A (zh) * | 2019-05-24 | 2021-12-28 | 德州仪器公司 | 高速缓冲存储器中的管线化读取-修改-写入操作 |
US20220164217A1 (en) * | 2019-05-24 | 2022-05-26 | Texas Instruments Incorporated | Merging data for write allocate |
US20220327055A1 (en) * | 2019-05-24 | 2022-10-13 | Texas Instruments Incorporated | Aliased mode for cache controller |
TW202211021A (zh) * | 2020-09-02 | 2022-03-16 | 美商賽發馥股份有限公司 | 競爭時執行原子記憶體操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20240152459A1 (en) | 2024-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3620473B2 (ja) | 共有キャッシュメモリのリプレイスメント制御方法及びその装置 | |
US9442846B2 (en) | High speed memory systems and methods for designing hierarchical memory systems | |
US8799585B2 (en) | Cache memory capable of adjusting burst length of write-back data in write-back operation | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
TW200805061A (en) | Patrol snooping for higher level cache eviction candidate identification | |
TW201011537A (en) | Apparatus and method for ensuring data coherency within a cache memory hierarchy of a microprocessor | |
US20110145513A1 (en) | System and method for reduced latency caching | |
US6950909B2 (en) | System and method for reducing contention in a multi-sectored cache | |
JP2006134324A (ja) | ロッキング・キャッシュを用いる直接的保存 | |
JP2017126334A (ja) | 記憶装置及びその動作方法並びにシステム | |
US20170091092A1 (en) | Coherent interconnect for managing snoop operation and data processing apparatus including the same | |
TWI588831B (zh) | 非揮發性記憶體加速器及存取加速方法 | |
JP3407808B2 (ja) | コンピュータシステム | |
JP2001290702A (ja) | 記憶装置 | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
US7949833B1 (en) | Transparent level 2 cache controller | |
TW200304594A (en) | System and method of data replacement in cache ways | |
TWI811151B (zh) | 快取裝置中管理記憶體寫入要求的方法 | |
CN115605849A (zh) | 核对核高速缓存隐藏和目标发现 | |
TW202420101A (zh) | 快取裝置中管理記憶體寫入要求的方法 | |
JP2019200473A (ja) | メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法 | |
JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 | |
JP4828879B2 (ja) | キャッシュシステム | |
JP3767521B2 (ja) | キャッシュフィル制御方法及びcpu | |
JP3006204B2 (ja) | 情報処理装置 |