基于当代DRAM结构的存储器控制器设计 |
2009年12月30日 12:00 微计算机信息 作 者:欧阳伟 张琦滨 |
1、引言 当代系统越来越受存储性能的限制。处理器性能每年以60%的速率增长,存储器芯片每年仅仅增加10%的带宽,本文就如何设计一种符合当代DRAM结构的高效存储器控制器进行研究。 本文第二部分介绍当代DRAM结构特点;第三部分介绍存储器控制器结构以及调度算法;第四部分介绍模拟环境以及性能表现。 2、当代DRAM结构 为了提高存储器的性能,存储器控制器的设计必须充分利用当代DRAM的特点。DRAM是3D的存储器(体行列),每个体独立于其他体操作并且一次存取整行。当存储阵列的一行被存取(行xx),存储阵列的整行被传输到这个体的行缓冲。当一行在行缓冲中处于xx态,任何的读写(列存取)可以执行。当完成所有可利用的列存取,被缓冲的行必须依靠外在的操作(体预充电)写回存储阵列,为后来的行xx操作做准备。 存储器存取调度者必须满足DRAM时序和资源限制。共享的地址和数据线资源使存取串行化到不同的DRAM体,但是每个体的状态机是独立的。因此,调度者必须仲裁要使用单一资源的预充电、行、列操作。要充分利用存储带宽,必须每次行xx下有足够的列存取并且隐藏其他体的预充电/xx延迟。 3、存储器控制器结构及调度算法 存储器存取调度是排序DRAM操作(体预充电,行xx,列存取)完成当前挂起的存储器存取的过程。操作表示一个命令(如行xx、列存取),被存储器控制器发射到DRAM。访问表示由处理器产生的存储器访问(如读访问或者写访问)。一个访问产生一个或者多个存储器操作。 图1.存储器控制器结构 图1显示采用存取调度算法的控制器结构。每个体有预充电管理器,行仲裁器。预充电管理器决定什么时候对与他相关的体预充电。每个体的行仲裁器决定哪一行被xx。列仲裁器被所有体共享,授权共享的数据线资源给来自所有挂起的访问的列存取。{zh1},预充电管理器、行仲裁器、列仲裁器发射选择的操作给单一的地址仲裁器,地址仲裁器授予共享地址资源给一个或者多个操作。 预充电管理器,行仲裁器,列仲裁器可以使用多个不同的策略选择DRAM操作。由于地址线资源的是共享的,地址仲裁器策略决定哪个预充电、xx、列操作被执行。跟其他调度策略一样,按序或者优先权策略可用来作为地址仲裁器策略。列优先调度策略可以减少到xx行的访问延迟,然而预充电优先或者行优先调度策略会增加体并行性。 下面介绍几种预充电管理器,行仲裁器,列仲裁器可能使用的调度策略: In order:DRAM操作只会执行最早请求挂起的访问; Ordered:越老的访问优先级越高; Open:只有在其他行有挂起的访问而xx行没有挂起的访问才进行体预充电。当有显著的行局部性使得后来的访问命中前面访问的行,Open策略应该采用; Closed:只要xx行没有挂起的访问体就预充电。后来的访问不太会命中前面访问的行,closed策略应该采用。 4、控制器性能表现 传输带宽而不是访问延迟驱动流处理器性能。因此处理系统是首要的需要存储器存取调度。为了评价存储器存取调度对于媒体处理器的性能影响,通过模拟运行典型的基准程序。 4.1模拟环境及基准 Imagine流存储系统包括2个地址产生器,4个交叉存储体控制器,2个记录缓冲按正确顺序放置流数据在SRF。所有这些单元在同一芯片Imagine处理器核中。地址产生器支持3种地址模式:常量跨步,间接寻址,位翻转。地址产生器可以产生任何长度的存储器访问流,只要数据适合SRF。对于跨步访问,地址产生器利用基址、跨步、长度,连续的地址依照基地址增加跨步常量。对于间接寻址,基地址加上来自SRF的变址计算地址。实验运行在一组微基准上,如表1。 |