基于VIM的嵌入式存储控制器的研究与实现_第1页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于vim的嵌入式存储控制器的研究与实现 1 引言 随着vlsi技术的迅猛进展,微处理器主频日益提高、性能飞快增长,尽管与此同时存储器集成度也越来越高、存取延时也在不断下降,但是处理器性能的年增长速度为50%60%,而存储器性能每年提高的幅度惟独5%7%,dram存储器的低带宽和高延迟使高性能处理器无法充分发挥其性能,处理器和存储器之间速度的差距越来越成为制约囫囵系统性能的瓶颈。众多的讨论者从微体系结构动身,实行乱序执行、多线程、预取、分支预测、判断执行等技术,或多级cache的层次式存储结构来弥补微处理器与存储器性能差距,但是这些技术存在多种问题:复杂、占用面积大、资源利用率低、造价高、耗尽

2、存储带宽等,并不能真正解决存储瓶颈问题。即使一些新的存储器产品的浮现,如ddr存储器,rambus存储器等,虽然一定程度上提高了存储器的频率,但处理器和存储器之间的性能差距还是在进一步拉大。如何才干真正消退存储器性能瓶颈呢?pim技术(processing in memory),即把处理器和存储器紧密集成到一块芯片上,创造工艺的长进使规律单元可以和sram或dram集成在一个硅片上,这样可以突破芯片间引脚的限制,充分发挥存储器的躲藏带宽,同时降低拜访延时(将片间拜访延时转换成片内拜访延时迟)。以pim技术为基础,用向量部件作为协处理器构成的vector in memory(vim)体系结构,可

3、充分发挥pim高带宽、低延迟、低功耗的特点,开发数据级并行,是解决存储系统性能瓶颈的有效途径。本文详细阐述vim体系结构中影响存储系统性能的关键部件存储控制器的设计与实现。2 vim体系结构vim是一种面对流式数据处理的向量体系结构,其微体系结构的处理器部分由1个标量核和1个向量协处理器构成,嵌入式存储控制器和存储器构成片上dram存储系统,处理器部分和存储系统之间由高速存储交错开关互连。vim体系结构最重要的特征就是向量处理器和嵌入式存储器的结合。图1中给出了vim系统结构的典型框架结构。2.1 risc标量核vim标量核为可综合、高集成度的32位risc处理核,其命令集与sparc v8兼

4、容;标量核包括整数部件、浮点部件,支持用户态和超级用户态(管态)2种工作模式;主要功能是执行标量命令(sparc命令集),处理异样和中断,为向量部件输送向量命令,完成标量核与向量部件之间的数据传递,并与主机举行通信完成取指、译码工作。2.2 向量部件向量部件作为标量核的协处理器,执行扩展的向量命令,与标量部件并行执行。由向量命令队列、向量控制器、向量核寄存器文件、向量lane等部分构成。向量命令队列viq,为异步fifo队列。标量核通过部分译码将识别出的向量命令写入viq,由向量取指单元从中挨次取出命令交由译码部分再次译码。向量控制器保证向量命令的正确执行,完成向量流水线控制。向量核寄存器文件

5、由向量寄存器文件、标量寄存器文件、控制寄存器文件和标记寄存器文件构成,包括32个32位寄存器。向量lane由并行的向量流水线构成,包括彻低流水的lsu,alu,fpu等部件。每个lane可以看成一条数据通路,完成对特定宽度数据的处理,多个lane之间可以并行执行。2.3 嵌入式存储系统及i/o嵌入式存储系统由存储互连交错开关、嵌人式存储控制器和存储器构成,存储互连交错开关用于片内运算部件访存时的地址翻译、访存命令的路由以及读取数据的返回,其将标量访存部件、向量lane访存部件和嵌入式存储器互连起来,具有多端口、高带宽、低延时的特点。嵌入式存储控制器接收从存储交错开关传送过来的访存命令,实现对d

6、ram的数据存取。存储器是由4个自立的存储体组成的一个多体交错存储器,每个存储体都有自己自立的存取控制接口,体内又分成4个子体。采纳多体存储器可使映射到不同存储体的访存命令可以同时执行,并行对多个向量元素举行操作,同时每个存储体都对应各自的存储控制器,相对于集中式存储控制而言拜访延时更低、功耗更小。i/o接口用于实现多个vim节点间互连和挂接一些i/o设备。嵌入式存储控制器实现对dram存储体的初始化、激活、行选、列选、自动充电、定时刷新、读延迟、写复原等功能控制,支持4种突发读写模式、两种行选延时挑选,具有严格的时序。下面将具体阐述嵌入式存储控制器的设计计划,设计思想以及详细实现。3 嵌入式

