一种可动态配置端口带宽的DDR控制方法及装置技术领域
本发明涉及数据通讯及存储控制技术领域,尤其涉及一种可动态配置端口带
宽的DDR控制方法及装置。
背景技术
高速存储技术在数据通讯领域广泛应用,DDR(Double Data Rate,双倍速
率)成本较低,被广泛采用。但是由于DDR SSRAM(Synchronous Dynamic Random
Access Memory,同步动态随机存储器)对操作命令间隔存在时间要求,因此DDR
的控制器往往需要专门设计。
为提高DDR的读写效率,有一种方式是设计通用的DDR调度控制器,这种
DDR控制器事先不知道各端口的读写带宽和读写突发方式,而是根据预先判断读
写命令和地址的关联关系,进行读写命令的重新排列,使其符合DDR SSRAM bank
间插的操作时序特定,来提高带宽。但是,这种调度控制器存在的两个问题,一
是可能改变了原入口的操作顺序,对有操作顺序特殊要求的场合不适用;二是也
不能直接通过调度控制器对各个端口的带宽进行分配;另一种设计方式是根据用
户的DDR读写特定和要求,专门定制一款DDR控制器,其设计的效率可以满足该
应用场合达到最大带宽的要求,但是这种设计存在的弊端是往往不能通用,换一
种场合,还得重新定制。
发明内容
本发明的目的在于提供一种可动态配置端口带宽的DDR控制方法及装置,解
决了现有技术中不能达到最大带宽利用率的问题。
根据本发明的一个方面,提供了一种可动态配置端口带宽的DDR控制方法,
包括以下步骤:
根据来自外部的读写操作指令,生成各端口读写操作命令;
根据读写端口的组数及各读写端口的带宽需求,生成用于响应所述各端口读
写操作命令的DDR SSRAM读写命令,以便分配给各读写端口访问带宽;
响应所述各端口读写操作命令,按照所述DDR SSRAM读写命令,执行各读写
端口的DDR SSRAM读写操作;
其中,所述DDR SSRAM是双倍速率同步动态随机存储器。
优选地,还包括:
在响应所述各端口读写操作命令之前,缓存所述各端口读写操作命令,以便
有效响应所述各端口读写操作命令。
优选地,所述的根据来自外部的读写操作指令生成各端口读写操作命令包
括:
子端口收到外部读写指令后,端口操作调度器根据调度策略生成端口读写操
作命令。
优选地,所述的根据来自外部的读写操作指令生成各端口读写操作命令包
括:
端口操作调度器收到外部读写指令后,根据调度策略为各读写端口生成端口
读写操作命令;
其中,所述端口操作调度器包括多个端口读写操作响应模块。
优选地,所述的分配给各读写端口访问带宽通过动态配置周期性读写的频度
和每个读写周期中,单次执行对应端口的读写字节数来实现,所述的单次执行对
应端口的读写字节数是通过配置读写周期中对应端口的读写操作周期数N来实
现,其中,所述读写操作周期数N大于1。
优选地,所述的用于响应所述各端口读写操作命令的DDR SSRAM读写命令用
于数据的快速读写,所述的DDR SSRAM读写命令包括:每次读写操作时,根据读
写端口的组数及端口带宽需求执行的读写操作周期数N。
优选地,所述的端口读写操作周期数N大于或等于对应所述端口读写操作命
令中的单次所需突发读写周期数。
根据本发明的另一方面,提供了一种可动态配置端口带宽的DDR控制装置,
包括:
生成各端口读写操作命令模块,用于根据来自外部的读写操作指令,生成各
端口读写操作命令;
生成DDR SSRAM读写命令模块,用于根据读写端口的组数及各读写端口的带
宽需求,生成用于响应所述各端口读写操作命令的DDR SSRAM读写命令,以便分
配给各读写端口访问带宽;
执行模块,用于响应所述各端口读写操作命令,按照所述DDR SSRAM读写命
令,执行各读写端口的DDR SSRAM读写操作。
优选地,还包括:
缓存单元,用于在响应所述各端口读写操作命令之前,缓存所述各端口读写
操作命令,以便有效响应所述各端口读写操作命令。
优选地,所述生成各端口读写操作命令模块包括:
生成单元,用于子端口收到外部读写指令后,端口操作调度器根据调度策略
生成端口读写操作命令。
与现有技术相比较,本发明的有益效果在于:
本发明通过可动态配置带宽的DDR调度控制器,根据DDR SSRAM的操作时
序要求和特定的使用场合,全定制配置DDR的操作命令码,该操作码能确保在当
前使用场合DDR带宽使用率达到较优的配置;同时,该操作命令码可根据使用场
合的不同动态配置,达到装置重复利用的特点。
附图说明
图1是本发明实施例提供的一种可动态配置端口带宽的DDR控制方法的流程
图;
图2是本发明实施例提供的一种可动态配置端口带宽的DDR控制装置的示意
图;
图3是本发明实施例提供的可动态配置端口带宽的DDR控制器及装置的示意
图;
图4是本发明第一实施例提供的可动态配置端口带宽的DDR控制器及装置的
示意图;
图5是本发明第二实施例提供的可动态配置端口带宽的DDR控制器及装置的
示意图;
图6是本发明第三实施例提供的可动态配置端口带宽的DDR控制器及装置的
示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明
的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1显示了本发明实施例提供的一种可动态配置端口带宽的DDR控制方法的
流程图,如图1所示,包括以下步骤:
步骤S101:根据来自外部的读写操作指令,生成各端口读写操作命令;
步骤S102:根据读写端口的组数及各读写端口的带宽需求,生成用于响应
所述各端口读写操作命令的DDR SSRAM读写命令,以便分配给各读写端口访问带
宽;
步骤S103:响应所述各端口读写操作命令,按照所述DDR SSRAM读写命令,
执行各读写端口的DDR SSRAM读写操作。
本发明还包括:在响应所述各端口读写操作命令之前,缓存所述各端口读写
操作命令,以便有效响应所述各端口读写操作命令。
其中,所述的根据来自外部的读写操作指令生成各端口读写操作命令包括:
子端口收到外部读写指令后,端口操作调度器根据调度策略生成端口读写操作命
令。
其中,所述的根据来自外部的读写操作指令生成各端口读写操作命令包括:
端口操作调度器收到外部读写指令后,根据调度策略为各读写端口生成端口读写
操作命令;其中,所述端口操作调度器包括多个端口读写操作响应模块。
其中,所述的分配给各读写端口访问带宽通过动态配置周期性读写的频度和
每个读写周期中,单次执行对应端口的读写字节数来实现,所述的单次执行对应
端口的读写字节数是通过配置读写周期中对应端口的读写操作周期数N来实现,
其中,所述读写操作周期数N大于1。
其中,所述的用于响应所述各端口读写操作命令的DDR SSRAM读写命令用于
数据的快速读写,所述的DDR SSRAM读写命令包括:每次读写操作时,根据读写
端口的组数及端口带宽需求执行的读写操作周期数N。其中,所述的端口读写操
作周期数N大于或等于对应所述端口读写操作命令中的单次所需突发读写周期
数。
图2显示了本发明实施例提供的一种可动态配置端口带宽的DDR控制装置的
示意图,如图2所示,包括:生成各端口读写操作命令模块201、生成DDR SSRAM
读写命令模块202以及执行模块203。所述生成各端口读写操作命令模块201,
用于根据来自外部的读写操作指令,生成各端口读写操作命令;所述生成DDR
SSRAM读写命令模块202,用于根据读写端口的组数及各读写端口的带宽需求,
生成用于响应所述各端口读写操作命令的DDR SSRAM读写命令,以便分配给各读
写端口访问带宽;所述执行模块203,用于响应所述各端口读写操作命令,按照
所述DDR SSRAM读写命令,执行各读写端口的DDR SSRAM读写操作。
本发明还包括:缓存单元,用于在响应所述各端口读写操作命令之前,缓存
所述各端口读写操作命令,以便有效响应所述各端口读写操作命令。
其中,所述生成各端口读写操作命令模块包括:生成单元,用于子端口收到
外部读写指令后,端口操作调度器根据调度策略生成端口读写操作命令。
图3显示了本发明实施例提供的可动态配置端口带宽的DDR控制器及装置的
示意图,如图3所示,包括:子端口操作调度器、端口命令缓存模块、DDR PHY
(Physics物理层)控制器、DDR操作命令动态配置器、DDR PHY、DDR SSRAM、
DDR端口信息统计器以及DDR自检模块。其中,所述子端口操作调度器,用于根
据一定的调度规则对子端口的输入进行调度,输出对应端口的操作命令;所述端
口命令缓存模块,用于缓存子端口操作调度器输出的尚未被响应的各端口操作命
令;所述DDR PHY控制器,用于根据DDR操作命令动态配置器输出的动态配置
信息,确定每个时序的操作命令,即根据配置的操作码,响应各端口的操作;所
述DDR操作命令动态配置器,可由软件配置每个时序的操作码,操作码信息包
括端口信息,激活读写关闭信息等,该操作码的时序安排符合外挂的DDR SSRAM
时序操作要求;所述DDR PHY,用于驱动DDR SSRAM,实现控制器命令和DDR SSRAM
读写命令和数据流的转换;所述DDR SSRAM,存储的载体,一般用专用的DDR
SSRAM;所述DDR端口信息统计器,用于统计各端口的实际操作带宽等信息,增
强可维护性;所述DDR自检模块,用于对DDR的读写进行自检,检查DDR PHY
控制器到DDR PHY再到DDR SSRAM的物理通路是否正常,增强可靠性;
图4显示了本发明第一实施例提供的可动态配置端口带宽的DDR控制器及装
置的示意图,如图4所示,约定子端口1-1、1-2,访问DDR SSRAM的bank1空
间,子端口2-1、2-2访问DDR SSRAM的bank2空间,子端口3-1、3-2访问DDR
SSRAM的bank3空间,子端口4-1、4-2访问DDR SSRAM的bank4空间,这四个
端口组为快速响应端口组;CPU读写访问接口模块可访问全部DDR SSRAM空间,
为慢速响应端口组。具体包括以下步骤:
步骤401:在正式响应用户的读写操作之前,DDR自检模块先对DDR读写进
行读写校验自检,自检的方式有2种可选,一是硬件自检,自检模块会发出特征
码流,比如PRBS(Pseudo Random Binary Sequence,伪随机二进制序列)码流写
入DDR,同时从DDR读取写入的码流信息,在约定的时间内,读取的码流特征均
正确,则自检结束;或者采用软件自检的方式,通过CPU读写访问接口模块读写
访问DDR SSRAM空间,通过软件方式对读写数据流进行校验。
步骤402:首先将第一组、第二组、第三组、第四组的子端口通过子端口优
先级调度器调度出该组端口的读写命令和地址。
步骤403:为便于响应用户各子端口的读写命令,设置端口命令缓存模块,
可缓存一个或者若干个命令在内部模块中。
步骤404:DDR操作命令动态配置模块根据应用的场合,分配各组端口的访
问带宽,例如分配的操作命令,如下列表1快速操作端口组命令和表2慢速操作
端口组命令所示。
表1:快速操作端口组命令
时序周期数
操作命令
0
端口1,激活行
1
NOP(空操作,下同)
2
端口2,激活行
3
NOP
4
NOP
5
NOP
6
NOP
7
端口2,激活行
8
NOP
9
端口1,写并且关闭行
10
NOP
11
端口2,写并且关闭行
12
NOP
13
NOP
14
端口1,激活行
15
NOP
16
端口2,激活行
17
NOP
18
端口3,激活行
19
NOP
20
端口4,激活行
21
端口1,读
22
NOP
23
端口1,读并且关闭行
24
NOP
25
端口2,读并且关闭行
26
NOP
27
端口3,读
28
NOP
29
端口3,读并且关闭行
30
NOP
31
端口4,读
32
NOP
33
端口4,读
34
NOP
35
端口4,读
36
NOP
37
端口4,读
38
NOP
39
端口4,读
40
NOP
41
端口4,读
42
NOP
43
端口4,读
44
NOP
45
端口4,读并且关闭行
46
NOP
47
NOP
48
NOP
表2:慢速操作端口组命令
时序周期数
操作命令
0
CPU端口,激活
1
NOP(空操作,下同)
2
NOP
3
NOP
4
NOP
5
CPU端口,写,或者写并且关闭行
6
NOP
7
CPU端口,写,或者写并且关闭行
8
NOP
9
CPU端口,写,或者写并且关闭行
10
NOP
11
CPU端口,写,或者写并且关闭行
12
NOP
13
CPU端口,写,或者写并且关闭行
14
NOP
15
CPU端口,写,或者写并且关闭行
16
NOP
17
CPU端口,写,或者写并且关闭行
18
NOP
19
CPU端口,写,或者写并且关闭行
20
NOP
21
NOP
22
NOP
23
NOP
24
NOP
25
NOP
26
CPU端口,激活
27
NOP
28
NOP
29
NOP
30
NOP
31
CPU端口,读,或者读并且关闭行
32
NOP
33
CPU端口,读,或者读并且关闭行
34
NOP
35
CPU端口,读,或者读并且关闭行
36
NOP
37
CPU端口,读,或者读并且关闭行
38
NOP
39
CPU端口,读,或者读并且关闭行
40
NOP
41
CPU端口,读,或者读并且关闭行
42
NOP
43
CPU端口,读,或者读并且关闭行
44
NOP
45
CPU端口,读,或者读并且关闭行
46
NOP
47
NOP
48
NOP
其中,表1是快速操作端口组命令,给第一组、第二组、第三组、第四组端
口使用,主要可用于数据的快速读写;表2是慢速操作端口组命令,给CPU端口
读写。快速操作组每周期操作多个周期,例如256个周期,慢速操作组执行一个
周期。其中,如图4中的端口命令缓存模块输出给DDR PHY控制器的端口信息中,
包括了每个单次操作所需的读写突发周期数,要求这个周期数不能大于配置给该
端口的读写操作突发周期数;当两者相等时,在配置的行关闭时刻关闭行;当实
际操作突发周期数小于配置的操作突发周期数时,可根据实际操作突发周期,提
前关闭行,提前关闭行时,剩余该端口的操作自动转为空操作(NOP)。
步骤405:DDR PHY控制器输出给DDR端口信息统计器对应的子端口编号,
以及实际执行的读写命令次数,DDR端口信息统计器据此进行统计,统计信息可
供CPU查询。
图5显示了本发明第二实施例提供的可动态配置端口带宽的DDR控制器及装
置的示意图,如图5所示,每个端口操作组可能没有子端口,不需要进行子端口
调度,而是直接的端口读写操作响应模块。同时端口数也是可裁剪的,本实施例
中,快速操作端口数为3个,CPU操作端口数为1个。同样的,约定端口1访问
DDR SSRAM的bank1空间,端口2访问DDR SSRAM的bank2空间,端口3访问DDR
SSRAM的bank3空间,这三个端口组为快速响应端口组;CPU读写访问接口可访
问全部DDR SSRAM空间,为慢速响应端口组。
DDR操作命令动态配置器根据当前的端口组数和每个端口需要的操作带宽,
重新动态配置每个时间周期的操作命令。
图6显示了本发明第三实施例提供的可动态配置端口带宽的DDR控制器及装
置的示意图,如图6所示,用户端口只有1个,但是需要访问整个DDR SSRAM
的存储空间,为此,需要增加一个用户单接口读写访问bank区分模块,通过用
户访问的bank地址,区分为多个访问接口,分别连接到按bank地址区分的读写
访问接口模块,这些读写访问接口为快速响应接口组;CPU读写访问接口模块可
访问全部DDR SSRAM空间,为慢速响应端口组。相应地,由于在读写访问时,用
bank地址区分了访问接口,这可能造成访问DDR SSRAM的操作顺序与用户输入
时有差别,因此在读出数据时,需要还原为原读出命令的读出数据流,这个可通
过用户单接口读出数据还原模块完成。
综上所述,本发明具有以下技术效果:
本发明通过可动态调整分配端口带宽的DDR调度控制器,达到在不同端口组
合不同带宽组合,充分发掘DDR操作效率的潜能,能达到该使用场合最大带宽利
用率,又能通过配置控制各个端口的操作带宽;同时这种DDR调度控制器具有可
移植性高的特点,根据不同应用场合提供不同配置信息即可,无须修改装置和模
块。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术
人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,
都应当理解为落入本发明的保护范围。