一种基于贪婪式算法的多通道DDR控制器[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201810489117.9
(22)申请日 2018.05.21
(71)申请人 南京大学
地址 210046 江苏省南京市栖霞区仙林大
道163号电子学院
(72)发明人 李丽 沈鹏程 祁鹏展 陈沁雨 
傅玉祥 李伟 何书专 
(74)专利代理机构 南京汇盛专利商标事务所
(普通合伙) 32238
代理人 陈扬 吴扬帆
(51)Int.Cl.
G06F  13/16(2006.01)
(54)发明名称
一种基于贪婪式算法的多通道DDR控制器
(57)摘要
本发明提供了基于贪婪式算法的多通道DDR
控制器,与外部总线通信连接,所述控制器包括:
分布式控制器、访存请求调度器以及存储颗粒,
所述存储颗粒提供数据通道,分布式控制器与数
据通道一一对应连接,各分布式控制器通过连接
到同一个访存请求调度器与外部总线进行交互;
访存请求调度器对总线上发起的访存请求按贪
婪式调度算法进行重排序,再将所述访存请求分
配到空闲的数据通道上执行。有益效果:能够减
少处理同一请求序列所需要的总的时间,进而提
高多通道DDR的访存性能。权利要求书1页  说明书5页  附图6页CN 108763116 A 2018.11.06
C N  108763116
A
1.一种基于贪婪式算法的多通道DDR控制器,与外部总线通信连接,其特征在于,所述控制器包括:分布式控制器、访存请求调度器以及存储颗粒,所述存储颗粒提供数据通道,分布式控制器与数据通道一一对应连接,各分布式控制器通过连接到同一个访存请求调度器与外部总线进行交互;访存请求
调度器对总线上发起的访存请求按贪婪式调度算法进行重排序,再将所述访存请求分配到空闲的数据通道上执行。
2.根据权利要求1所述的基于贪婪式算法的多通道DDR控制器,其特征在于:所述访存请求调度器,记录下经总线传来的访存请求,按当前访存请求的目标存储体的当前状态,计算出调度时刻,并根据计算结果对当前访存请求进行排序。
3.根据权利要求1所述的基于贪婪式算法的多通道DDR控制器,其特征在于:被调度器记录的访存请求保存在请求队列中,当请求队列为满时,将不再响应总线的请求,而当请求队列中的访存请求被分配到空闲通道中执行时,请求队列空出相应的位置后,调度器重新响应总线的访存请求。
4.根据权利要求1所述的基于贪婪式算法的多通道DDR控制器,其特征在于:每个通道对应于一个单独的命令队列,访存请求调度器在访存命令生成后,根据逻辑地址中的通道编号被归入到相应的命令队列中,等待DDR控制器的调度。
5.根据权利要求4所述的基于贪婪式算法的多通道DDR控制器,其特征在于:设定排列在命令队列的队首的命令为预调度命令,所述预调度命令的调度时刻的值为命令队列中所有命令的调度时刻的最小值,并且预调度命令的饥饿值大于设定的阈值。
6.根据权利要求5所述的基于贪婪式算法的多通道DDR控制器,其特征在于:调度器对总线上发起的访存请求按贪婪式调度算法进行重排序具体为:当有新的命令加入队列中时,首先与预调度命令进行比较,如果预调度命令的饥饿值大于设定阈值或者新命令的调度时刻大于预调度命令的调度时刻,新命令加入到队列尾部;否则,新命令取代预调度命令成为新的预调度命令,之前的预调度命令则放置到队尾,参与新一轮的重排序。
权 利 要 求 书1/1页CN 108763116 A
一种基于贪婪式算法的多通道DDR控制器
技术领域
[0001]本发明涉及多通道控制器领域,尤其涉及一种基于贪婪式算法的多通道DDR控制器。
背景技术
[0002]随着计算机科学技术的发展,半导体工艺水平不断提高,微处理器和存储器的性能都有了很大的提升。然而,由图1可见,相比较于微处理器的提升幅度,存储器的速度提高的很慢,两者发展速度的不匹配,已经成为制约计算机整体性能的一大重要因素。因此,业界发明出了各种方法来缓解片外访存的压力,比如常见的Cache,SPM(Scratch Pad Memory)缓存技术等等,片外存储大多为双倍
速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM)。嵌入式平台为降低功耗多数使用低功耗DDR(Low-Power DDR SDRAM,LPDDR)。当处理器访问的数据不在缓存中时,DDR控制器会依照访存地址将片外存储数据移至片内缓存中,利用缓存降低CPU或者MPU(Micro Processor Uint)的访存次数,来间接的降低片外访存压力。
[0003]然而,Cache、SPM等缓存技术,本质上是利用局部性原理在SoC(System on Chip)中分级存放缓存数据,但是芯片面积、功耗及商业成本等等问题致使SoC中无法大面积使用缓存技术,所以尽管现有的缓存技术减轻了部分片外访存压力,瓶颈仍然存在。加上操作系统多线程技术和硬件多核技术的出现,CPU缓存命中率下降,片外访存存压力逐渐升高,以及SoC内部GPU,LCDC(LCD Controller)等访存对象共享片外存储,使得芯片有效访存带宽更加供不应求。
[0004]面对访存性能瓶颈,除了提升制造工艺,许多研究工作都是通过优化DDR控制器调度来提升有效访存带宽。通常,DDR控制器的结构可以抽象为四个部分:调度端口、请求队列、地址映射和命令队列,如图2所示,访存请求经过仲裁器进入请求队列,通过地址映射分解成相应的命令并贮存在命令队列中,命令调度器经过筛选,选择优先级最高的命令进行发送。
[0005]虽然针对访存调度的研究成果显著,但由于高性能移动智能终端对访存性能的要求也越来越高。传统针对单通道DDR控制器研究很难解决当前问题,所以近年来研究中开始衍生出利用多通道DD
R控制器代替原有单通道DDR控制器的设计理念。在20实际90年代,多通道片外存储系统概念就已经诞生,如今也已广泛地应用在产品之中。多通道存储系统之所以能够大幅度提升访存性能,实质是增加数据总线位宽,在不改变Burst传输长度情况下增大数据吞吐量,相较于单通道,多通道优势在于可并行访问更多DDR颗粒。
[0006]片外存储中,多通道概念通常有两种,一种是物理多通道,另一种是逻辑通道,二者区别如图3。物理通道可理解为存储颗粒端所提供数据通道,用于标明可被独立单独访问的存储颗粒组。逻辑通道可理解为控制器端所提供数据通道,其决定了每次传输的数据量。[0007]对多通道DDR控制器的优化研究,是目前提升多通道DDR访存性能的重要途径之一。
发明内容
[0008]为了有效降低访存请求在请求队列中的等待时间,提高访存效率,进而从整体上提升多通道DDR系统性能,本发明提供一种针对物理多通道的基于贪婪式算法的多通道DDR 控制器,增加了一个访存请求调度器,将请求队列、地址映射、命令队列三个部分包含在内,同时增加了针对请求的调度,具体通过以下技术方案实现:
所述基于贪婪式算法的多通道DDR控制器,与外部总线通信连接,所述控制器包括:分布式控制器、访存请求调度器以及存储颗粒,所述存储颗粒提供数据通道,分布式控制器与数据通道一一对应连接,
各分布式控制器通过连接到同一个访存请求调度器与外部总线进行交互;访存请求调度器对总线上发起的访存请求按贪婪式调度算法进行重排序,再将所述访存请求分配到空闲的数据通道上执行。
[0009]所述基于贪婪式算法的多通道DDR控制器的进一步设计在于,所述访存请求调度器,记录下经总线传来的访存请求,按当前访存请求的目标存储体(一般指Bank)的当前状态,计算出调度时刻,并根据计算结果对当前访存请求进行排序。
[0010]所述基于贪婪式算法的多通道DDR控制器的进一步设计在于,被调度器记录的访存请求保存在请求队列中,当请求队列为满时,将不再响应总线的请求,而当请求队列中的访存请求被分配到空闲通道中执行时,请求队列空出相应的位置后,调度器重新响应总线的访存请求。
[0011]所述基于贪婪式算法的多通道DDR控制器的进一步设计在于,每个通道对应于一个单独的命令队列,访存请求调度器在访存命令生成后,根据逻辑地址中的channel号被归入到相应的命令队列中,等待DDR控制器的调度。
[0012]所述基于贪婪式算法的多通道DDR控制器的进一步设计在于,设定排列在命令队列的队首的命令为预调度命令,所述预调度命令的调度时刻的值为命令队列中所有命令的调度时刻的最小值,并且预调度命令的饥饿值大于设定的阈值。
[0013]所述基于贪婪式算法的多通道DDR控制器的进一步设计在于,调度器对总线上发起的访存请求按贪婪式调度算法进行重排序具体为:当有新的命令加入队列中时,首先与预调度命令进行比较,如果预调度命令的饥饿值大于设定阈值或者新命令的调度时刻大于预调度命令的调度时刻,新命令加入到队列尾部;否则,新命令取代预调度命令成为新的预调度命令,之前的预调度命令则放置到队尾,参与新一轮的重排序。
[0014]本发明的优点
本发明的基于贪婪式算法的多通道DDR控制器中的调度器包含访存请求队列、地址映射模块和各个通道的访存命令队列,同时还增加了贪婪式调度算法,并且针对贪婪算法的缺点,加入防饿死机制,以避免出现某个访存命令陷入无限等待的状态。本发明的多通道DDR控制器能够减少处理同一请求序列所需要的总的时间,进而提高多通道DDR的访存性能。
附图说明
[0015]图1是处理器-存储器的性能发展差距示意图。
[0016]图2是单通道DDR控制器的架构示意图。
[0017]图3是物理与逻辑多通道对比示意图。
[0018]图4是DDR访存时序示意图。
[0019]图5是多通道DDR控制器示意图。
[0020]图6是多通道DDR存储器访存流程图。
[0021]图7命令队列结构示意图。
[0022]图8是仿真原理图。
[0023]图9是访存数据格式示意图。
[0024]图10是仿真验证的实验结果示意图。
具体实施方式
[0025]下面结合附图和具体实现案例对本发明进行详细说明。
[0026]如图5,本实施例的基于贪婪式算法的多通道DDR控制器,该DDR控制器针对物理多通道,由存储颗粒端提供数据通道,基本保持了常规的DDR控制器,每个通道有一个控制器,各个控制器连接到同一个访存请求调度器,调度器通过请求队列、贪婪调度与命令队列实现对访存请求的实时调度。该
调度器与各个通道的控制器直接连接。
[0027]针对访存请求调度器中需要重新排列各项命令,本实施例提出一种新的命令包格式,参见表1。本实施例采用的命令包格式包含四类信息,第一类是访存地址;第二类是访存类型;第三类是调度时刻,也就是根据访存地址所在存储颗粒的当前状态,计算出处理该命令所需要的时间;第四类是饥饿值,每当队列中有命令被分配到相应的通道执行时,该命令队列中剩余的命令的饥饿值加一。
[0028]表1访存命令格式
字段访存地址访存类型访存时刻饥饿值
值逻辑地址READ/WRITE cycle1
~8
本实施例中,为保证请求调度器在对命令队列进行贪婪式调度时的效率,将对请求队列的深度作出限制,当请求队列满时,额外的访存请求将被挂起,直到命令队列中有命令被分配到通道执行,请求队列中相应的请求数据会被移除,空出名额,才会重新响应片外访存请求。在请求调度器中,只有一个请求队列,但是会有多个命令队列,对应每一个通道,与相应的通道控制器相连。通道控制器根据DDR工作原理,完成相应的读写任务。
[0029]如图4,DDR访存时序为:在执行访存任务时,Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行激活”(Row Active)。在此之后,将会发送列地址寻址命令与具体的访存类型(读还是写),这两个命令被同时发出,根据相关标准,从行有效命令到读/写命令发出之间的间隔被定义为tRCD(RAS to CAS Delay),即行选通周期;另一个与本发明相关的时序参数为tRP(Row Precharge Command Period),称之为行预充电有效周期,该时序参数的意义在于,在数据读取完之后,为了释放读写放大器以供同一Bank内其他行的寻址并传输数据,内存颗粒将进行预充电的操作来关闭当前工作行。如果下一个命令访问的是同一Bank的同一行,则不需要进行预充电,因为读出放大器正在操作这一行。本发明正是针对这一特性,优先调度将要访问已经处于“行激活”状态颗粒的命令,如图4中的命令一与命令二,访问已处于“行激活”状态的颗粒将节省下行预充电的时间,提升访存效率。[0030]如图6,片外访存数据经总线首先到达请求队列,而DDR存储控制器中的请求队列

本文发布于:2024-09-22 18:30:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/402820.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:访存   请求   命令   调度   控制器   队列
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议