首页> 中国专利> 一种DRAM刷新控制器及多通道DRAM同步刷新方法

一种DRAM刷新控制器及多通道DRAM同步刷新方法

摘要

一种DRAM刷新控制器及多通道DRAM同步刷新方法,该控制器包括:控制寄存器,包括刷新周期寄存器R1和周期更新标志寄存器R0;刷新周期寄存器R1用于保存用户设置的刷新命令的发送周期;更新标志寄存器R0用于控制将刷新周期寄存器R1中的值更新到刷新控制状态机;刷新控制状态机,包含刷新计数器C0和状态机FSM;状态机FSM根据刷新计数器C0和系统数据通路的状态,控制向DIMM存储器发送的刷新命令;刷新计数器C0记录的刷新周期值是在更新标志寄存器R0为1的时钟周期所采样的刷新周期寄存器R1的值。该方法是基于上述控制器的同步刷新方法。本发明具有结构简单、成本低廉、易实现和推广、可极大降低并行程序的同步数据访问开销等优点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-05

    授权

    授权

  • 2016-08-24

    实质审查的生效 IPC(主分类):G11C11/406 申请日:20160331

    实质审查的生效

  • 2016-07-27

    公开

    公开

说明书

技术领域

本发明主要涉及到多核处理器的设计领域,特指一种涉及多核处理器DRAM刷新控制器 及多通道DRAM访问期间的同步刷新方法。

背景技术

多核处理器可为高性能计算提供更高的性能,节省更多的功耗,已经成为当前一种主流 的处理器架构设计方法。如图1所示,为一个典型的多核处理器的结构示意图。为了适应多 核处理器的超高运算性能,系统需要有强大供数能力的访存系统。一般来讲,多核处理器片 内往往采用共享存储结、多级Cache结构,并在复杂系统中混搭私有存储等结构;外存储往 往采用选用多个通道的DRAM访存系统。当前主流的DRAM存储器是DDR3存储器,数据 传输快,性价比高。DDR3存储器一般采用模组(DIMM)的形式封装,每个DIMM对应一 个DDR通道控制器(DDRCC,DDRChannelController)。

高性能计算中经常需要多个内核共同完成某一个任务,核间步调一致性越好,同步等待 时间越短,性能越佳。随着技术进步,内核运算性能已经非常高,系统性能发挥往往受限于 访存系统。因此,多核处理器往往采用DMA等方式,并行访问多个DDR3通道同步给处理 器内核进行供数;共享数据往往需要采用DDR3广播供数的方式提高访存效率。

然而,DRAM(包括DDR3)的动态性以及多DRAM系统特性使得多个DRAM通道同 步供数变得有些困难。这些原因包括:

(1)为保证正确性,周期性的刷新和校准补偿过程不能进行数据访问。

DDR3是一种并行的动态存储器,动态存储器要求在存储位在一定时间内必须刷新,防 止漏电导致数据被破坏;为防止电压、温度等随时间产生漂移,DDR3控制器也会在固定的 时间间隔内主动进行电压和阻抗的校准和补偿。

(2)多个DDR3通道通常只能顺序初始化,耗费时间较长,难以控制同步。

DDR3是并行高速访存系统,信号完整性要求较高,在数据访问之前往往要经过较长时 间的复位、校准和训练等初始化工作;系统启动初期往往启动单个主机对DDR3通道进行逐 一初始化,从而造成多个DRAM通道刷新和校准周期较难同步。

若系统中包含n个DDR3通道,每个DDR3不可访问时间占总访问时间比例为r,那么 不同步最差将系统等待时间比例增加至n*r。这将极大降低高性能计算的性能,降低运算单元 性能的发挥。

若尝试采用多个主机同时对n个DDR3通道进行初始化启动,由于:(1)系统启动程序 将变得复杂;(2)DDR3初始化时间无法完全一致等原因,也难以实现正常工作状态下多通 道DDR3的同步刷新和校准。为了表述简洁,在下文中将DDR3的刷新和校准统称为“刷新”。

综上所述,如何实现一种编程易用性强的多通道DRAM系统同步刷新和校准方法,实现 多核处理器对高性能计算的运算性能发挥,已经成为一个亟待解决的关键技术问题。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种结构 简单、成本低廉、易实现和推广、可极大降低并行程序的同步数据访问开销的DRAM刷新控 制器及多通道DRAM同步刷新方法。

为解决上述技术问题,本发明采用以下技术方案:

一种DRAM刷新控制器,包括:

控制寄存器,包括刷新周期寄存器R1和周期更新标志寄存器R0;所述刷新周期寄存器 R1用于保存用户设置的刷新命令的发送周期;更新标志寄存器R0用于控制将刷新周期寄存 器R1中的值更新到刷新控制状态机;

刷新控制状态机,包含刷新计数器C0和状态机FSM;所述刷新计数器从0自增计数到 刷新周期值,然后再重头开始计数;所述状态机FSM根据刷新计数器C0和系统数据通路的 状态,控制向DIMM存储器发送的刷新命令;所述刷新计数器C0记录的刷新周期值是在更 新标志寄存器R0为1的时钟周期所采样的刷新周期寄存器R1的值。

