CN117171066A - 使用受害者高速缓存的行锤击缓解 - Google Patents
使用受害者高速缓存的行锤击缓解 Download PDFInfo
- Publication number
- CN117171066A CN117171066A CN202310609520.1A CN202310609520A CN117171066A CN 117171066 A CN117171066 A CN 117171066A CN 202310609520 A CN202310609520 A CN 202310609520A CN 117171066 A CN117171066 A CN 117171066A
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- controller
- data
- recently used
- 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
- 230000000116 mitigating effect Effects 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims abstract description 178
- 238000000034 method Methods 0.000 claims description 40
- 230000008878 coupling Effects 0.000 claims description 13
- 238000010168 coupling process Methods 0.000 claims description 13
- 238000005859 coupling reaction Methods 0.000 claims description 13
- 238000004378 air conditioning Methods 0.000 claims 7
- 230000000694 effects Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 9
- 238000012937 correction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000670 limiting effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 208000032369 Primary transmission Diseases 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 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/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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- 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
- 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/1024—Latency reduction
-
- 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/1028—Power efficiency
-
- 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/1052—Security improvement
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
本申请涉及使用受害者高速缓存的行锤击缓解。行锤攻击利用存储器装置的非预期及不希望的副作用,其中存储器单元通过泄漏电荷在它们之间进行电相互作用,并且可能会改变原始存储器存取中未寻址的附近存储器行的内容。通过使用受害者高速缓存缓解行锤攻击。将数据写入到高速缓存的高速缓存行。将所述高速缓存的最近最少使用的高速缓存行写入到所述受害者高速缓存。
Description
技术领域
本公开大体上涉及半导体存储器及方法,并且更具体来说,涉及用于使用受害者高速缓存的行锤击缓解的设备、系统及方法。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部、半导体、集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如主机数据、错误数据等),并且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等等。非易失性存储器可通过在未供电时保持所存储数据来提供持久数据,并且可包含NAND快闪存储器、NOR快闪存储器、铁电随机存取存储器(FeRAM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等。
存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令及/或指令以在操作计算机或电子系统时供主机使用。举例来说,数据、命令及/或指令可在计算或其它电子系统的操作期间在主机与存储器装置之间传送。控制器可用于管理主机与存储器装置之间的数据、命令及/或指令的传递。
发明内容
本公开的一个方面提供一种用于行锤击缓解的方法,其中所述方法包括:将数据写入到第一高速缓存的高速缓存行;及将最近最少使用的高速缓存行从所述第一高速缓存写入到第二高速缓存的高速缓存行,其中执行将所述最近最少使用的高速缓存行从所述第一高速缓存写入到所述第二高速缓存,作为行锤击缓解操作的一部分。
本公开的另一方面提供一种用于行锤击缓解的设备,其中所述设备包括:控制器;第一高速缓存,其耦合到所述控制器,所述第一高速缓存经配置以根据最近最少使用(LRU)方案操作;第二高速缓存,其耦合到所述控制器,所述第二高速缓存经配置以根据LRU方案操作;及存储器装置,其经由至少一个存储器信道耦合到所述第一高速缓存或所述第二高速缓存,其中所述控制器经配置以:控制将数据写入到所述第一高速缓存的高速缓存行;及控制将所述第一高速缓存的最近最少使用的高速缓存行写入到所述第二高速缓存,作为行锤击缓解操作的一部分。
本公开的另一方面提供一种用于行锤击缓解的系统,其中所述系统包括:存储器控制器,其包括:中央控制器;第一高速缓存,其包括驻存于所述中央控制器上的第一数量的高速缓存行;第二高速缓存,其包括驻存于所述中央控制器上的第二数量的高速缓存行;及存储器装置,其耦合到所述存储器控制器,其中所述存储器控制器经配置以:使数据根据计算高速链路(CXL)协议写入到所述第一高速缓存;及使所述第一高速缓存的最近最少使用的高速缓存行写入到所述第二高速缓存,作为行锤击缓解操作的一部分。
附图说明
图1说明根据本公开的多个实施例的呈包含用于使用受害者高速缓存的行锤击缓解的控制器的计算系统形式的功能框图。
图2说明根据本公开的多个实施例的呈用于使用受害者高速缓存的行锤击缓解的控制器形式的功能框图。
图3是根据本公开的实施例的与用于使用受害者高速缓存的行锤击缓解的实例方法相对应的流程图。
图4是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
描述与使用受害者高速缓存的行锤击缓解相关的系统、设备及方法。在一个实例中,用于使用受害者高速缓存的行锤击缓解的方法包含将数据写入到第一高速缓存的高速缓存行,及将最近最少使用的高速缓存行从第一高速缓存写入到第二高速缓存的高速缓存行。如本文更详细地描述,将最近最少使用的高速缓存行从第一高速缓存写入到第二高速缓存可作为行锤击缓解操作的一部分执行。
行锤攻击通常指代利用非预期及不希望的副作用的安全漏洞,其中存储器单元通过泄漏电荷在它们之间进行电相互作用,从而可能改变原始存储器存取中未寻址的附近存储器行的内容。随着存储器装置趋向于包含密度增加的集成电路且包含物理上较小的存储器单元,这些存储器单元可包含比前几代存储器装置更少的电荷,可能会导致更低的操作噪声裕度、存储器单元之间的电磁相互作用的增加速率及更大的数据丢失可能性。因此,检测、防止及/或校正与行锤攻击相关联的不利影响的策略变得越来越重要。
一些方法试图通过以比传统使用的速率更高的速率刷新存储器单元(例如,通过使用小于64毫秒(ms)的刷新速率)来缓解行锤攻击。然而,与不改变存储器单元的刷新速率的方法相比,这种方法往往导致更高的功耗及增加的处理开销。
其它方法可实施对频繁存取的存储器行的基于计数器的识别,并且寻求基于指示潜在行锤攻击正在发生的计数器值来主动地刷新相邻行。尽管这些方法通常不会遭受上述更简单的方法中固有的功耗及增加的处理开销,但是可能需要额外的电路系统来增加计数器、存储计数器及/或分析计数器以确定是否主动地刷新相邻行。
为了解决这些及其它缺陷,本文中的实施例涉及添加第二高速缓存(例如,“受害者高速缓存”),来自第一高速缓存的条目在写入到第一高速缓存之后写入到所述第二高速缓存。在一些实施例中,第一高速缓存及/或第二高速缓存根据最近最少使用(LRU)高速缓存策略操作,其中首先逐出来自第一高速缓存及/或第二高速缓存的最近最少使用的高速缓存行、其次逐出来自第一高速缓存及/或第二高速缓存的第二最近最少使用高速缓存行,依次类推。如本文所使用,“最近最少使用的高速缓存行”通常指代高速缓存中的高速缓存行(例如,单元集合或寻址),其中相对于高速缓存的其它部分,自所述高速缓存行被存取、读取或写入等以来已经过最长的时间段。因此,最近最少使用的高速缓存行可为高速缓存或高速缓存的部分内的高速缓存行,所述高速缓存行相对于高速缓存或高速缓存的部分中的其它高速缓存行在最长时间段或持续时间内保持相同状态。
通过根据LRU高速缓存策略将高速缓存行从第一高速缓存逐出到第二高速缓存,增加存储任何给定高速缓存行的时间量,从而降低在试图执行行锤攻击时存取(例如,“击打”)高速缓存行的频率。这又可在不改变存储器单元的刷新速率及/或在不使用计数器来确定第一高速缓存及/或第二高速缓存中的高速缓存行的存取频率的情况下缓解尝试的行锤攻击的功效。
另外,本文中的实施例可进一步允许与第一高速缓存及/或第二高速缓存相关联的时延与将存储器装置耦合到第一高速缓存及/或第二高速缓存的信道的时延相匹配。举例来说,与第一高速缓存及/或第二高速缓存相关联的时延可比与将存储器装置耦合到第一高速缓存及/或第二高速缓存的信道相关联的时延小得多。因此,通过将第一高速缓存及/或第二高速缓存的时延和与将存储器装置耦合到第一高速缓存及/或第二高速缓存的信道相关联的时延匹配,增加存储任何给定高速缓存行的时间量,由此降低在试图执行行锤攻击时可“击打”高速缓存行的频率。
此外,本文中的实施例允许在没有来自第一高速缓存及/或第二高速缓存外部的电路系统的命令及/或信令的情况下,或者至少在没有来自其上部署第一高速缓存及/或第二高速缓存的控制器(例如,中央控制器)外部的电路系统的命令及/或信令的情况下执行操作以缓解行锤攻击。与其它方法相比,这可允许消除检测行锤攻击的需要,以缓解行锤攻击。另外,这可减少行锤攻击缓解的一些方法所固有的数据业务(例如,信号及/或命令业务)量,从而改进本公开的实施例在其中操作的计算装置的整体功能。
在一些实施例中,第一高速缓存及/或第二高速缓存可驻存于部署在存储器系统中的存储器控制器上,所述存储器系统中可为符合计算高速链路(CXL)的存储器系统(例如,存储器系统可包含PCIe/CXL接口)。CXL是设计成促进下一代数据中心性能的高速中央处理单元(CPU)到装置和CPU到存储器互连件。CXL技术维持CPU存储器空间与附接装置上的存储器之间的存储器相干性,其允许资源共享以实现较高性能、减小软件堆栈复杂性并且降低总体系统成本。
如本文中所使用,术语“驻存于…上”是指某物在物理上位于特定组件上。举例来说,第一高速缓存及/或第二高速缓存“驻存于”存储器控制器上指代包括第一高速缓存及/或第二高速缓存的硬件电路系统物理地位于存储器控制器上的情况。术语“驻存于…上”可在本文中与例如“部署于…上”或“位于…上”的其它术语互换使用。
随着越来越多地使用加速器来补充CPU以支持新兴应用,例如人工智能及机器学习,CXL被设计成用于高速通信的行业开放标准接口。CXL技术构建在外围组件互连高速(PCIe)基础结构上,其利用PCIe物理及电气接口以在例如输入/输出(I/O)协议、存储器协议(例如,初始允许主机与加速器共享存储器)及相干性接口等领域中提供高级协议。如将了解,根据CXL协议操作的本文所描述的接口可允许本文所描述的存储器系统的某些组件之间每秒至少32千兆的数据传递速率。
图1说明根据本公开的多个实施例的呈包含用于使用受害者高速缓存的行锤击缓解的控制器100的计算系统101形式的功能框图。计算系统101可包含存储器控制器100,其包括前端部分104、中央控制器部分110及后端部分119。计算系统101可包含主机103及存储器装置126、128。
在一些实施例中,存储器控制器100可管理非易失性存储器装置。举例来说,存储器装置126及/或存储器装置128可为非易失性(例如,持久性)存储器装置。非易失性存储器装置的一个实例是“与非”(NAND)存储器装置(也称为快闪技术)。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。平面可被分组为逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND装置),每个平面由物理块集合组成。每一块由页集合组成。每一页由存储器单元(“单元”)集合组成。单元是存储信息的电子电路。在下文中,块指代用于存储数据的存储器装置的单元,且可包含存储器单元群组、字线群组、字线或单独存储器单元。对于一些存储器装置,块(在下文中也称为“存储器块”)是可擦除的最小区域。无法个别地擦除页,且只能擦除整个块。
存储器装置中的每一个可包含一或多个存储器单元阵列。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如,“0”及“1”)或此类值的组合表示。存在各种类型的单元,例如单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)及四层级单元(QLC)。举例来说,SLC可存储一位信息且具有两种逻辑状态。
非易失性存储器装置的其它实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),及各种类型的非易失性双列直插式存储器模块(NVDIMM)等等。
实施例不限于此;然而,在一些实施例中,存储器控制器100可管理具有第一tRAS的DRAM存储器装置126及具有第二tRAS的FeRAM存储器装置128。在一些实施例中,FeRAM存储器装置128的tRAS不同于DRAM存储器装置的tRAS。在一些实施例中,DRAM存储器装置可包含不同于FeRAM存储器装置的其它特征。举例来说,DRAM存储器装置及FeRAM存储器装置在存储器存储体的数量、命令编码的类型、刷新命令、刷新时序或其组合方面不同。此外,在一些实施例中,代替管理DRAM存储器装置126及FeRAM存储器装置128两者,存储器控制器100可经配置以管理仅DRAM存储器装置126或仅FeRAM存储器装置128。
存储器控制器100可具有前端部分104,其包含用于通过输入/输出(I/O)通道102-1、102-2、…、102-N(个别地称为或统称为I/O通道102)将存储器控制器100耦合到主机103的接口,及用于管理I/O通道102的电路系统。在一些实施例中,可存在八(8)个I/O通道102,且在其它实施例中,可存在十六(16)个I/O通道102。在一些实施例中,多个I/O通道102可配置为单个端口。
存储器控制器101可包含中央控制器部分110,其可响应于从主机103接收到请求而控制存储器操作的性能。存储器操作可为从存储器装置126、128读取数据的存储器操作或将数据写入到存储器装置126、128的操作。在一些实施例中,中央控制器部分110可响应于从主机103接收到请求而控制基本上同时写入多个数据页。
中央控制器部分110可包含一或多个高速缓存(例如,本文中在图2中所说明的高速缓存212及/或受害者高速缓存214),用于存储与存储器操作的性能相关的数据,及/或安全组件,用于在数据存储在存储器装置126、存储器装置128及/或一或多个高速缓存中之前对数据进行加密。安全组件的实例可包含但不限于经配置以实施数据加密、数据散列、数据掩蔽及数据令牌化的软件及电路系统。在一些实施例中,响应于从主机103接收到请求,来自主机103的数据可存储在高速缓存的高速缓存行中及/或受害者高速缓存的高速缓存行中,如本文所描述。可在某一时间点将高速缓存及/或受害者高速缓存中的数据写入到存储器装置126、128。在一些实施例中,可在数据存储于高速缓存及/或受害者高速缓存中之前使用高级加密标准(AES)加密对数据进行加密。
中央控制器部分110可包含用于对数据进行ECC编码的错误校正码(ECC)编码电路系统(例如,本文中在图2中所说明的ECC编码电路系统216),及用于对数据进行ECC解码的ECC解码电路系统(例如,本文中在图2中所说明的ECC解码电路系统218)。如本文中所使用,术语“ECC编码”可指代通过将冗余位添加到数据来编码数据。一般来说,编码也可能是非系统的。因此,编码器通常可映射由n(>k)个位组成的码字中的k个位的数据向量,而无需在原始数据与奇偶校验位之间进行显式分离。如本文中所使用,术语“ECC解码”可指代检查ECC编码的数据以检查数据中的任何错误。一般来说,ECC不仅可检测错误,还可校正其能够检测到的错误的子集。ECC编码电路系统可对将写入到存储器装置126及存储器装置128的数据进行编码。在一些实施例中,数据中检测到的错误可在检测后立即校正。ECC解码电路系统可对先前已经ECC编码的数据进行解码。
在一些实施例中,存储器控制器100可包括后端部分119,所述后端部分包括媒体控制器及将存储器控制器100耦合到多个存储器存储体的物理(PHY)层。如本文所使用,术语“PHY层”通常指代计算系统的开放系统互连(OSI)模型中的物理层。PHY层可为OSI模型的第一(例如,最低)层并且可用于通过物理数据传输媒体传送数据。在一些实施例中,物理数据传输媒体可为多个信道125-1、125-2。如本文所使用,术语“存储器存储体”通常指代可同时存取的多个存储器芯片(例如,存储器裸片)。在一些实施例中,信道125可具有十六(16)位数据总线。如果存在连接到信道125的四个16位存储器芯片,则每个存储器芯片可对应于存储器存储体。在这些实施例中,可存在四(4)个存储器存储体。在一些实施例中,四个存储器芯片可为八(8)位存储器芯片,而不是16位存储器芯片。在这些实施例中,两个存储器芯片可组合以形成16位信道并且导致四个存储器芯片形成两个存储器存储体。读取及写入命令可能不会在不同的存储器存储体中同时地执行,因为读取命令及写入命令可使用在多存储体存储器拓扑中共享的数据信道。在一些实施例中,第一类型的存储器装置(例如,存储器装置126)的页大小可大于第二类型的存储器装置(例如,存储器装置128)的页大小。
在一些实施例中,存储器控制器100可包含管理单元134以初始化、配置及/或监测存储器控制器100的特征。管理单元134可包含用于管理带外数据及/或命令的I/O总线、用于执行与初始化、配置及/或监测存储器控制器100的特征相关联的指令的管理单元控制器,及用于存储与初始化、配置及/或监测存储器控制器100的特征相关联的数据的管理单元存储器。如本文中所使用,术语“带外数据及/或命令”通常指代通过不同于网络的主传输媒体的传输媒体传递的数据及/或命令。举例来说,带外数据及/或命令可为使用与用于在网络内传递数据的传输媒体不同的传输媒体传递到网络的数据及/或命令。
图2说明根据本公开的多个实施例的呈用于使用受害者高速缓存的行锤击缓解的存储器控制器200形式的功能框图。存储器控制器200经配置以管理第一类型的存储器装置(例如,可个别地称为或统称为第一类型的存储器装置226的存储器装置226-1、…、226-N)及第二类型的存储器装置(例如,可个别地称为或统称为第二类型的存储器装置228的存储器装置228-1、…、228-N)。
如图2中所示,前端部分204可包含接口206,其包含多个I/O通道202-1、202-2、…、202-N(个别地称为或统称为I/O通道202),以及用于管理接口206的电路系统208。接口206可为耦合到I/O通道202的外围组件互连高速(PCIe)5.0接口。在一些实施例中,存储器控制器200可根据CXL协议经由PCIe 5.0接口206接收涉及高速缓存212、受害者高速缓存214、存储器装置226及/或存储器装置228中的至少一个的存取请求。接口206可通过I/O通道202从主机(例如,图1中所示的主机103)接收数据。接口管理电路系统208可使用CXL协议来管理接口206。
中央控制器部分210可经配置以引起操作的执行以缓解行锤攻击。举例来说,中央控制器部分210可包含用于存储与存储器操作的执行相关联的数据的高速缓存212,及用于存储从高速缓存212逐出的高速缓存行的受害者高速缓存214。如本文所使用,术语“受害者高速缓存”通常指代经设计以减少冲突未命中并改进直接映射高速缓存的命中时延的硬件高速缓存。它用于1级高速缓存(例如,高速缓存212)的再填充路径处,使得从高速缓存212逐出的高速缓存行高速缓存在受害者高速缓存214中。
在一些实施例中,将数据写入到高速缓存212,其中数据根据最近最少使用(LRU)的高速缓存策略组织。与将逐出的高速缓存行写入到存储器装置226及/或存储器装置228的一些方法相比,在本文的实施例中,当从高速缓存212逐出最近最少使用的高速缓存行时,将其写入到受害者高速缓存214。应注意,受害者高速缓存214还可根据LRU高速缓存策略组织。
通过利用LRU高速缓存策略将从高速缓存212逐出的高速缓存行写入到受害者高速缓存214,可增加数据写入到高速缓存212及/或受害者高速缓存214的高速缓存行的时间量,由此提供行锤攻击的缓解。换句话说,由于通过快速地及重复地存取(例如,“击打”)存储数据的存储器位置来使用许多常规的行锤攻击,因此通过根据LRU高速缓存策略将数据(例如,高速缓存行)从高速缓存212移动到受害者高速缓存214,可降低执行成功行锤攻击的可能性。
在一些实施例中,高速缓存212可为包含多个高速缓存行的组相联高速缓存;然而,实施例不限于此,并且在一些实施例中,高速缓存212可为包含多个高速缓存行的直接映射高速缓存。相比之下,受害者高速缓存214可为包含多个高速缓存行的全相联高速缓存。然而,一般来说,受害者高速缓存214含有比高速缓存212更少的高速缓存行。
在一些实施例中,高速缓存212及/或高速缓存214的高速缓存行大小可等于或大于存储器控制器200存取粒度(64字节)。举例来说,每个高速缓存行可包含256个字节的数据。在一些实施例中,每个高速缓存行可包括512个字节的数据,但实施例不限于此。一般来说,CXL存储器系统的读取及写入请求的大小可为64字节。因此,在一些实施例中,高速缓存212中的数据条目可具有64个字节的数据。每个高速缓存行可包括256个字节。因此,多个64字节请求可存储在每个高速缓存行中。响应于来自主机的请求,存储器控制器200可将256个字节的数据写入到高速缓存212,所述数据稍后可写入到受害者高速缓存214,如本文所描述。在一些实施例中,256个字节的数据可以64字节块写入到高速缓存212及/或受害者高速缓存214,但是实施例不限于此。
在非限制性实例中,设备(例如,图1中所说明的存储器系统101)包含例如中央控制器210的控制器。第一高速缓存(例如,高速缓存212)及第二高速缓存(例如,受害者高速缓存214)可耦合到控制器210。如本文所描述,第一高速缓存及/或第二高速缓存可根据LRU方案操作。也就是说,第一高速缓存(例如,高速缓存212)及/或第二高速缓存(例如,受害者高速缓存214)可利用LRU高速缓存策略。
存储器装置(例如,存储器装置226及/或存储器装置228)经由至少一个存储器信道(例如,信道225的至少一个存储器信道)耦合到第一高速缓存及/或第二高速缓存。在此实例中,控制器(例如,中央控制器210)可控制将数据写入到第一高速缓存的高速缓存行及控制将第一高速缓存的最近最少使用的高速缓存行写入到第二高速缓存,作为行锤击缓解操作的一部分,如本文所描述。在一些实施例中,如图2中所示,第一高速缓存及第二高速缓存驻存于存储器控制器200的中央控制器部分210上。
如上文所提及,第一高速缓存可大于第二高速缓存。举例来说,第二高速缓存可包含至少256个高速缓存行,并且第一高速缓存可包含至少两倍于第二高速缓存的高速缓存行(例如,512个高速缓存行或更多)。实施例不限于此;然而,假设第一高速缓存含有比第二高速缓存更大量的高速缓存行。设想实施例,其中第一高速缓存含有256个高速缓存行并且第二高速缓存含有128个高速缓存行。类似地,设想实施例,其中第一高速缓存包含2,048个高速缓存行并且第二高速缓存含有256个高速缓存行。因此,应了解,除了通常第二高速缓存包含比第一高速缓存更少的高速缓存行的条件之外,与第一高速缓存及第二高速缓存相关联的高速缓存行的数量是任意的。
此外,如图2中所示,在一些实施例中,第一高速缓存物理地不同于第二高速缓存。举例来说,在一些实施例中,第一高速缓存及第二高速缓存部署为可通信地耦合到彼此的单独集成电路组件(例如,衬底、ASIC、FPGA等)。作为另一实例,在一些实施例中,第一高速缓存及第二高速缓存可独立地寻址及/或可由控制器存取。
如上文所描述,控制器可为存储器控制器200的中央控制器部分210,其经配置以根据计算高速链路协议操作。因此,在一些实施例中,控制器可经配置以使数据以至少每秒32千兆的速率写入到第一高速缓存。实施例不限于此;然而,在一些实施例中,控制器可经配置以将第二高速缓存的时延与将第一高速缓存或第二高速缓存或两者耦合到存储器装置226、228的至少一个存储器信道225的时延匹配。在此类实施例中,可减小第一高速缓存及/或第二高速缓存之间的时延,以延长潜在存储器存取之间的时间量,由此进一步降低执行成功行锤攻击的可能性。
继续此非限制性实例,第一高速缓存可为直接映射高速缓存或组相联高速缓存,如上文所描述,而第二高速缓存可为全相联高速缓存。由于在整个存储器控制器200中提供全相联高速缓存的成本(例如,功耗、带宽、物理空间等),本公开的各方面规定第二高速缓存(例如,受害者高速缓存214)是全相联高速缓存,而第一高速缓存(例如,高速缓存212)是直接映射高速缓存或组相联高速缓存。通过提供与直接映射高速缓存或组相联高速缓存相结合的全相联受害者高速缓存,可缓解行锤攻击,如本文所描述。
在一些实施例中,控制器可确定不将来自第二高速缓存的最近最少使用的高速缓存行写入到存储器装置并且将第二高速缓存的最近最少使用的高速缓存行写回到第二高速缓存。举例来说,如果确定没有将最近最少使用的高速缓存行逐出到存储器,则最近最少使用的高速缓存行可维持在第二高速缓存中、刷新或重写到第二高速缓存,使得它将变为第二高速缓存的最近最多使用的高速缓存行。
在另一非限制性实例中,系统(例如,图1中所说明的存储器系统101)包含:存储器控制器200,所述存储器控制器包含中央控制器210;第一高速缓存(例如,高速缓存212),所述第一高速缓存包括驻存于中央控制器210上的第一数量的高速缓存行。系统进一步包含第二高速缓存(例如,受害者高速缓存214),所述第二高速缓存包括驻存于中央控制器210上的第二数量的高速缓存行。如本文所论述,第一高速缓存可为直接映射高速缓存或组相联高速缓存,而第二高速缓存可为全相联高速缓存。此外,在一些实施例中,第二高速缓存包含比第一高速缓存更少数量的高速缓存行。在此实例中,存储器控制器200可进一步耦合到存储器装置(例如,本文中在图1及2中说明的存储器装置126、226中的一或多个及/或存储器装置128、228中的一个)。
存储器控制器200及/或中央控制器210可使数据根据计算高速链路(CXL)协议写入到第一高速缓存。举例来说,存储器控制器200及/或中央控制器210可经配置以使数据以至少每秒32千兆的速率写入到第一高速缓存。在一些实施例中,存储器控制器200及/或中央控制器210可使第一高速缓存的最近最少使用的高速缓存行写入到第二高速缓存,作为行锤击缓解操作的一部分。在一些实施例中,第一高速缓存及/或第二高速缓存可根据最近最少使用(LRU)高速缓存策略操作,以实现将第一高速缓存的最近最少使用的高速缓存行写入(例如,逐出)到第二高速缓存,及/或将第二高速缓存的最近最少使用的高速缓存行写入到系统内的不同位置。
举例来说,在一些实施例中,存储器控制器200及/或中央控制器210可确定不将来自第二高速缓存的最近最少使用的高速缓存行写入到存储器装置,并且将第二高速缓存的最近最少使用的高速缓存行写入到第一高速缓存或第二高速缓存。
在一些实施例中,存储器控制器200及/或中央控制器210可利用指令级并行度(ILP)方案以使数据写入到第一高速缓存及/或第二高速缓存。实施例不限于此;然而,在一些实施例中,存储器控制器200及/或中央控制器210可利用存储器级并行度(MLP)方案以使数据写入到第一高速缓存及/或第二高速缓存。如本文所使用,术语“指令级并行度”或“ILP”通常指代存储器系统中或部署存储器系统的计算系统中的一系列指令的并行或同时执行。ILP通常与“并发”不同,因为ILP通常在由计算系统执行的过程的单个线程上操作。此外,如本文所使用,术语“存储器级并行度”或“MLP”通常指代在存储器系统或部署存储器系统的计算系统中同时挂起多个存储器操作的能力,特别是高速缓存未命中及/或转译后备缓冲器(TLB)未命中。
继续此非限制性实例,存储器控制器210可执行操作以将第二高速缓存的时延与将存储器控制器210耦合到存储器装置的存储器信道(例如,信道225)的时延匹配。举例来说,如本文所描述,可减小第一高速缓存及/或第二高速缓存之间的时延以延长潜在存储器存取之间的时间量,由此进一步降低可能行锤攻击的功效。
如图2中所示,中央控制器部分210可包含安全组件214,以在将数据存储在存储器装置226及/或存储器装置228中之前对数据进行加密,并且在将数据传递到高速缓存212之前对数据进行解密。可将数据从高速缓存212及/或从受害者高速缓存214传递到存储器装置226及/或存储器装置228。如先前所述,安全组件214可使用AES加密对数据进行加密。在一些实施例中,安全组件214可对写入到存储器装置228的数据进行加密,但是可不对写入到存储器装置226的数据进行加密。可对写入到存储器装置228的数据进行加密,因为存储器装置228可具有存储器装置226不具有的安全性缺陷。当不使用安全组件214时,例如当将数据写入到存储器装置226时,可绕过所述安全组件。在一些实施例中,可启用或停用安全组件214。举例来说,当将存储器写入到例如存储器装置228的持久性存储器装置时,可启用安全组件214。
如图2中所示,中央控制器部分210可包含错误校正码(ECC)电路系统以对数据进行ECC编码并且对数据进行ECC解码。在一些实施例中,存储器控制器210可实施低功率芯片猎杀(LPCK)错误校正。如本文所使用,术语“芯片猎杀”通常指代保护存储器系统(例如,图1中所示的存储器系统101)免受任何单个存储器芯片故障以及单个存储器芯片的任何部分的多位错误的影响的一种形式的错误校正。在一些实施例中,LPCK电路系统可增加数据的稳定性且校正数据中的错误。芯片猎杀保护的一种方法是即时校正实施方案。即时校正可从多个存储器裸片中的每一个的四(4)位符号中形成多个码字。举例来说,如果存在各自含有4个单独位符号的十一(11)个裸片,其中每个位符号含有4个位,则11个裸片可形成4个码字,每个码字具有11个单独位符号,包括总共四十四(44)个位。
在一些实施例中,第一码字可包括每个裸片的第一位符号,第二码字可包括每个裸片的第二位符号,第三码字可包括每个裸片的第三位符号,并且第四码字可包括每个裸片的第四位符号。换句话说,码字的八个数据位符号和3个奇偶校验位符号可存储在十一(11)个裸片中。11个裸片中的八(8)个可含有数据位符号,并且11个裸片中的三(3)个剩余裸片可包含奇偶校验位符号。添加3个奇偶校验位符号可允许中央控制器部分210在每个码字中校正多达一个符号错误并且检测多达两个符号错误。如果代替添加3个奇偶校验位符号,添加仅两(2)个奇偶校验位,则中央控制器部分210可校正多达一个符号错误,但仅检测一个符号错误。在一些实施例中,数据位符号及奇偶校验位符号可由ECC编码电路系统216及ECC解码电路系统218同时写入或从11个裸片读取。如果裸片中的每个位符号失效,则仅来自码字中的所述裸片的位符号将失效。这允许尽管一个裸片完全失效也可重建存储器内容。
如图2中所示,存储器控制器200可包含后端部分219,所述后端部分包含:媒体控制器部分220,其包括多个媒体控制器;及物理(PHY)层部分222,其包括多个PHY层224-1、224-2、224-N、…、224-(N+1)(个别地称为或统称为PHY层224)。在一些实施例中,后端部分219经配置以将PHY层部分222耦合到第一存储器装置226的多个存储器存储体230-1、…、230-N(个别地称为或统称为存储器存储体230)及第二存储器装置228-1、…、228-N(个别地称为或统称为第二存储器装置228)的多个存储器存储体232-1、…、232-M(个别地称为或统称为存储器存储体232)。媒体控制器220可包含打开页策略及关闭页策略。如本文所使用,术语“打开页策略”通常指代允许存储器控制器(例如,媒体控制器220)在执行读取操作或写入操作之后使存储器页打开特定时间量的策略。如本文所使用,术语“关闭页策略”通常指代确保在执行读取操作或写入操作之后立即关闭存储器页的策略。在一些实施例中,FeRAM存储器装置228可实施关闭页策略,额外要求是FeRAM存储器装置228的tRAS及其它时序不同于DRAM时序。
在使用LPCK错误校正的实施例中,媒体控制器部分220可为单个媒体控制器220。当实施LPCK错误校正时,可同时驱动多个信道225-1、225-2、225-N、…、225-(N+1)(个别地称为或统称为多个信道225)以将数据写入到DRAM存储器装置226及/或FeRAM存储器装置228。在一些实施例中,代替使用单个媒体控制器220,多个媒体控制器可用于驱动LPCK架构中的多个信道225。当多个媒体控制器用于同时驱动信道225时,基本上同时利用媒体控制器。
如本文中所使用,术语“基本上”意指特征不需要是绝对的,而是足够接近以便实现所述特征的优点。举例来说,“基本上同步”不限于绝对同步执行的操作并且可包含意在同时但归因于制造限制可能并不精确地同步的时序。举例来说,由于可由各种接口(例如,LPDDR5与PCIe)显现的读取/写入延迟,“基本上同时”利用的媒体控制器可能并不精确地在同一时间开始或结束。举例来说,可利用多个存储器控制器以使得其在同一时间将数据写入到存储器装置而不考虑媒体控制器中的一个是否在其它媒体控制器之前开始或终止。
多个媒体控制器中的每一者可接收相同命令及地址,且基本上同时驱动多个信道225。通过使用用于多个媒体控制器的相同命令及地址,多个媒体控制器中的每一者可利用多个信道225对相同多个存储器单元执行相同存储器操作。
后端部分222可包含多个PHY层224及媒体控制器部分220,所述媒体控制器部分经配置以驱动将PHY层224耦合到存储器存储体230、232的信道225。在一些实施例中,存储器存储体230、232可为DRAM存储器存储体230及/或FeRAM存储器存储体232。在一些实施例中,存储器控制器200可通过耦合到后端部分219的信道225耦合到存储器存储体230、232,并且信道225中的每一个耦合到四(4)个存储器存储体230、232。
存储器控制器200可包含管理单元234,所述管理单元经配置以初始化、配置及/或监测存储器控制器200的特征。在一些实施例中,管理单元234包含用于管理带外数据及/或命令的I/O总线238、用于执行与初始化、配置及/或监测存储器控制器200的特征相关联的指令的管理单元控制器240,及用于存储与管理及/或监测存储器控制器200的特征相关联的代码及/或数据的管理单元存储器242。管理单元234的端点可暴露于主机系统(例如,图1中展示的主机103)以管理数据。在一些实施例中,由管理单元234监测的特征可包含供应到存储器控制器200的电压或由外部传感器测量的温度或两者。此外,管理单元234可包含高级高性能总线(AHB)互连件236以耦合管理单元234的不同组件。
如上所陈述,I/O总线238可经配置以传递带外数据及/或命令。在一些实施例中,I/O总线238可为系统管理总线(SMBus)。如本文所使用,术语“SMBus”通常指代用于轻量级通信目的的单端简单双线式总线。此外,管理单元234可包含用于管理带内数据的电路系统。如本文所使用,术语“带内数据”通常指代通过例如局域网(LAN)的网络内的主传输媒体传递的数据。
管理单元234可包含管理单元控制器240。在一些实施例中,管理单元控制器240可为满足联合测试行动组(JTAG)标准并且根据内部集成电路(I2C或I3C)协议及辅助I/O电路系统操作的控制器。如本文所使用,术语“JTAG”通常指代用于在制造之后验证设计及测试印刷电路板的行业标准。如本文所使用,术语“I2C”通常指代用于双线接口以连接如同微控制器、I/O接口及嵌入系统中的其它类似外围设备的低速装置的串行协议。在一些实施例中,辅助I/O电路系统可将管理单元234耦合到存储器控制器200。此外,用于操作管理单元的固件可存储在管理单元存储器242中。在一些实施例中,管理单元存储器242可为快闪存储器,例如快闪NOR存储器或其它持久性快闪存储器装置。
图3是根据本公开的多个实施例的与用于使用受害者高速缓存的行锤击缓解的实例方法350相对应的流程图。方法350可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅理解为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作352处,方法350包含将数据写入到第一高速缓存的高速缓存行。第一高速缓存可类似于本文中图2中所说明的高速缓存212。因此,在一些实施例中,方法350可包含根据计算高速链路(CXL)协议将数据写入到第一高速缓存的高速缓存行,如本文所描述。
在操作354处,方法350包含将最近最少使用的高速缓存行从第一高速缓存写入到第二高速缓存的高速缓存行。第二高速缓存可类似于本文中图2中所说明的受害者高速缓存214。如本文所描述,第一高速缓存可包括比第二高速缓存更多数量的高速缓存行。在一些实施例中,执行将最近最少使用的高速缓存行从第一高速缓存写入到第二高速缓存,作为行锤击缓解操作的一部分。
如本文所描述,在一些实施例中,第一高速缓存是直接映射高速缓存或组相联高速缓存,并且第二高速缓存是全相联高速缓存。此外,如本文所描述,第一高速缓存及第二高速缓存可各自根据最近最少使用(LRU)高速缓存策略操作。如上文所论述,根据LRU高速缓存策略操作第一高速缓存及/或第二高速缓存可确保从第一高速缓存及/或第二高速缓存逐出的高速缓存行与第一高速缓存及/或第二高速缓存的其它高速缓存行相比较不频繁地进行存取,从而促进改进的行锤攻击缓解。
方法350可进一步包含将第二高速缓存的时延与将第一高速缓存及/或第二高速缓存耦合到存储器装置(例如,本文中图1及2中所说明的存储器装置126、226及/或128、228)的信道的时延匹配。在一些实施例中,信道可类似于本文中的图1及2中所说明的信道125、225中的一个。通过将第二高速缓存的时延与将第一高速缓存及/或第二高速缓存耦合到存储器装置的信道的时延匹配,可至少提供改进的行锤击缓解,因为增加第一高速缓存及/或第二高速缓存的时延可进一步增加可用于执行行锤攻击,例如高速缓存的击打的时间量。此外,因为将第一高速缓存及/或第二高速缓存耦合到存储器装置的信道的时延可表示数据存取的瓶颈(例如,可表示从存储器装置检索数据时的瓶颈),因此当实施本公开的实施例时,本文所描述的计算系统的用户不太可能经历数据存取中的任何可察觉延迟。
方法350可进一步包含确定不将来自第二高速缓存的最近最少使用的高速缓存行写入到耦合到第一高速缓存或第二高速缓存或两者的存储器装置,并且将第二高速缓存的最近最少使用的高速缓存行写回到第二高速缓存。
图4是本公开的实施例可在其中操作的实例计算机系统600的框图。举例来说,图4说明计算机系统400的实例机器,在所述机器内可执行用于使所述机器执行本文中所论述的方法中的任一或多种的指令集。在一些实施例中,计算机系统400可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行行锤击缓解组件413的操作(例如,以执行图1的中央控制器110及/或图2的中央控制器210的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统400包含处理装置402、主存储器404(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器406(例如,快闪存储器、静态随机存取存储器(SRAM)等),及数据存储系统418,它们经由总线430彼此通信。
处理装置402表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置402还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置402经配置以执行指令426以用于执行本文中所论述的操作及步骤。计算机系统400可进一步包含网络接口装置408以通过网络420通信。
数据存储系统418可包含机器可读存储媒体424(也称为计算机可读媒体),其上存储有一或多个指令集426或体现本文中所描述的任何一或多种方法或功能的软件。指令426还可在其由计算机系统400执行期间完全地或至少部分地驻存在主存储器404内及/或处理装置402内,主存储器404及处理装置402也构成机器可读存储媒体。机器可读存储媒体424、数据存储系统418,及/或主存储器404可对应于图1的存储器子系统110。
在一个实施例中,指令426包含用于实施对应于行锤击缓解组件413(例如,图1的中央控制器110及/或图2的中央控制器210及/或其构成组件)的功能性的指令。虽然在实例实施例中将机器可读存储媒体424展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法及符号表示方面呈现了先前详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些及类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可指代控制及变换计算机系统的寄存器及存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或所述设备可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,每个媒体耦合到计算机系统总线。
本文中呈现的算法及显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用于执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神及范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
还应理解,本文中所使用的术语仅出于描述特定实施例的目的,而不意图为限制性的。如本文所使用,除非上下文另有明确指示,否则单数形式“一”、“一个”及“所述”可包含单数及复数个指代物两者。另外,“多个”、“至少一个”及“一或多个”(例如,多个高速缓存行)可指代一或多个高速缓存行,然而“多个”预期指代此事物中的多于一个。
此外,贯穿本申请以许可的意义(即,具有能够的潜力)而非以强制性的意义(即必须)使用单词“可”及“可以”。术语“包含”及其派生词意指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意指物理上直接或间接连接或存取及移动(传输)命令及/或数据。
Claims (15)
1.一种用于行锤击缓解的方法,其包括:
将数据写入到第一高速缓存(212)的高速缓存行;及
将最近最少使用的高速缓存行从所述第一高速缓存(212)写入到第二高速缓存(214)的高速缓存行,其中执行将所述最近最少使用的高速缓存行从所述第一高速缓存(212)写入到所述第二高速缓存(214),作为行锤击缓解操作的一部分。
2.根据权利要求1所述的方法,其中:
所述第一高速缓存是直接映射高速缓存或组相联高速缓存,及
所述第二高速缓存是全相联高速缓存。
3.根据权利要求1所述的方法,其进一步包括将所述第二高速缓存的时延与将所述第一高速缓存或所述第二高速缓存或两者耦合到存储器装置的信道的时延匹配。
4.根据权利要求1所述的方法,其中所述第一高速缓存及所述第二高速缓存各自根据最近最少使用LRU高速缓存策略操作。
5.根据权利要求1至4中任一项所述的方法,其进一步包括:
确定不将来自所述第二高速缓存的最近最少使用的高速缓存行写入到耦合到所述第一高速缓存或所述第二高速缓存或两者的存储器装置;及
将所述第二高速缓存的所述最近最少使用的高速缓存行写回到所述第二高速缓存。
6.根据权利要求1至4中任一项所述的方法,其中所述第一高速缓存包括比所述第二高速缓存更多数量的高速缓存行。
7.一种用于行锤击缓解的设备,其包括:
控制器(100;200);
第一高速缓存(212),其耦合到所述控制器,所述第一高速缓存经配置以根据最近最少使用LRU方案操作;
第二高速缓存(214),其耦合到所述控制器,所述第二高速缓存(214)经配置以根据LRU方案操作;及
存储器装置(126、128),其经由至少一个存储器信道(225-1、225-2、…、225-N、225-(N+1))耦合到所述第一高速缓存(212)或所述第二高速缓存(214),其中所述控制器经配置以:
控制将数据写入到所述第一高速缓存(212)的高速缓存行;及
控制将所述第一高速缓存(212)的最近最少使用的高速缓存行写入到所述第二高速缓存(214),作为行锤击缓解操作的一部分。
8.根据权利要求7所述的设备,其中所述控制器包括存储器控制器的中央控制器部分(110;210),其经配置以根据计算高速链路协议操作,并且其中所述第一高速缓存及所述第二高速缓存驻存于所述存储器控制器的所述中央控制器部分上。
9.根据权利要求7所述的设备,其中所述控制器进一步经配置以将所述第二高速缓存的时延与将所述第一高速缓存或所述第二高速缓存或两者耦合到所述存储器装置的所述至少一个存储器信道的时延匹配。
10.根据权利要求7所述的设备,其中所述控制器进一步经配置以:
确定不将来自所述第二高速缓存的最近最少使用的高速缓存行写入到所述存储器装置;及
将所述第二高速缓存的所述最近最少使用的高速缓存行写回到所述第二高速缓存。
11.根据权利要求7至10中任一项所述的设备,其中所述第一高速缓存物理上不同于所述第二高速缓存。
12.一种用于行锤击缓解的系统,其包括:
存储器控制器(100;200),其包括:
中央控制器(110;210);
第一高速缓存(212),其包括驻存于所述中央控制器上的第一数量的高速缓存行;
第二高速缓存(214),其包括驻存于所述中央控制器上的第二数量的高速缓存行;及
存储器装置(126、128),其耦合到所述存储器控制器,其中所述存储器控制器经配置以:
使数据根据计算高速链路CXL协议写入到所述第一高速缓存;及
使所述第一高速缓存的最近最少使用的高速缓存行写入到所述第二高速缓存,作为行锤击缓解操作的一部分。
13.根据权利要求12所述的系统,其中所述存储器控制器经配置以将所述第二高速缓存的时延与将所述存储器控制器耦合到所述存储器装置的存储器信道的时延匹配。
14.根据权利要求12所述的系统,其中所述存储器控制器经配置以利用指令级并行度方案,以使所述数据写入到所述第一高速缓存。
15.根据权利要求12至14中任一项所述的系统,其中所述存储器控制器经配置以使所述数据以至少每秒32千兆的速率写入到所述第一高速缓存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263348459P | 2022-06-02 | 2022-06-02 | |
US63/348,459 | 2022-06-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117171066A true CN117171066A (zh) | 2023-12-05 |
Family
ID=88934285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310609520.1A Pending CN117171066A (zh) | 2022-06-02 | 2023-05-26 | 使用受害者高速缓存的行锤击缓解 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230393992A1 (zh) |
CN (1) | CN117171066A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11935623B2 (en) * | 2022-06-28 | 2024-03-19 | Montage Technology (Kunshan) Co. | Apparatus for controlling access to a memory device and memory system comprising the same |
-
2022
- 2022-09-15 US US17/945,702 patent/US20230393992A1/en active Pending
-
2023
- 2023-05-26 CN CN202310609520.1A patent/CN117171066A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230393992A1 (en) | 2023-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190018809A1 (en) | Memory channel that supports near memory and far memory access | |
US9087584B2 (en) | Two-level system main memory | |
US11755227B2 (en) | Command batching for a memory sub-system | |
US11656995B2 (en) | Dynamic access granularity in a cache media | |
CN117171066A (zh) | 使用受害者高速缓存的行锤击缓解 | |
US11860773B2 (en) | Memory access statistics monitoring | |
US20210210155A1 (en) | Memory sub-system self-testing operations | |
US20210303470A1 (en) | Sequential prefetching through a linking array | |
KR20220065817A (ko) | 하이브리드 dimm의 전송 파이프라인에서의 데이터 의존도 관리 | |
US20230280940A1 (en) | Memory controller for managing raid information | |
US20220261363A1 (en) | Controller for managing multiple types of memory | |
US11868267B2 (en) | Access unit and management segment memory operations | |
US11842059B2 (en) | Memory sub-system address mapping | |
US11664082B2 (en) | Capacitor health check | |
US20220326874A1 (en) | Controller for managing metrics and telemetry | |
US20220113903A1 (en) | Single memory bank storage for servicing memory access commands | |
US11782851B2 (en) | Dynamic queue depth adjustment | |
US11934270B2 (en) | Write command execution for data protection and recovery schemes | |
US20240071459A1 (en) | Row tracking for row hammer mitigation | |
US11513835B2 (en) | Notifying memory system of host events via modulated reset signals | |
US11157412B2 (en) | Read commands based on row status prediction | |
US11615029B2 (en) | Full multi-plane operation enablement | |
US20230063747A1 (en) | Interleaved cache prefetching | |
US20230195337A1 (en) | Dual-level refresh management | |
KR20230114671A (ko) | 공간 증명 블록체인 시스템들에서의 저장 디바이스 스로틀링 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |