TWI883041B - 具有增進記憶體側快取實施之多層記憶體 - Google Patents
具有增進記憶體側快取實施之多層記憶體 Download PDFInfo
- Publication number
- TWI883041B TWI883041B TW109130772A TW109130772A TWI883041B TW I883041 B TWI883041 B TW I883041B TW 109130772 A TW109130772 A TW 109130772A TW 109130772 A TW109130772 A TW 109130772A TW I883041 B TWI883041 B TW I883041B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- cache
- side cache
- interface
- soc
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/28—Using a specific disk cache architecture
- G06F2212/282—Partitioned cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/304—In main memory subsystem
- G06F2212/3042—In main memory subsystem being part of a memory device, e.g. cache DRAM
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/306—In system interconnect, e.g. between two buses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
描述一設備。此設備包括一半導體晶片封裝體。半導體晶片封裝體包括一SOC。SOC具有一記憶體控制器。半導體晶片封裝體包括一外部記憶體之一介面。半導體晶片封裝體包括一記憶體側快取。記憶體側快取由eDRAM組成且耦接於記憶體控制器與外部記憶體之介面之間。eDRAM係用以快取該外部記憶體之較頻繁使用的項目。半導體晶片封裝體在該記憶體控制器與該記憶體側快取之間具有一無次序介面。
Description
本發明係關於一種具有增進記憶體側快取實施之多層記憶體。
運算系統設計者不斷尋求增進其設計之運算系統之效能的方式。益趨關注的領域為記憶體效能。此處,若因製法改良(例如縮減之最小特徵大小)及/或架構改良而致使處理器效能持續增強,則若處理器所用記憶體的效能無法跟上運算邏輯,電腦系統整體會無法達到其運算潛力。
根據本發明之一實施例,係提出一種設備,其包含一半導體晶片封裝體,其包括a)一單晶片系統SOC,該SOC包含一記憶體控制器;b)一外部記憶體的一介面c)一記憶體側快取,其包含耦接於該記憶體控制器與該外部記憶體之該介面之間的嵌入式動態隨機存取記憶體(eDRAM),該eDRAM快取該外部記憶體之較頻繁使用的項目;以及d)在該記憶體控制器與該記憶體側快取之間的無次序介面。
圖1展示單一封裝體100中之多個單晶片系統(SOCs)101_1、101_2。如圖1中所觀察到,每一CPU SOC 101包括由某種網路103互連至末級快取記憶體(LLC)104及主記憶體控制器105(「主記憶體」亦可被稱作「系統記憶體)的多個CPU處理核心102。為了圖式的方便,僅標記SOC 101_1之CPU核心、內部網路、LLC及主記憶體控制器。此外,再次為了圖式的方便,每SOC僅描繪一個主記憶體控制器105,即使當前經設計之SOC具有足夠大量之CPU核心(例如,32、48等)以對應每SOC一個以上記憶體控制器。
隨著每一CPU核心呼叫資料及/或指令,其首先瀏覽CPU快取記憶體之階層架構。在階層架構中最後的CPU快取記憶體是LLC 104。如果在LLC 104的搜尋中未發現用於資料/指令,則對主記憶體控制器105針對此資料/指令做出一請求。
如可見,記憶體控制器藉助於多個雙倍資料速率(DDR)記憶體通道106耦接至外部主記憶體,該記體通道係諸如工業標準DDR記憶體通道(例如,由聯合電子裝置工程委員會(JEDEC)發佈之DDR標準(例如,DDR4、DDR5等))。每一通道耦接至一或多個記憶體模組107(例如,具有動態隨機存取記憶體(DRAM)記憶體晶片之雙列直插式記憶體模組(DIMM))。用於資料/指令的搜尋之位址經解析至插入記憶體通道中之特定記憶體通道及模組。然後在讀取之狀況下,所要資訊係經由通道自模組取得、並被提供至請求其之CPU核心。
圖2展示一新興的記憶體實施,其中記憶體側快取208置放於DDR記憶體通道206中之一或多者上。在此,由例如新興的非依電性隨機存取記憶體(NVRAM)技術組成的一或多個記憶體模組209亦插入至DDR記憶體通道206中之一或多者中。與傳統非依電性記憶體不同,設置於NVRAM記憶體模組209上的新興的非依電性記憶體為位元組可定址的(例如,資料可以位元組粒度寫入至及/或自記憶體讀取)。
亦即,傳統的非依電性記憶體(例如快閃記憶體)已被謫降給非依電性大量儲存器,因其僅能夠以較大的粒度(例如頁面、區塊、扇區)存取及/或抹除,並因而不能作為位元組可定址主記憶體來操作,但相比之下,新的新興的NVRAM記憶體技術卻能夠以位元組層級粒度(及/或快取列粒度)存取,並因而可作為主記憶體操作。
新興NVRAM記憶體技術通常由在晶片之互連佈線間/內之半導體晶片之基板上方形成之儲存胞元三維陣列組成。此等胞元通常為電阻式,且藉由施加一通過胞元之特定電阻(例如,第一電阻對應於第一儲存邏輯值且第二電阻對應於第二邏輯值)來儲存特定邏輯值。此記憶體之範例在可能之外包括來自Intel公司之OptaneTM記憶體、來自美光公司之3D XPointTM記憶體、來自美光公司之QuantXTM記憶體、相變記憶體、電阻式隨機存取記憶體、介電隨機存取記憶體、鐵電隨機存取記憶體(FeRAM)、磁性隨機存取記憶體及自旋轉移矩隨機存取記憶體(STT-RAM)。
在一主記憶體角色中使用新興NVRAM記憶體可對整體運算系統提供益處(諸如消除了涉及主記憶體內容回到大量儲存器之「回寫」或「遞交」的內部訊務擁塞及電力消耗)。然而,此類新興的NVRAM記憶體仍傾向於比動態隨機存取記憶體(DRAM)慢,其為已用於主記憶體之傳統技術。
為了補償主記憶體存取潛時之增加(若主記憶體完全以新興NVRAM記憶體實施會觀察到此情形),如圖2中所見,含有DRAM 208之一或多個記憶體模組被插入DDR記憶體通道206中且作為記憶體側快取(MSC)208操作。根據圖2之特定實施,每一記憶體通道具有其自身的專用記憶體側快取,其作為用於相同記憶體通道上之NVRAM模組的一快取記憶體操作。
根據一方法,在各通道上,僅有NVRAM記憶體209之容量主要被視為該通道之系統記憶體位址空間。相比之下,DRAM記憶體側快取208在該通道上之容量大部分並不作為系統記憶體位址空間,而是用於MSC之通道的NVRAM記憶體空間209中最頻繁存取的資料/指令(替代實施允許一個通道之MSC快取另一通道之資料/指令)之儲存。藉由將最頻繁存取之NVRAM項目保持在較快DRAM記憶體側快取208中,可從DRAM記憶體側快取208而非較慢之NVRAM記憶體209繼續使用此等項目來服務。
此處,一記憶體側快取208不同於一CPU末級快取,不同點在於一記憶體側快取208欲儲存的是主記憶體中最頻繁被存取的項目,而不是如同CPU末級快取為從一特定組件或類型的組件(CPU核心)最頻繁存取的項目。相反地,記憶體側快取將快取在主記憶體中最需要的項目,作為整體其可由使用主記憶體之系統中之任何組件所請求。因此,若一GPU或網路連接介面或兩者正在產生大量的主記憶體請求,則該記憶體側快取將易於保持與此等組件相關聯之項目,CPU核心亦同。
圖3a及3b各自描述一增進記憶體側快取架構,其在包含該SOC之封裝體中整合一DRAM記憶體側快取310。因此,記憶體側快取310不僅可被使用作為將配合圖2之架構之外部記憶體側快取208/308使用(或不使用)的記憶體側快取之另一(較快)層級,而且亦可被使用以增進圖1之傳統的記憶體實施之效能,其僅將外部DRAM記憶體模組107插入至駐留於SOC封裝體外部之DDR記憶體通道106。
如在圖3a及3b之增進方法中所觀察到的,記憶體側快取310實施於含有SOC之CPU封裝體內。此處,記憶體側快取可以被實施:1)作為在一SOC(圖3a)之內的一個別之功能區塊;及/或,2)一個別記憶體側快取晶片,其與SOC晶片分離但整合在與SOC晶片相同之封裝體內(圖3b)。
在各種實施例中,圖3a及3b之任一者的記憶體側快取310耦接至支援無次序請求/回應情境之SOC通訊介面311。舉一些例子,此類介面包括支援無次序請求回應(例如,JEDEC NVDIMM-P協定)之一記憶體通道介面、一週邊組件互連延伸(PCIe)介面、一運算快捷鏈路(CXL)介面、一超路徑互連(UPI)介面或任何可比較技術等。
在圖3a的記憶體側快取310整合於SOC中之方法中,無次序介面311被製造成在SOC內可用。在圖3b之方法中,其中記憶體側快取310經實施為與SOC分開之晶片,無次序介面311自SOC作為外部介面來析出。
值得注意的是,在各種實施例中,如圖3a及3b所描繪,增進記憶體側快取310係以嵌入式DRAM 312(eDRAM)實施於SOC封裝體內。在此,相較於耦接於一外部記憶體通道的一外部DRAM記憶體模組(例如,MSC 208、308),在SOC封裝體內的eDRAM 312將具有減少的存取時間。
此處,概括的利用可沿著一信號路徑傳播之最高頻率將隨著沿著信號路徑存在之各外部實體連接降低。在外部記憶體模組208/308耦接至析出自SOC封裝的記憶體通道206/306之狀況下,存在四個外部實體連接:1)自封裝晶粒I/O至封裝體基板的實體連接;2)自封裝I/O至記憶體通道的實體連接;3)自記憶體通道至記憶體模組I/O之實體連接;及4)自記憶體模組基板至目標記憶體晶片之I/O的實體連接。
相反地,記憶體側快取310係在SOC封裝體中以eDRAM 312實施,至多存在兩個外部實體連接。在eDRAM記憶體側快取310在SOC(圖3a)內內部實施之狀況下,不存在外部實體連接。在記憶體側快取310在SOC封裝體內被實施為與SOC分離之晶片的情況下(圖3b),外部實體連接為:1)SOC至封裝基板之I/O;以及,2)封裝基板之I/O至記憶體側快取晶粒310。
因此,此增進記憶體側快取310可相比一外部記憶體側快取208/308以較少時間回應請求。如本領域中所理解的,eDRAM 312將DRAM整合在高密度邏輯晶粒上(相較於具有有限邏輯整合能力的傳統DRAM記憶體晶粒)。
如上文所論述,記憶體側快取310包括支援與SOC CPU記憶體控制器通訊之無次序交易的介面311。亦即,舉例來說,若自SOC CPU記憶體控制器析出之介面311為NVDIMM-P介面,則記憶體側快取組件310亦包括NVDIMM-P介面311。
隨著記憶體控制器服務其接收之請求,其經由介面311將記憶體存取請求發出至記憶體側快取310。記憶體側快取310之內部快取命中/未命中邏輯313接著針對所請求資料項目監聽eDRAM快取312。若在讀取之狀況下存在命中,則資料自eDRAM快取312提取且返回至記憶體控制器。在寫入之狀況下,eDRAM快取312中之目標資料項目的內容以包括寫入請求的新資訊來改寫。
在快取記憶體未命中的情況下,記憶體側快取310之內部邏輯調用耦接至外部記憶體通道之「後端」介面314及插入此等記憶體通道中之對應記憶體模組(例如,DIMM)。此處,後端介面314可對應於工業標準DDR記憶體通道(例如JEDEC DDR4、JEDEC DDR5等)。因此,從外部記憶體模組的觀點來看,CPU封裝體「顯示」為傳統的CPU封裝體(此等記憶體模組耦接到從CPU封裝體析出的工業標準記憶體通道)。
因此,在一快取未命中的情況下,假設如上面就圖2所論述之沒有額外的(第二層級)記憶體側快取模組208/308,無論是否處理一讀取或寫入請求,在記憶體側快取310內部的邏輯電路系統首先解析在記憶體通道上的該請求的位址至一特定記憶體通道以及在記憶體通道上的記憶體模組,然後在以記憶體模組為目標的記憶體通道上發出一請求。在各種不同實施例中,記憶體模組為一NVRAM記憶體模組309,其含有由下列新興非依電性記憶體組成之一或多個記憶體晶片(此等記憶體模組亦可包括一控制器邏輯晶片來執行對於非依電性記憶體為獨特的之各種不同的常式,諸如損耗平衡、進入及/或外出請求及/或回應佇列之實施、板上無次序請求處理邏輯、等等)。
延伸實施例也可包括額外的(第2層級)記憶體側快取功能性。舉例來說,根據一方法,每一NVRAM記憶體模組309亦包括一板上DRAM快取來快取特定記憶體模組之最頻繁請求的項目。
根據另一方法,其可與上文所描述之方法組合,一第2層級DRAM記憶體側快取模組308,如上文就圖2所論述之記憶體側快取模組208,被插入到具有一或多個NVRAM記憶體模組309之一記憶體通道內。
在此情況下,執行至第2層級記憶體側快取模組308中之快取查找的邏輯可位於第2層級記憶體側快取模組308上,或可位於整合於SOC封裝體中之記憶體側快取功能310的後端上。若在讀取的情況下存在快取命中,則自第2層級記憶體側快取模組308讀取所要資料,被提供至記憶體側快取功能310且將其轉遞至SOC。在寫入之情況下,包括於請求中之新資料經由第2層級記憶體側快取模組308中之目標資料項目被改寫。請注意,記憶體側快取功能310亦可包括嵌入式邏輯用以使在SOC介面311上的請求異動及記憶體通道306上的請求異動兩者根據其各自協定保持作用及/或以其他方式可操作。
根據一實施例,其中用於判定在第2層級記憶體側快取模組308中之命中/未命中的該命中/未命中快取邏輯係駐留於記憶體側快取功能310中,該記憶體側快取功能首先執行對第2層級記憶體側快取模組308之讀取以判定是否存在命中或未命中。此處,舉例來說,任何請求之位址僅映射至第2層級記憶體側快取模組308之記憶體空間中的一個(或有限複數個)「槽」。一標籤(其係例如資料之位址的某片段)係藉由第2層級記憶體側快取308中之資料項目而保持,且連同資料項目本身而自第2層級快取308被讀取。自隨資料項目返回之標籤,記憶體側快取功能310可判定命中或未命中是否已發生。在命中之情況下,藉由自第2層級記憶體模組308讀取之資料項目來服務該請求。在未命中之情況下,透過記憶體通道306導引該請求至適當的NVRAM記憶體模組309。
返回至(第一層級)記憶體側快取功能310之論述,應注意此快取記憶體可根據諸如直接映射、設定關聯或關聯等各種架構而實施。在此,因為eDRAM可整合在高密度邏輯程序上,設定相關聯或相關聯快取架構係可行的。相對地,例如,不包括快取命中/未命中邏輯之外部DRAM記憶體側快取模組解決方案208/308(例如,用以保持此模組之電力消耗在所界定限制之內)。此等解決方案已是已知實施一直接映射快取記憶體以便限制外部DRAM快取存取308為每請求一個存取。
因而,eDRAM 312記憶體側快取功能310之命中/未命中邏輯可包括標籤陣列及/或其他邏輯,其支援關聯或設定關聯快取記憶體以追蹤哪些資料項目儲存於哪些快取記憶體槽中。另外,經由排組或其他方案,eDRAM可設計成具有足夠頻寬以支援針對標籤陣列及資料陣列中之任一者或兩者的寫入前讀出方案。下文參照圖5a至5d更詳細地提供一可能的記憶體位址至快取記憶體槽映射方法之一延伸論述。
在各種實施例中,介面311為一無次序介面,因為記憶體側快取310之存在可導致在記憶體側快取310中未命中的較早請求之前,完成在eDRAM快取312中經歷快取命中的較晚請求。此可能性通常甚至可存在於不包括耦接到外部記憶體通道306之非依電性記憶體模組的實施中。亦即,即使耦接至外部記憶體通道306之所有記憶體模組均為DRAM記憶體模組,該相對較快的eDRAM記憶體側快取310仍可能導致無次序請求完成。
若一第2層級記憶體側快取存在,作為一獨立的DRAM記憶體模組308,其作為用於插入相同(及/或其他)記憶體通道中之NVRAM記憶體模組之一快取,或者作為駐留在一NVRAM模組上以在每一模組之基礎上儲存較頻繁項目之DRAM快取,無次序請求完成的可能性也可存在於記憶體通道306上。在此情況下,後端介面314亦應支援無次序處理(諸如JEDEC之NVDIMM-P的DDR版本)。
關於eDRAM記憶體側快取功能310之替換策略,各種實施例係可能的。根據一方法,在eDRAM快取312中針對特定資料項目之未命中係導致資料項目在已自其外部記憶體模組被呼叫之後進入eDRAM快取312中。大體而言,在延長的運行時間及重記憶體的使用後,此資料項目進入eDRAM快取312將導致另一資料項目的驅逐,其係自eDRAM快取312返回至外部記憶體模組,以便為新的輸入騰出空間。此處,可使用各種驅逐策略,諸如最不常用(LFU)、近期最少使用(LRU)等等。
此外,記憶體側快取功能310可支援各種類型的寫入模式。第一模式被稱作「寫入」,其將已在eDRAM快取312中新寫入/更新的資料項目之複本寫回至外部記憶體模組中之其之對應位置。根據此方法,資料項目之最近版本將不僅在eDRAM快取312中,而且亦在外部記憶體模組中。另一類型的模式稱為「寫回」,其不將已經在eDRAM快取312中新寫入/更新的資料寫回記憶體模組。相反的,記憶體側快取功能310之命中/未命中邏輯313追蹤其之哪些資料項目為骯髒的且哪些為乾淨的。若一資料項目在第一次進入eDRAM快取312之後從未被寫入,則其為乾淨的,並且若其隨後自eDRAM快取312驅逐則無需將其寫回至其外部記憶體模組。相反地,若資料在第一次被寫入eDRAM快取312之後以新資料更新,則該資料係標記為骯髒的,並且若其隨後自eDRAM快取312驅逐則會被寫回至其對應的記憶體模組。
在各種實施例中,記憶體側快取功能包括暫存器空間以允許用於eDRAM快取之各種操作模式的可組態度。舉例來說,暫存器空間可以指定哪個快取策略將被施加(例如,LFU、LRU、等等)及/或哪一寫入模式將被施加(例如,寫入、寫回、等等)。
圖3a及3b已展示實施例,其中「後端」邏輯314以與記憶體側快取功能310相同之晶片來實施。圖4展示另一方法,其中後端邏輯414經實施為與記憶體側快取功能410分開的半導體晶片415。將後端邏輯414及記憶體側快取410分離成不同半導體晶片允許自封裝體至外部記憶體408、409的客製化外部介面。亦即,儘管後端邏輯414可利用例如不同後端晶片來實施DDR介面,後端邏輯414可實施任何PCIe、CXL、或除DDR以外的其他介面。因此,可容易地做出具有任何混合/類型之記憶體介面的封裝解決方案。
後端邏輯晶片415與記憶體側快取410之間的介面416可為具有充分高的輸送量(例如,直接媒體介面(DMI)、PCIe等)之任何高速通訊鏈結。儘管圖4展示其中記憶體側快取410與SOC分開之一特定實施例,但在各種實施例中,記憶體側快取整合於SOC上。
應注意,即使在圖3b之方法中,可將不同記憶體側快取晶片製造為具有不同後端邏輯介面314以,例如,允許從封裝體客製化外部記憶體介面產品。亦即,若需要外部DDR介面,則將具有DDR後端介面之第一類型記憶體側快取晶片整合至封裝中;若需要不同外部記憶體介面,則將具有不同外部記憶體介面之第二類型記憶體側快取晶片整合至封裝中,諸如此類。
在各種實施例中,存在內封裝晶片至晶片通訊(例如,圖3b中之介面311及/或圖4中之介面416),可使用高效能內封裝互連技術。範例包括2.5D封裝積體技術,僅僅舉幾個可能性,堆疊式封裝(PoP)、封裝中封裝(PiP)或嵌入式互連橋(諸如來自Intel的嵌入式多晶粒互連橋(EMIB))。
另外,雖然上述實施例已強調第一層級記憶體側快取存在於與SOC相同之封裝內,但在其他實施例中,第一層級記憶體側快取駐留於任何SOC封裝外部,但在與一或多個SOC相同之CPU模組(或「插座」)上實施。在此,舉例來說,一或多個封裝SOC可經整合至一模組上且該模組插入例如較大系統主機板中。記憶體DIMMs,潛在地包括一第二層級DRAM記憶體側快取DIMM及一或多個NVRAM DIMMs,係插入於駐留於較大系統主機板上之記憶體通道中。相比之下,第一層級記憶體側快取駐留於具有封裝(多個)SOC之模組上。因為至/自第一層級記憶體側快取之通訊不經由模組/主機板互連件傳播,所以第一層級記憶體側快取應該呈現比插入至主機板中之任何DIMMs快的存取時間。
應注意,儘管以上實施例著重於每封裝有兩個SOC的封裝,但其他實施例可為每一封裝有超過兩個SOC,或每封裝僅具有一個SOC。此外,雖然以上實施例著重於將上述教示實施於一主記憶體解決方案,但其他實施例可實施於他處,諸如用於高效能協同處理器(例如,人工智慧協同處理器、向量協同處理器、影像處理器、圖形處理器等)之本地記憶體。
圖5a至5d展示系統記憶體位址空間之不同組織/組態及第一層級快取312之容量。此處,系統記憶體之不同鄰接區段被視為頁面,且多個頁面被指派至相同「頁面群組」。(為了圖式的方便,圖5a、5b、5c及5d之各圖中僅標記一個記憶體頁面519)。圖5a至5d中之每一者中的系統記憶體517的總容量為2TB。系統記憶體中之頁面519的大小於圖5a至5d中分別為圖5a及5b中4kB、圖5c中64kB、及圖5d中2MB。
自此等頁面大小組態,系統記憶體517經組織為:1)2M頁面群組518_1a、518_2a、518_3a等,其之各者由圖5a中之256個頁面(每頁面群組1M)組成;2)1M頁面群組518_1b、518_2b、518_3b等,其之各者由圖5b中之512個頁面(每頁面群組2M)組成;3)256k頁面群組518_1c、518_2c、518_3c等,其之各者由圖5c中之128個頁面(每頁面群組8MB)組成;4)256k頁面群組518_1d、518_2d、518_3d等,其之各者由圖5d中之4個頁面(每頁面群組8MB)組成。
如可從圖5a至5d看出,事實上存在關於頁面大小、每個頁面群組的頁面之數量(其設定頁面群組大小)及系統記憶體內的頁面群組之數量的組織/組態選項之無限範圍。頁面大小可在例如傳統頁面大小(例如,每頁面4kB)至超級頁面大小(例如,每個頁面1MB、2MB等)的範圍。每個頁面群組之頁面大小及頁面數量決定了頁面群組之大小,而頁面群組之大小決定了系統記憶體中頁面群組之數量。
圖5a至5d各亦描繪了用於上文所論述各個對應記憶體組織/組態之範例的第一層級快取312/512之組織/組態。值得注意的是,在各個範例中,快取512中一頁面515的大小與記憶體517中一頁面519的大小相同,並且記憶體517中的頁面群組518多於第一層級快取512中的快取記憶體槽(用以保存一頁面515之空間)。
根據一實施例,快取512中之每個頁面515經指派給頁面群組(指派給相同快取頁面之頁面群組可被稱為「同輩份」)中之特定一或多者。一相同頁面群組518中之記憶體頁面519針對已指派給頁面群組518之快取記憶體512中之(多個)頁面競爭。若快取512中之此等相同頁面已經被指派給記憶體中之額外頁面群組,則其擴展該記憶體中會競爭此等頁面的頁面集用場(理想地,記憶體中最頻繁存取的頁面會最頻繁地佔據快取記憶體中之頁面)。舉例來說,若快取頁面515已被指派給頁面群組518_1、518_2及518_3,則在「同輩」頁面群組518_1、518_2、518_3之所有頁面會競爭快取頁面515。
藉由調整第一層級快取512中有較多或較少的頁面515(針對其等所屬之頁面群組518),快取服務品質(QoS)就記憶體517中之不同頁面519發生效用。亦即,舉例來說,一頁面群組518在其頁面519是用以接收相對高的QoS時會具有較少的頁面群組「同輩」,該同輩即快取記憶體512中與之競爭相同頁面者。同樣地,一頁面群組在其頁面是用以接收相對低的QoS時會具有較多的頁面群組同輩,該同輩即該快取記憶體中與之競爭相同頁面者。
換言之,快取記憶體512中之一頁面在其係用以服務記憶體517中QoS較高之頁面時會被指派較少的頁面群組518;而快取記憶體512中之一頁面在其係用以服務記憶體中QoS較低之頁面時會被指派較大數量的頁面群組518。舉例而言,最高QoS之層級可將快取記憶體512中之一或多個頁面指派給僅一個特定頁面群組(例如,頁面群組518_1),而最低QoS之層級可將快取記憶體512中之另一頁面指派給記憶體517中之大量(例如十、數百等)其他頁面群組。在此,藉由將快取記憶體517中之特定頁面指派給一特定數量的頁面群組518,記憶體517中針對快取記憶體512之相同頁面的頁面間競爭量便能被精確組配,從而在記憶體517中所有頁面之間建立某種相對於快取QoS的精確性。
在各種實施例中,用於含納於一相同頁面群組中的頁面邏輯及/或實體位址是藉由將某些功能施加至一位址位元特定集來決定。在最簡單的狀況下,相同頁面群組中之頁面在位址空間之特定區段中具有相同位元型樣。在其他實施例中,可將一些功能應用於位址空間之同一區段以判定一頁面屬於何頁面群組。此處,往回簡短參看圖3a及3b,快取命中/未命中邏輯313及/或相關聯之邏輯電路系統包括映射邏輯電路系統,其能夠將記憶體中之任何頁面基於它的頁面群組指派內容而映射至它在第一層級快取312中之正確頁面。
作業系統(OS)、作業系統執行個體及/或虛擬機器監視器(VMM)或超管理器可容易地針對快取記憶體中之特定頁面大小來組配快取記憶體312之eDRAM空間,並針對記憶體中之特定頁面大小、每頁面群組之頁面數量及頁面群組之數量來組配系統記憶體。因而,OS、OS執行個體及/或VMM/超管理器中之任一者可容易地將例如不同應用程式、在一應用程式內或在應用程式間之不同種類的資料組配至各種程度之第一層級快取QoS,如上文所描述。
在各種實施例中,前述映射邏輯可包括用以建立快取記憶體312中之頁面大小的組態暫存器空間;而「後端」邏輯電路系統314或相關聯之邏輯電路系統(包括但不限於SOC記憶體控制器)則可包括用以建立下述的組態暫存器空間:記憶體中之任何/所有頁面大小、每頁面群組之頁面數量、及系統記憶體中之頁面群組數量。
除了組配快取記憶體512中之頁面大小之外,該命中/未命中邏輯電路系統及/或相關聯之邏輯電路系統的映射邏輯電路系統,在各種實施例中亦可建立頁面在第一層級快取中之方式。即,被指派給記憶體中之相同(多個)頁面群組的是第一階層快取512中之頁面群組,而非單一頁面。圖5b展示組配作為雙向快取之快取的範例。在此,兩個快取頁面(例如,諸如頁面對520)一起指派給相同一或多個頁面群組。指定(多個)頁面群組中之頁面接著針對頁面對520中之頁面進行競爭。具有三個、四個等等之其他實施例也可以組配於第一層級快取512中。
請注意,在各種實施例中,圖5之前面提到的記憶體頁面係由系統組配來判定,例如,用於不同應用之不同QoS。 然而,在標稱運行時間期間,此等頁面無需為由OS或OS執行個體所辨識或參照的相同頁面。在各種實施例中,此情形是可能的,如上文所述之圖5之記憶體頁面會傾向遠大於在運行時間期間由作業系統引用的頁面(其傳統上為4kB大小)。因此,OS、OS執行個體或VMM中之任一者可經設計以辨識較小(例如4kB)頁面之存在,該等頁面在運行時間期間可明確地由OS或OS執行個體呼叫且適配至圖5之快取系統之較大記憶體頁面中。
藉由如此進行,OS或OS執行個體係自由地基於正常/傳統運行時間操作來引用此類較小頁面,該操作包括例如將某些較小頁面從系統記憶體降級至大量儲存器、以及將某些較小頁面從大量儲存器升級至系統記憶體。一般而言,系統硬體(例如記憶體管理單元(MMU)及/或變換後備緩衝區(TLB)邏輯電路系統)可經設計以將實體位址提供給相同應用(例如相同軟體執行緒及虛擬位址範圍)之較小頁面,而使得其等會映射至一相同的較大記憶體頁面,且該較大記憶體頁面用於如上文參照圖5所述之記憶體側QoS處理。
將圖5之增進QOS方法與標準QOS方法相較,請注意,傳統上若期望一快取記憶體有不同QOS,會將不同的CPU快取方式或不同的CPU快取方式群組指派給各個QOS群組。快取傾向於具有小於16個方式,因此僅約16個QOS群組係可能的。相比之下,藉由圖5之增進方法(使用重新映射表的基於位址之QOS)允許非常大量之QOS群組。可於快取中的每一「頁面」具有不同的QOS群組。而為了屬於一頁面群組,係由頁面群組中之「頁面」的記憶體範圍來分配記憶體。此等頁面群組可接著以建立期望之正確整體QOS之方式指派給快取記憶體中之「頁面」。
圖6提供一運算系統600(例如,智慧型手機、平板電腦、膝上型電腦、桌上型電腦、伺服器電腦、等等)之一示例性描繪。如圖6中所觀察的,基本運算裝置600可包括中央處理單元601(其可包括,例如,複數個通用處理核心615_1至615_X)以及安置於多核心處理器或應用處理器上之主記憶體控制器617、系統記憶體602、顯示器603(例如,觸控螢幕、平面面板)、區域有線點對點鏈結(例如,USB)介面604、各種網路I/O功能605(諸如乙太網路介面及/或蜂巢式數據機子系統)、無線區域網路(例如,WiFi)介面606、無線點對點鏈結(例如,藍芽)介面607以及全球定位系統介面608、各種感測器609_1至609_Y、一或多個攝影機610、電池611、電力管理控制單元612、揚聲器及麥克風613以及音訊編碼器/解碼器614。
一應用處理器或多核心處理器650可包括其CPU 601中之一或多個通用處理核心615、一或多個圖形處理單元616、一記憶體管理功能617(例如,一記憶體控制器)以及一I/O控制功能618。通用處理核心615典型執行運算系統之系統與應用軟體。圖形處理單元616典型執行圖形密集功能,例如,以產生顯示器603上呈現之圖形資訊。記憶體管理功能617與系統記憶體602介接以把資料寫入/讀取至/自系統記憶體602。
系統/主記憶體602可以被實施作為具有諸如上方詳述之記憶體側快取310的一「封裝內」記憶體側快取之多層級系統記憶體。其他組件(例如,一個或多個高效能協同處理器)之外部記憶體也可以具有如上詳述的一「封裝內」記憶體側快取。
觸控螢幕顯示器603、通訊介面604至607、GPS介面608、感測器609、(該等)攝影機610、以及揚聲器/麥克風編解碼器613、614之每一者皆可視為有關整體運算系統之各種不同的I/O(輸入及/或輸出)形式,其亦包括,若適合的話,一整合周邊裝置(例如,一或多個攝影機610)。根據實施例,此等各種不同的I/O組件可整合於應用處理器/多核心處理器650上、或者可位於晶粒外或應用處理器/多核心處理器650之封裝體外側。電力管理控制單元612大體上控制系統600之功率消耗。
本發明之實施例可包括如上文所闡述之各種程序。此等程序可以機器可執行指令來實施。此等指令可用來致使通用或專用處理器進行某些程序。替代地,這些程序可藉由還有用以執行此等程序之固線式邏輯電路系統或可程式化邏輯電路系統(例如,FPGA、PLD)之特定/客製化硬體組件、或藉由程式化電腦組件及客製化硬體組件之任何組合來執行。
本發明之元件亦可為用以儲存機器可執行指令之一機器可讀媒體。機器可讀媒體可包括但不限於軟式磁碟、光碟、CD-ROMs、及磁光碟、快閃記憶體、ROMs、RAMs、EPROMs、EEPROMs、磁或光卡、傳播媒體或適用於儲存電子指令之其他種類的媒體/機器可讀媒體。舉例來說,本發明可作為電腦程式加以下載,其可藉由體現於載波或其他傳播媒體中的資料信號經由通訊鏈結(例如,數據機或網路連接)自遠端電腦(例如,伺服器)傳遞至請求電腦(例如,客戶端)。
上述說明書中,本發明已就其特定示例性實施例來說明。然而,將顯而易見的是,可在不背離如所附申請專利範圍中所闡述之本發明之較廣泛精神及範疇的情況下在說明書中進行各種修改及變化。因此,應在例示性意義上而非限制性意義上看待說明書和圖式。
100:單一封裝體
101:CPU SOC
101_1,101_2:單晶片系統(SOC)
102:CPU處理核心
103:網路
104:末級快取記憶體(LLC)
105:主記憶體控制器(MC)
106:雙倍資料速率(DDR)記憶體通道,DDR記憶體通道
107:記憶體模組,外部DRAM記憶體模組
206:DDR記憶體通道,記憶體通道,DDR
208:DRAM,記憶體側快取(MSC),DRAM記憶體側快取,外部記憶體側快取,外部記憶體模組,記憶體側快取模組,外部DRAM記憶體側快取模組解決方案
209:記憶體模組,NVRAM記憶體模組,NVRAM記憶體,NVRAM記憶體空間,NVRAM
306:記憶體通道,外部記憶體通道
308:外部記憶體側快取,記憶體側快取(MSC),外部記憶體模組,記憶體側快取模組,DRAM記憶體側快取模組,第2層級記憶體側快取模組,第2層級記憶體側快取,第2層級快取,第2層級記憶體模組,DRAM記憶體側快取模組解決方案,外部DRAM快取存取,DRAM記憶體模組
309:NVRAM記憶體模組,NVRAM
310:DRAM記憶體側快取,記憶體側快取,eDRAM記憶體側快取,記憶體側快取晶粒,NVDIMM-P介面,記憶體側快取組件,記憶體側快取功能,eDRAM記憶體側快取功能,MSC
311:SOC通訊介面,無次序介面,介面,NVDIMM-P介面,SOC介面
312:嵌入式DRAM,eDRAM,eDRAM快取,第一層級快取,快取記憶體
313:內部快取命中/未命中邏輯,命中/未命中邏輯,快取命中/未命中邏輯
314:後端介面,後端邏輯,後端邏輯介面,後端邏輯電路系統,DDR
408:外部記憶體,MSC
409:外部記憶體,NVRAM
410:記憶體側快取功能,記憶體側快取(MSC)
411:介面
412:eDRAM
413:命中/未命中邏輯
414:後端邏輯
415:半導體晶片,後端邏輯晶片
416:介面
512,512a,512b,512c,512d:第一層級快取,快取,快取記憶體
515,515a,515b,515c,515d:頁面,快取頁面
517,517a,517c,517d:系統記憶體,記憶體,快取記憶體
518:頁面群組
518_1:頁面群組
518_1a:2M頁面群組
518_1b:1M頁面群組
518_1c:256k頁面群組
518_1d:256k頁面群組
518_2:頁面群組
518_2a:2M頁面群組
518_2b:1M頁面群組
518_2c:256k頁面群組
518_2d:256k頁面群組
518_3:頁面群組
518_3a:2M頁面群組
518_3b:1M頁面群組
518_3c:256k頁面群組
518_3d:256k頁面群組
519,519a,519b,519c,519d:記憶體頁面,頁面
520:頁面對
600:系統
601:中央處理單元,CPU
602:系統記憶體,系統/主記憶體
603:顯示器,觸控螢幕顯示器
604:區域有線點對點鏈結介面,USB介面,通訊介面,USB
605:網路I/O功能,通訊介面
606:無線區域網路介面,WiFi介面,通訊介面,WIFI
607:無線點對點鏈結介面,藍芽介面,通訊介面,藍芽
508,608:全球定位系統介面,GPS介面,GPS
609,609_1~609_Y:感測器
610:攝影機
611:電池
612:電力管理控制單元,電力管理
613:揚聲器及麥克風,揚聲器/麥克風編解碼器
614:音訊編碼器/解碼器,揚聲器/麥克風編解碼器,編解碼器,揚聲器/麥克風
615,615_1~615_X:通用處理核心,CPU
616:圖形處理單元,GPU
617:主記憶體控制器(MC),記憶體管理功能
618:I/O控制功能,I/O
620:非依電性儲存器
650:應用處理器或多核心處理器,應用處理器/多核心處理器,攝影機
655:網路
從下列詳細說明連同下列圖式可獲得對本發明之較佳了解,其中:
圖1展示具有多個單晶片系統SOC及對應外部記憶體之一中央處理單元CPU封裝體(先前技術);
圖2展示出具有一外部記憶體側快取的一記憶體(先前技術);
圖3a展示具有一內封裝記憶體側快取之一記憶體實施;
圖3b展示具有一內封裝記憶體側快取之另一記憶體實施;
圖4展示具有一個別後端邏輯晶片之一內封裝記憶體側快取的一記憶體;
圖5a、5b、5c及5d展示示例性快取及記憶體組態;
圖6展示運算系統。
306:記憶體通道,外部記憶體通道
308:外部記憶體側快取,記憶體側快取(MSC),外部記憶體模組,記憶體側快取模組,DRAM記憶體側快取模組,第2層級記憶體側快取模組,第2層級記憶體側快取,第2層級快取,第2層級記憶體模組,DRAM記憶體側快取模組解決方案,外部DRAM快取存取,DRAM記憶體模組
309:NVRAM記憶體模組
310:DRAM記憶體側快取,記憶體側快取,eDRAM記憶體側快取,記憶體側快取晶粒,NVDIMM-P介面,則記憶體側快取組件,記憶體側快取功能,eDRAM記憶體側快取功能
311:SOC通訊介面,無次序介面,介面,NVDIMM-P介面,SOC介面
312:嵌入式DRAM,eDRAM,eDRAM快取,第一層級快取,快取記憶體
313:內部快取命中/未命中邏輯,命中/未命中邏輯,快取命中/未命中邏輯
314:後端介面,後端邏輯,後端邏輯介面,後端邏輯電路系統
Claims (15)
- 一種運算設備,其包含: 一半導體晶片封裝體,其包括: a)一單晶片系統(SOC),該SOC包含一記憶體控制器; b)至一外部記憶體的一介面; c)一記憶體側快取,其包含耦接於該記憶體控制器與至該外部記憶體之該介面之間的嵌入式動態隨機存取記憶體(eDRAM),該eDRAM用以快取該外部記憶體之較頻繁使用的項目;以及, d)在該記憶體控制器與該記憶體側快取之間的無次序介面,該無次序介面用以從該記憶體控制器發出記憶體存取請求至該記憶體側快取。
- 如請求項1之運算設備,其中該記憶體側快取係在與該SOC分開的一半導體晶片上實施。
- 如請求項2之運算設備,其中至該外部記憶體之該介面係整合於與該記憶體側快取相同的半導體晶片上。
- 如請求項2之運算設備,其中至該外部記憶體之該介面係整合於與該記憶體側快取及該SOC不同之一半導體晶片上。
- 如請求項2之運算設備,其中該半導體晶片封裝體包含映射邏輯電路系統,其用以將該記憶體側快取中之一頁面映射至該外部記憶體中之一或多個頁面群組。
- 一種運算設備,其包含: 一CPU模組,其包含: a)一經封裝之SOC,該SOC包含一記憶體控制器; b)至一外部記憶體的一介面; c)一記憶體側快取,其包含耦接於該記憶體控制器與至該外部記憶體之該介面之間的eDRAM,該eDRAM用以快取該外部記憶體之較頻繁使用的項目; d)在該記憶體控制器與該記憶體側快取之間的一無次序介面,該無次序介面用以從該記憶體控制器發出記憶體存取請求至該記憶體側快取;以及, (e)電氣互連件,其用以將該CPU模組連接至一系統主機板。
- 如請求項6之運算設備,其中該記憶體側快取係在與該SOC分開的一半導體晶片上實施。
- 如請求項7之運算設備,其中至該外部記憶體之該介面係整合於與該記憶體側快取相同的半導體晶片上。
- 如請求項7之運算設備,其中至該外部記憶體之該介面係整合於與該記憶體側快取及該SOC不同之一半導體晶片上。
- 如請求項7之運算設備,其中該CPU模組包含映射邏輯電路系統,其用以將該記憶體側快取中之一頁面映射至該外部記憶體中之一或多個頁面群組。
- 一種運算系統,其包括: a)一半導體晶片封裝體及/或CPU模組,其包含: i)一SOC,該SOC包含一記憶體控制器; ii)至一外部記憶體之一介面 iii)一記憶體側快取,其包含耦接於該記憶體控制器與至該外部記憶體之該介面之間的eDRAM,該eDRAM用以快取該外部記憶體之較頻繁使用的項目;以及, iv)在該記憶體控制器與該記憶體側快取之間的一無次序介面,該無次序介面用以從該記憶體控制器發出記憶體存取請求至該記憶體側快取;以及, b)一網路連接介面。
- 如請求項11之運算系統,其中該記憶體側快取係在與該SOC分開的一半導體晶片上實施。
- 如請求項12之運算系統,其中至該外部記憶體之該介面係整合於與該記憶體側快取相同的半導體晶片上。
- 如請求項12之運算系統,其中至該外部記憶體之該介面係整合於與該記憶體側快取及該SOC不同之一半導體晶片上。
- 如請求項12之運算系統,其中該半導體晶片封裝體包含映射邏輯電路系統,其用以將該記憶體側快取中之一頁面映射至該外部記憶體中之一或多個頁面群組。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/721,045 US20200125495A1 (en) | 2019-12-19 | 2019-12-19 | Multi-level memory with improved memory side cache implementation |
| US16/721,045 | 2019-12-19 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202125773A TW202125773A (zh) | 2021-07-01 |
| TWI883041B true TWI883041B (zh) | 2025-05-11 |
Family
ID=70281143
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW109130772A TWI883041B (zh) | 2019-12-19 | 2020-09-08 | 具有增進記憶體側快取實施之多層記憶體 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20200125495A1 (zh) |
| EP (1) | EP3839747B1 (zh) |
| KR (1) | KR20210079175A (zh) |
| TW (1) | TWI883041B (zh) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111857016A (zh) * | 2020-08-07 | 2020-10-30 | 航天科工微电子系统研究院有限公司 | 一种应用于引信控制系统的SoC芯片结构 |
| US12008248B2 (en) * | 2021-07-13 | 2024-06-11 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for utilization aware memory allocation |
| KR20230033090A (ko) * | 2021-08-27 | 2023-03-08 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법 |
| EP4325363A4 (en) | 2021-10-25 | 2024-08-28 | Samsung Electronics Co., Ltd. | Device for managing cache corruption, and operation method thereof |
| US12067237B2 (en) * | 2021-12-29 | 2024-08-20 | Advanced Micro Devices, Inc. | Flexible memory system |
| US12423242B2 (en) | 2022-01-07 | 2025-09-23 | Samsung Electronics Co., Ltd. | Apparatus and method for cache-coherence |
| CN114051056B (zh) * | 2022-01-13 | 2022-05-10 | 阿里云计算有限公司 | 数据缓存及读取方法、数据存取系统 |
| US12079516B2 (en) * | 2022-08-30 | 2024-09-03 | Micron Technology, Inc. | Host-preferred memory operation |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080291756A1 (en) * | 2007-02-23 | 2008-11-27 | Samsung Electronics Co. Ltd. | Semiconductor memory device of controlling bit line sense amplifier |
| US20140181387A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Hybrid cache |
| US20160335187A1 (en) * | 2015-05-11 | 2016-11-17 | Intel Corporation | Create page locality in cache controller cache allocation |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
| US20110252187A1 (en) * | 2010-04-07 | 2011-10-13 | Avigdor Segal | System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory |
| BR112014013390A2 (pt) * | 2011-12-20 | 2017-06-13 | Intel Corp | redução de potência parcial dinâmica de cache de lado de memória em hierarquia de memória de 2 níveis |
| US9176862B2 (en) * | 2011-12-29 | 2015-11-03 | Sandisk Technologies Inc. | SLC-MLC wear balancing |
| US10956324B1 (en) * | 2013-08-09 | 2021-03-23 | Ellis Robinson Giles | System and method for persisting hardware transactional memory transactions to persistent memory |
| US10152421B2 (en) * | 2015-11-23 | 2018-12-11 | Intel Corporation | Instruction and logic for cache control operations |
| US10089233B2 (en) * | 2016-05-11 | 2018-10-02 | Ge Aviation Systems, Llc | Method of partitioning a set-associative cache in a computing platform |
| US10296457B2 (en) * | 2017-03-30 | 2019-05-21 | Intel Corporation | Reducing conflicts in direct mapped caches |
| US20190095329A1 (en) * | 2017-09-27 | 2019-03-28 | Intel Corporation | Dynamic page allocation in memory |
| US10649927B2 (en) * | 2018-08-20 | 2020-05-12 | Intel Corporation | Dual in-line memory module (DIMM) programmable accelerator card |
| US11397683B2 (en) * | 2019-09-20 | 2022-07-26 | Micron Technology, Inc. | Low latency cache for non-volatile memory in a hybrid DIMM |
-
2019
- 2019-12-19 US US16/721,045 patent/US20200125495A1/en not_active Abandoned
-
2020
- 2020-09-04 EP EP20194493.1A patent/EP3839747B1/en active Active
- 2020-09-08 TW TW109130772A patent/TWI883041B/zh active
- 2020-09-23 KR KR1020200123028A patent/KR20210079175A/ko active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080291756A1 (en) * | 2007-02-23 | 2008-11-27 | Samsung Electronics Co. Ltd. | Semiconductor memory device of controlling bit line sense amplifier |
| US20140181387A1 (en) * | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Hybrid cache |
| US20160335187A1 (en) * | 2015-05-11 | 2016-11-17 | Intel Corporation | Create page locality in cache controller cache allocation |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202125773A (zh) | 2021-07-01 |
| EP3839747B1 (en) | 2025-05-28 |
| KR20210079175A (ko) | 2021-06-29 |
| US20200125495A1 (en) | 2020-04-23 |
| EP3839747A1 (en) | 2021-06-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI883041B (zh) | 具有增進記憶體側快取實施之多層記憶體 | |
| US10719443B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy | |
| US11132298B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes | |
| US9317429B2 (en) | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels | |
| US10592419B2 (en) | Memory system | |
| US20180032429A1 (en) | Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators | |
| US20180088853A1 (en) | Multi-Level System Memory Having Near Memory Space Capable Of Behaving As Near Memory Cache or Fast Addressable System Memory Depending On System State | |
| US9990143B2 (en) | Memory system | |
| US10191664B2 (en) | Memory system | |
| US20190042415A1 (en) | Storage model for a computer system having persistent system memory | |
| US9977604B2 (en) | Memory system | |
| US10445003B2 (en) | Memory system for dualizing first memory based on operation mode | |
| US10466909B2 (en) | Memory system | |
| US20170109066A1 (en) | Memory system | |
| US20170109074A1 (en) | Memory system | |
| EP3506112A1 (en) | Multi-level system memory configurations to operate higher priority users out of a faster memory level | |
| US20170109067A1 (en) | Memory system | |
| US20170109086A1 (en) | Memory system | |
| US20170109071A1 (en) | Memory system | |
| US20170109069A1 (en) | Memory system | |
| US20170109068A1 (en) | Memory system |