第3讲_ARM 存储器结构

合集下载

ARM存储器结构

ARM存储器结构

ARM存储器结构ARM存储器:片内Flash、片内静态RAM、片外存储器映射就是一一对应的意思。

重映射就是重新分配这种一一对应的关系。

我们可以把存储器看成一个具有输出和输入口的黑盒子。

输入量是地址,输出的是对应地址上存储的数据。

当然这个黑盒子是由很复杂的半导体电路实现的,具体的实现的方式我们现在不管。

存储单位一般是字节。

这样,每个字节的存储单元对应一个地址,当一个合法地址从存储器的地址总线输入后,该地址对应的存储单元上存储的数据就会出现在数据总线上面。

普通的单片机把可执行代码和数据存放到存储器中。

单片机中的CPU从储器中取指令代码和数据。

其中存储器中每个物理存储单元与其地址是一一对应而且是不可变的,UGG boots。

而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。

ARM体系结构详解(我上课时老师的100多页PPT课件)

ARM体系结构详解(我上课时老师的100多页PPT课件)

嵌入式系统设计导论—基于32位微处理器与实时操作系统第三讲 ARM嵌入式微处理器体系结构北京航空航天大学机器人研究所魏洪兴本节提要1ARM编程模型ARM 异常处理嵌入式处理器概述l嵌入式微处理器是嵌入式系统的核心。

目前32位嵌入式微处理器是市场的主流。

l32位嵌入式微处理器市场,我们可以发现超过100家的芯片供应商和近30种指令体系结构。

l在1996年以前,最成功的嵌入式微处理器是Motorola公司的68000系列。

此外嵌入式微处理器市场还包括其它体系结构,如Intel公司的I960,Motorola公司的Coldfire,Sun公司的Sparc,以及嵌入式X86系列平台。

l当然,最引人注目的还是ARM公司的ARM系列、MIPS公司的MIPS系列,以及Hitachi公司的SuperH系列(其中ARM和MIPS 都知识产权公司,把他们的微处理器IP技术授权给半导体厂商,由他们生产形态各异的微处理器芯片)。

l功耗。

一般的嵌入式微处理器都有三种运行模式:运行模式(operational);待机模式(standby or power down);停机模式(and clock-off)。

功耗的评测指标是MIPS/W;l代码存储密度。

传统的CISC指令集计算机具有较好的代码存储密度。

而RICS指令集计算机由于要求指令编码长度固定,虽然可以简化和加速指令译码过程,但为了实现与CISC指令集计算机相同的作业,往往需要更多的指令来完成,从而增加了代码长度。

如Hitachi的SuperH体系结构采用了定长的16位指令,对每条指令按16位的格式存储。

ARM则采用16位扩展的Thumb指令集,片内的逻辑译码器将其等价为32位的ARM指令而实时解码。

而MIPS则采用MIPS16方法来解决这个问题。

