ARM基础知识

注意:以下大部分类容都来自网上现成的(直接拷贝过来的,然后经整理)!!!! 

问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外围总线):是一个简单接口支持低性能的外围接口。

完结!!!




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值