《ARM微处理器硬件结构.ppt》由会员分享,可在线阅读,更多相关《ARM微处理器硬件结构.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式处理器体系结构嵌入式处理器体系结构 按体系结构的不同可分为五大类按体系结构的不同可分为五大类 ARM POWER PC MIPS X86 SH系列系列 第第2章章 ARM微处理器硬件结构微处理器硬件结构 2.0 什么是什么是ARM 2.0 CISC和和RISC技术技术 2.1 计算机体系结构分类计算机体系结构分类 冯冯诺依曼结构诺依曼结构 哈佛结构哈佛结构 2.2 ARM的版本及系列的版本及系列 2.3 ARM处理器结构处理器结构 2.4 存储系统机制存储系统机制 2.5 嵌入式系统的开发嵌入式系统的开发 掌握冯掌握冯诺依曼体系结构和哈佛体系结构两种诺依曼体系结构和哈佛体系结构两种计算机
2、体系结构及其区别。计算机体系结构及其区别。 了解了解RISC技术。技术。 了解了解ARM定义、版本及处理器版本。定义、版本及处理器版本。 了解了解ARM处理器结构。处理器结构。 了解存储系统机制。了解存储系统机制。本章要求:本章要求:第第2章章 ARM微处理器硬件结构微处理器硬件结构 ARM是是Advanced RISC Machine的缩写,它的缩写,它是一家微处理器行业的知名企业,该企业是一家微处理器行业的知名企业,该企业设计大量高性能、廉价、耗能低的设计大量高性能、廉价、耗能低的RISC处处理器。理器。 1985年第一个年第一个ARM原型在英国剑桥诞生。原型在英国剑桥诞生。 公司的特点是
3、只设计芯片,不生产芯片。公司的特点是只设计芯片,不生产芯片。 提供提供ARM技术知识产权(技术知识产权(IP)核,将技术)核,将技术授权给世界上许多著名的半导体、软体和授权给世界上许多著名的半导体、软体和OEM厂商,并提供服务。厂商,并提供服务。有多个版本,除了一些有多个版本,除了一些Unix图形工作站之外,图形工作站之外,大多数大多数ARM核心的处理器都是用在嵌入式领域。核心的处理器都是用在嵌入式领域。ARM既可以认为是一个公司的名字,也可认为既可以认为是一个公司的名字,也可认为是对一类微处理器的通称,还可以认为是一种是对一类微处理器的通称,还可以认为是一种技术的名字。技术的名字。CISC:
4、复杂指令集计算机(复杂指令集计算机(Complex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/2原则:原则:80%的程序只使用的程序只使用20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISC:精简指令集计算机(精简指令集计算机(Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPU硬件结构设计变得更为简单硬件结构设计变得更为简单 指令集中的大多数指令只需
5、要执行简单和基本的功能; 减少存储器访问指令; 芯片逻辑采用硬布线逻辑; 减少指令数和寻址方式 指令译码简化。典型的高性能典型的高性能RISC处理器处理器 MIPS公司的SGI:MIPS(1986) SUN公司的SPARC(1987) HP公司的PA-RISC, IBM, Motorola公司的PowerPC DEC、Compac公司的Alpha AXP IBM的RS6000(1990)第一台Superscalar RISC机 中国矿业大学信息与电气工程学院CISC与RISC的对比类别CISCRISC指令系统指令数量很多较少,通常少于100执行时间有些指令执行时间很长,如整块的存储器内容拷贝;
6、或将多个寄存器的内容拷贝到存贮器没有较长执行时间的指令编码长度编码长度可变,1-15字节编码长度固定,通常为4个字节寻址方式寻址方式多样简单寻址操作可以对存储器和寄存器进行算术和逻辑操作只能对寄存器进行算术和逻辑操作,Load/Store体系结构编译难以用优化编译器生成高效的目标代码程序 采用优化编译技术,生成高效的目标代码程序 冯冯诺依曼体系结构诺依曼体系结构哈佛体系结构哈佛体系结构冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0指令指令1指令指令2指令指令3指令指令4数据数据数据数据0
7、数据数据1数据数据21)取指令()取指令(Instruction Fetch):TF2)指令译码()指令译码(Instruction Decode):):TD3)执行指令()执行指令(Instruction Execute):):TE4)存储()存储(Storage):):TS冯冯诺依曼体系结构指令的执行周期诺依曼体系结构指令的执行周期T每条指令的执行周期:每条指令的执行周期:T= TF+TD+TE+TS1)数据与指令都存储在存储器中)数据与指令都存储在存储器中2)被大多数计算机所采用)被大多数计算机所采用冯冯诺依曼体系结构的特点诺依曼体系结构的特点指令寄存器指令寄存器控制器控制器数据通道数据
8、通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据哈佛体系结构哈佛体系结构1)程序存储器与数据存储器分开)程序存储器与数据存储器分开2)提供了较大的存储器带宽)提供了较大的存储器带宽3)适合于数字信号处理)适合于数字信号处理4)大多数)大多数DSP都是哈佛结构都是哈佛结构哈佛体系结构的特点哈佛体系结构的特点 ARM体系结构从最初开发到现在有了很大体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。的改进,并仍在完善和发展。ARM体系结构版本体系结构版本为了清楚地表达每
9、个为了清楚地表达每个ARMARM应用实例所使用应用实例所使用的指令集,的指令集,ARMARM公司定义了公司定义了6 6种主要的种主要的ARMARM指令集体系结构版本,以版本号指令集体系结构版本,以版本号V1V6V1V6表表示。示。 该版架构只在原型机该版架构只在原型机ARM1出现过,出现过,只有只有26位位的寻址空间的寻址空间,没有用于商业产品。,没有用于商业产品。 其基本性能有:其基本性能有: 基本的数据处理指令(无乘法);基本的数据处理指令(无乘法); 基于字节、半字和字的基于字节、半字和字的Load/Store指令;指令; 转移指令,包括子程序调用及链接指令;转移指令,包括子程序调用及链
10、接指令; 供操作系统使用的软件中断指令供操作系统使用的软件中断指令SWI; 寻址空间:寻址空间:64MB。ARM体系结构版本体系结构版本I 该版架构对该版架构对V1版进行了扩展,例如版进行了扩展,例如ARM2和和ARM3(V2a架构)。包含了架构)。包含了对对32位乘法指位乘法指令和协处理器指令的支持令和协处理器指令的支持。 版本版本2a是版本是版本2的变种,的变种,ARM3芯片采用了芯片采用了版本版本2a,是第一片采用片上,是第一片采用片上Cache的的ARM处处理器理器。同样为。同样为26位寻址空间,现已废弃不位寻址空间,现已废弃不再使用。再使用。ARM体系结构版本体系结构版本II V2版
11、架构与版本版架构与版本V1相比,增加了以下功能:相比,增加了以下功能: 乘法和乘加指令乘法和乘加指令; 支持协处理器操作指令支持协处理器操作指令; 快速中断模式快速中断模式; SWP/SWPB的最基本存储器与寄存器交换指令;的最基本存储器与寄存器交换指令; 寻址空间:寻址空间:64MBARM体系结构版本体系结构版本II ARM作为独立的公司,在作为独立的公司,在1990年设计的第年设计的第一个微处理器采用的版本一个微处理器采用的版本3的的ARM6。它作它作为为IP核、独立的处理器、具有片上高速缓存、核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成和写缓冲的集成CPU。 变种版本有变种版
12、本有3G和和3M。版本。版本3G是不与版本是不与版本2a向前兼容的版本向前兼容的版本3,版本版本3M引入了有符号引入了有符号和无符号数乘法和乘加指令和无符号数乘法和乘加指令,这些指令产,这些指令产生全部生全部64位结果。位结果。 V3架构对架构对ARM体系结构做了较大的改动体系结构做了较大的改动。ARM体系结构版本体系结构版本III 寻址空间增至寻址空间增至32位(位(4GB) 当前程序状态信息从原来的当前程序状态信息从原来的R15寄存器移到当前程序状寄存器移到当前程序状态寄存器态寄存器CPSR中(中(Current Program Status Register);); 增加程序状态保存寄存
13、器增加程序状态保存寄存器SPSR(Saved Program Status Register);); 增加了两种异常模式,使操作系统代码可方便地使用增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令数据访问中止异常、指令预取中止异常和未定义指令异常;异常; 增加了增加了MRS/MSR指令,以访问新增的指令,以访问新增的CPSR/SPSR寄存寄存器;器; 增加了从异常处理返回的指令功能。增加了从异常处理返回的指令功能。ARM体系结构版本体系结构版本III V4版架构在版架构在V3版上做了进一步扩充,版上做了进一步扩充,V4版版架构是目前应用最广的架构是目
14、前应用最广的ARM体系结构体系结构,ARM7、ARM8、ARM9和和StrongARM都采用都采用该架构。该架构。 V4不再强制要求与不再强制要求与26位地址空间兼容,而位地址空间兼容,而且明确了哪些指令会引起未定义指令异常。且明确了哪些指令会引起未定义指令异常。ARM体系结构版本体系结构版本IV 符号化和非符号化半字及符号化字节的存符号化和非符号化半字及符号化字节的存/取取指令;指令; 增加了增加了T变种,处理器可工作在变种,处理器可工作在Thumb状态,状态,增加了增加了16位位Thumb指令集指令集; 完善了软件中断完善了软件中断SWI指令的功能;指令的功能; 处理器系统模式引进特权方式
15、时使用用户寄处理器系统模式引进特权方式时使用用户寄存器操作;存器操作; 把一些未使用的指令空间捕获为未定义指令。把一些未使用的指令空间捕获为未定义指令。ARM体系结构版本体系结构版本IVARM和Thumb指令 简介ARMARM处理器是基于精简指令集计算机处理器是基于精简指令集计算机(RISC)(RISC)原理设计的,指令集和相关译码机制较为简原理设计的,指令集和相关译码机制较为简单。单。ARMARM体系结构在体系结构在V4V4版中增加了版中增加了1616位位ThumbThumb指指令集。令集。ARMARM指令集效率高,但是代码密度低指令集效率高,但是代码密度低; ;ThumbThumb指令集具
16、有较高的代码密度,却仍然指令集具有较高的代码密度,却仍然保持保持ARMARM的大多数性能上的优势,它是的大多数性能上的优势,它是ARMARM指令集的子集。指令集的子集。ARM7TDMI(-S)指令系统 ARM指令集与Thumb指令集的关系Thumb指令集具有灵活、小巧的特点ARM指令集支持ARM核所有的特性,具有高效、快速的特点ARM和Thumb状态切换 所有的ARM指令都是可以有条件执行的,而Thumb指令仅有一条指令具备条件执行功能。 ARM程序和Thumb程序可相互调用,相互之间的状态切换开销几乎为零。进入Thumb状态:当操作数寄存器的状态态位为1进入ARM状态:当操作数寄存器的状态态
17、位为0 V5版架构是在版架构是在V4版基础上版基础上增加了一些新的指增加了一些新的指令令,ARM10和和Xscale都采用该版架构。都采用该版架构。 新增命令包括:新增命令包括: 带链接和交换的转移带链接和交换的转移BLX指令;指令; 计数前导零计数前导零CLZ指令;指令; BRK中断指令;中断指令;ARM体系结构版本体系结构版本V 增加了数字信号处理指令(增加了数字信号处理指令(V5TE版);版); 为协处理器增加更多可选择的指令;为协处理器增加更多可选择的指令; 改进了改进了ARM/Thumb状态之间的切换效率;状态之间的切换效率; E增强型增强型DSP指令集,包括全部算法操作和指令集,包
18、括全部算法操作和16位乘法操作;位乘法操作; J支持新的支持新的JAVA,提供字节代码执行的硬,提供字节代码执行的硬件和优化软件加速功能。件和优化软件加速功能。ARM体系结构版本体系结构版本V V6版架构是版架构是2001年发布的,首先在年发布的,首先在2002年春年春季发布的季发布的ARM11处理器中使用。在降低耗电处理器中使用。在降低耗电量的同时,还量的同时,还强化了图形处理性能强化了图形处理性能。 通过追加有效进行多媒体处理的通过追加有效进行多媒体处理的SIMD(Single Instruction,Multiple Data,单指令多数据),单指令多数据)功能,将语音及图像的处理功能提
19、高到原型功能,将语音及图像的处理功能提高到原型机的机的4倍。倍。ARM体系结构版本体系结构版本VI 此架构在此架构在V5版基础上增加了以下功能:版基础上增加了以下功能: ThumbTM:35%代码压缩;代码压缩; DSP扩充:高性能定点扩充:高性能定点DSP功能;功能; JazelleTM:Java性能优化,可提高性能优化,可提高8倍;倍; Media扩充:音扩充:音/视频性能优化,可提高视频性能优化,可提高4倍。倍。ARM体系结构版本体系结构版本VIARM体系结构版本体系结构版本 ARM I ARM II ARM III ARM IV ARM V ARM VI ARM公司开发了很多系列的公司
20、开发了很多系列的ARM处理器核,处理器核,目前最新的系列已经是目前最新的系列已经是ARM11。 ARM7、ARM9、ARM9E和和ARM10为为4个通用个通用处理器系列。处理器系列。 每个系列提供一套相对独特的性能来满足每个系列提供一套相对独特的性能来满足不同应用领域的需求。不同应用领域的需求。ARM处理器系列处理器系列 ARM7系列系列 ARM9系列系列 ARM9E系列系列 ARM10E系列系列 ARM11系列系列 SecurCore系列系列 Intel Xscale系列系列 Intel StrongARM系列系列ARM处理器系列处理器系列 低功耗的低功耗的32bitRISC处理器,处理器,
21、冯冯诺依曼体系结构诺依曼体系结构。极低。极低的功耗,适合便携式产品。的功耗,适合便携式产品。 具有嵌入式具有嵌入式ICE-RT逻辑,调试开发方便。逻辑,调试开发方便。 能提供能提供0.9MIPS的的三级流水线三级流水线结构;结构; 代码密度高,兼容代码密度高,兼容16位的位的Thumb指令集指令集; 广泛支持操作系统,包括广泛支持操作系统,包括Windows CE、Linux、Palm OS、VxWorks等;等; 指令系统与指令系统与ARM9系列、系列、ARM9E系列和系列和ARM10E系列兼系列兼容,便于用户的产品升级换代;容,便于用户的产品升级换代; 主频最高可达主频最高可达130MIP
22、S。ARM处理器处理器ARM7系列系列主要应用于:工业控制、主要应用于:工业控制、Internet设备、网络和调制解调器设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。设备、移动电话等多种多媒体和嵌入式应用。 包括六种类型:包括六种类型:ARM7TDMI、ARM7TDMI-S、 ARM710T、 ARM720T、 ARM740T、 ARM7EJ; ARM7TDMI是目前最广泛的是目前最广泛的32位嵌入式位嵌入式RISC处处理器,属低端理器,属低端ARM处理器核。处理器核。ARM处理器处理器ARM7TDMI系列系列ARM7 T D M I - SARM7TDMI的可综合的可综合(s
23、ynthesizable)版本(软)版本(软核),对应用工程师来说核),对应用工程师来说其编程模型与其编程模型与ARM7TDMI一致;一致;嵌入式嵌入式Embedded-ICE,支,支持片上断点和调试点;持片上断点和调试点;支持支持64位乘法;位乘法;支持片上调试支持片上调试Debug;支持高密度支持高密度16位的压缩位的压缩Thumb指令集指令集中国矿业大学信息与电气工程学院 ARM7的产品线。的产品线。 ARM7TDMI:同时具备四个模块,当然用户也可选择其:同时具备四个模块,当然用户也可选择其中的几个或一个。中的几个或一个。 ARM7TDMI-S:软件与:软件与ARM7TDMI完全兼容,
24、硬件预留完全兼容,硬件预留功能扩展口。功能扩展口。 ARM710T:ARM7TDMI+8K Cache+MMU,Cache:片内:片内缓存,提高缓存,提高CPU性能,性能,MMU:内存管理单元。:内存管理单元。 ARM740T: ARM7TDMI+8K Cache+Protection Unit。 ARM720T: ARM7TDMI+8K Cache+WinCE Support。ARM处理器处理器ARM7TDMI系列系列 5级流水线;级流水线; 哈佛体系结构;哈佛体系结构; 支持支持32位位ARM指令集和指令集和16位位Thumb指令集指令集。 全性能的全性能的MMU,支持,支持Windows
25、 CE、Linux、Palm OS等多种主流嵌入式操作系统;等多种主流嵌入式操作系统; 支持数据支持数据Cache和指令和指令Cache,具有更高的指令,具有更高的指令和数据处理能力。和数据处理能力。ARM处理器处理器ARM9系列系列主要应用于:无线设备、仪器仪表、安全系统、机顶盒、主要应用于:无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码照相机和数码摄像机。高端打印机、数码照相机和数码摄像机。 支持支持DSP指令集;指令集; 5级整数流水线,指令执行效率更高;级整数流水线,指令执行效率更高; 支持支持32位位ARM指令集和指令集和16位位Thumb指令集;指令集; 支持支持VFP9浮
26、点处理协处理器;浮点处理协处理器; 全性能的全性能的MMU,支持,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统;等多种主流嵌入式操作系统; MPU支持实时操作系统;支持实时操作系统; 支持数据支持数据Cache和指令和指令Cache; 主频最高可达主频最高可达300MIPS。ARM处理器处理器ARM9E系列系列主要应用于:下一代无线设备、数字消费品、成像设备、主要应用于:下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。工业控制、存储设备和网络设备等领域。 与同等的与同等的ARM9比较,在同样的时钟频率下,性能提比较,在同样的时钟频率下,
27、性能提高了近高了近50%,功耗极低;,功耗极低; 支持支持DSP指令集;指令集; 6级整数流水线,指令执行效率更高;级整数流水线,指令执行效率更高; 支持支持32位位ARM指令集和指令集和16位位Thumb指令集。指令集。 支持支持VFP10浮点处理协处理器。浮点处理协处理器。 全性能的全性能的MMU,支持,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。等多种主流嵌入式操作系统。 支持数据支持数据Cache和指令和指令Cache; 主频最高可达主频最高可达400MIPS; 内嵌并行读内嵌并行读/写操作部件。写操作部件。ARM处理器处理器ARM10E系列系列主要应
28、用于:下一代无线设备、数字消费品、成像设备、主要应用于:下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。工业控制、通信和信息系统等领域。 专为安全需要设计,提供了完善的专为安全需要设计,提供了完善的32位位RISC技术的安全解决方案;技术的安全解决方案; 灵活的保护单元,以确保操作系统和应用数灵活的保护单元,以确保操作系统和应用数据的安全。据的安全。 采用软内核技术,防止外部对其进行扫描探采用软内核技术,防止外部对其进行扫描探测;测; 可集成用户自己的安全特性和其他协处理器。可集成用户自己的安全特性和其他协处理器。ARM处理器处理器SecurCore系列系列主要应用于:对
29、安全性要求较高的应用产品及应用系统,主要应用于:对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统如电子商务、电子政务、电子银行业务、网络和认证系统等领域。等领域。 Intel StrongARM SA-1100系列微处理器是采系列微处理器是采用用ARM体系结构高度集成的体系结构高度集成的32位位RISC微处理微处理器。器。 融合融合Intel公司的设计和处理技术以及公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容体系结构的电源效率,采用在软件上兼容ARM V4,同时兼具,同时兼具Intel技术优点。技术优点。ARM处理器处理器Stron
30、gARM系列系列主要应用于:便携式通信产品和消费类电子产品。主要应用于:便携式通信产品和消费类电子产品。 基于基于ARMv5TE体系结构的解决方案,是一款体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器;全性能、高性价比、低功耗的处理器; 支持支持16位的位的Thumb指令和指令和DSP指令集。指令集。ARM处理器处理器Xscale系列系列已使用在:数字移动电话、个人数字助理和网络产品等场已使用在:数字移动电话、个人数字助理和网络产品等场合。合。ARM系列总结系列总结ARM7TDMI4T1支持Halfword 和signed halfword / byte 和System mode支
31、持Thumb指令集24ARM9TDMIARM720TARM940T改良的ARM/Thumb 交互作用以及CLZ 指令5TESaturated mathsDSP multiply-accumulate instructionsXScaleARM1020EARM9E-SARM966E-S3早期的ARMsARM9EJ-S5TEJARM7EJ-SARM926EJ-SJazelle支持Java字节码6ARM11SIMDARM版本及系列总结版本及系列总结ARM7 TDMI 内核结构 基于精简指令集RISC结构,指令集和相关的译码机制相对简单 结构图,书P32,图2-7 指令集包含11种基本类型 2种类型:
32、片上算术逻辑单元、桶式移位器和乘法器(在31个寄存器间执行) 3种类型:指令控制数据(存储器和寄存器之间) 3种类型:控制流程和特权级执行 3种类型:控制外部的协处理器中国矿业大学信息与电气工程学院ARM7DI CPUCacheLCD控制器控制器总线控制器总线控制器PWM82C54计数器计数器/定时器定时器16C450 UART82C55可编程外围接口可编程外围接口CPU部分部分JTAG调试接口调试接口 中断中断/复位复位控制部分控制部分典型应用:典型应用:液晶显示系统液晶显示系统中国矿业大学信息与电气工程学院ARM7TDMI内核内核Cache(2K)CPU部分部分并口接口并口接口双通道双通道
33、DMAUART/SIO中断中断控制器控制器典型应用:典型应用:网络打印机网络打印机可编程方可编程方波发生器波发生器存储器控制器存储器控制器总线接口总线接口定时器定时器看门狗定看门狗定时器时器Derasterizer/shifter显示屏显示屏中国矿业大学信息与电气工程学院ARM7TDMI内核内核ICE接口接口外部总线接口外部总线接口片内存储器片内存储器典型应用:典型应用:工控系统工控系统中国矿业大学信息与电气工程学院 ARM720T内核内核 控制电路控制电路 DAI:数字音频接口:数字音频接口 LCD控制器控制器 存储器控制器存储器控制器 DC-DC变换器(变换器(PWM) 27位通用位通用I
34、/O 动态可编程时钟动态可编程时钟 其它控制电路其它控制电路典型应用:典型应用:音频系统音频系统 ARM710T 8K 统一的 cache 完整的内存管理单元(mmu),支持虚拟地址和存储器保护 写缓冲ARM720T同ARM710T,但支持 WinCEARM740T8K 统一的 cache内存管理单元写缓冲ARM7TDMI内核地址地址数据读AMBA接口写缓冲MMU数据写数据ARM7xxT控制逻辑CacheAMBA总线接口JTAG 和非 AMBA 信号CP15高速缓存(Cache)1 1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高微处理器的时钟频率比内存速
35、度提高快得多,高速缓存可以提高内存的平均性能。速缓存可以提高内存的平均性能。2 2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。部分主存内容的拷贝。 CPU高速缓存控制器CACHE主存数据数据地址 2.3 ARM 2.3 ARM处理器结构处理器结构从以下四个方面介绍:ARM和Thumb状态 RISC技术流水线技术超标量执行 取指令取指令 3执行指令执行指令 3二级流水二级流水串行执行串行执行取指令取指令 取指令单元取指令单元 完成完成总有一个部件总有一个部件 空闲空闲指令预取指令预取若若 取指取指
36、和和 执行执行 阶段时间上阶段时间上 完全重叠完全重叠指令周期指令周期 减半减半 速度提高速度提高 1 倍倍执行指令执行指令 执行指令单元执行指令单元 完成完成取指令取指令 1执行执行指令指令 1取取指令指令 2执行执行指令指令 2取取指令指令 3执行指令执行指令 3取指令取指令 2执行指令执行指令 2取指令取指令 1执行指令执行指令 1流水线流水线(Pipeline)(Pipeline)技术:几个指令可以并行执行技术:几个指令可以并行执行 提高了提高了CPUCPU的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动译码译码取指取指执行执行add译码译码取指取指执行执行sub译码
37、译码取指取指执行执行mov时间时间AddSubmov流水线流水线(pipeline)是是 Intel首次在首次在486芯片中开始使用的。芯片中开始使用的。流水线的工作方式就象工业生产上的装配流水线。流水线的工作方式就象工业生产上的装配流水线。 为增加处理器指令流的速度,为增加处理器指令流的速度,ARM7 系列使用系列使用3级流级流水线水线. 允许多个操作同时处理,比逐条指令执行要快。允许多个操作同时处理,比逐条指令执行要快。 PC指向正被取指的指令,而非正在执行的指令指向正被取指的指令,而非正在执行的指令FetchDecodeExecute从存储器中读取指令解码指令寄存器读(从寄存器Bank)
38、移位及ALU操作寄存器写(到寄存器Bank )PCPCPC - 4PC-2PC - 8PC - 4ARMThumb 最佳流水线该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数 (CPI) = 1 操作操作周期周期 1 2 3 45 6 ADD SUB MOV AND ORR EOR CMP RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetch LDR 流水线举例该
39、例中,用6周期执行了4条指令指令周期数 (CPI) = 1.5 周期周期 操作操作123456 ADD SUB LDR MOV AND ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch 缩短程序执行时间缩短程序执行时间ARM的流水线设计问题的流水线设计问题:执行一段程序所需时间;:执行一段程序所需时间;:执行该段程序的指令条数;:执行该段程序的指令条数;:执行每条指令的平均时钟周期数;:执行每条指令的平均时钟周期数;:处理器的时钟频率。
40、:处理器的时钟频率。降低降低CPI提供时钟频率提供时钟频率 解决流水线的相关问题解决流水线的相关问题ARM的流水线设计问题的流水线设计问题1)流水线结构相关问题:)流水线结构相关问题:资源冲突导致资源冲突导致对数据通路访问的冲突对数据通路访问的冲突对寄存器访问的冲突对寄存器访问的冲突措施:措施:分离式指令分离式指令Cache和数据和数据CacheALU中采用独立的加法器完成地址计算中采用独立的加法器完成地址计算 解决流水线的相关问题解决流水线的相关问题ARM的流水线设计问题的流水线设计问题2)流水线数据相关问题:)流水线数据相关问题:当前指令需要之前指令执行的结果,当前指令需要之前指令执行的结
41、果,而之前指令均在流水线中重叠执行。而之前指令均在流水线中重叠执行。写后读写后读写后写写后写读后写读后写措施:措施:定向技术:定向技术:将之前指令运算结果直接传递给后面需要的指令,将之前指令运算结果直接传递给后面需要的指令,不必写入寄存器。不必写入寄存器。流水线互锁技术:流水线互锁技术:通过编译器及汇编程序员修改来减少管道互通过编译器及汇编程序员修改来减少管道互锁的数量。锁的数量。 解决流水线的相关问题解决流水线的相关问题ARM的流水线设计问题的流水线设计问题3)流水线控制相关问题:)流水线控制相关问题:流水线遇到分支指令和其他流水线遇到分支指令和其他会改变会改变PC值的指令值的指令 暂停分支
42、指令之后的所有指令,直到分支指令确定了暂停分支指令之后的所有指令,直到分支指令确定了新的新的PC值为止。值为止。措施:措施:引入延时分支:引入延时分支:直接跟在分支指令后面的指令被执行,保证流直接跟在分支指令后面的指令被执行,保证流水线处于满的状态。水线处于满的状态。尽早计算分支转移成功时的尽早计算分支转移成功时的PC值:值:通过采用一个专用加法器计通过采用一个专用加法器计算分支的目标地址。算分支的目标地址。引入控制阻滞延时引入控制阻滞延时 (分支损失)(分支损失)中国矿业大学信息与电气工程学院InstructionFetch Shift + ALUMemoryAccessRegWriteRe
43、gReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbInst DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI三级流水线三级流水线五级流水线五级流水线中国矿业大学信息与电气工程学院指令指令取指取指 移位移位+ ALU寄存器寄存器写写寄存器寄存器读读寄存器寄存器译码译码FETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM 或或
44、Thumb指令解码指令解码ARM10指令地址 生成移位移位+ ALU数据数据 Cache 接口接口寄存寄存器器写写FETCHDECODEEXECUTEMEMORYWRITE寄存器寄存器读读+ 结果结果 前向迁移前向迁移 + 记分板记分板乘法乘法乘乘 加加协处理器协处理器 数据接口数据接口分支预测指令取指ISSUE寄存器寄存器访问访问数据数据+ 分支地址分支地址生成生成ARM 或或 Thumb指令解码指令解码协处理器协处理器 指令发出指令发出五级流水线五级流水线六级流水线六级流水线预取预取(Fetch)译码译码(Decode)执行执行(Execute)预取预取(Fetch)译码译码(Decode
45、)执行执行(Execute)访存访存(Memory)写入写入(Write)预取预取(Fetch)译码译码(Decode)发送发送(Issue)预取预取(Fetch)预取预取(Fetch)执行执行(Execute)访存访存(Memory)写入写入(Write)译码译码(Decode)发送发送(Issue)执行执行(Execute)转换转换(Snny)访存访存(Memory)写入写入(Write)ARM7ARM9ARM10ARM11ARM的流水线技术的流水线技术中国矿业大学信息与电气工程学院 超标量技术:超标量技术:通过重复设置多套指令执行部件,通过重复设置多套指令执行部件,同时处理并完成多条指令
46、,实现并行操作来达同时处理并完成多条指令,实现并行操作来达到提高处理速度的目的。到提高处理速度的目的。控制控制指令指令1寄存器寄存器指令单元指令单元指令单元指令单元指令指令2中国矿业大学信息与电气工程学院 超标量技术:超标量技术:超标量超标量CPU采用多条流水线结构。采用多条流水线结构。执行1取指指令译码2译码1执行2执行1取指译码2译码1执行2流水线1流水线2数据回写输输入入输输出出存放存放程序程序和和数据数据 ARM体系中的存储空间体系中的存储空间 ARM体系使用单一的平板地址空间。体系使用单一的平板地址空间。 地址空间大小地址空间大小 个个8位的字节。位的字节。 其单元地址为无符号的其单
47、元地址为无符号的32位数,范围为位数,范围为0 ARM体系的也可视为地址空间大小体系的也可视为地址空间大小 个个32位位的字。的字。 其其单元地址为无符号的单元地址为无符号的30位位数,范围为数,范围为0 地址为地址为A的字数据包括的字数据包括A,A+1,A+2,A+3中的中的4字节内容字节内容 ARM体系的也可视为地址空间大小体系的也可视为地址空间大小 个个16位位的半字。的半字。 其其单元地址为无符号的单元地址为无符号的31位位数,范围为数,范围为0 地址为地址为A的字数据包括的字数据包括A,A+1中的中的2字节内容字节内容 ARM处理器支持一下处理器支持一下6种数据类型:种数据类型: 8
48、位有符号和无符号字节;位有符号和无符号字节; 16位有符号和无符号半字;(位有符号和无符号半字;(2字节边界对齐)字节边界对齐) 32位有符号和无符号字;(位有符号和无符号字;(4字节边界对齐)字节边界对齐)ARM操作面向操作面向32位操作数,以字为单位对齐;位操作数,以字为单位对齐;Thumb操作面向操作面向16位操作数,以半字为单位对齐;位操作数,以半字为单位对齐; ARM体系结构将存储器看作是从零地址开始的字体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置第储的字数据,从第四
49、个字节到第七个字节放置第二个存储的字数据,依次排列。二个存储的字数据,依次排列。 作为作为32位的微处理器,位的微处理器,ARM体系结构所支持的最体系结构所支持的最大寻址空间为大寻址空间为4GB(232字节)。字节)。 ARM体系结构的存储器格式体系结构的存储器格式 ARM体系结构可以用两种方法存储字数据,称之体系结构可以用两种方法存储字数据,称之为大端格式和小端格式。为大端格式和小端格式。 大端格式大端格式(big-endian):字数据的高字节存储在低:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中地址中,而字数据的低字节则存放在高地址中 ARM体系结构的存储器格式(大端)
50、体系结构的存储器格式(大端) 小端格式小端格式(little-endian):与大端存储格式相反。:与大端存储格式相反。低地址中存放的是字数据的低字节,高地址存放低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。的是字数据的高字节。 ARM体系结构的存储器格式(小端)体系结构的存储器格式(小端)nARM 可以用可以用 little/big endian 格式存取数据格式存取数据. r0 = 0 x11223344STR r0, r1LDRB r2, r1r1 = 0 x00Memory3 2 1 0 0 1 2 3Byte Lane312423 16158 7011 22 33 4