(影响代码密度的另外一个主要因素是所采用的C编译器。

ANSI C是当前嵌入式领域的标准编程语言,随着嵌入式微处理器性能的提高,面向对象的语言也将被采用并会逐渐成为主流,一些编译器供应商已经开始着手解决代码密度问题。

ARM体系结构与结构---第三章-PPT文档资料161页

ARM体系结构与结构---第三章-PPT文档资料161页

MVN R2,#0
;将-1放入R2
3.2 指令集介绍
• ARM指令集——ARM数据处理指令
数据处理指令大致可分为4类:
数据传送指令: MOV MVN;
算术运算指令: ADD ADC SUB SBC RSB RSC;
逻辑运算指令: AND ORR EOR BIC;
比较指令:
CMP CMN TST TEQ。
• ARM数据处理指令——数据传送 MOV指令格式如下:
MOV{cond}{S} Rd,operand2; Rd←operand2
MOV 指 令 将 立 即 数 ( 合 法 ) 或 寄 存 器 传 送 到 目 标 寄 存 器 (Rd),可用于移位运算等操作。
MOV指令举例如下:
MOV R1, #0x10
负数比较指令——CMN指令使用寄存器Rn的值加上operand2 的值,根据操作的结果更新CPSR中的相应条件标志位,以便后 面的指令根据相应的条件标志来判断是否执行。
数据处理指令只能对寄存器的内容进行操作,而不能对 内存中的数据进行操作。数据处理指令中除比较指令外均可选择 使用S后缀,并影响状态标志。
ADD(addition加)指令格式如下: ADD{cond}{S} Rd,Rn,operand2 ;
Rd←Rn+operand2
加法运算指令——ADD将operand2的值与Rn的值相 加,结果保存到Rd寄存器, operand2 为立即数时, 必须为合法立即数。 应用示例: ADDS R1,R1,#1 ;R1=R1+1,并影响标志位 ADD R1,R1,R2 ;R1=R1+R2
• ARM指令集——ARM数据处理指令
数据处理指令大致可分为4类:

嵌入式系统技术--ARM体系结构介绍 ppt课件

嵌入式系统技术--ARM体系结构介绍  ppt课件



T: D: M: I:
支持16位压缩指令集Thumb; 支持片上Debug; 内嵌硬件乘法器(Multiplier); 嵌入式ICE,支持片上断点和调试点;
ppt课件
11
流水线
流水线是指在一个指令周期内处理器进行多种 行为的处理,以增加处理器指令流的速度。
如三级流水级,就一个指令周期内有三种行为 发生,取指译码执行。这三种行为同时发 生,每种行为都对应一条指令的执行过程的某 个环节,而不是三种行为对应一条指令的执行 过程。比如译码行为针对的是上一个指令的译 码 PC指针指向的是取指的指令。



- 支持DSP指令集,适合于需要高速数字信号处理的场合。 - 支持VFP9浮点处理协处理器。 - 主频最高可达300MIPS。

ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和 ppt课件 ARM966E-S三种类型,以适用于不同的应用场合。
14
ARM10E和SecurCore微处理器系列

ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型, 以适用于不同的应用场合。ppt课件 13ARM9E微处理器系列


ARM9E系列微处理器使用单一的处理器内核提供了微控制器、 DSP、Java应用系统的解决方案,减少了芯片的面积和系统 的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能 力,适合于需要同时使用DSP和微控制器的应用场合。 ARM9E系列除具有ARM9处理器的特点外还有如下特点:

ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、 ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使 用最广泛的32位嵌入式RISC处理器,属低端 ARM处理器核。 10 ppt课件

ARM体系架构解析ppt课件

ARM体系架构解析ppt课件
1)程序存储器与数据存储器分开.
2)提供了较大的存储器带宽,各自有自己的
总线。
3)适合于数字信号处理.
4)大多数DSP都是哈佛结构.
5)ARM9是哈佛结构
6)取指和取数在同一周期进行,提高速度,
改进哈佛体系结构分成三个存储区:程序、数据、
程序和数据共用。
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
6)将结果回写到寄存器组(res)
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
流水线技术

三级流水线技术
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
因此,把它称为流水线工作方式。
处理器按照一系列步骤来执行每一条指令。典
型的步骤为:
1)从存储器读取指令(fetch)
2)译码以鉴别它是哪一类指令(dec)
3)从寄存器组取得所需的操作数(reg)
4)将操作数进行组合以得到结果或存储器地址(exe)
5)如果需要,则访问存储器存取数据(mem)
冯·诺依曼体系的特点
1)数据与指令都存储在同一存储区中,取指
令与取数据利用同一数据总线。
❖ 2)被早期大多数计算机所采用
❖ 3)ARM7——冯诺依曼体系

结构简单,但速度较慢。取指不能同时取数据
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用

ARM存储器结构

ARM存储器结构

ARM架构采用了非阻塞(nonblocking) Cache技术。Cache在失效时,仍然允许处理器 进行其他命中的访问。这种“失效下命中” (hit under miss)不是完全拒绝处理器的访 问,而是能处理部分访问,从而减少了实际的 Cache失效开销。 此外,还可以采用“让读失效优于写”和 二级Cache技术来减少Cache失效开销
图2-28 第一级描述符
3.段寻址(Section addressing)
31 20 19 0
virtual address
table index
section in dex
CP15 register 2
31
a) 随机法
从Cache中的各行中随机选取一行进行淘 汰,可选择一随机事件作为替换的依据,如可 用系统实时时钟的低几位。
b) 近期最少使用LRU法
Cache控制器设置访问标识,以记录数据 在某一段时间内被访问的次数,当需要淘汰时, 则淘汰近期最少使用的那一行。
c) 循环法
此方法类似于先进先出FIFO法,Cache 控 制器设置特殊的时间标识,以记录数据在 Cache中存放时间,当需要淘汰时,则淘汰进 入Cache时间最长的那一行。 循环法结构简单,速度快,ARM架构的处 理器大多采用该淘汰算法。
I-Cache和 D-Cache
2.5
161电影网整理发布
1. Cache的分类和结构 常用的Cache有两类:指令和数据统一的 Cache;以及指令和数据分离的I-Cache与DCache。新型的ARM架构处理器较多采用了ICache与D-Cache的独立块存结构,如Intel公 司的SA1110处理器内含16K字节I-Cache和8K字 节D-Cache。

