第5章 ARM存储系统.ppt_第1页
第5章 ARM存储系统.ppt_第2页
第5章 ARM存储系统.ppt_第3页
第5章 ARM存储系统.ppt_第4页
第5章 ARM存储系统.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、,提纲,1,3,2,4,ARM存储系统概述,快速上下文切换技术,高速缓冲区和写缓冲区,ARM存储器管理单元,第五章ARM存储系统,ARM存储系统概述,与其他中低档单片机不同,ARM处理器中一般都包含一个存储器管理部件,用于对存储器的管理。为了适应不同的嵌入式应用,ARM存储系统的体系结构存在很多差别。简单的可以使用向单片机系统中使用的平板式地址映射机制即可;而一些复杂的系统中则可能包含多种技术来提供功能强大的存储系统。,ARM所使用的存储系统技术,系统中可能包含多种类型的存储器件,如FLASH、ROM、SDRAM、SRAM等;而且不同类型的存储器件要求不同的速度、数据宽度等;通过CACHE和W

2、RITEBUFFER技术缩小处理器和存储系统速度差别,从而提高系统性能;内存管理部件使用内存映射技术实现虚拟空间到物理空间的映射。引入存储保护机制,增强系统的安全性;引入一些机制保证I/O操作映射成内存操作后,各种I/O操作能够得到正确的结果。,用于存储管理的系统控制协处理寄存器CP15,在基于ARM的嵌入式系统中,存储系统通常使用CP15来完成存储器的大部分管理工作;除了CP15之外,在具体的存储机制中可能还会用到其他技术如:页表技术等。CP15可以保护16个32位的寄存器,编号015。实际上对于某些编号的寄存器可能对应有多个物理寄存器,在指令中指定特定的标志位来区分相应的寄存器。,CP15

3、寄存器列表1,CP15寄存器列表2,CP15寄存器列表3,访问CP15寄存器的指令,访问CP15寄存器的指令有如下两条:MCRRegister-CoprocessorRegisterMRCCoprocessorRegister-Register注意:这两条指令只能在系统模式下执行;在用户模式下执行该指令将引起异常。,MCR访问CP15,指令语法MCRcondp15,MCR2p15,OP1为协处理器将执行的操作的代码。对于CP15来说,该值必须为0Rd为源寄存器,其值将被传送到协处理器中;该寄存器不能为PC;CRn是协处理器的目标寄存器,可以是C0-15;CRm是附加的目标寄存器或源操作数寄存器

4、,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时要将C0指定为CRm;OP2也提供附加信息,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时,可以省略或者将其置0,MCR访问CP15示例,MCRP15,0,R4,C1,C0,0;R4-C1上述指令从ARM寄存器R4中将数据传送到协处理器CP15的寄存器C1中。其中R4为ARM寄存器,存放源操作数;C1和C0为协处理器寄存器,为目标寄存器;操作码1为0,操作码附加信息也为0。,MRC访问CP15,指令语法MRCcondp15,MRC2p15,OP1为协处理器将执行的操作的代码。对于CP15来说,该值必须为0,Rd为目标寄存器

5、,指令处理的结果将存放在该寄存器中;CRn是协处理器寄存器,存放第一个源操作数;CRm是附加的源操作数寄存器,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时要将C0指定为CRm;OP2也提供附加信息,用于区分同一编号的不同物理寄存器,当指令中不需要附加信息时,可以省略或者将其置0,MRC访问CP15示例,MRCP15,0,R4,C1,C0,0;C1-R4上述指令从协处理器CP15的寄存器C1中将数据传送到ARM寄存器R4中。其中R4为ARM寄存器,为目标寄存器;C1和C0为协处理器寄存器,存放源操作数;操作码1为0,操作码附加信息也为0。,1,3,2,4,ARM存储系统概述,快速上

