用于对行敲击事件进行响应的方法、装置和系统与流程

文档序号:16521975发布日期:2019-01-05 10:02阅读:221来源:国知局
用于对行敲击事件进行响应的方法、装置和系统与流程



背景技术:

1.技术领域

本发明的实施例总体上涉及存储器管理,并且更具体地涉及存储器刷新操作的控制。

2.背景技术

随着计算技术的进步,计算设备更小,并且具有更强的处理能力。另外地,它们包括越来越多的储存器和存储器来满足在设备上执行的编程和计算的需要。通过提供高密度设备来实现与增加的储存容量一起的设备的缩小的尺寸,其中存储器设备内的原子储存单元具有越来越小的几何尺寸。

随着连续代的越来越紧凑的存储器设备,间发故障已经变得更频繁。例如,一些现有的基于ddr3的系统在繁重工作负荷的情况下经历间发故障。研究员已经跟踪了在存储器单元的刷新窗口内对存储器的单个行的重复访问的故障。例如,对于32nm工艺,如果在64毫秒刷新窗口中对行进行550k次或更多的访问,则与被访问的行在物理上相邻的字线(wordline)具有经历数据损坏(corruption)的非常高的概率。对单个行的行敲击(hammering)或重复访问能够引起跨传输门(passgate)的迁移。由对单行的重复访问所引起的泄漏和寄生电流引起未被访问的物理上相邻的行中的数据损坏。已经由经常地看到这一点的dram行业将该故障问题标记为“行敲击”或者“行干扰”问题。

最近,已经引入定向(targeted)行刷新技术来减轻行敲击的效应。促进定向行刷新的各种操作趋向于使存储器子系统中的其它过程的定时复杂化。随着存储器技术继续扩张,人们预期到,对定向行刷新技术的依赖有所增加。该增加的信赖提出保护dram和其他类型的存储器系统的性能的挑战。

附图说明

在附图的图中通过示例的方式而非通过限制的方式图示本发明的各个实施例,并且在附图中:

图1是图示出根据实施例的用于执行定向刷新的系统的元件的框图。

图2是图示出根据实施例的用于对行敲击事件进行响应的系统的元件的框图。

图3是图示出根据实施例的用于控制存储器设备的方法的元素的流程图。

图4是图示出根据实施例的用于对行敲击事件进行响应的存储器设备的元件的框图。

图5是图示出根据实施例的用于操作存储器设备的方法的元素的流程图。

图6是根据实施例的图示出存储器控制器和存储器设备之间的交换的时序图。

图7是图示出根据实施例的用于执行定向存储器刷新的计算系统的元件的框图。

图8是图示出根据实施例的用于执行定向存储器刷新的移动设备的元件的框图。

具体实施方式

在本文讨论的实施例不同地提供促进特定于存储器设备中的存储器的行的定向刷新的技术和/或机制。将被刷新的行例如可以处于是在相邻的目标行的行敲击的受害(victim)的危险之中。在实施例中,动态随机存取存储器(dram)或其它存储器设备检测到指示——例如从耦合到其的存储器控制器接收到的指示——特定目标行经受行敲击。

响应于这样的指示,存储器设备可以在一模式中操作,该模式促进对于预期的将来的(但是,在实施例中,还没有接收到的)执行用于实施定向行刷新的一个或多个操作的命令进行准备。在操作在该模式中时,存储器设备可以保持跟踪包括目标行和与目标行物理上相邻的一个或多个受害行的特定存储体(bank)。在处于该模式中时,但是在对于定向行刷新的准备已经开始之后,存储器设备可以支持对存储器设备的另一个或多个存储体(其不包括目标行和(一个或多个)受害行)的访问——例如,读取访问、写入访问,等等。在实施例中,存储器设备在指示已经执行了与所检测的敲击事件相关联的所有预期的定向行刷新之后自动地退出该模式。

图1图示出根据实施例的用于实施定向行刷新的系统100的元件。系统100可以包括耦合到存储器控制器120的存储器设备110。存储器设备110可以包括具有存储器单元的相邻行的任何各种类型的存储器技术,其中数据是经由字线可访问的或是等同的。在一个实施例中,存储器设备110包括动态随机存取存储器(dram)技术。存储器设备110可以是系统100的较大的存储器设备(未示出)内的集成电路封装。例如,存储器设备110可以是诸如双列直插式存储器模块(dimm)之类的存储器模块的dram设备。

存储器设备110可以包括表示存储器的一个或多个逻辑和/或物理群组的存储器资源140。存储器的一个这样的分组的示例是存储器资源140的存储体150。存储体150可以包括以行和列布置的储存元件的阵列。通过说明而非限制的方式,存储体150可以包括行112和与行112物理上相邻的行114、116中的一个或两者。不要求给定存储体的行和列的数量是相等的,并且事实上,它们通常是不等的。

在实施例中,存储器资源140包括多个存储体,其包括存储体150。这样的多个存储体中的一些或全部例如可以被布置在存储器设备110的单个集成电路芯片(未示出)上。在实施例中,多个存储体由例如3d堆栈存储器设备的集成电路封装中的存储体组成,其中,存储体不同地存在于ic芯片堆栈的不同的芯片上。

