一种用于提高DDR总线利用率的反馈装置及方法转让专利

申请号 : CN201910683162.2

文献号 : CN110389913B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋超

申请人 : 南京凯鼎电子科技有限公司

摘要 :

本发明公开了一种用于提高DDR总线利用率的反馈装置及方法,包括命令缓存队列模块、监控模块以及计算反馈模块;所述命令缓存队列模块将命令输出至计算反馈模块;所述监控模块对进入命令缓存队列的命令进行识别和监测,记录命令的顺序和信息,并与计算反馈模块进行互通,将命令进入所述命令缓存队列模块以及离开所述命令缓存队列模块的信息实时反馈给计算反馈模块;所述计算反馈模块对监控模块送来的命令信息进行分bank统计,按照同bank换行的情况进行计数。本发明避免了整个DDR系统因为接受的命令随机性太强,造成频繁的同bank换行行为,有效降低同bank换行行为,从而提升DDR总线利用率,提升DDR的访问效率。

权利要求 :

1.一种用于提高DDR总线利用率的反馈装置,其特征在于,包括命令缓存队列模块、监控模块以及计算反馈模块;

所述命令缓存队列模块按入口的输入顺序缓存前级模块的命令信息,将命令输出至计算反馈模块;

所述监控模块对进入命令缓存队列的命令进行识别和监测,记录命令的顺序和信息,并与计算反馈模块进行互通,将命令进入所述命令缓存队列模块以及离开所述命令缓存队列模块的信息实时反馈给计算反馈模块;

所述计算反馈模块对监控模块送来的命令信息进行分bank统计,按照同bank换行的情况进行计数,在同bank换行的情况出现时,会将该bank的计数器加1操作;当监控模块送来命令离开队列的信息时,会继续对bank的计数进行维护,将对应bank换行的情况中的bank计数器减1操作。

2.如权利要求1所述的一种用于提高DDR总线利用率的反馈装置,其特征在于,所述计算反馈模块将8个bank的全部信息以8bit总线的形式反馈给前级模块,当其中一个bank的同bank换行计数大于阈值时,该bank对应的bit的数据就为1,当计数小于阈值时,将该bank对应的bit的数据置0。

3.如权利要求2所述的一种用于提高DDR总线利用率的反馈装置,其特征在于,所述阈值为所述命令缓存队列模块的buffer的深度的1/4。

4.一种用于提高DDR总线利用率的反馈方法,其特征在于,包括如下步骤:

S1:命令进入,命令缓存队列模块按入口的输入顺序缓存前级模块的命令信息,并将输入给DDR的命令信息暂时缓存,当的DDR处理不过来时,命令缓存队列模块对前级模块进行反压;

S2:当命令进入命令缓存队列模块的同时,监控模块会监测进入命令缓存队列模块中命令的序列以及访问的地址信息;

S3:当命令离开命令缓存队列时,监控模块将相应的命令缓存释放,将该命令释放的情况发送给计算反馈模,并将后面的命令移位过来;并且监控模块会将命令信息进行梳理,根据bank信息分类统计,并按照分bank的方式发送给计算反馈模块;

S4:计算反馈模块会针对bank进行分类统计,当出现同bank同行的情况出现时,会将对应bank的计数加1;计算反馈模块会将某个bank中同bank换行计数最大值进行反馈到前级模块中;

S5:当计算反馈模块接收到监控模块发送来的命令释放信息后,会对该信息进行bank提取,检查是否属于之前记录的同bank换行;

S6:计算反馈模块中,当某个bank对应的计数大于系统设置的阈值时,会向前级模块发送该bank拥塞的告警信号;拥塞告警信号为8bit,对应8个bank,某个bank拥塞,那么该bank对应的Bit就会拉高;

S7:当前级模块接收到S6中的拥塞的告警信号后,前级模块暂停发送该bank的命令;当命令缓存队列中的命令出去后,计算反馈模块会对相应bank的同bank换行计数进行减法操作,当计数值小于阈值时,计算反馈模块则会释放告警信号中的对应bit的告警。

5.如权利要求4所述的一种用于提高DDR总线利用率的反馈方法,其特征在于,所述监控模块采用移位寄存器进行缓存入口写入的命令序列。

说明书 :

一种用于提高DDR总线利用率的反馈装置及方法

技术领域

[0001] 本发明涉及存储装置技术领域,具体涉及一种用于提高DDR总线利用率的反馈装置及方法。

背景技术

