TWI579695B - 對處理器的快取進行清除的方法以及該處理器 - Google Patents

對處理器的快取進行清除的方法以及該處理器 Download PDF

Info

Publication number
TWI579695B
TWI579695B TW100149208A TW100149208A TWI579695B TW I579695 B TWI579695 B TW I579695B TW 100149208 A TW100149208 A TW 100149208A TW 100149208 A TW100149208 A TW 100149208A TW I579695 B TWI579695 B TW I579695B
Authority
TW
Taiwan
Prior art keywords
field
cache
processor
instruction
offset value
Prior art date
Application number
TW100149208A
Other languages
English (en)
Other versions
TW201327165A (zh
Inventor
盧彥儒
虞敬業
林振東
黃朝瑋
Original Assignee
瑞昱半導體股份有限公司
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 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW100149208A priority Critical patent/TWI579695B/zh
Priority to US13/691,841 priority patent/US9158697B2/en
Publication of TW201327165A publication Critical patent/TW201327165A/zh
Application granted granted Critical
Publication of TWI579695B publication Critical patent/TWI579695B/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/0891Addressing 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
    • 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/0804Addressing 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

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

對處理器的快取進行清除的方法以及該處理器
本發明係有關一種快取的清除方法,特別是關於一種對處理器的快取清除指定區段的方法。
快取(cache)是指存取速度比一般隨機存取記憶體更快的一種記憶體,一般而言,它不像系統主記憶體(main memory)那樣使用DRAM技術,而是使用昂貴但較快速的SRAM技術。參照第一圖,由於處理器(CPU)10的執行速度遠比主記憶體12的讀取速度快,處理器10若要存取主記憶體12的資料,必須等待數個處理器時脈周期而造成處理效能的浪費,因此,處理器10在存取資料時,其核心102會先到快取104中去尋找,當所需的資料因之前的操作已經被暫存於快取104時,處理器10就不需要從主記憶體12讀取資料,而能直接從快取104獲得所需資料,因而提升存取速度,獲得較佳效能。
CPU的快取曾經是用在超級電腦上的一種高階技術,不過現今電腦上使用的微處理器都在晶片內部整合了大小不等的資料快取和指令快取,通稱為L1快取(L1 Cache即Level 1 On-die Cache,第一級片上高速緩衝存儲器);而比L1更大容量的L2快取曾經被放在CPU外部,例如主機板或者CPU介面卡上,但是現在已經成為CPU內部的標準元件;更昂貴的頂級家用和工作站CPU甚至會配備比L2快取還要大的第三級高速緩衝存儲器(level 3 On-die Cache;L3快取)。
提供快取的目的是為了讓資料存取的速度適應CPU的處理速度,為了充分發揮快取的作用,現今的快取已不僅僅依靠暫存剛剛存取過的資料來提供快取能力,還會配合硬體實作的指令預測與資料預取技術,儘可能把將要使用的資料預先從主記憶體取到快取裡,提升CPU自快取中獲得所需資料的機率。由於快取的容量有限,除了有效預存CPU所需資料之外,適時的清除儲存於快取中的資料也是十分重要的。CPU會根據系統或軟體的需求,對快取提供寫回(Writeback)或無效化(Invalidate)指令。參照第一圖,當核心102對快取104進行寫回操作時,原儲存於快取104中的資料被寫回到主記憶體12;當執行無效化操作時,核心102將快取104中的所有資料清除(clean);通常,寫回指令會伴隨著無效化指令一起發出,以在資料寫回主記憶體12後清除整個快取。然而,早期的快取容量極小,只有幾KB,因此不需要考慮如何清楚部份區段,但現今的快取已被擴充達數MB,如何對快取的特定區段進行資料清除成了新的課題。
Hacking等人在美國專利第US 6978357號提出了一種解決方案,然而,此一清除方式存在著幾個限制,第一,被選取的區段大小必須是2的倍數;第二,只能清除固定長度的區段。
本發明的目的之一,在於提出一種選定快取中區段的指令格式,據以對處理器的快取選定區段並加以清除的方法。
本發明的目的之一,在於提出一種可執行選定快取中區段的指令格式,據以對其快取中選定區段進行清除的處理器。
根據本發明,一種對處理器的快取進行清除的方法,包括:根據一要求產生一特定指令,該特定指令包含一操作指令、一第一欄位以及一第二欄位;根據該該第一欄位以及該第二欄位,取得一偏移值以及一起始位址;依據該起始位址以及該偏移值,自該快取中選定一指定區段;以及清除儲存於該指定區段的資料。
根據本發明,一種處理器包括:一快取,包括一快取記憶體以及一快取控制器;以及一處理器核心,根據一要求產生一特定指令,該特定指令包含一操作指令、一第一欄位以及一第二欄位,根據該第一欄位以及該第二欄位取得一偏移值以及一起始位址;其中,該處理器核心將該起始位址以及該偏移值傳送給該快取控制器,該快取控制器根據該起始位址以及偏移值,自該快取記憶體中選定一指定區段,並清除儲存於該指定區段的資料。
本發明提出之指令格式使得被清除區段的起始位址及區段大小皆可調整。
本發明提出一種對處理器的快取進行清除的方法,第二圖繪示本發明提出之指令格式,在指令20中,OP欄位22係特定之指令,例如寫回(Writeback)、無效化(Invalidate)和寫回加無效化(Writeback+Invalidate)等,偏移欄位24供寫入一偏移值(offset),標示為rS之暫存器欄位26係用來指向一暫存器,藉以標示一起始位址。通常,處理器中會設置有32個暫存器,稱為暫存器檔案(Register File),在本實施例中,暫存器欄位26係指向該32個暫存器其中之一,其儲存之值為0x8000_0000,因此,核心以0x8000_0000做為起始位址(Starting address),結束位址(End address)為0x8000_0000+offset,偏移欄位24所標示之offset可以是偏移之快取列(cache line)的數量。
舉例來說,在快取列大小(cache line size)為8 bytes的情況下,當暫存器欄位26指向之暫存器的值為0000,且offset為0001時,結束位址為rS+offset=0 byte+1(<<3) byte=8,此時的開始位址為0000,結束位址為0008。CPU依據OP欄位22中的指令,將快取中位址0000到0008所儲存的資料寫回到主記憶體或加以清除。藉由改變偏移欄位24及暫存器欄位26之值,選定區段之大小以及起始位址皆可調整。
第三圖係根據本發明一實施例的流程圖,配合第四圖之處理器架構示意圖說明之。如前所述,處理器包括核心40和快取42兩個部份,其中,核心40之處理還分成多個階段,例如指令擷取階段(Instruction Fetch;IF)402、指令解碼階段(Instruction Decode;ID)404,最後進入產生位址命令及核准階段(Address-Command Generation & Issue)406,在本實施例中,於開始301後,執行步驟302,核心40在指令擷取階段402依據來自軟體的要求,在指令解碼階段404進行解碼而獲得偏移值和起始位址的相關資訊,決定操作指令及跟隨在操作指令後之暫存器欄位和偏移欄位中的值,再於產生位址命令及核准階段406產生整個指令,接著進入步驟303,核心40依據暫存器欄位指向之暫存器取得該起始位址,再於步驟304依據該起始位址以及該偏移值運算產生結束位址;於步驟305中,核心40送出操作指令,起始位址以及結束位址到快取42的快取控制器422;快取控制器422於步驟306中,對該起始位址及該結束位址之間的區段執行對應該操作指令的特定操作,例如寫回、無效化或寫回加無效化,而後結束307。快取40中的快取記憶體又可分為資料快取(data cache)424和指令快取(instruction cache)426兩個部份,本發明所提出之方式可同時適用於此二種快取,其中,指令快取426一般無執行寫回指令的需要。
在第三圖之實施例中,核心40提供起始位址、偏移值和結束位址給快取,但在其他實施例中,結束位址可以不由核心40計算產生,核心僅提供操作指令、起始位址和偏移值給快取42,再由快取中的快取控制器422去計算產生該結束位址。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10...處理器
102...核心
104...快取
12...主記憶體
20...指令
22...OP欄位
24...偏移欄位
26...暫存器欄位
40...核心
402...指令擷取階段
404...指令解碼階段
406...產生位址命令及核准階段
42...快取
422...快取控制器
424...資料快取
426...指令快取
第一圖係習知處理器的架構示意圖;
第二圖係根據本發明提出之指令格式;
第三圖係根據本發明一實施例的流程圖;以及
第四圖係第三圖之實施例的處理器架構示意圖。
301~307...步驟

Claims (16)

  1. 一種對處理器的快取進行清除的方法,包括:根據一要求產生一特定指令,該特定指令包含一操作指令、一第一欄位以及一第二欄位;根據該第一欄位以及該第二欄位,取得一偏移值以及一起始位址;依據該起始位址以及該偏移值,自該快取中選定一指定區段;以及清除儲存於該指定區段的資料。
  2. 如請求項1所述之方法,其中依據該起始位址以及該偏移值選定該指定區段的步驟包括:根據該第一欄位以及該第二欄位運算產生一結束位址;以及根據該起始位址、該偏移值以及該結束位址決定該指定區段。
  3. 如請求項1所述之方法,其中該要求係來自一軟體。
  4. 如請求項1所述之方法,其中該特定指令包含一無效化指令。
  5. 如請求項1所述之方法,其中該特定指令更包含一寫回指令。
  6. 如請求項1所述之方法,其中第一欄位以及該第二欄位依序跟隨於該特定指令,且該第二欄位指向一暫存器。
  7. 如請求項1所述之方法,其中該根據一要求執行一特定指令的步驟包括解碼該要求以產生該特定指令。
  8. 如請求項1所述之方法,其中該偏移值係偏移之快取列的數量。
  9. 一種處理器,包括:一快取,包括一快取記憶體以及一快取控制器;以及一處理器核心,根據一要求產生一特定指令,該特定指令包含一操作指令、一第一欄位以及一第二欄位,根據該第一欄位以及該第二欄位取得一偏移值以及一起始位址;其中,該處理器核心將該起始位址以及該偏移值傳送給該快取控制器,該快取控制器根據該起始位址以及偏移值,自該快取記憶體中選定一指定區段,並清除儲存於該指定區段的資料。
  10. 如請求項9所述之處理器,其中該處理器核心還根據該偏移值以及該起始位址運算產生一結束位址,並將該起始位址、該偏移值以及該結束位址提供給該快取控制器。
  11. 如請求項9所述之處理器,其中該快取控制器根據該起始位址以及該偏移值運算產生一結束位址,以決定該指定區段。
  12. 如請求項9所述之處理器,其中該要求係來自一軟體。
  13. 如請求項9所述之處理器,其中該特定指令包含一無效化指令。
  14. 如請求項9所述之處理器,其中該特定指令更包含一寫回指令。
  15. 如請求項9所述之處理器,更包括複數個暫存器,其中第一欄位以及該第二欄位依序跟隨於該操作指令,且該第二欄位指向該些暫存器其中之一。
  16. 如請求項9所述之處理器,其中該偏移值係偏移之快取列的數量。
TW100149208A 2011-12-28 2011-12-28 對處理器的快取進行清除的方法以及該處理器 TWI579695B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW100149208A TWI579695B (zh) 2011-12-28 2011-12-28 對處理器的快取進行清除的方法以及該處理器
US13/691,841 US9158697B2 (en) 2011-12-28 2012-12-02 Method for cleaning cache of processor and associated processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100149208A TWI579695B (zh) 2011-12-28 2011-12-28 對處理器的快取進行清除的方法以及該處理器

Publications (2)

Publication Number Publication Date
TW201327165A TW201327165A (zh) 2013-07-01
TWI579695B true TWI579695B (zh) 2017-04-21

Family

ID=48695906

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100149208A TWI579695B (zh) 2011-12-28 2011-12-28 對處理器的快取進行清除的方法以及該處理器

Country Status (2)

Country Link
US (1) US9158697B2 (zh)
TW (1) TWI579695B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714016B (zh) * 2014-01-14 2017-10-27 北京猎豹移动科技有限公司 缓存的清理方法、装置及客户端
US11226741B2 (en) * 2018-10-31 2022-01-18 EMC IP Holding Company LLC I/O behavior prediction based on long-term pattern recognition
US10901908B2 (en) 2019-01-16 2021-01-26 International Business Machines Corporation Storing data into a memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100388187C (zh) * 2004-08-04 2008-05-14 威盛电子股份有限公司 可变群组组合分支目标地址快取传送每一快取列多目标地址的装置和方法
CN100527094C (zh) * 2007-07-25 2009-08-12 威盛电子股份有限公司 暂存器数据撷取方法与装置
CN101833437A (zh) * 2009-05-19 2010-09-15 威盛电子股份有限公司 适用于微处理器的装置及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978357B1 (en) * 1998-07-24 2005-12-20 Intel Corporation Method and apparatus for performing cache segment flush and cache segment invalidation operations
US8214598B2 (en) * 2009-12-22 2012-07-03 Intel Corporation System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100388187C (zh) * 2004-08-04 2008-05-14 威盛电子股份有限公司 可变群组组合分支目标地址快取传送每一快取列多目标地址的装置和方法
CN100527094C (zh) * 2007-07-25 2009-08-12 威盛电子股份有限公司 暂存器数据撷取方法与装置
CN101833437A (zh) * 2009-05-19 2010-09-15 威盛电子股份有限公司 适用于微处理器的装置及方法

Also Published As

Publication number Publication date
TW201327165A (zh) 2013-07-01
US9158697B2 (en) 2015-10-13
US20130173862A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
US8713263B2 (en) Out-of-order load/store queue structure
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
US7752350B2 (en) System and method for efficient implementation of software-managed cache
JP5526626B2 (ja) 演算処理装置およびアドレス変換方法
JP5329234B2 (ja) 変換索引マニピェレーション
JP6859361B2 (ja) 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと
JPH07200399A (ja) マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法
JP2009506434A (ja) Tlbロックインジケータ
US9052910B2 (en) Efficiency of short loop instruction fetch
WO2013095392A1 (en) Systems and method for unblocking a pipeline with spontaneous load deferral and conversion to prefetch
JP2007293839A (ja) ロックされたキャッシュ内のセットの置換を管理するための方法、コンピュータ・プログラム、キャッシング・システムおよびプロセッサ
CN109219804B (zh) 非易失内存访问方法、装置和系统
KR102268601B1 (ko) 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템
US20070180156A1 (en) Method for completing IO commands after an IO translation miss
US20080140934A1 (en) Store-Through L2 Cache Mode
WO2020073641A1 (zh) 一种面向数据结构的图形处理器数据预取方法及装置
TW200409022A (en) Microprocessor, apparatus and method for selectiveprefetch retire
JP2009009571A (ja) レベル2キャッシュ/ネスト・アドレスを変換する方法および装置
JP2007048296A (ja) 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム
WO2018057273A1 (en) Reusing trained prefetchers
CN108874691B (zh) 数据预取方法和内存控制器
TWI579695B (zh) 對處理器的快取進行清除的方法以及該處理器
JP7038656B2 (ja) キャッシュへのアクセス
CN108874690A (zh) 数据预取的实现方法和处理器
CN112579482B (zh) 一种非阻塞Cache替换信息表超前精确更新装置及方法