存储器设备110可以包括访问逻辑170以至少部分地促进对存储器资源140的访问,例如在提供这样的访问以服务于来自存储器控制器120的一个或多个命令的情况下。例如在访问逻辑170的功能利用在本文讨论的附加的功能来补充这样的常规技术的情况下,访问逻辑170可以包括或者结合根据常规技术来提供资源访问的存储器设备110的逻辑来进行操作。通过说明而非限制的方式,访问逻辑170可以包括或耦合到用于将访问指令解码到存储体150内的适当的存储器位置的列逻辑142和行逻辑144。列逻辑142和/或行逻辑144可以进一步提供用于访问存储器资源140的一个或多个其它存储体的功能。

存储器控制器120可以通过命令总线(例如,命令/地址(c/a)总线)来向存储器设备110发送命令或指令,该命令或指令然后由存储器设备110来解释。存储器设备110可以对命令信息进行解码以在存储器内执行各种访问功能,并且经由列逻辑142和行逻辑144来对地址信息进行解码。该逻辑可以利用列地址选通(strobe)或信号(cas)和行地址选通或信号(ras)的组合来访问存储器中的特定位置。可以根据已知的存储器架构或它们的派生物来实施存储器的行。简要地,存储器的行可以包括由通过列逻辑142生成的cas所识别的存储器单元的一个或多个可寻址的列。行可以均是经由通过行逻辑144所生成的ras不同地可寻址的。

存储器资源140可以包括在存储器设备的一些操作期间是时间窗口内的重复访问的目标的一个或多个行。这样的行可能经受行敲击状况。在许多现代的存储器设备中,半导体布局的架构使一个或多个物理上相邻的行处于变为损坏的危险之中。处于由于行敲击状况而变为损坏的危险之中的一个或多个行在本文被称为受害行。在系统100的操作期间的给定时间,存储器资源140可以包括存储体150的目标行112,其是经受敲击或在给定时间段内被重复地访问的存储器的行。目标行112是行敲击事件的目标。用存储体150的受害行114和受害行116来图示出处于由于目标行112的行敲击而变为损坏的危险之中的一个或多个行。取决于存储器设备110的物理布局,受害行114、116中的任何一个或两者可能处于危险之中。

应当理解的是,不同的存储器设备制造商使用不同的逻辑和架构来利用设备的存储器资源。例如,不同的存储器设备制造商可以使用不同的偏移来在主处理器中所使用的逻辑存储器地址和在存储器设备110内所使用的物理存储器地址之间进行映射。在一个实施例中,存储器控制器120利用与由系统100的主处理器(未示出)使用的相同的逻辑存储器地址。因此,在一个实施例中,存储器控制器120可以向存储器设备110提供指示特定行的行地址。存储器控制器120可以结合其向存储器设备110发出的命令和/或作为该命令的一部分来指示行地址。

然而,在某些应用中,存储器控制器120可能不具有对目标行112的物理地址和/或例如描述目标行112和物理上相邻的受害行114、116中的一个或每一个之间的地址偏移的信息的访问。此外,在没有指定受害行114或受害行116的地址的存储器控制器120的情况下,存储器设备110可能不包括识别出该受害行114或受害行116是定向刷新的目标以寻址目标行112的敲击的逻辑。

在实施例中,存储器控制器120响应于检测到行敲击事件而生成用于使存储器设备110执行各个行中的每一个的一个或多个定向刷新的一个或多个命令122。在一个实施例中,一个或多个命令122包括用于刷新存储器资源140的特定行的命令或命令的序列。例如,在一个实施例中,这样的序列可以包括指定潜在的受害行的激活的激活命令,其后面是针对该相同的潜在的受害行的预充电(precharge)命令。根据不同的实施例,明确地指定这样的潜在的受害行的任何各种附加的或替换的命令可以被包括在一个或多个命令122中。

检测器130表示使得系统100能够检测行敲击事件的硬件和/或软件或者其它逻辑。用于检测行敲击状况的一个或多个机制可以不对某些实施例进行限制。在实施例中,检测器130确定目标行112何时经历阈值内的重复访问。检测器130可以包括在存储器设备110、存储器控制器120处,和/或在存储器设备110和存储器控制器120中的任何一个或两者的外部的硬件和/或逻辑。

检测器130的机制例如可以包括确定行被访问的次数以及确定其中发生访问的时间段的某方式。行敲击事件可以不简单地是关于行被访问多少次,而是在给定时间段中被访问多少次。一旦行被刷新,可以克服可能引起数据损坏的状况。因此,在实施例中,用于监视的时间段应当至少部分地基于刷新速率。为了克服将以其他方式引起数据损坏的状况而进行的一个或多个命令122的交换可以发生在可以在刷新周期上周期性地出现的正常地调度的刷新事件之间。

存储器设备110可以进一步包括行敲击(rh)响应逻辑160来执行促进定向刷新的执行的一个或多个操作。响应于检测器130检测到行敲击事件的指示,存储器设备110可以被配置为用于操作在使存储器设备110为服务于一个或多个命令122中的一些或所有作准备的模式中。例如,基于在这样的模式中操作的存储器设备110的配置,rh响应逻辑160可以相应受害行中的每一个地(例如受害行114、116中的相应一个)执行促进一个或多个定向刷新的稍后执行的一个或多个操作。在实施例中,在存储器设备110接收一个或多个命令122中的一些或者任一个之前,由rh响应逻辑160来执行一个或多个操作。

