第四章 CP15协处理器_第1页
第四章 CP15协处理器_第2页
第四章 CP15协处理器_第3页
第四章 CP15协处理器_第4页
第四章 CP15协处理器_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、CP15CP15协处理器协处理器第四章预习检查预习检查什么是cache? Cache有哪两种写方式?MMU的功能是什么?2本章目标本章目标了解ARM存储器组织结构了解S3C2440A的cache基本工作原理了解MMU基本工作原理,与地址映射 本章结构本章结构CP15协处理器协处理器协处理器协处理器CP15结构和功能结构和功能高速高速Cache内存管理单元内存管理单元MMU快速上下文切换快速上下文切换ARM存储器存储器6-1 ARM存储器存储器 ARM存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。ARM存储器系统可以使用简单的平板式地址映射机制,也可以使用其他技术提供功能更为

2、强大的存储系统。提供多种类型的存储器件,如FLASH、ROM、SRAM等;Caches技术;写缓存技术(write buffers);虚拟内存和IO地址映射技术。6-1 ARM存储器存储器 大多数的系统通过下面的方法之一实现对复杂存储系统的管理。使能Cache,缩小处理器和存储系统速度差别,从而提高系统的整体性能。引入存储保护机制,增强系统的安全性。引入一些机制保证将IO操作映射成内存操作后,各种IO操作能够得到正确的结果。 6-1 ARM存储器存储器 8051的结构6-1 ARM存储器存储器 s32440的结构6-1 ARM存储器存储器 存储器的层次结构6-2 协处理器协处理器CP15 CP

3、l5,即通常所说的系统控制协处理器(System Control Coprocesssor)。它负责完成大部分的存储系统管理。 CacheARM内核内核地址地址写缓冲写缓冲MMU或或MPU数据读数据写数据控制逻辑控制逻辑CP15AMBA总线接口JTAG 及非AMBA信号AMBA接口接口6-2 协处理器协处理器CP15 CPl5包含l6个32位寄存器,其编号为015。CPl5中的寄存器可能是只读的,也可能是只写的,还有一些是可读可写的。在对协处理器寄存器进行操作时,需要注意以下几个问题。寄存器的访问类型(只读只写可读可写)。不同的访问引发的不同功能。相同编号的寄存器是否对应不同的物理寄存器。寄存

4、器的具体作用。6-2-1 CP15 寄存器访问指令寄存器访问指令通常对协处理器CPl5的访问使用以下两种指令MCR:将ARM寄存器的值写入CPl5寄存器中;MRC:将CPl5寄存器的值写入ARM寄存器中。指令MCR和MRC指令访问CPl5寄存器使用通用语法MCR p15, , , , , MRC p15, , , , , 6-2-2 CP15 中的寄存器中的寄存器寄存器编号 基本作用特殊用途 0 ID编号(只读) ID和Cache类型 1 控制位 各种控制位 2 存储器保护和控制MMU:地址转换表基地址MPU:Cache属性设置 3内存保护和控制MMU:域访问控制MPU:写缓存控制 4内存保护

5、和控制保留 5内存保护和控制MMU:错误状态MPU:访问权限控制 6内存保护和控制MMU:错误状态MPU:保护区域控制 7 Cache和写缓存Cache和写缓存控制 8内存保护和控制MMU:TLB控制MPU:保留 9 Cache和写缓存Cache锁定 10内存保护和控制MMU:TLB锁定MPU:保留 11保留保留 12保留保留 13进程ID进程ID 14保留保留 15芯片生产厂商定义芯片生产厂商定义6-2-3 寄存器寄存器C0操作码操作码 opcode2opcode2对应的标识符寄存器对应的标识符寄存器0b0000b000主标识符寄存器主标识符寄存器Ob001Ob001 CacheCache类

