ARM存储器结构
- 格式:ppt
- 大小:400.00 KB
- 文档页数:71


arm常用的名词解释
ARM(Advanced RISC Machine)是一种常用的计算机架构,被广泛应用于移动设备、嵌入式系统和单片机等领域。本文将对ARM常用的一些名词进行解释,以帮助读者更好地了解ARM架构。
1. RISC(Reduced Instruction Set Computer):精简指令集计算机。相对于复杂指令集计算机(CISC),RISC采用简化指令集,每条指令都非常简单,执行速度快,并且易于设计和优化硬件。
2. 架构:计算机系统的基本设计和组织原则。ARM架构设计了一套标准的指令集和寄存器组织,以及与之兼容的处理器核心,为ARM生态系统提供了一致的编程接口。
3. 处理器核心(Processor Core):ARM的核心部分,负责执行指令和进行算术逻辑运算。常见的ARM处理器核心包括Cortex-A系列(用于应用处理器)、Cortex-M系列(用于嵌入式系统和微控制器)和Cortex-R系列(用于实时应用和嵌入式处理器)。
4. 指令集架构(Instruction Set Architecture):定义了一套计算机指令的规范和编码方式。ARM指令集架构包括ARMv8-A、ARMv7-A、ARMv6-M等不同的版本,不同版本支持不同的指令集和功能。
5. 寄存器:位于处理器核心内部的高速存储器,用于存储指令执行过程中需要操作的数据。ARM体系结构中,常见的寄存器包括通用寄存器、程序计数器、状态寄存器等。
6. 多核处理器(Multi-core Processor):使用多个处理器核心的处理器。ARM架构支持多核处理器的设计,使得多个核心可以同时进行计算任务,提高处理能力和并行性能。 7. SoC(System on a Chip):一种集成了多个功能组件的芯片,包括处理器核心、内存控制器、I/O接口等。ARM架构广泛应用于SoC的设计,提供了高度集成的解决方案,节省了系统板块的空间和功耗。
ARM存储器:片内Flash、片内静态RAM、片外存储器
映射确实是一一对应的意思。重映射确实是从头分派这种一一对应的关系。
我们可以把存储器看成一个具有输出和输入口的黑盒子。输入量是地址,输出的是对应地址上存储的数据。当然这个黑盒子是由很复杂的半导体电路实现的,具体的实现的方式我们现在不管。存储单位一般是字节。这样,每个字节的存储单元对应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对应的存储单元上存储的数据就会出现在数据总线上面。
普通的单片机把可执行代码和数据存放到存储器中。单片机中的CPU从储器中取指令代码和数据。其中存储器中每个物理存储单元与其地址是一一对应而且是不可变的,。
而ARM比较复杂,ARM芯片与普通单片机在存储器地址方面的不同在于:ARM芯片中有些物理存储单元的地址可以根据设置变换。就是说一个物理存储单元现在对应一个地址,经过设置以后,这个存储单元就对应了另外一个地址了(这就是后面要说的重新映射)。例如将0x00000000地址上的存储单元映射到新的地址0x00000007上。CPU存取0x00000007就是存取0x00000000上的物理存储单元。(随便举的例子为了说明道理,没有实际意义)
存储器重新映射(Memory Re-Map)
存储器重新映射是将复位后用户可见的存储器中部分区域,再次映射到其他的地址上。
存储器重新映射包括两个方面:1、Boot Block重新映射(关于Boot Block的相关内容看我博客中的另一篇文章)。2、异常(中断)向量重新映射
Boot Block重新映射:本来Boot Block在片内Flash的最高8KB,但是为了与将来期间相兼容,生产商为了产品的升级换代,在新型芯片中增加内部Flash容量时,不至于因为位于Flash高端的Boot Block的地址发生了变化而改写其代码,整个Boot Block都要被重新映射到内部存储器空间的顶部,即片内RAM的最高8KB。(地址为:0x7FFFE000~0x7FFFFFFF)
深圳市微迪软件技术有限公司
MicroDevice's Software Tech.Co.,Ltd
ARM体系中存储系统
1. ARM体系中的存储空间
ARM体系使用单一的平板地址空间.该地址空间的大小为232个8位字节.这些字节单元的地址是一个无符号的32位数值,起取值范围为0到232-1.
32位情况:
ARM的地址空间也可以看作是230个32位的字单元.这些字单元的地址可以被4整除,也就是说该地址的低两位为0b00.地址为A的字数据包括地址为A,A+1,A+2,A+3 4个字节单元的内容.
16位情况:
在ARM版本4及以上的版本中,ARM的地址空间也可以看作是231个16位的半字单元.这些半字单元的地址可以被2整除,也就是说该地址的最低位为0b0.地址为A的半字数据包括地址为A,A+1两个字节单元的内容.
地址取模:
各存储单元的地址作为32位的无符号数,可以进行常规的整数运算.这些运算的结果进行232取模.也就是说,运算结果发生上溢出和下溢出是,地址将会发生绕圈.
2. ARM存储器格式
在ARM体系中,每个字单元中包含4各字节单元或者两个半字单元;1各半字单元中包含两个字节单元.但是在字单元中,4各字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式:big-endian格式和little-endian格式.
在big-endian格式中,对于地址位A的字单元包括字节单元A,A+1,A+2,A+3,其中字节单元有高位到低位字节顺序为A,A+1,A+2,A+3;地址为A的字单元包括半字单元A,A+2,其中半字单元有高位到低位字节顺序位A,A+2;地址为A的半字单元包括字节单元A,A+1,其中字节单元有高位到低位字节顺序为A,A+1.这种存储格式如图1.1所示.
ARM 嵌入式系统的存储器初始化介绍
在 ARM 嵌入式系统中,由于硬件模块的高度可配置性,软件设置就需
要进行初始化来应对硬件配置的改变。所以在正式运行开发者设计好的程序
前,需要运行初始化代码来进行初始化,本文就将针对存储器系统的初始化
进行介绍。
初始化存储器系统
主要是对系统存储器控制器(MMU)的初始化。由于存储器控制器并不是
ARM 架构的一部分,不同芯片的实现方式各不相同。由于运算能力和寻址能
力的强大,基于 ARM 内核的微处理器系统,一般都需要外扩展各种类型的
存储器。对于存储器系统的初始化一般包括如下几个方面:
--存储器类型、时序和总线宽度的配置
--存储器地址的配置
(1)存储器类型
基于 ARM 微处理系统的存储器一般有如下几类:SARM、DRAM、Flah。
同时,即使同类存储器也有访问速度上的不同。其中,SRAM 和 Flah 属于静
态存储器,可以共用存储器端口,而 DRAM 有动态刷新和地址复用等特征,
需要专门的存储器端口。
(2)时序
存储器端口的接口时序优化对系统性能影响非常大,因为系统运行的速度
瓶颈一般都存在于存储器的访问,因此希望存储器的访问尽可能快,但又要
考虑由此带来的系统稳定性问题。
(3)总线宽度
ARM 微处理器架构支持 8/16/32 位的数据总线宽度访问存储器和外设,对