Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY SCHEDULING METHOD AND MEMORY CONTROLLER
Document Type and Number:
WIPO Patent Application WO/2013/170412
Kind Code:
A1
Abstract:
Disclosed is a memory scheduling method, mainly comprising: a memory controller writing a command to a second memory in an interval period of writing a command to a first memory. The method of the present invention can flexibly invoke a row gating command and an operation command corresponding thereto, thereby improving the bandwidth utilization rate of a memory. An embodiment of the present invention further provides a corresponding memory controller. The present invention breaks through the previous limitation that an ACT and an operation command corresponding thereto must be consecutively written, thereby improving the efficiency of the lookup table and the package buffering.

Inventors:
WANG XINYUAN (CN)
SONG HAOYU (CN)
Application Number:
PCT/CN2012/075433
Publication Date:
November 21, 2013
Filing Date:
May 14, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
WANG XINYUAN (CN)
SONG HAOYU (CN)
International Classes:
G06F12/00
Domestic Patent References:
WO2008154625A22008-12-18
Foreign References:
CN1859282A2006-11-08
CN101667105A2010-03-10
Other References:
See also references of EP 2851802A4
Attorney, Agent or Firm:
SHENPAT INTELLECTUAL PROPERTY AGENCY (CN)
深圳市深佳知识产权代理事务所(普通合伙) (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种内存调度方法, 其特征在于, 包括:

内存控制器向第一内存写入第一组第一行选通命令 ACT,所述第一组第一 ACT包括第一组第一 ACT,所述内存控制器向第一内存写入两相邻的第一 ACT 之间具有间隔周期;

在向第一内存写入第一组第一 ACT之后,所述内存控制器向第一内存写入 与所述第一组第一 ACT对应的操作命令,所述内存控制器向第一内存写入两相 邻的操作命令之间具有间隔周期;

在向第一内存写入所述第一组第一 ACT的间隔周期内和 /或在向第一内存 写入与所述第一组第一 ACT对应的操作命令的间隔周期内,所述内存控制器向 第二内存写入第二 ACT;

所述内存控制器向第二内存写入与所述第二 ACT对应的操作命令; 所述第一内存与所述第二内存双面 Rank配置。

2、根据权利要求 1所述的内存调度方法, 其特征在于, 所述操作命令为读 操作命令或写操作命令, 所述读操作命令包括读命令 RD和具有隐含行充电命 令的读命令 RDAP , 所述写操作命令包括写命令 WR和具有隐含行充电命令的 写命令 WRAP。

3、 根据权利要求 2所述的内存调度方法, 其特征在于,

所述内存控制器向第一内存写入第一组第一 ACT具体为:所述内存控制器 向第一内存的不同存储体 Bank写入第一 ACT。

4、 根据权利要求 2所述的内存调度方法, 其特征在于,

所述内存控制器向第二内存写入第二 ACT具体为:所述内存控制器向第二 内存的不同 Bank写入第二 ACT。

5、 根据权利要求 4所述的内存调度方法, 其特征在于,

所述内存控制器向第二内存写入第二 ACT具体为:在向第一内存写入所述 第一组第一 ACT的间隔周期内, 所述内存控制器向第二内存写入第二 ACT; 内存控制器向第一内存写入与所述第一组第一 ACT对应的操作命令具体 为: 在向第二内存写入所述第二 ACT之后, 内存控制器向第一内存写入与所述 第一组第一 ACT对应的操作命令。

6、根据权利要求 5所述的内存调度方法, 其特征在于, 内存控制器向第一 内存写入与所述第一组第一 ACT对应的操作命令具体为:

内存控制器向第一内存写入与所述第一组第一 ACT对应的写操作命令; 在内存控制器向第一内存写入与所述第一组第一 ACT对应的写操作命令 之后, 内存控制器向第一内存写入与所述第一组第一 ACT对应的读操作命令。

7、 根据权利要求 6所述的内存调度方法, 其特征在于,

所述内存控制器向第二内存写入所述第二 ACT对应的操作命令还包括:由 向第一内存写入与所述第一组第一 ACT对应的写操作命令切换为写入与所述 第一组第一 ACT对应的读操作命令的间隔周期内,内存控制器向第二内存写入 所述第二 ACT对应的操作命令。

8、 根据权利要求 4所述的内存调度方法, 其特征在于, 还包括: 在向第一 内存写入与所述第一组第一 ACT对应的操作命令的间隔周期内,所述内存控制 器向第一内存写入第二组第一 ACT, 所述第二组第一 ACT包含复数个第一 ACT; 在向第一内存写入第二组第一 ACT之后, 所述内存控制器向第一内存写 入与所述第二组第一 ACT对应的操作命令。

9、根据权利要求 8所述的内存调度方法, 其特征在于, 所述内存控制器向 第二内存写入第二 ACT还包括:在向第一内存写入与所述第二组第一 ACT对应 的操作命令的间隔周期内, 所述内存控制器向第二内存写入第二 ACT。

10、 根据权利要求 9所述的内存调度方法, 其特征在于,

所述第一组第一 ACT和所述第二组第一 ACT分别包含 4个第一 ACT。

11、 根据权利要求 9所述的内存调度方法, 其特征在于,

所述内存控制器向第二内存写入第二 ACT具体为:在向第一内存写入与所 述第一组第一 ACT对应的操作命令的间隔周期内和 /或向第一内存写入与所述 第二组第一 ACT对应的操作命令的间隔周期内,内存控制器向第二内存写入第 一组第二 ACT, 第一组第二 ACT包含至少一个第二 ACT。

12、 根据权利要求 11所述的内存调度方法, 其特征在于,

所述内存控制器向第二内存写入与所述第二 ACT对应的操作命令具体为: 在向第一内存写入与所述第一组第一 ACT对应的操作命令和与所述第二组第 一 ACT对应的操作命令之后, 内存控制器向第二内存写入与所述第一组第二 ACT对应的操作命令。

13、 根据权利要求 12所述的内存调度方法, 其特征在于,

所述第一组第二 ACT包含 4个第二 ACT。

14、 根据权利要求 12所述的内存调度方法, 其特征在于, 还包括: 在向第二内存写入与所述第一组第二 ACT对应的操作命令的间隔周期内, 所述内存控制器向第二内存写入第二组第二 ACT,所述第二组第二 ACT包含至 少一个第二 ACT。

15、 根据权利要求 14所述的内存调度方法, 其特征在于, 所述第二组第二

ACT包含 4个第二 ACT。

16、 根据权利要求 14所述的内存调度方法, 其特征在于, 还包括: 在向第二内存写入与所述第一组第二 ACT对应的操作命令之后,所述内存 控制器向第二内存写入与所述第二组第二 ACT对应的操作命令。

17、 根据权利要求 16所述的内存调度方法, 其特征在于, 还包括: 在向第二内存写入与第一组第二 ACT对应的操作命令的间隔周期内和 /或 在向第二内存写入第二组第二 ACT对应的操作命令的间隔周期内,内存控制器 向第一内存写入第三组第一 ACT, 所述第二组第一 ACT包含至少一个第一 ACT。

18、 根据权利要求 17所述的内存调度方法, 其特征在于, 所述第三组第一

ACT包括 4个第一 ACT。

19、 根据权利要求 17所述的内存调度方法, 其特征在于, 还包括: 在所述向第二内存写入与所述第二组第二 ACT对应的操作命令及向第一 内存写入第三组第一 ACT之后,内存控制器向第一内存写入与所述第三组第一 ACT对应的操作命令。

20、 一种内存控制器, 其特征在于, 包括:

第一行选通单元, 用于向第一内存写入第一组第一 ACT, 所述第一组第一 ACT包括复数个第一 ACT, 其中, 向第一内存写入两相邻的第一 ACT之间具有 间隔周期;

第一读写单元,用于在所述第一行选通单元在向第一内存写入第一组第一 ACT之后, 向第一内存写入与所述第一组第一 ACT对应的操作命令, 其中, 向 第一内存写入两相邻的操作命令之间具有间隔周期;

第二行选通单元,用于在所述第一行选通单元向第一内存写入所述第一组 第一 ACT的间隔周期内和 /或在所述第一读写单元向第一内存写入与所述第一 组第一 ACT对应的操作命令的间隔周期内, 向第二内存写入第二 ACT, 所述第 一内存与所述第二内存是双 Rank配置;

第二读写单元, 用于向第二内存写入与所述第二 ACT对应的操作命令。 21、 根据权利要求 20所述的内存控制器, 其特征在于,

所述操作命令为读操作命令或写操作命令, 所述读操作命令包括读命令 RD和具有隐含行充电命令的读命令 RDAP, 所述写操作命令包括写命令 WR和 具有隐含行充电命令的写命令 WRAP。

22、 根据权利要求 21所述的内存控制器, 其特征在于,

所述第一读写单元进一步用于向第一内存的不同存储体 Bank写入第一

ACT。

23、 根据权利要求 21所述的内存控制器, 其特征在于,

所述第二读写单元进一步用于向第二内存的不同 Bank写入第二 ACT。

24、 根据权利要求 23所述的内存控制器, 其特征在于,

所述第二行选通单元进一步用于在所述第一行选通单元向第一内存写入 所述第一组第一 ACT的间隔周期内, 向第二内存写入第二 ACT;

所述第一读写单元,进一步用于在所述第一行选通单元向第一内存写入所 述第一组第一 ACT及第二行选通单元向第二内存写入所述第二 ACT之后,向第 一内存写入与所述第一组第一 ACT对应的操作命令。

25、 根据权利要求 24所述的内存控制器, 其特征在于, 所述第一读写单元 包括第一读单元和第一写单元,

所述第一写单元用于向第一内存写入与所述第一组第一 ACT对应的写操 作命令; 所述第一读单元用于在所述第一写单元向第一内存写入与所述第一组第 一 ACT对应的写操作命令之后,向第一内存写入与所述第一组第一 ACT对应的 读操作命令。

26、 根据权利要求 25所述的内存控制器, 其特征在于,

所述第二读写单元进一步用于在由所述第一写单元向第一内存写入所述 第一组第一 ACT对应的写操作命令切换为由所述第一读单元向第一内存写入 所述第一组第一 ACT对应的读操作命令的间隔周期内,向第二内存写入所述第 二 ACT对应的操作命令。

27、 根据权利要求 23所述的内存控制器, 其特征在于,

所述第一行选通单元进一步用于在向第一内存写入与所述第一组第一

ACT对应的操作命令的间隔周期内, 向第一内存写入第二组第一 ACT, 所述第 二组第一 ACT包含复数个第一 ACT;

所述第一读写单元进一步用于在所述第一行选通单元向第一内存写入第 二组第一 ACT之后, 向第一内存写入与所述第二组第一 ACT对应的操作命令。

28、 根据权利要求 27所述的内存控制器, 其特征在于, 所述第二行选通单 元进一步用于在第一读写通单元向第一内存写入与所述第二组第一 ACT对应 的操作命令的间隔周期内, 向第二内存写入第二 ACT。

29、 根据权利要求 28所述的内存控制器, 其特征在于,

所述第一组第一 ACT和所述第二组第一 ACT分别包含 4个第一 ACT。

30、 根据权利要求 28所述的内存控制器, 其特征在于,

所述第二行选通单元进一步用于在所述第一读写单元向第一内存写入与 所述第一组第一 ACT对应的操作命令的间隔周期内和 /或所述第一读写单元向 第一内存写入与所述第二组第一 ACT对应的操作命令的间隔周期内,向第二内 存写入第一组第二 ACT, 第一组第二 ACT包含至少一个第二 ACT。

31、 根据权利要求 30所述的内存控制器, 其特征在于,

所述第二读写单元进一步用于在所述第一读写单元向第一内存写入与所 述第一组第一 ACT对应的操作命令和与所述第二组第一 ACT对应的操作命令 之后, 向第二内存写入与所述第一组第二 ACT对应的操作命令。 32、 根据权利要求 31所述的内存控制器, 其特征在于,

所述第一组第二 ACT包含 4个第二 ACT。

33、 根据权利要求 31所述的内存控制器, 其特征在于,

所述第二行选通单元进一步用于在所述第二读写单元向第二内存写入与 所述第一组第二 ACT对应的操作命令的间隔周期内,向第二内存写入与第二组 第二 ACT, 所述第二组第二 ACT包含至少一个第二 ACT。

34、 根据权利要求 33所述的内存控制器, 其特征在于, 所述第二组第二 ACT包含 4个第二 ACT。

35、 根据权利要求 33所述的内存控制器, 其特征在于,

第二读写单元进一步用于在向第二内存写入与所述第一组第二 ACT对应 的操作命令之后, 向第二内存写入与所述第二组第二 ACT对应的操作命令。

36、 根据权利要求 35所述的内存控制器, 其特征在于,

第一行选通单元进一步用于在第二读写单元向第二内存写入与所述第一 组第二 ACT对应的操作命令的间隔周期内和 /或在第二读写单元向第二内存写 入与所述第二组第二 ACT对应的操作命令的间隔周期内,内存控制器向第一内 存写入第三组第一 ACT, 所述第三组第一 ACT包含至少一个第一 ACT。

37、 根据权利要求 36所述的内存控制器, 其特征在于,

所述第三组第一 ACT包括 4个第一 ACT。

38、 根据权利要求 36所述的内存控制器, 其特征在于,

所述第一读写单元进一步用于在所述第二读写单元向第二内存写入与所 述第二组第二 ACT对应的操作命令之后及在所述第一行选通单元向第一内存 写入第三组第一 ACT之后, 向第一内存写入与第三组第一 ACT对应的操作命 令。

Description:
一种内存调度方法及内存控制器 技术领域

本发明涉及信息存储领域, 特别是涉及一种内存调度方法及内存控制器。 背景技术

目前, 内存控制器对动态随机存储器(DRAM, Dynamic Random Access Memory )的随机访问受到 DRAM固有参数(见表 1 )的影响, 写入的命令与命 令之间存在间隔周期, 而这间隔周期造成总线空闲。

参数 描述 影响 DDR3-1600 参数值

CL DRAM内部 RD/RDAP命令 读延时 11 cycles 到数据输出时钟周期

AL DRAM总线上的 RD/RDAP 提升命令总线利用率 可以配置为 命令或 WR/WRAP命令到内 0 , CL-1 , 部有效的周期间隔 CL-2。 tRC 在一个 Bank内, 不同 Row 在一个 Bank内, 随机访 48.75ns

的 ACT-to- ACT周期间隔 问性能

tRRD 不同 Bank间, ACT-to- ACT Bank 交织时, 随机访问 7.5ns

周期间隔 性能

tFAW 连续 4个 ACT命令窗口 Bank 交织时, 随机访问 40ns

性能

tRTP RD/RDAP-to-PRECHARGE 在一个 Bank内 , 读命令 7.5ns

周期间隔 到下一随机访问性能

tWR 写恢复周期 在一个 Bank内, 写命令 15ns

到下一随机访问性能

tRP PRECHARGE周期 在一个 Bank内, 读命令 / 13.75ns 写命令到下一随机访问

性能

tWTR 内部写命令到内部读命令周 写到读延时 7.5ns

期间隔

现有的实现 DRAM访问的硬件架构包括内存控制器和两片 X16 DDR3 内存 ( SDRAM , Synchronous Dynamic Random Access Memory ), 两片 X16 DDR3 SDRAM物理上共享地址 /命令 ( ADDR/CMD ) 总线信号, 时序上分时复用 ADDR/CMD总线信号;每片 X16 DDR3 SDRAM使用独立的片选信号;每片 X16 DDR3 SDRAM的输入输出 ( DQ )和数据锁存( DQS )信号 "点到点" 连接到 控制器。 基于现有的硬件架构, DRAM访问方法一般是内存控制器向 DRAM写入一 个行选通命令(ACT, ACTIVE )及其对应的写操作命令或读操作命令后, 再 写入一个 ACT及其对应的写操作命令或读操作命令,如此 反复, 实现 DRAM访 问。 ACT命令是 DRAM的行选通命令, 其作用在于激活 DRAM中的存储体 ( Bank ), 以向激活的 Bank写入读命令或者写命令。 由于 DRAM固有参数的存 在, 命令与命令之间存在一定的间隔周期, 而这间隔周期造成总线空闲。 以下 举例进行说明。 例如, 网络设备的 DRAM用于实现查找表(Table lookup )功能。 由于查找 表由若干个查找表项组成,对前后表项的随机 访问可能会出现在 DRAM的同一 Bank的不同列 (Row ) 中查找的情况, 这将受到 tRC的限制, 在前后两个表项 的查找命令间留下多个空闲时钟周期。 为了提高 DRAM带宽的利用率,一般采用把查找表复制到 个 Bank,每次 查找表项后都切换到下一个 Bank, 通过连续访问多 Bank来避免出现 tRC。 由于 每进行一次查找,需要发送一次行选通命令 ACT,使用多 Bank复制查找表并连 续访问多 Bank的方法虽然可以避免出现 tRC , 但是将出现 tRRD和 tFaw。 如果 DRAM用于包緩存( Packet Buffer ),一般采用 "多 Bank轮转写 +多 Bank 轮转读" 的方法来利用 tRC, 并减少 "读到写" 和 "写到读" 的空闲周期。 但 是随着工作频率的增加, 为了规避 tRRD和 tFAW带来的影响, 需要增加每个 Bank的长度, 从而造成内存在存储报文时内存的利用率降低 。 另外, 受 CL和 tWTR的影响, "写到读" 的空闲周期将大大增加, 降低 DRAM带宽利用率。 随着 DRAM颗粒主频提高到 DDR3-2133以及之后更高频率的 DDR4器件, tWTR和 CL会增加到更多个 DRAM时钟周期, DRAM带宽利用率将会更低。 此 夕卜, 为了满足 tRRD和 tFAW参数, 每个包(Cell ) 需要更大的配置, 例如配置 成 3个突发长度(BL, Burst length )或 4个 BL8的大小。 当 Cell为 3个 BL8大小时, 对于 X16 DDR3 SDRAM器件, 每个 BL8为 32字节 (Bytes ), 所以每个 Cell为 96Bytes。 一般情况下, 每个 Cell只能用来存储一个报文, 当一个 Cell存储不下 一个报文的时候, 可以多个 Cell存储一个报文。 对于 64Bytes的报文, 需要分配 一个 Cell来存储, 此时 DRAM的利用率只为 66.7 % ( 64/96 ), 这就形成所谓的 小包 "Ν+Γ 问题。 Cell越大, 小包 "Ν+Γ 问题越严重, 即 DRAM的利用率 越低。 基于目前的硬件架构, 现有方法无法在保证 DRAM带宽利用率的前提下 将 ACT和与其对应的操作命令进行解耦, 从而不能灵活调用命令, 无法进一 步避免 DRAM固有参数带来的影响, 导致内存带宽不能得到进一步提高。 发明内容

本发明实施例提供了一种内存调度方法及相应 的内存控制器,通过对内存 的多面 (Rank ) 配置, 利用对属于同一 Rank的内存进行访问时出现的空闲周 期访问属于另一 Rank的内存, 从而可以灵活调用 ACT和与其对应的操作命令, 提高 DRAM的带宽利用率。

一种内存调度方法, 包括:

内存控制器向第一内存写入第一组第一行选通 命令 ACT,所述第一组第一

ACT包括复数个第一 ACT,所述内存控制器向第一内存写入两相邻的 一 ACT 之间具有间隔周期;

在向第一内存写入第一组第一 ACT之后,所述内存控制器向第一内存写入 与所述第一组第一 ACT对应的操作命令,所述内存控制器向第一内 存写入两相 邻的操作命令之间具有间隔周期;

在向第一内存写入所述第一组第一 ACT的间隔周期内和 /或在向第一内存 写入与所述第一组第一 ACT对应的操作命令的间隔周期内,所述内存控 制器向 第二内存写入第二 ACT;

所述内存控制器向第二内存写入与所述第二 ACT对应的操作命令; 所述第一内存与所述第二内存双面 Rank配置。

一种内存控制器, 包括:

第一行选通单元, 用于向第一内存写入第一组第一 ACT, 所述第一组第一 ACT包括复数个第一 ACT, 其中, 向第一内存写入两相邻的第一 ACT之间具有 间隔周期;

第一读写单元,用于在所述第一行选通单元在 向第一内存写入第一组第一

ACT之后, 向第一内存写入与所述第一组第一 ACT对应的操作命令, 其中, 向 第一内存写入两相邻的操作命令之间具有间隔 周期;

第二行选通单元,用于在所述第一行选通单元 向第一内存写入所述第一组 第一 ACT的间隔周期内和 /或在所述第一读写单元向第一内存写入与所 第一 组第一 ACT对应的操作命令的间隔周期内, 向第二内存写入第二 ACT, 所述第 一内存与所述第二内存是双 Rank配置;

第二读写单元, 用于向第二内存写入与所述第二 ACT对应的操作命令。 本发明优点在于: 利用对属于同一 Rank的内存进行访问时出现的空闲周期访问属 另一 Rank的内存, DRAM的带宽利用率进一步提高;

在 ACT命令和与其对应的操作命令间写入属于不同 Rank的内存命令, 将 ACT命令和与其对应的操作命令解耦, 实现灵活调度操作命令;

本发明技术方案受 tRRD和 tFAW等参数的影响小, 在 DRAM工作频率增加 的情况下, 可以不增大 Cell, 从而减轻小包 "Ν+Γ 的问题。

附图说明

图 1是实施例 1一种内存调度方法流程图;

图 2是一种内存调度方法的时序示意图;

图 3是实施例 2—种内存调度方法流程图;

图 4是写命令时序示意图;

图 5是实施例 3—种内存调度方法流程图;

图 6是实施例 4一种内存调度方法流程图;

图 7是行选通命令组和读操作命令组交织调度示 图;

图 8是行选通命令组和写操作命令组交织调度示 图;

图 9是包緩存中的包操作示意图;

图 10是一种内存控制器的逻辑结构示意图;

图 11是一种内存系统的逻辑结构示意图。

具体实施方式

本发明实施例提供一种内存调度方法,本发明 实施例还提供相应的内存控 制器和系统。 以下分别进行详细说明。 实施例一

如图 1所示, 一种内存调度方法, 包括:

101、 内存控制器向第一内存写入第一组第一 ACT, 所述第一组第一 ACT 包括复数个第一 ACT,所述内存控制器向第一内存写入两相邻的 一 ACT之间 具有间隔周期。

102、 在向第一内存写入第一组第一 ACT之后, 内存控制器向第一内存写 入与所述第一组第一 ACT对应的操作命令,所述内存控制器向第一内 存写入两 相邻的操作命令之间具有间隔周期。

103、在向第一内存写入所述第一组第一 ACT的间隔周期内和 /或在向第一 内存写入与所述第一组第一 ACT对应的操作命令的间隔周期内,所述内存控 制 器向第二内存写入第二 ACT。

所述内存控制器向第二内存写入两相邻的第二 ACT之间具有间隔周期。所 述向第一内存写入所述第一组第一 ACT的间隔周期为内存控制器向第一内存 写入的各个相邻的第一 ACT之间的间隔周期。向第一内存写入与所述第 一组第 一 ACT对应的操作命令的间隔周期为内存控制器向 第一内存写入的各相邻的 操作命令之间的间隔周期。

换而言之, 在向第一内存写入第一组第一 ACT和与所述第一组第一 ACT 对应的操作命令的空闲周期内, 内存控制器都可以向第二内存写入第二 ACT, 该空闲周期为内存控制器向内存写入相邻命令 的间隔周期, 空闲周期包括 tRRd、 tFAW、 tRP等间隔时间。

所述第一内存与所述第二内存是双 Rank配置。

需说明的是,内存控制器访问同一 Rank内存的相邻 ACT的间隔时间大于固 有参数 tRC间隔时间, 访问同一 Rank内存的每 4个 ACT的间隔时间大于固有参 数 tFAW间隔时间, 这也是内存固有参数对内存调用的限制。

如图 2所示, 第一内存的命令组 RankO ACT set和第二内存的命令组 Rankl ACT set交织调度, Rankl ACT在相邻的 RankO ACT间隔周期内写入第二内存。

由于第一内存和第二内存属于不同的区块 Rank配置, 第一内存属于

RankO, 第二内存属于 Rankl , 在向第一内存写入命令和向第二内存写入命令 没有耦合关系, 因此, 可以利用写入第一内存命令时的空闲周期, 向第二内存 写入任意命令, 这给内存控制器如何调用内存提供了很大灵活 性, 减少总线的 空闲周期。

104、 内存控制器向第二内存写入与所述第二 ACT对应的操作命令, 所述 内存控制器向第二内存写入两相邻的操作命令 之间具有间隔周期。

由于 DRAM固有参数的存在,命令与命令之间存在一 的间隔周期, 而这 间隔周期造成总线空闲,本发明是利用命令之 间的间隔周期来向不同的内存写 入命令。 实施例二

如图 3所示, 一种内存调度方法, 包括:

201、 内存控制器向第一内存写入第一组第一 ACT, 所述第一组第一 ACT 包括复数个第一 ACT,所述内存控制器向第一内存写入两相邻的 一 ACT之间 具有间隔周期。

202、 在向第一内存写入所述第一组第一 ACT的间隔周期内, 内存控制器 向第二内存写入第二 ACT,所述内存控制器向第二内存写入两相邻的 二 ACT 之间具有间隔周期。

所述第一内存与所述第二内存是双 RANK配置。

内存控制器访问第一内存的两相邻 ACT的间隔时间大于固有参数 tRC间隔 时间。 内存控制器可以利用相邻的第一 ACT间的间隔周期 (tRRD或 tFaw ) 来 向第二内存写入第二 ACT, 以避免该间隔周期空闲。

203、 在向第一内存写入所述第一组第一 ACT之后及在向第二内存写入所 述第二 ACT之后,内存控制器向第一内存写入与所述第 一组第一 ACT对应的操 作命令。

由于相邻的第一 ACT的间隔周期之间写入了第二 ACT,内存控制器可以不 连续调度第一 ACT和与所述第一 ACT对应的操作命令,但又能利用相邻的第一 ACT的间隔周期。

优选的,内存控制器向第一内存写入与所述第 一组第一 ACT对应的操作命 令具体为:内存控制器向第一内存写入与所述 第一组第一 ACT对应的写操作命 令;在内存控制器向第一内存写入与所述第一 组第一 ACT对应的写操作命令之 后, 内存控制器向第一内存写入与所述第一组第一 ACT对应的读操作命令。

204、 由向第一内存写入与所述第一组第一 ACT对应的写操作命令切换为 写入与所述第一组第一 ACT对应的读操作命令的间隔周期内,内存控制 器向第 二内存写入所述第二 ACT对应的操作命令。 由此可以看出, 该步骤是利用了从 写命令到读命令的间隔周期, 即利用了 tWTR和 CL的时钟周期向第二内存写入 所述第二 ACT对应的操作命令。 优选的, 所述操作命令为读操作命令或写操作命令, 所述读操作命令包括 读命令(RD )和具有隐含行充电命令的读命令(RDAP ), 所述写操作命令包 括写命令(WR )和具有隐含行充电命令的写命令(WRAP )。 如图 4所示, 一 个写操作命令包括一个 WR和一个 WRAP,相邻的 WR和 WRAP之间具有间隔周 期。 相同的, 一个读操作命令包括一个 RD和一个 RDAP, 相邻的 RD和 RDAP 之间具有间隔周期。

一般一个 ACT对应一个 RD和 RDAP, 或者一个 ACT对应 WR和 WRAP, 因 此, 与所述第一 ACT对应的操作命令为 RD和 RDAP, 或者 WR和 WRAP。 所述 第一 ACT包括复数个第一 ACT, 则复数个第一 ACT对应的操作命令可以都为 RD和 RDAP, 或者都为 WR和 WRAP, 也可以部分第一 ACT对应的操作命令为 RD和 RDAP, 部分第一 ACT对应的操作命令为 WR和 WRAP。

优选的, 所述内存控制器向第一内存写入第一组第一 ACT具体为: 所述内 存控制器向第一内存的不同 Bank写入第一 ACT。

优选的, 所述内存控制器向第二内存写入第二 ACT具体为: 所述内存控制 器向第二内存的不同 Bank写入第二 ACT。

内存控制器向第一内存的不同存储体 Bank写入第一 ACT,以及向第二内存 的不同 Bank写入第二 ACT可以避免出现 tRC的空闲周期, 提高总线利用率。

在实施例二中,

所述内存控制器向第一内存写入第一组第一 ACT具体为:所述内存控制器 向第一内存写入复数组第一 ACT,每组第一 ACT包含至少一个第一 ACT, 所述 复数组第一 ACT包括第一组第一 ACT和第二组第一 ACT,所述第一组第一 ACT 和第二组第一 ACT相继写入第一内存。 优选的, 每组第一 ACT包含 4个第一 ACT, 所述第一组第一 ACT和第二组第一 ACT相继写入第一内存时, 所述第一 组第一 ACT与第二组第一 ACT之间的间隔时间必须大于 tFAW , 在这个间隔时 间内可以向第二内存写入命令。 另外, 本实施例可以不限于向第二内存写入命 令, 还可以向第三内存写入命令。

内存控制器向第一内存写入与所述第一 ACT对应的操作命令具体为:所述 内存控制器向第一内存写入第一组第一 ACT对应的 WR和 WRAP , 所述内存控 制器向第一内存写入第二组第一 ACT对应的 RD和 RD AP。

由向第一内存写入第一 ACT对应的写操作命令切换为写入第一 ACT对应 的读操作命令的间隔周期内,内存控制器向第 二内存写入所述第二 ACT对应的 操作命令, 以利用 tWTR和 CL的时钟周期向第二内存进行读写访问。 实施例三

如图 5所示, 一种内存调度方法, 包括:

301、 内存控制器向第一内存写入第一组第一 ACT, 所述第一组第一 ACT 包括复数个第一 ACT,所述内存控制器向第一内存写入两相邻的 一 ACT之间 具有间隔周期;

302、 在向第一内存写入第一组第一 ACT之后, 内存控制器向第一内存写 入与所述第一组第一 ACT对应的操作命令,所述内存控制器向第一内 存写入两 相邻的操作命令之间具有间隔周期;

303、 在向第一内存写入与所述第一组第一 ACT对应的操作命令的间隔周 期内, 内存控制器向第二内存写入第二 ACT。该步骤利用了两相邻的与所述第 一 ACT对应的操作命令之间的间隔周期, 减少了总线上的空闲周期。 例如, 与 一个第一 ACT对应的操作命令为 RD和 RDAP,则在 RD和 RDAP之间的间隔周期 内, 可以向第二内存写入一个第二 ACT; 若与一个第一 ACT对应的操作命令为 WR和 WRAP, 则在 WR和 WRAP之间的间隔周期内, 可以向第二内存写入一个 第二 ACT。

所述第一内存与所述第二内存是双 Rank配置。

304、 内存控制器向第二内存写入与所述第二 ACT对应的操作命令。 实施例四

如图 6所示, 一种内存调度方法, 包括:

401、 内存控制器向第一内存写入第一组第一 ACT, 所述第一组第一 ACT 包括复数个第一 ACT,所述内存控制器向第一内存写入两相邻的 一 ACT之间 具有间隔周期。

402、 在向第一内存写入第一组第一 ACT之后, 所述内存控制器向第一内 存写入与所述第一组第一 ACT对应的操作命令,所述内存控制器向第一内 存写 入两相邻的操作命令之间具有间隔周期。

403、 在向第一内存写入与所述第一组第一 ACT对应的操作命令的间隔周 期内, 所述内存控制器向第一内存写入第二组第一 ACT, 所述第二组第一 ACT 包含复数个第一 ACT。 由此利用了第一组 ACT对应的操作命令的间隔周期, 减 少了总线上的空闲周期。

404、 在向第一内存写入第二组第一 ACT之后, 所述内存控制器向第一内 存写入与所述第二组第一 ACT对应的操作命令。

405、在向第一内存写入所述第一组第一 ACT的间隔周期内和 /或在向第一 内存写入与所述第一组第一 ACT对应的操作命令的间隔周期内,所述内存控 制 器向第二内存写入第二 ACT;

本实施例方法还包括:

406、 优选的, 在向第一内存写入与所述第二组第一 ACT对应的操作命令 的间隔周期内, 所述内存控制器向第二内存写入第二 ACT。

优选的, 所述第一组第一 ACT和第二组第一 ACT分别包含 4个第一 ACT。 优选的, 所述内存控制器向第二内存写入第二 ACT具体为: 在向第一内存 写入与所述第一组第一 ACT对应的操作命令的间隔周期内和 /或向第一内存写 入与所述第二组第一 ACT对应的操作命令的间隔周期内,内存控制器 向第二内 存写入第一组第二 ACT, 第一组第二 ACT包含至少一个第二 ACT。

该步骤利用了两相邻的与所述第一 ACT对应的操作命令之间的间隔周期, 减少了总线上的空闲周期。 例如, 与一个第一 ACT对应的操作命令为 RD和 RDAP , 则在 RD和 RDAP之间的间隔周期内, 可以向第二内存写入一个第二 ACT; 若与一个第一 ACT对应的操作命令为 WR和 WRAP , 则在 WR和 WRAP 之间的间隔周期内, 可以向第二内存写入一个第二 ACT。

优选的, 所述第一组第二 ACT包含 4个第二 ACT。

从以上可以看到, 在第一组第一 ACT对应的操作命令和 /或第二组第一 ACT对应的操作命令的间隔周期内, 写入第二组第一 ACT, 又在相邻的第二组 第一 ACT的间隔周期内, 向第二内存写入第一组第二 ACT, 即在第一组第一 ACT对应的操作命令和 /或第二组第一 ACT对应的操作命令的间隔周期内, 写 入了第二组第一 ACT和第一组第二 ACT,这在很大程度上减少了总线上的空闲 周期。

407、 在写入向第一内存与所述第一组第一 ACT对应的操作命令和与所述 第二组第一 ACT对应的操作命令之后,内存控制器向第二内 存写入与所述第一 组第二 ACT对应的操作命令。

一般的 DRAM含有 8个 Bank, 内存控制器连续向 8个 Bank分别写入第一组 和第二组第一 ACT对应的操作命令,再向第二内存写入与所述 第二 ACT对应的 操作命令, 以减少 RankO和 Rankl间的切换。

408、 优选的, 在向第二内存写入与所述第一组第二 ACT对应的操作命令 的间隔周期内, 内存控制器向第二内存写入第二组第二 ACT, 所述第二组第二 ACT包含至少一个第二 ACT。本步骤利用了两相邻的与第一组第二 ACT对应的 操作命令之间的间隔周期, 减少了总线上的空闲周期。

优选的, 第一组第二 ACT包含 4个第二 ACT, 所述第二组第二 ACT包含 4 个第二 ACT。 内存控制器向第二内存写入了 8个 ACT, 而一般 DRAM包含 8个 Bank, 因此, 内存控制器可以向不同的 Bank分别写入 1个 ACT。

409、 优选的, 在向第二内存写入与所述第一组第二 ACT对应的操作命令 之后, 内存控制器向第二内存写入与第二组第二 ACT对应的操作命令。可以看 出, 内存控制器可以向第二内存的 8个不同 Bank连续写入 8个操作命令,这减少 了不同 Rank间的切换。

410、 优选的, 在向第二内存写入与所述第二 ACT对应的操作命令的间隔 周期内和 /或在向第二内存写入所述第二组第二 ACT对应的操作命令的间隔周 期内, 内存控制器向第一内存写入第三组第一 ACT。 所述第三组第一 ACT包含 至少一个第一 ACT。

由于对应同一 ACT的操作命令之间存在间隔周期, 如对应同一 ACT的 RD 和 RDAP之间存在 4个间隔周期, 对应同一 ACT的 WR和 WRAP之间也存在 4个 间隔周期。 因此, 利用第一组第二 ACT对应的操作命令的间隔周期和第二组第 二 ACT对应的操作命令的间隔周期可以向第一内存 写入第三组第一 ACT。 优选的, 第三组包含 4个第一 ACT。

411、 优选的, 在所述向第二内存写入与所述第二组第二 ACT对应的操作 命令及向第一内存写入第三组第一 ACT之后,内存控制器向第一内存写入与所 述第三组第一 ACT对应的操作命令。 结合上述步骤, 可以看到, 与所述第三组 第一 ACT对应的操作命令和与所述二组第一 ACT对应的操作命令之间的间隔 周期内,内存控制器向第二内存写入了第一组 和第二组第二 ACT对应的操作命 令, 即利用了该间隔周期, 减少了总线上的空闲周期。

优选的, 上述第一组第一 ACT、 第二组第一 ACT、 第三组第一 ACT、 第一 组第二 ACT和第二组第二 ACT所包含的 ACT命令数相等。

若第一组和第二组第一 ACT对应的操作命令为写操作命令, 第三组第一

ACT对应的操作命令为读操作命令, 则该间隔周期包括了内存固有参数 tWTR 和 CL的时间, 因此, 内存固有参数 tWTR和 CL的时间得到利用。 若第一组和第 二组第一 ACT对应的操作命令为读操作命令,第三组第一 ACT对应的操作命令 为读操作命令, 第一组和第二组第二 ACT对应的操作命令为读操作命令, 则本 实施例可应用于查找表, 可以利用固有参数 tRRD和 tFAW的时间来写入命令。

如图 7所示, RankO对应第一内存, Rankl对应第二内存, ACT set表示 ACT 命令组, RD set表示读操作命令组, ACT set[0]包含 Bank0~Bank3的 4个 ACT, ACT set[l] 包含 Bank4~Bank7的 4个 ACT, RD Set包含 BankO ~ 7的 RD/RDAP命 令。 在写入第一内存的读操作命令组 RankO RD set期间, 写入第一内存的 ACT 命令组 RankO ACT set[l]和 Rankl ACT set[0] , RankO RD set是与 RankO ACT set[0]和 RankO ACT set[l]对应的操作命令, 在写入第二内存的读操作命令组 Rankl RD set期间, 写入了 RankO ACT set[0]和第二内存的 ACT命令组 Rankl ACT set[l] , Rankl RD set是与 Rankl ACT set[0]和 RankO ACT set[l]对应的操作 命令。 由图 7可以看出, ACT set和 RD set交织写入内存, tRRD和 tFAW的时间 用于写入 RD命令, 而 RD和 RDAP之间的间隔周期则用于写入 ACT命令。 这样 利用了 tRRD和 tFAW的空闲周期, 在总线上只有 Rank切换时增加 2个空闲周期, DRAM的带宽利用率得到 艮大的提高。 显然, 为了利用 tRRD、 tFAW, tRP等 内存固有参数的时间,写入两个受固有参数限 制的命令的间隔周期应大等于固 有参数。

如图 8所示, ACT set[0]包含 Bank0~Bank3的 4个 ACT, ACT set[l]包含 Bank4~Bank7的 4个 ACT, RA为 Rank的筒写, BA为 Bank的筒写, ACT RAx BAy 表示向第 x内存的第 y Bank写入 ACT , 如 ACT RAO B A4表示向第一内存的第四 Bank写入 ACT。 Write RAx BAy表示向第 x内存的第 y Bank写入写操作命令, 如 Write RAO BA0表示向第一内存的第一 Bank写入写操作命令。 图 8反映了各个 ACT与写操作命令的对应关系, 以及命令组的间隔时间。 向同一 Bank写入 WRAP和 ACT的间隔周期应大于内存固有参数限制的间隔 时间,即 AL+CWL+2 个 Rank切换时间( 4个时钟周期) +tWR+tRP; 向同一 Bank写入 RDAP和 ACT的 间隔周期应大于内存固有参数限制的间隔时间 ,即 AL +tRTP+Trp;向同一 Bank 写入 ACT set[0]和 ACT set[l]的间隔周期应大于 tFAW; 向同一 Bank写入相邻 ACT的间隔周期应大于 tRC。

经计算, DRAM带宽利用率为 (基于 DDR3-1600器件):

利用率 = 1 - 空闲周期 /总周期 = l-(2+2)/(RankO RD Set cycles + 2 + Rankl RD Set cycles + 2)

= 1—4/(40 + 2 + 40 + 2)

= 95.2% 此外,如果 DRAM由 DDR3-1600升级为 DDR3-2133或者 DDR4器件, DRAM 颗粒的主频将进一步提高, 但 tRRD和 tFAW受器件原理和结构限制降低很小, 主频提高仍然改变不了 tRRD和 tFAW。 本实施例中每个 Rank的两个 ACT Set分 别交织到两个 Rank的 RD Set中, 大大放松了 tRRD和 tFAW的限制。 本发明实施 例若采用 DDR3-2133或 DDR4-2400器件, 同样可以得到上述 95.2%的 DRAM带 宽利用率。

如图 9所示, 采用本发明技术方案对包緩存 ( Packet Buffer ) 的包(Cell ) 进行操作。具体的, RankO对应第一内存, Rankl对应第二内存, RankO和 Rankl 用于作为 Packet Buffer, ACT set[0]包含 BankO~Bank3的 4个 ACT, ACT set[l] 包 含 Bank4~Bank7的 4个 ACT, RD Set包含 BankO ~ 7的 RD/RDAP命令,按照 RankO WR Set→Rankl WR Set→ RankO RD Set→Rankl RD Set,周而复始,进行调度。 ACT Set和 WR Set/RD Set相互交织, 利用了 tRRD和 tFAW间隔周期, 同时对于 其中一个 Rank的 "写到读" 的间隔周期内写入了另外一个 Rank的写操作或读 操作, 这样可以利用 tWTR和 CL的时间, 在总线上只有 Rank切换时增加 2个空 闲周期, DRAM的带宽利用率得到很大的提高。 DRAM带宽利用率为(没有考 虑 DRAM刷新所占用带宽, 基于 DDR3-1600器件 ):

利用率 = 1 - 空闲周期 /总周期 = l-(2+2+2+2)/(RankO WR Set cycles + 2 + Rankl WR Set cycles + 2

+ RankO RD Set cycles + 2 + Rankl RD Set cycles + 2)

= 1-8/(64 + 2 + 64 + 2 + 64 + 2 + 64 + 2)

= 97.0%

其中, RankO WR Set cycles表示写入 RankO WR Set的周期, Rankl WR Set cycles表示写入 Rankl WR Set的周期, RankO RD Set cycles表示写入 RankO RD Set的周期, Rankl RD Set cycles表示写入 Rankl RD Set的周期。

需要说明的是, 上述访问同一 Bank内存的 RDAP到 ACT间隔时间大于固有 参数 AL、 tRTP、 tRP间隔时间之和, 访问同一 Bank的 WRAP到 ACT间隔时间大 于固有参数 AL、 CL、 tWR、 tRP之和, 这也是内存本身固有参数在时间上对调 用内存的限制。显然,本发明方法巧妙的利用 了这些间隔时间向属于不同 Rank 的内存写入命令, 提高了内存带宽的利用率。

此外,如果 DRAM由 DDR3-1600升级为 DDR3-2133或者 DDR4器件, DRAM 颗粒的主频将进一步提高, DRAM的 tWTR和 CL等参数的间隔时间显著增加, 但是由于同一 Rank间读写切换时可以插入足够长的另一个 Rank读写操作, 因 此可以消除 tWTR和 CL参数带来的影响。 本实施例采用 DDR3-2133或 DDR4-2400器件同样能够得到上述 97.0%的 DRAM带宽利用率, 并且在使用更高速率器件时, Packet Buffer的 Cell不会变 大, 不会使小包 "Ν+ 问题恶化。 以下介绍一种用以实施上述方法的内存控制器 。

实施例五

如图 10所示, 一种内存控制器, 包括:

第一行选通单元 501 , 用于向第一内存写入第一组第一 ACT, 所述第一组 第一 ACT包括复数个第一 ACT, 其中, 向第一内存写入两相邻的第一 ACT之间 具有间隔周期。

第一读写单元 502, 用于在所述第一行选通单元在向第一内存写入 第一组 第一 ACT之后,向第一内存写入与所述第一组第一 ACT对应的操作命令,其中, 向第一内存写入两相邻的操作命令之间具有间 隔周期。

第二行选通单元 503 ,用于在第一行选通单元 501向第一内存写入所述第一 组第一 ACT的间隔周期内和 /或在第一读写单元向第一内存写入与所述第 组 第一 ACT对应的操作命令的间隔周期内, 向第二内存写入第二 ACT, 其中, 向 第二内存写入两相邻的第二 ACT之间具有间隔周期。所述第一内存与所述第 二 内存是双 Rank配置。

第二读写单元 504 ,用于向第二内存写入与所述第二 ACT对应的操作命令。 具体的, 在第二行选通单元 503在向第二内存写入第二 ACT之后, 第二读写单 元向第二内存写入与所述第二 ACT对应的操作命令。其中, 向第二内存写入两 相邻的操作命令之间具有间隔周期。

由于第一内存和第二内存属于不同的区块 Rank配置, 第一内存属于 RankO, 第二内存属于 Rankl , 在写入命令时没有耦合关系, 因此, 第一行选 通单元和第一读写单元在向第一内存写入命令 的空闲周期内,第二行选通单元 可以向第二内存写入 ACT命令,这给内存控制器如何调用内存提供了 很大灵活 性, 并减少总线的空闲周期。

优选的, 所述操作命令为读操作命令或写操作命令, 所述读操作命令包括 读命令 RD和具有隐含行充电命令的读命令 RDAP,所述写操作命令包括写命令 WR和具有隐含行充电命令的写命令 WRAP。

优选的, 所述第一读写单元, 进一步用于向第一内存的不同存储体 Bank 写入第一 ACT。

优选的,所述第二读写单元,进一步用于向第 二内存的不同 Bank写入第二

ACT。 实施例六

一种内存控制器, 包括:

第一行选通单元, 用于向第一内存写入第一组第一 ACT, 所述第一组第一 ACT包括复数个第一 ACT, 其中, 向第一内存写入两相邻的第一 ACT之间具有 间隔周期;

第一读写单元,用于在所述第一行选通单元在 向第一内存写入第一组第一 ACT之后, 向第一内存写入与所述第一组第一 ACT对应的操作命令, 其中, 向 第一内存写入两相邻的操作命令之间具有间隔 周期。具体的,在第一行选通单 元向第一内存写入第一 ACT之后, 第一读写单元向第一内存写入与所述第一 ACT对应的操作命令。

第二行选通单元,用于在第一行选通单元向第 一内存写入第一组第一 ACT 的间隔周期内, 向第二内存写入第二 ACT。所述第一内存与所述第二内存是双 Rank配置。 其中, 向第二内存写入两相邻的第二 ACT之间具有间隔周期。

第二读写单元, 用于向第二内存写入与所述第二 ACT对应的操作命令。具 体的,在第二行选通单元在向第二内存写入第 二 ACT之后, 第二读写单元向第 二内存写入与所述第二 ACT对应的操作命令。其中, 向第二内存写入两相邻的 操作命令之间具有间隔周期。

由于第一内存和第二内存属于不同的区块 Rank配置, 第一内存属于 RankO, 第二内存属于 Rankl , 在写入命令时没有耦合关系, 因此, 第一行选 通单元在向第一内存写入第一 ACT命令的空闲周期内,第二行选通单元可以向 第二内存写入第二 ACT命令,第一读写单元是在第二行选通单元向 第二内存写 入第二 ACT命令之后,再向第一内存写入与所述第一 ACT对应的操作命令, 与 所述第一 ACT对应的操作命令不再紧随第一 ACT写入第一内存。这给内存控制 器调用内存提供了很大灵活性, 并减少总线的空闲周期。

优选的, 所述操作命令为读操作命令或写操作命令, 所述读操作命令包括 读命令 RD和具有隐含行充电命令的读命令 RDAP,所述写操作命令包括写命令 WR和具有隐含行充电命令的写命令 WRAP。

优选的, 所述第一读写单元, 进一步用于向第一内存的不同存储体 Bank 写入第一 ACT。

优选的,所述第二读写单元,进一步用于向第 二内存的不同 Bank写入第二 ACT。

优选的, 所述第一读写单元, 进一步用于在第一行选通单元向第一内存写 入第一组第一 ACT及第二行选通单元向第二内存写入第二 ACT之后,向第一内 存写入与所述第一组第一 ACT对应的操作命令。

优选的, 所述第一读写单元包括第一读单元和第一写单 元, 所述第一写单 元用于向第一内存写入与所述第一组第一 ACT对应的写操作命令;所述第一读 单元用于在所述第一写单元向第一内存写入与 所述第一组第一 ACT对应的写 操作命令之后, 向第一内存写入与所述第一组第一 ACT对应的读操作命令。

优选的, 第二读写单元, 进一步用于在由第一写单元向第一内存写入所 述 第一组第一 ACT对应的写操作命令切换为由第一读单元向第 一内存写入所述 第一组第一 ACT对应的读操作命令的间隔周期内, 向第二内存写入所述第二 ACT对应的操作命令。

从以上可以看出,第一读写单元和第二读写单 元是在第一行选通单元和第 二行选通单元分别向第一内存和第二内存写入 第一 ACT和第二 ACT之后,才写 入与第一 ACT对应的操作命令和与第二 ACT对应的操作命令。第二读写单元利 用了第一度读写单元由写转换为读的间隔周期 tWTR及 CL进行读写操作。 实施例七

一种内存控制器, 包括:

第一行选通单元, 用于向第一内存写入第一组第一 ACT, 所述第一组第一 ACT包括复数个第一 ACT, 其中, 向第一内存写入两相邻的第一 ACT之间具有 间隔周期;

第一读写单元,用于在所述第一行选通单元在 向第一内存写入第一组第一 ACT之后, 向第一内存写入与所述第一组第一 ACT对应的操作命令。 其中, 向 第一内存写入两相邻的操作命令之间具有间隔 周期。

第二行选通单元,用于在第一读写单元向第一 内存写入与所述第一组第一

ACT对应的操作命令的间隔周期内, 向第二内存写入第二 ACT; 所述第一内存 与所述第二内存是双 Rank配置。其中,向第二内存写入两相邻的第 ACT之间 具有间隔周期。

第二读写单元, 用于向第二内存写入与所述第二 ACT对应的操作命令。具 体的,在第二行选通单元在向第二内存写入第 二 ACT之后, 第二读写单元向第 二内存写入与所述第二 ACT对应的操作命令。其中, 向第二内存写入两相邻的 操作命令之间具有间隔周期。

由于第一内存和第二内存属于不同的 Rank配置, 第一内存属于 RankO, 第 二内存属于 Rankl , 在写入命令时没有耦合关系, 因此, 第一行选通单元在向 第一内存写入第一 ACT命令对应的操作命令的空闲周期内,第二行 选通单元可 以向第二内存写入第二 ACT,第二读写单元利用了第一 ACT命令对应的操作命 令的空闲周期进行操作, 减少总线的空闲周期。

优选的,所述第一行选通单元进一步用于在向 第一内存写入与所述第一组 第一 ACT对应的操作命令的间隔周期内, 向第一内存写入第二组第一 ACT, 所 述第二组第一 ACT包含复数个第一 ACT;

所述第一读写单元进一步用于在所述第一行选 通单元向第一内存写入第 二组第一 ACT之后, 向第一内存写入与所述第二组第一 ACT对应的操作命令。 可以看出,在第一读写单元向第一内存写入相 邻的与所述第一组第一 ACT对应 的操作命令的间隔周期内, 不仅第二行选通单元向第二内存写入第二 ACT, 第 一行选通单元也可以向第一内存写入另外一组 的第一 ACT。

优选的,所述第二行选通单元进一步用于在第 一读写通单元向第一内存写 入与所述第二组第一 ACT对应的操作命令的间隔周期内,向第二内存 写入第二 ACT。 优选的, 所述第一组第一 ACT和所述第二组第一 ACT分别包含 4个第一 ACT。

优选的,第二行选通单元进一步用于在所述第 一读写单元向第一内存写入 与所述第一组第一 ACT对应的操作命令的间隔周期内和 /或所述第一读写单元 向第一内存写入与所述第二组第一 ACT对应的操作命令的间隔周期内,向第二 内存写入第一组第二 ACT , 第一组第二 ACT包含至少一个第二 ACT。

可以看出, 本实施例利用了第一读写单元在写入命令时的 间隔周期, 向第 二内存写入第二 ACT。 进一步的,在所述第一读写单元向第一内存写 入与所述 第一组和第二组第一 ACT对应的操作命令的间隔周期内,第一行选通 单元还可 以向第一内存写入所述第二组第一 ACT。 因此, 第二行选通单元也在第一行选 通单元向第一内存写入所述第二组第一 ACT的间隔周期内,向第二内存写入第 一组第二 ACT,这进一步利用了第一读写单元和第一行选 单元在写入命令时 的间隔周期。

优选的, 所述第一组第二 ACT包含 4个第二 ACT。

优选的, 第二读写单元, 进一步用于在第一读写单元向第一内存写入与 所 述第一组第一 ACT对应的操作命令和与所述第二组第一 ACT对应的操作命令 之后, 向第二内存写入与所述第一组第二 ACT对应的操作命令。本步骤减少了 不同 Rank间命令的切换, 减少不同 Rank切换带来的空闲周期(不同 Rank间切 换需要 2个间隔周期)。

优选的,第二读写单元进一步用于在第二读写 单元向第二内存写入相邻的 且与所述第一组第二 ACT对应的操作命令的间隔周期内,向第二内存 写入与第 二组第二 ACT, 所述第二组第二 ACT包含至少一个第二 ACT。 可以看出, 与所 述第一组第二 ACT对应的操作命令的间隔周期得到利用。

优选的, 所述第二组第二 ACT包含 4个第二 ACT。

优选的, 第二读写单元, 进一步用于在向第二内存写入与所述第一组第 二

ACT对应的操作命令之后, 向第二内存写入与第二组第二 ACT对应的操作命 令。

优选的, 第一行选通单元, 进一步用于在第二读写单元向第二内存写入与 所述第一组第二 ACT对应的操作命令的间隔周期内和 /或在第二读写单元向第 二内存单元写入与所述第二组第二 ACT对应的操作命令的间隔周期内,内存控 制器向第一内存写入第三组第一 ACT,所述第三组第一 ACT包含至少一个第一 ACT。

优选的, 所述第三组第一 ACT包括 4个第一 ACT。

第三组第一 ACT与第二组第一 ACT之间的间隔时间大于 tFAW。

可以看出,第一读写单元利用第三组第一 ACT与第二组第一 ACT之间的间 隔时间向第二内存写入了命令, 同时仍然可以利用第一组和第二组第二 ACT 对应的操作命令的间隔周期来写入第三组第一 ACT。

优选的,第一读写单元进一步用于在第二读写 单元向第二内存写入与所述 第二组第二 ACT对应的操作命令之后及在第一行选通单元向 第一内存写入第 三组第一 ACT之后, 向第一内存写入与第三组第一 ACT对应的操作命令。

以上可以看出,第二读写单元在第一读写单元 写入第二组第一 ACT对应的 操作命令和第三组第一 ACT对应的操作命令的间隔周期内写入了操作命 令。若 第二组第一 ACT对应的操作命令为写操作命令,第三组第一 ACT对应的操作命 令为读操作命令,则第二读写单元是充分利用 了第一读写单元由写操作切换为 读操作的间隔时间, 向第二内存写入操作命令, 消除了第一读写单元由写到读 操作引起的 tWTR和 CL的空闲周期。

优选的,所述第二读写单元,进一步用于向第 二内存的不同 Bank写入第二 组第二 ACT。

优选的,所述第一读写单元,进一步用于向第 一内存的不同 Bank写入第三 组第一 ACT。

实施例八

如图 11所示, 一种内存系统, 包括内存控制器 601和内存, 所述内存包括 第一内存 602和第二内存 603 ,

所述内存控制器通过地址命令 ADDR/CMD总线 604分别连接第一内存 602 和第二内存 603 , 以使第一内存 602和第二内存 603分时复用 ADDR/CMD总线信 号, 所述内存控制器的片选 CS端分别连接第一内存 602的 CS端和第二内存 603 的 CS端, 具体的, 内存控制器的第一 CS端 605连接第一内存 602的 CS端, 内存 控制器的第二 CS端 607连接第一内存 603的 CS端,以使所述内存控制器 601分别 向第一内存 602和第二内存 603发送独立的片选信号;

所述内存控制器的数据端 DQ606同时连接第一内存 602的 DQ端和第二内 存 603的 DQ端, 内存控制器 601双 Rank配置第一内存 602和第二内存 603。

优选的, 第一内存和第二内存为 X16 DDR3 SDRAM。

优选的, 第一内存和第二内存为基于 TSV或 DDP的 X16 DDR3 SDRAM。 本发明实施例可以与现有技术相结合, 提高内存系统的总线利用率。 本领域普通技术人员可以理解上述实施例的各 种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成, 该程序可以存储于一计算机可读 存储介质中, 存储介质可以包括: ROM、 RAM, 磁盘或光盘等。

以上对本发明实施例所提供的一种内存调度方 法及内存控制器进行了详 实施例的说明只是用于帮助理解本发明的方法 及其核心思想; 同时,对于本领 域的一般技术人员,依据本发明的思想,在具 体实施方式及应用范围上均会有 改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。