一种基于上述DRAM刷新控制器的多通道DRAM同步刷新方法,其步骤为:

S1:系统初始化;对DDR通道控制器进行配置,并完成相应DIMM存储器和应用程序 的初始化;

S2:关闭刷新;关闭DDR通道控制器的刷新功能的方法向刷新周期寄存器R1中写入0, 并向更新标志寄存器R0写入“1”,此时刷新计数器C0将重新采用刷新周期;新的刷新周期 为0,将使得刷新状态机FSM一直处于空闲状态,不再向DIMM发出刷新命令;

S3:开启刷新;同步开启所有DDR通道控制器的刷新功能;

S4:正常执行阶段;所有DIMM的刷新周期已经处于同步状态,进入多核处理器的正常 计算过程。

作为本发明方法的进一步改进:所述步骤S1中,CPU或者某个核依次完成所有DDR通 道控制器的相关配置和DIMM的初始化工作,并根据程序的需求,完成程序数据的初始化准 备工作;此时,n个DDR通道控制器处于非严格同步刷新和校准状态,即对DIMM发生的 刷新和校准发生在不同的时刻。

作为本发明方法的进一步改进:所述步骤S2中,通过DDR刷新控制单元,关闭所有的 DDR通道控制器的刷新功能,停止对DIMM的刷;刷新控制状态机将停留在初始状态,刷 新周期计数器停止计数。

作为本发明方法的进一步改进:所述步骤S3中,首先逐一配置所有DDR通道控制器的 刷新周期寄存器R1,要求刷新周期相同;然后向所有DDR通道控制器的更新标志寄存器R0 中写入“1”,重新启动所有的周期刷新机制。

作为本发明方法的进一步改进:上述步骤S3,向所有DDR通道控制器的更新标志寄存 器R0中同写入“1”时,若有多核处理器的片上互连存在广播功能,则进行广播写操作,实 现严格的一致;否则通过片上互连依次写入。

与现有技术相比,本发明的优点在于:

1、本发明的DRAM刷新控制器及多通道DRAM同步刷新方法,硬件结构简单,成本低 廉,易实现和推广,可容易在DDR通道控制器中集成。

2、本发明的DRAM刷新控制器及多通道DRAM同步刷新方法,原理简单,易操作,也 可容易在现有算法程序中添加和更新,基本不造成原有算法的改动。

3、本发明的DRAM刷新控制器及多通道DRAM同步刷新方法,效果好,可极大降低并 行程序的同步数据访问开销。

附图说明

图1是典型的多DIMM的片上多核处理器结构示意图。

图2是本发明DRAM刷新控制器的结构示意图。

图3是本发明方法的流程示意图。

图4是采用本发明方法和典型DMA访问4个DIMM的流程对比示意图。

具体实施方式

以下将结合说明书附图和具体实施例对本发明做进一步详细说明。

本发明主要适用于多核处理器结构,图1是典型的多DIMM的片上多核处理器结构。多 核处理器包含m个内核(核1~核m),n个DDR通道控制器(DDRCC1~DDRCCn)以及其 他的片内存储器和IO,m个内核通过片上互连与DDR通道控制器、片内存储器以及其他IO 进行数据通信。每个DDR通道控制器控制一个DDR存储器(DIMM)的工作,包括初始化、 读写、刷新等功能。多核处理器往往还包括一个主要用于控制的CPU核,CPU核与核1~核 m通过一定的通信机制进行通信,并挂接在片上互连的接口上,实现对所有内核、DDR通道 控制器以及其他外设的控制。图1中硬件锁以向量表的方式提供共享式获取,支持多个处理 器核共同获取,同时支持释放操作。每个处理器核只能释放自己获取的锁,当一个锁被多个 处理器核获取时,只有在所有的核都释放的前提下才能被完全释放。硬件栅栏支持任意核间 的同步,提供相应寄存器用来设置同步的处理器核数目以及同步时间上限,同时支持同步过 程超时的状态记录及查询。

如图2所示,本发明的DRAM刷新控制器,包括:

控制寄存器,包括刷新周期寄存器R1和周期更新标志寄存器R0;刷新周期寄存器R1 用于保存用户设置的刷新命令的发送周期(即用于记录用户指定的符合国际安全要求的刷新 周期数);更新标志寄存器R0用于控制将刷新周期寄存器R1中的值更新到刷新控制状态机。 向更新标志寄存器R0写入“1”将使得刷新周期寄存器R1的值更新到刷新控制状态机,该 寄存器自动清零。

刷新控制状态机,包含刷新计数器C0和状态机FSM;刷新计数器从0自增计数到刷新 周期值,然后再重头开始计数;状态机FSM根据刷新计数器C0和系统数据通路的状态,控 制向DIMM存储器发送的刷新命令。刷新计数器C0记录的刷新周期值是在更新标志寄存器 R0为1的时钟周期所采样的刷新周期寄存器R1的值。

