具有用于高可靠性操作的存储控制器的数据处理器和方法
【技术领域】
[0001] 本公开大体上涉及数据处理系统,并且更具体地说涉及具有存储控制器的数据处 理器。
【背景技术】
[0002] 计算机系统使用典型地利用廉价且高密度的动态随机存取存储器(DRAM)芯片所 形成的主存储器。当激活DRAM芯片中的第一行时,沿着所述第一行的存储单元的内容被读 入页面缓冲区。在所述第一行中对存储单元的随后的读取和写入存取可以全部在页面缓冲 区内发生,而没有再次存取所述第一行。当数据处理器在相同的存储体中稍后存取第二行 时,沿着所述行的存储单元在可以激活其他行之前在预充电操作中被恢复。数据处理器可 以稍后在相同的存储体中再次存取第一行。
[0003] 现代DRAM芯片典型地使用深亚微米技术来存储一到八个千兆比特(Gb)的数据。由 于高密度和小特征尺寸,存储器的行在物理上如此接近其他行,以至于特定行的激活可能 通过改变存储单元电容器上的电荷来扰乱存储在邻近行中的数据。通常这些扰乱是有害 的,因为存储单元被定期刷新。然而,一些存储器存取模式偶尔会引起某些行在下一个刷新 周期之前被激活和预充电许多次,以至于在邻近行中的存储单元变成毁损和反向逻辑状 态。在毁损之后,原始数据丢失并且在随后的刷新周期中无法进行恢复。
[0004] 附图简述
[0005] 图1以方框图形式示出易于数据扰乱的动态随机存取存储器(DRAM);
[0006] 图2示出根据一些实施方案的可以合并图1的存储器的双列直插式存储模块 (DMM)的顶视图;
[0007] 图3以方框图形式示出根据一些实施方案的具有存储控制器的微处理器;
[0008] 图4以方框图形式示出根据一些实施方案的图3的存储控制器;
[0009] 图5以方框图形式示出根据一些实施方案的诸如图4的存储控制器的存储控制器 的部分;
[0010] 图6示出适用于理解图4的存储控制器的操作的时序图;
[0011 ]图7以方框图形式示出根据一些实施方案的数据处理系统;以及
[0012] 图8示出适用于图4的存储控制器的方法的流程图。
[0013] 在以下描述中,不同图中使用的相同的参考数字指示相似或相同的项目。除非另 外指出,否则单词"耦接"及其相关联的动词形式包括直接连接和通过本领域中已知手段的 间接电气连接,并且除非另外指出,否则对直接连接的任何描述也意味着使用适当形式间 接电气连接的替代性实施方案。
【具体实施方式】
[0014] 如下文所公开的数据处理器利用存储控制器处理了数据毁损问题,所述存储控制 器通过考虑行周期页面时间(tRCPACE)来安排存取。行周期页面时间可指示在预先确定的时 间窗口内对存储器中的行的激活命令的可接受的数量。数据处理器包括用于产生到存储器 的访问的存储器访问代理,所述数据处理器将所述访问提供给存储控制器。存储控制器被 耦接到存储器访问代理,并基于存储器的特性(包括行周期页面时间)来按顺序安排存取。
[0015] 在一种形式中,到存储器的第一页面的第一存储器访问被派分。到存储器的第一 页面的第二存储器访问被接收,但是第二存储器访问的派分被抑制直到经历时间,因为第 一存储器访问的派分超过了行周期页面时间。
[0016] 图1以方框图形式示出易于数据扰乱的存储器100。存储器100是动态随机存取存 储器(DRAM)并且大体上包括行路径110、八个存储体120、列电路140、数据路径150以及一组 数据暂记区160中的标记为"DQf的代表性的一个。
[0017] 行路径110包括用于每个存储体的行地址锁存器与解码器,诸如用于第一存储体 的标记为"存储体〇"的行地址锁存器与解码器112和用于最后存储体的标记为"存储体7"的 行地址锁存器与解码器114。行路径110具有一组输入端和一组输出端,所述输入端用于接 收标记为"A[13:0]"的行地址和标记为"BA[2:0]"的存储体地址。八个存储体120中的每一 个包括相关联的存储器阵列和页面缓冲区,诸如用于存储体〇的存储器阵列122和页面缓冲 区124。八个存储体120中的每一个具有一组输入端,所述输入端被连接到对应的行地址锁 存器与解码器的所述组输出端。
[0018] 列电路140包括一组列开关142和列解码器144。所述组列开关142被连接到存储体 120中的每一个的页面缓冲区,并且具有用于接收列选择信号的一组输入端。列解码器144 具有一组输入端和一组输出端,所述输入端用于接收在输入端A[ 13:0 ]上进行的列地址,所 述列地址用于选择八个存储体中由BA[2:0]所选择的一个的列,所述输出端被连接到列开 关142的输入端。
[0019] 数据路径150包括读取数据路径152和写入数据路径154。读取数据路径152具有被 连接到列开关142的一组输入端和被连接到数据暂记区160的一组输出端。写入数据路径 154具有被连接到数据暂记区160的一组输入端和被连接到列开关142的一组输出端。
[0020] 在操作中,存储器100允许存储体中的并行操作,并且在一个实施方案中,存储器 100与由联合电子设备工程委员会(JEDEC)所公开的双倍数据速率(DDR)标准中的一个兼 容,诸如DDR3或DDR4。为了存取数据,诸如数据处理器的存储器访问代理通过发出激活 ("ACT")命令来激活存储体中的行。响应于ACT命令,来自沿着所选择行(诸如存储体0中的 行125)的存储单元的数据被存储在对应的页面缓冲区中,诸如页面缓冲区124。在DRAM中, 数据读取对于存储单元的内容是破坏性的,但是数据的副本被存储在页面缓冲区124中。在 存储器访问代理结束在行125中存取数据之后,存储器访问代理通过发出预充电("PRE")命 令来关闭所述行。PRE命令引起页面缓冲区124中的数据恢复到沿着行125的动态存储单元。
[0021] 由于存储器100是DRAM,存储单元中的电荷缓慢泄漏,并且因此数据必须被定期刷 新。刷新间隔(称为tREFI)基于较弱的存储单元由于泄漏将丢失它们的内容的时间量。例如 在DDR4 DRAM中,tREFi在典型的环境中等于7.8微秒(ys)。
[0022] 在通过现代、深亚微米制造过程所形成的DRAM中,给定行的重复激活可能扰乱存 储在物理上邻近的行中的存储单元中的数据。例如,每当对行125进行激活和预充电时,在 邻近行126和127中的存储单元中的电荷被改变。如果行125在行126和127中的存储单元被 刷新之前被激活和预充电太多次,那么它们的数据可能变毁损。
[0023] 为了在没有重新设计存储器的情况下减轻数据毁损问题,本发明人已开发出一种 具有存储控制器的数据处理器,所述存储控制器通过考虑给定行中的存储单元在一个刷新 间隔内被激活的次数来安排存取。例如,如果存取的速率太高,存储控制器延迟存取直到一 定时间期满之后。这个时间与存储器在刷新窗口内能够被安全地存取的次数有关。
[0024] 图2示出根据一些实施方案的可以合并图1的存储器的双列直插式存储模块 (DMM)200的顶视图。DMM 200大体上包括在多层印刷电路板(PCB)上的一组存储器芯片 210和串行存在检测(SH))只读存储器(R0M)220。存储器芯片210包括八个x8存储器芯片,所 述芯片中的每一个可以对应于图1的存储器100。在一些实施方案中,存储器芯片210是DDR3 SDRAM。在一些实施方案中,存储器芯片210是DDR4 SDRAM。
[0025] 应注意的是,在一些实施方案中,DMM 200在基板背面上可以具有像存储器芯片 210-样布置的第二组存储装置。在一些实施方案中,每个存储器芯片可以包括使用芯片上 芯片技术或堆叠裸片技术的具有多个存储器裸片的半导体封装,以形成每个芯片的超过一 个层级。此外,DMM 200代表了一种可以使用像图1的存储器100的存储器芯片的存储器系 统。在其他实施方案中,存储器100可以适用于单列直插式存储模块(SIMM),或者可以被安 装在与数据处理器芯片相同的PCB上。
[0026] SPD ROM 220存储指示DMM 200的各种特征的值。JEDEC例如在针对DDR3 DRAM的 标准JESD 21-C附录K中指定了这些位的位置和含义。近来,对于sro标准的增加部分已被提 出,所述增加部分允许制造商指定存储器芯片210对数据扰乱问题的敏感性。因此如图2中 所示,SPD ROM 220包括字节222,所述字节222具有与存储器的数据扰乱特性有关的字段。 字节222位于SPD ROM 220内的已由先前版本的SPD ROM规格所保留的地址中,例如在字节$ 41处。
[0027]字节222包括被保留的位[7:6]、限定了最大激活窗口(tM?)的位[5:4]、标记为"无 限MAC"的位[3]以及限定了最大活动计数(MAC)的位[2:0]。这些位的含义如下所示。当位 [3]被设置成"Γ时,存储器芯片210中的行在没有毁损数据的情况下能够被激活无限次数, 并且位[2:0]被编码000。这种设置对应于例如具有足够小的数据扰乱的设计,以使得不管 ACT速率如何没有错误被预期到。当位[3 ]被设置成"0"时,位[2:0 ]在由位[5:4]中的tMW所 限定的一段时期内限定了 MAC。例如,如图2中所示,如果位[5:4]=00,位[3]=0并且位[2: 0] = 100,那么在没有由于数据扰乱问题的毁损的情况下,存储器芯片210中的行可以在64 毫秒(ms)的窗口内被激活高达40万次。应当清楚的是,将这些特性存储在SPD ROM 220的字 节222中仅仅是识别这个速率的一种可能的技术。
[0028] 如下文所述,存储控制器响应被称为基于MAC和tM?的行页面周期时间(tRCPACE)的 值,以选择性地抑制对相同行的激活,直到从最后的激活开始已经历所述行页面周期时间。