[go: up one dir, main page]

TWI719745B - 記憶體資料存取裝置及其方法 - Google Patents

記憶體資料存取裝置及其方法 Download PDF

Info

Publication number
TWI719745B
TWI719745B TW108144948A TW108144948A TWI719745B TW I719745 B TWI719745 B TW I719745B TW 108144948 A TW108144948 A TW 108144948A TW 108144948 A TW108144948 A TW 108144948A TW I719745 B TWI719745 B TW I719745B
Authority
TW
Taiwan
Prior art keywords
memory
cache
data
memory address
data access
Prior art date
Application number
TW108144948A
Other languages
English (en)
Other versions
TW202123015A (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 TW108144948A priority Critical patent/TWI719745B/zh
Priority to US16/990,926 priority patent/US11720486B2/en
Application granted granted Critical
Publication of TWI719745B publication Critical patent/TWI719745B/zh
Publication of TW202123015A publication Critical patent/TW202123015A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種記憶體資料存取裝置及其方法。記憶體資料存取裝置包含快取記憶體以及處理單元。處理單元用以:執行記憶體讀取指令,其中,記憶體讀取指令包含記憶體位址;判斷記憶體位址於快取記憶體之讀取未命中;判斷記憶體位址介於記憶體位址範圍內,其中,記憶體位址範圍對應資料存取量;以及自記憶體之記憶體位址,讀取對應於資料存取量之資料區塊。

Description

記憶體資料存取裝置及其方法
本發明係關於一種記憶體資料存取裝置及其方法,尤其是關於一種與快取記憶體相關之記憶體資料存取裝置及其方法。
習知電腦架構中,快取記憶體(Cache Memory)主要係設置於處理單元以及一般記憶體(例如:隨機存取記憶體)間。當處理單元執行記憶體讀取指令時,可先至存取速度較快之快取記憶體中搜尋是否有相應之資料。若是,處理單元便可直接於快取記憶體中讀取所需資料,換言之,處理單元無需至存取速度較慢之一般記憶體中讀取所需資料,以節省讀取時間。若否,處理單元便需至存取速度較慢之一般記憶體中讀取所需資料。
惟考量快取記憶體成本較高,相對地儲存空間有限,因此,快取記憶體之使用方式及其儲存之內容須妥善配置,方能提升整體存取效率。
本發明的目的在於提供一種記憶體資料存取方法,包含:執行記憶體讀取指令,其中,記憶體讀取指令包含記憶體位址;判斷記憶體位址於快取記憶體之讀取未命中;判斷記憶體位址介於記憶體位址範圍內,其中,記憶體位址範圍對應資料存取量;以及自記憶體之記憶體位址,讀取對應於資料存取量之資料區塊。
本發明另提供一種記憶體資料存取裝置,包含快取記憶體以及處理單元。處理單元用以:執行記憶體讀取指令,其中,記憶體讀取指令包含記憶體位址;判斷記憶體位址於快取記憶體之讀取未命中;判斷記憶體位址介於記憶體位址範圍內,其中,記憶體位址範圍對應資料存取量;以及自記憶體之該記憶體位址,讀取對應於資料存取量之資料區塊。
在下文更詳細地論述本發明之實施例。然而,應瞭解,本發明提供可在廣泛多種特定情境中體現之許多適用的概念。所論述特定實施例僅為說明性的且並不限制本發明之範疇。
習知之技術中,當快取記憶體之讀取發生未命中(Cache Miss)時,將於一般記憶體中讀取固定大小之資料,使用上彈性較低。本發明提供一種記憶體資料存取裝置及方法,可動態地依據需要,調整一般記憶體中所需讀取資料之大小,以大幅地提升使用彈性。
請參閱圖1A,其係本發明一些實施例之一記憶體資料存取裝置10之方塊圖。記憶體資料存取裝置10包含一處理單元101以及一快取記憶體103。於一些實施例中,處理單元101以及快取記憶體103電性連結,用以傳遞資料及訊號。於一些實施例中,記憶體資料存取裝置10與一記憶體90電性連結,用以傳遞資料及訊號。相關記憶體資料存取操作將於下文中進一步闡述。
具體而言,當處理單元101需要對記憶體90之資料進行存取時,處理單元101執行一記憶體讀取指令100。其中,記憶體讀取指令100包含一記憶體位址ADDR。接著,在針對記憶體90進行存取前,處理單元101先判斷存取速度較快之快取記憶體103中,是否具有相應於記憶體位址ADDR之資料。若有,代表快取記憶體103之存取發生快取命中(Cache Hit),則處理單元101直接於快取記憶體103中,讀取相應於記憶體位址ADDR之資料。
另一方面,若處理單元101判斷快取記憶體103中不具有相應於記憶體位址ADDR之資料,代表快取記憶體103之存取發生快取未命中(Cache Miss),換言之,即處理單元101判斷記憶體位址ADDR於快取記憶體之讀取未命中,則處理單元101需進一步針對記憶體90進行讀取操作。
詳細來說,處理單元101先判斷記憶體位址ADDR是否介於一記憶體位址範圍RAG內。若否,處理單元101將直接於記憶體90之記憶體位址ADDR處,讀取單一快取單元(Cache Line)大小之一資料區塊DB,並將其寫入至快取記憶體103中,俾利處理單元101後續於快取記憶體103中存取記憶體位址ADDR相應之資料。
另一方面,記憶體位址範圍RAG對應一資料存取量AMT,若處理單元101判斷記憶體位址ADDR介於記憶體位址範圍內,處理單元101將自記憶體90之記憶體位址ADDR處,讀取對應於資料存取量AMT之資料區塊DB,並將資料區塊DB寫入至快取記憶體103中。於一些實施例中,資料存取量AMT係為快取單元大小之至少二倍。
於一些實施例中,記憶體位址範圍RAG及其對應之資料存取量AMT係預先設定,並儲存於至少一暫存器中。請一併參考圖1B,於一些實施例中,記憶體資料存取裝置10更包含一暫存器101a以及一暫存器101b,電性連結處理單元101。暫存器101a用以儲存記憶體位址範圍RAG,暫存器101b用以儲存資料存取量AMT。
請一併參考圖1C,於一些實施例中,暫存器101a儲存多組記憶體位址範圍RAG_1至RAG_N,暫存器101b儲存多組資料存取量AMT_1至AMT_N。其中,多組記憶體位址範圍RAG_1至RAG_N與多組資料存取量AMT_1至AMT_N係一一對應。據此,當處理單元101判斷記憶體位址ADDR落於記憶體範圍RAG_n時,處理單元101將自記憶體90之記憶體位址ADDR處,讀取對應於資料存取量AMT_n之資料區塊DB。
於一些實施例中,將資料區塊DB寫入至快取記憶體103可進一步包含更詳細之操作。請一併參閱圖1D,其係本發明一些實施例之快取記憶體103之快取通路(Cache Way)示意圖。其中,快取記憶體103包含複數快取通路TAG_a至TAG_d,每一快取通路具有0至7的欄位。
當處理單元101判斷記憶體位址ADDR介於記憶體位址範圍RAG內時,處理單元101自複數快取通路TAG_a至TAG_d中挑選一快取通路(例如:快取通路TAG_b)。同時,處理單元101將資料區塊DB分為複數單元資料(Line Data)DB_1至DB_3。其中,每一單元資料之大小與快取單元之大小相同,且單元資料DB_1至DB_3具有對應之記憶體位址ADDR_1至ADDR_3。
接著,處理單元101依序判斷是否將單元資料DB_1至DB_3寫入至所挑選之快取記憶體103。詳言之,針對每一單元資料,處理單元101判斷對應之記憶體位址是否儲存於快取記憶體103之任一快取通路中。若否,則處理單元101將對應之記憶體位址寫入至所挑選之快取通路,並將此單元資料寫入至快取記憶體103中相應之位置。
若處理單元101判斷對應之記憶體位址儲存於快取記憶體103之某一快取通路中,則處理單元101進一步判斷對應之記憶體位址是否儲存於所挑選之快取通路中。若是,則處理單元101丟棄此單元資料。若否,則處理單元101先於快取記憶體103中清除相應之快取資料。接著,處理單元101將對應之記憶體位址寫入至所挑選之快取通路中,並將此單元資料寫入至快取記憶體103中相應之位置。
舉例而言,請參考圖1E,針對單元資料DB_1,處理單元101判斷對應之記憶體位址ADDR_1未儲存於快取記憶體103之快取通路中。因此,處理單元101將對應之記憶體位址ADDR_1寫入至所挑選之快取通路中,並將單元資料DB_1寫入至快取記憶體103中相應之位置。
舉例而言,請參考圖1F,針對單元資料DB_2,處理單元101判斷對應之記憶體位址ADDR_2儲存於快取記憶體103之快取通路中。因此,處理單元101進一步判斷對應之記憶體位址ADDR_2儲存於所挑選之快取通路中。據此,處理單元101丟棄單元資料DB_2。
舉例而言,請參考圖1G,針對單元資料DB_3,處理單元101判斷對應之記憶體位址ADDR_3儲存於快取記憶體103之快取通路中。因此,處理單元101進一步判斷對應之記憶體位址ADDR_3未儲存於所挑選之快取通路中。據此,處理單元101先於快取記憶體103中清除相應之快取單元資料。接著,處理單元101將對應之記憶體ADDR_3位址寫入至所挑選之快取通路中,並將單元資料DB_3寫入至快取記憶體103中相應之位置。
以下將透過其他範例及圖式,更為完整地例示本發明將資料區塊寫入至快取記憶體之操作。請參考圖2A,其係本發明之暫存器及快取記憶體之示意圖。暫存器A儲存記憶體位址範圍:0x2000至0x3ffff以及0x5000至0x6ffff,暫存器B儲存資料存取量:二快取單元以及三快取單元。其中,記憶體位址範圍0x2000至0x3ffff對應資料存取量二快取單元,記憶體位址範圍0x5000至0x6ffff對應資料存取量三快取單元。
另一方面,快取記憶體C包含複數快取通路Way-0至Way-3,每一快取通路具有0至7的欄位。其中,如圖所示,快取通路Way-0至Way-3已儲存有多個記憶體位址2000、8060、A080、51A0以及20C0。須說明,前述快取通路所記錄之記憶體位址於快取記憶體C之其他部份具有相應之資料,為便於理解本發明之技術,並未繪出,惟本領域技術人員應可輕易理解。
請參考圖2B,記憶體讀取指令包含記憶體位址0x7040,處理單元判斷記憶體位址0x7040未介於記憶體位址範圍0x2000至0x3ffff或0x5000至0x6ffff間。據此,處理單元於記憶體之記憶體位址0x7040處,讀取單一快取單元大小之資料區塊。接著,處理單元挑選Way-1,並將對應之記憶體位址0x7040寫入至Way-1。同時,處理單元將相應於記憶體位址0x7040之資料區塊寫入至快取記憶體。
請參考圖2C,記憶體讀取指令包含記憶體位址0x2040,處理單元判斷記憶體位址0x2040介於記憶體位址範圍0x2000至0x3ffff間。據此,處理單元於記憶體之記憶體位址0x2040處,讀取資料存取量二快取單元大小之資料區塊。此資料區塊可分為起始位址為0x2040且大小為一快取單元之資料,以及起始位址為0x2060且大小為一快取單元之資料。
接著,處理單元挑選Way-0,並將對應之記憶體位址0x2040寫入至Way-0。同時,處理單元將相應於記憶體位址0x2040之資料區塊寫入至快取記憶體。隨後,處理單元判斷記憶體位址0x2060並未存在於快取記憶體之任一快取通路中,因此,處理單元將對應之記憶體位址0x2060寫入至Way-0。同時,處理單元將相應於記憶體位址0x2060之資料區塊寫入至快取記憶體。
請參考圖2D,記憶體讀取指令包含記憶體位址0x5000,處理單元判斷記憶體位址0x5000介於記憶體位址範圍0x5000至0x6ffff間。據此,處理單元於記憶體之記憶體位址0x5000處,讀取資料存取量三快取單元大小之資料區塊。此資料區塊可分為起始位址為0x5000且大小為一快取單元之資料、起始位址為0x5020且大小為一快取單元之資料以及起始位址為0x5040且大小為一快取單元之資料。
接著,處理單元挑選Way-2,並將對應之記憶體位址0x5000寫入至Way-2。同時,處理單元將相應於記憶體位址0x5000之資料區塊寫入至快取記憶體。隨後,處理單元判斷記憶體位址0x5020並未存在於快取記憶體之任一快取通路中,因此,處理單元將對應之記憶體位址0x5020寫入至Way-2。同時,處理單元將相應於記憶體位址0x5020之資料區塊寫入至快取記憶體。
接著,處理單元判斷記憶體位址0x5040並未存在於快取記憶體之任一快取通路中,因此,處理單元將對應之記憶體位址0x5040寫入至Way-2。同時,處理單元將相應於記憶體位址0x5040之資料區塊寫入至快取記憶體。
請參考圖2E,記憶體讀取指令包含記憶體位址0x20A0,處理單元判斷記憶體位址0x20A0介於記憶體位址範圍0x2000至0x3ffff間。據此,處理單元於記憶體之記憶體位址0x20A0處,讀取資料存取量二快取單元大小之資料區塊。此資料區塊可分為起始位址為0x20A0且大小為一快取單元之資料,以及起始位址為0x20C0且大小為一快取單元之資料。
接著,處理單元挑選Way-2,並將對應之記憶體位址0x20A0寫入至Way-2。同時,處理單元將相應於記憶體位址0x20A0之資料區塊寫入至快取記憶體。隨後,處理單元判斷記憶體位址0x20C0存在於快取記憶體之快取通路Way-2中,因此,處理單元未將記憶體位址0x20C0重複寫入至Way-2。同時,處理單元將相應於記憶體位址0x20C0之資料區塊丟棄。
請參考圖2F,記憶體讀取指令包含記憶體位址0x5180,處理單元判斷記憶體位址0x5180介於記憶體位址範圍0x5000至0x6ffff間。據此,處理單元於記憶體之記憶體位址0x5180處,讀取資料存取量三快取單元大小之資料區塊。此資料區塊可分為起始位址為0x5180且大小為一快取單元之資料、起始位址為0x51A0且大小為一快取單元之資料以及起始位址為0x51C0且大小為一快取單元之資料。
接著,處理單元挑選快取通路Way-3,並將對應之記憶體位址0x5180寫入至Way-3。同時,處理單元將相應於記憶體位址0x5180之資料區塊寫入至快取記憶體。隨後,處理單元判斷記憶體位址0x51A0存在於快取記憶體之快取通路Way-0中,接著,處理單元於進一步判斷挑選之快取通路Way-3與記憶體位址0x51A0存在於快取記憶體之快取通路Way-0不同後,清除快取通路Way-0中之記憶體位址0x51A0,並清除相應之快取單元資料。接著,處理單元將對應之記憶體位址0x51A0寫入至Way-3。同時,處理單元將相應於記憶體位址0x51A0之資料區塊寫入至快取記憶體。
隨後,處理單元判斷記憶體位址0x51C0並未存在於快取記憶體之任一快取通路中,因此,處理單元將對應之記憶體位址0x51C0寫入至Way-2。同時,處理單元將相應於記憶體位址0x51C0之資料區塊寫入至快取記憶體。
本發明之一些實施例包含記憶體資料存取方法,其流程圖如圖3所示。這些實施例之記憶體資料存取方法由一記憶體資料存取裝置(如前述實施例之記憶體資料存取裝置10)實施。方法之詳細操作如下。
首先,執行步驟S301,執行一記憶體讀取指令。其中,記憶體讀取指令包含一記憶體位址。接著,執行步驟S302,判斷記憶體位址於一快取記憶體之讀取是否命中。若命中,則執行步驟S303,於快取記憶體中讀取相應之資料。若未命中,則執行步驟S304,判斷記憶體位址是否介於一記憶體位址範圍內。其中,記憶體位址範圍對應一資料存取量。
若記憶體位址未介於記憶體位址範圍內,則執行步驟S305,自一記憶體之記憶體位址讀取單一快取單元大小之資料區塊。若記憶體位址介於記憶體位址範圍內,則執行步驟S306,自記憶體之記憶體位址讀取對應於資料存取量之資料區塊。
本發明之一些實施例包含記憶體資料存取方法,其流程圖如圖4A至4X所示。這些實施例之記憶體資料存取方法由一記憶體資料存取裝置(如前述實施例之記憶體資料存取裝置10)實施。方法之詳細操作如下。
首先,執行步驟S401,執行一記憶體讀取指令。其中,記憶體讀取指令包含一記憶體位址。接著,執行步驟S402,判斷記憶體位址於一快取記憶體之讀取是否命中。若命中,則執行步驟S403,於快取記憶體中讀取相應之資料。若未命中,則執行步驟S404,判斷記憶體位址是否介於一記憶體位址範圍內。其中,記憶體位址範圍對應一資料存取量。
若記憶體位址未介於記憶體位址範圍內,則執行步驟S405,自一記憶體之記憶體位址讀取單一快取單元大小之資料區塊。執行步驟S407,將此資料區塊寫入至快取記憶體。若記憶體位址介於記憶體位址範圍內,則執行步驟S406,自記憶體之記憶體位址讀取對應於資料存取量之資料區塊。執行步驟S407,將此資料區塊寫入至快取記憶體。
於一些實施例中,步驟S407可進一步分為圖4B之操作。詳言之,執行步驟S407a,自快取記憶體之複數快取通路中挑選用於儲存資料之一快取通路。執行步驟S407b,將資料區塊分為複數單元資料。其中,每一單元資料之大小與一快取單元之大小相同。
針對每一單元資料,執行步驟S407c,判斷此單元資料是否儲存於快取記憶體,換言之,即是否與快取記憶體中之某一快取單元資料相符。若否,則執行步驟S407d,將此單元資料寫入至挑選之快取記憶體之快取通路,並針對下一個單元資料重複執行步驟S407c。若是,執行步驟407e,判斷此單元資料是否儲存於所挑選之快取記憶體之快取通路。
若判斷此單元資料儲存於所挑選之快取記憶體之快取通路,執行步驟S407f,丟棄此單元資料,並針對下一個單元資料重複執行步驟S407c。若代表此單元資料儲存於快取記憶體之其他快取通路,執行步驟S407g,清除快取記憶體中相應於此單元資料之快取單元資料。接著,執行步驟S407d,將此單元資料寫入至挑選之快取記憶體之快取通路,並針對下一個單元資料重複執行步驟S407c。步驟S407c至步驟S407g重複執行至所有單元資料處理完畢。
須說明,於一些實施例中,前述記憶體資料存取裝置中,處理單元包含中央處理單元(Central Processing Unit, CPU)等可執行運算及指令之邏輯電快取通路,相較於快取記憶體,一般記憶體包含速度較慢之隨機存取記憶體(Random Access Memory, RAM),惟其並非用以限制本發明硬體元件之實施態樣。
於一些實施例中,快取記憶體包含第一階快取記憶體(L1 Cache memory)。於一些實施例中,快取記憶體包含第二階快取記憶體(L2 Cache memory)。於一些實施例中,暫存器可為處理單元內建之暫存器,惟其同樣非用以限制本發明硬體元件之實施態樣。
上文的敘述簡要地提出了本發明某些實施例之特徵,而使得本發明所屬技術領域具有通常知識者能夠更全面地理解本發明內容的多種態樣。本發明所屬技術領域具有通常知識者當可明瞭,其可輕易地利用本發明內容作為基礎,來設計或更動其他製程與結構,以實現與此處該之實施方式相同的目的和/或達到相同的優點。本發明所屬技術領域具有通常知識者應當明白,這些均等的實施方式仍屬於本發明內容之精神與範圍,且其可進行各種變更、替代與更動,而不會悖離本發明內容之精神與範圍。
10:記憶體資料存取裝置 100:記憶體讀取指令 101:處理單元 101a:暫存器 101b:暫存器 103:快取記憶體 90:記憶體 A~B:暫存器 C:快取記憶體 ADDR:記憶體位址 ADDR_1~ADDR_3:記憶體位址 AMT:資料存取量 AMT_1~AMT_N:資料存取量 DB:資料區塊 DB_1至DB_3:單元資料 RAG:記憶體位址範圍 RAG_1~RAG_N:記憶體位址範圍 TAG_a~TAG_d:快取通路 Way-0~Way-3:快取通路 S301~S306:步驟 S401~S407g:步驟
結合附圖閱讀以下詳細描述會最佳地理解本發明之態樣。應注意,各種特徵可能未按比例繪製。事實上,可出於論述清楚起見,而任意地增大或減小各種特徵之尺寸。
圖1A為本發明之一些實施例之記憶體資料存取裝置之方塊圖。
圖1B為本發明之一些實施例之記憶體資料存取裝置之方塊圖。
圖1C為本發明之一些實施例之暫存器之示意圖。
圖1D為本發明之一些實施例之快取記憶體之快取通路之示意圖。
圖1E至圖1G為本發明之一些實施例之快取記憶體之使用示意圖。
圖2A為本發明之一些實施例之暫存器及快取記憶體之示意圖。
圖2B至圖2F為本發明之一些實施例之暫存器及快取記憶體之使用示意圖。
圖3為本發明之一些實施例之記憶體資料存取方法之流程圖。
圖4A至圖4B為本發明之一些實施例之記憶體資料存取方法之流程圖。
S301~S306:步驟

Claims (10)

  1. 一種記憶體資料存取方法,包含:執行一記憶體讀取指令,其中,該記憶體讀取指令包含一記憶體位址;判斷該記憶體位址於一快取記憶體之讀取未命中;於判斷該記憶體位址於該快取記憶體之讀取未命中後,判斷該記憶體位址介於預先設定的一記憶體位址範圍內,其中,該記憶體位址範圍對應一資料存取量;以及自一記憶體之該記憶體位址,讀取對應於該資料存取量之一資料區塊。
  2. 如請求項1所述之記憶體資料存取方法,更包含:將該資料區塊寫入至該快取記憶體。
  3. 如請求項2所述之記憶體資料存取方法,其中,將該資料區塊寫入至該快取記憶體更包含:自該快取記憶體之複數快取通路(Cache Way)中挑選一快取通路;將該資料區塊分為複數單元資料,其中,每一單元資料之大小與一快取單元(Cache Line)之大小相同;以及將該等單元資料其中至少之一寫入至挑選之該快取通路。
  4. 如請求項3所述之記憶體資料存取方法,其中,將該等單元資料其中至少之一寫入至挑選之該快取通路更包含:判斷該等單元資料之一第一單元資料未儲存於該快取記憶體;以及將該第一單元資料寫入至挑選之該快取通路。
  5. 如請求項4所述之記憶體資料存取方法,更包含:判斷該等單元資料之一第二單元資料與該快取記憶體中之一快取單元資料相符;判斷該第二單元資料未儲存於挑選之該快取通路;清除該快取記憶體之該快取單元資料;以及將該第二單元資料寫入至挑選之該快取通路。
  6. 如請求項4所述之記憶體資料存取方法,更包含:判斷該等單元資料之一第二單元資料與該快取記憶體中之一快取單元資料相符;判斷該第二單元資料儲存於挑選之該快取通路;以及丟棄該第二單元資料。
  7. 如請求項1所述之記憶體資料存取方法,其中,該記憶體位址範圍及相對應之該資料存取量儲存於至少一暫存器。
  8. 如請求項7所述之記憶體資料存取方法,其中,該至少一暫存器包含 一第一暫存器以及一第二暫存器,該記憶體位址範圍儲存於該第一暫存器,相對應之該資料存取量儲存於該第二暫存器。
  9. 如請求項1所述之記憶體資料存取方法,其中,該資料存取量係為快取單元大小之至少二倍。
  10. 一種記憶體資料存取裝置,包含:一快取記憶體;以及一處理單元,電性連結該快取記憶體,用以:執行一記憶體讀取指令,其中,該記憶體讀取指令包含一記憶體位址;判斷該記憶體位址於該快取記憶體之讀取未命中;於判斷該記憶體位址於該快取記憶體之讀取未命中後,判斷該記憶體位址介於一記憶體位址範圍內,其中,該記憶體位址範圍對應一資料存取量;以及自一記憶體之該記憶體位址,讀取對應於該資料存取量之一資料區塊。
TW108144948A 2019-12-09 2019-12-09 記憶體資料存取裝置及其方法 TWI719745B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW108144948A TWI719745B (zh) 2019-12-09 2019-12-09 記憶體資料存取裝置及其方法
US16/990,926 US11720486B2 (en) 2019-12-09 2020-08-11 Memory data access apparatus and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108144948A TWI719745B (zh) 2019-12-09 2019-12-09 記憶體資料存取裝置及其方法

Publications (2)

Publication Number Publication Date
TWI719745B true TWI719745B (zh) 2021-02-21
TW202123015A TW202123015A (zh) 2021-06-16

Family

ID=75745914

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108144948A TWI719745B (zh) 2019-12-09 2019-12-09 記憶體資料存取裝置及其方法

Country Status (2)

Country Link
US (1) US11720486B2 (zh)
TW (1) TWI719745B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI749960B (zh) * 2020-12-23 2021-12-11 瑞昱半導體股份有限公司 資料處理裝置與其資料存取電路
US20240311014A1 (en) * 2023-03-13 2024-09-19 Macronix International Co., Ltd. Managing Read Timing in Semiconductor Devices

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
TW569219B (en) * 2002-09-30 2004-01-01 Via Tech Inc Architecture and method for updating cache data
US20040205298A1 (en) * 2003-04-14 2004-10-14 Bearden Brian S. Method of adaptive read cache pre-fetching to increase host read throughput
US20140108737A1 (en) * 2012-10-11 2014-04-17 Texas Instruments Incorporated Zero cycle clock invalidate operation
US10019359B1 (en) * 2015-09-29 2018-07-10 EMC IP Holding Company LLC Optimized read processing

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892279B2 (en) * 2000-11-30 2005-05-10 Mosaid Technologies Incorporated Method and apparatus for accelerating retrieval of data from a memory system with cache by reducing latency
US7406569B2 (en) * 2002-08-12 2008-07-29 Nxp B.V. Instruction cache way prediction for jump targets
US8051239B2 (en) * 2007-06-04 2011-11-01 Nokia Corporation Multiple access for parallel turbo decoder
US8607023B1 (en) * 2009-12-16 2013-12-10 Applied Micro Circuits Corporation System-on-chip with dynamic memory module switching
US9141527B2 (en) * 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9256531B2 (en) * 2012-06-19 2016-02-09 Samsung Electronics Co., Ltd. Memory system and SoC including linear addresss remapping logic
US9075730B2 (en) * 2012-12-21 2015-07-07 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
GB2526849B (en) * 2014-06-05 2021-04-14 Advanced Risc Mach Ltd Dynamic cache allocation policy adaptation in a data processing apparatus
CN105740164B (zh) * 2014-12-10 2020-03-17 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
KR101867143B1 (ko) * 2014-12-14 2018-07-17 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 이종 치환 정책을 가진 셋트 연관 캐시 메모리
US9910785B2 (en) * 2014-12-14 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory budgeted by ways based on memory access type
US10719448B2 (en) * 2017-06-13 2020-07-21 Alibaba Group Holding Limited Cache devices with configurable access policies and control methods thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
TW569219B (en) * 2002-09-30 2004-01-01 Via Tech Inc Architecture and method for updating cache data
US20040205298A1 (en) * 2003-04-14 2004-10-14 Bearden Brian S. Method of adaptive read cache pre-fetching to increase host read throughput
US20140108737A1 (en) * 2012-10-11 2014-04-17 Texas Instruments Incorporated Zero cycle clock invalidate operation
US10019359B1 (en) * 2015-09-29 2018-07-10 EMC IP Holding Company LLC Optimized read processing

Also Published As

Publication number Publication date
US20210173772A1 (en) 2021-06-10
TW202123015A (zh) 2021-06-16
US11720486B2 (en) 2023-08-08

Similar Documents

Publication Publication Date Title
CN113535633B (zh) 一种片上缓存装置和读写方法
JP6859361B2 (ja) 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと
CN105677580A (zh) 访问缓存的方法和装置
US8874849B2 (en) Sectored cache with a tag structure capable of tracking sectors of data stored for a particular cache way
CN108496161A (zh) 数据缓存装置及控制方法、数据处理芯片、数据处理系统
EP3500935A1 (en) Method and apparatus for compressing addresses
CN117222989B (zh) Dram感知高速缓存
TWI719745B (zh) 記憶體資料存取裝置及其方法
CN105095104A (zh) 数据缓存处理方法及装置
CN114925001A (zh) 处理器、页表预取方法、电子设备
US8341353B2 (en) System and method to access a portion of a level two memory and a level one memory
KR101876574B1 (ko) 데이터 입출력 컨트롤러 및 이를 포함하는 시스템
CN102646073B (zh) 数据处理方法及装置
US20210365378A1 (en) Method of cache prefetching that increases the hit rate of a next faster cache
CN112988036B (zh) 存储器数据存取装置及其方法
CN117389914B (zh) 缓存系统、缓存写回方法、片上系统及电子设备
WO2021208489A1 (zh) 数据写入方法、装置和电子设备
CN117609314A (zh) 一种缓存数据处理方法、缓存控制器、芯片及电子设备
EP4357927A1 (en) Persistent storage with dual interface
JP7010922B2 (ja) フォワーディングエントリアクセス
JP2025534110A (ja) ハイブリッドsram/dramデータパスを使用するcmbキャッシング
CN119884023B (zh) 一种基于多压缩方案的并行计算核心缓存方法、装置及介质
CN120743805B (zh) 缓存管理方法、系统及存储介质
CN105900060B (zh) 内存访问方法、装置和计算机设备
CN114691541B (zh) 一种基于动态访问的dram-nvm混合内存预测器