CN111755047A - 用于行锤击缓解的主机协助的刷新命令控制 - Google Patents
用于行锤击缓解的主机协助的刷新命令控制 Download PDFInfo
- Publication number
- CN111755047A CN111755047A CN202010127858.XA CN202010127858A CN111755047A CN 111755047 A CN111755047 A CN 111755047A CN 202010127858 A CN202010127858 A CN 202010127858A CN 111755047 A CN111755047 A CN 111755047A
- Authority
- CN
- China
- Prior art keywords
- refresh
- memory
- commands
- row
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000116 mitigating effect Effects 0.000 title abstract description 101
- 230000015654 memory Effects 0.000 claims abstract description 318
- 230000004044 response Effects 0.000 claims abstract description 31
- 230000004913 activation Effects 0.000 claims description 75
- 238000001994 activation Methods 0.000 claims description 75
- 239000000872 buffer Substances 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 22
- 238000003860 storage Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 15
- 238000012546 transfer Methods 0.000 description 15
- 238000000034 method Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000013459 approach Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 12
- 238000012544 monitoring process Methods 0.000 description 11
- 230000008878 coupling Effects 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 9
- 238000005859 coupling reaction Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 2
- 102100031577 High affinity copper uptake protein 1 Human genes 0.000 description 2
- 101710196315 High affinity copper uptake protein 1 Proteins 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- UGFAIRIUMAVXCW-UHFFFAOYSA-N Carbon monoxide Chemical compound [O+]#[C-] UGFAIRIUMAVXCW-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 229910002092 carbon dioxide Inorganic materials 0.000 description 1
- 239000001569 carbon dioxide Substances 0.000 description 1
- 229910002091 carbon monoxide Inorganic materials 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 230000001766 physiological effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
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
- 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
-
- 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
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- 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/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- 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/40618—Refresh operations over multiple banks or interleaving
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
具有内部行锤击缓解的存储器设备耦合到存储器控制器。存储器控制器或主机可以通过发送附加的刷新周期或刷新命令来协助行锤击缓解。响应于额外的刷新命令,存储器设备可以执行针对行锤击缓解的刷新,而不是针对标准数据完整性的刷新。存储器控制器可以保持对发送到存储器设备的激活命令的数量的跟踪,并且响应于阈值数量的激活命令,存储器控制器发送附加的刷新命令。利用额外的刷新命令,存储器设备可以刷新潜在侵略者行的潜在受害者行,而不是仅仅刷新在一时间段内尚未被访问的行。
Description
技术领域
本描述总体上与计算机存储器系统有关,并且更特别地,本描述与行锤击(rowhammer)事件的缓解有关。
背景技术
随着计算机设备继续在大小上减小并且在容量和能力上增加,用于制造组件的最小设备几何尺寸也在继续减小。存储器设备几何尺寸上的减小实现了继续的系统扩展,但是由于行锤击或行干扰事件,这导致了数据丢失的可能性。“行锤击”指代由于在一时间段内对目标行或侵略者行(aggressor row)的重复访问所导致的故障。针对对侵略者行的访问的重复激活可能导致与目标/侵略者行相邻或邻近的受害者行(victim row)中的故障,其中目标行的重复激活会导致跨受害者行的通过闸(passgate)的电荷的迁移,从而导致受害者行的不确定状态。行锤击是DRAM(动态随机存取存储器)设备中的已知问题。
随着减少的设备几何尺寸,对可能导致行锤击事件的特定行的激活的数量已从500K变为300K,并且现在预计为100K,并且甚至减小到大约30K-50K个激活的范围。随着较少激活而引起的行锤击事件,在刷新窗口内,越多的行可能是侵略者,就需要越多的行锤击缓解来降低数据丢失的风险。
由存储器控制器管理的传统行锤击缓解在存储器控制器上带来了显著负担,并且存储器控制器与DRAM之间的管理的协调在存储器总线带宽上带来了负担。现在,大多数DRAM设备通常通过“窃取”用于执行行锤击刷新的刷新周期,来在内部处理行锤击缓解。因此,DRAM设备本身确定了由存储器控制器发出的多少刷新周期将用于行锤击缓解。
然而,随着行锤击阈值降低,存储器设备将需要在不损害设备中的数据完整性的情况下窃取比合理地可能取得的刷新更多的刷新。一个选项是增加刷新率。然而,即使在不需要行锤击刷新时,增加刷新率也将针对功率和带宽而在存储器子系统上提出恒定的要求。因此,由于在不存在行锤击状况时的过度刷新的风险,改变刷新率将是无效的。
附图说明
以下描述包括对附图的讨论,这些附图具有通过实现方式的示例给出的图示。附图应当作为示例而非作为限制来理解。如在本文中所使用的,对一个或多个示例的引用要被理解为描述本发明的至少一个实现方式中包括的特定特征、结构或特性。本文中出现的诸如“在一个示例中”或“在替代示例中”之类的短语提供了本发明的实现方式的示例,并且不一定全部指代相同的实现方式。然而,它们也不一定相互排斥。
图1是在主机协助下执行行锤击缓解的系统的实施例的框图。
图2是针对行锤击缓解刷新的过量外部刷新的命令定序(sequencing)的示例的时序图。
图3是存储器子系统的示例的框图,其中可以实现来自主机的额外外部刷新以协助行锤击缓解。
图4是用于跟踪不同存储器部分的行锤击缓解信息的多个计数器的示例的框图。
图5是支持主机协助的行锤击缓解的系统的命令真值表中的所选命令的示例的表示。
图6是用于主机协助的行锤击缓解的过程的示例的流程图。
图7是其中可以实现主机协助的行锤击缓解的存储器子系统的示例的框图。
图8是其中可以实现主机协助的行锤击缓解的计算系统的示例的框图。
图9是其中可以实现主机协助的行锤击缓解的移动设备的示例的框图。
随后是对某些细节和实现方式的描述,包括对附图的非限制性描述,该附图可能描绘了一些或所有示例、并且还有其他可能的实现方式。
具体实施方式
如本文中所描述,行锤击缓解是主机协助的并且是存储器设备管理的。存储器设备执行内部行锤击缓解,并且存储器控制器或主机可以通过发送附加的刷新周期或刷新命令来协助行锤击缓解。该系统可以跟踪针对发送附加刷新周期的需要,以防止用于不必要刷新的功率和带宽的使用。
例如,存储器控制器可以保持对发送到存储器设备的激活命令的数量的跟踪,并且响应于阈值数量的激活命令,存储器控制器发送附加刷新命令。响应于额外的刷新命令,存储器设备可以执行针对行锤击缓解的刷新,而不是针对标准数据完整性的刷新。利用额外的刷新命令,存储器设备可以刷新潜在侵略者行的潜在受害者行,而不是仅仅刷新在一时间段内尚未被访问的行。在这种实现方式中,存储器设备将具有可用于执行行锤击缓解的足够的刷新周期,但是根据需要,过量的(excess)周期仍然可能是有效的,而不是仅仅增加刷新率。额外的刷新命令可以被称为过量的刷新命令。在一个示例中,额外的刷新命令可以作为刷新管理(RFM)命令从被设计成解决行锤击问题的主机而发出。
主机控制器或存储器控制器向存储器设备(例如,动态随机存取存储器(DRAM)设备)发送附加刷新命令,以补偿行锤击缓解所需的额外刷新。通过针对标准刷新操作仍提供足够的刷新周期,提供附加刷新周期可以使得存储器设备能够在不损害数据完整性的情况下窃取周期。在一个示例中,存储器控制器通过已经向存储器设备发送了多少激活命令来确定要发送的额外刷新命令的数量。发送到存储器设备的激活的数量与存储器设备需要窃取以执行行锤击缓解的刷新的数量之间存在高相关性。
如所提供的主机协助的行锤击缓解可以消除主机控制器中针对目标行刷新(TRR)协议的需要。当控制器通过其自身的监测或通过来自存储器设备的信令而变得意识到潜在的行锤击事件时,就会发生TRR。在TRR的情况下,控制器可以发送指示目标行的特定刷新命令,并且存储器设备将刷新一个或多个受害者行。主机协助的行锤击缓解不需要控制器知道针对TRR命令的目标行。附加地,主机协助的行锤击缓解可以通过一般地观察激活的数量来简单地估计针对行锤击缓解的需要,而无需担心特定目标行是否是阈值数量的激活的主体。
主机协助的行锤击缓解使得决定要在存储器设备的控制下刷新什么行。刷新的内部操作中往往会有很大的余地,并且存储器设备制造商知道针对他们自己的设备的特定能力和需要,而不是仅仅在最坏的情况下进行操作。这种能力允许存储器设备以特定于设备或特定于制造商的方式来执行行锤击缓解和刷新控制。因此,例如,DRAM制造商知道他们可以在不影响数据完整性的情况下安全地窃取多少刷新,并且可以执行对于他们的特定设备有意义的任何缓解。
图1(WAS 1)是在主机协助下执行行锤击缓解的系统的实施例的框图。系统100包括耦合到存储器控制器110的存储器设备120,存储器控制器110也可以被称为主机控制器、或者仅仅称为控制器。存储器设备120可以包括具有存储器单元的相邻行的任何类型的存储器技术,其中可经由字线或等同物来访问数据。在一个示例中,存储器设备120包括DRAM技术。存储器设备120的行需要被刷新以维持确定性状态。
存储器设备120包括存储器阵列130,存储器阵列130表示存储器单元或存储单元的阵列。存储器单元存储数据位、或多级单元的多个位。存储器阵列130包括潜在行锤击情况的表示。出于示例的目的,存储器阵列130示出了存储体(bank)140和存储体150。应当理解的是,存储器阵列130可以包括多个存储体。通常,存储器的存储体或子存储体包括如下存储器单元:所述存储器单元可与另一存储体或子存储体的存储器单元分开寻址,并且因此对于存储器阵列130的另一部分是可并行访问的。存储器阵列130可以包括系统100中未图示的部分。
存储器设备120包括列解码器(dec)132,列解码器(dec)132表示基于访问命令将电荷应用到列的电路。在一个示例中,该电路响应于列地址选通(CAS)命令来选择列。存储器设备120包括行解码器(dec)134,行解码器(dec)134表示基于存储器访问命令将选择电压应用到行的电路。在一个示例中,该电路响应于行地址选通(RAS)命令来选择列。
存储器控制器110包括命令逻辑112,以生成针对存储器设备120的命令。命令可以包括诸如写命令或读命令之类的命令。命令还可以包括激活命令、预充电命令、刷新命令或其他命令。在一个示例中,存储器控制器110包括刷新逻辑172,刷新逻辑172表示用于控制存储器设备120的刷新的逻辑。刷新逻辑172可以包括一个或多个计数器以确定针对存储器设备120的刷新、以及用于跟踪刷新命令的发送的寄存器空间的需要。刷新命令可以包括外部刷新命令(例如,REF、REFpb),其中存储器设备根据来自存储器控制器110的时钟信号而继续操作。刷新命令可以包括自刷新命令(例如,SRE),其中存储器设备在内部时钟上操作而不是基于来自存储器控制器的时钟信号来操作。外部刷新具有用于完成命令的特定窗口,并且自刷新是存储器设备在非特定量的时间内可能所处的状态。
存储器控制器110包括调度器116,调度器116用于管理命令序列至存储器设备120的调度和发送。调度器116包括用于确定命令的次序、以及命令的时序要求的逻辑。存储器控制器110必须确定要发送什么命令。它还将确定命令的次序,以确保符合时序要求。调度器116可以使得存储器控制器110能够做出关于命令和时序的某些确定。在一个示例中,调度器116确定在刷新窗口期间要发送多少个外部刷新命令。调度器116可以生成额外的刷新命令以启用行锤击缓解。
在一个示例中,存储器控制器110包括行锤击(RH)逻辑174,用于使得控制器能够确定阈值数量的激活命令或激活何时已被发送到存储器设备120。例如,行锤击逻辑174可以包括一个或多个计数器或其他逻辑以监测潜在的行锤击状况。在一个示例中,行锤击逻辑174包括比较器,比较器用于确定激活计数器何时已达到阈值数量。在一个示例中,阈值数量是可编程的,诸如通过模式寄存器或其他寄存器或配置,诸如在寄存器122中可编程。存储器控制器110可以读取该配置并且将其存储在存储器控制器110内部的寄存器或其他设备(未具体示出)中。
存储器控制器110包括I/O(输入/输出)硬件114。I/O 114表示收发器和信号线接口硬件,以使得存储器控制器110能够通过一个或多个总线连接到存储器设备120。I/O 114使得存储器控制器110能够向存储器设备120发送命令。存储器控制器110包括缓冲器176,缓冲器176对要发送到存储器设备120的命令序列进行缓冲。在一个示例中,缓冲器176是调度器116的一部分。调度器116确定要发送的命令和命令的次序,然后这些命令可以在缓冲器176中排队等待以用于经由I/O 114进行传输。
为了说明行锤击状况,存储器阵列130在存储体140中包括目标行142。物理上邻近的行或物理上相邻的行基于在对该行的刷新操作之前的时间段内对目标行142的重复访问而可能遭受对该行中存储的一个或多个值的无意识编程或干扰。受害者行144表示当目标行142被重复访问时经受行锤击的行。当受害者行144处于行锤击事件的危险中时,目标行142可以被称为侵略者行。存储体140中可能存在作为针对目标行142的受害者行的另一行。
在一个示例中,存储体140还包括目标行146。考虑目标行146在存储体边界处或在存储体边界附近。应当理解的是,存储器阵列130中的行可以具有相同的间隔,即使这些行在不同的存储体中。而是,可以通过选择或解码硬件元件来定义一个存储体与另一个存储体的分离。因此,取决于行的物理布局的架构,在存储体150的边界上的行基于对目标行146的访问也可能处于行锤击事件的风险中。在一个示例中,对目标行的重复访问可能引起对多个相邻行的干扰。如所图示的,目标行146可能导致对存储体140的受害者行148和存储体150的受害者行152两者的行锤击事件。
存储器设备120包括与存储器控制器110的I/O 114对接的I/O 126。I/O 126具有至I/O 114的对应信号线以接收命令和地址信息,以便除其他命令之外还接收激活和刷新命令。在一个示例中,I/O 126包括至数据总线的接口,以便与存储器控制器110交换数据。
存储器设备120包括寄存器122,寄存器122表示一个或多个寄存器或存储位置,以存储与存储器设备120的操作有关的配置信息或值。在一个示例中,寄存器122包括一个或多个模式寄存器。在一个示例中,寄存器122包括配置信息,以控制在存储器设备120内部的刷新的应用。在一个示例中,寄存器122包括与行锤击操作有关的信息,诸如在行锤击状况之前的阈值数量的激活。
存储器设备120包括控制器180,该控制器180表示该存储器设备本地的控制器。控制器180包括响应于命令来执行操作的硬件逻辑。控制器180包括软件或固件逻辑,用于控制硬件逻辑并且控制存储器设备中的操作和操作序列。在一个示例中,控制器180包括刷新逻辑160。在一个示例中,控制器180包括RH计数器124。控制器180管理I/O 126。
在一个示例中,存储器设备120包括刷新逻辑160,刷新逻辑160表示存储器设备120内的用于管理存储器阵列130的刷新的逻辑。在一个示例中,刷新逻辑160包括刷新(ref)计数器162和行锤击(RH)逻辑164。刷新计数器162可以指示要刷新的行的地址。刷新计数器162可以表示多个计数器,这是因为不同的存储体或子存储体可能具有被标识用于刷新的不同地址。行锤击逻辑164使得存储器设备120能够管理行锤击缓解。行锤击逻辑164可以包括一个或多个计数器、列表或潜在的侵略者行、或用于执行行锤击缓解的其他逻辑。在一个示例中,行锤击缓解通过执行接收激活命令的最后行地址的潜在受害者行的刷新而发生。这种方法中涉及的启发性所认识到的是,当一行正被锤击时,其最有可能是如下行:该行的地址在接收到用于行锤击缓解的刷新命令之前刚刚接收到激活命令。平均而言,如果执行了足够的行锤击缓解操作,则这种方法应当刷新了潜在的受害者行。
在一个示例中,存储器设备120包括一个或多个行锤击(RH)计数器124。计数器124可以是或包括行锤击检测逻辑。在一个示例中,存储器设备120检测潜在的行锤击状况,并且执行操作以缓解与行锤击事件相关联的风险。在一个示例中,计数器124保持与被重复访问的一个或多个行相关联的计数。例如,计数器124可以保持在刷新窗口内具有最高激活计数的行的可选地址(addr)列表。刷新之后可以重置该计数。
应当理解的是,保持对每行的激活数量的跟踪将是不切实际的,这是因为在某些存储器设备中,每存储体将需要一百万个计数器或更多。存储器设备通常采用启发式方法或基于概率来执行以应用行锤击缓解。代替于跟踪所有行的激活,仅仅跟踪所选的行。当计数器达到阈值数量时,刷新逻辑160可以执行行锤击刷新。在这种实现方式中,每次新的行被激活时,可以替换最低计数。在一个示例中,计数器124保持具有最高数量的激活的行的列表,并且当接收到外部刷新命令时,针对具有最高数量的激活的该一个或多个行执行行锤击缓解。由此,在执行行锤击刷新缓解之前,刷新逻辑160不一定要进行等待直到达到阈值数量为止。
另一种启发式技术是针对随机选择的已接收到激活的行来随机分配行锤击刷新。这种实现方式可能仅需要计数器124可选地存储最近激活的行的地址。理论上,被重复激活的行将具有更高可能性被随机选择用于行锤击缓解刷新。因此,在概率上,被重复访问或锤击的行也是更有可能被选择用于行锤击缓解的行。这种方法的逻辑和电路要求比保持行的列表所需的逻辑和电路要求更简单,但是在行锤击缓解方面较不精确。
刷新逻辑160表示存储器设备120内的用于控制存储器阵列130内的行的刷新的逻辑。刷新逻辑160响应于由存储器控制器110的刷新逻辑172发送的外部刷新命令。刷新逻辑160在存储器设备120的自刷新操作期间控制刷新的操作。刷新逻辑160包括刷新(ref)计数器162,以跟踪针对所调度的刷新操作的行地址。所调度的刷新操作包括对连续行的刷新,以确保在刷新时段内刷新所有行。存储器控制器110的刷新逻辑160负责确保为存储器设备120调度足够的刷新操作以满足刷新要求。
在一个示例中,刷新逻辑172将调度比在刷新时段内必要的刷新操作更多的刷新操作。如所描述的,基于发送到存储器设备120的激活的数量,行锤击逻辑174可以为刷新逻辑160提供额外或过量的刷新以用于行锤击缓解。应当理解的是,利用由存储器控制器110提供的附加的行锤击缓解刷新,即使启发式方法也将显著降低由于行锤击而导致的数据丢失的可能性。
在一个示例中,刷新逻辑160包括行锤击逻辑164,以提供用于行锤击缓解的刷新操作。行锤击缓解指代对潜在受害者行的刷新以避免行干扰。在操作中,计数器124可以向行锤击逻辑164指示目标行,这可以触发由刷新逻辑160进行的“刷新窃取”。刷新窃取指代:刷新逻辑160执行与所指示的目标行相关联的受害者行的刷新,而不是执行刷新计数器162中指示的行的刷新。因此,行锤击缓解刷新操作相对于刷新行指针或计数器是无序的。行锤击缓解可以包括窃取整个刷新操作或刷新周期的所有刷新,或者仅仅窃取刷新操作的一个或多个刷新。针对被加标签或指示为行锤击刷新的命令(在下文中更详细地描述),或者当刷新逻辑160确定刷新命令在时间上与达到激活阈值相对应时,该逻辑可以确定使用所有周期以用于行锤击缓解是安全的。
响应于外部刷新命令,存储器设备120通常执行多个行的刷新。刷新操作指代对响应于单个刷新命令而将被刷新的所有行的刷新。刷新操作具有时间tRFC(行刷新周期时间),并且在刷新时段或刷新窗口中的刷新操作之间将存在tREFI(刷新间隔时间)的平均刷新间隔。刷新时段指代对任何给定行的用于避免该行中的数据丢失的刷新之间的时间。刷新可以指代响应于刷新命令而将被刷新的所有行中的单个行的刷新,并且由于单个刷新操作包括多个刷新,因此该刷新具有少于tRFC的时间。
应当理解的是,在相同存储体中可以存在多个目标行,诸如存储体140中所图示的那些。随着由于引起行干扰所需的激活的数量继续减少而导致行锤击的临界数量减少,潜在的侵略者行的数量将增加。因此,每个刷新时段所需的行锤击缓解操作的数量继续增加。为了允许更多的行锤击缓解操作,存储器控制器110特别地基于确定已经发送了多少激活命令来发送更多的外部刷新命令。刷新(无论是外部刷新还是内部刷新)是存储器控制器和存储器设备可以确保将不存在对行的访问的唯一时间。应当理解的是,不同的存储体可以在不同的时间处被刷新,并且因此在不同的时间处不可用于访问。可以访问没有正在被刷新的存储体,并且因此调度器116将管理不同存储体的刷新的调度。
存储器控制器110的行锤击逻辑174可以保持对发送到存储器设备120的激活命令的数量的跟踪,以触发附加刷新命令的发送。这种机制比使存储器设备120保持对附加刷新的需要的跟踪并且尝试向存储器控制器发送信号要简单得多。当行锤击逻辑174保持对针对发送过量刷新的阈值的跟踪时,可以基于可配置参数(诸如激活阈值)来执行操作。这种方法实现了针对不同的操作条件、针对不同的设备或制造商、或其他变量的可配置性,这些变量可能影响对附加行锤击缓解的需要。
行锤击逻辑174的操作可以针对不同的实现方式而变化。在一个示例中,每当已经达到可编程阈值时,行锤击逻辑174就发送附加的刷新命令,而与时间窗口无关。在一个示例中,行锤击逻辑174仅当在特定时间段内已经达到该计数时才发送附加刷新。例如,可以针对每个正常的刷新时段来重置该计数,并且该计数将仅在刷新窗口内达到阈值的情况下才触发附加的外部刷新。
在一个示例中,用于发送附加刷新命令的感兴趣时段是滑动窗口。可以例如通过使用漏桶(leaky bucket)方法来设置滑动窗口。在漏桶方法中,行锤击逻辑174可以响应于每个激活命令而使计数递减(或递增,这取决于该方法)。在递减方法中,在计数上达到零可以触发附加刷新的发送。在一个示例中,行锤击逻辑174将在时间的基础上递减,以产生每μs(微秒)的激活的标称速率,这将不会引起任何附加的刷新周期。在这种方法中,仅检测到高于该标称速率的周期将使行锤击逻辑174发送额外的刷新。这种方法可以基于如下假设:仅特定时间内的激活的速率将会触发行锤击事件,而不仅仅是总的激活将会触发行锤击事件。
在计数器增加(counter up)的方法中,刷新可以在子刷新时段上发生,子刷新时段可以是例如正常刷新时间的1/4或1/2。因此,每个固定时段行锤击逻辑174可以触发额外刷新命令的发送。考虑100,000个引起行干扰的示例,行锤击逻辑174可以在80k个激活或60k个激活或低于行干扰值的某个其他可编程计数之后触发附加刷新命令的发送。
发送额外刷新的时序可以用多个不同方式中的任一个来调整。在一个示例中,通过可编程性或配置来调整额外刷新的频率。在一个示例中,额外刷新的频率取决于执行额外刷新监测的方式。可以通过监测的方法以及可编程性的组合来调整频率。如上所描述,监测的方法取决于是响应于检测到阈值数量的激活而不论时间窗口、还是响应于检测到固定时间窗口内的多个激活、还是响应于检测到滑动窗口内的多个激活来发送额外的刷新。在一个示例中,该时间段是可编程的,而不是固定在刷新时段处。在一个示例中,滑动窗口是可编程的。在漏桶方法的一个示例中,漏桶填充的速率是可编程的。
行锤击缓解跟踪的粒度可以取决于实现方式。跟踪的粒度将在下面被更详细地描述。通常,粒度取决于执行监测的级别。在一个示例中,监测是以设备级别来执行的。在一个示例中,监测是以通道级别来执行的。在一个示例中,监测是以排(rank)来执行的。在一个示例中,监测是以存储体群组来执行的。在一个示例中,监测是以存储体来执行的。
图2是针对行锤击缓解刷新的过量外部刷新的命令定序的示例的时序图。示图200表示在行锤击缓解情况下的刷新的时序图。示图200表示主机或存储器控制器与相关联的存储器设备之间的多个互连,以及存储器设备内的某些内部功能。通过一个或多个信号线来提供该互连。
CLK 210表示系统的时钟,并且图示了时钟(CK_t)和补码(CK_c)两者。对于示图200的示例,时钟是实线信号,其具有箭头以指示上升沿。补码被图示为虚线。CA 212表示在C/A信号线上发送的命令/地址(C/A)信号,并且指示由主机提供的命令编码。CMD 216表示对命令编码的解码,并且因此可以表示存储器设备内部的针对被生成以执行该命令的操作的信号。RH CTR 214表示存储器控制器的行锤击计数器。刷新218表示存储器设备内的刷新的操作。
CA 212在220处图示了REF命令。刷新命令表示来自存储器控制器的标准外部刷新命令。在222处,存储器设备将该命令解释为CMD 216上的外部(EXT)刷新命令,并且在224处生成内部操作以实现刷新。刷新218图示了刷新命令的序列,其可以包括CTR0、接着是CTR1的REF,并且依此类推,直到与外部刷新命令相对应的行被刷新为止。CTR0和CTR1表示用于指示要刷新哪个行的值,该值可以是用于跟踪内部刷新操作的计数器或指针。在未具体图示的一个示例中,存储器设备将窃取一个或多个刷新周期以执行行锤击缓解刷新。
虚线226表示时间中断(break)。CA 212在228处图示了ACT命令。在一个示例中,在该ACT命令之后是行锤击计数器214在230处执行行锤击递增(RH INCR)。该递增表示由存储器控制器对激活命令的跟踪,尽管应当理解的是,取决于行锤击缓解跟踪的实现方式,该递增可替代地可以是递减。该激活命令之后,在CMD 216上还进行一个或多个内部操作,以在232处执行激活命令。在一个示例中,在234处,存储器设备还在刷新218上跟踪该激活命令的行锤击影响。应当理解的是,除了在由伴随该激活命令的地址所指示的行上执行该激活命令之外,还进行行锤击跟踪。在保持对用于行锤击缓解的多个计数器的跟踪的系统中,行锤击跟踪可以包括更新计数器信息。
虚线236表示时间中断。CA 212在238处图示了随后的ACT命令。将观察到的是,该随后的激活命令可以触发如下操作:该操作与在240处的在行锤击计数器214上的RH INCR、在242处的在CMD 216上的ACT、以及在244处的在刷新218上的RH跟踪所图示的操作相同。从该部分应当理解的是,当接收到激活命令时,存储器控制器可以跟踪它们,但是除非已经达到阈值,否则存储器控制器可能不触发行锤击缓解。
虚线246表示时间中断。在该时间中断之后,无论在CA 212上可能发生什么,在一个示例中,在执行漏桶方法以进行行锤击检测的系统中达到了时间阈值。响应于达到该时间,在一个示例中,在248处,存储器控制器在行锤击计数器214上执行行锤击递减(RHDECR)。
虚线250表示时间中断。CA 212在252处图示了随后的ACT命令。将观察到的是,该随后的激活命令触发了针对行锤击缓解的阈值。因此,当在254处在行锤击计数器254上发生RH INCR时,存储器控制器确定触发额外的刷新命令。响应于CA 212上的ACT,存储器设备对该激活操作进行解码,如在256处在CMD 216上图示的那样,并且在258处在刷新218上的RH跟踪执行内部行锤击跟踪。响应于阈值激活命令,在激活命令之后的某个点处,在CA 212上,存储器控制器在260处发送行锤击刷新命令(RH REF)。尽管被图示成与触发了行锤击状况的ACT命令相邻,但是该刷新命令可能会或可能不会直接与ACT命令相邻地发送。在一个示例中,例如通过检测该状况、调度REF命令并且将其缓冲以便发送到存储器设备的存储器控制器中的逻辑,来将REF命令与ACT命令相邻地发送。
在其中激活命令触发了行锤击缓解的情况下,CMD 216在262处图示了由存储器设备进行的行锤击缓解(RH MIT)选择。行锤击缓解选择可以包括存储器设备选择用于刷新的受害者行。响应于对一个或多个受害者行的选择,在264处,存储器设备可以在刷新218上执行由RH REF表示的行锤击缓解刷新。刷新是存储器设备将被确保主机将不会尝试访问该存储器设备的唯一时间,这允许该存储器设备在行锤击受害者上执行刷新,而不是根据刷新计数器来执行刷新。因此,在刷新周期期间执行的行锤击缓解刷新提供了如下操作:该操作被保证免于存储器设备进行的其他操作、或存储器控制器进行的尝试访问。
图3是存储器子系统的示例的框图,其中可以实现来自主机的额外外部刷新以协助行锤击缓解。系统300表示计算系统的元件。系统300提供了可以包括系统100的系统的示例。可以认为系统300具有带有存储器控制器320和存储器330的存储器子系统。主机310表示控制该存储器子系统的硬件平台。主机310包括一个或多个处理器312(例如,中央处理单元(CPU)或图形处理单元(GPU)),该处理器312生成针对存储在存储器330中的数据的请求。
主机310包括存储器控制器320,存储器控制器320可以被集成到处理器设备上。存储器控制器320包括I/O(输入/输出)326以连接到存储器330。I/O包括连接器、信号线、驱动器和其他硬件,以将存储器设备与主机310进行互连。I/O 326可以包括由命令(CMD)总线314表示的命令I/O、以及由DQ(数据)总线表示的数据I/O(未具体图示)。CMD总线314包括使得存储器控制器320能够向存储器330发送命令的命令信号线,该命令包括激活命令(ACT)和刷新命令(REF)。
存储器控制器320包括命令(CMD)逻辑322,该逻辑322用于响应于处理器312的操作来生成针对存储器的命令。该命令可以是用于数据访问的命令(诸如,读取、写入、刷新或其他命令),或者是用于配置的命令(诸如,模式寄存器命令)。存储器控制器320包括调度器324,调度器324用于对何时以操作序列来发送命令进行调度。调度器324可以根据已知时序来控制I/O的时序,以改进I/O将没有错误的机率。该时序是通过训练来设置的。
存储器330可以包括单独的存储器设备,或者可以表示存储器模块。系统300图示了存储器330中的存储器设备的两个排,排[0]和排[1]。排指代共享选择线(例如,CS信号线)的存储器设备的集合或群组。因此,某个排中的存储器设备将并行执行操作。排[0]和排[1]被图示为包括N个DRAM设备或DRAM。通常,具有多个排的系统在每一个排中将具有相同数量的DRAM。
排[0]的DRAM[0]和排[1]的DRAM[0]被示出为包括I/O 332、控制(CTRL)336和寄存器(REG)334。这种组件将被理解为也被包括在其他DRAM中。I/O 332表示相当于存储器控制器320的I/O 326的连接硬件。I/O 332实现了DRAM到存储器控制器320的连接。寄存器334表示DRAM内的一个或多个寄存器,这些寄存器包括一个或多个配置寄存器,诸如模式寄存器。寄存器334可以存储配置信息、以及存储确定由DRAM响应于命令和数据信号线上的信号进行的操作的模式的信息。在一个示例中,DRAM包括用于存储可编程的值以指示行锤击缓解阈值的寄存器334。
控制逻辑336表示DRAM内的控制组件,用于解码和执行命令以及访问操作。控制336使DRAM实行执行由存储器控制器320发起的访问所需的内部操作。在一个示例中,DRAM包括行锤击(RH)逻辑338,行锤击(RH)逻辑338表示与本文中所描述的那些一致的行锤击逻辑。在一个示例中,行锤击逻辑338是控制逻辑336的一部分。行锤击逻辑338使得DRAM能够确定如何执行刷新以管理行锤击缓解。例如,行锤击逻辑338可以控制刷新周期窃取以执行行锤击缓解。
在一个示例中,存储器控制器320包括一个或多个行锤击计数器(RH CTR)328,以监测行锤击缓解的状况。在一个示例中,计数器328检测发送到存储器330的激活命令的数量。跟踪被调度以发送到存储器330的命令可以是如下内容的良好指示符:对于行锤击缓解而言,可能何时需要额外的刷新。
在一个示例中,存储器控制器320包括足以提供系统300中期望的跟踪粒度级别的多个计数器328。最高的粒度是通道。系统300未具体图示第二通道。通道指代连接到相同命令总线的所有存储器设备。命令总线314连接到所有图示的DRAM设备,并且因此被假设为单个通道。
DRAM设备被图示为具有多个存储体(存储体[0:7])。应当理解的是,八个存储体是一个示例,而不是限制性的。其他系统可以包括4个存储体、16个存储体、32个存储体、或一些其他数量的存储体。从寻址的角度来看,二进制数的存储体是简单的,但是对于操作目的而言不是必需的,并且可以使用任何数量的存储体。存储体340可以用作分离的存储体,它们可通过存储体编号而被分离地寻址。在一个示例中,存储体340被组织在存储体群组中,诸如作为BG0(存储体群组0)的存储体[0:3]和作为BG1的存储体[4:7]。存储体群组可以替换地是例如具有存储体[0,2,4,6]的BG0,或一些其他分组。例如,存储体群组通常可以被分离地访问,并且可以实现比起对相同存储体群组中的存储体进行背对背(back to back)访问更短的访问时间。
较低的粒度级别可以是排的级别,其中可以分离地跟踪每个排。额外的刷新命令将仅被发送到被检测到具有阈值数量的激活命令的排。另一个粒度级别可以是用于存储器设备管芯或封装的管芯基础或封装。这种级别可以为系统300提供平衡,这是因为由存储器控制器320进行的跟踪将与由DRAM设备执行的跟踪相匹配。如前所述,额外的刷新可以被限制为在需要时发送,并且仅发送给被检测到需要额外刷新的(一个或多个)设备。
较低的粒度级别(更精细的粒度)可以基于存储器330的特定DRAM技术的刷新命令的粒度。例如,不同的DRAM技术可以基于存储体组、存储体群组或在每个存储体的基础上执行刷新。存储体指代在行和列解码器的情况下一起被寻址的行的群组。存储体群组指代可以基于存储体群组地址、基于存储体群组解码器一起被访问的存储体的群组。存储体组可以指代在存储体群组中具有共同存储体地址的存储体群组之中的存储体的标识。
更精细的粒度的优点是,额外的刷新命令将仅被发送到受影响的区域,而不是整个芯片或通道。更精细的粒度的缺点是存储器控制器320中的附加跟踪逻辑,诸如计数器328。无论使用什么粒度级别,额外的刷新命令都仅被发送到针对其检测到激活阈值的特定段。
在允许每个存储体或存储体组刷新的DRAM设备的当前实现方式中,由于存在共同的行计数器,因此通常不允许对特定存储体或存储体组进行额外的刷新。所描述的行锤击缓解的实现方式可以要求针对典型规则的例外,其中DRAM可以检测对特定存储体组或存储体的额外刷新,并且将其用于行锤击缓解。
图4是用于跟踪不同存储器部分的行锤击缓解信息的多个计数器的示例的框图。系统400表示根据本文中的任何示例的存储器控制器的元件。系统400包括调度器430,以调度命令并且将命令发送到存储器设备。
在一个示例中,系统400包括多个行锤击计数器410。系统400图示了N个计数器,其中N是表示针对行锤击状况要跟踪的元件的数量的值。例如,如果针对行锤击缓解的监测的级别发生在存储器设备管芯的级别处,则N可以等于连接到存储器控制器的设备管芯的数量。
在一个示例中,系统400包括行锤击解码器420,行锤击解码器420可以从计数器410确定存储器的哪个部分要发送额外的刷新命令。行锤击解码器420可以确保调度器430针对指示潜在行锤击状况的计数器调度额外的刷新。应当理解的是,跟踪的粒度越精细,存储器控制器就将需要越多的计数器410来标识行锤击缓解状况。
图5是支持主机协助的行锤击缓解的系统的命令真值表中的所选命令的示例的表示。命令表700图示了根据本文中的任何描述的针对执行行锤击缓解刷新的存储器设备的命令编码的示例。
对于命令表500而言,命令总线信号可以包括用于芯片选择的CS,以及被标识为CA[0:13]的多个CA(命令/地址)信号。CA信号线的数量可以比所描绘的数量更多或更少。针对信号线值的解释可以如下所示:BG=存储体群组地址;BA=存储体地址;R=行地址;C=列地址;BC8=突发突变(burst chop)8;MRA=模式寄存器地址;OP=操作码;CID=芯片标识符;CW=控制字;H=逻辑高;L=逻辑低;X=不用在意,或者信号具有什么状态无关紧要,并且信号可能是浮动的;以及,V=有效,意指任何有效信号状态,或者更具体地为高或低。
ACT表示可以在存储器阵列访问中使用的激活命令。如上所指示,等于或高于阈值的激活数量可能导致行锤击事件。在一个示例中,存储器控制器对激活的数量进行计数,并且发送额外的刷新命令来为存储器设备提供附加的刷新周期,以便能够执行行锤击缓解。
命令表500包括刷新全部(Refresh All)命令REF,以刷新所有行。REF命令使存储器设备根据刷新计数器中指示的行地址来对行进行刷新。在一个示例中,根据上面描述的内容,存储器设备可以根据刷新计数器无序地对行进行刷新,以便对处于由于行锤击事件所致的数据丢失风险中的受害者行执行刷新。存储器设备对所选行执行随机化。
在一个示例中,命令表500包括刷新相同存储体(refresh same bank)REFsb命令,以刷新不同群组中的相同存储体。在一个示例中,存储器设备可以根据REF或REFsb命令来执行行锤击缓解刷新作为所窃取的刷新周期。在一个示例中,命令表500包括自刷新入口(self refresh entry)SRE命令,以使存储器设备进入低功率状态并执行自刷新。应当理解的是,SRE是与REF或REFsb不同的命令类型。REF和REFsb命令可以被称为外部刷新命令。
在一个示例中,存储器控制器对一个或多个刷新命令加标签,以将其标记为额外的刷新或行锤击刷新命令。存储器设备可以检测到该位,并且从其中确定该刷新命令旨在用于行锤击缓解。在一个示例中,可以用报头或其他位来扩展刷新命令,以指示行锤击缓解。将观察到的是,对于命令表500而言,存在如区域510所标示的仅需要有效信号以遵守命令编码的位CA8和CA9。由此,这些位可以用作标签,例如其中存储器控制器设置这些位中的一个的值以指示行锤击缓解刷新,并且存储器设备检测该位的逻辑值以确定其是否是标准刷新命令或行锤击刷新命令。在一个示例中,被修改为在位中具有可允许的信息但是不在存储器设备规范下被引导(诸如,在双倍数据速率(DDR)标准下的CA8和CA9)的命令可以被认为是刷新管理命令。
应当理解的是,所图示的加标签仅仅是一个可能的示例。存在其他方法可以将命令加标签为用于行锤击缓解。
图6是用于主机协助的行锤击缓解的过程的示例的流程图。根据本文中的任何示例,过程600可以由具有主机协助的行锤击缓解的系统来实现。
在一个示例中,在602处,存储器控制器确定是否存在要发送到存储器设备的激活命令。如果存在激活命令——602“是”分支,则存储器控制器可以在604处使计数器递增。在一个示例中,如果未检测到激活命令——602“否”分支,则存储器控制器不使计数器递增。
在针对激活命令进行检查之后,在一个示例中,存储器控制器在606处确定是否存在计时器超时。在一个示例中,如果存在计时器超时——606“是”分支,则存储器控制器使计数器递减。这种实现方式可以被称为漏桶实现方式,以创建用于针对行锤击状况进行检查的滑动窗口。在漏桶方法中,检测到激活命令使计数器递增,而计时器超时使计数器递减。该递减可以是单个递减,这取决于计时器超时的频率,或者针对较慢计数器以多个单位来进行。如果未检测到时间超时——606“否”分支,则计数器不改变。
在一个示例中,在针对激活命令进行检查以及计时器超时之后,存储器控制器可以在608处确定计数器是否超过其限制,该限制指示已经达到阈值。在一个示例中,如果达到阈值,则存储器控制器在610处发送附加的刷新命令并且重置计数器。在一个示例中,如果计数器尚未达到阈值,则存储器系统在602处继续针对激活命令进行监测。
图7是其中可以实现主机协助的行锤击缓解的存储器子系统的示例的框图。系统700包括处理器以及计算设备中的存储器子系统的元件。系统700可以根据图1的系统100的示例。
在一个示例中,存储器设备740包括行锤击逻辑780,行锤击逻辑780表示使得存储器设备能够在该存储器设备内部管理行锤击缓解的行锤击逻辑。在一个示例中,根据本文中提供的任何示例,存储器控制器720包括用于提供主机协助的行锤击缓解的行锤击逻辑790。行锤击逻辑790使得该控制器能够发送额外的刷新命令,以使得存储器设备740能够经由行锤击逻辑780来执行对潜在受害者行的刷新。
在一个示例中,存储器模块770表示DIMM,并且包括寄存器(例如,RDIMM或带寄存器的DIMM)。在一个示例中,存储器模块770包括可分离寻址的多个缓冲器。在RDIMM中,该寄存器对C/A总线进行缓冲,但是数据线可以被缓冲。如本文中所描述的命令总线特定的PDA操作可以在具有或不具有寄存器或缓冲器或带寄存器的时钟设备的系统700中被利用。
处理器710表示可以执行操作系统(OS)和应用的计算平台的处理单元,其可以被统称为存储器的主机或用户。OS和应用执行导致存储器访问的操作。处理器710可以包括一个或多个分离的处理器。每个分离的处理器都可以包括单个处理单元、多核处理单元或其组合。处理单元可以是主处理器(诸如CPU(中央处理单元))、外围处理器(诸如GPU(图形处理单元))或其组合。存储器访问也可以由诸如网络控制器或硬盘控制器之类的设备来发起。这种设备可以与某些系统中的处理器集成在一起,或者经由总线(例如PCI Express)连接到处理器,或其组合。系统700可以被实现为SOC(片上系统),或者可以在独立组件的情况下被实现。
对存储器设备的引用可以适用于不同存储器类型。存储器设备通常指代易失性存储器技术。易失性存储器是如下存储器:如果至该设备的功率被中断,则其状态(以及因此存储在其上的数据)是不确定的。非易失性存储器指代如下存储器:即使至该设备的功率被中断,其状态也是确定的。动态易失性存储器需要刷新存储在该设备中的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器),或者一些变体(诸如同步DRAM(SDRAM))。如本文中所描述的存储器子系统可以与多个存储器技术兼容,诸如DDR4(DDR版本4,JESD79,在2012年9月由JEDEC公开的初始规范)、LPDDR4(低功率DDR版本4,JESD209-4,由JEDEC在2014年8月原始公开),WIO2(宽I/O 2(WideIO2)、JESD229-2,由JEDEC在2014年8月原始公开)、HBM(高带宽存储器DRAM,JESD235A,由JEDEC在2015年11月原始公开),DDR5(DDR版本5,当前由JEDEC讨论中)、LPDDR5(当前由JEDEC讨论中)、HBM2((HBM版本2),当前由JEDEC讨论中)和/或其他、或存储器技术的组合、以及基于这种规范的派生物或扩展的技术。
除了易失性存储器之外或作为易失性存储器的可替换方案,在一个示例中,对存储器设备的引用可以指代即使至该设备的功率被中断其状态也是确定的非易失性存储器设备。在一个示例中,该非易失性存储器设备是块可寻址存储器设备,诸如NAND或NOR技术。因此,存储器设备还可以包括下一代非易失性设备,诸如三维交叉点存储器设备、其他字节可寻址非易失性存储器设备、或使用硫族化物相变材料(例如硫族化物玻璃)的存储器设备。在一个示例中,该存储器设备可以是或包括多阈值级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、具有开关的相变存储器(PCMS)、电阻型存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、合并了忆阻器技术的磁阻型随机存取存储器(MRAM)存储器、或自旋转移力矩(STT)-MRAM、或上面的任一个的组合、或其他存储器。
在本文中涉及“RAM”或“RAM设备”的描述可以适用于允许随机存取的任何存储器设备,无论是易失性的还是非易失性的。涉及“DRAM”或“DRAM设备”的描述可以指代易失性随机存取存储器设备。存储器设备或DRAM可以指代管芯本身,指代包括一个或多个管芯的经封装的存储器产品,或其两者。在一个示例中,具有需要被刷新的易失性存储器的系统还可以包括非易失性存储器。
存储器控制器720表示用于系统700的一个或多个存储器控制器电路或设备。存储器控制器720表示响应于处理器710对操作的执行而生成存储器访问命令的控制逻辑。存储器控制器720访问一个或多个存储器设备740。存储器设备740可以是根据以上提到的任一个的DRAM设备。在一个示例中,存储器设备740被组织并且管理为不同的通道,其中每个通道都耦合至总线和信号线,该总线和信号线并行耦合至多个存储器设备。每个通道可独立地操作。因此,独立地访问和控制每个通道,并且对于每个通道来说,时序、数据传递、命令和地址交换以及其他操作是分离的。耦合可以指代电耦合、通信耦合、物理耦合或它们的组合。物理耦合可以包括直接接触。电耦合包括接口或互连,该接口或互连允许组件之间的电流动,或允许组件之间的信号通知,或其两者。通信耦合包括使得组件能够交换数据的连接(包括有线或无线连接)。
在一个示例中,由分离的模式寄存器或其他寄存器设置来控制每个通道的设置。在一个示例中,每个存储器控制器720管理分离的存储器通道,尽管系统700可以被配置成具有由单个控制器管理的多个通道、或者在单个通道上具有多个控制器。在一个示例中,存储器控制器720是主机处理器710的部分,诸如在与处理器相同的管芯上实现的逻辑、或在与处理器相同的封装空间中实现的逻辑。
存储器控制器720包括I/O接口逻辑722,用于耦合到诸如上面提到的存储器通道之类的存储器总线。I/O接口逻辑722(以及存储器设备740的I/O接口逻辑742)可以包括引脚、焊盘、连接器、信号线、迹线或线、或用于连接设备的其他硬件、或这些的组合。I/O接口逻辑722可以包括硬件接口。如所图示的,I/O接口逻辑722至少包括用于信号线的驱动/收发器。通常,集成电路接口内的线与焊盘、引脚或连接器耦合,以对接设备之间的信号线或迹线或其他线。I/O接口逻辑722可以包括驱动器、接收器、收发器、或终结装置(termination)、或其他电路或电路组合,以在设备之间的信号线上交换信号。信号交换包括发送或接收中的至少一个。虽然被示出为将I/O 722从存储器控制器720耦合到存储器设备740的I/O 742,但是应当理解的是,在其中并行访问存储器设备740的群组的系统700的实现方式中,多个存储器设备可以包括至存储器控制器720的相同接口的I/O接口。在包括一个或多个存储器模块770的系统700的实现方式中,除了存储器设备自身上的接口硬件之外,I/O 742还可以包括存储器模块的接口硬件。其他存储器控制器720将包括至其他存储器设备740的分离的接口。
存储器控制器720与存储器设备740之间的总线可以被实现为将存储器控制器720耦合到存储器设备740的多个信号线。总线通常可以包括至少时钟(CLK)732、命令/地址(CMD)734、以及写数据(DQ)和读数据(DQ)736、以及零个或多个其他信号线738。在一个示例中,存储器控制器720与存储器之间的总线或连接可以被称为存储器总线。针对CMD的信号线可以被称为“C/A总线”(或ADD/CMD总线,或指示命令(C或CMD)和地址(A或ADD)信息的传递的一些其他名称),并且针对写和读DQ的信号线可以被称为“数据总线”。在一个示例中,独立通道具有不同的时钟信号、C/A总线、数据总线和其他信号线。因此,在独立接口路径可以被认为是分离的总线的意义上,系统700可以被认为具有多个“总线”。应当理解的是,除了明确示出的线之外,总线还可以包括选通信令线、警报线、辅助线或其他信号线、或其组合中的至少一个。还应当理解的是,串行总线技术可以用于存储器控制器720与存储器设备740之间的连接。串行总线技术的一个示例是通过每个方向上的单个差分信号对在嵌入式时钟的情况下对高速数据的传输以及8B10B编码。在一个示例中,CMD 734表示与多个存储器设备并行共享的信号线。在一个示例中,多个存储器设备共享CMD 734的编码命令信号线,并且均具有分离的芯片选择(CS_n)信号线以选择各个存储器设备。
应当理解的是,在系统700的示例中,存储器控制器720与存储器设备740之间的总线包括辅助命令总线CMD 734和用于承载写和读数据的辅助总线DQ 736。在一个示例中,数据总线可以包括针对读数据和针对写/命令数据的双向线。在另一个示例中,辅助总线DQ736可以包括针对从主机到存储器的写入和数据的单向写入信号线,并且可以包括针对从存储器到主机的读数据的单向线。根据所选的存储器技术和系统设计,其他信号738可以伴随诸如选通线DQS之类的总线或子总线。基于系统700的设计或实现方式(如果设计支持多个实现方式的话),则数据总线可以每个存储器设备740具有更多或更少的带宽。例如,数据总线可以支持具有x32接口、x16接口、x8接口或其他接口的存储器设备。记号“xW”,其中W是指代存储器设备740的接口大小或接口宽度的整数,它表示与存储器控制器720交换数据的信号线的数量。存储器设备的接口大小是关于在系统700中每通道可以同时使用多少个存储器设备或多少个存储器设备可以并行耦合至相同的信号线的控制因素。在一个示例中,高带宽存储器设备,宽接口设备或堆叠式存储器配置或其组合可以实现更宽的接口,诸如x128接口、x256接口、x512接口、x1024接口或其他数据总线接口宽度。
在一个示例中,存储器设备740和存储器控制器720以突发或连续数据传递序列的方式来通过数据总线交换数据。该突发对应于与总线频率有关的多个传递周期。在一个示例中,传递周期可以是针对在相同时钟或选通信号沿上(例如,在上升沿上)发生的传递的整个时钟周期。在一个示例中,每个时钟周期(其指代系统时钟的周期)被分成多个单位间隔(UI),其中每个UI是传递周期。例如,双倍数据速率传递在时钟信号的两个沿(例如,上升沿和下降沿)上触发。突发可以持续达经配置数量的UI,这可以是存储在寄存器中的配置,或者是在运行中被触发。例如,八个连续传递时段的序列可以被认为是突发长度8(BL8),并且每个存储器设备740可以在每个UI上传递数据。因此,在BL8上操作的x8存储器设备可以传递64位数据(8个数据信号线乘以在该突发上每行传递的8个数据位)。应当理解的是,该简单示例仅仅是说明,而不是限制性的。
存储器设备740表示用于系统700的存储器资源。在一个示例中,每个存储器设备740都是分离的存储器管芯。在一个示例中,每个存储器设备740可以每个设备或每个管芯地与多个(例如2个)通道对接。每个存储器设备740包括I/O接口逻辑742,该I/O接口逻辑742具有由设备的实现方式确定的带宽(例如,x16或x8或某个其他接口带宽)。I/O接口逻辑742使得存储器设备能够与存储器控制器720对接。I/O接口逻辑742可以包括硬件接口,并且可以根据存储器控制器的I/O 722,但是在存储器设备末端处。在一个示例中,多个存储器设备740并行连接到相同的命令和数据总线。在另一个示例中,多个存储器设备740并行连接到相同的命令总线,并且连接到不同的数据总线。例如,系统700可以被配置有并行耦合的多个存储器设备740,其中每个存储器设备都对命令作出响应并且访问在每个存储器设备内部的存储器资源760。对于写操作,单独的存储器设备740可以写入整个数据字的一部分,并且对于读操作,单独的存储器设备740可以取整个数据字的一部分。作为非限制性示例,特定的存储器设备可以分别提供或接收128位数据字的8位以用于读或写事务,或者提供或接收256位数据字的8位或16位(取决于x8或x16设备)。字的其余位将由其他存储器设备并行提供或接收。
在一个示例中,将存储器设备740直接设置在计算设备的母板或主机系统平台(例如PCB(印刷电路板),其上布置了处理器710)上。在一个示例中,存储器设备740可以被组织到存储器模块770中。在一个示例中,存储器模块770表示双列直插式存储器模块(DIMM)。在一个示例中,存储器模块770表示用于共享访问或控制电路的至少一部分的多个存储器设备的其他组织,其可以是与主机系统平台分离的电路、分离的设备或分离的板。存储器模块770可以包括多个存储器设备740,并且存储器模块可以包括针对至所包括的被设置在它们上的存储器设备的多个单独通道的支持。在另一个示例中,诸如通过诸如多芯片模块(MCM)、叠层封装(package-on-package)、硅通孔(TSV)或其他技术或其组合之类的技术,存储器设备740可以被合并到与存储器控制器720相同的封装中。类似地,在一个示例中,多个存储器设备740可以被合并到存储器模块770中,存储器模块770本身可以被合并到与存储器控制器720相同的封装中。应当领会到的是,对于这些和其他实现方式,存储器控制器720可以是主机处理器710的一部分。
存储器设备740均包括存储器资源760。存储器资源760表示针对数据的存储器位置或存储位置的各个阵列。通常,存储器资源760被管理为经由字线(行)和位线(行内的各个位)控制来访问的数据行。存储器资源760可以被组织为存储器的分离的通道、排和存储体。通道可以指代至存储器设备740内的存储位置的独立控制路径。排可以指代跨多个存储器设备的共同位置(例如不同设备内的相同行地址)。存储体可以指代存储器设备740内的存储器位置的阵列。在一个示例中,存储器的存储体被分成子存储体,该子存储体具有用于该子存储体的共享电路(例如,驱动器、信号线、控制逻辑)的至少一部分,从而允许分离的寻址和访问。应当理解的是,存储器位置的通道、排、存储体、子存储体、存储体群组或其他组织以及这些组织的组合在其对物理资源的应用中可以重叠。例如,可以通过作为特定存储体的特定通道来访问相同的物理存储器位置,该特定存储体也可以属于某个排。因此,将以包容性而不是排他性的方式理解存储器资源的组织。
在一个示例中,存储器设备740包括一个或多个寄存器744。寄存器744表示针对存储器设备的操作提供配置或设置的一个或多个存储设备或存储位置。在一个示例中,寄存器744可以为存储器设备740提供存储位置,以存储用于由存储器控制器720访问作为控制或管理操作的一部分的数据。在一个示例中,寄存器744包括一个或多个模式寄存器。在一个示例中,寄存器744包括一个或多个多功能寄存器。寄存器744内的位置的配置可以将存储器设备740配置成以不同“模式”进行操作,其中命令信息可以基于该模式来触发存储器设备740内的不同操作。附加地或替代地,不同的模式也可以取决于该模式而根据地址信息或其他信号线来触发不同的操作。寄存器744的设置可以指示用于I/O设置(例如,时序、终结装置或ODT(管芯上终结装置)746、驱动器配置、或其他I/O设置)的配置。
在一个示例中,存储器设备740包括ODT 746,作为与I/O 742相关联的接口硬件的部分。ODT 746可以如上面提及的那样配置,并且向指定信号线提供针对要被应用至接口的阻抗的设置。在一个示例中,ODT 746被应用于DQ信号线。在一个示例中,ODT 746被应用于命令信号线。在一个示例中,ODT 746被应用于地址信号线。在一个示例中,ODT 746可以被应用于前述的任何组合。ODT设置可以基于存储器设备是访问操作的所选目标还是非目标设备而改变。ODT 746设置可以影响端接线(terminated line)上的信令的时序和反射。对ODT 746的仔细控制可以在所应用的阻抗和加载的改进匹配的情况下实现较高速操作。ODT746可以被应用于I/O接口742、722的特定信号线,而不必应用于所有信号线。
存储器设备740包括控制器750,控制器750表示存储器设备内的用于控制存储器设备内的内部操作的控制逻辑。例如,控制器750对由存储器控制器720发送的命令解码,并且生成执行或满足该命令的内部操作。控制器750可以被称为内部控制器,并且与主机的存储器控制器720分离。控制器750可以确定基于寄存器744选择什么模式,以及基于所选的模式来配置用于访问存储器资源760的操作或其他操作的内部执行。控制器750生成控制信号来控制存储器设备740内的位的路由以便针对所选模式提供适当的接口,并且将命令引导至适当的存储器位置或地址。控制器750包括命令逻辑752,命令逻辑752可以对在命令和地址信号线上接收到的命令编码进行解码。因此,命令逻辑752可以是或包括命令解码器。利用命令逻辑752,存储器设备可以标识命令并且生成内部操作以执行所请求的命令。
再次参考存储器控制器720,存储器控制器720包括命令(CMD)逻辑724,命令(CMD)逻辑724表示用于生成要发送至存储器设备740的命令的逻辑或电路。命令的生成可以指代调度之前的命令,或者指代对准备好发送的排队命令的准备。通常,存储器子系统中的信令包括命令内的或伴随命令的用来指示或选择存储器设备应当在其中执行命令的一个或多个存储器位置的地址信息。响应于针对存储器设备740的事务的调度,存储器控制器720可以经由I/O 722发布命令以使存储器设备740执行命令。在一个示例中,存储器设备740的控制器750接收并且解码经由I/O 742从存储器控制器720接收到的命令和地址信息。基于接收到的命令和地址信息,控制器750可以控制存储器设备740内的逻辑和电路的操作的时序以执行命令。控制器750负责遵守存储器设备740内的标准或规范(诸如,时序和信令要求)。存储器控制器720可以通过访问调度和控制来实现对标准或规范的遵守。
存储器控制器720包括调度器730,调度器730表示用于生成事务并将事务排序以发送到存储器设备740的逻辑或电路。从一个角度来看,可以说存储器控制器720的主要功能是调度对存储器设备740的存储器访问和其他事务。这种调度可以包括生成事务本身,以实现处理器710对数据的请求,并且维持数据的完整性(例如,诸如利用与刷新有关的命令)。事务可以包括一个或多个命令,并且导致在一个或多个时序周期(诸如,时钟周期或单位间隔)上传递命令或数据、或其两者。事务可以用于访问(诸如,读或写或相关命令或其组合),而其他事务可以包括用于配置、设置、数据完整性的存储器管理命令、或其他命令或其组合。
存储器控制器720通常包括诸如调度器730之类的逻辑,以允许选择事务并且将事务排序以改进系统700的性能。因此,存储器控制器720可以选择哪个尚待解决的事务应当以哪个次序被发送到存储器设备740,这通常是利用比简单的先进先出算法复杂得多的逻辑来实现的。存储器控制器720管理事务到存储器设备740的传输,并且管理与事务相关联的时序。在一个示例中,事务具有确定性时序,该时序可以由存储器控制器720来管理,并且可以用于确定如何利用调度器730来调度事务。
在一个示例中,存储器控制器720包括刷新(REF)逻辑726。刷新逻辑726可以用于易失性的并且需要被刷新以保持确定性状态的存储器资源。在一个示例中,刷新逻辑726指示用于刷新的位置、以及要执行的刷新的类型。刷新逻辑726可以通过发送刷新命令来触发存储器设备740内的自刷新,或者执行外部刷新(其可以被称为自动刷新命令)或其组合。在一个示例中,系统700支持所有存储体刷新、以及每存储体刷新。所有存储体刷新导致并行耦合的所有存储器设备740内的存储体的刷新。每存储体刷新导致指定存储器设备740内的指定存储体的刷新。在一个示例中,存储器设备740内的控制器750包括刷新逻辑754,用于在存储器设备740内应用刷新。在一个示例中,刷新逻辑754根据从存储器控制器720接收到的外部刷新来生成内部操作以执行刷新。刷新逻辑754可以确定是否将刷新引导至存储器设备740,以及响应于该命令要刷新什么存储器资源760。
图8是其中可以实现主机协助的行锤击缓解的计算系统的示例的框图。系统800表示根据本文中的任何示例的计算设备,并且可以是膝上型计算机、台式计算机、平板计算机、服务器、游戏或娱乐控制系统、嵌入式计算设备或其他电子设备。系统800提供了根据系统100的系统的示例。
在一个示例中,存储器子系统820包括行锤击逻辑890,行锤击逻辑890表示用于根据本文中的任何示例来实现主机协助的行锤击缓解的行锤击逻辑。行锤击逻辑可以包括存储器设备中的用于在存储器设备内部管理行锤击缓解的逻辑。在一个示例中,根据本文中提供的任何示例,行锤击逻辑890包括存储器控制器822中的用于提供主机协助的行锤击缓解的行锤击逻辑。行锤击逻辑890使得控制器能够发送额外的刷新命令,以使得存储器830能够基于激活命令的数量来执行潜在受害者行的刷新。
系统800包括处理器810,该处理器810可以包括任何类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核心、或其他处理硬件或其组合,以便为系统800提供指令的处理或执行。处理器810控制系统800的总体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)、或这种设备的组合。
在一个示例中,系统800包括耦合到处理器810的接口812,该接口812可以表示用于需要较高带宽连接的系统组件(诸如,存储器子系统820或图形接口组件840)的较高速接口或高吞吐量接口。接口812表示接口电路,其可以是独立组件或被集成到处理器管芯上。接口812可以作为电路被集成到处理器管芯上,或者作为组件被集成在片上系统上。图形接口840在存在的情况下与图形组件对接,以用于向系统800的用户提供视觉显示。图形接口840可以是独立组件或被集成到处理器管芯或片上系统上。在一个示例中,图形接口840可以驱动向用户提供输出的高清晰度(HD)显示器。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口840基于存储在存储器830中的数据或基于处理器810执行的操作或其两者来生成显示。
存储器子系统820表示系统800的主存储器,并且针对要由处理器810执行的代码或要在执行例程中使用的数据值提供存储。存储器子系统820可以包括一个或多个存储器设备830,诸如只读存储器(ROM)、闪速存储器、一个或多个种类的随机存取存储器(RAM)(诸如,DRAM)、或其他存储器设备、或这种设备的组合。除了别的之外,存储器830还存储和托管操作系统(OS)832,以便为系统800中的指令的执行提供软件平台。附加地,应用834可以根据存储器830在OS 832的软件平台上执行。应用834表示具有其自己的操作逻辑以实行一个或多个功能的执行的程序。过程836表示向OS 832或一个或多个程序834或其组合提供辅助功能的代理或例程。OS 832、应用834和过程836提供软件逻辑,以提供针对系统800的功能。在一个示例中,存储器子系统820包括存储器控制器822,存储器控制器822是用于生成命令并将命令发布至存储器830的存储器控制器。应当理解的是,存储器控制器822可以是处理器810的物理部分或接口812的物理部分。例如,存储器控制器822可以是集成的存储器控制器,其被集成到具有处理器810的电路上,诸如被集成到处理器管芯或片上系统上。
尽管没有具体图示,但是应当理解的是,系统800可以包括设备之间的一个或多个总线或总线系统,诸如存储器总线、图形总线、接口总线或其他。总线或其他信号线可以将组件通信地或电气地耦合在一起,或者将组件通信地且电气地耦合。总线可以包括物理通信线、点对点连接、桥、适配器、控制器或其他电路或其组合。总线可以包括例如系统总线、外围组件互连(PCI)总线、超传输或行业标准架构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)、或其他总线或其组合中的一个或多个。
在一个示例中,系统800包括接口814,该接口814可以耦合到接口812。接口814可以是比接口812更低速的接口。在一个示例中,接口814表示接口电路,该接口电路可以包括独立组件和集成电路。在一个示例中,多个用户界面组件或外围组件或两者耦合到接口814。网络接口850向系统800提供了通过一个或多个网络与远程设备(例如,服务器或其他计算设备)通信的能力。网络接口850可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)或其他基于有线或无线标准的接口或专有接口。网络接口850可以与远程设备交换数据,这可以包括发送存储在存储器中的数据或接收要存储在存储器中的数据。
在一个示例中,系统800包括一个或多个输入/输出(I/O)接口860。I/O接口860可以包括一个或多个接口组件,用户通过该接口组件与系统800进行交互(例如,音频、字母数字、触觉/触摸或其他对接)。外围接口870可以包括上面没有具体提及的任何硬件接口。外围设备一般指代依赖性地连接到系统800的设备。依赖连接是其中系统800提供了软件平台或硬件平台或两者的一种连接,操作在所述平台上执行并且用户与所述平台交互。
在一个示例中,系统800包括用于以非易失性方式存储数据的存储子系统880。在一个示例中,在某些系统实现方式中,存储装置880的至少某些组件可以与存储器子系统820的组件重叠。存储子系统880包括(一个或多个)存储设备884,该存储设备可以是或包括用于以非易失性方式存储大量数据的任何常规介质,诸如一个或多个基于磁性、固态或光学的盘、或其组合。存储装置884以持久性状态保存代码或指令以及数据886(即,尽管至系统800的功率中断,该值仍被保持)。存储装置884一般可以被视为“存储器”,尽管存储器830通常是用来向处理器810提供指令的执行或操作存储器。鉴于存储装置884是非易失性的,存储器830可以包括易失性存储器(即,如果至系统800的功率被中断,则数据的值或状态是不确定的)。在一个示例中,存储子系统880包括控制器882以便以与存储装置884对接。在一个示例中,控制器882是接口814或处理器810的物理部分,或者可以包括处理器810和接口814两者中的电路或逻辑。
电源802向系统800的组件提供功率。更具体地说,电源802通常与系统800中的一个或多个电源供给804对接,以向系统800的组件提供功率。在一个示例中,电源供给804包括AC至DC(交流至直流)适配器,以插入到壁装电源插座(wall outlet)中。这种AC电源可以是可再生能源(例如,太阳能)电源802。在一个示例中,电源802包括DC电源,诸如外部AC至DC转换器。在一个示例中,电源802或电源供给804包括无线充电硬件,以经由与充电场的接近来进行充电。在一个示例中,电源802可以包括内部电池或燃料电池源。
图9是其中可以实现主机协助的行锤击缓解的移动设备的示例的框图。系统900表示移动计算设备,诸如计算平板、移动电话或智能电话、可穿戴计算设备或其他移动设备或嵌入式计算设备。应当理解的是,一般地示出了组件中的某些,并且没有在系统900中示出这种设备的所有组件。系统900提供了根据系统100的系统的示例。
在一个示例中,存储器子系统960包括行锤击逻辑990,行锤击逻辑990表示用于根据本文中的任何示例来为需要刷新的任何存储器962实现主机协助的行锤击缓解的行锤击逻辑。行锤击逻辑可以包括存储器设备中的用于在存储器设备内部管理行锤击缓解的逻辑。在一个示例中,根据本文中提供的任何示例,行锤击逻辑990包括存储器控制器964中的用于提供主机协助的行锤击缓解的行锤击逻辑。行锤击逻辑990使得控制器能够发送额外的刷新命令,以使得存储器962能够基于激活命令的数量来执行潜在受害者行的刷新。
设备900包括处理器910,处理器910执行系统900的主要处理操作。处理器910可以包括一个或多个物理设备,诸如微处理器、应用处理器、微控制器、可编程逻辑器件、或其他处理部件。由处理器910执行的处理操作包括在其上执行应用和设备功能的操作平台或操作系统的执行。处理操作包括与在人类用户或其他设备情况下的I/O(输入/输出)有关的操作、与功率管理有关的操作、与将系统900连接到另一个设备有关的操作或其组合。处理操作还可以包括与音频I/O、显示I/O或其他对接或其组合有关的操作。处理器910可以执行存储在存储器中的数据。处理器910可以写入或编辑存储在存储器中的数据。
在一个示例中,系统900包括一个或多个传感器912。传感器912表示嵌入式传感器或与外部传感器的接口、或其组合。传感器912使得系统900能够监测或检测系统900在其中被实现的环境或设备的一个或多个状况。传感器912可以包括环境传感器(诸如,温度传感器、运动检测器、光检测器、相机、化学传感器(例如,一氧化碳、二氧化碳或其他化学传感器))、压力传感器、加速度计、陀螺仪、医学或生理学传感器(例如,生物传感器、心率监测器或用于检测生理属性的其他传感器)、或其他传感器或其组合。传感器912还可以包括用于生物识别系统的传感器,生物识别系统诸如指纹识别系统、面部检测或识别系统、或检测或识别用户特征的其他系统。应该广义地理解传感器912,而不是限制可以利用系统900实现的许多不同类型的传感器。在一个示例中,一个或多个传感器912经由与处理器910集成在一起的前端电路而耦合到处理器910。在一个示例中,一个或多个传感器912经由系统900的另一组件而耦合到处理器910。
在一个示例中,系统900包括音频子系统920,音频子系统920表示与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)组件。音频功能可以包括扬声器或耳机输出、以及麦克风输入。用于这种功能的设备可以被集成到系统900中,或被连接到系统900。在一个示例中,用户通过提供由处理器910接收并处理的音频命令来与系统900交互。
显示子系统930表示提供视觉显示以呈现给用户的硬件(例如,显示设备)和软件组件(例如,驱动器)。在一个示例中,显示器包括用于用户与计算设备进行交互的触觉组件或触摸屏元件。显示子系统930包括显示接口932,显示接口932包括用于向用户提供显示的特定屏幕或硬件设备。在一个示例中,显示接口932包括用于执行与显示有关的至少一些处理的与处理器910(诸如图形处理器)分离的逻辑。在一个示例中,显示子系统930包括向用户提供输出和输入两者的触摸屏设备。在一个示例中,显示子系统930包括向用户提供输出的高清晰度(HD)或超高清晰度(UHD)显示器。在一个示例中,显示子系统包括或驱动触摸屏显示器。在一个示例中,显示子系统930基于存储在存储器中的数据或者基于处理器910执行的操作或其两者来生成显示信息。
I/O控制器940表示与同用户的交互有关的硬件设备和软件组件。I/O控制器940可以操作以管理作为音频子系统920、或显示子系统930或其两者的一部分的硬件。附加地,I/O控制器940图示了针对连接到系统900的附加设备的连接点,通过该附加设备,用户可能与该系统交互。例如,可以被附接至系统900的设备可能包括麦克风设备、扬声器或立体声系统、视频系统或其他显示设备、键盘或小键盘设备、或用于与特定应用一起使用的其他I/O设备,诸如读卡器或其他设备。
如上面所提及的,I/O控制器940可以与音频子系统920、或显示子系统930或其两者交互。例如,通过麦克风或其他音频设备的输入可以为系统900的一个或多个应用或功能提供输入或命令。附加地,代替显示输出或除了显示输出之外,可以提供音频输出。在另一示例中,如果显示子系统包括触摸屏,则显示设备还充当输入设备,该输入设备可以至少部分地由I/O控制器940来管理。系统900上还可以存在附加的按钮或开关以提供由I/O控制器940管理的I/O功能。
在一个示例中,I/O控制器940管理诸如加速度计、相机、光传感器或其他环境传感器、陀螺仪、全球定位系统(GPS)、或可以被包括在系统900或传感器912中的其他硬件之类的设备。输入可以是直接用户交互的部分,以及向系统提供环境输入以影响其操作(诸如,针对噪声进行滤波、为了亮度检测而调整显示器、应用相机的闪光灯、或其他特征)。
在一个示例中,系统900包括功率管理950,功率管理950管理电池功率使用、电池的充电、以及与功率节省操作有关的特征。功率管理950管理来自电源952的功率,电源952向系统900的组件提供功率。在一个示例中,电源952包括AC至DC(交流至直流)适配器,以插入到壁装电源插座中。这种AC电源可以是可再生能量(例如,太阳能电源、基于运动的电源)。在一个示例中,电源952仅包括DC功率,DC功率可以由诸如外部AC至DC转换器之类的DC电源来提供。在一个示例中,电源952包括无线充电硬件,以经由与充电场的邻近来进行充电。在一个示例中,电源952可以包括内部电池或燃料电池源。
存储器子系统960包括用于将信息存储在系统900中的(一个或多个)存储器设备962。存储器子系统960可以包括非易失性(如果至存储器设备的功率被中断,则状态不改变)或易失性(如果至存储器设备的功率被中断,则状态是不确定的)存储器设备或其组合。存储器960可以存储应用数据、用户数据、音乐、照片、文档或其他数据、以及与系统900的应用和功能的执行有关的系统数据(不管是长期的还是临时的)。在一个示例中,存储器子系统960包括存储器控制器964(其也可以被视为系统900的控制的部分,并且可以潜在地被视为处理器910的部分)。存储器控制器964包括调度器,以生成和发布命令以控制对存储设备962的访问。
连通性(connectivity)970包括硬件设备(例如,无线或有线连接器和通信硬件、或有线和无线硬件的组合)和软件组件(例如,驱动器、协议栈),以使得系统900能够与外部设备通信。外部设备可以是分离的设备,诸如其他计算设备、无线接入点或基站、以及外围设备(诸如耳机、打印机或其他设备)。在一个示例中,系统900与外部设备交换数据以用于存储在存储器中或用于显示在显示设备上。交换的数据可以包括要存储在存储器中的数据,或已经存储在存储器中的数据,以便读取、写入或编辑数据。
连通性970可以包括多个不同类型的连通性。概括来说,系统900被图示有蜂窝连通性972和无线连通性974。蜂窝连通性972一般指代由无线载波提供的蜂窝网络连通性,诸如经由GSM(全球移动通信系统)或其变型或衍生物、CDMA(码多分址)或其变型或衍生物、TDM(时分复用)或其变型或衍生物、LTE(长期演进——也被称为“4G”)或其他蜂窝服务标准提供的连通性。无线连通性974指代非蜂窝的无线连通性,并且可以包括个域网(诸如蓝牙)、局域网(诸如WiFi)或广域网(诸如WiMax)、或其他无线通信或其组合。无线通信指代通过使用已调制的电磁辐射经由非固体介质对数据的传递。有线通信通过固体通信介质而发生。
外围连接980包括硬件接口和连接器,以及用来做出外围连接的软件组件(例如,驱动器、协议栈)。应当理解的是,系统900可以既是至其他计算设备的外围设备(“去往”982),又具有连接到其的外围设备(“来自”984)。设备900通常具有出于诸如管理(例如下载、上传、改变、同步)系统900上的内容的目的而连接到其他计算设备的“对接”连接器。附加地,对接连接器可以允许系统900连接到某些外围设备,该某些外围设备允许系统900控制例如至视听系统或其他系统的内容输出。
除了专有对接连接器或其他专有连接硬件之外,系统900还可以经由常见的或基于标准的连接器做出外围连接980。常见类型可以包括通用串行总线(USB)连接器(其可以包括许多不同硬件接口中的任一个)、包括迷你显示端口(MDP)的显示端口、高清晰度多媒体接口(HDMI)或其他类型。
通常,关于本文中的描述,在一个示例中,动态随机存取存储器(DRAM)设备包括:具有多行存储器的存储器阵列;以及输入/输出(I/O)硬件,用于从相关联的存储器控制器接收命令,包括多个激活命令和多个刷新命令,其中响应于接收到阈值数量的激活命令,存储器控制器将发送超过在刷新窗口内刷新所述行所需的刷新命令的数量的过量刷新命令,其中DRAM设备将响应于所述过量刷新命令来执行行锤击刷新,以刷新潜在侵略者行的潜在受害者行。
在一个示例中,接收到阈值数量的激活包括在特定时间窗口内接收到阈值数量的激活。在一个示例中,在特定时间窗口内接收到阈值数量的激活包括滑动窗口,其中每个激活命令使计数增加,并且一定量的时间使该计数减少。在一个示例中,阈值数量的激活命令包括每个通道或每个排的阈值数量的激活命令。在一个示例中,阈值数量的激活命令包括每个存储体或每个存储体群组的阈值数量的激活命令。在一个示例中,过量刷新命令包括具有标签的刷新命令,该标签用以指示该刷新命令用于行锤击刷新。
一般而言,关于本文中的描述,在一个示例中,一种存储器控制器包括:缓冲器,用于对命令进行排队以发送到具有多行存储器的存储器设备;计数器,用于跟踪至存储器设备的激活命令的数量;以及输入/输出(I/O)硬件,用于将命令发送到存储器设备,所述命令包括多个激活命令和多个刷新命令,其中响应于检测到阈值数量的激活命令,I/O硬件将发送超过在刷新窗口内刷新所述行所需的刷新命令的数量的过量刷新命令,所述过量刷新命令将触发存储器设备以执行行锤击刷新,以刷新潜在侵略者行的潜在受害者行。
在一个示例中,检测到阈值数量的激活包括在特定时间窗口内检测到阈值数量的激活。在一个示例中,在特定时间窗口内检测到阈值数量的激活包括滑动窗口,其中每个激活命令使计数器增加,并且一定量的时间使计数器减少。在一个示例中,阈值数量的激活命令包括:包括存储器设备的多个存储器设备的每个通道或每个排的阈值数量的激活命令。在一个示例中,阈值数量的激活命令包括存储器设备的每个存储体或每个存储体群组的阈值数量的激活命令。在一个示例中,过量刷新命令包括具有标签的刷新命令,该标签用以指示该刷新命令用于行锤击刷新。
一般而言,关于本文中的描述,在一个示例中,一种系统包括:具有多行存储器的多个动态随机存取存储器(DRAM)设备;耦合到所述多个DRAM设备的存储器控制器,所述存储器控制器包括计数器,用于跟踪至存储器设备的激活命令的数量;以及输入/输出(I/O)硬件,用于将多个命令发送到存储器设备,所述命令包括多个激活命令和多个刷新命令,其中响应于检测到阈值数量的激活命令,I/O硬件将发送超过在刷新窗口内刷新所述行所需的刷新命令的数量的过量刷新命令,所述过量刷新命令将触发DRAM设备以执行行锤击刷新,以刷新潜在侵略者行的潜在受害者行。
在一个示例中,检测到阈值数量的激活包括在特定时间窗口内检测到阈值数量的激活。在一个示例中,在特定时间窗口内检测到阈值数量的激活包括滑动窗口,其中每个激活命令使计数器增加,并且一定量的时间使计数器减少。在一个示例中,阈值数量的激活命令包括DRAM设备的每个通道或每个排的阈值数量的激活命令。在一个示例中,阈值数量的激活命令包括每个DRAM设备的阈值数量的激活命令。在一个示例中,阈值数量的激活命令包括特定DRAM设备的每个存储体或每个存储体群组的阈值数量的激活命令。在一个示例中,过量刷新命令包括具有标签的刷新命令,该标签用以指示该刷新命令用于行锤击刷新。在一个示例中,该系统包括以下各项中的一项或多项:主机处理器设备,其耦合到存储器控制器;显示器,其通信地耦合到主机处理器;网络接口,其通信地耦合到主机处理器;或电池,其为系统供电。
如本文中图示的流程图提供各种过程动作的序列的示例。流程图可以指示要由软件或固件例程执行的操作,以及物理操作。流程图可以图示可以以硬件和/或软件来实现的有限状态机(FSM)的状态的实现方式的示例。尽管以特定序列或次序示出,但是除非另外指定,否则可以修改动作的次序。因此,所图示的示图应当仅被理解为示例,并且可以以不同次序来执行过程,并且可以并行执行某些动作。附加地,可以省略一个或多个动作;因此,并非所有实现方式都将执行所有动作。
就本文中描述了各种操作或功能来说,它们可以被描述或限定为软件代码、指令、配置和/或数据。内容可以是可直接执行的(“对象”或“可执行”形式)、源代码或差分代码(difference code)(“增量(delta)”或“补丁(patch)”代码)。经由其上存储有内容的制品或者经由操作通信接口以通过该通信接口来发送数据的方法,可以提供本文中描述的事物的软件内容。机器可读存储介质可以使得机器执行所描述的功能或操作,并且包括以可由机器(例如计算设备、电子系统等)访问的形式存储信息的任何机构,诸如可记录/非可记录介质(例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪速存储器设备等)。通信接口包括:与硬连线、无线、光学等介质中的任何一个对接以便与另一设备通信的任何机构,诸如存储器总线接口、处理器总线接口、互联网连接、磁盘控制器等。可以通过提供配置参数和/或发送信号以准备通信接口从而提供描述软件内容的数据信号来配置通信接口。可以经由发送给通信接口的一个或多个命令或信号来访问通信接口。
本文中描述的各种组件可以是用于执行所描述的操作或功能的部件。本文中描述的每个组件包括软件、硬件或这些的组合。组件可以被实现为软件模块、硬件模块、专用硬件(例如,应用特定的硬件、专用集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器、硬连线电路等。
除了本文中所描述的内容之外,还可以在不脱离其范围的情况下对所公开的内容和本发明的实现方式进行各种修改。因此,应当在说明性且非限制性的意义上解释本文中的说明和示例。应当仅参考随后的权利要求书来衡量本发明的范围。
Claims (20)
1.一种动态随机存取存储器(DRAM)设备,包括:
具有多行存储器的存储器阵列;以及
输入/输出(I/O)硬件,用于从相关联的存储器控制器接收命令,包括多个激活命令和多个刷新命令,其中响应于接收到阈值数量的激活命令,存储器控制器将发送超过在刷新窗口内刷新所述行所需的刷新命令的数量的过量刷新命令,其中所述DRAM设备将响应于所述过量刷新命令来执行行锤击刷新,以刷新潜在侵略者行的潜在受害者行。
2.根据权利要求1所述的DRAM设备,其中接收到阈值数量的激活包括在特定时间窗口内接收到阈值数量的激活。
3.根据权利要求2所述的DRAM设备,其中在所述特定时间窗口内接收到阈值数量的激活包括滑动窗口,其中每个激活命令使计数增加,并且一定量的时间使所述计数减少。
4.根据权利要求1所述的DRAM设备,其中阈值数量的激活命令包括每个通道或每个排的阈值数量的激活命令。
5.根据权利要求1所述的DRAM设备,其中阈值数量的激活命令包括每个存储体或每个存储体群组的阈值数量的激活命令。
6.根据权利要求1所述的DRAM设备,其中所述过量刷新命令包括具有标签的刷新命令,所述标签用以指示所述刷新命令用于行锤击刷新。
7.一种存储器控制器,包括:
缓冲器,用于对命令进行排队以发送到具有多行存储器的存储器设备;
计数器,用于跟踪至存储器设备的激活命令的数量;以及
输入/输出(I/O)硬件,用于将所述命令发送到存储器设备,所述命令包括多个激活命令和多个刷新命令,其中响应于检测到阈值数量的激活命令,I/O硬件将发送超过在刷新窗口内刷新所述行所需的刷新命令的数量的过量刷新命令,所述过量刷新命令将触发存储器设备以执行行锤击刷新,以刷新潜在侵略者行的潜在受害者行。
8.根据权利要求7所述的存储器控制器,其中检测到阈值数量的激活包括在特定时间窗口内检测到阈值数量的激活。
9.根据权利要求8所述的存储器控制器,其中在所述特定时间窗口内检测到阈值数量的激活包括滑动窗口,其中每个激活命令使计数器增加,并且一定量的时间使计数器减少。
10.根据权利要求7所述的存储器控制器,其中阈值数量的激活命令包括:包括存储器设备的多个存储器设备的每个通道或每个排的阈值数量的激活命令。
11.根据权利要求7所述的存储器控制器,其中阈值数量的激活命令包括存储器设备的每个存储体或每个存储体群组的阈值数量的激活命令。
12.根据权利要求7所述的存储器控制器,其中所述过量刷新命令包括具有标签的刷新命令,所述标签用以指示所述刷新命令用于行锤击刷新。
13.一种具有存储器设备的系统,包括:
具有多行存储器的多个动态随机存取存储器(DRAM)设备;
耦合到所述多个DRAM设备的存储器控制器,所述存储器控制器包括
计数器,用于跟踪至存储器设备的激活命令的数量;以及
输入/输出(I/O)硬件,用于将多个命令发送到存储器设备,所述命令包括多个激活命令和多个刷新命令,其中响应于检测到阈值数量的激活命令,I/O硬件将发送超过在刷新窗口内刷新所述行所需的刷新命令的数量的过量刷新命令,所述过量刷新命令将触发DRAM设备以执行行锤击刷新,以刷新潜在侵略者行的潜在受害者行。
14.根据权利要求13所述的系统,其中检测到阈值数量的激活包括在特定时间窗口内检测阈值数量的激活。
15.根据权利要求14所述的系统,其中在所述特定时间窗口内检测到阈值数量的激活包括滑动窗口,其中每个激活命令使计数器增加,并且一定量的时间使计数器减少。
16.根据权利要求13所述的系统,其中阈值数量的激活命令包括DRAM设备的每个通道或每个排的阈值数量的激活命令。
17.根据权利要求13所述的系统,其中阈值数量的激活命令包括每个DRAM设备的阈值数量的激活命令。
18.根据权利要求13所述的系统,其中阈值数量的激活命令包括特定DRAM设备的每个存储体或每个存储体群组的阈值数量的激活命令。
19.根据权利要求13所述的系统,其中所述过量刷新命令包括具有标签的刷新命令,所述标签用以指示所述刷新命令用于行锤击刷新。
20.根据权利要求13所述的系统,进一步包括以下各项中的一个或多个:
主机处理器设备,其耦合到存储器控制器;
显示器,其通信地耦合到主机处理器;
网络接口,其通信地耦合到主机处理器;或
电池,其为所述系统供电。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/370578 | 2019-03-29 | ||
US16/370,578 US10950288B2 (en) | 2019-03-29 | 2019-03-29 | Refresh command control for host assist of row hammer mitigation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111755047A true CN111755047A (zh) | 2020-10-09 |
Family
ID=67299403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010127858.XA Pending CN111755047A (zh) | 2019-03-29 | 2020-02-28 | 用于行锤击缓解的主机协助的刷新命令控制 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10950288B2 (zh) |
JP (2) | JP7456083B2 (zh) |
KR (2) | KR20200115115A (zh) |
CN (1) | CN111755047A (zh) |
DE (1) | DE102020104367A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112786087A (zh) * | 2021-03-15 | 2021-05-11 | 长鑫存储技术有限公司 | 刷新电路及存储器 |
CN115357952A (zh) * | 2022-10-18 | 2022-11-18 | 合肥奎芯集成电路设计有限公司 | 针对动态存储器的行锤攻击防御方法和装置 |
WO2023087533A1 (zh) * | 2021-11-19 | 2023-05-25 | 长鑫存储技术有限公司 | 一种锤击刷新方法、锤击刷新电路及半导体存储器 |
US11817141B2 (en) | 2021-03-15 | 2023-11-14 | Changxin Memory Technologies, Inc. | Refresh control circuit and memory |
US11854595B2 (en) | 2021-03-15 | 2023-12-26 | Changxin Memory Technologies, Inc. | Refresh circuit and memory |
US11869567B2 (en) | 2021-03-15 | 2024-01-09 | Changxin Memory Technologies, Inc. | Refresh control circuit and memory |
US11894042B2 (en) | 2021-11-19 | 2024-02-06 | Changxin Memory Technologies, Inc. | Method for refreshing row hammer, circuit for refreshing row hammer and semiconductor memory |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9324398B2 (en) | 2013-02-04 | 2016-04-26 | Micron Technology, Inc. | Apparatuses and methods for targeted refreshing of memory |
US9047978B2 (en) | 2013-08-26 | 2015-06-02 | Micron Technology, Inc. | Apparatuses and methods for selective row refreshes |
JP2015219938A (ja) | 2014-05-21 | 2015-12-07 | マイクロン テクノロジー, インク. | 半導体装置 |
JP2017182854A (ja) | 2016-03-31 | 2017-10-05 | マイクロン テクノロジー, インク. | 半導体装置 |
FR3066842B1 (fr) * | 2017-05-24 | 2019-11-08 | Upmem | Logique de correction de row hammer pour dram avec processeur integre |
US10580475B2 (en) | 2018-01-22 | 2020-03-03 | Micron Technology, Inc. | Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device |
US11152050B2 (en) | 2018-06-19 | 2021-10-19 | Micron Technology, Inc. | Apparatuses and methods for multiple row hammer refresh address sequences |
US10726903B2 (en) | 2018-09-21 | 2020-07-28 | Nanya Technology Corporation | Row-determining circuit, DRAM, and method for refreshing a memory array |
US10685696B2 (en) | 2018-10-31 | 2020-06-16 | Micron Technology, Inc. | Apparatuses and methods for access based refresh timing |
WO2020117686A1 (en) | 2018-12-03 | 2020-06-11 | Micron Technology, Inc. | Semiconductor device performing row hammer refresh operation |
US10957377B2 (en) | 2018-12-26 | 2021-03-23 | Micron Technology, Inc. | Apparatuses and methods for distributed targeted refresh operations |
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 |
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 |
US11158373B2 (en) | 2019-06-11 | 2021-10-26 | Micron Technology, Inc. | Apparatuses, systems, and methods for determining extremum numerical values |
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 |
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 |
US10916292B1 (en) * | 2019-08-28 | 2021-02-09 | Micron Technology, Inc. | Performing a refresh operation based on system characteristics |
KR20210114639A (ko) * | 2020-03-11 | 2021-09-24 | 에스케이하이닉스 주식회사 | 메모리, 메모리 시스템 및 메모리의 동작 방법 |
US11222685B2 (en) * | 2020-05-15 | 2022-01-11 | Advanced Micro Devices, Inc. | Refresh management for DRAM |
US11561862B2 (en) * | 2020-05-29 | 2023-01-24 | Advanced Micro Devices, Inc. | Refresh management for DRAM |
US11120860B1 (en) * | 2020-08-06 | 2021-09-14 | Micron Technology, Inc. | Staggering refresh address counters of a number of memory devices, and related methods, devices, and systems |
US11222682B1 (en) | 2020-08-31 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for providing refresh addresses |
CN114388049B (zh) * | 2020-10-16 | 2023-09-12 | 长鑫存储技术有限公司 | 存储器测试方法 |
US20220129200A1 (en) * | 2020-10-26 | 2022-04-28 | Qualcomm Incorporated | Dram with quick random row refresh for rowhammer mitigation |
US11947840B2 (en) * | 2020-10-30 | 2024-04-02 | Micron Technology, Inc. | Inter-die refresh control |
US11410715B2 (en) | 2020-11-06 | 2022-08-09 | Micron Technology, Inc. | Apparatus with refresh management mechanism |
KR20220062843A (ko) * | 2020-11-09 | 2022-05-17 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11462291B2 (en) | 2020-11-23 | 2022-10-04 | Micron Technology, Inc. | Apparatuses and methods for tracking word line accesses |
US11790975B2 (en) | 2020-12-10 | 2023-10-17 | SK Hynix Inc. | Memory controller and memory system |
US11474746B2 (en) * | 2020-12-10 | 2022-10-18 | Advanced Micro Devices, Inc. | Refresh management for DRAM |
KR102385443B1 (ko) | 2020-12-21 | 2022-04-12 | 서울대학교 산학협력단 | 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법 |
US11482275B2 (en) | 2021-01-20 | 2022-10-25 | Micron Technology, Inc. | Apparatuses and methods for dynamically allocated aggressor detection |
US11972788B2 (en) * | 2021-03-11 | 2024-04-30 | Micron Technology, Inc. | Apparatuses, systems, and methods for controller directed targeted refresh operations based on sampling command |
US11600314B2 (en) | 2021-03-15 | 2023-03-07 | Micron Technology, Inc. | Apparatuses and methods for sketch circuits for refresh binning |
FR3121262A1 (fr) * | 2021-03-29 | 2022-09-30 | Upmem | Dispositif mémoire et procédé de protection d’un dispositif mémoire de l’effet de martelage d’un rang |
US11955159B2 (en) * | 2021-07-20 | 2024-04-09 | Samsung Electronics Co., Ltd. | Semiconductor memory device and memory system including the same |
US11664063B2 (en) | 2021-08-12 | 2023-05-30 | Micron Technology, Inc. | Apparatuses and methods for countering memory attacks |
US20230114414A1 (en) * | 2021-09-28 | 2023-04-13 | Advanced Micro Devices, Inc. | Method and apparatus for protecting memory devices via a synergic approach |
KR20230051835A (ko) | 2021-10-12 | 2023-04-19 | 삼성전자주식회사 | 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법 |
KR20230051873A (ko) | 2021-10-12 | 2023-04-19 | 삼성전자주식회사 | 해머 리프레시 로우 어드레스 검출기, 이를 포함하는 반도체 메모리 장치 및 메모리 모듈 |
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 |
KR20230080776A (ko) | 2021-11-30 | 2023-06-07 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR20230088042A (ko) * | 2021-12-10 | 2023-06-19 | 삼성전자주식회사 | 메모리 장치 |
US20230206989A1 (en) * | 2021-12-29 | 2023-06-29 | Micron Technology, Inc. | Apparatuses and methods for row hammer counter mat |
US20230244793A1 (en) * | 2022-01-27 | 2023-08-03 | Micron Technology, Inc. | Row access strobe (ras) clobber and row hammer failures using a deterministic protocol |
US20230352075A1 (en) * | 2022-04-28 | 2023-11-02 | Micron Technology, Inc. | Apparatuses and methods for access based refresh operations |
US20230359361A1 (en) * | 2022-05-05 | 2023-11-09 | Micron Technology, Inc. | Frequency regulation for memory management commands |
KR20230163172A (ko) * | 2022-05-23 | 2023-11-30 | 에스케이하이닉스 주식회사 | 로우해머링추적동작을 수행하기 위한 반도체시스템 |
US20230418487A1 (en) * | 2022-06-22 | 2023-12-28 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and memory systems including the same |
US11935623B2 (en) * | 2022-06-28 | 2024-03-19 | Montage Technology (Kunshan) Co. | Apparatus for controlling access to a memory device and memory system comprising the same |
US20240087639A1 (en) * | 2022-09-08 | 2024-03-14 | Qualcomm Incorporated | Dynamic rowhammer management |
US11948656B1 (en) * | 2022-09-21 | 2024-04-02 | Micron Technology, Inc. | Counter management for memory systems |
US11922031B1 (en) * | 2022-09-23 | 2024-03-05 | Micron Technology, Inc. | Apparatus with directed refresh management mechanism |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9286964B2 (en) | 2012-12-21 | 2016-03-15 | Intel Corporation | Method, apparatus and system for responding to a row hammer event |
US9324398B2 (en) | 2013-02-04 | 2016-04-26 | Micron Technology, Inc. | Apparatuses and methods for targeted refreshing of memory |
KR102086460B1 (ko) | 2013-06-28 | 2020-03-10 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그의 리프레쉬 방법 |
EP3039683A1 (en) | 2013-08-28 | 2016-07-06 | Hewlett Packard Enterprise Development LP | Refresh rate adjust |
JP5983665B2 (ja) | 2014-03-17 | 2016-09-06 | 日本電気株式会社 | アクセス回数カウント装置、メモリシステム、および、アクセス回数カウント方法 |
US9431085B2 (en) * | 2014-03-28 | 2016-08-30 | Synopsys, Inc. | Most activated memory portion handling |
US20170110178A1 (en) | 2015-09-17 | 2017-04-20 | Intel Corporation | Hybrid refresh with hidden refreshes and external refreshes |
US9812185B2 (en) | 2015-10-21 | 2017-11-07 | Invensas Corporation | DRAM adjacent row disturb mitigation |
KR102329673B1 (ko) * | 2016-01-25 | 2021-11-22 | 삼성전자주식회사 | 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
JP6707628B2 (ja) | 2016-04-08 | 2020-06-10 | ウルトラメモリ株式会社 | 半導体記憶装置 |
KR20180064940A (ko) * | 2016-12-06 | 2018-06-15 | 삼성전자주식회사 | 해머 리프레쉬 동작을 수행하는 메모리 시스템 |
US10490251B2 (en) | 2017-01-30 | 2019-11-26 | Micron Technology, Inc. | Apparatuses and methods for distributing row hammer refresh events across a memory device |
US10192608B2 (en) * | 2017-05-23 | 2019-01-29 | Micron Technology, Inc. | Apparatuses and methods for detection refresh starvation of a memory |
JP6281030B1 (ja) * | 2017-08-02 | 2018-02-14 | ゼンテルジャパン株式会社 | 半導体記憶装置 |
US20190096472A1 (en) | 2017-09-25 | 2019-03-28 | Intel Corporation | Memory chip having reduced baseline refresh rate with additional refreshing for weak cells |
US10410710B2 (en) | 2017-12-27 | 2019-09-10 | Micron Technology, Inc. | Systems and methods for performing row hammer refresh operations in redundant memory |
KR102358563B1 (ko) * | 2018-05-09 | 2022-02-04 | 삼성전자주식회사 | 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10825534B2 (en) | 2018-10-26 | 2020-11-03 | Intel Corporation | Per row activation count values embedded in storage cell array storage cells |
US10685696B2 (en) * | 2018-10-31 | 2020-06-16 | Micron Technology, Inc. | Apparatuses and methods for access based refresh timing |
US10636476B2 (en) | 2018-11-01 | 2020-04-28 | Intel Corporation | Row hammer mitigation with randomization of target row selection |
US10969997B2 (en) | 2018-11-07 | 2021-04-06 | Intel Corporation | Memory controller that filters a count of row activate commands collectively sent to a set of memory banks |
US10950288B2 (en) * | 2019-03-29 | 2021-03-16 | Intel Corporation | Refresh command control for host assist of row hammer mitigation |
-
2019
- 2019-03-29 US US16/370,578 patent/US10950288B2/en active Active
-
2020
- 2020-02-07 JP JP2020019978A patent/JP7456083B2/ja active Active
- 2020-02-19 DE DE102020104367.8A patent/DE102020104367A1/de active Pending
- 2020-02-27 KR KR1020200024141A patent/KR20200115115A/ko active Application Filing
- 2020-02-28 CN CN202010127858.XA patent/CN111755047A/zh active Pending
-
2021
- 2021-01-25 US US17/157,826 patent/US11282561B2/en active Active
-
2022
- 2022-03-03 US US17/686,287 patent/US11688452B2/en active Active
-
2023
- 2023-06-22 US US18/213,231 patent/US11990172B2/en active Active
- 2023-09-27 JP JP2023164191A patent/JP2023171848A/ja active Pending
- 2023-10-30 KR KR1020230146507A patent/KR20230153986A/ko active Application Filing
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112786087A (zh) * | 2021-03-15 | 2021-05-11 | 长鑫存储技术有限公司 | 刷新电路及存储器 |
US11817141B2 (en) | 2021-03-15 | 2023-11-14 | Changxin Memory Technologies, Inc. | Refresh control circuit and memory |
US11854595B2 (en) | 2021-03-15 | 2023-12-26 | Changxin Memory Technologies, Inc. | Refresh circuit and memory |
US11869567B2 (en) | 2021-03-15 | 2024-01-09 | Changxin Memory Technologies, Inc. | Refresh control circuit and memory |
WO2023087533A1 (zh) * | 2021-11-19 | 2023-05-25 | 长鑫存储技术有限公司 | 一种锤击刷新方法、锤击刷新电路及半导体存储器 |
US11894042B2 (en) | 2021-11-19 | 2024-02-06 | Changxin Memory Technologies, Inc. | Method for refreshing row hammer, circuit for refreshing row hammer and semiconductor memory |
CN115357952A (zh) * | 2022-10-18 | 2022-11-18 | 合肥奎芯集成电路设计有限公司 | 针对动态存储器的行锤攻击防御方法和装置 |
CN115357952B (zh) * | 2022-10-18 | 2023-02-03 | 合肥奎芯集成电路设计有限公司 | 针对动态存储器的行锤攻击防御方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2023171848A (ja) | 2023-12-05 |
JP7456083B2 (ja) | 2024-03-27 |
US11990172B2 (en) | 2024-05-21 |
US20210151095A1 (en) | 2021-05-20 |
US11688452B2 (en) | 2023-06-27 |
US20220189532A1 (en) | 2022-06-16 |
DE102020104367A1 (de) | 2020-10-01 |
KR20230153986A (ko) | 2023-11-07 |
US20190228813A1 (en) | 2019-07-25 |
US11282561B2 (en) | 2022-03-22 |
KR20200115115A (ko) | 2020-10-07 |
US20230386548A1 (en) | 2023-11-30 |
US10950288B2 (en) | 2021-03-16 |
JP2020166832A (ja) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11990172B2 (en) | Refresh command control for host assist of row hammer mitigation | |
US10636476B2 (en) | Row hammer mitigation with randomization of target row selection | |
JP2020166832A5 (zh) | ||
TWI721003B (zh) | 記憶體裝置及用於記憶體管理的系統 | |
US20210020224A1 (en) | Applying chip select for memory device identification and power management control | |
US10482947B2 (en) | Integrated error checking and correction (ECC) in byte mode memory devices | |
US10679698B2 (en) | Memory preset adjustment based on adaptive calibration | |
CN110023914B (zh) | 用于重复写入存储器的可编程数据样式 | |
CN109147840B (zh) | 用于对行敲击事件进行响应的方法、装置和系统 | |
CN109582596B (zh) | 从具有不同读取和写入定时的模式寄存器进行读取 | |
EP3304326A1 (en) | Memory device specific self-refresh entry and exit | |
US9953694B2 (en) | Memory controller-controlled refresh abort | |
US10997096B2 (en) | Enumerated per device addressability for memory subsystems | |
US11200113B2 (en) | Auto-increment write count for nonvolatile memory | |
US20220293162A1 (en) | Randomization of directed refresh management (drfm) pseudo target row refresh (ptrr) commands | |
US20220121398A1 (en) | Perfect row hammer tracking with multiple count increments | |
CN112951298A (zh) | 降低稳定阈值电压(vt)读取干扰降级的系统方法 | |
CN117099075A (zh) | 针对长突发长度的存储器数据传送的双倍取得 | |
EP4020480A1 (en) | Dynamic detection and dynamic adjustment of sub-threshold swing in a memory cell sensing circuit |
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 |