6、型寄存器类型寄存器其他其他保留保留寄存器c0包含的是ARM本身或芯片生产厂商的一些标识信息。当使用MRC指令读c0寄存器时,根据第二个操作码opcode2的不同,读出的标识符也是不同的。6-2-3 寄存器寄存器C0由生产商决定(Implementor)产品子编号 (Varimant) Arm系统版本号 (Architecture) 产品主编号 (Primary Part Number)处理器版本型号 (Revision) 主标识符寄存器 当协处理器指令对CPl5进行操作,并且操作码0pcode2时,处理器的主标识符将被读出。从主标识符中,可以确定ARM体系结构的版本型号。 如果bit15:12

7、为0 x0,说明处理器是ARM7之前的处理器; 如果bit15:12为0 x7,说明处理器为ARM7处理器; 如果bit15:12为其他值,说明处理器为ARM7之后的处理器。 bit31:24:生产厂商的编号30 24 23 20 19 16 15 4 3 06-2-3 寄存器寄存器C0 Cache类型标识符寄存器 对于指令MRC来说,当协处理器寄存器为r0,而第二操作数opcode2为0b001时,指令读取值为Cache类型,即可以将处理器的Cache类型标识符寄存器的内容读取到寄存器r0中。MCR P15 ,0,r0,c0,c0,16-2-3 寄存器寄存器C0 Cache类型标识符寄存器

8、Cache类型标识符定义了关于Cache的信息 系统中的数据Cache和指令Cache是分开的还是统一的。 Cache的容量、块大小以及相联特性。 Cache类型是直(writethrough)写还是回写(writeback)。 对于回写(writeback)类型的Cache如何有效清除Cache内容。 Cache是否支持内容锁定。6-2-3 寄存器寄存器C0000属性字段 S 数据Cache相关属性数据Cache相关属性 Cache类型标识符寄存器编码格式 Cache类型标识符定义了关于Cache的信息:31 29 28 25 24 23 12 11 06-2-4 寄存器寄存器C1SBZP/

9、UNPL4RRVIZFRSBLDPWCAM CPl5中的寄存器C1包括以下控制功能: 禁止使能MMU以及其他与存储系统有关的功能; 配置存储系统以及删处理器中相关的工作。31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 06-3 高速缓冲存储器高速缓冲存储器Cache Cache存储器是一个容量小但存取速度非常快的存储器 它保存最近用到的存储器数据拷贝。 对于程序员来说,Cache是透明的。它自动决定保存哪些数据、覆盖哪些数据。 现在Cache通常与处理器在同一芯片上实现。 Cache能够发挥作用是因为程序具有局部性特性。 6-3 高速缓冲存储器高速缓冲存储器

10、Cache 谓局部性就是指,在任何特定的时间,微处理器趋于对相同区域的数据(如堆栈)多次执相同的指令(如循环)。 Cache经常与写缓存器(write buffer)一起使用。 通过引入Cache和写缓存区,存储系统的性能得到了很大的提高,但同时也带来了一些问题。6-3 高速缓冲存储器高速缓冲存储器Cache位于处理器中的少量高速缓冲存储器, 保存最近被访问的存储空间内容的备份 哪些存储空间需要读入到cache中,要通过MMU 或 MPU来控制依赖于内存的重使用仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能降低对总线宽度的要求减少功耗外部外部存储器存储器CPUCache地址数据总线总线

11、接口接口6-3-1 Cache的分类的分类统一Cache。指令和数据用同一个Cache 6-3-1 Cache的分类的分类指令和数据分开的Cache。有时这种组织方式也被称为改进的哈佛结构。6-3-2 Cache的性能衡量的性能衡量 只有当所需要的Cache存储器内容已经在Cache时,微处理器才能以高时钟速率工作,因此,系统的总体性能就可以用存储器访问中命中Cache的比例来衡量。 当要访问的内容在Cache时称为命中(hit), 而要访问的内容不在Cache时称为未命中(miss)。 在给定时间间隔内,Cache命中的次数与总的存储器请求次数的比值被称为命中率。 命中率用下面的公式进行计算

12、: 命中率=(Cache命中次数/存储器请求次数)*100%6-3-3 Cache的工作原理的工作原理 Cache的基本存储单元为Cache行(Cache line)。 存储系统把Cache和主存储器都划分为相同大小的行。 Cache与主存储器交换数据是以行为基本单位进行的。 每一个Cache行都对应于主存中的一个存储块(memory block) Cache行的大小通常是2L字节。 通常情况下是16字节(4个字)和32字节(8个字)。 如果Cache行的大小为2L字节,那么对主存的访问通常是2L字节对齐的。 对于一个虚拟地址来说,它的bit31 :L ,是Cache行的一个标识。当CPU发出

