1、第第2 2章章 嵌入式处理器体系结构嵌入式处理器体系结构 讲授内容讲授内容:ARM处理器的编程模型 六流水线技术六流水线技术 1.背景 采用流水线技术后,能够提高处理器的性能。T=(Ninst*CPI)/fclk 单纯的提高fclk会带来处理器功耗的增加 程序所包含指令的数目基本不变 减小CPI是改善处理器性能最有效的方法-采用流水线技术(指令指令的角度和处理器处理器的角度)2特点 流水线的一条指令只有在完全完全通过“执行”阶段才被处理 在指令“执行”阶段,pc总是指向当前指令当前指令地址加8字节的地方(使用pc计算相对偏移量时这点很重要)执行一条分支指令或直接修改pc而发生跳转时,会使ARM
2、内核清空流水线 即使产生一个中断,处于“执行”阶段的指令也将会完成(流水线中其它指令被放弃,处理器将从向量表的适当入口开始填充流水线)ARM10使用分支预测技术,通过预测可能的分支并在指令执行前装载新的分支地址,从而减小清空流水线的影响 3.5级流水线 随着流水线级数的增加系统性能也越好,但也意味着可能更多的产生数据相关,需要相应技术来缓解。5级流水线采用哈佛结构,增加了硬件资源使访问指令和数据互不影响 常见的3种相关:结构相关(即资源冲突 资源重复 I-cache和D-cache、数据相关(采用定向技术等加以解决)和控制相关(借助于指令预测来解决)4.关于PC=PC+8 ARM7采用3级流水
3、线,ARM9采用5级流水线,但二者在程序中使用PC时都同样涉及PC+8的问题。3级和5级流水线中“执行”阶段都位于第3个阶段 PC的值总是保存正在被取指的指令的地址 PC=PC+4x中的x和流水线的级数没有关系,只和“执行阶段”所处的“位置”有关七异常中断七异常中断 1.异常的定义 任何打断程序正常执行顺序的情况都被视为异常(中断是一种特殊的异常,是由外设引起的程序执行顺序的间断);异常可以翻译为:a.Exception从处理器被动接受异常角度而言;b.Interrupt从处理器主动申请角度而言;程序的运行状态总是在正常执行和处理异常之间来回切换,所以异常处理是嵌入式系统的核心内容之一。2.异
4、常的类型 2-1.ARM支持7种类型的异常中断 复位异常-处理器的nReset电平有效时产生 指令预取中止异常-若处理器预取指令的地址不存在或该地址不允许当前指令访问 数据中止异常-数据访问指令的地址不存在或该地址不允许当前指令访问 FIQ异常-当外部事件促使nFIQ=0且CPSR中的F=0时触发该异常 IRQ异常-系统外设通过该异常请求中断服务 未定义指令异常-通过软件仿真扩展ARM/Thumb指令集 SWI异常-可用于用户模式下的程序调用特权操作指令,实现系统功能调用(如执行特定的管理功能)2-2.异常对应的工作模式和地址向量 7种异常对应于5种工作模式(即5种异常模式),每种异常的产生都
5、会导致内核进入一种特定的模式。系统响应异常中断时,会把pc设置为一个特定的存储器地址-向量表。3.异常的优先级 在七种异常中有三种是中断-FIQ、IRQ和软件中断,共分为6个等级,如下表所示 表格中的顺序只是一般情况下各种异常的相对级别关系,实际中的异常处理顺序不一定和表格的完全一致,而和系统所采用的具体机制有关。4.异常的响应 4-1.概述 当异常中断发生后,处理器首先执行完当前处于执行阶段的命令,然后进入异常中断响应过程 内核的异常处理是系统自动完成的,不需要人工的干预 Reset异常不需要返回,而其他的6种异常均需要返回到原程序继续执行。4-2响应过程 将CPSR复制到相应的SPSR_中
6、 将下一条指令的地址存入LR_中(异类型不同,保存的地址也不同)根据异常类型强行设置CPSR运行模式位,并使处理器状态进入ARM状态 强制PC跳转到异常向量表的相应入口处 设置中断禁止位 到此,系统进入到相应的工作模式且PC也已经指向异常向量表的入口处准备执行异常处理程序。5.异常的返回 5-1.返回过程 修正链接寄存器LR的值并复制到PC 将SPSR_复制回CPSR 若在进入异常处理时设置了中断禁止位,则要在此清除 在进入异常时PC LR_mode的工作是由“硬件”完成的,而从异常返回时LR_mode PC的工作是由程序员用“软件”来完成的。5-2.确定返回地址 从异常处理中返回时所作的工作
7、和进入异常前所作的工作基本是相反的,但是对于返回地址值的设置则要特别加以重视。在程序的跳转和处理异常时,系统为了正确的返回会对lr的取值进行一次自动调整:lrlr0 x04。此操作对于程序跳转指令(B、BL等)适用,但对异常则不能通用,程序员要根据异常的具体情况再次对lr的值进行一次人为的调整。未定义指令异常和SWI异常-B指令相当于SWI或未定义指令,异常是在B的执行阶段被激发,且应返回至下一条指令,故不用修改LR值;预取指异常、IRQ和FIQ异常-A指令执行期间出现异常,系统响应异常,B指令在异常返回后应被执行,且应返回至本指令重新执行,故LR值要减4;数据中止异常-B指令相当于触发异常的
8、指令,且是在B执行阶段完成后(即执行后续的数据操作时)激发异常,此时PC值由PC+8更新至PC+12,且要返回本指令重新执行,故LR要减8。6.举例 6-1IRQ异常响应过程如下 首先,将下一条指令的地址(PC+4)保存至LR_irq;其次,复制当前CPSR至SPSR_irq;然后,将向量表地址0 x00000018写入PC(同时,ARM工作模式发生转变,CPSR中的I被设置为1);接着,PC从向量表处开始执行中断服务程序的跳转指令;最后,跳转指令将PC引导真正的服务程序处执行(在中断服务程序的起始处必须将服务程序要用到的R0-R12保存至IRQ堆栈空间)。2从IRQ异常中返回 八ARM体系结
9、构的缓存和内核扩展 1.ARM体系结构的缓存 2.内核扩展 2-1.硬件扩展是置于ARM内核外围的标准组件,可以改善性能、管理资源以及提供额外的功能,为处理特殊的应用提供了灵活性,每个ARM处理器都有不同的扩展;2-2.常见的硬件扩展有3种类型:cache、存储管理和协处理器接口和紧耦合器(TCMTightly Coupled Memory)。Cache改善性能的同时会带来程序执行时间的不可预测性(而对于实时系统来说代码执行的确定性至关重要),TCM是一种快速SRAM,能保证取指或操作数的时钟周期数;ARM内核的存储器管理硬件有3种类型:无保护(没有提供扩展,没有硬件保护)、MPU(提供有限保护的存储器保护单元)、MMU(提供全面保护的存储器管理单元);协处理器通过扩展指令集或提供配置寄存器来扩展内核处理功能,本身通过一组专门的、提供load/store类型接口的ARM指令访问。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。