




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 嵌入式处理器体系结构六流水线技术 1背景 采用流水线技术后,能够提高处理器的性能。这一结论可以从分析处理器执行一个程序所花费的时间得到(Ninst-程序所包含指令的数目,CPI-执行一条指令的平均周期数):T = ( Ninst*CPI )/fclk 单纯的提高fclk会带来处理器功耗的增加程序所包含指令的数目基本不变减小CPI是改善处理器性能最有效的方法-采用流水线技术(以3级流水线技术为例,硬件资源的功能被模块化并彼此独立,从指令的角度而言每条指令的执行时间是3个周期,但从处理器的角度而言每个周期完成了1条指令)。 2特点流水线的一条指令只有在完全通过“执行”阶段才被处理 在指令“
2、执行”阶段,pc总是指向当前指令地址加8字节的地方(使用pc计算相对偏移量时这点很重要) 执行一条分支指令或直接修改pc而发生跳转时,会使ARM内核清空流水线 即使产生一个中断,处于“执行”阶段的指令也将会完成(流水线中其它指令被放弃,处理器将从向量表的适当入口开始填充流水线)ARM10使用分支预测技术,通过预测可能的分支并在指令执行前装载新的分支地址,从而减小清空流水线的影响3.5级流水线随着主频的提高,每个周期内所能完成的任务就必须变得更简单(即流水线越多),系统性能也越好。但流水线级数的增加也意味着可能更多的产生数据相关,需要相应技术来缓解。5级流水线采用哈佛结构,增加了硬件资源使访问指
3、令和数据互不影响常见的3种相关:结构相关(即资源冲突 资源重复 I-cache和D-cache、数据相关(采用定向技术等加以解决)和控制相关(借助于指令预测来解决) 4. 关于PC=PC+8 ARM7采用3级流水线,ARM9采用5级流水线,但二者在程序中使用PC时都同样涉及PC+8的问题-对于二者而言都是PC=PC+8。3级和5级流水线中“执行”阶段都位于第3个阶段PC的值总是保存正在被取指的指令的地址 PC = PC + 4x中的x和流水线的级数没有关系,只和“执行阶段”所处的“位置”有关(执行阶段是用到PC值的阶段) 七异常中断 1.异常的定义任何打断程序正常执行顺序的情况都被视为异常(中
4、断是一种特殊的异常,是由外设引起的程序执行顺序的间断);异常可以翻译为:a. Exception从处理器被动接受异常角度而言;b. Interrupt从处理器主动申请角度而言;程序的运行状态总是在正常执行和处理异常之间来回切换,所以异常处理是嵌入式系统的核心内容之一。 2.异常的类型 2-1. ARM支持7种类型的异常中断,各种异常中断的触发条件分别为: 复位异常-处理器的nReset电平有效时产生 指令预取中止异常-若处理器预取指令的地址不存在或该地址不允许当前指令访问,则存储器通过外部信号ABORT向处理器发出中止信号,当预取的指令到执行阶段时(相当于中止信号经历取指、译码阶段,到执行阶段
5、才出发异常的产生)才产生异常 数据中止异常-数据访问指令的地址不存在或该地址不允许当前指令访问,则存储器通过外部信号ABORT向处理器发出中止信号 FIQ异常-当外部事件促使nFIQ=0且CPSR中的F=0时触发该异常,可以减少系统上下文切换时的开销,适合进行数据或通道的快速处理 IRQ异常-当外部事件促使nIRQ=0且CPSR中的I=0时触发该异常,系统外设通过该异常请求中断服务 未定义指令异常-采用该机制可以通过软件仿真扩展ARM/Thumb指令集 SWI异常-可用于用户模式下的程序调用特权操作指令,实现系统功能调用(如执行特定的管理功能)2-2. 异常对应的工作模式和地址向量7种异常对应
6、于5种工作模式(即5种异常模式),每种异常的产生都会导致内核进入一种特定的模式。系统响应异常中断时,会把pc设置为一个特定的存储器地址-向量表。 3. 异常的优先级 在七种异常中有三种是中断-FIQ、IRQ和软件中断,共分为6个等级,如下表所示表格中的顺序只是一般情况下各种异常的相对级别关系,实际中的异常处理顺序不一定和表格的完全一致,而和系统所采用的具体机制有关。 4.异常的响应 4-1. 概述当异常中断发生后,处理器首先执行完当前处于执行阶段的命令,然后进入异常中断响应过程;内核的异常处理是系统自动完成的,不需要人工的干预;Reset异常不需要返回,而其他的6种异常均需要返回到原程序继续执
7、行。4-2响应过程 将CPSR复制到相应的SPSR_中 将下一条指令的地址存入LR_中(异类型不同,保存的地址也不同) 根据异常类型强行设置CPSR运行模式位,并使处理器状态进入ARM状态 强制PC跳转到异常向量表的相应入口处 设置中断禁止位 到此,系统进入到相应的工作模式且PC也已经指向异常向量表的入口处准备执行异常处理程序。 5.异常的返回 5-1.返回过程 修正链接寄存器LR的值并复制到PC 将SPSR_复制回CPSR 若在进入异常处理时设置了中断禁止位,则要在此清除 在进入异常时PC LR_mode的工作是由“硬件”完成的,而从异常返回时LR_mode PC的工作是由程序员用“软件”来
8、完成的。 5-2.确定返回地址从异常处理中返回时所作的工作和进入异常前所作的工作基本是相反的(返回时CPSR和断点地址是同时恢复的),但是对于返回地址值的设置则要特别加以重视(根据具体的异常类型确定具体的返回地址)。在程序的跳转和处理异常时,系统为了正确的返回会对lr的取值进行一次自动调整:lrlr0x04(目的是程序返回时自动指向下一条未执行的指令)。此操作对于程序跳转指令(B、BL等)适用,但对异常则不能通用,程序员要根据异常的具体情况再次对lr的值进行一次人为的调整。 未定义指令异常和SWI异常-B指令相当于SWI或未定义指令,异常是在B的执行阶段被激发,且应返回至下一条指令,故不用修改
9、LR值; 预取指异常、IRQ和FIQ异常-A指令执行期间出现异常,系统响应异常,B指令在异常返回后应被执行,且应返回至本指令重新执行,故LR值要减4; 数据中止异常-B指令相当于触发异常的指令,且是在B执行阶段完成后(即执行后续的数据操作时)激发异常,此时PC值由PC+8更新至PC+12,且要返回本指令重新执行,故LR要减8。 6.举例 6-1IRQ异常响应过程如下 首先,将下一条指令的地址(PC+4)保存至LR_irq; 其次,复制当前CPSR至SPSR_irq; 然后,将向量表地址0x写入PC(同时,ARM工作模式发生转变,CPSR中的I被设置为1); 接着,PC从向量表处开始执行中断服务
10、程序的跳转指令; 最后,跳转指令将PC引导真正的服务程序处执行(在中断服务程序的起始处必须将服务程序要用到的R0-R12保存至IRQ堆栈空间)。 2从IRQ异常中返回八ARM体系结构的缓存和内核扩展 1. ARM体系结构的缓存 缓存(Cache)是一种小容量、高速度的存储器,位于处理器和主存储器之间,用来存放当前被使用的主存部分内容,使得内核能够在大多数时间全速运行而无需等待低速的外部存储器访问。Cache的工作原理2.内核扩展 2-1. 硬件扩展是置于ARM内核外围的标准组件,可以改善性能、管理资源以及提供额外的功能,为处理特殊的应用提供了灵活性,每个ARM处理器都有不同的扩展; 2-2. 常见的硬件扩展有3种类型:cache和紧耦合器(TCMTightly Coupled Memory)、存储管理和协处理器接口。 Cache改善性能的同时会带来程序执行时间的不可预测性(而对于实时系统来说代码执行的确定性至关重要),TCM是一种快速S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机编程语言的演变试题及答案
- 北大人类学试题及答案
- 2024年CPBA考试注意事项及建议试题及答案
- 2024年二手车评估师考试重要考点及答案
- 重症医学科感染防控课件
- 2024年食品安全文化建设的必要性及试题及答案
- 2024美容师考试内容的全面覆盖试题及答案
- 2025年小学语文考试的测试及答案
- 肝衰竭护理试题库及答案
- 统计学前沿研究问题试题及答案
- 脑卒中中医居家护理服务规范
- HG-T 6135-2022 非金属化工设备 玄武岩纤维增强塑料管道及管件
- 汽车制造与试验技术专业(现代学徒制)2022级人才培养方案(高职)
- 课程培训合作协议(3篇)
- 铝合金型材喷涂前处理技术优化
- 有机化学课件(李景宁主编)第1章-绪论
- 公务员职务与及职级并行规定课件
- 智能电网电力负荷调控系统项目环境影响评估报告
- 处理突发事件流程图
- 酒店住宿水单标准模板
- 污水排放检查记录表格模板
评论
0/150
提交评论