《微型计算机原理及应用》课件第8章 (2).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《微型计算机原理及应用》课件第8章 (2).ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机原理及应用 微型计算机原理及应用课件第8章 2 微型计算机 原理 应用 课件
- 资源描述:
-
1、第8章总线8.1 概述8.2 ARM处理器8.3 Inter PXA 27X介绍习题第8章总线8.1.1 PXA27X概述概述PXA27X是一种高性能、低功耗(可达到MIPS/mW)、功能强劲的SOC处理器,它采用Intel公司的XScale结构。在PXA27X中包括了除浮点运算指令之外的全部ARM V5TE的指令集,同时还包括Intel公司的整数无线MMX指令。这就使得该处理器的指令功能及对多媒体信号的处理能力十分强大。8.1 概概 述述第8章总线PXA270有两种封装形式:13mm13mm的FVBGA和23mm23mm的PBGA。前者有356条球状引线而后者有360条球状引线。PXA27X
2、的结构框图如图8.1所示。在图8.1中,实线框起来的各个部分组成了PXA27X芯片,实线框之外是芯片外接的部分。第8章总线由图8.1可以看到,在硬件上PXA27X包括如下部分:PXA27X内部集成有4个体的SRAM,每个体64KB,4个体共256KB。PXA27X内部有LCD控制器,可以支持显示分辨度达800600像素的LCD显示。该处理器集成有存储器控制器(见图8.1虚线框部分),该控制器提供了各种控制信号,用以支持芯片外部外接SDRAM、闪速存储器、PC卡等存储器件的工作。在PXA27X外部最多可接1GB的SDRAM、384MB的闪速存储器。第8章总线图8.1 PXA27X处理器结构框图第
3、8章总线PXA27X内部集成有USB主控制器,也集成有USB的客户控制器。这样一来,在未来的工作中,PXA27X既可工作为主控制器,又可以作为系统中的客户接受其他USB主控制器的管理。PXA27X集成有电源管理模块,对芯片上电、睡眠、看门狗等多种功能实施管理。PXA27X有时钟管理模块,能对片内多种时钟进行管理。第8章总线在PXA27X中集成了多种外设接口,在图8.1的左侧可以看到,许多经常用到的外设(总线)接口均已集成在芯片中。同时,这些外设(总线)接口引线中,有许多都是可以双重定义或多重定义的,既可以定义为某种外设的接口信号引线,当不用该外设时,这些引线又可以用作通用的输入/输出信号线,这
4、就是图8.1中所标的通用I/O(GPI/O)。第8章总线为测试芯片方便,PXA27X还集成有JTAG接口。通过上面的描述,我们可以了解到PXA27X处理器的大致组成。显然,其结构是比较复杂的,功能也非常强。在本章后面的内容中,将对PXA27X的某些部分进行详细讲述,但不可能将所有内容全都说清楚,因为PXA27X所涉及的内容实在太多了。第8章总线8.1.2 Intel XScale结构结构 当前,在厂家设计SOC时,都是将多个处理器的功能整合到SOC中,例如将ARM与DSP、MCU与DSP集成在SOC中。集成电路加工技术使线条宽度达到几十纳米,使这种多个处理器的结合成为现实。Intel XSca
5、le结构的处理器就是这种理念的体现。1Intel XScale结构处理器硬件结构处理器硬件Intel XScale结构处理器硬件结构框图如图8.2所示。第8章总线图8.2 XScale结构框图第8章总线2Intel XScale硬件结构说明硬件结构说明由图8.2可以看到这种结构的处理器是由哪些部分构成的。下面将简单说明硬件的各部分。Intel XScale是以ARM公司的RISC处理器ARM V5TE为基础的,再将功能监视单元CP14、配置寄存器CP15、乘法/累加器CP0(协处理器)等16个协处理器整合进去,使得由Intel XScale为处理器核的PXA27X系列的处理器具有很强的处理能力
6、。第8章总线在Intel XScale核中还集成了具有单指令多数据(SIMD)结构的协处理器,能够完成整数的MMX指令及SIMD扩展指令(SSE),更有利于多媒体信号的处理。在Intel XScale中,有三部分高速缓存Cache及相应的存储器管理单元,无疑对提高Intel XScale的总体性能大为有利。Intel XScale具有对外的协处理器接口,还可以外接诸如DSP这样的处理器。在PXA270中就可外接专门用于多媒体处理的单指令流多数据流(SIMD)协处理器。第8章总线Intel XScale中有对嵌入式系统非常重要的两类中断:一般中断IRQ和快速中断FIQ。在Intel XScale
7、中还包括用于测试的DEBUG及JTAG。显然,在Intel XScale中还有超级流水线、分支预测等一系列提高性能的硬件措施。考虑到读者将来主要是应用SOC芯片构成嵌入式系统而不是设计SOC芯片,对于Intel XScale更详细的内容不再说明。第8章总线8.2 ARM处理器处理器8.2.1 ARM处理器系列处理器系列ARM处理器是由ARM公司设计的,这是一家专门设计IP(知识产权)的供应商。该公司既不生产芯片也不生产整机,只卖IP核。但该公司所设计的ARM处理器是32位的RISC处理器,由于其性能高、功耗低、性价比高,已被全球各大半导体公司所使用。第8章总线1ARM体系结构体系结构ARM体系
8、结构从诞生至今共有六个版本,从V1到V6。显然,版本低的功能要差一些,版本愈高功能愈强。ARM公司依据不同的体系结构版本设计出多种ARM处理器。这些处理器在功能上有一些差异,这就形成了ARM处理器的多种不同变种,主要的有如下几种:1)T变种T变种是指在ARM处理器中包含有Thumb指令集。ARM处理器指令的长度是固定的,所有的指令均为32位。在其T变种中除32位指令外还包括指令长度为16位的Thumb指令集。第8章总线2)M变种M变种在ARM指令集中包含有4条长乘法指令,这些指令能完成32位32位=64位的乘法及32位32位+64位=64位的乘加运算的功能。3)E变种E变种为增强DSP(数字信
9、号处理器)指令变种,在该变种的ARM指令集中包含一些典型的完成DSP算法的一些指令。第8章总线4)J变种该变种将Java加速器Jazelle加到ARM处理器中,可以大大提高Java程序的运行速度。5)SIMD变种该变种将单指令流多数据流的系统结构思想加入到ARM处理器中,这可以有效地提高对多媒体信号音频及视频信号的处理能力。第8章总线2ARM/Thumb体系结构命名体系结构命名目前正在使用的ARM/Thumb体系结构版本如表8.1所示。由表8.1可以看到,在PXA27X中所集成的ARM v5TE版本的处理器已经具有相当好的性能。第8章总线表表8.1 ARM的体系结构版本的体系结构版本名 称 指
10、令集 版本号 Thumb 指令版本 M 变种 J 变种 SIMD 变种 E 变种 ARMv3 3 无 无 无 无 无 ARMv3M 3 无 有 无 无 无 ARMv4xM 4 无 无 无 无 无 ARMv4 4 无 有 无 无 无 ARMv4TxM 4 1 无 无 无 无 ARMv4T 4 1 有 无 无 无 ARMv5xM 5 无 无 无 无 无 ARMv5 5 无 有 无 无 无 ARMv5TxM 5 2 无 无 无 无 ARMv5T 5 2 有 无 无 无 ARMv5TExP 5 2 有 无 无 有,少几条指令 ARMv5TE 5 2 有 无 无 有 ARMv5TEJ 5 有 有 有 无
11、 有 ARMv 6 6 有 有 有 有 有 第8章总线8.2.2 ARM处理器的工作模式及寄存器处理器的工作模式及寄存器1ARM处理器的工作模式处理器的工作模式ARM处理器会运行在如下7种工作模式之下:1)用户模式usr大多数应用程序都工作在用户模式之下,在此模式之下应用程序不能使用受操作系统保护的资源。也就是说,用户模式具有较低的资源利用级别。第8章总线2)特权模式svc这是供操作系统使用的一种保护模式。操作系统工作在特权模式之下,原则上允许它控制系统的所有资源。3)数据中止模式abt该模式用于实现虚拟存储器或对存储器的保护。4)未定义指令中止模式und这种模式用于对硬件协处理器软件仿真。第
12、8章总线5)一般中断请求模式irq这种模式用于一般的外部中断请求,类似于前面8086的INTR。6)快速中断请求模式fiq该模式支持高速数据传送或通道方式,其具有更高的优先级。7)系统模式sys系统模式主要为操作系统任务所用,它与用户模式使用完全一样的寄存器。但在该摸式下,任务可以使用系统的所有资源,在这种意义上讲它也属于特权模式。第8章总线2ARM处理器的内部寄存器处理器的内部寄存器从本书前面的章节中已经看到,要学好、用好某种处理器,必须掌握好其内部寄存器。这对后面的指令系统、编程及应用都很重要。对于ARM处理器来说也是这样,读者必须认真理解该处理器的37个内部寄存器。ARM的内部寄存器如表
13、8.2所示。第8章总线表表8.2 不同工作模式下的寄存器不同工作模式下的寄存器用户 系统 特权 中止 未定义 irq fiq R0 同左 同左 同左 同左 同左 同左 R1 同左 同左 同左 同左 同左 同左 R2 同左 同左 同左 同左 同左 同左 R3 同左 同左 同左 同左 同左 同左 R4 同左 同左 同左 同左 同左 同左 R5 同左 同左 同左 同左 同左 同左 R6 同左 同左 同左 同左 同左 同左 R7 同左 同左 同左 同左 同左 同左 R8 同左 同左 同左 同左 同左 R8_fiq R9 同左 同左 同左 同左 同左 R9_fiq R10 同左 同左 同左 同左 同左
14、R10_fiq R11 同左 同左 同左 同左 同左 R11_fiq R12 同左 同左 同左 同左 同左 R12_fiq R13 同左 R13_svc R13_abt R13_und R13_irq R13_fiq R14 同左 R14_svc R14_abt R14_und R13_irq R14_fiq R15(PC)同左 同左 同左 同左 同左 同左 同左 同左 同左 同左 同左 CPSR 同左 SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq 第8章总线在ARM处理器的37个寄存器中,包括31个通用寄存器和6个状态寄存器。所有这些寄存器都是32
15、位的。由表8.2可以看到,ARM处理器工作在不同模式之下,所使用的寄存器是不一样的。一种模式对应一组寄存器,这一组寄存器包括通用寄存器R0R14、程序计数器PC和一个或两个状态寄存器。这些寄存器中,有一些是共用的,有一些则是不同模式所私有的。第8章总线1)通用寄存器通用寄存器为R0R15,它们又分为3类:不分组寄存器R0R7这8个32位的寄存器是为每一种ARM处理器运行模式所用,也就是说在每种模式下使用的同一个物理寄存器。在使用中必须注意到,当中断或异常发生时,要进行模式切换,这时就需要保护这些寄存器的内容免遭破坏,以便在中断(异常)返回时能接着中断(异常)前的状态继续执行。第8章总线 分组寄
16、存器R8R14这些寄存器在不同模式下访问的不是一个物理寄存器。由表8.2可以看到,当在fiq模式时,使用的是与R8R14对应的另外7个寄存器R8_fiqR14_fiq。在fiq模式下,原R8R14不再使用。在实际应用中,当响应fiq中断进入服务程序时,若服务程序不使用R8R14,则它们的内容可不必保护。第8章总线由表8.2还可以看到,对于R13和R14来说,除了在fiq模式下使用R13_fiq和R14_fiq之外,在特权、中止、未定义及一般中断模式下,也分别对应自己的R13和R14。这在编程使用ARM处理器时应予以注意,可以使用户保护现场(断点)的操作更加简单。另外,在使用中经常将R13用作堆
17、栈指针(指示器)。当然,也可以用其他寄存器作为堆栈指针。第8章总线R14称为连接寄存器(记为LR),它除了用作通用寄存器之外,还有两种特殊用途:(1)每种模式自己的R14中存放当前子程序的返回地址,当子程序结束时,利用R14很容易返回主程序。具体细节见本节后面的内容。(2)当异常发生时,可将该异常的特定的R14设置为此异常的返回地址,当该异常结束时,就很容易返回到异常发生时的程序。第8章总线 程序计数器(PC)R15程序计数器在概念上与前面几章所描述的80X86的指令指针类似,但由于ARM的特点,它又有许多特殊的地方。在ARM中,指令长度均为32位,而地址都是按字节编址的。因此,在这种情况下,
18、由于ARM的指令都必须按32位字对齐,故PC的最低两位必须为0。当ARM工作在Thumb状态下时,PC的最低位必须为0。因为Thumb的指令全都是16位的。当为改变程序执行顺序写入PC时,必须注意保证上述要求;否则将会产生不可预知的结果。第8章总线由于ARM采用流水线技术,当用指令读出PC值时,读出的PC值应是该指令的地址加8。显然,在Thumb状态下,用指令读出PC值时,读出的PC值应是该指令的地址加4。第8章总线2)程序状态寄存器程序状态寄存器有两种:当前程序状态寄存器CPSR和备份程序状态寄存器SPSR。前者是所有模式所共用的,而后者则是在特定的异常模式下每个模式自己所特有的,由表8.2
19、可以看得很清楚。CPSR和SPSR的格式是一样的,如图8.3所示为CPSR的格式。第8章总线图8.3 程序状态寄存器格式第8章总线由图8.3可以看到,程序状态寄存器包括如下几部分:条件标志位图8.3中,N、Z、C、V四位称为条件标志位,与前面第2章中所描述的8086的对应标志位非常类似。N:负标志位。当两数运算结果最高位为1时,N=1,表示运算结果为负数。若结果最高位为0,则N=0,表示运算结果为一正数。实际上它与8086的符号标志位SF没有什么区别。Z:零标志位。它与8086的零标志位ZF是一样的,不再解释。第8章总线C:进位标志。该位与8086的进位标志位CF不太一样:当执行加法指令结果有
20、进位时C1;结果没有进位时C0。当执行减法指令结果有借位时C0;结果没有借位时C1。V:溢出标志位。可与8086的溢出标志位OF一样理解。Q标志位在ARM处理器的E系列(带有增强DSP指令)或v5以上版本中,设置Q标志,用于标志执行增强DSP指令时是否发生溢出。第8章总线 控制位图8.3中最低8位为CPSR的控制位。它们用于对ARM功能的控制,利用指令可以修改这些控制位。a.中断禁止位中断禁止位其中I位与80X86中IF的功能是一样的,但定义相反。在这里,当I=0时,允许irq中断;当I=1时,禁止irq中断。与I位雷同,当F=0时,允许fiq中断;当F=1时,禁止fiq中断。b.T控制位控制
21、位T控制位用于控制ARM处理器执行ARM的32位指令和Thumb的16位指令之间进行切换。第8章总线当T=0时,ARM处理器执行ARM的32位指令;当T=1时,ARM处理器执行Thumb的16位指令。在v5及以上版本非T变种的ARM处理器中,T控制位的定义为:当T=0时,ARM处理器执行ARM的32位指令;当T=1时,执行下一条指令引起未定义异常。c.模式控制位模式控制位CPSR中的M0M4这5位用以控制ARM的运行模式,它们的不同编码可以规定ARM的模式。具体的规定及在此模式下可以使用的寄存器如表8.3所示。第8章总线表表8.3 模式控制位及模式下可访问的寄存器模式控制位及模式下可访问的寄存
22、器M4M0 模式 可访问的寄存器 0b10000 用户 R0R14,PC,CPSR 0b10001 FIQ R0R7,R8_fiqR14_fiq,PC,CPSR,SPSR_fiq 0b10010 IRQ R0R12,R13_irqR14_irq,PC,CPSR,SPSR_irq 0b10011 特权 R0R12,R13_svcR14_svc,PC,CPSR,SPSR_svc 0b10111 中止 R0R12,R13_abtR14_abt,PC,CPSR,SPSR_abt 0b11011 未定义 R0R12,R13_undR14_und,PC,CPSR,SPSR_und 0b11111 系统 R
23、0R14,PC,CPSR 第8章总线在表8.3中,用0bxxxxx表示0b之后为二进制编码。同时,表8.3中更加明确地指出了不同模式下可以访问的内部寄存器。其他位在CPSR中,除了上面定义的各位外,剩余的许多位尚未定义,留作今后扩展之用。SPSR的各位定义与CPSR相同,不需再作说明。第8章总线3ARM处理器的存储系统处理器的存储系统1)寻址空间ARM的内存以字节编址,最大地址空间为232,用十六进制表示为从0X00000000到0XFFFFFFFF。在ARM中0X后面的字符表示为十六进制数。ARM的地址空间也可以看做是230个32位的字单元或者是用231个16位的半字单元构成。第8章总线在前
24、面的章节中已经说过,在PC中加上带符号的偏移量可以实现程序的转移。在ARM中也是这样,执行转移指令可以实现程序的转移。转移的目的地址为:当前(转移)指令的地址+8+偏移量在前面讲述8086段内相对转移时,目的地址是当前指令的地址加2(短转移)或加3(近转移)再加位移量。在ARM中加8是因为其中有指令流水线而且ARM指令的长度都是4个字节。第8章总线2)内存存储格式在ARM存储器中,数据在内存中的存放有两种格式:(1)小端格式。这种存储格式是一个4个字节的字或一个两个字节的半字,总是小地址存放低字节,大地址存放高字节。其规则与前面的80X86是一样的。例如,一个32位的字0XA9876543,存
25、放在内存起始地址为0X30000000的顺序单元中,则最低字节43放入最小的0X30000000单元、65放入0X30000001单元,后面的字节依次存放。第8章总线(2)大端格式。大端格式与上述小端格式的存放顺序刚好相反,即小地址存放高字节,大地址存放低字节。小端格式通常是ARM的缺省配置,通过硬件输入可以配置存储格式。3)I/O地址映射如同前面提到的,ARM处理器采用内存与接口地址统一编址的方案。也就是说,内存与接口共用一个4G的地址空间,其中一部分分配给接口作为接口地址,其他部分用作内存地址。用于内存的接口不能用,而用于接口的内存也不能用。第8章总线8.2.3 ARM指令系统指令系统AR
展开阅读全文