当ARM发生一个arm异常中断一般处理时,简述CPU的响应过程

大连理工大学ARM习题答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
大连理工大学ARM习题答案
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩23页未读,继续阅读
你可能喜欢君,已阅读到文档的结尾了呢~~
ARM完整复习题及答案,统计学复习题及答案,教育学复习题及答案,数据库复习题及答案,建筑材料复习题及答案,高等数学复习题及答案,机械原理复习题及答案,生理学复习题及答案,药理学复习题及答案,工程力学复习题及答案
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
ARM完整复习题及答案
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口欢迎来到EDA中国!
|||, 欢迎您回来! &|EDA中国新版上线了!欢迎来拍!!!当前位置: > > ARM中异常中断问题分析总结发布时间:
07:07:12 &&&&来源: EDA中国ARM中异常中断的类型问题分析总结一、ARM中异常中断的类型:异常中断名称含义复位(Reset)当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。复位异常中断通常用在下面几种情况:1、系统加电时2、系统复位时3、跳转到复位中断向量处执行,称为软复位未定义的指令当ARM处理器或者是系统中协处理器认为当前指令未定义时,产生未定义指令异常中断。可以通过该异常中断机制仿真浮点向量运算。软件中断(software interrupt SWI)这是一个由用户定义的中断指令。可以用于用户模式下程序调用特权操作指令。在实时操作系统(RTOS)中可以通过该机制实现系统功能调用指令预取中止(Prefech Abort)如果处理器预取指令的地址不存在,或者该地址不允许当前指令访问,当该被预取的指令执行时,处理器产生指令预取中止异常中断数据访问中止(Data Abort)如果数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常中断外部中断请求(IRQ)当处理器的外部中断请求引脚有效,而且CPSR寄存器的I控制位被清除时,处理器产生外部中断请求(IRQ)异常中断。系统中各外设通常通过该异常中断请求处理器服务快速中断请求(FIQ)当处理器的外部快速中断请求引脚有效,而且CPSR寄存器的F控制位被清除时,处理器产生外部中断请求(FIQ)异常中断注:不要把异常中断类型和处理器的工作模式搞混。复位异常发生后,进入到管理模式(svc)&下。软中断发生后,&进入到&管理模式(svc)&下。未定义指令异常发生后,&进入到&未定义指令中止模式(und)下。指令预取中止异常发生后,&进入到&数据访问中止模式(abt)下;数据访问中止异常发生后,&进入到&数据访问中止模式(abt)&下:外部中断发生后,&进入到&外部中断模式(irq)下;快速中断发生后,&进入到&快速中断模式(fiq)下;二、ARM对异常中断的响应过程(1)ARM处理器对异常中断的响应过程:保存处理器当前状态、中断屏蔽位以及各条件标志位。这是通过将当前程序状态寄存器CPSR的内容保存到将要执行的异常中断对应的SPSR寄存器中实现的。各异常中断有自己的物理SPSR寄存器。设置当前程序状态寄存器CPSR中相应的位。包括:进入ARM状态;设置CPSR中的位,使处理器进入相应的执行模式;设置CPSR中的位,禁IRQ中断,当进入FIQ模式时,禁止FIQ中断。将寄存器Ir_mode(R14)设置成返回地址。将程序计数器值(PC),设置成该异常中断的中断向量地址,从而跳转到相应异常中断处理程序处执行。注:以上过程全部是由硬件自动完成的。不管是在ARM状态下还是在THUMB状态下发生异常,都会自动切换到ARM状态下进行异常的处理(2)从异常中断处理程序中返回:恢复被中断程序的处理器状态,即将SPSR_mode寄存器内容复制到CPSR中。返回到发生异常中断的指令下一条指令处执行,即将Ir_mode寄存器的内容复制到程序计数器PC中。注:实际上,当异常中断发生时,程序计数器PC所指的位置对于不同的异常中断是不同的。同样,返回地址对于各种不同的异常中断也是不同的。详细见(3)复位异常中断处理程序不需要返回。在复位异常中断处理程序开始整个用户程序的执行,因而它不需要返回。由于异常模式不同以及ARM内核采用流水线技术,异常处理程序里要根据异常模式计算返回地址。一条指令的执行分为:取指,译码,执行三个主要阶段,CPU由于使用流水线技术,造成当前执行指令的地址应该是PC – 8(32位机一条指令四个字节),那么执行指令的下条指令应该是PC – 4。在异常发生时,CPU自动会将将PC – 4的值保存到LR里,但是该值是否正确还要看异常类型才能决定(3)详细:各个异常状态发生后,ARM处理器硬件响应过程1、响应复位异常中断上电复位:在上电后,复位使内部达到预定的状态,特别是程序跳到初始入口;复位引脚上的复位脉冲:这是由外部其他控制信号引起的;对系统电源检测发现过压或欠压;时钟异常复位。当发生&复位&时,处理器硬件响应中断,自动执行如下操作:&&强制进入管理模式;强制进入ARM状态;&禁止IRQ中断和FIQ中断;&跳转到绝对地址PC=0x处执行2、未定义指令异常遇到一条无法执行的指令,此指令没有定义;执行一条对协处理器的操作指令,在正常情况下,协处理器应该应答,但协处理器没有应答。处理器响应中断后,硬件自动执行下列操作&:&&把程序状态寄存器CPSR拷贝给SPSR_und;强制进入未定义模式;强制进入到ARM模式;禁止IRQ中断把下一条指令的地址拷贝给LR;跳转到绝对地址PC=0x处执行;关于从异常中断处理程序的返回:& & & & 未定义指令异常中断是由当前执行的指令自身产生的,当产生中断时,程序计数器PC的值还未更新,它指向当前指令后面的第二条指令(对于ARM指令,它指向当前指令地址加8字节的位置;对于Thumb指令,它指向当前指令地址加4字节的位置)。当未定义指令异常中断发生时,处理器自动将值(pc-4)保存到lr_und中,此时(pc-4)指向当前指令的下一条指令,所以从未定义指令异常中断返回可以通过如下指令来实现:MOV &PC,LR当异常中断处理程序中使用了数据栈时,可以使用下面的指令在进入异常中断处理程序时保存被中断程序的执行现场,在退出异常中断处理程序时恢复被中断程序的执行现场。异常中断程序中使用的数据栈由用户提供。STMFD & sp! , {reglist,lr}....LDMFD & sp! , {reglist,pc}^reglist时异常中断处理程序中使用的寄存器列表。标识符^指示将SPSR_mode寄存器的内容复制到CPSR中,该指令只能在特权模式下使用。3、软件中断异常是由指令SWI引起的,程序在执行这一指令后,进入异常中断。处理器响应中断后,硬件自动执行下列操作&:把程序状态寄存器CPSR拷贝给SPSR_svc;强制进入管理模式;强制进入到ARM状态;&禁止IRQ中断。把下一条指令的地址拷贝给LR;&跳转到绝对地址PC=0x处执行;关于从异常中断处理程序的返回:& & & & & & 软件中断异常是由当前执行的指令自身产生的,当产生中断时,程序计数器PC的值还未更新,它指向当前指令后面的第二条指令(对于ARM指令,它指向当前指令地址加8字节的位置;对于Thumb指令,它指向当前指令地址加4字节的位置)。当软件中断发生时,处理器自动将值(pc-4)保存到lr_siw中,此时(pc-4)指向当前指令的下一条指令,所以从软件中断返回可以通过如下指令来实现:MOV &PC,LR当异常中断处理程序中使用了数据栈时,可以使用下面的指令在进入异常中断处理程序时保存被中断程序的执行现场,在退出异常中断处理程序时恢复被中断程序的执行现场。异常中断程序中使用的数据栈由用户提供。STMFD & sp! , {reglist,lr}....LDMFD & sp! , {reglist,pc}^reglist时异常中断处理程序中使用的寄存器列表。标识符^指示将SPSR_mode寄存器的内容复制到CPSR中,该指令只能在特权模式下使用。4、预取指中止异常由程序存储器引起的中止异常叫做预取指中止异常;由数据存储器引起的中止异常叫做数据中止异常。由于ARM的指令是3级流水线结构,读取指令周期是提前进行的,因此把读取指令的过程一般称预取指。在指令预取时,如果目标地址是非法的,该指令被标记成有问题的指令,这时,流水线上该指令之前的指令继续执行。有两种可能如下:1.当执行这条指令前程序发生跳转,则这条无效指令不引起异常中断;2.当执行到这条指令时,处理器会发生预取指中止异常,引起中断。处理器响应中断后,硬件自动执行下列操作&:把程序状态寄存器CPSR拷贝给SPSR_abt;强制进入中止异常模式;强制进入到ARM状态;禁止IRQ中断。把中断时PC的地址拷贝给LR;&跳转到绝对地址PC=0x0000000C处执行;关于从异常中断处理程序的返回:在指令预取时,如果目标地址是非法的,该指令被标记成有问题的指令,这时,流水线上该指令之前的指令继续执行,当执行到该被标记成有问题的指令时,处理器产生指令预取中止异常中断。发生指令预取异常中断时,程序要返回到该有问题的指令处,重新读取并执行该指令,因此指令预取中止异常中断应该返回到产生该指令预取中止异常中断的指令处,而不是当前指令的下一条指令。&指令预取异常是由当前执行的指令自身产生的,当产生中断时,程序计数器PC的值还未更新,它指向当前指令后面的第二条指令(对于ARM指令,它指向当前指令地址加8字节的位置;对于Thumb指令,它指向当前指令地址加4字节的位置)。当指令预取中止异常中断发生时,处理器自动将值(pc-4)保存到lr_abt中,此时(pc-4)指向当前指令的下一条指令,所以从软件中断返回可以通过如下指令来实现:SUBS PC,LR,#4&当异常中断处理程序中使用了数据栈时,可以使用下面的指令在进入异常中断处理程序时保存被中断程序的执行现场,在退出异常中断处理程序时恢复被中断程序的执行现场。异常中断程序中使用的数据栈由用户提供。SUBS &LR,LR,#4&STMFD & sp! , {reglist,lr}....LDMFD & sp! , {reglist,pc}^reglist时异常中断处理程序中使用的寄存器列表。标识符^指示将SPSR_mode寄存器的内容复制到CPSR中,该指令只能在特权模式下使用。5、数据中止异常ARM处理器访问数据存储器时,在读取数据的同时数据存储器发出了中止信号,引起数据中止异常。如果数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常中断处理器响应中断后,硬件自动执行下列操作&:把程序状态寄存器CPSR拷贝给SPSR_abt;强制进入中止异常模式;强制进入到ARM状态;禁止IRQ中断;把中断时的PC的地址拷贝给LR;&跳转到绝对地址PC=0x处执行;关于从异常中断处理程序的返回:发生数据访问异常中断时,程序要返回到该有问题的指令处,重新访问该数据,因此数据访问异常中断应该返回到产生该数据访问中止异常中断的指令处,而不是当前指令的下一条指令。数据访问异常中断由当前执行的指令在ALU里执行时产生,当数据访问异常中断发生时,程序计数器pc的值已经更新,它指向当前指令后面第3条指令(对于ARM指令,它指向当前指令地址加12字节的位置;对于Thumb指令,它指向当前指令地址加6字节的位置)。此时处理器将值(pc-4)保存到lr_abt中,它指向当前指令后面第2条指令,所以返回操作可以通过下面指令实现:& & &&&&& &SUBS PC, LR, #8当异常中断处理程序中使用了数据栈时,可以使用下面的指令在进入异常中断处理程序时保存被中断程序的执行现场,在退出异常中断处理程序时恢复被中断程序的执行现场。异常中断程序中使用的数据栈由用户提供。& & & & &SUBS LR,LR,#8& & & & &STMFD & sp! , {reglist,lr}& & & & &....& & & & &LDMFD & sp! , {reglist,pc}^reglist时异常中断处理程序中使用的寄存器列表。标识符^指示将SPSR_mode寄存器的内容复制到CPSR中,该指令只能在特权模式下使用。6、中断请求(IRQ)异常例如:定时器中断、串行口通讯中断、外部信号中断和A/D处理中断等。IRQ中断是可屏蔽的。在状态寄存器中的I位就是IRQ的屏蔽位。当I=1时。则屏蔽IRQ中断,当I=0时,则允许中断。处理器复位后置I为1,关闭中断。处理器响应中断后,硬件自动执行下列操作&:把程序状态寄存器CPSR拷贝给SPSR_irq;&强制进入IRQ异常模式;强制进入到ARM状态;禁止IRQ中断;把中断时的PC的地址值拷贝给LR;跳转到绝对地址PC=0x处执行;关于从异常中断处理程序的返回:& & & & & 通常处理器执行完当前指令后,查询IRQ中断引脚,并查看系统是否允许IRQ中断,如果某个中断引脚有效,并且系统允许该中断产生,处理器将产生IRQ异常中断,当IRQ异常中断产生时,程序计数器pc的值已经更新,它指向当前指令后面第3条指令(对于ARM指令,它指向当前指令地址加12字节的位置;对于Thumb指令,它指向当前指令地址加6字节的位置),当IRQ异常中断产生时,处理器将值(pc-4)保存到IRQ异常模式下的寄存器lr_irq中,它指向当前指令之后的第2条指令,因此正确返回地址可以通过下面指令算出:SUBS &&PC,LR,#4&当异常中断处理程序中使用了数据栈时,可以使用下面的指令在进入异常中断处理程序时保存被中断程序的执行现场,在退出异常中断处理程序时恢复被中断程序的执行现场。异常中断程序中使用的数据栈由用户提供。&& && & &SUBS LR, LR, #4& & & & &STMFD & sp! , {reglist,lr}& & & & & ....& & & & &LDMFD & sp! , {reglist,pc}^reglist时异常中断处理程序中使用的寄存器列表。标识符^指示将SPSR_mode寄存器的内容复制到CPSR中,该指令只能在特权模式下使用。注:为什么PC会指向当前执行指令的后12个字节?当前指令执行时(此时PC指向当前指令后面的第2条指令),如果发生IRQ中断,ARM检测到IRQ中断后,取指和执行单元都不会改变,只有译码单元会改变,译码单元改为开始译码中断指令。执行完当前指令后,PC值加4个字节(此时PC指向刚刚那条指令后面的第3条指令),译码单元将译完的中断指令送到执行单元,执行单元执行中断指令,保存PC-4(此时PC指向当前指令后面的第2条指令)的值到LR_irq,同时跳转到IRQ中断向量处。(详细可看ARM流水线机制)7、快速中断(FIQ)请求异常。FIQ快速中断是可屏蔽的。在状态寄存器中的F位就是FIQ的屏蔽位。当F=1时。则屏蔽FIQ中断,当F=0时,则允许中断。处理器复位后置F为1,关闭中断。处理器响应中断后,硬件自动执行下列操作:把程序状态寄存器CPSR拷贝给SPSR_fiq;&强制进入FIQ异常模式;强制进入到ARM状态;禁止FIQ中断;把中断时的PC的地址值拷贝给LR;跳转到绝对地址PC=0x0000001C处执行;关于从异常中断处理程序的返回:& & & & & 通常处理器执行完当前指令后,查询FIQ中断引脚,并查看系统是否允许FIQ中断,如果某个中断引脚有效,并且系统允许该中断产生,处理器将产生FIQ异常中断,当FIQ异常中断产生时,程序计数器pc的值已经更新,它指向当前指令后面第3条指令(对于ARM指令,它指向当前指令地址加12字节的位置;对于Thumb指令,它指向当前指令地址加6字节的位置),当FIQ异常中断产生时,处理器将值(pc-4)保存到IRQ异常模式下的寄存器lr_fiq中,它指向当前指令之后的第2条指令,因此正确返回地址可以通过下面指令算出:SUBS &&PC,LR,#4&当异常中断处理程序中使用了数据栈时,建议可以使用下面的指令在进入异常中断处理程序时保存被中断程序的执行现场,在退出异常中断处理程序时恢复被中断程序的执行现场。异常中断程序中使用的数据栈由用户提供。&& && & &SUBS LR, LR, #4& & & & &STMFD & sp! , {reglist,lr}& & & & & ....& & & & &LDMFD & sp! , {reglist,pc}^reglist时异常中断处理程序中使用的寄存器列表。标识符^指示将SPSR_mode寄存器的内容复制到CPSR中,该指令只能在特权模式下使用。注:为什么PC会指向当前执行指令的后12个字节?当前指令执行时(此时PC指向当前指令后面的第2条指令),如果发生FIQ中断,ARM检测到FIQ中断后,取指和执行单元都不会改变,只有译码单元会改变,译码单元改为开始译码中断指令。执行完当前指令后,PC值加4个字节(此时PC指向刚刚那条指令后面的第3条指令),译码单元将译完的中断指令送到执行单元,执行单元执行中断指令,保存PC-4(此时PC指向当前指令后面的第2条指令)的值到LR_fiq,同时跳转到FIQ中断向量处。(详细可看ARM流水线机制)三、异常中断向量表及优先级当几个中断同时发生时,就必须按照一定的次序来处理这些异常中断。在ARM中通过给异常中断赋予一定的优先级来实现这种处理次序。上一篇 : 下一篇 : 无相关阅读 :· · · · · 相关资源 :· · · · · 最新热文最新视频热文排行榜热门资源获取帮助咨询电话:021-QQ客服:QQ群:注意:以下大部分类容都来自网上现成的(直接拷贝过来的,然后经整理)!!!!&
问1:ARM处理器工作模式有几种?各种工作模式下分别有什么特点?
答1:ARM&处理器有7种工作模式,这7种模式及其特点是如下:
快速中断模式(fiq):
支持高速数据传输或通道处理,外部中断fiq信号有效且CPSR的F=0时进入。
中断模式(irq):
用于通用中断处理,外部中断irq信号有效CPSR的I=0时进入。
管理员模式(svc):
操作系统的保护模式,复位,软件中断进入该模式。主要用于SWI(软件中断)和OS(操作系统)。这个模式有额外的特权,允许你进一步控制计算机。
中止模式(abt):
支持虚拟内存和/或内存保护预取指令中止/数据中止进入
未定义模式(und):
支持硬件协处理器的软件仿真(浮点、向量运算)未定义指令进入
系统模式(sys):
支持操作系统的特殊用户模式(运行操作系统任务)
用户模式(usr):
正常的程序执行模式,此模式应用程序不能访问受操作系统保护的资源,不能改变模式,除非异常发生。
问2:ARM处理器总共有多少个寄存器,这些寄存器按其在用户编程中的功能是如何划分的?这些寄存器在使用中各有何特殊之处?
答2:ARM微处理器共有37个32位的寄存器,其中31个为通用寄存器,6个为状态寄存器。
31个通用寄存器根据其编程特点可分为如下几种类型:
a.不分组寄存器R0-R7,为所有模式共享;
b.分组寄存器R8-R12,R8_fiq-R12_fiq,FIQ模式下的寄存器,R8-R12,其它模式共享
c.分组寄存器R13-R14分为6组,用户、系统一组,其他每种模式一组:
R13_&mode&通常用作堆栈指针SP,R14_&mode&通常用作子程序链接寄存器,当进入子程序时,常用来保存PC的返回值其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。
d.程序寄存器R15(PC),为所有模式共享
6个状态寄存器:
一个CPSR当前程序状态寄存器,保存当前程序状态。五个程序状态备份寄存器SPSR(svc,abt,und,irq,frq),只有在异常模式下,才能被访问,各异常模式都拥有属于自己的SPSR,当发生异常时,SPSR用来保存CPSR的值,从异常退出时则可由SPSR来恢复CPSR。
问3:试述ARM处理器对异常中断的响应过程。
答3:当一个异常出现以后,ARM微处理器执行完当前指令后(复位异常除外)会执行以下几步操作:
a.将下一条指令的地址存入相应连接寄存器LR(R14_XXX),以便程序在处理异常返回时能从正确的位置重新开始执行;
b.将CPSR复制到相应的SPSR中;
c.根据异常类型,强制设置CPSR的运行模式位;
d.强制PC从相关的异常向量地址取一条指令执行,从而跳转到相应的异常处理程序处。&
问4:如何从异常中断处理程序中返回?需要注意哪些问题?
答4:异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:&
a.将连接寄存器LR(R14_XXX)的值减去相应的偏移量后送到PC中;
b.将SPSR复制回CPSR中,恢复原处理器工作模式;
c.若在进入异常处理时设置了中断禁止位,要在此清除。
注意问题:
异常处理返回时,IRQ和FIQ必须返回前一条指令,以便执行因进入异常而被“占据”的指令。预取指中止必须返回前一条指令,以便执行在初次请求访问时造成存储器故障的指令。数据中止必须返回前面第二条指令,以便重新执行因进入异常而被占据的指令之前的数据传送指令。
问5:ARM处理器版本的变化主要体现在内核的变化和内核的扩展哪些方面?&
答5:ARM处理器版本的变化主要体现在内核的扩展和扩充。ARM内核的扩展主要是增加ARM核外围的组件,以改善ARM性能,提供资源管理等功能。主要有3种硬件扩展:
a.ARM内核扩展cache和紧耦合存储器;
b.扩展存储管理;
c.扩展协处理器接口(控制cache、TCM和存储管理)
ARM内核扩充主要是增加ARM核功能,通常将具有某些特殊功能的ARM内核称为它的某种变种,到目前为止ARM定义了如下变种:
a.T变种,Thumb指令集;
b.M变种,长乘指令;
c.E变种,增强型DSP指令;
d.J变种,java加速器Jazelle
问6:简述处理器启动时的模式转换过程。
答6:处理器启动时,首先进入管理员模式(svc),此后进入除用户模式之外的其他模式,主要完成各模式的堆栈设置,最后进入用户模式,运行用户程序。
问7:ARM存储器的存储周期有几种类型,对应于cache访问和存储器访问是何存储周期?
答7:ARM存储器的存储周期有4种类型,它们分别是:空闲周期、顺序周期、协处理器寄存器传送周期和非顺序周期,对应于cache访问的存储周期是空闲周期和顺序周期,对应于存储器访问的存储周期是非顺序周期。
问8:何谓cache?简述cache的工作原理。
答8:Cache即高速缓冲存储器是位于CPU与内存之间的高速存储器,它的容量比内存小但交换速度快。在cache存储系统当中,把主存储器和cache都划分成相同大小的块。主存地址由块号M和块内地址N两部分组成。同样,cache的地址也由块号m和块内地址n组成。然而cache&是相连存储器,装入时,通过地址变换部件把主存地址中的块号M变成cache的块号m,块号M保存在块号为m&的cache块的标记区,数据块装入cache缓冲区。当CPU要访问cache时,CPU送来主存地址,放到主存地址寄存器中。然后通过地址变换部件把主存地址中的块号M变成cache的块号m,并放到cache地址寄存器当中。同时将主存地址中的块内地址N直接作为cache的块内地址n装入到cache地址寄存器中。如果地址变换成功(通常称为cache命中),就用得到的cache地址去访问cache,从cache中取出数据送到CPU中。如果地址变换不成功,则产生cache失效信息,并且接着使用主存地址直接去访问主存储器。
9、简述全相联cache、直接映象cache、组相联cache其主存地址至cache地址的变换过程和数据检索过程。
全相联cache地址的变换过程和数据检索过程:
&&&&&把内存地址的块号与cache目录区的主存块号比较,若相同则命中,然后块内地址检索cache块/行的某字;否则访问内存。
直接映象cache地址的变换过程和数据检索过程:
&&&&&1、根据内存地址的块号找到cache的对应块。
2、把内存地址的区号与cache块的标记比较,若两者相等且有效位为1,则为命中,以块内地址访问Cache数据区。若两者不相等或有效位不为1,则访问内存。
组相联cache地址的变换过程和数据检索过程:
&&&&&&&1、首先以内存地址的组号q找到cache中的组。如:物理地址的组号为1,则对应cache第1组。
&&&&&&2、由于主存与cache其组内的块之间采用全相连映射,因此把内存地址的区号、组内块号与cache目录区所存的区号、组内块号比较,若有相同者则为命中。
&&&&&3、若命中,以物理地址的块内地址查找某字,否则访问内存。
10、何谓写通cache和写回cache,两者有何区别?
采用写通法进行数据更新的cache称为写通cache。写通法是指CPU在执行写操作时,必须把数据同时写入cache和主存。
采用写回法进行数据更新的cache称为写回cache。写回法是指CPU在执行写操作时,被写的数据只写入cache,不写入主存。仅当需要替换时,才把已经修改的cache块写回到主存中。
写通cache和写回cache的区别主要体现在执行写操作时数据是否同时写入主存,写通cache的欲写数据同时写入cache和主存;写回cache的欲写数据只写入cache,不写入主存,仅当需要替换时,才把已经修改的cache块写回到主存中。
11、说明ARM存储器存储访问过程。
12、arm的MMU主要主要实现何功能。
答:MMU主要主要实现功能是:
1、&&&&&虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理,通过两级页表实现虚拟地址到物理地址的映射。
2、&&&&&存储器访问权限的控制。&
3、&&&&&设置虚拟存储空间的缓冲的特性,主要包括Cache、write&buffer的配置。
13、协处理器cp15主要主要实现何功能。
协处理器cp15用于处理、控制ARM的特殊性能,包括:
1、&&&&&片上存储器管理单元(MMU)的特性。
2、&&&&&指令、数据缓存的特性。
3、&&&&&写缓冲器的特性。
&&&&&&&为控制这些特性,&CP15提供了16&个额外寄存器。
14、简述MMU使能时存储访问过程&。(设chach为一级cache)
&&&&答:使能MMU时存储访问过程&:
&&&&通过配置cp15寄存器,设置为MMU使能:
(1)&&&&&若cache使能,根据arm输出的虚拟地址在CACHE中搜索;若cache命中,&arm处理器与cache交换数据。
(2)&&&&&若cache禁止或cache未命中,首先访问TLB,根据arm输出的虚拟地址在TLB中搜索,若TLB命中,将TLB中的物理页地址与虚拟地址的页内偏移量拼接成物理地址,访问主存并把该块数据读取到cache(使能时)中。
(3)&&&&&若cache且TLB均未命中,访问主存中的页表。
15、ARM支持的物理页有几种类型,其容量为何值?
&&&&&&&ARM支持的物理页有四种类型,分别是:1m的页,64k的大页,4k的小页,1k的微页或极小页。
16、简述采用单步页表搜索过程。
(若一级页表的页表项为1M的段,采用单步页表搜索;若为细页表或粗页表的页表项则采用两步搜索。)
搜索步骤:
1、首先由c2寄存器的高18位和逻辑地址的高12位拼接成段描述符的物理地址,如下图所示:
2、根据上述地址检索一级页表找到段描述符,把段描述符中的高12位和虚拟地址的低20位拼接成32位物理地址,并由此地址访问主存物理页及相应存储单元。
17、简述使用粗页表和4k页的二级虚实地址转换过程。
1、首先把c2寄存器中的18位页表基址作为粗页表描述符的地址的高18位,虚拟地址的高12位作为粗页表描述符的地址的中间部分,00作为粗页表描述符的地址的最低2位,由此得到粗页表描述符的物理地址。根据粗页表描述符的物理地址,检索一级页表,找到粗页表描述符。
2、把粗页表描述符22位二级页表基址与虚拟地址的中间8位和00拼接成4k页描述符的物理地址,根据4k页描述符的物理地址,检索二级页表,找到4k页表描述符。
3、将4k页表描述符中的高20位物理地址与虚拟地址的低12位拼接成主存物理地址,并由此访问某存储单元。
18、微处理器及嵌入式系统的总线一般由几部分组成,arm中实现存储器及外设读、写操作的控制信号是什么?
微处理器及嵌入式系统的总线一般由3部分组成,其分别是:
1、数据总线:传送数据信息的信号线,通常为双向、三态总线。&&
地址总线:用来传送地址信息的信号线,通常为单向、三态总线
3、控制总线:传送控制信息的信号线。
arm中实现存储器及外设读、写操作的控制信号分别是&。
19、何谓总线主控设备、总线从设备,并举例说明之。
何谓主控设备是指能控制总线并启动数据传送的任何设备称做主控器或主设备,如CPU和DMA控制器&。总线从设备则是指能够响应总线主设备发出的总线命令的任何设备,如存储器。
20、什么是系统总线,微机和arm使用何系统总线?
系统总线是指把微机系统内各部件的相互连接的总线,例,微机的&ISA、EISA、VESA、PCI等微机标准总线,arm的片上总线。
简述总线周期的四个阶段。
一个总线周期的四个阶段:&
1.总线请求和仲裁阶段&&&由需要使用总线的主控设备向总线仲裁机构提出使用总线的请求,经总线仲裁机构仲裁确定,把下一个传送周期的总线使用权分配给哪一个请求源。
2、寻址阶段&&&&&取得总线使用权的主控设备,通过地址总线发出本次要访问的从属设备的存储器地址、或I/O端口地址及有关命令,通过译码使参与本次传送操作的从属设备被选中,并开始启动。
3、数据传送阶段&&&主控设备和从属设备进行数据交换。
4、结束阶段&&&&主控设备、从属设备的有关信息均从系统总线上撤除,让出总线,以便其他模块能继续使用。
22、简述主设备和从设备之间的三种数据传输方式。
主设备和从设备之间的数据传输方式:
一、同步式传输&
&&&&&&&&&使用一个同步时钟作为控制数据的传输。主设备与从设备进行一次传输所需的时间是固定的,其中每一步骤的起止时刻,也都有严格的规定,都以系统时钟来统一。
二、异步式传输&
&&&&&&&&异步传输是采取应答式传输技术来实现的,用请求REQ和应答ACK两种信号来协调传输过程。
三、半同步传输&
&&&&&半同步传输是综合同步和异步传输方式的优点设计出来的混合式的总线结构。&&&&&&&这种总线有两个控制信号:由主设备来的CLOCK和从设备来的WAIT信号。&&&若从设备传输速度足够快,则不发WAIT等待信号,以同步方式传输数据。如果从设备不能在一个周期内作出响应,则使WAIT信号变高而使主设备暂停。只要WAIT信号高电平有效,其后的时钟周期内主设备处于等待状态直到WAIT变低。
23、AMBA规范定义了哪三种总线,arm7实现了AHB还是ASB。&
AMBA规范定义了三种总线:&
1.&&&&&AHB(Advanced&High-performance&Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序参考同一个时钟沿;
2.&&&&&ASB(Advanced&System&Bus):用于连接高性能系统模块,它支持突发数据传输模式;在不需要AHB的高速特性的场合,可选择ASB作为系统总线&。
3.&&&&&APB(Advance&Peripheral&Bus外围总线):是一个简单接口支持低性能的外围接口。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:143255次
积分:3977
积分:3977
排名:第5276名
原创:250篇
转载:93篇
(2)(2)(3)(4)(10)(6)(10)(11)(6)(22)(72)(15)(27)(29)(32)(46)(23)(4)(20)}

我要回帖

更多关于 arm异常中断一般处理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信