执行存储器维护操作的方法和装置的制作方法

文档序号:6778437阅读:100来源:国知局
专利名称:执行存储器维护操作的方法和装置的制作方法
技术领域
本发明一般地涉及计算机系统,更具体地说,涉及执行存储器维护和校准操作。
背景技术
大多数现代计算机系统都采用某种类型的随机存取存储器,例如,动态随机存取存储器(DRAM)。可以将DRAM设备配置为提供高带宽、低等待时间的存储器数据访问。这些年来,为了提高系统性能,DRAM与其他系统设备(例如,存储器控制器)之间的数据传输速率稳步提高。
不幸的是,随着设备之间的数据传输速率的提高,设备之间传输的数据字节可以由于不同的原因(例如,通道温度变化、内部电容、在不同设备上使用的驱动器和/或接收器的电流及电压差、内部总线路径的不同路由等)而变得错位。这种错位可以导致从一个设备传输的数据被其他设备误读。这种未对准可能导致将错误装配的数据馈入系统的处理器核心,这可能具有不可预料的结果并防碍了性能。
为了防止数据错位,可以定期执行一个或多个校准操作以确保设备间通信的准确传输。校准操作可以包括电流校准、通道温度校准等。
虽然大多数存储器校准操作不改变存储器,但是一些校准操作可能要求将校准数据写入存储器的区域并随后从中读出。例如,可以将预定模式的校准数据写入存储器的区域。随后,可以从存储器读取将校准数据写入其的区域,以便将取回的数据与预定模式相比较。通过检测写入存储器和从存储器读取的校准数据中的不一致性,可以调整诸如通道温度、电流和电压之类的参数来确保准确的数据传输。
可以连续地执行上述校准操作以确保数据传输在存储器传输的数据眼中发生。数据眼可以描述其中发生准确数据传输的各种参数设置的界限。数据眼界限之外的参数设置可以导致错误的数据传输。因此,校准操作可以测量数据眼并实现其中数据传输发生在数据眼内的设置。
执行此类存储器校准操作的一个问题是,某些存储器维护操作(例如,存储器清洗(scrubbing)和存储器调零(zeroing))可以更改写入存储器区域的校准数据。在存储器清洗期间,例如,存储器控制器可以在空闲期读取存储器,纠正单位错误,并将纠正后的内容写回存储器。存储器调零,例如,可以包括用逻辑0替换特定区域或整个存储器的内容。更改存储在存储器中的校准数据会限制正确校准系统的能力。
因此,需要一种用于执行存储器维护和校准操作的改进的方法、系统和装置。

发明内容
本发明一般地涉及执行存储器维护和存储器校准操作。
本发明的一个实施例提供了一种用于执行存储器维护操作的方法。所述方法通常包括顺序地选择要在该处执行所述存储器维护操作的存储器的地址;判定选定的地址是否落入包含校准数据的存储器的地址范围内;以及响应于判定所述选定的地址落入包含所述校准数据的存储器的所述地址范围内,跳转到下一个地址而不在所述选定的地址处执行所述存储器维护操作。
本发明的另一个实施例提供了一种配置为执行存储器维护操作的控制器。所述控制器通常配置为顺序地选择要执行存储器维护操作的存储器的地址;判定选定的地址是否落入包含校准数据的存储器的地址范围内;以及响应于判定所述地址落入包含所述校准数据的存储器的所述地址范围内,跳转到下一个地址而不在所述选定的地址处执行所述存储器维护操作。
本发明的另一个实施例提供了一种装置,所述装置包括存储器;校准寄存器,所述校准寄存器包含在该处存储校准数据的所述存储器的地址范围;以及控制器。所述控制器通常配置为顺序地选择要执行存储器维护操作的存储器的地址;判定选定的地址是否落入包含校准数据的存储器的地址范围内;以及响应于判定所述地址落入包含所述校准数据的存储器的所述地址范围内,跳转到下一个地址而不在所述选定的地址处执行所述存储器维护操作。


