5第五章ARM存储系统._第1页
5第五章ARM存储系统._第2页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

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

2、CACHE 和 WRITE BUFFER 技术缩小处理 器和存储系统速度差别,从而提高系统性能; 内存管理部件使用内存映射技术实现虚拟空间到 物理空间的映射。 引入存储保护机制,增强系统的安全性; 引入一些机制保证 I/O 操作映射成内存操作后, 各种I/O 操作能够得到正确的结果。 ARM存储器管理单元 S3C44B0X存储器组织示意图 ARM存储系统概述 ARMARM Cx01c0_0000-r CxOOOO.OOOO- 用于存储管理的系统控制协处理寄存器 CP15 在基于 ARM 的嵌入式系统中,存储系统 通常使用 CP15 来完成存储器的大部分管理工作; 除了CP15 之外,在具体的存

3、储机制中可能还会 用到其他技术如:页表技术等。 CP15可以保护16个32位的寄存器, 编号0 -15o实际上对于某些编号的寄存器可能对应 有多个物理寄存器,在指令中指定特定的标志 位来区分相应的寄存器。 SROMDRAMSDRAM (nGCS7) CxOeOO 0000- - SROM/DRAM/SDRAM (nGCS6) CxOcOO.OOOO CxOaOO 0000 SROM (nGCS5) Cx0800 OOOOf SROM (nGCS4) CxOSOO oooo- SROM (nGCS3) Cx0400 0000- SROM (nGCSCx0200_0000-1 SROM (nGCS

4、1) SROM (nGCSO) B 3M MBMB 32迓 1BB Special function Registers (4M bytes) M 2 寄存器编号 基本作用 在 MMU中的作用 0 ID编码(只读) ID码和 Cache类型 1 控制位 各种控制位 2 存储保护和控制 地址转换表基地址 3 存储保护和控制 域访问控制位 4 存储保护和控制 保留 5 存储保护和控制 内存失效状态 6 存储保护和控制 内存失效地址 ARM存储器管理单元 CP15 寄存器列表一 1 ARM存储器管理单元 CP15 寄存器列表一 2 寄存器编号 基本作用 在 MMU中的作用 7 高速缓存和写缓存 高速

5、缓存和写缓存控制 8 存储保护和控制 TLB控制 9 高速缓存和写缓存 高速缓存锁定 10 存储保护和控制 TLB锁定 11 保留 12 保留 寄存器编号 基本作用 在 MMU中的作用 13 进程标识符 进程标识符 14 保留 15 因不同设计而异 因不同设计而异 ARM存储器管理单元 CP15 寄存器列表一 3 ARM存储器管理单元访问 CP15 寄存器的指令 访问CP15 寄存器的指令有如下两条: MCR Register - Coprocessor Register MRC Coprocessor Register - Register 注意:这两条指令只能在系统模式下执行;在用 户模式

6、下执行该指令将引起异常。 指令语法 MCR cond pl5, , , , , MCR2 pl5, , , , , OP1OP1 为协处理器将执行的操作的代码。对于 CP15CP15 来说, 该值必须为 0;0; RdRd 为源寄存器,其值将被传送到协处理器中;该寄存 器不能为PCPC; CRnCRn 是协处理器的目标寄存器,可以是 C0C0- -1515; CRmCRm 是附加的目标寄存器或源操作数寄存器,用于区 分同一编号的不同物理寄存器,当指令中不需要附加 信息时要将 C0C0指定为 CRm; OP2OP2 也提供附加信息,用于区分同一编号的不同物理寄 存器,当指令中不需要附加信息时,可

7、以省略或者将 其置 0 0。ARM存储器管理单元 MCR 访问 CP15 示例 MCR P15,0, R4, Cl, C0,0 上述指令从 ARM寄存器 R4 中将数据传送 到协处理器 CP15 的寄存器 C1 中。其中 R4 为 ARM寄存器,存放源操作数;C1 和 CO 为协处 理器寄存器,为目标寄存器;操作码 1 为 0,操 作码附加信息也为 0。 ARM存储器管理单元 MRC 访问 CP15 MRC cond pl5, , , , , MRC2 pl5, , , , , OP1OP1 为协处理器将执行的操作的代码。对于 CP15CP15 来说, 该值必须为 0;0; RdRd 为目标寄

8、存器,指令处理的结果将存放在该寄存器 中; CRnCRn 是协处理器寄存器,存放第一个源操作数; CRmCRm 是附加的源操作数寄存器,用于区分同一编号的 不同物理寄存器,当指令中不需要附加信息时要将 C0 C0 指定为 CRmCRm; OP2OP2 也提供附加信息,用于区分同一编号的不同物理寄 存器,当指令中不需要附加信息时,可以省略或者将 其置 0 0。ARM存储器管理单元 存储管理单元 MMU 的作用 实现虚拟地址空间到物理存储空间的映射; 存储器访问权限的控制; 设置虚拟存储空间的缓冲特性。 页表是实现上述功能的一个重要手段,它实际 上是位于内存中的一个对照表。 为了实现不同层次的管理

9、,系统提供了基于段或 页的存储器访问方式 段( (section): 由 1MB的存储器块构成 大页(largepage):由 64KB的存储器块构成 小页( (smallpage):由 4KB的存储器块构成 微页(tiny page):由 1KB 的存储器块构成AR存储ARM存储器管理单元 用于存储管理的页表 地址变换条目:页表的每一行对应与虚拟地 址空间的一个页,该行同时保含了该虚拟 内存页对应的物理内存页的地址、该页的 访问权限以及缓冲特性等。我们将页表中 的一行称为地址变换条目。 页表存放在内存中,系统通常有一个寄存器 来保存页表的基地址。ARM 系统中使用的 就是 CP15的寄存器

10、C2。 快表:从虚拟地址到物理地址的转换实际上 就是查询页表的过程。由于程序在执行过 程中具有局部性,即在一段时间内只是局 限在少数几个单元,为了加快页表的査询 速度,在系统中通常使用一个容量更小、 速度更快的存储器件来保存当前需要访问 的地址变换条目,这个容量小的页表又称 作快表AR用于ARM存储器管理单元 (TLB) o 快表的使用 更新:当 CPUCPU 需要访问内存时,首先在 TLBTLB 中查找 需要的地址变换条目。若不存在则在内存页表中 査询,并把査询的结果添加到 TLBTLB 中。 清除:当内存中页表的内容改变或者使用新的页表 时,TLBTLB 中的内容需要清空。CP15CP15

11、 的寄存器 8 8 用 于完成该动能。 锁定:可以将一个地址变换条目锁定在 TLBTLB 中,以 加快访问速度,CP15CP15 的寄存器 1010 用于完成该功能。 ARM存储器管理单元 域(domain )管理 域是段、大页和小页的集合。ARM 结构支持 16 个域。对域的访问由域访问控制寄存器 (CP15 的寄存器 3)的两个位字段控制。因 为每个字段对访问对应的域的使能非常迅速, 所以整个存储器区间能很快地交换进出虚拟 存储器。这里支持 2 种域访问方式 客户:域的用户(执行程序,访问数据),被 形成这个域的节或页来监督访问权限。 管理者:控制域的行为(域中的当前段和页, 对域的访问)

12、,不被形成这个域的段或页来 监督访问权限。ARM存储器管理单元 域(domain)管理 一个程序可以是一些域的客户,也是 另外一些域的管理者,同时没有对其它域 的访问权限。 这允许对程序访问不同存储 器资源的非常灵活的存储器保护。 ARM存储器管理单元 内存访问失效管理 当存储器访问失败时,MMU 单元提供了 相应的机制用于处理这种情况。CP15 的寄存 器 5和寄存器 6 用于完成该功能。 寄存器 1 的 MMU 控制位 RR V I Z F R s B L D p W C A M w 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 M(bitO)使能MMU -0 =禁

13、止 MMU -1 =允许 MMU 在没有MMU和保护单元的系统上,这个位应该 读出为0,并忽略写。 A(bitl)使能对齐错检查 -0 =禁止 -1 =允许 ARM存储器管理单元 林丄知朋 禁止和使能 MMU 下面指令使能 MMU mrc pl5,0,r0,cl,c0,0 ORR RO, RO, #1 mcr pl5,0,r0,cl,c0,0 下面指令禁止 MMU MRC P15,0, RO, Cl, CO, 0 BIC RO, RO, #1 MCR P15,0, RO, Cl, CO, 0ARM存储器管理单元 ARM存储器管理单元 地址变换过程 虚拟存储空间到物理存储空间的映射是 以内存块为

14、单位进行的。 釧MU中釆用两级页表实现上述地址映射: 一级页表中包含有以段为单位的地址变换条目 以及指向二级页表的指针。一级页表实现的 地址映射粒度较大; 二级页表中包含以大页和小页为单位的地址变 换条目。其中一种类型的二级表还包含有极 小页为单位的地址变换条目。 ARM存储器管理单元 基于一级页表的地址变换 14 0 页表的基地址 0 31 20 0 页表内序号 XXXX,XXXX、XXXX,XXXX,XXXX 卄 n 虚拟地址 31 V 14 U 2 0 页表的基地址 页表内序号 00 一级页表描述符可能的格式 14 0 页表的基地址 0 CP15 的 C2 31 20 页表内 序号 xx

15、xx3 xxxxxxxxxxxx3 XXXX 段基地址 1 0 V 段基地址 段內偎移 0 0 組粒度一级页表的基地址 0 域 用户定义 0 1 段基地址 应为 0 AP 0 域 C B 1 0 细粒度一级页表的基地址 应为 0 域 用户定义 1 1 无效 粗表 段 细页 31 20 12 10 9 8 5 4 3 2 1 0 ARM存储器管理单元 基于31 V 页表的基地址 14 虚拟地址 2 0 页表ARM存储器管理单元 高速缓冲区和写缓冲区 高速缓冲存储器和写缓冲区 处理器主频较高,通常为几十兆甚至几百兆, 而一般存储器( (DRAM)的存储周期为 100 200nso 存储器的速度严重

16、制约着系统的性能。 高速缓冲存储器(cache)是一个硬件部件,对 我们来说是透明的。Cache 与主存储器间以块 (cacheline)为单位进行数据交换。 Cache 的存取速度远远大于主存储器的速度, 存储器访问的时间局部性决定了采用 Cache 后, 系统的整体性能可以得到大大提高。 高速缓冲区和写缓冲区 CacCache 主存 高速缓冲区和写缓冲区 Cache 的工作原理 在 CacheCache 存储系统中,把 CacheCache 和主存划分为相同大小 的块。主存地址可以使用块号(B)(B)和块内地址(W)(W)两部 分组成。同样CacheCache 的地址也可以使用块号(B)(

17、B)和块内 地址(W)(W)两部分组成。 命中率:当 CPUCPU 访问存储器时,通过存储器地址变换部 件把地址变换成cachecache的块号和块内地址, 如果变换 成功(称为cachecache命中),就用得到的 cachecache 地址访问 cache,cache,从 cachecache 中取数;如果变换失败,则产生 cachecache 失效信息,并用主存储器的地址访问主存储器,同时 将包含被访问字在内的一整块都从主存储器读出来, 装入到 cachecache中,但如果这时 cachecache 已满,需要釆用适 当的替换算法来更新 cache ocache o 高速缓冲区和写缓冲

18、区 Cache 的地址映象和变换方法 地址映象指把主存地址空间映象到 cachcach地址空间, 具 体说就是把存放在主存中的程序按照某种规则装入到 。811811中,并建立主存地址到 cachecache 地址之间的对应关 系。 地址变换是指当程序已经装入到 cachtcacht 中后(形成地址 映象),在实际运行过程中,把主存地址如何变换成 cachecache 地址。 地址映象和变换是密切相关的,算法需要统一。但所有 方法都将主存和 cachecache 划分为同样大小的存储单元 (称为块),在进行变换时都是以块为单位。 相联映象三种方法。地址映象和变换方法包括: 全相直接映象、组 高速

19、缓冲区和写缓冲区 地址映象和变换方法一全相联映象方式 主存中任意一块可以映射到 cache中的任意一 块的位置上。 如果 sdw 的块容量为 C,主存的块容量为 M, 则两者之间的映象关系有 C*M 种,如果采 用目录表来存放这些映象关系,目录表的容 量为C。 高速缓冲区和写缓冲区 地址映象和变换方法一直接映象方式 这是最简单也是最直接的方法。主存中一块只能 映象到 cache 中的一个特定的块中。 假设主存的块号为 B, cache 的块号为 b,则他们 之间的映象关系可以使用下面的公司表示: b = B mode Cb 其中 Cb 为 cache 的块容量 高速缓冲区和写缓冲区 地址映象和

20、变换方法一组相联映象方式 在这种方式下,把主存和 cache 按照同样大小划 分成组,每个组都由相同的块数组成。这样, 主存的组数要比 each 的组数多: 主存的组与 cadw 的组之间釆用直接映象的方式; 在两个对应的组之间采用全相联映象方式。 Cache 的分类 统一/独立的数据和指令 cache 适应独立的数据和指令 cache,可以在同一个 时钟周期中读取指令和数据, 而不需要双端口 的 cacheo但这时需要保证指令和数据的一致 性。 写回和写通 cache 写回 cached 执行写操作时,被写的数据只写 入cache,仅当 cache 需要被替换时才将数据写 入到实际的存储器中

21、; 写通则是在指执行写操作时,同时向 sdw 和 存储器执行写操作,从而保证数据的一致性。高速缓冲区和写缓冲区 高速缓冲区和写缓冲区 Cache 替换算法 随机替换算法和轮转法 随机替换算法通过一个随机数发生器产生随机数, 用新块将编号为该随机数的块进行替换 o 轮转法维护一个逻辑的计数器,利用该计数器依 次选择将要被替换出去的 cadw 块。 高速缓冲区和写缓冲区 存储系统的一致性问题 当引入 cache 机制后,同一地址的数据可 能存在多个副本,分别保存在 cadw 中、写缓 冲区中以及主存中。 地址映射关系改变造成的不一致; 指令 cache 的数据一致性问题; DM A 造成的不一致问题;高速缓冲区和写缓冲区 Cache 的编程接口 与 cache 和写缓冲区相关的寄存器包括 CP15 中的 寄存器 C7、寄存器 C9 以及寄存器 C1 中的某些 位。 MCR P15,0, , , , MCR P15,0, vRd, vC7, vCRm, MCR P

温馨提示

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

最新文档

评论

0/150

提交评论