三、嵌入式微处理器体系结构综述

上传人:我** 文档编号:117026532 上传时间:2019-11-18 格式:PPT 页数:128 大小:3.07MB
返回 下载 相关 举报
三、嵌入式微处理器体系结构综述_第1页
第1页 / 共128页
三、嵌入式微处理器体系结构综述_第2页
第2页 / 共128页
三、嵌入式微处理器体系结构综述_第3页
第3页 / 共128页
三、嵌入式微处理器体系结构综述_第4页
第4页 / 共128页
三、嵌入式微处理器体系结构综述_第5页
第5页 / 共128页
点击查看更多>>
资源描述

《三、嵌入式微处理器体系结构综述》由会员分享,可在线阅读,更多相关《三、嵌入式微处理器体系结构综述(128页珍藏版)》请在金锄头文库上搜索。

1、1 嵌入式系统 第三讲 ARM嵌入式微处理器体系结构 2 本节提要 1 1 3 3 2 2 5 5 4 4 6 6 ARM简介 ARM体系结构概览 ARM JTAG调试接口 ARM编程模型 ARM 指令集 S3C44B0开发平台简介 3 ARM简介 lARMAdvanced RISC Machines lARM32位RISC结构IP核提供商 4 ARM微处理器的应用领域 l工业控制领域 l无线通讯领域 l网络应用 l消费电子产品 l成像和安全产品 5 ARM微处理器系列 lARM7系列 lARM9系列 lARM9E系列 lARM10E系列 lSecurCore系列 lInter的Xscale

2、lInter的StrongARM 6 ARM微处理器的选型 lARM内核的选择 l系统的工作频率 l片内存储器的容量 l片内外围电路的选择 7 本节提要 1 1 3 3 2 2 5 5 4 4 6 6 ARM简介 ARM体系结构概览 ARM JTAG调试接口 ARM编程模型 ARM 指令集 S3C44B0开发平台简介 8 lARM即Advanced RISC Machines的缩写。 l1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公 司诞生,由美国加州San Jose VLSI技术公司制造。 l20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英 国的

