第四章 CP15协处理器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6-2-2 CP15 中的寄存器
寄存器编号 0 1 2
3
4 5
6
7 8
9 10
11 12 13 14 15
基本作用 ID编号(只读) 控制位 存储器保护和控制
内存保护和控制
内存保护和控制 内存保护和控制
内存保护和控制
Cache和写缓存 内存保护和控制
Cache和写缓存 内存保护和控制
保留 保留 进程ID 保留 芯片生产厂商定义
30
24 23
20 19
16 15
43
0
由生产商决定 (Implementor)
产品子编号 Arm系统版本号 (Varimant) (Architecture)
产品主编号 处理器版本型
(Primary
号
Part Number) (Revision)
6-2-3 寄存器C0
Cache类型标识符寄存器
对于指令MRC来说,当协处理器寄存器为r0,而第二操作数opcode2 为0b001时,指令读取值为Cache类型,即可以将处理器的Cache类型 标识符寄存器的内容读取到寄存器r0中。
6-1 ARM存储器
ARM存储系统有非常灵活的体系结构,可以适应不同的嵌入式应 用系统的需要。
ARM存储器系统可以使用简单的平板式地址映射机制,也可以使 用其他技术提供功能更为强大的存储系统。
提供多种类型的存储器件,如FLASH、ROM、SRAM等; Caches技术; 写缓存技术(write buffers); 虚拟内存和I/O地址映射技术。
MMU 或
MPU
地址
写缓冲
数据写
数据读
控制逻辑
AMBA 接口
AMBA 总线 接口
6-2 协处理器CP15
CPl5包含l6个32位寄存器,其编号为0~15。 CPl5中的寄存器可能是只读的,也可能是只写的, 还有一些是可读可写的。在对协处理器寄存器进 行操作时,需要注意以下几个问题。
寄存器的访问类型(只读/只写/可读可写)。 不同的访问引发的不同功能。 相同编号的寄存器是否对应不同的物理寄存器。 寄存器的具体作用。
6-2-1 CP15 寄存器访问指令
通常对协处理器CPl5的访问使用以下两种指令
MCR:将ARM寄存器的值写入CPl5寄存器中; MRC:将CPl5寄存器的值写入ARM寄存器中。
指令MCR和MRC指令访问CPl5寄存器使用通用语法
MCR{<cond>} p15, <opcode1=0>, <Rd>, <CRm>, <CRm> {, <opcode2>} MRC{<cond>} p15, <opcode1=0>, <Rd>, <CRm>, <CRm> {, <opcode2>}
6-2-3 寄存器C0
主标识符寄存器
当协处理器指令对CPl5进行操作,并且操作码0pcode2时,处理器的 主标识符将被读出。从主标识符中,可以确定ARM体系结构的版本型 号。
• 如果bit[15:12]为0x0,说明处理器是ARM7之前的处理器; • 如果bit[15:12]为0x7,说明处理器为ARM7处理器; • 如果bit[15:12]为其他值,说明处理器为ARM7之后的处理器。 • bit[31:24]:生产厂商的编号
从主存的组到Cache的组之间采用直接映射方式。
主存中的一组与Cache中的一组之间建立了之间映射方式后,在 两个对应的组内部采用全相联映射方式。
在ARM中采用的是组相联的地址映射和变换方式。
如果Cache的行大小为2L,则同一行中各地址的bit[31:L]是相同 的。如果Cache中组的大小(每组中包含的行数)为2S,则虚地址 位bit[L+S:L]用于选择Cache中的某个组。
6-1 ARM存储器
大多数的系统通过下面的方法之一实现对复杂 存储系统的管理。
使能Cache,缩小处理器和存储系统速度差别,从而提高系统的整体 性能。 引入存储保护机制,增强系统的安全性。 引入一些机制保证将I/O操作映射成内存操作后,各种I/O操作能够 得到正确的结果。
6-1 ARM存储器 8051的结构
如果Cache行的大小为2L字节,那么对主存的访问通常是2L字 节对齐的。
对于一个虚拟地址来说,它的bit[31 :L] ,是Cache行的一个标识。当 CPU发出的虚拟地址的bit[31:L]和Cache中的某行bit[31:L]相同,那 么Cache中包含CPU要访问的数据,即成为一次Cache命中。
6-3-3 Cache的工作原理
6-3-3 Cache的工作原理
数据以每次传送一行的方式复制到cache 中
每个cache行包含连续的数据 Cache行按其自然的行边界尺寸分配 Cache中的数据一旦被获取后,立即对内核有效
在一个cache 读操作不命中后,将激发cache 行内容的填充
但新数据应放在cache 的什么位置? ARM 处理器支持以下置换策略中的一个或多个:
当要访问的内容在Cache时称为命中(hit), 而要访问的内容不在Cache时称为未命中(miss)。 在给定时间间隔内,Cache命中的次数与总的存储器请求次数的比值 被称为命中率。
命中率用下面的公式进行计算:
命中率=(Cache命中次数/存储器请求次数)*100%
6-3-3 Cache的工作原理
统一Cache。指令和数据用同一个Cache
6-3-1 Cache的分类
指令和数据分开的Cache。有时这种组织方式也被称为改进的哈佛结构。
6-3-2 Cache的性能衡量
只有当所需要的Cache存储器内容已经在Cache时,微处理器 才能以高时钟速率工作,因此,系统的总体性能就可以用存 储器访问中命中Cache的比例来衡量。
Cache的基本存储单元为Cache行(Cache line)。 存储系统把Cache和主存储器都划分为相同大小的行。 Cache与主存储器交换数据是以行为基本单位进行的。 每一个Cache行都对应于主存中的一个存储块(memory block) Cache行的大小通常是2L字节。
通常情况下是16字节(4个字)和32字节(8个字)。
• 随机, • 循环轮换
–轮换指针指向下一个要填充的cache 行
已经使用过的行将被收回和替换
对回写数据cache而言, 任何改过的数据都要写到存储器中
6-3-4 Cache与主存的关系
在Cache中采用地址映射将主存中的内容映射到 Cache地址空间。
具体的说,就是把存放在主存中的程序按照某种规则装入到 Cache中,并建立主存地址到Cache地址之间的对应关系。而地 址变换是指当程序已经装入到Cache后,在实际运行过程中,把 主存地址变换成Cache地址。
特殊用途
ID和Cache类型
各种控制位
MMU:地址转换表基地址 MPU:Cache属性设置
MMU:域访问控制 MPU:写缓存控制
保留
MMU:错误状态 MPU:访问权限控制
MMU:错误状态 MPU:保护区域控制
Cache和写缓存控制
MMU:TLB控制 MPU:保留
Cache锁定
MMU:TLB锁定 MPU:保留
保留
保留
进程ID
保留
芯片生产厂商定义
6-2-3 寄存器C0
寄存器c0包含的是ARM本身或芯片生产厂商的一些标识信息。 当使用MRC指令读c0寄存器时,根据第二个操作码opcode2的不同,读出 的标识符也是不同的。
操作码 opcode2 0b000 Ob001 其他
对应的标识符寄存器 主标识符寄存器 Cache类型寄存器 保留
6-3 高速缓冲存储器Cache
谓局部性就是指,在任何特定的时间,微处理器趋于对相同 区域的数据(如堆栈)多次执相同的指令(如循环)。 Cache经常与写缓存器(write buffer)一起使用。 通过引入Cache和写缓存区,存储系统的性能得到了很大的提 高,但同时也带来了一些问题。
6-3 高速缓冲存储器Cache
6-3-4 Cache与主存的关系
2路组相联的Cache
0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090
主存储器
Way 0
Way 1
?
2-Way, 4 Sets
Set 0
替换策略: 随机 循环
目标 计数器
主存储器
Cache
地址
tag
index word
tag ram
0x0064 00..................................01 10 01 00
=
数据
6-3-4 Cache与主存的关系
为了减少颠簸问题,有些Cache使用了组相联的映射策略。
在组相联的地址映射和变换中,把主存和Cache按同样大小划分 成组(set),每个组都由相同的行数组成。
位于处理器中的少量高速缓冲存储器, 保存最近被访问的存储空间内容的备份
哪些存储空间需要读入到cache中,要通过MMU 或 MPU来控制 依赖于内存的重使用 仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能 降低对总线宽度的要求 减少功耗
CPU
Cache
总线 接口
地址 数据
外部 存储器
6-3-1 Cache的分类
6-2-3 寄存器C0
Cache类型标识符寄存器编码格式 Cache类型标识符定义了关于Cache的信息:
31
000
29 28
属性字段
2Байду номын сангаас 24 23
12 11
0
S 数据Cache相关属性 数据Cache相关属性
6-2-4 寄存器C1
CPl5中的寄存器C1包括以下控制功能:
禁止/使能MMU以及其他与存储系统有关的功能; 配置存储系统以及删处理器中相关的工作。
地址的映射和变换是密切相关的。采用什么样的地 址映射方法,就必然有与之对应的地址变换。
直接映射和变换方式 组相联映射和变换方式以及 全相联和变换方式。
6-3-4 Cache与主存的关系
直接映射(direct-mapped)方式。
直接映射是一种最简单,也是最直接的映射方式。主存中的每个 地址都对应Cache存储器中惟一的一行。由于主存的容量远远大 于Cache存储器,所以在主存中很多地址被映射到同一个Cache 行。
index tag
MCR P15 ,0,r0,c0,c0,1
6-2-3 寄存器C0
Cache类型标识符寄存器
Cache类型标识符定义了关于Cache的信息
• 系统中的数据Cache和指令Cache是分开的还是统一的。 • Cache的容量、块大小以及相联特性。 • Cache类型是直(write.through)写还是回写(write.back)。 • 对于回写(write.back)类型的Cache如何有效清除Cache内容。 • Cache是否支持内容锁定。
31 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SBZP/ UNP
L4 RR V I Z F R S B L D P W C A M
6-3 高速缓冲存储器Cache
Cache存储器是一个容量小但存取速度非常快的存储器 它保存最近用到的存储器数据拷贝。 对于程序员来说,Cache是透明的。它自动决定保存哪些数据 、覆盖哪些数据。 现在Cache通常与处理器在同一芯片上实现。 Cache能够发挥作用是因为程序具有局部性特性。
第四章
CP15协处理器
预习检查
什么是cache? Cache有哪两种写方式? MMU的功能是什么?
2
本章目标
了解ARM存储器组织结构 了解S3C2440A的cache基本工作原理 了解MMU基本工作原理,与地址映射
本章结构
ARM存储器 协处理器CP15结构和功能
CP15协处理器
高速Cache
内存管理单元MMU 快速上下文切换
如果程序同时用到对应于Cache同一主存行的两个 主存块,那么就会发生冲突,冲突的结果是导致 Cache行的频繁变换。这种由直接映射导致的 Cache存储器中的软件冲突称为颠簸(thrashing)问 题。
6-3-4 Cache与主存的关系
0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090
6-1 ARM存储器
s32440的结构
6-1 ARM存储器 存储器的层次结构
6-2 协处理器CP15
CPl5,即通常所说的系统控制协处理器(System Control Coprocesssor)。它负责完成大部分的存储 系统管理。
JTAG 及非AMBA信号
地址
ARM 内核
数据
Cache
CP15