由rh响应逻辑160执行的一个或多个操作例如可以包括例如在访问逻辑170中激活电路以防止可能干扰、延迟或以其它方式影响实施定向行刷新的操作的对存储器资源140的一个或多个类型的访问。通过说明而非限制的方式,rh响应逻辑160可以用信号通知将至少临时地阻止对存储体150的读取访问和/或写入访问。

替换地或另外地,由rh响应逻辑160执行的一个或多个命令可以包括确定与被敲击的目标行相关联的一个或多个受害行的地址信息。确定这样的地址信息可以包括执行搜索或者计算来生成识别与用于所检测的行敲击事件的受害行相对应的地址、地址偏移、地址映射等等的结果。这样的结果可以在存储器设备110接收触发这样的使用以促进定向行刷新的特定命令之前可供使用。

尽管存储器设备110被配置用于在这样的模式中操作——例如在为存储体150中的行的定向刷新作准备期间或者在其之后,但是在存储器控制器120随后触发定向刷新之前——但是存储器设备110可以支持对存储器资源140的除存储体150之外的一个或多个存储体(未示出)的访问。例如,访问逻辑170可以被配置为选择性地阻塞对存储体150的读取访问和/或写入访问,但是允许对存储器资源140的另一个或多个存储体的这样的读取访问和/或写入访问。

图2图示出用于执行为定向行刷新作准备的操作的根据实施例的系统200的元件。系统200可以包括经由存储器控制器220耦合到主处理器240的存储器设备,并且能够是根据图1的系统100的系统的一个示例。通过说明而非限制的方式,系统200包括耦合到存储器控制器220的存储器设备dram210。存储器控制器220可以进而耦合到主处理器240。

主处理器240可以是任何类型的处理单元、处理器或者微控制器。主处理器240可以执行系统200中的操作的主要的执行。在实施例中,由主处理器240执行的一些或者所有操作起源于存储在dram210中的指令和/或数据。dram210可以是根据在本文描述的各个实施例中的任一个的存储器设备。dram210可以包括存储器资源214,例如,包括存储器资源140的一些或所有特征。在一个实施例中,dram210是易失性存储器或存储器设备(如果电力对设备中断,其内容是非确定性的)。因此,易失性存储器要求规律的电源以允许其刷新存储器单元来保持数据免于变为丢失或者损坏。

dram210可以包括与存储器控制器220的对应的硬件连接器(未示出)对接的硬件连接器(未示出)。来自主处理器240的存储器访问典型地通过存储器控制器220。在一个实施例中,存储器控制器220是主处理器240的一部分。在替换实施例中,存储器控制器是支持“芯片组”或者硬件逻辑(其提供用于功率的基础设施和用于主处理器240是其一部分的硬件平台的接口逻辑)的一部分。

某些实施例被完全地实施在包括存储器控制器220的一些或所有特征的存储器控制器内。如上所提及的,检测器可以使得存储器控制器220能够识别行敲击状况以能够利用用于实施定向刷新的一个或多个命令来对该行敲击状况进行响应。检测逻辑230被图示为存储器控制器220的一部分,并且表示检测系统200中的行敲击所需要的一些或所有逻辑。存储器控制器220可以进一步包括命令逻辑235,其表示用于存储器控制器220执行其管理对dram210的存储器访问的功能的硬件、软件或其它逻辑。

dram210可以包括逻辑(未示出),诸如rh响应逻辑160,以执行为定向行刷新的预期的将来的实施作准备的一个或多个操作。响应于检测逻辑230检测到行敲击事件的指示,命令逻辑235可以发送一个或多个命令来配置dram210的特定操作模式。响应于被如此配置,dram210可以至少部分地为定向刷新的执行作准备——例如,其中在命令逻辑235随后触发dram210来执行定向刷新之前执行这样的准备。

在dram210被配置用于在该模式中操作的同时,命令逻辑235可以向dram210发送访问存储器资源214的特定存储体的命令。dram210可以在为定向行刷新作准备的一个或多个操作之后、但是在存储器控制器触发dram210执行定向行刷新之前,服务于请求。在实施例中,服务于请求包括执行访问——例如包括对除将被定向行刷新所访问的存储体以外的存储体的读取访问和/或写入访问。

在根据一个实施例的说明性的情形中,存储器资源214包括多个存储体250a,...,250n,其中存储体250a包括行252和与行252物理上相邻的至少一个其它行(由行254、256所图示出)。在系统的操作期间的某时间点,检测逻辑230可以接收行252是行敲击的目标的指示,所述行敲击对受害行254、256中的任何一个或两者的数据完整性形成威胁。响应于检测逻辑230检测到目标行252的敲击,命令逻辑235可以发送命令(例如模式寄存器设置(mrs)命令)以将dram210设为用于促进受害行254、256中任一个的将来的定向刷新的模式。

响应于被设为这样的模式,dram210可以至少部分地为预期的将来的定向行刷新作准备——例如其中在存储器控制器220随后向dram210发送寻址到受害行或以其它方式以受害行为目标的命令之前完成这样的准备。在dram210被设置在该模式与触发dram210执行定向刷新之间的时间中,存储器控制器可以发送访问存储器资源214的另一个存储体(诸如存储体250n)的一个或多个命令。dram210可以在存储器控制器220触发受害行254的(或受害行256的)定向刷新之前服务于该命令。