13、的虚拟地址的bit31:L和Cache中的某行bit31:L相同,那么Cache中包含CPU要访问的数据,即成为一次Cache命中。 6-3-3 Cache的工作原理的工作原理6-3-3 Cache的工作原理的工作原理 数据以每次传送一行的方式复制到cache 中 每个cache行包含连续的数据 Cache行按其自然的行边界尺寸分配 Cache中的数据一旦被获取后,立即对内核有效 在一个cache 读操作不命中后,将激发cache 行内容的填充 但新数据应放在cache 的什么位置? ARM 处理器支持以下置换策略中的一个或多个: 随机, 循环轮换轮换指针指向下一个要填充的cache 行 已经

14、使用过的行将被收回和替换 对回写数据cache而言, 任何改过的数据都要写到存储器中6-3-4 Cache与主存的关系与主存的关系在Cache中采用地址映射将主存中的内容映射到Cache地址空间。具体的说,就是把存放在主存中的程序按照某种规则装入到Cache中,并建立主存地址到Cache地址之间的对应关系。而地址变换是指当程序已经装入到Cache后,在实际运行过程中,把主存地址变换成Cache地址。地址的映射和变换是密切相关的。采用什么样的地址映射方法,就必然有与之对应的地址变换。直接映射和变换方式组相联映射和变换方式以及全相联和变换方式。 6-3-4 Cache与主存的关系与主存的关系直接映

15、射(direct-mapped)方式。直接映射是一种最简单,也是最直接的映射方式。主存中的每个地址都对应Cache存储器中惟一的一行。由于主存的容量远远大于Cache存储器,所以在主存中很多地址被映射到同一个Cache行。 如果程序同时用到对应于Cache同一主存行的两个主存块,那么就会发生冲突,冲突的结果是导致Cache行的频繁变换。这种由直接映射导致的Cache存储器中的软件冲突称为颠簸(thrashing)问题。 6-3-4 Cache与主存的关系与主存的关系主存储器主存储器0 x00000 x00100 x00200 x00300 x00400 x00500 x00600 x00700

16、 x00800 x0090Cache00.0110010 x006400tagindex word地址tag ram数据数据=6-3-4 Cache与主存的关系与主存的关系为了减少颠簸问题,有些Cache使用了组相联的映射策略。在组相联的地址映射和变换中,把主存和Cache按同样大小划分成组(set),每个组都由相同的行数组成。从主存的组到Cache的组之间采用直接映射方式。主存中的一组与Cache中的一组之间建立了之间映射方式后,在两个对应的组内部采用全相联映射方式。在ARM中采用的是组相联的地址映射和变换方式。如果Cache的行大小为2L,则同一行中各地址的bit31:L是相同的。如果Ca

17、che中组的大小(每组中包含的行数)为2S,则虚地址位bitL+S:L用于选择Cache中的某个组。 6-3-4 Cache与主存的关系与主存的关系2路组相联的Cache主存储器主存储器0 x00000 x00100 x00200 x00300 x00400 x00500 x00600 x00700 x00800 x0090Way 0Way 1Set 02-Way, 4 Sets?数据数据=tagindex=tagindexWay 0Way 1目标目标计数器计数器n替换策略:n随机n循环6-3-4 Cache与主存的关系与主存的关系4路组相联的Cache31 10 9 5 4 2 1 0Cac

18、he 行行53注注:每一个地址索引映射到一个cache 行,该行可存于4组的任意一组中(4组相联)存于存于 TAG中的地址中的地址 (22 位位)IndexWordUnusedDataway 0TAGLine 0Line 1Line 30Line 31这里是一个4k cache 的例子: 4 组x 32 lines x 8 words = 4kb cachevd0d1v- 有效位有效位 d0,d1 脏位脏位01234567d0 d16-3-4 Cache与主存的关系与主存的关系随着Cache控制器的相联度的提高,冲突的可能性减少了。提高组相联程度,使主存地址能够映射到任意Cache行。这样的C

