在数字图像处理、航空航天等高速信号处理应用场合,需要有高速大容量存储空间的强力支持,来满足系统对海量数据吞吐的要求。通过使用大容量同步动态RAM(SDRAM)来扩展嵌入式DSP系统存储空间的方法,选用ISSI公司的IS42S16400高速SDRAM芯片,详细论述在基于TMS320C6201(简称C6201)的数字信号处理系统中此设计方法的具体实现。
1 IS42S16400芯片简介
IS42S16400是ISSl公司推出的一种单片存储容量高达64 Mb(即8 MB)的16位字宽高速SDRAM芯片。SDRAM的主要特点是:①同步访问,读写操作需要时钟;②动态存储,芯片需要定时刷新。IS42S16400采用CMOS工艺,它的同步接口和完全流水线的内部结构使其拥有极大的数据传输速率,可以工作在高达133 MHz的时钟频率下,刷新频率每64 ms为4096次。该SDRAM芯片内部有4个存储体(bank),通过行、列地址分时复用系统地址总线,对不同存储体内不同页面的具体存储单元进行读写访问寻址。在进行读操作之前,必须预先激活SDRAM内对应的存储体,并选择存储器的某一行,然后送人列地址读取需要的数据。从输出列地址到SDRAM返回相应数据之间存在一个存取延迟。如果访问新的页面,则先需要关闭所有的存储体,否则已打开的页面将一直有效。在写操作之前,由于已经预先激活了有关的行地址,因此可以在输出列地址的同时输出数据,没有延迟。IS42S16400提供自刷新模式的设置,可以使芯片运行在低功耗的状态下,从而大大减少嵌入式系统的功率消耗。
2 C6201与SDRAM的外部存储器接口
DSP芯片访问片外存储器时必须通过外部存储器接口EMlF(External Memory Interface)。C6000系列DSPs的EMIF具有很强的接口能力,不仅具有很高的数据吞吐率(最高达1200 MB/s),而且可以与目前几乎所有类型的存储器直接接口。在C6201系统中,提供了4个彼此独立的外存接口(CEX)。除CEl空间只支持异步接口外,所有的外部CEx空间都支持对SDRAM的直接接口。表1总结了C620XDSPs的EMIF所兼容的SDRAM配置。表2给出了C6000系列DSPs的EMIF所支持的SDRAM控制命令。
2.1 SDRAM的刷新
为了提高存储容量,SDRAM采用硅片电容来存储信息。随着时间的推移,必须给电容重新充电才能保持电容里的数据信息,这就是所谓的“刷新”。它的存在也使得SDRAM的应用变得略显复杂,带来了一定的应用难度。
C6000系列DSPs有专门的SDRAM控制寄存器(SDTCL)和SDRAM时序控制寄存器(SDTIM),用来进行SDRAM的各种时序控制,大大减轻了设计人员的开发难度。SDCTL寄存器中的RFEN位控制是否由EMIF完成对SDRAM的刷新。如果RFEN=1,EMIF会控制向所有的SDRAM空间发出刷新命令(REFR);而SDTIM寄存器中的PERIOD位段则控制具体的刷新周期。
在REFR命令之前,会自动插入一个DCAB命令,以保证刷新过程中所有的SDRAM都处于未激活状态。DCAB命令之后,EMIF开始按照SDTIM寄存器中PERD字段设置的值进行定时刷新。刷新前后,页面信息会变为无效。
对于C620X,EMIF SDRAM控制模块内部有一个2位的计数器,用来监测提交的刷新申请的次数。每提交一个申请,计数器加1;每次刷新周期之后,计数器减1。复位时,计数器自动置为11b,以保证在存取访问之前先进行若干次刷新。计数器的值为llb,代表紧急刷新状态,此时页面信息寄存器变无效,迫使控制器关闭当前的SDRAM页面。然后,EMIF SDRAM控制器在DCAB命令后执行3次REFR命令,使计数器的值减为0,再继续完成余下的存取操作。 2.2 SDRAM的初始化
当某个CE空间配置为SDRAM空间后,必须首先进行初始化。用户不需要控制初始化的每一个步骤,只需要向EMIF SDCTL寄存器的INIT位写1,申请对SDRAM作初始化。然后,EMIF就会自动完成所需要的各步操作。初始化操作不能在进行SDRAM存取过程中进行。整个初始化过程包括下面几个步骤:
①对所有的SDRAM空间发出DCAB命令;
②执行3个REFR命令;
③对所有的SDRAM空间发出MRS命令。
2.3页面边界控制
SDRAM属于分页存储器,EMIF的SDRAM控制器会监测访问SDRAM时行地址的情况,避免访问时发生行越界。为了完成这一任务,EMIF在内部有四个页面寄存器,自动保存当前打开的行地址,然后与后续存取访问的地址进行比较。需要说明的是,当前存取操作结束并不会引起SDRAM中已经激活的行被立即关闭,EMIF的控制原则是维持当前的打开状态,除非必须关闭。这样做的好处是可以减少关闭/重新打开之间的命令切换时间,使接口在存储器访问的控制过程中充分利用地址信息。
对于C620X,每个CE空间包含1个页面寄存器(只对配置为SDRAM空间有效),因此C620X每个CE空间1次只能激活1页。进行比较的地址位数取决于SDCTL寄存器中SDWID位的值。如果SDWID=O,该CE空间构成页面的大小为512,比较的逻辑地址是位23~11;如果SDWID=1,该CE空间SDRAM构成页面的大小为256,比较的逻辑地址是位23~10。一旦发现存取访问发生了页面越界,EMIF会自动执行DCAB操作,然后再开始新的行访问。
2.4 访问地址的移位
由于SDRAM行逻辑地址与列逻辑地址复用相同的EMIF 引脚,所以EMIF接口需要对行地址与列地址进行相应的移位处理。地址的移位处理由SDCRL寄存器中的SDWlD位控制。
另外,对于SDRAM,因为输入地址也是控制信号,因此需要说明以下几点:
①RAS有效期间的高位地址信号会被EMIF内部SDRAM控制器锁存,以保证执行READ和WRT命令时选通正确的bank;
②READ/WRT操作期间,EMIF会保持pre-charge信号为低(C620X是SDAl0),以防止READ/WRT命令执行后发生auto pre—charge操作。
2.5 接口时序的设计
对于C620X,EMIF与SDRAM的接口时序由SDCTL寄存器控制。EMIF提供了5个时序参数,其中3个在SDCTL寄存器中设置,另外2个为固定值,如表3所列。在分析接口时序的配合情况时,需要计算“富裕时间”tmargin的大小,这是在考虑了SDRAM芯片的器件手册提供的最坏情况之后,得到的时序上的一个裕量。至于tmargin值的大小,是系统设计层需要考虑的问题,具体要求随不同的系统而异,而且与印制板的实际布线情况以及负载的情况密切相关。
技术专区
- Alexa语音服务软件扩展STM32Cube
- 结合DNN API驱动未来神经网络应用的解决方案
- 针对于高端移动通信和汽车市场的四集群设计
- 一款基于帧捕捉的开源图形调试器应用设计
- 即将成为标准配置的最新安全技术:后视摄像系统