您的位置:控制工程论坛网论坛 » 电机与运动控制 » 系统级芯片内部SRAM与外部SDRAM组合设计方法

storage

storage   |   当前状态:离线

总积分:65  2024年可用积分:0

注册时间: 2005-11-29

最后登录时间: 2018-05-11

空间 发短消息加为好友

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

storage  发表于 2005/12/27 11:02:19      1411 查看 4 回复  [上一主题]  [下一主题]

手机阅读

很多系统级芯片带有内部存储器,它具有速度快功耗低的优点,但容量却不是很大,因此需要和外部存储器结合起来使用。本文介绍如何配置系统以使片上SRAM和片外SDRAM一起构成一个连续的存储空间,达到比单独使用SDRAM时等待时间更短且功耗更低的目的。 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,这样在片上SRAM最后地址0x00007FFF和SDRAM第一个地址0x20000000之间会有一个很大的空隙。 地址映射反映了在具体器件上,程序访问最后一个物理地址存储器时会发生什么情况。当REMAP等于0b10时,32KB片上SRAM物理地址范围为0x00000000~0x00007FFF,片上SRAM地址总线只有15位。如果代码想进入地址为0x00008000的存储器,那么SRAM地址总线0位到14位为0,而第15位应该为1,但却不会出现这种情况因为没有第16条地址线。所以进入0x00008000实际上是进入地址为0x00000000的存储器,于是在0x00000000~0x1FFFFFFFF范围里,地址重复使得片上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编程时应该使帧缓冲器虚拟内存空间作为高速缓存,而不是写缓冲器,这样能够减少帧缓冲器更新的等待时间。
1楼 0 0 回复
  • clun

    clun   |   当前状态:离线

    总积分:79  2024年可用积分:0

    注册时间: 2005-12-01

    最后登录时间: 2018-05-11

    空间 发短消息加为好友

    clun   发表于 2005/12/1 13:47:58

    safa
    2楼 回复本楼

    引用 clun 2005/12/1 13:47:58 发表于2楼的内容

  • henrys

    henrys   |   当前状态:离线

    总积分:67  2024年可用积分:0

    注册时间: 2005-12-02

    最后登录时间: 2018-05-11

    空间 发短消息加为好友

    henrys   发表于 2005/12/2 12:39:13

    qiang
    3楼 回复本楼

    引用 henrys 2005/12/2 12:39:13 发表于3楼的内容

  • july

    july   |   当前状态:离线

    总积分:86  2024年可用积分:0

    注册时间: 2005-11-25

    最后登录时间: 2018-05-11

    空间 发短消息加为好友

    july   发表于 2005/12/23 11:14:24

    4楼 回复本楼

    引用 july 2005/12/23 11:14:24 发表于4楼的内容

  • parrot

    parrot   |   当前状态:离线

    总积分:79  2024年可用积分:0

    注册时间: 2005-12-06

    最后登录时间: 2018-05-11

    空间 发短消息加为好友

    parrot   发表于 2005/12/27 11:02:19

    5楼 回复本楼

    引用 parrot 2005/12/27 11:02:19 发表于5楼的内容

总共 , 当前 /