CN117859178A - 用于经由协同方法保护存储器设备的方法和装置 - Google Patents
用于经由协同方法保护存储器设备的方法和装置 Download PDFInfo
- Publication number
- CN117859178A CN117859178A CN202280057656.XA CN202280057656A CN117859178A CN 117859178 A CN117859178 A CN 117859178A CN 202280057656 A CN202280057656 A CN 202280057656A CN 117859178 A CN117859178 A CN 117859178A
- Authority
- CN
- China
- Prior art keywords
- memory
- counter
- dram
- parameter
- computer system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000004044 response Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims description 3
- 238000001994 activation Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 2
- 238000002955 isolation Methods 0.000 abstract description 6
- 230000000116 mitigating effect Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000002195 synergetic effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 235000019633 pungent taste Nutrition 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/02—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
一种用于减轻动态随机存取存储器(DRAM)中的串扰的协同方法,该协同方法实现了使用随机数生成器来使计数器以概率性方式递增。该计数器是通过回收双倍数据速率(DDR)故障隔离特征的字节来形成的。可将随机数生成器值与预定参数值进行比较,并且可基于该比较的结果来确定是否提取计数器并使该计数器递增。逻辑控制器将计数器值与预定热度阈值参数进行比较,并且基于本地存储器中存在地址匹配来设定标志。基于比较的结果,减少对DRAM的访问。
Description
相关申请的交叉引用
本申请要求2021年9月28日提交的名称为“METHOD AND APPARATUS FORPROTECTING MEMORY DEVICES VIA A SYNERGIC APPROACH(用于经由协同方法保护存储器设备的方法和装置)”的美国非临时专利申请17/487,961号的优先权,其全部公开内容以引用方式并入本文。
技术领域
各种实施方案整体涉及减轻存储器设备中的串扰,并且更具体地涉及一种用于减小具有动态随机存取存储器的系统中的串扰效应的方法和装置。
背景技术
在所有计算系统(从台式计算机和移动设备到服务器和云平台)中,主存储器都是关键部件。动态随机存取存储器(DRAM)的低成本和相对低的时延使其成为用于构建主存储器的主要数据存储技术。DRAM技术过程缩放已使得能够减小DRAM单元大小,以增加存储器容量和性能。随着DRAM单元的大小缩小,DRAM中的电容器和存取晶体管变得不太可靠并且通常更容易受到电气噪声和干扰(更通常称为串扰)的影响。
由DRAM技术过程缩放引起的串扰可靠性问题会导致安全漏洞。例如,重复地读取或访问DRAM中的同一行可破坏物理上相邻的行中的数据。更具体地,当在单个DRAM刷新间隔内重复地访问DRAM行(这一过程也称为行锤击)时,物理上相邻的行中的一个或多个位可被翻转为错误值。行锤击攻击可能导致对存储在主存储器中的数据的损害和控制。
存在各种解决方案来减轻串扰。这些解决方案中的许多解决方案是昂贵的,因为它们牺牲了芯片面积来增强性能和可靠性。期望一种不会为了性能而牺牲容量的改进解决方案。
发明内容
装置和相关联的方法涉及概率性和确定性RAM访问监测器(PADRAM),该PADRAM通过减少对DRAM存储器的访问次数来减轻串扰。PADRAM通过以下方式来跟踪DRAM的被频繁访问的行(称为热行):使用DRAM的现有故障隔离特征的一部分作为计数器并且通过使用随机数生成器使该计数器以概率性方式递增。计数器值基于热度阈值(hotness threshold)或热阈值参数(hot threshold parameter)来确定DRAM行是否被访问。热度阈值被设定为保证对某一词语的总DRAM访问次数不超过行锤击阈值。该行锤击阈值可被定义为在错误发生之前能够对DRAM进行的最小字线访问次数。在本公开中,DRAM与双倍数据速率(DDR)存储器同义,其也可称为DDR同步DRAM或DDR SDRAM。
在一个实施方案中,一种计算机系统包括至少一个处理器和可操作地耦合到该处理器的DRAM。该计算机系统还包括可操作地耦合到处理器的存储器控制器。该存储器控制器包括被配置为减轻DRAM阵列中的串扰的装置。该计算机系统还包括多个数据分组。每个数据分组表示存储器线并且被配置为包括计数器,该计数器跟踪对DRAM阵列中的每个行的访问。
在另一实施方案中,一种处于存储器控制器中的装置包括计数器,该计数器被嵌入在数据分组结构中,对于主存储器的访问次数进行计数。随机数生成器基于概率参数使计数器以概率性方式递增。该装置包括静态随机存取(SRAM)寄存器,该SRAM寄存器被配置用于对行地址匹配进行访问响应。逻辑控制器控制是否对SRAM寄存器或主存储器进行访问。
在又一实施方案中,一种在存储器控制器处实施的方法包括:接收行地址;以及基于该行地址来确定是访问片上存储器还是DRAM阵列;在片上存储器中是否存在行地址匹配。如果在片上存储器中存在行地址匹配,则将对应于该行地址的数据分组的高速缓存线写入到该片上存储器,并以及绕过对DRAM阵列的所有访问。如果发生行地址未命中,则基于第一条件和第二条件利用数据分组的高速缓存线来访问DRAM阵列。
各种实施方案可实现一个或多个优点。在一个示例性方面中,存储器的性能开销可通过以下方式来降低:使用随机数生成器来使计数器以概率性方式递增,而不是随着对DRAM的每次读取或写入访问而以确定性方式递增。使计数器以概率性方式递增降低了性能开销的成本,因为不必使计数器随着每次读取和写入访问而递增。另外,攻击者不太能够预测或计算DRAM访问的频率。
在另一示例性方面中,DDR故障隔离特征的经回收位被用作计数器以跟踪对每个DRAM行的读取和写入访问。从数据分组的纠错部分(ECC)回收的4字节或32位可由随机数生成器基于某些条件提取并递增。将经回收位用作计数器会节省芯片容量,因为芯片面积不会被在芯片上实施以跟踪对每个行存储器的访问的硬件计数器所消耗。
在又一示例性方面中,一种逻辑控制器可检查是否设定了指示片上存储器中存在数据的标志。如果设定了该标志,则存储器控制器可执行对SRAM寄存器的读取和写入访问。例如,如果设定了该标志,则存储器控制器首先检查所请求的行地址在SRAM中是否可用。如果可用,则可将高速缓存线数据从SRAM读取到请求部件,或可将高速缓存线数据写入到SRAM。对SRAM的访问会减少对DRAM的访问次数,并且由此减轻串扰。
附图和以下描述中阐述了各种实施方案的细节。在结合附图和权利要求来看以下具体实施方式时,其他特征和优点将变得显而易见。
附图说明
为了更完整地理解本公开及其优点,现在参考附图,其中相似或相同的附图标记表示相似或相同的项目。
图1描绘了根据例示性实施方案的示例性计算机系统的高级框图;
图2描绘了根据例示性实施方案的使用故障隔离特征的经修改的数据分组的框图;
图3描绘了根据示例性实施方案的用于减轻串扰的装置的框图;
图4描绘了根据示例性实施方案的用于访问存储器的协同过程的高级流程图;并且
图5描绘了根据示例性实施方案的方法的详细流程图,其示出了用于使用组合的概率性和确定性机制来减轻串扰的机制。
具体实施方式
装置和相关联的方法涉及一种通过使用协同方法来减轻DRAM阵列中的串扰的机制。术语“协同”意味着使用两种或更多种元件组合作为一个单元来实现某一目标。在本公开的实施方案中,将确定性方法与概率性方法组合起来以减小DRAM中的行锤击串扰效应。更具体地,将计数器(其被认为是确定性元件)与随机数生成器(其被认为是确定性元件)一起使用,以减小DRAM中的行锤击串扰效应。
计数器因为其输出的可预测性而可被认为是确定性元件。例如,计数器输出能够以值1开始并且以连续线性方式向上递增到值2、3等等。因此,计数器输出可被认为是可预测的。
随机数生成器因其输出是不可预测的而可被认为是概率性元件。随机数生成器的输出值是不可预测的,因为未来的输出值可能不是基于当前值或先前值。随机数生成器可输出特定范围内的数字,其中该范围内的每个数字具有发生或不发生的特定概率。因此,随机数生成器输出可被认为是不可确定的和不可预测的。
在本公开中,使用随机数生成器的输出来使计数器以概率性方式递增。存储器控制器使用计数器输出与热度阈值之间的比较来确定是否访问DRAM行。因为计数器不是以可预测方式递增的,所以攻击者无法确定何时可访问DRAM行。
DRAM阵列的每个数据分组被配置为包括其自身的计数器以跟踪对应行被访问的次数。在具体实施中,计数器基于由随机数生成器输出的数字与特定于DRAM阵列的预定概率参数PPROB之间的比较结果而以一定时间间隔进行递增。
如果随机数生成器的输出大于PPROB,则这指示DRAM可被访问以进行读取和写入。数据可从DRAM获取或读取,并且被发送到末级高速缓存(LLC)和片上存储器SRAM。在写入的情况下,数据可被写入到DRAM。
还可将计数器值与特定于DRAM阵列具体实施的热阈值参数THRESHOT进行比较。如果计数器值大于THRESHOT,则这指示DRAM行被频繁访问或被锤击,并且经受串扰干扰。THRESHOT是基于行锤击阈值以及DRAM的字线中的高速缓存线的数目。
当数据存储于SRAM寄存器中时,设定标志以指示数据可能存在于SRAM中。只要设定了标志,存储器控制器就将首先访问SRAM寄存器。如果所请求的信息从片上寄存器或SRAM中丢失,则存储器控制器将只需要访问DRAM。当从DRAM获取用于请求部件的数据时,还可将副本存储在SRAM中以供将来使用。
转向图1,高级框图描绘了根据本公开的例示性具体实施的示例性计算机系统100。计算机系统100包括与存储器控制器150通信的处理器140。处理器140和存储器控制器150通过总线120和总线130与外部存储器(诸如末级高速缓存(LLC)110和DRAM阵列170)通信。存储器控制器150可包括一组部件,该组部件可操作地监测和控制对LLC 110和DRAM阵列170的访问。在本公开中,该组部件可被称为概率性和确定性ram访问监测器PADRAM 160。PADRAM 160的目的是减少对DRAM阵列170的读取和写入访问的次数。
通常,重复地访问DRAM中的同一行可通过称为行锤击的现象而破坏物理上相邻的行中的数据。作为示例而非限制,为DRAM填充全|1|并且重复地从DRAM行读取以确保该行的重复激活可能导致位中的一些或全部位被翻转为全|0|。PADRAM通过以下方式来减少对DRAM阵列170的访问次数:将高速缓存线数据存储在芯片上,使得其可供部件在不用访问DRAM阵列170的情况下访问。
PADRAM 160与DRAM 170的故障隔离架构特征一起工作,该故障隔离架构特征回收数据分组的一部分来用作计数器,该计数器跟踪特定DRAM行是否具有高访问。
接下来转向图2,根据本公开的例示性实施方案示出了具有故障隔离架构特征的经修改的数据分组200的框图。DRAM中的每个数据分组200可由64字节高速缓存线210和元数据220组成。元数据220的第一部分230可用于故障隔离特征。元数据220的第二部分250可用于其他信息,诸如但不限于标志指示符等。更具体地,元数据230的第一部分可由16字节的纠错码(ECC)组成。ECC的四字节可被回收以用作32位或4字节计数器240。总之,80字节的数据分组260可包括64字节的高速缓存线部分210、12字节的ECC部分230和4字节的计数器部分240。
计数器240的计数器位可根据图1的PADRAM 160所提供的条件以概率性方式被提取和递增。因此,计数器能够通过为每个行提供计数器的架构或硬件具体实施来跟踪软件具体实施对DRAM行的访问,而不牺牲容量。
图3描绘了根据示例性实施方案的用于减轻串扰的装置的框图。在一个实施方案中,监测系统PADRAM 300可包括参数寄存器340、随机数生成器310、逻辑控制器350和SRAM寄存器360。在操作中,随机数生成器310可从逻辑控制器350接收控制信号330,诸如复位信号、时钟信号或本领域的普通技术人员可辨认的其他信号。随机数生成器310可生成值rng_val 320,该值可用于基于加载于参数寄存器340中的概率参数来使计数器(诸如图2的计数器240)递增。
参数寄存器340可加载有存储器参数,该存储器参数是预定的并且基于在计算机系统(诸如图1的计算机系统100)中实施的主存储器或DRAM存储器组(未示出)的特定配置或设计。更具体地,参数寄存器340可包括参数,诸如概率参数PPROB 342和热阈值参数THRESHOT 344。
PPROB 342可基于DRAM组中的字线数目来选择,以保证针对具有随机存储器访问的存储器密集型工作负载而言计数器值不超过热阈值参数THRESHOT 344。更具体地,作为示例而非限制,在对DRAM的访问次数可由N表示并且DRAM的行数可由R表示的情况下,对于每个行,随机访问次数可由N/R表示。参数PPROB 342与由1/(N/R)表示的随机访问次数具有反比关系。参数PPROB 342可在任何存储器操作之前被选择并且被加载到参数寄存器中。PPROB的值具有大于每行的特定访问次数的值,PPROB>1/(N/R)。
参数PPROB 342可确定计数器(诸如计数器240)是否递增。存储器控制器(未示出)可将PPROB 342的值与随机数生成器值rng_val 320进行比较。当rng_val 320小于PPROB 342时,计数器240的值可被提取并递增。
热阈值参数THRESHOT 344提供在行可能受到攻击之前对行的存储器访问的上界。THRESHOT 344可基于行锤击阈值TRH以及字线中的高速缓存线的数目来选择。例如,如果每个字线存在M个不同的高速缓存线,则可基于TRH/M来选择THRESHOT 344,其中THRESHOT 344被选择为小于TRH/M,THRESHOT<TRH/M,以保证用于访问字线内的高速缓存线的字线激活总数决不超过TRH。
逻辑控制器350被配置为可操作地监测SRAM寄存器360的内容。逻辑控制器350可设定标志(未示出)以指示针对SRAM寄存器360的行不存在或存在数据。例如,如果高速缓存线被写入到SRAM中的行,则标志可被设定为指示存储器位置不为空。存储器控制器(未示出)可从SRAM360获取数据分组并且将其发送到末级高速缓存(LLC)(未示出)或其他请求部件而不用访问主存储器(诸如DRAM(未示出))。
现在参考图4,高级流程图400描绘了根据本公开的例示性实施方案的用于访问存储器的协同过程。存储器周期可在402处通过将行地址接收到存储器控制器来发起。PADRAM的逻辑控制器可在404处检查以确定是否设定了标志。当数据存在于片上存储器(诸如SRAM)的位置中并且SRAM不为空时,逻辑控制器可设定标志。
如果在404处设定标志以指示数据存在于片上SRAM存储器中,则该过程前进到412处的DRAM旁路模块。在406处,该过程确定行地址在SRAM中是否可用。如果在SRAM中存在行地址匹配,则该过程继续通过DRAM旁路412并且确定是否存在写入或读取请求。写入请求使该过程移到408,在此将数据分组存储在SRAM中。读取请求使该过程移到410,在此从SRAM读取对应于行地址的高速缓存线数据并且将其发送到LLC。如果在406处不存在行地址匹配,则该过程退出DRAM旁路412并且进行到在414处开始的条件过程,该条件过程确定对DRAM的读取和写入访问。
重要的是要注意,本发明的目的是通过减少对诸如主存储器或DRAM的访问次数来减轻串扰,从而避免干扰。该目的通过DRAM旁路412来实现,该旁路在不必访问主存储器(诸如DRAM)的情况下向片上SRAM存储器写入数据和从该片上SRAM存储器读取数据。因此,DRAM旁路412减少了对主存储器的访问次数。
如果在404处未设定标志来指示数据存在于片上SRAM存储器中,则该过程进行到414处的条件过程,该条件过程确定对DRAM的读取和写入访问。414处的条件检查随机数生成器值是否小于预定概率参数,RNG_val<PPROB。如果414处的条件的结果为“否”,则随机数生成器值不小于预定概率参数,并且该过程检查读取请求或写入请求的存在。写入请求使该过程移到416以将高速缓存线写入到DRAM中的对应行地址位置。读取请求使该过程移到418,在此从DRAM获取对应于402处的行地址的数据分组并且将其发送到SRAM。PADRAM的逻辑控制器设定标志以指示SRAM中存在数据。数据分组也被发送到LLC。
如果条件414的结果为“是”,则随机数生成器值小于预定概率参数,在420处提取并递增数据分组的计数器位。该过程在422处继续以将计数器值与预定热阈值参数进行比较。424处的条件检查计数器值是否大于热阈值。如果424处的条件的结果为“是”,则计数器值大于热阈值。读取请求使该过程从424移到426,并且写入请求使该过程从424移到428。在426处,读取请求从DRAM读取高速缓存线并且将高速缓存线发送到LLC。高速缓存线也被存储在SRAM中。逻辑控制器设定标志以指示SRAM中存在数据。在428处,写入请求将具有已更新计数器值的高速缓存线数据写入到SRAM。逻辑控制器设定标志以指示SRAM中存在数据。
如果424处的条件的结果为“否”,则计数器值不小于热阈值。读取请求使该过程移到430,并且写入请求使该过程移到432。在430处,读取请求从DRAM读取高速缓存线数据并且将其发送到LLC。在432处,写入请求将高速缓存线数据写入到DRAM。
现在转向图5,该方法的详细流程图500示出了根据示例性实施方案的用于通过使用组合的概率性和确定性机制来缓解串扰的机制。
在502处由存储器控制器初始化时,在504处将行地址接收到控制器中。在506处,存储器控制器可检查逻辑控制器是否已设定标志register_empty。如果在506处设定了register_empty标志,register_empty标志=1,则该过程移到第一条件520,该第一条件确定对DRAM的读取和写入访问。
如果在506处未设定register_empty标志,则该过程继续进行到508,并且在510处再次针对数据检查SRAM寄存器。然后该过程进入DRAM旁路518。在DRAM旁路518中,该过程在510处确定在504处接收到的行地址在SRAM中是否可用。如果在510处该行地址在SRAM中可用,则该过程进行到512,在此确定是否存在写入或读取请求。读取请求使该过程从512移到514处的程序,在此从SRAM中的对应于行地址的位置读取数据分组并且将其发送到末级高速缓存(LLC)。另选地,写入请求使该过程从512移到516处的程序,在此将数据分组写入到SRAM寄存器中对应于行地址的位置。
返回到DRAM旁路518的开始处,如果在510处在SRAM中不存在行地址匹配,则该过程退出DRAM旁路518并且进行到第一条件520,该第一条件确定对DRAM的读取和写入访问。
520处的第一条件将由随机数生成器输出的值与预定概率参数PPROB进行比较。PPROB是固定值。如果在520处随机数生成器值小于PPROB,则可访问DRAM以读取或写入数据,从而刷新该线。首先,在522处从数据分组中提取计数器值并使其递增。接下来,524处的第二条件对照热度阈值参数THRESHOT检查计数器值。
如果计数器值大于预定热阈值参数,则该过程从524移到526,在此其确定是否存在读取或写入请求。如果在526处存在读取请求,则该过程继续进行到532。在532处,可从DRAM中的对应行地址位置读取数据分组并且将副本存储于SRAM中以供将来访问。可将register_empty标志重置以指示数据现在存在于SRAM中。数据分组还可被发送到LLC以供请求部件使用。如果存在写入请求,则该过程继续进行到528。在528处,可从DRAM中的对应行地址位置读取数据分组并且将副本存储于SRAM中以供将来访问请求。将register_empty标志重置以指示数据现在存在于SRAM中。
如果在524处计数器值不大于预定热阈值参数,则该过程从524移到530以确定是否存在读取或写入请求。在530处,读取请求使该过程继续进行到532。在532处,从DRAM中的对应行地址位置读取数据分组并且将副本存储于SRAM中以供将来访问。将register_empty标志重置以指示高速缓存线数据现在存在于SRAM中。数据分组被发送到LLC以供请求部件使用。在530处,写入请求使该过程继续进行到534。在534处,将数据分组写入到DRAM中的对应行地址位置。
返回到520处的第一条件,如果随机数生成器值不小于概率参数PPROB,则该过程从520移到530。在530处,该过程确定是否存在读取或写入请求。读取请求使该过程继续从530进行到532。在532处,从DRAM中的对应行地址位置读取数据分组并且将副本存储于SRAM中以供将来访问。将register_empty标志重置以指示数据现在存在于SRAM中。然后,数据分组被发送到LLC以供请求部件使用。写入请求使该过程继续从530进行到534。在534处,将数据分组写入到DRAM中的对应行地址位置。
已经出于说明和描述的目的呈现了对不同的例示性实施方案的描述,并且该描述不旨在是穷尽的或限制于所公开的形式的实施方案。应当理解,可进行各种修改。例如,如果所公开的技术的步骤以不同顺序执行,或者如果所公开的系统的部件以不同方式组合,或者如果该部件用其他部件作补充,则可实现有利结果。相应地,设想了其他具体实施。
此外,与其他期望的实施方案相比,不同的例示性实施方案可提供不同的特征。选择和描述所选的实施方案是为了最佳地解释实施方案的原理、实际应用,以及为了使得本领域的其他普通技术人员能够针对具有各种修改(如适合于所设想的特定用途)的各种实施方案理解本公开。
Claims (20)
1.一种计算机系统,所述计算机系统包括:
至少一个处理器;
至少一个动态随机存取存储器(DRAM)阵列,所述至少一个动态随机存取存储器(DRAM)阵列能够操作地耦合到所述处理器;
存储器控制器,所述存储器控制器能够操作地耦合到所述至少一个处理器并且包括被配置为减轻所述DRAM阵列中的串扰的装置;和
多个数据分组,所述多个数据分组中的每个数据分组表示存储器线并且被配置为包括计数器,所述计数器跟踪对所述DRAM阵列中的每个行的访问。
2.根据权利要求1所述的计算机系统,其中所述多个数据分组中的每个数据分组包括元数据部分,所述元数据部分包括纠错码部分和由从所述纠错码部分回收的字节形成的计数器部分。
3.根据权利要求2所述的计算机系统,其中所述计数器部分是跟踪对所述DRAM阵列进行访问的次数的计数器。
4.根据权利要求3所述的计算机系统,其中所述存储器控制器还包括存储器参数寄存器,所述存储器参数寄存器存储由所述装置使用的设备参数。
5.根据权利要求4所述的计算机系统,其中当随机数生成器值小于存储于所述存储器参数寄存器中的概率设备参数时,所述计数器递增。
6.根据权利要求5所述的计算机系统,其中被配置为减轻串扰的所述装置包括:
随机数生成器,所述随机数生成器基于加载于所述存储器参数寄存器中的所述概率设备参数来使所述计数器以概率性方式递增;
逻辑控制器,所述逻辑控制器基于所述计数器的值与加载于所述存储器参数寄存器中的阈值之间的比较来确定是否对所述DRAM阵列进行访问;和
静态随机存取存储器(SRAM)寄存器,所述静态随机存取存储器(SRAM)寄存器能够操作地耦合到所述逻辑控制器。
7.根据权利要求6所述的计算机系统,其中所述逻辑控制器包括指示所述SRAM寄存器是否为空的标志。
8.根据权利要求7所述的计算机系统,所述计算机系统还包括:
末级高速缓存,所述末级高速缓存被配置为基于所述标志的设定、计数器输出值、所述阈值参数和读取请求来从所述SRAM寄存器接收数据分组。
9.根据权利要求8所述的计算机系统,其中响应于行地址匹配以及来自所述存储器控制器的读取请求,所述SRAM寄存器向所述末级高速缓存发送数据分组并且绕过对所述DRAM阵列的任何访问。
10.根据权利要求8所述的计算机系统,其中响应于行地址匹配以及来自所述存储器控制器的写入请求,所述SRAM寄存器将数据分组写入到所述SRAM寄存器的存储器位置中并且绕过对所述DRAM阵列的任何访问。
11.一种处于存储器控制器中的装置,所述装置包括:
计数器,所述计数器被嵌入在数据分组结构中,对于对主存储器的访问次数进行计数;
随机数生成器,所述随机数生成器基于概率参数使所述计数器以概率性方式递增;
SRAM寄存器,所述SRAM寄存器被配置用于基于由所述存储器控制器设定的标志进行访问;和
逻辑控制器,所述逻辑控制器确定所述标志的设定。
12.根据权利要求11所述的装置,所述装置还包括参数寄存器,所述参数寄存器存储所述概率参数,所述概率参数确定主存储器中的行的刷新间隔。
13.根据权利要求12所述的装置,其中所述参数寄存器还包括热度阈值。
14.根据权利要求11所述的装置,其中所述计数器包括从所述主存储器的纠错码特征的一部分回收的多个字节位。
15.一种在存储器控制器处实施的方法,所述方法包括:
将行地址接收到所述存储器控制器中;以及
基于所述行地址和由所述存储器控制器设定的标志来确定是访问片上存储器还是DRAM阵列。
16.根据权利要求15所述的方法,其中所述确定包括:响应于所述片上存储器中的行地址匹配,利用对应于所述行地址的数据分组的高速缓存线来访问所述片上存储器,以及绕过对DRAM阵列的所有访问。
17.根据权利要求16所述的方法,其中所述确定还包括:
响应于所述片上存储器中的行地址未命中,将随机数生成器随机的输出与预定概率参数进行比较;以及
基于第一条件和第二条件利用对应于所述行地址的所述数据分组的所述高速缓存线来访问所述DRAM阵列。
18.根据权利要求17所述的方法,其中所述第一条件包括响应于所述随机数生成器的所述输出小于所述预定概率参数,并且所述数据分组的计数器值大于热阈值参数,访问所述DRAM阵列以及所述片上存储器和末级高速缓存中的至少一者或多者。
19.根据权利要求17所述的方法,其中所述预定概率参数是通过比率N除以R来确定的,其中N是能够对具有R行的所述DRAM阵列进行的激活或访问次数,并且所述预定概率参数大于N除以R的倒数,其中N和R为正整数。
20.根据权利要求18所述的方法,其中所述热阈值参数基于行锤击阈值以及所述DRAM阵列的字线中的高速缓存线的数目,并且被选择为小于所述行锤击阈值除以所述DRAM阵列中的每个字线的所述高速缓存线数目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/487,961 US20230114414A1 (en) | 2021-09-28 | 2021-09-28 | Method and apparatus for protecting memory devices via a synergic approach |
US17/487,961 | 2021-09-28 | ||
PCT/US2022/045046 WO2023055806A1 (en) | 2021-09-28 | 2022-09-28 | A method and apparatus for protecting memory devices via a synergic approach |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117859178A true CN117859178A (zh) | 2024-04-09 |
Family
ID=84245590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280057656.XA Pending CN117859178A (zh) | 2021-09-28 | 2022-09-28 | 用于经由协同方法保护存储器设备的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230114414A1 (zh) |
EP (1) | EP4409574A1 (zh) |
JP (1) | JP2024536013A (zh) |
KR (1) | KR20240068641A (zh) |
CN (1) | CN117859178A (zh) |
WO (1) | WO2023055806A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023087561A (ja) * | 2021-12-13 | 2023-06-23 | キオクシア株式会社 | メモリシステム |
US12067257B2 (en) * | 2022-09-21 | 2024-08-20 | Micron Technology, Inc. | Testing operations for memory systems |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4694412A (en) * | 1982-09-22 | 1987-09-15 | Intel Corporation | Random number generator for use in an authenticated read-only memory |
US5793318A (en) * | 1997-02-05 | 1998-08-11 | Hewlett-Packard Company | System for preventing of crosstalk between a raw digital output signal and an analog input signal in an analog-to-digital converter |
US6925086B2 (en) * | 2000-12-12 | 2005-08-02 | International Business Machines Corporation | Packet memory system |
US20030005219A1 (en) * | 2001-06-29 | 2003-01-02 | Royer Robert J. | Partitioning cache metadata state |
US20060029229A1 (en) * | 2004-08-03 | 2006-02-09 | Alexei Trifonov | QKD station with EMI signature suppression |
US7606249B1 (en) * | 2004-12-21 | 2009-10-20 | Extreme Networks, Inc. | Methods and systems for caching packets to be written to or read from packet memory |
TWI246084B (en) * | 2004-12-30 | 2005-12-21 | Univ Nat Chiao Tung | Method for eliminating crosstalk interference of contact/via-programmed read-only-memory |
US9424194B2 (en) * | 2012-05-01 | 2016-08-23 | International Business Machines Corporation | Probabilistic associative cache |
US8990512B2 (en) * | 2012-10-31 | 2015-03-24 | Intel Corporation | Method and apparatus for error correction in a cache |
US20160028544A1 (en) * | 2012-11-15 | 2016-01-28 | Elwha Llc | Random number generator functions in memory |
US9311051B2 (en) * | 2013-01-10 | 2016-04-12 | Advanced Micro Devices, Inc. | Hardware random number generator |
US9449671B2 (en) * | 2013-03-15 | 2016-09-20 | Intel Corporation | Techniques for probabilistic dynamic random access memory row repair |
US9594853B2 (en) * | 2013-08-30 | 2017-03-14 | International Business Machines Corporation | Combined deterministic and probabilistic matching for data management |
US10497409B2 (en) * | 2014-12-17 | 2019-12-03 | International Business Machines Corporation | Implementing DRAM row hammer avoidance |
US9812185B2 (en) * | 2015-10-21 | 2017-11-07 | Invensas Corporation | DRAM adjacent row disturb mitigation |
US10170174B1 (en) * | 2017-10-27 | 2019-01-01 | Micron Technology, Inc. | Apparatus and methods for refreshing memory |
TWI668630B (zh) * | 2018-05-28 | 2019-08-11 | 華邦電子股份有限公司 | 亂數產生器以及亂數產生方法 |
US11995324B2 (en) * | 2019-01-18 | 2024-05-28 | The Trustees Of Columbia University In The City Of New York | Methods and systems for fine granularity memory blacklisting to detect memory access violations |
US11074188B2 (en) * | 2019-02-18 | 2021-07-27 | Intel Corporation | Method and apparatus to efficiently track locations of dirty cache lines in a cache in a two-level main memory |
US10950288B2 (en) * | 2019-03-29 | 2021-03-16 | Intel Corporation | Refresh command control for host assist of row hammer mitigation |
US10950292B1 (en) * | 2019-12-11 | 2021-03-16 | Advanced Micro Devices, Inc. | Method and apparatus for mitigating row hammer attacks |
US11562783B2 (en) * | 2020-08-27 | 2023-01-24 | Micron Technology, Inc. | Apparatuses, systems, and methods for resetting row hammer detector circuit based on self-refresh command |
TWI799742B (zh) * | 2020-10-12 | 2023-04-21 | 茂達電子股份有限公司 | 降低電磁干擾電路 |
US20220207190A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Low overhead memory integrity with error correction capabilities |
US20210216452A1 (en) * | 2021-03-27 | 2021-07-15 | Intel Corporation | Two-level main memory hierarchy management |
US12027199B2 (en) * | 2021-05-26 | 2024-07-02 | Samsung Electronics Co., Ltd. | Memory device and method of controlling row hammer |
JP2023087561A (ja) * | 2021-12-13 | 2023-06-23 | キオクシア株式会社 | メモリシステム |
US11940927B2 (en) * | 2022-06-14 | 2024-03-26 | Intel Corporation | Technologies for memory tagging |
-
2021
- 2021-09-28 US US17/487,961 patent/US20230114414A1/en active Pending
-
2022
- 2022-09-28 CN CN202280057656.XA patent/CN117859178A/zh active Pending
- 2022-09-28 EP EP22800392.7A patent/EP4409574A1/en active Pending
- 2022-09-28 JP JP2024515314A patent/JP2024536013A/ja active Pending
- 2022-09-28 WO PCT/US2022/045046 patent/WO2023055806A1/en active Application Filing
- 2022-09-28 KR KR1020247008324A patent/KR20240068641A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
JP2024536013A (ja) | 2024-10-04 |
KR20240068641A (ko) | 2024-05-17 |
WO2023055806A1 (en) | 2023-04-06 |
US20230114414A1 (en) | 2023-04-13 |
EP4409574A1 (en) | 2024-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109416666B (zh) | 用于存储和读取多个缓存行的装置和方法 | |
CN117859178A (zh) | 用于经由协同方法保护存储器设备的方法和装置 | |
Kim et al. | Mithril: Cooperative row hammer protection on commodity dram leveraging managed refresh | |
US9690505B2 (en) | Refresh row address | |
US11527280B2 (en) | Monitoring and mitigation of row disturbance in memory | |
US12032692B2 (en) | Device and method for protecting a memory | |
CN116324994A (zh) | 减轻行锤攻击 | |
JP2006512657A (ja) | メモリ・コントローラおよびメモリに書き込む方法 | |
US20060277359A1 (en) | Blank memory location detection mechanism | |
US20230128653A1 (en) | Memory device and method for controlling row hammer | |
Wang et al. | Detect DRAM disturbance error by using disturbance bin counters | |
Wang et al. | Discreet-para: Rowhammer defense with low cost and high efficiency | |
US7774587B2 (en) | Dynamic redundancy checker against fault injection | |
CN114627926A (zh) | 存储系统 | |
US20230315299A1 (en) | Systems and method for tracking activations to perform row hammer mitigation in memory modules | |
CN117809718A (zh) | 存储器设备、具有存储器设备的存储器系统及其操作方法 | |
US20140032855A1 (en) | Information processing apparatus and method | |
US10452312B2 (en) | Apparatus, system, and method to determine a demarcation voltage to use to read a non-volatile memory | |
US11755235B2 (en) | Increasing random access bandwidth of a DDR memory in a counter application | |
CN114724601A (zh) | 存储系统和存储系统的操作方法 | |
US20240211412A1 (en) | Selective Memory Duplication Control | |
KR20170042522A (ko) | 비식별 요청을 처리하는 저장 장치 및 그것의 동작 방법 | |
KR20170114991A (ko) | 비휘발성 메모리를 이용한 로깅 방법 | |
이효근 | Mitigating Disturbance Errors and Enhancing RMW Performance for PCM | |
WO2024191521A1 (en) | Dynamic rowhammer management with per-row hammer tracking |
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 |