In one form, a memory controller includes a command queue, an arbitrator, and a playback queue. The command queue receives and stores memory access requests. The arbitrator is coupled to the command queue to provide a series of memory commands to the memory channel. The playback queue stores the series of memory commands provided to the memory channel, and continues to store memory access commands that have not yet received a response from the memory channel. When the response instruction completes the corresponding memory command without any error, the playback queue removes the corresponding memory command without taking further measures. When an error occurs when the response instruction completes the corresponding memory command, the playback queue replays at least the corresponding memory command. In another form, a data processing system includes the memory controller, the memory access agent and the memory system, which are coupled to the memory access agent and the memory system.
【技术实现步骤摘要】
【国外来华专利技术】DDR存储器错误恢复
技术介绍
计算机系统通常将廉价且高密度的动态随机存取存储器(DRAM)芯片用于主存储器。现今销售的大部分DRAM芯片与电子器件工程联合委员会(JEDEC)所颁布的各种双数据速率(DDR)DRAM标准兼容。DDR存储器控制器用于根据公布的DDR标准来管理各种存储器访问代理与DDRDRAM之间的对接。现代DDR存储器控制器维持队列以存储待决存储器访问请求,以允许它们关于待决存储器访问请求被生成或存储的顺序无序地选取所述待决存储器访问请求,以提高效率。例如,存储器控制器可从队列中检索对给定存储器存储列中的同一行的多个存储器访问请求,并且将它们连续地发出给存储器系统,以避免对当前行进行预充电和激活另一行的开销。DDR存储器系统包括多种用于错误检测和恢复的机制,诸如奇偶校验位、循环冗余码(CRC)、错误检测码(EDC)、或与数据一起存储在DDRDRAM中的其他纠错码(ECC)。当执行存储器访问时,DDR存储器控制器将所存储的CRC或ECC位与利用存储器访问计算出的CRC或ECC位进行比较。响应于检测到错误,DDR存储器控制器在可能的情况下纠正错误,并将错误报告给操作系统,并且操作系统确定要采取的进一步的纠正措施。然而,DRAM总线以相对高的时钟速率、诸如2400兆赫兹(MHz)操作,并在时钟周期的两个转换上传输数据。由于高数据速率,DDR存储器总线容易受到偶然的随机错误或存储器总线上的“小故障”的影响。虽然已知的DDR存储器控制器具有检测和纠正这些错误的机制,但是由于操作系统调用所引起的开销,这些机制显著降低了系统性能。附图说明图1以框图形式示出根据 ...
【技术保护点】
1.一种存储器控制器(500),其包括:命令队列(520),其用于接收并存储存储器访问请求;仲裁器(538),其耦合到所述命令队列,用于向存储器通道(130/140)提供一系列存储器命令;以及重放队列(530),其用于存储提供给所述存储器通道(130/140)的所述一系列存储器命令,并且继续存储尚未从所述存储器通道(130/140)接收到响应的存储器访问命令,其中:当响应指示完成对应的存储器命令而无任何错误时,所述重放队列(530)移除所述对应的存储器命令而不采取进一步的措施;并且当响应指示完成所述对应的存储器命令而有错误时,所述重放队列(530)重放至少所述对应的存储器命令。
【技术特征摘要】
【国外来华专利技术】2016.07.15 US 62/363,075;2016.12.09 US 15/375,0761.一种存储器控制器(500),其包括:命令队列(520),其用于接收并存储存储器访问请求;仲裁器(538),其耦合到所述命令队列,用于向存储器通道(130/140)提供一系列存储器命令;以及重放队列(530),其用于存储提供给所述存储器通道(130/140)的所述一系列存储器命令,并且继续存储尚未从所述存储器通道(130/140)接收到响应的存储器访问命令,其中:当响应指示完成对应的存储器命令而无任何错误时,所述重放队列(530)移除所述对应的存储器命令而不采取进一步的措施;并且当响应指示完成所述对应的存储器命令而有错误时,所述重放队列(530)重放至少所述对应的存储器命令。2.如权利要求1所述的存储器控制器(500),其还包括:纠错码(ECC)校验块(542),其耦合到所述重放队列(530),用于计算所述对应的存储器命令的ECC,并将计算的ECC与从所述存储器通道(130/140)返回的ECC进行比较。3.如权利要求1所述的存储器控制器(500),其还包括:存储器接口队列(514),其耦合到所述命令队列(520),用于接收并存储存储器访问请求,其中所述存储器接口队列(514)进一步耦合到所述重放队列(530),用于提供已经分派到所述存储器通道(130/140)的命令和已经响应于所述命令而从所述存储器通道(130/140)接收到的响应。4.如权利要求3所述的存储器控制器(500),其中:响应于从所述存储器接口队列(514)接收到响应,所述重放队列(530)通过计算纠错码并将所述纠错码与从所述存储器通道(130/140)接收的纠错码进行比较,来确定所述响应中存在错误。5.如权利要求3所述的存储器控制器(500),其中:响应于从所述存储器接口队列(514)接收到具有错误的响应,所述重放队列(530)重放所述对应的存储器命令和在所述对应的存储器命令之后由所述存储器接口队列(514)向所述存储器通道(130/140)提供的任何另外的命令。6.一种存储器控制器(500),其包括:命令队列(520),其用于接收并存储存储器访问请求;以及仲裁器(538),其耦合到所述命令队列(520),用于向存储器通道(130/140)提供一系列存储器命令;存储器接口队列(514),其耦合到所述命令队列(520),用于接收并存储存储器访问请求;以及重放队列(530),其耦合到所述存储器接口队列(514),用于存储提供给所述存储器通道(130/140)的所述一系列存储器命令,并且继续存储尚未从所述存储器通道(130/140)接收到响应的存储器访问命令,其中:只要所述存储器控制器(500)没有检测到任何错误,所述存储器控制器(500)就保持在正常状态中,其中在所述正常状态中,所述存储器接口队列(514)继续从所述命令队列(520)接收由所述仲裁器(500)选取的命令;并且响应于检测到错误,所述存储器控制器(500)进入...
【专利技术属性】
技术研发人员:詹姆斯·R·麦格罗,彭瑞华,安东尼·阿莎罗,凯达尔纳特·巴拉里斯南,斯科特·P·墨菲,姚于斌,
申请(专利权)人:超威半导体公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。