3、计算机教育基础。 l1990年成立了Advanced RISC Machines Limited。 l20世纪90年代,ARM32位嵌人式RISC(Reduced Instruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性 能的嵌入式系统应用领域的领先地位。 l32位RISC处理器受到青睐,领先的是ARM嵌入式微处理器系列。 lARM公司虽然只成立10多年,但在1999年因移动电话火爆市场,其 32位RISC处理器占市场份额超过了50%,2001年初,ARM公司的32位 RISC处理器市场占有率超过了75%。ARM公司是知识产权供应商,是 设计公司。由合

4、作伙伴公司来生产各具特色的芯片。 ARM的发展历程-1 9 lARM公司商业模式的强大之处在于其价格合理,全世界范围有超过 100个合作伙伴-包括半导体工业的著名公司。ARM公司专注于设计 ,其内核耗电少、成本低、功能强,特有16/32位双指令集。ARM已 成为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的 RISC标准。 l在所有ARM处理器系列中,ARM7处理器系列应用最广,采用ARM7处 理器作为内核生产芯片的公司最多。 10 ARM的发展历程-2 l1991 - ARM 推出第一款RISC嵌入式微处理器核 ARM6 l1993 - ARM 推出 ARM7 核 l1995 ARM的

5、 Thumb扩展指令集结构为16位系统增加了32位的 性能,提供业界领先的代码密度 11 ARM处理器的3大特点如下: l小体积、低功耗、成本低、高性能; l16位/32位双指令集; l全球众多的合作伙伴。 当前ARM体系结构的扩充包括: lThumb:16位指令集,用以改善代码密度; lDSP:用于DSP应用的算术运算指令集; lJazeller:允许直接执行Java代码的扩充。 ARM处理器系列提供的解决方案包括: l在无线、消费电子和图像应用方面的开放平台; l存储、自动化、工业和网络应用的嵌入式实时系统; l智能卡和SIM卡的安全应用。 ARM处理器的特点 12 ARM 微处理器 l微

6、处理器核: ARM6, ARM7, ARM9, ARM10, ARM11 l扩展: Thumb, DSP, SIMD, Jazelle etc. l其它IP核: UART, GPIO, memory controllers, etc 13 ARM体系结构版本 - 1 lVersion 1 (obsolete) l基本数据处理 l字节,字以及多字 load/store l软件中断 l26 bit 地址总线 lVersion 2 (obsolete) lMultiply 当运行于ARM状态时 IF=Reset or FIQ then ;当响应FIQ异常时,禁止新的FIQ异常 CPSR6=1; CP

7、SR7=1; PC=Exception Vector Address 40 例子: 用户模式到 FIQ模式* spsr_fiq cpsr r7 r4 r5 r2 r1 r0 r3 r6 r15 (pc) r14_fiq r13_fiq r12_fiq r10_fiq r11_fiq r9_fiq r8_fiq r14 (lr) r13 (sp) r12 r10 r11 r9 r8 用户模式 CPSR 复制到 FIQ 模式 SPSR cpsr r15 (pc) r14 (lr) r13 (sp) r12 r10 r11 r9 r8 r7 r4 r5 r2 r1 r0 r3 r6 r14_fiq

8、r13_fiq r12_fiq r10_fiq r11_fiq r9_fiq r8_fiq 返回一个从用户模式计算的地址,PC值存储 在FIQ模式 Registers in use Registers in use 异常 用户模式FIQ 模式 spsr_fiq 41 退出异常的操作 l将LR寄存器中的值减去相应的偏移量送到PC中 l将 SPSR 复制回 CPSR l清除禁止中断标志,如果它被设置成使能 l可以认为程序总是从复位异常处理程序开始执行的,因此复位异 常处理程序不需要返回。 42 进入/退出异常概述 43 本节提要 1 1 3 3 2 2 5 5 4 4 6 6 嵌入式微处理器及其应

9、用 ARM体系结构概览 ARM JTAG调试接口 ARM编程模型 ARM 指令集 S3C44B0开发平台简介 44 指令长度 l指令集可以是以下任一种 l32 bits 长 (ARM状态) l16 bits 长 (Thumb 状态) lARM7TDMI 支持3种数据类型 l字节 (8-bit) l半字 (16-bit) l字 (32-bit) l字必须被排成4个字节边界对齐,半字必须被排列成2个字节边界对 齐 45 ARM 指令集 lLoad-store 结构* u在通用寄存器中操作 uload/store 从存储器中读某个值,操作完后再将其放回 存储器中 l指令分类 u数据处理指令 使用和改

10、变寄存器的值 u数据传送指令 把存储器的值拷贝到寄存器中 (load) or 把寄存器中的值拷贝到存储器中(store) u控制流指令 分支 分支和链接, 保存返回的地址,以恢复最先的次序 陷入系统代码 46 指令格式 l指令格式 u3 地址指令格式 在ARM状态中使用 u2 地址指令格式 在 ARM和 THUMB 状态下使用 47 ARM指令集 48 数据处理指令 - 1 l数据处理指令的类别 u算术操作 u按位逻辑操作 u寄存器移位操作 u比较操作 l操作数: 32-bits 宽; 有3种指定操作数的方式 u来自寄存器 u第二操作数可以是常数(立即数) u移位寄存器操作数 l结果: 32-

11、bits 宽, 放在寄存器中 u长乘法产生64位结果 49 数据处理指令 2* cond0 0 operand 2 #opcodeSRnRd 3128 27 26 25 2421 20 1916 1512 110 目的寄存器 第一操作寄存器 设置操作码 算术/逻辑功能 8-bit 立即数 1 25118 70 #rot Rm 11765 430 #shift Rm 0 25 118 765 430 Rs Sh 0 10 Sh immediate alignment immediate shift length shift type second operand register 移位寄存器长度

12、 50 数据处理指令 - 3 51 数据处理指令 - 4 ADD r0, r1, r2r0 := r1 + r2 ADC r0, r1, r2r0 := r1 + r2 + C SUB r0, r1, r2r0 := r1 - r2 SBC r0, r1, r2r0 := r1 - r2 + C - 1 RSB r0, r1, r2r0 := r2 r1 RSC r0, r1, r2r0 := r2 r1 + C - 1 算术操作按位逻辑操作 AND r0, r1, r2r0 := r1 and r2 ORR r0, r1, r2r0 := r1 or r2 EOR r0, r1, r2r0

13、:= r1 xor r2 BIC r0, r1, r2r0 := r1 and (not) r2 寄存器移位 MOV r0, r2r0 := r2 MVN r0, r2r0 := not r2 比较操作 CMP r1, r2set cc on r1 - r2 CMN r1, r2set cc on r1 + r2 TST r1, r2set cc on r1 and r2 TEQ r1, r2set cc on r1 xor r2 52 数据处理指令 - 5 l立即数操作: 立即数操作 = (0-255) x 22n, 0 = n = 12 l移位寄存器操作数 u第二个操作数在与第一个操作数合

14、成之前,是服从于 移位操作的. ADD r3, r2, r1, LSL #3r3 := r2 + 8 x r1 ADD r5, r5, r3, LSL r2r5 := r5 + 2r2 x r3 ADD r3, r3, #3r3 := r3 + 3 AND r8, r7, # carry out to C 56 乘法指令集 l在寄存器产产生32位值值 57 乘法 l例子 (乘法, 乘法累加器) l注意 u最低 32-bits 置于结果寄存器中,其余被忽略 u不支持第二立即操作数 u结果寄存器与源寄存器必须不同 uif S bit is set the V is preserved and th

15、e C is rendered meaningless MUL r4, r3, r2r4 := r3 x r2 MLA r4, r3, r2, r1r4 := r3 x r2 + r1 58 数据传送指令 - 1 l单指令传送 (LDR, STR) u单字(32bit), 半字(6 bit) 以及字节(8 bit) 传送 u寻址 u寄存器偏移 u地址 =基址 寄存器偏移 u立即数偏移 u地址 = 基址 立即数常数 u后变址Post-indexing: modify address after use u前变址Pre-indexing: modify address before use u回写

16、 u如果可能,更新基址寄存器 59 数据传送指令 - 2 l多数据传送指令 (LDM, STM) uload (LDM) 或 store (STM) 当前可访问寄存器的任意子 集 u 使用 u堆栈: maintaining full or empty stacks which can grow up or down memory u上下文切换: 保存或重新存储工作寄存器 u块拷贝:在主存储器中移动大数据块 u寻址 uPre/Post indexing uAuto increment or decrement u回写到基址寄存器Write back the base register 60 数据传送指令 - 3 l单数据交换 (SWAP) u在寄存器和外部存储器之间交换字节或字 u读存储器和写存储器是是放在一起的 u原子指令 u执行时不能中断 u当LOCK 信号输出操作时,外部存储器管理单 元被锁定,当 u多线程操作时使程序同步(OS支持) u锁定 u信号量 61 数据传送指令 - 4 LDR r0, r1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号