图3图示出根据实施例的用于控制存储器设备的方法300的元素。例如,可以通过包括存储器控制器220的一些或所有特征的存储器控制器来执行方法300。在实施例中,执行方法300来对包括第一存储体和第二存储体的存储器设备(诸如存储器设备110)进行控制,第一存储体包括第一行和与第一行物理上相邻的第二行。在实施例中,存储器设备的集成电路芯片包括第一存储体和第二存储体两者。

方法300可以包括,在310,接收以下指示:对存储器设备的第一行的重复访问超过阈值。所述指示可以包括行敲击事件的任何各种标记,包括但不限于,来自主机的命令、来自存储器设备的控制信号、在存储器控制器的检测逻辑和命令逻辑之间交换的信号等等。通过说明而非限制的方式,存储器控制器的检测逻辑维护或以其它方式保持跟踪访问第一行的计数和/或这样的访问发生的时间量。在给定时间(例如,在多个调度间隔之一)检测逻辑可以将访问的当前计数与阈值数量相比较。基于比较,存储器控制器的检测逻辑可以识别阈值已经被超过。替换地,存储器设备可以包括该检测逻辑或其它这样的检测逻辑,其中存储器设备向存储器控制器传达对第一行的访问的阈值数量已经被超过。不关于通过其可能生成在310接收的指示的特定机制来对某些实施例进行限制。

在实施例中,方法300包括,在320,响应于在310接收的指示来将存储器设备配置用于在第一模式中操作。基于第一模式,存储器设备可以执行为第二行的定向刷新作准备的一个或多个操作。通过说明而非限制的方式,存储器控制器的命令逻辑可以发送向存储器设备的一个或多个模式寄存器写入配置信息的mrs命令。

这样的配置信息可以包括启用操作模式的一个或多个比特值。在实施例中,在320进行的配置包括向模式寄存器写入所指示的行敲击的目标的存储体(例如第一存储体)的标识符。为了简便起见,术语“参考存储体”在本文用于指示正经受行敲击的特定实例的存储体。例如可以在mrs命令、在这样的mrs命令之后的下一命令中,或在存储器设备被配置为将其识别为与在320设置的模式的实例相关联的某个其他信令中,来向存储器设备提供参考存储体的标识符。

方法300还可以包括,在330,发送第一命令,其中,存储器设备在所述一个或多个操作的执行之后访问第二存储体来服务于第一命令。也在存储器设备被配置用于在第一模式中操作的同时访问第二存储体以服务于第一命令。在实施例中,第一命令用于例如包括读取访问和/或写入访问的访问的类型,在第一命令被服务时,存储器设备为第二存储体而不是为第一存储体提供所述访问。对第一存储体的访问的此类选择性的限制可以基于在320配置的存储器设备的模式。

在实施例中,方法300还包括,在340,在第一命令被发送之后,向存储器设备发送第二命令,其中,存储器设备响应于第二命令来执行第二行的定向刷新。第二命令例如可以包括指定第二行的激活的激活命令和用于第二行的预充电命令之一。

图4图示出根据实施例的用于执行定向行刷新的方法400的元件。存储器设备400例如可以包括存储器设备110的一些或所有特征。

存储器设备400可以包括存储器资源460,该存储器资源460包括多个存储体470a,...,470n。存储器资源460的两个或更多存储体(例如包括存储体470a、470n)可以均被包括在存储器设备400的单个集成电路芯片中。在实施例中,存储体470a包括行472和由说明性的行474、476(其均与目标行472物理上相邻)所表示的一个或多个其它行。在根据一个实施例的说明性的情形中,存储器资源460的某行(例如行472)可以经受行敲击,其对一个或多个相邻的行的数据完整性形成风险。在这样的情形中,行472可以被视为目标行,并且相邻的行474、476中的一个或每一个可以被视为受害行。

存储器设备400还可以包括检测逻辑410,其响应于行敲击事件的检测来将存储器设备配置用于在第一模式中操作。通过说明而非限制的方式,检测逻辑410可以接收对目标行472的重复访问超过阈值的指示。指示例如可以包括存储器设备400从存储器控制器(未示出)接收的mrs命令。配置存储器设备400例如可以包括检测逻辑410向模式寄存器420写入指定第一模式的启用的配置信息。替换地或另外地,检测逻辑410可以向模式寄存器420存储将存储体470a识别为用于一个或多个预期的将来的定向行刷新的参考存储体的信息。存储器设备400还可以包括响应逻辑430(例如包括rh响应逻辑160的一些或所有特征)以基于第一模式进行操作。在实施例中,这样的操作包括响应逻辑430响应于目标行472的所指示的敲击来执行有助于为受害行474的定向刷新和/或受害行476的定向刷新作准备的一个或多个操作。

通过说明而非限制的方式,响应逻辑430可以执行从一个或多个类型的访问锁定存储体470a(其可能以其他方式阻止或不服务于执行定向行刷新)的操作。替换地或另外地,响应逻辑430可以例如基于所识别的目标行472的地址来搜索、计算和/或以其他方式识别受害行的地址信息。在实施例中,存储器设备400包括用于在识别这样的地址信息中使用的地址映射400或以其它方式具有对其的访问。例如,响应逻辑430可以在地址映射440中执行参考信息的查找以识别物理上相邻的行之间的逻辑寻址中的偏移、对存储器中的冗余行的逻辑地址的指派,和/或用于确定受害行474的物理地址和/或受害行476的物理地址的任何其他此类信息。

