ARM体系结构

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

ARM体系结构
嵌入式事业部 高军
ARM体系结构
1

主要内容
* * * * ARM介绍 ARM指令集(v4T) ARMv5E指令集扩展 指令集比较:ARM/Thumb/Thumb-2
ARM体系结构
2

ARM介绍
ARM体系结构
3

关于ARM
* 全称:Advanced Risc Machines Ltd. * 主要为国际上其他著名的电子公司提供高性能RISC处理器、外设和系 统芯片技术授权. * 主要收入是收取软件/硬件的技术授权费. * 在1983~1985年,由Acorn公司设计了ARM的初期版本 • 据说5个人,18个月就设计了ARM的第一个版本 – Herman Hauser,项目经理 – Steve Furber,体系结构设计 – Sophie Wilson,指令集设计 – Robert Heaton,硅片设计 – Jamie Urquhart,硅片设计 * 现在的ARM公司成立于1990年,由Acorn,Apple,VLSI三家公司共同组建, 总部位于英国剑桥. • 1993年日本立邦财团投资ARM,成为其第四股东.
ARM体系结构
4

ARM产品
* ARM是全世界广泛使用的处理器之一 * ARM以两种方式提供IP: • 宏单元(已经固定的版图,可以直接生产) • 可综合版本(-S) * ARM指令集还提供一些扩展: • Thumb指令集(16位) • Java虚拟机 – 硬件实现的虚拟机 – 60%字节码可以直接执行,其余的依赖软件仿真 * ARM还提供一些面向SoC的外围设备IP • 中断控制器(PrimeCell) • SDRAM控制器 • …
ARM体系结构
5

ARM竞争优势
* ARM在MIPS/watt(性能/功耗)方面非常突出. • 只需要很小的功耗能够提供较好的性能,在移动设备里这点非常重 要 • X86的功耗是ARM的2个数量级以上 • 龙芯的攻耗是ARM的1个数量级以上 * ARM在代码密度上也有非常好的表现. • 通过Thumb指令集(定长16位)只需要ARM指令集(定长32位)的70%代 码尺寸 – 比很多CISC指令集的代码密度还要高 • 未来还有Thumb-2指令集(ARM1156T2-S),结合了32位ARM指令和 16位Thumb指令.即获得了代码密度优势,又具有32位指令的性能 优势 – 详见ARM/Thumb/Thumb-2比较
ARM体系结构
6

ARM处理器系列(典型)
CPU ARM7TDMI ARM720T ARM920T ARM926EJ-S ARM940T ARM946E-S ARM1020E MPU/MMU 无 MMU MMU MMU MPU MPU MMU Cache 无 统一的8K 独立的16K/16K D+I 独立,cache与TCM可配置 独立的4K/4K D+I 独立,cache与TCM可配置 独立的32K/32K D+I ISA v4T v4T v4T v5TEJ v4T v5TE v5TE 典型频率/MHz 80 80 150 150 150 150 260 MIPS/MHz 0.9 0.9 1.05 1.1 1.05 1.1 1.25 mW/MHz 0.06 0.06 0.19 0.19 0.19 0.19 0.5 架构 冯.诺伊曼 冯.诺伊曼 哈佛 哈佛 哈佛 哈佛 哈佛 乘法器 8*32 8*32 8*32 8*32 8*32 8*32 16*32
* * *
mW/MHz:在相同的0.13um工艺上,不包含外围设备 MIPS:采用Dhrystone VAX MIPS测试基准 E扩展提供了增强的信号处理指令
ARM体系结构
7

ARM指令集
ARM体系结构
8

ARM指令集的主要特点
* * * * 所有指令都是32bit长度. 很多指令都是单时钟周期执行. 每条指令都能条件执行. load/store方式 • 数据处理指令只能在寄存器里执行 – 3个操作数格式 – 为了提高bit操作效率,在单个指令中结合ALU和Shifter的操作 • 特定的访问存储器指令. – 32/16/8bit 数据类型 – 灵活的批量Load/Store指令
ARM体系结构
9

处理器模式
* ARM有七种处理器模式: • User (非特权模式) • System (特权模式,和用户模式采用相同寄存器组) • FIQ (有快速中断请求产生时进入) • IRQ (有普通中断请求产生时进入) • Supervisor (在复位和软中断(SWI)时进入) • Abort (在存储器访问(取指/数据存取)异常时进入) • Undef (在执行没有定义的指令时进入) * 有特权模式和非特权模式之分: • 非特权模式的限制 – 某些指令不能使用,比如直接操控程序状态字切换模式 – 可以通过MPU/MMU设置,让其部分存储区域不能访问
ARM体系结构
10

寄存器
* ARM共有37个寄存器,所有寄存器都是32位宽. • 1个程序计数器(PC) • 1个当前程序状态寄存器(CPSR) • 5个保存程序状态寄存器(SPSR) • 30个通用寄存器 * 这些寄存器被安排在不同组里,在不同处理器模式可以分别访问不同 组的寄存器. 每种模式都可以访问以下寄存器 • r0-r12(ATPCS有定义) • r13(栈指针寄存器)和r14(链接寄存器) • r15 (程序计数器) • cpsr(当前程序状态寄存器) 还有特权模式下才能访问的 • spsr(备份程序状态寄存器)
ARM体系结构 11

寄存器排列
User / System r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 (sp) r14 (lr) r15 (pc) FIQ r0 r1 r2 r3 r4 r5 r6 r7 r8_fiq r9_fiq r10_fiq r11_fiq r12_fiq r13_fiq r14_fiq r15 (pc) Supervisor r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13_svc r14_svc r15 (pc) Abort r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13_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) Undefined r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13_undef r14_undef r15 (pc)
程序状态寄存器
cpsr cpsr sprsr_fiq spsr_fiq cpsr spsr_svc cpsr spsr_abt cpsr sprsr_fiq spsr_irq cpsr spsr_undef sprsr_fiq
ARM体系结构
12

相关文档
最新文档