19、ache被称为全相联Cache。硬件设计者提高Cache相联度的一种方法就是使用内容寻址寄存器CAM(ContentAddressable Memory)。CAM使用一组比较器,以比较输入的标签地址和存储在每一个有效Cache行中的标签位。CAM采取了与RAM相反的工作方式:RAM在得到一个地址后再给出数据,而CAM则是在检测到给定的数据值在存储器中后,再给出该数据的地址。使用CAM允许同时比较更多的地址中的标签位,从而增加了可以包含在一组的Cache行数。 6-3-4 Cache与主存的关系与主存的关系全相联的Cache6-3-5 Cache的写策略的写策略 直写()直写():如果位置在ca

20、che之内, cache 将被更新. 数据也通过写缓冲送至存储器.回写回写:如果位置在cache之内,只有 cache 被更新. 注: 如果数据位置不在cache之内, 数据将被直接写到存储器中。如果存储器是可cache或可缓冲的,写缓冲将被使用 。CPUCacheWrite BufferAccess Mode 0Non cacheable, non bufferable0GCd GBd0Non cacheable, bufferable11WT, Write Through01WB, Write Back1ExternalMemory访问模式访问模式 0非非 cache, 非缓冲非缓冲0GC

21、d GBd0非非 cache, 可缓冲可缓冲11WT, 直写直写01WB, 回写回写1CPUCache写缓冲写缓冲外部存储器外部存储器wbwt6-3-5 Cache的写策略的写策略 直写与回写的比较直写与回写的比较如果位置在cache之内, cache 将被更新. 数据也通过写缓冲送至存储器.写策略写策略直写法直写法回写法回写法可靠性可靠性 高低与主存的通信量与主存的通信量多少控制的复杂性控制的复杂性简单复杂硬件实现代价硬件实现代价大小6-3-6 Cache的替换策略的替换策略 在在Cache访问过程中,发现查找的访问过程中,发现查找的Cache行已经失行已经失效,则需要从主存中调入新的行到效

22、,则需要从主存中调入新的行到Cache中。中。在采用组相联的在采用组相联的Cache中,一个来自主存的行可以放中,一个来自主存的行可以放入多个入多个Cache组中。当所有组中的对应行都已经装满组中。当所有组中的对应行都已经装满时,就要使用时,就要使用Cache替换算法替换算法, Cache控制器选择下一个丢弃Cache行的策略被称为替换策略。在ARM常用的替换算法有两种:轮转算法随机替换算法。 6-3-6 Cache的替换策略的替换策略 在常见在常见ARM核使用的替换策略核使用的替换策略内核写策略替换策略ARM720T直写法随机ARM740T直写法随机ARM920T直写法、回写法随机、轮转AR

23、M940T直写法、回写法随机ARM926EJ-S直写法、回写法随机、轮转ARM946E直写法、回写法随机、轮转ARMl020E直写法、回写法随机、轮转ARMl 026EJS直写法、回写法随机、轮转Intel Stong ARM回写法轮转Intel XSCale直写法轮转6-3-7 Cache相关的编程接口相关的编程接口 与与Cache编程相关的编程相关的CPl5的寄存器共有的寄存器共有3个,个,它们分别为它们分别为Cl、C7及及C9。 6-3-7 Cache相关的编程接口相关的编程接口 C1中与中与Cache相关的位相关的位 相关位作用C(bit2)当数据Cache和指令Cache分开时,本控

24、制位禁止使能数据Cache当数据Cache和指令Cache统一时,本控制位禁止使能整个Cache 0:禁止Cache 1:使能Cache如果系统中不含Cache,读取时该位返回0,写入时忽略该位当系统中Cache不能禁止时,读取返回l,写入时忽略该位I(bit12)当数据Cache和指令Cache分开时,本控制位禁止使能数据Cache0:禁止Cache1:使能Cache如果系统使用统一的指令Cache和数据Cache或者系统中不含Cache,读取时该位返回0,写入时忽略该位当系统中Cache不能禁止时,读取返回l,写入时忽略该位RR(bit14)如果系统中Cache的淘汰算法可以选择的话,本控