存储器设备400还可以包括在一个或多个操作的执行之后服务于第一命令的访问逻辑450,其中存储器设备400从存储器控制器接收第一命令。第一命令例如可以包括写入命令、读取命令,或访问存储体470n的一个或多个行的其它此类命令。服务于第一命令可以包括访问逻辑450在存储器设备400被配置用于在第一模式中操作的同时访问存储体470n。在实施例中,访问逻辑450响应于存储器设备在第一命令之后从存储器控制器接收的第二命令来进一步地执行存储体470a的受害行(例如一个或受害行474、476)的定向刷新。

图5图示出根据实施例的用于操作存储器设备的方法500的元素。例如可以通过包括存储器设备110的一些或所有特征的存储器设备来执行方法500。

在实施例中,方法500包括,在510,将存储器设备配置用于在第一模式中操作。存储器设备可以包括第一存储体和第二存储体,其中第一存储体包括第一行和与第一行物理上相邻的第二行。在实施例中,存储器设备的集成电路芯片包括第一存储体和第二存储体。在510进行的配置可以对于对第一存储体的某行(例如第一行)的重复访问超过阈值的指示进行响应。

基于所配置的第一模式,方法500还可以包括,在520,执行为第二行的定向刷新作准备的一个或多个操作,该一个或多个操作是响应于所述指示的。一个或多个操作例如可以包括激活限制除用于定向刷新的访问之外的对第一存储体的访问的逻辑。替换地或另外地,一个或多个操作可以包括确定对应于第二行的地址信息。通过说明而非限制的方式,确定这样的地址信息可以包括访问地址映射信息以确定地址偏移、冗余行地址等等。地址映射信息例如可以指定存储器设备的物理上相邻的行之间的偏移。

在520的所述一个或多个操作的执行之后,方法500还可以包括,在530,服务于来自存储器控制器的第一命令,包括在存储器设备被配置用于在第一模式中操作的同时访问第二存储体。在实施例中,方法500还包括,在540,执行第二行的定向刷新。可以响应于在第一命令之后由存储器设备从存储器控制器接收的第二命令来执行在540的定向行刷新。在实施例中,方法500还包括存储器设备维护在该模式被设置之后对第一存储体的访问的计数。例如,诸如响应逻辑430的电路之类的电路可以维护这样的计数来保持跟踪是否已经完成了与第一行的敲击相关联的所有预期的定向行刷新。响应于计数达到阈值(其指示所有受害行已经被刷新),存储器设备可以自动地将其本身重新配置成停止根据该模式的操作。

图6是图示出根据实施例的从存储器控制器到存储器设备的命令的交换的时序图600。时序图600例如可以表示从存储器控制器120到存储器设备110的交换。

在时序图600中,preall(全部)610表示在启用为将来的定向行刷新作准备的模式之前对存储器设备的所有存储体预充电的命令。mrstrr启用620表示将存储器设备设为这样的模式的模式寄存器设置命令。通过说明而非限制的方式,mrstrr启用620可以在存储器设备的模式寄存器mr2中设置用于指定该模式的激活状态的比特a11。mr2(或其它这样的模式寄存器)中的信息的布置可以在例如在一个或多个方面与ddr3、ddr4可兼容的同步dram(sdram)标准或者电子器件工程联合委员会(jedec)的其它此类标准中有所阐述。mrstrr启用620还可以将信息写入到例如mr2的比特a8和a2:a0,来将特定存储体指定为用于模式的当前实例的参考存储体。在替换的实施例中,通过与紧接着mrstrr启用620之后的另一个命令(例如,激活命令)相关联的地址来向存储器设备识别参考存储体。

在时序图600的说明性的交换中,通过actb0tr(n)630来表示这样的后续命令,其激活参考存储体b0中的目标行n。在实施例中,存储器设备响应于actb0tr(n)630而检测到存储体b0是参考存储体,以及b0的行n是被敲击的行。例如,可以在处理任何模式寄存器设置命令所需要的延迟tmod之后提供actb0tr(n)630。

在实施例中,mrstrr启用620与actb0tr(n)630结合来使存储器设备执行为与参考存储体b0的行n物理上相邻的受害行的预期的将来的定向行刷新作准备的一个或多个操作。为了允许一个或多个操作的执行,可能在存储器设备接收actb0tr(n)630和存储器设备接收某下一存储器访问命令之间要求某延迟。这样的延迟例如可以至少等于(1.5)(tras),其中tras是行有效时间参数。在实施例中,tras是50纳秒(ns)至70ns的数量级。

存储器设备可以允许至少在从存储器设备接收mrstrr启用620到存储器设备准备好在所配置的模式中操作的时间段p1期间访问多个存储体中的任一个。然而,在为了在该模式中操作的准备之后的时间段p2期间,在实施例中,存储器设备可以从不促进定向行刷新的一个或多个类型的访问中限制对参考存储体(在该情况下,存储体b0)的访问。在时序图600的说明性的交换中,通过用于预充电b0的命令preb0640和激活存储体b0并且执行存储体b0中的受害行(n-1)的定向刷新的命令actb0tr(n-1)的后续组合650来表示一个这样的定向行刷新。通过用于预充电b0的命令preb0660和激活存储体b0并且执行存储体b0中的受害行(n+1)的定向刷新的命令actb0tr(n+1)的后续组合670来表示另一个这样的定向行刷新。