为了详细理解其中实现本发明的上述特征、优点和目标的方式,可以参考在附图中示出的本发明的实施例获得以上概述的本发明的更具体的说明。
但是,要指出的是,附图仅示出了本发明的典型实施例,因此不应看作限制本发明的范围,因为本发明可以容忍其他等效实施例,这些附图是图1是根据本发明的实施例的示例性系统的图示;图2是根据本发明的实施例的在存储器控制器与存储器之间交换校准数据的图示;图3是根据本发明的实施例的示例性校准寄存器的图示;以及图4是根据本发明的实施例的执行存储器维护操作的示例性步骤的流程图。
具体实施例方式
本发明的实施例提供了用于执行存储器维护和校准操作的方法、系统和装置。为了执行校准操作,可以首先将校准数据写入存储器并随后读回。然后,可以执行校准操作,以响应检测到写入的数据与从存储器读回的数据之间的差异。为了防止在存储器维护操作期间更改所述校准数据,本发明的实施例规定在所述存储器维护操作期间跳过包含校准数据的区域。因此,保留了所述校准数据,以允许执行适当的校准操作。
在下文中,参考了本发明的实施例。但是,应当理解,本发明并不限于具体说明的实施例。相反,构想了以下特征和元素(无论是否与不同实施例相关)的任何组合以实现和实施本发明。此外,在各种实施例中,本发明提供了优于现有技术的许多优点。但是,虽然本发明的实施例可以实现优于其他可能的解决方案和/或现有技术的优点,但是给定的实施例是否实现特定的优点并不限制本发明。因此,以下的各方面、特征、实施例和优点只是示例性的。同样,对“本发明”的引用不应理解为是对本文所公开的任何发明主题的归纳。
示例性系统图1示出了其中可以实现本发明的实施例的示例性系统100的方块图。系统100包括中央处理单元(CPU)111、存储器控制器121和存储器131。CPU 111可以通过系统总线119连接到存储器控制器121。在某些实施例中,CPU 111和存储器控制器121可以集成在片上系统(SOC)中,如图1所示。
CPU 111可以配置为向存储器控制器121发出命令。例如,CPU 111可以向存储器控制器121发出读写命令以执行对存储器131的读写访问。本领域的技术人员将认识到,虽然示出了一个CPU 111,但是可以将多个CPU 111连接到总线119。此外,每个CPU 111都可以配置为向存储器控制器121发出其各自的命令。
存储器131可以是随机存取存储器,例如动态随机存取存储器(DRAM)。存储器131可以足够大,以便容纳由CPU 111处理的一个或多个程序和/或数据结构。虽然将存储器131示为单个实体,但是应当理解,存储器131实际上可以包括多个模块,并且存储器131可以存在于多个级别,从高速缓存到低速但更大的DRAM芯片。
存储器控制器121可以通过存储器总线129可通信地连接到存储器131。存储器控制器121可以配置为执行对存储器131的访问,以响应从CPU 111接收到命令。例如,CPU 111可以发出读取命令,其包含标识所需数据的位置的存储器131的地址。响应于接收到读取命令,存储器控制器121可以访问存储器131来从存储器131中的指定地址检索所需的数据。然后,可以将检索的数据通过系统总线119提供给CPU 111。本领域的技术人员将认识到,虽然在图1中单独示出,但是存储器控制器可以是CPU111的一部分。因此,可以由存储器控制器121通过将CPU连接到存储器131的总线来执行存储器访问。
存储器校准和维护操作存储器控制器121还可以配置为执行存储器校准操作以确保与存储器131的准确数据传输。例如,可以执行存储器校准操作来校准通道温度、驱动器电流、刷新操作等。校准可以减少数据错位,由此降低设备间错误数据传输的发生并提高性能。
在一些实施例中,可以发生校准通道温度、驱动器电流等以响应判定设备间的错误数据传输。例如,存储器控制器121可以将预定模式的数据写入存储器131的给定区域。随后,存储器控制器121可以回读存储器131的该给定区域。存储器控制器121可以将从给定区域检索的数据与预定模式相比较来检测错误。响应于检测到错误,存储器控制器121可以根据检测到的错误来执行存储器维护操作,例如,通道温度校准、驱动器电流校准等。
在其他实施例中,校准操作可以在任何断电退出之后发生。在这种实施例中,可以在断电退出时将校准数据写入存储器131。在下一次系统初始化时,操作系统代码(例如,基本输入/输出系统(BIOS)代码)可以使存储器控制器读取该校准数据,并将该校准数据与预定模式相比较,以确定设备间的准确数据传输所必需的具体校准操作。
图2示出了存储器控制器121可以向其写入校准数据210的存储器131的区域230。校准数据210可以例如包括任何预定模式的逻辑0和逻辑1。在一些实施例中,因为校准数据210仅用于校准目的,所以校准数据可以具有很少的纠错码(ECC)。ECC(例如,汉明码、里德-所罗门码等)可以配置为纠正单位、双位甚至多位错误。
如图2所示,校准数据210可以由存储器控制器121通过执行写入操作211(例如,在存储器总线129上)来写入区域230。随后,存储器控制器121可以在区域230处执行读取操作221以检索在之前的写入操作211期间存储的校准数据210。
写入区域230的校准数据与在读取操作期间检索的校准数据之间的差异可以指示执行一个或多个校准操作的需要。因为校准数据具有预定模式,所以存储器控制器121可以根据写入的模式与从存储器131读回的模式之间的差异来标识需要校准的特定设备、通道等。因此,存储器控制器121可以对设备/通道执行一个或多个校准操作。例如,存储器控制器121可以标识负责写入包含所述差异的校准数据的一部分的特定驱动器。存储器控制器121可以调整驱动器的驱动电流以纠正差异。
除了校准操作,存储器控制器121还可以定期执行一个或多个更改存储器的内容的存储器维护操作。示例性的存储器维护操作包括存储器清洗和存储器调零。
存储器清洗是这样的过程其中存储器控制器121可以在空闲时段读取存储器131的块,纠正单位错误,并将内容写回到存储器以防止单位错误累加成不可纠正的多位错误。存储器清洗可以由存储器控制器121在系统正常运行期间通过扫除存储器131的全部内容来在后台执行。与存储器131的内容关联的ECC可用于标识和纠正错误。
另一方面,存储器调零可以涉及用逻辑0替换存储器131的一个或多个区域或所有内容。例如,可以执行调零以在不再需要敏感数据之后删除存储器131中的敏感数据。通过用逻辑0替换敏感数据,可以防止对敏感数据的无意和未授权的访问。可以在系统初始化时和/或在系统正常运行期间定期执行存储器调零。与存储器清洗一样,调零可以涉及扫除整个存储器131或存储器131的特定区域以使用逻辑0来替换存储器131的内容。
保留校准数据存储器维护操作(包括但不限于存储器清洗和存储器调零)可以更改包含校准数据的存储器131的区域,例如,在图2中示出的区域230。但是,并不希望更改校准数据,因为校准数据可以包含执行校准操作所必需的信息。为了防止存储器维护操作更改校准数据,本发明的实施例允许跳过包含校准数据的存储器131中的区域。
在一个实施例中,可以提供包含校准数据的起止地址的校准寄存器。操作系统可以配置为使存储器控制器121在系统启动时或定期访问校准寄存器以标识校准数据的位置。存储器控制器121可以在执行存储器维护操作时跳过在寄存器中提供的地址范围。
图3示出了根据本发明的实施例的示例性64位校准寄存器300。如图所示,校准寄存器300可以包括校准有效字段310、校准起始地址字段320、校准结束地址字段330和保留字段340。
如图所示,校准有效字段310可以是指示寄存器中指定的地址范围是否包含校准数据的单个位。例如,在图3的示例性图示中,设置为逻辑0的校准有效位310指示寄存器未启用。因此,在寄存器中指定的地址范围不包含校准数据。因此,在存储器维护操作期间可以不跳过寄存器中指定的地址范围。
另一方面,设置为逻辑1的校准有效位310指示校准数据存在于地址范围中。因此,在存储器维护操作期间会跳过寄存器中指定的存储器范围。本领域的技术人员将认识到,本发明的实施例并不限于上述校准有效位的特定实施方式。例如,可以使指示寄存器300是否启用的逻辑值变得相反。此外,也可以实现任何其他合理的指示寄存器300是否禁用的方法,例如,向寄存器300写入预定值。
如图3所示,校准起始地址320和校准结束地址330可以是指示包含校准数据的存储器的区域的起始地址和结束地址的28位地址字段。例如,校准起始地址320可以指示图2中的区域320的起始地址。因此,不会清洗在校准起始地址处开始的内容。
校准结束地址330可以指示可以执行存储器维护操作的区域230之后的下一个地址。例如,校准结束地址可以是区域230的结束地址之后的下一个地址。虽然起始和结束地址字段在示例性寄存器300中是28位,但是本领域的技术人员将认识到,任何数目的位都可以用于地址字段。例如,位数可以取决于要寻址的存储器的大小。
保留字段340可以包含一个或多个为以后使用保留的位。例如,保留字段340可以指示必须为其跳过由校准起始地址320和校准结束地址330指定的地址范围的存储器维护操作的类型。
图4示出了在校准寄存器启用时为了执行更改存储器内容的存储器维护操作(例如,存储器清洗或存储器调零)而由存储器控制器执行的示例性操作的流程图。所述操作通过将存储器访问的地址设置为0在步骤410开始,由此在存储器顶部开始存储器维护操作。在步骤402,存储器控制器可以通过访问校准寄存器(例如,校准寄存器300)来判定所述地址是否等于校准起始地址。
如果所述地址指向校准起始地址,则可以在步骤403将该地址设置为校准结束地址。本领域的技术人员将认识到,将地址设置为校准结束地址可以配置为访问紧随包含校准数据的段的末尾之后的存储器的内容。因此,在步骤404,可以对紧随包含校准数据的段的末尾之后的内容执行存储器维护操作。本领域的技术人员将认识到,如果校准寄存器未启用(例如,通过设置校准有效位),则不可以执行校准地址的重置。
如果在步骤402判定所述地址没有指向校准地址,或如果校准寄存器未启用,则可以在步骤404在所述地址处执行存储器维护操作。在执行存储器维护操作之后,可以在步骤405递增所述地址以指向存储器的下一个块。
在所有位置(除了存在校准数据的位置)处执行了存储器维护操作之后,可以将地址设置回0以用于存储器维护操作的下一个循环。因此,在步骤406,可以检查递增的地址以判定存储器维护操作的当前循环是否完成。如果在步骤406,所述地址是存储器中的最大可寻址地址,则可以在步骤401将所述地址设置回0。另一方面,如果所述地址不是最大地址,则可以在步骤402将所述地址与校准起始地址相比较。
结语通过允许在存储器维护操作期间跳过包含校准数据的存储器的区域,本发明的实施例允许正确地校准系统,由此提高了数据传输的可靠性并提高了系统性能。
虽然上述内容涉及本发明的实施例,但是可以设计本发明的其他和进一步的实施例而不偏离本发明的基本范围。
权利要求
1.一种用于执行存储器维护操作的方法,所述方法包括顺序地选择要在该处执行所述存储器维护操作的存储器的地址;判定选定的地址是否落入包含校准数据的存储器的地址范围内;以及响应于判定所述选定的地址落入包含所述校准数据的存储器的所述地址范围内,跳转到下一个地址而不在所述选定的地址处执行所述存储器维护操作。
2.如权利要求1中所述的方法,其中所述下一个地址寻址紧随包含所述校准数据的存储器的所述地址范围之后的存储器的内容。
3.如权利要求1中所述的方法,其中判定所述选定的地址是否落入包含所述校准数据的存储器的所述地址范围内包括访问校准寄存器,所述校准寄存器包含用于所述校准数据的地址范围。
4.如权利要求3中所述的方法,还包括判定所述校准寄存器是否被启用,所述校准寄存器的启用指示用于所述校准数据的所述地址范围包含所述校准数据。
5.如权利要求4中所述的方法,包括跳转到所述下一个地址以响应判定所述校准寄存器被启用。
6.如权利要求4中所述的方法,其中判定所述校准寄存器是否被启用包括检查包含在所述校准寄存器中的有效位,所述有效位指示所述校准寄存器是否被启用。
7.如权利要求1中所述的方法,其中所述存储器维护操作包括存储器清洗或存储器调零中的一个。
8.一种控制器,所述控制器配置为顺序地选择要执行存储器维护操作的存储器的地址;判定选定的地址是否落入包含校准数据的存储器的地址范围内;以及响应于判定所述地址落入包含所述校准数据的存储器的所述地址范围内,跳转到下一个地址而不在所述选定的地址处执行所述存储器维护操作。
9.如权利要求8中所述的控制器,其中所述下一个地址寻址紧随包含所述校准数据的存储器的所述地址范围之后的存储器的内容。
10.如权利要求8中所述的控制器,其中所述存储器控制器配置为通过访问校准寄存器来判定所述选定的地址是否落入包含所述校准数据的存储器的所述地址范围内,所述校准寄存器包含用于所述校准数据的地址范围。
11.如权利要求10中所述的控制器,其中所述存储器控制器还配置为判定所述校准寄存器是否被启用,所述校准寄存器的启用指示用于所述校准数据的所述地址范围包含校准数据。
12.如权利要求11中所述的控制器,其中所述存储器控制器配置为跳转到所述下一个地址以响应判定所述校准寄存器被启用。
13.如权利要求11中所述的控制器,其中所述存储器控制器配置为通过检查包含在所述校准寄存器中的有效位来判定所述校准寄存器是否被启用,所述有效位指示所述校准寄存器是否被启用。
14.如权利要求8中所述的控制器,其中所述存储器维护操作包括存储器清洗或存储器调零中的一个。
15.一种装置,所述装置包括存储器;校准寄存器,所述校准寄存器包含在该处存储校准数据的所述存储器的地址范围;以及控制器,所述控制器配置为顺序地选择要执行存储器维护操作的存储器的地址;判定选定的地址是否落入包含校准数据的存储器的地址范围内;以及响应于判定所述地址落入包含所述校准数据的存储器的所述地址范围内,跳转到下一个地址而不在所述选定的地址处执行所述存储器维护操作。
16.如权利要求15中所述的装置,其中所述下一个地址寻址紧随包含所述校准数据的存储器的所述地址范围之后的存储器中的内容。
17.如权利要求15中所述的装置,其中所述控制器还配置为通过访问所述校准寄存器来判定所述选定的地址是否落入包含所述校准数据的存储器的所述地址范围内。
18.如权利要求15中所述的装置,其中所述控制器还配置为判定所述校准寄存器是否被启用,所述校准寄存器的启用指示用于所述校准数据的所述地址范围包含所述校准数据。
19.如权利要求15中所述的装置,其中所述控制器配置为跳转到所述下一个地址以响应判定所述校准寄存器被启用。
20.如权利要求15中所述的装置,其中所述控制器配置为通过检查包含在所述校准寄存器中的有效位来判定所述校准寄存器是否被启用,所述有效位指示所述校准寄存器是否被启用。
全文摘要
本发明的实施例提供了用于执行存储器维护和校准操作的方法、系统和装置。为了执行校准操作,可以首先将校准数据写入存储器并随后读回。然后,可以执行校准操作,以响应检测到写入的数据与从存储器读回的数据之间的差异。为了防止在存储器维护操作期间更改所述校准数据,本发明的实施例规定在所述存储器维护操作期间跳过包含校准数据的区域。因此,保留了所述校准数据,以允许执行适当的校准操作。
文档编号G11C29/00GK101063949SQ20071010445
公开日2007年10月31日 申请日期2007年4月23日 优先权日2006年4月25日
发明者M·D·贝洛斯, M·A·巴努姆, L·兰布雷彻 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1