25、制位选择淘汰算法 0:选择常规的淘汰算法,如随机淘汰算法RR(bit14) ;1:选择预测性的淘汰算法,如轮转(round-robin)淘汰算法;如果系统中淘汰算法不可选择,写入该位时被忽略,读取该位时,根据其淘汰算法可以简单地预测最坏情况,并返回1或者06-3-7 Cache相关的编程接口相关的编程接口 CPl5中的寄存器c7主要用于控制Cache和写缓存。c7是一个只写存储器,可以使用协处理器指令MCR对其进行操作。如果程序中包含读c7的操作,那么指令的结果不可预知。6-3-8 内存一致性内存一致性 当一个系统中同时使用了Cache、写缓存时,同一地址的数据可能同时出现在包括系统内存在内的

26、多个不同的物理位置中。如果Cache引入了哈佛架构,使用数据和指令分类的Cache,那情况将更复杂。由于上述存储系统的多样性特点,当从内存中读取数据时,不能保证读取的是数据的最新值(即有可能出现下述情况:写操作将数据写入到Cache中,但更新数据还没有被回写到内存)。 ARM存储系统中,数据不一致问题一方面可以通过存储系统自动保证解决,另一方面编写程序时要遵循一定的规则,防止数据不一致性发生。6-3-8 内存一致性内存一致性 地址映射发生的变换 如果数据Cache为写回型Cache,清空该数据Cache。使数据Cache中相应的行无效。使指令Cache中相应的行无效。将写缓存区中被延时的操作全

27、部执行。有些情况可能还要求相关的存储区域被置换成非缓存的。 6-3-8 内存一致性内存一致性 当系统中采用分离的数据Cache和指令Cache时 对于使用数据和指令分离Cache的系统,使指令Cache的内容无效。对于使用数据和指令分离Cache的系统,如果数据Cache是写回类型的,清空数据Cache。 6-3-8 内存一致性内存一致性 DMA造成的数据不一致 将DMA访问的存储器设置成非缓存的将DMA访问的存储区所涉及的数据Cache中的行设置成无效,或者清空数据Cache。清空写缓存区(将写缓存区中延时操作全部执行)。在DMA访问期间限制存储器访问DMA所访问的存储区域。阶段总结阶段总结

28、 ARM处理器支持多种类型存储器,具备复杂的管理和控制能力 系统控制协处理器CP15,负责完成大部分系统存储管理 Cache的工作原理 Cache的性能 Cache与主存的关系 Cache的写策略 Cache的替换策略 内存一致性64 存储管理单元存储管理单元MMUMMU(Memory Management Unit) MMU提供的一个关键服务是使各个任务作为各自独立的程序在其自己的私有存储空间中运行。MMU提供了一些资源以允许使用虚拟存储器(将系统物理存储器重新编址,可将其看成一个独立于系统物理存储器的存储空间)。存储器有两种类型的地址:虚拟地址和物理地址。虚拟地址由编译器和连接器在定位程序

29、时分配;物理地址用来访问实际的主存硬件模块(物理上程序存在的区域)。6-4-1 MMU概述概述内存管理单位MMU,对处理器内存管理主要是通过一个叫作传输表的数据结构来实现的。这个传输表存在于内存中,它有多个称为Entry的入口。每个入口定义了存储空间的一个页,页的大小从lKB到1MB,同时定义了这些页的属性 6-4-1 MMU概述概述ARM系统中,MMU主要完成以下工作:虚拟存储空间到物理存储空间的映射;存储器访问权限的控制;设置虚拟存储空间的缓存特性。6-4-1 MMU概述概述从虚拟地址到物理地址的变换过程是查询传输表的过程ARM结构体系中采用一个容量更小、访问速度和CPU中通用寄存器相当的

