现在的位置: 首页 > 综合 > 正文

ARM体系结构中的存储系统

2013年08月23日 ⁄ 综合 ⁄ 共 1988字 ⁄ 字号 评论关闭

1.4.5  ARM体系结构中的存储系统
       在介绍ARM体系结构中的存储系统之前,先简单介绍一下ARM编程模型中与存储系统相关的一些概念。ARM体系结构使用单一的平板地址空间,该地址空间的范围大小为232个8位字节。这些字节单元的地址是一个无符号的32位数值,其取值范围为0~232-1。有了存储系统的寻址范围之后,还需要讨论一下实际存储系统中的大/小端格式及ARM体系结构中的MMU等概念。
      1.ARM存储系统中的大/小端
在ARM体系结构中,每个字单元包含4字节单元或者2个半字单元,1个半字单元包含2字节单元。但是在字单元中,4字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式,通常称为大端格式或者小端格式,也就是big-endian格式和little-endian格式。大/小端的选择对于不同的芯片来说有一些不同的选择方式,一般都可以通过外部的引脚或内部的寄存器来选择。具体要参见处理器的数据手册。
在大端模式下的存储格式如下所示。
31                  24 23                 16 15                 8 7                 0

字单元A

半字单元A
半字单元A+2

字节单元A
字节单元A+1
字节单元A+2
字节单元A+3

而在小端模式下的存储格式如下所示。
31                24 23                16 15                 8 7                   0

字单元A

半字单元A+2
半字单元A

字节单元A+3
字节单元A+2
字节单元A+1
字节单元A

非对齐的存储访问操作:在ARM体系结构中通常希望字单元的地址是字对齐的(地址的低两位是0b00),半字单元的地址是半字对齐的(地址的最低位为0b0),但在存储单元中地址没有遵守上述的对齐规则,称为非对齐的存储访问操作,在ARM体系结构的伪指令集中有专门的align指令来指定对齐格式。
在ARM体系结构中允许指令预取,在CPU执行当前代码的同时,可以从存储器中预取其后若干条指令,具体预取多少条指令则由不同的ARM处理器内核的实现来决定。
2.ARM体系结构中的MMU
    另外一个重要的概念就是MMU(Memory Manager Unit)。ARM存储系统的体系结构适应不同的嵌入式系统应用,它的差别很大。最简单的存储系统使用平板式的地址映射机制,地址空间的分配是固定的,系统中各部分都使用物理地址,这样的处理器不带MMU。而一些复杂的系统可能包含一种或多种下面提到的技术,从而提供功能更为强大的存储系统。
(1)系统中可能包含多种类型的存储器件,一般都有Flash、SRAM、SDRAM等接口
(2)使用指令/数据cache及Write Buffer技术缩小处理器和存储系统速度差别,从而提高系统的整体性能。
(3)系统中包含有MMU单元。
MMU使用内存映射技术实现虚拟空间到物理空间的映射,这种映射机制对于嵌入式系统尤其重要。通常程序放在ROM/Flash中,这样系统掉电后程序能够保存。但是ROM/Flash比SDRAM速度慢很多,而且在嵌入式系统中,中断向量表存放在RAM中,不过利用内存映射就可以解决这种问题。在系统加电时将ROM/Flash地址映射到0x00000000,在0x00000000地址处存放启动代码,来完成系统设备的初始化,之后再把内核程序加载到SDRAM,然后把地址映射到SDRAM的地址,跳转到SDRAM地址运行就可以了。
针对具有MMU的ARM处理器可以移植Linux for ARM操作系统,针对没有MMU的处理器,一般都是移植uClinux for ARM。比如说Samsung公司的S3C4510、S3C2510都是不带MMU的处理器,只能移植uClinux,而针对S3C2410、PXA27x、OMAP591x等带有MMU单元的ARM处理器通常都可以移植Linux操作系统。带有MMU的处理器内部都有用于存储管理的系统控制协处理器CP15,在移植嵌入式操作系统的Boot Loader时,必须要对存储管理单元进行初始化设置。
3.快速上下文切换技术
      FCSE(Fast Context Switch Extension)技术通过修改系统中不同进程的虚拟地址,避免在进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。通常FCSE位于CPU和MMU之间,其责任就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在上下文切换时无须重建TLB等。
相信通过对ARM处理器架构的简单介绍,读者可以对ARM处理器有大体地了解,如果要继续深化研究,可以到ARM公司的网站去下载对于每个体系结构的详细技术说明文档。对于MMU部分更为详细的介绍,推荐参考《ARM体系结构与编程》(杜春雷编著)一书。接下来介绍一下运行在ARM处理器之上的几种常用的嵌入式软件操作系统。

抱歉!评论已关闭.