第四章 CP15协处理器

上传人:1888****888 文档编号:48109606 上传时间:2022-01-01 格式:PPT 页数:81 大小:2.43MB
收藏 版权申诉 举报 下载
第四章 CP15协处理器_第1页
第1页 / 共81页
第四章 CP15协处理器_第2页
第2页 / 共81页
第四章 CP15协处理器_第3页
第3页 / 共81页
资源描述:

《第四章 CP15协处理器》由会员分享,可在线阅读,更多相关《第四章 CP15协处理器(81页珍藏版)》请在装配图网上搜索。

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 寄存器寄存器C0Cache类型标识符寄存器 对于指令MRC来说,当协处理器寄存器为r0,而第二操作数opcode2为0b001时,指令读取值为Cache类型,即可以将处理器的Cache类型标识符寄存器的内容读取到寄存器r0中。MCR P15 ,0,r0,c0,c0,16-2-3 寄存器寄存器C0Cache类型标识符寄存器 Cac

8、he类型标识符定义了关于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/UNPL4

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

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

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

12、数)*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发出的虚拟地址的bit31:L和Cache中的某行bit31:L

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

14、储器中6-3-4 Cache与主存的关系与主存的关系在Cache中采用地址映射将主存中的内容映射到Cache地址空间。具体的说,就是把存放在主存中的程序按照某种规则装入到Cache中,并建立主存地址到Cache地址之间的对应关系。而地址变换是指当程序已经装入到Cache后,在实际运行过程中,把主存地址变换成Cache地址。地址的映射和变换是密切相关的。采用什么样的地址映射方法,就必然有与之对应的地址变换。直接映射和变换方式组相联映射和变换方式以及全相联和变换方式。 6-3-4 Cache与主存的关系与主存的关系直接映射(direct-mapped)方式。直接映射是一种最简单,也是最直接的映射方

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

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

17、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路组相联的CacheDecoderDecoderDecoder31 10 9 5 4 2 1 0Cache 行行53注注:每一个地址索引映

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

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

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

21、che, 可缓冲可缓冲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直写法、回写法随机、轮转ARM940T直写法、回写

23、法随机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分开时,本控制位禁止使能数据Cac

24、he当数据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的淘汰算法可以选择的话,本控制位选择淘汰算法 0:

25、选择常规的淘汰算法,如随机淘汰算法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所访问的存储区域。阶段总结阶段总结 ARM处理器支持多种

28、类型存储器,具备复杂的管理和控制能力 系统控制协处理器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概述概述与MMU有关的协处理器寄存器

31、及其作用 协处理器寄存器协处理器寄存器作用作用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 CProcess B

33、Process 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 (uncachable)和写缓

34、存(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详细的第二级描述基地址详细的第二级描述基地址1域选择

38、域选择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 000000 x0

39、04 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 Base11 1Do

40、main 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 BAP6-4-5

42、 虚拟地址到物理地址的转换虚拟地址到物理地址的转换 第二级变换页表第二级转换页表第二级转换页表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

43、 域域(domain)和存储器访问权限和存储器访问权限 域指的是一些段、大页或者小页的集合。MMU 访问主要由域控制所有定义的存储器区域都有一个相关联的域域被定义为2比特的读写区可以定义16个域域通常允许3个状态客户态 服从段或页描述中的访问权限管理态 忽略段或页描述中的访问权限所以无错误产生无读写态 任何访问都将产生一个域错误可以通过简单的协处理器写操作修改域的读写区 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 31 06-4-6 域域(domain)和存储器访问权限和存储器访问权限 6-4-6 域域(domain)和存储器访问

44、权限和存储器访问权限 6-4-6与与TLB相关的操作相关的操作 如果操作系统改变了页表中的数据,那么缓存在TLB中的转换数据可能就不再有效了。存储器核有一些CPl5命令用于清除TLB,从而使TLB中的数据作废。 由于对TLB表的查询经常会使系统访问内存(要查询的段、页不在TLB中),这就使得系统的平均访问时间大大增加。对于实时系统,就需要将一些关键的页表项锁定在访问速度相对较快的TLB中。 6-5 快速上下文切换扩展快速上下文切换扩展 快速上下文切换扩展原理快速上下文切换扩展(FCSE,Fast Context Switch Extension)是MMU中的一个附加硬件,用于提高ARM嵌入式系

45、统的系统性能。FCSE使得多个独立任务可以运行在一个固定的重叠存储空间中,而在上下文切换时,不需要清理(clean)或清除(flush)Cache和TLB。 6-5 快速上下文切换扩展快速上下文切换扩展 快速上下文切换扩展原理6-5 快速上下文切换扩展快速上下文切换扩展 C13用于快速的文本切换 (FCSE)进程 ID 可以取代虚拟地址的位31:25如果 CP15 之R13 是0, VA 位31:25 未修改有效地允许每个进程运行在相同的虚拟地址空间复未时为0MCR/MRC p15,0,Rd,c13,c0,0读进程ID寄存器,返回进程标识写操作将更新进程标识 Process ID SBZ31

46、25 24 06-5 快速上下文切换扩展快速上下文切换扩展 C13用于快速的文本切换 (FCSE)VA24:0进程 IDVA31:25判决逻辑来自内核的指令地址来自内核的指令地址VA31:0MVA31:0修改过的地址修改过的地址送入送入 Cache和和 MMUOS进程管理6-5 快速上下文切换扩展快速上下文切换扩展 如果如果 ( 0 VA 32 MB ) 则则 MVA = (32MB Process ID) + VA4 GB32 MB来自内核的虚拟地址 (VA)MMU虚拟地址 (MVA)4 GB32 MB0 MB进程进程 IDP0P1P2P3P4P31P300 MB阶段总结阶段总结 ARM存储器的组织 协处理器CP15的用途 Cache的工作原理和控制策略 存储管理单元MMU的作用 虚拟地址到物理地址的转换 快速上下文切换阶段练习阶段练习相比一级页表,多级页表有何优点?页表为Coarse Page Table,页为Large Page时的转换过程是怎样的?为使系统性能最佳,N-Way Set Associative Cache的N应根据什么确定?本章总结本章总结CP15协处理器协处理器协处理器协处理器CP15结构和功能结构和功能高速高速Cache内存管理单元内存管理单元MMU快速上下文切换快速上下文切换ARM存储器存储器

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!