Dram部分刷新的方法和装置的制作方法

文档序号:6755783阅读:229来源:国知局
专利名称:Dram部分刷新的方法和装置的制作方法
背景技术
计算机系统不断被设计来满足两个通常相反的目标,一个是提高的速度,另一个是降低的功耗。在诸如便携计算机系统(包括笔记本计算机和手持计算机)的电子设备的情况下,同时满足这两个目标的努力变得非常明显。随着这类电子设备的使用越来越多,就需要比以往更多的处理能力,包括更快的处理器、更多的存储器等。然而,与此同时,随着这类设备的使用越来越多,也愈发想要使它们更加便携,以便将这类设备更容易携带到可以用新发现的方式使用它们的地方。
这种努力导致试图找到减少这类电子设备中的每个组件(包括存储器器件)所需功率量的方式。已知的方法包括建立降低功率模式(通常被称为“睡眠模式”或“冬眠模式”),当这类电子设备不被主动使用时,它们可进入这些模式。已经创造出了具有较低功率模式的DRAM(动态随机访问存储器)器件,其中,较低功率模式包括在DRAM器件业内俗称的“自刷新”模式。在自刷新模式中,DRAM器件和其他组件之间的交互被最小化,其中包括以下交互向DRAM器件常规发送命令,以完成刷新DRAM器件内的存储单元,防止存储在这些存储单元内的数据丢失的功能。自刷新模式使得可以用内建于DRAM器件中的最少量的逻辑来允许DRAM器件自主地实现刷新DRAM器件的存储单元的功能。
然而,减少DRAM器件功耗的这些方法还未解决以下问题即便在诸如自刷新模式一类的降低功率模式中,为了刷新不包含需要保留数据的大量存储单元,会不必要地浪费功率。


