好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

5第五章 arm存储系统.ppt

41页
  • 卖家[上传人]:mg****85
  • 文档编号:50679247
  • 上传时间:2018-08-09
  • 文档格式:PPT
  • 文档大小:279KB
  • / 41 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1 13 32 24 4ARM存储系统概述快速上下文切换技术高速缓冲区和写缓冲区ARM存储器管理单元第五章 ARM存储系统ARM存储系统概述 与其他中低档单片机不同,ARM处理器中一般 都包含一个存储器管理部件,用于对存储器的 管理为了适应不同的嵌入式应用, ARM存储系统的 体系结构存在很多差别简单的可以使用向单 片机系统中使用的平板式地址映射机制即可; 而一些复杂的系统中则可能包含多种技术来提 供功能强大的存储系统ARM存储系统概述ARM所使用的存储系统技术系统中可能包含多种类型的存储器件,如 FLASH、ROM、SDRAM、SRAM等;而且 不同类型的存储器件要求不同的速度、数据宽 度等; 通过CACHE和WRITE BUFFER技术缩小处理 器和存储系统速度差别,从而提高系统性能; 内存管理部件使用内存映射技术实现虚拟空间到 物理空间的映射 引入存储保护机制,增强系统的安全性; 引入一些机制保证I/O操作映射成内存操作后, 各种I/O操作能够得到正确的结果ARM存储系统概述S3C44B0X存储器组织示意图ARM存储器管理单元用于存储管理的系统控制协处理寄存器CP15在基于ARM的嵌入式系统中,存储系统 通常使用CP15来完成存储器的大部分管理工 作;除了CP15之外,在具体的存储机制中可 能还会用到其他技术如:页表技术等。

      CP15可以保护16个32位的寄存器,编号 0-15实际上对于某些编号的寄存器可能对 应有多个物理寄存器,在指令中指定特定的标 志位来区分相应的寄存器CP15寄存器列表-1寄存器编号基本作用在MMU中的作用0ID编码(只读)ID码和Cache类型1控制位各种控制位2存储保护和控制地址转换表基地址3存储保护和控制域访问控制位4存储保护和控制保留5存储保护和控制内存失效状态6存储保护和控制内存失效地址ARM存储器管理单元CP15寄存器列表-2寄存器编号基本作用在MMU中的作用7高速缓存和写缓存高速缓存和写缓存控制8存储保护和控制TLB控制9高速缓存和写缓存高速缓存锁定10存储保护和控制TLB锁定11保留 12保留 ARM存储器管理单元CP15寄存器列表-3寄存器编号基本作用在MMU中的作用13进程标识符进程标识符14保留 15因不同设计而异因不同设计而异ARM存储器管理单元访问CP15寄存器的指令访问CP15寄存器的指令有如下两条: MCRRegister -> Coprocessor Register MRCCoprocessor Register -> Register注意:这两条指令只能在系统模式下执行;在用 户模式下执行该指令将引起异常。

      ARM存储器管理单元指令语法 MCR {cond} p15, , ,,{, } MCR2 p15, , ,,{, } OP1为协处理器将执行的操作的代码对于CP15来说 ,该值必须为0; Rd为源寄存器,其值将被传送到协处理器中;该寄存 器不能为PC; CRn是协处理器的目标寄存器,可以是C0-15; CRm是附加的目标寄存器或源操作数寄存器,用于区 分同一编号的不同物理寄存器,当指令中不需要附 加信息时要将C0指定为CRm; OP2也提供附加信息,用于区分同一编号的不同物理 寄存器,当指令中不需要附加信息时,可以省略或 者将其置0MCR 访问CP15示例MCRP15, 0, R4, C1, C0, 0上述指令从ARM寄存器R4中将数据传送 到协处理器CP15的寄存器C1中其中R4为 ARM寄存器,存放源操作数;C1和C0为协 处理器寄存器,为目标寄存器;操作码1为0 ,操作码附加信息也为0ARM存储器管理单元MRC 访问CP15 MRC {cond} p15, , ,,{, } MRC2 p15, , ,,{, } OP1为协处理器将执行的操作的代码对于CP15来说 ,该值必须为0; Rd为目标寄存器,指令处理的结果将存放在该寄存器 中; CRn是协处理器寄存器,存放第一个源操作数; CRm是附加的源操作数寄存器,用于区分同一编号的 不同物理寄存器,当指令中不需要附加信息时要将 C0指定为CRm; OP2也提供附加信息,用于区分同一编号的不同物理寄 存器,当指令中不需要附加信息时,可以省略或者将 其置0。

      ARM存储器管理单元存储管理单元MMU的作用实现虚拟地址空间到物理存储空间的映射; 存储器访问权限的控制; 设置虚拟存储空间的缓冲特性页表是实现上述功能的一个重要手段,它实 际上是位于内存中的一个对照表ARM存储器管理单元存储器单元的段页式管理 为了实现不同层次的管理,系统提供了基于段或 页的存储器访问方式段(section):由1MB 的存储器块构成 大页(large page):由64KB 的存储器块构成 小页(small page):由4KB 的存储器块构成 微页(tiny page):由1KB 的存储器块构成ARM存储器管理单元用于存储管理的页表地址变换条目:页表的每一行对应与虚拟地 址空间的一个页,该行同时保含了该虚拟 内存页对应的物理内存页的地址、该页的 访问权限以及缓冲特性等我们将页表中 的一行称为地址变换条目页表存放在内存中,系统通常有一个寄存器 来保存页表的基地址ARM系统中使用的 就是CP15的寄存器C2ARM存储器管理单元用于存储管理的页表快表:从虚拟地址到物理地址的转换实际上 就是查询页表的过程由于程序在执行过 程中具有局部性,即在一段时间内只是局 限在少数几个单元,为了加快页表的查询 速度,在系统中通常使用一个容量更小、 速度更快的存储器件来保存当前需要访问 的地址变换条目,这个容量小的页表又称 作快表(TLB)。

      ARM存储器管理单元快表的使用更新:当CPU需要访问内存时,首先在TLB中查找 需要的地址变换条目若不存在则在内存页表中 查询,并把查询的结果添加到TLB中清除:当内存中页表的内容改变或者使用新的页表 时,TLB中的内容需要清空CP15的寄存器8用 于完成该功能锁定:可以将一个地址变换条目锁定在TLB中,以 加快访问速度,CP15的寄存器10用于完成该功能 ARM存储器管理单元域(domain)管理 域是段、大页和小页的集合ARM 结构支持 16 个域对域的访问由域访问控制寄存器( CP15的寄存器3 )的两个位字段控制因为 每个字段对访问对应的域的使能非常迅速, 所以整个存储器区间能很快地交换进出虚拟 存储器这里支持2 种域访问方式 客户:域的用户(执行程序,访问数据),被 形成这个域的节或页来监督访问权限 管理者:控制域的行为(域中的当前段和页, 对域的访问),不被形成这个域的段或页来 监督访问权限ARM存储器管理单元域(domain)管理一个程序可以是一些域的客户,也是 另外一些域的管理者,同时没有对其它域 的访问权限这允许对程序访问不同存储 器资源的非常灵活的存储器保护ARM存储器管理单元内存访问失效管理当存储器访问失败时,MMU单元提供了 相应的机制用于处理这种情况。

      CP15的寄存 器5和寄存器6用于完成该功能ARM存储器管理单元寄存器1的MMU 控制位M(bit[0]) 使能MMU –0 = 禁止MMU –1 = 允许MMU 在没有MMU 和保护单元的系统上,这个位应该 读出为0,并忽略写 A(bit[1]) 使能对齐错检查 –0 = 禁止 –1 = 允许. .RRVIZFRSBLDPWCAM. .14131211109876543210ARM存储器管理单元禁止和使能MMU下面指令使能MMUmrc p15,0,r0,c1,c0,0 ORR R0,R0, #1mcr p15,0,r0,c1,c0,0下面指令禁止MMU MRCP15, 0, R0, C1, C0, 0 BICR0, R0, #1 MCRP15, 0, R0, C1, C0, 0ARM存储器管理单元地址变换过程虚拟存储空间到物理存储空间的映射是 以内存块为单位进行的 在MMU中采用两级页表实现上述地址映射: 一级页表中包含有以段为单位的地址变换条目 以及指向二级页表的指针一级页表实现的 地址映射粒度较大; 二级页表中包含以大页和小页为单位的地址变 换条目其中一种类型的二级表还包含有极 小页为单位的地址变换条目。

      ARM存储器管理单元基于一级页表的地址变换ARM存储器管理单元一级页表描述符可能的格式ARM存储器管理单元基于段地址的映射示意图ARM存储器管理单元高速缓冲存储器和写缓冲区处理器主频较高,通常为几十兆甚至几百兆, 而一般存储器(DRAM)的存储周期为100 ~200ns存储器的速度严重制约着系统的性 能 高速缓冲存储器(cache)是一个硬件部件,对 我们来说是透明的Cache与主存储器间以 块(cache line)为单位进行数据交换 Cache的存取速度远远大于主存储器的速度, 存储器访问的时间局部性决定了采用Cache 后,系统的整体性能可以得到大大提高高速缓冲区和写缓冲区Cache的工作原理高速缓冲区和写缓冲区Cache的工作原理在Cache存储系统中,把Cache和主存划分为相同大小 的块主存地址可以使用块号(B)和块内地址(W)两部 分组成同样Cache的地址也可以使用块号(B)和块内 地址(W)两部分组成 命中率:当CPU访问存储器时,通过存储器地址变换 部件把地址变换成cache的块号和块内地址,如果变 换成功(称为cache命中),就用得到的cache地址访 问cache,从cache中取数;如果变换失败,则产生 cache失效信息,并用主存储器的地址访问主存储器 ,同时将包含被访问字在内的一整块都从主存储器读 出来,装入到cache中,但如果这时cache已满,需要 采用适当的替换算法来更新cache。

      高速缓冲区和写缓冲区Cache的地址映象和变换方法地址映象指把主存地址空间映象到cache地址空间,具 体说就是把存放在主存中的程序按照某种规则装入 到cache中,并建立主存地址到cache地址之间的对应 关系 地址变换是指当程序已经装入到cache中后(形成地址 映象),在实际运行过程中,把主存地址如何变换 成cache地址地址映象和变换是密切相关的,算法需要统一但所 有方法都将主存和cache划分为同样大小的存储单元 (称为块),在进行变换时都是以块为单位 地址映象和变换方法包括:全相联映象、直接映象、 组相联映象三种方法高速缓冲区和写缓冲区地址映象和变换方法-全相联映象方式主存中任意一块可以映射到cache中的任意一 块的位置上如果cache的块容量为C,主存的块容量为M ,则两者之间的映象关系有C*M种,如果 采用目录表来存放这些映象关系,目录表 的容量为C高速缓冲区和写缓冲区地址映象和变换方法-直接映象方式这是最简单也是最直接的方法主存中一块只能 映象到cache中的一个特定的块中假设主存的块号为B,cache的块号为b,则他们 之间的映象关系可以使用下面的公司表示: b = B mode Cb 其中Cb为cache的块容量高速缓冲区和写缓冲区地址映象和变换方法-组相联映象方式在这种方式下,把主存和cache按照同样大小 划分成组,每个组都由相同的块数组成。

      这 样,主存的组数要比cache的组数多;主存的组与cache的组之间采用直接映象的方 式;在两个对应的组之间采用全相联映象方式高速缓冲区和写缓冲区Cache的分类 统一/独立的数据和指令cache 适应独立的数据和指令cache,可以在同一个 时钟周期中读取指令和数据,而不需要双端口 的cache但这时需要保证指令和数据的一致 性 写回和写通cache 写回cache指执行写操作时,被写的数据只写 入cache,仅当cache需要被替换时才将数据写 入到实际的存储器中; 写通则是在指执行写操作时,同时向cache和 存储器执行写操作,从而保证数据的一致性高速缓冲区和写缓冲区Cache替换算法随机替换算法和轮转。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.