CN110362507A - 存储器控制设备和包括该设备的存储器系统 - Google Patents
存储器控制设备和包括该设备的存储器系统 Download PDFInfo
- Publication number
- CN110362507A CN110362507A CN201910225189.7A CN201910225189A CN110362507A CN 110362507 A CN110362507 A CN 110362507A CN 201910225189 A CN201910225189 A CN 201910225189A CN 110362507 A CN110362507 A CN 110362507A
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- write
- memory module
- control apparatus
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 278
- 238000000151 deposition Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 2
- 230000005611 electricity Effects 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 18
- 230000008859 change Effects 0.000 description 13
- 239000012782 phase change material Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010438 heat treatment Methods 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 229910000927 Ge alloy Inorganic materials 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910052787 antimony Inorganic materials 0.000 description 1
- WATWJIUSRGPENY-UHFFFAOYSA-N antimony atom Chemical compound [Sb] WATWJIUSRGPENY-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000002425 crystallisation Methods 0.000 description 1
- 230000008025 crystallization Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000016507 interphase Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 229910052714 tellurium Inorganic materials 0.000 description 1
- PORWMNRCUJJQNO-UHFFFAOYSA-N tellurium atom Chemical compound [Te] PORWMNRCUJJQNO-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 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/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; 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
-
- 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/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/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/41—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/411—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using bipolar transistors only
-
- 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/41—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
-
- 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/41—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 static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
- G11C14/0045—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
-
- 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/1694—Configuration of memory controller to different memory types
-
- 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
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2263—Write conditionally, e.g. only if new data and old data differ
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)
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及存储器控制设备和包括该设备的存储器系统。提供了一种存储器控制设备,其被配置为连接到第一存储器模块和用作高速缓存的第二存储器模块,第一存储器模块包括被划分成多个分区的电阻切换存储器单元阵列。高速缓存控制器将读取请求的地址拆分成至少第一高速缓存索引和第一标签,并且基于第一高速缓存索引和第一标签通过参考查找逻辑来确定读取请求是高速缓存命中还是高速缓存未命中。在读取请求是高速缓存未命中并且对第一分区的写入正在进行的情况下,当读取请求以第二分区为目标时,高速缓存控制器指示存储器控制器从第一存储器模块对读取请求的目标数据进行读取。
Description
相关申请的交叉引用
本申请要求2018年4月11日提交的第10-2018-0042372号韩国专利申请和2018年6月12日提交的第10-2018-0067739号韩国专利申请的优先权和权益,其全部内容通过引用并入本文。
背景
(a)领域
所描述的技术大体上涉及存储器控制设备和包括该设备的存储器系统。
(b)相关技术的描述
诸如由提出的NVDIMM(非易失性双列直插式(dual in-line)存储器模块)和Optane DIMM(Optane双列直插式存储器模块)的持久性(persistent)存储器系统,即使在意外断电或系统崩溃时,也能提供数据一致性。
持久性存储器系统可以采用电阻切换存储器,例如相变RAM(相变随机存取存储器,PRAM)或电阻式RAM(RRAM)。由于电阻切换存储器中的写入等待时间(latency)比读取等待时间更长,因此需要用于向主机隐藏长的写入等待时间从而提高系统性能的方法。此外,需要设计用于向主机隐藏写入等待时间的存储器控制设备。
概述
本发明的实施例提供了使用电阻切换存储器的存储器控制设备和存储器系统。
根据本发明的实施例,提供了存储器控制设备,其被配置为连接到第一存储器模块和用作高速缓存的第二存储器模块。第一存储器模块包括电阻切换存储器单元阵列,该阵列被划分为包括第一分区(partition)和第二分区的多个(a plurality of)分区。存储器控制设备包括:存储器控制器,其访问第一存储器模块和第二存储器模块;查找逻辑,其管理第二存储器模块的多个高速缓存行(line)的标签信息,多个高速缓存行分别对应于多个高速缓存索引;以及高速缓存控制器。高速缓存控制器将读取请求(read request)的地址拆分成至少第一高速缓存索引和第一标签,基于第一高速缓存索引和第一标签通过参考查找逻辑来确定读取请求是高速缓存命中(cache hit)还是高速缓存未命中(cachemiss),并且在读取请求是高速缓存未命中并且对第一分区的写入正在进行的情况下,当读取请求以第二分区为目标时,指示存储器控制器从第一存储器模块对读取请求的目标数据进行读取。
在读取请求是高速缓存未命中并且对第一分区的写入正在进行的情况下,当读取请求以第一分区为目标时,高速缓存控制器可以暂停读取请求。
当读取请求是高速缓存命中时,高速缓存控制器可以指示存储器控制器从第二存储器模块读取目标数据。
高速缓存控制器可以将写入请求的地址拆分成至少第二高速缓存索引和第二标签,基于第二高速缓存索引和第二标签通过参考查找逻辑来确定写入请求是高速缓存命中还是高速缓存未命中,并且当写入请求是高速缓存未命中时通过参考查找逻辑来检查第二存储器模块中是否存在空的高速缓存行。
当不存在空的高速缓存行时,高速缓存控制器可以通过参考查找逻辑来检索多个高速缓存行中的牺牲(victim)高速缓存行,并且指示存储器控制器从第二存储器模块的牺牲高速缓存行读取牺牲数据,将牺牲数据写入第一存储器模块,以及将写入请求的目标数据写入第二存储器模块的牺牲高速缓存行。
查找逻辑可以包括多个路径(way),每个路径可以包括分别对应于多个高速缓存索引的多个集合,并且每个集合可以包括计数器。在该情况下,高速缓存控制器可以选择高速缓存行作为牺牲高速缓存行,该高速缓存行由其中计数器在对应于多个集合中的第二高速缓存索引的目标集合处具有预定值的路径来指示。
每次在目标集合中发生高速缓存访问时,查找逻辑可以将对应于其中发生高速缓存访问的路径的计数器设置为零,并且将对应于另一路径的计数器增加一。在该情况下,预定值可以是通过从多个路径的数量(number)中减去一而获得的值。
当存在空的高速缓存行时,高速缓存控制器可以指示存储器控制器将写入请求的目标数据写入第二存储器模块的空的高速缓存行,并且更新查找逻辑。
当写入请求是高速缓存命中时,高速缓存控制器可以指示存储器控制器将写入请求的目标数据写入第二存储器模块。
正在进行的写入可以是根据高速缓存移出(eviction)的写入。
正在进行的写入可以是根据高速缓存行清除(flush)请求和围栏(fence)请求的持续(persistent)操作的写入。
高速缓存控制器甚至可以在围栏请求之后执行读取操作。
根据本发明的另一实施例,提供了存储器控制设备,其被配置为连接到包括电阻切换存储器的第一存储器模块和用作高速缓存的第二存储器模块。存储器控制设备包括:存储器控制器,其访问第一存储器模块和第二存储器模块;查找逻辑,其包括多个路径,每个路径包括分别对应于多个高速缓存索引的多个集合,每个集合包括标签信息和计数器,并且多个高速缓存索引分别对应于第二存储器模块的多个高速缓存行;以及高速缓存控制器。高速缓存控制器将写入请求的地址拆分成至少第一高速缓存索引和第一标签,并且基于第一高速缓存索引和第一标签通过参考查找逻辑来确定写入请求是高速缓存命中还是高速缓存未命中。当写入请求是高速缓存未命中并且在第二存储器模块中不存在空的高速缓存行时,高速缓存控制器选择高速缓存行作为牺牲高速缓存行,并且指示存储器控制器将牺牲高速缓存行的牺牲数据写入第一存储器模块,该高速缓存行由其中计数器在对应于多个集合中的第一高速缓存索引的目标集合处具有预定值的路径来指示。
每次在目标集合中发生高速缓存访问时,查找逻辑可以将对应于其中发生了高速缓存访问的路径的计数器设置为零,并且将对应于另一路径的计数器增加一。在该情况下,预定值可以是通过从多个路径的数量中减去一而获得的值。
第一存储器模块可以包括存储器单元阵列,该存储器单元阵列被划分成包括第一分区和第二分区的多个分区。高速缓存控制器可以将读取请求的地址拆分成至少第二高速缓存索引和第二标签,基于第二高速缓存索引和第二标签通过参考查找逻辑来确定读取请求是高速缓存命中还是高速缓存未命中,并且在读取请求是高速缓存未命中并且对第一分区的写入正在进行的情况下,当读取请求以第二分区为目标时,指示存储器控制器从第一存储器模块对读取请求的目标数据进行读取。
在读取请求是高速缓存未命中并且对第一分区的写入正在进行的情况下,当读取请求以第一分区为目标时,高速缓存控制器可以暂停读取请求。
当读取请求是高速缓存命中时,高速缓存控制器可以指示存储器控制器从第二存储器模块对读取请求的目标数据进行读取。
根据本发明的又一实施例,提供了存储器控制设备,其被配置为连接到第一存储器模块和用作高速缓存的第二存储器模块。第一存储器模块包括电阻切换存储器单元阵列,该阵列被划分为包括第一分区和第二分区的多个分区。存储器控制设备包括访问第一存储器模块和第二存储器模块的存储器控制器、查找逻辑和高速缓存控制器。查找逻辑包括多个路径并且管理第二存储器模块的多个高速缓存行的标签信息,每个路径包括分别对应于多个高速缓存索引的多个集合,并且多个高速缓存索引分别对应于多个高速缓存行。高速缓存控制器将请求的地址拆分成至少目标高速缓存索引和目标标签,并且基于目标高速缓存索引和目标标签通过参考查找逻辑来确定请求是高速缓存命中还是高速缓存未命中。在请求是高速缓存未命中的情况下,当请求是读取请求、对第一分区的写入正在进行并且读取请求以第二分区为目标时,高速缓存控制器指示存储器控制器从第一存储器模块对读取请求的目标数据进行读取。此外,当请求是写入请求并且在第二存储器模块中不存在空的高速缓存行时,在一个时钟周期内,高速缓存控制器检测对应于多个集合中的目标高速缓存索引的目标集合中的多个路径中的目标路径,选择目标集合中的目标路径的高速缓存行作为牺牲高速缓存行,并且指示存储器控制器将牺牲高速缓存行的牺牲数据写入第一存储器模块并且将写入请求的目标数据写入牺牲高速缓存行。
根据本发明的再一实施例,提供了包括存储器控制设备、第一存储器模块以及第二存储器模块的存储器系统。
附图说明
图1是示出了根据本发明的实施例的存储器系统的示意性框图。
图2示意性示出了PRAM中的一个存储器单元。
图3示出了施加到图2中示出的存储器单元的电流。
图4示出了当图3中示出的电流被施加到图2中示出的存储器单元时的温度变化。
图5是示出了根据本发明的实施例的存储器控制设备中的PRAM模块的示意性框图。
图6示出了根据本发明的实施例的PRAM模块的存储器单元阵列中的分区方案的示例。
图7示出了根据本发明的实施例的PRAM模块中的分区的示例。
图8是示出了根据本发明的实施例的存储器控制设备的示意性框图。
图9是示意性示出了根据本发明的实施例的存储器控制设备的查找逻辑的图示。
图10是示意性示出了根据本发明的实施例的存储器系统中的写入操作的流程图。
图11和图12示出了根据本发明的实施例的存储器系统中的高速缓存替换。
图13是示意性示出了根据本发明的实施例的存储器系统中的读取操作的流程图。
图14是示意性示出了根据本发明的实施例的存储器系统中的持续操作的流程图。
实施例的详细描述
在下面详细描述中,仅通过例证的方式,只示出并描述了本发明的某些示例性实施例。本领域的技术人员将认识到,在全都不偏离本发明的精神或范围的情况下,所描述的实施例可以以各种不同的方式被修改。因此,附图和描述被认为本质上是说明性的而不是限制性的。在整个说明书中,相同的参考数字表示相同的元件。
图1是示出了根据本发明的实施例的存储器系统的示意性框图。
参考图1,根据本发明的实施例的存储器系统100包括存储器控制设备110、电阻切换存储器模块120以及高速缓存存储器模块130。
存储器控制设备110接收来自主机的输入/输出(I/O)请求,并且基于接收到的I/O请求来访问电阻切换存储器模块120和高速缓存存储器模块130。
作为非易失性存储器的电阻切换存储器模块120包括使用电阻介质(相变材料)的电阻率的相变存储器(PCM)、使用存储器设备的电阻的电阻式存储器、或者磁阻存储器。虽然在以下的实施例中PCM(具体地,相变随机存取存储器(PRAM))被描述为电阻切换存储器的示例,但是本发明的实施例不限于PCM(或者PRAM),而是可以适用于电阻式存储器(例如,电阻随机存取存储器(RRAM))或者磁阻存储器(例如,诸如自旋转移转矩MRAM(STT-MRAM)的磁阻随机存取存储器(MRAM))。
高速缓存存储器模块130用作高速缓存,并且可以是例如动态随机存取存储器(DRAM)模块。虽然在以下的实施例中DRAM被描述为高速缓存的示例,但是本发明的实施例不限于DRAM,而是可以应用于可以用作高速缓存的其他存储器。
接下来,描述被包括在根据本发明的实施例的存储器系统100中的PRAM模块120的示例。
图2示意性地示出了PRAM中的一个存储器单元,图3示出了施加到图2中示出的存储器单元的电流,并且图4示出了当将图3中示出的电流施加到图2中示出的存储器单元时的温度变化。
图2中示出的存储器单元是示例存储器单元,并且根据本发明的实施例的PRAM的存储器单元可以以各种形式被实现。
参考图2,PRAM的存储器单元200包括相变元件210和切换元件220。可以采用各种元件(诸如,晶体管或者二极管)来实现切换元件220。相变元件210包括相变层212、在相变层212上方形成的上部电极211、以及在相变层212下方形成的下部电极213。例如,相变层210可以包括作为相变材料的锗(Ge)、锑(Sb)和碲(Te)的合金,其通常被称为GST合金。
相变材料可以在具有相对高电阻率的无定形(amorphous)状态和具有相对低电阻率的结晶状态之间被切换。可以通过加热温度和加热时间来确定相变材料的状态。
再次参考图2,当向存储器单元200施加电流时,所施加的电流流过下部电极213。当在短时间期间向存储器单元200施加电流时,相变层212的、邻近下部电极213的一部分通过电流被加热。根据电流的加热分布(profile),相变层212的交叉影线(cross-hatched)部分被切换到结晶状态和无定形状态中的一种。结晶状态被称为设置状态,并且无定形状态被称为重置状态。
参考图3和图4,当具有高电流的重置脉冲RESET在短时间tRST期间被施加到存储器单元200时,相变层212被编程到重置状态。如果随着通过所施加的重置脉冲RESET来加热相变层212的相变材料,相变材料的温度Tr达到熔点,那么相变材料熔化然后被切换到无定形状态。当在比时间tRST更长的时间tSET期间将具有比重置脉冲RESET更低的电流的设置脉冲SET施加到存储器单元200时,相变层212被编程到设置状态。如果随着通过所施加的设置电流SET来加热相变材料,相变材料的温度Ts达到比熔点更低的结晶温度,则相变材料被变换成结晶状态。由于当以比设置脉冲SET更低的电流或者在比设置脉冲SET更短的时间期间施加脉冲时,可以保持重置状态和设置状态,因此可以对存储器单元200编程数据。
重置状态和设置状态可以分别被设置为“1”和“0”的数据,并且数据可以通过测量存储器单元200中的相变元件210的电阻率而被感测。可选地,重置状态和设置状态可以分别被设置为“0”和“1”的数据。
因此,可以通过向存储器单元200施加读取脉冲READ来读取存储在存储器单元200中的数据。在非常短的时间tREAD期间向读取脉冲READ施加低电流,使得存储器单元200的状态不改变。读取脉冲READ的电流可以比设置脉冲SET的电流更低,并且读取脉冲READ的施加时间可以比重置脉冲RESET的施加时间tRST更短。因为存储器单元200中的相变元件210的电阻率根据相变元件210的状态而不同,所以可以通过流动到相变元件210的电流的幅度或者相变元件210上的电压降来读取相变元件210的状态,即,存储在存储器单元200中的数据。
在一个实施例中,当施加读取脉冲READ时,可以通过存储器单元200处的电压来读取存储器单元200的状态。在该情况下,由于存储器单元200的相变元件210在重置状态中具有相对高的电阻,因此状态可以在相变元件210处感测到的电压相对高的情况下被确定为重置状态,并且可以在相变元件210处感测到的电压相对低的情况下被确定为设置状态。在另一实施例中,当向存储器单元200施加电压时,可以通过输出电流来读取存储器单元200的状态。在该情况下,状态可以在相变元件210处感测到的电流相对低的情况下被确定为重置状态,并且在相变元件210处感测到的电流相对高的情况下被确定为设置状态。
由于写入数据实际上是PRAM中的一系列的重置和设置过程,因此通过具有较长施加时间的重置脉冲,写入操作比读取操作慢得多。
图5是示出了根据本发明的实施例的存储器控制设备中的PRAM模块的示意性框图。图5中示出的PRAM模块可以是PRAM芯片或者PRAM存储体(bank)。
参考图5,PRAM模块500包括存储器单元阵列510、行地址缓冲区520、行数据缓冲区530、行解码器540、读出放大器550以及写入驱动器560。
存储器单元阵列510包括基本上在行方向上延伸的多个字线(未示出)、基本上在列方向上延伸的多个位线(未示出)、以及连接到字线和位线并且以基本上矩阵格式形成的多个存储器单元(未示出)。存储器单元可以例如是参考图2描述的存储器单元200。
行地址缓冲区520和行数据缓冲区530二者形成行缓冲区。每个行缓冲区由行地址缓冲区520和行数据缓冲区530逻辑配对,并由缓冲区地址选择。
行地址缓冲区520存储来自存储器控制器(未示出)的命令和地址(具体地,行地址)。行数据缓冲区530存储来自存储器单元阵列510的数据。
在一些实施例中,PRAM模块500可以采用非易失性存储器(NVM)接口以使用多个行缓冲区520和530。在一个实施例中,非易失性存储器接口可以是双数据速率(DDR)接口,例如,LPDDR2-NVM(低功耗双数据速率2非易失性存储器)接口。行地址缓冲区520经由NVM接口接收行地址和存储体地址,并且行数据缓冲区530经由NVM接口输出数据。
行解码器540解码行地址,以从存储器单元阵列510中的多个行中选择目标行。也就是说,行解码器540从存储器单元阵列510的多个字线中选择用于读取数据或者写入数据的目标字线。
在一些实施例中,从存储器控制器传输的行地址可被分成高位(upper)地址和低位(lower)地址。在该情况下,高位地址可以被传递到行地址缓冲区520,并且低位地址可以被直接传递到行解码器540。行解码器540可以将在行地址缓冲区520中容纳的高位地址与直接被传递的低位地址结合,以选择目标行。
读出放大器550读取存储器单元阵列510中存储的数据。读出放大器550可以通过多个位线从与由行解码器540选择的字线连接的多个存储器单元读取数据。写入驱动器560将输入数据写入存储器单元阵列510。写入驱动器560可以通过多个位线来将数据写入与由行解码器540选择的字线连接的多个存储器单元。
在一些实施例中,为了解决写入操作比读取操作慢的问题,PRAM模块500可以首先将输入数据存储到缓冲区,然后将存储的数据写入存储器单元阵列510。为此,PRAM模块500可以包括叠加(overlay)窗口570和580作为存储器映射的寄存器。叠加窗口可以包括叠加窗口寄存器570和程序缓冲区580。在一个实施例中,可以将关于写入数据的信息(例如,第一数据地址和将要被编程的字节的数量)写入寄存器570,然后可以将写入数据存储到程序缓冲区580。接下来,当预定值被写入叠加窗口寄存器570时,存储到程序缓冲区580的数据可以被写入到存储器单元阵列510。在该情况下,通过轮询叠加窗口寄存器570存储器控制器可以确定写入操作是否完成。
图6示出了根据本发明的实施例的PRAM模块的存储器单元阵列中的分区方案的示例,并且图7示出了根据本发明的实施例的PRAM模块中的分区的示例。
参考图6,在一些实施例中,存储器单元阵列510(例如,PRAM存储体)可以被划分成多个分区,分区0至分区15。图6中示出了存储器单元阵列510被划分为十六个分区,分区0至分区15。多个行缓冲区520和530可以被连接到分区,分区0至分区15。例如,每个分区可以执行128位并行I/O处理。
参考图7,在一些实施例中,每个分区可以包括被称为电阻块(tile)的多个子阵列。图7中示出了一个分区包括64个块,Tile0到Tile63。
每个块包括连接到多个位线(例如,2048个位线)和多个字线(例如,4096个字线)的多个存储器单元(即,PRAM核)。为了方便,图7中示出了多个存储器单元中的一个存储器单元、以及连接到一个存储器单元的一个位线BL和一个字线WL。另外,形成存储器单元的相变元件和切换元件分别被示出为寄存器和二极管。
局部列解码器(以下称为“LYDEC”)710可以被连接到每个块。LYDEC 710被连接到对应的块的多个位线BL。此外,可以在分区中形成分别对应于多个块的多个全局位线GBL。每个全局位线GBL可以被连接到相应的块的多个位线BL以及被连接到全局列解码器(以下称为“GYDEC”)。在一些实施例中,可以使用LYDEC 710与GYDEC一起来选择对应的分区的对应的块中的位线BL。读出放大器(图5的550)可以通过选择的位线BL来读取数据,或者写入驱动器(图5的560)可以通过选择的位线BL来写入数据。
子字线驱动器(以下称为“SWD”)720可以被连接到每个块,以使并行度最大化。全局字线GWL可以在分区中被形成并且可以被连接到主字线驱动器(以下称为“MWD”)730。在该情况下,分区中形成的多个字线WL可以被连接到全局字线GWL。分区内的所有SWD都被连接到MWD 730。在一些实施例中,可以使用SWD 720与MWD 730一起来驱动对应的块中的字线WL。驱动的字线WL可以由行解码器(图5的540)选择。
当使用图6和图7示出的分区结构时,可以同时执行每个分区的多个I/O操作(例如,图7的示例中的64个I/O操作)。此外,由于如图6和图7所示的每个分区中的局部解码器和字线驱动器,存储器系统可以并行地访问不同的分区。但是,只有当传入的I/O请求的类型不同时,不同的分区才能支持同时的I/O服务。例如,读取和写入可以从两个不同的分区并行被使用(serve)。
接下来,参考图8和图9描述了根据本发明的实施例的存储器控制设备。
图8是示出了根据本发明的实施例的存储器控制设备的示意性框图,并且图9是示意性示出了根据本发明的实施例的存储器控制设备的查找逻辑的图示。
参考图8,存储器控制设备800包括高速缓存控制器810、查找逻辑820、以及存储器控制器830。
高速缓存控制器810从主机接收I/O请求。I/O请求包括操作类型和地址。操作类型指示读取或写入,并且当操作类型指示写入时,I/O请求还包括写入数据。在一些实施例中,操作类型可以指示擦除。高速缓存控制器810使用查找逻辑820来检查目标数据是否在高速缓存中,即DRAM模块130中。查找逻辑820指示对于I/O请求的高速缓存命中或高速缓存未命中。
高速缓存控制器810还可以包括一组寄存器811。寄存器811可以包括用于指示存储器控制器830的就绪状态(即,忙状态或空闲状态)的寄存器以及与从存储器控制器830传递的读取数据相关的寄存器。高速缓存控制器810将寄存器811暴露给存储器控制器830,用于与存储器控制器830通信。
存储器控制器830包括事务(transaction)模块831和命令模块832。事务模块831包括DRAM事务模块831d和PRAM事务模块831p,并且命令模块包括DRAM命令模块832d和PRAM命令模块832p。存储器控制器830还包括与基本I/O操作相关的一组寄存器833和指示将使用哪个存储器模块的开关(switch)834,并将寄存器833和开关834暴露给高速缓存控制器810用于与高速缓存控制器810通信。寄存器833可以存储与基本I/O操作相关的操作类型、地址和写入数据。根据高速缓存控制器810的指示,开关834将I/O请求转发到DRAM事务模块831d和PRAM事务模块831p中对应的事务模块。
事务模块831d和831p被提供用于异构存储器接口(即,DRAM模块130和PRAM模块120)的I/O操作。DRAM事务模块831d向DRAM命令模块832d转发传入的I/O请求,并且DRAM命令模块832d通过读取/写入命令向DRAM模块130发送行和列地址。因此,存储器控制器830可以访问DRAM模块130。换句话说,存储器控制器830可以在读取命令的情况下从DRAM模块130读取数据,并且可以在写入命令的情况下向DRAM模块130写入数据。PRAM事务模块831p根据I/O请求生成对PRAM模块120的请求,并且将生成的命令转发给PRAM命令模块832p。PRAM命令模块832p根据从PRAM事务模块831p转发的请求,通过读取/写入命令来向PRAM模块120发送行和列地址。因此,存储器控制器830可以访问PRAM模块120。
在一些实施例中,事务模块831d和831p可以通过物理层840来访问PRAM模块120和DRAM模块130。物理层840可以管理向PRAM模块120和DRAM模块130发出的命令的定时。
在一些实施例中,如参考图5所述,当PRAM模块120使用叠加窗口570和580时,PRAM事务模块831p可以根据写入请求来生成对于叠加窗口570和580的命令代码/地址、数据和命令执行。
在一些实施例中,DRAM命令模块832d可以基于从DRAM事务模块831d接收的请求,通过激活(active)命令来向DRAM模块130发出行地址,并通过读取/写入命令来向DRAM模块130发出列地址。DRAM模块130可以根据行和列地址(即,存储器地址)来读取或写入数据。
在一些实施例中,PRAM命令模块832p可以基于从PRAM事务模块831p接收的请求来执行三阶段寻址。在该情况下,在三阶段寻址的第一阶段(即,预激活(preactive)阶段),PRAM命令模块832p可以通过预激活命令来向PRAM模块120发出行地址的高位行地址。在第二阶段(即,激活阶段),PRAM命令模块832p可以向PRAM模块120发出剩余地址(即,低位行地址)。因此,实际行地址可以在PRAM模块120中被组成。接下来,PRAM命令模块832p可以通过读取/写入命令来向PRAM模块120发出列地址。PRAM模块120可以根据组成的行地址和列地址来读取或写入数据。
参考图9,查找逻辑820包括多个路径,例如四个路径911、912、913和914。每个路径包括对应于高速缓存索引的多个集合,并且每个集合可以指示高速缓存中的高速缓存行。高速缓存行可以是预定大小的DRAM块(block),例如32字节DRAM块。在一些实施例中,路径911至914中的每一个可以是块存储器,例如FPGA(现场可编程门阵列)内置的BRAM(块随机存取存储器)。在一些实施例中,路径911至914中的每一个可以是字节可寻址块存储器。
存储器控制设备的传入的I/O请求的地址可以被拆分成至少标签和高速缓存索引。标签和高速缓存索引的大小可以由高速缓存的大小确定。例如,当使用512K高速缓存索引和四个路径时,I/O请求的地址(例如,32位地址)可以被拆分成除了偏移(例如,5位,0-4)之外的19位高速缓存索引(5-23)和3位标签(24-26)。在该示例中,每个路径都有512K集合以对应于19位高速缓存索引,即,512K高速缓存索引。每个集合包括标签阵列TAG、计数器CNT以及有效位V。标签阵列TAG存储I/O请求的地址的标签,并且有效位V指示数据是否存在于对应的高速缓存行中。例如,如果数据存在,则有效位V可以被设置为“1”,并且如果数据不存在,则有效位V可以被设置为“0”。在该示例中,标签阵列TAG的条目(entry)大小为三位。此外,计数器CNT和有效位V可以分别具有两位和一位。因此,在该示例中,每个集合可以具有一个字节,并且每个路径可以使用512KB存储器,例如512KB BRAM。
查找逻辑820还可以包括分别对应于多个路径911至914的多个比较器921、922、923和924、分别对应于多个路径911至914的多个与(AND)门931、932、933和934、或(OR)门940以及多路复用器950。比较器921至924中的每一个将路径911至914中对应的一个中的标签阵列TAG的输出与传入的I/O请求的标签进行比较,并且根据比较结果输出“1”或“0”。例如,如果标签阵列TAG的输出等于传入的I/O请求的标签,比较器921至924中的每一个可以输出“1”,并且否则可以输出“0”。与门931至934中的每一个在比较器921至924中对应的一个的输出和路径911至914中对应的一个中的有效位V的输出之间执行与操作。换句话说,如果标签阵列TAG的输出等于传入的I/O请求的标签,并且有效位V被设置为“1”,则与门931至934中的每一个可以输出“1”,即高速缓存命中。或门940最终根据与门931至934的输出来输出高速缓存命中或高速缓存未命中。如果与门931至934中的任一个输出“1”,则或门940可以输出“1”,即命中,并且如果所有的与门931至934输出“0”,则或门可以输出“0”,即未命中。多路复用器950可以输出对应于路径911至914中的命中的路径的数量,即,对应于与门输出“1”的路径的数量。
接下来,参考图10至图13描述根据本发明的实施例的存储器系统的I/O操作。
图10是示意性示出根据本发明的实施例的存储器系统中的写入操作的流程图,并且图11和图12示出了根据本发明的实施例的存储器系统中的高速缓存替换。
参考图10,当在步骤S1010中接收到写入请求时,在步骤S1020中,高速缓存控制器(图8的810)从写入请求的地址检测高速缓存索引和标签。在步骤S1030中,查找逻辑(图8和图9的820)基于高速缓存索引和标签来输出高速缓存中的写入请求是否命中。
在一些实施例中,基于写入请求的高速缓存索引,可以在对应于查找逻辑820的每个路径(图9的911至914)中的高速缓存索引的集合中检测标签和有效位。然后,对应于路径911至914的比较器(图9的921至924)中的每一个将检测到的标签与写入请求的标签进行比较,并且比较器921至924中的每一个的比较结果和有效标签可以被转发到与门931至934中对应的一个。当两个标签的比较结果相同并且在相应的路径中有效位为“1”时,与门931至934中的每一个可以输出高速缓存命中,即“1”。当两个标签的比较结果不同或者在相应的路径中有效位为“0”时,与门931至934中的每一个可以输出高速缓存未命中,即,“0”。或门940可以根据与门931至934的输出来输出高速缓存命中或高速缓存未命中,并且多路复用器950可以输出对应于高速缓存命中的路径的数量。
在高速缓存命中的情况下(S1030),在步骤S1040中,高速缓存控制器810指示存储器控制器830将数据写入由对应于高速缓存命中的路径指示的高速缓存行,即,DRAM模块。换句话说,高速缓存控制器810可以组成对存储器控制器830的DRAM事务模块831d的写入请求,并且将写入请求传递给存储器控制器830。
在高速缓存未命中的情况下(S1030),在步骤S1050中,高速缓存控制器810检查是否存在空的高速缓存行。换句话说,在步骤S1050中,高速缓存控制器810确定由对应于多个路径911至914中的写入请求的高速缓存索引的多个集合所指示的多个高速缓存行中是否存在空的高速缓存行。当存在空的高速缓存行时,在步骤S1060中,高速缓存控制器810指示存储器控制器830向空的高速缓存行写入数据,并且更新查找逻辑820。换句话说,高速缓存控制器810可以组成对存储器控制器830的DRAM事务模块831d的写入请求,并且将写入请求传递给存储器控制器830。在该情况下,高速缓存控制器810可以更新对应于查找逻辑820中的高速缓存索引的集合的信息。例如,在步骤S1060中,高速缓存控制器可以将对应于空的高速缓存行的集合的标签设置为写入请求的标签,并且将有效位设置为“1”。在一些实施例中,在步骤S1060中,高速缓存控制器810可以更新用于高速缓存替换的对应的集合的计数器CNT。
当不存在空的高速缓存行时(S1050),在步骤S1070中,查找逻辑820检索用于高速缓存替换的牺牲高速缓存行。在一些实施例中,查找逻辑820可以检查路径911至914中的对应的集合的计数器CNT,并检索存储最旧数据的高速缓存行作为牺牲高速缓存行。在步骤S1080中,高速缓存控制器810指示存储器控制器830从牺牲高速缓存行读取牺牲数据并且将牺牲数据写入PRAM模块,并且将写入请求的数据写入牺牲高速缓存行。换句话说,高速缓存控制器810可以通过存储器控制器830的DRAM事务模块831d从牺牲高速缓存行读取牺牲数据,并且通过PRAM事务模块831p将牺牲数据写入PRAM模块。此外,高速缓存控制器810可以通过存储器控制器830的DRAM事务模块831d将写入请求的数据写入牺牲高速缓存行。在该情况下,高速缓存控制器810可以更新对应于查找逻辑820中的高速缓存索引的集合的信息。例如,在步骤S1080中,高速缓存控制器810可以将对应于牺牲高速缓存行的集合的标签设置为写入请求的标签,并且将查找逻辑820中的有效位设置为“1”。在一些实施例中,在步骤S1080中,高速缓存控制器810可以更新对应的集合的计数器CNT。
在一些实施例中,对于高速缓存替换,查找逻辑820可以使用LRU(最近最少使用的)替换。
在一个实施例中,查找逻辑820还可以包括全局计数器。图11示出了预定集合中的多个路径(四个路径)的计数器。如图11所示,每个路径的计数器被设置为初始值(“0”)。每次发生高速缓存访问时,查找逻辑820可以增加全局计数器的计数器值,并且用全局计数器的计数器值更新在其中发生高速缓存访问的路径的计数器。在图11示出的示例中,高速缓存访问按路径3、路径2、路径1和路径4的顺序发生,使得路径3、路径2、路径1和路径4的计数器分别被设置为“1”、“2”、“3”和“4”。在该情况下,如果在预定集合中发生高速缓存未命中,则查找逻辑820检索用于高速缓存替换的牺牲高速缓存行。由于存储在对应于具有最小计数器值的路径(路径3)的高速缓存行中的数据是最旧的数据,因此查找逻辑820可以替换该路径(路径3)的数据。此外,由于高速缓存访问发生在路径3中,因此路径3的计数器可以被设置为“5”。
在该情况下,由于使用了四个路径,因此查找逻辑820执行三次比较以检索具有最小计数器值的路径。换句话说,对于查找逻辑820需要至少三个时钟周期来找到具有最小计数器值的路径。此外,查找逻辑820应当维护每个集合的全局计数器以管理计数器值,全局计数器的大小应当足够大以连续增加计数器值,并且应当将许多位分配给每个集合的计数器。
在另一个实施例中,如图12所示,预定集合中的多个路径的计数器可以被设置为不同的初始值。例如,路径1、路径2、路径3和路径4的计数器可以分别被设置为“0”、“1”、“2”和“3”。在该情况下,每次发生高速缓存访问时,查找逻辑820可以将与在其中发生高速缓存访问的路径相比具有更小计数器值的路径的计数器增加1,并且将在其中发生高速缓存访问的路径的计数器值设置为“0”。参考图12示出的示例,当高速缓存访问发生在路径3中时,查找逻辑820可以将路径1和路径2的计数器增加1,以将路径1和路径2的计数器分别设置为“1”和“2”,并且将路径3的计数器设置为“0”。随后,当高速缓存访问发生在路径2中时,查找逻辑820可以将路径1和路径3的计数器增加1,以将路径1和路径3的计数器分别设置为“2”和“1”,并且将路径2的计数器设置为“0”。随后,当高速缓存访问发生在路径4中时,查找逻辑820可以将路径1、路径2和路径3的计数器增加1,以将路径1、路径2和路径3的计数器分别设置为“3”、“1”和“2”,并且将路径4的计数器设置为“0”。随后,当在预定集合中发生高速缓存未命中时,查找逻辑820检索用于高速缓存替换的牺牲高速缓存行。在该情况下,由于存储在对应于具有最大计数器值(即,“3”)的路径1的高速缓存行中的数据是最旧的数据,因此查找逻辑820可以替换路径1的数据。此外,由于高速缓存访问发生在路径1中,因此路径2、路径3和路径4的计数器可以增加1以分别被设置为“2”、“3”和“1”,并且路径1的计数器可以被设置为“0”。
这样,根据参考图12描述的实施例,查找逻辑820可以在一个时钟周期内返回牺牲高速缓存行,因为它检索具有预定计数器值的路径,例如3(即,通过从路径数量中减去1获得的值),而不比较路径中的计数器值。此外,由于每个集合的计数器具有对应于路径的数量的位数(例如,四个路径中的2位),因此可以减小每个集合的条目大小,并且可以省略全局计数器。此外,用于更新计数器的时钟周期对于主机来说是不可见的,因为它们与DRAM模块或PRAM模块中的操作等待时间重叠。
如上所述,根据本发明的实施例,当高速缓存未命中发生时,可以在短时间内(例如,在一个时钟周期内)搜索牺牲高速缓存行。
图13是示意性地示出了根据本发明的实施例的存储器系统中的读取操作的流程图。
参考图13,当在步骤S1310中接收到读取请求时,在步骤S1320中,高速缓存控制器(图8的810)从读取请求的地址检测高速缓存索引和标签。在步骤S1330中,查找逻辑(图8和图9的820)基于高速缓存索引和标签来输出高速缓存中的读取请求是否命中。
在一些实施例中,基于读取请求的高速缓存索引,可以在对应于查找逻辑820的每个路径(图9的911至914)中的高速缓存索引的集合中检测标签和有效位。然后,对应于路径911至914的比较器(图9的921至924)中的每一个将检测到的标签与读取请求的标签进行比较,并且比较器921至924中的每一个的比较结果和有效标签可以被转发到与门931至934中相应的一个。当两个标签的比较结果相同并且在对应的路径中有效位为“1”时,与门931至934中的每一个可以输出高速缓存命中,即,“1”。当两个标签的比较结果不同或者在相应的路径中有效位为“0”时,与门931至934中的每一个可以输出高速缓存未命中,即,“0”。或门940可以根据与门931至934的输出来输出高速缓存命中或高速缓存未命中,并且多路复用器950可以输出对应于高速缓存命中的路径的数量。
在高速缓存命中的情况下(S1330),在步骤S1340中,高速缓存控制器810指示存储器控制器830从由对应于高速缓存命中的路径指示的高速缓存行读取数据。换句话说,高速缓存控制器810可以组成对存储器控制器830的DRAM事务模块831d的读取请求,并且将读取请求传递给存储器控制器830。
在高速缓存未命中的情况下(S1330),在步骤S1350中,高速缓存控制器810检查PRAM模块上是否有正在进行的写入。换句话说,高速缓存控制器810检查将高速缓存中存储的数据写入PRAM模块的高速缓存移出或持续操作是否正在进行中(S1350)。当没有正在进行的写入时,在步骤S1360中,高速缓存控制器810通过存储器控制器830的PRAM事务模块831p从PRAM模块读取数据。例如,存储器控制器830可以组成对PRAM事务模块831p的读取请求,并且将读取请求传递给存储器控制器830。因此,存储器控制器830能够读取来自PRAM模块的读取请求的数据。
当存在正在进行的写入时,在步骤S1370中,高速缓存控制器810确定对应于正在进行的写入的分区是否与读取请求以其为目标的分区冲突。为此,高速缓存控制器810可以存储与最新写入相关的存储器地址。在一些实施例中,高速缓存控制器810可以将与正在进行的写入相关的存储器地址的高位N位和与读取请求相关的存储器地址的高位N位进行比较。例如,当PRAM模块使用十六个分区时,可以通过存储器地址的高位4位来识别分区数量。因此,高速缓存控制器810可以将与正在进行的写入相关的存储器地址的高位4位和与读取请求相关的存储器地址的高位4位进行比较。在对应于正在进行的写入的分区不同于对应于读取请求的分区的情况下,可以在不与正在进行的写入冲突的情况下提供读取请求。因此,高速缓存控制器810通过存储器控制器830的PRAM事务模块831p从PRAM模块读取数据(S1360)。例如,高速缓存控制器810可以组成对PRAM事务模块831p的读取请求,并且将读取请求传递给存储器控制器830(S1360)。因此,存储器控制器830能够读取来自PRAM模块的读取请求的数据。
在高速缓存移出正在进行并且正在进行的写入与读取请求冲突的情况下,在步骤S1380中,高速缓存控制器可以暂停读取请求,直到正在进行的写入完成。
在一些实施例中,高速缓存控制器810可以根据从主机接收到的围栏请求和高速缓存行清除请求来执行持续操作。当接收到高速缓存行清除请求时,高速缓存控制器810检查查找逻辑820并且将写入数据写入PRAM模块。可以通过在存储器控制设备800中将请求内部转换为移出操作来执行持续操作。在一个实施例中,高速缓存行清除请求可以与地址一起被发出,并且高速缓存控制器810可以将对应于高速缓存行清除请求的地址的写入数据写入PRAM模块。在一个实施例中,围栏请求可以与高速缓存行清除请求一起被发出。一旦接收到围栏请求,高速缓存控制器810可以串行化写入的顺序。在一个实施例中,如果在围栏请求之后接收到读取请求,则可以通过未冲突的分区来提供读取请求。因此,即使在高速缓存行清除请求之后,主机也可以通过未冲突的分区来处理数据,而不会出现停滞(stall)。在一个实施例中,如果在高速缓存行清除请求之后接收到写入请求,则I/O服务可以被暂停。
接下来,参考图14描述使用高速缓存行清除请求和围栏请求的实施例。
图14是示意性示出了根据本发明的实施例的存储器系统中的持续操作的流程图。
参考图14,当在步骤S1410中接收到围栏请求时,在步骤S1415中,高速缓存控制器(图8的810)设置标志。当在步骤S1420中接收到高速缓存行清除请求时,在步骤S1425中,高速缓存控制器810基于清除请求的地址来确定清除请求是否在高速缓存中命中。在一些实施例中,高速缓存控制器810可以从清除请求的地址检测高速缓存索引和标签,并且查找逻辑(图8和图9的820)可以基于高速缓存索引和标签来输出清除请求是否在高速缓存中命中。在高速缓存命中的情况下,在S1430中,高速缓存控制器810执行高速缓存移出。
当在步骤S1440中接收到读取请求时,高速缓存控制器810执行如参考图13的步骤S1320至S1380描述的读取操作。
在一个实施例中,当在步骤S1450中接收到写入请求时,高速缓存控制器810可以执行如参考图10的步骤S1020至S1080所描述的写入操作。
在另一实施例中,当在步骤S1450中接收到写入请求时,在步骤S1455中,高速缓存控制器810确定写入请求是否在高速缓存中命中。在一些实施例中,高速缓存控制器810可以从写入请求的地址检测高速缓存索引和标签,并且查找逻辑820可以基于高速缓存索引和标签来输出写入请求是否在高速缓存中命中。
在高速缓存命中的情况下(S1455),在步骤S1460中,高速缓存控制器810确定是否设置了标志并且对PRAM模块的写入是否正在进行中。如果在步骤S1460中设置了标志,并且对PRAM模块的写入正在进行中(即,根据围栏请求和清除请求,移出正在进行中),则在步骤S1465中,高速缓存控制器810等待,直到对PRAM模块的写入完成。如果对PRAM模块的写入完成,则在步骤S1470中,高速缓存控制器810指示存储器控制器830将数据写入由对应于高速缓存命中的路径指示的高速缓存行,即,DRAM模块。在一些实施例中,高速缓存控制器810可以更新查找逻辑。如果标志未被设置或者对PRAM模块的写入没有正在进行中(S1460),则在步骤S1470中,高速缓存控制器指示存储器控制器830将数据写入DRAM模块。
在高速缓存未命中的情况下(S1455),在步骤S1480中,高速缓存控制器810检查是否存在空的高速缓存行。如果存在空的高速缓存行(S1480),则可以执行步骤S1460之后的操作。如果不存在空的高速缓存行(S1480),则在步骤S1485中,高速缓存控制器810确定对PRAM模块的写入是否正在进行中。如果对PRAM模块的写入正在进行中(S1485),则高速缓存控制器810等待直到对PRAM模块的写入完成。如果对PRAM模块的写入完成,则在步骤S1490中,高速缓存控制器810读取牺牲高速缓存行的数据,并且将数据写入PRAM模块。此外,高速缓存控制器810指示存储器控制器830将写入请求的数据写入牺牲高速缓存行,并且释放标志。此外,在步骤S1490中,高速缓存控制器810可以更新查找逻辑820。
通常,在清除请求和围栏请求都被使用的情况下,当接收到围栏请求时,主机应当停滞,直到根据先前清除请求的操作完成。然而,根据本发明的实施例,根据清除请求的操作在后台被执行,并且当标志由围栏请求设置时,该操作变成前台任务。因此,在围栏请求之后在接收到写入请求之前,可以在未冲突的分区中提供读取请求。
如上所述,根据本发明的实施例,由于首先在高速缓存中提供写入,而不是在具有长的写入等待时间的PRAM模块中,PRAM模块的长的写入等待时间可以被隐藏。此外,由于即使当对于高速缓存移出或持续操作正在进行写入时,也可以在未冲突的分区中提供读取,因此在写入等待时间期间可以并行处理大量读取请求。
虽然已经结合目前被认为是实际的示例性实施例的实施例描述了本发明,但应理解的是,本发明不限于公开的实施例,而是相反地,旨在覆盖包括在所附权利要求的精神和范围内的各种修改和等效布置。
Claims (21)
1.一种存储器控制设备,所述存储器控制设备被配置为连接到第一存储器模块和用作高速缓存的第二存储器模块,所述第一存储器模块包括电阻切换存储器单元阵列,所述电阻切换存储器单元阵列被划分为包括第一分区和第二分区的多个分区,所述存储器控制设备包括:
存储器控制器,所述存储器控制器访问所述第一存储器模块和所述第二存储器模块;
查找逻辑,所述查找逻辑管理所述第二存储器模块的多个高速缓存行的标签信息,所述多个高速缓存行分别对应于多个高速缓存索引;以及
高速缓存控制器,所述高速缓存控制器:
将读取请求的地址拆分成至少第一高速缓存索引和第一标签;
基于所述第一高速缓存索引和所述第一标签通过参考所述查找逻辑来确定所述读取请求是高速缓存命中还是高速缓存未命中;以及
在所述读取请求是所述高速缓存未命中并且对所述第一分区的写入正在进行的情况下,当所述读取请求以所述第二分区为目标时,指示所述存储器控制器从所述第一存储器模块读取所述读取请求的目标数据。
2.根据权利要求1所述的存储器控制设备,其中,在所述读取请求是所述高速缓存未命中并且对所述第一分区的写入正在进行的情况下,当所述读取请求以所述第一分区为目标时,所述高速缓存控制器暂停所述读取请求。
3.根据权利要求1所述的存储器控制设备,其中,当所述读取请求是所述高速缓存命中时,所述高速缓存控制器指示所述存储器控制器从所述第二存储器模块读取所述目标数据。
4.根据权利要求1所述的存储器控制设备,其中,所述高速缓存控制器:
将写入请求的地址拆分成至少第二高速缓存索引和第二标签;
基于所述第二高速缓存索引和所述第二标签通过参考所述查找逻辑来确定所述写入请求是高速缓存命中还是高速缓存未命中;以及
当所述写入请求是所述高速缓存未命中时,通过参考所述查找逻辑来检查所述第二存储器模块中是否存在空的高速缓存行。
5.根据权利要求4所述的存储器控制设备,其中,当不存在空的高速缓存行时,所述高速缓存控制器:
通过参考所述查找逻辑在所述多个高速缓存行中检索牺牲高速缓存行;以及
指示所述存储器控制器从所述第二存储器模块的所述牺牲高速缓存行读取牺牲数据、将所述牺牲数据写入所述第一存储器模块并且将所述写入请求的目标数据写入所述第二存储器模块的所述牺牲高速缓存行。
6.根据权利要求5所述的存储器控制设备,其中,所述查找逻辑包括多个路径,
其中,每个路径包括分别对应于所述多个高速缓存索引的多个集合,
其中,每个集合包括计数器,并且
其中,所述高速缓存控制器选择由一路径指示的高速缓存行作为所述牺牲高速缓存行,在该路径中,所述计数器在对应于所述多个集合中的所述第二高速缓存索引的目标集合处具有预定值。
7.根据权利要求6所述的存储器控制设备,其中,每当在所述目标集合中发生高速缓存访问时,所述查找逻辑将对应于在其中发生所述高速缓存访问的路径的所述计数器设置为零,并且将对应于另一路径的所述计数器增加一,并且
其中,所述预定值是通过从所述多个路径的数量中减去一而获得的值。
8.根据权利要求4所述的存储器控制设备,其中,当所述空的高速缓存行存在时,所述高速缓存控制器指示所述存储器控制器将所述写入请求的所述目标数据写入所述第二存储器模块的所述空的高速缓存行,并且更新所述查找逻辑。
9.根据权利要求4所述的存储器控制设备,其中,当所述写入请求是所述高速缓存命中时,所述高速缓存控制器指示所述存储器控制器将所述写入请求的所述目标数据写入所述第二存储器模块。
10.根据权利要求1所述的存储器控制设备,其中,正在进行的所述写入是根据高速缓存移出的写入。
11.根据权利要求1所述的存储器控制设备,其中,正在进行的所述写入是根据高速缓存行清除请求和围栏请求的持续操作的写入。
12.根据权利要求11所述的存储器控制设备,其中,所述高速缓存控制器甚至在所述围栏请求之后执行读取操作。
13.一种存储器系统,包括:
根据权利要求1所述的存储器控制设备;
所述第一存储器模块;以及
所述第二存储器模块。
14.一种存储器控制设备,所述存储器控制设备被配置为连接到包括电阻切换存储器的第一存储器模块和用作高速缓存的第二存储器模块,所述存储器控制设备包括:
存储器控制器,所述存储器控制器访问所述第一存储器模块和所述第二存储器模块;
查找逻辑,所述查找逻辑包括多个路径,每个路径包括分别对应于多个高速缓存索引的多个集合,每个集合包括标签信息和计数器,并且所述多个高速缓存索引分别对应于所述第二存储器模块的多个高速缓存行;以及
高速缓存控制器,所述高速缓存控制器:
将写入请求的地址拆分成至少第一高速缓存索引和第一标签;
基于所述第一高速缓存索引和所述第一标签通过参考所述查找逻辑来确定所述写入请求是高速缓存命中还是高速缓存未命中;以及
当所述写入请求是所述高速缓存未命中并且所述第二存储器模块中不存在空的高速缓存行时,选择由一路径指示的高速缓存行作为牺牲高速缓存行并且指示所述存储器控制器将所述牺牲高速缓存行的牺牲数据写入所述第一存储器模块,在该路径中,所述计数器在对应于所述多个集合中的所述第一高速缓存索引的目标集合处具有预定值。
15.根据权利要求14所述的存储器控制设备,其中,每当在所述目标集合中发生高速缓存访问时,所述查找逻辑将对应于在其中发生所述高速缓存访问的路径的所述计数器设置为零,并且将对应于另一路径的所述计数器增加一,并且
其中,所述预定值是通过从所述多个路径的数量中减去一而获得的值。
16.根据权利要求14所述的存储器控制设备,其中,所述第一存储器模块包括被划分成包括第一分区和第二分区的多个分区的存储器单元阵列,并且
其中,所述高速缓存控制器:
将读取请求的地址拆分成至少第二高速缓存索引和第二标签;
基于所述第二高速缓存索引和所述第二标签通过参考所述查找逻辑来确定所述读取请求是高速缓存命中还是高速缓存未命中;并且
在所述读取请求是所述高速缓存未命中并且对所述第一分区的写入正在进行的情况下,当所述读取请求以所述第二分区为目标时,指示所述存储器控制器从所述第一存储器模块读取所述读取请求的目标数据。
17.根据权利要求16所述的存储器控制设备,其中,在所述读取请求是所述高速缓存未命中并且对所述第一分区的写入正在进行的情况下,当所述读取请求以所述第一分区为目标时,所述高速缓存控制器暂停所述读取请求。
18.根据权利要求16所述的存储器控制设备,其中,当所述读取请求是所述高速缓存命中时,所述高速缓存控制器指示所述存储器控制器从所述第二存储器模块读取所述读取请求的所述目标数据。
19.一种存储器系统,包括:
根据权利要求14所述的存储器控制设备;
所述第一存储器模块;以及
所述第二存储器模块。
20.一种存储器控制设备,所述存储器控制设备被配置为连接到第一存储器模块和用作高速缓存的第二存储器模块,所述第一存储器模块包括电阻切换存储器单元阵列,所述电阻切换存储器单元阵列被划分为包括第一分区和第二分区的多个分区,所述存储器控制设备包括:
存储器控制器,所述存储器控制器访问所述第一存储器模块和所述第二存储器模块;
查找逻辑,所述查找逻辑包括多个路径并且管理所述第二存储器模块的多个高速缓存行的标签信息,每个路径包括分别对应于所述多个高速缓存索引的多个集合,并且所述多个高速缓存索引分别对应于所述多个高速缓存行;以及
高速缓存控制器,所述高速缓存控制器将请求的地址拆分成至少目标高速缓存索引和目标标签,并且基于所述目标高速缓存索引和所述目标标签通过参考所述查找逻辑来确定所述请求是高速缓存命中还是高速缓存未命中,
其中,在所述请求是所述高速缓存未命中的情况下,所述高速缓存控制器:
当所述请求是读取请求、对所述第一分区的写入正在进行并且所述读取请求以所述第二分区为目标时,指示所述存储器控制器从所述第一存储器模块读取所述读取请求的目标数据;以及
当所述请求是写入请求并且在所述第二存储器模块中不存在空的高速缓存行时,在一个时钟周期内检测对应于所述多个集合中的所述目标高速缓存索引的目标集合中的所述多个路径中的目标路径,选择所述目标集合中的所述目标路径的高速缓存行作为牺牲高速缓存行,并且指示所述存储器控制器将所述牺牲高速缓存行的牺牲数据写入所述第一存储器模块以及将所述写入请求的目标数据写入所述牺牲高速缓存行。
21.一种存储器系统,包括:
根据权利要求20所述的存储器控制设备;
所述第一存储器模块;以及
所述第二存储器模块。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180042372 | 2018-04-11 | ||
KR10-2018-0042372 | 2018-04-11 | ||
KR1020180067739A KR101936951B1 (ko) | 2018-04-11 | 2018-06-12 | 메모리 제어 장치 및 이를 포함하는 메모리 시스템 |
KR10-2018-0067739 | 2018-06-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110362507A true CN110362507A (zh) | 2019-10-22 |
Family
ID=65028254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910225189.7A Pending CN110362507A (zh) | 2018-04-11 | 2019-03-25 | 存储器控制设备和包括该设备的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (3) | US10664394B2 (zh) |
KR (1) | KR101936951B1 (zh) |
CN (1) | CN110362507A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865811A (zh) * | 2020-06-24 | 2020-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备及介质 |
CN115087944A (zh) * | 2020-02-25 | 2022-09-20 | 高通股份有限公司 | 系统物理地址大小感知高速缓存存储器 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11526441B2 (en) | 2019-08-19 | 2022-12-13 | Truememory Technology, LLC | Hybrid memory systems with cache management |
US11055220B2 (en) * | 2019-08-19 | 2021-07-06 | Truememorytechnology, LLC | Hybrid memory systems with cache management |
US11223575B2 (en) * | 2019-12-23 | 2022-01-11 | Advanced Micro Devices, Inc. | Re-purposing byte enables as clock enables for power savings |
CN114157621A (zh) * | 2020-09-07 | 2022-03-08 | 华为技术有限公司 | 一种发送清除报文的方法及装置 |
US11947453B2 (en) | 2020-10-19 | 2024-04-02 | Micron Technology, Inc. | Memory device with on-die cache |
US11636893B2 (en) * | 2020-10-19 | 2023-04-25 | Micron Technology, Inc. | Memory device with multiple row buffers |
US12045495B2 (en) * | 2021-08-05 | 2024-07-23 | Micron Technology, Inc. | Read latency and suspend modes |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728112A (zh) * | 2004-06-30 | 2006-02-01 | 英特尔公司 | 用于对芯片多处理器的共享高速缓存器分区的设备和方法 |
US20060143412A1 (en) * | 2004-12-28 | 2006-06-29 | Philippe Armangau | Snapshot copy facility maintaining read performance and write performance |
WO2007031696A1 (en) * | 2005-09-13 | 2007-03-22 | Arm Limited | Cache miss detection in a data processing apparatus |
US20120173809A1 (en) * | 2011-01-05 | 2012-07-05 | Tae-Kyeong Ko | Memory Device Having DRAM Cache and System Including the Memory Device |
CN104025060A (zh) * | 2011-09-30 | 2014-09-03 | 英特尔公司 | 支持近存储器和远存储器访问的存储器通道 |
CN104536911A (zh) * | 2014-12-31 | 2015-04-22 | 华为技术有限公司 | 一种多路组相联的高速缓冲存储器及其处理方法 |
CN107423230A (zh) * | 2016-05-20 | 2017-12-01 | 三星电子株式会社 | 存储器模块、具有其的计算系统及测试其标签错误的方法 |
CN107491397A (zh) * | 2016-06-08 | 2017-12-19 | 三星电子株式会社 | 存储设备、存储模块和存储设备的操作方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266367B2 (en) | 2003-12-02 | 2012-09-11 | Super Talent Electronics, Inc. | Multi-level striping and truncation channel-equalization for flash-memory system |
US6240040B1 (en) | 2000-03-15 | 2001-05-29 | Advanced Micro Devices, Inc. | Multiple bank simultaneous operation for a flash memory |
KR100552429B1 (ko) | 2004-02-11 | 2006-02-20 | 전주식 | 계층적 메모리 구조 프로세서 장치 및 그 프로세싱 방법 |
US8566507B2 (en) | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
KR101047052B1 (ko) | 2009-05-28 | 2011-07-06 | 주식회사 하이닉스반도체 | 상변화 메모리 장치 및 이를 위한 테스트 회로 |
US8250332B2 (en) | 2009-06-11 | 2012-08-21 | Qualcomm Incorporated | Partitioned replacement for cache memory |
US8200902B2 (en) * | 2010-06-10 | 2012-06-12 | Arm Limited | Cache device for coupling to a memory device and a method of operation of such a cache device |
US8825982B2 (en) * | 2010-06-10 | 2014-09-02 | Global Supercomputing Corporation | Storage unsharing |
US8645637B2 (en) * | 2010-11-16 | 2014-02-04 | Micron Technology, Inc. | Interruption of write memory operations to provide faster read access in a serial interface memory |
CN102521151A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 数据缓存方法和装置 |
KR101474842B1 (ko) | 2013-05-16 | 2014-12-19 | 이화여자대학교 산학협력단 | 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치 |
US9471494B2 (en) * | 2013-12-20 | 2016-10-18 | Intel Corporation | Method and apparatus for cache line write back operation |
US9336047B2 (en) * | 2014-06-30 | 2016-05-10 | International Business Machines Corporation | Prefetching of discontiguous storage locations in anticipation of transactional execution |
US9812200B2 (en) * | 2014-07-08 | 2017-11-07 | Adesto Technologies Corporation | Concurrent read and write operations in a serial flash device |
KR102646619B1 (ko) | 2016-02-05 | 2024-03-11 | 삼성전자주식회사 | 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 |
KR102701812B1 (ko) | 2016-07-27 | 2024-09-03 | 에스케이하이닉스 주식회사 | 휘발성 메모리를 캐쉬로 사용하는 비휘발성 메모리 시스템 |
US10540281B2 (en) * | 2017-01-17 | 2020-01-21 | Arm Limited | Cache allocation based on quality-of-service monitoring |
-
2018
- 2018-06-12 KR KR1020180067739A patent/KR101936951B1/ko active IP Right Grant
-
2019
- 2019-01-17 US US16/250,343 patent/US10664394B2/en active Active
- 2019-03-25 CN CN201910225189.7A patent/CN110362507A/zh active Pending
-
2020
- 2020-04-28 US US16/860,801 patent/US11288192B2/en active Active
-
2022
- 2022-02-24 US US17/679,654 patent/US11809317B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728112A (zh) * | 2004-06-30 | 2006-02-01 | 英特尔公司 | 用于对芯片多处理器的共享高速缓存器分区的设备和方法 |
US20060143412A1 (en) * | 2004-12-28 | 2006-06-29 | Philippe Armangau | Snapshot copy facility maintaining read performance and write performance |
WO2007031696A1 (en) * | 2005-09-13 | 2007-03-22 | Arm Limited | Cache miss detection in a data processing apparatus |
US20120173809A1 (en) * | 2011-01-05 | 2012-07-05 | Tae-Kyeong Ko | Memory Device Having DRAM Cache and System Including the Memory Device |
CN104025060A (zh) * | 2011-09-30 | 2014-09-03 | 英特尔公司 | 支持近存储器和远存储器访问的存储器通道 |
CN104536911A (zh) * | 2014-12-31 | 2015-04-22 | 华为技术有限公司 | 一种多路组相联的高速缓冲存储器及其处理方法 |
CN107423230A (zh) * | 2016-05-20 | 2017-12-01 | 三星电子株式会社 | 存储器模块、具有其的计算系统及测试其标签错误的方法 |
CN107491397A (zh) * | 2016-06-08 | 2017-12-19 | 三星电子株式会社 | 存储设备、存储模块和存储设备的操作方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115087944A (zh) * | 2020-02-25 | 2022-09-20 | 高通股份有限公司 | 系统物理地址大小感知高速缓存存储器 |
CN111865811A (zh) * | 2020-06-24 | 2020-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备及介质 |
CN111865811B (zh) * | 2020-06-24 | 2022-06-17 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200257624A1 (en) | 2020-08-13 |
US11809317B2 (en) | 2023-11-07 |
KR101936951B1 (ko) | 2019-01-11 |
US11288192B2 (en) | 2022-03-29 |
US10664394B2 (en) | 2020-05-26 |
US20220214969A1 (en) | 2022-07-07 |
US20190317895A1 (en) | 2019-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362507A (zh) | 存储器控制设备和包括该设备的存储器系统 | |
US10452531B1 (en) | Memory controlling device for reconstructing original data using non-blocking code and memory system including the same | |
US7907441B2 (en) | Data management method and mapping table update method in non-volatile memory device | |
KR101656599B1 (ko) | 멀티-레벨 셀 메모리 | |
US8489801B2 (en) | Non-volatile memory with hybrid index tag array | |
US9852792B2 (en) | Non-volatile multi-level-cell memory with decoupled bits for higher performance and energy efficiency | |
US9786389B2 (en) | Memory system | |
CN108475528B (zh) | 写入之前的双分界电压感测 | |
CN107919151A (zh) | 存储器器件及其操作方法,以及存储器系统 | |
US20110055486A1 (en) | Resistive memory devices and related methods of operation | |
Xie et al. | Emerging Memory Technologies. | |
JP5420828B2 (ja) | 半導体記憶装置及びその書き込み制御方法 | |
KR20200002581A (ko) | 메모리 제어 장치 및 이를 포함하는 메모리 시스템 | |
CN109461811B (zh) | 一种crs阻变存储器的混合可重配方法 | |
US8116154B2 (en) | Semiconductor memory device with a write control circuit commonly provided for a plurality of pages | |
KR101831226B1 (ko) | 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법 | |
Rajarajan et al. | A study on the challenges and prospects of pcm based main memory architectures | |
Perez et al. | PPGCC |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191022 |
|
WD01 | Invention patent application deemed withdrawn after publication |