一种同步动态存储器读写控制方法、装置和系统的制作方法

文档序号:6336048阅读:255来源:国知局
专利名称:一种同步动态存储器读写控制方法、装置和系统的制作方法
技术领域
本发明涉及存储器技术领域,尤其涉及一种同步动态存储器读写控制方法、装置 和系统。
背景技术
随着网络技术的发展,路由交换设备带宽增加使得对数据动态缓存容量的需求越 来越大,因而存储器的成本、容量、速度和存储带宽就成为不得不综合考虑的问题。受到成 本和容量的制约,一味的通过使用速度最快的存储器来缓解缓存容量紧张的状况是不切实 际的。目前,业界普遍将同步动态存储器作为数据缓存的第一选择。在路由交换设备中, 通常是将数据包按照一定的规则拆分成多个数据片写入同步动态存储器的内部体Bank,在 数据包输出时,再将同步动态存储器中的多个数据片进行组合,恢复成原来的数据包。由数 据包拆分成的数据片长度应该与数据包最小长度、内部包处理速度、存储器数据位宽等因 素有关。现有同步动态存储器单条指令时序如图1所示,对每一个同步动态存储器内部体 Bank的指令均包括激活命令Active、操作命令Cmd和预充电命令!^recharge,当上一个指令 结束之后下一个指令的激活命令Active才开始,操作命令Cmd与数据线上的数据响应指令 D之间的间隔即指令响应时间通常为4 6个时钟周期Clk,图1中8个数据响应指令D所 占的带宽为存取数据带宽,每个数据响应指令D占半个时钟周期Clk。在网络数据包缓存时 采用的将数据包切成小数据片的方式,使得存取数据带宽利用成为影响存储器使用的关键 问题。

发明内容
本发明要解决的技术问题是,提供一种同步动态存储器读写控制方法、装置和系 统,在不增加硬件成本的情况下提高数据缓存过程中的存储带宽利用率。本发明采用的技术方案是,所述同步动态存储器读写控制方法,包括当产生访问同步动态存储器的指令时,在所述指令对应的内部体满足内部体平均 分布的情况下,对所述指令进行时间压缩后执行。进一步的,该方法在产生访问同步动态存储器的指令之前还包括对同步动态存储器的内部体地址进行随机化处理。进一步的,所述指令包括激活命令、操作命令和预充电命令,激活命令与操作命令 之间以及操作命令与预充电命令之间的时间为指令的空闲;或者,所述指令包括激活命令、 操作命令和自动预充电命令,激活命令与操作命令之间以及操作命令与自动预充电命令之 间的时间为指令的空闲;所述在指令对应的内部体满足内部体平均分布的情况下,对所述指令进行时间压 缩,具体包括从指令缓存中取出指令,判断所述指令对应的内部体是否满足内部体平均分布,若是,则在满足时序要求的情况下,顺次将后面的指令插入前面指令的空闲处,否则进行现 有常规处理。进一步的,所述满足时序要求的情况,具体包括被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量 一半的时钟周期。进一步的,该方法还包括当产生访问同步动态存储器中同一数据流的指令时,直接对所述指令进行时间压缩。本发明还提供一种同步动态存储器读写控制装置,包括指令缓存模块,用于存储产生的访问同步动态存储器的指令;缓存控制模块,用于在指令缓存模块中的指令对应的内部体满足内部体平均分布 的情况下,对所述指令进行时间压缩后执行。进一步的,所述缓存控制模块进一步包括地址处理模块,用于在产生的访问同步动态存储器的指令之前,对同步动态存储 器的内部体地址进行随机化处理。进一步的,所述指令包括激活命令、操作命令和预充电命令,激活命令与操作命令 之间以及操作命令与预充电命令之间的时间为指令的空闲;或者,所述指令包括激活命令、 操作命令和自动预充电命令,激活命令与操作命令之间以及操作命令与自动预充电命令之 间的时间为指令的空闲;所述缓存控制模块进一步包括判断模块,用于从指令缓存中取出指令,判断所述指令对应的内部体是否满足内 部体平均分布,若是,则调用时间压缩模块,否则进行现有常规处理;时间压缩模块,用于在满足时序要求的情况下,顺次将后面的指令插入前面指令 的空闲处。进一步的,所述满足时序要求的情况,具体包括被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量 一半的时钟周期。进一步的,所述缓存控制模块进一步用于当指令缓存模块中的指令属于同一数据流时,直接对所述指令进行时间压缩后执 行。本发明还提供一种同步动态存储器读写控制系统,包括指令缓存模块,用于存储产生的访问同步动态存储器的指令;缓存控制模块,用于在指令缓存模块中的指令对应的内部体满足内部体平均分布 的情况下,对所述指令进行时间压缩后通过访问数据缓存模块执行;数据缓存模块,用于在缓存控制模块的控制下存取所述指令对应的数据;数据包输入处理模块,用于当缓存控制模块执行写指令时,将输入的数据包拆分 成固定长度的数据片传送到缓存控制模块;数据包输出处理模块,用于当缓存控制模块执行读指令时,将缓存控制模块从数 据缓存模块中读出的数据片重新组成数据包发送出去。
采用上述技术方案,本发明至少具有下列优点本发明所述同步动态存储器读写控制方法、装置和系统,当产生访问同步动态存 储器的指令时,在所述指令对应的内部体满足内部体平均分布的情况下,对所述指令进行 时间压缩后执行。在现有的IP核的基础上,以比较小的硬件成本大幅度提高路由交换设备 同步动态存储器的带宽利用效率。