6、下文切换技术,高速缓冲区和写缓冲区,ARM存储器管理单元,第五章ARM存储系统,存储管理单元MMU的作用,实现虚拟地址空间到物理存储空间的映射;存储器访问权限的控制;设置虚拟存储空间的缓冲特性。页表是实现上述功能的一个重要手段,它实际上是位于内存中的一个对照表。,存储器单元的段页式管理,为了实现不同层次的管理,系统提供了基于段或页的存储器访问方式段(section):由1MB的存储器块构成大页(largepage):由64KB的存储器块构成小页(smallpage):由4KB的存储器块构成微页(tinypage):由1KB的存储器块构成,用于存储管理的页表,地址变换条目:页表的每一行对应与虚拟

7、地址空间的一个页,该行同时保含了该虚拟内存页对应的物理内存页的地址、该页的访问权限以及缓冲特性等。我们将页表中的一行称为地址变换条目。页表存放在内存中,系统通常有一个寄存器来保存页表的基地址。ARM系统中使用的就是CP15的寄存器C2。快表:从虚拟地址到物理地址的转换实际上就是查询页表的过程。由于程序在执行过程中具有局部性,即在一段时间内只是局限在少数几个单元,为了加快页表的查询速度,在系统中通常使用一个容量更小、速度更快的存储器件来保存当前需要访问的地址变换条目,这个容量小的页表又称作快表(TLB)。,快表的使用,更新:当CPU需要访问内存时,首先在TLB中查找需要的地址变换条目。若不存在则

8、在内存页表中查询,并把查询的结果添加到TLB中。清除:当内存中页表的内容改变或者使用新的页表时,TLB中的内容需要清空。CP15的寄存器C8用于完成该功能。锁定:可以将一个地址变换条目锁定在TLB中,以加快访问速度,CP15的寄存器C10用于完成该功能。,寄存器1的MMU控制位,M(bit0)使能MMU0=禁止MMU1=允许MMU在没有MMU和保护单元的系统上,这个位应该读出为0,并忽略写。A(bit1)使能对齐错检查0=禁止1=允许,禁止和使能MMU,下面指令使能MMUMRCP15,0,R0,C1,0,0ORRR0,#1MCRP15,0,R0,C1,0,0下面指令禁止MMUMRCP15,0,

9、R0,C1,0,0BICR0,#1MCRP15,0,R0,C1,0,0,地址变换过程,虚拟存储空间到物理存储空间的映射是以内存块为单位进行的。在MMU中采用两级页表实现上述地址映射:一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表实现的地址映射粒度较大;二级页表中包含以大页和小页为单位的地址变换条目。其中一种类型的二级表还包含有极小页为单位的地址变换条目。,基于一级页表的地址变换,31,一级页表描述符可能的格式,基于段地址的映射示意图,域(domain)管理,域是段、大页和小页的集合。ARM结构支持16个域。对域的访问由域访问控制寄存器(CP15的寄存器C3)的两个位字

10、段控制。因为每个字段对访问对应的域的使能非常迅速,所以整个存储器区间能很快地交换进出虚拟存储器。这里支持2种域访问方式客户:域的用户(执行程序,访问数据),被形成这个域的节或页来监督访问权限。管理者:控制域的行为(域中的当前段和页,对域的访问),不被形成这个域的段或页来监督访问权限。,内存访问失效管理,一个程序可以是一些域的客户,也是另外一些域的管理者,同时没有对其它域的访问权限。这允许对程序访问不同存储器资源的非常灵活的存储器保护。当存储器访问失败时,MMU单元提供了相应的机制用于处理这种情况。CP15的寄存器C5和寄存器C6用于完成该功能。,提纲,1,3,2,4,ARM存储系统概述,快速上

11、下文切换技术,高速缓冲区和写缓冲区,ARM存储器管理单元,第五章ARM存储系统,高速缓冲存储器和写缓冲区,处理器主频较高,通常为几十兆甚至几百兆,而一般存储器(DRAM)的存储周期为100200ns。存储器的速度严重制约着系统的性能。高速缓冲存储器(cache)是一个硬件部件,对我们来说是透明的。Cache与主存储器间以块(cacheline)为单位进行数据交换。Cache的存取速度远远大于主存储器的速度,存储器访问的时间局部性决定了采用Cache后,系统的整体性能可以得到大大提高。,Cache的工作原理,在Cache存储系统中,把Cache和主存划分为相同大小的块。主存地址可以使用块号(B)