嵌入式系统基础-第3章--ARM体系结构-PPT

嵌入式系统基础-第3章--ARM体系结构-PPT

N
N=1表示运算的结果为负数;N=0表示运算的结果为正
数或零
共页
41
标志位
含义
Z
Z=1表示运算的结果为零;Z=0表示运算的结果为非
零。
C
当运算结果产生了进位时(无符号数溢出),C=1;
否则C=0
V
V=1表示有溢出;V=0表示无溢出
Q
在ARM v5及以上版本的E系列处理器中,用Q标志位
指示增强的DSP运算指令是否发生了溢出。在其他版
将上图中的CPU部分叫做处理器核。
把处理器核与其通用功能模块的组 合叫做处理器。
共页
11
把在处理器基础上经芯片厂商二次开 发,以芯片形式提供的用于嵌入式系统的 产品叫做嵌入式处理器。
IP商提供的是处理器核和处理器的知 识产权,而半导体芯片生产厂商生产的则 是嵌入式处理器芯片。
世界上知名的IP商当属ARM公司和 MIPS公司。
共页
3
3.1.1 SoC与嵌入式处理器 计算机SoC的概念如下图所示:
共页
4
计算机的这种单片系统特别适合于嵌 入式应用,所以这种SoC也叫做嵌入式处 理器。
3.1.2 嵌入式处理器的研发和生产方式
宿主对象的多样化,势必决定了嵌 入式系统的多样化、个性化。
1、在SoC技术出现之前
共页
5
CPU和与其配合的接口及功能模块都 是单独的芯片。 2、在SoC技术出现之后
37
3、程序计数器R15(PC)
在ARM中,基本寄存器R15固定地作为 程序计数器来使用。为了提高程序的可读 性,也通常使用PC来标识。
4、程序状态寄存器PSR
基本寄存器R16专门用作程序状态寄 存器。同样为了提高程序的可读性,在程 序中用PSR来标识他。

ARM体系结构详解精

ARM体系结构详解精

ARM嵌入式系统第2章ARM体系结构ARM微处理器的编程模型♦ARM徴处理器的工作状态♦ARM体系结构的存储器格式♦ARM体系结构的指令长度及数据宽度♦ARM微处理器的处理器模式♦ARM体系结构的寄存器组织♦ARM微处理器的异常状态字、半字、字节字(Word)在ARM体系结构中,字的长度为32位半字(Half-Word)在ARM体系结构中,半字的长度为16位字节(Byg)在ARM体系结构中,字节的长度为8位。

ARM微处理器的工作状态(1)字对齐:四字节对齐半字对齐:两字节对齐两种状态:♦ARM状态:处理器执行32位的字对齐的令♦Thumb状态:处理器执行16位的、半字对齐的Thumb指令处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。

I ARM微处理器的工作状态(2 )状态切换:BX {<cond>} <Rm><cond>指令的条件码。

忽略时无条件执行。

<Rm>子存器中为跳转的目标地址,当<Rm><存器的bit[O]为0时, 目标地址处的指令为ARM指令;当<Rm>^存器的bit[O]为1时,目标地址处的指令为Thumb 指令。

伪代码:if ConditionPassed(cond) thenT Flag=Rm[O]PC=Rm AND OxFFFFFFFEARM微处理器在复位或上电时处于ARM状态,发生异常时处于ARM状态。

右ARM体系结构的存储器格式(1)ARM体系结构所支持的最大寻址空间为4GB (2^字节)♦大端格式(Big Endian)字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。

♦小端格式(Little Endian)低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。

字地址字地址右ARM 体系结构的存储器格式(2)(0H)=0123H (4H)=4567H (8H)=89ABHBig Endian(0H)=3210H (4H)=7654H (8H)=BA98HLittle Endian右ARM 体系结构的存储器格式(3)8 9 AB4 5 6 7 0123一 “A ・■ • rO= 0x11223344 I 11 I 22 33 : 44 ILittle endian Big endianR2 =异FI*右 ARM 体系结构的指令长度及数据宽度♦指令长度:32位(在ARM 状态下) 16位(在Thumb 状态下)♦数据宽度: 字节(8位) 半字(16位) 字(32位)三种数据宽度对存储器及外部设备的访问。

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

