系统级芯片内部SRAM与外部SDRAM组合设计方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

系统级芯片内部SRAM与外部SDRAM组合设计方法

上网时间 : 2003年12月14日

打印版推荐给同仁发送查询

很多系统级芯片带有内部存储器,它具有速度快功耗低的优点,但容量却不是很大,因此需要和外部存储器结合起来使用.本文介绍如何配置系统以使片上SRAM和片外SDRAM一起构成一个连续的存储空间,达到比单独使用S DRAM时等待时间更短且功耗更低的目的.

LH79520是一种具有较高集成度的系统级芯片,可广泛用于多种便携式设备.该芯片带有32KB片上SRAM,可用作LCD显示器的片上帧缓存器.但不幸的是,32KB对多数彩色显示器存储容量太小,例如一个320×240 8位像素显示器需要75KB存储空间.尽管如此,由于片上存储器速度快,功耗也比SDRAM小很多,所以把片上SRAM作为大型帧缓冲器的一个部分还是有意义的.

LH79520内部有一个ARM720T核,该内核包含存储器管理单元(MMU),可以区分物理存储器地址和虚拟存储器地址.如果ARM720T的MMU处于工作状态,处理器将执行虚拟存储器地址的代码,虚拟地址可映射到完全不同的物理地址.初看之下,将SRAM与SDRAM合并的任务像是MMU的工作,但遗憾的是MMU只为处理器内核进行地址转化,像彩色LCD控制器(CLCDC)之类的DMA外设不是ARM720T内核的一部分,所以DMA外设只能使用物理地址.为了把片上SRAM和SDRAM组合成一个相连的物理地址空间,必须利用LH79520的REMAP功能和片上SRAM的地址映射特性.

复位后LH79520的内存映象如图1最左列所示.将LH79520的复位、状态和功率控制器(RCPC)中的REMAP寄存器设定为0b10后,程序会把片上SRAM移到紧挨着SDRAM存储器的位置.由于片上SRAM只有32KB,这样在片上SRA M最后地址0x00007FFF和SDRAM第一个地址0x20000000之间会有一个很大的空隙.

地址映射反映了在具体器件上,程序访问最后一个物理地址存储器时会发生什么情况.当REMAP等于0b10时,32 KB片上SRAM物理地址范围为0x00000000~0x00007FFF,片上SRAM地址总线只有15位.如果代码想进入地址为0 x00008000的存储器,那么SRAM地址总线0位到14位为0,而第15位应该为1,但却不会出现这种情况因为没

有第16条地址线.所以进入0x00008000实际上是进入地址为0x00000000的存储器,于是在0x00000000~0x1FF FFFFFF范围里,地址重复使得片上SRAM每隔32KB就会在地址空间里有一个映射(图2).

所以,要从片上SRAM和SDRAM上创建一个75KB帧缓冲器就要把CLCDC上格帧缓冲器设定在0x1FFF8000地址上,于是帧缓冲器范围将从0x1FFF8000~0x2000ABFF.

多数LH79520应用需要从虚拟地址0x00000000开始放置异常矢量,由于REMAP寄存器已经设定为0b10,所以从0x00000000开始的物理地址空间已经被第一个32KB或帧缓冲器所占有.如果系统中断速率很高,程序将会受益于使用片上SRAM进行异常处理.对这类系统,只要把开始地址在CLCDC的片上帧缓冲器设定到内部存储器并跟随所有异常处理代码地址,如果异常处理代码有1KB,就将CLCDC帧缓冲器开始代码设定为0x1FFF8400.

另一方面,由于LH79520从虚拟地址取回指令,因此不必保存帧缓冲器应用所需要的空间异常向量.MMU允许把任何需要的内存放在虚拟地址0x00000000处,例如可以把4KB的SDRAM映射到虚拟地址0x00000000上,并把异常矢量拷贝到新的虚拟地址.当然,还得用MMU来给帧缓冲器创建一个相邻的虚拟存储空间.假如有快速图形库,则对MMU编程时应该使帧缓冲器虚拟内存空间作为高速缓存,而不是写缓冲器,这样能够减少帧缓冲器更新的等待时间.

相关文档
最新文档