版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章ARM技术与ARM体系结构本章主要介绍ARM处理器的产生及版本发展历史,以及各个版本的典型处理器及应用情况和性能分析;ARM处理器的内核调试结构,重点分析了ARM7TDMI-S、ARM9TDMI两种结构;ARM处理器的工作模式及寄存器组织结构,分析了在什么情况下进入到相应的工作模式;ARM处理器支持的内存数据存储格式,分为大端格式和小端格式;最后介绍了ARM7的三级流水线运行机制和ARM9的五级流水线运行机制。
内容提要要2.1ARM体系结构构版本与与内核2.2ARM内核模块块2.3ARM处理器的的工作模模式2.4ARM内部寄存存器2.5ARM异常处理理2.6存储方式式与存储储器映射射机制2.7ARM流水线技技术分析析2.5ARM异常处理理异常通常常定义为为:处理理器需要要中止指指令正常常执行的的任何情情形并转转向相应应的处理理,包括括ARM内核产生生复位,,取指或或存储器器访问失失败,遇遇到未定定义指令令,执行行软件中中断指令令,或者者出现外外部中断断等。大多数异异常都对对应一个个软件的的异常处处理程序序,也就就是在异异常发生生时执行行的软件件程序。。2.5.1异常入口口ARM处理器的的异常分分为数据据中止、、快速中中断请求求、普通通中断请请求、预预取指中中止、软软件中断断、复位位及未定定义指令令共7种。异常类型处理器模式优先级向量表偏移复
位SVC10x00000000未定义指令UND60x00000004软件中断SWISVC60x00000008预取指中止ABT50x0000000c数据中止ABT20x00000010保留//0x00000014IRQ中断IRQ40x00000018FIQ中断FIQ30x0000001c1.复位具有最高高的优先先级,是是系统启启动(或或芯片复复位)时时调用的的程序。。复位程程序对异异常处理理程序和和系统进进行初始始化(包包括配置置储存器器和Cache)。同时时要保证证在IRQ和FIQ中断允许许之前初初始化外外部中断断源,避避免在没没有设置置好相应应的处理理程序前前产生中中断。还还要设置置好各种种处理器器模式的的堆栈指指针。2.引起未定义指指令异常常:ARM试图执行行一条真真正的未未定义指指令;ARM遇到一条条协处理理器指令令,可是是系统中中的协处处理器硬硬件并不不存在;;ARM遇到一条条协处理理器指令令,系统统中协处处理器硬硬件也存存在,可可是ARM不是在超超级用户户模式。。解决方法法:在处理程程序中执执行软协协处理器器仿真;;禁止在非非超级用用户模式式下操作作;报告错误误并退出出。3.数据中止止异常指示访问问了无效效的存储储器地址址,或者者当前代代码没有有正确的的数据访访问权限限。4.预取指中中止由于处理理器预取取的指令令地址不不存在,,或者地地址无法法访问,,当被预预取的指指令执行行时,发发生预取取指中止止异常。。5.FIQ中断的优先级级比IRQ中断的优先级级要高,,且内核核进入FIQ处理程序序时,把把FIQ和IRQ都禁止6.软中断((SWI)和未定义义指令异异常的优优先级最最低,共共享同一一优先级级,两者者不可能能同时出出现。2.5.2异常产生生过程与与返回在异常发发生后,,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位自动恢恢复为异异常发生生前的值值。VectorTableFIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedInstructionReset0x1C0x180x140x100x0C0x080x040x00异常处理理当异常产产生时,,ARMcore:拷贝CPSR到SPSR_<mode>设置适当当的CPSR位:改变处理理器状态态进入ARM状态改变处理理器模式式进入相相应的异异常模式式设置中断断禁止位位禁止相相应中断断(如如果需要要)保存返回回地址到到LR_<<mode>设置PC位相应的的异常向向量返回时,,异常常处理需需要:从SPSR_<mode>恢复CPSR从LR_<<mode>恢复PCNote:这些操作作只能在在ARM态执行..2.6存储方式式与存储储器映射射机制ARM处理器地地址空间间大小为为4G字节,这这些字节节的单元元地址是是一个无无符号的的32位数值,,其取值值范围为为0~232-1。各存储储单元地地址作为为32位无符号号数,可可以进行行常规的的整数运运算。当程序正正常执行行时,每每执行一一条ARM指令,当当前指令令计数器器加4个字节;;每执行行一条Thumb指令,当当前指令令计数器器加2个字节。。2.6.1数据存储储格式小端存储储格式((Little--Endian)大端存储储格式((Big--Endian)TheARM可以用little//bigendian格式存取取数据.r0==0x11223344STRr0,,[r1]LDRBr2,[[r1]]r1==0x100Memory32100123ByteLane312423161587011223344312423161587011223344312423161587011223344312423161587000000044312423161587000000011LittleendianBigendianR2==0x44R2==0x11Formoreinformation,see:“ApplicationNote:BigandLittleEndianByteAddressing”字节顺序序2.6.2非对齐存存储器地地址访问问问题分分析1.非对对齐的指指令预取取操作如果是在在ARM状态下将将一个非非对齐地地址写入入PC,则数据据在写入入PC时数据的的第0位和第1位被忽略略,最终终PC的bit[[1:0]为0;如果是是在Thumb状态下将将一个非非对齐地地址写入入PC,则数据据在写入入PC时数据的的第0位被忽略略,最终终PC的bit[[0]为0。2.非对对齐地址址内存的的访问操操作对于LOAD/STORE操作,系系统定义义了下面面3种可能的的结果::*执行行结果不不可预知知*忽略略字单元元地址低低两位的的值,即即访问地地址为字字单元;;忽略半半字单元元最低位位的值,,即访问问地址为为半字单单元。这这种忽略略是由存存储系统统自动实实现的。。*在LDR和SWP指令中,,对存储储器访问问忽略造造成地址址不对齐齐的低地地址位,,然后使使用这些些低地址址位控制制装载数数据的循循环。2.7ARM流水线技技术分析析ARM7流水线技技术与与三级流水水线运行行情况分分析ARM9流水线技技术与五级流水水线互锁锁分析ARM10E系列概述述ARM7流水线技技术为增加处处理器指指令流的的速度,,ARM7系列使用用3级流流水线.允许多个个操作同同时处理理,比逐逐条指令令执行要要快。PC指向正被被取指的的指令,,而非正正在执行行的指令令FetchDecodeExecute从存储器器中读取取指令解码指令令寄存器读读(从寄寄存器Bank)移位及ALU操作寄存器写写(到寄寄存器Bank)PCPCPC--4PC--2PC--8PC--4ARMThumb最佳流水水线该例中用用6个机机器周期期执行了了6条指指令所有的操操作都在在寄存器器中(单单周期执执行)指令周期期数((CPI))=1机器周期期操作周期1234 56
ADD
SUB
MOV
AND
ORR
EOR
CMP
RSBFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDecodeExecuteFetchDecodeFetchFetchLDR流水线举举例该例中,,用6机机器周期期执行了了4条指指令指令周期期数((CPI))=1.5机器周期期周期操作1 234 56
ADD
SUB
LDR
MOV
AND
ORRFetchDecodeExecuteFetchDecodeExecuteFetchDecodeExecuteDataWritebackFetchDecodeExecuteFetchDecodeFetch分支流水水线举例例流水线被被阻断注意:内内核运行行在ARM状态周期123450x8000BL0x8004X0x8008XX0x8FECADD0x8FF0SUB0x8FF4MOV地址操作FetchDecodeExecuteFetchDecodeExecuteFetchDecodeFetchFetchDecodeExecuteLinkretAdjustFetchDecodeFetch目标地址址中断流水水线举例例周期12345678IRQIRQ中断的反反应时间间最小==7机器器周期地址操作FDELinkretAdjustFFDecodeIRQLinkretExecuteIRQAdjustFDEFDFFDEFDFF0x8000ADD0x8008MOV0x0018B(to0xAF00)0x8004SUB0x001CXX0x0020XXX0xAF00STMFD0xAF04MOV0xAF08LDR0x800CXDARM9TDMI流水线的的变化InstructionFetchShift++ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARMorThumbInstDecodeRegSelectRegReadShiftALURegWriteThumb®ARMdecompressARMdecodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI周期操作ADDR1,R1,R2SUBR3,R4,R1ORRR8,R3,R4ANDR6,R3,R1EORR3,R1,R2LDRR4,[R7]最佳流水水线本例中,,用了6个机器器周期执执行6条条指令,,CPI=1机器周期期。LDR指令没有有引起流流水线互互锁123456789FDEWFDEWFEWFDEWFDWEFDEWF–取指(Fetch)D
–解码(Decode) E–执行(Execute)I–互锁(Interlock)M–存储器(Memory)W–写回(Writeback)MD周期操作ADDR1,R1,R2SUBR3,R4,R1ORRR8,R3,R4ANDR6,R3,R1EORR3,R1,R212345678LDRR4,[R7]9FDEFDEWFDEWFDEWFDWEFDEWF–取指(Fetch)D–解码(Decode)) E––执行(Execute)I–互锁(Interlock))M––存储器((Memory))W––写回(Writeback)ILDR互锁本例中,,用了7个机器器周期执执行6条条指令,,CPI=1.2机器周期期。LDR指令之后后立即跟跟一条数数据操作作指令,,由于使使用了相相同的寄寄存器,,将会导导致互锁锁。WIM互锁:当前指令令的执行行可能需需要前面面指令的的执行结结果,但但这时前前面的指指令还没没有执行行完毕,,从而会会导致当当前指令令的执行行无法获获得合法法的操作作数,这这时会引引起流水水线的等等待,这这种现象象称为互锁。LDM互锁(1)本例中,,用了8个机器器周期执执行5条条指令,,CPI=1.6在LD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 带活动头的扳手产品供应链分析
- 供应链金融物流行业经营分析报告
- 临摹用字帖产业链招商引资的调研报告
- 电磁锁项目营销计划书
- 家用筛产品供应链分析
- 装饰别针首饰项目营销计划书
- 小画家的色彩世界-描绘梦想展现创意的旅程
- 专业运动员的管理行业经营分析报告
- 便携式多媒体播放器产业链招商引资的调研报告
- 养老院餐饮供应服务行业相关项目经营管理报告
- 2024-2030年中国软件测试行业现状分析及投资风险预测报告
- 2024-2030年中国花青素市场销售状况与消费趋势预测报告
- 旅馆业设施布局与室内设计考核试卷
- 2024年消防知识竞赛考试题库300题(含答案)
- 2024中国船舶报社公开招聘采编人员1人高频难、易错点500题模拟试题附带答案详解
- 室内装修投标方案(技术方案)
- 山东科学技术出版社小学一年级上册综合实践活动教案
- 2024-2030年中国市政公用工程行业市场发展分析及发展潜力与投资研究报告
- 服务营销《(第6版)》 课件全套 郭国庆 第1-14章 服务与服务营销 - 服务文化与顾客关系管理
- 2024-2030年天津市轨道交通行业市场发展分析及发展前景与投资研究报告
- 中医与辅助生殖
评论
0/150
提交评论