CN104737234A - 基于所存储的行锤击阈值的值的行锤击监视 - Google Patents
基于所存储的行锤击阈值的值的行锤击监视 Download PDFInfo
- Publication number
- CN104737234A CN104737234A CN201380057057.9A CN201380057057A CN104737234A CN 104737234 A CN104737234 A CN 104737234A CN 201380057057 A CN201380057057 A CN 201380057057A CN 104737234 A CN104737234 A CN 104737234A
- Authority
- CN
- China
- Prior art keywords
- memory devices
- row
- threshold value
- memory
- access
- 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.)
- Granted
Links
Classifications
-
- 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40611—External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1636—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
-
- 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
- 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/50—Marginal testing, e.g. race, voltage or current testing
-
- 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/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50012—Marginal testing, e.g. race, voltage or current testing of timing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- 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/408—Address circuits
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Dram (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
存储器子系统的检测逻辑获取针对存储器设备的阈值,该阈值指示时间窗内导致物理上相邻的行上的数据损坏风险的访问的数量。检测逻辑从存储针对存储器设备的配置信息并且可以是该存储器设备本身上的寄存器和/或可以是该存储器设备所属的存储器模块的配置存储设备中的项的寄存器获取阈值。检测逻辑确定对存储器设备的行的访问的数量是否超过阈值。响应于检测到访问的数量超过阈值,检测逻辑可以生成触发以使得存储器设备执行目标为物理上相邻的受害者行的刷新。
Description
技术领域
本发明的实施例总地涉及存储器管理,并且更具体地涉及基于所存储的经编程的值来监视行锤击事件。
版权声明/许可
本专利文档的公开内容的部分可能包含受版权保护的材料。版权拥有者不反对任何人对本专利文档或本专利的公开内容的复制,因为其出现在专利商标局的专利文件或记录中,但在其它方面保留所有任何版权权利。本版权声明适用于下文描述和在此的附图中的所有数据,以及下文中描述的任何软件:版权所有©2012年,英特尔公司,保留所有权利。
背景技术
随着计算技术的发展,计算设备更小并且具有更多的处理能力。另外,它们包括越来越多的存储设备和存储器以便满足在设备上执行的编程和计算的需求。通过提供具有更高密度的设备来实现设备的不断缩小的大小连同增加的存储容量,其中,在存储器设备中存在越来越多的原子存储单元,但每个原子存储单元具有越来越小的几何形状。
在最新一代的增加的密度的设备中,间歇性故障已经出现在某些设备中。例如,一些基于现有的DDR3(双倍数据速率,版本3)的系统在重工作负载的状况下经历间歇性故障。研究人员已经将这些故障追溯到在存储器单元的刷新窗内对存储器的单个行的重复访问。例如,对于32
nm的工艺来说,如果在64 ms的刷新窗内访问了一行550K次或更多次,那么去往被访问行的在物理上相邻的字线具有经历数据损坏的高可能性。这种状况在DRAM(动态随机存取存储器)工业中被称为“行锤击”(row
hammer)或“单行干扰”,该状况在DRAM工业中最频繁地被观察到并将被用于总地描述本文中的状况。行锤击可能导致跨选通门(passgate)的迁移。由对一个行的重复访问导致的泄漏和寄生电流导致非访问的物理上相邻行中的数据损坏。
然而,本领域的技术人员也理解的是:存储器设备在不同代设备当中、不同制造商的可比较设备当中、以及甚至相同制造商的不同批次当中有所不同。因此,虽然已经观察到重工作负载导致间歇性故障,但没有适用于所有设备的对于“重工作负载”的清楚的定义。因此,没有将行锤击状况清楚地定义为适用于所有设备的一般性参数。
附图说明
下面的描述包括对具有对本发明的实施例实现作为举例而给出的图示的图的讨论。应该作为举例而不是作为限制来理解这些图。如本文中所使用的,对一个或多个“实施例”的提及应该被理解为描述包括在本发明的至少一个实现中的特定的特征、结构或特性。因此,本文中出现的诸如“在一个实施例中”或者“在替代实施例中”的短语描述本发明的各个实施例和实现,并且并不一定都指的是相同的实施例。然而,它们也不一定是互斥的。
图1A是使用可编程行锤击阈值来监视行锤击状况的系统的实施例的框图。
图1B是在存储器设备处包括用于根据可编程行锤击阈值来指示检测到的行锤击事件的列/地址信息逻辑和分布式检测逻辑的系统的实施例的框图。
图2是在存储器设备处包括行锤击检测逻辑和受害者逻辑的系统的实施例的框图。
图3A是根据来自存储器设备的配置存储设备的阈值来监视行锤击状况的系统的实施例的框图。
图3B是根据来自存储器模块的配置存储设备的阈值来监视行锤击状况的系统的实施例的框图。
图4是用于根据可编程行锤击阈值来检测行锤击状况的过程的实施例的流程图。
图5是用于监视存储器设备的行锤击状况的过程的实施例的流程图。
图6是支持有目标刷新命令的命令真值表的实施例。
图7是可以在其中实现行锤击监视的计算系统的实施例的框图。
图8是可以在其中实现行锤击监视的移动设备的实施例的框图。
下面是对某些细节和实现的描述,包括可能描绘了下文描述的实施例中的一些或所有实施例的图的描述,以及讨论了本文中呈现的发明构思的其它潜在实施例或实现。
具体实施方式
如本文中所描述的,存储器设备包括对行锤击事件进行监视的检测逻辑。检测逻辑获取针对存储器设备的阈值,该阈值指示时间窗内导致物理上相邻的行上的数据损坏风险的访问的数量。检测逻辑从寄存器获取阈值,所述寄存器存储用于存储器设备的配置信息,并且可以是该存储器本身上的寄存器和/或可以是该存储器设备所属的存储器模块的配置存储设备中的一项。检测逻辑确定对存储器设备的行的访问的数量是否超过阈值。响应于检测到访问的数量超过阈值,检测逻辑可以生成触发以使得存储器设备执行目标为物理上相邻的受害者行的刷新。
之前标识的用于处理由于行锤击导致的故障的一种方法是限制每行每刷新周期所允许的访问的数量,这在系统中具有性能影响。所标识的用于解决行锤击故障的另一种方法包括:减小埋沟阵列晶体管(buried
channel array transistor:BCAT)的底部关键尺寸(BCD),和/或增加沟道长度以改进漏致势垒降低(DIBL)。然而,改变设备的尺寸大小有物理和实际限制。就某些尺寸现在可以改变的程度而言,将仍然需要制造工艺的改变。此外,其留下了如何解决下一代产品中的问题的问题。
另一种处理行锤击问题的方法是降低刷新之间的时间。然而,即使当设备密度已经增加时,刷新时间也已经保持恒定。要求当前的设备在相同时段内在越来越大的区域上执行刷新。因此,进一步降低刷新时间将导致系统中的性能影响,诸如在存储器设备中需要额外的刷新开销导致系统中的性能影响。
虽然这些当前提出的用于处理行锤击的方法对具有负面性能影响,但甚至不清楚将需要做出什么样的处理变化,或者将需要改变多少刷新时间来总地解决行锤击。存储器控制器制造商和存储器设备制造商通常不是相同的实体。大多数存储器控制器制造商想要制作可以与来自不同设备制造商的存储器设备交接的控制器。然而,当前提出的方法将存储器控制器固定到来自单个制造商的特定批次的存储器设备,否则仍然将存在行锤击的风险。
本文中所描述的系统可以提供用于监视和解决行锤击事件的活动运行时机制,而不是做出设计改变或改变存储器设备的操作参数。可以根据存储在存储器设备中和/或存储在包括多个存储器设备的存储器模块上的经编程的配置值或其它阈值的值来活动地执行监视。在一个实施例中,存储器控制器监视对存储器设备的每次访问,以确定对任意行的访问的数量是否导致行锤击状况。可替代地,监视逻辑可以分布到存储器设备和/或存储器模块。不管监视机构位于何处,其根据从存储位置获取的所存储的阈值的值来执行监视。如下面更详细描述的,当基于所获取的阈值的值检测到行锤击状况时,检测逻辑可以触发行锤击刷新或有目标刷新。
行锤击阈值的存储认识到以下事实:行锤击限制将跨存储器设备供应商并且也跨相同供应商或制造商的不同批次有所不同。另外,存储器设备已经历史性地进展到增加存储器设备的密度的新的工艺技术。没有理由相信该趋势将在不远的未来停止。鉴于行锤击状况是存储器密度问题,向新的工艺技术的进展也将改变存储器设备的行锤击限制或阈值。用较新的设备来替换存储器设备是普遍的,较新的设备由于上述任意原因可能具有不同的行锤击事件阈值。存储阈值并在监视中使用该阈值使得存储器子系统能够跟踪该存储器子系统中存在的设备所特有的行锤击。
因此,存储器控制器可以跟踪对行的访问的数量(跟踪行锤击),并向该存储器设备发出命令以便刷新目标相邻行。在一个实施例中,阈值信息存储在存储器设备(例如,DRAM)本身上的寄存器上。例如,这样的信息可由制造商或设备测试者来熔丝。在一个实施例中,该值作为字段存储在配置寄存器中,其在确定其特性之后被写入存储器模块(例如,DIMM(双列直插式存储器模块)),或被写入特定的存储器设备。
将理解的是:信息的存储可以以多种不同方式中的任意方式来执行。在一个实施例中,在设备和/或存储器模块中对信息进行编码。例如,三比特码可用于提供阈值限制。可以通过存储器控制器供应商、存储器设备供应商、不同的第三方或它们的某种组合达成一致的任意方式来建立编码。下面是可以对编码进行配置的不同方式的示例。编码示例1:000
- 没有限制;001 - 500K;010 -400K;011 - 300K;100 - 250K;101 - 200K; 110 - 150K;111 -
100K。示例2:000 - 100K或者没有定义;001 - 150K;010 - 200K;011 - 250K;100 - 300K;101 -
400K;110 - 450K+;111- 未知的RH限制。本领域的技术人员将理解:这些示例中使用的具体值实际上存在无数的变化。因此,这些示例意在说明编码,但不应被理解为限制性的。
本文中提供的示例主要针对DRAM讨论了行锤击问题。然而,将理解的是:行锤击问题更通常是随着存储器密度增加而出现的存储器设备缩放问题。因此,针对DRAM的描述将被理解为可应用于包括存储器控制器或等效逻辑的其它存储器技术的非限制性示例。本文中描述的有目标刷新命令与多种存储器技术中的任意存储器技术兼容,这些存储器技术诸如DDR4(双倍数据速率版本4,在本申请提交时是开发中的规范)、LPDDR4(低功率双倍数据速率版本4,在本申请提交时是开发中的规范)、或者WIDEIO(在本申请提交时是开发中的规范)。行锤击状况限制信息的存储同样与其中存储器设备可以在其自身上存储配置信息和/或存储器模块存储配置信息的任意存储器技术兼容。
图1A是使用可编程行锤击阈值来监视行锤击状况的系统的实施例的框图。在一个实施例中,所存储的阈值的使用可以被称为可编程行锤击阈值。系统100包括耦合到存储器控制器120的存储器设备110。存储器设备110可以包括具有相邻行的存储器单元的任何类型的存储器技术,其中,数据是经由字线或等价物可访问的。在一个实施例中,存储器设备110包括动态随机存取存储器(DRAM)技术。
存储器设备110包括存储器阵列112,其表示存储器的一个或多个逻辑和/或物理群组(其可以包括排、组和/或其他成群组)。虽然没有在系统100中特别示出,但存储器阵列112可以包括作为时间窗内重复访问的目标的一个或多个行。这样的行遭受行锤击状况。在许多现代存储器设备中,半导体布局的架构导致一个或多个物理上相邻的行具有遭遇损坏的风险。由于行锤击状况而导致的具有遭遇损坏的风险的一个或多个行在本文中被称为受害者行。
存储器设备110包括列逻辑114和行逻辑116,其用于对向存储器阵列112内的适当存储器位置的访问指令进行解码。不要求行和列的数量相等,并且,实际上它们通常是不相等的。存储器控制器120通过命令总线(例如,命令/地址(C/A)总线)向存储器设备110发送命令或指令,该命令或指令随后由存储器设备110解释。存储器设备110对命令信息进行解码以便在存储器中执行各种访问功能,并经由列逻辑114和行逻辑116对地址信息进行解码。逻辑使用列地址选通或信号(CAS)与行地址选通或信号(RAS)的组合对存储器中的特定位置进行访问。可以根据已知的存储器架构或其衍生物来实现存储器的行。简而言之,存储器的行包括一个或多个可寻址列的存储器单元,如由列逻辑114生成的CAS所标识的。行是经由由行逻辑116生成的RAS可寻址的。
在一个实施例中,存储器设备包括配置118。在一个实施例中,配置118存储在存储器设备118中。可替代地,配置118表示与存储器设备110相关联的配置,其存储在不同于存储器设备110中的某处。配置118可以存储在寄存器设备或存储器设备中的其它存储设备中。
系统100包括检测器130,其表示使系统100能够检测行锤击事件或行锤击状况的硬件和/或软件或其它逻辑。可以存在用于检测行锤击状况的多种不同机制。系统100经由检测器130来检测行锤击状况,检测器130在一个实施例中包括用于监视对存储器的所选择行的访问的表格或日志。因此,检测器130可以确定存储器阵列112的行何时在阈值时间段内经历重复的访问。检测器130可以包括存储器设备110、存储器控制器120处和/或与该存储器设备或该存储器控制器分开的硬件和/或逻辑。
检测器130确定行在时间段内被访问的次数。检测器访问或以其它方式从配置118获取行锤击阈值信息。行锤击事件不只是关于行被访问了多少次,而是在给定的时间段内被访问了多少次。一旦行被刷新,则可能导致数据损坏的状况被克服。因此,用于进行监视的时间段可以至少部分基于刷新速率。在一个实施例中,检测器130在其期间监视阈值访问数量的时间段等于存储器设备110的刷新周期时间。根据配置118来确定在该时间段期间的访问数量。
在一个实施例中,存储器控制器120生成有目标刷新命令122,以使得存储器控制器响应于检测到行锤击事件来执行有目标刷新。有目标刷新命令122是“调度之外”发生的刷新命令,意思是该命令是响应于检测到行锤击事件而发送的,这与因为计时器指示到执行刷新的时间了而发送命令是相对的。在一个实施例中,存储器控制器120将现有命令翻倍以发送有目标刷新命令。例如,可以使用针对DRAM(动态随机存取存储器)定义的激活或刷新命令来使有目标刷新命令122翻倍。存储器控制器可以完成该翻倍,例如,通过使用可以导致存储器设备将命令解释为有目标刷新而不是激活或(标准)刷新命令的另一个管脚和/或模式寄存器状态。存储器控制器120提供用于指示被锤击的行的地址信息。检测器130可以指示标识该行的地址信息,存储器控制器120可以向存储器设备110指示该地址信息,以导致存储器设备确定应该对什么受害者行进行刷新。可以向存储器设备特别指示该地址,或者可以更一般化地提供该地址。因此,当检测器130确定存储器的特定行遭受行锤击状况(访问已经达到或超过阈值)时,其向存储器控制器120指示该行,存储器控制器120继而可以发送有目标刷新命令。
当提及有目标刷新命令122时,将理解的是:不同的存储器设备制造商使用不同的逻辑和架构来利用设备的存储器资源。例如,不同的存储器设备制造商可以使用不同的偏离来在用在主机处理器(未示出)中的逻辑存储器地址与在存储器设备110内部使用的物理存储器地址之间进行映射。在一个实施例中,存储器控制器120使用与主机处理器所使用的相同的逻辑存储器地址。因此,在一个实施例中,存储器控制器120向存储器设备110提供指示被锤击的行的行地址。存储器控制器可以指示行地址结合其向存储器设备110发出的命令和/或作为该命令的一部分。然后,存储器设备可以计算该特定地址或任意受害者行的地址。然后,存储器设备110对物理上相邻的受害者行执行有目标刷新。
在一个实施例中,检测器130包括用于对在其期间该检测器监视行锤击状况的时间帧进行设置的配置,以及用于对基于所获取的针对特定存储器设备的信息来定义将导致存储器控制器触发有目标刷新的行锤击事件的访问的数量进行设置的配置。检测器130维持系统100中的针对总数量的行的子集的数据。在一个实施例中,检测器130基于MVC维持针对多个行的数据,MVC是针对所配置的时间帧预期的最大受害者计数。例如,检测器130可以保持具有MVC+1个条目或者更多条目的表格。于是,检测器130可以将条目卷入针对被访问的存储器位置的表格,将表格中最低计数的条目卷出以替换它们。
将理解的是:所描述的阈值还可以被描述为:指代导致行锤击状况的对存储器行的访问速率的访问速率阈值,指代在其处可以检测到行锤击状况存在的阈值的行锤击阈值,或者指代表示在其处存在数据损坏风险的点的窗内访问数量的限制的行锤击限制。也可以使用其它表达来指代时间窗内检测到的多个访问可由系统解决以避免数据损坏的事实。
图1B是在存储器设备处包括用于根据可编程行锤击阈值来指示检测到的行锤击事件的列/地址信息逻辑和分布式检测逻辑的系统的实施例的框图。根据本文中描述的任意实施例,系统150是包括存储器设备或存储器子系统以及存储器控制器的系统。系统150包括耦合到存储器控制器120的存储器设备110。存储器设备110可以包括具有相邻行的存储器单元的任何类型的存储器技术,其中,数据是经由字线或等价物可访问的。
存储器设备110包括存储器阵列112,存储器阵列112表示存储器的一个或多个逻辑和/或物理群组。在一个实施例中,存储器设备110包括C/A逻辑166,C/A逻辑166用于对针对存储器阵列112中的特定存储器位置的访问指令进行解码。C/A逻辑166包括诸如列逻辑和行逻辑的解码逻辑168,其激活用于读和/或写的存储器位置。C/A逻辑166可以实现为(例如,RDIMM或LRDIMM设备的)C/A寄存器、C/A缓冲器或其它逻辑缓冲器(例如,在3DS(三维堆叠)配置或板上缓冲器实现中)或其它逻辑器件。在一个实施例中,C/A逻辑166实现为三维堆叠存储器设备中的逻辑缓冲器,例如混合存储器立方体(HMC),其中DRAM设备堆叠在逻辑缓冲器顶部。
存储器控制器120通过命令总线(例如,命令/地址(C/A)总线)向存储器设备110发送命令或指令(C/A信息124),该命令或指令随后由存储器设备110解释。存储器设备110对命令信息进行解码以便在存储器中执行各种访问功能,并经由解码逻辑168对地址信息进行解码。该逻辑使用列地址选通或信号(CAS)与行地址选通或信号(RAS)的组合对存储器中的特定位置进行访问。可以根据已知的存储器架构或其衍生物来实现存储器的行。简而言之,存储器的行包括一个或多个可寻址列的存储器单元,如由CAS所标识的。行是经由RAS可寻址的。
在一个实施例中,存储器设备110包括检测器164,其表示使存储器设备110能够检测行锤击事件或行锤击状况的硬件和/或软件或其它逻辑。在一个实施例中,检测器164包括在C/A逻辑166之内。在任一种情况下,可以说检测器164被分布,因为其包括在存储器设备110处用于监视行锤击状况的逻辑。行锤击事件检测可由阵列、设备、排或其它单独的存储器资源来执行。
可以存在用于检测行锤击状况的多种不同机制。检测器164可以包括用于监视对存储器的所选择的行的访问的表格或日志。当存储器设备110包括检测器逻辑时,检测器164可以基于存储在配置118中的阈值信息来监视行锤击状况。当检测到行锤击事件或行锤击状况时,在一个实施例中,C/A逻辑166生成警报信号126来向存储器控制器120指示该状况。根据本文中描述的任意实施例,响应于该警报,存储器控制器120触发有目标刷新来对检测到行锤击事件进行响应。
图2是在存储器设备处包括行锤击检测逻辑和受害者逻辑的系统的实施例的框图。系统200可以是根据本文中描述的任意实施例的存储器子系统的一个示例。系统200示出了对存储器子系统的一种逻辑的理解。DRAM
210包括存储器212中的存储器的行,其是根据已知存储器架构或其衍生物的存储器的行。简而言之,存储器的行包括一个或多个可寻址列的存储器单元。在一个实施例中,DRAM
210将来自存储器控制器230的逻辑地址信息映射到存储器212中的物理存储器位置。
应该理解的是:存储器通常是以由存储器控制器230提供的“相邻”存储器地址(通常是逻辑地址)不一定映射到DRAM
210中的物理上相邻的存储器位置的方式来访问的。相反,由存储器控制器230提供的每个相邻存储器地址映射到被定位为某个一致偏离的地址。一些存储器设备对地址进行加扰,从而导致在存储器设备本身处通过对该地址信息进行解扰而标识的受害者行。例如,地址
0xX0h、0xXlh和0xX2h可以分别位于物理位置0xY0h、0xY3h和0xY7h处,其中,偏离为‘4’。在该示例中,‘X’表示由存储器控制器所提供的地址的较高比特信息,而‘Y’表示DRAM
210中所映射的地址的较高比特信息。因此,存储器设备本身可以基于设备的配置结合由存储器控制器使用有目标刷新命令提供的地址信息来确定受害者行。
主机处理器240可以是任何类型的处理单元、处理器、中央处理单元(CPU)、图形处理单元(GPU)、微控制器或其它处理设备。主机处理器240通常经由存储器控制器230对DRAM
210和其它存储器设备进行访问。在一个实施例中,存储器控制器230是主机处理器240的部分或主机处理器240的处理器封装。在替换实施例中,存储器控制器230是为主机处理器240是其一部分的硬件平台提供用于功率和接口逻辑的设施的支持“芯片组”或硬件逻辑的部分。在一个实施例中,DRAM
210是易失性存储器,或者是如果至该设备的功率中断则其内容不确定的存储器设备。因此,易失性存储器需要规律的电源来允许其刷新存储器单元,以便保持数据不遭遇丢失或损坏。如上面所提到的,检测逻辑234使得系统200能够标识行锤击状况,以便能够使用有目标刷新来对行锤击状况进行响应。
DRAM 210包括受害者逻辑214,其表示用于确定由于行锤击状况而导致哪一行或哪些行具有损坏风险的逻辑。在一个实施例中,受害者逻辑214可以是至少部分在存储器控制器230处执行的。然而,为了存储器控制器230与其它类型的存储器设备之间更广泛的互操作性起见,受害者逻辑214通常驻留在DRAM
210处。因此,存储器控制器230只需要向DRAM 210提供有目标刷新触发以导致有目标刷新。DRAM 210可以使用映射或其它逻辑来确定哪一行或哪些行是潜在的受害者。
DRAM 210包括控制逻辑216,控制逻辑216包括用于执行存储器212的刷新的逻辑。每个存储器设备包括用于跟踪哪些存储器单元已经被刷新并且哪些行接下来应得到刷新的某种逻辑。控制逻辑216可以基于接收到有目标刷新命令来实现实际的有目标刷新。
DRAM 210可以包括一个或多个寄存器218,寄存器218允许DRAM 210的配置和/或DRAM
210与存储器控制器230之间的通信。在一个实施例中,寄存器218存储指示表示行锤击状况的访问数量的阈值信息。存储器控制器230包括命令逻辑232。命令逻辑232使存储器控制器230能够对寄存器218进行读和/或写。在一个实施例中,存储器控制器230通过设置DRAM
210的寄存器218中的值来触发有目标刷新,以导致存储器设备执行有目标刷新。在一个实施例中,存储器控制器230响应于检测到对行的访问的数量超过从寄存器218读取的阈值而触发有目标刷新。检测逻辑234表示根据本文中描述的任意实施例的、使存储器控制器230能够确定对行的访问的数量超过从寄存器218读取的阈值的逻辑。
图3A是根据来自存储器设备的配置存储设备的阈值来监视行锤击状况的系统的实施例的框图。系统302表示包括具有存储器控制器330、存储器设备320和检测器310的存储器子系统的系统的示例。系统302提供根据上述系统100、150或200的系统的一个示例。在一个实施例中,检测器310是存储器控制器330的部分。存储器控制器330可以响应于由检测器310检测到行锤击状况而发出有目标刷新命令。
存储器设备320包括存储器的多个行。在这些行当中是目标行322,其是作为时间段内重复访问的目标的行。受害者行324是由于目标行322的锤击而导致具有数据损坏风险的行。可能存在与受锤击行相关联的一个以上的受害者行(例如,每行物理上与受锤击行相邻)。在一个实施例中,存储器设备320包括指示针对存储器设备确定的用于表示行锤击或访问速率阈值的特定值的配置340。行锤击阈值可由制造商确定。
在一个实施例中,检测器310包括访问日志312。访问日志312可以实现为列表或阵列或表格或者对具有多个字段信息的条目进行存储的其它逻辑结构。每个条目至少包括存储器的特定行的地址或标识符以及针对该条目的访问计数。访问日志312中的条目的数量远小于存储器设备320中的行的总数量。因此,检测器310可以通过保持对所有行的子集的计数来进行监视。当每行再次被访问时,该行的计数可以增加,并且可以将该计数与阈值进行比较以确定该行是否被访问了阈值数量的次数。
检测逻辑314包括用于使检测器310能够确定访问命令是针对存储器的行的逻辑。虽然特别示出检测逻辑314具有去往目标行322的线,但检测逻辑314可以根据配置或配置信息340中给出的行锤击阈值来监视对任意行的访问。在一个实施例中,检测逻辑314包括用于确定由存储器控制器330发出的激活命令的地址的机制。因此,每次存储器控制器330发送针对存储器设备320激活存储器的行的命令时,检测器310可以标识与该命令相关联的地址,并跟踪访问日志312中对该地址的访问。
检测器310确定对行的访问何时超过阈值,并向存储器控制器指示该行的地址信息。将理解的是:访问日志312中的地址信息不一定是与由存储器设备320用来访问物理存储器资源的相同的地址。存储器设备320将由存储器控制器330发送的地址解码成物理资源。因此,当检测器310标识针对其的访问已经达到或超过阈值的行时,可能仍然需要对该信息进行解码以标识目标行322的物理资源,从而使得物理上相邻的受害者行324能够被标识。
检测器310接收计时器信息316,通过计时器信息316,检测器310可以标识时间帧或时间段或时间窗的开始,以及时间帧的结束。监视发生在时间帧的开始和结束之间。在一个实施例中,时间帧从一个调度的刷新去到下一个调度的刷新。
在一个实施例中,当访问日志312中对某个条目的计数达到阈值并被向存储器控制器被标识时,检测器310清零对该条目的计数。将理解的是:检测可以在排和/或组的粒度上执行。针对存储器控制器不一定只有单个检测器310。可以跟踪每个组,并且每个存储器通道可以具有监视。
图3B是根据来自存储器模块的配置存储设备的阈值来监视行锤击状况的系统的实施例的框图。系统304示出了系统302或本文中描述的任意其它存储器子系统的实施例的一个示例。虽然系统302示出了单个存储器设备320,但系统304示出了存储器模块350,其包括多个存储器设备320。在一些系统中,存储器设备直接布置到主机设备的母板或主电路板上。系统302表示其中存储器设备320直接置于主机系统板上的存储器子系统。系统304表示通常经由连接器连接到主机系统板的模块板的使用。针对系统302中的存储器控制器330、检测器310、访问日志312、检测逻辑314和计时器316的描述良好等同地适用于系统304。
存储器模块350包括多个存储器设备320,并且分布式检测器354可以包括在存储器模块350上。在一个实施例中,存储器模块350包括由配置352表示的配置设备。在一个实施例中,配置或配置信息352包括在序列存在检测(SPD)设备中,这种设备通常用在DIMM或相当的模块设备上。
通常,SPD是安装在存储器模块上的小型的序列EEPROM(电可擦写可编程只读存储器)或闪速设备,其包含与大小、速度、架构细节有关的数据和/或其它制造数据。通常,存储器制造商或测试者或者其它分包商在制造/验证过程中对SPD进行编程。存储器控制器330和/或检测器310可以从配置352读取数据。因此,存储器供应商可以对用于存储器模块350上的整个群组的存储器设备320的信息进行编程。
在一个实施例中,除了存储器模块350存储配置352之外,每个存储器设备320包括配置或配置信息340。有可能在不同设备中有所不同,其中,一个设备根据一个阈值进行操作,而另一个设备根据另一个阈值进行操作。例如,SPD可以具有保存在其上的最坏情况值,并且每个设备(例如,在MPR中)可以存储设备特有的值。存储器控制器可以逐个模块(例如,逐个DIMM)地或者根据最低阈值进行跟踪。
将理解的是:存储器模块350上的一个或多个存储器设备320可以具有不同的阈值的值。在一个实施例中,检测器310基于来自个体存储器设备320的配置寄存器的个体配置信息340来监视行锤击状况。这样的实施例可以包括其中用于存储器模块的配置352存在的实现。可替代地,尽管每个存储器设备320包括个体配置340,但检测器310可以基于配置352来进行监视。在一个实施例中,除非存在冲突(即,不同的阈值的值),否则检测器310基于个体配置340来进行监视,在冲突的情况下检测器310将基于配置352来进行监视。
在一个实施例中,存储器模块350上的阈值配置352存储任意存储器设备320的最严格的阈值,或者较低的阈值。存储器模块350可以包括用于做出这样的确定并存储该值的逻辑。可替代地,存储器控制器330可以从每个存储器设备320的配置设备读取阈值,并将阈值信息写入配置352。在一个实施例中,行锤击阈值信息仅是配置352和/或配置信息340的一个字段。在一个实施例中,配置340存储在多用途寄存器(MPR)的页3或者每个存储设备320中,其可用于厂商特有的信息。因此,可以在系统302和304中有效地跟踪由于存储器设备320的不同批次、工艺、供应商而造成的不同阈值。
图4是用于根据可编程行锤击阈值来检测行锤击状况的过程的实施例的流程图。供应商制造存储器设备,402。在该上下文中,存储器设备可以指代其封装中的分立存储器管芯(例如,存储器“芯片”)。供应商或接收所制造的存储器芯片的其它方确定存储器设备的行锤击阈值,404。所述确定可以包括:基于所使用的工艺以及在存储器设备制造期间存在的条件的知识和/或通过对设备执行一个或多个测试来做出确定。
供应商或其它方可以将行锤击阈值编程到存储器设备配置寄存器中,406。阈值不一定置于存储器设备本身上。在一个实施例中,存储器设备置于具有其它存储器设备的模块上,408。当用在存储器模块中时,不同的存储器设备可以在不同时间置于该模块上。类似地,不同的存储器模块可以在分离的时间置于主机计算机系统的存储器总线上。在任何一种情况下,可能存在存储器设备当中和/或存储器模块当中的阈值失配。在一个实施例中,基于设备自己的阈值信息逐个设备地监视行锤击状况。在一个实施例中,基于不同的阈值来监视不同的存储器模块。在一个实施例中,根据单个阈值的值对系统中所有的存储器设备进行监视,于是通常将该单个阈值的值设置为存储器子系统中任意设备的最低阈值。
因此,存储器供应商或存储器模块供应商可以基于存储器模块中的设备对存储器模块行锤击阈值进行编程,410。在一个实施例中,主机系统(例如,经由存储器控制器或其它逻辑)对存储器模块行锤击阈值进行检测和编程。在一个实施例中,存储器模块自己发现其行锤击阈值。
在具有存储器设备和/或存储器模块的活动系统中,检测逻辑针对如由与存储器设备相关联或适用于存储器设备的行锤击阈值所定义的行锤击状况来监视存储器设备,412。如果阈值存储在存储器设备本身上,或者存储器设备作为其一部分的存储器模块上,或以其它方式由检测逻辑获取并用来对其进行监视,那么该阈值与该存储器设备相关联或适用于该存储器设备。因此,检测逻辑获取用于存储器设备的阈值,414,并确定对存储器设备的行的访问的数量是否超过该阈值,416。
如果超过阈值(418否分支),那么检测逻辑继续监视行锤击状况,412。如果超过阈值(418是分支),那么检测逻辑生成用于导致存储器设备的有目标刷新的触发,420。该触发可以是根据本文中描述的任意实施例的。
图5是用于监视存储器设备的行锤击状况的过程的实施例的流程图。存储器设备和分布式检测逻辑可以使用任意机制来监视将指示对存储器的行的访问何时已经使受害者行中的损坏可能性增加到了超过被配置为可接受水平的内容的行锤击状况。一些机制可以包括:保持仅对所有行的子集的计数,而不是保持对所有行的计数。一些机制维持表格,该表格可以包括访问的有序表格。一些机制可以基于计算出的最大受害者计数(MVC)。一种实现描述如下。
管理员可以用行锤击监视时间窗或时间帧以及指示行锤击状况的访问的阈值的值来配置存储器子系统,502。管理员可以对系统进行预先配置以接收指示时间帧和阈值的值的输入。在一个实施例中,该配置是设置寄存器值或用于存储器子系统的固件中的配置的部分。该系统包括被配置为执行针对时间帧的监视、针对访问阈值数量的监视的检测器或检测逻辑。另外,如本文中所描述的,针对存储器设备或存储器设备的群组(例如,模块)来获取特定阈值的值。
因此,在系统中定义了时间帧和访问的数量。在一个实施例中,时间帧为64毫秒。构成阈值的访问的数量依赖于存储器控制器连接到的存储器设备的架构,包括存储器的大小和存储器的密度(例如,最小工艺特征大小)。指示行锤击事件的访问的数量可以在时间窗期间在150K至550K次访问的范围中的某处。这样的信息存储在存储器设备和/或存储器模块的存储器位置(例如,寄存器)中。
存储器控制器或检测器可以计算系统中可能的受害者行的最大数量,504。可以认为下述操作由检测器或存储器控制器来执行,这依赖于实现。为了描述简单,下面的描述指的是检测器的操作,但将理解为能够由检测器或存储器控制器或者该二者来执行,或者检测器可以是存储器控制器的部分。管理员可以可替代地计算受害者行的最大数量。该计算基于确定可以被访问的行的最大数量是时间帧中的阈值次数。作为一个简单的示例,考虑其中定义阈值的访问的数量为250K并且时间帧为64ms的系统。如果每次访问需要大约10ns的量级,那么受害者行的最大数量大约为26(64ms/(250K*10ns)=25.6)。受害者的最大数量可以被称为MVC(最大受害者计数)。将观察到的是:该数量级的数量小于个体地监视每行的简单情况。
在一个实施例中,检测器基于MVC的值来构建条目的阵列,506。阵列可以是表格或日志或其它结构。在一个实施例中,条目的数量是至少MVC+1。条目的数量可以是MVC的某个倍数。在一个实施例中,表格或日志的每个条目包括可由CAM(内容可寻址存储器)访问的行地址和访问计数值。将理解的是:CAM允许基于地址的比较的访问。其它信息也可以包括在条目中。
在一个实施例中,检测器在时间帧开始时对阵列进行初始化,508。该初始化可以包括多个不同的操作。在一个实施例中,在时间帧开始时,检测器将阵列的每个条目初始化为非有效(例如,通过在条目中设置标志或输入值,或者保持有效条目的位图与该阵列分开)。在一个实施例中,检测器将每个条目的计数值复位为零。
在一个实施例中,检测器可以通过标识激活命令中的地址字段中的行的激活来监视每行(例如,使用CAM),510。在一个实施例中,检测器按计数器值的顺序来对阵列进行排序(例如,最高到最低或最低到最高)。对阵列的排序可以通过排序、链表或其它机制来完成。
针对由检测器检测到的行的每次新的激活,512,检测器可以确定该行是否已经在阵列中,514。如果该行在阵列中(514是分支),那么检测器递增针对该条目的计数,516。可以存在具有条目也是有效的附加要求(因此,如果行在阵列中并且条目有效,则递增)。可以存在处理其中行没有已经在阵列中的情形的许多方式,514否分支。在一个实施例中,检测器确定阵列中是否存在可用的空的条目或无效条目。
如果在阵列中存在可用条目(518是分支),那么检测器使用与针对其检测到激活的行相关联的信息来填充该条目,520。如对于特定实现来说所需要的,检测器也可以将该条目标记为有效。然后检测器递增针对该条目的计数,516。
如果在阵列中不存在可用条目(518否分支),那么检测器可以使用针对其检测到激活的行的行地址来替换具有最低访问计数值的条目,522。在一个实施例中,特别将条目中的访问计数不复位或置零。而是针对刚刚激活的行来替换针对条目的地址信息。将理解的是:可以对存储器中的某些行进行重复访问,但重复的访问可能与对另一个条目的访问来回抖动。因此,通过保持并递增访问计数,其几乎一定高于对该行的访问数量,但其将永远不会低于真实的访问数量。
因此,检测器保持并递增之前的访问计数值或行计数,516。将理解的是:递增的最简单形式是每次将行计数增加1,但也可以使用其它形式的递增。在递增之后,516,检测器确定行计数是否处于最大计数,或者行是否达到了阈值,524。在一个实施例中,检测器在每次其检测到行激活时检查以查看是否达到阈值,但其它实现也是可能的。尤其是,对于新添加的条目,可能不需要对比阈值对计数进行检查。
不管如何实现,当检测器确定行是否处于阈值时,其可以针对该行发出有目标刷新命令以解决行锤击状况。如果行没有达到阈值(524否分支),那么检测器保持监视,510。如果行达到了阈值(524是分支),那么检测器向存储器控制器指示该行的地址信息以用于有目标刷新命令的触发,526。在一个实施例中,当条目达到阈值时,检测器也将该条目的最小计数值复位成该阵列中任何条目的最小计数值。这样的动作再一次防止了阵列丢失针对正在被重复访问但至少一开始没有像其它行那样频繁地被访问的条目的计数信息。检测器还可以清理条目的有效比特。
将理解的是:本文中描述的操作趋向于使最频繁访问的行“上浮”。当如所描述的那样来实现时,永远不应该存在某个行实际的访问计数大于阵列或列表中的任意条目的最小访问计数的环境。另外,由于导致目标刷新的行的数量不会超过MVC的值,从而限制了误警的风险。
上文特别参考附图对实施例进行了描述。概括地说,将理解的是:可以对系统做出各种修改。在一个实施例中,行锤击检测逻辑在存储器设备本身上。例如,存储器设备可以包括设备中的检测逻辑,其对进入存储器设备的命令和地址信息进行处理。例如,C/A(命令/地址)寄存器或缓冲器或RDIMM(寄存器DIMM)或LRDIMM(负荷减少DIMM)上的其它相当的设备。在一个实施例中,系统经由这样的C/A设备或其它分布式逻辑来执行分布式监视或分布式跟踪。该逻辑可以使用任意方法来监视和/或跟踪对存储器的部分的访问,诸如下文针对图5所描述的方法或任何其它方法。
在一个实施例中,检测逻辑可以跨存储器设备的多个逻辑部分分布。因此,即使所有的检测逻辑都在C/A设备中执行,但如果其可以跨不同的逻辑部分对每个部分个体地进行监视,则为了本文的目的其可以被认为是分布式逻辑。当检测到行锤击事件时,存储器设备中的检测逻辑向存储器控制器发警报。在一个实施例中,该警报是经由警报管脚(例如,ALERT#)上的脉宽触发的。在一个实施例中,存储器设备经由设置警报管脚来触发警报,并等待存储器设备对警报管脚进行复位。存储器控制器还可以响应于警报而对存储器设备进行轮询,以便确定正在被指示的是什么警报。以这种方式,可以在同一个警报管脚上生成多个警报。因此,例如,在当前的DDR
DRAM设计中,如果行锤击事件被指示为管脚的设置或者如果其使管脚产生脉冲并等待轮询,则主机或存储器控制器可以在C/A奇偶错误指示(由脉冲宽度断言的)和行锤击事件指示之间进行区分。
在一个实施例中,存储器控制器配置存储器设备来检测行锤击事件。例如,存储器控制器可以对寄存器控制字中的什么访问数量触发行锤击事件的阈值的值进行编程。在一个实施例中,存储器控制器针对存储器设备对时间窗进行编程以确定行锤击状况。例如,在一些存储器子系统中,可以使用与刷新窗不同的时间窗。在其它子系统中,刷新窗可以是可编程的。如果在给定时间窗内达到了访问数量的阈值,那么存储器设备(例如,经由C/A寄存器设备)向主机(例如,向存储器控制器)发送警报信号。
当存储器控制器从存储器设备接收到对行锤击状况的指示时,存储器控制器在存储器设备中触发针对行锤击状况的受害者行的有目标刷新。对于存储器控制器可以怎样触发有目标刷新存在多种替代方案。在一个实施例中,存储器控制器向存储器设备发出行锤击刷新命令,并指示触发了该行锤击状况的地址。存储器控制器可以从存储器设备中的C/A设备获取地址(例如,经由读取控制字)。存储器控制器可以指定导致了行锤击状况的行的准确地址,并允许存储器设备判定哪些行是受害者(或者物理相邻的)。可替代地,存储器控制器可以确定特定的受害者行地址。存储器控制器可以发送标识存储器区域而不是触发了行锤击状况的行的准确位置的地址。
在一个实施例中,存储器控制器发出用于导致存储器设备生成行锤击命令的触发。例如,存储器控制器可以在C/A设备中写控制比特,其可以继而生成行锤击刷新命令。这样的触发在存储器控制器部分上将需要较少的处理,但需要存储器设备进行更多处理。然而,如果存储器设备已经检测到了行锤击事件,那么其应该具有导致了该行锤击事件的行的地址,从而能够在不必在存储器设备与存储器控制器之间来回交换地址的情况下发出命令。在替代实施例中,存储器控制器在不包括地址信息的情况下发出行锤击刷新命令(也被称为有目标刷新命令)。存储器设备(例如,经由C/A设备)可以提供地址信息,并向将执行有目标刷新的存储器资源转发命令。
将理解的是:对C/A设备的提及是非限制性的。分布式行锤击事件管理可以在下列各项中实现:RDIMM子系统的C/A寄存器、LRDIMM子系统的C/A寄存器、板上缓冲器(BoB)实现的缓冲器、3DS(三维堆叠)配置中的逻辑缓冲器设备、或者处理命令和地址信息的某种其它设备。
如上面所提到的,存储器控制器可以发送包括或不包括地址信息的有目标刷新触发。地址信息可以指示哪个行正在被锤击,并因此不必直接指示受害者行(或者有目标刷新命令的目标)。在典型的刷新场景中,存储器设备本身跟踪什么何时需要被刷新。因此,存储器设备本身可以基于由存储器设备使用的存储器布局来计算哪个或哪些受害者行将被行锤击事件影响。存储器设备通过打开行然后关闭行以进行刷新来刷新受害者行。
将理解的是:要使存储器控制器指示导致存储器设备刷新被锤击行的受害者行的被锤击行的地址需要用于标识特定地址的某个数量的比特。在一个实施例中,存储器控制器标识特定的地址。在另一个实施例中,存储器控制器标识比特定行更大的区。因此,存储器控制器可以标识特定块、特定行或区,这依赖于所选择的配置。标识非常具体的地址的成本是所需比特的数量。标识地址的成本更通常的是存储器设备需要刷新更大的区,从而使存储器设备在更长的刷新时间内不可用。
在一个实施例中,存储器控制器通过向存储器设备发送地址信息来指示地址信息。在一个实施例中,可以在存储器控制器与存储器设备之间添加一个或多个额外的管脚或线,将地址信息嵌入现有命令中以标识地址信息。因此,有目标刷新命令可以是经修改的现有命令和/或经修改的现有命令结合一个或多个额外管脚或线的使用。在一个实施例中,有目标刷新命令包括:多次(例如,三次)发送命令和地址。在一个实施例中,可以在连续的命令中对地址进行修改(例如,在两个连续命令中发送地址+1然后发送地址-1)。其它实施例是可能的。在一个实施例中,存储器控制器发送有目标刷新命令,存储器设备将该命令分开成激活和预充电命令的一个或多个群组。可以出于有目标刷新的目的使其它命令翻倍。
对于当前的DRAM(动态随机存取存储器)来说,行在64 ms窗(例如,刷新窗)内可以被访问的理论最大次数是1.35百万次(64
ms刷新窗除以47 ns访问时间)。在受害者行中没有数据损坏风险的实际最大值低得多,并且依赖于所使用的工艺技术。然而,通过检测行锤击事件并发送有目标刷新命令,可以在不限制对存储器的特定行的访问的状况下降低数据损坏的风险。
在存储器设备中,物理上相邻的行通常可以在制造商间被不同地逻辑标记。通常制造商通过物理地址偏离对逻辑上相邻的存储器行进行映射,并且偏离可以在不同的制造商当中不同。存储器设备本身被配置为确定如何将访问请求映射到物理存储器资源。存储器控制器通常被设计为与多种不同类型的存储器设备兼容,并且从而通常不针对任何特定的制造商的设备对它们进行专门设计。因此,存储器控制器传统上并不具有用于指示哪些行在物理上相邻的逻辑或信息。使用分布式检测逻辑,存储器设备本身可以进行与标识被锤击的行和受害者行有关的一些操作,以及与生成有目标刷新命令有关的一个或多个操作。
图6是支持有目标刷新命令的命令真值表的实施例。命令真值表600表示针对存储器设备的真值表的一个示例。根据表格600,发送有目标刷新触发的一个实施例是存储器控制器发出有目标刷新命令(被标识为命令630的行锤击命令)。在替换实施例中,不同的机制用于触发存储器设备执行有目标刷新。左侧的列标识所支持的功能。右侧的列标识用于指定所标识的功能的不同信号的值。
出于这里讨论的目的,表格600中特别值得注意的是命令630,其是行锤击命令。在一个实施例中,在将命令630在C/A总线上设置去往存储器设备之前,存储器控制器经由模式寄存器(MR)一个或多个比特将存储器设备置于‘行锤击模式’。在一个实施例中,存储器控制器向存储器设备提供行地址连同组群组和组地址。存储器设备使用向与该地址相邻的物理行提供的地址来执行有目标刷新。在允许某个时间段用于刷新命令发生之后,然后存储器控制器可以通过将MR比特复位来将存储器设备从‘行锤击模式’移除。因此,当MR比特由存储器控制器设置时,存储器设备将命令630理解为行锤击命令,否则该命令可以被理解为组激活命令。
在一个实施例中,行锤击与组激活(其上的命令)等同,除了信号610的值ACT_n以外。因此,在一个实施例中,行锤击命令由ACT_n触发,ACT_n是不在之前存储器标准中的管脚或信号。ACT_n上的信号可以指示命令是行锤击还是组激活。其被示为低电平有效,但可以可替代地被配置为高电平有效。这两个命令都可以标识地址,如由行地址比特指示的。
将观察到的是:被标记为620的三个列包括RAS、CAS和WE信号。然而,这些命令可由存储器设备自身内部控制。因此,通过将这些信号与额外的地址信息(分别是地址比特A16、A15和A14)进行复用,使得能够提供更多的地址信息,以便更加具体地标识行锤击状况的目标的地址。
当设置了ACT(例如,列620)时,存储器设备读取RAS/CAS/WE作为行地址信息。当没有设置ACT时,存储器设备读取RAS/CAS/WE作为传统的存储器访问编码。如上面所提到的,可以针对块、特定行或某种其它大小的区来标识地址信息。刷新可以根据系统所需那样的具体或宽泛。
当激活命令被示为通过信号ACT_n的使用而翻倍时,可以使用刷新或任何其它命令。可替代地,全新的命令可用于有目标刷新。如图所示,有目标刷新命令可以说是嵌入激活命令。存储器设备基于行锤击命令630中的地址来标识受害者行。
图7是可以在其中实现行锤击监视的计算系统的实施例的框图。系统700表示根据本文中描述的任意实施例的计算设备,并且可以是膝上型计算机、台式计算机、服务器、游戏或娱乐控制系统、扫描仪、复印机、打印机或其它电子设备。系统700包括处理器720,其为系统700提供指令的执行、操作管理和处理。处理器720可以包括任意类型的微处理器、中央处理单元(CPU)、处理核、或用于为系统700提供处理的其它处理硬件。处理器720控制系统700的总体操作,并且可以是或者包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等,或者这样的设备的组合。
存储器子系统730表示系统700的主存储器,并为要由处理器720执行的代码或要用在执行例程中的数据值提供临时存储。存储器子系统730可以包括诸如只读存储器(ROM)、闪速存储器、一个或多个各种的随机存取存储器(RAM)或其它存储器设备的一个或多个存储器设备,或这样的设备的组合。除其它事项外,存储器子系统730存储并托管操作系统(OS)736,以便提供用于系统700中的指令的执行的软件平台。另外,从存储器子系统730存储并执行其它指令738,以提供系统700的逻辑和处理。OS
736和指令738由处理器720执行。
存储器子系统730包括其中其存储数据、指令、程序或其它项目的存储器设备732。在一个实施例中,存储器子系统包括存储器控制器734,其是根据本文中描述的任意实施例的存储器控制器,并且其基于行锤击状况向存储器设备732提供有目标刷新命令。根据本文中描述的任意实施例,可以基于针对存储器设备存储的阈值来检测行锤击状况。有目标刷新命令导致存储器设备732执行有目标刷新,其是周期之外的刷新操作,这意味着其不在刷新的定期调度的周期上,并且不一定在由存储器设备跟踪的作为下一个要刷新区的区上。而是该所刷新的区域基于受害者行或基于与有目标刷新命令相关联的地址标识的区域。存储器控制器734可以响应于根据本文中描述的任意实施例的分布式检测逻辑的检测而触发存储器732中的有目标刷新。
处理器720和存储器子系统730耦合到总线/总线系统710。总线710是表示由合适的桥、适配器和/或控制器连接的任意一个或多个单独物理总线、通信线路/接口、和/或点对点连接的抽象。因此,总线710可以包括例如下列各项中的一个或多个:系统总线、外围组件互连(PCI)总线、超传输或工业标准架构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)、或电气和电子工程师协会(IEEE)标准1394总线(通常被称为“火线”)。总线710的各个总线还可以与网络接口750中的接口相对应。
系统700还包括耦合到总线710的一个或多个输入/输出(I/O)接口740、网络接口750、一个或多个内部大容量存储设备760、以及外围接口770。I/O接口740可以包括一个或多个接口组件,通过这些接口组件用户与系统700交互(例如,视频、音频和/或字母数字交接)。网络接口750向系统700提供通过一个或多个网络与远程设备(例如,服务器,其它计算设备)通信的能力。网络接口750可以包括以太网适配器、无线互连组件、USB(通用串行总线)或其它有线或无线的基于标准的或专有接口。
存储设备760可以是或者包括用于以非易失性方式存储大量数据的任何常规介质,诸如一个或多个磁盘、固态盘或基于光学的盘、或者组合。存储设备760以持久状态保持代码或指令以及数据762(即,尽管系统700电力中断,但值仍然保留)。存储设备760可被一般认为是“存储器”,尽管存储器730是用于向处理器720提供指令的执行或操作存储器。而存储设备760是非易失性的,存储器730可以包括易失性存储器(即,如果至系统700电力中断,则数据的值或状态是不确定的)。
外围接口770可以包括上文没有具体提到的任何硬件接口。外围设备通常指的是从属地连接到系统700的设备。从属连接是其中系统700提供软件和/或硬件平台的连接,在所述软件和/或硬件平台上执行操作,并且用户与所述软件和/或硬件平台进行交互。
图8是可以在其中实现行锤击监视的移动设备的实施例的框图。设备800表示移动计算设备,诸如计算平板电脑、移动电话或智能电话、无线使能的电子阅读器、或其它移动设备。将理解的是:一般性地示出了这些组件中的某些组件,并且设备800中并没有示出这样的设备的所有组件。
设备800包括处理器810,其执行设备800的主要处理操作。处理器810可以包括一个或多个物理设备,诸如微处理器、应用处理器、微控制器、可编程逻辑器件或其它处理装置。在一个实施例中,除了处理器管芯之外,处理器810还包括可选接口组件。因此,处理器管芯和光子组件在同一个封装中。这样的处理器封装可以根据本文中描述的任意实施例以光学的方式与光学连接器交接。
由处理器810执行的处理操作包括在其上执行应用和/或设备功能的操作平台或操作系统的执行。处理操作包括与人类用户或其它设备的I/O(输入/输出)有关的操作、与功率管理有关的操作、和/或与将设备800连接到另一个设备有关的操作。处理操作还可以包括与音频I/O和/或显示I/O有关的操作。
在一个实施例中,设备800包括音频子系统820,其表示与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动程序、编解码器)。音频功能可以包括扬声器和/或耳机输出以及麦克风输入。用于这样的功能的设备可以集成到设备800中,或连接到设备800。在一个实施例中,用户通过提供由处理器810接收和处理的音频命令来与设备800进行交互。
显示子系统830表示为用户提供视觉和/或触觉显示以便与计算设备进行交互的硬件(例如,显示设备)和软件(例如,驱动程序)组件。显示子系统830包括显示接口832,其包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示接口832包括与处理器810分离的、用于执行与显示相关的至少一些处理的逻辑。在一个实施例中,显示子系统830包括向用户提供输出和输入二者的触摸屏设备。
I/O控制器840表示与和用户的交互有关的硬件设备和软件组件。I/O控制器840可操作以对作为音频子系统820和/或显示子系统830的部分的硬件进行管理。另外,I/O控制器840示出了用于连接到设备800的附加设备的连接点,用户可通过所述连接点与系统进行交互。例如,可以附接到设备800的设备可包括:麦克风设备、扬声器或立体声系统、视频系统或其它显示设备、键盘或小键盘设备、或用于与诸如读卡器或其它设备的特定的应用一起使用的其它I/O设备。
如上面所提到的,I/O控制器840可以与音频子系统820和/或显示子系统830进行交互。例如,通过麦克风或其它音频设备的输入可以为设备800的一个或多个应用或功能提供输入或命令。另外,代替或附加于显示输出,可以提供音频输出。在另一个示例中,如果显示子系统包括触摸屏,那么显示设备也充当输入设备,其可以至少部分由I/O控制器840管理。设备800上也可以存在用于提供由I/O控制器840管理的I/O功能的附加按钮或开关。
在一个实施例中,I/O控制器840管理诸如下列各项的设备:加速度计、照相机、光传感器或其它环境传感器、陀螺仪、全球定位系统(GPS)或可以包括在设备800中的其它硬件。输入可以是直接用户交互以及向系统提供环境输入以影响其操作(诸如过滤噪声、针对亮度检测调节显示、针对照相机应用闪光、或者其它特征)的部分。
在一个实施例中,设备800包括对电池功率使用、电池充电和与功率节省操作有关的特征进行管理的功率管理850。存储器子系统860包括用于在设备800中存储信息的存储器设备862。存储器子系统860可以包括非易失性(如果至存储器设备的电力中断,状态不发生变化)和/或易失性(如果至存储器设备的电力中断,状态是不确定的)存储器设备。存储器860可以存储与系统800的应用和功能的执行有关的应用数据、用户数据、音乐、照片、文档、或其它数据以及系统数据(无论长期或暂时的)。
在一个实施例中,存储器子系统860包括存储器控制器864(其还可以被认为是系统800的控制的部分,并且可以潜在地被认为是处理器810的部分)。存储器控制器864基于存储器设备862的存储器的特定行处的行锤击状况发出有目标刷新命令。根据本文中描述的任意实施例,存储器控制器864可以基于针对存储器设备所存储的阈值来检测行锤击状况。根据本文中描述的任意实施例,存储器控制器864可以响应于分布式检测逻辑的检测而触发存储器832中的有目标刷新。
连接性870包括用于使设备800能够与外部设备进行通信的硬件设备(例如,无线和/或有线连接器和通信硬件)和软件组件(例如,驱动程序、协议栈)。设备可以是诸如其它计算设备、无线接入点或基站的单独的设备,以及诸如头戴式受话器、打印机或其它设备的外围设备。
连接性870可以包括多种不同类型的连接性。概括起来,设备800示为具有蜂窝连接性872和无线连接性874。蜂窝连接性872一般来说指的是由无线载波提供的蜂窝网络连接性,诸如经由以下来提供:GSM(全球移动通信系统)或变型或衍生物、CDMA(码分多址)或变型或衍生物、TDM(时分复用)或变型或衍生物、LTE(长期演进——也被称为“4G”)或其它蜂窝服务标准。无线连接性874指的是不是蜂窝的无线连接性,并且可以包括个域网(诸如蓝牙)、局域网(诸如WiFi)和/或广域网(诸如WiMAX)或其它无线通信。无线通信指的是经由使用通过非固体介质的调制电磁辐射的数据传输。有线通信通过固体通信介质发生。
外围连接880包括硬件接口和连接器,以及用于进行外围连接的软件组件(例如,驱动程序、协议栈)。将理解的是:设备800可以是(“到”882)其它计算设备的外围设备,以及具有(“从”884)连接到其的外围设备。设备800通常具有用于连接到其它计算设备以用于诸如管理(例如,下载和/或上传、改变、同步)设备800上的内容的目的的“对接”(docking)连接器。另外,对接连接器可以允许设备800连接到允许设备800控制内容输出的某些外围设备,例如,连接到音像或其它系统。
除了专有对接连接器或其它专有连接硬件之外,设备800可以经由公共或基于标准的连接器来进行外围连接880。公共类型可以包括通用串行总线(USB)连接器(其可以包括任何数量的不同硬件接口)、包括迷你显示端口(MDP)的显示端口、高清晰度多媒体接口(HDMI)、火线、或其它类型。
在一个方面中,一种存储器子系统包括:具有多个物理行的存储器单元的存储器设备;以及耦合到所述存储器设备的行锤击检测逻辑,所述检测逻辑用于从存储针对所述存储器设备的配置信息的寄存器获取针对所述存储器设备的访问速率阈值,所述阈值标识时间窗内导致与被访问的行物理上相邻的行上的数据损坏风险的对存储器的特定行的访问的数量;基于所述阈值来确定对所述存储器设备的所述多个物理行中的一个行的访问的数量是否超过所述阈值;以及响应于检测到所述访问的数量超过所述阈值,触发所述存储器设备来执行目标为与针对其的访问的数量超过所述阈值的行物理上相邻的受害者行的刷新。
在一个实施例中,所述行锤击检测逻辑包括耦合到所述存储器设备的存储器控制器的检测逻辑。在一个实施例中,所述行锤击检测逻辑包括所述存储器设备的分布式检测逻辑。在一个实施例中,存储所述存储器设备的配置信息的所述寄存器包括所述存储器设备作为其一部分的存储器模块的配置存储设备。在一个实施例中,存储针对所述存储器设备的配置信息的所述寄存器包括所述存储器设备上的配置寄存器。在一个实施例中,所述检测逻辑用于获取指示所述阈值的三比特码。
在一个实施例中,针对所述存储器设备的所述阈值是第一阈值,并且不同于针对所述存储器子系统中的不同存储器设备的第二阈值。在一个实施例中,所述检测逻辑根据其不同的阈值来监视每个存储器设备。在一个实施例中,所述检测逻辑还用于确定哪个阈值较低;并且根据较低的阈值来监视所述存储器设备。
在一个方面中,一种电子设备包括存储器子系统,其具有:具有多个物理行的存储器单元的存储器设备;以及耦合到所述存储器设备的行锤击检测逻辑,所述检测逻辑用于从存储针对所述存储器设备的配置信息的寄存器获取针对所述存储器设备的访问速率阈值,所述阈值标识时间窗内导致与被访问的行物理上相邻的行上的数据损坏风险的对存储器的特定行的访问的数量;基于所述阈值来确定对所述存储器设备的所述多个物理行中的一个行的访问的数量是否超过所述阈值;以及响应于检测到所述访问的数量超过所述阈值,触发所述存储器设备来执行目标为与针对其的访问的数量超过所述阈值的行物理上相邻的受害者行的刷新;以及触摸屏显示设备,其被配置为基于从所述存储器设备访问的数据来提供用户显示。
在一个实施例中,存储针对所述存储器设备的配置信息的所述寄存器包括所述存储器设备作为其一部分的存储器模块的配置存储设备。在一个实施例中,存储针对所述存储器设备的配置信息的所述寄存器包括所述存储器设备上的配置寄存器。在一个实施例中,针对所述存储器设备的所述阈值是第一阈值,并且不同于针对所述存储器子系统中的不同存储器设备的第二阈值。在一个实施例中,所述检测逻辑根据其不同的阈值来监视每个存储器设备。在一个实施例中,所述检测逻辑还用于确定哪个阈值较低;并且根据较低的阈值来监视所述存储器设备。在一个实施例中,所述检测逻辑用于获取对指示所述阈值的码进行存储的配置寄存器的字段。
在一个方面中,一种方法包括:从对针对存储器设备的配置信息进行存储的寄存器获取针对所述存储器设备的访问速率阈值,所述阈值标识时间窗内导致与被访问的行物理上相邻的行上的数据损坏风险的对存储器的特定行的访问的数量;基于所述阈值来确定对所述存储器设备的多个物理行中的一个行的访问的数量是否超过所述阈值;以及响应于检测到所述访问的数量超过所述阈值,生成用于导致所述存储器设备来执行目标为与针对其的访问的数量超过所述阈值的行物理上相邻的受害者行的刷新的触发。
在一个实施例中,生成所述触发包括:从所述存储器设备处的分布式检测逻辑向存储器控制器发送导致所述存储器控制器向所述存储器设备发出有目标刷新命令的警报。在一个实施例中,确定所述访问的数量是否超过所述阈值还包括:监视在所述时间窗内对所述存储器设备的行的访问;确定对任意行的访问的数量是否超过了所述阈值;以及指示被确定为在所述时间窗中超过了所述访问的数量的行的地址信息。在一个实施例中,针对所述存储器设备的所述阈值是第一阈值,其不同于针对与所述存储器设备共享存储器子系统的不同存储器设备的第二阈值,并且其中,基于所述阈值来进行确定还包括:确定所述第一阈值还是所述第二阈值较低;以及基于所确定的较低的阈值来监视两个存储器设备。
本文中所示出的流程图提供了各个处理动作序列的示例。虽然以特定的顺序或次序示出,但除非另有指定,否则动作的次序是可以修改的。因此,所说明的实施例应该仅被理解为示例,并且可以以不同的次序来执行过程,并且一些动作可以并行执行。另外,一个或多个动作在各个实施例中可以省略,因此,不是在每个实施例中都需要所有的动作。其它过程流是可能的。
就各个操作或功能在本文中描述的程度来说,可以将这些操作或功能描述或定义为软件代码、指令、配置和/或数据。内容可以是可直接执行的(“对象”或“可执行”形式)、源代码或差异代码(“增量”或“补丁”代码)。本文中描述的实施例的软件内容可以经由具有存储在其上的内容的制品,或者经由操作通信接口以便经由该通信接口来发送数据的方法来提供。机器可读存储介质可以使机器执行所描述的功能或操作,并包括存储机器(例如,计算设备、电子系统等)可访问形式的信息的任何机制,诸如可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪速存储器设备等)。通信接口包括与硬连线、无线、光学等介质中的任何介质交接以便与另一个设备进行通信的任何机制,诸如存储器总线接口、处理器总线接口、因特网连接、盘控制器等。可以通过提供配置参数和/或发送信号来配置通信接口,以使通信接口准备提供描述软件内容的数据信号。通信接口可以经由向该通信接口发送的一个或多个命令或信号来访问。
本文中描述的各个组件可以是用于执行所描述的操作或功能的装置。本文中描述的每个组件包括软件、硬件或这些的组合。这些组件可以实现为软件模块、硬件模块、专门用途的硬件(例如,专用硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器,硬连线电路等等。
除了本文中描述的内容,还可以在不脱离本发明所公开的实施例和实现的范围的情况下对其进行各种修改。因此,本文中的说明和示例应该在说明性的而非限制性的意义上来解释。本发明的范围应该仅参照所附权利要求书来度量。
Claims (36)
1. 一种存储器子系统,其包括:
具有多个物理行的存储器单元的存储器设备;以及
耦合到所述存储器设备的检测逻辑,所述检测逻辑用于:
从存储针对所述存储器设备的配置信息的寄存器获取针对所述存储器设备的访问速率阈值,所述阈值标识时间窗内导致与被访问的行物理上相邻的行上的数据损坏风险的对存储器的特定行的访问的数量;
基于所述阈值来确定对所述存储器设备的所述多个物理行中的一个行的访问的数量是否超过所述阈值;以及
响应于检测到所述访问的数量超过所述阈值,触发所述存储器设备来执行目标为与针对其的访问的数量超过所述阈值的行物理上相邻的受害者行的刷新。
2. 根据权利要求1所述的存储器子系统,其中,所述检测逻辑包括耦合到所述存储器设备的存储器控制器的检测逻辑。
3. 根据权利要求1所述的存储器子系统,其中,所述检测逻辑包括所述存储器设备的分布式检测逻辑。
4. 根据权利要求1所述的存储器子系统,其中,存储针对所述存储器设备的配置信息的所述寄存器包括所述存储器设备作为其一部分的存储器模块的配置存储设备。
5. 根据权利要求1所述的存储器子系统,其中,存储针对所述存储器设备的配置信息的所述寄存器包括所述存储器设备上的配置寄存器。
6. 根据权利要求1所述的存储器子系统,其中,所述检测逻辑用于获取指示所述阈值的三比特码。
7. 根据权利要求1所述的存储器子系统,其中,针对所述存储器设备的所述阈值是第一阈值,并且不同于针对所述存储器子系统中的不同存储器设备的第二阈值。
8. 根据权利要求7所述的存储器子系统,其中,所述检测逻辑根据其不同的阈值来监视每个存储器设备。
9. 根据权利要求7所述的存储器子系统,其中,所述检测逻辑还用于:
确定哪个阈值较低;并且
根据较低的阈值来监视所述存储器设备。
10. 一种电子设备,其包括:
存储器子系统,其具有:
具有多个物理行的存储器单元的存储器设备;以及
耦合到所述存储器设备的检测逻辑,所述检测逻辑用于:
从存储针对所述存储器设备的配置信息的寄存器获取针对所述存储器设备的访问速率阈值,所述阈值标识时间窗内导致与被访问的行物理上相邻的行上的数据损坏风险的对存储器的特定行的访问的数量;
基于所述阈值来确定对所述存储器设备的所述多个物理行中的一个行的访问的数量是否超过所述阈值;以及
响应于检测到所述访问的数量超过所述阈值,触发所述存储器设备来执行目标为与针对其的访问的数量超过所述阈值的行物理上相邻的受害者行的刷新;以及
触摸屏显示设备,其被配置为基于从所述存储器设备访问的数据来提供用户显示。
11. 根据权利要求10所述的电子设备,其中,存储针对所述存储器设备的配置信息的所述寄存器包括所述存储器设备作为其一部分的存储器模块的配置存储设备。
12. 根据权利要求10所述的电子设备,其中,存储针对所述存储器设备的配置信息的所述寄存器包括所述存储器设备上的配置寄存器。
13. 根据权利要求10所述的电子设备,其中,针对所述存储器设备的所述阈值是第一阈值,并且不同于针对所述存储器子系统中的不同存储器设备的第二阈值。
14. 根据权利要求13所述的电子设备,其中,所述检测逻辑根据其不同的阈值来监视每个存储器设备。
15. 根据权利要求13所述的电子设备,其中,所述检测逻辑还用于:
确定哪个阈值较低;并且
根据较低的阈值来监视所述存储器设备。
16. 根据权利要求10所述的电子设备,其中,所述检测逻辑用于获取对指示所述阈值的码进行存储的配置寄存器的字段。
17. 一种方法,其包括:
从对针对存储器设备的配置信息进行存储的寄存器获取针对所述存储器设备的访问速率阈值,所述阈值标识时间窗内导致与被访问的行物理上相邻的行上的数据损坏风险的对存储器的特定行的访问的数量;
基于所述阈值来确定对所述存储器设备的多个物理行中的一个行的访问的数量是否超过所述阈值;以及
响应于检测到所述访问的数量超过所述阈值,生成用于导致所述存储器设备来执行目标为与针对其的访问的数量超过所述阈值的行物理上相邻的受害者行的刷新的触发。
18. 根据权利要求17所述的方法,其中,生成所述触发包括:从存储器控制器处的检测逻辑发送导致所述存储器控制器向所述存储器设备发出有目标刷新命令的警报。
19. 根据权利要求17所述的方法,其中,生成所述触发包括:从所述存储器设备处的分布式检测逻辑向存储器控制器发送导致所述存储器控制器向所述存储器设备发出有目标刷新命令的警报。
20. 根据权利要求17所述的方法,其中,从所述寄存器获取包括:对所述存储器设备作为其一部分的存储器模块的配置存储设备进行访问。
21. 根据权利要求17所述的方法,其中,从所述寄存器获取包括:对所述存储器设备的配置存储设备进行访问。
22. 根据权利要求17所述的方法,其中,从所述寄存器获取所述阈值包括:对指示所述阈值的三比特码进行访问。
23. 根据权利要求17所述的方法,其中,确定所述访问的数量是否超过所述阈值还包括:
监视在所述时间窗内对所述存储器设备的行的访问;
确定对任意行的访问的数量是否超过了所述阈值;以及
指示被确定为在所述时间窗中超过了所述访问的数量的行的地址信息。
24. 根据权利要求17所述的方法,其中,针对所述存储器设备的所述阈值是第一阈值,其不同于针对与所述存储器设备共享存储器子系统的不同存储器设备的第二阈值。
25. 根据权利要求24所述的方法,其中,基于所述阈值进行确定还包括:
确定所述第一阈值还是所述第二阈值较低;以及
基于所确定的较低的阈值来监视两个存储器设备。
26. 根据权利要求24所述的方法,其中,所述检测逻辑根据其不同的阈值来监视每个存储器设备。
27. 一种装置,其包括:
用于从对针对存储器设备的配置信息进行存储的寄存器获取针对所述存储器设备的访问速率阈值的单元,所述阈值标识时间窗内导致与被访问的行物理上相邻的行上的数据损坏风险的对存储器的特定行的访问的数量;
用于基于所述阈值来确定对所述存储器设备的多个物理行中的一个行的访问的数量是否超过所述阈值的单元;以及
用于响应于检测到所述访问的数量超过所述阈值,生成用于导致所述存储器设备来执行目标为与针对其的访问的数量超过所述阈值的行物理上相邻的受害者行的刷新的触发的单元。
28. 根据权利要求27所述的装置,其中,用于生成所述触发的单元包括:用于从存储器控制器处的检测逻辑发送导致所述存储器控制器向所述存储器设备发出有目标刷新命令的警报的单元。
29. 根据权利要求27所述的装置,其中,用于生成所述触发的单元包括:用于从所述存储器设备处的分布式检测逻辑向存储器控制器发送导致所述存储器控制器向所述存储器设备发出有目标刷新命令的警报的单元。
30. 根据权利要求27所述的装置,其中,用于从所述寄存器获取的单元包括:用于对所述存储器设备作为其一部分的存储器模块的配置存储设备进行访问的单元。
31. 根据权利要求27所述的装置,其中,用于从所述寄存器获取的单元包括:用于对所述存储器设备的配置存储设备进行访问的单元。
32. 根据权利要求27所述的装置,其中,用于从所述寄存器获取所述阈值的单元包括:用于对指示所述阈值的三比特码进行访问的单元。
33. 根据权利要求27所述的装置,其中,用于确定所述访问的数量是否超过所述阈值的单元还包括:
用于监视在所述时间窗内对所述存储器设备的行的访问的单元;
用于确定对任意行的访问的数量是否超过了所述阈值的单元;以及
用于指示被确定为在所述时间窗中超过了所述访问的数量的行的地址信息的单元。
34. 根据权利要求27所述的装置,其中,针对所述存储器设备的所述阈值是第一阈值,其不同于针对与所述存储器设备共享存储器子系统的不同存储器设备的第二阈值。
35. 根据权利要求34所述的装置,其中,用于基于所述阈值进行确定的单元还包括:
用于确定所述第一阈值还是所述第二阈值较低的单元;以及
用于基于所确定的较低的阈值来监视两个存储器设备的单元。
36. 根据权利要求34所述的装置,其中,所述检测逻辑根据其不同的阈值来监视每个存储器设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/690523 | 2012-11-30 | ||
US13/690,523 US9032141B2 (en) | 2012-11-30 | 2012-11-30 | Row hammer monitoring based on stored row hammer threshold value |
PCT/US2013/048634 WO2014084917A1 (en) | 2012-11-30 | 2013-06-28 | Row hammer monitoring based on stored row hammer threshold value |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104737234A true CN104737234A (zh) | 2015-06-24 |
CN104737234B CN104737234B (zh) | 2018-07-24 |
Family
ID=50826659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380057057.9A Active CN104737234B (zh) | 2012-11-30 | 2013-06-28 | 用于行锤击监视的装置,存储器和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9032141B2 (zh) |
EP (1) | EP2926344B1 (zh) |
JP (1) | JP5987234B2 (zh) |
KR (2) | KR101731508B1 (zh) |
CN (1) | CN104737234B (zh) |
WO (1) | WO2014084917A1 (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107017015A (zh) * | 2015-11-06 | 2017-08-04 | 三星电子株式会社 | 执行基于请求的刷新的存储装置和存储系统及操作方法 |
CN107037983A (zh) * | 2016-10-07 | 2017-08-11 | 克劳帕斯科技有限公司 | 用于交叉点存储器阵列的存储器干扰恢复方案 |
CN108154895A (zh) * | 2016-12-06 | 2018-06-12 | 三星电子株式会社 | 执行锤击刷新操作和关联操作的存储器设备和存储器系统 |
CN108369819A (zh) * | 2015-12-09 | 2018-08-03 | 英特尔公司 | 在自刷新模式期间附加刷新操作的执行 |
CN110706733A (zh) * | 2019-08-13 | 2020-01-17 | 浙江工商大学 | 一种dram内存行扰动错误解决方法 |
CN110741436A (zh) * | 2017-05-24 | 2020-01-31 | 优普梅姆公司 | 用于具有集成处理器的dram的行锤效应校正逻辑模块 |
CN110942790A (zh) * | 2018-09-21 | 2020-03-31 | 南亚科技股份有限公司 | 目标行产生器、动态随机存取存储器以及目标行的判定方法 |
CN111399757A (zh) * | 2019-01-03 | 2020-07-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN112106138A (zh) * | 2018-05-24 | 2020-12-18 | 美光科技公司 | 用于行锤击刷新采样的纯时间自采用采样的设备和方法 |
CN112889113A (zh) * | 2018-09-07 | 2021-06-01 | 美光科技公司 | 用于存储器装置的行锤击保护 |
CN113689902A (zh) * | 2020-05-19 | 2021-11-23 | 长鑫存储技术有限公司 | 生成存储器地址数据的方法、计算机可读存储介质及设备 |
CN114999542A (zh) * | 2021-03-02 | 2022-09-02 | 慧与发展有限责任合伙企业 | 通过监测金丝雀单元检测存储器单元干扰的系统和方法 |
CN115357952A (zh) * | 2022-10-18 | 2022-11-18 | 合肥奎芯集成电路设计有限公司 | 针对动态存储器的行锤攻击防御方法和装置 |
US11935576B2 (en) | 2018-12-03 | 2024-03-19 | Micron Technology, Inc. | Semiconductor device performing row hammer refresh operation |
US11955158B2 (en) | 2018-10-31 | 2024-04-09 | Micron Technology, Inc. | Apparatuses and methods for access based refresh timing |
US12002501B2 (en) | 2018-12-26 | 2024-06-04 | Micron Technology, Inc. | Apparatuses and methods for distributed targeted refresh operations |
US12112787B2 (en) | 2022-04-28 | 2024-10-08 | Micron Technology, Inc. | Apparatuses and methods for access based targeted refresh operations |
US12125514B2 (en) | 2022-04-28 | 2024-10-22 | Micron Technology, Inc. | Apparatuses and methods for access based refresh operations |
Families Citing this family (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9236110B2 (en) | 2012-06-30 | 2016-01-12 | Intel Corporation | Row hammer refresh command |
US8938573B2 (en) | 2012-06-30 | 2015-01-20 | Intel Corporation | Row hammer condition monitoring |
US9055711B2 (en) * | 2012-07-16 | 2015-06-09 | HGST Netherlands B.V. | System and method for maintaining data integrity on a storage medium |
US9299400B2 (en) | 2012-09-28 | 2016-03-29 | Intel Corporation | Distributed row hammer tracking |
US9384821B2 (en) | 2012-11-30 | 2016-07-05 | Intel Corporation | Row hammer monitoring based on stored row hammer threshold value |
US9032141B2 (en) | 2012-11-30 | 2015-05-12 | Intel Corporation | Row hammer monitoring based on stored row hammer threshold value |
US9190131B2 (en) * | 2012-12-20 | 2015-11-17 | SK Hynix Inc. | Memory and memory system including the same |
US9324398B2 (en) | 2013-02-04 | 2016-04-26 | Micron Technology, Inc. | Apparatuses and methods for targeted refreshing of memory |
WO2014178839A1 (en) * | 2013-04-30 | 2014-11-06 | Hewlett-Packard Development Company, L.P. | Memory access rate |
WO2014193412A1 (en) * | 2013-05-31 | 2014-12-04 | Hewlett-Packard Development Company, L.P. | Memory error determination |
US9355689B2 (en) * | 2013-08-20 | 2016-05-31 | Oracle International Corporation | Detection of multiple accesses to a row address of a dynamic memory within a refresh period |
US9047978B2 (en) | 2013-08-26 | 2015-06-02 | Micron Technology, Inc. | Apparatuses and methods for selective row refreshes |
KR20150040477A (ko) * | 2013-10-07 | 2015-04-15 | 에스케이하이닉스 주식회사 | 반도체 메모리를 포함하는 전자 장치 및 이의 동작 방법 |
US9281046B2 (en) * | 2013-10-08 | 2016-03-08 | Advanced Micro Devices, Inc. | Data processor with memory controller for high reliability operation and method |
KR102193993B1 (ko) * | 2014-02-21 | 2020-12-22 | 삼성전자주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
JP6224483B2 (ja) * | 2014-02-26 | 2017-11-01 | Necプラットフォームズ株式会社 | 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム |
US9431085B2 (en) | 2014-03-28 | 2016-08-30 | Synopsys, Inc. | Most activated memory portion handling |
JP2015219938A (ja) | 2014-05-21 | 2015-12-07 | マイクロン テクノロジー, インク. | 半導体装置 |
CN105448341B (zh) * | 2014-08-25 | 2019-08-09 | 华邦电子股份有限公司 | 存储电路及其更新方法 |
US9431086B2 (en) * | 2014-10-06 | 2016-08-30 | Winbond Electronics Corp. | Memory circuit and refresh method thereof |
WO2016083865A1 (zh) * | 2014-11-25 | 2016-06-02 | 三星电子株式会社 | 基于概率信息检测半导体存储器的被最频繁存取的地址的方法 |
KR20160063726A (ko) * | 2014-11-27 | 2016-06-07 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US9666257B2 (en) * | 2015-04-24 | 2017-05-30 | Intel Corporation | Bitcell state retention |
KR20170024307A (ko) | 2015-08-25 | 2017-03-07 | 삼성전자주식회사 | 내장형 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치 |
US9812185B2 (en) * | 2015-10-21 | 2017-11-07 | Invensas Corporation | DRAM adjacent row disturb mitigation |
KR102399475B1 (ko) | 2015-12-28 | 2022-05-18 | 삼성전자주식회사 | 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치 |
KR102329673B1 (ko) | 2016-01-25 | 2021-11-22 | 삼성전자주식회사 | 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
JP2017182854A (ja) | 2016-03-31 | 2017-10-05 | マイクロン テクノロジー, インク. | 半導体装置 |
US9741421B1 (en) | 2016-04-05 | 2017-08-22 | Micron Technology, Inc. | Refresh circuitry |
KR102468728B1 (ko) * | 2016-08-23 | 2022-11-21 | 에스케이하이닉스 주식회사 | 리프레쉬 제어 회로, 반도체 메모리 장치 및 그의 동작 방법 |
KR102672295B1 (ko) | 2016-10-27 | 2024-06-04 | 에스케이하이닉스 주식회사 | 리프레시 제어 장치 |
US10490251B2 (en) | 2017-01-30 | 2019-11-26 | Micron Technology, Inc. | Apparatuses and methods for distributing row hammer refresh events across a memory device |
JP7008410B2 (ja) * | 2017-02-10 | 2022-01-25 | キヤノン株式会社 | メモリコントローラおよび方法 |
CN106875971B (zh) | 2017-02-16 | 2021-01-22 | 上海兆芯集成电路有限公司 | 动态随机存取存储器控制器及其控制方法 |
US10768863B2 (en) * | 2017-03-31 | 2020-09-08 | Intel Corporation | Security monitoring agent for field programmable gate array (FPGA) in-memory controller |
KR102298776B1 (ko) * | 2017-05-15 | 2021-09-08 | 에스케이하이닉스 주식회사 | 반도체장치 |
KR102308778B1 (ko) * | 2017-05-24 | 2021-10-05 | 삼성전자주식회사 | 디스터브 로우를 케어하는 메모리 장치 및 그 동작방법 |
US10672449B2 (en) | 2017-10-20 | 2020-06-02 | Micron Technology, Inc. | Apparatus and methods for refreshing memory |
US10170174B1 (en) | 2017-10-27 | 2019-01-01 | Micron Technology, Inc. | Apparatus and methods for refreshing memory |
KR102499255B1 (ko) * | 2018-02-19 | 2023-02-13 | 에스케이하이닉스 주식회사 | 통합 메모리 디바이스 및 그의 동작 방법 |
US11544168B2 (en) | 2017-10-30 | 2023-01-03 | SK Hynix Inc. | Memory system |
KR102414047B1 (ko) | 2017-10-30 | 2022-06-29 | 에스케이하이닉스 주식회사 | 통합 메모리 디바이스 및 그의 동작 방법 |
KR102406868B1 (ko) | 2017-11-23 | 2022-06-10 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
JP6576480B2 (ja) * | 2018-01-16 | 2019-09-18 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | メモリデバイス及びそのデータリフレッシュ方法 |
US10580475B2 (en) | 2018-01-22 | 2020-03-03 | Micron Technology, Inc. | Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device |
US10388363B1 (en) | 2018-01-26 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for detecting a row hammer attack with a bandpass filter |
KR20190123875A (ko) | 2018-04-25 | 2019-11-04 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 구비하는 메모리 시스템 |
KR102358563B1 (ko) * | 2018-05-09 | 2022-02-04 | 삼성전자주식회사 | 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR102410924B1 (ko) | 2018-05-14 | 2022-06-20 | 삼성전자주식회사 | 해머 리프레쉬 동작을 수행하는 리프레쉬 제어 회로, 메모리 장치 및 메모리 장치의 동작 방법 |
US11152050B2 (en) | 2018-06-19 | 2021-10-19 | Micron Technology, Inc. | Apparatuses and methods for multiple row hammer refresh address sequences |
US10573370B2 (en) | 2018-07-02 | 2020-02-25 | Micron Technology, Inc. | Apparatus and methods for triggering row hammer address sampling |
KR20220146701A (ko) | 2018-08-03 | 2022-11-01 | 마이크론 테크놀로지, 인크 | 행 해머를 완화하기 위한 방법 및 이를 이용한 메모리 디바이스 및 시스템 |
US10572377B1 (en) | 2018-09-19 | 2020-02-25 | Micron Technology, Inc. | Row hammer refresh for content addressable memory devices |
CN118197372A (zh) | 2018-10-09 | 2024-06-14 | 美光科技公司 | 用于行锤击缓解的方法以及采用所述方法的存储器装置和系统 |
WO2020131457A1 (en) | 2018-12-21 | 2020-06-25 | Micron Technology, Inc. | Methods for activity-based memory maintenance operations and memory devices and systems employing the same |
CN117198356A (zh) | 2018-12-21 | 2023-12-08 | 美光科技公司 | 用于目标刷新操作的时序交错的设备和方法 |
US11256427B2 (en) * | 2018-12-28 | 2022-02-22 | Micron Technology, Inc. | Unauthorized memory access mitigation |
US10817371B2 (en) | 2018-12-31 | 2020-10-27 | Micron Technology, Inc. | Error correction in row hammer mitigation and target row refresh |
US10770127B2 (en) | 2019-02-06 | 2020-09-08 | Micron Technology, Inc. | Apparatuses and methods for managing row access counts |
US11043254B2 (en) | 2019-03-19 | 2021-06-22 | Micron Technology, Inc. | Semiconductor device having cam that stores address signals |
US10950288B2 (en) | 2019-03-29 | 2021-03-16 | Intel Corporation | Refresh command control for host assist of row hammer mitigation |
US11227649B2 (en) | 2019-04-04 | 2022-01-18 | Micron Technology, Inc. | Apparatuses and methods for staggered timing of targeted refresh operations |
US11049545B2 (en) | 2019-04-23 | 2021-06-29 | Micron Technology, Inc. | Methods for adjusting row hammer refresh rates and related memory devices and systems |
US11264096B2 (en) | 2019-05-14 | 2022-03-01 | Micron Technology, Inc. | Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits |
US11158364B2 (en) | 2019-05-31 | 2021-10-26 | Micron Technology, Inc. | Apparatuses and methods for tracking victim rows |
US11069393B2 (en) | 2019-06-04 | 2021-07-20 | Micron Technology, Inc. | Apparatuses and methods for controlling steal rates |
JP6761512B1 (ja) * | 2019-06-05 | 2020-09-23 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | メモリデバイス及びそのローハンマーリフレッシュ方法 |
US11158373B2 (en) | 2019-06-11 | 2021-10-26 | Micron Technology, Inc. | Apparatuses, systems, and methods for determining extremum numerical values |
US11031066B2 (en) | 2019-06-24 | 2021-06-08 | Micron Technology, Inc. | Methods for adjusting memory device refresh operations based on memory device temperature, and related memory devices and systems |
US11139015B2 (en) | 2019-07-01 | 2021-10-05 | Micron Technology, Inc. | Apparatuses and methods for monitoring word line accesses |
US10832792B1 (en) | 2019-07-01 | 2020-11-10 | Micron Technology, Inc. | Apparatuses and methods for adjusting victim data |
US11386946B2 (en) | 2019-07-16 | 2022-07-12 | Micron Technology, Inc. | Apparatuses and methods for tracking row accesses |
JP6831879B2 (ja) * | 2019-08-01 | 2021-02-17 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | メモリ装置とそのリフレッシュ方法 |
US11354408B2 (en) * | 2019-08-15 | 2022-06-07 | Nxp Usa, Inc. | Technique for detecting and thwarting row-hammer attacks |
US10943636B1 (en) | 2019-08-20 | 2021-03-09 | Micron Technology, Inc. | Apparatuses and methods for analog row access tracking |
US10964378B2 (en) | 2019-08-22 | 2021-03-30 | Micron Technology, Inc. | Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation |
US11200942B2 (en) | 2019-08-23 | 2021-12-14 | Micron Technology, Inc. | Apparatuses and methods for lossy row access counting |
US11302374B2 (en) | 2019-08-23 | 2022-04-12 | Micron Technology, Inc. | Apparatuses and methods for dynamic refresh allocation |
US11302377B2 (en) | 2019-10-16 | 2022-04-12 | Micron Technology, Inc. | Apparatuses and methods for dynamic targeted refresh steals |
US11222685B2 (en) * | 2020-05-15 | 2022-01-11 | Advanced Micro Devices, Inc. | Refresh management for DRAM |
US11309010B2 (en) | 2020-08-14 | 2022-04-19 | Micron Technology, Inc. | Apparatuses, systems, and methods for memory directed access pause |
US11348631B2 (en) | 2020-08-19 | 2022-05-31 | Micron Technology, Inc. | Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed |
US11380382B2 (en) | 2020-08-19 | 2022-07-05 | Micron Technology, Inc. | Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit |
US11222682B1 (en) | 2020-08-31 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for providing refresh addresses |
KR20220036752A (ko) * | 2020-09-16 | 2022-03-23 | 삼성전자주식회사 | 로우 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이의 동작 방법 |
KR102467747B1 (ko) * | 2020-09-18 | 2022-11-16 | 한양대학교 에리카산학협력단 | 행 해머링을 이용한 dram의 성능 분석 방법 및 오류 검출 방법 |
US11557331B2 (en) | 2020-09-23 | 2023-01-17 | Micron Technology, Inc. | Apparatuses and methods for controlling refresh operations |
US20220129200A1 (en) * | 2020-10-26 | 2022-04-28 | Qualcomm Incorporated | Dram with quick random row refresh for rowhammer mitigation |
US11222686B1 (en) | 2020-11-12 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for controlling refresh timing |
US11462291B2 (en) | 2020-11-23 | 2022-10-04 | Micron Technology, Inc. | Apparatuses and methods for tracking word line accesses |
US11264079B1 (en) | 2020-12-18 | 2022-03-01 | Micron Technology, Inc. | Apparatuses and methods for row hammer based cache lockdown |
KR102385443B1 (ko) * | 2020-12-21 | 2022-04-12 | 서울대학교 산학협력단 | 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법 |
US12099388B2 (en) * | 2020-12-22 | 2024-09-24 | Intel Corporation | Temperature-based runtime variability in victim address selection for probabilistic schemes for row hammer |
US11482275B2 (en) | 2021-01-20 | 2022-10-25 | Micron Technology, Inc. | Apparatuses and methods for dynamically allocated aggressor detection |
KR20220111444A (ko) * | 2021-02-02 | 2022-08-09 | 삼성전자주식회사 | 리프레쉬 동작을 수행하는 메모리 장치, 그 동작방법 및 메모리 시스템 |
KR20220120771A (ko) | 2021-02-23 | 2022-08-31 | 삼성전자주식회사 | 메모리 장치 및 그것의 동작 방법 |
US11600314B2 (en) | 2021-03-15 | 2023-03-07 | Micron Technology, Inc. | Apparatuses and methods for sketch circuits for refresh binning |
US11615829B1 (en) | 2021-04-29 | 2023-03-28 | Samsung Electronics Co., Ltd. | Memory device performing refresh operation based on a random value and method of operating the same |
US11631448B1 (en) | 2021-04-29 | 2023-04-18 | Samsung Electronics Co., Ltd. | Memory device performing refresh operation and method of operating the same |
KR20230021496A (ko) * | 2021-08-05 | 2023-02-14 | 삼성전자주식회사 | 로우 해머 제어 방법 및 메모리 장치 |
US11664063B2 (en) | 2021-08-12 | 2023-05-30 | Micron Technology, Inc. | Apparatuses and methods for countering memory attacks |
EP4138078A1 (en) * | 2021-08-18 | 2023-02-22 | ETH Zurich | A method for protecting a dram module against rowhammer attacks, and a dram module |
KR20230043618A (ko) | 2021-09-24 | 2023-03-31 | 삼성전자주식회사 | 로우 해머 제어 방법 및 메모리 장치 |
KR20230051873A (ko) | 2021-10-12 | 2023-04-19 | 삼성전자주식회사 | 해머 리프레시 로우 어드레스 검출기, 이를 포함하는 반도체 메모리 장치 및 메모리 모듈 |
KR20230071473A (ko) | 2021-11-16 | 2023-05-23 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 |
US11688451B2 (en) | 2021-11-29 | 2023-06-27 | Micron Technology, Inc. | Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking |
US12056371B2 (en) | 2021-12-01 | 2024-08-06 | Samsung Electronics Co., Ltd. | Memory device having reduced power noise in refresh operation and operating method thereof |
TW202324405A (zh) * | 2021-12-09 | 2023-06-16 | 南韓商三星電子股份有限公司 | 半導體記憶體裝置 |
US11990173B2 (en) * | 2022-06-02 | 2024-05-21 | Micron Technology, Inc. | Dynamic row hammering threshold for memory |
US12067270B2 (en) | 2022-06-02 | 2024-08-20 | Micron Technology, Inc. | Memory device security and row hammer mitigation |
US20240038291A1 (en) * | 2022-07-26 | 2024-02-01 | Micron Technology, Inc. | Selectable row hammer mitigation |
CN115906087B (zh) * | 2023-03-09 | 2023-07-07 | 长鑫存储技术有限公司 | 行锤攻击保护方法与存储器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181018A1 (en) * | 2007-01-25 | 2008-07-31 | Kabushiki Kaisha Toshiba | Memory system and control method thereof |
US20080259708A1 (en) * | 2007-02-07 | 2008-10-23 | Megachips Corporation | Memory controller |
WO2010085405A1 (en) * | 2009-01-22 | 2010-07-29 | Rambus Inc. | Maintenance operations in a dram |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
CN102592677A (zh) * | 2010-12-22 | 2012-07-18 | 索尼公司 | 存储装置和存储控制方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5193072A (en) | 1990-12-21 | 1993-03-09 | Vlsi Technology, Inc. | Hidden refresh of a dynamic random access memory |
US5920501A (en) * | 1997-12-12 | 1999-07-06 | Micron Technology, Inc. | Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks |
US6697909B1 (en) | 2000-09-12 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for performing data access and refresh operations in different sub-arrays of a DRAM cache memory |
KR100810060B1 (ko) | 2006-04-14 | 2008-03-05 | 주식회사 하이닉스반도체 | 반도체 메모리 소자 및 그의 구동방법 |
US20080151670A1 (en) * | 2006-12-22 | 2008-06-26 | Tomohiro Kawakubo | Memory device, memory controller and memory system |
TWI367486B (en) * | 2007-12-25 | 2012-07-01 | Ind Tech Res Inst | Memory device and refresh method thereof |
JP4843655B2 (ja) * | 2008-09-24 | 2011-12-21 | 株式会社東芝 | 半導体記憶装置 |
US8417252B2 (en) | 2008-10-24 | 2013-04-09 | Qualcomm Incorporated | Method and apparatus for interference reporting in a N-MIMO communication system |
US7990795B2 (en) * | 2009-02-19 | 2011-08-02 | Freescale Semiconductor, Inc. | Dynamic random access memory (DRAM) refresh |
US8560796B2 (en) | 2010-03-29 | 2013-10-15 | Freescale Semiconductor, Inc. | Scheduling memory access requests using predicted memory timing and state information |
US8284614B2 (en) | 2010-12-28 | 2012-10-09 | Hynix Semiconductor Inc. | Refresh control circuit and method for semiconductor memory device |
JP2012164045A (ja) | 2011-02-04 | 2012-08-30 | Seiko Epson Corp | メモリー制御装置 |
JP5629391B2 (ja) * | 2011-04-28 | 2014-11-19 | 株式会社日立製作所 | 半導体記憶装置及び半導体記憶装置の制御方法 |
JP2013004158A (ja) * | 2011-06-21 | 2013-01-07 | Elpida Memory Inc | 半導体記憶装置及びそのリフレッシュ制御方法 |
US9257169B2 (en) * | 2012-05-14 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory device, memory system, and operating methods thereof |
US8938573B2 (en) * | 2012-06-30 | 2015-01-20 | Intel Corporation | Row hammer condition monitoring |
US9236110B2 (en) * | 2012-06-30 | 2016-01-12 | Intel Corporation | Row hammer refresh command |
US9032141B2 (en) | 2012-11-30 | 2015-05-12 | Intel Corporation | Row hammer monitoring based on stored row hammer threshold value |
-
2012
- 2012-11-30 US US13/690,523 patent/US9032141B2/en active Active
-
2013
- 2013-06-28 KR KR1020157009730A patent/KR101731508B1/ko active IP Right Grant
- 2013-06-28 EP EP13858832.2A patent/EP2926344B1/en active Active
- 2013-06-28 JP JP2015544062A patent/JP5987234B2/ja active Active
- 2013-06-28 CN CN201380057057.9A patent/CN104737234B/zh active Active
- 2013-06-28 KR KR1020177011068A patent/KR20170046819A/ko not_active Application Discontinuation
- 2013-06-28 WO PCT/US2013/048634 patent/WO2014084917A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181018A1 (en) * | 2007-01-25 | 2008-07-31 | Kabushiki Kaisha Toshiba | Memory system and control method thereof |
US20080259708A1 (en) * | 2007-02-07 | 2008-10-23 | Megachips Corporation | Memory controller |
WO2010085405A1 (en) * | 2009-01-22 | 2010-07-29 | Rambus Inc. | Maintenance operations in a dram |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
CN102592677A (zh) * | 2010-12-22 | 2012-07-18 | 索尼公司 | 存储装置和存储控制方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107017015A (zh) * | 2015-11-06 | 2017-08-04 | 三星电子株式会社 | 执行基于请求的刷新的存储装置和存储系统及操作方法 |
CN107017015B (zh) * | 2015-11-06 | 2021-09-28 | 三星电子株式会社 | 执行基于请求的刷新的存储装置和存储系统及操作方法 |
CN108369819A (zh) * | 2015-12-09 | 2018-08-03 | 英特尔公司 | 在自刷新模式期间附加刷新操作的执行 |
CN108369819B (zh) * | 2015-12-09 | 2022-05-13 | 英特尔公司 | 在自刷新模式期间附加刷新操作的执行 |
CN107037983A (zh) * | 2016-10-07 | 2017-08-11 | 克劳帕斯科技有限公司 | 用于交叉点存储器阵列的存储器干扰恢复方案 |
CN108154895B (zh) * | 2016-12-06 | 2023-06-06 | 三星电子株式会社 | 执行锤击刷新操作和关联操作的存储器设备和存储器系统 |
CN108154895A (zh) * | 2016-12-06 | 2018-06-12 | 三星电子株式会社 | 执行锤击刷新操作和关联操作的存储器设备和存储器系统 |
CN110741436B (zh) * | 2017-05-24 | 2023-11-10 | 优普梅姆公司 | 用于具有集成处理器的dram的行锤效应校正逻辑模块 |
CN110741436A (zh) * | 2017-05-24 | 2020-01-31 | 优普梅姆公司 | 用于具有集成处理器的dram的行锤效应校正逻辑模块 |
CN112106138A (zh) * | 2018-05-24 | 2020-12-18 | 美光科技公司 | 用于行锤击刷新采样的纯时间自采用采样的设备和方法 |
CN112106138B (zh) * | 2018-05-24 | 2024-02-27 | 美光科技公司 | 用于行锤击刷新采样的纯时间自适应采样的设备和方法 |
CN112889113A (zh) * | 2018-09-07 | 2021-06-01 | 美光科技公司 | 用于存储器装置的行锤击保护 |
CN110942790B (zh) * | 2018-09-21 | 2021-12-03 | 南亚科技股份有限公司 | 目标行产生器、动态随机存取存储器以及目标行的判定方法 |
CN110942790A (zh) * | 2018-09-21 | 2020-03-31 | 南亚科技股份有限公司 | 目标行产生器、动态随机存取存储器以及目标行的判定方法 |
US11955158B2 (en) | 2018-10-31 | 2024-04-09 | Micron Technology, Inc. | Apparatuses and methods for access based refresh timing |
US11935576B2 (en) | 2018-12-03 | 2024-03-19 | Micron Technology, Inc. | Semiconductor device performing row hammer refresh operation |
US12002501B2 (en) | 2018-12-26 | 2024-06-04 | Micron Technology, Inc. | Apparatuses and methods for distributed targeted refresh operations |
CN111399757A (zh) * | 2019-01-03 | 2020-07-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111399757B (zh) * | 2019-01-03 | 2023-03-10 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110706733A (zh) * | 2019-08-13 | 2020-01-17 | 浙江工商大学 | 一种dram内存行扰动错误解决方法 |
US11631471B2 (en) | 2020-05-19 | 2023-04-18 | Changxin Memory Technologies, Inc. | Method for generating memory pattern, computer-readable storage medium and device |
CN113689902B (zh) * | 2020-05-19 | 2023-09-01 | 长鑫存储技术有限公司 | 生成存储器地址数据的方法、计算机可读存储介质及设备 |
WO2021232990A1 (zh) * | 2020-05-19 | 2021-11-25 | 长鑫存储技术有限公司 | 生成存储器地址数据的方法、计算机可读存储介质及设备 |
CN113689902A (zh) * | 2020-05-19 | 2021-11-23 | 长鑫存储技术有限公司 | 生成存储器地址数据的方法、计算机可读存储介质及设备 |
CN114999542A (zh) * | 2021-03-02 | 2022-09-02 | 慧与发展有限责任合伙企业 | 通过监测金丝雀单元检测存储器单元干扰的系统和方法 |
CN114999542B (zh) * | 2021-03-02 | 2024-04-02 | 慧与发展有限责任合伙企业 | 通过监测金丝雀单元检测存储器单元干扰的系统和方法 |
US12112787B2 (en) | 2022-04-28 | 2024-10-08 | Micron Technology, Inc. | Apparatuses and methods for access based targeted refresh operations |
US12125514B2 (en) | 2022-04-28 | 2024-10-22 | Micron Technology, Inc. | Apparatuses and methods for access based refresh operations |
CN115357952B (zh) * | 2022-10-18 | 2023-02-03 | 合肥奎芯集成电路设计有限公司 | 针对动态存储器的行锤攻击防御方法和装置 |
CN115357952A (zh) * | 2022-10-18 | 2022-11-18 | 合肥奎芯集成电路设计有限公司 | 针对动态存储器的行锤攻击防御方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR101731508B1 (ko) | 2017-05-11 |
EP2926344A4 (en) | 2016-11-23 |
US9032141B2 (en) | 2015-05-12 |
KR20150058366A (ko) | 2015-05-28 |
WO2014084917A1 (en) | 2014-06-05 |
US20140156923A1 (en) | 2014-06-05 |
JP5987234B2 (ja) | 2016-09-07 |
EP2926344A1 (en) | 2015-10-07 |
KR20170046819A (ko) | 2017-05-02 |
EP2926344B1 (en) | 2019-10-30 |
CN104737234B (zh) | 2018-07-24 |
JP2016504702A (ja) | 2016-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104737234A (zh) | 基于所存储的行锤击阈值的值的行锤击监视 | |
US10083737B2 (en) | Row hammer monitoring based on stored row hammer threshold value | |
US10210925B2 (en) | Row hammer refresh command | |
US9117544B2 (en) | Row hammer refresh command | |
US9299400B2 (en) | Distributed row hammer tracking | |
US9564201B2 (en) | Method, apparatus and system for responding to a row hammer event | |
US8996934B2 (en) | Transaction-level testing of memory I/O and memory device | |
CN107924705A (zh) | 存储器装置错误校验和清除模式以及错误透明度 | |
US20140085995A1 (en) | Method, apparatus and system for determining a count of accesses to a row of memory | |
CN105283918A (zh) | 使用多周期命令实现存储器装置访问的设备、方法和系统 | |
US20210366528A1 (en) | Memory controller and a method for controlling access to a memory module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |