混叠行锤击检测器的制作方法
未命名
07-29
阅读:123
评论:0
混叠行锤击检测器
1.相关申请的交叉引用
2.本技术要求2022年1月22日提交的第63/302,051号美国临时申请的优先权,所述申请的内容特此通过引用并入。另外,本技术涉及以下共同转让的美国专利申请:代理人案号2021139975-us-3,标题为“存储器媒体行激活偏置高速缓存(memory media row activation-biased caching)”;代理人案号2021140001-us-2,标题为“操作系统的rhr中断(rhr interrupts to the operating system)”;代理人案号2021140197-us-2,标题为“实用的节省空间的行锤击检测器(practical space saving row hammer detector)”;代理人案号2021140206-us-2,标题为“cxl控制器的面积优化rhr解决方案(area optimized rhr solution for the cxl controller)”;代理人案号2021140514-us-2,标题为“对高速缓存中运行的命令的优化控制(optimized control of commands running in a cache)”;代理人案号2021140514-us-3,标题为“基于经缓冲读取和写入条目的总数目控制背压(control of the back pressure based on a total number of buffered read and write entries)”;以及代理人案号2021140514-us-4,标题为“通过延迟写入命令出队优先化读取命令出队的仲裁策略(arbitration policy to prioritize read command dequeing by delaying write command dequeing)”,所述申请中的每一个的内容特此通过引用并入。
技术领域
3.本公开涉及存储器媒体中行锤击错误的确定性检测。
背景技术:
4.存储器装置(也称为“存储器媒体装置”)广泛用于在各种电子装置中存储信息,例如计算机、用户装置、无线通信装置、相机、数字显示器等等。通过将存储器装置内的存储器单元编程为各种状态来存储信息。例如,二进制存储器单元可以编程为两个支持状态中的一个,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可以支持超过两个可能状态,其中任一个可以由存储器单元存储。要存取由存储器装置存储的信息,组件可以读取或感测存储器装置内的一或多个存储器单元的状态。要存储信息,组件可以将存储器装置内的一或多个存储器单元写入或编程为对应状态。
5.存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(ram)、只读存储器(rom)、动态ram(dram)、同步动态ram(sdram)、静态ram(sram)、快闪存储器和其它。存储器装置可以是易失性或非易失性的。易失性存储器单元(例如,dram单元)随时间推移可能会丢失它们的经编程状态,除非它们通过外部电源周期性地刷新。sram存储器可在系统通电的持续时间内维持它们的经编程状态。非易失性存储器单元(例如,nand存储器单元)即使在不存在外部电源的情况下也可将它们的经编程状态维持很长一段时间。
6.存储器装置可以耦合到主机(例如,主机计算装置)来存储数据、命令和/或指令以在计算机或其它电子系统操作时供主机使用。例如,在计算或其它电子系统的操作期间,数
据、命令和/或指令可以在主机和存储器装置之间转移。被称为“存储器控制器”的控制器可用于管理数据、命令和/或指令在主机和存储器装置之间的转移。
技术实现要素:
7.一方面,本公开涉及一种设备,其包括:存储器媒体装置接口,其配置成连接到存储器媒体装置;至少一个存储器,其包括多个计数器,其中多个计数器的计数器总数小于存储器媒体装置中能够用于数据存储的行总数,且多个计数器中的每个计数器与存储器媒体装置中能够用于数据存储的行的相应行群组相关联;以及第一电路,其配置成执行包括以下各项的操作:基于存储器媒体存取请求的行识别符,读取多个计数器中的计数器;使计数器的计数值递增;如果经递增计数值超过经配置触发阈值,那么触发对存储器媒体装置中的错误的响应;以及将经递增计数值写入到计数器。
8.另一方面,本公开涉及一种方法,其包括:在至少一个存储器中配置多个计数器,其中多个计数器的计数器总数小于存储器媒体装置中能够用于数据存储的行总数,并且多个计数器中的每个计数器与存储器媒体装置中能够用于数据存储的行的相应行群组相关联;基于存储器媒体存取请求的行识别符,通过第一电路读取多个计数器中的计数器;通过第一电路使计数器的计数值递增;如果经递增计数值超过经配置触发阈值,那么通过第一电路触发对存储器媒体装置中的错误的响应;以及通过第一电路将经递增计数值写入到计数器。
9.又一方面,本公开涉及一种系统,其包括:主机系统;存储器媒体装置;以及存储器控制器,其包括:第一接口,其配置成连接主机系统;第二接口,其配置成连接到存储器媒体装置;至少一个存储器,其包括多个计数器,其中多个计数器的计数器总数小于存储器媒体装置中能够用于数据存储的行总数,且多个计数器中的每个计数器与存储器媒体装置中能够用于数据存储的行的相应行群组相关联;以及电路,其配置成执行包括以下各项的操作:基于存储器媒体存取请求的行识别符,读取多个计数器中的计数器;使计数器的计数值递增;如果经递增计数值超过经配置触发阈值,那么触发对存储器媒体装置中的错误的响应;以及将经递增计数值写入到计数器。
附图说明
10.图1a-1c示出根据本公开的一些实例实施例的呈计算系统形式的实例功能框图,所述计算系统包含配置成使用混叠行激活计数器检测行锤击攻击的存储器控制器。
11.图2a示出dram媒体装置中的存储器组的示意图。
12.图2b示出描绘行锤击缓解的基本实施流程的流程图。
13.图3以图形方式示出行锤击事件在存储器控制器中的全局层级、在信道层级以及在组层级下的实例分布。
14.图4示出根据一些实施例的在每个组层级下实施的行锤击缓解组件的逻辑框图。
15.图5示意性地示出根据一些实施例的用于使用在例如图1a-1c中所示的设备中使用的混叠行激活计数器进行行锤击缓解的电路系统。
16.图6a示意性地示出根据一些实施例的在例如图5中所示的实施方案中使用的sram中组织的混叠行激活计数器。
17.图6b示出根据一些实例实施例的示出混叠因子对混叠行激活计数器表大小的影响的表。
18.图7示出根据一些实例实施例的流程图,示出了在例如图5中所示的电路中使用混叠行激活计数器更新和比较进行行锤击缓解的过程。
19.图8a-8c示出根据一些实例实施例的用于在例如图5中所示的行锤击缓解实施方案中初始化混叠行激活计数器的乒乓实施方案。
20.图9示出根据一些实例实施例的用于在例如图5中所示的行锤击缓解实施方案中初始化混叠行激活计数器的另一实施方案。
21.图10示出根据一些实例实施例的可以实施的不同行锤击攻击响应的表。
具体实施方式
22.本公开描述与用于例如行锤击错误的存储器媒体软错误的检测器相关的系统、设备和方法。检测器在本文中有时被称作行锤击检测器,配置成以一种高能效且节省空间的方式执行dram媒体中行锤击攻击的确定性检测。
23.在本公开的以下详细描述中,参考构成本发明的一部分的附图,在附图中,通过图示示出了可以如何实践本公开的一或多个实施例。对这些实施例进行了足够详细的描述,以使所属领域的技术人员能够实践本公开的实施例,并且应理解,可以使用其它实施例,并且可以在不脱离本公开的范围的情况下进行过程、电气和结构改变。
24.在一些实施例中,行锤击检测器位于“存储器控制器”中。存储器控制器可协调操作的执行以将数据写入到多种类型存储器装置中的至少一个中。
25.图1a示出根据本公开的一些实施例的呈计算系统101形式的实例功能框图,所述计算系统包含配置成检测行锤击攻击的存储器控制器100。计算系统101可检测并缓解一或多个存储器装置126上的行锤击攻击。存储器控制器100包括前端部分104、中央控制器部分110、后端部分119和管理单元135。存储器控制器100可耦合到主机103(即,主机系统103)和存储器装置126。在一些实施例中,存储器装置126可以是dram装置。
26.前端部分104包含接口106,用于通过一或多个输入/输出(i/o)分道102将存储器控制器100耦合到主机103。i/o分道102上的通信可以根据例如外围组件互连高速(pcie)的协议。在一些实施例中,所述多个i/o分道102可配置为单个端口。实例实施例不受i/o分道的数目、i/o分道是否属于单个端口或与主机通信的通信协议限制。
27.接口106通过i/o分道102从主机103接收数据和/或命令。在实施例中,接口106是配置成用于pcie通信的物理(phy)接口。前端部分104可包含接口管理电路系统108(包含数据链路和事务控件),其可为通过phy接口106与主机103进行的通信提供高层协议支持。
28.中央控制器部分110配置成响应于从主机103接收到请求或命令,控制存储器操作的执行。存储器操作可以是从存储器装置126读取数据或将数据写入到存储器装置126的存储器操作。中央控制器部分110可包括存储与执行存储器操作相关联的数据的高速缓存存储器112、配置成在存储之前对数据进行加密和在读取之后对数据进行解密的安全性组件114,所述数据在存储器装置126中。
29.在一些实施例中,响应于从主机103接收到请求,来自主机103的数据可以存储在高速缓存存储器112的高速缓存行中。高速缓存存储器中的数据可被写入到存储器装置
126。错误校正组件116配置成提供对从存储器装置126读取和/或向其写入的数据的错误校正。在一些实施例中,在数据存储在高速缓存存储器中之前,可以使用加密协议加密数据,例如高级加密标准(aes)加密。在一些实施例中,响应于从主机103接收到请求,中央控制器部分110可控制多个数据页基本上同时写入到存储器装置126。
30.管理单元135配置成控制存储器控制器100的操作。管理单元可辨识来自主机103的命令并相应地管理所述一或多个存储器装置126。在一些实施例中,管理单元135包含管理带外数据的i/o总线138、执行功能包含但不限于监测和配置存储器控制器100的特性的固件的管理单元控制器140,及存储与存储器控制器100功能相关联的数据的管理单元存储器142。管理单元控制器140还可执行与初始化和配置存储器控制器100的特性相关联的指令。管理单元135的端点可暴露于主机系统103,以使用i/o总线138通过通信信道管理数据。
31.管理单元135的第二端点可暴露于主机系统103,以使用接口106通过通信信道管理数据。在一些实施例中,管理单元135所监测的特性可包含供应到存储器控制器100的电压或外部传感器所测量的温度,或这两者。此外,管理单元135可包含耦合存储器控制器100的不同组件的本地总线互连件136。在一些实施例中,本地总线互连件136可包含但不限于高级高性能总线(ahb)。
32.管理单元135可包含管理单元控制器140。在一些实施例中,管理单元控制器140可以是符合联合测试行动小组(jtag)标准并根据集成电路间(i2c)协议操作的控制器,及辅助i/o电路系统。如本文中所使用,术语“jtag”大体上指代用于验证设计和在制造之后测试印刷电路板的工业标准。如本文中所使用,术语“i2c”大体上指代用于连接诸如微控制器、i/o接口和嵌入式系统中的其它类似外围设备之类的低速装置的双线式接口的串行协议。
33.后端部分119配置成经由(例如,通过)多个信道125耦合到一或多种类型的存储器装置(例如,dram媒体126),所述信道可用于向/从存储器装置126读取/写入数据、向存储器装置126传输命令、从存储器装置126接收状态和统计数据,等等。管理单元135可通过初始化和/或配置存储器控制器100和/或相应的存储器装置126,将存储器控制器100耦合到外部电路系统或外部装置,例如可产生向和/或从存储器装置读取或写入数据的请求的主机103。管理单元135配置成辨识从主机103接收到的命令并执行向耦合到存储器装置126的多个信道中的每一个应用与接收到的主机命令相关联的特定操作代码的指令。
34.后端部分119包含包括多个媒体控制器120的媒体控制器部分和包括多个phy接口122的phy层部分。在一些实施例中,后端部分119配置成将phy接口122耦合到存储器装置126的多个存储器级。存储器级可经由多个信道125连接到存储器控制器100。相应媒体控制器120和对应phy接口122可将信道125驱动到存储器级。在一些实施例中,每个媒体控制器120可独立于其它媒体控制器120执行命令。因此,数据可以通过信道125从一个phy接口122转移到存储器装置126,而不受其它phy接口122和信道125影响。
35.每个phy接口122可根据将存储器控制器100耦合到存储器装置126中的一或多个存储器级的phy层操作。如本文中所使用,术语phy层大体上指代计算系统的开放系统互连(osi)模型中的物理层。phy层可以是osi模型的第一个(例如,最低)层,并且可用于通过物理数据传输媒体转移数据。在一些实施例中,物理数据传输媒体可以是多个信道125。
36.如本文中所使用,术语“存储器级”大体上指代可以同时存取的多个存储器芯片(例如,dram存储器芯片)。在一些实施例中,存储器级可为六十四(64)位宽,每一存储器级
可具有八(8)个页。在一些实施例中,第一类型的存储器装置的页大小可大于第二类型的存储器装置的页大小。但是,实例实施例不限于特定宽度的存储器级或页大小。
37.每个媒体控制器120可包含信道控制电路系统124和多个组控制电路系统128,其中所述多个组控制电路系统128中的相应者配置成存取通过相应媒体控制器120存取的媒体装置126上的所述多个组中的相应组130。如下文更详细地描述,在本公开的实施例中,存储器错误检测器,或更具体为相应的每组行锤击缓解电路系统132,配置成用于每个信道中的每个组120。
38.级、信道和组可被视为媒体装置中存储位置的硬件相关性逻辑分组。级、信道和组逻辑分组到存储器装置126中的物理存储装置或行的映射可经预配置,或者在一些实施例中可由与存储器装置126通信的存储器控制器配置。
39.在一些实施例中,存储器控制器100可以是遵循计算快速链接tm(cxl)的存储器系统(例如,存储器系统可包含pcie/cxl接口)。cxl是一种设计成加快下一代数据中心执行的高速中央处理单元(cpu)-装置和cpu-存储器互连件。cxl技术维持cpu存储器空间和附接装置上的存储器之间的存储器一致性,从而允许资源共享以获得更高的性能、降低的软件堆栈复杂性和更低的总体系统成本。
40.cxl旨在成为高速通信的行业开放标准接口,因为加速器越来越多地用于补充cpu,以支持人工智能和机器学习等新兴应用。cxl技术构建在外围组件互连快速(pcie)基础设施上,利用pcie物理和电气接口在输入/输出(i/o)协议、存储器协议(例如,最初允许主机与加速器共享存储器)和一致性接口等领域提供高级协议。当存储器控制器100遵循cxl时,接口管理电路系统108(包含数据链路和事务控件108)可使用cxl协议管理可包括pcie phy接口的接口106。
41.根据一些实施例,存储器装置126包含一或多个dram装置。在一些实施例中,主存储器存储在具有高存储密度的dram单元中。dram单元随时间推移会丢失它们的状态。也就是说,dram单元必须周期性地刷新,因此得名“动态”。dram可以被描述为根据包括dimm、级、组和阵列的存储组织的层次结构来组织。dimm包括多个dram芯片,dimm中的所述多个芯片组织成一或多个“级”。每一芯片由多个“组”形成。组由存储器单元阵列的一或多个“行”形成。级内的所有组共享所有地址和控制引脚。所有组是独立的,但是在一些实施例中,一次仅可存取级中的一个组。由于电气约束,很少有dimm可以附接到总线上。级有助于增加dimm的容量。
42.每次存取都使用多个dram芯片,以提高数据转移带宽。提供了多个组,使得计算系统可以同时处理不同的请求。为了使密度最大化,组中的阵列变大,行变宽,行缓冲器变宽(64b请求读取8kb)。每个阵列在一个周期内向输出引脚提供单个位(对于高密度,因为引脚很少)。dram芯片通常被描述为xn,其中n指代输出引脚的数目;一个级可以由八个x8dram芯片组成(例如,数据总线是64位)。组和级提供存储器并行性,存储器控制器100可以调度存储器存取以最大化行缓冲器命中率和组/级并行性。
43.在图1a中所示的实施例中,存储器装置126是低功率双倍数据速率(lpddr)lp5或其它类似存储器接口。但是,实施例并不限于此,存储器装置126可包括一或多个经历行锤击攻击或类似存储器攻击的任何存储器媒体类型的存储器媒体,例如但不限于dram的类型。
44.所述多个媒体控制器120中的每一个可接收同一命令和地址,并且基本上同时地驱动所述多个信道125。通过针对所述多个媒体控制器使用相同命令和地址,所述多个媒体控制器120中的每一个可使用所述多个信道125对相同的多个存储器单元执行相同存储器操作。每个媒体控制器120可对应于raid组件。如本文中所使用,术语“基本上”意味着特性不需要是绝对的,而是足够接近以实现特性的优点。
45.例如,“基本上同时”不限于绝对同时执行的操作,且可包含旨在同时进行但由于制造限制而不能精确同时进行的定时。例如,由于各种接口(例如,lpddr5与pcie)可能表现出的读取/写入延迟,“基本上同时”使用的媒体控制器可能不会同时启动或完成。例如,可以利用所述多个存储器控制器,使得它们同时向存储器装置写入数据,而不管媒体控制器中的一个在另一个之前开始还是终止。
46.在图1a中,行锤击缓解组件132在系统101中的存储器控制器100中的每组层级下实施。相反,在图1b中所示的系统101
′
的存储器控制器100
′
中,行锤击缓解组件132在每信道层级下实施。替代地,在图1c中所示的系统101
″
中的存储器控制器100
″
中,行锤击缓解组件在存储器媒体装置层级下实施。
47.图2a示出在例如存储器装置126的dram装置中查看的存储器组130的示意图。所示组130表示组织成10行(例如,行202)和10列(例如,列204)的10x10单元阵列。组经由行缓冲器206一次一行地存储或读取。阵列中的每个单元通过提供行地址和列地址来存取。地址总线、行存取选通信号、列存取选通信号(在图2a中分别示出为a、ras、cas)用于存取阵列中的特定存储器位置。行缓冲器206和数据或读取/写入信号用于要从存储器位置读取或存储到存储器位置的数据。
48.在一些存储器装置中,在图2a中未示出的计数器可与行相关联,以跟踪在特定时间间隔期间行被激活的次数。例如,计数器可在每个刷新间隔开始时初始化,并在刷新间隔期间每次存取所述行时递增。在传统的完美跟踪实施方案中,相应的计数器与每一行相关联。在实例实施例中,所维护的计数器的数目远小于附接到存储器控制器的存储器装置中的行的总数。
49.图2b示出描绘行锤击缓解的基本实施流程的流程图210。行锤击缓解包含两个方面:第一方面是行锤击检测,第二方面是对所述检测的响应。各种响应都是可能的,其中命令存储器装置126刷新受害者行的响应(例如,drfm响应)是缓解或消除行锤击作用的影响的可能响应之一。在一些情况下,存储器控制器向存储器装置126传输刷新命令,例如drfm响应,并指定侵略者行,存储器装置的内部电路系统基于存储器控制器所识别的侵略者行确定要刷新的受害者行并刷新受害者行。
50.当接收到存取存储器装置126中的行(其在本公开中可以称为“侵略者行”(图2a中的行207))的请求时,在操作212处,将所述行识别为要激活的下一行。在操作214处,检查配置成跟踪预定时间周期内对侵略者行的存取次数的计数器的值。在操作216处,确定计数器的值是否高于rht。当侵略者行207超过rht时,与侵略者行207物理相邻的一或多个行(称为“受害者行”;见图2a中的行208和209)中的数据的完整性无法保证。rht可以是工厂设置的或者可以在启动时配置,并且可以取决于存储器媒体装置的类型。如果所述值高于rht,那么在操作218处,发出响应。
51.一种类型的响应可以是数字刷新管理(drfm)命令,以刷新侵略者行207任一侧上
的物理相邻行(例如,行208和209)。当在操作218处发出响应时,刷新的受害者行(例如,行208和209)的计数器可以重置(例如,设置为0)。要刷新的物理相邻行的数目可经预配置,或者可以动态地确定。在218处发出响应之后,或者如果在操作216处确定侵略者行207不高于rht,在操作220处,调度侵略者行的行激活,并使所述行的计数器递增(例如,递增1)。
52.如上文所提到,存储器装置126(例如,一或多个dram dimm)可能遭受行锤击攻击,并且正在使用多种方法来消除或减少这种攻击的影响。尽管据本发明人所知,目前在存储器系统中实施的行锤击缓解的常规技术在能量效率和/或空间效率方面的实用性方面都不足,本公开的实例实施例提供了一种行锤击缓解技术,此技术以实用、高能效且节省空间的方式提供行锤击攻击的完美跟踪(即,不允许任何错误否定的行锤击检测)。
53.如图3所示,在dram存储器装置附接到遵循cxl的存储器控制器的一些实例场景中,存储器装置上的行锤击攻击的全局速率可以是每秒约6.25亿次攻击。因此,如果在经附接存储器装置的全局层级下实施了完美的行锤击检测,那么行锤击检测器必须配置有足够的计数器,以检测在一秒内发生的至少那么多攻击。
54.例如,在图1a中所示的实例实施例中,如果要全局地实施完美行跟踪,那么中央控制器110可配置有行锤击缓解电路系统,其潜在地以每秒6.25亿的速率从媒体控制器120接收经附接存储器装置中的行的行存取信息,并根据需要将缓解响应(例如,drfm)传送到相应的媒体控制器120。
55.如果针对每个媒体控制器120实施每信道行锤击缓解,那么相应媒体控制器120可以处理的攻击速率之和必须至少达到6.25亿/秒,这样的实施方案将能够并且相应地使用所需的空间和能量资源来跟踪显著更高的行更新速率,因为资源是基于每个信道配置的。
56.类似地,如果在每个组控制器128中针对信道中的每个组实施每组行锤击缓解,那么所有组控制器可以处理的攻击速率之和必须至少达到6.25亿/秒,这样的实施方案将能够并且相应地使用所需的空间和能量资源来检测显著更高的检测速率,因为资源是基于每个组配置的。因此,在组层级实施行锤击检测所需的空间和能量资源的总量超过了在信道层级可能需要的空间和能源资源的总量,这又超过了全局层级实施方案的空间和能源资源的总量。
57.因此,可以考虑各种方法来通过将多个行存取为一个单元(不同芯片上的同一行)并且因此对于所述群组仅具有一个计数器而不是对于媒体装置的每一行都具有计数器来实现存储器控制器中的完美(确定性)行锤击跟踪。
58.如上文所提到,例如dram的存储器装置126可能遭受行锤击攻击,并且正在使用多种方法来消除或减少这种攻击的影响。尽管据本发明人所知,目前在存储器系统中实施的行锤击缓解的常规技术在能量效率和/或空间效率方面的实用性方面都不足,本公开提供了一种行锤击缓解技术,此技术以实用、高能效且节省空间的方式提供行锤击攻击的完美跟踪(即,不允许任何错误否定的行锤击检测)。
59.本公开中描述的针对行锤击攻击的解决方案的方法的动机是,对于媒体装置上的每个媒体行具有单独的计数器是非常空间低效的,因此需要具有用于计数器的较小存储器占据面积的其它实施方案来为行锤击检测提供完美的跟踪。作为媒体装置中的每一行专用相应的行锤击激活计数器的代替,本公开中的实例实施例将每个计数器混叠为表示媒体装置中的多个行。
60.也就是说,每个计数器对一组不同的媒体行进行计数,其中所述组包含超过一个媒体行。通过分配每个计数器来跟踪对超过一个媒体行的存取,可以减少需要维护的计数器总数。另外,可以在三个时钟周期中非常有效地完成实例实施例所需的计数器递增和阈值测试。通过每个计数器具有多个行而不是每个计数器一个行来节省空间的折衷是,共享计数器可能会更频繁地达到rht,因为计数器现在在存取分配给它的多个行中的任何一行时递增。
61.但是,因为已经观察到行锤击事件是罕见的(即,在刷新间隔内对特定媒体行的存取次数超过rht的情况是罕见的),所以实例实施例寻求在以更不频繁的事件(例如,计数器超过rht)为代价来优化空间节省和频繁事件(例如,每次行存取时的计数器递增和阈值测试)的同时,提供完美的跟踪。
62.混叠避免了单独跟踪对每行的存取所需的大空间。考虑到每一行的存储需求包含用户观察到的字节,并且在大型(例如,太字节层级)存储器系统中对存取进行计数所需的额外字节会快速增加,以dram行为基础单独跟踪存取会增加大量存储空间。例如,将行群组中的16行混叠为一个计数器,可以将所需计数器的数目减少16倍。因此,所公开的实施例中的混叠技术在多行存储器上摊销每个计数器。
63.图4示出根据一些实施例的每组层级下的行锤击缓解组件132的逻辑框图。行锤击缓解组件132针对通过存储器控制器100存取的经附接存储器装置126的每个组复制。如图1a中所示,存取媒体装置126的每个媒体控制器120可具有多个行锤击缓解组件132,使得由对应于所述媒体控制器的信道控制的每个组具有对应的相应行锤击缓解组件132。
64.行锤击缓解组件132包含行锤击检测器133和sram 134。行锤击检测器133包含监测存储器装置126的对应组的行锤击攻击并且在检测到攻击或潜在攻击时适当响应的电路系统。sram 134供行锤击检测器133用于维持计数器和与对应组的行锤击检测相关联的其它状态。与行锤击检测相关联的额外所需状态可以维持在与行锤击检测器133相关联的d触发器中。
65.在本公开中主要描述的实施例中,所述多个行锤击缓解组件132包含在存储器控制器100中。在存储器控制器100中包含例如所述多个行锤击缓解组件132的行锤击缓解电路系统是有利的,因为对受行锤击缓解电路系统保护的存储器装置126的所有存取都流经存储器控制器100。
66.但是,本公开的实施例不限于在存储器控制器100中实施所述多个行锤击缓解组件132。在一些实施例中,所述多个每组行锤击组件132可以在存储器控制器外部实施。此外,实施例可能不限于在sram中存储计数器,在一些实施例中,存储器134可以是不同于sram但实现计数器的串行搜索的存储器类型。
67.在一些实施例中,并不是在每组层级下实施行锤击检测器,如图4和图1a中所示,行锤击检测器可以在每信道层级下实施(即,在存储器控制器100上每一信道120具有一个行锤击检测器组件132,例如,如图1b所示)或在媒体装置层级下实施(即,在存储器控制器100上每个媒体装置126具有一个行锤击组件132,例如,如图1c所示)。
68.图5示意性地示出根据一些实施例的用于使用在例如图1a-1c中所示的设备中使用的混叠行激活计数器进行行锤击缓解的电路系统500。在实例实施例中,行锤击检测器组件132(例如,见图1a和图4)包含行激活计数器(也称为act计数器)电路系统502、刷新响应
队列504、媒体命令队列506和优先级仲裁器508。
69.在实例实施例中,行锤击组件132且因此电路系统500实施于存储器控制器100上。电路系统500从主机系统103接收媒体行存取命令510。一些媒体行存取命令510可以在存储器控制器100内部产生(例如,高速缓存112未命中)。在电路系统500中接收到的每个媒体行存取命令510被输入到512媒体命令队列506。媒体命令队列506可以实施为存储器缓冲器,用于在至少一个媒体行存取命令提供给媒体装置518(例如,连接到图1a中的存储器控制器100的媒体装置126)之前存储所述命令。
70.每个媒体行存取命令还并行地使计数器电路系统502递增514并进行阈值测试516。测试的阈值在本文中称为“经配置触发阈值”,设置成等于rht或低于rht(例如,阈值=rht-1)。关于图7描述了有效递增和测试过程。如果阈值测试516检测到计数器超过经配置触发阈值,那么将提供行锤击响应的一或多个刷新命令输入到刷新响应队列504。
71.例如,行a的行激活(例如,对行a的行存取)使行a的行激活命令在媒体命令队列506中入队,并行地使对应于行a的计数器递增并相对于电路系统502的阈值测试。如果行a的计数器超过经配置阈值,那么在行a上检测到行锤击事件,并且作为响应,刷新行a的相邻行的一或多个刷新命令在刷新响应队列506中入队。
72.优先级仲裁器508从在媒体命令队列506和刷新响应队列504中入队的命令选择要发送到存储器媒体装置518的命令。当在一周期中媒体命令队列506中被调度执行的下一命令和刷新响应队列504中被调度执行的下一命令是用于同一行时,仲裁器508可向刷新响应队列504赋予优先级。以此方式,仲裁器可机会确保行在下一次存取之前刷新。
73.在实例实施例中,如果电路系统502设置经配置触发阈值至少比rht少一(即,阈值=rht-1),并且对行a的存取超过经配置触发阈值,那么对行a的所述存取和对应的刷新命令(由于超过经配置触发阈值而产生)可以分别是要从命令队列506和刷新响应队列504调度的下一命令。在所述事件序列中,通过在调度行a的行存取命令之前调度行a的刷新命令,优先级仲裁器508可确保用正确的数据响应行存取命令。
74.在一些实例实施例中,行锤击电路组件132包含电路502、刷新响应队列504、媒体命令队列506和优先级仲裁器508。在另一实施例中,行锤击电路组件132包含电路502、刷新响应队列504和优先级仲裁器508。在另一实施例中,媒体命令队列506和/或优先级仲裁器508在媒体装置中行锤击电路组件132外部实施。
75.图6a示意性地示出根据一些实施例的在例如图5中所示的实施方案中使用的sram(例如,图4的sram 134)中组织的混叠行激活计数器604。行激活计数器604跟踪n个媒体行602(即,对应于行识别符0...n的媒体行,其中n是大于0的整数)。
76.行激活计数器604是一组混叠计数器,使得所述组604中的每个计数器跟踪所述一组行602的两个或更多个行的不同子集。映射606将行602的每个子集的所述两个或更多个行识别符映射到计数器604中相应对应的计数器。在一些实施例中,映射可以是基于每一行识别符中的位子集选择计数器。在所示实施例中,混叠因子是x;也就是说,所述n个行表示为n/x计数器,其中x是2的倍数。如果例如x=8且n=1024,那么所需要的计数器的数目是n/x=128。
77.图6b示出根据一些实例实施例的示出混叠对混叠行激活计数器表大小的影响的表。图6b中的表示出了需要监测的1.28亿行所需的每个混叠因子1、2、4、8、16和32的计数器
表字的数目。如图中所示,尽管一对一的行-计数器跟踪(即,混叠因子=1)需要超过1.34亿个计数器表字,但对于混叠因子32,所需的计数器数目急剧减少到大约4百万个计数器。
78.图7示出根据一些实例实施例的使用混叠行激活计数器的行锤击缓解过程700的流程图。过程700可实施于行锤击缓解组件132中。根据实施例,在存储器控制器100中,对应于连接到经附接媒体装置126的组中的每个组的相应行锤击缓解组件132将具有其自身的电路系统来独立地执行过程700。例如,图4示出针对信道中的多个组中的每一个每组实施的相应行锤击缓解组件132。但是,实施例不限于每组行锤击缓解。如上文所提到,在一些实施例中,行锤击缓解组件132以每信道方式或以每存储器装置方式实施。
79.过程700可在操作702处开始,在此期间,初始化与行锤击缓解相关联的计数器表。计数器表具有初始状态,此外必须周期性地清除。在一些实施例中,此操作可响应于存储器装置126的相应刷新(tref)间隔的乒乓重置操作而触发/发起。重置将清除所有行激活计数器。参考图8a-8c描述了实例乒乓重置机制。关于图9描述了另一种替代的重置技术。
80.在操作704处,针对附接到存储器控制器100上的存储器装置126的特定行,接收传入的存储器媒体存取请求(行存取请求)。所请求的行可以称为侵略者行。
81.在操作706处,从sram 134中读取一个行激活计数器,更具体地说,与媒体装置中要存取的行(侵略者行)相对应的行激活计数器。例如,基于侵略者行的行地址(在行地址表602中)和混叠映射606从计数器表604读取行激活计数器。在一些实例中,一次读取一个计数器字以提高效率(例如,实施方案可以选择读取的多个字中的一个以减少阵列错误检测和校正(edac)开销)。
82.在操作708处,执行edac并使计数器的值递增。计数器的每次递增包含将计数器的值递增1。可选地,可以在饱和的情况下执行递增。
83.在操作710-712处,将新计数器值写回到计数器(即,更新计数器值),同时还比较所述值与经配置触发阈值。在实例实施例中,经配置触发阈值基于存储器媒体rht设置。例如,在一个实施例中,经配置触发阈值可设置成等于rht。在另一实施例中,经配置触发阈值设置成等于小于rht(例如,rht-1)。因此,操作712确定侵略者行是否已经存取过多次,导致它现在或很快(例如,在1次或几次存取中)可能损坏相邻行。
84.如果在操作712处确定侵略者行已经存取超过经配置触发阈值,那么在操作714处,将例如命令存储器装置刷新经识别侵略者行的受害者行的信号(例如,drfm命令)的响应传输到存储器装置。在一些实施例中,存储器装置包含接收侵略者行id并且作为响应刷新受害者行的电路系统。在一些实施例中,响应可识别要刷新的受害者行。
85.在操作714期间,将对应于侵略者行id的计数值设置为0,因为侵略者行的受害者行已经响应于经传输响应刷新过。在一些实施例中,受害者行的计数器值还可重置,以反映它们在存储器装置中刷新。
86.如果在操作712处确定侵略者行的计数器不超过经配置触发阈值,那么过程700返回到操作704,等待下一行识别符。替代地,在操作714结束时,过程700返回到操作704,等待下一行识别符。
87.应注意,过程700可以以高度优化更新和比较计数器的最频繁情况的方式实现。例如,在实例实施例中,操作706(读取混叠计数器值)、708(使计数器的值递增)和710(更新sram中的计数器并与经配置触发阈值比较)中的每一个都以一个时钟周期的速率进行,从
而产生完成操作706-710所需的三个时钟周期时间。
88.如上文所提及,在正常操作情形中,超过行锤击阈值是相对罕见的。但是在实例实施例中,由于行激活计数器被混叠,经配置触发阈值(其基于rht配置)可能会稍微更频繁地被超过,但与上述更频繁的更新和比较事件相比,仍然预计仅很少发生,因此不会对性能产生负面影响。
89.图8a-8c示出根据一些实例实施例的在例如关于图5和图7描述的混叠计数器行锤击缓解实施方案中初始化混叠行计数器的乒乓实施方案。
90.任何基于计数器的逻辑都需要重置。由于不同的存储器媒体行在不同的内部媒体确定时间刷新,因此为特定媒体行重置外部计数器的理想时间可以在启动时配置或确定。周期性乒乓重置是一种安全的计数器重置,当在乒乓方案中使用成对计数器时,这种重置是可能的。任何特定计数器的重置之间的时间可以是可配置的,并且在一些实施例中是例如128ms(2x tref)。根据实施例,在第一tref周期期间,act计数器处于它正在计数但不发送drfm的预处理状态。在下一tref周期期间,act计数器正在计数,并且触发drfm命令或其它行锤击响应。
91.第二组act计数器类似地操作,但相对于第一组act计数器偏移tref。一组act计数器始终激活以触发drfm命令。
92.这种方法消除了错误否定drfm触发。然而,这种方法需要两组计数器,这意味着硅面积和功率的两倍。此外,基于2x tref的计数发送潜在的drfm。
93.图8a示出使用两个混叠计数器表——表a 802和表b 804——的乒乓重置方案的实例高层级示意性图示。混叠行激活计数器表802和804均可具有相同的结构和用于相同行的计数器。
94.当针对侵略者行接收到递增事件806时,使用混叠606来识别与侵略者行相对应的计数器,并且在表802和804中的每一个中更新对应的计数器。尽管两个表都会针对每个传入操作不断更新,但在任何给定时间,其中一个表都被视为活动表。对于与经配置触发阈值的比较810,此时从活动表中选择侵略者行计数器的值。基于比较810的结果,可以如上文关于操作714所述发出行锤击响应812。
95.行激活计数器表802和804被称为乒乓,因为活动表状态在两个表之间交替。以规则的时间间隔,重置电路808重置表802或804之一中的所有计数器。最近重置的表用作备份表,而另一个表用作活动表。
96.图8b示出在包含识别为周期i-o的多个刷新周期824的时间周期期间的表更新程序。示出了更新表a(操作序列820)和更新表b(操作序列822)的时间交错方式。为了解释清楚,序列820被示为在序列822之前开始,以表示表a的第i次重置在表b的第i次重置之前的一个刷新间隔824以时间交错的方式发生。图中的底行指示在每个刷新间隔i/o中哪个表被视为活动表。
97.图8c示出根据一些实施例的乒乓重置电路840的示意图。外部时钟充当电路840的输入。基于输入时钟,0到tref计数器842每tref(例如,64ms)产生一个脉冲。基于来自计数器842的脉冲,触发器844每tref在0和1之间切换输出。当act计数器b 848变为活动(即,能够触发drfm)时,act计数器a 846重置,反之亦然。
98.act计数器a 846和act计数器b 848始终接收并计数所有存储器媒体行激活
(act)。act计数器a和act计数器b都在达到存储器媒体rht计数(或经配置触发阈值)时触发drfm(或其它行锤击缓解响应),但基于触发器844的状态,只有act计数器中“活动”的一个可以触发drfm,另一act计数器被忽略。组件850向存储器媒体控制器产生drfm以传输到存储器装置。
99.图9示出替代性重置电路900,其可以安全地重置act计数器604,而不会使乒乓重置电路840所需要的计数器表消耗的空间大小加倍。根据实施例,重置电路900包含act媒体行历史fifo 904,act行计数器902(例如,混叠行计数器604)基于所述fifo进行重置。
100.在操作中,当针对行a发生916计数器递增并与经配置触发阈值进行比较(例如,上述过程700中的操作710)时,与更新混叠act计数器902中的行a的计数器并行地,将行a识别符推入fifo 904。类似地,对于每个计数器更新,将对应的行识别符推入fifo 904。当fifo全满时,弹出最早的行识别符。对于从fifo 904弹出的每一行识别符,重置混叠行计数器902中的对应行计数器。
101.在行的刷新命令后,所述行的行激活计数为0。然而,问题是,存储器控制器可能不知道何时刷新了哪些行。存储器控制器可能知道的只是自上次刷新后是否已经过tref。一个天真的解决方案是,在每次刷新时,将行识别符推入fifo。最终(例如,60秒后),弹出所述行识别符并再次刷新所述行。
102.图10示出可以在实例实施例中实施的不同行锤击攻击响应技术的表。刷新技术包含偏置高速缓存替换、增加刷新、act/pre邻居行、穷人的drfm、drfm、edac清理邻居、限制对crha行(例如,具有高行激活计数的行)的行激活、用数据错误(data bad)消息响应行存取请求、警告和/或中断主机以指示已超过rht。如表中所示,若干响应技术保证数据完整性,并且不需要媒体装置的修复图。数据完整性的保证提高了从媒体装置读取数据的可靠性。不需要修复图增加了响应技术的灵活性,以及响应技术对不同制造商的媒体装置的适用性等。在图10中可以看出,drfm保证数据完整性,不需要媒体装置的修复图,并且具有低响应时间,这表明它是可以在实例实施例中有效使用的响应技术。然而,实施例不限于使用drfm作为对行锤击攻击的响应。
103.行激活计数器以及任选地从行识别符到计数器的混叠索引用于行锤击检测的sram实施方案使得混叠行激活计数器算法在所需电路空间量和能量使用方面有效。在一些实施例中,所公开的行锤击检测器实施方案使用单端口sram。单端口sram可以一次读取或写入,但不能同时进行读取和写入,是一种更便宜的sram形式。如上文所提到,由于操作706-710可以在非常少的时钟周期内完成,所以可以在开始对所述存储器媒体装置的下一存取请求采取行动之前完成对所述存储器媒体装置的先前存取请求,从而允许使用单个后sram,所述后sram允许在给定时间进行读取或写入,但不能同时进行读取和写入。算法所需的大量状态的sram实施方案使得在控制器内对大量存储器媒体执行行锤击检测变得实际,并且这反过来使得能够从受控存储器媒体中移除行锤击检测功能,从而简化和减少所述存储器媒体的成本和功耗。
104.如上文所提到,实例实施例优化与行锤击缓解相关联的更频繁事件,即更新和比较行激活计数器,这与行激活计数器值超过存储器媒体装置的rht的更罕见事件(在正常操作情况下)相反。如上文所描述,例如,行激活计数器的更新和比较在一些实施例中可在三个时钟周期中执行,而对检测到的行锤击攻击的响应可能需要多个时钟周期。
105.在实例实施例中实施的混叠行激活计数器是简单的、节能的并且可以合理地节省空间。但是在一些实施例中,由于实施例中的每个计数器对若干行是公共的,因此系统最终不得不比每行具有单个计数器的实施方案中做更多的缓解动作。缓解命令通常是耗时的,并且可以更快地多次达到rht(例如,达到混叠因子)。此外,每当超过rht时,发送的缓解消息的数目就会更多(即,群组中的行越多意味着邻居越多)。理由是,在正常操作条件下,不应超过任何行群组的计数器,因此很少触发缓解。实例实施例旨在廉价地检测异常情况。但是,由于可能发生行锤击攻击,实例实施例的次要目标是当检测到行锤击攻击时,最小化对性能的影响。
106.另外,在实例实施例中,在检测到行锤击攻击时,与每行具有单独计数器的实施方案相比,可以向存储器媒体装置发送更多的行锤击响应刷新消息。尽管具有与超过rht的计数器相关联的超过一个行并不意味着受影响行的数目(即,相邻行的数目)大于每计数器一行实施方案的情况,实例实施例可以为与计数器相关联的每一行产生刷新响应,因为存储器控制器可能不知道存储器媒体装置的行识别符到实际物理行布局的映射。
107.通过使混叠群组与刷新群组重叠,可以提高实例实施例中混叠群组的效率。例如,存储器媒体装置可配置成通过在多个刷新时间中的每一个刷新各自不同的行群组来执行其所有行的刷新。当混叠群组(映射到每一行激活计数器的不同行子群组)与刷新群组重叠时,计数过程被优化,因为每一群组中的所有行都具有相同的刷新间隔。
108.实例实施例可以限制瀑布和多米诺攻击,在这种攻击中,攻击者可以通过设置行更新来破坏用户的数据,使得几个相邻群组刚好低于经配置触发阈值,从而当一个群组超过阈值时,对其的缓解可能会导致另一个群组超出阈值,等等,从而导致瀑布和多米诺袭击。
109.此外,在实例实施例中,通过确保经配置触发阈值小于rht,使得媒体行总是恰好在接收到将超过rht的媒体存取请求之前被刷新,可以将对后续存储器存取的最坏情况拒绝服务(dos)时延影响限制为仅一个行锤击响应所需的持续时间。
110.虽然已结合目前被认为是最切实可行和优选的实施例描述本发明,但应了解,本发明不限于所公开的实施例,而是相反地,预期涵盖所附权利要求书的精神和范围内所包含的各种修改和等效布置。
111.应注意,上文所描述的方法描述可能实施方案,并且操作和步骤可以重新布置或以其它方式修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两个或更多个的部分。
112.本文所述的信息和信号可以使用各种不同的技术和技艺中的任何一种来表示。例如,在以上描述中可能引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示。一些图可能将信号图示为单个信号;然而,信号可能表示信号总线,其中总线可具有多种位宽。
113.术语“传输”、“连接”和“耦合”可以指代支持组件之间信号流的组件之间的关系。如果组件之间存在任何可以随时支持信号在组件之间流动的导电路径,那么组件被视为彼此电子连通(或导电接触或连接或耦合)。在任何给定时间,彼此电子连通(或导电接触、连接或耦合)的组件之间的导电路径可能是开路或闭路,取决于包含所连接组件的装置的操作。所连接组件之间的导电路径可以是组件之间的直接导电路径,或者所连接组件之间的
导电路径可以是间接导电路径,其可包含中间组件,例如开关、晶体管或其它组件。
114.在一些实例中,所连接组件之间的信号流可以被中断一段时间,例如使用一或多个中间组件,如开关或晶体管。术语“耦合”是指从组件之间的开路关系(其中信号目前无法通过导电路径在组件之间进行通信)转变为组件之间的闭路关系(信号能够通过导电路径在组件之间进行通信)。如果例如控制器的组件将其它组件耦合在一起,那么所述组件发起一个更改,允许信号通过以前不允许信号流动的导电路径在其它组件之间流动。
115.术语“如果”、“当......时”、“基于”或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当......时”、“基于”或“至少部分地基于”是用于描述条件性动作、条件性过程或过程部分之间的连接,那么这些术语可以互换。
116.术语“响应于”可以指作为先前条件或动作的结果至少部分地(如果不是完全的话)发生的一个条件或动作。例如,第一条件或动作可被执行并且第二条件或动作可以至少部分地作为先前条件或动作发生的结果发生(无论是在第一条件或动作之后发生的一或多个其它中间条件或动作之后直接发生还是在此之后发生)。
117.另外,术语“直接地响应于”或“直接响应于”可以指作为先前条件或动作的直接结果而发生的一个条件或动作。在一些实例中,可以执行第一条件或动作,并且第二条件或动作可以作为先前条件或动作发生的结果直接发生,而与其它条件或动作是否发生无关。在一些实例中,可以执行第一条件或动作,并且第二条件或动作可以作为先前条件或动作发生的结果而直接发生,使得在所述更早的条件或动作与所述第二条件或动作之间不发生其它中间条件或动作,或者在所述更早的条件或动作与所述第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另有规定,否则本文中描述为“基于”、“至少部分基于”或“响应于”某一其它步骤、动作、事件或条件而执行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”此类其它条件或动作而执行。
118.本文所论述的装置(包含存储器阵列)可以形成在半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(soi)衬底,如玻璃上硅(sog)或蓝宝石上硅(sop),或半导体材料在另一衬底上的外延层。衬底或衬底子区的导电性可以通过使用各种化学物质掺杂来控制,所述化学物质包含但不限于磷、硼或砷。掺杂可在衬底的初始形成或生长期间通过离子注入或通过任何其它掺杂手段来执行。
119.本文中结合附图所阐述的描述描述了实例配置,并且不代表可以实施或在权利要求书的范围内的所有实例。本文所使用的术语“示例性”意指“充当实例、例子或说明”,并且不“优先”或“优于其它实例”。详细描述包含提供对所描述技术的理解的具体细节。然而,这些技术可以在没有这些具体细节的情况下实践。在一些情况下,公知的结构和装置以框图的形式示出,以避免混淆所描述的实例的概念。
120.本文所述的功能可实施于硬件、由处理器执行的软件、固件或其任何组合中。如果在由处理器执行的软件中实施,那么功能可以作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体传输。其它实例和实施方案在本公开和所附权利要求书的范围内。例如,由于软件的性质,上文描述的功能可以使用由处理器执行的软件、硬件、固件、硬连线或这些项中的任一个的组合来实施。实施功能的特征还可物理地位于各个位置,包含为分布式的,使得功能的各部分在不同物理位置处实施。
121.例如,本文中结合公开内容描述的各个说明性块和组件可利用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其设计成执行本文所述的功能的任何组合来实施或执行。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何处理器、控制器、微控制器或状态机。处理器可以实施为计算装置的组合(例如,dsp和微处理器的组合、多个微处理器、一或多个微处理器结合dsp芯,或任何其它此类配置)。
122.如本文中所使用,包含在权利要求书中所使用,在项目列表(例如,以“中的至少一个”或“中的一或多个”等短语结尾的项目列表)中使用的“或”表示包含性列表,例如,a、b或c中的至少一个的列表表示a或b或c或ab或ac或bc或abc(即,a和b和c)。此外,如本文所用,短语“基于”不应理解为对封闭条件集的引用。例如,被描述为“基于条件a”的示例性步骤可以基于条件a和条件b而不脱离本公开的范围。换句话说,如本文所用,短语“基于”应以与短语“至少部分地基于”相同的方式进行解释。
123.计算机可读媒体包含非暂时性计算机存储媒体和通信媒体两者,所述通信媒体包含有助于计算机程序从一个位置转移到另一位置的任何媒体。非暂时性存储媒体可以是任何可用的可以通过通用或专用计算机存取的媒体。举例来说且不加限制,非暂时性计算机可读媒体可包括ram、rom、电可擦除可编程只读存储器(eeprom)、光盘(cd)rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于载送或存储呈指令或数据结构形式的所需程序代码构件且可以通过通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。并且,任何连接都可以适当地称为计算机可读媒体。
124.例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或诸如红外、无线电和微波之类的无线技术从网站、服务器或其它远程源传输,那么同轴电缆、光纤电缆、双绞线、dsl或诸如红外、无线电和微波之类的无线技术都包含在媒体的定义中。如本文中所使用,磁盘和光盘包含cd、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上述各项的组合也包含在计算机可读媒体的范围内。
125.还应理解,本文所使用的术语仅用于描述特定实施例的目的,而不意在限制。如本文中所使用,单数形式“一(a/an)”和“所述(the)”可包含单数和复数个提及物,除非上下文另有明确规定。另外,“数个”、“至少一个”和“一或多个”(例如,数个存储器组)可以指一或多个存储器组,而“多个“意指超过一个此类事物。
126.此外,“可能”和“可”这两个词在本技术中的使用是容许意义上的(即,有可能、能够),而不是强制意义上的(即,必须)。术语“包含”及其派生词是指“包含但不限于”。术语“耦合(coupled/coupling)”是指直接或间接物理连接,或用于存取和移动(传输)命令和/或数据,视上下文而定。术语“数据”和“数据值”在本文中可以互换使用,并且可以根据上下文具有相同的含义。
127.dram被组织为存储单元阵列,其中每个单元存储经编程值。如上文所提到,如果不周期性地刷新,单元可能会丢失其编程值。因此,行以固定间隔刷新,此间隔通常称为“刷新间隔”。刷新也称为“行激活”。在行激活中,dram装置中的行被读取、纠错并写回同一物理行。在最近的dram装置中,由“行锤击事件”(也称为“行锤击攻击”)引起的数据损坏是一个重大风险。
128.当在“激活间隔”(即,两个刷新/激活事件之间的间隔)内存取媒体装置中的特定行太多次,即超过“行锤击阈值(rht)”次数时,就会发生行锤击事件。具体地说,当在激活间隔期间存取特定行(“侵略者行”)超过rht次数时,在dram媒体中与所述特定行物理邻近的一或多个行(“受害者行”)可能由于所述特定行的频繁激活而受到影响,并且可能发生所述一或多个行的数据损坏。
129.由于制造过程几何尺寸缩小的各种物理效应,存储器装置的rht已经降低到一个水平,在这个水平上,即使是正常的计算机系统程序也会无意中损坏自己的数据或共享同一系统存储器的另一程序的数据。传统的行锤击检测技术要么是实用的,但不完美,会导致数据损坏或严重的性能下降,要么是完美的,但所需的资源成本不切实际。
130.传统的行锤击检测器算法,如“地址采样”和“优先级cam”(优先级内容可寻址存储器)是概率性的,因此不能保证在任何和所有行锤击场景中完美(即,完整、准确和精确)防止数据损坏。如果侵略者(例如,恶意攻击者)足够了解这些传统行锤击检测方法及其实施方案的细节,侵略者就可以攻击它们的弱点以绕过或破坏它们并损坏数据。
[0131]“直接”或“完美”行跟踪方法是一种已知的完美行锤击检测算法,其中为dram媒体中的每一行维护一个计数器,但它的实施方案需要大量存储器和操作功率,而这些存储器和操作能力都太高,无法实际使用。
[0132]
受保证的行锤击事件消除对于任何存储器装置都是有吸引力的,但对于诸如超大规模数据中心(hsdc)之类的系统来说尤其有吸引力。在hsdc中,通常多个客户共享处理器和存储器。恶意攻击者可以使用行锤击攻击来悄悄地(例如,在没有检测到的情况下)损坏其他客户的数据,从而可能提升其控制更多系统资源的权限或危及数据中心安全。
[0133]
目前,行锤击损坏与其它软错误无法区分。现代工作负载会冲击处理器高速缓存,并导致意外的行锤击情形。检测到的错误超过阈值速率时,需要对双列直插式存储器模块(dimm)进行物理维修,通常会将其退还给供应商以获得补偿。
[0134]
提供本文的描述以使所属领域的技术人员能够制作或使用本公开。对所属领域的技术人员来说,对本公开的各种修改是显而易见的,并且在不脱离本公开的范围的情况下,本文所定义的一般原理可以应用于其它变化。因此,本公开不限于本文所描述的实例和设计,而是要符合与本文所公开的原理和新颖特征一致的最广泛范围。
技术特征:
1.一种设备,其包括:存储器媒体装置接口,其配置成连接到存储器媒体装置;至少一个存储器,其包括多个计数器,其中所述多个计数器的计数器总数小于所述存储器媒体装置中能够用于数据存储的行总数,且所述多个计数器中的每个计数器与所述存储器媒体装置中能够用于数据存储的所述行的相应行群组相关联;以及第一电路,其配置成执行包括以下各项的操作:基于存储器媒体存取请求的行识别符,读取所述多个计数器中的计数器;使所述计数器的计数值递增;如果经递增计数值超过经配置触发阈值,那么触发对所述存储器媒体装置中的错误的响应;以及将所述经递增计数值写入到所述计数器。2.根据权利要求1所述的设备,其中所述至少一个存储器是静态随机存取存储器sram。3.根据权利要求2所述的设备,其中所述至少一个存储器是单端口sram。4.根据权利要求1所述的设备,其中所述多个计数器的所述计数器总数小于存储器错误检测器在所述存储器媒体装置上监测的行总数。5.根据权利要求1所述的设备,其中所述存储器媒体装置中能够用于数据存储的每个所述相应行群组包括多个行。6.根据权利要求5所述的设备,其中所述存储器媒体装置中能够用于数据存储的每个所述相应行群组包括相同数目的行。7.根据权利要求1所述的设备,其中所述读取、所述递增和所述写入在三个连续时钟周期中共同执行。8.根据权利要求1所述的设备,其进一步包括第二电路,其中所述第二电路配置成接收要传输到所述存储器媒体装置的第一请求和要传输到所述存储器媒体装置的第二请求,并从所述第一请求和所述第二请求中选择一请求以传输到所述存储器媒体装置,其中所述第一请求是请求读取或写入数据,且所述第二请求是请求刷新所述存储器媒体装置中的一或多个行。9.根据权利要求8所述的设备,其中所述第二电路配置成当第一请求和第二请求与同一行相关联时选择所述第二请求。10.根据权利要求1所述的设备,其中所述经配置触发阈值配置为低于所述存储器媒体装置的行锤击阈值的值。11.根据权利要求1所述的设备,其中所述至少一个存储器包括第二多个计数器,其中所述第一多个计数器和所述第二多个计数器的计数器总数相同,并且其中所述第一电路进一步配置成响应于所述存储器媒体存取请求而使所述第一多个计数器和所述第二多个计数器的对应计数器的值递增,并相对于重置所述第二多个计数器以时间交错的方式执行所述第一多个计数器的重置。12.根据权利要求1所述的设备,其中所述至少一个存储器包括先进先出队列,其队列条目总数等于所述多个计数器的计数器总数,并且所述第一电路进一步配置成响应于重置所述多个计数器中的每一计数器而在所述先进先出队列中输入对应计数器识别符,并且响应于从所述先进先出队列输出的每一计数器识别符而重置所述多个计数器中的对应计数
器。13.根据权利要求1所述的设备,其中所述经触发响应包括刷新对应于所述行识别符的行的一或多个物理相邻行的数字刷新管理drfm命令。14.根据权利要求1所述的设备,其中所述电路进一步配置成以所述存储器媒体装置的相应刷新间隔清除所述多个计数器。15.根据权利要求14所述的设备,其中所述存储器媒体装置中能够用于数据存储的所述行的每个所述相应行群组中的所有行以相同刷新间隔刷新。16.一种方法,其包括:在至少一个存储器中配置多个计数器,其中所述多个计数器的计数器总数小于所述存储器媒体装置中能够用于数据存储的行总数,并且所述多个计数器中的每个计数器与所述存储器媒体装置中能够用于数据存储的所述行的相应行群组相关联;基于存储器媒体存取请求的行识别符,通过第一电路读取所述多个计数器中的计数器;通过所述第一电路使所述计数器的计数值递增;如果所述经递增计数值超过经配置触发阈值,那么通过所述第一电路触发对所述存储器媒体装置中的错误的响应;以及通过所述第一电路将所述经递增计数值写入到所述计数器。17.根据权利要求16所述的方法,其中所述至少一个存储器是静态随机存取存储器sram。18.一种系统,其包括:主机系统;存储器媒体装置;以及存储器控制器,其包括:第一接口,其配置成连接所述主机系统;第二接口,其配置成连接到所述存储器媒体装置;至少一个存储器,其包括多个计数器,其中所述多个计数器的计数器总数小于所述存储器媒体装置中能够用于数据存储的行总数,且所述多个计数器中的每个计数器与所述存储器媒体装置中能够用于数据存储的所述行的相应行群组相关联;以及电路,其配置成执行包括以下各项的操作:基于存储器媒体存取请求的行识别符,读取所述多个计数器中的计数器;使所述计数器的计数值递增;如果经递增计数值超过经配置触发阈值,那么触发对所述存储器媒体装置中的错误的响应;以及将所述经递增计数值写入到所述计数器。19.根据权利要求18所述的系统,其中所述至少一个存储器是静态随机存取存储器sram。
技术总结
本公开涉及ALAISED行锤击检测器。描述了对存储器媒体装置中由行锤击攻击等引起的错误的高能效且节省面积的缓解。在SRAM中,确定性地执行错误检测,同时保持行存取计数器数目小于所述存储器媒体装置中受保护的行总数。所需计数器数目的减少是通过将受保护的多个行混叠到每个计数器来实现的。可以基于每个组、每个信道或每个存储器媒体装置来实施缓解。所述存储器媒体装置可以是DRAM。述存储器媒体装置可以是DRAM。
技术研发人员:E
受保护的技术使用者:美光科技公司
技术研发日:2023.01.20
技术公布日:2023/7/26
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种敲入荧光的小鼠模型及其构建方法和应用 下一篇:DRAM行复制的制作方法