在时段p2期间,存储器设备可以支持每个均访问除b0以外的各个存储体的各种其它命令(未示出)中的任一个,其中在已经完成受害行(n-1)和(n+1)的所有定向行刷新之前提供这样的访问。在实施例中,存储器设备可以对自从该模式的当前实例被设置起对存储体b0的访问的数量进行计数。基于计数,存储器设备的控制逻辑可以检测到最后的受害行已经被刷新并且作为响应,自动地使存储器设备离开该模式——例如通过改写mrstrr启用620写入模式寄存器的信息。使存储器设备离开该模式可以开始时间段p3(例如在用于预充电b0的另一个命令preb0680之后),在其期间对于存储体b0同样支持读取访问、写入访问和或其它类型的访问。然而,在存储器设备能够服务于来自存储器控制器的命令之前,可以同样要求延迟时段tmod。

图7是其中可以实施行敲击保护的计算系统的实施例的框图。系统700表示根据在本文描述的任何实施例的计算设备,并且可以是膝上型计算机、台式计算机、服务器、游戏或娱乐控制系统、扫描仪、复印机、打印机或其它电子设备。系统700可以包括处理器720,其提供用于系统700的处理、操作管理和指令执行。处理器720可以包括任何类型的微处理器、中央处理单元(cpu)、处理核或其它处理硬件以提供对于系统700的处理。处理器720控制系统700的总体操作,并且可以是或包括一个或多个可编程通用或专用的微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑设备(pld)等或这样的设备的组合。

存储器子系统730表示系统700的主存储器,并且提供用于将被处理器720执行的代码或将要在执行例程中使用的数据值的临时储存。存储器子系统730可以包括一个或多个存储器设备,诸如只读存储器(rom)、闪速存储器,一个或多个各种随机存取存储器(ram)或其它存储器设备,或这样的设备的组合。除其它外,存储器子系统730尤其存储并且主控操作系统(os)736以提供用于在系统700中执行指令的软件平台。另外地,其它指令738被存储并且从存储器子系统730被执行,以提供系统700的逻辑和处理。通过处理器720来执行os736和指令738。

存储器子系统730可以包括存储器设备732,其中其存储数据、指令、程序或其他项。在一个实施例中,存储器子系统包括存储器控制器734,该存储器控制器734是根据在本文描述的任何实施例的存储器控制器,并且其提供行敲击保护机制。在一个实施例中,存储器控制器734向存储器设备732提供均基于所检测的行敲击状况的命令。所述命令可以用于存储器设备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表示移动计算设备,诸如计算平板、移动电话或智能电话、启用无线的电子阅读器(e-reader)或其他移动设备。应当理解的是,通常在设备800中示出了某些组件而非这样的设备的所有组件。

设备800可以包括执行设备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对可以被包括在设备800中的诸如加速度计、摄像机、光传感器或其它环境传感器、陀螺仪、全球定位系统(gps)或其它硬件之类的设备进行管理。输入可以是直接用户交互的一部分以及向系统提供影响其操作的环境输入(诸如,过滤噪声、针对亮度检测调整显示器、对摄像机应用闪光灯,或者其它特征)。

在一个实施例中,设备800包括对电池功率使用、电池的充电和与功率节省操作有关的特征进行管理的功率管理850。存储器子系统860可以包括用于将信息存储在设备800中的(一个或多个)存储器设备862。存储器子系统860可以包括非易失的(如果给存储器设备的功率中断,状态不改变)和/或易失性的(如果给存储器设备的功率中断,状态是不确定的)存储器设备。存储器860可以存储应用数据、用户数据、音乐、照片、文档或其他数据以及与系统800的应用和功能的执行有关的系统数据(无论长期的还是临时的)。

在一个实施例中,存储器子系统860包括存储器控制器864(其也能够被视为系统800的控制的一部分,并且能够潜在地被视为处理器810的一部分)。存储器控制器864监视行敲击状况。例如,存储器控制器864可以监视对某些存储器地址的请求,并且记录特定地址是请求的主体的次数。在实施例中,存储器控制器864发出用于存储器862的潜在的受害行的定向刷新的命令。

连接870可以包括使得设备800能够与外部设备进行通信的硬件设备(例如,无线和/或有线连接器和通信硬件)和软件组件(例如,驱动器、协议栈)。设备能够是诸如其他计算设备、无线接入点或基站之类的单独的设备,以及诸如头戴式耳机、打印机之类的外设,或其他设备。

连接870可以包括多个不同类型的连接。为了归纳,设备800被图示出具有蜂窝连接872和无线连接874。蜂窝连接872通常指的是由无线运营商提供的(诸如经由gsm(全球移动通信系统)或变体或衍生物、cdma(码分多址)或变体或衍生物、tdm(时分多路复用)或变体或衍生物、lte(长期演进——也被称为“4g”)或其它蜂窝服务标准提供的)蜂窝网络连接。无线连接874指的是不是蜂窝的无线连接,并且可以包括个域网(诸如蓝牙)、局域网(诸如wifi)和/或广域网(诸如wimax),或其它无线通信。无线通信指的是通过非固体介质的调制的电磁辐射的使用而进行的数据传递。有线通信通过固体通信介质而发生。

