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