730 likes | 1.02k Views
结构篇. 嵌入式处理器体系结构 RISC 处理器的基本技术 ARM 处理器基本结构. 第五章 ARM 体系结构. 5.1 ARM 处理器的 RISC 结构 5.2 ARM 总线 — AMBA2.0 5.3 ARM 处理器的存储器层次 5.4 ARM 处理器中断异常处理 5.5 ARM 处理器的寄存器组织 5.6 ARM 处理器 CPU 组织结构 5.7 基于 JTAG 的 ARM 调试系统 5.8 ARM 系列综述. 5.1 ARM 处理器的 RISC 结构. 了解精简指令集计算机与复杂指令集计算机的概念与不同. 1. 为什么要使用 RISC.
E N D
结构篇 嵌入式处理器体系结构 RISC处理器的基本技术 ARM处理器基本结构
第五章 ARM体系结构 • 5.1 ARM处理器的RISC结构 • 5.2 ARM总线—AMBA2.0 • 5.3 ARM处理器的存储器层次 • 5.4 ARM处理器中断异常处理 • 5.5 ARM处理器的寄存器组织 • 5.6 ARM处理器CPU组织结构 • 5.7 基于JTAG的ARM调试系统 • 5.8 ARM系列综述
5.1 ARM处理器的RISC结构 了解精简指令集计算机与复杂指令集计算机的概念与不同
1.为什么要使用RISC • CISC的问题 • 复杂的寻址模式 • 复杂的指令操作 • RISC的产生
2. RISC结构应用的开始 • 通过对CISC结构的使用分析,对其寻址方式使用和指令操作使用进行统计,从而更新了指令集的设计思路
主要存储器寻址方式总结 5种寻址方式占据寻址模式频率的95%以上; 后3种寻址方式占据寻址模式频率的90%以上
80x86指令操作的总结 最常用的10种指令 占据了96% 的使用频率
体系结构的设计人员希望能够设计一个相对简单的指令集就能完成所需要的工作。体系结构的设计人员希望能够设计一个相对简单的指令集就能完成所需要的工作。
4. ARM处理器体系结构 特点 • RISC处理器结构 • Load/Store结构; • 32位定长指令; • 大通用寄存器组(GPRs),至少16个以上; • 哈弗结构,采用ICache和DCache; • Thumb指令集使用 • 提高代码密度,降低程序存储器需求。 • 多种处理器状态模式 • 用户、FIQ、IRQ、管理、终止、系统和未定义7种模式 • 嵌入式在线仿真调试逻辑 • AMBA片上总线提供丰富灵活的接口 • 低功耗设计
1. 计算机总线 • 计算机是由一组相互间通信的基本部件(CPU、存储器、I/O)通过总线连接起来的基本模块网络
1. 1 高性能总线结构 • 传统的多总线结构 • 现代高性能总线结构 • PC机主板上的总线结构形式
2. 计算机总线典型的控制信号 • 1. 存储器写(Memory Write) • 2. 存储器读(Memory Read) • 3. I/O写 (I/O Write) • 4. I/O读 (I/O Read) • 5. 传输应答 (Transfer ACK) • 6. 总线请求 (Bus Request) • 7. 总线允许 (Bus Grant) • 8. 中断请求(Interrupt Request) • 9. 中断响应 ( Interrupt ACK) • 10. 时钟 (clock) • 11. 复位 (Reset)
3.片上总线技术 • 片上总线(OCB)产生背景 • OCB应用目的 • 使得SOC芯片上不同的IP核的连接实现标准化 • 主要的OCB总线标准 • CoreConnect (IBM ) • AMRA (ARM ) • Wishbone (Silicore)
4. AMBA ( Advanced Microcontroller Bus Architecture) 总线标准 • AMBA标准定义了3种总线结构: • AHB( Advanced High-performance Bus): 连接高性能系统模块,支持突发书记传输方式和单个数据传输方式,所有时序参考同一个时钟延。 • ASB ( Advanced System Bus ): 连接高性能系统模块,支持突发书记传输方式 • APB( Advanced peripheral Bus ): 是一个简单接口,支持低性能的外围接口
AMBA总线逻辑图 AMBA总线在XSACLE处理器上的应用
5. 先进系统总线(ASB)标准 • ASB连接高性能系统模块,实现如下特性: • 迸发传输; • 流水线传输操作; • 多总线主设备; • ASB总线设计的模块组成 • ASB主设备 • ASB从设备 • ASB解码器 • ASB仲裁器 主设备能够发出读写操作。每一时刻只允许一个主设备使用总线。 从设备在指定地址上响应读写操作,并向主设备发送信号,通知数据传送的成功、失败或等待。 地址解码与从设备选择。每个ASB都要有一个集中解码器。 对主设备进行仲裁。仲裁协议固定,但优先级与公平算法可选。
6. 先进高性能总线(AHB)标准 • AHB解决高性能同步设计需求,支持多个主设备并提供高带宽操作: • 迸发传输; • 分离事务总线实现; • 单周期总线主设备移交; • 单周期边界操作; • 非三态实现; • 宽数据总线配置(64~128bit).
7. 先进外设总线(APB)标准 • APB是AMBA层次总线的一部分,作为二级总线使用。 • APB桥 • 作为系统总线的一个从模块; • 主要处理总线握手(handshake)和外设总线的控制信号重定时; • 提供对所有地址、数据和控制信号的锁存; • 提供二级解码,为APB外设产生从设备选择信号; • APB设计要求在时钟上升沿发生信号转换: • 容易完成高速操作; • 简化静态时序分析; • 更好的适应多种ASIC库的需求; • APB上所有的设备都是APB从设备。
10. AMBA总线的测试 • 测试接口控制器 (Test Interface Controller) • AMBA用TIC提供模块测试的途径,允许外部测试者作为ASB总线的主设备来分别测试总线上的各个模块。 外设测试环境
10. AMBA总线的测试 • TIC使用最小化的3线握手机制来控制测试向量的应用) • 外部总线接口(EBI)的数据通道提供高速32bit并行向量接口。 两个输入可选择4种测试模式: 1.ARM内核测试模式; 2.ARM测试模式; 3.RAM测试模式; 4.JTAG测试模式。 测试时,TIC设置成总线主设备,被测模块设置为从设备。 TIC与EBI的交互
5.3 ARM处理器存储器层次 Cache结构 ARM的MMU 存储器管理单元MMU原理
1. 为什么使用Cache • 存储器子系统的分层 • 局部性原理
3. Cache/主存系统基本结构 为实现映射,将其分为定长的块,每块K个字,有M=2n/K个块 主存储器由多达2n个可寻址地址单位组成。每一个字有n位地址 Cache由C行组成。每行K个字(C<<M ); 每行有一个Tag,用来识别当前存储是哪一个块。Tag一般是主存地址的一部分
5.1 Cache的直接映射 Tag用来识别块号
Cache直接映射存在问题 • 对于给定的内存块,有固定的Cache位置 • 产生抖动(shrashing),减低Cache的命中率 希望能允许每个块装入到Cache的任何一行,来克服thrashing 现象。
Cache映射功能---关联映射优缺点 • 替换算法灵活,能设计成命中率最大 • 电路复杂,需要并行检查所有Cache行标记 能不能有一种结合了直接映射和关联映射优点的方法?
6. 替换算法 • 关联和组关联技术引入了替换算法的问题。 • 最常用的有4种技术,均由高速硬件来实现: • 最近最少使用(LRU) • 采用USE位对Cache行进行标记,假定越是最近使用的块越可能被引用。 • 先进先出FIFO • 替换带哦在Cache行中停留最久的块。用轮转或环形缓冲技术实现。 • 最不经常使用(LFU) • 替换掉引用次数最少的块。用与每行相关的计数器实现 • 随机替换
7. 写策略 • 写策略 • 写直达(Write through) • 写Cache时,数据同时协会主存储器 • 通过缓存写直达 • 先把数据写入缓存,下一操作时再将数据写回主存 • 写回(Write back) • 在Cache行被淘汰时,才把数据写回主存。
8. Cache行的大小 • 较大块能减少装入的块数; • 当块变得较大时,每个附加自离所需字更远,因此被使用的可能性减小。 • 块大小与命中率的关系较复杂,取决于特定程序的局部性特征。通常认为8~32B较为接近最优值。
9. Cache 数目 • 多级Cache的使用 • 现代设计中一般采用了两级Cache结构,片内Cache(L1)和片外Cache(L2)。 • 越来越多的L2 Cache被集成到片内。即使在片外,也不使用系统总线,而是使用一个专门的数据通道。 • L3 Cache也进一步被移到了片上。
10. 统一和分立的Cache • 当Cache刚刚出现时,采用单个Cache存放数据和指令 • 相对分立Cache有较高的命中率,在获取指令和数据之间自动进行平衡 • 只需设计一个Cache • 但在强调并行指令执行和预取未来执行的指令时,倾向于使用分立的Cache • 消除了Cache在指令取/译单元和执行单元之间的竞争,这在Pipeline设计中是很重要的。
11. Xscale 255的Cahe组织 • Xscale 指令Cache • 32KB容量,32路组关联结构; • 采用循环替换算法。 每行8个字 共32组 每组32路
11. Xscale 255的Cahe组织 • Xscale 数据Cache • 32KB容量,32路组关联结构; • 采用循环替换算法。 共32组 每行32字节 每组32路
1. MMU的主要功能 • MMU可以对存储器系统进行细粒度的控制 • 页表Translate Table ,保存在内存,1K~1MB; • 快表 Translate Lookside Buffer,8~16个字大小,速度相当与寄存器,保存当前地址变换条目,即entry。 • 通过页表,MMU能够完成如下属性: • 虚拟地址到物理地址的映射 • 内存访问权限的限制 • 高速缓存能力和缓冲能力。设置虚拟存储空间缓冲特性
2. ARM内存管理单元(MMU)结构 内存访问控制 虚拟-物理地址转换 高速缓存能力和缓冲能力
3. 内存访问顺序 • 当内存访问产生,MMU首先在TLB中查找访问的虚拟地址。 • 从指令TLB中取回指令; • 从数据TLB中取回数据。 • 地址变换过程:如果TLB中未命中,启动TLB Walk硬件,从主存的页表中得到变换和访问允许信息,即地址变换条目; • 访问控制过程:将条目放入到TLB中,用于以下用途: • C位和B位控制Cache和write buffer,决定内存访问是否进行缓存(Cache); • 访问允许位和域决定访问权限。 • 如果内存访问没有被Cached,那么直接使用物理地址来访问主存;如果是Cached,物理地址被用作Cache线取回地址。
4. MMU的启动与关闭 • 系统控制协处理器的register1[0]位可以控制MMU的启动和关闭: • 0,关闭MMU,reset状态; • 1,启动MMU。 • 在MMU被启动之前,ARM使用CP15系统控制协处理器来进行存储器管理。
1. 系统控制协处理器CP15 • 主要用于存储器管理 • 各种存储机制都是配合其它的一些机制