成都信息工程学院3+1 创新实验班 - 2012/6/25
1 存储器映射

存储器映射(存储器地址分布)是指把芯片中或芯 片外的FLASH,RAM,外设,BOOT BLOCK等进 行统一编址。 地址空间
外设 片外存储器
外部存储器
0xFFFFFFFF
0x80000000
Boot Block
0x7FFFE000
如果试图访问 一个保留地址 或未分配区域 的地址,ARM 处理器将产生 预取指中止或 数据中止异常。
0x82000000 Bank1:0x8100 0000~0x81FF FFFF Bank0:0x8000 0000~0x80FF FFFF
0x80000000 0x7FFFFFFF 0x7FFFE03F 0x7FFFE000 0x7FFFDFFF
留给用户 进行电路3 . 0 G B 扩展的地 址空间

保留给片外存储器
芯片 复位 后用 户看 见的 地址 空间
2.0GB
网络 0x83400000~0x8340001F Bank3 LCD 0x83000000~0x83400002 外设PACK Bank2 片外存储器 Bank1 Bank0
0xC0000000
0 0
FIQ_Addr
DCD
FIQ_Handler
成都信息工程学院3+1 创新实验班 - 2012/6/25

位于启动代码中的异常向量表
异常向量表
CODE32 AREA vectors,CODE,READONLY ResetAddr PC, ResetAddr PC, UndefinedAddr
注意:异常向量表中程序跳 转使用LDR指令,而没有使 用B指令。 原因: 1.LDR指令可以全地址范围跳 转,而B指令只能在前后 32MB范围内跳转; 2.芯片具有Remap功能。当向 量表位于内部RAM或外部存 储器中,用B指令不能跳转到 正确的位置。
创新实验班 - 2012/6/25

异常向量表
各异常向量的固定位臵
地址 异常 0x0000 0000 复位 0x0000 0004 未定义指令 该位臵被Boot装载程序用作有效用户程序的检测标志。通 0x0000 0008 软件中断 过定义此保留值,使向量表所有数据32位累加和为0,芯片 复位后才能脱机运行用户程序。 0x0000 000C 预取指中止(从存储器取指出错) 0x0000 0010 数据中止(访问存储器数据出错) 0x0000 0014 保留 * 0x0000 0018 IRQ 0x0000 001C FIQ
. . .
复位入口 指令未定义中止入口 软件中断入口 预取指中止入口 取数据中止入口 ...
成都信息工程学院3+1 创新实验班 - 2012/6/25

存储器映射控制的必要性
复位后用户看 见的地址空间 0xFFFFFFFF AHB外设 VPB外设 0xE0000000 片外存储器 0x80000000 BootBlock SRAM Flash
异常向量表
AREA vectors,CODE,READONLY ENTRY Reset LDR LDR LDR LDR LDR PC, ResetAddr PC, UndefinedAddr PC,
可能存在的 SWI_Addr 程序存储器
PC, PrefetchAddr PC, DataAbortAddr
Boot Block
保留给片内存储器(未用)
1.0GB
16KB片 内 SARM
保留给片内存储器(未用)
0x40004000 0x40003FFF 0x4000003F 0x40000000
通过CS0(P1.0)、 CS1(P3.26)选择片 外扩展的16M NOR Flash和4M SRAM到 底映射在Bank0还 是Bank1
L E C T U R E
3
存储器与启动代码
陈子为
成都信息工程学院3+1 创新实验班 - 2012/6/25
对本部分的要求




掌握存储器配置(映射与重映射)的方法 掌握外部存储器的控制方法 了解ARM的分散加载技术,能够看懂和修改 分散加载描述文件 对存储器加速部分,不要求搞清楚原理,但 要知道在什么情况下使用存储器加速模块, 怎样使用存储器加速模块
Boot Block SRAM SRAM
0x80000000
Flash Flash
地址空间
成都信息工程学院3+1 创新实验班 - 2012/6/25



什么是存储器重映射,为什么要重映射?
成都信息工程学院3+1 创新实验班 - 2012/6/25
2 存储器重映射(映射控制器)

