1 / 58

微机原理与接口技术 第二章: ARM 微处理器硬件结构

微机原理与接口技术 第二章: ARM 微处理器硬件结构. 主讲人:鞠 雷 山东大学 计算机科学与技术学院.  内容提要. 计算机体系结构. ARM 处理器结构 和技术特征. ARM 处理器模式及内部寄存器. ARM 存 储 系 统 机 制. 计算机体系结构. 计算机中,按内存的组成分两种典型的结构: 1. 冯 · 诺依曼结构 / 普林斯顿结构 ( von Neumann architecture / Princeton architecture ) 2. 哈佛结构 (Harvard architecture). 冯 · 诺依曼体系结构.

nicole-head
Download Presentation

微机原理与接口技术 第二章: ARM 微处理器硬件结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 微机原理与接口技术第二章: ARM微处理器硬件结构 主讲人:鞠 雷 山东大学 计算机科学与技术学院

  2.  内容提要 计算机体系结构 ARM处理器结构和技术特征 ARM处理器模式及内部寄存器 ARM存储 系 统 机 制

  3. 计算机体系结构 • 计算机中,按内存的组成分两种典型的结构: 1.冯·诺依曼结构/普林斯顿结构 (von Neumann architecture / Princeton architecture) 2. 哈佛结构 (Harvard architecture)

  4. 冯·诺依曼体系结构 结构特点:1、指令和数据存储在相同的内存空间,但存储地址不同。 2、处理器利用相同的总线处理内存中的指令和数据,指令和数据具有相同的数据宽度,指令与数据无法同时存取。 存储器 地址0 指令寄存器 程序 控制器 指令0 指令1 指令2 指令3 指令4 数据通道 数据 输出 输入 中央处理器 数据0 数据1 数据2 ARM7嵌入式微处理器亦采用此结构

  5. 哈佛雕像

  6. 哈佛体系结构 程序存储器 地址 地址0 指令寄存器 指令0 控制器 指令1 结构特点: 1、指令存储和数据存储分开,指令和数据分别位于不同的存储空间。 2、指令与数据的存取采用不同总线。 指令 指令2 数据存储器 地址 地址0 数据通道 输出 输入 数据0 CPU 数据1 数据 数据2 数字信号处理器DSP通常采用哈佛结构 ,ARM9嵌入式微处理器亦采用此结构(modified-Harvard architecture)。

  7. 两种体系结构的比较与发展 • 各自的优缺点 • 灵活性 • 从存储系统读取数据并作为指令执行 • Just-in-time compilation • Self-modified code • 资源利用 • 执行效率 • 结构复杂度 • 可靠性 • 面向的应用程序 • … • 发展 • 早期:PC(x86)冯·诺依曼结构,单片机(8051)  哈佛结构 • 如今:modified Harvard architecture 课后阅读:http://en.wikipedia.org/wiki/Modified_Harvard_architecture

  8. 第2章 ARM微处理器硬件结构 计算机体系结构 ARM处理器结构和技术特征 ARM处理器模式及内部寄存器 ARM存储 系 统 机 制

  9. ARM ARM公司简介ARM是Advanced RISCMachines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务 ARM Barn

  10. ARM

  11. RealView开发工具 www.realview.com.cn/ Debug Tools AXD (part of ADS) Trace Debug Tools Multi-ICE Multi-Trace Compilation Tools ARM Developer Suite (ADS) – Compilers (C/C++ ARM & Thumb),Linker & Utilities Platforms ARMulator (part of ADS) Integrator™ Family RealView Debugger (RVD) RealViewICE (RVI) RealView Trace (RVT) RealView Compilation Tools (RVCT) RealViewARMulator ISS (RVISS)

  12. ARM处理器内核(简称ARM核) 新增 所谓ARM核就是传统意义上的微处理器,目前ARM公司共推出了7个ARM版本,这些版本的变化主要体现在内核的变化和内核的扩展。 ARM核=ALU+CU+R+内部总线 主要包括: 1、算术逻辑部件 2、控制部件CU(Control Unit) 3、寄存器组 R(Registers) 4、内部总线。

  13. ARM7硬件结构

  14. 微处理器 输入 输出 算术逻辑单元(ALU) 控制单元 CU 寄存器组(register bank) 存储器 ARM处理器内核 • 微处理器是整个系统的核心,通常由4部分组成:控制部件、算术逻辑部件、寄存器组和内部总线。

  15. ARM7内核硬件结构 1、时钟 mclk系统时钟 wait等待信号,为低时arm7等待。 2、中断信号 nIRQ 外部中断 nFIQ 快速中断 3、总线控制 复位、总线使能、字节/字选择等 4、存储器信号 地址线A[31:0],内部数据线Dout Din[31:0] 、Din[31:0]和D Din[31:0],读写控制nRW 5、边界扫描 通过边界扫描寄存器(位于芯片管脚附近)观察和控制调试状态下的处理器芯片内部状态。http://www.eefocus.com/article/08-08/49830s.html

  16. 冯·诺依曼结构ARM73级流水线的ARM核 3、执行 3级流水线的ARM核 2、译码 1、取指

  17. 基本组成: (详见前图) 1、寄存器块 由通用寄存器和状态寄存器组成,主要用来保存处理器状态和处理器工作中的数据。 5个对外端口 2个读端口,用于读2个源操作数; 1个写端口,用于写入目的操作数; 上述端口都可访问任意寄存器; 1个专门访问程序计数器R15的附加读端口; 1个附加写端口。

  18. 3、桶式移位器 主要完成指令中第2个操作数移位。 4、ALU 执行算术逻辑运算 5、地址寄存器和增值器 选择和保存所有存储器地址,并在需要时通过地址增值器生成顺序地址。 6、数据寄存器 对传送到存储器或从存储器取回的数据暂存。 7、控制通路/控制器 基本功能模块是指令解码器和相关的控制逻辑。

  19. ARM体系结构版本 ARM体系结构共定义了7个版本,版本号分别为1—7。同时,各版本中还有一些变种,这里将某些特定功能称为ARM体系的某种变种(variant) ARM体系结构版本的变化主要体现为增加ARM核外围的组件以改善ARM性能和增加内核的功能。 硬件ARM核外围的组件扩展: 1、cache和紧耦合存储器TCM(片上RAM) 2、存储管理部件 MMU 3、协处理器(配置cache、TCM和存储管理) ARM核的扩充功能: 1、T变种 Thumb指令集 2、M变种 增加64位长乘法指令

  20. ARM体系结构版本 3、 E变种 增强型DSP指令 E变种的ARM体系增加了一些增强处理器对典型的DSP算法处理能力的附加指令。 4、J变种 java加速器Jazelle提供了Java加速功能,使得Java代码的运行速度比普通的Java虚拟机提高了8倍。 5、 SIMD变种(单指令流多数据流) ARM媒体功能扩展 ARM媒体功能扩展SIMD技术极大地提高了嵌入式应用系统的音频和视频处理能力,可使微处理器的音频和视频处理性能提高4倍。

  21. ARM体系结构版本 • 各ARM体系结构版本——V1自学 该版本的ARM体系结构,只有26位的寻址空间,没有商业化,其特点为: • 基本的数据处理指令(不包括乘法); • 字节、字和半字加载/存储指令; • 具有分支指令,包括在子程序调用中使用的分支和链接指令; • 在操作系统调用中使用的软件中断指令。

  22. ARM体系结构版本 • 各ARM体系结构版本——V2自学 同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进: • 具有乘法和乘加指令; • 支持协处理器; • 快速中断模式中的两个以上的分组寄存器; • 具有原子性加载/存储指令SWP和SWPB。

  23. ARM体系结构版本 • 各ARM体系结构版本——V3自学 寻址范围扩展到32位(目前已废弃),具有独立的程序: • 具有乘法和乘加指令; • 支持协处理器; • 快速中断模式中具有的两个以上的分组寄存器; • 具有原子性加载/存储指令SWP和SWPB。

  24. ARM体系结构版本 • 各ARM体系结构版本——V4自学 不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改进: • 半字加载/存储指令; • 字节和半字的加载和符号扩展指令; • 具有可以转换到Thumb状态的指令(BX); • 增加了用户模式寄存器的新的特权处理器模式。

  25. ARM体系结构版本 • 各ARM体系结构版本——V5自学 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并并增加了指令,具体如下: • 改进了ARM/Thumb状态之间的切换效率; • E---增强型DSP指令集,包括全部算法操作和16位乘法操作; • J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。

  26. ARM体系结构版本 • 各ARM体系结构版本——V6 自学 V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。此架构在V5版基础上增加了以下功能:改进了ARM/Thumb状态之间的切换效率; • THUMBTM:35%代码压缩; • DSP扩充:高性能定点DSP功能; • JazelleTM:Java性能优化,可提高8倍; • Media扩充:音/视频性能优化,可提高4倍。

  27. ARM体系结构版本 • 各ARM体系结构版本——V7 自学 • ARMv7定义了3种不同的处理器配置(processor profiles): • Profile A(application)是面向复杂、基于虚拟内存的OS和应用的 • Profile R(real-time)是针对实时系统的; • Profile M(microcontroller)是针对低成本应用的优化的微控制器的。 • 所有ARMv7 profiles实现Thumb-2技术,同时还包括了NEON™技术的扩展提高DSP和多媒体处理吞吐量400%,并提供浮点支持以满足下一代3D图形和游戏以及传统嵌入式控制应用的需要。

  28. ARM处理器的分类

  29. ARM7微处理器系列 (一般了解) 特点: 冯诺伊曼体系结构; • ARM7TDMI是目前应用最广的微处理器核; • ARM720T带有MMU和8KB的指令数据混合cache; • ARM7EJ-执行ARMv5TEJ指令,5级流水线,提供Java加速指令,没有存储器保护。 ARM命名规则: 1、基于ARM Architecture的版本命名规则 | ARMVn | variants | x(variants)|     Vnn -- 指令集版本号,n[1:7]。 ·variants -- 变种。 ·x(variants)-- 排除x后指定的变种 例,ARMv5TxM表示ARM指令集版本为5,支持T变种,不支持M变种。 2、基于ARM 处理器系列命名规则 ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S} ·x -- 处理器系列    ·y -- 存储管理/保护单元    ·z -- cache     ··D -- 支持片上调试(加断点,单步执行) ·I -- 支持Embedded ICE,支持嵌入式跟踪调试。开发环境可跟踪调试目标板。 ·-S -- 可综合版本,无s硬核,工艺固定不可综合。

  30. ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致; 支持Embeded-ICE观察硬件; 支持64位乘法; 支持片上调试; 支持高密度16位的Thumb指令集; ARM7 T D M I - S ARM7TDMI ARM7TDMI:整数处理核ARM7TDMI 处理器的可综合版本; ARM720T:带MMU的处理器核心,支持操作系统; ARM7EJ-S:带有DSP和Jazelle TM 技术,能够实现Java加速功能

  31. ARM710T ARM720T Cp15 ARM内置协处理器,含有多个寄存器,用于配置MMU、cache和writer buffer。 JTAG 和非 AMBA 信号 Writer buffer 写缓冲,暂存地址和数据,提高地址和数据的访问速度。 控制 逻辑 CP15 ARM7TDMI 内核 地址 MMU AMBA 总线 接口 写 缓冲 AMBA接口 地址 数据 advanced microcontroller bus architecture MMU 存储管理单元,其核心部件是TLB(快表),TLB保存了最近访问的物理页地址,若TLB命中可快速取得变量的物理地址。 数据写 数据读 Cache ARM7xxT 取指(操作数存取)过程: 1、内核首先以虚拟地址访问cache,若cache命中则从cache取指。 2、若cache未命中,则访问MMU中的TLB。若TLB命中,则把TLB中的物理页号与虚拟地址的低位拼接成物理地址,以该地址访问内存。 3、若TLB未命中,则以虚拟地址访问内存页表。 带Cache的ARM720T ARM720T 同ARM710T,但支持 WinCE ARM740T • 8K 统一的 cache • 存储管理单元 • 写缓冲 ARM710T • 8K 统一的 cache • 完整的内存管理单元(MMU),支持虚拟地址和存储器保护 • 写缓冲

  32. ARM处理器工作状态 • ARM和Thumb状态 ARM指令系统(V4版以后具有Thumb指令集): • 32位ARM指令集:固定的32位指令,Load/Store RISC特征,3地址格式。 • 16位Thumb指令集:是ARM指令集的子集,按16位指令重新编码,固定的16位指令,Load/Store RISC特征,2地址格式。 注意:两个状态之间的切换并不影响处理器模式或寄存器内容。

  33. A B C D 流水线作业(Pipelining) • 4位同学洗衣服 (A,B,C,D) • 洗衣服:30分钟 • 烘干:40分钟 • 叠衣服:20分钟

  34. A B C D 方法一:线性作业 6 PM Midnight 7 8 9 11 10 • 共需6小时 Time 30 40 20 30 40 20 30 40 20 30 40 20 T a s k O r d e r

  35. 30 40 40 40 40 20 A B C D 方法二: 流水线 共需3.5小时 6 PM Midnight 7 8 9 11 10 Time T a s k O r d e r

  36. 流水线 • 处理器性能提高的核心技术之一 • 使用条件: • 1.多个独立任务; 2. 任务可被分解; 3.分解后的子任务使用不同资源 • 参数: • 1. throughput(性能) • 2. latency (时延)

  37. Pipeline Throughput and Latency s1 s2 s3 4 ns 10 ns 3 ns s2 s3 s1 wait 3 ns 10 ns 4 ns s2 s3 s1 wait 10 ns 3 ns 4 ns Pipeline throughput: instructions completed per second. 1instr. / max[s1,s2,s3] = 1 instr. / 10ns Pipeline performance is limited by the slowest pipeline stage Pipeline latency: how long does it take to execute a single instruction in the pipeline. Use balanced pipeline stage length! 1st instr. 4+10+3 = 17 ns 2nd instr. 4+6(wait)+10+3 = 23 ns 3rd instr. 4+12(wait)+10+3= 29 ns

  38. Pipeline Speedup 上个例子中: speedup = 17/10 = 1.7 练习题:假设一台不使用流水线的计算机每个时钟周期(cycle)为1ns,其中执行一条ALU运算或一条分支指令需要4个周期,读写存储器的指令需要5个周期。某一在该计算机上运行的程序中以上三种指令分别占40%, 20%, and 40%。如在该计算机上采用流水线技术,假设由于流水线设置、时钟偏移等因素造成的流水线额外开销(pipeline overhead)为每时钟周期0.2ns,请问理想状态下流水线对系统性能的提升率(speedup)是多少? Speedup= 4.4/1.2=3.7

  39. AR流水线技术 • 流水线(Pipeline)技术:若干个指令可以并行执行 • 提高了CPU的运行效率 • 内部信息流要求通畅流动 • 3-stage流水线: • 每条指令需要(至少)3 cycles (latency) • 平均每个cycle完成一条指令 (throughput) (pc-8)add (pc-4)sub (pc)cmp 取指 译码 执行add 取指 译码 执行sub 执行cmp 取指 译码 3T 1T 2T 时间 3周期指令的ARM3级流水线

  40. 流水线技术 • 为增加处理器指令流的速度,ARM7 系列使用3级流水线 • 允许多个操作同时处理,比逐条指令执行要快。 • PC指向正被取指的指令,而非正在执行的指令 ARM Thumb PC PC 从存储器中读取指令cmp 当前pc所指向的指令 Fetch 已完成取指的指令 PC-4 PC-2 Decode 解码指令sub 寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ) add 已完成解码的指令 PC-8 PC-4 Execute

  41. 流水线技术 (pipeline hazard) (2)解决流水线相关: • 结构相关 • 数据相关 • 控制相关 如果某些指令在流水线中重叠执行时,产生资源冲突,则称该流水线存在结构相关。 解决:资源重复(Cache 分离、ALU中单独的地址计算加法器) • 写后读”、“写后写” “读后写” • 解决:专用通路提高写入寄存器的速度,流水线互锁技术硬件会停止相关指令的执行。 add r0,r1,r2 mov r2,r0 add r0,r1,r2 add r0,r3,r5 mov r2,r0 add r0,r1,r2 • 当流水线遇到分支指令和其他会改变PC值的指令时,取指取决于指令执行条件,可能需重新取指,致使流水线停顿。 • 解决:引入延时分支(硬件加入空操作指令)、尽早计算转移成功时的目标地址。

  42. 多周期ARM指令的3级流水线操作(结构相关) 若流水线产生资源冲突,则称该流水线存在结构相关。 如,取指存数冲突,2条指令同时占用译码级等。 STR计算存储器地址与ADD译码,都为下一周期产生数据传送控制信号,不能同步进行。Data xfer-excute占用数据路径 两条指令不能同时译码。 取指与存数冲突 1T 2T 3T 4T 5T 6T 7T 8T

  43. 流水线结构相关(structural hazards) 取指 译码 执行st/ld 都需要访问存储器,无法同时进行 取指 译码 执行xx 取指 译码 执行yy 取指 译码 执行st/ld 取指 译码 执行xx 取指 译码 执行yy stall

  44. 冯.诺依曼瓶颈 • Von Neumann bottleneck • 计算机的性能受制于存储器的读写速度 • 在ARM7的3-stage pipeline中,一个cycle只能进行一次储存器读/写 (either fetch an instruction or transfer data) • 解决办法 • 更快的存储器(cache,bus bandwidth) • 使instruction和data访问分离(Harvard architecture) • 更高性能的ARM • Increase pipeline stages • Separated instruction and data memories (caches)

  45. 流水线技术 • 在ARM7的3级流水线结构中流水线易出现间断,这必然降低了流水线的效率,为了提高处理器的性能,必然要考虑如何优化处理器的组织结构。 (1)缩短程序执行时间: • 提高时钟频率fclk • 减少每条指令的平均时钟周期数CPI Tprog:程序执行时间 Ninst:指令条数 CPI:指令平均时钟周期数 fclk:时钟频率

  46. 预取 (Fetch) 译码 (Decode) 执行 (Execute) ARM7 预取 (Fetch) 译码 (Decode) 执行 (Execute) 访存 (Memory) 写入 (Write) ARM9 预取 (Fetch) 发送 (Issue) 译码 (Decode) 执行 (Execute) 访存 (Memory) 写入 (Write) ARM10 预取 (Fetch) 预取 (Fetch) 发送 (Issue) 译码 (Decode) 转换 (Snny) 执行 (Execute) 访存 (Memory) 写入 (Write) ARM11 流水线技术 ARM各个系列的流水线:

  47. ARM9TDMI

  48. ARM9E • ARM9E微处理器系列 自学 特点: ARM9E是针对微控制器、DSP和Java的单处理器解决方案; • ARM Jazelle 技术提供 8倍的 Java 加速性能 (ARM926EJ-S) ; • 5-级整数流水线; • 在0.13µm工艺下最高性能可达到300MIPS(Dhrystone 2.1测试标准); • 可选择的 向量浮点单元VFP9 协处理器指令优秀海浮点性能,对于3D图形加速和实时控制可达到 215MFLOPS • 高性能的AHB总线,带MMU • 可在0.18µm, 0.15µm, 0.13µm工艺的硅芯片上实现。 • 以44.1 KHz@128kbps码率的MP3音乐文件为例,ARM7TDMI需要占用20MHz以上的资源,而ARM926EJ则只要小于10MHz的资源,充分体现了ARM9E的DSP处理能力。

  49. ARM9 5-stage pipeline ARM7 ARM9

  50. Reg Reg Reg Reg Reg Reg Reg Reg Ifetch Ifetch Ifetch Ifetch DMem DMem DMem DMem ALU ALU ALU ALU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 5-stage Pipeline • 优点: • 减少每个pipeline stage (cycle) 的执行时间,提高pipeline throughput和speedup • 减少结构相关:多级流水线,独立指令和数据缓存(哈佛结构) • 减少数据相关:采用forwarding技术 • 减少控制相关:分支预测 • http://en.wikipedia.org/wiki/Hazard_(computer_architecture)#Register_forwarding (课外阅读)

More Related