Presentation is loading. Please wait.

Presentation is loading. Please wait.

带Cache的内核简要介绍.

Similar presentations


Presentation on theme: "带Cache的内核简要介绍."— Presentation transcript:

1 带Cache的内核简要介绍

2 带Cache的 ARM 宏单元举例 JTAG 及非AMBA信号 AMBA 总线 接口 CP15 ARM 控制逻辑 内核 MMU 或 MPU
地址 MMU MPU 写缓冲 AMBA 总线 接口 数据 AMBA 接口 地址 数据写 数据读 Cache

3 议程 Cache、同步 和写缓冲介绍 存储器保护单元 内存管理单元 紧耦合存储器 带Cache的ARM处理器

4 什么是 cache? 位于处理器中的少量高速缓冲存储器, 保存最近被访问的存储空间内容的备份 依赖于内存的重使用
哪些存储空间需要读入到cache中,要通过MMU 或 MPU来控制 依赖于内存的重使用 仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能 降低对总线宽度的要求 减少功耗 外部 存储器 CPU Cache 总线 接口 地址 数据

5 Cache 的用法 数据以每次传送一行的方式复制到cache 中 在一个cache 读操作不命中后,将激发cache 行内容的填充
这一处理就是大家所知的数据流动 在一个cache 读操作不命中后,将激发cache 行内容的填充 但新数据应放在cache 的什么位置? ARM 处理器支持以下置换策略中的一个或多个: 随机, 循环轮换 轮换指针指向下一个要填充的cache 行 已经使用过的行将被收回和替换 对回写数据cache而言, 任何改过的数据都要写到存储器中

6 结合性 简单cache,采用直接映射策略 块结合cache,减少位置竞争 一个特殊的存储器数据项被存放在cache 的某个特定位置。
实施简单,执行快捷 块结合cache,减少位置竞争 一个特殊的存储器数据项被存放在cache 的许多位置 如果一个特殊的存储器数据项被存放在cache中的‘n’ 个位置,那么可以说cache是n维的 实施较复杂,需要更多的比较硬件

7 直接映射 Cache 主存储器 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 Cache 10 01 0x0064 00 tag index word 地址 tag ram 数据 =

8 2-维块结合 Cache  2-Way, 4 Sets = 替换策略: 随机 循环 最近最少使用 (LRU)† ? 目标 计数器
主存储器 0x0000 0x0010 0x0020 0x0030 0x0040 0x0050 0x0060 0x0070 0x0080 0x0090 Way 0 Way 1 Set 0 2-Way, 4 Sets 替换策略: 随机 循环 最近最少使用 (LRU)† †:当前ARM处理器未用 目标 计数器 ? 数据 = tag index Way 0 Way 1

9 若干定义 Line: 行, cache的最小可装载单元 – 任何情况下都是存储器中一个连续的字块。
Tag: 标签,存放在cache 中的存储器地址的一部分,用来识别定位在那里的特定的物理地址。 Set: 块,一组行,用来保持来自特定存储器空间的数据。 Way: 维,一个块所含行的数量,就是cache 的维数。 Index: 索引,存储器地址的一部分,它决定可以存储cache 行的块。

10 4-维块结合 Cache 地址 存于 TAG中的地址 (22 位) Index Word Unused 3 5 Cache 行 v 注:
3 5 Cache 行 1 2 3 4 5 6 7 d0 d1 Decoder Decoder TAG v Data d0 d1 Decoder Decoder Line 0 注: 每一个地址索引映射到一个cache 行,该行可存于4维的任意一维中(4维结合) Line 1 Line 30 Line 31 way 0 这里是一个4k cache 的例子: 4 ways x 32 lines (sets) x 8 words = 4kb cache v- 有效位 d0,d1 – 脏位

