TWI820883B - 積體電路及其快取記憶體有效位元清除方法 - Google Patents
積體電路及其快取記憶體有效位元清除方法 Download PDFInfo
- Publication number
- TWI820883B TWI820883B TW111132592A TW111132592A TWI820883B TW I820883 B TWI820883 B TW I820883B TW 111132592 A TW111132592 A TW 111132592A TW 111132592 A TW111132592 A TW 111132592A TW I820883 B TWI820883 B TW I820883B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache memory
- cache
- data
- specific address
- valid
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 243
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004140 cleaning Methods 0.000 title abstract 5
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000013507 mapping Methods 0.000 claims description 6
- 230000003068 static effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 102100024342 Contactin-2 Human genes 0.000 description 1
- 101000690440 Solanum lycopersicum Floral homeotic protein AGAMOUS Proteins 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002618 waking effect 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
Abstract
一種快取記憶體有效位元清除方法。該方法包括:當積體電路開機或從休眠狀態進入工作狀態時,利用快取記憶體控制器執行有效位元清除程序以依序清除在快取記憶體中之各位址相應的標籤;因應於快閃記憶體控制器從快閃記憶體讀取相應於特定位址的一筆資料,利用快閃記憶體控制器通知快取記憶體控制器暫停有效位元清除程序,利用快取記憶體控制器將資料寫入快取記憶體之特定位址,並將相應的有效位元設定為有效;以及因應於有效位元被設定為有效,利用快取記憶體控制器從快取記憶體特定位址讀取資料以傳送至處理器,並恢復有效位元清除程序。
Description
本發明係有關於記憶體控制電路,特別是有關於一種積體電路及其快取記憶體有效位元清除方法。
在階層式記憶體的設計上,當某個電路(例如中央處理器(CPU)或其他電路)要去存取某一記憶體時,若中央處理器的操作速度與被存取的記憶體操作速度差異過大,會插入一個速度介於中央處理器與被存取者(低速記憶體)的記憶體。此記憶體係稱為快取記憶體(Cache memory)。快取記憶體除了做為緩衝之外,還會把非目前讀取的資料也同時讀進來。若下次中央處理器剛好需要此筆資料,快取記憶體就可以快速地將該筆資料回傳至中央處理器,不用再到低速的記憶體上進行讀取。
然而,讀取快取記憶體的每筆資料都具有相應的標籤(Tag)以註記該筆資料與被存取者之間的地址映射關係。當中央處理器欲存取時快取記憶體控制器之資料時,中央處理器會先查看該筆資料是否有相對應的標籤存在於快取記憶體中。若對應的該標籤存在且其有效位元為有效,快取記憶體就會直接將該筆資料傳送至中央處理器。快取記憶體通常都用靜態隨機存取記憶體(SRAM)所實現。
在低功耗的系統設計上,當系統進入休眠模式或者省電模式時,會盡可能地把靜態隨機存取記憶體斷電以做為降低功耗的手段。這些被斷電的靜態隨機存取記憶體之中當然也包括快取記憶體。然而,當系統剛開機或者進入休眠模式再喚醒時,靜態隨機存取記憶體是由斷電的狀態被喚醒,而隨著休眠狀態的時間長短以及系統操作的環境不同,做為有效位元使用的靜態隨機存取記憶體可能還存在著沒被放電完的電荷,這會導致快取的內容為偽有效的狀態。
然而,傳統的快取記憶體有效位元清除機制往往需要耗費大量時間,以導致整個系統的開機時間或喚醒時間拉長,進而造成系統的功耗損失。
有鑑於此,本發明係提供一種積體電路及其快取記憶體有效位元清除方法以解決上述問題。
本發明係提供一種積體電路,包括:一處理器;一快取記憶體,包括複數個位址,且各位址的內容包括有效位元、標籤及資料欄位;一快取記憶體控制器,用以控制該快取記憶體之存取;一快閃記憶體;以及一快閃記憶體控制器,用以控制該快閃記憶體之存取;其中當該積體電路開機或從一休眠狀態進入一工作狀態時,該快取記憶體控制器係執行一有效位元清除程序以依序清除在該快取記憶體中之各位址相應的該有效位元,其中,因應於該快閃記憶體控制器從該快閃記憶體讀取相應於一特定位址的一筆資料,該快閃記憶體控制器通知該快取記憶體控制器暫停該有效位元清除程序,該快取記憶體控制器將該筆資料寫入該快取記憶體之該特定位址,並將特定的映射位址寫入該快取記憶體的標籤並且設置其有效位元,其中,因應於該快取記憶體之該特定位址相應的該有效位元被設定為有效,該快取記憶體控制器從該快取記憶體之該特定位址讀取該筆資料,將該筆資料傳送至該處理器,並恢復該有效位元清除程序。
在一些實施例中,當該快取記憶體控制器將該筆資料寫入該快取記憶體之該特定位址時,該快取記憶體控制器將該特定位址寫入至一暫存器。
在一些實施例中,當該有效位元清除程序執行至該特定位址時,該快取記憶體控制器係依據該暫存器所儲存之該特定位址跳過該快取記憶體之該特定位址的有效位元清除操作。
在一些實施例中,當該有效位元清除程序執行至該特定位址時,該暫存器係用以供一第二特定位址及相應的第二映射位址進行儲存,且該第二特定位址大於該特定位址。
在一些實施例中,當該積體電路開機或從該休眠狀態進入該工作狀態時,該處理器係傳送一資料讀取指令至該快閃記憶體控制器以從該快閃記憶體之該特定位址讀取該筆資料。
本發明更提供一種快取記憶體有效位元清除方法,用於一積體電路,其中該積體電路包括一處理器、一快取記憶體、一快取記憶體控制器、一快閃記憶體以及一快閃記憶體控制器,該方法包括:當該積體電路開機或從一休眠狀態進入一工作狀態時,利用該快取記憶體控制器執行一有效位元清除程序以依序清除在該快取記憶體中之各位址相應的有效位元;因應於該快閃記憶體控制器從該快閃記憶體讀取相應於一特定位址的一筆資料,利用該快閃記憶體控制器通知該快取記憶體控制器暫停該有效位元清除程序,並利用該快取記憶體控制器將該筆資料寫入該快取記憶體之該特定位址,並將該快取記憶體之該特定位址相應的有效位元設定為有效;利用該快取記憶體控制器從該快取記憶體之該特定位址讀取該筆資料,將該筆資料傳送至該處理器,並恢復該有效位元清除程序。
在一些實施例中,當該快閃記憶體控制器將該筆資料寫入該快取記憶體之該特定位址時,利用該快閃記憶體控制器將該特定位址及相應的該標籤及該筆資料寫入至一暫存器。
在一些實施例中,當該有效位元清除程序執行至該特定位址時,利用該快取記憶體控制器依據該暫存器所儲存之該特定位址跳過該快取記憶體之該特定位址的有效位元清除操作。
在一些實施例中,當該有效位元清除程序執行至該特定位址時,該暫存器係用以供一第二特定位址及相應的該標籤及資料進行儲存,且該第二特定位址大於該特定位址。
在一些實施例中,當該積體電路開機或從該休眠狀態進入該工作狀態時,利用該處理器傳送一資料讀取指令至該快閃記憶體控制器以從該快閃記憶體之該特定位址讀取該筆資料。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的"包含"、"包括"等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於申請專利範圍中使用如"第一"、"第二"、"第三"等詞係用來修飾申請專利範圍中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖為依據本發明一實施例中之積體電路的方塊圖。
積體電路100例如可為一晶片系統(system on chip,SoC)或一應用導向積體電路(application-specific integrated circuit,ASIC)。如第1圖所示,積體電路100包括處理器110、快閃記憶體控制器120、快取記憶體130、快閃記憶體140及暫存器150。處理器110例如可為中央處理器(central processing unit,CPU)、微控制器(MCU)、數位信號處理器(digital signal processor,DSP)等等,但本發明並不限於此。快取記憶體130例如可用靜態隨機存取記憶體(SRAM)所實現,但本發明並不限於此。
在一些實施例中,處理器110包括快取記憶體控制器111,用以控制快取記憶體之資料存取及有效位元清除等操作。在另一些實施例中,快取記憶體控制器111可設置於處理器110外部,但本發明並不限於此。
快閃記憶體控制器120係電性連接至處理器110、快取記憶體130、快閃記憶體140及暫存器150。快閃記憶體控制器120係用以控制快閃記憶體140之資料存取,並且可將從快閃記憶體140讀取的資料寫入至快取記憶體130及/或暫存器150。此外,快取記憶體控制器111及快閃記憶體控制器120均可控制暫存器150之資料存取。
第2圖為依據本發明一實施例中之快取記憶體的資料架構的示意圖。請同時參考第1圖及第2圖。
如第2圖所示,快取記憶體130包括複數筆索引,例如從索引1~索引N,其中各索引所儲存的內容均包括有效位元欄位(VALID)、標籤欄位(TAG)及資料欄位(DATA)。當快取記憶體130之特定索引之內容被處理器110的存取需求而更新時,該特定索引之有效位元會被標記為有效(valid),如第2圖之有效位元欄位VALID所標示的V。當快取記憶體130之特定索引之內容未被更新時,該特定索引之有效位元會被標記為無效(invalid),如第2圖之有效位元欄位VALID所標示的NV。
在第2圖之實施例中,位於索引1及索引4的有效位元被標示為有效(V),故相應的標籤TAG1及標籤TAG2及資料DATA1及DATA4為有效。位於索引2及索引3的有效位元被標示為無效(NV),故相應的標籤TAG2及標籤TAG2、及資料DATA2及DATA3為無效,依此類推。
詳細而言,當系統剛開機或者進入休眠模式再喚醒時,快取記憶體130是由斷電的狀態被喚醒,所以此時快取記憶體130中之各索引的標籤欄位TAG及資料欄位DATA的內容極有可能是不正確的。因此,在快取記憶體130中的各索引的有效位元欄位VALID需要先清除並標記為無效(NV),才不會讓處理器110從快取記憶體130讀取到錯誤的資料。待快取記憶體130中之各索引的有效位元欄位VALID均被標記為無效(NV)後,處理器110才會開始進行後續存取動作。接著,若處理器110欲讀取在快取記憶體130中之特定索引的資料,則該特定索引的有效位元需先被設定為有效(V)。本發明在第3圖及第4圖之實施例中提供兩種不同的快取記憶體有效位元清除方法。
第3圖為依據本發明一實施例中處理器存取快閃記憶體的波形圖。請同時參考第1圖及第3圖。
在第3圖之實施例中,先針對各種信號之定義進行說明。與處理器110相關之信號包括:CPU_CLK表示處理器時脈信號;CPU_RDEN表示處理器讀取致能信號;CPU_ADDR表示處理器位址信號;CPU_RDATA表示處理器讀取資料信號;CPU_RREADY則表示處理器讀取就緒信號。
與快取記憶體130相關之信號包括:SRAM_TAG_CLK表示快取記憶體標籤時脈信號;SRAM_TAG_WREN表示快取記憶體標籤寫入致能信號;SRAM_TAG_ADDR表示快取記憶體標籤位址信號;SRAM_TAG_WDATA表示快取記憶體標籤寫入資料信號;SRAM_DATA_ADDR表示快取記憶體資料位址信號;SRAM_DATA_WDATA表示快取記憶體寫入資料信號;SRAM_DATA_RDATA表示快取記憶體讀取資料信號。
與快閃記憶體140相關之信號則包括:FLASH_DATA_RDATA表示快閃記憶體讀取資料信號。
如第3圖所示,在時間T
1時,處理器110發出位址ADDR_x的讀取請求。在此實施例中,因為系統剛開機或是剛從休眠模式被喚醒,快取記憶體控制器111係執行第一有效位元清除程序以逐一將快取記憶體130中之各索引的有效位元清除為無效狀態。需注意的是,當快取記憶體控制器111執行第一有效位元清除程序時,快取記憶體控制器111可將快取記憶體130之忙碌旗標(busy flag)設定為1,以防止處理器110或快閃記憶體控制器120存取快取記憶體130。
然而,相較於處理器時脈信號CPU_CLK及快取記憶體標籤時脈信號SRAM_TAG_CLK(例如100MHz或以上),快閃記憶體140之讀取速度相對較慢(例如25MHz),故快閃記憶體140並無法在時間T
2(即下一個時鐘週期)就將處理器110欲讀取的資料準備好。
為了便於說明,在此實施例中係假設快閃記憶體140在時間T
3就已將處理器110之讀取請求所需的資料DATA_x讀取完成(註:實際上通常會在時間T
3之後才讀取完成)。此時,快閃記憶體140雖然在時間T
3已將資料DATA_x準備好,但是因為快取記憶體控制器111還在執行第一有效位元清除程序以逐一清除快取記憶體130中之各索引的有效位元,快閃記憶體控制器120仍然無法透過快取記憶體控制器111將該筆資料DATA_x寫入至快取記憶體130。待第一有效位元清除程序完成後,快取記憶體控制器111可將快取記憶體130之忙碌旗標(busy flag)設定為0,以通知處理器110及快閃記憶體控制器120可存取快取記憶體130之資料。
舉例來説,在時間T
F時,快取記憶體控制器111已準備清除最後一個有效位元VALID_final,並且在時間T
F+1時,快取記憶體控制器111已清除在快取記憶體130中的所有有效位元。此時,快閃記憶體控制器120可透過快取記憶體控制器111將讀出的資料DATA_x寫入至快取記憶體130之索引x的資料欄位DATA,並且將索引x的相對應的映射位址寫入標籤欄位TAG並且將有效位元VALID寫為有效(V)。
接著,在時間T
F+2時,因為在快取記憶體130中已經存在位址ADDR_x的有效資料,所以快取記憶體控制器111可以將在快取記憶體130中之索引x的資料DATA_x傳送至處理器110,並將處理器讀取就緒信號CPU_RREADY拉升為高邏輯狀態以表示讀取操作完成。因此,在時間T
F+3時,快取記憶體控制器111可再接受新的讀取請求。
第4圖為依據本發明另一實施例中處理器存取快閃記憶體的波形圖。請同時參考第1圖及第4圖。
第4圖所示的各種信號係與第3圖類似,故其內容於此不再重複。如第4圖所示,在時間T
1時,處理器110發出位址ADDR_x的讀取請求。在此實施例中,因為系統剛開機或是剛從休眠模式被喚醒,快取記憶體控制器111係執行第二有效位元清除程序以逐一將快取記憶體130中之各索引的有效位元清除為無效狀態。需注意的是,當快取記憶體控制器111執行第二有效位元清除程序時,快取記憶體控制器111同樣可將快取記憶體130之忙碌旗標(busy flag)設定為1,以防止處理器110或快閃記憶體控制器120存取快取記憶體130。
然而,相較於處理器時脈信號CPU_CLK及快取記憶體標籤時脈信號SRAM_TAG_CLK(例如100MHz或以上),快閃記憶體140之讀取速度相對較慢(例如25MHz),故快閃記憶體140並無法在時間T
2(即下一個時鐘週期)就將處理器110欲讀取的資料準備好。
為了便於說明,在此實施例中係假設快閃記憶體140在時間T
3就已將處理器110之讀取請求所需的資料DATA_x讀取完成(註:實際上通常會在時間T
3之後才讀取完成)。此時,快閃記憶體140在時間T
3已將資料DATA_x準備好,並且通知快取記憶體控制器111以暫停第二有效位元清除程序,例如在快取記憶體標籤位址信號SRAM_TAG_ADDR=2時暫停。快取記憶體控制器111並將在快取記憶體130中相應位址(註:對應於快取記憶體標籤位址信號)之有效位元直接設定為有效,並且將讀出的資料DATA_x直接寫入至快取記憶體130的相對應位址之資料欄位DATA中。需注意的是,上述相應位址決定於不同的快取記憶體架構,舉例來說若快取記憶體為直接映射架構,那麼此相應位址為ADDR_x除以快取記憶體區塊數取餘數,但本發明並不限於此。
接著,在時間T4,快取記憶體控制器111從快取記憶體標籤位址信號SRAM_TAG_ADDR=3以恢復第二有效位元清除程序。此外,在時間T4,快取記憶體控制器111即可將在快取記憶體130中之相應位址的資料DATA_x傳送至處理器110,並將處理器讀取就緒信號CPU_RREADY拉升為高邏輯狀態以表示讀取操作完成。
需注意的是,在時間T3,當快閃記憶體控制器120透過快取記憶體控制器111將讀出的資料DATA_x直接寫入至快取記憶體130的索引x的資料欄位DATA時,快閃記憶體控制器120會將索引x位址寫入至暫存器150。舉例來説,第二有效位元清除程序同樣是逐一將快取記憶體130中之各索引的有效位元清除為無效狀態,假設索引x=5,則當第二有效位元清除程序逐一清除各索引之有效位元直到索引x=5時,因為暫存器150已儲存索引x=5,表示索引x=5已在第二有效位元程序執行時被存取過,意即,索引x=5的內容值(包括有效位元、標籤及資料)有效。因此,第二有效位元清除程序會跳過索引x=5的有效位元清除操作,從索引x=6繼續做有效位元的清除。
需注意的是,因為快閃記憶體140之讀取速度相對於快取記憶體130之存取速度慢上許多,所以一般來説可設置少量的暫存器150即足夠快取記憶體控制器111在執行第二有效位元清除程序時使用。若快取記憶體130之存取速度與快閃記憶體140之讀取速度差異很大(大於4倍或以上),則暫存器150之數量可隨著減少。若快取記憶體130之存取速度與快閃記憶體140之讀取速度差異較小(小於4倍),則暫存器150之數量可隨著增加。
詳細而言,在第4圖之實施例中,快取記憶體控制器111可在快閃記憶體控制器120從快閃記憶體140讀取資料的同時間進行第二有效位元清除程序以清除在快取記憶體130中之各索引的有效位元。當第二有效位元清除程序已進行至索引x之位置時,暫存器150的內容值可供判別索引x之有效位元是否需要被清除或者是否有效,例如當第二有效位元清除程序進行到索引x時,處理器110發出位址ADDR_y(對應於索引y)的讀取請求,且索引y>索引x,則將索引y的內容做更新並且將索引y寫入暫存器150。若索引x>索引y,則直接至索引y判斷相應的標籤TAG是否命中(hit)。
相較於第3圖之實施例,第4圖之實施例可更有效地將從快閃記憶體140讀取的資料預先寫入至快取記憶體130而不用等待快取記憶體控制器111所執行的有效位元清除程序完全執行完畢,且快取記憶體控制器111可將預先寫入至快取記憶體130中的資料在下一時鐘週期立即傳送至處理器110,以降低在積體電路100的系統開機或是從休眠狀態進入工作狀態時的等待時間,故可降低積體電路100的功耗。
第5圖為依據本發明一實施例中之快取記憶體有效位元清除方法的流程圖。請同時參考第1圖、第4圖及第5圖。
在步驟S510,系統開機或從休眠狀態進入工作狀態。舉例來説,當系統(例如包含積體電路100及相連接的各元件)進入休眠模式或者省電模式時,會盡可能地把靜態隨機存取記憶體(包含快取記憶體)斷電以做為降低功耗的手段。這些被斷電的靜態隨機存取記憶體之中當然也包括快取記憶體。然而,當系統剛開機或者進入休眠模式再喚醒時,靜態隨機存取記憶體(包含快取記憶體)是由斷電的狀態被喚醒,而隨著休眠狀態的時間長短以及系統操作的環境不同,做為有效位元使用的靜態隨機存取記憶體可能還存在著沒被放電完的電荷,這會導致做為有效位元使用的靜態隨機存取記憶體在喚醒之後,有可能還是存在著隨機的內容值,而導致快取記憶體控制器111誤判其為有效。
在步驟S520,快取記憶體控制器111執行一有效位元清除程序(例如第4圖之實施例中的第二有效位元清除程序)以依序清除在快取記憶體130中之各位址相應的有效位元。舉例來説,當快取記憶體控制器111執行第二有效位元清除程序時,快取記憶體控制器111同樣可將快取記憶體130之忙碌旗標(busy flag)設定為1,以防止處理器110或快閃記憶體控制器120存取快取記憶體130。
在步驟S530,因應於快閃記憶體控制器120從快閃記憶體140讀取相應於特定位址的一筆資料,快閃記憶體控制器120通知快取記憶體控制器111暫停有效位元清除程序,將該筆資料寫入快取記憶體130之特定位址,並將快取記憶體130之特定位址相應的標籤設定為有效。在一實施例中,舉例來説,假設該有效位元清除程序目前已進行到索引x且處理器110所發出的存取請求欲存取索引y,當索引y大於索引x時,快閃記憶體控制器120透過快取記憶體控制器111將讀出的資料DATA_x直接寫入快取記憶體130的索引y的資料欄位並且將索引y寫入至暫存器150,且快取記憶體控制器111並接著回應處理器110之存取請求。意即,暫存器150可供較後的索引動作判斷此索引y在有效位元清除過程中是否已經有寫入資料至快取記憶體,且快取記憶體控制器111可在快閃記憶體控制器120從快閃記憶體140讀取資料的同時間進行該有效位元清除程序(例如第4圖之實施例的第二有效位元清除程序)以清除在快取記憶體130中之各索引的有效位元。若在該有效位元清除程序中,處理器110欲再度存取索引y之資料,則快取記憶體控制器111則會直接回應處理器110之存取請求。當索引y小於或等於索引x時,快閃記憶體控制器120透過快取記憶體控制器111將讀出的資料DATA_x直接寫入至快取記憶體130之索引x的資料欄位DATA並將索引x的標籤欄位寫為有效(V),且快取記憶體控制器111並接著回應處理器110之存取請求。
在步驟S540,快取記憶體控制器111從快取記憶體130之該特定位址讀取該筆資料,將該筆資料傳送至處理器110,並恢復該有效位元清除程序。舉例來説,快閃記憶體控制器120可透過快取記憶體控制器111將從快閃記憶體140讀取的資料預先寫入至快取記憶體130而不用等待快取記憶體控制器111所執行的有效位元清除程序完全執行完畢,且快取記憶體控制器111可將預先寫入至快取記憶體130中的資料在下一時鐘週期立即傳送至處理器110,以降低在積體電路100的系統開機或是從休眠狀態進入工作狀態時的等待時間,故可降低積體電路100的功耗。
綜上所述,本發明係提供一種積體電路及其快取記憶體有效位元清除方法,其可在快取記憶體控制器執行快取記憶體之有效位元清除程序時,當快閃記憶體控制器從快閃記憶體讀取的特定位址之資料讀取完成時,快閃記憶體控制器可通知快取記憶體控制器暫停該有效位元清除程序,快取記憶體控制器並將該筆資料預先寫入至快取記憶體。快取記憶體控制器可將預先寫入至快取記憶體中的該筆資料在下一時鐘週期立即傳送至處理器,以降低在積體電路的系統開機或是從休眠狀態進入工作狀態時的等待時間,故可降低積體電路的功耗。
本發明雖以較佳實施例揭露如上,然其並非用以限定本發明的範圍,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:積體電路
110:處理器
111:快取記憶體控制器
120:快閃記憶體控制器
130:快取記憶體
140:快閃記憶體
150:暫存器
S510-S540:步驟
VALID:有效位元欄位
TAG:標籤欄位
DATA:資料欄位
TAG1-TAG4:標籤
DATA1-DATA4:資料
V:有效
NV:無效
CPU_CLK:處理器時脈信號
CPU_RDEN:處理器讀取致能信號
CPU_ADDR:處理器位址信號
CPU_RDATA:處理器讀取資料信號
CPU_RREADY:處理器讀取就緒信號
SRAM_TAG_CLK:快取記憶體標籤時脈信號
SRAM_TAG_WREN:快取記憶體標籤寫入致能信號
SRAM_TAG_ADDR:快取記憶體標籤位址信號
SRAM_TAG_WDATA:快取記憶體標籤寫入資料信號
SRAM_DATA_ADDR:快取記憶體資料位址信號
SRAM_DATA_WDATA:快取記憶體寫入資料信號
SRAM_DATA_RDATA:快取記憶體讀取資料信號
FLASH_DATA_RDATA:快閃記憶體讀取資料信號
ADDR_x:位址
DATA_x:資料
Invalid:無效
valid:有效
T
1-T
5、T
F+1、T
F+2、T
F+3:時間
第1圖為依據本發明一實施例中之積體電路的方塊圖。
第2圖為依據本發明一實施例中之快取記憶體的資料架構的示意圖。
第3圖為依據本發明一實施例中處理器存取快閃記憶體的波形圖。
第4圖為依據本發明另一實施例中處理器存取快閃記憶體的波形圖。
第5圖為依據本發明一實施例中之快取記憶體有效位元清除方法的流程圖。
S510-S540:步驟
Claims (10)
- 一種積體電路,包括: 一處理器; 一快取記憶體,包括複數個位址,且各位址的內容包括有效位元、標籤及資料欄位; 一快取記憶體控制器,用以控制該快取記憶體之存取; 一快閃記憶體;以及 一快閃記憶體控制器,用以控制該快閃記憶體之存取; 其中當該積體電路開機或從一休眠狀態進入一工作狀態時,該快取記憶體控制器係執行一有效位元清除程序以依序清除在該快取記憶體中之各位址相應的該有效位元; 其中,因應於該快閃記憶體控制器從該快閃記憶體讀取相應於一特定位址的一筆資料,該快閃記憶體控制器通知該快取記憶體控制器暫停該有效位元清除程序,且該快取記憶體控制器接著將該筆資料寫入該快取記憶體之該特定位址,將該特定位址相應的映射位址寫入該快取記憶體之該特定位址相應的該標籤,並將該特定位址相應的該有效位元設定為有效; 其中,因應於該快取記憶體之該特定位址相應的該有效位元被設定為有效,該快取記憶體控制器從該快取記憶體之該特定位址讀取該筆資料,將該筆資料傳送至該處理器,並恢復該有效位元清除程序。
- 如請求項1之積體電路,其中當該快取記憶體控制器將該筆資料寫入該快取記憶體之該特定位址時,該快取記憶體控制器並將該特定位址及相應的該映射位址寫入至一暫存器。
- 如請求項2之積體電路,其中當該有效位元清除程序執行至該特定位址時,該快取記憶體控制器係依據該暫存器所儲存之該特定位址跳過該快取記憶體之該特定位址的有效位元清除操作。
- 如請求項3之積體電路,其中當該有效位元清除程序執行至該特定位址時,該暫存器係用以供一第二特定位址及相應的第二映射位址進行儲存,且該第二特定位址大於該特定位址。
- 如請求項1之積體電路,其中當該積體電路開機或從該休眠狀態進入該工作狀態時,該處理器係傳送一資料讀取指令至該快閃記憶體控制器以從該快閃記憶體之該特定位址讀取該筆資料。
- 一種快取記憶體有效位元清除方法,用於一積體電路,其中該積體電路包括一處理器、一快取記憶體、一快取記憶體控制器、一快閃記憶體以及一快閃記憶體控制器,且該快取記憶體包括複數個位址,且各位址的內容包括有效位元、標籤及資料欄位,該方法包括: 當該積體電路開機或從一休眠狀態進入一工作狀態時,利用該快取記憶體控制器執行一有效位元清除程序以依序清除在該快取記憶體中之各位址相應的該有效位元; 因應於該快閃記憶體控制器從該快閃記憶體讀取相應於一特定位址的一筆資料,利用該快閃記憶體控制器通知該快取記憶體控制器暫停該有效位元清除程序,並利用該快取記憶體控制器將該筆資料寫入該快取記憶體之該特定位址、將該特定位址相應的映射位址寫入該快取記憶體之該特定位址相應的該標籤、並將該特定位址相應的該有效位元設定為有效;以及 因應於該快取記憶體之該特定位址相應的該有效位元被設定為有效,利用該快取記憶體控制器從該快取記憶體之該特定位址讀取該筆資料,將該筆資料傳送至該處理器,並恢復該有效位元清除程序。
- 如請求項6之快取記憶體有效位元清除方法,更包括: 當該快取記憶體控制器將該筆資料寫入該快取記憶體之該特定位址時,利用該快取記憶體控制器將該特定位址及相應的該映射位址寫入至一暫存器。
- 如請求項7之快取記憶體有效位元清除方法,更包括: 當該有效位元清除程序執行至該特定位址時,利用該快取記憶體控制器依據該暫存器所儲存之該特定位址跳過該快取記憶體之該特定位址的有效位元清除操作。
- 如請求項8之快取記憶體有效位元清除方法,其中當該有效位元清除程序執行至該特定位址時,該暫存器係用以供一第二特定位址及相應的第二映射位址及資料進行儲存,且該第二特定位址大於該特定位址。
- 如請求項6之快取記憶體有效位元清除方法,更包括:當該積體電路開機或從該休眠狀態進入該工作狀態時,利用該處理器傳送一資料讀取指令至該快閃記憶體控制器以從該快閃記憶體之該特定位址讀取該筆資料。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111132592A TWI820883B (zh) | 2022-08-30 | 2022-08-30 | 積體電路及其快取記憶體有效位元清除方法 |
CN202310433228.9A CN117636970A (zh) | 2022-08-30 | 2023-04-21 | 集成电路及其快取存储器有效位元清除方法 |
US18/319,708 US20240070085A1 (en) | 2022-08-30 | 2023-05-18 | Integrated circuit and method for cleaning valid bits in cache memory of the integrated circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111132592A TWI820883B (zh) | 2022-08-30 | 2022-08-30 | 積體電路及其快取記憶體有效位元清除方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI820883B true TWI820883B (zh) | 2023-11-01 |
TW202410309A TW202410309A (zh) | 2024-03-01 |
Family
ID=89722230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111132592A TWI820883B (zh) | 2022-08-30 | 2022-08-30 | 積體電路及其快取記憶體有效位元清除方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240070085A1 (zh) |
CN (1) | CN117636970A (zh) |
TW (1) | TWI820883B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201719420A (zh) * | 2015-11-23 | 2017-06-01 | 新唐科技股份有限公司 | 快取記憶體認證系統及方法 |
TW201729100A (zh) * | 2016-02-05 | 2017-08-16 | 新唐科技股份有限公司 | 記憶體裝置及其資料存取方法 |
TW201917735A (zh) * | 2017-10-30 | 2019-05-01 | 新唐科技股份有限公司 | 半導體裝置及其快閃記憶體的存取週期的自動調節方法 |
-
2022
- 2022-08-30 TW TW111132592A patent/TWI820883B/zh active
-
2023
- 2023-04-21 CN CN202310433228.9A patent/CN117636970A/zh active Pending
- 2023-05-18 US US18/319,708 patent/US20240070085A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201719420A (zh) * | 2015-11-23 | 2017-06-01 | 新唐科技股份有限公司 | 快取記憶體認證系統及方法 |
TW201729100A (zh) * | 2016-02-05 | 2017-08-16 | 新唐科技股份有限公司 | 記憶體裝置及其資料存取方法 |
TW201917735A (zh) * | 2017-10-30 | 2019-05-01 | 新唐科技股份有限公司 | 半導體裝置及其快閃記憶體的存取週期的自動調節方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117636970A (zh) | 2024-03-01 |
US20240070085A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467740B2 (en) | Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices | |
US7574611B2 (en) | Command decoder for microcontroller based flash memory digital controller system | |
US7529955B2 (en) | Dynamic bus parking | |
US5632038A (en) | Secondary cache system for portable computer | |
US8028185B2 (en) | Protocol for transitioning in and out of zero-power state | |
CN105339908B (zh) | 用于支持持久存储器的方法和装置 | |
JP2006018797A (ja) | 集積回路装置における待機電力を低減させる方法、集積回路のキャッシュ付きメモリアレイを動作させる方法、および集積回路装置 | |
TW201721356A (zh) | 針對關於記憶體裝置進入低功率態的技術 | |
US6385691B2 (en) | Memory device with command buffer that allows internal command buffer jumps | |
US20140082410A1 (en) | Home agent multi-level nvm memory architecture | |
US7565558B2 (en) | Power saving method and system for a central processing unit disposed in a non-snooping sleep state when a peripheral device sends a bus master request | |
TWI820883B (zh) | 積體電路及其快取記憶體有效位元清除方法 | |
CN116149554B (zh) | 一种基于risc-v及其扩展指令的数据存储处理系统及其方法 | |
TW202410309A (zh) | 積體電路及其快取記憶體有效位元清除方法 | |
US20210157389A1 (en) | Standby current reduction in memory devices | |
TWI235298B (en) | Method to read the battery status by the operating system of portable computer | |
CN111459560A (zh) | 基于risc-v架构的多核处理器唤醒系统 | |
US7634672B2 (en) | Power saving method of central processing unit | |
US20190259448A1 (en) | Save and restore scoreboard | |
CN115599194B (zh) | 一种Embedded Flash快速进入低功耗的设计系统及方法 | |
TWI824843B (zh) | 記憶裝置的控制方法與相關的快閃記憶體控制器與記憶裝置 | |
JPH1185617A (ja) | コンピュータシステム | |
Jain et al. | Review on memory divisions in computer architecture | |
JP2952884B2 (ja) | キャッシュコントローラ | |
JPH05143463A (ja) | キヤツシユメモリ装置 |