如图3所示,本发明进一步提供一种基于上述DRAM刷新控制器的多通道DRAM同步 刷新方法,步骤为:

S1:系统初始化。按照常规方法,对DDR通道控制器进行配置,并完成相应DIMM存 储器的初始化,以及其他应用程序需要的初始化过程;

即:CPU或者某个核依次完成所有DDR通道控制器的相关配置和DIMM的初始化工作, 并根据程序的需求,完成程序数据的初始化准备工作。此时,n个DDR通道控制器处于非严 格同步刷新和校准状态,即对DIMM发生的刷新和校准发生在不同的时刻。

S2:关闭刷新。关闭DDR通道控制器的刷新功能的方法向刷新周期寄存器R1中写入0, 并向更新标志寄存器R0写入“1”,此时刷新计数器C0将重新采用刷新周期。新的刷新周期 为0,将使得刷新状态机FSM一直处于空闲状态,从而不再向DIMM发出刷新命令。

即:通过DDR刷新控制单元,关闭所有的DDR通道控制器的刷新功能,停止对DIMM 的刷新。刷新控制状态机将停留在初始状态,刷新周期计数器停止计数。

S3:开启刷新。同步开启所有DDR通道控制器的刷新功能。首先逐一配置所有DDR通 道控制器的刷新周期寄存器R1,要求刷新周期相同;然后向所有DDR通道控制器的更新标 志寄存器R0中写入“1”,重新启动所有的周期刷新机制。

即:重新配置所有DDR通道控制器的刷新周期寄存器,然后通过片上互连的广播逻辑, 同步使能所有DDR刷新控制单元的更新标志,同步启动所有刷新状态机和刷新周期计数器的 计数。

S4:正常执行阶段。所有DIMM的刷新周期已经处于同步状态,可进入多核处理器的正 常计算过程。

即:应用程序进入正常运算和访存阶段。此时对所有DIMM的同步访存所遭遇的DDR 刷新和校准等阻塞操作均在所有DIMM间同步发生,从而降低了同步并行访存的等待时间。

在具体应用实例中,上述步骤S3,向所有DDR通道控制器的更新标志寄存器R0中同写 入“1”时,若有多核处理器的片上互连存在广播功能,则可进行广播写操作,实现严格的一 致;否则通过片上互连依次写入,由于片上互连此时负载较轻,前后写入间隔较小,也可达 到同步启动周期刷新机制的效果。

如图4所示,为典型DMA访问4个DIMM的两种流程对比示意图示意图。其中图4(a) 是未进行多个DDR控制器间刷新和校准同步的DMA访问过程。DMA引擎并行的向4个 DIMM发送访问请求,访问请求的目的地以“之”字形在四个DIMM中平均分布。假定DMA 一共要执行16组访问请求,每一组请求包含n个独立的请求。DMA发送请求的时候必须按 照顺序发送,前面的请求未发送出去将阻塞后面请求的发送,时间槽i对应一组请求的执行 时间。

其执行过程如下:

●时间槽i:DDRCC0~3依次执行DMA的请求。

●时间槽i+1:DDRCC0需要对DIMM0执行刷新,无法继续接收请求。DMA对后续 DDRCC1~3的请求也因此阻塞。

●时间槽i+2:DDRCC0完成刷新和校准,正常执行第4组请求,DDRCC1~3也可分别 继续执行第5、第6、第7组请求。

●时间槽i+3:DDRCC0执行第8组请求,而DDRCC1到了刷新和校准时间,暂时挂 起DMA的第9组请求。DDRCC2和DDRCC3也只能进入等待状态。

●时间槽i+4:DDRCC2和DDRCC3挂起DMA导致DDRCC0继续等待;DDRCC1完 成刷新和校准,正常执行第9组请求;DDRCC2进入刷新和校准周期,DDRCC3进 入等待状态。

●时间槽i+5:DDRCC3挂起DMA导致DDRCC0和DDRCC1继续等待;DDRCC1完 成刷新和校准,正常执行第10组请求;DDRCC3进入刷新和校准周期。

●时间槽i+6:由于DMA需要等DDRCC3将挂起的DMA请求完成并释放DMA通道 后,才能继续放松后续请求,所以DDRCC0~2仍然处于等待状态;DDRCC3执行第 11组DMA请求。

●时间槽i+7:DDRCC0~3进入正常执行阶段。

图4(b)是执行过多个DDR控制器间刷新和校准同步的DMA访问过程,其执行过程如下:

●时间槽i:DDRCC0~3依次执行DMA的请求。

●时间槽i+1:DDRCC0~3都需要对DIMM0执行刷新,无法继续接收请求。DMA请 求被挂起。

●时间槽i+2:DDRCC0~3同步完成刷新和校准,继续正常执行第4~7组请求。

●时间槽i+3:正常执行第8~11组请求。

●时间槽i+4:正常执行第12~15组请求。

从图4(a)和图4(b)的执行过程可以看出,未采用本发明的方法的DMA执行过程将需要8 个时间槽才能完成该DMA任务,而采用了本发明的方法的相同DMA任务则只需要5个时 间槽。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于 本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术 人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号