TWI652576B - Memory system and processor system - Google Patents

Memory system and processor system Download PDF

Info

Publication number
TWI652576B
TWI652576B TW106108077A TW106108077A TWI652576B TW I652576 B TWI652576 B TW I652576B TW 106108077 A TW106108077 A TW 106108077A TW 106108077 A TW106108077 A TW 106108077A TW I652576 B TWI652576 B TW I652576B
Authority
TW
Taiwan
Prior art keywords
memory
data
granularity
cache
stored
Prior art date
Application number
TW106108077A
Other languages
English (en)
Other versions
TW201807586A (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 東芝記憶體股份有限公司
Publication of TW201807586A publication Critical patent/TW201807586A/zh
Application granted granted Critical
Publication of TWI652576B publication Critical patent/TWI652576B/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/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • 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
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

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

Abstract

本發明之實施形態係關於記憶體系統及處理器系統。 本發明係提供一種謀求記憶體存取之時間局部性與空間局部性之最佳化之記憶體系統及處理器系統。 一態樣之記憶體系統具備: 第1記憶體,其記憶體容量較儲存第2粒度之資料之第2記憶體小,且儲存較上述第2粒度小之第1粒度之資料; 控制部,其自存儲於上述第2記憶體之資料中讀取上述第1粒度以上之第3粒度之資料;及 資料擷取部,其自上述控制部所讀取之上述第3粒度之資料擷取上述第1粒度之資料,並儲存於上述第1記憶體。

Description

記憶體系統及處理器系統
本發明之實施形態係關於一種記憶體系統及處理器系統。
伴隨著巨量資料(大數據)處理等之普及,對於記憶體存取之高速化與低消耗電力化之要求正在提高。記憶體存取係根據快取記憶體之構成而速度大幅地變化。有存取請求之位址具有所謂之被再次存取之可能性高之被稱為時間局部性之性質。又,有存取請求之位址附近之位址具有所謂之被存取之可能性較高之被稱為空間局部性之性質。時間局部性與空間局部性有折衷之關係,存在若重視時間局部性,則無法擔保空間局部性,若重視空間局部性,則無法擔保時間局部性之虞。
一態樣之記憶體系統具備: 第1記憶體,其記憶體容量較儲存第2粒度之資料之第2記憶體小,且儲存較上述第2粒度小之第1粒度之資料; 控制部,其自儲存於上述第2記憶體之資料中讀取上述第1粒度以上之第3粒度之資料;及 資料擷取部,其自上述控制部所讀取之上述第3粒度之資料擷取上述第1粒度之資料,並儲存於上述第1記憶體。 根據本實施形態,可提供一種謀求記憶體存取之時間局部性與空間局部性之最佳化之記憶體系統及處理器系統。
以下,一面參照圖式一面說明本發明之實施形態。 (第1實施形態) 圖1係顯示第1實施形態之具備記憶體系統1之處理器系統2之概略構成之方塊圖。圖1之處理器系統2具備處理器3、及主記憶體4。主記憶體4構成記憶體系統1之至少一部分。 於處理器3之內部設置有第1記憶體控制器5。此外,於處理器3之內部設置有複數個處理器核心或快取記憶體等,但於圖1中予以省略。第1記憶體控制器5控制主記憶體4內之第2記憶體控制器6。更具體而言,第1記憶體控制器5根據對主記憶體4之存取請求而控制第2記憶體控制器6。 主記憶體4除上述第2記憶體控制器6外,具有第1記憶體7、及記憶體模組8。第1記憶體7為例如MRAM(Magnetoresistive Random Access Memory:磁阻隨機存取記憶體)等非揮發性記憶體。 記憶體模組8亦可以使記憶體容量可變之方式被拆裝。記憶體模組8具有第2記憶體9及第3記憶體10。第2記憶體9為例如DRAM(Dynamic Random Access Memory:動態隨機存取記憶體)。第3記憶體10為例如SRAM(Static Random Access Memory:靜態隨機存取記憶體)。 第2記憶體9儲存第2粒度之資料。第1記憶體7與例如第2記憶體9相比記憶體容量更小,且儲存第1粒度之資料。第3記憶體10與例如第1記憶體7相比記憶體容量更小,且儲存第3粒度之資料。 此處,「粒度」係指快取時之線尺寸,一般而言為主記憶體(DRAM)之頁面尺寸。例如,對第2記憶體9存取時之第2粒度大於對第1記憶體7存取時之第1粒度。該情形時,第2粒度之頁面尺寸大於第1粒度之線尺寸。又,例如第1記憶體7之線尺寸即第1粒度小於第3記憶體10之頁面尺寸即第3粒度。該情形時,第1記憶體7之線尺寸變得小於第3記憶體10之頁面尺寸。第2粒度與第3粒度之大小關係為任意。以下,作為一例,說明第2粒度與第3粒度相等之例。 作為具體一例,記憶體模組8如泛用之DDR(Double-Data-Rate:雙資料速率)SDRAM(Synchronous Dynamic Random Access Memory:同步動態隨機存取記憶體)般,以數k位元組之頁面尺寸儲存資料,與此相對,第1記憶體7以數10位元組之單位儲存資料。以下,將記憶體模組8之頁面尺寸設為1 k位元組,且將第1記憶體7之資料尺寸設為64位元組。 第2記憶體9、第1記憶體7及第3記憶體10之存取速度為任意,但典型而言,第2記憶體9較第1記憶體7與第3記憶體10存取速度更慢。第1記憶體7與第3記憶體10之存取速度可不同亦可相同。 圖2係顯示記憶體模組8之內部構成之一例之方塊圖。圖2之記憶體模組8具有複數個組,每個組具有記憶體陣列11與列緩衝器12。記憶體陣列11係上述第2記憶體9,以例如DRAM構成。列緩衝器12係上述第3記憶體10,為例如SRAM或暫存器等較記憶體陣列11更高速之記憶體。列緩衝器12如上所述儲存第3粒度之資料。列緩衝器12儲存記憶體陣列11所儲存之資料中之一部分資料。例如,列緩衝器12儲存最近對對應之組之記憶體陣列11存取之資料。因記憶體模組8以頁面單位被存取,故列緩衝器12具有頁面尺寸以上之記憶體容量。即,列緩衝器12儲存對以記憶體陣列11之字元線為單位被存取之複數個記憶胞經讀寫之資料。 圖3係顯示主記憶體4之內部構成之一例之方塊圖。如圖3所示,第2記憶體控制器6具有:第1粒度標籤記憶體(第2標籤記憶體)21、第3粒度標籤記憶體(第1標籤記憶體)22、資料擷取部23、記憶體存取控制器(控制部)24、及寫入緩衝器(第4記憶體)25。 第1粒度標籤記憶體21儲存特定第1記憶體7之資料之位址資訊等。圖4係顯示第1粒度標籤記憶體21之資料構成之圖。如圖4所示,第1粒度標籤記憶體21將第1粒度之位址資訊21a、有效旗標資訊21b、LRU(Least Recently Used:最近最少使用)管理資訊21c、及重寫旗標資訊21d建立對應,並儲存於各條目。位址資訊具有可識別例如64位元組之資料的位址之位元數。 第1粒度標籤記憶體21與第1記憶體7例如作為集合相聯之快取記憶體發揮功能。例如,進行寫回方式之寫入資料管理。第1粒度標籤記憶體21以LRU策略管理快取更換。圖4係例示4路之集合相聯之快取記憶體之1個集合之標籤資訊。 第1粒度標籤記憶體21內之LRU管理資訊21c為了決定替換之資料,而儲存優先度資訊。例如,若為4路,則儲存0~3之數字。例如,自最近有存取之資料依序分配較小數字。替換第1記憶體7內之資料時,替換數值為3之資料。 第1粒度標籤記憶體21內之有效旗標資訊21b係表示與位址資訊對應之資料是否儲存於第1記憶體7之旗標資訊。有效旗標資訊21b例如於儲存有資料之情形時被設置為1,未儲存之情形時重設為0。期望之資料是否儲存於第1記憶體7,可藉由參照第1粒度標籤記憶體21內之位址資訊21a與有效旗標資訊21b而判定。即,只要於第1粒度標籤記憶體21內儲存期望之資料之位址資訊,且對應之有效旗標資訊被設置為1,即可判斷該資料儲存於第1記憶體7。重寫旗標資訊21d係表示是否已將與第1粒度標籤記憶體21內之位址資訊對應之資料寫回第2記憶體9之旗標資訊。例如,於未重寫之情形時被設置為0,已重寫之情形時被設置為1。 第3粒度標籤記憶體22儲存特定第3記憶體10之資料之位址資訊等。圖5係顯示第3粒度標籤記憶體22之資料構成之圖。如圖5所示,第3粒度標籤記憶體22將第3粒度之位址資訊22a、有效旗標資訊22b、存取旗標資訊22c、重寫旗標資訊22d、及寫回旗標資訊22e建立對應,而儲存於各組。 第3粒度之位址資訊22a係可識別例如1 k位元組之資料之位址資訊。有效旗標資訊22b係表示與位址資訊對應之資料是否儲存於第3記憶體10之旗標資訊。有效旗標資訊22b例如於儲存有資料之情形時被設置為1,未儲存之情形時重設為0。 存取旗標資訊22c係表示是否有對對應之資料存取之旗標資訊。存取旗標資訊22c例如記憶是否有就每個第1粒度對第1記憶體7內之資料存取。於第2記憶體9之資料粒度為1 k位元組,且第1記憶體7之資料粒度為64位元組之情形時,於第3粒度標籤記憶體22保持16條目量之存取旗標資訊。例如,對第2記憶體9之每1資料設置1位元之存取旗標資訊之情形時,對第3粒度標籤記憶體22之每1條目設置16位元之存取旗標資訊。 重寫旗標資訊22d係表示對應之資料是否已被重寫之旗標資訊。例如,重寫旗標資訊22d設置於第1記憶體7內之第1粒度之資料各者。例如,於第2記憶體9之第2粒度為1 k位元組,且第1記憶體7之第1粒度為64位元組之情形時,保持16條目量之重寫旗標資訊22d。例如,於對第2記憶體9內之每1資料設置1位元之情形時,於第3粒度標籤記憶體22之每1條目設置16位元之重寫旗標資訊22d。 寫回旗標資訊22e係表示是否已將對應之第3記憶體10之資料寫回第2記憶體9之旗標資訊。寫入緩衝器25係指自處理器3有讀取請求,而將新資料儲存於第1記憶體7時,重寫第1記憶體7內應刪除之資料(重寫旗標被設置為1),仍未寫回第3記憶體10時,暫時儲存該資料的記憶體。 記憶體存取控制器24控制對第1記憶體7與記憶體模組8之存取。即,記憶體存取控制器24於第2記憶體控制器6進行之控制處理中,進行資料擷取部23進行之擷取處理以外之控制處理。更具體而言,記憶體存取控制器24自儲存於第2記憶體9之資料中,讀取第1粒度以上之第3粒度之資料。資料擷取部23自記憶體存取控制器24所讀取之第3粒度之資料擷取第1粒度之資料,並儲存於第1記憶體7。 圖6係顯示寫入緩衝器25之資料構成之圖。如圖6所示,寫入緩衝器25將表示是否需要對記憶體模組8內之第3記憶體10寫回之有效旗標資訊25a、第1粒度之位址資訊25b、及第1粒度之資料區域25c建立對應,並儲存於各條目。寫入緩衝器25係例如FIFO(First-In-First-Out:先進先出)之佇列。例如,若有效旗標資訊25a為1,則表示為需要對記憶體模組8寫回之資料,若有效旗標資訊25a為0,則表示為無效之資料。 圖7係顯示自處理器3有寫入請求時之第2記憶體控制器6之處理動作之流程圖。另,寫入處理未限定於圖7所示之流程圖。第2記憶體控制器6若自第1記憶體控制器5接收例如64位元組之叢發寫入請求(步驟S1),則特定應寫入之記憶體模組8之組(步驟S2)。其次,判定有寫入請求之位址於與特定之組對應之第3粒度標籤記憶體22是否命中(步驟S3)。 於第3粒度標籤記憶體22命中之情形時,將有寫入請求之資料寫入第3記憶體10(步驟S4),且更新第3粒度標籤記憶體22內之存取旗標資訊22c與重寫旗標資訊22d(步驟S5)。 另一方面,於步驟S3中,判定為於第3粒度標籤記憶體2未命中之情形時,於第1記憶體7寫入資料(步驟S6),且更新第1粒度標籤記憶體21內之LRU管理資訊21c與重寫旗標資訊21d(步驟S7)。 如此,自處理器3有寫入請求時,於第3粒度標籤記憶體22命中之情形時,於第3記憶體10寫入資料,未命中之情形時,於第1記憶體7寫入資料。於第3記憶體10寫入資料時,更新第3粒度標籤記憶體22內之存取旗標資訊22c與重寫旗標資訊22d。於第1記憶體7寫入資料時,更新第1粒度標籤記憶體21內之LRU管理資訊21c與重寫旗標資訊21d。 圖8A及圖8B係顯示自處理器3有讀取請求時之第2記憶體控制器6之讀取處理之流程圖。讀取處理根據寫入策略而不同。圖8A及圖8B係顯示採用圖7之寫入策略時之讀取處理。另,讀取處理未限定於圖8A及圖8B所示之流程圖。又,於圖3之構成中,雖然來自寫入緩衝器25之資料讀取亦變得必要,但為了簡單化而於本例中予以省略。 首先,若第2記憶體控制器6自第1記憶體控制器5接收例如64位元組之叢發讀取請求(步驟S11),則特定應讀取之組(步驟S12)。 其次,判定有讀取請求之位址於與特定之組對應之第1粒度標籤記憶體21與第3粒度標籤記憶體22之兩者是否命中(步驟S13)。若判定為於第1粒度標籤記憶體21與第3粒度標籤記憶體22之兩者命中,則判定第3粒度標籤記憶體22內之重寫旗標資訊是否被設置,即,是否仍未將與符合之位址對應之資料寫回第2記憶體9(步驟S14)。 若判定重寫旗標資訊被設置,則對記憶體模組8發行讀取指令(步驟S15),自記憶體模組8內之第3記憶體10讀取資料(步驟S16),並將讀取之資料發送至第1記憶體控制器5(步驟S17)。 若於步驟S14中判定為第3粒度標籤記憶體22內之重寫旗標資訊22d未被設置,則判定第1粒度標籤記憶體21內之重寫旗標資訊21d是否被設置(步驟S18)。若判定為第1粒度標籤記憶體21內之重寫旗標資訊21d被設置,則自第1記憶體7讀取與有讀取請求之位址對應之資料(步驟S19),並將讀取之資料發送至第1記憶體控制器5(步驟S17)。 若於步驟S18中判定為第1粒度標籤記憶體21內之重寫旗標資訊21d未被設置,則對記憶體模組8發行讀取指令(步驟S19)。接著,自第3記憶體10讀取與有讀取請求之位址對應之資料(步驟S20),並將讀取之資料發送至第1記憶體控制器5(步驟S16)。 於步驟S13之判定為否定之情形時,判定有讀取請求之位址於第3粒度標籤記憶體22是否命中(步驟S22)。於命中之情形時,對記憶體模組8發行讀取指令(步驟S20)。接著,自第3記憶體10讀取與有讀取請求之位址對應之資料(步驟S21),並將讀取之資料發送至第1記憶體控制器5(步驟S17),且更新第3粒度標籤記憶體22內之存取旗標資訊22c(步驟S23)。 若於步驟S22中判定為未命中,則判定有讀取請求之位址於第1粒度標籤記憶體21是否命中(步驟S24)。於命中之情形時,自第1記憶體7讀取與有讀取請求之位址對應之資料(步驟S25),並將讀取之資料發送至第1記憶體控制器5(步驟S17)。 若於步驟S24中判定為未命中,則進行對記憶體模組8之資料提取處理。首先,判定於第3粒度標籤記憶體22是否存在無效資料(步驟S26)。若存在無效資料,則並行地進行如下處理:發行啟動指令,自第2記憶體9讀取資料並儲存於第3記憶體10(步驟S27);更新第3粒度標籤記憶體22內之位址資訊(步驟S28);及更新第3粒度標籤記憶體22內之有效旗標資訊(步驟S29)。若步驟S27~S29之處理結束,則對記憶體模組8發行讀取指令(步驟S30),自第3記憶體10讀取資料(步驟S31)。 若於步驟S26中判定為不存在無效資料,則進行儲存於第3記憶體10之資料之替換處理(步驟S32)。步驟S32之替換處理之細節將於後述。若替換處理結束,則對記憶體模組8發行讀取指令(步驟S30),將自記憶體模組8內之第3記憶體10讀取之資料發送至第1記憶體控制器5(步驟S31),並更新第3粒度標籤記憶體22內之存取旗標資訊(步驟S33)。 圖9係圖8B之步驟S27之替換處理之詳細流程圖。首先,參照第3粒度標籤記憶體22內之存取旗標資訊(步驟S40),讀取存取旗標資訊被設置之資料(步驟S41)。其次,並行地進行以下之第1處理~第3處理之合計3個處理。 於第1處理中,自第1記憶體7讀取應刪除之資料,判定與該資料對應之重寫旗標資訊與有效旗標資訊是否被設置(步驟S42)。於該等旗標資訊被設置之情形時,將應刪除之資料儲存於寫入緩衝器25後進行刪除(步驟S43)。其後,將於步驟S50中讀取之第3記憶體10內之資料儲存於第1記憶體7(步驟S44),且更新第1粒度標籤記憶體21(步驟S45)。藉由該步驟S44之處理,最近有存取之第1粒度之資料自第3記憶體10被傳送至第1記憶體7。 另,於步驟S44中應儲存於第1記憶體7之資料已儲存於第1記憶體7之情形時,該資料無須再次儲存於第1記憶體7。又,即使應儲存之資料已儲存於第1記憶體7,只要自第3記憶體10傳送至第1記憶體7之資料為重寫資料,則該資料亦可覆寫至第1記憶體7。 第2處理為第3粒度標籤記憶體22之更新。首先,使第3粒度標籤記憶體22內之符合之標籤資訊無效化(步驟S46)。無效化的是儲存有自第3記憶體10傳送至第1記憶體7之資料之第3記憶體10內之空區域。其次,將儲存於該空區域之資料之位址資訊儲存於第3粒度標籤記憶體22(步驟S47),且更新第3粒度標籤記憶體22內之有效旗標資訊(步驟S48)。 於第3處理中,對記憶體模組8發行預充電指令(步驟S49),於預充電結束後,發行啟動指令(步驟S50)。藉此,自第2記憶體9讀取新資料,並儲存於第3記憶體10之上述之空區域。 圖10係自寫入緩衝器25向記憶體模組8之寫回處理之流程圖。該寫回處理亦可於任意時序進行。例如,亦可於寫入緩衝器25之所有條目之有效旗標資訊被設置之時序進行。或可於每個與時脈週期同步之特定間隔進行。或可於第2記憶體控制器6未處理來自處理器3之存取請求之時序進行。以下,說明於寫入緩衝器25內存在1個以上之有效旗標資訊25a被設置之條目時之寫回處理。 首先,判定於寫入緩衝器25內是否存在有效資料(步驟S51)。此處,判定圖6所示之寫入緩衝器25內之有效旗標資訊25a是否被設置。接著,若存在有效旗標資訊25a被設置之條目,則選擇該條目之資料(步驟S52),並特定所選擇之資料存在之記憶體模組8之組(步驟S53)。 其次,參照與特定之組對應之第3粒度標籤記憶體22,判定是否命中(步驟S54)。若於第3粒度標籤記憶體22命中,則對記憶體模組8發行寫入指令(步驟S55),且重設寫入緩衝器25之有效旗標資訊25a(步驟S56)。藉此,寫入緩衝器25內之資料被寫入至第3記憶體10。 若於步驟S54中判定為未命中,則以圖9之處理順序進行第3記憶體10之替換處理(步驟S57),且設置與進行替換之資料對應之第3粒度標籤記憶體22之寫回旗標資訊22e(步驟S58)。其次,對記憶體模組8發行寫入指令(步驟S55),且重設寫入緩衝器25之有效旗標資訊25a(步驟S56)。藉此,於自第3記憶體10逐出之資料之儲存目的地儲存寫入緩衝器25內之資料,且設置第3粒度標籤記憶體22之寫回旗標資訊22e。 以上處理係對寫入緩衝器25內之有效旗標資訊25a被設置之所有條目進行。若不存在寫入緩衝器25內之有效旗標資訊25a被設置之條目,則參照第3粒度標籤記憶體22,對寫回旗標資訊22e被設置之組發行預充電指令,且使對應之第3粒度標籤記憶體22無效化(步驟S59)。藉此,寫回旗標資訊22e被設置之資料被寫回至第2記憶體9。 如此,於第1實施形態中,於主記憶體4內設置第1~第3記憶體10,將以第2粒度儲存於第2記憶體9之資料之至少一部分以第3粒度儲存於第3記憶體10,將儲存於第3記憶體10之第3粒度之資料之至少一部分以第3粒度以下之第1粒度儲存於第1記憶體7。藉此,可以第3記憶體10對具有空間局部性之資料高速地存取。同時,可以較細之粒度將具有時間局部性之資料儲存於第1記憶體7,並可以第二記憶體使對具有時間局部性之資料之存取高速化。可期待對具有空間局部性之資料與具有時間局部性之資料之兩者之高速存取,而可使對主記憶體4之存取高速化。 (第2實施形態) 圖11係顯示第2實施形態之具備記憶體系統1之處理器系統2之概略構成之方塊圖。圖11之處理器系統2具備處理器核心31、及記憶體系統1。記憶體系統1具有:1次快取記憶體(以下稱為L1快取)32、2次快取記憶體(以下稱為L2快取)33、3次快取記憶體(以下稱為L3快取)34、4次快取記憶體(以下稱為L4快取)35、及記憶體存取控制器24。於圖11之記憶體系統1連接有主記憶體4,亦可於記憶體系統1之內部設置主記憶體4。 L1快取32連接於處理器核心31與L2快取33。L2快取33連接於L1快取32與L3快取34。L3快取34連接於L2快取33與L4快取35。記憶體存取控制器24連接於L4快取35。 於L1快取32~L4快取35儲存主記憶體4所儲存之資料、或應儲存於主記憶體4之資料之至少一部分。L1快取32~L4快取35具有保持可識別其內部所保持之資料之位址資訊的標籤部。標籤部亦可以專用之記憶體區域構成。或者,標籤部亦可以保持資料之記憶體區域之一部分構成。如此,L1快取32~L2快取33之內部構成為任意。 圖11係顯示具有L1快取32~L4快取35之4階層之快取記憶體之例,但快取記憶體之階層數為任意。 於圖11中,主記憶體4以外之處理器核心31與L1快取32~L4快取35可積體於一個晶片上,亦可於複數個晶片分開安裝。於複數個晶片分開安裝之情形時,亦可將各晶片以金屬配線直接接合。 圖11之記憶體系統1除L1快取32~L4快取35以外,具有主記憶體4。主記憶體4亦可安裝於與L1快取32~L4快取35相同之晶片或基板上,又可安裝於其他晶片或基板上。又可將處理器核心31與L1快取32積體於單晶片上,且將L2快取33~L4快取35積體於其他單晶片上。如此,記憶體系統1內之L1快取32~L4快取35與主記憶體4之安裝形態為任意。 L1快取32~L4快取35以可較主記憶體4更高速存取之半導體記憶體構成。對於各快取之資料配置策略,可考慮各種變更。例如有Inclusion(包含)方式。於Inclusion方式中,於 L2快取33儲存L1快取32所儲存之所有資料。同樣,於L3快取34儲存L2快取33所儲存之所有資料,且於L4快取35儲存L3快取34所儲存之所有資料。 此外,例如有Exclusion(互斥)方式。於該方式中,未於例如L1快取32與L2快取33配置相同資料。又,例如,亦考慮Inclusion方式與Exclusion方式之混合方式。於該方式中,亦有以例如L1快取32與L2快取33重複保持之資料,又有互斥保持之資料。 該等方式係L1快取32~L4快取35間之資料配置策略,對於複數階層之快取構成可考慮各種組合。例如,亦可所有階層為Inclusion方式。例如,亦可L1快取32與L2快取33為Exclusive方式,L4快取35與主記憶體4為Inclusion方式。本實施形態所示之方式可與該等上述記述之各種資料配置策略組合。 快取之更新方式亦存在各種方式,本實施形態可與該等所有組合。例如,快取寫入命中時之寫入方式亦可為寫通,又可為寫回。又,快取寫入出錯時之寫入方式亦可為寫入配置,又可為非寫入配置。 L4快取35之記憶體容量在L3快取34之記憶體容量以上。如此,越高次之快取記憶體,記憶體容量變得越大。因此,對於高次之快取記憶體,較理想為使用積體度高,且有與容量成比例之傾向之洩漏電力少之記憶體。作為此種記憶體,例如,考慮MRAM(Magnetoresistive Random Access Memory)等非揮發性記憶體。又,例如,亦可為使用了低洩漏電力程序之SRAM或DRAM。 主記憶體4較L1快取32~L4快取35記憶體容量更大,故多以與安裝有處理器核心31等之晶片分開之1個以上之晶片構成。構成主記憶體4之記憶胞為例如DRAM(Dynamic RAM)胞。另,亦可使用TSV(Through Silicon Via:矽穿孔)等技術,與處理器核心31等混載於一個晶片上。 與處理器核心31發行之虛擬位址對應之物理位址係首先最優先地發送至L1快取32。於L1快取32有與該物理位址對應之資料(以下稱為對象資料)之情形時,處理器核心31對該資料存取。L1快取32之記憶體容量為例如數10 k位元組左右。 於L1快取32無對象資料之情形時,對應之物理位址發送至L2快取33。於L2快取33有對象資料之情形時,處理器核心31對該資料存取。L2快取33之記憶體容量為例如數100 k位元組~數M位元組左右。同樣,於L2快取32無對象資料之情形時,對L3快取33存取,於L3快取33亦無之情形時,對L4快取34存取。 於L4快取35無對象資料之情形時,對應之物理位址發送至主記憶體4。於本實施形態中,於主記憶體4儲存有L4快取35所儲存之所有資料。本實施形態並非限定於上述快取間資料配置策略者。於主記憶體4儲存頁面單位之資料。一般而言,頁面單位之資料配置於主記憶體4與輔助記憶裝置,但於本實施形態中,為了簡易化而將所有資料配置於主記憶體4。於本實施形態中,於主記憶體4有對象資料之情形時,處理器核心31對該資料存取。主記憶體4之記憶體容量為例如數G位元組左右。 如此,L1快取32~L4快取35被階層化,次數越大(下位階層)之快取記憶體,記憶體容量越大。 以下,為了簡化,而以利用LRU(Least Recently Used)演算法管理L1快取32~L4快取35之標籤陣列者進行說明。但,本實施形態可與LRU以外之各種資料優先度管理演算法組合。例如,亦可與NRU(Not Recently Used:最近未使用)或隨機更換演算法組合。又,於以下說明中,為了簡化,而將標籤陣列作為全相聯快取表示。但,本實施形態可應用於各種快取方式,例如亦可為集合相聯,又可為直接映射。 圖11之處理器系統2具備處理器核心31與4階層之快取。圖11之處理器系統2以例如DDR般之介面而與主記憶體4連接。主記憶體4之資料粒度為例如1 k位元組。主記憶體4具有未圖示之列緩衝器,列緩衝器至少具有主記憶體4之資料粒度份額之記憶體容量。主記憶體4以例如DRAM構成。L1快取32~L3快取34之資料粒度為例如64位元組。 圖12係顯示L4快取35之內部構成之一例之方塊圖。如圖12所示,L4快取35具有第1記憶體7、第3記憶體10、及快取控制器36。 第1記憶體7較第3記憶體10記憶體容量更大。第1記憶體7以第1粒度進行資料之讀寫。第3記憶體10以較第1粒度更大之第3粒度進行資料之讀寫。例如,第1粒度為64位元組,第3粒度為1 k位元組。第1記憶體7以例如MRAM構成,第3記憶體10以例如SRAM構成。 快取控制器36具有第1粒度標籤記憶體21、第3粒度標籤記憶體22、及資料擷取部23。第1粒度標籤記憶體21儲存可識別第1記憶體7所儲存之資料之資訊。第3粒度標籤記憶體22儲存可識別第3記憶體10所儲存之資料之資訊。資料擷取部23讀取第3記憶體10內之資料,並以第1粒度寫入第1記憶體7。 圖13係顯示第1粒度標籤記憶體21之資料構成之一例之圖。圖13之第1粒度標籤記憶體21係與圖4同樣,將第1粒度之位址資訊21a、有效旗標資訊21b、LRU(Least Recently Used)管理資訊21c、及重寫旗標資訊21d建立對應,並儲存於各條目。 圖14係顯示第3粒度標籤記憶體22之資料構成之一例之圖。圖14之第3粒度標籤記憶體22係將第3粒度之位址資訊22a、有效旗標資訊22b、LRU管理資訊22f、存取旗標資訊22c、重寫旗標資訊22d建立對應,並儲存於各條目。 圖15係對L4快取35之寫入處理之流程圖。對L4快取35之寫入係例如寫回L3快取34內之資料中重寫旗標資訊被設置之資料的處理,自L3快取34對L4快取35發送64位元組之資料之寫入請求。 若有對L4快取35之寫入請求(步驟S61),則快取控制器36對第3粒度標籤記憶體22存取,判定於第3粒度標籤記憶體22是否命中(步驟S62)。於第3粒度標籤記憶體22命中之情形時,將有寫入請求之資料寫入第3記憶體10(步驟S63),且更新第3粒度標籤記憶體22內之存取旗標資訊22c與重寫旗標資訊22d(步驟S64)。 另一方面,於步驟S62中判定於第3粒度標籤記憶體22未命中之情形時,寫入第1記憶體7之符合位址之資料(步驟S65),且更新第1粒度標籤記憶體21內之LRU管理資訊21c與重寫旗標資訊21d(步驟S66)。 另,對L4快取35之寫入處理亦可採用與圖15不同之處理順序。例如,亦可對第1記憶體7與第3記憶體10之兩者進行資料之寫入。 圖16A及圖16B係顯示L4快取35之讀取處理與L4快取35出錯時之資料提取處理之流程圖。對L4快取35之讀取係伴隨例如L3快取34之快取出錯而進行,自L3快取34對L4快取35發送64位元組之資料之讀取請求。 另,讀取處理根據寫入策略而不同。以下,對採用圖14之寫入策略時之讀取處理進行說明,但讀取處理係未限定於下述說明者。 若對L4快取35有讀取請求(步驟S71),則快取控制器36判定於第1粒度標籤記憶體21與第3粒度標籤記憶體22之兩者是否命中(步驟S72)。於兩者命中之情形時,判定第3粒度標籤記憶體22之重寫旗標資訊是否被設置(步驟S73)。於第3粒度標籤記憶體22之重寫旗標資訊22d被設置之情形時,自第3記憶體10讀取有讀取請求之資料(步驟S74)。讀取之資料發送至L3快取34(步驟S75)。 於第3粒度標籤記憶體22之重寫旗標資訊22d未被設置之情形時,判定第1粒度標籤記憶體21之重寫旗標資訊21d是否被設置(步驟S76)。於第1粒度標籤記憶體21之重寫旗標資訊21d被設置之情形時,自第1記憶體7讀取有讀取請求之資料(步驟S77),並發送至L3快取34(步驟S75)。於第1粒度標籤記憶體21之重寫旗標資訊21d未被設置之情形時,自第3記憶體10讀取有讀取請求之資料(步驟S78),並發送至L3快取34(步驟S75)。 如此,於第1粒度標籤記憶體21與第3粒度標籤記憶體22之兩者命中之情形時,基於第1粒度標籤記憶體21與第3粒度標籤記憶體22之重寫旗標資訊21d、22d,自第1記憶體7或第3記憶體10讀取有讀取請求之資料。 若於步驟S72中判定為未命中,則判定有讀取請求之位址於第3粒度標籤記憶體22是否命中 (步驟S79)。判定為命中之情形時,自第3記憶體10讀取有讀取請求之資料(步驟S78),且更新第3粒度標籤記憶體22(步驟S80)。此處,設置與自第3記憶體10讀取之資料對應之存取旗標。 若於步驟S79中判定為未命中,則判定於第1粒度標籤記憶體21是否命中(步驟S81)。若判定為於第1粒度標籤記憶體21命中,則自第1記憶體7讀取有讀取請求之資料(步驟S82),並發送至L3快取34(步驟S75)。 若於步驟S81中判定為未命中,則進行對L4快取35之資料提取處理。首先,判定於第3粒度標籤記憶體22是否存在無效資料(步驟S83)。若存在無效資料,則自第2記憶體9讀取第3粒度之資料(步驟S84),將讀取之資料替換為第3記憶體10內之無效資料(步驟S85)。又,將讀取之資料中64位元組之資料發送至L3快取34(步驟S75)。 若於步驟S83中判定為不存在無效資料,則進行第3記憶體10之無效化處理、及伴隨其之自第3記憶體10對第1記憶體7之資料傳送處理。首先,對第3粒度標籤記憶體22存取,參照進行無效化之資料之存取旗標資訊22c(步驟S86)。資料擷取部23自第3記憶體10擷取存取旗標資訊22c被設置之第1粒度之資料(步驟S87),並儲存於第1記憶體7(步驟S88)。又,進行第3粒度標籤記憶體22之無效化(步驟S89)。其次,快取控制器36自第2記憶體9讀取資料,並將讀取之資料發送至L3快取34,且於第3記憶體10儲存該資料,並設置與該資料對應之第3粒度標籤記憶體22之存取旗標資訊22c。 於應儲存於第1記憶體7之資料已存在於第1記憶體7內之情形時,亦可不進行該資料之儲存處理。即使應儲存於第1記憶體7之資料已存在於第1記憶體7內,只要自第3記憶體10傳送至第1記憶體7之資料為重寫資料,則該資料亦可覆寫至第1記憶體7。 如此,於第2實施形態中,於L4快取35內設置第1記憶體7及第3記憶體10,將以第2粒度儲存於第2記憶體9之資料之至少一部分以第3粒度儲存於第3記憶體,且將儲存於第3記憶體10之第3粒度之資料之至少一部分以第3粒度以下之第1粒度儲存於第1記憶體7。藉此,可以第3記憶體10使對具有空間局部性之資料之存取高速化。同時,可以較細之粒度將具有時間局部性之資料儲存於第1記憶體7,並可以第1記憶體7使對具有時間局部性之資料之存取高速化。可期待於L4快取35中,對具有空間局部性之資料與具有時間局部性之資料之兩者之存取,且可提高L4快取35之命中率。藉由L4快取35之命中率提高,可使記憶體存取高速化。 另,可將上述實施形態匯總於以下技術方案。 技術方案1 一種記憶體系統,其具備:第1記憶體,其記憶體容量較儲存第2粒度之資料之第2記憶體小,且儲存第1粒度之資料; 控制部,其自儲存於上述第2記憶體之資料中讀取上述第1粒度以上之第3粒度之資料;及 資料擷取部,其自上述控制部所讀取之上述第3粒度之資料擷取上述第1粒度之資料,並儲存於上述第1記憶體。 技術方案2 根據技術方案1,具備:第3記憶體,其記憶體容量小於上述第1記憶體,且儲存上述第3粒度之資料; 上述資料擷取部將儲存於上述第3記憶體之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。 技術方案3 一種記憶體系統,其具備:第1記憶體,其記憶體容量較儲存第2粒度之資料之第2記憶體小,且儲存第1粒度之資料; 第3記憶體,其儲存上述第1粒度以上之第3粒度之資料; 控制部,其自儲存於上述第2記憶體之資料中讀取上述第3粒度之資料,並儲存於上述第3記憶體;及 資料擷取部,其將儲存於上述第3記憶體之資料中有存取之資料以上述第1粒度儲存於上述第1記憶體。 技術方案4 根據技術方案2或3,具備:第1標籤記憶體,其儲存特定上述第3記憶體所儲存之上述第3粒度之資料的位址資訊、及表示各資料之存取狀況的存取資訊; 上述資料擷取部基於上述第1標籤記憶體內之上述存取資訊,將上述第3記憶體所儲存之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。 技術方案5 根據技術方案4,具備:第2標籤記憶體,其儲存特定上述第1記憶體所儲存之上述第1粒度之資料的位址資訊、及表示是否已重寫上述第1記憶體所儲存之上述第1粒度之資料的重寫資訊; 上述第1標籤記憶體係儲存表示是否已重寫上述第3記憶體所儲存之上述第3粒度之資料的重寫資訊; 上述控制部若自處理器接收讀取請求,則於有上述讀取請求之位址於上述第1標籤記憶體及上述第2標籤記憶體之兩者命中之情形時,基於上述第2標籤記憶體內之重寫資訊與上述第1標籤記憶體內之重寫資訊,自上述第1記憶體或上述第3記憶體讀取有上述讀取請求之資料。 技術方案6 根據技術方案2或3,具備:第2標籤記憶體,其儲存特定上述第1記憶體所儲存之上述第1粒度之資料的位址資訊、及表示是否已重寫上述第1記憶體所儲存之上述第1粒度之資料的重寫資訊; 上述資料擷取部基於上述重寫資訊,將上述第3記憶體所儲存之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。 技術方案7 根據技術方案2至6中任一者,上述資料擷取部配合刪除上述第3記憶體所儲存之上述第3粒度之資料之至少一部分之時序,將上述第3記憶體所儲存之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。 技術方案8 根據技術方案1至7中任一者,上述控制部若自處理器接收讀取請求,且若有上述讀取請求之位址於上述第1記憶體及上述第3記憶體未命中,則自上述第2記憶體讀取資料。 技術方案9 根據技術方案1至8中任一者,上述控制部於自處理器有讀取請求之位址於上述第1記憶體及上述第3記憶體未命中時,進行上述第3記憶體所儲存之資料之替換處理。 技術方案10 根據技術方案9,具備:第4記憶體,其於自處理器有讀取請求之位址於上述第1記憶體及上述第3記憶體未命中時,儲存上述第1記憶體所儲存之作為自上述第1記憶體之刪除對象之有效資料; 上述控制部將儲存於上述第4記憶體之資料以特定時序儲存於上述第3記憶體。 技術方案11 根據技術方案9或10,上述控制部於自處理器有讀取請求之位址於上述第1記憶體及上述第3記憶體未命中時,於藉由自上述第1記憶體對上述第4記憶體儲存資料而獲得之上述第1記憶體之空區域,自上述第3記憶體傳送一部分資料,且於藉由該資料之傳送而獲得之上述第3記憶體之空區域儲存來自上述第2記憶體之資料。 技術方案12 根據技術方案4或5,具備:第4記憶體,其於自處理器有讀取請求之位址於上述第1記憶體及上述第3記憶體未命中時,儲存上述第1記憶體所儲存之作為自上述第1記憶體之刪除對象之有效資料; 上述第1標籤記憶體係於與上述第4記憶體內之資料對應之位址於上述第1標籤記憶體未命中時,儲存表示將該資料寫回上述第3記憶體之寫回旗標資訊; 上述控制部基於上述寫回旗標資訊,將自上述第4記憶體寫回上述第3記憶體之資料儲存於上述第2記憶體。 技術方案13 根據技術方案1至12中任一者,上述控制部若自處理器接收寫入請求,且若有上述寫入請求之位址於上述第3記憶體命中,則於上述第3記憶體寫入有上述寫入請求之資料,若於上述第3記憶體未命中,則於上述第1記憶體寫入上述資料。 技術方案14 根據技術方案1至13中任一者,上述第2記憶體為DRAM(Dynamic Random Access Memory); 上述第1記憶體為MRAM(Magnetoresistive Random Access Memory)。 技術方案15 根據技術方案1至14中任一者,上述第3記憶體為MRAM或SRAM(Static Random Access Memory)。 技術方案16 根據技術方案1至15中任一者,上述第2記憶體、上述第1記憶體及上述第3記憶體為同一階層之記憶體。 技術方案17 根據技術方案1至16中任一者,上述第2記憶體、上述第1記憶體及上述第3記憶體為存取優先度高於主記憶體之快取記憶體。 技術方案18 根據技術方案1至17中任一者,上述第2記憶體為記憶體陣列; 上述第3記憶體為儲存對以上述記憶體陣列之字元線為單位存取之複數個記憶胞讀寫之資料的列緩衝器。 技術方案19 一種處理器系統,其具備: 處理器; 第1記憶體,其儲存第1粒度之資料; 第2記憶體,其儲存較上述第1粒度更大之第2粒度之資料,且記憶體容量大於上述第1記憶體; 控制部,其自儲存於上述第2記憶體之資料中讀取上述第1粒度以上之第3粒度之資料;及 資料擷取部,其自上述控制部所讀取之上述第3粒度之資料擷取上述第1粒度之資料,並儲存於上述第1記憶體。 技術方案20 根據技術方案19,具備:第3記憶體,其記憶體容量小於上述第1記憶體,且儲存上述第3粒度之資料; 上述資料擷取部將儲存於上述第3記憶體之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。 雖已說明本發明之數個實施形態,但該等實施形態係作為實例提示者,並未意欲限定發明之範圍。該等新穎之實施形態係可以其他多種形態實施,在未脫離發明之主旨之範圍內,可進行多種省略、置換、變更。該等實施形態或其變化係包含於發明之範圍或主旨,且包含於專利申請範圍所記述之發明及其均等之範圍內。 本申請案以日本專利申請案2016-164845(申請日:8月25日/2016年)為基礎,享受該申請案之優先利益。藉由參照該申請案而涵蓋同申請案之全部內容。
1‧‧‧記憶體系統
2‧‧‧處理器系統
3‧‧‧處理器
4‧‧‧主記憶體
5‧‧‧第1記憶體控制器
6‧‧‧第2記憶體控制器
7‧‧‧第1記憶體
8‧‧‧記憶體模組
9‧‧‧第2記憶體
10‧‧‧第3記憶體
11‧‧‧記憶體陣列
12‧‧‧列緩衝器
21‧‧‧第1粒度標籤記憶體
21a‧‧‧第1粒度位址資訊
21b‧‧‧有效旗標資訊
21c‧‧‧LRU管理資訊
21d‧‧‧重寫旗標資訊
22‧‧‧第3粒度標籤記憶體
22a‧‧‧第3粒度位址資訊
22b‧‧‧有效旗標資訊
22c‧‧‧存取旗標資訊
22d‧‧‧重寫旗標資訊
22e‧‧‧寫回旗標資訊
22f‧‧‧LRU管理資訊
23‧‧‧資料擷取部
24‧‧‧記憶體存取控制器
25‧‧‧寫入緩衝器
25a‧‧‧有效旗標資訊
25b‧‧‧第1粒度位址資訊
25c‧‧‧第1粒度資料區域
31‧‧‧處理器核心
32‧‧‧L1快取
33‧‧‧L2快取
34‧‧‧L3快取
35‧‧‧L4快取
36‧‧‧快取控制器
S1~S7‧‧‧步驟
S11~S19‧‧‧步驟
S20~S33‧‧‧步驟
S40~S50‧‧‧步驟
S51~S59‧‧‧步驟
S61~S66‧‧‧步驟
S71~S89‧‧‧步驟
圖1係顯示第1實施形態之處理器系統之概略構成之方塊圖。 圖2係顯示記憶體模組之內部構成之一例之方塊圖。 圖3係顯示主記憶體之內部構成之一例之方塊圖。 圖4係顯示快取記憶體之1個集合之標籤資訊之圖。 圖5係顯示第3粒度標籤記憶體之資料構成之圖。 圖6係顯示寫入緩衝器之資料構成之圖。 圖7係顯示寫入請求時之第2記憶體控制器之處理動作之流程圖。 圖8A係顯示讀取請求時之第2記憶體控制器之讀取處理之流程圖。 圖8B係接續圖8A後之流程圖。 圖9係圖8B之步驟S27之替換處理之詳細流程圖。 圖10係自寫入緩衝器向記憶體模組之寫回處理之流程圖。 圖11係顯示第2實施形態之處理器系統之概略構成之方塊圖。 圖12係顯示L4快取之內部構成之一例之方塊圖。 圖13係顯示第2粒度標籤記憶體之資料構成之一例之圖。 圖14係顯示第3粒度標籤記憶體之資料構成之一例之圖。 圖15係對L4快取之寫入處理之流程圖。 圖16A係顯示L4快取之讀取處理與L4快取出錯時之資料提取處理之流程圖。 圖16B係接續圖16A後之流程圖。

Claims (10)

  1. 一種記憶體系統,其具備:第1記憶體,其記憶體容量較儲存第2粒度之資料之第2記憶體小,且儲存較上述第2粒度小之第1粒度之資料;控制部,其自儲存於上述第2記憶體之資料中讀取上述第1粒度以上之第3粒度之資料;及資料擷取部,其自上述控制部所讀取之上述第3粒度之資料擷取上述第1粒度之資料,並儲存於上述第1記憶體。
  2. 如請求項1之記憶體系統,其中具備:第3記憶體,其記憶體容量較上述第1記憶體小,且儲存上述第3粒度之資料;上述資料擷取部將儲存於上述第3記憶體之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。
  3. 一種記憶體系統,其具備:第1記憶體,其記憶體容量較儲存第2粒度之資料之第2記憶體小,且儲存第1粒度之資料;第3記憶體,其儲存上述第1粒度以上之第3粒度之資料;控制部,其自儲存於上述第2記憶體之資料中讀取上述第3粒度之資料,並儲存於上述第3記憶體;及資料擷取部,其擷取上述第3記憶體所儲存之資料中有存取之資料,且將擷取之資料以上述第1粒度儲存於上述第1記憶體。
  4. 如請求項2或3之記憶體系統,其中具備:第1標籤記憶體,其儲存特定上述第3記憶體所儲存之上述第3粒度之資料的位址資訊、及表示各資料之存取狀況的存取資訊;上述資料擷取部基於上述第1標籤記憶體內之上述存取資訊,將上述第3記憶體所儲存之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。
  5. 如請求項4之記憶體系統,其中具備:第2標籤記憶體,其儲存特定上述第1記憶體所儲存之上述第1粒度之資料的位址資訊、及表示是否已重寫上述第1記憶體所儲存之上述第1粒度之資料的重寫資訊;上述第1標籤記憶體係儲存表示是否已重寫上述第3記憶體所儲存之上述第3粒度之資料的重寫資訊;上述控制部若自處理器接收讀取請求時,則於有上述讀取請求之位址於上述第1標籤記憶體及上述第2標籤記憶體之兩者命中之情形時,基於上述第2標籤記憶體內之重寫資訊與上述第1標籤記憶體內之重寫資訊,自上述第1記憶體或上述第3記憶體讀取有上述讀取請求之資料。
  6. 如請求項2或3之記憶體系統,其中具備:第2標籤記憶體,其儲存特定上述第1記憶體所儲存之上述第1粒度之資料的位址資訊、及表示是否已重寫上述第1記憶體所儲存之上述第1粒度之資料的重寫資訊;上述資料擷取部基於上述重寫資訊,將上述第3記憶體所儲存之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。
  7. 如請求項2或3之記憶體系統,其中上述資料擷取部配合刪除上述第3記憶體所儲存之上述第3粒度之資料之至少一部分之時序,將上述第3記憶體所儲存之資料之至少一部分以上述第1粒度儲存於上述第1記憶體。
  8. 如請求項2或3之記憶體系統,其中上述控制部若自處理器接收到讀取請求,且若有上述讀取請求之位址於上述第1記憶體及上述第3記憶體未命中,則自上述第2記憶體讀取資料。
  9. 如請求項2或3之記憶體系統,其中上述控制部於自處理器有讀取請求之位址於上述第1記憶體及上述第3記憶體未命中時,進行上述第3記憶體所儲存之資料之替換處理。
  10. 如請求項9之記憶體系統,其中具備:第4記憶體,其於自處理器有讀取請求之位址於上述第1記憶體及上述第3記憶體未命中時,儲存上述第1記憶體所儲存之作為上述第1記憶體之刪除對象之有效資料;上述控制部將儲存於上述第4記憶體之資料儲存於上述第3記憶體。
TW106108077A 2016-08-25 2017-03-10 Memory system and processor system TWI652576B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP??2016-164845 2016-08-25
JP2016164845A JP2018032256A (ja) 2016-08-25 2016-08-25 メモリシステムおよびプロセッサシステム

Publications (2)

Publication Number Publication Date
TW201807586A TW201807586A (zh) 2018-03-01
TWI652576B true TWI652576B (zh) 2019-03-01

Family

ID=61242636

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106108077A TWI652576B (zh) 2016-08-25 2017-03-10 Memory system and processor system

Country Status (4)

Country Link
US (1) US10564871B2 (zh)
JP (1) JP2018032256A (zh)
CN (1) CN107783910B (zh)
TW (1) TWI652576B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190155985A1 (en) * 2017-11-22 2019-05-23 Mentor Graphics Corporation Communication protocols design verification through database systems for hardware-based emulation platforms
JP2019121195A (ja) 2018-01-05 2019-07-22 東芝メモリ株式会社 メモリシステム及びプロセッサシステム
CN110865792B (zh) * 2018-08-28 2021-03-19 中科寒武纪科技股份有限公司 数据预处理方法、装置、计算机设备和存储介质
US11516151B2 (en) * 2019-12-31 2022-11-29 Infinera Oy Dynamically switching queueing systems for network switches
US20220091992A1 (en) * 2020-09-23 2022-03-24 Intel Corporation Device, system and method to provide line level tagging of data at a processor cache
CN113641626B (zh) * 2021-10-18 2022-02-18 睿思芯科(深圳)技术有限公司 一种sram读写控制方法及行缓冲控制器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834327B2 (en) * 2002-02-08 2004-12-21 Hewlett-Packard Development Company, L.P. Multilevel cache system having unified cache tag memory
EP1619584A1 (en) * 2004-02-13 2006-01-25 Jaluna SA Memory allocation
JP2006323739A (ja) 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
CN102541774B (zh) * 2011-12-31 2015-02-04 中国科学院自动化研究所 多粒度并行存储系统与存储器
US8954672B2 (en) * 2012-03-12 2015-02-10 Advanced Micro Devices, Inc. System and method for cache organization in row-based memories
KR102031661B1 (ko) 2012-10-23 2019-10-14 삼성전자주식회사 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법
US20140181415A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Prefetching functionality on a logic die stacked with memory
US9898410B2 (en) 2013-09-10 2018-02-20 Intel Corporation Hybrid main memory using a fine-grain level of remapping
US9798574B2 (en) * 2013-09-27 2017-10-24 Intel Corporation Techniques to compose memory resources across devices

Also Published As

Publication number Publication date
US20180059980A1 (en) 2018-03-01
JP2018032256A (ja) 2018-03-01
US10564871B2 (en) 2020-02-18
CN107783910A (zh) 2018-03-09
TW201807586A (zh) 2018-03-01
CN107783910B (zh) 2021-05-28

Similar Documents

Publication Publication Date Title
TWI652576B (zh) Memory system and processor system
JP6118285B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
US20170091099A1 (en) Memory controller for multi-level system memory having sectored cache
US10108549B2 (en) Method and apparatus for pre-fetching data in a system having a multi-level system memory
US20170177482A1 (en) Computing system having multi-level system memory capable of operating in a single level system memory mode
US20170091093A1 (en) Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
JP6027562B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US20180095884A1 (en) Mass storage cache in non volatile level of multi-level system memory
WO2017171974A1 (en) Handling of error prone cache line slots of memory side cache of multi-level system memory
US7975093B2 (en) Cache with high access store bandwidth
JPWO2010032433A1 (ja) バッファメモリ装置、メモリシステム及びデータ読出方法
US10915453B2 (en) Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
US10713165B2 (en) Adaptive computer cache architecture
JP6140233B2 (ja) メモリシステム
US11822481B2 (en) Semiconductor device and method for controlling semiconductor device
US20240086325A1 (en) DRAM Cache with Stacked, Heterogenous Tag and Data Dies
KR20170054609A (ko) 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법
US20190286562A1 (en) Information processing apparatus, cache control apparatus and cache control method
JP2021082324A (ja) 管理装置、情報処理装置、管理方法、およびプログラム