11 64-维块结合 Cache 地址 存于 TAG中的地址(25 位) Index Word Unused 2 3 Cache line
2 3 Cache line 7 6 5 4 3 2 1 d0 d1 TAG Data Line 0 Line 1 注: 每个地址索引映射到单一的块,每个块可以存储64不同的地址标签 (64 ways holding 4 lines). Line 62 Line 63 Set 0 Decoder 这里是 ARM922T的例子: 4 sets x 64 lines (ways) x 8 words = 8kb cache 用内容设定地址的存储器 (CAM)

12 Cache 闭锁 (1) 部分cache 可能闭锁以避免被清除 可能在需要保证实时性能时使用 需要一个短的子程序来控制行填充
其间隔尺度随着内核的不同而变化 可能在需要保证实时性能时使用 需要一个短的子程序来控制行填充 提供了例子程序 目标计数器范围受限 (cp15之r9) 闭锁行可免于替换 仍可被‘冲洗’ - 那么闭锁机制肯定被清除了

13 Cache闭锁 (2) 这是一个4维结合的cache,每维包含32 行 (块). 单一的目标计数器选择将要替换的维.
Victim Counter Data way 2 TAG Line 0 Line 1 Line 30 Line 31 闭锁行 way 0 way 1 way 3 这是一个4维结合的cache,每维包含32 行 (块). 单一的目标计数器选择将要替换的维. 闭锁固定了计数器的基值所以该值以下的通道完全免于替换. 闭锁具有一维的间隔尺寸 (1/4的cache大小).

14 Cache闭锁 (3) 这是一个64维,4个块的结合cache. 单一的目标计数器选择将要替换的维(每个块中相同数字的行).
闭锁行 (通道) 这是一个64维,4个块的结合cache. 单一的目标计数器选择将要替换的维(每个块中相同数字的行). 闭锁固定了计数器的基值所以该值以下的块完全免于替换. 闭锁具有一行的间隔尺寸 (1/64的cache大小). TAG Data TAG Data TAG Data TAG Data Line 0 Line 0 Line 0 Line 0 Line 1 Line 1 Line 1 Line 1 Line 62 Line 62 Line 62 Line 62 Line 63 Line 63 Line 63 Line 63 set 0 set 1 set 2 set 3 Victim Counter

15 Cache Flushing 保存在cache中的信息将优先与存储器相联系。但并不总是希望如此 因此需要一种机制来“刷新”cache
如果使用了自修改的代码 如果MPU或MMU 被重新编程 因此需要一种机制来“刷新”cache 当 cache 被刷新时, cache 行将被标记为无效,然后被重新使用 另外,数据cache可能含有‘脏数据’ ,所以要通过分别操作将数据写回存储器 Cache清理和刷新由CP15指令来实现

16 时钟 固化宏单元内核(硬核) 可合成内核(软核) 硬核 (例如 ARM920T, ARM940T) 有两个时钟输入,提供了灵活的时钟配置方法
BCLK AMBA 总线时钟, 为所有的外部总线提供时钟 只有在配置为‘快速总线’时才用于内核 FCLK 当配置为‘同步’或‘异步’时钟模式,没有外部总线活动时为内核提供时钟 可合成内核(软核) 可综合内核(例如. ARM946E-S, ARM966E-S, ARM926EJ-S)只有单个时钟输入 单个时钟输入作为CLK信号 HCLKEN 是第二个输入,用来生成总线时钟输出 (HCLK) HCLK 必须能被 CLK整除

17 同步模式 (固化宏单元) FastBus Synchronous Asynchronous 内核及外部总线由BCLK同步.
FCLK ignored Synchronous FCLK 的频率必须比 BCLK.高 BCLK 只可以在FCLK 为高期间改变. ASB操作需 BIU与 BCLK 同步. 最大1 个BCLK 周期的同步延迟. BCLK FCLK Asynchronous FCLK的频率必须比 BCLK.高. 二者相位关系没有限制. ASB操作需 BIU与 BCLK 同步. 最大1.5个 BCLK 周期的同步延迟. BCLK FCLK