外围连接880包括硬件接口和连接器以及软件组件(例如,驱动器、协议栈)来进行外围连接。应当理解的是,设备800可以是(“至”882)至其他计算设备的外围设备以及具有(“从”884)连接到其的外围设备两者。设备800通常具有“坞(docking)”连接器来连接到其他计算设备来为了诸如管理(例如,下载和/或上传、改变、同步)设备800上的内容的目的。另外地,坞连接器可以允许设备800连接到允许设备800控制到例如视听的或其他系统的内容输出的某些外设。

除专有坞连接器或其它专有连接硬件之外,设备800还可以经由常用连接器或基于标准的连接器来进行外围连接880。常用类型可以包括通用串行总线(usb)连接器(其可以包括许多不同的硬件接口中的任一个)、包括微型显示端口(mdp)的显示端口、高清晰度多媒体接口(hdmi)、火线或其它类型。

在一个方面中,一种存储器设备包括第一存储体,其包括第一行和与第一行物理上相邻的第二行;第二存储体,其中,存储器设备的集成电路芯片包括第一存储体和第二存储体;以及检测逻辑,其响应于对第一行的重复访问超过阈值的指示来将存储器设备配置为在第一模式中操作。存储器设备还包括基于第一模式操作的行敲击响应逻辑,其包括响应于所述指示来执行为第二行的定向刷新作准备的一个或多个操作的行敲击响应逻辑。存储器设备还包括访问逻辑,以在所述一个或多个操作的执行之后服务于来自存储器控制器的第一命令,其包括在存储器设备被配置用于在第一模式中操作的同时访问第二存储体的访问逻辑,该访问逻辑进一步响应于在第一命令之后由存储器设备从存储器控制器接收的第二命令来执行第二行的定向刷新。

在实施例中,执行所述一个或多个操作的行敲击响应逻辑包括激活限制除用于定向刷新的访问之外的对第一存储体的访问的逻辑的行敲击响应逻辑。在另一个实施例中,执行所述一个或多个操作的行敲击响应逻辑包括确定对应于第二行的地址信息的行敲击响应逻辑。在另一个实施例中,确定对应于第二行的地址信息的行敲击响应逻辑包括确定物理上相邻的行的逻辑地址之间的偏移的行敲击响应逻辑。

在另一个实施例中,检测逻辑进一步维护在将存储器设备配置为在第一模式中操作之后对第一存储体的访问的数量的计数,检测逻辑进一步将所述计数与阈值数量相比较。在另一个实施例中,存储器设备响应于所述计数超过阈值数量而自动地退出第一模式。在另一个实施例中,存储器设备进一步包括模式寄存器,其中,配置第一模式的检测逻辑包括向模式寄存器进行写入的检测逻辑。在另一个实施例中,行敲击响应逻辑进一步向存储器控制器用信号通知对第一行的重复访问超过阈值。

在另一个方面中,在存储器设备处的方法包括响应于对第一行的重复访问超过阈值的指示而将存储器设备配置用于在第一模式中操作。存储器设备包括第一存储体,其包括第一行和与第一行物理上相邻的第二行;和第二存储体,其中,存储器设备的集成电路芯片包括第一存储体和第二存储体。所述方法进一步包括,基于第一模式,响应于所述指示来执行为第二行的定向刷新作准备的一个或多个操作。所述方法进一步包括:在所述一个或多个操作的执行之后,服务于来自存储器控制器的第一命令,其包括在存储器设备被配置用于在第一模式中操作的同时访问第二存储体,以及,响应于在第一命令之后由存储器设备从存储器控制器接收的第二命令来执行第二行的定向刷新。

在实施例中,执行所述一个或多个操作包括激活限制除用于定向刷新的访问之外的对第一存储体的访问的逻辑。在另一个实施例中,执行所述一个或多个操作包括确定对应于第二行的地址信息。在另一个实施例中,确定对应于第二行的地址信息包括确定物理上相邻的行的逻辑地址之间的偏移。在另一个实施例中,该方法进一步包括,维护在将存储器设备配置用于在第一模式中操作之后对第一存储体的访问的数量的计数,和将所述计数与阈值数量相比较。在另一个实施例中,该方法进一步包括响应于所述计数超过阈值数量而自动地退出第一模式。在另一个实施例中,将存储器设备配置用于在第一模式中操作包括向存储器设备的模式寄存器进行写入。在另一个实施例中,该方法进一步包括用信号通知存储器控制器对第一行的重复访问超过阈值。

在另一个方面中,存储器控制器包括接收对存储器设备的第一行的重复访问超过阈值的指示的检测逻辑。存储器设备包括第一存储体,其包括第一行和与第一行物理上相邻的第二行;以及第二存储体,其中,存储器设备的集成电路芯片包括第一存储体和第二存储体。存储器控制器还包括响应于所述指示而将存储器设备配置为在第一模式中操作的命令逻辑,其中,基于第一模式,存储器设备执行为第二行的定向刷新作准备的一个或多个操作。命令逻辑进一步发送第一命令,其中,存储器设备在所述一个或多个操作的执行之后并且在存储器设备被配置用于在第一模式中操作的同时访问第二存储体以服务于第一命令。命令逻辑进一步在第一命令被发送之后向存储器设备发送第二命令,其中,存储器设备响应于第二命令来执行第二行的定向刷新。