7、存储控制器设计与实现3.1 嵌入式存储控制器模块结构存储控制器是系统和dram之间的控制接口,在vim的存储系统中,嵌入式存储控制器的作用就是将存储交错开关所传输过来的读写控制指令转换成dram的控制信号实现对dram的读写、刷新等控制;将存储交错开关传输过来的地址分解成bank地址、行地址和列地址,在特定的时候传输到dram地址线上;以及控制数据总线和dram数据线的数据输入输出。实现vim-1嵌入式存储控制器,图2所示为其模块结构,存储控制器由主控制模块、信号产生模块、刷新模块和数据通路构成。下面详细对每个模块的功能举行阐述:3.1.1 主控制模块主控制模块实现对dram各种功能的控制,由

8、初始化状态机子模块、指令状态机子模块和计数器子模块构成。初始化状态机子模块 在计时子模块的时序控制下,产生dram初始化过程中所需的各种状态,通过状态转换控制dram模块的初始化,并将其状态信号istate同时传送到指令状态机子模块、信号产生模块、计时器子模块和数据通路中。指令状态机子模块 在计时子模块的时序控制下,产生dram读写周期和刷新周期过程中所需的各种状态,控制对dram模块的读写拜访及刷新操作,并将其状态信号cstate传送到数据通路模块、计时器子模块和信号产生模块中。计时器子模块 按照dram模块的时序标准,对dram模块内部操作举行时序控制,主要通过控制初始化状态机和指令状态机

9、中的状态转化时序,达到控制dram内部操作时序的目的。3.1.2 刷新模块产生对dram模块的刷新哀求操作:通过内部的计数器控制,每隔一定的时钟周期(详细时钟周期数根据dram模块参数而定)向指令状态机发送刷新哀求,直到指令状态机回复刷新哀求应答。3.1.3 信号产生模块信号产生模块将初始化状态机发送的状态istate、指令状态发送的状态cstate转换成dram所对应的内部指令信号,主要包括sdr_cke(时钟使能信号)、sdr_csn(片选信号)、sdr_rasn(行选信号)、sdr_casn(列选信号)、sdr_wen(读写信号)。同时在规定的时序下,将地址总线上传输过来的地址信号转换成

10、dram内部所对应的bank地址和行列地址。3.1.4 数据通路数据通路模块主要功能是在计时器子模块的时序控制下,按照指令状态信号,在相应状态时将数据总线上的数据写入dram存储体;以及将dram数据线sdr_dq上的数据输出到系统总线上,同时在数据输出的过程中将数据有效信号sys_d_valid置1。3.2 dram初始化通常在dram正常工作,能够执行存储拜访前,需要对dram举行初始化。主控制模块中的初始化状态机子模块实现对dram的初始化操作。3所示。图3为初始化状态机状态转换图,初始化过程如下:系统复位时,dram空操作,初始化状态机处于i_nop状态,系统复位完成且电源和时钟处于稳

11、定状态时,dram初始化序列开头执行,经1次充电、2次刷新和载入工作模式操作,最后进入就绪状态,初始化序列完成。初始化状态机中的载入模式状态启动dram内部载人工作模式指令,将地址总线上的数据加载到dram的模式寄存器中,配置用户所需要的工作模式。模式寄存器的内容定义了猝发长度、猝发类型及cas延迟等,只要dram模块处于空操作状态,模式寄存器可以载入不同的值,继而转变dram的工作模式。另外,因为dram的延迟周期按照实际dram速度级别的不同而不同,在延迟状态中等待的时钟周期数与时钟周期tck相关,当初钟周期tck大于延迟时光时(这里延迟时光指:充电周期、刷新周期和载入延迟),事实上就不需