18 写缓冲器 (1) 用于消除内核和存储器速度不匹配的影响 存储器访问总是以正确的顺序出现 数据进入缓冲器时是按内核的速度
数据写到存储器时按总线的速度 存储器访问总是以正确的顺序出现 在非cache读, 非缓冲写和cache 行填充时,写缓冲总是首先被排空 有一个特定的排空写缓冲操作 内部数据总线 数据寄存器 总线接口单元 d7 d6 d5 d4 d3 d2 d1 d0 内核时钟 总线时钟 a3 a2 a1 a0 内部地址总线 地址寄存器

19 写缓冲器(2) 写操作出现以下情况时处理器将停顿: 如果写缓冲在软件的控制下被排空(通过CP15),处理器将停止执行
写缓冲器满 写缓冲器被禁用 写到不可用作缓冲的区域 在写非缓冲区之前写缓冲器将被排空 如果写缓冲在软件的控制下被排空(通过CP15),处理器将停止执行 在写缓冲的时候不能产生异常中断 异常中断将被忽略

20 Cache 写策略 Write Back: Write Through:
访问模式 非 cache, 非缓冲 GCd GBd 非 cache, 可缓冲 1 WT, 直写 WB, 回写 直写: 如果位置在cache之内, cache 将被更新. 数据也通过写缓冲送至存储器. 回写: 如果位置在cache之内,只有 cache 被更新. 注: 如果数据位置不在cache之内, 数据将被直接写到存储器中。如果存储器是可cache或可缓冲的,写缓冲将被使用 。 CPU Cache 写缓冲 外部存储器 wb wt CPU Cache Write Buffer Access Mode Non cacheable, non bufferable GCd GBd Non cacheable, bufferable 1 WT, Write Through WB, Write Back External Memory Write Through: If location is within the cache, the cache is updated. Write is also sent to memory via the Write Buffer Write Back: If location is within the cache, only the cache is updated CPU Cache Write Buffer Access Mode Non cacheable, non bufferable GCd GBd Non cacheable, bufferable 1 WT, Write Through WB, Write Back External Memory CPU Cache Write Buffer Access Mode Non cacheable, non bufferable GCd GBd Non cacheable, bufferable 1 WT, Write Through WB, Write Back External Memory

21 存储器管理 存储器保护单元 (MPU) 将存储空间分割为带有可编程特权的独立的区域
设置简单 节省功耗和芯片面积 不支持虚拟内存 无可用于页表的内存 ARM940T是一例带有MPU的ARM 内核 内存管理单元 (MMU) 提供更多灵活的动态的存储器控制,连同更强大的特权配置 设置复杂 通过页表支持虚拟内存 ARM920T是一例带有MMU的ARM 内核

22 编程模式 内核通过写CP15 的寄存器来配置 定义在 CP15 中的寄存器只能用MCR 和 MRC 指令访问.
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 将导致未定义指令异常.

23 议程 Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合存储器 ARM 的带Cache 处理器

24 保护单元 用于分割存储器 在保护单元使能之前至少有一个数据存储区和一个指令存储区被定义 区间的大小是可变的,典型值是4KB 到 4GB
区块可以具有单独的cache属性 每个区块可以具有不同的访问设置,例如仅为特权模式 区块的大小和基地址是可选的 可以是分开的数据区和指令区(哈佛结构) 在保护单元使能之前至少有一个数据存储区和一个指令存储区被定义 区间的大小是可变的,典型值是4KB 到 4GB 区块的边界值必须等于其大小的整数倍 保护单元必须在cache使能之前有效

25 保护区域举例 注: 指令区必须有定义为允许文字池访问的相应数据区. 可以设定可重叠的背景区(Background ). 指令区域图
数据区域图 只读 可Cache Flash 0x25FFFFFF Flash 只读 可Cache Background Background 0x 0x1FFFFFFF 读写 不可cache 不可缓冲 Peripherals 0x 读写 可Cache 可缓冲 只读 可Cache 0x0003FFFF SRAM SRAM 0x 注: 指令区必须有定义为允许文字池访问的相应数据区. 可以设定可重叠的背景区(Background ).

