包括不兼容的存储器技术或与不兼容的存储器技术接合的存储器模块的应答控制的制作方法_3

文档序号:9713552阅读:来源:国知局
况下)。更具体地,在读的情况下,模块124可允许返回数据返回到存储器控制器102。如果在该时间量内不兼容的存储器电路未完成或将不可能完成命令,应答器模块124可向存储器控制器102发送这样的场景的信号(例如,错误)。应答器模块124可使用校验位或错误校验码(ECC)位,以执行发信号。基于这样的信号,存储器控制器或计算系统100的操作系统可例如在一时间段后重试命令。
[0029]校验位可指增加到二进制代码(S卩,数据)的末端的位,该位指示二进制代码中的I值位的数量是偶数(例如,偶校验机制)还是奇数(例如,奇校验机制)。校验位可用于检测所接收的数据是否与所传送的数据不同,这可指示传送、存储中的错误,等等。如果使用校验位检测到错误,则由于校验位不允许数据的校正,因此必须丢弃数据,且可能重传数据。错误校正码(ECC)可指增加到二级制代码(S卩,数据)的末端的多个位,该位可用于检测且可能校正数据中的错误。ECC可对数据增加冗余信息。冗余信息可被确定为数据的多个原始位的函数,且冗余信息可(例如,经由另一个函数)用于恢复或校正原始数据。本文的各种描述和/或图可能涉及校验位和/或ECC位。应理解,涉及校验位的各种描述和/或图可同样适用于ECC,反之亦然。因此,涉及校验位而不涉及ECC位(反之亦然)的特定示例不应被理解为是限制。
[0030]应答器模块126可使用校验位或ECC位,以在不兼容的存储器电路根据数据传输协议在期望的时间量内未(例如,读的情况下)或将不能(例如,写的情况下)完成命令时发信号。校验或ECC位可能已经是存储器模块106和存储器总线104之间的、以及存储器总线104和存储器控制器102之间的接口的部分。因此,不需要附加的位/线/线路来执行信号的发送。在一个示例中,如果使用单个校验位,应答器模块106可设置该校验位以有意引起校验错误。存储器控制器102或操作系统可随后识别并应答该校验错误,如下面将更详细描述的。在这样的情况下,校验位可仅指示单个类型的错误,且因此,存储器控制器或操作系统的对该错误的应答(例如,默认应答或改变的应答)可能需要是有用于应答器模块126的应答(例如,命令重试)。此外,应答可能需要适用于定期的校验错误,该校验错误可作为数据传送等中的错误的结果而发生。
[0031]作为另一个示例,应答器模块126可使用多个ECC位来发送不能及时或很可能将不能及时完成命令的信号。利用多个ECC位,可以能够在ECC位中对多个值、消息或代码编码。因此,首先,由于命令不能按时完成,应答器模块126可对ECC位编码,使得存储器控制器102或操作系统可区分例如真实数据传送错误与应答器模块126发起的错误。随后,应答器模块126可进一步利用各种“错误代码”对ECC位编码。错误代码可指示关于模块126发起的错误的各种附加细节,例如,像等待多长时间直至命令重试、重试命令多少次等等这样的细节。在又一种示例中,在存储器模块106和存储器总线104以及存储器控制器102之间的接口(例如,兼容的接口)的各种其他位/线路/线可用于提供关于错误的细节。例如,可利用关于错误的细节(例如,通过模块126)对接□的“数据”字段编码。因此,在由模块126发起错误的情况下,接口的所有可用的位/线路/线可用于包括关于错误的附加细节。最后,不管怎样,可重试命令,因此可能不会另外使用其他可用的位(例如,数据应答位)。
[0032]存储器控制器102可能需要被设计和/或配置为对来自存储器模块106的信号(例如,错误信号)进行解释和/或起作用,该信号指示未根据数据传输标准如期望的那样完成命令或将可能不能完成命令。但是,应理解,存储器控制器102的接口仍可能符合特定的数据传输标准(例如,DDR)。例如,不管何时存储器控制器102发送命令,其可根据特定的数据传输标准(例如,DDR)发送该命令。同样,不管存储器控制器102何时接收返回数据,其可根据特定的数据传输标准(例如,DDR)接收该返回数据。例如,存储器控制器102可基于来自存储器模块106的信号重试之前发送的命令,但可根据特定的数据传输标准发送原始命令以及重试的命令。因此,当与不实施命令重试的存储器控制器比较时,即使存储器控制器102可能需要改变,改变的存储器控制器仍可能够与计算系统100的符合数据传输标准的所有其他计算机组件接合。例如,可能不需要改变包括用于DIMM存储器模块的插槽的母板(例如,其可保持兼容)。作为一个特定的场景,在一些系统中,存储器控制器是中央处理器(例如,108)的部分,且因此,可用包括改变后的存储器控制器102的处理器直接换出已有的处理器,且随后,计算系统可准备好实施命令重试。
[0033]默认地,存储器控制器102可被设计和/或配置为对校验或ECC错误起作用。例如,存储器控制器102可在校验错误的情况下自动重试命令,或其可在提供了 ECC位的情况下自动尝试校正数据。如果存储器控制器102的默认应答对于应答器模块126没有用(例如,引起命令重试),那么,可改变/修改存储器控制器102。存储器控制器102可被设计和/或配置为识别(例如,与真实的数据传送错误不同的)由应答器模块126引起的错误。存储器控制器102和应答器模块126可能需要使用常用的编码机制(例如,使用多个ECC位和/或其他可用位(例如,数据位)),使得避免编码冲突。例如,如果发生真实的数据传送错误,且存储器控制器102对该错误起作用,就好像其是应答器模块120引起的错误,这可能引发问题。在一些情景中,存储器控制器102可例如从多个ECC位检测并解码错误代码。
[0034]存储器控制器102可基于错误自动重试命令。存储器控制器102可在接收错误之后,重试命令之前,等待一定的时间量。重试之前的时间量可改变,可能是可配置的,且可例如在从应答器模块126发送的错误代码中指示。存储器控制器102可在“放弃”或停止尝试重试命令之前仅重试命令一定次数。重试的次数可改变,可能是可配置的,且可例如在从应答器模块126发送的错误代码中指示。
[0035]在一些情景中,计算系统100包括例如在处理器108上操作的主操作系统(OS)AS可被设计和/或配置为对来自存储器模块106的指示将不能如根据数据传输协议所期望的那样完成命令的信号进行解释和/或起作用。在一些示例中,OS可处理校验和/或ECC错误(例如,“真”校验/ECC错误以及应答器模块126引起的错误),而非存储器控制器102处理。例如,校验和/或ECC错误可通过存储器控制器102传播回0S(例如,OS中的陷阱处理程序),且OS可随后采取合适的动作。在其他示例中,OS和存储器控制器可一起操作,以处理这样的错误。
[0036]类似于上述的存储器控制器102的动作,OS可例如基于来自存储器模块106的校验或ECC信号重试之前发送的命令。默认地,OS可被设计和/或配置为处理(例如,经由陷阱处理程序或错误检测和/或校正例程)校验和/或ECC位。例如,接收数据时,OS可自动使用校验/ECC位以检测数据传送中的错误,且可自动尝试校正数据(例如,在ECC的情况下)。如果OS还可基于错误(或基于重复的错误)作出各种确定。例如,OS可识别特定的存储器设备已完全失效,且可重映射或重编码其数据映射,以不使用该失效的设备。
[0037]根据本公开,OS(例如,陷阱处理程序或错误检测和/或校正例程)可改变或修改,以与默认场景不同地表现。OS可以以类似于上面描述的存储器控制器102的方式来处理来自应答器模块126的错误。例如,OS可基于错误自动重试命令。OS可在接收错误之后,重试命令之前,等待一时间量。OS可在其“放弃”或停止尝试重试命令之前仅重试命令多次。
[0038]在一些情景中,从应答器模块126通过存储器总线、通过存储器控制器并回到OS的通信路径可能是较长的且高延迟的路径。因此,处理由应答器模块126引起的错误的这样的方案可与应答控制模块120中包括的(例如,应答器模块126内的)高速缓存一起使用,如下面更详细描述的。利用这样的高速缓存,可缓存应答(例如,在读命令的情况下为返回数据)。因此,可能需要重试初始命令(例如,路由回0S),但是,如果应答数据在高速缓存中,则可能不需要重试随后类似的命令。
[0039]图2是示例应答器模块200的框图,应答器模块200用于实施包括不兼容的存储器技术或与不兼容的存储器技术接合的存储器模块的应答控制。应答器模块200可类似于例如图1的应答器模块126。应答器模块200可包括多个模块,例如模块202、204、206、208。这些模块中的每个可为电子电路(例如,硬件和/或固件),和/或这些模块中的每个可为被编码在机器可读存储介质上的指令,例如,该指令可由应答控制模块120的微处理器执行。对于本文描述和示出的模块,应理解,在可替代的实施例中,在一个模块中包括的可执行指令和/或电子电路的部分或全部可包括在图中示出的不同的模块中,或在未示出的不同的模块中。示出的模块中的每个可在或可不在各种示例中出现,且在一些示例中,可能存在附加模块。
[0040]命令完成时间存储模块202可确定、接收、和/或存储一时间量,期望命令在该时间量内根据特定的数据传输协议(例如,DDR)完成。例如,模块202可包括ROM或一些可存储这些时间量的其他可编程存储介质。在DDR协议的示例中,为了符合该协议,必须在特别数量的周期内完成特定类型的所有命令(例如,读、写等)。模块202可存储这些时间量(例如,周期),且可将这些时间量提供给各种其他模块(例如,204),例如,使得可将实际的完成时间、可能的完成时间或等待时间与这些存储的时间量作比较。
[0041]命令监控模块204可接收或访问进入存储器模块的命令,例如,指向不兼容的存储器电路或技术(例如,114)的命令。在一些情景中,命令监控模块204可称作命令监控电路。在一些情景中,命令监控模块204可仅接收或访问某些类型的命令,例如,仅读命令。命令监控模块204可监控这些命令,包括例如向不兼容的存储器电路或技术的发送命令。命令监控模块204可跟踪这样的不兼容存储器电路响应于这些命令返回的任何返回数据的状态,以及自向存储器模块发送每个命令开始经过了多少时间。对于每个监控的命令,模块204可将自发送命令开始已经过的时间量与(例如,来自模块202的)期望的完成时间作比较。例如,如果模块204确定在期望的时间量内存储器电路或技术未提供与读命令有关的返回数据,则模块204可与模块208通信,以发起错误(例如,如上所述的校验/ECC错误)。
[0042]命令/响应缓存模块206可保持追踪已由模块204接收或访问的命令,且可保持追踪已响应于这些命令从存储器电路/技术返回的任何返回数据。在这方面,如果(例如,由模块204)确定未在
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1