参考以下详细描述,本领域的技术人员将会清楚本发明的目的、特征和优点,其中图1是采用存储器器件的实施方案的框图。
图2是采用计算机系统的实施方案的框图。
图3是一个实施方案的方法的流程图。
图4是另一个实施方案的方法的流程图。
图5是又一个实施方案的方法的流程图。
图6a和6b是采用存储器总线的实施方案的时序图。
图7是采用计算机系统的另一个实施方案的框图。
具体实施例方式
在以下描述中,为了解释阐述了大量细节,以提供对本发明的实施方案的完整理解。然而,本领域的技术人员将会清楚,这些具体的细节对于实现所要求保护的本发明来说不是必要的。
本发明的实施方案关系到包含对以下功能的支持将对DRAM器件的存储单元的刷新限制到DRAM器件中仅具有包含需要保留的数据的存储单元的那些部分,从而减少用来刷新不包含这类数据的存储单元的功率量。虽然以下描述集中于DRAM器件,但是本领域的技术人员将会理解,所要求保护的本发明可被实现来支持具有需要每隔一定时间刷新或以其他方式维护以保留其内容的多个单元的任何存储器器件类型。本领域的技术人员还会理解,虽然以下描述集中于存储单元按二维行列阵列来组织的存储器器件,但是存储单元可以用多种方式来组织,包括被组织成多个库(bank)并且进行或不进行交织,被组织成二维以上的阵列,被组织成可内容寻址的,等等。另外,虽然以下讨论中至少有一部分集中于计算机系统内的存储器,但是本领域的技术人员将会理解,所要求保护的本发明可以结合具有存储器器件的其他电子设备或系统来实现。
图1是采用存储器器件的一个实施方案的简化框图。存储器器件100至少部分地由存储器阵列110、控制逻辑130、行地址译码器134、列地址译码器136、数据列复用器138、外部控制接口154、外部地址接口156和外部数据接口158组成。存储器器件(包括DRAM器件)设计领域的技术人员很容易认识到,图1相对简单地描绘了组成DRAM器件的组件,DRAM器件内的组件的准确排列和配置可以被减少、增加或以其他方式更改,而不会偏离本发明所要求保护的精神和范围。具体地说,虽然存储器器件100被描绘为只具有一个存储器阵列110,意味着为了简化讨论,存储器器件100只有一个被组织为单个二维阵列的存储单元“库”,但是本领域的技术人员将会理解,可以用多种方式中的任意一种来组织存储器器件100的存储单元,包括用一个以上的存储器阵列来提供一个以上的库,或者将单个存储器阵列配置为在功能上相当于多个库。
外部控制接口154、外部地址接口156和外部数据接口158共同提供了存储器器件100和附接于存储器器件100的外部设备(未示出)之间的接口。通过耦合到控制逻辑130的外部控制接口154,存储器器件100接收命令以完成读、写和其他操作。通过耦合到控制逻辑130的外部地址接口156,存储器器件100接收用于指定存储器阵列110内的哪个(哪些)存储单元参与读、写和其他操作的地址。通过至少耦合到数据列复用器138的外部数据接口158,存储器器件100既可以将从存储器阵列110中取出的数据发送到外部设备,又可以接收由外部设备发送的数据以存储在存储器阵列110中。
控制逻辑130在经由外部地址接口156接收到或者没有接收到地址和/或其他信息的情况下,协调经由外部控制接口154接收到的命令的完成。存储器阵列110的存储单元被组织成多行多列的二维阵列,以便控制逻辑130通过向耦合到控制逻辑130的行地址译码器134发送行地址并且向耦合到控制逻辑130的列地址译码器136发送列地址,来选择存储器阵列110中为完成读、写或其他操作而要访问的部分。行地址译码器134译码从控制逻辑130接收的行地址,并使用译码后的行地址来选择存储器阵列110内要访问的一行存储单元。类似地,列地址译码器136译码从控制逻辑130接收的列地址,并使用译码后的列地址来控制数据列复用器138(列地址译码器136与其耦合)从行地址译码器134选出的一行存储单元中选择要访问的(多个)存储单元。
构成控制逻辑130一部分的是刷新控制逻辑140,其响应于完成刷新操作的请求,选择性地完成刷新存储器阵列110内被标记为有数据要保留的多行存储单元的刷新操作。无论是从外部设备接收命令的结果而请求刷新操作,还是响应于过去了预定的时间间隔而触发内部请求,刷新控制逻辑140首先确定被请求刷新的行是否被标记为有数据要保留。如果被请求刷新的行未被标记为有数据要保留,则刷新逻辑140不对该行进行刷新操作(其实就是刷新逻辑140“忽视”所述请求),从而避免不必要地消耗功率来刷新没有数据要保留的行。否则,如果被请求刷新的行被标记为有数据要保留,则刷新控制逻辑140使用行地址译码器134来选择被请求刷新的那一行存储单元,选择的方式与选择一行存储单元作为读或写操作的一部分进行访问的方式别无二致。对有数据要保留或者没有数据要保留的行的选择和标记由耦合到存储器器件100的外部设备(未示出)来完成,存储器器件100从该外部设备接收致使一行或多行被标记为有或没有数据要保留的命令。
当存储器器件100运行于非降低功率模式时,刷新控制逻辑140选择性地执行经由外部控制接口154从外部设备接收的命令,以刷新存储器阵列110内的一行或多行存储单元。在一个实施方案中,经由外部控制接口154接收的完成刷新操作的命令伴随有通过外部控制接口154和/或外部地址接口156而来的一个有关存储器阵列110内的一个特定行将被刷新的指示,此时,如果指定的行被标记为有数据要保留,则该行的行地址被提供给行地址译码器134以选择要刷新的指定行。在另一个实施方案中,经由外部控制接口154接收的完成刷新操作的命令没有伴随着有关某一具体行将被刷新的指示,此时,刷新控制逻辑140内的计数器142提供将被刷新的行的行地址,如果该行被标记为有数据要保留,则来自计数器142的行地址被提供给行地址译码器134以选择要刷新的行。无论该行是否已被标记为有数据要保留,计数器142随后都会递增,以便提供另一个行地址以供响应于这样一种未指定任何行的刷新命令的再次出现而使用。
当存储器器件100运行于降低功率模式,例如“自刷新”模式时,刷新控制逻辑140无需经由从外部设备接收的命令的催促,就自主地、有选择地完成多行存储单元的刷新。在这种降低功率模式中,刷新控制逻辑140内的计数器142提供将被刷新的行的行地址,如果该行被标记为有数据要保留,则所述行地址被提供给行地址译码器134以选择要刷新的行。无论一行是否被标记为有数据要保留,计数器142都会递增,以提供在后续的刷新操作中使用的另一个行地址。
在一些实施方案中,标记缓冲器144构成刷新控制逻辑140的一部分,并且保留有关存储器阵列110内的哪些行存储单元被标记为有数据要保留,而哪些行被标记为没有的标记数据,并且刷新控制逻辑140访问标记缓冲器144以确定是否应当对一个给定的行执行刷新操作。在这类实施方案的一些变体中,耦合到存储器器件100的外部设备使用耦合到外部控制接口154的控制线和耦合到外部地址接口156的地址线的组合来选择将用标记数据写入的标记缓冲器144,从而发送命令来标记存储器器件100中的一行或多行,其中所述标记数据将存储器阵列110内的一行或多行标记为有数据要保留或者没有。可以使用耦合到外部控制接口154和/或外部地址接口156的可用的控制线和/或地址线将标记数据提供给存储器器件100,或者可替换地,可以使用耦合到外部数据接口158的数据线将标记数据提供给存储器器件。
在其他实施方案中,存储器阵列110内的一行或多行存储单元被分配来保留标记数据,这些标记数据指示了哪些行被标记为有数据要保留,哪些行没有数据要保留。在这类实施方案的一些变体中,耦合到存储器器件100的外部设备发送写命令,以用指示了一行或多行有或者没有数据要保留的标记数据来写用于保存标记数据的一行中的至少一部分。这种写命令可以遵从某种协议,并且其时序关系类似于在对存储器器件100内不用来存储标记数据的其他存储单元进行正常数据写的写命令中所采用的时序。可替换地,在其他变体中,耦合到存储器器件100的外部设备使用耦合到外部控制接口154的控制线和耦合到外部地址接口156的地址线的组合来选择将用标记数据写入的行和/或一行内的(多)列,从而发送命令来标记存储器器件100中的一行或多行,其中所述标记数据将一行或多行标记为有数据要保留或者没有。这样的命令可以用某种协议和/或不同于正常写命令的时序关系来配置,从而力图减少向存储器器件100发送命令所需的复杂度和/或时间量,也许可以通过避免使用耦合到外部数据接口158的数据线来实现。
在使用存储器阵列110内的一行或多行存储单元来存储标记数据的实施方案中,可以认为刷新控制逻辑140需要至少部分地由标记缓冲器144组成,该缓冲器对于从用于存储标记数据的一行或多行中读出的标记数据而言起到一种缓存的作用。作为每次可能的刷新操作的前奏来访问一行以获取标记数据,从而确定是否应当实际执行刷新操作,这一过程可能被认为花费了太长的时间和/或被认为使用了过多的功率。因此,可以对存储标记数据的行进行访问,以读取该行内的标记数据的至少一部分,并将一份拷贝存储在标记缓冲器144中。为了适应标记缓冲器144的这种使用,可能需要标记缓冲器144比外部数据接口158(它通过数据列复用器138耦合到存储器阵列110)更直接地耦合到存储器阵列110,从而与标记缓冲器144通过数据列复用器138耦合到存储器阵列110的可能情况相比,使得具有标记数据的选定行中有更多列的数据可被标记缓冲器144获得,以存储标记数据的拷贝。可替换地,考虑到为在标记缓冲器144内保留标记数据的拷贝所需的功率量,可能不需要在刷新控制逻辑140内提供标记缓冲器144。实际上,事实证明作为每次可能的刷新操作的前奏,更希望从存储器阵列110中的一行获得标记,在这种情况下,标记缓冲器144实际上可以通过数据列复用器138耦合到存储器阵列110。
图2是采用计算机系统的一个实施方案的框图。计算机系统200至少部分地由CPU(中央处理单元)210、系统逻辑220和存储器器件250a-250c组成。系统逻辑220耦合到CPU 210并完成多种功能以支持CPU 210的指令执行,包括使CPU 210可以访问系统逻辑220通过系统逻辑220内的存储器控制器240同样耦合到的存储器器件250a-250c。CPU210、系统逻辑220和存储器器件250a-250c构成了计算机系统200的一种形式的内核,能够支持CPU 210对机器可读指令的执行以及数据(包括指令)在存储器器件250a-250c内的存储。
在多种实施方案中,CPU 210可以是多种类型的CPU中的任何一种,包括能够执行众所公知并且广为使用的“x86”指令集的至少一部分的CPU,在其他多种实施方案中,可能有一个以上的CPU。在多种实施方案中,存储器器件250a-250c可以是多种类型的DRAM中的任何一种,包括快速页模式(FPM)、扩展数据输出(EDO)、单数据率(SDR)或双数据率(DDR)形式的同步动态RAM(SDRAM),采用RAMBUSTM接口的各种技术的RAM等。存储器控制器240为逻辑220提供用于存储器器件250a-250c的适当接口,无论是哪种DRAM类型。虽然有很多种可能类型的DRAM,但是存储器器件250a-250c中的至少一部分存储单元被组织为多行多列的二维存储器阵列,例如存储器阵列251a-251c。为了访问存储器阵列251a-251c的任一个中的存储单元,必须至少指定行地址和列地址,所述行地址用于从组成阵列的多行中选择一行存储单元,所述列地址从选定行的存储单元中选择要访问的一个子集。本领域的技术人员将认识到,图2中描绘的三个存储器器件,即存储器器件250a-250c只是可以伴宿CPU的存储器系统的一个例子,可以使用更多或更少数量的存储器器件,而不会偏离本发明所要求保护的精神和范围。
在一些实施方案中,系统逻辑220被耦合到CPU 210并向其提供访问存储设备260的通路,利用该通路可以对存储介质261所携带的数据和/或指令进行访问。实际上,在一些实施方案中,存储介质261携带机器可访问指令,这些指令将由CPU 210执行来致使CPU 210将存储器器件250a-250c内的一行或多行标记为包含要保留的数据或者不包含,下面将会进行描述。存储介质261可以是基于本领域的技术人员可以理解的多种技术的多种类型之一,包括CD或DVD ROM、磁盘或光盘、磁光盘、磁带、半导体存储器、纸带或其他材料上的字符或打孔、等等。
在一些实施方案中,非易失性存储器器件230耦合到系统逻辑220(或者计算机系统200的其他部分),并且用于存储在计算机系统200“重启”或初始化(例如,当计算机系统200开机或加电时)时执行的初始指令系列,以完成为准备计算机系统200用于正常使用所需的任务。在这类实施方案的一些变体中,一旦计算机系统200初始化或者重启,CPU210就访问非易失性存储器器件230以取出要执行的指令,使存储器控制器240准备好正常用于向CPU 210提供对存储器器件250a-250c的访问。有可能这些相同的取出指令被执行来使系统逻辑220准备好正常用于提供对存储设备260的访问,无论存储设备260可以使用何种形式的存储介质261。
无论在计算机系统200初始化或重启时将由CPU 210执行的指令序列源于何处,都会致使CPU 210初始化要使用的存储器器件250a-250c,包括配置刷新逻辑254a-254c以及用于标记数据的伴随存储区,所述标记数据将存储器器件250a-250c至少之一内的若干行存储器标记为具有要通过执行刷新操作而保留的数据或者没有这样的数据。在一个实施方案中,存储器器件250a的刷新逻辑254a包含标记缓冲器255a,用于存储指定存储器阵列251a内的哪些行存储单元包含要保留的数据的标记数据,在这种情况下,通过执行一个指令序列而致使CPU 210使用存储器控制器240向存储器器件250a发送命令和/或数据,以将标记缓冲器255a内的条目初始化为存储器阵列251a内没有一行被标记为有数据要保留的状态。在另一个实施方案中,刷新逻辑254a包含标记缓冲器255a作为从存储器阵列251a内的一行或多行获得的标记数据的缓存,在这种情况下,可以致使CPU 210与存储器控制器240协作来选择存储器阵列251a的哪些行将被用于存储标记数据,和/或可以致使CPU210将用来存储标记数据的若干行存储单元初始化为存储器阵列251a内的行被标记为没有数据要保留的状态。在另外一个实施方案中,刷新逻辑254a不包含象标记缓冲器255a这样的标记缓冲器,在这种情况下,也可以使CPU 210选择用于存储标记数据的行和/或将用于存储标记数据的行中的存储单元初始化为存储器阵列251a内的行被标记为没有数据要保留的状态。
在计算机系统200的正常操作期间,CPU 210执行指令,这些指令致使CPU 210向存储器器件内组成存储器阵列(例如存储器器件250a的存储器阵列251a)的一行或多行写入数据(也许包括指令)。在将这样的数据写入存储器器件250a内的行之前或与此同时,还致使CPU 210通过存储器控制器240向存储器器件250a发送命令,以将正写入这些数据的行标记为有数据要保留。在一个实施方案中,标记数据被存储在独立于存储器阵列251a的缓冲器,例如标记缓冲器255a中,在这种情况下,标记缓冲器255a的一部分将被写入,以将那一行标记为有数据要保留。在另一个实施方案中,标记数据被存储在存储器阵列251a内的(多)行中,在这种情况下,存储有标记数据的行的一部分将被写入,以将正写入数据的行标记为有数据要保留。结果,当刷新逻辑254a被存储器控制器240命令来刷新那一行时,具体地说,或者当刷新逻辑254a内的计数器在将要执行刷新操作时提供一个指定那一行的行地址时,刷新逻辑254a将获得对应于那一行的标记数据,将确定应当实际执行刷新操作以便刷新那一行,并且将对那一行执行刷新操作。
在计算机系统200的正常操作期间,CPU 210执行指令,这些指令致使CPU 210通过存储器控制器240向存储器器件250a发送命令,以将一行标记为没有数据要保留。在一个实施方案中,标记数据被存储在独立于存储器阵列251a的缓冲器,例如标记缓冲器255a中,在这种情况下,标记缓冲器255a的一部分将写入一个值,该值将那一行标记为没有数据要保留。在另一个实施方案中,标记数据被存储在存储器阵列251a内的一行或多行中,在这种情况下,存储有标记数据的行的一部分将写入一个值,该值将那一行标记为没有数据要保留。结果,当刷新逻辑254a被存储器控制器240命令来刷新那一行时,具体地说,或者当刷新逻辑254a内的计数器在将要执行刷新操作时提供一个指定那一行的行地址时,刷新逻辑254a将获得对应于那一行的标记数据,将确定不应执行刷新操作来刷新那一行,并且将不会对那一行执行刷新操作。
在一些实施方案中,当计算机系统200处于降低功率状态时,组成计算机系统200的存储器器件,例如存储器器件250a从存储器控制器240接收到进入降低功率状态(例如自刷新状态)的命令,在降低功率状态下,存储器控制器240和存储器器件250a之间在计算机系统200处于非降低功率状态下的正常操作期间所发生的至少一部分交互将停止。在这种自刷新状态期间,存储器器件250a必须自主地完成对存储器阵列251a内的多行存储单元进行刷新的刷新操作,并且执行刷新指定行的刷新操作的请求可以在刷新逻辑254a内由计数器以预定的时间间隔生成,而不是从存储器控制器240接收的。响应于执行刷新一行的刷新操作的每个请求(计数器已为之生成了行地址),刷新逻辑254a访问标记数据,无论该数据是位于专用的缓冲器例如标记缓冲器255a内还是位于在存储器阵列251a内分配的行内,以确定已被请求刷新的行是否被标记为有数据要保留。如果已被请求执行刷新操作的行被标记为有数据要保留,则执行刷新操作,从而有助于保证该行的内容不会丢失。否则,如果已为之发出请求的行未被标记为有数据要保留,则不执行刷新操作。
图3是实施方案的流程图。当要保留的数据正被写入存储器器件中的一行存储单元时,或者当要保留的数据就要被写入一行存储单元时(在310),该行被标记为有数据要保留(在320),如果该行尚未被如此标记的话。在一个实施方案中,CPU执行构成监视软件一部分的一系列指令,所述监视软件至少监视当CPU执行另一系列指令时该CPU对存储器器件进行的访问,并且监视软件致使CPU将那些行中的一行或多行标记为有数据要保留。
图4是实施方案的另一个流程图。在电子设备的正常操作期间,当被标记为有数据要保留的行不再有数据要被实际保留时(在410),该行被标记为没有数据要保留(在420)。在一个实施方案中,CPU执行构成监视软件一部分的一系列指令,所述监视软件至少监视正在由CPU执行的另一系列指令对存储器中多个块的位置的重新分配,并且当存储器中多个块的位置的重新分配导致一行或多行实际上不再有数据要保留时,监视软件致使CPU将一行或多行标记为没有数据要保留。
图5是实施方案的另外一个流程图。在510,接收到刷新存储器器件内的一行存储单元的请求。在一些实施方案中,该请求是由位于存储器器件之外的设备发出的,而在其他实施方案中,该请求例如是在存储器器件处于降低功率模式(例如“自刷新”模式)时,由存储器器件内的计数器生成的,该计数器以定期的间隔提供待刷新的行的行地址。在520,检查该行是否被标记为有数据要保留。如果该行被标记为有数据要保留,则在530对该行执行刷新操作。
图6a和6b是在存储器总线上进行信号传输的实施方案的时序图。图6a和6b都描绘了向一个或多个存储器器件发送标记命令,以将一行存储单元标记为有数据要保留或者没有。虽然这些附图和相应的讨论都集中于其上发生的事务与时钟信号同步的存储器总线的实施方案,但是本领域的技术人员很容易理解,其他实施方案可以采用其他形式的时序关系或者可以是异步的。
参考图6a,在一个实施方案中,时序关系被配置为与一种或多种已知的SDRAM接口兼容,在这种情况下,标记命令被嵌入在激活命令中,从而产生一个组合命令给一个或多个存储器器件,该命令既激活要访问的特定行,又将该行标记为有数据要保留或者没有。虽然图6a及其相关讨论集中于将标记命令嵌入在激活命令中,但是其他实施方案可以将标记命令嵌入在一个或多个其他可能的命令中。在这种实施方案的一些变体中,可以向正常情况下与已知的SDRAM接口一起使用的一组现有命令信号线添加附加的命令信号线。该附加的信号线只是被用来使可在现在扩增的一组命令信号线上进行二进制编码的不同命令的数目加倍。可替换地,这样附加的信号线可以单独地用作以下目的将标记命令作为嵌入命令添加到多个可能的现有命令中的任何命令。
如果需要的话,在带有嵌入标记命令的激活命令的实际传送之前可以在时间点687和688之间(在这之间不发生任何命令、地址或数据的传送)在CK和-CK信号线上发生预定数量的时钟跳变,这取决于给定的SDRAM接口和/或所要标记的行所在的存储器器件的时序要求。激活命令和嵌入的标记命令在时间点688上传送,并且在该实施方案的一个变体中,在传送这些命令的同时,库地址信号BA0和BA1传送受影响的行所在的库的库地址(如果给定的存储器器件有多个库的话),并且地址信号A0-A11被用来指定该库中受影响的行。如果需要的话,在还是不发生任何活动的时间点288和289之间,在CK和-CK信号线上的另一组预定数量的时钟跳变可以跟在预充电命令的传送之后。
参考图6b,在类似于图6a所示的方案的另一个实施方案中,并且该方案也被配置为具有与一种或多种已知的同步DRAM接口相互兼容的时序,在这种情况下,标记命令被嵌入在数据访问命令,例如读或写命令中,产生一个组合命令给一个或多个存储器器件,以读或写数据,同时将数据访问中所涉及的行标记为有数据要保留或者没有。虽然图6b及其相关讨论集中于将标记命令嵌入在数据访问命令中,但是其他实施方案完全可以将标记命令嵌入在一个或多个其他可能的命令中。
同样,如果需要的话,在带有嵌入标记命令的数据访问命令的实际传送之前和/或之后,可以分别在不发生任何命令、地址或数据传送的时间点687和688之间和/或时间点688和689之间,在CK和-CK信号线上发生预定数量的时钟跳变,这取决于给定的SDRAM接口和/或所要访问和标记的行所在的存储器器件的时序要求。数据访问(读或写)命令在时间点688上传送,并且在该实施方案的一个变体中,在传送这一命令的同时,库地址信号BA0和BA1传送受影响的行所在的库的库地址(如果给定的存储器器件有多个库的话),并且地址信号A0到A9(取决于可用的列的数目)被用来指定在该库中受影响的行内所要访问的列。
同样与数据访问命令的传送同时发生的是地址信号A11上高状态的传送,从而指示用于将受影响的行标记为有数据要保留或者没有的标记命令被嵌入在数据访问命令中。在该实施方案的一些变体中,可以提供一种方式,指示嵌入的标记命令意图将受影响的行标记为有数据要保留或者没有。可替换地,在该实施方案的其他变体中,地址信号A11的这种使用可以成为一个协议的一部分,在该协议中,将标记命令与写命令嵌入在一起被解释为将受影响的行标记为有数据要保留的命令,而将标记命令与读命令嵌入在一起被解释为将受影响的行标记为没有数据要保留的命令。此外与数据访问命令的传送同时发生的还可以有地址信号A10上高状态的传送,从而指示在完成数据访问后关闭该行的自动预充电命令也已被嵌入在数据访问命令中。
在图6a和6b描绘的实施方案中,做出有关哪些命令和/或地址信号线可被用来传送标记命令的选择是为了促成与已知的同步DRAM接口之间的互操作性,所述同步DRAM接口例如但不限于是当前广为使用的同步DRAM接口的DDR变体。不管涉及使用哪条具体的信号线,例如地址线A11,本领域的技术人员都很容易认识到命令和/或地址信号线的任意组合都可以用于实现传送标记命令和/或提供与现有的DDR变体之间的互操作性,而不会偏离所要求保护的本发明的精神和范围。
图7是采用计算机系统的另一个实施方案的框图。与图2的计算机系统200并非不同,计算机系统700至少部分地是由CPU 710、系统逻辑720和存储器器件750a-750c组成的。系统逻辑720耦合到CPU 710并完成多种功能以支持CPU 710的指令执行,包括使CPU710可以访问系统逻辑720通过系统逻辑720内的存储器控制器740以及存储器总线780同样耦合到的存储器器件750a-750c。CPU 710、系统逻辑720和存储器器件750a-750c构成了计算机系统700的一种形式的内核,能够支持CPU 710对机器可读指令的执行以及数据(包括指令)在存储器器件750a-750c内的存储。
与计算机系统200一样,在计算机系统700的多种实施方案中,CPU 710可以是多种类型的CPU中的任何一种,存储器器件750a-750c可以是多种类型的DRAM中的任何一种,并且存储器控制器740为逻辑720提供通过存储器总线780与存储器器件750a-750c之间的适当接口,无论DRAM类型如何。本领域的技术人员将认识到,图7中描绘的三个一组的存储器器件,即存储器器件750a-750c只是可以伴宿CPU的存储器系统的一个例子,可以使用更多或更少数量的存储器器件,而不会偏离本发明所要求保护的精神和范围。
在一些实施方案中,系统逻辑720被耦合到CPU 710并向其提供访问存储设备760的通路,利用该通路可以对存储介质761所携带的数据和/或指令进行访问,这些指令在由CPU 710执行时可以致使CPU 710将存储器器件750a-750c内的一行或多行标记为包含要保留的数据或者不包含,如下面将会进行的描述。存储介质261可以是基于本领域的技术人员可以理解的多种技术的多种类型之一。在一些实施方案中,非易失性存储器器件730耦合到系统逻辑720(或者计算机系统700的其他部分),用于存储在计算机系统700重启或初始化时执行的初始指令系列,以完成为准备计算机系统700用于正常使用所需的任务,这可以使存储器控制器740准备好正常用于为CPU 710提供对存储器器件750a-750c的访问,和/或使系统逻辑720准备好正常用于提供对存储设备760的访问,无论存储设备760可以使用何种形式的存储介质761。
无论在计算机系统700初始化或重启时将由CPU 710执行的指令序列源于何处,都会致使CPU 710初始化要使用的存储器器件750a-750c,包括配置存储器控制器740和存储器控制器740内的标记缓冲器745,以将存储器器件750a-750c至少之一内的若干行存储器标记为具有要通过执行刷新操作而保留的数据或者没有这样的数据。可以通过执行一个指令序列而致使CPU 710将标记缓冲器745内的条目初始化为存储器阵列751a-751c的一个或多个内没有一行被标记为有数据要保留的状态。
在计算机系统700的正常操作期间,CPU 710执行指令,这些指令致使CPU 710向存储器器件内组成存储器阵列(例如存储器器件750a的存储器阵列751a)的一行或多行写入数据(也许包括指令)。在将这样的数据写入存储器器件750a内的行之前或与此同时,还致使CPU 710向标记缓冲器745中写入标记数据,以将存储器阵列751a内正写入这些数据的行标记为有数据要保留。结果,当存储器控制器740命令对存储器阵列751a内的一行进行刷新时,存储器控制器740将从标记缓冲器745获得标记数据,以识别被标记为有数据要保留的行,也许正好是CPU 710刚刚被致使标记为有数据要保留的那行。然后,存储器控制器740将与刷新命令一起向存储器器件750a发送标识该行的行地址,使得存储器器件750a对存储器阵列751a内的该特定行执行刷新操作。
在计算机系统700的正常操作期间,CPU 710执行指令,这些指令致使CPU 710向标记缓冲器745中写入标记数据,以将存储器阵列(例如存储器器件750a的存储器阵列751a)内的行标记为没有数据要保留。结果,当存储器控制器740命令对存储器阵列751a内的一行进行刷新时,存储器控制器740将从标记缓冲器745获得标记数据,以识别被标记为有数据要保留的行,所识别出的行将是与CPU 710刚刚被致使标记为没有数据要保留的那行不同的一行。然后,存储器控制器740将与刷新命令一起向存储器器件750a发送标识该不同行的行地址,使得存储器器件750a对存储器阵列751a内的该特定行执行刷新操作。
在一些实施方案中,当计算机系统700处于降低功率状态时,组成计算机系统700的存储器器件,例如存储器器件750a从存储器控制器740接收到进入降低功率状态(例如自刷新状态)的命令。在这种自刷新状态期间,存储器器件750a必须自主地完成对存储器阵列751a内的多行存储单元进行刷新的刷新操作,并且执行刷新指定行的刷新操作的请求可以在刷新逻辑754a内由计数器以预定的时间间隔生成,而不是从存储器控制器740接收的。由于不同于图2的存储器器件250a,存储器器件750a的刷新逻辑754a没有标记缓冲器,所以存储器器件750a可以刷新存储器阵列751a内的所有行,无论存储器阵列751a内的哪些行在标记缓冲器745中被标记为有数据要保留而哪些行被标记为没有。这可能很有必要,因为需要通过停止存储器控制器740和存储器器件750a之间的至少某些形式的交互而节约功率,作为进入自刷新状态的一部分,正常情况下都会这样做,本领域的技术人员是知道的。
已经结合优选实施方案描述了本发明。很明显,参考以上描述,本领域的技术人员将会清楚大量替换、修改、变化和使用。本领域的技术人员将理解,本发明可被实现来支持具有多种可能存储器器件的多种类型的电子设备,在上述存储器器件中,存储单元不断地需要某种形式的“刷新”或其他定期的维护活动,以防止数据丢失。本领域的技术人员还将理解,本发明可被实现来支持不同于计算机系统的其他电子设备,例如音频/视频娱乐设备、车辆中的控制设备、电子电路控制的电器等。
权利要求
1.一种装置,包括具有多个存储单元的存储器阵列,所述多个存储单元被组织为多行,每行含有多个存储单元;标记缓冲器,其存储有关所述存储器阵列内的哪些行存储单元被标记为有数据要保留的指示;以及刷新逻辑,如果一行存储单元在所述标记缓冲器中被标记为有数据要保留,则所述刷新逻辑选择性地刷新该行存储单元。
2.如权利要求1所述的装置,还包括接收对一行存储单元执行刷新操作的命令的接口。
3.如权利要求2所述的装置,其中所述接口被配置为接收与执行刷新操作的命令相伴随的值,该值标识出选择性地对其执行所命令的刷新操作的特定行存储单元。
4.如权利要求2所述的装置,其中所述刷新逻辑还包括计数器,该计数器提供的值标识出响应于接收到对一行存储单元执行刷新操作的命令,选择性地对其执行所命令的刷新操作的特定行存储单元。
5.如权利要求1所述的装置,还包括接收进入降低功率状态的命令的接口,在所述降低功率状态中,执行刷新操作的命令不是从外部设备接受的;以及计数器,其提供的值标识出响应于过去了预定的时间间隔,选择性地对其执行刷新操作的特定行存储单元。
6.如权利要求1所述的装置,其中所述标记缓冲器由构成所述存储器阵列的一行或多行存储单元组成。
7.一种装置,包括CPU存储器器件,该器件具有多个存储单元,这些存储单元被组织为多行,每行含有多个存储单元,并且该器件具有用于接收将一行存储单元标记为没有数据要保留的命令的接口;以及耦合到所述CPU和所述存储器器件的存储器控制器,其被配置为向所述存储器器件发送将一行存储单元标记为没有数据要保留的命令。
8.如权利要求7所述的装置,其中所述存储器器件还包括刷新逻辑,其被配置为不对被标记为没有数据要保留的一行存储单元进行刷新,而不管刷新该行存储单元的请求。
9.如权利要求8所述的装置,其中所述存储器器件从所述存储器控制器接收刷新特定行存储单元的请求。
10.如权利要求8所述的装置,其中所述刷新逻辑包括计数器,该计数器提供一行存储单元的地址,以生成刷新该行存储单元的请求。
11.如权利要求7所述的装置,其中所述存储器控制器还被配置为向所述存储器器件发送将一行存储单元标记为有数据要保留的命令,并且所述存储器器件的接口被配置为接收将一行存储单元标记为有数据要保留的命令。
12.一种方法,包括发送将存储器器件内的一行存储单元标记为没有数据要保留的命令;以及如果所述存储器器件内的一行存储单元被标记为没有数据要保留,那么尽管接收到对一行存储单元执行刷新操作的请求,也会选择性地不对该行存储单元执行刷新操作。
13.如权利要求12所述的方法,还包括发送将存储器器件内的一行存储单元标记为有数据要保留的命令;以及响应于接收到对一行存储单元执行刷新操作的请求,如果所述存储器器件内的一行存储单元被标记为有数据要保留,则对该行存储单元执行刷新操作。
14.如权利要求12所述的方法,其中接收到对一行存储单元执行刷新操作的请求的操作包括所述存储器器件接收到由位于该存储器器件之外的设备发送的、对一行存储单元执行刷新操作的请求。
15.如权利要求12所述的方法,其中接收到对一行存储单元执行刷新操作的请求的操作包括在所述存储器器件内生成对一行执行刷新操作的请求,该行是由所述存储器器件内的计数器所生成的地址来标识的。
16.如权利要求15所述的方法,其中生成对一行执行刷新操作的请求的操作是响应于所述存储器器件从位于该存储器器件之外的设备接收到进入降低功率状态的命令而发生的。
18.一种包括代码的机器可访问介质,所述代码在由电子设备内的处理器执行时导致该电子设备向所述电子设备内的存储器器件发送将该存储器器件内的一行存储单元标记为有数据要保留的命令;以及向该行存储单元中写入数据。
19.如权利要求18所述的机器可访问介质,还导致所述处理器向所述存储器器件发送将一行存储单元标记为没有数据要保留的命令。
全文摘要
根据存储器器件内的每一行存储单元是否被标记为有数据要保留,选择性地刷新每一行存储单元的存储器器件、刷新逻辑和方法。
文档编号G11C11/406GK1839446SQ200480024197
公开日2006年9月27日 申请日期2004年6月30日 优先权日2003年7月1日
发明者史俊, 阿尼美什·米什拉 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1