12、和块内地址(W)两部分组成。同样Cache的地址也可以使用块号(B)和块内地址(W)两部分组成。命中率:当CPU访问存储器时,通过存储器地址变换部件把地址变换成cache的块号和块内地址,如果变换成功(称为cache命中),就用得到的cache地址访问cache,从cache中取数;如果变换失败,则产生cache失效信息,并用主存储器的地址访问主存储器,同时将包含被访问字在内的一整块都从主存储器读出来,装入到cache中,但如果这时cache已满,需要采用适当的替换算法来更新cache。,Cache的工作原理,Cache的地址映象和变换方法,地址映象指把主存地址空间映象到cache地址空间,具

13、体说就是把存放在主存中的程序按照某种规则装入到cache中,并建立主存地址到cache地址之间的对应关系。地址变换是指当程序已经装入到cache中后(形成地址映象),在实际运行过程中,把主存地址如何变换成cache地址。地址映象和变换是密切相关的,算法需要统一。但所有方法都将主存和cache划分为同样大小的存储单元(称为块),在进行变换时都是以块为单位。地址映象和变换方法包括:全相联映象、直接映象、组相联映象三种方法。,地址映象和变换方法全相联映象方式,主存中任意一块可以映射到cache中的任意一块的位置上。如果cache的块容量为C,主存的块容量为M,则两则之间的映象关系有C*M种,如果采用

14、目录表来存放这些映象关系,目录表的容量为C。,地址映象和变换方法直接映象方式,这是最简单也是最直接的方法。主存中一块只能映象到cache中的一个特定的块中。假设主存的块号为B,cache的块号为b,则他们之间的映象关系可以使用下面的公式表示:bBmodeCb其中Cb为cache的块容量,地址映象和变换方法组相联映象方式,在这种方式下,把主存和cache按照同样大小划分成组,每个组都由相同的块数组成。这样,主存的组数要比cache的组数多;主存的组与cache的组之间采用直接映象的方式;在两个对应的组之间采用全相联映象方式。,Cache的分类,统一/独立的数据和指令cache适应独立的数据和指令

15、cache,可以在同一个时钟周期中读取指令和数据,而不需要双端口的cache。但这时需要保证指令和数据的一致性。写回和写通cache写回cache指执行写操作时,被写的数据只写入cache,仅当cache需要被替换时才将数据写入到实际的存储器中;写通则是在指执行写操作时,同时向cache和存储器执行写操作,从而保证数据的一致性。,Cache替换算法,随机替换算法和轮转法随机替换算法通过一个随机数发生器产生随机数,用新块将编号为该随机数的块进行替换。轮转法维护一个逻辑的计数器,利用该计数器依次选择将要被替换出去的cache块。,存储系统的一致性问题,当引入cache机制后,同一地址的数据可能存在

16、多个副本,分别保存在cache中、写缓冲区中以及主存中。地址映射关系改变造成的不一致;指令cache的数据一致性问题;DMA造成的不一致问题;,Cache的编程接口,与cache和写缓冲区相关的寄存器包括CP15中的寄存器C7、寄存器C9以及寄存器C1中的某些位。MCRP15,0,MCRP15,0,MCRP15,0,c0,MRCP15,0,MRCP15,0,MRCP15,0,c0,提纲,1,3,2,4,ARM存储系统概述,快速上下文切换技术,高速缓冲区和写缓冲区,ARM存储器管理单元,第五章ARM存储系统,快速上下文切换技术,快速上下文切换技术通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。,快速上下文切换技术原理(FCSE),如果两个进程占用的虚拟地址空间有重叠,系统在这两个进程之间进行切换时,必须进行虚拟地址到物理地址的重映射,包括重建TLB,清除cache,整个工作需要带来巨大的系统开销。而快速上下文切换技术的引入避免了这种开销。FCSE位于CPU和MMU之间,他的责任就是将不同进程使用的相同的虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论