图1为现有同步动态存储器单条指令时序图;图2为本发明第一实施例中所述同步动态存储器读写控制方法流程图;图3为在满足时序要求的情况下将后一个指令插入前面指令的时序图;图4为本发明第二实施例中所述同步动态存储器读写控制方法流程图;图5为本发明第三实施例中所述同步动态存储器读写控制装置组成示意图;图6为本发明第四实施例中所述同步动态存储器读写控制装置组成示意图;图7为本发明第五实施例中所述同步动态存储器读写控制系统组成示意图。
具体实施例方式为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图 及较佳实施例,对本发明进行详细说明如后。本发明第一实施例,一种同步动态存储器读写控制方法,如图2所示,包括以下具 体步骤步骤S101,当指令缓存中产生访问同步动态存储器的指令时,判断其是否为访问 同一数据流的指令,若是,则跳转步骤S103,否则跳转步骤S102。该指令可以为写指令,也 可以为读指令。本领域中,若产生的访问同步动态存储器的指令为写指令,将同时有数据包的输 入,将输入的数据包拆分成的固定长度的数据片,数据片的固定长度在64 1. 字节之间 选取,通常选择64字节。写指令中包含有数据片与内部体的对应关系。若产生的访问同步动态存储器的指令为读指令,由于读指令中包含有数据片与内 部体的对应关系,后续将会从同步动态存储器的相应内部体中读取数据片。步骤S102,从指令缓存中每次取出固定个数的指令,判断这些指令对应的内部体 是否满足内部体平均分布,若是,则跳转步骤S103,否则跳转步骤S105。,从指令缓存中每 次取出固定个数的指令时,由指令缓存容量的限制,通常是每次取8个写指令,然后再取8 个读指令,交替进行。该指令包括激活命令、操作命令和预充电命令,激活命令与操作命令 之间以及操作命令与预充电命令之间的时间为指令的空闲;另外,因为预充电命令还有自动模式,即自动预充电命令,对于指令缓存中每次取 出的指令,可以在最后一条指令的操作命令之后使用一个自动预充电命令即可。因此,该命 令也可包括激活命令、操作命令和自动预充电命令,激活命令与操作命令之间以及操作命 令与自动预充电命令之间的时间为指令的空闲。步骤S103,在满足时序要求的情况下,顺次将后面的指令插入前面指令的空闲处。 满足时序要求的情况具体包括
被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量 一半的时钟周期。另外,被插入的指令的激活命令以及预充电命令或者自动预充电命令只须满足现 有的指令时序要求即可,具体要求如下被插入的指令的激活命令与操作命令之间的时间间隔至少为tRCD(ActiVe to Read/Write Command time,激活命令和操作命令之间的最小时间);被插入的指令的操作命令与预充电命令或者自动预充电命令之间的时间间隔至 少为tRAS (Active to Precharge Command time,激活命令和预充电命令之间的最小时 间)减去tRCD的差值。图3为在满足时序要求的情况下将后一个指令插入前面指令的时序图,指令响应 时间通常为5. 5个时钟周期Clk,第二操作命令Cmdl与第一操作命令CmdO之间的间隔为 4个时钟周期。当第二操作命令Cmdl与第一操作命令CmdO之间的间隔大于4个时钟周期 时,同步动态存储器的存取数据带宽就可能出现短暂的中断,带宽利用率还未达到最大。步骤S104,执行经过时间压缩后的指令,流程结束。此时同步动态存储器的存取数 据带宽利用率可以大于90%。步骤S105,进行现有常规处理,流程结束。本发明第二实施例,一种同步动态存储器读写控制方法,如图4所示,包括以下具 体步骤步骤S201,对同步动态存储器的内部体地址进行随机化处理。假设同步动态存储器的内部体个数为8个,分别为BankO Bank7,经过随机化处 理的同步动态存储器的内部体地址不再按照从小到大的顺序对应BankO Bank7,设内部 体地址均由三位二进制数a[2]a[l]a
表示,那么随机化处理后的BankO Bank7的体地 址映射为BankO = {a[2], a[l], a
};Bankl = { ! a[2], ! a[l], ! a
};Bank2 = {a[2], ! a[l], ! a
};Bank3 = { ! a[2],a[l],a
};Bank4 = {a[2], a[l], ! a
};Bank5 = { ! a[2], ! a[l],a
};Bank6 = {a [2], ! a[l],a
};Bank7 = { ! a[2],a[l],! a
};在本领域中针对数据缓存都是以流为处理对象,在存取地址的分配时为每一条流 的操作命令分配对应的内部体地址时,由连续的8个内部体地址按照二进制数值从小到大 循环提供。本实施例与第一实施例相比,增加了针对内部体地址与内部体的映射做随机化 处理的步骤,在随机化处理之后执行写指令,可以增加后续在数据片读取时的内部体平均 分布的概率。步骤S202,当指令缓存中产生访问同步动态存储器的指令时,判断其是否为访问 同一数据流的指令,若是,则跳转步骤S204,否则跳转步骤S203。该指令可以为写指令,也 可以为读指令。
步骤S203,从指令缓存中每次取出固定个数的指令,判断这些指令对应的内部体 是否满足内部体平均分布,若是,则跳转步骤S204,否则跳转步骤S206。该指令包括激活命 令、操作命令和预充电命令,激活命令与操作命令之间以及操作命令与预充电命令之间的 时间为指令的空闲;另外,因为预充电命令还有自动模式,即自动预充电命令,对于指令缓存中每次取 出的指令,可以在最后一条指令的操作命令之后使用一个自动预充电命令即可。因此,该命 令也可包括激活命令、操作命令和自动预充电命令,激活命令与操作命令之间以及操作命 令与自动预充电命令之间的时间为指令的空闲。步骤S204,在满足时序要求的情况下,顺次将后面的指令插入前面指令的空闲处。 满足时序要求的情况具体包括被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量 一半的时钟周期。另外,被插入的指令的激活命令以及预充电命令或者自动预充电命令只须满足现 有的指令时序要求即可,具体要求如下被插入的指令的激活命令与操作命令之间的时间间隔至少为tRCD(ActiVe to Read/Write Command time,激活命令和操作命令之间的最小时间);被插入的指令的操作命令与预充电命令或者自动预充电命令之间的时间间隔至 少为tRAS (Active to Precharge Command time,激活命令和预充电命令之间的最小时 间)减去tRCD的差值。步骤S205,执行经过时间压缩后的指令,流程结束。此时同步动态存储器的存取数 据带宽利用率可以大于90%。步骤S206,进行现有常规处理,流程结束。本发明第三实施例,一种同步动态存储器读写控制装置,如图5所示,包括以下组 成部分1)指令缓存模块,用于存储产生的访问同步动态存储器的指令。该指令包括激活 命令、操作命令和预充电命令,激活命令与操作命令之间以及操作命令与预充电命令之间 的时间为指令的空闲;另外,因为预充电命令还有自动模式,即自动预充电命令,对于指令缓存模块中每 次取出的指令,可以在最后一条指令的操作命令之后使用一个自动预充电命令即可。因此, 该命令也可包括激活命令、操作命令和自动预充电命令,激活命令与操作命令之间以及操 作命令与自动预充电命令之间的时间为指令的空闲。2)缓存控制模块,用于在指令缓存模块中的指令对应的内部体满足内部体平均分 布的情况下,对这些指令进行时间压缩后执行。该缓存控制模块进一步包括判断模块,用于从指令缓存中每次取出固定个数的指令,判断所述指令对应的内 部体是否满足内部体平均分布,若是,则调用时间压缩模块,否则进行现有常规处理;时间压缩模块,用于在满足时序要求的情况下,顺次将后面的指令插入前面指令 的空闲处。这里,满足时序要求的情况具体包括被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量 一半的时钟周期。
另外,被插入的指令的激活命令以及预充电命令或者自动预充电命令只须满足现 有的指令时序要求即可,具体要求如下被插入的指令的激活命令与操作命令之间的时间间隔至少为tRCD(ActiVe to Read/Write Command time,激活命令和操作命令之间的最小时间);被插入的指令的操作命令与预充电命令或者自动预充电命令之间的时间间隔至 少为tRAS (Active to Precharge Command time,激活命令和预充电命令之间的最小时 间)减去tRCD的差值。还存在一种特殊的情况,即当指令缓存模块中的指令属于同一数据流时,因为这 部分指令对应的内部体必然满足内部体平均分布,所以缓存控制模块可以直接对这部分指 令进行时间压缩后执行。本发明第四实施例,一种同步动态存储器读写控制装置,如图6所示,包括以下组 成部分1)指令缓存模块,用于存储产生的访问同步动态存储器的指令。该指令包括激活 命令、操作命令和预充电命令,激活命令与操作命令之间以及操作命令与预充电命令之间 的时间为指令的空闲;另外,因为预充电命令还有自动模式,即自动预充电命令,对于指令缓存模块中每 次取出的指令,可以在最后一条指令的操作命令之后使用一个自动预充电命令即可。因此, 该命令也可包括激活命令、操作命令和自动预充电命令,激活命令与操作命令之间以及操 作命令与自动预充电命令之间的时间为指令的空闲。2)缓存控制模块,用于在指令缓存模块中的指令对应的内部体满足内部体平均分 布的情况下,对这些指令进行时间压缩后执行。该缓存控制模块进一步包括地址处理模块,用于对同步动态存储器的内部体地址进行随机化处理。假设同步 动态存储器的内部体个数为8个,分别为BankO Bank7,经过随机化处理的同步动态存储 器的内部体地址不再按照从小到大的顺序对应BankO Bank7,设内部体地址均由三位二 进制数a[2]a[l]a
表示,那么随机化处理后的BankO Bank7的体地址映射为BankO = {a[2], a[l], a
};Bankl = { ! a[2], ! a[l], ! a
};Bank2 = {a[2], ! a[l], ! a
};Bank3 = { ! a[2],a[l],a
};Bank4 = {a[2], a[l], ! a
};Bank5 = { ! a[2], ! a[l],a
};Bank6 = {a [2], ! a[l],a
};Bank7 = { ! a[2],a[l],! a
};在本领域中针对数据缓存都是以流为处理对象,在存取地址的分配时为每一条流 的操作命令分配对应的内部体地址时,由连续的8个内部体地址按照二进制数值从小到大 循环提供。本实施例与第一实施例相比,增加了针对内部体地址与内部体的映射做随机化 处理的步骤,在随机化处理之后执行写指令,可以增加后续在数据片读取时的内部体平均 分布的概率。判断模块,用于从指令缓存中每次取出固定个数的指令,判断所述指令对应的内部体是否满足内部体平均分布,若是,则调用时间压缩模块,否则进行现有常规处理;时间压缩模块,用于在满足时序要求的情况下,顺次将后面的指令插入前面指令 的空闲处。这里,满足时序要求的情况具体包括被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量 一半的时钟周期。另外,被插入的指令的激活命令以及预充电命令或者自动预充电命令只须满足现 有的指令时序要求即可,具体要求如下被插入的指令的激活命令与操作命令之间的时间间隔至少为tRCD ;被插入的指令的操作命令与预充电命令或者自动预充电命令之间的时间间隔至 少为tRAS减去tRCD的差值。还存在一种特殊的情况,即当指令缓存模块中的指令属于同一数据流时,因为这 部分指令对应的内部体必然满足内部体平均分布,所以缓存控制模块可以直接对这部分指 令进行时间压缩后执行。本发明第五实施例,一种同步动态存储器读写控制系统,如图7所示,包括以下组 成部分1)指令缓存模块,用于存储产生的访问同步动态存储器的指令。2)缓存控制模块,用于在指令缓存模块中的指令对应的内部体满足内部体平均分 布的情况下,对所述指令进行时间压缩后通过访问数据缓存模块执行。当指令缓存模块中 的指令属于同一数据流时,直接对所述指令进行时间压缩后执行。3)数据缓存模块,用于在缓存控制模块的控制下存取所述指令对应的数据。4)数据包输入处理模块,用于当缓存控制模块执行写指令时,将输入的数据包拆 分成固定长度的数据片传送到缓存控制模块。5)数据包输出处理模块,用于当缓存控制模块执行读指令时,将缓存控制模块从 数据缓存模块中读出的数据片重新组成数据包发送出去。采用本发明所述方法,与现有的通过增加外部动态存储器带宽相比,是在现有设 备情况下提高带宽利用率,节省了的硬件成本。通过具体实施方式
的说明,应当可对本发明为达成预定目的所采取的技术手段及 功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本 发明加以限制。
权利要求
1.一种同步动态存储器读写控制方法,其特征在于,包括当产生访问同步动态存储器的指令时,在所述指令对应的内部体满足内部体平均分布 的情况下,对所述指令进行时间压缩后执行。
2.根据权利要求1所述同步动态存储器读写控制方法,其特征在于,该方法在产生访 问同步动态存储器的指令之前还包括对同步动态存储器的内部体地址进行随机化处理。
3.根据权利要求1或2所述同步动态存储器读写控制方法,其特征在于,所述指令包括 激活命令、操作命令和预充电命令,激活命令与操作命令之间以及操作命令与预充电命令 之间的时间为指令的空闲;或者,所述指令包括激活命令、操作命令和自动预充电命令,激 活命令与操作命令之间以及操作命令与自动预充电命令之间的时间为指令的空闲;所述在指令对应的内部体满足内部体平均分布的情况下,对所述指令进行时间压缩, 具体包括从指令缓存中取出指令,判断所述指令对应的内部体是否满足内部体平均分布,若是, 则在满足时序要求的情况下,顺次将后面的指令插入前面指令的空闲处,否则进行现有常 规处理。
4.根据权利要求3所述同步动态存储器读写控制方法,其特征在于,所述满足时序要 求的情况,具体包括被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量一半 的时钟周期。
5.根据权利要求1所述同步动态存储器读写控制方法,其特征在于,该方法还包括当产生访问同步动态存储器中同一数据流的指令时,直接对所述指令进行时间压缩。
6.一种同步动态存储器读写控制装置,其特征在于,包括指令缓存模块,用于存储产生的访问同步动态存储器的指令;缓存控制模块,用于在指令缓存模块中的指令对应的内部体满足内部体平均分布的情 况下,对所述指令进行时间压缩后执行。
7.根据权利要求6所述同步动态存储器读写控制装置,其特征在于,所述缓存控制模 块进一步包括地址处理模块,用于在产生的访问同步动态存储器的指令之前,对同步动态存储器的 内部体地址进行随机化处理。
8.根据权利要求6或7所述同步动态存储器读写控制装置,其特征在于,所述指令包括 激活命令、操作命令和预充电命令,激活命令与操作命令之间以及操作命令与预充电命令 之间的时间为指令的空闲;或者,所述指令包括激活命令、操作命令和自动预充电命令,激 活命令与操作命令之间以及操作命令与自动预充电命令之间的时间为指令的空闲;所述缓存控制模块进一步包括判断模块,用于从指令缓存中取出指令,判断所述指令对应的内部体是否满足内部体 平均分布,若是,则调用时间压缩模块,否则进行现有常规处理;时间压缩模块,用于在满足时序要求的情况下,顺次将后面的指令插入前面指令的空 闲处。
9.根据权利要求8所述同步动态存储器读写控制装置,其特征在于,所述满足时序要求的情况,具体包括被插入的指令的操作命令与前一个指令的操作命令之间间隔至少为内部体数量一半 的时钟周期。
10.根据权利要求6所述同步动态存储器读写控制装置,其特征在于,所述缓存控制模 块进一步用于当指令缓存模块中的指令属于同一数据流时,直接对所述指令进行时间压缩后执行。
11.一种同步动态存储器读写控制系统,其特征在于,包括 指令缓存模块,用于存储产生的访问同步动态存储器的指令;缓存控制模块,用于在指令缓存模块中的指令对应的内部体满足内部体平均分布的情 况下,对所述指令进行时间压缩后通过访问数据缓存模块执行;数据缓存模块,用于在缓存控制模块的控制下存取所述指令对应的数据; 数据包输入处理模块,用于当缓存控制模块执行写指令时,将输入的数据包拆分成固 定长度的数据片传送到缓存控制模块;数据包输出处理模块,用于当缓存控制模块执行读指令时,将缓存控制模块从数据缓 存模块中读出的数据片重新组成数据包发送出去。
全文摘要
本发明公开了一种同步动态存储器读写控制方法、装置和系统,当产生访问同步动态存储器的指令时,在所述指令对应的内部体满足内部体平均分布的情况下,对所述指令进行时间压缩后执行。该装置包括指令缓存模块和缓存控制模块。本发明在现有的IP核的基础上,以比较小的硬件成本大幅度提高路由交换设备同步动态存储器的带宽利用效率。
文档编号G06F13/16GK102073604SQ20101054727
公开日2011年5月25日 申请日期2010年11月17日 优先权日2010年11月17日
发明者周昶, 陈红旗 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1