26 MPU 配置步骤 参照你的目标系统定义和使能保护寄存器 为每个存储区域设定可用于cache或可用于缓冲的属性 为每个存储区域设定访问许可
CP15之 c6 为每个存储区域设定可用于cache或可用于缓冲的属性 CP15之c2和 c3 为每个存储区域设定访问许可 CP15 之c5 使能cache, 设置时钟同步模式,并使能MPU CP15 之c1 其他内核缺省值,象数据存放模式,向量表的位置等都通过c1 设置

27 议程 Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合存储器 ARM 的带Cache 处理器

28 什么是 MMU 内存管理单元 MMU 的组成 如果MMU 被禁用了 控制存储器的访问权限 将虚拟地址转换为物理地址
后备变换缓冲器 (TLB) 最近用于页变换的cache 页表浮动硬件逻辑 更新 TLB 访问控制逻辑 如果MMU 被禁用了 外部地址总线将直接输出虚拟地址

29 虚拟地址到物理地址的映射 虚拟 存储器 变换和校验 机制. 物理 存储器 MMU 保护 & 中止 Process D 变换表
Process C VRAM RAM Process B I TLB ROM D TLB RAM Process A RAM RAM Manager RAM 保护 & 中止

30 为什么要用 MMU? 保护单元提供的是粗略的,通常是静态的存储模式 MMU可以“动态地”重新定位存储空间 将变换过程与系统的其他部分隔离
不能分配额外的存储空间 MMU可以“动态地”重新定位存储空间 对存储器“重新分配”使其纳入有效的管理 将变换过程与系统的其他部分隔离 生成所需的页表虚拟存储系统

31 TLB 和变换表 TLB是最近用于从虚拟地址 到 物理地址变换的cache 变换表驻留在物理存储器中
为大多数存储器访问提供变换和访问权限的信息 若TLB 没有命中,页表浮动硬件将从存于物理存储器中的变换表重新找回,然后TLB 被更新 如果 TLB 满了, 有的值将因循环编排的方式被覆盖 变换表驻留在物理存储器中 第一级页表包含4096个变换,通过虚拟地址的位 31:20 索引 变换项包含一个指针,指向1MB的段物理空间,连同其属性信息... 指向另一页表基地址的指针,包含了许多指向较少页物理地址指针 好的间隔尺度要求更多的页表,因此也需要更多的物理存储空间!

32 MMU 转换过程 变换过程由硬件完成,对用户是透明的 变换表由软件产生 虚拟地址 检查TLB是否包含该虚拟地址 是 否 得到物理地址
页表浮动 得到物理地址 更新 TLB

33 第一级描述 第一级描述是转换表中的一个条目,它可以是: 段描述指针指向1Mb 的段物理空间,包括访问权限和可cache和可缓冲的控制位
一个错误 一个段描述 一个粗略的或细致的页描述 段描述指针指向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 0 错误 粗略的第二级描述基地址 域选择 1 0 1 粗略页表 段基地址 AP 域选择 1 C B 1 0 详细页表 详细的第二级描述基地址 域选择 1 1 1