30、存储器件来存放当前访问需要的地址变换条目,它是一个小容量的Cache。这个小容量的页表Cache称为TLB(Translation Lookaside Buffer)。 6-4-1 MMU概述概述MMU可以将整个存储空间分为最多16个域(domain)。每个域对应一定的内存区域。MMU中寄存器c3用于控制与域有关的属性配置。 6-4-1 MMU概述概述从内存管理单元控制存储器的访问权限将虚拟地址转换为物理地址MMU 的组成后备变换缓冲器 (TLB)最近用于页变换的cache页表浮动硬件逻辑更新 TLB访问控制逻辑如果MMU 被禁用了外部地址总线将直接输出虚拟地址6-4-1 MMU概述概述与MM

31、U有关的协处理器寄存器及其作用 协处理器寄存器协处理器寄存器作用作用c1中某些位中某些位配置配置MMU中的一些操作中的一些操作c2保存内存中页表基地址保存内存中页表基地址c3设置域访问权限设置域访问权限c4保留保留c5内存访问失效状态标准内存访问失效状态标准c6内存访问失效时失效地址内存访问失效时失效地址c8控制与清除控制与清除TLB内容相关的操作内容相关的操作clO控制与锁定控制与锁定TLB内容相关的操作内容相关的操作6-4-2 MMU与与MPU在ARM体系结构中,MMU将MPU的功能大大地增加,使系统内存管理更加灵活、方便。MMU还增加了虚拟地址到物理地址的映射。使用MMU中虚拟地址到物理

32、地址的映射功能,即使任务被编译、连接、运行在主存中有重叠地址的区域中,它们仍然可以运行。6-4-3 内存的访问过程内存的访问过程当处理器产生一个内存访问请求时,将传输一个虚拟地址给MMUMMU首先遍历TLB(如果使用分离的存储系统,它将分别遍历数据TLB和指令TLB)。如果TLB中不保护虚拟地址入口(Entry),那么它将转入保存在内存中的传输主表,来获得所有访问地址的物理地址和访问权限。一旦访问成功,它将新的虚拟地址入口(Entry)信息保存在TLB中,以备下次查询使用。6-4-3 内存的访问过程内存的访问过程保护保护 & 中止中止虚拟存储器物理存储器 变换和校验机制.Process CPr

33、ocess BProcess AManagerProcess DMMURAMRAMVRAMROMRAMRAMRAM变换表变换表I TLBD TLB6-4-4 MMU的使能与禁止的使能与禁止MMU的使能禁止可以通过CPl5寄存器的cl的bit0来控制。bit0=0,MMU禁止。bit0=1,MMU使能。 当MMU被禁止时,存储访问执行下列过程。存储系统是否支持Cache和写缓存,根据不同芯片设计不同而有所不同(ARM公司将设计权交给芯片厂商)。如果芯片规定当禁止MMU时禁止Cache和写缓存,则存储访问如果芯片规定禁止MMU时使能Cache和写缓存,则数据访问被视为无Cache (uncacha

34、ble)和写缓存(unbufferable)的,即C=0、B=0。读取指令时,如果系统是统一的TLB,则C=0;如果使用分开的TLB,则C=1。存储访问不受权限控制,MMU也不会产生存储访问中止信号。所有物理地址和虚拟地址相等,即使用平板存储模式。6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 为了使任务有各自的虚拟存储器映射,MMU硬件采用地址重定位.在地址访问主存之前,转换处理器输出的虚拟地址。当处理器产生一个虚拟地址时,MMU取出这个虚拟地址的高位,遍历传输表,从而形成一个物理地址。虚拟存储空间到物理存储空间的映射是以内存块为单位进行的。6-4-5 虚拟地址到物理地址的转换

35、虚拟地址到物理地址的转换 变换过程由硬件完成,对用户是透明的变换表由软件产生检查检查TLB是否包含该虚拟地址是否包含该虚拟地址虚拟地址虚拟地址得到物理地址得到物理地址页表浮动页表浮动得到物理地址得到物理地址是是否否更新更新 TLB6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 ARM支持的存储块的大小有以下几种段(Sections):大小为lM的存储块。大页(Large pages):大小为64KB。小页(Small pages):大小为4KB。极小页(Tiny Pages):大小为lKB。6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 ARM在内存中存在两级页表以

