协处理器.ppt
《协处理器.ppt》由会员分享,可在线阅读,更多相关《协处理器.ppt(81页珍藏版)》请在三一办公上搜索。
1、CP15协处理器,第四章,预习检查,什么是cache?Cache有哪两种写方式?MMU的功能是什么?,2,本章目标,了解ARM存储器组织结构了解S3C2440A的cache基本工作原理了解MMU基本工作原理,与地址映射,本章结构,CP15协处理器,6-1 ARM存储器,ARM存储系统有非常灵活的体系结构,可以适应不同的嵌入式应用系统的需要。ARM存储器系统可以使用简单的平板式地址映射机制,也可以使用其他技术提供功能更为强大的存储系统。提供多种类型的存储器件,如FLASH、ROM、SRAM等;Caches技术;写缓存技术(write buffers);虚拟内存和IO地址映射技术。,6-1 ARM
2、存储器,大多数的系统通过下面的方法之一实现对复杂存储系统的管理。使能Cache,缩小处理器和存储系统速度差别,从而提高系统的整体性能。引入存储保护机制,增强系统的安全性。引入一些机制保证将IO操作映射成内存操作后,各种IO操作能够得到正确的结果。,6-1 ARM存储器,8051的结构,6-1 ARM存储器,s32440的结构,6-1 ARM存储器,存储器的层次结构,6-2 协处理器CP15,CPl5,即通常所说的系统控制协处理器(System Control Coprocesssor)。它负责完成大部分的存储系统管理。,Cache,ARM内核,地址,地址,写缓冲,MMU或MPU,数据读,数据写
3、,数据,控制逻辑,CP15,AMBA总线接口,JTAG 及非AMBA信号,AMBA接口,6-2 协处理器CP15,CPl5包含l6个32位寄存器,其编号为015。CPl5中的寄存器可能是只读的,也可能是只写的,还有一些是可读可写的。在对协处理器寄存器进行操作时,需要注意以下几个问题。寄存器的访问类型(只读只写可读可写)。不同的访问引发的不同功能。相同编号的寄存器是否对应不同的物理寄存器。寄存器的具体作用。,6-2-1 CP15 寄存器访问指令,通常对协处理器CPl5的访问使用以下两种指令MCR:将ARM寄存器的值写入CPl5寄存器中;MRC:将CPl5寄存器的值写入ARM寄存器中。指令MCR和
4、MRC指令访问CPl5寄存器使用通用语法,MCR p15,MRC p15,6-2-2 CP15 中的寄存器,6-2-3 寄存器C0,寄存器c0包含的是ARM本身或芯片生产厂商的一些标识信息。当使用MRC指令读c0寄存器时,根据第二个操作码opcode2的不同,读出的标识符也是不同的。,6-2-3 寄存器C0,主标识符寄存器 当协处理器指令对CPl5进行操作,并且操作码0pcode2时,处理器的主标识符将被读出。从主标识符中,可以确定ARM体系结构的版本型号。如果bit15:12为0 x0,说明处理器是ARM7之前的处理器;如果bit15:12为0 x7,说明处理器为ARM7处理器;如果bit1
5、5:12为其他值,说明处理器为ARM7之后的处理器。bit31:24:生产厂商的编号,30 24 23 20 19 16 15 4 3 0,6-2-3 寄存器C0,Cache类型标识符寄存器 对于指令MRC来说,当协处理器寄存器为r0,而第二操作数opcode2为0b001时,指令读取值为Cache类型,即可以将处理器的Cache类型标识符寄存器的内容读取到寄存器r0中。,MCR P15,0,r0,c0,c0,1,6-2-3 寄存器C0,Cache类型标识符寄存器 Cache类型标识符定义了关于Cache的信息系统中的数据Cache和指令Cache是分开的还是统一的。Cache的容量、块大小以
6、及相联特性。Cache类型是直(writethrough)写还是回写(writeback)。对于回写(writeback)类型的Cache如何有效清除Cache内容。Cache是否支持内容锁定。,6-2-3 寄存器C0,Cache类型标识符寄存器编码格式Cache类型标识符定义了关于Cache的信息:,31 29 28 25 24 23 12 11 0,6-2-4 寄存器C1,CPl5中的寄存器C1包括以下控制功能:禁止使能MMU以及其他与存储系统有关的功能;配置存储系统以及删处理器中相关的工作。,31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,6-3
7、高速缓冲存储器Cache,Cache存储器是一个容量小但存取速度非常快的存储器它保存最近用到的存储器数据拷贝。对于程序员来说,Cache是透明的。它自动决定保存哪些数据、覆盖哪些数据。现在Cache通常与处理器在同一芯片上实现。Cache能够发挥作用是因为程序具有局部性特性。,6-3 高速缓冲存储器Cache,谓局部性就是指,在任何特定的时间,微处理器趋于对相同区域的数据(如堆栈)多次执相同的指令(如循环)。Cache经常与写缓存器(write buffer)一起使用。通过引入Cache和写缓存区,存储系统的性能得到了很大的提高,但同时也带来了一些问题。,6-3 高速缓冲存储器Cache,位于
8、处理器中的少量高速缓冲存储器,保存最近被访问的存储空间内容的备份哪些存储空间需要读入到cache中,要通过MMU 或 MPU来控制依赖于内存的重使用仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能降低对总线宽度的要求减少功耗,外部存储器,CPU,Cache,地址,数据,总线接口,6-3-1 Cache的分类,统一Cache。指令和数据用同一个Cache,6-3-1 Cache的分类,指令和数据分开的Cache。有时这种组织方式也被称为改进的哈佛结构。,6-3-2 Cache的性能衡量,只有当所需要的Cache存储器内容已经在Cache时,微处理器才能以高时钟速率工作,因此,系统的总体性能
9、就可以用存储器访问中命中Cache的比例来衡量。当要访问的内容在Cache时称为命中(hit),而要访问的内容不在Cache时称为未命中(miss)。在给定时间间隔内,Cache命中的次数与总的存储器请求次数的比值被称为命中率。命中率用下面的公式进行计算:命中率=(Cache命中次数/存储器请求次数)*100%,6-3-3 Cache的工作原理,Cache的基本存储单元为Cache行(Cache line)。存储系统把Cache和主存储器都划分为相同大小的行。Cache与主存储器交换数据是以行为基本单位进行的。每一个Cache行都对应于主存中的一个存储块(memory block)Cache行
10、的大小通常是2L字节。通常情况下是16字节(4个字)和32字节(8个字)。如果Cache行的大小为2L字节,那么对主存的访问通常是2L字节对齐的。对于一个虚拟地址来说,它的bit31:L,是Cache行的一个标识。当CPU发出的虚拟地址的bit31:L和Cache中的某行bit31:L相同,那么Cache中包含CPU要访问的数据,即成为一次Cache命中。,6-3-3 Cache的工作原理,6-3-3 Cache的工作原理,数据以每次传送一行的方式复制到cache 中每个cache行包含连续的数据Cache行按其自然的行边界尺寸分配Cache中的数据一旦被获取后,立即对内核有效在一个cache
11、 读操作不命中后,将激发cache 行内容的填充但新数据应放在cache 的什么位置?ARM 处理器支持以下置换策略中的一个或多个:随机,循环轮换轮换指针指向下一个要填充的cache 行已经使用过的行将被收回和替换对回写数据cache而言,任何改过的数据都要写到存储器中,6-3-4 Cache与主存的关系,在Cache中采用地址映射将主存中的内容映射到Cache地址空间。具体的说,就是把存放在主存中的程序按照某种规则装入到Cache中,并建立主存地址到Cache地址之间的对应关系。而地址变换是指当程序已经装入到Cache后,在实际运行过程中,把主存地址变换成Cache地址。地址的映射和变换是密
12、切相关的。采用什么样的地址映射方法,就必然有与之对应的地址变换。直接映射和变换方式组相联映射和变换方式以及全相联和变换方式。,6-3-4 Cache与主存的关系,直接映射(direct-mapped)方式。直接映射是一种最简单,也是最直接的映射方式。主存中的每个地址都对应Cache存储器中惟一的一行。由于主存的容量远远大于Cache存储器,所以在主存中很多地址被映射到同一个Cache行。如果程序同时用到对应于Cache同一主存行的两个主存块,那么就会发生冲突,冲突的结果是导致Cache行的频繁变换。这种由直接映射导致的Cache存储器中的软件冲突称为颠簸(thrashing)问题。,6-3-4
13、 Cache与主存的关系,6-3-4 Cache与主存的关系,为了减少颠簸问题,有些Cache使用了组相联的映射策略。在组相联的地址映射和变换中,把主存和Cache按同样大小划分成组(set),每个组都由相同的行数组成。从主存的组到Cache的组之间采用直接映射方式。主存中的一组与Cache中的一组之间建立了之间映射方式后,在两个对应的组内部采用全相联映射方式。在ARM中采用的是组相联的地址映射和变换方式。如果Cache的行大小为2L,则同一行中各地址的bit31:L是相同的。如果Cache中组的大小(每组中包含的行数)为2S,则虚地址位bitL+S:L用于选择Cache中的某个组。,6-3-
14、4 Cache与主存的关系,2路组相联的Cache,6-3-4 Cache与主存的关系,4路组相联的Cache,31 10 9 5 4 2 1 0,Cache 行,5,3,注:每一个地址索引映射到一个cache 行,该行可存于4组的任意一组中(4组相联),存于 TAG中的地址(22 位),Index,Word,Unused,Data,way 0,TAG,Line 0,Line 1,Line 30,Line 31,这里是一个4k cache 的例子:4 组x 32 lines x 8 words=4kb cache,v,d0,d1,v-有效位 d0,d1 脏位,d0,d1,6-3-4 Cache
15、与主存的关系,随着Cache控制器的相联度的提高,冲突的可能性减少了。提高组相联程度,使主存地址能够映射到任意Cache行。这样的Cache被称为全相联Cache。硬件设计者提高Cache相联度的一种方法就是使用内容寻址寄存器CAM(ContentAddressable Memory)。CAM使用一组比较器,以比较输入的标签地址和存储在每一个有效Cache行中的标签位。CAM采取了与RAM相反的工作方式:RAM在得到一个地址后再给出数据,而CAM则是在检测到给定的数据值在存储器中后,再给出该数据的地址。使用CAM允许同时比较更多的地址中的标签位,从而增加了可以包含在一组的Cache行数。,6-
16、3-4 Cache与主存的关系,全相联的Cache,6-3-5 Cache的写策略,直写():如果位置在cache之内,cache 将被更新.数据也通过写缓冲送至存储器.回写:如果位置在cache之内,只有 cache 被更新.注:如果数据位置不在cache之内,数据将被直接写到存储器中。如果存储器是可cache或可缓冲的,写缓冲将被使用。,6-3-5 Cache的写策略,直写与回写的比较如果位置在cache之内,cache 将被更新.数据也通过写缓冲送至存储器.,6-3-6 Cache的替换策略,在Cache访问过程中,发现查找的Cache行已经失效,则需要从主存中调入新的行到Cache中。
17、在采用组相联的Cache中,一个来自主存的行可以放入多个Cache组中。当所有组中的对应行都已经装满时,就要使用Cache替换算法,Cache控制器选择下一个丢弃Cache行的策略被称为替换策略。在ARM常用的替换算法有两种:轮转算法随机替换算法。,6-3-6 Cache的替换策略,在常见ARM核使用的替换策略,6-3-7 Cache相关的编程接口,与Cache编程相关的CPl5的寄存器共有3个,它们分别为Cl、C7及C9。,6-3-7 Cache相关的编程接口,C1中与Cache相关的位,6-3-7 Cache相关的编程接口,CPl5中的寄存器c7主要用于控制Cache和写缓存。c7是一个只
18、写存储器,可以使用协处理器指令MCR对其进行操作。如果程序中包含读c7的操作,那么指令的结果不可预知。,6-3-8 内存一致性,当一个系统中同时使用了Cache、写缓存时,同一地址的数据可能同时出现在包括系统内存在内的多个不同的物理位置中。如果Cache引入了哈佛架构,使用数据和指令分类的Cache,那情况将更复杂。由于上述存储系统的多样性特点,当从内存中读取数据时,不能保证读取的是数据的最新值(即有可能出现下述情况:写操作将数据写入到Cache中,但更新数据还没有被回写到内存)。ARM存储系统中,数据不一致问题一方面可以通过存储系统自动保证解决,另一方面编写程序时要遵循一定的规则,防止数据不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 处理器

链接地址:https://www.31ppt.com/p-5480403.html