[0002] 在DDR存储器(双通道动态随机存储器)中,当出现同bank(存储体)换行命令时,则需要在第一个active激活的时间之后,等待至少tRC的延迟时间之后,才可以再次对该Bank的不同行进行active激活操作。
[0003] 一般的DDR(双通道动态随机存储器)控制器中,都会有一定量的Buffer(缓存)深度去存储前级模块发送过来的读写命令,这种一定量通常会选取2的整数次幂,但同时需要考虑到芯片的功耗和面积,一般的Buffer(缓存)深度会选取8-16。
[0004] 目前,通常情况下的控制器命令序列只会被动的接收前级模块发送过来的读写bank(存储体)的命令,不会主动进行反馈,这样就会造成大量同bank换行的命令以随机次序的情况写入了控制器的命令Buffer中。而不具备反馈装置的控制器命令buffer只会单纯的将入口的序列有序的发送给DDR存储器,这样就会在DDR存储器的总线上出现多个同bank换行的命令。
[0005] 之前所描述的出现同bank换行时,会出现总线空等至少tRC的延迟时间,所以就会造成总线上的有效命令数很低,一直在空等tRC的情况。这样就造成了总线利用率低下,DDR存储带宽浪费的现象。

发明内容

[0006] 针对上述存在的技术不足,本发明的目的是提供一种用于提高DDR总线利用率的反馈装置及方法,提高DDR总线的利用率和带宽。
[0007] 为解决上述技术问题,本发明采用如下技术方案:
[0008] 本发明提供一种用于提高DDR总线利用率的反馈装置,包括命令缓存队列模块、监控模块以及计算反馈模块;
[0009] 所述命令缓存队列模块按入口的输入顺序缓存前级模块的命令信息,将命令输出至计算反馈模块;
[0010] 所述监控模块对进入命令缓存队列的命令进行识别和监测,记录命令的顺序和信息,并与计算反馈模块进行互通,将命令进入所述命令缓存队列模块以及离开所述命令缓存队列模块的信息实时反馈给计算反馈模块;
[0011] 所述计算反馈模块对监控模块送来的命令信息进行分bank统计,按照同bank换行的情况进行计数,在同bank换行的情况出现时,会将该bank的计数器加1操作;当监控模块送来命令离开队列的信息时,会继续对bank的计数进行维护,将对应bank换行的情况中的bank计数器减1操作。
[0012] 优选地,所述计算反馈模块将8个bank的全部信息以8bit总线的形式反馈给前级模块,当其中一个bank的同bank换行计数大于阈值时,该bank对应的bit的数据就为1,当计数小于阈值时,将该bank对应的bit的数据置0。
[0013] 优选地,所述阈值为所述命令缓存队列模块的buffer的深度的1/4。
[0014] 优选地,一种用于提高DDR总线利用率的反馈方法,包括如下步骤:
[0015] S1:命令进入,命令缓存队列模块按入口的输入顺序缓存前级模块的命令信息,并将输入给DDR的命令信息暂时缓存,当的DDR处理不过来时,命令缓存队列模块对前级模块进行反压;
[0016] S2:当命令进入命令缓存队列模块的同时,监控模块会监测进入命令缓存队列模块中命令的序列以及访问的地址信息;
[0017] S3:当命令离开命令缓存队列时,监控模块将相应的命令缓存释放,将该命令释放的情况发送给计算反馈模,并将后面的命令移位过来;并且监控模块会将命令信息进行梳理,根据bank信息分类统计,并按照分bank的方式发送给计算反馈模块;
[0018] S4:计算反馈模块会针对bank进行分类统计,当出现同bank同行的情况出现时,会将对应bank的计数加1;计算反馈模块会将某个bank中同bank换行计数最大值进行反馈到前级模块中;
[0019] S5:当计算反馈模块接收到监控模块发送来的命令释放信息后,会对该信息进行bank提取,检查是否属于之前记录的同bank换行;
[0020] S6:计算反馈模块中,当某个bank对应的计数大于系统设置的阈值时,会向前级模块发送该bank拥塞的告警信号;拥塞告警信号为8bit,对应8个bank,某个bank拥塞,那么该bank对应的Bit就会拉高;
[0021] S7:当前级模块接收到S6中的拥塞的告警信号后,前级模块暂停发送该bank的命令;当命令缓存队列中的命令出去后,计算反馈模块会对相应bank的同bank换行计数进行减法操作,当计数值小于阈值时,计算反馈模块则会释放告警信号中的对应bit的告警。
[0022] 优选地,所述监控模块采用移位寄存器进行缓存入口写入的命令序列。
[0023] 本发明的有益效果在于:本发明根据实际命令存储Buffer的容量设定合理的反馈阈值,检测出当同bank换行的命令个数是否大于反馈阈值,当某些同bank换行命令大于阈值时,能够有效实时地将结果反馈给前级模块,以便前级模块进行低效率规避;避免了整个DDR系统因为接受的命令随机性太强,造成频繁的同bank换行行为,有效降低同bank换行行为,从而提升DDR总线利用率,提升DDR的访问效率。