存储器重映射Remap
VPB 外设#1
VPB 外设#0 地址空间
成都信息工程学院3+1 创新实验班 - 2012/6/25
启动块(Boot Block)
•启动块(Boot程序)是芯片生产厂家固化在芯片中的 一段代码,包括ISP、IAP和Real Monitor程序。
•它完成芯片复位后的初始化操作,并提供实现Flash编 程的方法。Boot装载程序可启动对空片的编程、已编程 器件的擦除和再编程,以及在运行的系统中由应用程 序对Flash存储器进行编程。
成都信息工程学院3+1 创新实验班 - 2012/6/25

位于启动代码中的异常向量表
异常向量表
CODE32 AREA ENTRY Reset LDR LDR PC, ResetAddr PC, UndefinedAddr vectors,CODE,READONLY
前32字节为异常入口
. . . DCD LDR LDR 0xb9205f80 PC, [PC, #-0xff0] PC, FIQ_Addr

芯片内部框图
ARM7 局部总线 SRAM Flash AHB To VPB 桥 ARM7TDMI-S CPU 系统功能
LPC2000系列微控制器包含四 大部分: ARM7TDMI-S CPU ARM7局部总线及相关部件 AHB高性能总线及相关部件 VLSI外设总线及相关部件
AHB总线
VIC EMC
保留
均为128×16KB (2MB)范围
0xE01FFFFF
3.5GB+2MB
VPB 外设 3.5GB 地址空间
0xE0000000
AHB(先进的高性能总线)和VPB(VLSI外设总线)外 设区域都为2M字节,可各分配128个外设。每个外设空间的 规格都为16K字节,这样就简化了每个外设的地址译码。 注意:AHB和VPB外设区域中不管是字还是半字,都是一次 性访问。例如不可能对一个字寄存器的最高字节执行单独的读 成都信息工程学院3+1 创新实验班 - 2012/6/25 或写操作

Boot Block的映射地址安排
为了兼容将来的器件,整个Boot Block被映 射到片内存储器空间的顶端。所以将来的芯片内 臵不同的RAM和FALSH都不会影响Boot Block的 位臵。
AHB & VPB
映射位臵固定在 内部存储器顶端 RAM和Flash 的变化不会影响 BootBlock的位臵
0 0
FIQ_Addr
DCD
FIQ_Handler
成都信息工程学院3+1 创新实验班 - 2012/6/25

存储器映射控制的必要性
当发生异常时,程序总是跳转到地址为0x0000~ 0x003F的对应入口处,在该地址范围内存储有异常向 量表。 异常向量表
AREA vectors,CODE,READONLY ENTRY Reset LDR LDR LDR LDR LDR PC, ResetAddr PC, UndefinedAddr PC, SWI_Addr PC, PrefetchAddr PC, DataAbortAddr
地址空间
成都信息工程学院3+1 创新实验班 - 2012/6/25

VPB外设映射
系统控制模块 VPB外设#127 0xE01FC000 … UART 0 定时器1 VPB 外设#3 VPB 外设#2
0xE000C000 0xE0008000 0xE0004000 0xE0000000
定时器0 看门狗定时器
片内存储器
内部SRAM
0x40000000
内部Flash
0x00000000
成都信息工程学院3+1 创新实验班 - 2012/6/25
4.0GB 3.75GB 3.5GB
AHB外 设 保留 保留 VPB外 设
0xFFFFFFFF 0xFFE0FFFF 0xF0000000 0xE01FFFFF 0xE0000000
外部中断
TIMER0/1 ADC 通用I/O PWM0
I2C串行接口
SPI串行接口 UART0 & 1 CAN 看门狗定时器
实时时钟
系统控制
成都信息工程学院3+1 创新实验班 - 2012/HB 外设#127 向量中断控制器 AHB 外设#126 AHB 外设#125 … AHB 外设#1 AHB 外设#0 0xFFE04000 0xFFE00000 0xFFFFF000 0xFFFFC000 0xFFFF8000 0xFFFF4000
“存储器映射控制”用于控制地址范围为 0x0000~0x003F存储区域的重新映射。该区域存 放着异常向量表。 存储器重新映射是将复位后用户所见的存储器 中部分区域,再次映射到其它的地址上。 对于Philips的LPC系列ARM微控制器,存储器 重新映射区域一共为64字节,分别为异常向量区 (32字节)和紧随其后的32字节。存储器重新映射 的方法允许在不同模式下处理中断,重新映射的存 储器区域在地址0x00000000~0x0000003F处。存储 器重新映射的控制见“存储器映射控制”小节。 成都信息工程学院3+1
相关文档
最新文档