34 第二级描述 第二级描述保存的是大页,小页的基地址 位 [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 错误 大页基地址 AP3 AP2 AP1 AP0 C B 0 1 大页 小页基地址 AP3 AP2 AP1 AP0 C B 1 0 小页 微页基地址 AP C B 1 1 微页

35 第一级变换页表 虚拟地址 第一级转换页表 物理地址 1 MB 段 4096 项 1 MB 段 粗略第二级转换页表 错误 细致第二级转换页表
0xFFF 00000 0xFFF AP Domain Selector 1 C B 1 0 0xFFF 00000 0xFFE 00000 0xFFF AP Domain Selector 1 C B 1 0 0xFFE 00000 0xFFD 00000 0xFFF AP Domain Selector 1 C B 1 0 0xFFD 00000 0xFFC 00000 0xFFF AP Domain Selector 1 C B 1 0 0xFFC 00000 0x 0xFFC AP Domain Selector 1 C B 1 0 0x 0x 0 0 0x 0x 0 0 0x 0x Fine Table Base Domain Selector 1 1 1 0x 0x Coarse Table Base Domain Selector 1 0 1 0x 0x 0x002 AP Domain Selector 1 C B 1 0 0x 0x 0x000 AP Domain Selector 1 C B 1 0 0x 粗略第二级转换页表 错误 细致第二级转换页表

36 第一级地址变换 虚拟地址 第一级 页表项 物理地址
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 索引进入第一级页表 段索引 虚拟地址 +TTB 第一级 页表项 段基地址 AP 1 C B 1 0 Top 12 bits of VA act as a pointer into the level 1 Translation Table. With the addition of the Translation Table Base - these bits locate a level one descriptor entry. If a section base address is found, the top 12 bits of the level 1 descriptor entry supplies a new value for the top 12 bits of the address generated to be generated, along with attributes for physical memory belonging to this section. The bottom 20 bits of the VA address passes directly through. Therefore level 1 section descriptors can completely relocate 1Mb sections of VA to any 1Mb aligned 段基地址 段索引 物理地址

37 第二级变换页表 大页 第二级转换页表 16 页 粗略页表 - 256 项 小页 256 页 大页 错误 16页 小页
64kB 粗略页表 项 小页 256 页 0 0 Large Page Base AP3 AP2 AP1 AP0 C B 0 1 4kB Small Page Base AP3 AP2 AP1 AP0 C B 1 0 1 1 大页 16页 错误 64kB 小页 256页 细致页表 项 4kB 0 0 微页 1024页 Large Page Base AP3 AP2 AP1 AP0 C B 0 1 Small Page Base AP3 AP2 AP1 AP0 C B 1 0 Tiny Page Base AP C B 1 1 1kB

38 第二级地址变换 + 虚拟地址 第一级页表项 第二级页表项 物理地址 页索引 索引进入第一级页表 大页/小页/微页基地址 索引进入第二级页表
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 页索引 索引进入第一级页表 第一级页表项 第二级页表项 大页/小页/微页基地址 索引进入第二级页表 x x C B AP 粗略/细致第二级描述基地址 x 1 +TTB +

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

40 CP15 C13 – 进程 ID 寄存器 用于快速的文本切换 (FCSE) 进程 ID 可以取代虚拟地址的位[31:25] 复未时为0
如果 CP15 之R13 是0, VA 位[31:25] 未修改 有效地允许每个进程运行在相同的虚拟地址空间 复未时为0 MCR/MRC p15,0,Rd,c13,c0,0 读进程ID寄存器,返回进程标识 写操作将更新进程标识 Process ID SBZ

41 利用进程 ID 寄存器生成地址 VA[31:25] MVA[31:0] 来自内核的指令地址 修改过的地址 VA[31:0]
OS 进程管理 判决逻辑 进程 ID VA[31:25] 来自内核的指令地址 VA[31:0] MVA[31:0] 修改过的地址 送入 Cache和 MMU VA[24:0]

42 进程 ID – 映射举例 如果 ( 0  VA < 32 MB ) 则 MVA = (32MB Process ID) + VA
MMU虚拟地址 (MVA) 来自内核的虚拟地址 (VA) 4 GB 32 MB 4 GB 32 MB 0 MB P0 进程 ID P1 P30 P2 P3 P31 P4 0 MB

43 MMU 配置步骤 在存储器中构造转换页表,定义所需的从虚拟地址到物理地址转换的初始值 设置变换页表基地址
转换页表项包括可cache和可缓冲的属性 也包括访问权限 设置变换页表基地址 CP15 之c2 使能cache, 设置时钟同步模式并使能 MMU CP15之c1 其他内核缺省配置如存储模式和向量地址页在这里设置

44 议程 Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合内存 ARM 的带Cache 处理器

45 什么是紧耦合内存? 取代cache 的一种选择,当其附在速度较慢的外部存储器上时,允许提供高性能的读写操作 快速存储器, 紧靠微处理器
提供高速性能,而不访问系统总线 与等量的cache 相比,在芯片尺寸上付出的代价较小 在存储器映射中的位置是固定的 代码和数据执行前将被复制到此 实时性能能够被准确预测

46 ARM966E-S 存储器映射 物理存储区图 TCM混叠 256MB 256MB 128MB 64MB 64MB 0xFFFFFFFF
AHB Unbuffered 0x07FFFFFF Data Alias 2047 32KB 0x07FF8000 256MB AHB Unbuffered Data Alias 1 32KB 0x Data Memory 32KB 0x 0x 128MB AHB Buffered Instruction Alias 1023 64KB 0x03FF0000 0x 64MB Data Memory Instruction Alias 1 64KB 0x 0x 64MB Instruction Memory Instruction Memory 64KB 0x 0x

47 ARM946E-S存储器映射 指令TCM的基地址总是 0x0 数据 TCM的基地址是其大小的整数倍 TCM的大小可以指定
KB TCM KB TCM KB TCM (Alias 1) TCM 1/2 Size KB TCM TCM (Alias 1) 1/2 Size 指令TCM的基地址总是 0x0 数据 TCM的基地址是其大小的整数倍 TCM的大小可以指定 如果大于其实际大小, 将发生TCM 混淆现象 如果小于其实际大小, 某些存储空间将不会出现 随后可以放置在更好的地址 使能后, TCM 不可以重叠

48 议程 Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合内存 ARM 的带Cache 处理器

49 命名约定 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

50 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 等.

51 ARM Cached 内核一览 720T 740T 920T 940T SA110 926E 946E 966E 1020E XScale
TM 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 Unified 8K Unified 16K Instr 4K Instr 16K Instr 4-128K Instr 0-1024K Instr None 16K Instr 32K Instr 4 words/line 4 words/line 16K Data 4K Data 16K Data 4-128K Data 0-1024K Data 16K Data 32K Data 8 Words/Line 4 Words/Line 4 Words/Line 8 Words/Line 8 Words/Line 8 Words/Line 8 Words/Line Set Associativity 4 way 4 way 64 way 64 way 32 way 4 way 4 way NA 64 way 32 way Tightly Coupled No No No No No Yes Yes Yes No No SSRAM 0-1024K Instr 0-1024K Instr 0-64M Instr 0-1024K Data 0-1024K Data 0-64M Data Replacement Random Random Random/ Random Round Robin Random/ Random/ NA Random/ Random/ Round Robin Round Robin Round Robin Round Robin Round Robin Write Strategy Write Write Write Write Write Back Write Through Write Through NA Write Through Write Through Through Through Through Through Write Back Write Back Write Back Write Back Write Back Write Back Write Buffer 8 Words 8 Words 16 Words 8 Words 8 Words 16 Words 16 Words 12 Words 16 Words 8 x 16 Bytes 4 Addresses 4 Addresses 4 Addresses 4 Addresses 4 Addresses 4 Addresses Data or Addr Data or Addr 8 Addresses Coalescing MMU/MPU MMU MPU MMU MPU MMU MMU MPU None MMU MMU Extra 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

52 Further Information ADS 1.2 提供了带Cache内核初始化的例子 ADS 页表生成应用MMUGen
内核技术参考手册 ARM 体系结构参考手册

53


Download ppt "带Cache的内核简要介绍."

Similar presentations


Ads by Google