在实施例中,所述指示是基于存储器设备将第一行识别为行敲击事件的目标的。在另一个实施例中,所述一个或多个操作限制除用于定向刷新的访问之外的对第一存储体的访问。在另一个实施例中,所述一个或多个操作确定对应于第二行的地址信息。在另一个实施例中,将存储器设备配置为在第一模式中操作的命令逻辑包括向存储器设备的模式寄存器进行写入的命令逻辑。在另一个实施例中,命令逻辑向模式寄存器写入将第一存储体识别为用于模式的实例的参考存储体的信息。

在另一个方面中,在存储器控制器处的方法包括接收对存储器设备的第一行的重复访问超过阈值的指示,其中,存储器设备包括第一存储体,其包括第一行和与第一行物理上相邻的第二行;和第二存储体,其中,存储器设备的集成电路芯片包括第一存储体和第二存储体。所述方法进一步包括:响应于所述指示来将存储器设备配置为在第一模式中操作,其中,基于第一模式,存储器设备执行为第二行的定向刷新作准备的一个或多个操作。该方法进一步包括发送第一命令,其中,存储器设备在所述一个或多个操作的执行之后并且在存储器设备被配置用于在第一模式中操作的同时访问第二存储体以服务于第一命令。该方法进一步包括:在第一命令被发送之后,向存储器设备发送第二命令,其中,存储器设备响应于第二命令来执行第二行的定向刷新。

在实施例中,所述指示是基于存储器设备将第一行识别为行敲击事件的目标的。在另一个实施例中,所述一个或多个操作限制除用于定向刷新的访问之外的对第一存储体的访问。在另一个实施例中,所述一个或多个操作确定对应于第二行的地址信息。在另一个实施例中,将存储器设备配置为在第一模式中操作包括存储器控制器向存储器设备的模式寄存器进行写入。在另一个实施例中,存储器控制器向模式寄存器写入将第一存储体识别为用于模式的实例的参考存储体的信息。

在本文描述了用于提供行敲击保护的技术和架构。在以上描述中,为了解释的目的,阐述很多特定细节以便提供对某些实施例彻底的理解。然而,对于本领域技术人员,明显的是,能够在没有这些特定细节的情况下实践某些实施例。在其他的实例中,以框图形式示出了结构和设备以免使描述模糊。

在说明书中对“一个实施例”或者“实施例”的引用意指与实施例结合描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。在说明书中的不同地方中的措词“在一个实施例中”的出现不一定都指相同的实施例。

在本文在计算机存储器内的数据比特的操作的算法和符号表示方面给出了具体实施方式的某些部分。由那些计算领域的技术人员使用这些算法描述和表示以最有效地向本领域其他技术人员传达他们的工作的本质。在这里并且通常将算法设想为导致期望结果的步骤的自相一致序列。步骤是需要物理量的物理操纵的那些步骤。通常,但是不一定,这些量采取能够被存储、传递、组合、比较以及以其他方式被操纵的电信号或磁信号的形式。出于对通常使用的考虑,有时、大体上已经证明,将这些信号称为比特、值、元素、符号、字符、项、数字等等是便利的。

然而,应当记住,所有这些和类似的项将与适当的物理量相关联并且仅仅是应用于这些量的便利的标号。除非另外具体地陈述,根据在本文的讨论明显的是,应当理解,贯穿描述,利用诸如“处理”或“计算”或“运算”或“确定”或“显示”等等的术语所进行的讨论指的是将在计算机系统的寄存器和/或存储器内表示为物理(电子)量的数据操纵和/或转换为在计算机系统存储器或寄存器或其他的此类信息储存器、传输或显示设备内类似地表示为物理量的其他数据的计算机系统或者类似的电子计算设备的动作和过程。

某些实施例也涉及用于执行在本文的操作的装置。可以特别地为了所要求的目的而构造该装置,或者该装置可以包括通过存储在计算机中的计算机程序选择性地激活的或重新配置的通用计算机。这样的计算机程序可以被存储在计算机可读存储介质中,该计算机可读存储介质诸如但不限于包括软盘、光盘、cd-rom和磁光盘的任何类型的盘,只读存储器(rom),诸如动态随机存储器(dram)之类的随机存取存储器(ram),eprom,eeprom,磁卡或光卡,或者适合于存储电子指令并且耦合到计算机系统总线的任何类型的介质。

在本文呈现的算法和显示器不是固有地与任何特定计算机或其它装置有关。可以根据在本文的教导将各种通用系统与程序一起使用,或者可以证明构造执行所要求的方法步骤的更专业的装置是方便的。用于各种这些系统的所需结构将根据在本文的描述而显而易见。另外,没有参考任何特定编程语言来描述某些实施例。将理解的是,各种编程语言可以用于实施如在本文所描述的这样的实施例的教导。

除在本文描述的内容之外,可以在不背离它们的范围的情况下对所公开的实施例和其实施方式进行各种修改。因此,应当以说明性的意义而非限制意义来解释在本文的图示和示例。应当仅仅参考所附权利要求来度量本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1