带 cache 的内核简要介绍
DESCRIPTION
带 Cache 的内核简要介绍. 带 Cache 的 ARM 宏单元举例. JTAG 及非 AMBA 信号. ARM 内核. CP15. 控制逻辑. 地址. MMU 或 MPU. 写缓冲. AMBA 总线 接口. AMBA 接口. 数据. 地址. 数据写. 数据读. Cache. 议程. Cache、 同步 和写缓冲介绍 存储器保护单元 内存管理单元 紧耦合存储器 带 Cache 的 ARM 处理器. 什么是 cache?. 位于处理器中的少量高速缓冲存储器, 保存最近被访问的存储空间内容的备份 - PowerPoint PPT PresentationTRANSCRIPT
1TMT H E A R C H I T E C T U R E F O R T H E D I G I T A L W O R L D
带 Cache 的内核简要介绍
2TM 2带 Cache 处理器初步( 91v07 )
带 Cache 的 ARM 宏单元举例
Cache
ARM内核地址
地址 写缓冲MMU或MPU
数据读数据写
数据
控制逻辑CP15
AMBA总线接口
JTAG 及非 AMBA 信号
AMBA接口
3TM 3带 Cache 处理器初步( 91v07 )
议程
Cache 、同步 和写缓冲介绍 存储器保护单元 内存管理单元 紧耦合存储器 带 Cache 的 ARM 处理器
4TM 4带 Cache 处理器初步( 91v07 )
外部存储器CPU
Cache 地址
数据总线接口
什么是 cache?
位于处理器中的少量高速缓冲存储器 , 保存最近被访问的存储空间内容的备份
哪些存储空间需要读入到 cache 中,要通过 MMU 或 MPU 来控制 依赖于内存的重使用 仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能 降低对总线宽度的要求 减少功耗
5TM 5带 Cache 处理器初步( 91v07 )
Cache 的用法 数据以每次传送一行的方式复制到 cache 中
每个 cache 行包含连续的数据 Cache 行按其自然的行边界尺寸分配 Cache 中的数据一旦被获取后,立即对内核有效
这一处理就是大家所知的数据流动 在一个 cache 读操作不命中后,将激发 cache 行内容的填充
但新数据应放在 cache 的什么位置 ? ARM 处理器支持以下置换策略中的一个或多个 :
随机 , 循环轮换
轮换指针指向下一个要填充的 cache 行 已经使用过的行将被收回和替换
对回写数据 cache 而言 , 任何改过的数据都要写到存储器中
6TM 6带 Cache 处理器初步( 91v07 )
结合性
简单 cache ,采用直接映射策略 一个特殊的存储器数据项被存放在 cache 的某个特定位置。 相同 cache 地址域的数据项将竞争这一位置。
实施简单,执行快捷 块结合 cache ,减少位置竞争
一个特殊的存储器数据项被存放在 cache 的许多位置 如果一个特殊的存储器数据项被存放在 cache 中的‘ n’ 个位置,那么可以说
cache 是 n 维的 实施较复杂,需要更多的比较硬件
7TM 7带 Cache 处理器初步( 91v07 )
主存储器0x00000x00100x00200x00300x00400x00500x00600x00700x00800x0090
Cache
直接映射 Cache
00..................................01 10 010x0064
00
tag index word地址
tag ram
数据=
8TM 8带 Cache 处理器初步( 91v07 )
2- 维块结合 Cache主存储器
0x00000x00100x00200x00300x00400x00500x00600x00700x00800x0090
Way 0
Way 1
Set 0
2-Way, 4 Sets
?
数据
=
tag
index
=
tag
index
Way 0 Way 1
目标计数器
替换策略 : 随机 循环 最近最少使用 (LRU)†
† :当前 ARM 处理器未用
9TM 9带 Cache 处理器初步( 91v07 )
若干定义 Line: 行, cache 的最小可装载单元 – 任何情况下都是存储器中一个连续的字块。
Tag: 标签,存放在 cache 中的存储器地址的一部分,用来识别定位在那里的特定的物理地址。 Set: 块,一组行,用来保持来自特定存储器空间的数据。
Way: 维,一个块所含行的数量,就是 cache 的维数。
Index: 索引,存储器地址的一部分,它决定可以存储 cache 行的块。
10TM 10带 Cache 处理器初步( 91v07 )
4- 维块结合 CacheD
ecod
erD
ecod
erD
ecod
er
31 10 9 5 4 2 1 0
地址
Cache 行5
3
注 :每一个地址索引映射到一个 cache 行,该行可存于 4 维的任意一维中( 4 维结合)
存于 TAG 中的地址 (22 位 ) Index Word Unused
Data
way 0
TAGLine 0Line 1
Line 30Line 31
这里是一个 4k cache 的例子: 4 waysx 32 lines (sets)x 8 words
= 4kb cache
Dec
oder
v d0d1
v- 有效位 d0,d1 – 脏位
01234567 d0 d1
11TM 11带 Cache 处理器初步( 91v07 )
01234567 d0 d1
64- 维块结合 Cache
31 7 6 5 4 2 1 0
地址
Cache line
23
注 :每个地址索引映射到单一的块,每个块可以存储 64 不同的地址标签 (64 ways holding 4 lines).
Dec
oder
存于 TAG 中的地址 (25 位 ) Index Word Unused
这里是 ARM922T 的例子 : 4 setsx 64 lines (ways)x 8 words
= 8kb cache用内容设定地址的存储器 (CAM)
Data
Set 0
TAGLine 0Line 1
Line 62Line 63
12TM 12带 Cache 处理器初步( 91v07 )
Cache 闭锁 (1)
部分 cache 可能闭锁以避免被清除 其间隔尺度随着内核的不同而变化
可能在需要保证实时性能时使用 需要一个短的子程序来控制行填充
提供了例子程序 目标计数器范围受限 (cp15 之 r9)
闭锁行可免于替换 仍可被‘冲洗’ - 那么闭锁机制肯定被清除了
13TM 13带 Cache 处理器初步( 91v07 )
这是一个 4 维结合的 cache ,每维包含 32 行 ( 块 ). 单一的目标计数器选择将要替换的维 . 闭锁固定了计数器的基值所以该值以下的通道完全免于替换 . 闭锁具有一维的间隔尺寸 (1/4 的 cache 大小 ).
Cache 闭锁 (2)
VictimCounter
Data
way 2
TAGLine 0Line 1
Line 30Line 31
闭锁行
Data
way 0
TAG
Line 1Line 0
Line 30Line 31
Data
way 1
TAG
Line 1Line 0
Line 30Line 31
Data
way 3
TAGLine 0Line 1
Line 30Line 31
14TM 14带 Cache 处理器初步( 91v07 )
这是一个 64 维 ,4 个块的结合 cache. 单一的目标计数器选择将要替换的维 ( 每个块中相同数字的行 ). 闭锁固定了计数器的基值所以该值以下的块完全免于替换 . 闭锁具有一行的间隔尺寸 (1/64 的 cache 大小 ).
VictimCounter
闭锁行 ( 通道 )
Data
set 0
TAG
Line 62Line 63
Line 0
Line 1
Data
set 1
TAG
Line 62Line 63
Line 0
Line 1
Data
set 2
TAG
Line 62Line 63
Line 0
Line 1
Data
set 3
TAG
Line 62Line 63
Line 0
Line 1
Cache 闭锁 (3)
15TM 15带 Cache 处理器初步( 91v07 )
Cache Flushing
保存在 cache 中的信息将优先与存储器相联系。但并不总是希望如此 如果使用了自修改的代码 如果 MPU 或 MMU 被重新编程
因此需要一种机制来“刷新” cache 当 cache 被刷新时 , cache 行将被标记为无效,然后被重新使用
另外,数据 cache 可能含有‘脏数据’ ,所以要通过分别操作将数据写回存储器 Cache 清理和刷新由 CP15 指令来实现
16TM 16带 Cache 处理器初步( 91v07 )
时钟 固化宏单元内核(硬核)
硬核 ( 例如 ARM920T, ARM940T) 有两个时钟输入,提供了灵活的时钟配置方法 BCLK
AMBA 总线时钟 , 为所有的外部总线提供时钟 只有在配置为‘快速总线’时才用于内核
FCLK 当配置为‘同步’或‘异步’时钟模式,没有外部总线活动时为内核提供时钟
可合成内核(软核) 可综合内核 ( 例如 . ARM946E-S, ARM966E-S, ARM926EJ-S)只有单个时钟输入
单个时钟输入作为 CLK 信号 HCLKEN 是第二个输入,用来生成总线时钟输出 (HCLK) HCLK 必须能被 CLK整除
17TM 17带 Cache 处理器初步( 91v07 )
同步模式( 固化宏单元 )
ignored
BCLK
FCLK
FastBus
内核及外部总线由 BCLK 同步 .
BCLK
FCLK
Asynchronous FCLK 的频率必须比 BCLK. 高 . 二者相位关系没有限制 . ASB操作需 BIU与 BCLK 同步 . 最大 1.5 个 BCLK 周期的同步延迟 .
BCLK
FCLK
Synchronous FCLK 的频率必须比 BCLK.高 BCLK 只可以在 FCLK 为高期间改变 . ASB操作需 BIU与 BCLK 同步 . 最大 1 个 BCLK 周期的同步延迟 .
18TM 18带 Cache 处理器初步( 91v07 )
写缓冲器 (1)
用于消除内核和存储器速度不匹配的影响 数据进入缓冲器时是按内核的速度 数据写到存储器时按总线的速度
存储器访问总是以正确的顺序出现 在非 cache 读 , 非缓冲写和 cache 行填充时,写缓冲总是首先被排空 有一个特定的排空写缓冲操作
地址寄存器
数据寄存器内部数据总线
a0
d1
a1a2a3
d2d3d4d5d6d7
内核时钟 总线时钟
内部地址总线
总线接口单元d0
19TM 19带 Cache 处理器初步( 91v07 )
写缓冲器 (2)
写操作出现以下情况时处理器将停顿 : 写缓冲器满 写缓冲器被禁用 写到不可用作缓冲的区域
在写非缓冲区之前写缓冲器将被排空 如果写缓冲在软件的控制下被排空 ( 通过 CP15), 处理器将停止执行 在写缓冲的时候不能产生异常中断
异常中断将被忽略
20TM 20带 Cache 处理器初步( 91v07 )
CPU
Cache
Write Buffer
Access Mode 0 Non cacheable, non bufferable0
GCd GBd
0 Non cacheable, bufferable11 WT, Write Through01 WB, Write Back1
ExternalMemory
Cache 写策略
Write Back: If location is within the cache, only the cache is updated
CPU
Cache
Write Buffer
Access Mode 0 Non cacheable, non bufferable0
GCd GBd
0 Non cacheable, bufferable11 WT, Write Through01 WB, Write Back1
ExternalMemory
CPU
Cache
Write Buffer
Access Mode 0 Non cacheable, non bufferable0
GCd GBd
0 Non cacheable, bufferable11 WT, Write Through01 WB, Write Back1
ExternalMemory
Write Through: If location is within the cache, the cache is updated. Write is also sent to memory via the Write Buffer
访问模式 0 非 cache, 非缓冲0
GCd GBd
0 非 cache, 可缓冲11 WT, 直写01 WB, 回写1
直写 : 如果位置在 cache之内 , cache 将被更新 . 数据也通过写缓冲送至存储器 .
回写 : 如果位置在 cache之内 ,只有 cache 被更新 .
注 : 如果数据位置不在 cache之内 , 数据将被直接写到存储器中。如果存储器是可 cache 或可缓冲的,写缓冲将被使用 。
CPU
Cache
写缓冲
外部存储器wb
wt
21TM 21带 Cache 处理器初步( 91v07 )
存储器管理
存储器保护单元 (MPU) 将存储空间分割为带有可编程特权的独立的区域 设置简单 节省功耗和芯片面积
不支持虚拟内存 无可用于页表的内存
ARM940T 是一例带有 MPU 的 ARM 内核 内存管理单元 (MMU) 提供更多灵活的动态的存储器控制,连同更强大的特权配置
设置复杂 通过页表支持虚拟内存
ARM920T 是一例带有 MMU 的 ARM 内核
22TM 22带 Cache 处理器初步( 91v07 )
编程模式 内核通过写 CP15 的寄存器来配置
cache, 保护单元 , 及其他系统操作象大端或小端模式配置 .
定义在 CP15 中的寄存器只能用 MCR 和 MRC 指令访问 . MCR/MRC{cond} p15,opcode_1,rd,cn,cm,opcode_2
p15 – 指定协处理器 15 opcode_1 – 总是为 0 rd - ARM 源或目的寄存器 cn - CP15 主寄存器 cm – 附属寄存器名 opcode_2 - 可选的 3 比特数用来指定附加信息
其他协处理器指令 (CDP,LDC,STC) 或在非特权模式使用 MCR/MRC 访问CP15 将导致未定义指令异常 .
23TM 23带 Cache 处理器初步( 91v07 )
议程
Cache、同步 和写缓冲介绍 存储器保护单元
存储器管理单元紧耦合存储器ARM 的带 Cache 处理器
24TM 24带 Cache 处理器初步( 91v07 )
保护单元 用于分割存储器
区块可以具有单独的 cache属性 每个区块可以具有不同的访问设置,例如仅为特权模式 区块的大小和基地址是可选的 可以是分开的数据区和指令区(哈佛结构)
在保护单元使能之前至少有一个数据存储区和一个指令存储区被定义 区间的大小是可变的,典型值是 4KB 到 4GB
区块的边界值必须等于其大小的整数倍 保护单元必须在 cache 使能之前有效
25TM 25带 Cache 处理器初步( 91v07 )
0x25FFFFFF
0x24000000
0x1FFFFFFF
0x10000000
0x0003FFFF
0x00000000
Background
SRAM
Peripherals
Flash
指令区域图
读写不可 cache 不可缓冲Background
SRAM
Flash
只读可 Cache
只读 可 Cache
只读可 Cache
读写 可 Cache 可缓冲
数据区域图保护区域举例
注 : 指令区必须有定义为允许文字池访问的相应数据区 . 可以设定可重叠的背景区( Background ) .
26TM 26带 Cache 处理器初步( 91v07 )
MPU 配置步骤 参照你的目标系统定义和使能保护寄存器
CP15之 c6
为每个存储区域设定可用于 cache 或可用于缓冲的属性 CP15 之 c2 和 c3
为每个存储区域设定访问许可 CP15 之 c5
使能 cache, 设置时钟同步模式,并使能 MPU CP15 之 c1
其他内核缺省值,象数据存放模式,向量表的位置等都通过 c1 设置
27TM 27带 Cache 处理器初步( 91v07 )
议程
Cache、同步 和写缓冲介绍存储器保护单元
存储器管理单元紧耦合存储器ARM 的带 Cache 处理器
28TM 28带 Cache 处理器初步( 91v07 )
什么是 MMU
内存管理单元 控制存储器的访问权限 将虚拟地址转换为物理地址
MMU 的组成 后备变换缓冲器 (TLB)
最近用于页变换的 cache 页表浮动硬件逻辑
更新 TLB 访问控制逻辑
如果 MMU 被禁用了 外部地址总线将直接输出虚拟地址
29TM 29带 Cache 处理器初步( 91v07 )
虚拟地址到物理地址的映射
保护 & 中止
虚拟存储器 物理存储器 变换和校验机制 .
Process C
Process B
Process A
Manager
Process D MMU
RAM
RAMVRAM
ROMRAM
RAMRAM
变换表
I TLB D
TLB
30TM 30带 Cache 处理器初步( 91v07 )
为什么要用 MMU?
保护单元提供的是粗略的 , 通常是静态的存储模式 不能分配额外的存储空间
MMU 可以“动态地”重新定位存储空间 对存储器“重新分配”使其纳入有效的管理
将变换过程与系统的其他部分隔离 生成所需的页表虚拟存储系统
31TM 31带 Cache 处理器初步( 91v07 )
TLB 和变换表 TLB 是最近用于从虚拟地址 到 物理地址变换的 cache
为大多数存储器访问提供变换和访问权限的信息 若 TLB 没有命中,页表浮动硬件将从存于物理存储器中的变换表重新找回,然
后 TLB 被更新 如果 TLB 满了 , 有的值将因循环编排的方式被覆盖
变换表驻留在物理存储器中 第一级页表包含 4096 个变换,通过虚拟地址的位 31:20 索引
变换项包含一个指针,指向 1MB 的段物理空间,连同其属性信息 ... 指向另一页表基地址的指针,包含了许多指向较少页物理地址指针
好的间隔尺度要求更多的页表,因此也需要更多的物理存储空间 !
32TM 32带 Cache 处理器初步( 91v07 )
检查 TLB 是否包含该虚拟地址
虚拟地址
得到物理地址 页表浮动
得到物理地址
是 否
更新 TLB
MMU 转换过程 变换过程由硬件完成,对用户是透明的
变换表由软件产生
33TM 33带 Cache 处理器初步( 91v07 )
第一级描述 第一级描述是转换表中的一个条目,它可以是:
一个错误 一个段描述 一个粗略的或细致的页描述
段描述指针指向 1Mb 的段物理空间,包括访问权限和可 cache 和可缓冲的控制位 如果第一级取返回的是一个页描述,这将提供第二级描述表的基地址
粗略页表错误
详细页表段
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
段基地址 1AP 域选择 C B 1 0
粗略的第二级描述基地址 1域选择 0 1
详细的第二级描述基地址 1域选择 1 1
0 0
34TM 34带 Cache 处理器初步( 91v07 )
第二级描述 第二级描述保存的是大页,小页的基地址
位 [1:0] 代表访问类别 微页只支持详细页表 加入微页是为了改善存储器以用于更高级的文件分段系统
大页错误
微页小页
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
大页基地址 0 1
0 0
AP3 AP2 AP1 AP0 C B
小页基地址 C B 1 0AP3 AP2 AP1 AP0
微页基地址 1 1C BAP
35TM 35带 Cache 处理器初步( 91v07 )
第一级变换页表虚拟地址 第一级转换页表
C BDomain SelectorAP0x000 1 1 0
C BDomain SelectorAP0x002 1 1 0
C BDomain SelectorAP0xFFC 1 1 0
C BDomain SelectorAP0xFFF 1 1 0
C BDomain SelectorAP0xFFF 1 1 0
C BDomain SelectorAP0xFFF 1 1 0
C BDomain SelectorAP0xFFF 1 1 0
0x002 000000x003 000000x004 00000
0x001 00000
0x005 000000x006 00000
0xFFF 000000xFFE 000000xFFD 000000xFFC 00000
物理地址 4096 项 1 MB 段 1 MB 段
错误
0x001 00000
0x003 000000x004 00000
0x002 00000
0x005 000000x006 00000
0xFFF 000000xFFE 000000xFFD 000000xFFC 00000
0x000 00000 0x000 00000
0 0
0 0
Fine Table Base 1 1 1Domain Selector
Coarse Table Base 1 0 1Domain Selector
粗略第二级转换页表细致第二级转换页表
36TM 36带 Cache 处理器初步( 91v07 )
第一级地址变换
虚拟地址
第一级页表项
物理地址 段索引
段基地址 1AP 域 C B 1 0
段基地址
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
段索引索引进入第一级页表
+TTB
37TM 37带 Cache 处理器初步( 91v07 )
第二级变换页表第二级转换页表
C BAP3Large Page Base 0 1AP2 AP1 AP0
0 0
C BAP3Small Page Base 1 0AP2 AP1 AP0
1 1
C BTiny Page Base 1 1AP
C BAP3Small Page Base 1 0AP2 AP1 AP0
C BAP3Large Page Base 0 1AP2 AP1 AP0
0 0
粗略页表 - 256 项
细致页表 - 1024 项微页
1024页1kB
大页
16页
64kB
大页
16 页
64kB
小页
256 页4kB
小页
256页4kB
错误
38TM 38带 Cache 处理器初步( 91v07 )
第二级地址变换 虚拟地址
物理地址
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
页索引索引进入第一级页表
第一级页表项
第二级页表项
页索引大页 /小页 /微页基地址
索引进入第二级页表
大页 /小页 /微页基地址 x xC BAP
粗略 /细致第二级描述基地址 1页 x 1
+TTB
+
39TM 39带 Cache 处理器初步( 91v07 )
D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
31 0
域 MMU 访问主要由域控制 所有定义的存储器区域都有一个相关联的域
域被定义为 2 比特的读写区 可以定义 16 个域
域通常允许 3 个状态 客户态 – 服从段或页描述中的访问权限 管理态 – 忽略段或页描述中的访问权限
所以无错误产生 无读写态 – 任何访问都将产生一个域错误
可以通过简单的协处理器写操作修改域的读写区
40TM 40带 Cache 处理器初步( 91v07 )
Process ID SBZ
31 25 24 0
CP15 C13 – 进程 ID 寄存器 用于快速的文本切换 (FCSE) 进程 ID 可以取代虚拟地址的位 [31:25]
如果 CP15 之 R13 是 0, VA 位 [31:25] 未修改 有效地允许每个进程运行在相同的虚拟地址空间
复未时为 0 MCR/MRC p15,0,Rd,c13,c0,0
读进程 ID寄存器,返回进程标识 写操作将更新进程标识
41TM 41带 Cache 处理器初步( 91v07 )
利用进程 ID 寄存器生成地址
VA[24:0]
进程 ID
OS进程管理
VA[31:25]
判决逻辑
来自内核的指令地址VA[31:0]
MVA[31:0]修改过的地址送入 Cache 和 MMU
42TM 42带 Cache 处理器初步( 91v07 )
进程 ID – 映射举例
4 GB
32 MB
来自内核的虚拟地址 (VA)
MMU虚拟地址 (MVA)
4 GB
32 MB
0 MB
进程 ID
如果 ( 0 VA < 32 MB ) 则 MVA = (32MB Process ID) + VA
P0 P1 P2 P3 P4 P31P30
0 MB
43TM 43带 Cache 处理器初步( 91v07 )
MMU 配置步骤 在存储器中构造转换页表,定义所需的从虚拟地址到物理地址转换的初始值
转换页表项包括可 cache 和可缓冲的属性 也包括访问权限
设置变换页表基地址 CP15 之 c2
使能 cache, 设置时钟同步模式并使能 MMU CP15 之 c1
其他内核缺省配置如存储模式和向量地址页在这里设置
44TM 44带 Cache 处理器初步( 91v07 )
议程
Cache、同步 和写缓冲介绍存储器保护单元存储器管理单元
紧耦合内存ARM 的带 Cache 处理器
45TM 45带 Cache 处理器初步( 91v07 )
什么是紧耦合内存 ?
取代 cache 的一种选择,当其附在速度较慢的外部存储器上时,允许提供高性能的读写操作 快速存储器 , 紧靠微处理器
提供高速性能,而不访问系统总线 与等量的 cache 相比,在芯片尺寸上付出的代价较小
在存储器映射中的位置是固定的 代码和数据执行前将被复制到此
实时性能能够被准确预测
46TM 46带 Cache 处理器初步( 91v07 )
ARM966E-S 存储器映射
0x00000000
TCM混叠
64MB Instruction Memory
64MBData Memory0x04000000
0x08000000
128MBAHB Buffered
256MBAHB Unbuffered
0x10000000
0xFFFFFFFF
256MBAHB Unbuffered
Instruction Memory 64KB
Instruction Alias 1 64KB
Data Alias 204732KB
Instruction Alias 102364KB
Data Memory 32KB
Data Alias 132KB
0x00000000
0x00010000
0x04000000
0x04008000
0x07FFFFFF
0x03FF0000
0x07FF8000
物理存储区图
47TM 47带 Cache 处理器初步( 91v07 )
ARM946E-S 存储器映射TCM 存储器映射内核 TCM 存储器
指令 TCM 的基地址总是 0x0 数据 TCM 的基地址是其大小的整数倍 TCM 的大小可以指定
如果大于其实际大小 , 将发生TCM 混淆现象
如果小于其实际大小 , 某些存储空间将不会出现 随后可以放置在更好的地址
使能后, TCM 不可以重叠 1/2 Size1/2 Size
0-1024 KBTCM
0-1024 KBTCM
0-1024 KBTCM (Alias 1)
0-1024 KBTCM
0-1024 KBTCM (Alias 1)
0-1024 KBTCM
0-1024 KBTCM
1/2 Size1/2 Size
0-1024 KBTCM
0-1024 KBTCM
0-1024 KBTCM (Alias 1)
0-1024 KBTCM
0-1024 KBTCM (Alias 1)
0-1024 KBTCM
48TM 48带 Cache 处理器初步( 91v07 )
议程
Cache、同步 和写缓冲介绍存储器保护单元存储器管理单元紧耦合内存
ARM 的带 Cache 处理器
49TM 49带 Cache 处理器初步( 91v07 )
命名约定 ARMx1z (e.g. ARM710T) 表示 cache 和全MMU
ARMx2z (e.g. ARM720T) cache, MMU 及 进程 ID 支持 ARMx4z (e.g. ARM740T) cache 和保护单元 ARMx6z (e.g. ARM966E-S) 写缓冲但无 cache
ARMxy6 (e.g. ARM946E-S) 紧耦合 SRAM
50TM 50带 Cache 处理器初步( 91v07 )
ARM 的带 Cache 处理器 ARM10 系列 - ARM1020E
ARM9E-S 系列 - ARM926EJ-S, ARM946E-S, ARM966E-S
ARM9TDMI 系列 - ARM920T, ARM922T, ARM940T
ARM7TDMI 系列 - ARM710T, ARM720T, ARM740T
StrongARM 和 XScale 系列 更早的 ARM 处理器 - ARM710a, ARM610 等 .
51TM 51带 Cache 处理器初步( 91v07 )
TM
ARM Cached 内核一览720T 740T 920T 940T SA110 926E 946E 966E 1020E XScale
Architecture Von Neuman Von Neuman Harvard Harvard Harvard Harvard Harvard Harvard Harvard Harvard
Cache 8K Unified4 words/line
8K Unified4 words/line
16K Instr16K Data8 Words/Line
4K Instr4K Data4 Words/Line
16K Instr16K Data4 Words/Line
4-128K Instr4-128K Data8 Words/Line
0-1024K Instr0-1024K Data8 Words/Line
None 16K Instr16K Data8 Words/Line
32K Instr32K Data8 Words/Line
Set Associativity 4 way 4 way 64 way 64 way 32 way 4 way 4 way NA 64 way 32 way
Tightly CoupledSSRAM
No No No No No Yes0-1024K Instr0-1024K Data
Yes0-1024K Instr0-1024K Data
Yes0-64M Instr0-64M Data
No No
Replacement Random Random Random/Round Robin
Random Round Robin Random/Round Robin
Random/Round Robin
NA Random/Round Robin
Random/Round Robin
Write Strategy WriteThrough
WriteThrough
WriteThroughWrite Back
WriteThroughWrite Back
Write Back Write ThroughWrite Back
Write ThroughWrite Back
NA Write ThroughWrite Back
Write ThroughWrite Back
Write Buffer 8 Words4 Addresses
8 Words4 Addresses
16 Words4 Addresses
8 Words4 Addresses
8 Words4 Addresses
16 Words4 Addresses
16 WordsData or Addr
12 WordsData or Addr
16 Words8 Addresses
8 x 16 BytesCoalescing
MMU/MPU MMU MPU MMU MPU MMU MMU MPU None MMU MMUExtra Attributes
Hi Vectors Yes No Yes Yes Yes Yes Yes Yes Yes Yes
Streaming Yes Yes Yes Yes Yes Yes Yes NA Yes Yes
Standby Mode No No Yes Yes Yes Yes Yes Yes Yes Yes
52TM 52带 Cache 处理器初步( 91v07 )
Further Information
ADS 1.2 提供了带 Cache 内核初始化的例子 ADS 页表生成应用 MMUGen
内核技术参考手册 ARM 体系结构参考手册