CN108345548A - 替换高速缓存上的数据的方法和高速缓存管理器 - Google Patents
替换高速缓存上的数据的方法和高速缓存管理器 Download PDFInfo
- Publication number
- CN108345548A CN108345548A CN201810038097.3A CN201810038097A CN108345548A CN 108345548 A CN108345548 A CN 108345548A CN 201810038097 A CN201810038097 A CN 201810038097A CN 108345548 A CN108345548 A CN 108345548A
- Authority
- CN
- China
- Prior art keywords
- cache
- refresh
- bank
- replacement
- conflict
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000015654 memory Effects 0.000 claims abstract description 140
- 238000003860 storage Methods 0.000 claims abstract description 29
- 230000008859 change Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 14
- 238000011010 flushing procedure Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F2212/1021—Hit rate improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开替换高速缓存上的数据的方法和高速缓存管理器。提供一种用于替换易失性存储器高速缓存上的数据的方法。所述易失性存储器高速缓存包括一个或多个存储体,并且每个存储体包括多个存储线。所述方法包括:识别将被替换的所述多个存储线中的至少一个的替换ID;识别将被刷新的一个存储体的刷新存储体ID;确定替换ID和刷新存储体ID之间是否存在冲突;如果存在冲突,则选择新的替换ID。
Description
本申请要求于2017年1月25日提交的第60/450,505号美国临时专利申请和于2017年3月13日提交的第15/457,813号美国非临时专利申请的优先权和权益,所述美国专利申请的全部内容通过引用包含于此。
技术领域
根据本发明的实施例的一个或多个方面涉及易失性存储器高速缓存,更具体地讲,涉及用于易失性存储器高速缓存的替换策略。
背景技术
现有的高速缓存替换策略一般具有两个主要设计考虑,即实现最佳高速缓存命中率并且维持合理的实施成本。这些设计考虑通常假设使用片上SRAM高速缓存。因为SRAM高速缓存是非易失性存储器(NVM),所以刷新通常不用于SRAM高速缓存。为了降低实施成本和/或为了减小芯片的大小,存在在片上高速缓存中使用DRAM的趋势。因为DRAM高速缓存是易失性存储器,所以刷新被用于DRAM高速缓存。此外,SRAM高速缓存通常比DRAM高速缓存快,但是DRAM高速缓存通常比SRAM高速缓存便宜,并且通常具有比SRAM高速缓存高的每单位面积的存储容量。
发明内容
本公开的实施例的多个方面针对使用刷新的易失性存储器高速缓存的替换策略。根据本发明的实施例,当替换ID和刷新存储体ID之间存在冲突时,可改变替换ID或者刷新存储体ID以避免延迟。更具体地讲,本发明的一些实施例可识别替换ID以及刷新存储体ID,并且当存在冲突时,本发明的实施例可选择新的替换ID以避免由冲突引起的延迟。此外,本发明的一些实施例可识别替换ID以及刷新存储体ID,并且当存在冲突时,本发明的实施例可检查是否可以改变刷新存储体ID,并且如果可以改变刷新存储体ID,则选择新刷新存储体ID以避免由冲突引起的延迟。
根据本发明的实施例,提供一种替换易失性存储器高速缓存上的数据的方法,所述易失性存储器高速缓存包括一个或多个存储体,每个存储体包括多个存储线,所述方法包括:识别将被替换的所述多个存储线中的至少一个的替换ID;识别将被刷新的一个存储体的刷新存储体ID;确定替换ID和刷新存储体ID之间是否存在冲突;如果存在冲突,则选择新的替换ID。
所述易失性存储器高速缓存可包括动态随机存取存储器(DRAM)高速缓存。
可通过所述易失性存储器高速缓存的高速缓存管理器来执行所述方法。
所述高速缓存管理器可包括:识别替换ID的替换管理器;识别刷新存储体ID的刷新控制器;确定是否存在冲突的比较器。
所述替换管理器还可基于从所述比较器接收的替换反馈来选择新的替换ID。
根据本发明的另一实施例,提供一种替换易失性存储器高速缓存上的数据的方法,所述易失性存储器高速缓存包括一个或多个存储体,每个存储体包括多个存储线,所述方法包括:识别将被替换的所述多个存储线中的至少一个的替换ID;识别将被刷新的一个存储体的第一刷新存储体ID;确定替换ID和第一刷新存储体ID之间是否存在冲突;如果存在冲突,则确定是否能够改变第一刷新存储体ID;如果冲突存在并且能够改变第一刷新存储体ID,则选择第二刷新存储体ID。
所述易失性存储器高速缓存可包括动态随机存取存储器(DRAM)高速缓存。
可通过所述易失性存储器高速缓存的高速缓存管理器来执行所述方法。
所述高速缓存管理器可包括:识别替换ID的替换管理器;识别第一刷新存储体ID的刷新控制器;确定是否存在冲突的比较器。
所述刷新控制器还可基于从所述比较器接收的刷新反馈来选择第二刷新存储体ID。
所述方法还可包括:如果存在冲突并且不能改变第一刷新存储体ID,则选择新的替换ID。
可通过所述易失性存储器高速缓存的高速缓存管理器来执行所述方法。所述高速缓存管理器可包括:识别替换ID的替换管理器;识别第一刷新存储体ID的刷新控制器;确定是否存在冲突的比较器。
当选择第二刷新存储体ID时,可推迟第一刷新存储体ID的刷新,直到第一刷新存储体ID的下一次定期调度的刷新。
当选择第二刷新存储体ID时,可推迟第一刷新存储体ID的刷新,直到第二刷新存储体ID将被刷新的时刻。
根据本发明的另一实施例,提供一种用于管理包括易失性存储器高速缓存的高速缓存的高速缓存管理器,所述易失性存储器高速缓存包括一个或多个存储体,每个存储体包括多个存储线,所述高速缓存管理器包括:替换管理器,识别将被替换的所述多个存储线中的至少一个的替换ID;刷新控制器,识别将被刷新的一个存储体的刷新存储体ID;比较器,确定替换ID和刷新存储体ID之间是否存在冲突,并且如果存在冲突,则将替换反馈发送到所述替换管理器或者将刷新反馈发送到所述刷新控制器,替换反馈使得所述替换管理器选择新的替换ID,刷新反馈使得刷新控制器选择新的刷新存储体ID。
所述易失性存储器高速缓存可包括动态随机存取存储器(DRAM)高速缓存。
所述比较器还可被配置为:如果存在冲突,则确定是否能够改变刷新存储体ID;如果能够改变刷新存储体ID,则将刷新反馈发送到所述刷新控制器;如果不能改变刷新存储体ID,则将替换反馈发送到所述替换管理器。
所述高速缓存还可包括非易失性存储器。
附图说明
将参考说明书、权利要求和附图来领会和理解本发明的这些和其他特征以及方面,其中:
图1是根据本发明的实施例的高带宽存储器堆叠件的透视图;
图2是根据本发明的实施例的使用高带宽存储器堆叠件作为3级高速缓存的处理系统的框图;
图3是根据本发明的实施例的高带宽存储器堆叠件的框图;
图4示出根据一个实施例的包括背面DRAM高速缓存(backside DRAM cache)的非易失性双列直插存储器模块(NVDIMM)的示例;
图5是根据本发明的实施例的逻辑裸片的框图;
图6是根据本发明的另一实施例的逻辑裸片的框图;
图7是根据本发明的另一实施例的逻辑裸片的框图;
图8是根据本发明的另一实施例的NVM/高速缓存控制器的框图;
图9是示出根据本发明的实施例的用于易失性存储器高速缓存的替换策略的方法的流程图;
图10是示出根据本发明的实施例的用于易失性存储器高速缓存的替换策略的另一方法的流程图;
图11是示出根据本发明的实施例的用于易失性存储器高速缓存的替换策略的另一方法的流程图。
具体实施方式
根据本发明的实施例,当替换ID和刷新存储体ID之间存在冲突时,可改变替换ID或者刷新存储体ID以避免延迟。更具体地讲,本发明的一些实施例可识别替换ID以及刷新存储体ID,并且当存在冲突时,本发明的实施例可选择新的替换ID以避免由冲突引起的延迟。此外,本发明的一些实施例可识别替换ID以及刷新存储体ID,并且当存在冲突时,本发明的实施例可检查是否能够改变刷新存储体ID,并且如果能够改变刷新存储体ID,则选择新的刷新存储体ID以避免由冲突引起的延迟。
以下结合附图阐述的具体实施方式意在作为根据本发明提供的用于易失性存储器高速缓存的刷新感知替换策略的示例性实施例的描述,并且不意表现可构建或利用本发明的唯一形式。本描述结合所示的实施例阐述本发明的特征。然而,将理解,相同的或等同的功能和结构可通过也意在包含在本发明的精神和范围内的不同的实施例来实现。如这里其他地方所示,相同的元件标号意在表示相同的元件或特征。
于2016年11月11日提交的名称为“Byte-Addressable Flash-Based Module”的第15/349,949号美国专利申请、于2016年9月21日提交的名称为“HBM with In-MemoryCache”的第15/272,339号美国专利申请以及于2016年10月4日提交的名称为“System andMethod for operating a DDR-Compatible Asynchronous Memory module”的第15/285,423号美国专利申请的全部内容通过引用整体包含于此。
高带宽存储器(HBM)是高性能三维(3D)堆叠的动态随机存取存储器(DRAM)。第二代高带宽存储器可包括多达每个堆叠件8个裸片,并且提供高达2GT/s(每秒千兆传输)的引脚传输速率。接口可包括总共1024比特带宽存取的8个通道,每个通道128比特宽。第二代高带宽存储器能够达到每个封装件256GB/s存储器带宽,并且可具有高达每个封装件8GB的存储容量。第二代高带宽存储器的接口可符合由联合电子装置工程协会(JEDEC)接受的标准。
图1是根据本发明的实施例的高带宽存储器堆叠件的透视图。参考图1,HBM堆叠件105的物理配置可包括逻辑裸片110以及包括堆叠在逻辑裸片110顶部的多个DRAM裸片(例如,8个这样的裸片)的三维DRAM或者“DRAM堆叠件”115。利用硅通孔(TSV)在堆叠件内形成互连。作为可将DRAM通道接口基本不变地在HBM的外部接口呈现给主机处理器的结果,其他HBM堆叠件可在逻辑裸片中包括连接电路和信号调理电路。
图2是根据本发明的实施例的使用高带宽存储器堆叠件作为3级高速缓存的处理系统的框图。参考图2,HBM堆叠件105可连接到主机处理器155(例如,CPU或GPU)。主机处理器155可包括多个核(C)160,每个核160具有各自的1级(L1)高速缓存150。2级(L2)高速缓存120可连接到1级(L1)高速缓存150,并且第一存储器控制器(MC 1)125可将接口提供给片外主存储器130。第二存储器控制器(MC 2)135可将接口提供给HBM堆叠件105。HBM堆叠件105可包括在HBM堆叠件105的逻辑裸片中的高速缓存管理器(CM)。具有集成的高速缓存管理器的HBM堆叠件105可由主处理器155作为3级高速缓存(或者,例如,在还具有3级高速缓存的系统中作为4级高速缓存)来使用。HBM接口145可以是JEDEC兼容接口,即,它可提供由JEDEC标准指定的导体和信号协议。在一个实施例中,HBM堆叠件105和主机处理器155可被布置在硅插入件140上。硅插入件140可连接HBM堆叠件105以及主机处理器155。
图3是根据本发明的实施例的高带宽存储器(HBM)堆叠件的框图。参考图3,在一些实施例中,HBM堆叠件105可包括逻辑裸片110,逻辑裸片110通过被称为通道(图3中示出为Ch0至Ch7)的8个内部接口连接到DRAM堆叠件115中(例如,参见图1)的DRAM。每个级别可称为裸片。例如,Ch0和Ch1可位于DRAM裸片0,Ch2和Ch3可位于DRAM裸片1,Ch4和Ch5可位于DRAM裸片2,并且Ch6和Ch7可位于DRAM裸片3。
在所有DRAM裸片下面,存在可以添加逻辑的逻辑裸片。逻辑裸片可与第二存储器控制器135(例如,参考图2)通信。逻辑裸片和第二存储器控制器135之间的接口可由JEDEC标准定义。
根据本发明的实施例,可在逻辑裸片上添加某个高速缓存管理逻辑,以使作为整体本身的HBM可作为自我管理高速缓存。在这些实施例中,主机处理器155可以不需要做另外工作以控制高速缓存。
图4示出根据一个实施例的包括背面DRAM高速缓存(backside DRAM cache)的NVDIMM的示例。参考图4,NVDIMM 201a包括非易失性存储器(NVM)210、背面DRAM高速缓存211a以及NVM/高速缓存控制器220。NVDIMM 201a的数据缓冲器230经由数据(DQ)总线提供由主存储器控制器请求的NVDIMM 201a的状态的数据。NVDIMM 201a的寄存器时钟驱动器(RCD)231将产生命令序列的控制和地址(CA)提供给数据缓冲器230。背面DRAM高速缓存211a连接到NVM/高速缓存控制器220,并且可经由NVM/高速缓存控制器220接收来自数据缓冲器230的数据以及来自RCD 231的控制和地址。这样禁止了由主存储器控制器对背面DRAM高速缓存211a的直接存取。主机存储器控制器可以在直接模式下访问背面DRAM高速缓存211a,但是不能在高速缓存模式下直接访问背面DRAM高速缓存211a。背面DRAM高速缓存211a的存取可需要存储器控制器和存储器模块之间的握手,从而导致比DRAM的传统的存取时间更长的存取时间。
当使用DRAM作为高速缓存(例如,8GB HBM)时,刷新的影响会是不可忽略的。这意味着,如果选择高速缓存线被逐出或插入,并且所选择的高速缓存线也在刚开始刷新的存储体中,则在所选择的高速缓存线能够被逐出或插入之前会需要延迟。这种等待可导致随后操作的更高的排队延迟。
根据本发明的实施例的刷新感知高速缓存替换策略可建立在现有的替换策略之上。例如,可修改现存的替换策略以将本发明的实施例包含在其中。本发明的实施例可建立在基于LRU(基于最近最少使用)的替换策略、随机替换策略、FIFO(先进先出)替换策略、MRU(非最近使用)替换策略等中的任意策略之上。
典型的替换策略检查替换ID。根据本发明的实施例的刷新感知高速缓存替换策略检查替换ID和刷新存储体ID二者。基于替换ID和刷新存储体ID,本发明的实施例可决定更好的线来进行替换或者更好的存储体来进行刷新。
根据本发明的一些实施例,如果替换ID与刷新存储体ID冲突,意味着将被替换的线将受到刷新的影响,则将选择下一最佳的替换ID。根据本发明的一些实施例,如果替换ID与刷新存储体ID冲突,则将选择下一刷新存储体来进行刷新。推迟的存储体可在下一刷新存储体原本被刷新的时刻刷新,或者可被推迟直到它的下一次定期调度的刷新。
图5是根据本发明的实施例的逻辑裸片的框图。参考图5,逻辑裸片110(例如,参见图1至图3)包括高速缓存管理器600。高速缓存管理器600可管理易失性存储器高速缓存。高速缓存管理器600包括替换管理器300、刷新控制器400以及比较器500。易失性存储器高速缓存可以是3D DRAM高速缓存(例如,参见图1的DRAM堆叠件115)。易失性存储器高速缓存可包括一个或多个存储体,并且每个存储体可包括多个存储线。
替换管理器300基于替换策略来确定(或识别)替换ID 320。替换管理器300将替换ID 320提供给比较器500。
刷新控制器400确定是否需要任何存储体的刷新。当需要刷新时,刷新控制器400基于刷新策略来确定(或识别)刷新存储体ID 420。刷新控制器400将刷新存储体ID 420提供给比较器500。此外,刷新控制器400输出刷新存储体ID 420作为最终的刷新存储体ID460。
当不需要刷新时,刷新控制器400可将指示不需要刷新的信号发送到比较器500,而不是发送刷新存储体ID 420,但是本发明不限于此。例如,当不需要刷新时,刷新控制器400可以不向比较器500发送任何内容。
比较器500比较替换ID 320和刷新存储体ID 420。比较器500确定替换ID 320和刷新存储体ID 420之间是否存在冲突。比较器500将指示是否存在冲突的替换反馈340提供给替换管理器300。根据一个实施例,替换反馈340仅在存在冲突时由比较器500提供,而在其他情况下不提供,但是本发明不限于此。例如,如果不存在冲突,则比较器500可提供第一水平的替换反馈340,并且如果冲突存在,则比较器500可提供第二水平的替换反馈340。
当替换管理器300接收到指示不存在冲突的替换反馈340(或者替换管理器300没有接收到替换反馈340)时,替换管理器300输出替换ID 320作为最终的替换ID 360。
当替换管理器300接收到指示存在冲突的替换反馈340时,替换管理器300基于替换策略选择下一替换ID并且输出下一替换ID作为最终的替换ID360。下一替换ID可以是下一最佳替换ID、下一最旧替换ID等。
换句话说,替换管理器300基于从比较器500接收的替换反馈340来选择新的替换ID。
图6是根据本发明的另一实施例的逻辑裸片的框图。参考图6,逻辑裸片112包括高速缓存管理器602。高速缓存管理器602可管理易失性存储器高速缓存。高速缓存管理器602包括替换管理器302、刷新控制器402以及比较器502。易失性存储器高速缓存可以是3DDRAM高速缓存(例如,参见图1的DRAM堆叠件115)。易失性存储器高速缓存可包括一个或多个存储体,并且每个存储体可包括多个存储线。
替换管理器302基于替换策略来确定(或识别)替换ID 322。替换管理器302将替换ID 322提供给比较器502。此外,替换管理器302输出替换ID322作为最终的替换ID 362。
刷新控制器402确定是否需要任何存储体的刷新。当需要刷新时,刷新控制器402基于刷新策略来确定(或识别)刷新存储体ID 422。刷新控制器402将刷新存储体ID 422提供给比较器502。
当不需要刷新时,刷新控制器402可将指示不需要刷新的信号发送到比较器502,而不是发送刷新存储体ID 422,但是本发明不限于此。例如,当不需要刷新时,刷新控制器402可以不向比较器502发送任何内容。
比较器502比较替换ID 322和刷新存储体ID 422。比较器502确定替换ID 322和刷新存储体ID 422之间是否存在冲突。比较器502将指示是否存在冲突的刷新反馈442提供给刷新控制器402。根据一个实施例,刷新反馈442仅在存在冲突时由比较器502提供,而在其他情况下不提供,但是本发明不限于此。例如,如果不存在冲突,则比较器502可提供第一水平的替换反馈442,并且如果存在冲突,则比较器502可提供第二水平的替换反馈442。
当刷新控制器402接收到指示不存在冲突的刷新反馈442(或者刷新控制器402没有接收到刷新反馈442)时,刷新控制器402输出刷新存储体ID 422作为最终的刷新存储体ID 462。
当刷新控制器402接收到指示存在冲突的刷新反馈442时,刷新控制器402确定刷新存储体ID 422是否能够被推迟(或改变),并且如果存储体ID 422能够被推迟(或改变),则刷新控制器402基于刷新策略选择下一刷新存储体ID并且输出下一刷新存储体ID作为最终的刷新存储体ID 462。下一刷新存储体ID可以是下一最佳刷新存储体ID、下一最旧刷新存储体ID等。
换句话说,刷新控制器402基于从比较器502接收的刷新反馈442来选择下一刷新存储体ID。
推迟的存储体可以在下一刷新存储体原本被刷新的时刻刷新,或者可以被推迟直到下一次定期调度的刷新。
图7是根据本发明的另一实施例的逻辑裸片的框图。参考图7,逻辑裸片114包括高速缓存管理器604。高速缓存604可管理易失性存储器高速缓存。高速缓存管理器604包括替换管理器304、刷新控制器404以及比较器504。易失性存储器高速缓存可以是3D DRAM高速缓存(例如,参见图1的DRAM堆叠件115)。易失性存储器高速缓存可包括一个或多个存储体,并且每个存储体可包括多个存储线。
替换管理器304基于替换策略来确定(或识别)替换ID 324。替换管理器304将替换ID 324提供给比较器504。
刷新控制器404确定是否需要任何存储体的刷新。当需要刷新时,刷新控制器404基于刷新策略来确定(或识别)刷新存储体ID 424。刷新控制器404将刷新存储体ID 424提供给比较器504。
当不需要刷新时,刷新控制器404可将指示不需要刷新的信号发送到比较器504,而不是发送刷新存储体ID 424,但是本发明不限于此。例如,当不需要刷新时,刷新控制器404可以不向比较器504发送任何内容。
比较器504比较替换ID 324和刷新存储体ID 424。比较器504确定替换ID 324和刷新存储体ID 424之间是否存在冲突。如果存在冲突,则比较器504确定刷新存储体ID 424是否能够被推迟。
如果刷新存储体ID 424能够被推迟并且存在冲突,则比较器504将刷新反馈444提供给刷新控制器404,以指示刷新存储体ID 424应该被改变。根据一个实施例,刷新反馈444仅在刷新存储体ID 424应该被改变时由比较器504提供,而在其他情况下不提供,但是本发明不限于此。例如,如果刷新存储体ID 424不应该被改变,则比较器504可提供第一水平的刷新反馈444,并且如果刷新存储体ID 424应该被改变,则比较器504可提供第二水平的刷新反馈444。
如果刷新存储体ID 424不能被推迟并且存在冲突,则比较器504将替换反馈344提供给替换管理器304以指示替换ID 324应该被改变。根据一个实施例,替换反馈344仅在替换ID 324应该被改变时由比较器504提供,而在其他情况下不提供,但是本发明不限于此。例如,如果替换ID 324不应该被改变,则比较器504可提供第一水平的替换反馈344,并且如果替换ID 324应该被改变,则比较器504可提供第二水平的替换反馈344。
当刷新控制器404接收到指示刷新存储体ID 424不应该被改变的刷新反馈444(或者刷新控制器404没有接收到刷新反馈444)时,刷新控制器404输出刷新存储体ID 424作为最终的刷新存储体ID 464。
当刷新控制器404接收到指示刷新存储体ID 424应该被改变的刷新反馈444时,刷新控制器404基于刷新策略选择下一刷新存储体ID,并且输出下一刷新存储体ID作为最终的刷新存储体ID 464。下一刷新存储体ID可以是下一最佳刷新存储体ID、下一最旧刷新存储体ID等。
换句话说,刷新控制器404基于从比较器504接收的刷新反馈444来选择下一刷新存储体ID。
推迟的存储体可以在下一刷新存储体原本被刷新的时刻刷新,或者可以被推迟直到下一次定期地调度的刷新。换句话说,当选择第二刷新存储体ID时,第一刷新存储体ID的刷新可被推迟直到第二刷新存储体ID将被刷新的时刻。
当替换管理器304接收到指示替换ID 324不应该被改变的替换反馈344(或者替换管理器304没有接收到替换反馈344)时,替换管理器304输出替换ID 324作为最终的替换ID364。
当替换管理器304接收到指示替换ID 324应该被改变的替换反馈344时,替换管理器304基于替换策略选择下一替换ID并且输出下一替换ID作为最终的替换ID 364。下一替换ID可以是下一最佳替换ID、下一最旧替换ID等。
换句话说,替换管理器304基于从比较器504接收的替换反馈344来选择新的替换ID。
图8是根据本发明的另一实施例的NVM/高速缓存控制器的框图。参考图8,NVM/高速缓存控制器220(参见图4)包括替换管理器306、刷新控制器406以及比较器506。NVM/高速缓存控制器220可管理易失性存储器高速缓存。易失性存储器高速缓存可以是背面DRAM高速缓存(例如,参见图4的背面DRAM高速缓存211a)。易失性存储器高速缓存可包括一个或多个存储体,并且每个存储体可包括多个存储线。
根据本发明的实施例,NVM/高速缓存控制器220的替换管理器306、刷新控制器406以及比较器506可分别以基本类似于图5的替换管理器300、刷新控制器400以及比较器500的方式来操作。因此,可省略其详细描述。
例如,比较器506可从替换管理器306接收替换ID 326并且可从刷新控制器406接收刷新存储体ID 426。比较器506可基于是否存在冲突来输出替换反馈346。替换管理器306可输出最终的替换ID 366并且刷新控制器406可输出最终的刷新存储体ID 466。
根据本发明的其他实施例,NVM/高速缓存控制器220的替换管理器306、刷新控制器406以及比较器506可以分别以基本类似于图6的替换管理器302、刷新控制器402以及比较器502的方式来操作。因此,可省略其详细描述。
例如,比较器506可从替换管理器306接收替换ID 326并且可从刷新控制器406接收刷新存储体ID 426。比较器506可基于是否存在冲突来输出刷新反馈446。替换管理器306可输出最终的替换ID 366并且刷新控制器406可输出最终的刷新存储体ID 466。
根据本发明的其他实施例,NVM/高速缓存控制器220的替换管理器306、刷新控制器406以及比较器506可以分别以基本类似于图7的替换管理器304、刷新控制器404以及比较器504的方式操作。因此,可省略其详细描述。
例如,比较器506可从替换管理器306接收替换ID 326并且可从刷新控制器406接收刷新存储体ID 426。当存在冲突并且刷新存储体ID 426能够被改变时,比较器506可输出刷新反馈446。当存在冲突并且刷新存储体ID 426不能被改变时,比较器506可输出替换反馈346。替换管理器306可输出最终的替换ID 366,并且刷新控制器406可输出最终的刷新存储体ID 466。
图9是示出根据本发明的实施例的用于易失性存储器高速缓存的替换策略的方法的流程图。易失性存储器高速缓存可包括一个或多个存储体。每个存储体可包括多个存储线。易失性存储器高速缓存可以是动态随机存取存储器(DRAM)高速缓存。
参考图9,根据本发明的一个实施例,在操作1000中,识别将被替换的所述多个存储线中的至少一个的替换ID。在操作1010中,识别将被刷新的一个存储体的刷新存储体ID。
在操作1020中,确定替换ID和刷新存储体ID之间是否存在冲突。在操作1030中,当确定不存在冲突时,不改变替换ID或刷新存储体ID。在操作1040中,当确定存在冲突时,选择新的替换ID。
可通过逻辑裸片上的高速缓存管理器来执行图9的方法(例如,参见图1至图3以及图5至图7)。此外,可由NVM/高速缓存控制器来执行图9的方法(例如,参见图4和图8)。
图10是示出根据本发明的实施例的用于易失性存储器高速缓存的替换策略的另一方法的流程图。易失性存储器高速缓存可包括一个或多个存储体。每个存储体可包括多个存储线。易失性存储器高速缓存可以是动态随机存取存储器(DRAM)高速缓存。
参考图10,根据本发明的一个实施例,在操作1100中,识别将被替换的所述多个存储线中的至少一个的替换ID。在操作1110中,识别将被刷新的一个存储体的刷新存储体ID(例如,第一刷新存储体ID)。
在操作1120中,确定替换ID和刷新存储体ID之间是否存在冲突。在操作1130中,当确定不存在冲突时,不改变替换ID或刷新存储体ID。在操作1140中,当确定存在冲突时,确定是否能够改变刷新存储体ID。此外,当确定存在冲突并且不能改变刷新存储体ID时,在操作1130中,不改变替换ID或刷新存储体ID。当确定存在冲突并且能够改变刷新存储体ID时,在操作1150中,选择新的刷新存储体ID(例如,第二刷新存储体ID)。
可由逻辑裸片上的高速缓存管理器来执行图10的方法(例如,参见图1至图3以及图5至图7)。此外,可由NVM/高速缓存控制器来执行图10的方法(参见,例如图4和图8)。
图11是示出根据本发明的实施例的用于易失性存储器高速缓存的替换策略的另一方法的流程图。易失性存储器高速缓存可包括一个或多个存储体。每个存储体可包括多个存储线。易失性存储器高速缓存可以是动态随机存取存储器(DRAM)高速缓存。
参考图11,根据本发明的一个实施例,在操作1200中,识别将被替换的所述多个存储线中的至少一个的替换ID。在操作1210中,识别将被刷新的一个存储体的刷新存储体ID。
在操作1220中,确定替换ID和刷新存储体ID之间是否存在冲突。在操作1230中,当确定不存在冲突时,不改变替换ID或刷新存储体ID。在操作1240中,当确定存在冲突时,确定是否能够改变刷新存储体ID。当确定存在冲突并且能够改变刷新存储体ID时,在操作1250中,选择新的刷新存储体ID。当确定存在冲突并且不能改变刷新存储体ID时,在操作1260中,选择新的替换ID。
可由逻辑裸片上的高速缓存管理器来执行图11的方法(例如,参见图1至图3以及图5至图7)。此外,可由NVM/高速缓存控制器来执行图11的方法(参见,例如图4和图8)。
这样,根据本发明的实施例,当替换ID和刷新存储体ID之间存在冲突时,可以改变替换ID或刷新存储体ID以避免延迟。更具体地讲,本发明的一些实施例可识别替换ID和刷新存储体ID,并且当存在冲突时,本发明的实施例可选择新的替换ID以避免由冲突引起的延迟。此外,本发明的一些实施例可识别替换ID和刷新存储体ID,并且当存在冲突时,本发明的实施例可检查是否能够改变刷新存储体ID,并且如果能够改变刷新存储体ID,则选择新的刷新存储体ID以避免由冲突引起的延迟。
将理解,尽管这里可使用术语“第一”、“第二”、“第三”等描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开来。因此,在不脱离本发明的精神和范围的情况下,以下讨论的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
根据这里描述的本发明的实施例的相关装置或组件可利用任何适当的硬件(例如,专用集成电路)、固件(例如,DSP或FPGA)、软件或软件、固件和硬件的适当的组合来实现。例如,相关装置的各种组件可形成在一个集成电路(IC)或分开的IC芯片上。此外,相关装置的各种组件可在柔性印刷电路膜、载带封装(TCP)、印刷电路板(PCB)上实现,或者在与一个或多个电路和/或其他装置相同的基板上形成。此外,相关装置的各种组件可以是在一个或多个处理器上、在一个或多个计算装置上运行的进程或线程,所述进程或线程执行计算机程序指令并且与其他系统组件相互作用,以执行这里描述的各种功能。计算机程序指令存储在可使用标准存储装置(诸如,随机存取存储器(RAM))在计算装置中实现的存储器中。计算程序指令还可以存储在其他非暂时性计算机可读介质(诸如CD-ROM、闪存驱动器等)中。此外,在不脱离本发明的示例性实施例的精神和范围的情况下,本领域的技术人员应该认识到各种计算装置的功能可被组合或集成到单个计算装置,或者特定计算装置的功能可分布在一个或多个其他计算装置上。
为了便于描述,这里可使用诸如“顶部”、“底部”、“在…之下”、“下面的”、“下方的”、“在…下方”、“在…之上”、“上面的”等空间相对术语来描述如图所示的一个元件或特征与另一个元件或特征的关系。将理解,除了示图中描述的方向外,空间相对术语意在包括使用中或操作中的装置的不同方向。例如,如果示图中的装置被翻转,则描述为其他元件或特征“下面的”、“在”其他元件或特征“之下”的、或“在”其他元件或特征“下方”的元件将被定位“在”其他元件或特征“之上”。因此,示例术语“下面的”和“在…下方”可包含“在…之上”和“在…之下”两种方向。所述装置可被另外定位(例如,旋转90度或在其他方向),并且这里使用的空间相对描述应该被相应地解释。
此外,还将理解,当一个元件、组件、区域、层和/或部分被称为“在”两个元件、组件、区域、层和/或部分“之间”时,它可以是两个元件、组件、区域、层和/或部分之间的唯一元件、组件、区域、层和/或部分,或者还可存在一个或多个中间元件、组件、区域、层和/或部分。
这里使用的术语是为了描述特定实施例的目的,而不意在限制本发明。如这里所使用的,除非上下文明确另有指示,否则单数形式也意在包括复数形式。还将理解,当在本说明书中使用术语“包含”和“包括”时,指定存在叙述的特征、整体、步骤、操作、元件和/或组件,但并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。
如这里所使用的,术语“和/或”包括一个或多个相关联的列出的项目的任何组合以及所有组合。当诸如“…中的至少一个”、“…中的一个”以及“从…中所选择的”的表述在一列元素之后时,修饰整列元素,而不是修饰列中的单个元素。此外,当描述本发明的实施例时“可”的使用表示“本发明的一个或多个实施例”。此外,术语“示例性”意在表示示例或说明。
将理解,当元件或层被称为“在”另一元件或层“上”或者“连接到”、“结合到”或“邻近于”另一元件或层时,所述元件或层可以“直接在”所述另一元件或层“上”或者“直接连接到”、“直接结合到”或“直接邻近于”所述另一元件或层,或者可存在一个或多个中间元件或层。此外,本领域技术人员将理解,“连接”、“连接的”等也可根据使用这样的术语的上下文表示“电连接”、“电连接到”等。当元件或层被称为“直接在”另一元件或层“上”或者“直接连接到”、“直接结合到”或“紧密地临近于”另一元件或层时,不存在中间元件或层。
如这里所使用的,“基本上”、“大约”以及类似的术语用作近似的术语,而不用作程度的术语,并且意在考虑将被本领域普通技术人员认识的测量值或计算值中的固有偏差。
如这里所使用的,术语“使用”、“正在使用”以及“已使用”可分别认为与术语“利用”、“正在利用”以及“已利用”同义。
关于本发明的一个或多个实施例的特征的描述可适用于与本发明的其他实施例的特征结合使用。例如,第一实施例中描述的特征可与第二实施例中描述的特征结合,以形成第三实施例,即使这里没有具体地描述第三实施例。
本领域技术人员还应认识到,可经由硬件、固件(例如,经由ASIC)或者以软件、固件和/或硬件的任何组合来执行处理。此外,处理的步骤的顺序不是固定的,而是可以改变成如本领域技术人员认识的任何期望的顺序。改变的顺序可包括所有步骤或者部分步骤。
虽然已经关于特定的具体实施例描述了本发明,但是本领域技术人员将不难想象所描述的实施例的不脱离本发明的范围和精神的变化。此外,对于各种领域的技术人员而言,这里描述的本发明本身将给出其他任务的解决方案以及用于其他应用的改编。申请人意图通过权利要求覆盖本发明的所有这样的使用以及那些改变和修改,其中,可在不脱离本发明的精神和范围的情况下对这里为了公开的目的而选择的本发明的实施例做出所述改变和修改。因此,本发明的实施例应该在如说明性而非限制性的所有方面考虑,本发明的范围由所附权利要求及其等同物来指示。
Claims (18)
1.一种替换易失性存储器高速缓存上的数据的方法,所述易失性存储器高速缓存包括一个或多个存储体,每个存储体包括多个存储线,所述方法包括:
识别将被替换的所述多个存储线中的至少一个的替换ID;
识别将被刷新的一个存储体的刷新存储体ID;
确定替换ID和刷新存储体ID之间是否存在冲突;
如果存在冲突,则选择新的替换ID。
2.根据权利要求1所述的方法,其中,所述易失性存储器高速缓存包括动态随机存取存储器DRAM高速缓存。
3.根据权利要求1所述的方法,其中,通过所述易失性存储器高速缓存的高速缓存管理器来执行所述方法。
4.根据权利要求3所述的方法,其中,所述高速缓存管理器包括:
替换管理器,识别替换ID;
刷新控制器,识别刷新存储体ID;
比较器,确定是否存在冲突。
5.根据权利要求4所述的方法,其中,所述替换管理器还基于从所述比较器接收的替换反馈来选择新的替换ID。
6.一种替换易失性存储器高速缓存上的数据的方法,所述易失性存储器高速缓存包括一个或多个存储体,每个存储体包括多个存储线,所述方法包括:
识别将被替换的所述多个存储线中的至少一个的替换ID;
识别将被刷新的一个存储体的第一刷新存储体ID;
确定替换ID和第一刷新存储体ID之间是否存在冲突;
如果存在冲突,则确定是否能够改变第一刷新存储体ID;
如果存在冲突并且能够改变第一刷新存储体ID,则选择第二刷新存储体ID。
7.根据权利要求6所述的方法,其中,所述易失性存储器高速缓存包括动态随机存取存储器DRAM高速缓存。
8.根据权利要求6所述的方法,其中,通过所述易失性存储器高速缓存的高速缓存管理器来执行所述方法。
9.根据权利要求8所述的方法,其中,所述高速缓存管理器包括:
替换管理器,识别替换ID;
刷新控制器,识别第一刷新存储体ID;
比较器,确定是否存在冲突。
10.根据权利要求9所述的方法,其中,所述刷新控制器还基于从所述比较器接收的刷新反馈来选择第二刷新存储体ID。
11.根据权利要求6所述的方法,所述方法还包括:如果存在冲突并且不能改变第一刷新存储体,则选择新的替换ID。
12.根据权利要求11所述的方法,
其中,通过所述易失性存储器高速缓存的高速缓存管理器来执行所述方法,
其中,所述高速缓存管理器包括:
替换管理器,识别替换ID;
刷新控制器,识别第一刷新存储体ID;
比较器,确定是否存在冲突。
13.根据权利要求6所述的方法,其中,当选择第二刷新存储体ID时,推迟第一刷新存储体ID的刷新,直到第一刷新存储体ID的下一次定期调度的刷新。
14.根据权利要求6所述的方法,其中,当选择第二刷新存储体ID时,推迟第一刷新存储体ID的刷新,直到第二刷新存储体ID将被刷新的时刻。
15.一种用于管理包括易失性存储器高速缓存的高速缓存的高速缓存管理器,所述易失性存储器高速缓存包括一个或多个存储体,每个存储体包括多个存储线,所述高速缓存管理器包括:
替换管理器,识别将被替换的所述多个存储线中的至少一个的替换ID;
刷新控制器,识别将被刷新的一个存储体的刷新存储体ID;
比较器,确定替换ID和刷新存储体ID之间是否存在冲突,并且如果存在冲突,则将替换反馈发送到所述替换管理器或者将刷新反馈发送到所述刷新控制器,替换反馈使得所述替换管理器选择新的替换ID,刷新反馈使得所述刷新控制器选择选择新的刷新存储体ID。
16.根据权利要求15所述的高速缓存管理器,其中,所述易失性存储器高速缓存包括动态随机存取存储器DRAM高速缓存。
17.根据权利要求15所述的高速缓存管理器,其中,所述比较器还被配置为:
如果存在冲突,则确定是否能够改变刷新存储体ID;
如果能够改变刷新存储体ID,则将刷新反馈发送到所述刷新控制器;
如果不能改变刷新存储体ID,则将替换反馈发送到所述替换管理器。
18.根据权利要求15所述的高速缓存管理器,其中,所述高速缓存还包括非易失性存储器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762450505P | 2017-01-25 | 2017-01-25 | |
US62/450,505 | 2017-01-25 | ||
US15/457,813 US10394719B2 (en) | 2017-01-25 | 2017-03-13 | Refresh aware replacement policy for volatile memory cache |
US15/457,813 | 2017-03-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108345548A true CN108345548A (zh) | 2018-07-31 |
CN108345548B CN108345548B (zh) | 2022-12-20 |
Family
ID=62906271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810038097.3A Active CN108345548B (zh) | 2017-01-25 | 2018-01-16 | 替换高速缓存上的数据的方法和高速缓存管理器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10394719B2 (zh) |
JP (1) | JP7164951B2 (zh) |
KR (1) | KR102245310B1 (zh) |
CN (1) | CN108345548B (zh) |
TW (1) | TWI756314B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026682A (zh) * | 2019-12-26 | 2020-04-17 | 浪潮(北京)电子信息产业有限公司 | 板卡芯片的数据访存方法、装置及计算机可读存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10409614B2 (en) | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US10271205B1 (en) * | 2017-12-01 | 2019-04-23 | At&T Intellectual Property I, L.P. | Methods and devices for resolving conflicts between identifiers for communication devices |
US10431305B2 (en) * | 2017-12-14 | 2019-10-01 | Advanced Micro Devices, Inc. | High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM) |
TWI688859B (zh) | 2018-12-19 | 2020-03-21 | 財團法人工業技術研究院 | 記憶體控制器與記憶體頁面管理方法 |
WO2020190808A1 (en) | 2019-03-15 | 2020-09-24 | Intel Corporation | Sparse optimizations for a matrix accelerator architecture |
WO2020190796A1 (en) | 2019-03-15 | 2020-09-24 | Intel Corporation | Systems and methods for cache optimization |
WO2020190801A1 (en) | 2019-03-15 | 2020-09-24 | Intel Corporation | Graphics processor operation scheduling for deterministic latency |
US10991413B2 (en) * | 2019-07-03 | 2021-04-27 | Micron Technology, Inc. | Memory with programmable die refresh stagger |
US11899588B2 (en) * | 2020-09-14 | 2024-02-13 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for discarding inactive intermediate render targets |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1659525A (zh) * | 2002-06-04 | 2005-08-24 | 杉桥技术公司 | 简化了缓存替换策略的实现的多线程缓存方法和装置 |
US20060013054A1 (en) * | 2000-08-21 | 2006-01-19 | Ryan Kevin J | DRAM with hidden refresh |
US20060041720A1 (en) * | 2004-08-18 | 2006-02-23 | Zhigang Hu | Latency-aware replacement system and method for cache memories |
CN101047025A (zh) * | 2006-03-30 | 2007-10-03 | 富士通株式会社 | 动态半导体存储器及其刷新控制方法 |
US20090144491A1 (en) * | 2007-12-04 | 2009-06-04 | Faucher Marc R | Method and system for implementing prioritized refresh of dram based cache |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
CN102870089A (zh) * | 2009-12-15 | 2013-01-09 | 实录系统有限公司 | 将数据存储到虚拟高速存储系统中的系统和方法 |
US20140112086A1 (en) * | 2012-10-19 | 2014-04-24 | Samsung Electronics Co., Ltd. | Refresh method, refresh address generator, volatile memory device including the same |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5172341A (en) | 1990-01-19 | 1992-12-15 | Dallas Semiconductor Corporation | Serial dram controller with multi generation interface |
DE69525764T2 (de) * | 1994-11-22 | 2002-10-31 | Monolithic System Technology, Inc. | Verfahren und struktur zur verwendung einer dram-matrix für einen zweite-stufe-cachespeicher |
US5802560A (en) | 1995-08-30 | 1998-09-01 | Ramton International Corporation | Multibus cached memory system |
JPH09213072A (ja) * | 1996-02-09 | 1997-08-15 | Nec Corp | Dramリフレッシュ制御方式 |
US6028804A (en) | 1998-03-09 | 2000-02-22 | Monolithic System Technology, Inc. | Method and apparatus for 1-T SRAM compatible memory |
GB2345987B (en) * | 1999-01-19 | 2003-08-06 | Advanced Risc Mach Ltd | Memory control within data processing systems |
US6496437B2 (en) | 1999-01-20 | 2002-12-17 | Monolithic Systems Technology, Inc. | Method and apparatus for forcing idle cycles to enable refresh operations in a semiconductor memory |
US6151664A (en) * | 1999-06-09 | 2000-11-21 | International Business Machines Corporation | Programmable SRAM and DRAM cache interface with preset access priorities |
US6697909B1 (en) * | 2000-09-12 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory |
JP3985889B2 (ja) | 2001-08-08 | 2007-10-03 | 株式会社ルネサステクノロジ | 半導体装置 |
US6757784B2 (en) | 2001-09-28 | 2004-06-29 | Intel Corporation | Hiding refresh of memory and refresh-hidden memory |
US6625077B2 (en) | 2001-10-11 | 2003-09-23 | Cascade Semiconductor Corporation | Asynchronous hidden refresh of semiconductor memory |
US7313047B2 (en) | 2006-02-23 | 2007-12-25 | Hynix Semiconductor Inc. | Dynamic semiconductor memory with improved refresh mechanism |
US20080270683A1 (en) | 2007-04-25 | 2008-10-30 | International Business Machines Corporation | Systems and methods for a dram concurrent refresh engine with processor interface |
US8024513B2 (en) * | 2007-12-04 | 2011-09-20 | International Business Machines Corporation | Method and system for implementing dynamic refresh protocols for DRAM based cache |
US8601216B2 (en) * | 2010-08-31 | 2013-12-03 | Oracle International Corporation | Method and system for removing cache blocks |
KR20120079682A (ko) * | 2011-01-05 | 2012-07-13 | 삼성전자주식회사 | 디램 캐시를 포함하는 메모리 장치 및 이를 포함하는 시스템 |
US9293187B2 (en) | 2011-09-26 | 2016-03-22 | Cisco Technology, Inc. | Methods and apparatus for refreshing digital memory circuits |
WO2015101827A1 (en) | 2013-12-31 | 2015-07-09 | Mosys, Inc. | Integrated main memory and coprocessor with low latency |
CN103811048B (zh) | 2014-02-26 | 2017-01-11 | 上海新储集成电路有限公司 | 一种混合存储器结构的低功耗刷新方法 |
US9990293B2 (en) * | 2014-08-12 | 2018-06-05 | Empire Technology Development Llc | Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram |
US20160188490A1 (en) | 2014-12-26 | 2016-06-30 | Intel Corporation | Cost-aware page swap and replacement in a memory |
KR20170057704A (ko) * | 2015-11-17 | 2017-05-25 | 삼성전자주식회사 | 액세스 동작과 리프레쉬 동작의 충돌을 제어하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR102329673B1 (ko) * | 2016-01-25 | 2021-11-22 | 삼성전자주식회사 | 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR101913914B1 (ko) * | 2016-10-31 | 2018-10-31 | 경북대학교 산학협력단 | 메모리 셀에 대한 리프레시 방법 및 장치 |
-
2017
- 2017-03-13 US US15/457,813 patent/US10394719B2/en active Active
- 2017-09-05 KR KR1020170113476A patent/KR102245310B1/ko active Active
- 2017-12-05 TW TW106142585A patent/TWI756314B/zh active
-
2018
- 2018-01-16 CN CN201810038097.3A patent/CN108345548B/zh active Active
- 2018-01-17 JP JP2018005751A patent/JP7164951B2/ja active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060013054A1 (en) * | 2000-08-21 | 2006-01-19 | Ryan Kevin J | DRAM with hidden refresh |
CN1659525A (zh) * | 2002-06-04 | 2005-08-24 | 杉桥技术公司 | 简化了缓存替换策略的实现的多线程缓存方法和装置 |
US20060041720A1 (en) * | 2004-08-18 | 2006-02-23 | Zhigang Hu | Latency-aware replacement system and method for cache memories |
CN101047025A (zh) * | 2006-03-30 | 2007-10-03 | 富士通株式会社 | 动态半导体存储器及其刷新控制方法 |
US20090144491A1 (en) * | 2007-12-04 | 2009-06-04 | Faucher Marc R | Method and system for implementing prioritized refresh of dram based cache |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
CN102870089A (zh) * | 2009-12-15 | 2013-01-09 | 实录系统有限公司 | 将数据存储到虚拟高速存储系统中的系统和方法 |
US20140112086A1 (en) * | 2012-10-19 | 2014-04-24 | Samsung Electronics Co., Ltd. | Refresh method, refresh address generator, volatile memory device including the same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026682A (zh) * | 2019-12-26 | 2020-04-17 | 浪潮(北京)电子信息产业有限公司 | 板卡芯片的数据访存方法、装置及计算机可读存储介质 |
CN111026682B (zh) * | 2019-12-26 | 2022-03-08 | 浪潮(北京)电子信息产业有限公司 | 板卡芯片的数据访存方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR102245310B1 (ko) | 2021-04-27 |
TWI756314B (zh) | 2022-03-01 |
JP7164951B2 (ja) | 2022-11-02 |
JP2018120589A (ja) | 2018-08-02 |
CN108345548B (zh) | 2022-12-20 |
KR20180087817A (ko) | 2018-08-02 |
US20180210843A1 (en) | 2018-07-26 |
TW201841119A (zh) | 2018-11-16 |
US10394719B2 (en) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345548A (zh) | 替换高速缓存上的数据的方法和高速缓存管理器 | |
US12142348B2 (en) | Memory device comprising programmable command-and-address and/or data interfaces | |
TWI681525B (zh) | 具有一控制器及一記憶體堆疊之彈性記憶體系統 | |
CN107656878B (zh) | 具有内存高速缓存管理器的高带宽存储器 | |
US9293170B2 (en) | Configurable bandwidth memory devices and methods | |
US20140126274A1 (en) | Memory circuit and method of operating the memory circui | |
US20240288922A1 (en) | Multi-Element Memory Device with Power for Individual Elements | |
CN105518784A (zh) | 具有用于高可靠性操作的存储控制器的数据处理器和方法 | |
CN107153511A (zh) | 存储节点、混合存储器控制器及控制混合存储器组的方法 | |
US10817422B2 (en) | Data processing system with decoupled data operations | |
US9620215B2 (en) | Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode | |
US20240078195A1 (en) | Systems, methods, and devices for advanced memory technology | |
WO2025059034A1 (en) | Integrated memory controller circuitry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |