第3讲_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课件)
嵌入式系统设计导论—基于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页
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课件
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课件
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架构采用了非阻塞(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
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嵌入式系统第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位)三种数据宽度对存储器及外部设备的访问。
ARM 的存储器格式
ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(2 32 字节)。
ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式,具体说明如下:
大端格式:
在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端Байду номын сангаас式:
与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。
ARM存储器结构
地址
ARM 内核
数据
Cache
CP15
MMU 或
MPU
地址
写缓冲
数据写
数据读
控制逻辑
AMBA 接口
AMBA 总线 接口
ARM 快存(Cache)结构
• 快存Cache是一种小容量,高速度的存储 器,用于处理器与主存储器之间,存放 当前被使用的主存部分内容,以减少访 问主存的等待时间
• 常用的Cache有指令和数据统一的Cache 和指令和数据分离的I-Cache与D-Cache。 新型的ARM架构处理器较多采用了 I-Cache与D-Cache的独立块存结构,如 Intel公司的SA1110处理器内含16K字节ICache和8K字节D-Cache
– 如果使用了自修改的代码 – 如果MPU或MMU 被重新编程
• 因此需要一种机制来“刷新”cache
– 当 cache 被刷新时, cache 行将被标记为无效,然后被重新使用
• 另外,数据cache可能含有‘脏数据’ ,所以 要通过分别操作将数据写回存储器
– Cache清理和刷新由CP15指令来实现
memory
FF..FF16 00..0016
分离Cache的结构示意图
copies of instruc tions
addres s
FF..FF16
cache addres s
instruc tions
instruc tions
instruc tions
registers
processor
addres s
锁操作
• 循环法对Cache中代码或数据不分常用还是非 常用的,都一样地参与循环淘汰,很明显该淘 汰替代算法的效率不及LRU法。为了弥补次不 足,ARM架构中许多高性能处理器核采用了锁 操作。
ARM存储器寄存器体系结构介绍
一、ARM7的体系结构(一)每种单片机的区别在于内核前段时间学习的以51为核的单片机,现在正在学习ARM9,实际上是以ARM处理器为核的单片机,51为核的单片机就是把中央处理器,存储器,输入输出设备集成在一个芯片内的芯片,ARM处理器为核的单片机就是把ARM处理器,存储器,输入输出设备集成在一个芯片内的芯片。
对于ARM处理器来说,对外围的操作都是对外围设备的寄存器的操作,也就是对地址的操作。
(外围设备如串口,定时器等等,他们也有相应的寄存器)。
但是ARM处理器里面有37个32位寄存器,31个通用寄存器,6个状态寄存器,这些寄存器都是不能同时被访问的,具体那些寄存器是可编程访问的,取决于微处理器的工作状态和运行模式。
但在任何时候,通用寄存器R0--R14、程序计数器PC、一个或两个状态寄存器都是可以访问的。
ARM处理器都是一样的,只是生产厂家不同而有了像S3C2440这样的单片机等等,实际上这些都是在以ARM处理器外增加了许多外围而形成了单片机,然后在加些外围成了开发板。
(二)ARM处理器的存储结构1.有两种存储方式,大端和小端2.在使用一个单片机之前一定要搞清楚此单片机的存储格式3.每个存储单元为一个字节,且都有一个地址,对于32位机来说,数据或代码有32位的,那么一个数据就需要四个单元来存,就涉及到顺序问题,也就是大端方式存和小端方式。
4.对字,半字,字节操作(如图)5.与51核单片机不同,ARM处理器的指令代码字节数是相同的,在Tumb指令集中,所有的指令代码都是16位2字节代码,在ARM指令集中,所有的指令代码都是32位4字节代码。
6.ARM处理器有多种模式,而51只有一种模式,可以访问全部资源。
(三)ARM处理器内部寄存器1.为了使用方便,常常赋予寄存器专用的助记符,也就是寄存器的名称,如下图:2.关于寄存器R13、R14、R15R13作为堆栈指针,和51系列单片机中的SP一样。
如果程序发生异常中断时,中断服务程序要把保护的寄存器值堆栈到R13指向的堆栈入口,在退出中断服务时,再把堆栈中的数据弹出来。
ARM系统原理课件ppt 第3章 ARM体系结构
ARM9
SecurCore
ARM9E
ARM926EJ-S ARM946E-S ARM966E-S ARM968E-S ARM1020E ARM1022E ARM1026EJ-S
Strong ARM Xscale
ARM10E
22
ARM7内核
ARM7TDMI
ARM7TDMI-S
ARM7EJ-S ARM720T
管理
R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13_ svc R14_ svc R15 (PC)
终止 R0 R1 _ abt R14_ abt R15 (PC)
IRQ R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13_ irq R14_ irq R15 (PC)
第3章 ARM体系结构
第3章 ARM体系结构
3.1 ARM微处理器基础 3.2 ARM的内核系列 3.3 ARM微处理器的指令系统 3.4 ARM内存管理单元
2
3.1 ARM微处理器基础
ARM的运行模式 ARM的工作状态 ARM的寄存器组织 ARM的异常 ARM的存储器格式 ARM的特点和优势
11
ARM的异常
异常类型 复位 (Reset) 未定义指令 (Undefined) 软件中断 (SWI) 指令预取终止 (Prefetch Abort) 数据终止 (Data Abort) 外部中断请求 (IRQ) 快速中断请求 (FIQ) 具体含义 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常 处理程序处执行。 当ARM 处理器或协处理器遇到不能处理的指令时,产生未定义指令 异常。可使用该异常机制进行软件仿真。 该异常由执行SWI 指令产生,可用于用户模式下的程序调用特权操 作指令。可使用该异常机制实现系统功能调用。 若处理器预取指令的地址不存在,或该地址不允许当前指令访问, 存储器会向处理器发出终止信号,但当预取的指令被执行时,才会 产生指令预取终止异常。 若处理器数据访问指令的地址不存在,或该地址不允许当前指令访 问时,产生数据终止异常。 当处理器的外部中断请求引脚有效,且CPSR 中的I 位为0 时,产生 IRQ 异常。系统的外设可通过该异常请求中断服务。 当处理器的快速中断请求引脚有效,且CPSR 中的F 位为0 时,产生 FIQ 异常。
《ARM体系结构》PPT课件
RISC与CISC
CISC
博创科技 嵌入互动
开始
IF
ID
ALU MEM REG
退出
RISC
微操作通道
开始
IF
ID
REG ALU MEM
单通数据通道
© 2005 博创科技
退出
流水线操作
流水线技术:几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动
博创科技 嵌入互动
Add
取指
ARM CPU核(ARM CPU Cores):ARM710T/720T/740T, ARM920T/940T, ARM946E-S, ARM966E-S, ARM1020E等。
基于ARM Core CPU的应用处理器,比如:Intel的PXA25x,Philip的lpc22xx系列, Samsung的S3C44B0等。
© 2ห้องสมุดไป่ตู้05 博创科技
1.2 ARM处理器的使用量
博创科技 嵌入互动
© 2005 博创科技
ARM 2003
1.3 ARM处理器的特点
支持CACHE和MMU CACHE的冯·诺依曼体系结构/哈佛体系结构 RISC指令集
固定的32位指令 Load/Store体系结构 大多数指令单周期完成 流水线执行 Thumb\DSP\jazeller功能扩展 低功耗
Sub Cmp
时间
译码 取指
执行add 译码 取指
执行sub 译码
执行cmp
© 2005 博创科技
1.4 命名的含义
博创科技 嵌入互动
标志 T
D M I E J S
含义 支持Thumb指令集
片上调试 支持长乘法 Embedded ICE DSP指令 Java加速器Jazelle
arm体系结构介绍PPT
Memory size 0: Cache size (4-128KB) 2: Reduced cache size 6: TCM
Synthesizable
ARM9TDMI采用5级流水线,其结构图如下图所示,具有分开 的指令和数据存储器,5级流水线具体如下。
(1)取指:从存储器中取出指令,并将其放入指令流水线。 (2)译码:对指令进行译码。 (3)执行:把一个操作数移位,产生ALU的结果。 (4)缓冲/数据:如果需要,则访问数据存储器;否则ALU的 结果只是简单地缓冲1个时钟周期,以便所有的指令具有同样的流 水线流程。 (5)回写:将指令产生的结果回写到寄存器,包括任何从存储 器中读取的数据。
第2章 ARM9体系结构
2.1 ARM9嵌入式微处理器 2.2 ARM9存储器组织结构 2.3 ARM9异常 2.4 S3C2410嵌入式微处理器
1
2.1 ARM9嵌入式微处理器
2.1.1 ARM9的结构特点 2.1.2 ARM9指令集特点 2.1.3 ARM9工作模式
2
2.1.1 ARM9的结构特点
ARM9采用了五级流水线,而ARM7采用的是三级流水线,ARM9增 加的流水线设计提高了时钟频率和并行处理能力。五级流水线能够将各 条指令处理分配到5个时钟周期内,在每个时钟周期内同时有5条指令在 执行。在同样的加工工艺下,ARM9 TDMI处理器的时钟频率是ARM7 TDMI的2倍左右。 (2)指令周期的改进
2021/3/7
3
ARM 体系结构的演变发展
version
ARM1136J(F) V6
简述arm微处理器的存储器组织方式 -回复
简述arm微处理器的存储器组织方式-回复ARM微处理器的存储器组织方式【引言】随着计算机技术的迅猛发展,微处理器成为现代计算机的核心部件之一。
而ARM(Advanced RISC Machine)微处理器则是一种广泛应用于各种移动设备和嵌入式系统的微处理器架构。
存储器是微处理器中至关重要的组成部分,它承担着存储和取回程序和数据的任务。
在本文中,我们将简要介绍ARM微处理器的存储器组织方式。
【1. 存储器类型】ARM微处理器采用的存储器组织方式分为多个级别,每个级别都有其特定的功能和特点。
ARM微处理器主要包括下列几种存储器类型:- 寄存器:寄存器是位于CPU内部的高速存储器,用于存储和操作数据。
ARM微处理器通常拥有多个通用寄存器,特定目的寄存器和状态寄存器,用于不同的数据操作和系统控制。
- 高速缓存:高速缓存是位于CPU核心和主存之间的中间存储器,用于加速主存的数据读取和写入。
ARM微处理器通常包括多级高速缓存,如一级指令缓存和数据缓存、二级缓存等,其容量和速度逐级递减。
- 主存储器:主存储器是微处理器中最大容量的存储器,用于存储程序和数据。
ARM微处理器支持多种主存类型,如静态RAM(SRAM)、动态RAM(DRAM)等,其容量可以从几兆字节到几个千兆字节不等。
【2. 存储器层次结构】ARM微处理器的存储器组织方式采用存储器层次结构,以便提高存储器的访问效率和性能。
存储器层次结构由多级存储器组成,每级存储器的容量和速度都不同,分别用于存储不同级别的数据。
ARM微处理器的存储器层次结构通常包括以下几个层次:- 第一级缓存(L1 Cache):一级缓存是位于CPU核心和主存之间的最接近CPU的高速缓存。
它通常分为一级指令缓存(L1 I-Cache)和一级数据缓存(L1 D-Cache),分别用于存储指令和数据。
一级缓存的容量较小,但速度非常快,可以迅速地响应CPU的读写请求。
- 第二级缓存(L2 Cache):二级缓存是位于一级缓存和主存之间的中间缓存,其容量比一级缓存大,速度相对较慢。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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