12、要等待,在初始化过程中,充电、刷新和载入工作模式到最后就绪状态之间的转换为图3中虚线表示的转换过程。3.3 读写周期图4为vim-1嵌入式存储控制器指令状态机状态转换图,通过状态转换控制对dram的读、写拜访和刷新操作。系统复位时,dram空操作,指令状态机处于空闲状态,dram初始化完成后,指令状态机对总线地址选通信号sys_adsn(低电平有效,表示总线哀求)和刷新哀求信号sys_ref_req举行检测,假如有刷新哀求,那么指令状态机模块控制dram进入刷新周期,否则,若总线地址选通信号sys_adsn有效,指令状态机转入激活状态,则dram进入读写周期。指令状态机从激活状态无条件转入激活

13、延迟状态,在激活延迟状态对系统控制总线上的读写指令信号举行检测,若信号为高电平(表示读拜访)则指令状态机转入读操作状态,继而举行对dram读取数据操作;否则状态机转人写操作状态,执行写拜访。对dram一个完整的读拜访周期需要经过的状态转换过程为空闲-激活-激活延迟-读操作-cas延迟-数据输出,最后回到空闲状态。而对dram一个完整的写拜访周期则需要经过空闲-激活-激活延迟-写操作-数据写入-写复原-空闲的状态转换过程。在所实现的vim-1嵌入式存储控制器中,将dram地址位a10恒置高电平,设置为自动充电模式,所以对dram的充电躲藏在dram读写指令操作中。指令状态机转换过程中所涉及到的延

14、迟等待时光,由dram模块速度和延迟参数确定。从c_active到c_write或c_read状态之间的虚线表示,在激活延迟小于1个时钟周期的状况下,dram从激活状态挺直转换到读/写操作状态,延迟事实上躲藏在状态转换的时钟周期中。3.4 刷新周期dram存储器需要举行定时刷新,刷新周期描述如下:(1)刷新模块每经过1个刷新哀求周期,向控制模块发出刷新哀求信号sys_ref_req;(2)存储控制器的控制模块发出应答信号sys_refack对哀求信号举行确认;(3)应答信号在囫囵刷新阶段有效,sys_ref_req信号发出后必需得到sys_ref_ack确实认,否则向来保持为高;(4)在sys

15、_ref_ack有效期间,不能允许举行读写拜访,直到刷新周期完毕,在刷新期间系统接口全部指令将被忽视;(5)接收刷新哀求后,指令状态机经过c_ar刷新状态-c_trfc刷新等待状态-c_idle空闲状态的转换过程完成对dram的刷新控制。并等待接收系统访存命令,完成下一轮的读/写周期。3.5 时序控制时序控制是存储控制器实现中的关键部件,在vim-1嵌入式存储控制器中用1个计时器子模块来实现对存控内状态机的时序控制。计时器子模块中包括1个时钟周期数锁存器clkcnt和1个计时复位信号reset_clkcnt,详细时序控制描述如下:(1)锁存器clkcnt按时钟周期递增,每时钟周期clkcnt的

16、值加1,直到reset_clkcnt复位信号置1,clkcnt清0;(2)状态机转换到某个需要延迟操作的状态时,reset clkcnt复位信号置1,此时cikcnt清0;(3)状态机进入延迟等待状态,同时将reset_clkcnt复位信号置0,计时器从0开头计数,clkcnt按时钟周期递增1;(4)clkcnt值到达指定延迟时光,相关状态机子模块控制状态发生转换,同时将reset_clkcnt置1,clkcnt清0,进入下一个状态的时序控制。4 功能模拟及综合验证4.1 存储控制器功能模拟在modelsim 5.7中对vim-1嵌入式存储器举行了功能模拟,下面分离给出读写拜访功能模拟结果。图

17、5为存储控制器写周期时序波形图。该时序波形图反映了存储控制器将数据总线上的数据00000009h(h表示16进制)写入dram的过程。从图5中可以看到存储控制器在状态机cstate处于0110状态时240 ns,将数据送到输出数据线sdr_odq上,数据值为00000009h;完成数据的写入后,状态机转到写复原状态0111(260 ns),经过两个周期后在280 ns回到空闲状态0000,写周期完成。图6为存储控制器读周期时序波形图。同写周期时序波形图一样,图中正确反映了指令状态机在检测到控制总线上读指令后的状态转换过程,状态转换之间的延迟周期,每种状态所对应的dram指令信号,系统地址和数据总线上的值,dram地址线和数据线上的值。通过一系列的状态转换,在状态机cstate转换到1010数据输出状态(350 ns)时,存储控制器将前面存入dram存储单元中的数据00000009h,读取出来并传送到系统数据总线sys_odata上。4.2 综合验证在环境中采

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论