[发明专利]内存控制器及命令控制方法有效
| 申请号: | 201010291555.8 | 申请日: | 2010-09-25 |
| 公开(公告)号: | CN102411982A | 公开(公告)日: | 2012-04-11 |
| 发明(设计)人: | 任凯 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
| 主分类号: | G11C7/22 | 分类号: | G11C7/22;G06F13/16 |
| 代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
| 地址: | 310053 浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 内存 控制器 命令 控制 方法 | ||
技术领域
本发明涉及内存控制器(Memory Controller)技术,特别涉及主要适用于第2代双倍数据速率(Double Data Rate2,DDR2)同步动态随机接入存储器(Synchronous Dynamic Random Access Memory,SDRAM)和第3代双倍数据速率(Double Data Rate 3,DDR3)SDRAM的一种内存控制器、以及可用于实现该内存控制器的一种命令控制方法。
背景技术
在当今的计算机系统中,如图1所示,CPU和I/O器件需要通过内存控制器来访问外部内存系统中的数据,其中,内存控制器连接的外部内存系统由DRAM器件实现,目前应用最为广泛的是DDR2 SDRAM和DDR3SDRAM,由此,外部内存系统也可称之为外部DRAM系统。
内存控制器主要负责从内存系统中的DRAM器件(例如DDR2 SDRAM或DDR3 SDRAM等)读取数据,以及向内存系统中的DRAM器件写入数据,在读取和写入数据的过程中,内存控制器需要确保访问DRAM器件的协议正确,同时需要满足DRAM器件的接口电气特性和时序特性,有时还需要具有错误检测和纠正的功能。
内存控制器决定了计算机系统的内存性能,从而也对计算机系统的整体性能产生较大影响,因此,绝大多数内存控制器都是以高性能作为设计目标。
由于现今的计算机系统的CPU基本上都采用多线程、多核技术,各个线程和各个CPU核会独立的实现某一个特定的应用(例如线程0在从硬盘向外部DRAM器件搬移数据,而线程1从外部DRAM系统读取数据),因此会频繁出现多个线程(或多个CPU核)同时通过内存控制器访问同一个外部DRAM器件,也就是说,对外部DRAM器件的访问是各个线程和CPU核交错进行的。进而由于各线程(或CPU核)实现的功能完全不同,因而各线程(或CPU核)对外部DRAM器件的访问命令也就不会是连续地址的访问,基于这种情况,以高性能作为设计目标的内存控制器就需要针对随机地址访问进行优化。
通过内存控制器对外部DRAM器件的随机访问,大致可以分为如下的两种情况:
第一种情况,连续的多个访问都发生在DRAM器件相同存储体(Bank)的不同行(Row)。如图2a所示,以DDR2 SDRAM为例,当连续访问Bank0中各Row时,先通过激活(ACT)命令打开需要读访问的Bank0中的对应Row、然后再发送读(RD)命令,当Bank0中对应Row的数据D0~D3读取完成后,通过预充电(Precharge)命令关闭该Row,以便于再次发送ACT命令打开Bank0中的下一个Row、并再次发送RD命令。在图2a中,两个RD命令之间有12个时钟周期的间隔,而每个RD命令所对应的数据传输仅占用2个时钟周期,从而导致上述读访问时的DRAM总线效率仅有16.7%(2/12=16.7%)。
第二种情况,连续的多个访问都发生DRAM器件不同Bank的不同Row,由于DRAM器件的各个Bank是由独立的对应电路进行控制的,因此连续访问不同Bank时不会受到DRAM器件的固有时序参数的影响。如图2b所示,以DDR2 SDRAM为例,当连续访问Bank0、Bank1、Bank2、Bank3、Bank4、Bank5、Bank6中不同Row时,在时钟周期0、2、4、6、8、10、12依次为各Bank产生ACT命令,时钟周期1、3、5、7、9、11、13则依次为相应Bank产生的读自动预充电(Read with AutoPrecharge,RD+AP)命令,经过读延时周期后,时钟周期6、7出现Bank0读数据D0a~D0d,时钟周期8、9出现Bank1读数据D1a~D1d,时钟周期10、11出现Bank2读数据D2a~D2d),依此类推。各Bank的读数据首尾连接,使时钟周期6开始后的DRAM总线没有空闲周期,此时DRAM总线效率为100%。
如上可见,第二种情况的DRAM总线效率明显高于第一种情况,因此,为了确保DRAM总线的高效率,如图3所示,当今的计算机系统通常会在CPU/IO设备与内存控制器增设一命令调度器,由命令调度器中的仲裁器将调度各个CPU线程(或各个CPU核)、以及IO设备针对不同Bank的命令分别缓存至对应的队列中,再由内存控制器轮询读取各Bank所对应队列中的命令,从而避免上述的第一种情况、并满足上述的第二种情况。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010291555.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:显示器的背光系统
- 下一篇:一种商店用布鞋挂鞋架子





