动态随机存取存储器多字线直接刷新管理的制作方法
未命名
07-29
阅读:105
评论:0
动态随机存取存储器多字线直接刷新管理
1.相关申请的优先权及交叉参考
2.本技术要求2022年1月24日提交的第63/302,400号美国临时申请的优先权,其内容以引用的方式并入本文中。另外,本技术涉及以下同在申请中的美国专利申请:2022年1月27日提交的题为“切实可行的节省空间的行锤击检测器(practical space saving row hammer detector)”的第63/303,910号美国申请;2022年1月27日提交的题为“用于cxl控制器的确定性ras破坏器和rh缓解组合解决方案(deterministic ras clobber and rh mitigation combines solution for cxl controller)”的第63/303,550号美国申请;2022年1月22日提交的题为“经混叠行锤击检测器(aliased row hammer detector)”的第63/302,051号美国申请;其中每一者的内容以引用的方式并入本文中。
技术领域
3.本公开涉及对存储器媒体中的行锤击事件的检测和响应。
背景技术:
4.存储器装置(也被称作“存储器媒体装置”)广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可被编程为两种支持状态中的一种,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持多于两个可能的状态,所述状态中的任一个可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到对应状态。
5.存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(ram)、只读存储器(rom)、动态ram(dram)、同步动态ram(sdram)、静态ram(sram)、快闪存储器等。存储器装置可以是易失性或非易失性的。除非由外部电源定期刷新,否则易失性存储器单元(例如,dram单元)可能随时间推移而丢失其编程状态。sram存储器可在系统正通电的持续时间内维持其编程状态。即使在不存在外部电源的情况下,非易失性存储器单元(例如,nand存储器单元)仍可在很长一段时间内维持其编程状态。
6.存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以供主机在计算机或其它电子系统操作时使用。例如,数据、命令和/或指令可在计算或其它电子系统的操作期间在主机与存储器装置之间传送。控制器,也被称作“存储器控制器”可用于管理数据、命令和/或指令在主机与存储器装置之间的传送。
技术实现要素:
7.本公开的一个方面涉及一种系统,其包括:存储器媒体装置,其包括至少一个存储器排组,每一存储器排组包括多个存储器子排组;存储器控制器,其耦合到主机且配置成(i)使用混叠行计数器策略且(ii)检测至少一个存储器排组中的行锤击错误;模式寄存器,
其配置成基于混叠行计数器策略产生数据,从而选择待对至少一个存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型,所述多个受害者存储器行跨越多个存储器子排组分散;以及行锤击缓解组件,其配置成同时对多个受害者存储器行执行所选择的多字线直接刷新操作。
8.本公开的另一方面涉及一种存储器控制器,其包括:到主机系统的第一接口;第二接口,其(i)耦合到存储器媒体装置且(ii)包括到存储器媒体装置的多个物理接口,所述多个物理接口中的每一者对应于具有多个存储器排组的相应信道;模式寄存器,其配置成基于混叠行计数器策略产生数据,从而选择待对多个存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型,所述多个受害者存储器行跨越多个存储器子排组分散;以及行锤击缓解组件,其配置成同时对多个受害者存储器行执行所选择的多字线直接刷新操作。
9.本公开的又一方面涉及一种方法,其包括:通过行锤击缓解组件检测存储器排组中的行锤击错误;通过行锤击缓解组件触发对行锤击错误的响应;在存储器控制器处基于混叠行计数器策略从模式寄存器接收数据,从而选择待对存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型,所述多个受害者存储器行跨越多个存储器子排组分散;并且同时对多个受害者存储器行执行所选择的多字线直接刷新操作。
附图说明
10.图1示出根据本公开的实施例的呈计算系统形式的实例功能框图。
11.图2a示出dram媒体装置中的存储器排组的示意图。
12.图2b示出根据本公开的实施例的描绘行锤击缓解的基本实施流程的流程图。
13.图3a示出根据本公开的实施例的在行锤击缓解组件中的模式寄存器。
14.图3b示出根据本公开的实施例的多字线drfm的框图。
15.图4示出根据本公开的实施例的具有单个drfm命令的存储器排组的实例。
16.图5示出根据本公开的实施例的具有2x字线混叠模式多字线drfm命令的存储器排组的实例。
17.图6示出根据本公开的实施例的具有4x字线混叠模式多字线drfm命令的存储器排组的实例。
18.图7为根据本公开的实施例的用于多字线drfm操作的实例方法的流程图。
具体实施方式
19.当前,校正行锤击损坏需要多次连续发出激活(act)命令来刷新受害者行,所述受害者行通常为目标行(或也被称作侵入者行)+/-一行和+/-两行。因此,在刷新受影响的四个受害者行,即两个+/
‑“
一”行和两个+/
‑“
两”行的实例中,必须发出四个不同的act命令。
20.如将论述,在其中多个条目经映射以共享同一存储器位置(例如,其中每一划分为多个存储器子排组的存储器排组的多个行共享同一行锤击计数器)的存储器混叠的情况下,受害者行的数目可加倍和成四倍。在此情况下,需要发出的act命令的数目可从用于单个子排组的四个增加到用于两个或四个存储器子排组的八个或十六个。在此类情况下,存储器带宽变得严重受损。因此,需要一种响应于经混叠存储器中的行锤击事件而最小化所
需act命令的数目的手段。
21.图1示出在本公开的实施例中呈计算系统100形式的实例功能框图。计算系统100可包含存储器控制器101,所述存储器控制器配置成用于检测也被称为行锤击错误的行锤击攻击,且缓解对一或多个存储器媒体装置126的此类行锤击攻击。存储器控制器101可包含前端部分104、中央控制器部分110、后端部分119和管理单元135。存储器控制器101可耦合到主机103(即,主机系统103)和存储器媒体装置126。在一些实施例中,存储器媒体装置126可为dram装置。
22.前端部分104包含接口106以通过一或多个输入/输出(i/o)分道102将存储器控制器101耦合到主机103。经由i/o分道102的通信可根据例如外围组件互连高速(pcie)等协议。在一些实施例中,多个i/o分道102可配置为单个端口。示例实施例不受i/o分道的数目、i/o分道是否属于单个端口或用于与主机通信的通信协议限制。
23.接口106通过i/o分道102从主机103接收数据和/或命令。在实施例中,接口106为配置成用于pcie通信的物理(phy)接口。前端部分104可包含接口管理电路系统108(包含数据链路和事务层控制),所述接口管理电路系统可为通过phy接口106与主机103通信提供较高层协议支持。
24.中央控制器部分110配置成响应于从主机103接收到请求或命令而控制存储器操作的执行。存储器操作可为从存储器媒体装置126读取数据或将数据写入到所述存储器媒体装置的存储器操作。中央控制器部分110可包括:高速缓存存储器112,其用以存储与存储器操作的执行相关联的数据;安全性组件114,其配置成在存储之前对数据进行加密且在读取之后对数据进行解密,所述数据在存储器媒体装置126中。
25.在一些实施例中,响应于从主机103接收到请求,来自主机103的数据可存储在高速缓存存储器112的高速缓存线中。高速缓存存储器中的数据可写入到存储器媒体装置126。错误校正组件116配置成对从存储器媒体装置126读取和/或写入到所述存储器媒体装置的数据提供错误校正。在一些实施例中,可在数据存储于高速缓存存储器中之前使用例如高级加密标准(aes)加密等加密协议对数据进行加密。在一些实施例中,中央控制器部分110可响应于从主机103接收到请求而控制多个数据页大体上同时写入到存储器媒体装置126。
26.管理单元135配置成控制存储器控制器101的操作。管理单元可辨识来自主机103的命令且因此管理一或多个存储器媒体装置126。在一些实施例中,管理单元135包含:i/o总线138,其用以管理带外数据;管理单元控制器140,其用以执行其功能包含但不限于监测和配置存储器控制器101的特性的固件;以及管理单元存储器142,其用以存储与存储器控制器101功能相关联的数据。管理单元控制器140还可执行与初始化和配置存储器控制器101的特性相关联的指令。管理单元135的端点可暴露于主机系统103以使用i/o总线138通过通信信道管理数据。
27.管理单元135的第二端点可暴露于主机系统103以使用接口106通过通信信道管理数据。在一些实施例中,由管理单元135监测的特性可包含供应到存储器控制器101的电压或由外部传感器测量的温度或这两者。此外,管理单元135可包含本地总线互连件136以耦合存储器控制器101的不同组件。在一些实施例中,本地总线互连件136可包含但不限于高级高性能总线(ahb)。
28.管理单元135可包含管理单元控制器140。在一些实施例中,管理单元控制器140可为满足联合测试动作小组(jtag)标准且根据内部集成电路(i2c)协议和辅助i/o电路系统操作的控制器。如本文所用,术语“jtag”一般是指用于在制造之后验证设计和测试印刷电路板的行业标准。如本文所用,术语“i2c”通常是指用于双线接口以连接如同微控制器、i/o接口和嵌入系统中的其它类似外围设备等低速装置的串行协议。
29.后端部分119配置成经由(例如,通过)多个信道125耦合到一或多种类型的存储器装置(例如,dram存储器媒体装置126),所述信道可用于从存储器媒体装置126读取数据/将数据写入到所述存储器媒体装置,将命令传输到存储器媒体装置126,从存储器媒体装置126接收状态和统计数据等。
30.管理单元135可通过相应地初始化和/或配置存储器控制器101和/或存储器媒体装置126来将存储器控制器101耦合到外部电路系统或外部装置,例如可产生从存储器装置读取数据和/或将数据写入到存储器装置的请求的主机103。管理单元135配置成辨识从主机103接收到的命令且执行指令以针对耦合到存储器媒体装置126的多个信道中的每一者应用与所接收主机命令相关联的特定操作代码。
31.后端部分119包含媒体控制器部分,所述媒体控制器部分包括多个媒体控制器120和包括多个phy接口122的物理(phy)层部分。在一些实施例中,后端部分119配置成将phy接口122耦合到存储器媒体装置126的多个存储器排。存储器排可经由多个信道125连接到存储器控制器101。相应媒体控制器120和相应phy接口122可将信道125驱动到存储器排。在一些实施例中,每一媒体控制器120可独立于任何其它媒体控制器120执行命令。因此,可独立于其它phy接口122和信道125通过信道125将数据从一个phy接口122传送到存储器媒体装置126。
32.每一phy接口122可根据将存储器控制器101耦合到存储器媒体装置126中的一或多个存储器排的phy层操作。如本文所用,术语“phy层”通常是指计算系统的开放系统互连(osi)模型中的物理层。phy层可为osi模型的第一(例如,最低)层且可用以经由物理数据传输媒体传送数据。在一些实施例中,物理数据传输媒体可为多个信道125。
33.如本文所用,术语“存储器排”一般是指可同时存取的多个存储器芯片(例如,dram存储器芯片)。在一些实施例中,存储器媒体装置126可包含多个存储器排。在一些实施例中,存储器排可为六十四(64)位宽,且每一存储器排可具有八(8)个页。在一些实施例中,第一类型的存储器装置的页大小可大于第二类型的存储器装置的页大小。然而,示例实施例不限于存储器排的特定宽度或页大小。
34.每一媒体控制器120可包含信道控制电路系统124和多个排组控制电路系统128,其中多个排组控制电路系统128中的相应一者配置成存取由相应媒体控制器120存取的存储器媒体装置126上的多个排组的相应存储器排组,例如存储器排组130。
35.排、信道和排组可被视为媒体装置中的存储位置的硬件相依逻辑分组。排、信道和排组逻辑分组到存储器媒体装置126中的物理存储位置或行的映射可预先配置,或在一些实施例中可由与存储器媒体装置126通信的主机系统103和/或存储器控制器101配置。存储器排组130映射到dram芯片中的存储器单元块,排包含一或多个dram芯片,且每一信道可提供对一或多个排的相应群组的存取。因此,每一信道提供对多个排组的相应群组的存取。每一信道可配置成存取存储器媒体装置126的一或多个排的相应群组,其中每一排包含一或
多个dram芯片。
36.行锤击(rh)缓解组件132可布置在存储器控制器101内以对附接到存储器控制器101的存储器媒体装置126上的软存储器错误,例如行锤击攻击执行检测。除执行行锤击攻击的检测之外,rh缓解组件132可配置成在此类检测后还触发对检测到的错误的响应。在一些实施例中,rh缓解组件132可接收用于存储器媒体装置126的行存取统计数据,且可输出对刷新存储器媒体装置126的一或多行的响应。下文更详细地描述rh缓解组件132及其操作。
37.在一些实施例中,存储器控制器101可以是compute express link
tm
(cxl)顺应性存储器系统(例如,存储器系统可包含pcie/cxl接口)。cxl是设计成促进下一代数据中心性能的高速中央处理单元(cpu)到装置和cpu到存储器互连件。cxl技术维持cpu存储器空间与附接装置上的存储器之间的存储器相干性,其允许资源共享以实现较高性能、减小软件堆栈复杂性以及降低总体系统成本。随着越来越多地使用加速器来补充cpu以支持新兴应用,例如人工智能和机器学习,cxl被设计成用于高速通信的行业开放标准接口。
38.cxl技术构建在pcie基础设施上,从而利用pcie物理和电接口在例如i/o协议、存储器协议(例如,初始地允许主机与加速器共享存储器)等领域中提供高级协议以及一致性接口。当存储器控制器101符合cxl时,接口管理电路系统108(包含数据链路和事务控制)可使用cxl协议来管理可包括pcie phy接口的接口106。
39.根据一些实施例,存储器媒体装置126包含一或多个dram装置。在一些实施例中,主存储器存储于具有高存储密度的dram单元中。dram单元随时间推移失去其状态。也就是说,dram单元必须周期性地刷新,因此名为“动态”。dram可描述为根据包括dimm、排、排组和阵列的存储组织的层级组织。
40.dimm包括多个dram芯片,并且dimm中的多个芯片被组织成一或多个“排”。每一芯片由多个“排组”形成。排组由存储器单元阵列的一或多个“行”形成。排内的所有排组共享所有地址和控制引脚。所有排组都是独立的,但在一些实施例中,每次仅可存取排中的一个排组。由于电气约束,仅几个dimm可附接到总线。排有助于增加dimm的容量。
41.多个dram芯片用于每一存取以改进数据传输带宽。提供多个排组,使得计算系统可同时针对不同请求工作。为了使密度最大化,排组内的阵列较大、行较宽且行缓冲器较宽(针对64b的请求进行8kb的读取)。每一阵列在循环中将单个位提供到输出引脚(用于高密度且因为存在较少引脚)。dram芯片通常被描述为xn,其中n指输出引脚的数目;一个排可由八个x8dram芯片构成(例如,数据总线为64位)。排组和排提供存储器并行性,且存储器控制器101可调度存储器存取以最大化行缓冲器命中速率和排组/排并行性。
42.在图1所示出的实施例中,存储器媒体装置126为低电力双倍数据速率(lpddr)lp5或lp5adram媒体。然而,实施例不限于此,且存储器媒体装置126可包括经受行锤击攻击或类似存储器攻击的任何存储器媒体类型的一或多个存储器媒体,例如但不限于dram的类型。
43.多个媒体控制器120中的每一者可大体上同时接收相同命令和地址且驱动多个信道125。通过使用用于多个媒体控制器的相同命令和地址,多个媒体控制器120中的每一者可利用多个信道125对相同多个存储器单元执行相同存储器操作。每一媒体控制器120可对应于raid组件。如本文所用,术语“大体上”意指特性不需要是绝对的,而是足够接近以便实
现所述特性的优点。
44.举例来说,“大体上同时”不限于绝对同时执行的操作并且可包含预期同时但由于制造限制而可能并不正好同时的时机。举例来说,由于可由各种接口(例如,lpddr5与pcie)显现的读取/写入延迟,“大体上同时”利用的媒体控制器可能并不精确地在同一时间开始或结束。举例来说,可利用存储器控制器以使得其在同一时间将数据写入到存储器装置而不考虑媒体控制器中的一个是否在其它媒体控制器之前开始或终止。
45.dram被组织为存储单元阵列,其中每一单元存储编程值。如上文所指出,如果未周期性地刷新,那么单元可失去其编程值。因此,以通常被称作“刷新间隔”的固定间隔刷新行。刷新也被称为“行激活”。在行激活中,读取dram装置中的行,校正错误且将其写入回到同一物理行。在当前dram装置中,由“行锤击事件”(也被称作“行锤击攻击”)引起的数据损坏是相当大的风险。
46.当媒体装置中的特定行在短时间周期内被多次存取,即,在“激活间隔”(即,两个刷新/激活事件之间的间隔)中超过“行锤击阈值”(rht)次数时,行锤击触发事件发生。具体地说,当在激活间隔期间存取特定行(“侵入者行”)超过rht次数时,物理上接近于dram媒体中的所述特定行的一或多个行(“受害者行”)可由于特定行的频繁激活而受影响,且可发生一或多个行的数据损坏。
47.由于缩小制造过程几何形状的各种物理影响,存储器装置的rht已降低到甚至普通计算机系统程序可能无意中损坏其自身数据或共享同一系统存储器的另一程序的数据的水平。常规的行锤击检测技术切实可行但不完美
‑‑
允许数据损坏或严重的性能降级,或完美但不切实可行
‑‑
需要昂贵的资源,例如硅区域。
48.如果侵入者(例如,恶意攻击者)知道这些常规行锤击检测方法及其实施方案的足够细节,那么侵入者可攻击其缺点以绕过或破坏其并损坏数据。当前,当行锤击事件超出存储器装置的rht时,调用直接刷新管理(drfm或drfm)操作。通常,drfm操作包含发出多个连续(back-to-back)act命令,每一命令花费过量时间,在此期间受影响的存储器行不可存取,由此增加等待时间且减小总体存储器带宽。
49.图2a示出在例如存储器媒体装置126等dram装置中检视的存储器排组130的示意图。所示出示例存储器排组130表示以10行(例如,行202)和10列(例如,列204)组织的10x10单元阵列。单元的数目、大小和配置仅出于说明性目的,且可为任何大小和配置。对于排组,经由行缓冲器206一次读取或存储一行。通过提供行地址和列地址来存取阵列中的每一单元。地址总线、行存取选通信号、列存取选通信号(分别在图2a中示出为a、ras、cas)用于存取阵列中的特定存储器位置。行缓冲器206和数据或读取/写入信号用于待从存储器位置读取或存储到所述存储器位置的数据。
50.行207、208、209、210和211示出侵入者行207和侵入者行207的两侧的一或多个邻近行(例如,第一受害者行208和209、第二受害者行210和211)。如上文所指出,当在例如刷新间隔等特定间隔期间存取侵入者行207超过rht次数时,可预期存储在受害者行208和209以及可能210和211中的数据可能损坏且因此需要刷新那些受害者行。
51.第一受害者行208和209还可被称作+/-1行,其中行210和211被称作+/-2行。rht和侵入者行两侧被视为受害者行的数个行可取决于存储器装置。在一些存储器装置中,图2a中未展示的计数器可与行相关联以跟踪行在特定时间间隔期间已激活的次数。
52.举例来说,可在每一刷新间隔的开始处初始化计数器,且在所述刷新间隔期间针对对所述行的每一存取递增计数器。在常规完美跟踪实施方案中,相应计数器与每一行相关联。由于存储器媒体装置126可具有数百万或甚至数十亿行,因此就需要计数器的区域(例如,硅或存储器区域)而言,具有用于存储器装置中的每一物理行的计数器可为极昂贵的。
53.在示例实施例中,出于由于过量行存取而导致的存储器错误检测的目的而维持的act计数器的数目比附接到存储器控制器的存储器装置中的行的总数目小得多。代替如在完美行跟踪中所做的那样提供和操作用于可由存储器控制器逻辑地寻址的每一个别存储器媒体行的act计数器,在一个以上存储器媒体行之间操作地共享(或混叠)一个act计数器,由此使需要提供以检测和防止存储器系统中的行锤击数据损坏的act计数器的量减少共享每一act计数器实例的计数器的量。虽然act计数器的混叠减少了act计数器的数目,但当特定act计数器接近行锤击阈值时,实际侵入者行的位置可能不是已知的,且因此必须刷新共享,例如混叠特定act计数器的所有行。
54.图2b示出描绘行锤击缓解的基本实施流程的流程图220。行锤击缓解包含两个方面:第一方面为行锤击检测,且第二方面为对所述检测的响应。多种响应是可能的,其中响应命令存储器媒体装置126刷新受害者行(例如,drfm响应)为可能响应中的一者以缓解或消除行锤击效应的影响。在一些情况下,存储器控制器将刷新命令,例如drfm响应传输到存储器媒体装置126且指定侵入者行,且存储器装置的内部电路系统基于由存储器控制器识别的侵入者行确定待刷新的受害者行并刷新受害者行。
55.当接收到存取存储器媒体装置126中的一行的请求时,在操作222处将行识别为待激活的下一行,所述行在本公开中可被称为“侵入者行”(图2a中的侵入者行207)。在操作224处,检查计数器的值,所述计数器配置成在预定时间段中跟踪对侵入者行的存取数目。在操作226处,确定计数器的值是否高于rht。当针对侵入者行207超过rht时,无法保证物理上邻近(+/-1、+/-2)侵入者行207的一或多行(被称作“第一受害者行”;参见图2a中的行208和209以及“第二受害者行”;参见行210和211)中的数据的完整性。rht可为工厂设定的或可在启动时间配置。如果值高于rht,那么在操作228处发出响应。
56.一种类型的响应可为刷新侵入者行207的两侧的物理上邻近的行(例如,行208、209、210和211)的drfm命令。当在操作228处发出响应时,可复位经刷新的受害者行(例如,行208、209、210和211)的计数器(例如,将计数值设置为0)。应注意,侵入者行的计数器在其计数超出rht时复位,且发出响应以刷新其受害者行。可预先配置或可动态地确定待刷新的物理上邻近的行的数目。在228处发出响应之后,或如果在操作226处确定侵入者行207不超出rht,那么在操作230处,调度针对侵入者行的行激活,且递增针对所述行的计数器(例如,递增1)。
57.在图1中,行锤击缓解组件132示出为布置在存储器控制器101内。然而,在一些其它实施例中,行锤击缓解组件132可布置于存储器媒体装置126中。在又其它示例实施例中,行锤击缓解组件132可不布置于存储器媒体装置126内或存储器控制器101内,而是在存储器媒体装置126和存储器控制器101两者的外部。在示例实施例中,行锤击缓解组件132接收存储器媒体装置126的行存取计数作为输入,且提供对检测到的行锤击事件的响应作为输出。
58.在一些实施例中,使行锤击缓解组件132布置于存储器控制器101中实现利用存储器控制器与所附接的所有存储器媒体装置126通信的事实。举例来说,存储器控制器101上的行锤击缓解组件132可使用一或多个信道的群组中的多个存储器媒体装置126当中的共同行地址。在其中15个dram装置附接到存储器控制器101的示例实施例中,信道可配置成将dram装置中的5个分组在一起,使得其对来自存储器控制器的同一行地址(行id)作出响应。
59.在相应地不同的示例实施例中,在存储器控制器101中,行锤击缓解组件132可布置于中央控制器部分110内、在后端部分119中的媒体控制器120中的信道层级或在存储器排组130中的排组层级。举例来说,在中央控制器部分110处,行锤击缓解组件132可监测连接到所有媒体控制器120的所有存储器媒体装置126中的所有行;在信道层级处,可实施多个行锤击缓解组件132,其中每一者监测配置为属于所述信道的行;且在排组层级处,可实施多个行锤击缓解组件132,其中每一者监测配置为属于所述排组的行。
60.对于具有用于所监测的每一行的单独计数器的问题在于,随着产生大系统,存储器可增长到数百万行。随后具有十亿计数器,每行一个可产生十亿计数器。因此,可考虑各种手段以通过存取多个行作为一个整体(不同芯片上的同一行)且因此仅具有用于所述群组的一个计数器而非具有用于媒体装置的每一行的计数器来实现存储器控制器中的行锤击跟踪。使用单个计数器用于多个存储器行的用法也可被称作高混叠跟踪策略或混叠行计数器策略。使用单个计数器的行越多,混叠跟踪就越高,且作为益处,控制器中的控制器电路的面积也越小。
61.举例来说,在cxl控制器中的8x混叠行计数器策略中,单个排组中的每两组存储器行共享同一行锤击计数器。因此,当检测到rht触发事件且发出drfm命令时,实际上必须执行两个drfm命令。第一drfm命令对共享行锤击计数器的两组存储器行中的第一组存储器行执行刷新,其中第二drfm命令接着对共享行锤击计数器的两组存储器行中的第二组存储器行执行。因此,在一般情况下,默认drfm操作将花费大致四行循环时间(4xtrc)以处理+/-1和+/-2受害者行。行循环时间可定义为两个连续act命令之间的最小时间周期。因此,作为一实例,如果执行drfm命令的典型时间为大致500ns,那么用于执行两个drfm命令的8x混叠行计数器策略的相关联等待时间惩罚将为1μs。
62.在16x混叠行计数器策略中,影响为8x混叠策略的影响的两倍。16x混叠行计数器策略包含在共享同一行锤击计数器的排组内具有四组存储器行。因此,当检测到rht触发事件时,发出四个drfm命令,一个drfm命令针对四组行中的一者。通过四个drfm命令,16x混叠策略中的相关联等待时间惩罚增加到2μs。8x和16x混叠行计数器策略的以上实例并非唯一可能的混叠策略,而是仅用作说明性实例。
63.图3a示出可例如在行锤击缓解组件132中用以选择所要的混叠行计数器策略的类型的模式寄存器。举例来说,如果模式寄存器被选择为mr[0:0],那么标准drfm模式将有效且不实施混叠。在模式mr[0:0]中,当rht触发事件发生时,行锤击缓解组件132针对受影响的受害者行触发drfm命令。
[0064]
如果模式寄存器被选择为mr[0:1],那么这可指示8x混叠策略,其中单个排组中的每两个存储器行共享同一行锤击计数器,还可被称为“2x字线”drfm模式。在此模式中,存储器控制器101将共享或混叠在相同计数器中共享ra[15:0]的两个行,其中ra[16]被混叠或忽略,如将在图5中论述。
[0065]
类似地,如果模式寄存器被选择为mr[1:0],那么这可指示16x混叠策略,其中单个排组中的每四个存储器行共享同一行锤击计数器,且还可被称为“4x字线”drfm模式。在此模式中,存储器控制器101将共享或混叠在相同计数器中共享ra[14:0]的四个行,其中ra[16:15]被混叠或忽略,如将在图6中论述。
[0066]
类似地,如果模式寄存器被选择为mr[1:1],那么这可指示32x混叠策略,其中单个排组中的每八个存储器行共享同一行锤击计数器,且还可被称为“8x字线”drfm模式。在此模式中,存储器控制器101将共享或混叠八个行。
[0067]
图3b为根据本公开的实施例的多字线drfm 300的框图。多字线drfm 300可包含排组控制逻辑310,所述排组控制逻辑可包含内容可寻址存储器(cam)312和drfm行地址(ra)产生器314。cam 312可从ra[15:0]305-1线接收地址且将存储在所述地址处的数据字返回到drfm 314。
[0068]
drfm ra 314还从模式寄存器315接收代码,所述代码控制drfm ra 314是否跨越存储器子排组wl驱动器和阵列320寻址单个字线或同时寻址多个字线。举例来说,如果模式寄存器315选择标准1字线drfm,那么将仅寻址单个子排组,例如由线325-1选择的存储器子排组330-1。如果模式寄存器315选择2x字线drfm,例如mr[0:1],那么将同时选择分别由线325-1和325-3选择的存储器子排组330-1和330-3。
[0069]
如果模式寄存器315选择4x字线drfm,例如mr[1:0],那么将同时选择分别由线325-1、325-2、325-3和325-4选择的存储器子排组330-1、330-2、330-3和330-4。排组控制逻辑310还可接受其它输入,例如drfm请求305-2和刷新305-3。模式寄存器315还可产生额外模式,例如可寻址8个单独存储器子排组的8x字线。实际上,可同时寻址的存储器子排组的数目不存在上限。
[0070]
图4示出根据本公开的实施例的具有单个drfm命令的存储器排组的实例。如在图2b中所论述,当计数器超出用于被称为侵入者行的特定行的rht时,无法保证受害者行的完整性。在此情形下,控制器可发出用于受害者行的drfm命令。在单个drfm的情况下,控制器,例如排组控制逻辑310将行410-1识别为侵入者行,且因此需要刷新+/-1和+/-2受害者行,例如第一受害者行410-2和410-3以及第二受害者行410-4和410-5。
[0071]
图4示出侵入者行410-1的识别和发出四个单独act命令的需要,响应于计数器指示对侵入者行的存取超过rht值,一个命令用于受害者行中的一者。每一act命令针对单个字线。字线还可被视为受害者行的地址。如先前所论述,单个drfm操作可能花费大致四行循环以处理第一和第二受害者行,持续大致500ns的完成时间。
[0072]
图5示出根据本公开的实施例的具有2x字线混叠模式多字线drfm命令的存储器排组的实例。在2x字线混叠策略中,行锤击计数器在存储器排组中的两个行之间共享。如果计数器的值超出rht,由于计数器由存储器排组中的两个行共享,所以不知道所述行中的哪一行含有造成计数器超出rht的侵入者行。因此,两个可能的侵入者行的受害者行必须借助drfm操作刷新。图5示出两个可能的侵入者行展示为侵入者行410-1和侵入者行510-1。此外,侵入者行410-1与第一受害者行410-2和410-3相关联,且与第二受害者行410-4和410-5相关联。侵入者行510-1与第一受害者行510-2和510-3相关联,且与第二受害者行510-4和510-5相关联。
[0073]
在过去,在2x混叠中将需要两个drfm操作来刷新所有受害者行。将针对受害者行
410-2、410-3、410-4和410-5发出第一drfm操作。接着将针对受害者行510-2、510-3、510-4和510-5发出第二drfm操作。如先前所论述,单个典型的drfm操作可能需要大约500ns完成。在2x混叠的情况下,执行两个drfm操作,从而针对完成两个drfm操作的总共1μs引入额外的500ns等待时间。
[0074]
为了消除额外的等待时间,本公开使用控制器来同时对两组受害者行执行两个drfm操作。因此,如图5所示,drfm操作将同时对ra[16]=0和1的两侧执行。因为ra[16]=0且ra[16]=1为存储器排组的物理上相异的区域,所以侵入者行410-1和510-1及其相关联的受害者行可保证不在存储器排组的同一或相邻区段中。
[0075]
此外,每一drfm操作同时针对两个字线。换句话说,控制器混叠ra[16],以使得两个行共享ra[15]=0,其中借助同一drfm操作刷新同一计数器。因此,同时将每一act命令寻址到两个字线。举例来说,第一act命令被引导到第一受害者行410-2和510-2。接着第二act命令被引导到第一受害者行410-3和510-3。接着第三act命令被引导到第二受害者行410-4和510-4。且第四act命令随后被引导到第二受害者行410-5和510-5。因此,总共8个字线已配有4个act命令。因此,使用500ns实例的完整drfm操作可在无任何额外的诱发的等待时间的情况下完成。act命令的示例次序仅作为实例,且可为如由控制器指定的任何序列。
[0076]
图6示出根据本公开的实施例的具有4x混叠模式多字线drfm命令的存储器排组的实例。在4x混叠策略中,行锤击计数器在存储器排组中的四个行之间共享。如果计数器的值超出rht,由于计数器由存储器排组中的四个行共享,所以不知道所述行中的哪一行含有造成计数器超出rht的侵入者行。因此,所有四个可能的侵入者行的受害者行必须借助drfm操作刷新。
[0077]
图6示出四个可能的侵入者行展示为侵入者行410-1、510-1、610-1和615-1。此外,侵入者行410-1与第一受害者行410-2和410-3相关联,且与第二受害者行410-4和410-5相关联。侵入者行510-1与第一受害者行510-2和510-3相关联,且与第二受害者行510-4和510-5相关联。侵入者行610-1与第一受害者行610-2和610-3相关联,且与第二受害者行610-4和610-5相关联。侵入者行615-1与第一受害者行615-2和615-3相关联,且与第二受害者行615-4和615-5相关联。
[0078]
在过去,在4x混叠中,将需要四个drfm操作来刷新所有受害者行。将针对受害者行410-2、410-3、410-4和410-5发出第一drfm操作。接着将针对受害者行510-2、510-3、510-4和510-5发出第二drfm操作。接着将针对受害者行610-2、610-3、610-4和610-5发出第三drfm操作。接着将针对受害者行615-2、615-3、615-4和615-5发出第四drfm操作。如先前所论述,单个典型的drfm操作可持续大致500ns。在4x混叠的情况下,将需要执行四个drfm操作,从而针对完成四个drfm操作的总共2μs引入额外的3 x 500ns等待时间。
[0079]
为了消除额外的等待时间,本公开使用控制器来同时对所有组受害者行执行四个drfm操作。因此,如图6所示,drfm操作将同时对ra[16]=0和1以及ra[15]=0和1的两侧执行。因为ra[16]=0且ra[16]=1以及ra[15]=0且ra[15]=1为存储器排组的物理上相异的区域,所以侵入者行410-1、610-1、510-1和615-1及其相关联的受害者行可保证不在被称作存储器排组的子排组的同一或相邻区段中。
[0080]
此外,每一drfm操作同时针对四个字线。换句话说,控制器混叠ra[16]和ra[15],以使得四个行共享ra[16]=0和1以及ra[15]=0和1,其中借助同一drfm操作刷新同一计数
器。因此,同时将每一act命令寻址到四个字线。举例来说,第一act命令被引导到第一受害者行410-2、610-2、510-2和615-2。接着第二act命令被引导到第一受害者行410-3、610-3、510-3和615-3。接着第三act命令被引导到第二受害者行410-4、610-4、510-4和615-4。且第四act命令随后被引导到第二受害者行410-5、610-5、510-5和615-5。因此,总共16个字线已配有4个act命令。因此,使用500ns实例的完整drfm操作可在无任何额外的诱发的等待时间的情况下完成。act命令的示例次序仅作为实例,且可为如由控制器指定的任何序列。
[0081]
图7展示根据本公开的实施例的用于drfm操作的方法700的示例性实施例。方法700开始于步骤705,其中用行锤击缓解组件检测存储器排组中的行锤击错误。如在图1中所论述,计算系统100可包含用以检测行锤击攻击的存储器控制器101。存储器控制器101或例如排组控制逻辑310可含有可能在内容可寻址存储器内的act计数器,所述act计数器存储存储器行存取的数目。在特定act计数器达到或达到且超出预定行锤击阈值的过量行存取的情况下,接着将与act计数器相关联的存储器行识别为一或多个侵入者行。在混叠策略,也被称作混叠行计数器策略的高混叠跟踪策略有效的情况下,单个act计数器与多个存储器行相关联。因此,当检测到行锤击阈值触发事件时,实际侵入者行可位于与单个act计数器相关联的若干存储器子排组中的一者中。
[0082]
步骤710继续响应于检测到行锤击错误而触发对行锤击错误的响应。可或可不为存储器控制器或排组控制逻辑的部分的行锤击缓解组件可通过执行一或多个刷新命令来发起响应。如先前所论述,当针对被称为侵入者行的特定行超出rht时,可影响物理上接近侵入者行的被称为受害者行的邻近存储器行,从而产生损坏或改变的数据。当检测到此类事件时,行锤击缓解组件可发出act命令以刷新受害者行。
[0083]
举例来说,rh缓解组件132可接收用于存储器媒体装置126的行存取统计数据,且可输出对刷新存储器媒体装置126的一或多行的响应。如在图2a中所论述,示出的行207、208、209、210和211说明示例侵入者行207和侵入者行207的两侧的一或多个邻近行(例如,第一受害者行208和209、第二受害者行210和211)。当在例如刷新间隔等特定间隔期间存取侵入者行207超过rht次数时,可预期存储在受害者行208和209以及可能210和211中的数据可能损坏且因此需要刷新那些受害者行。
[0084]
步骤715继续在存储器控制器处基于混叠行计数器策略从模式寄存器接收数据,从而选择待对存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型。如所论述,存储器混叠是映射多个条目以共享同一存储器位置的情况。有可能将act计数器专用于每一存储器行,但此类设计需要芯片上的大量存储器和空间。
[0085]
举例来说,在无混叠的情况下,或当混叠因数设置成1时,对于128mb的可唯一寻址的存储器媒体行,将需要超过1亿3千4百万的act计数器。在混叠因数为4的情况下,act计数器的量减小到大致3千3百万。在混叠因数为8的情况下,数目进一步减小到大致1千6百万;在混叠因数为16的情况下,计数器的数目大致为8百万;且在混叠因数为32的情况下,计数器的数目进一步减小到大致4百万。因此,使用存储器混叠会节省空间和电力。
[0086]
如在图3a中所论述,可例如在行锤击缓解组件132中使用模式寄存器来选择所要的混叠行计数器策略的类型。举例来说,如果模式寄存器被选择为mr[0:1],那么这可指示8x混叠策略,其中单个排组中的每两个存储器行共享同一行锤击计数器,还可被称为“2x字线”drfm模式。在此模式中,存储器控制器101将共享或混叠在相同计数器中共享ra[15:0]
的两个行,其中ra[16]被混叠。类似地,如果模式寄存器被选择为mr[1:0],那么这可指示16x混叠策略,其中单个排组中的每四个存储器行共享同一行锤击计数器,且还可被称为“4x字线”drfm模式。
[0087]
在此模式中,存储器控制器101将共享或混叠在相同计数器中共享ra[14:0]的四个行,其中ra[16:15]被混叠。类似地,如果模式寄存器被选择为mr[1:1],那么这可指示32x混叠策略,其中单个排组中的每八个存储器行共享同一行锤击计数器,且还可被称为“8x字线”drfm模式。在此模式中,存储器控制器101将共享或混叠八个行。因此,在步骤715处,控制器选择如由模式寄存器所请求的适当的drfm模式。
[0088]
步骤720作为步骤715的另一功能继续,其中多个受害者存储器行跨越多个存储器子排组分散,例如图3b和图4-6中所展示。图3b示出具有子排组330-1、330-2、330-3和330-4的标记为wl驱动器和阵列320的存储器排组。因此,如果模式寄存器选择具有2x字线的mr[0:1],那么选择存储器子排组330-1和330-3。如果模式寄存器选择mr[1:0],那么选择存储器子排组330-1、330-2、330-3和330-4。
[0089]
步骤725继续同时对多个受害者存储器行执行所选择的多字线直接刷新操作。如在图5中所论述,示出具有2x字线混叠模式多字线drfm命令的存储器排组,在2x字线混叠策略中,行锤击计数器在存储器排组中的两个行之间共享。如果计数器的值超出rht,由于计数器由存储器排组中的两个行共享,所以不知道所述行中的哪一行含有造成计数器超出rht的侵入者行。因此,两个可能的侵入者行的受害者行必须借助drfm操作刷新。
[0090]
图6示出具有4x混叠模式多字线drfm命令的存储器排组的实例,在4x字线混叠策略中,行锤击计数器在存储器排组中的四个行之间共享。如果计数器的值超出rht,由于计数器由存储器排组中的四个行共享,所以不知道所述行中的哪一行含有造成计数器超出rht的侵入者行。因此,所有四个可能的侵入者行的受害者行必须借助drfm操作刷新。步骤725指定同时执行所选择的多字线直接刷新操作。如所论述,为了循序地消除与执行drfm命令相关联的任何额外等待时间,本公开混叠多个行地址线,使得如图5中所示,drfm操作将同时对ra[16]=0和1的两侧执行。并且,如图6所示,drfm操作将同时对ra[16]=0和1以及ra[15]=0和1的两侧执行。
[0091]
步骤730允许选择2x或4x字线混叠模式的选项,如上文在步骤725中所论述。
[0092]
步骤735进一步指定检测存储器排组中的行锤击错误可基于行锤击阈值触发事件。当媒体装置中的特定行在短时间周期内被多次存取,即,在“激活间隔”(即,两个刷新/激活事件之间的间隔)中超出rht次数,行锤击触发事件发生。
[0093]
步骤740添加如步骤725中所示的drfm操作的同时执行限制跨越多个子排组中的单组drfm操作的总等待时间的限制,其中对多个存储器行同时执行所选择的多字线直接刷新操作包括500ns或更小的等待时间带宽影响。接着,方法结束。
[0094]
虽然已结合目前被认为是最切实可行和优选的实施例描述本发明,但应了解,本发明不限于所公开的实施例,而是相反地,预期涵盖所附权利要求书的精神和范围内所包含的各种修改和等效布置。
[0095]
应注意,上述方法描述可能的实施方案,且操作和步骤可重新排列或以其它方式加以修改,且其它实施方案是可能的。此外,可组合来自方法中的两个或更多个部分。
技术特征:
1.一种系统,其包括:存储器媒体装置,其包括至少一个存储器排组,每一存储器排组包括多个存储器子排组;存储器控制器,其耦合到主机且配置成(i)使用混叠行计数器策略且(ii)检测所述至少一个存储器排组中的行锤击错误;模式寄存器,其配置成基于所述混叠行计数器策略产生数据,从而选择待对所述至少一个存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型,所述多个受害者存储器行跨越所述多个存储器子排组分散;以及行锤击缓解组件,其配置成同时对所述多个受害者存储器行执行所选择的多字线直接刷新操作。2.根据权利要求1所述的系统,其中所述存储器媒体装置为动态随机存取存储器dram,且其中所述多个存储器子排组中的每一存储器子排组对应于所述dram中的多个行。3.根据权利要求1所述的系统,其中所述混叠行计数器策略包括2x字线混叠模式,其中共享计数器的两个存储器行被混叠。4.根据权利要求1所述的系统,其中所述混叠行计数器策略包括4x字线混叠模式,其中共享计数器的四个存储器行被混叠。5.根据权利要求1所述的系统,其中所述混叠行计数器策略包括8x字线混叠模式,其中共享计数器的八个存储器行被混叠。6.根据权利要求1所述的系统,其中所述行锤击缓解组件布置于所述存储器媒体装置中。7.根据权利要求1所述的系统,其中所述行锤击缓解组件布置于所述存储器控制器中。8.根据权利要求1所述的系统,其中所述存储器控制器进一步配置成检测所述至少一个存储器排组中的所述行锤击错误是基于行锤击阈值触发事件。9.一种存储器控制器,其包括:到主机系统的第一接口;第二接口,其(i)耦合到存储器媒体装置且(ii)包括到所述存储器媒体装置的多个物理接口,所述多个物理接口中的每一者对应于具有多个存储器排组的相应信道;模式寄存器,其配置成基于混叠行计数器策略产生数据,从而选择待对所述多个存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型,所述多个受害者存储器行跨越多个存储器子排组分散;以及行锤击缓解组件,其配置成同时对所述多个受害者存储器行执行所选择的多字线直接刷新操作。10.根据权利要求9所述的存储器控制器,其中所述存储器媒体装置为动态随机存取存储器dram,且其中所述多个存储器子排组中的每一存储器子排组对应于所述dram中的多个行。11.根据权利要求9所述的存储器控制器,其中所述混叠行计数器策略包括2x字线混叠模式,其中共享计数器的两个存储器行被混叠。12.根据权利要求9所述的存储器控制器,其中所述混叠行计数器策略包括4x字线混叠模式,其中共享计数器的四个存储器行被混叠。
13.根据权利要求9所述的存储器控制器,其中所述混叠行计数器策略包括8x字线混叠模式,其中共享计数器的八个存储器行被混叠。14.根据权利要求9所述的存储器控制器,其进一步配置成基于行锤击阈值触发事件检测所述多个存储器排组中的行锤击错误。15.一种方法,其包括:通过行锤击缓解组件检测存储器排组中的行锤击错误;通过所述行锤击缓解组件触发对所述行锤击错误的响应;在存储器控制器处基于混叠行计数器策略从模式寄存器接收数据,从而选择待对所述存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型,所述多个受害者存储器行跨越多个存储器子排组分散;并且同时对所述多个受害者存储器行执行所选择的多字线直接刷新操作。16.根据权利要求15所述的方法,其中所述混叠行计数器策略包括2x字线混叠模式,其中共享计数器的两个存储器行被混叠。17.根据权利要求15所述的方法,其中所述混叠行计数器策略包括4x字线混叠模式,其中共享计数器的四个存储器行被混叠。18.根据权利要求15所述的方法,其中所述混叠行计数器策略包括8x字线混叠模式,其中共享计数器的八个存储器行被混叠。19.根据权利要求15所述的方法,其中所述检测所述存储器排组中的所述行锤击错误是基于行锤击阈值触发事件。20.根据权利要求15所述的方法,其中同时对所述多个受害者存储器行执行所述所选择的多字线直接刷新操作包括500ns或更小的等待时间带宽影响。
技术总结
本公开涉及动态随机存取存储器多字线直接刷新管理。用于响应于存储器排组中的行锤击错误的多字线直接刷新操作的系统和方法。手段包含:通过行锤击缓解组件检测存储器排组中的行锤击错误;以及接着通过行锤击缓解组件触发对所述行锤击错误的响应。此外,存储器控制器基于混叠行计数器策略从模式寄存器接收数据,从而选择待对所述存储器排组内的多个受害者存储器行执行的多字线直接刷新操作的类型,其中所述多个受害者存储器行跨越多个存储器子排组分散。所述手段包含同时对所述多个受害者存储器行执行所选择的多字线直接刷新操作。存储器行执行所选择的多字线直接刷新操作。存储器行执行所选择的多字线直接刷新操作。
技术研发人员:金康永 陆洋
受保护的技术使用者:美光科技公司
技术研发日:2023.01.17
技术公布日:2023/7/26
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:DRAM行复制的制作方法 下一篇:基于反复博弈的无人飞行器动态障碍规避方法与流程