附图说明

[0024] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025] 图1为本发明实施例提供的一种用于提高DDR总线利用率的反馈装置的示意图;
[0026] 图2为一种用于提高DDR总线利用率的反馈方法的流程图。

具体实施方式

[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 实施例
[0029] 如图1所示,本发明提供了一种用于提高DDR总线利用率的反馈装置,包括命令缓存队列模块、监控模块以及计算反馈模块;
[0030] 所述命令缓存队列模块按入口的输入顺序缓存前级模块的命令信息,将命令输出至计算反馈模块,在出口没有限制的情况下(限制是指DDR总线没被占用时,如果被占用了,那命令缓存队列模块的命令就无法发送出去),会持续向出口顺序发送命令;
[0031] 所述监控模块对进入命令缓存队列的命令进行识别和监测,记录命令的顺序和信息,并与计算反馈模块进行互通,将命令进入所述命令缓存队列模块以及离开所述命令缓存队列模块的信息实时反馈给计算反馈模块;
[0032] 所述计算反馈模块对监控模块送来的命令信息进行分bank统计,按照同bank换行的情况进行计数,在同bank换行的情况出现时,会将该bank的计数器加1操作;当监控模块送来命令离开队列的信息时,会继续对bank的计数进行维护,将对应bank换行的情况中的bank计数器减1操作;其中计算反馈模块将8个bank的全部信息以8bit总线的形式反馈给前级模块,当其中一个bank的同bank换行计数大于阈值时,该bank对应的bit的数据就为1,即表示该bank已经拥塞,请前级模块不要再发送该bank的命令来,否则将会引起DDR中频繁的同bank换行,影响传输效率,当计数小于阈值时,将该bank对应的bit的数据置0,表示该bank已经空闲,可以继续发送该bank的命令过来。
[0033] 进一步的,所述阈值与命令缓存队列模块的buffer的深度存在数学关系,为buffer的深度的1/4。
[0034] 一种用于提高DDR总线利用率的反馈方法,包括如下步骤:
[0035] S1:命令进入,命令缓存队列模块按入口的输入顺序缓存前级模块的命令信息,并将输入给DDR的命令信息暂时缓存,当的DDR处理不过来时,命令缓存队列模块对前级模块进行反压;
[0036] S2:当命令进入命令缓存队列模块的同时,监控模块会监测进入命令缓存队列模块中命令的序列以及访问的地址信息;监控模块采用移位寄存器进行缓存入口写入的命令序列;
[0037] S3:当命令离开命令缓存队列时,监控模块将相应的命令缓存释放,将该命令释放的情况发送给计算反馈模,并将后面的命令移位过来;并且监控模块会将命令信息进行梳理,根据bank信息分类统计,并按照分bank的方式发送给计算反馈模块;
[0038] S4:计算反馈模块会针对bank进行分类统计,当出现同bank同行的情况出现时,会将对应bank的计数加1;计算反馈模块会将某个bank中同bank换行计数最大值进行反馈到前级模块中;
[0039] S5:当计算反馈模块接收到监控模块发送来的命令释放信息后,会对该信息进行bank提取,检查是否属于之前记录的同bank换行;
[0040] S6:计算反馈模块中,当某个bank对应的计数大于系统设置的阈值时,会向前级模块发送该bank拥塞的告警信号;拥塞告警信号为8bit,对应8个bank,某个bank拥塞,那么该bank对应的bit就会拉高,即该bit会置1;
[0041] S7:当前级模块接收到S6中的拥塞的告警信号后,前级模块暂停发送该bank的命令;当命令缓存队列中的命令出去后,计算反馈模块会对相应bank的同bank换行计数进行减法操作,当计数值小于阈值时,计算反馈模块则会释放告警信号中的对应bit的告警,即解除告警,该bit置0;(bit置0时,表示没有告警,可以随意发送;bit置1时,表示有告警,不可以继续发送该bank的命令)。
[0042] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。