36、实现上述地址映射过程。一级页表:一级页表包括两种类型的页表项,即保持指向二级页表起始地址的页表项和保存用于转换段(Section)地址的页表项。一级页表也称为段页表(section page table)。二级页表:二级页表包含以大页和小页为单位的地址变换页表项。6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 第一级变换页表 虚拟地址虚拟地址 第一级第一级页表项页表项 物理地址物理地址 段索引段索引段基地址段基地址1AP域域C B 1 0段基地址段基地址313029282726252423222120191817161514131211109876543210段索引段索引索引进入

37、第一级页表索引进入第一级页表+TTB6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 一级页表项是转换表中的一个条目,它可以是:一个错误一个段描述一个粗略的或细致的页描述段描述指针指向1Mb 的段物理空间,包括访问权限和可cache和可缓冲的控制位如果第一级取返回的是一个页描述,这将提供第二级描述表的基地址粗略页表错误详细页表段313029282726252423222120191817161514131211109876543210段基地址段基地址1AP域选择域选择C B 1 0粗略的第二级描述基地址粗略的第二级描述基地址1域选择域选择0 1详细的第二级描述基地址详细的第二级描述

38、基地址1域选择域选择1 10 06-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 虚拟地址虚拟地址第一级转换页表第一级转换页表C BDomain SelectorAP0 x00011 0C BDomain SelectorAP0 x00211 0C BDomain SelectorAP0 xFFC11 0C BDomain SelectorAP0 xFFF11 0C BDomain SelectorAP0 xFFF11 0C BDomain SelectorAP0 xFFF11 0C BDomain SelectorAP0 xFFF11 00 x002 000000 x003 00

39、0000 x004 000000 x001 000000 x005 000000 x006 000000 xFFF 000000 xFFE 000000 xFFD 000000 xFFC 00000物理地址物理地址 4096 项项 1 MB 段段 1 MB 段段 错误错误0 x001 000000 x003 000000 x004 000000 x002 000000 x005 000000 x006 000000 xFFF 000000 xFFE 000000 xFFD 000000 xFFC 000000 x000 000000 x000 000000 00 0Fine Table Bas

40、e11 1Domain SelectorCoarse Table Base10 1Domain Selector粗略第二级转换页表粗略第二级转换页表细致第二级转换页表细致第二级转换页表6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 第二级地址变换 虚拟地址虚拟地址 物理地址物理地址313029282726252423222120191817161514131211109876543210页索引页索引索引进入第一级页表索引进入第一级页表第一级页表项第一级页表项 第二级页表项第二级页表项 页索引页索引大页大页/小页小页/微页基地址微页基地址索引进入第二级页表索引进入第二级页表大页大页

41、/小页小页/微页基地址微页基地址x xC BAP粗略粗略/细致第二级描述基地址细致第二级描述基地址1页页x 1+TTB+6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 第二级描述保存的是大页,小页的基地址位 1:0 代表访问类别微页只支持详细页表加入微页是为了改善存储器以用于更高级的文件分段系统大页错误微页小页313029282726252423222120191817161514131211109876543210大页基地址大页基地址0 10 0AP3 AP2 AP1 AP0 C B小页基地址小页基地址C B 1 0AP3 AP2 AP1 AP0微页基地址微页基地址1 1C B

42、AP6-4-5 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 第二级变换页表第二级转换页表第二级转换页表C BAP3Large Page Base0 1AP2 AP1 AP00 0C BAP3Small Page Base1 0AP2 AP1 AP01 1C BTiny Page Base1 1APC BAP3Small Page Base1 0AP2 AP1 AP0C BAP3Large Page Base0 1AP2 AP1 AP00 0 粗略页表 - 256 项 细致页表 - 1024 项微页1024页1kB大页16页64kB大页16 页64kB小页256 页4kB小页256页4kB错误6-4-6 域域(domain)和存储器访问权限和存储器访问权限 域指的是一些段、大页或者小页的集合。MMU 访问主要由域控制所有定义

温馨提示

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

评论

0/150

提交评论