




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章ARM技术与ARM体系结构,本章主要介绍ARM处理器的产生及版本发展历史,以及各个版本的典型处理器及应用情况和性能分析;ARM处理器的内核调试结构,重点分析了ARM7TDMI-S、ARM9TDMI两种结构;ARM处理器的工作模式及寄存器组织结构,分析了在什么情况下进入到相应的工作模式;ARM处理器支持的内存数据存储格式,分为大端格式和小端格式;最后介绍了ARM7的三级流水线运行机制和ARM9的五级流水线运行机制。,内容提要,21ARM体系结构版本与内核22ARM内核模块23ARM处理器的工作模式24ARM内部寄存器25ARM异常处理26存储方式与存储器映射机制27ARM流水线技术分析,2.5ARM异常处理,异常通常定义为:处理器需要中止指令正常执行的任何情形并转向相应的处理,包括ARM内核产生复位,取指或存储器访问失败,遇到未定义指令,执行软件中断指令,或者出现外部中断等。大多数异常都对应一个软件的异常处理程序,也就是在异常发生时执行的软件程序。,251异常入口,ARM处理器的异常分为数据中止、快速中断请求、普通中断请求、预取指中止、软件中断、复位及未定义指令共7种。,1复位具有最高的优先级,是系统启动(或芯片复位)时调用的程序。复位程序对异常处理程序和系统进行初始化(包括配置储存器和Cache)。同时要保证在IRQ和FIQ中断允许之前初始化外部中断源,避免在没有设置好相应的处理程序前产生中断。还要设置好各种处理器模式的堆栈指针。,2引起未定义指令异常:ARM试图执行一条真正的未定义指令;ARM遇到一条协处理器指令,可是系统中的协处理器硬件并不存在;ARM遇到一条协处理器指令,系统中协处理器硬件也存在,可是ARM不是在超级用户模式。解决方法:在处理程序中执行软协处理器仿真;禁止在非超级用户模式下操作;报告错误并退出。,3数据中止异常指示访问了无效的存储器地址,或者当前代码没有正确的数据访问权限。,4预取指中止由于处理器预取的指令地址不存在,或者地址无法访问,当被预取的指令执行时,发生预取指中止异常。,5.FIQ中断的优先级比IRQ中断的优先级要高,且内核进入FIQ处理程序时,把FIQ和IRQ都禁止6软中断(SWI)和未定义指令异常的优先级最低,共享同一优先级,两者不可能同时出现。,252异常产生过程与返回,在异常发生后,ARM内核会作以下工作:,1.在适当的LR中保存下一条指令的地址,当异常入口来自:ARM状态,那么ARM将当前指令地址加4或加8复制(取决于异常的类型)到LR中;为Thumb状态,那么ARM将当前指令地址加2、4或加8(取决于异常的类型)复制到LR中;异常处理器程序不必确定状态。,2.将CPSR复制到适当的SPSR中;3.将CPSR模式位强制设置为与异常类型相对应的值;4.强制PC从相关的异常向量处取指。,当异常结束时,异常处理程序必须:1.将LR(R14)中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;2.将SPSR的值复制回CPSR;3.清零在入口置位的中断禁止标志。注:恢复CPSR的动作会将T、F和I位自动恢复为异常发生前的值。,VectorTable,FIQ,IRQ,(Reserved),DataAbort,PrefetchAbort,SoftwareInterrupt,UndefinedInstruction,Reset,异常处理,当异常产生时,ARMcore:拷贝CPSR到SPSR_设置适当的CPSR位:改变处理器状态进入ARM状态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断(如果需要)保存返回地址到LR_设置PC位相应的异常向量返回时,异常处理需要:从SPSR_恢复CPSR从LR_恢复PCNote:这些操作只能在ARM态执行.,26存储方式与存储器映射机制,ARM处理器地址空间大小为4G字节,这些字节的单元地址是一个无符号的32位数值,其取值范围为0232-1。各存储单元地址作为32位无符号数,可以进行常规的整数运算。当程序正常执行时,每执行一条ARM指令,当前指令计数器加4个字节;每执行一条Thumb指令,当前指令计数器加2个字节。,261数据存储格式,小端存储格式(Little-Endian),大端存储格式(Big-Endian),TheARM可以用little/bigendian格式存取数据.,r0=0 x11223344,STRr0,r1,LDRBr2,r1,r1=0 x100,Memory,3210,0123,ByteLane,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,00,00,00,44,31,24,23,16,15,8,7,0,00,00,00,11,Littleendian,Bigendian,R2=0 x44,R2=0 x11,Formoreinformation,see:“ApplicationNote:BigandLittleEndianByteAddressing”,字节顺序,262非对齐存储器地址访问问题分析,1非对齐的指令预取操作如果是在ARM状态下将一个非对齐地址写入PC,则数据在写入PC时数据的第0位和第1位被忽略,最终PC的bit1:0为0;如果是在Thumb状态下将一个非对齐地址写入PC,则数据在写入PC时数据的第0位被忽略,最终PC的bit0为0。,2非对齐地址内存的访问操作对于LOAD/STORE操作,系统定义了下面3种可能的结果:*执行结果不可预知*忽略字单元地址低两位的值,即访问地址为字单元;忽略半字单元最低位的值,即访问地址为半字单元。这种忽略是由存储系统自动实现的。*在LDR和SWP指令中,对存储器访问忽略造成地址不对齐的低地址位,然后使用这些低地址位控制装载数据的循环。,2.7ARM流水线技术分析,ARM7流水线技术与三级流水线运行情况分析ARM9流水线技术与五级流水线互锁分析ARM10E系列概述,ARM7流水线技术,为增加处理器指令流的速度,ARM7系列使用3级流水线.允许多个操作同时处理,比逐条指令执行要快。PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank),PCPC,PC-4PC-2,PC-8PC-4,ARMThumb,最佳流水线,该例中用6个机器周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数(CPI)=1机器周期,操作,周期,123456,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,LDR流水线举例,该例中,用6机器周期执行了4条指令指令周期数(CPI)=1.5机器周期,周期,操作,123456,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Data,Writeback,Fetch,Decode,Execute,Fetch,Decode,Fetch,分支流水线举例,流水线被阻断注意:内核运行在ARM状态,周期,12345,地址操作,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Fetch,Fetch,Decode,Execute,Linkret,Adjust,Fetch,Decode,Fetch,目标地址,中断流水线举例,周期,12345678,IRQ,IRQ中断的反应时间最小=7机器周期,地址操作,F,D,E,Linkret,Adjust,F,F,DecodeIRQ,Linkret,ExecuteIRQ,Adjust,F,D,E,F,D,F,F,D,E,F,D,F,F,D,ARM9TDMI流水线的变化,InstructionFetch,Shift+ALU,MemoryAccess,RegWrite,RegRead,RegDecode,FETCH,DECODE,EXECUTE,MEMORY,WRITE,ARM9TDMI,ARMorThumbInstDecode,RegSelect,RegRead,Shift,ALU,RegWrite,ThumbARMdecompress,ARMdecode,InstructionFetch,FETCH,DECODE,EXECUTE,ARM7TDMI,周期,操作,ADDR1,R1,R2,SUBR3,R4,R1,ORRR8,R3,R4,ANDR6,R3,R1,EORR3,R1,R2,LDRR4,R7,最佳流水线,本例中,用了6个机器周期执行6条指令,CPI=1机器周期。LDR指令没有引起流水线互锁,周期,操作,ADDR1,R1,R2,SUBR3,R4,R1,ORRR8,R3,R4,ANDR6,R3,R1,EORR3,R1,R2,1,2,3,4,5,6,7,8,LDRR4,R7,9,F,D,E,F,D,E,W,F,D,E,W,F,D,E,W,F,D,W,E,F,D,E,W,F取指(Fetch)D解码(Decode)E执行(Execute)I互锁(Interlock)M存储器(Memory)W写回(Writeback),I,LDR互锁,本例中,用了7个机器周期执行6条指令,CPI=1.2机器周期。LDR指令之后立即跟一条数据操作指令,由于使用了相同的寄存器,将会导致互锁。,W,I,M,互锁:当前指令的执行可能需要前面指令的执行结果,但这时前面的指令还没有执行完毕,从而会导致当前指令的执行无法获得合法的操作数,这时会引起流水线的等待,这种现象称为互锁。,LDM互锁(1),本例中,用了8个机器周期执行5条指令,CPI=1.6在LDM期间,有并行的存储器访问和回写周期,周期,操作,LDMIAR13!,R0-R3,SUBR9,R7,R8,ORRR8,R4,R3,ANDR6,R3,R1,1,2,3,4,5,6,7,8,STRR4,R9,9,F取指(Fetch)D解码(Decode)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提升项目管理的成功秘诀
- 教育信息化与现代教育技术的研究与实践
- 教师流动性与城乡教育质量差距关系
- 2025年中国电影市场深度调查研究报告
- 2025年中国金属铝基板行业市场发展前景及发展趋势与投资战略研究报告
- 国际化视野对应用型硕士专业建设路径的促进作用
- 阿托品麻黄碱栓项目投资可行性研究分析报告(2024-2030版)
- 欧式香包项目投资可行性研究分析报告(2024-2030版)
- 2025年中国海绵抛光磨头市场调查研究报告
- 2025年中国活动量爪卡尺市场调查研究报告
- 电力分包项目合同范本
- 2024年急危重症患者鼻空肠营养管管理专家共识
- 2024年法律职业资格考试(试卷一)客观题试卷与参考答案
- 国家开放大学《Web开发基础》形考任务实验1-5参考答案
- 山东师范大学学校管理学期末复习题
- 《进一步规范管理燃煤自备电厂工作方案》发改体改〔2021〕1624号
- LS-DYNA:LS-DYNA材料模型详解.Tex.header
- 大学生体质健康标准与锻炼方法(吉林联盟)智慧树知到期末考试答案章节答案2024年东北师范大学
- 新疆警察学院面试问题及答案
- 小学三到六年级全册单词默写(素材)-2023-2024学年译林版(三起)小学英语
- 水利安全生产风险防控“六项机制”右江模式经验分享
评论
0/150
提交评论