第二章-ARM体系架构...ppt_第1页
第二章-ARM体系架构...ppt_第2页
第二章-ARM体系架构...ppt_第3页
第二章-ARM体系架构...ppt_第4页
第二章-ARM体系架构...ppt_第5页
免费预览已结束,剩余66页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章ARM体系结构 何为体系结构 计算机体系结构是程序员所看到的计算机的属性 即概念性结构与功能特性 冯 诺依曼体系结构和哈佛体系结构RISC和CISC流水线嵌入式微处理器体系结构存储器 2 1微处理器的基础知识 计算机体系结构 图1 1计算机系统的基本结构 冯 诺依曼体系结构 指令寄存器 控制器 数据通道 输入 输出 中央处理器 存储器 程序 指令0 指令1 指令2 指令3 指令4 数据 数据0 数据1 数据2 哈佛体系结构 指令寄存器 控制器 数据通道 输入 输出 CPU 程序存储器 指令0 指令1 指令2 数据存储器 数据0 数据1 数据2 地址 指令 地址 数据 CISC和RISC CISC 复杂指令集 ComplexInstructionSetComputer 具有大量的指令和寻址方式 指令长度可变8 2原则 80 的程序只使用20 的指令大多数程序只使用少量的指令就能够运行 RISC 精简指令集 ReducedInstructionSetComputer 只包含最有用的指令 指令长度固定确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单 CISC与RISC的数据通道 IF ID REG ALU MEM 开始 退出 IF ID ALU MEM REG 微操作通道 开始 退出 单通数据通道 RISC Load Store结构 CISC 寻址方式复杂 CISC的背景和特点 背景 存储资源紧缺 强调编译优化增强指令功能 设置一些功能复杂的指令 把一些原来由软件实现的 常用的功能改用硬件的 微程序 指令系统来实现为节省存储空间 强调高代码密度 指令格式不固定 指令可长可短 操作数可多可少寻址方式复杂多样 操作数可来自寄存器 也可来自存储器采用微程序控制 执行每条指令均需完成一个微指令序列CPI 指令越复杂 CPI越大 CISC的主要缺点 指令使用频度不均衡 高频度使用的指令占据了绝大部分的执行时间 扩充的复杂指令往往是低频度指令 大量复杂指令的控制逻辑不规整 不适于VLSI工艺VLSI的出现 使单芯片处理机希望采用规整的硬联逻辑实现 而不希望用微程序 因为微程序的使用反而制约了速度提高 微码的存控速度比CPU慢5 10倍 软硬功能分配复杂指令增加硬件的复杂度 使指令执行周期大大加长 直接访存次数增多 数据重复利用率低 不利于先进指令级并行技术的采用流水线技术 RISC基本设计思想 精简指令集 保留最基本的 去掉复杂 使用频度不高的指令 选取运算指令 加载 存储指令和转移指令作主指令集 以减小CPI CPUtime Instr Count CPI Clock cycleIC 程序中指令数 CPI 每条指令执行所有周期数复杂指令可通过对简单基本指令组合而成每条指令的长度相同 大部分指令可在一个机器周期完成采用多级指令流水线结构 处理器在同一时间可执行多条指令采用Load 加载 Store 存储 结构 统一存储器访问形式 只允许Load Store指令执行存储器操作 其余指令均对寄存器操作大大增加通用寄存器的数量 ALU只与寄存器直接连接 CISC与RISC的对比 流水线技术 流水线 Pipeline 技术 几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动 译码 取指 执行add 译码 取指 执行sub 译码 取指 执行cmp 时间 Add Sub Cmp 指令流水线 以ARM为例 为增加处理器指令流的速度 ARM7系列使用3级流水线 允许多个操作同时处理 比逐条指令执行要快 PC指向正被取指的指令 而非正在执行的指令 Fetch Decode Execute 从存储器中读取指令 解码指令 寄存器读 从寄存器Bank 移位及ALU操作寄存器写 到寄存器Bank PCPC PC 4PC 2 PC 8PC 4 ARMThumb 最佳流水线 该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中 单周期执行 指令周期数 CPI 1 操作 周期 123456 Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Fetch Decode Execute Decode Execute Fetch Decode Fetch Fetch 高速缓存 CACHE 1 为什么采用高速缓存微处理器的时钟频率比内存速度提高快得多 高速缓存可以提高内存的平均性能 2 高速缓存的工作原理高速缓存是一种小型 快速的存储器 它保存部分主存内容的拷贝 CPU 高速缓存控制器 CACHE 主存 数据 数据 地址 总线和总线桥 ARM公司提出的AMBA总线标准 嵌入式处理器体系结构 按体系结构的不同可分为五大类ARMMIPSPOWERPCX86SH系列 ARM公司的ARMRISC处理器ARM7Thumb家族ARM9Thumb家族ARM10Thumb家族ARM11Thumb家族 IntelStrongARM StrongARM110StrongARM1100StrongARM1110StrongARM1111 INTEL的Xscale架构处理器 基于ARMV5TE体系结构兼容ARMV5TEISA指令集 不支持浮点指令集 在处理器内核周围提供了指令和数据存储器管理单元指令 数据和微小数据缓存写缓冲 挂起缓冲和分支目标缓冲器电源管理性能监控调试JTAG单元以及协处理器接口MAC协处理器内核存储总线 MIPS 从1986年推出R2000处理器以来 MIPS陆续推出R3000 R4000 R8000等 之后 MIPS公司的战略发生变化 把重点放在嵌入式系统 1999年 MIPS公司发布了MIPS32和MIPS64体系结构标准 集成了原来所有的MIPS指令集 并且增加了许多更强大的功能 此后MIPS公司又陆续开发了高性能 低功耗的32位和64位处理器内核 MIPS 在MIPS的32位内核中4K系列对应于SOC应用设计 M4K系列内核是为在下一代消费电子 网络 宽带应用中越来越受欢迎的多CPUSOC所设计 4KE系列具有目前32位通用嵌入式处理器中最高的DMIPS MHz性能指标 4KS系列由于采用了特殊的SmartMIPS体系结构 特别适用于需要安全数据传输的领域 比如网络 智能卡等 5K和20Kc系列属于MIPS的64位内核5K能提供1 4DMIPS MHz的性能以及最低350MHz的运行速率 20Kc是当今最快的可授权嵌入式处理器内核 一般运行在600MHz 具有7段流水线的20Kc内核 能提供1 2GFLOPS的峰值浮点运算能力 MIPS 在嵌入式处理器市场中 基于MIPS内核的处理器占据了相当大的数量2002年 一共付运了8700万片采用MIPS内核的嵌入式处理器 份额仅次于ARM位居全球第二 在目前快速增长的比如CableModem DSLModem DVD录像机等领域内 MIPS的市场份额位居第一 MIPS的合作伙伴包括了AMD IDT NEC TI SONY等众多厂商 PowerPC体系结构 Motorola半导体 现Freescale半导体 联合IBM以及苹果电脑IBMPowerPC750PowerPCG3MotorolaMPCMC X86体系结构 IntelX86体系结构AMD最新的X86体系结构嵌入式处理器产品为Geode系列处理器CISC指令集 SH体系结构 SH SuperH 系列是由前日立半导体公司 现Renesas公司 推出的嵌入式处理器SH系列的CPU指令格式是固定的 只有一个字长 绝大多数指令是单周期完成的 即使是复杂的乘加指令也仅需2个时钟周期为了克服内存访问的瓶颈 SH的CPU简化寻址方式 采用Load Store 装载 存储 结构 并且在片内设置高速缓存 以减少访问内存的时间 存储器系统 寄存器 高速缓存SRAM 主存储器DRAM 本地存储器Flash ROM 磁盘 网络存储器Flash ROM 磁盘 时钟周期 0 1 10 50 100 20000000 分层结构 存储器种类 RAM 随机存取存储器 SRAM 静态随机存储器 DRAM 动态随机存储器1 SRAM比DRAM快2 SRAM比DRAM耗电多3 DRAM存储密度比SRAM高得多4 DRM需要周期性刷新ROM 只读存储器EPROMEEPROMFLASH 闪存 闪速存储器 FLASH 相对传统的EPROM芯片 这种芯片可以用电气的方法快速地擦写由于快擦写存储器不需要存储电容器 故其集成度更高 制造成本低于DRAM它使用方便 既具有SRAM读写的灵活性和较快的访问速度 又具有ROM在断电后可不丢失信息的特点 所以快擦写存储器技术发展十分迅速 NOR技术 NOR技术闪速存储器是最早出现的FlashMemory 目前仍是多数供应商支持的技术架构 它源于传统的EPROM器件 与其它FlashMemory技术相比 具有可靠性高 随机读取速度快的优势 在擦除和编程操作较少而直接执行代码的场合 尤其是代码 指令 存储的应用中广泛使用 由于NOR技术FlashMemory的擦除和编程速度较慢 而块尺寸又较大 因此擦除和编程操作所花费的时间很长 在纯数据存储和文件存储的应用中 NOR技术显得力不从心 NAND技术 NAND技术FlashMemory具有以下特点 以页为单位进行读和编程操作 1页为256或512字节 以块为单位进行擦除操作 1块为4K 8K或16K字节 具有快编程和快擦除的功能 其块擦除时间是2ms 而NOR技术的块擦除时间达到几百ms 数据 地址采用同一总线 实现串行读取 随机读取速度慢且不能按字节随机编程 芯片尺寸小 引脚少 是位成本 bitcost 最低的固态存储器 突破了每兆字节1元的价格限制 芯片包含有失效块 其数目最大可达到3 35块 取决于存储器密度 失效块不会影响有效块的性能 但设计者需要将失效块在地址映射表中屏蔽起来 基于NAND的存储器可以取代硬盘或其它块设备 2 2ARM920T体系结构 ARM9系列微处理器是低功耗的32位RISC结构 最适合要求低成本 低功耗的消费类应用产品 是目前应用最广泛 高性价比的嵌入式处理器 国际许多著名的IT芯片制造公司 基于ARM9处理器核生产了多种微控制器芯片 如三星公司的S3C2410 Atmel公司的AT91RM9200 Intel公司的PXA255 Motorola公司的MC9328 CirrusLogic公司的EP93XX系列 等等 ARM9结构特点 ARM920T微处理器的指令流水采用了典型的RISC五级流水线结构 将指令执行过程分为取指 译码 执行 访存和写回5个步骤 五级流水线结构采用分离指令cache和数据cache 将每一个指令处理分配到5个时钟周期内 在每一个时钟周期内同时可能有5个指令在执行 消除了指令执行的性能瓶颈 加快了指令执行速度 五级流水线操作 执行 内存访问 寄存器写 指令预取 译码 执行 内存访问 寄存器写 指令预取 译码 执行 内存访问 寄存器写 指令预取 译码 执行 指令预取 译码 内存访问 指令预取 译码 执行 指令预取 译码 译码 包括指令译码 寄存器译码 寄存器读取 执行 包括移位 ALU运算 T T T T T 续 ARM920T核内部具有指令缓存和数据缓存 允许处理器同时进行取指和读写数据操作 数据可以是 8位 字节 16位 半字 32位 字 字必须是4字节边界对准 半字必须是2字节边界对准 ARM920T框图 ARM920T框图 续 Cache 通常人们所说的Cache就是指缓存SRAM SRAM叫静态内存 静态 指的是当我们将一笔数据写入SRAM后 除非重新写入新数据或关闭电源 否则写入的数据保持不变 由于CPU的速度比内存和硬盘的速度要快得多 所以在存取数据时会使CPU等待 影响计算机的速度 SRAM的存取速度比其它内存和硬盘都要快 所以它被用作电脑的高速缓存 Cache CPU运行时 先把指令或数据从内存中读到cache中 需要读出时 CPU先到cache中读取 如果没有再从内存读取 2 2 1ARM微处理器的工作状态 从编程的角度看 ARM微处理器的工作状态一般有两种 并可在两种状态之间切换 ARM状态是32位指令 字对齐 PCbit1 bit0始终为0 Thumb状态时 执行16位指令 半字对齐的Thumb指令 PC使用bit1选择半字 Thumb指令是ARM指令的子集 Thumb状态时 指令地址 PC 和操作数都还是32位的 两种状态切换 不影响寄存器的内容 我们着重介绍ARM状态 Thumb状态知道即可 ARM处理器在两种工作状态之间可以切换 进入Thumb状态 执行BX指令 并设置操作数寄存器的状态 位 0 为1 在Thumb状态进入异常 IRQ FIQ UNDEF ABORT SWIetc 当异常处理返回时自动转换到Thumb状态进入ARM状态 执行BX指令 并设置操作数寄存器的状态 位 0 为0 进入异常时 将PC放入异常模式链接寄存器中 从异常向量地址开始执行也可进入ARM状态 40 2 2 3ARM体系结构的存储器格式 存储器格式是指字 半字 字节在存储器中存放的格式 也反映了它们之间的关系 ARM920T中支持字节 8位 半字 16位 和字 32位 3种数据类型 其中字需要4字节对齐 半字需要2字节对齐 ARM920T体系结构支持两种方法存储字数据 即大端格式和小端格式 41 存储单元概念说明 字 Word 字的长度为32位 而在16位处理器体系结构中 字的长度为16位 半字 Half Word 半字的长度为16位 与16位处理器体系结构中字的长度一致 字节 Byte 在ARM体系结构和8位 16位处理器体系结构中 字节的长度均为8位 ARM体系结构使用232个8位字节的单一 线性地址空间 字节地址为0 232 1 也可以将地址空间看作为由230个32位的字组成 字地址可被4整除 且按字对准 也可以看作成由231个16位半字组成 42 大端格式 被存放字数据的高字节存储在存储系统的低地址中 而被存放的字数据的低字节则存放在存储系统的高地址中 小端格式 与大端存储格式相反 在小端存储格式中 存储系统的低地址中存放的是被放字数据中的低字节内容 存储系统的高地址存放的是被存字数据中的高字节内容 大端格式 big endian 字数据的高字节存储在低地址中 而字数据的低字节则存放在高地址中 小端格式 low endian 与大端存储格式相反 低地址中存放的是字数据的低字节 高地址存放的是字数据的高字节 缺省设置为小端格式 举例 大端的数据存放格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最高有效字节的地址就是该word的地址 最高有效字节位于最低地址 worda 0 xf6734bcd f6 73 4b cd 举例 小端的数据格式 低地址 高地址 地址A 地址A 1 地址A 2 地址A 3 最低有效字节的地址就是该word的地址 最低有效字节位于最低地址 worda 0 xf6734bcd f6 73 4b cd 7种运行模式User 用户模式 ARM处理器正常的程序执行状态 FIQ 快速中断模式 用于高速数据传输或通道处理 IRQ 普通中断模式 用于普通的中断处理 SVC 管理 供操作系统使用的一种保护模式 ABT 数据或指令预取中止 当数据或指令预取终止时进入该模式 可用于虚拟存储及存储保护 UND 未定义指令中止模式 当未定义的指令执行时进入该模式 可用于支持硬件协处理器的软件仿真 SYS 系统模式 运行特权级的操作系统任务 注 工作模式基于两个标准区分 资源访问权限 模式切换 2 2 3ARM9处理器模式 异常模式 除系统模式与用户模式外 其他5种模式 常用于处理中断或异常 以及访问受保护的系统资源等 特权模式 除用户模式外的模式称为特权模式 用于服务中断或异常 或访问保护资源 程序可访问所有系统资源 也可任意进行模式切换 工作模式理解 工作模式理解 用户模式 应用程序不能访问受操作系统保护的系统资源 例如 MSR MRS MCR MRC指令在用户模式不能完全执行 不能直接进行处理器模式的切换 需切换模式时 可产生异常 在异常处理过程中进行处理器切换 这样便于操作系统控制整个系统资源 如产生SWI切换到SVC模式 再切换到SYS模式 系统模式系统模式不是通过异常进入 和用户模式有一样的寄存器 系统模式属于特权模式 可以访问所有系统资源 也可以直接进行处理器模式切换 主要供操作系统使用 模式切换方式总结 软件程序控制 之间修改CPSR模式位置 硬件中断或异常 除reset外一般的程序异常 芯片复位 CPU工作在超级用户模式 PC 0 SWI指令 ARM920T有37个寄存器31个32bit通用寄存器 包括程序计数器PC 未分组寄存器R0 R7 在所有的运行模式下 指向同一个物理寄存器分组寄存器R8 R14 每次访问的物理寄存器与处理器当前的运行模式有关 命名规则R13 R14 mode usr fiq irq svc abt und程序计数器PC6个状态寄存器 2 2 4寄存器组织 ARM的寄存器组织 理解不是同时可见 由处理器状态和工作模式决定 ARM状态 16个通用寄存器和1 2个状态寄存器同时可见 R0 R15是直接访问寄存器 除R15外都是通用目的寄存器 可以保存地址或数据 此外有第17个寄存器 用于保存状态信息 StackPointer 堆栈指针 堆栈寄存器器使用举例 STMDBR13 Rlist 将Rlist指定的寄存器值压入堆栈 并更新堆栈指针LDMIAR13 Rlist 将堆栈内容弹出并赋值给Rlist 并更新堆栈指针ADDR13 R13 Imm 将 Imm加到SP上各种模式有自己的私有堆栈指针 故需要切换到各种模式去初始化堆栈首地址 另需在存储空间划分出一片区域用作程序堆栈 堆栈分Full型和Empty型 递增型和递减型 p128 ds R13堆栈指针寄存器 内部寄存器R14 R14 又称Link寄存器 用于子程序连接 执行分支与连接指令 BL 时 R15 PC 的值会拷贝一份存于该寄存器 调用时硬件自动保存 返回时程序计数器PC从R14读取 当异常或中断发生时 或者异常或中断子程序中执行分之与连接指令 BL 时 用R14 svc R14 irq R14 abt R14 und R14 fiq用于保存程序返回值 需进行计算 注意 PC值 当前指令地址 为预取指令地址 哈佛结构的好处 PC计算简单 注意 各种模式下Link寄存器只有4B 32bit 存储空间 即存储一个地址值 分支嵌套或者中断或异常嵌套 或中断与异常中执行分支指令时会导致死循环等错误 解决办法 最好是使用堆栈 至少是保存PC 使用下面的指令实现子程序返回操作 MovPC LRBXLR堆栈使用STMFDSP LR 保存PC到栈中LDMFDSP PC 子程序返回注意 压栈与出栈分别对应LR与PC R14使用举例 ProgramCounter 程序计数器用来保存指令的地址 正常执行时 其值自动递增 指向下一条指令地址 跳转 异常发生时 PC的值会被硬件修改 程序返回时通过程序修改 即软件修改 PC值 ARM920T为5级流水线操作 正常顺序执行指令时 PC值指向当前执行指令的下两条指令地址 即PC 当前指令地址 2 Words 注意 PC 是ARM中的一个寄存器 其内容为当前预取指令的地址 另外在描述中也常用PC指代当前正在执行的指令的地址 内部寄存器R15 2 2 5程序状态寄存器 ARM体系结构包含一个当前程序状态寄存器 CPSR 和5个备份的程序状态寄存器 SPSRs 当前程序状态寄存器CPSR 可以在任何工作模式下被访问 备份程序状态寄存器SPSR 只有在异常模式下 才能被访问备份的程序状态寄存器用来进行异常处理 其功能包括 保存ALU中的当前操作信息 控制允许和禁止中断 设置处理器的运行模式 程序状态寄存器的格式 条件码标志 ConditionCodeFlags N Z C V均为条件码标志位 它们的内容可被算术或逻辑运算的结果所改变 并且可以决定某条指令是否被执行 在ARM状态下 绝大多数的指令都是有条件执行的 在Thumb状态下 仅有分支指令是有条件执行的 条件码标志位 控制位 CPSR的低8位 包括I F T和M 4 0 称为控制位 当发生异常时这些位可以被改变 如果处理器运行特权模式 这些位也可以由程序修改 中断禁止位I FI 1禁止IRQ中断F 1禁止FIQ中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论