带Cache内核简要介绍.ppt

上传人:max****ui 文档编号:14542562 上传时间:2020-07-23 格式:PPT 页数:53 大小:632.50KB
收藏 版权申诉 举报 下载
带Cache内核简要介绍.ppt_第1页
第1页 / 共53页
带Cache内核简要介绍.ppt_第2页
第2页 / 共53页
带Cache内核简要介绍.ppt_第3页
第3页 / 共53页
资源描述:

《带Cache内核简要介绍.ppt》由会员分享,可在线阅读,更多相关《带Cache内核简要介绍.ppt(53页珍藏版)》请在装配图网上搜索。

1、带Cache的内核简要介绍,带Cache的 ARM 宏单元举例,Cache,ARM 内核,地址,地址,写缓冲,MMU 或 MPU,数据读,数据写,数据,控制逻辑,CP15,AMBA 总线 接口,JTAG 及非AMBA信号,AMBA接口,议程,Cache、同步 和写缓冲介绍 存储器保护单元 内存管理单元 紧耦合存储器 带Cache的ARM处理器,外部 存储器,CPU,Cache,地址,数据,总线 接口,什么是 cache?,位于处理器中的少量高速缓冲存储器, 保存最近被访问的存储空间内容的备份 哪些存储空间需要读入到cache中,要通过MMU 或 MPU来控制 依赖于内存的重使用 仅用来改善速度

2、较慢的存储器或总线宽度较窄的存储器的性能 降低对总线宽度的要求 减少功耗,Cache 的用法,数据以每次传送一行的方式复制到cache 中 每个cache行包含连续的数据 Cache行按其自然的行边界尺寸分配 Cache中的数据一旦被获取后,立即对内核有效 这一处理就是大家所知的数据流动 在一个cache 读操作不命中后,将激发cache 行内容的填充 但新数据应放在cache 的什么位置? ARM 处理器支持以下置换策略中的一个或多个: 随机, 循环轮换 轮换指针指向下一个要填充的cache 行 已经使用过的行将被收回和替换 对回写数据cache而言, 任何改过的数据都要写到存储器中,结合性

3、,简单cache,采用直接映射策略 一个特殊的存储器数据项被存放在cache 的某个特定位置。 相同cache 地址域的数据项将竞争这一位置。 实施简单,执行快捷 块结合cache,减少位置竞争 一个特殊的存储器数据项被存放在cache 的许多位置 如果一个特殊的存储器数据项被存放在cache中的n 个位置,那么可以说cache是n维的 实施较复杂,需要更多的比较硬件,直接映射 Cache,2-维块结合 Cache,若干定义,Line:行, cache的最小可装载单元 任何情况下都是存储器中一个连续的字块。 Tag:标签,存放在cache 中的存储器地址的一部分,用来识别定位在那里的特定的物理

4、地址。 Set:块,一组行,用来保持来自特定存储器空间的数据。 Way: 维,一个块所含行的数量,就是cache 的维数。 Index:索引,存储器地址的一部分,它决定可以存储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 waysx 32 l

5、ines (sets) x 8 words = 4kb cache,v,d0,d1,v- 有效位 d0,d1 脏位,d0,d1,0,1,2,3,4,5,6,7,d0,d1,64-维块结合 Cache,31 7 6 5 4 2 1 0,地址,Cache line,2,3,注: 每个地址索引映射到单一的块,每个块可以存储64不同的地址标签 (64 ways holding 4 lines).,Decoder,存于 TAG中的地址(25 位),Index,Word,Unused,这里是 ARM922T的例子: 4 setsx 64 lines (ways) x 8 words = 8kb cache

6、,用内容设定地址的存储器 (CAM),Data,Set 0,TAG,Line 0,Line 1,Line 62,Line 63,Cache 闭锁 (1),部分cache 可能闭锁以避免被清除 其间隔尺度随着内核的不同而变化 可能在需要保证实时性能时使用 需要一个短的子程序来控制行填充 提供了例子程序 目标计数器范围受限 (cp15之r9) 闭锁行可免于替换 仍可被冲洗 - 那么闭锁机制肯定被清除了,这是一个4维结合的cache,每维包含32 行 (块). 单一的目标计数器选择将要替换的维. 闭锁固定了计数器的基值所以该值以下的通道完全免于替换. 闭锁具有一维的间隔尺寸 (1/4的cache大小

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

8、62,Line 63,Line 0,Line 1,Cache闭锁 (3),Cache Flushing,保存在cache中的信息将优先与存储器相联系。但并不总是希望如此 如果使用了自修改的代码 如果MPU或MMU 被重新编程 因此需要一种机制来“刷新”cache 当 cache 被刷新时, cache 行将被标记为无效,然后被重新使用 另外,数据cache可能含有脏数据 ,所以要通过分别操作将数据写回存储器 Cache清理和刷新由CP15指令来实现,时钟,固化宏单元内核(硬核) 硬核 (例如 ARM920T, ARM940T) 有两个时钟输入,提供了灵活的时钟配置方法 BCLK AMBA 总线

9、时钟, 为所有的外部总线提供时钟 只有在配置为快速总线时才用于内核 FCLK 当配置为同步或异步时钟模式,没有外部总线活动时为内核提供时钟 可合成内核(软核) 可综合内核(例如. ARM946E-S, ARM966E-S, ARM926EJ-S)只有单个时钟输入 单个时钟输入作为CLK信号 HCLKEN 是第二个输入,用来生成总线时钟输出 (HCLK) HCLK 必须能被 CLK整除,同步模式(固化宏单元),ignored,BCLK,FCLK,FastBus,内核及外部总线由BCLK同步.,BCLK,FCLK,Asynchronous,FCLK的频率必须比 BCLK.高. 二者相位关系没有限制

10、. ASB操作需 BIU与 BCLK 同步. 最大1.5个 BCLK 周期的同步延迟.,BCLK,FCLK,Synchronous,FCLK 的频率必须比 BCLK.高 BCLK 只可以在FCLK 为高期间改变. ASB操作需 BIU与 BCLK 同步. 最大1 个BCLK 周期的同步延迟.,写缓冲器 (1),用于消除内核和存储器速度不匹配的影响 数据进入缓冲器时是按内核的速度 数据写到存储器时按总线的速度 存储器访问总是以正确的顺序出现 在非cache读, 非缓冲写和cache 行填充时,写缓冲总是首先被排空 有一个特定的排空写缓冲操作,地址寄存器,数据寄存器,内部数据总线,a0,d1,a1

11、,a2,a3,d2,d3,d4,d5,d6,d7,内核时钟,总线时钟,内部地址总线,总线接口单元,d0,写缓冲器(2),写操作出现以下情况时处理器将停顿: 写缓冲器满 写缓冲器被禁用 写到不可用作缓冲的区域 在写非缓冲区之前写缓冲器将被排空 如果写缓冲在软件的控制下被排空(通过CP15),处理器将停止执行 在写缓冲的时候不能产生异常中断 异常中断将被忽略,Cache 写策略,存储器管理,存储器保护单元 (MPU) 将存储空间分割为带有可编程特权的独立的区域 设置简单 节省功耗和芯片面积 不支持虚拟内存 无可用于页表的内存 ARM940T是一例带有MPU的ARM 内核 内存管理单元 (MMU)

12、提供更多灵活的动态的存储器控制,连同更强大的特权配置 设置复杂 通过页表支持虚拟内存 ARM920T是一例带有MMU的ARM 内核,编程模式,内核通过写CP15 的寄存器来配置 cache, 保护单元, 及其他系统操作象大端或小端模式配置. 定义在 CP15 中的寄存器只能用MCR 和 MRC 指令访问. MCR/MRCcond p15,opcode_1,rd,cn,cm,opcode_2 p15 指定协处理器 15 opcode_1 总是为0 rd - ARM 源或目的寄存器 cn - CP15 主寄存器 cm 附属寄存器名 opcode_2 - 可选的 3比特数用来指定附加信息 其他协处理

13、器指令 (CDP,LDC,STC)或在非特权模式使用 MCR/MRC访问CP15 将导致未定义指令异常.,议程,Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合存储器 ARM 的带Cache 处理器,保护单元,用于分割存储器 区块可以具有单独的cache属性 每个区块可以具有不同的访问设置,例如仅为特权模式 区块的大小和基地址是可选的 可以是分开的数据区和指令区(哈佛结构) 在保护单元使能之前至少有一个数据存储区和一个指令存储区被定义 区间的大小是可变的,典型值是4KB 到 4GB 区块的边界值必须等于其大小的整数倍 保护单元必须在cache使能之前有效,0 x25FFF

14、FFF,0 x24000000,0 x1FFFFFFF,0 x10000000,0 x0003FFFF,0 x00000000,Background,SRAM,Peripherals,Flash,指令区域图,读写 不可cache 不可缓冲,Background,SRAM,Flash,只读 可Cache,只读 可Cache,只读 可Cache,读写 可Cache 可缓冲,数据区域图,保护区域举例,注: 指令区必须有定义为允许文字池访问的相应数据区. 可以设定可重叠的背景区(Background ).,MPU 配置步骤,参照你的目标系统定义和使能保护寄存器 CP15之 c6 为每个存储区域设定可用

15、于cache或可用于缓冲的属性 CP15之c2和 c3 为每个存储区域设定访问许可 CP15 之c5 使能cache, 设置时钟同步模式,并使能MPU CP15 之c1 其他内核缺省值,象数据存放模式,向量表的位置等都通过c1 设置,议程,Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合存储器 ARM 的带Cache 处理器,什么是 MMU,内存管理单元 控制存储器的访问权限 将虚拟地址转换为物理地址 MMU 的组成 后备变换缓冲器 (TLB) 最近用于页变换的cache 页表浮动硬件逻辑 更新 TLB 访问控制逻辑 如果MMU 被禁用了 外部地址总线将直接输出虚拟地址,

16、虚拟地址到物理地址的映射,保护 & 中止,虚拟 存储器,物理 存储器,变换和校验 机制.,Process C,Process B,Process A,Manager,Process D,MMU,RAM,RAM,VRAM,ROM,RAM,RAM,RAM,变换表,I TLB,D TLB,为什么要用 MMU?,保护单元提供的是粗略的,通常是静态的存储模式 不能分配额外的存储空间 MMU可以“动态地”重新定位存储空间 对存储器“重新分配”使其纳入有效的管理 将变换过程与系统的其他部分隔离 生成所需的页表虚拟存储系统,TLB 和变换表,TLB是最近用于从虚拟地址 到 物理地址变换的cache 为大多数存

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

18、明的 变换表由软件产生,第一级描述,第一级描述是转换表中的一个条目,它可以是: 一个错误 一个段描述 一个粗略的或细致的页描述 段描述指针指向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,段基地址,1,AP,域选择,C,B,1 0,粗略的第二级描述基地址,1,域选择,0 1,详细的第二级描述基地址,1,域选择,1

19、1,0 0,第二级描述,第二级描述保存的是大页,小页的基地址 位 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 0,AP3,AP2,AP1,AP0,微页基地址,1 1,C,B,AP,第一级变换页表,虚拟地址,第一级转换页表,C,B,Domain Selector,

20、AP,0 x000,1,1 0,C,B,Domain Selector,AP,0 x002,1,1 0,C,B,Domain Selector,AP,0 xFFC,1,1 0,C,B,Domain Selector,AP,0 xFFF,1,1 0,C,B,Domain Selector,AP,0 xFFF,1,1 0,C,B,Domain Selector,AP,0 xFFF,1,1 0,C,B,Domain Selector,AP,0 xFFF,1,1 0,0 x002 00000,0 x003 00000,0 x004 00000,0 x001 00000,0 x005 00000,0 x

21、006 00000,0 xFFF 00000,0 xFFE 00000,0 xFFD 00000,0 xFFC 00000,物理地址,4096 项,1 MB 段,1 MB 段,错误,0 x001 00000,0 x003 00000,0 x004 00000,0 x002 00000,0 x005 00000,0 x006 00000,0 xFFF 00000,0 xFFE 00000,0 xFFD 00000,0 xFFC 00000,0 x000 00000,0 x000 00000,0 0,0 0,Fine Table Base,1,1 1,Domain Selector,Coarse

22、Table Base,1,0 1,Domain Selector,粗略第二级转换页表,细致第二级转换页表,第一级地址变换,虚拟地址,第一级 页表项,物理地址,段索引,段基地址,1,AP,域,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,第二级变换页表,第二级转换页表,C,B,AP3,Large Page Base,0 1,AP2,AP1,AP0,0 0,C,B,AP3,Small Page Base,1 0

23、,AP2,AP1,AP0,1 1,C,B,Tiny Page Base,1 1,AP,C,B,AP3,Small Page Base,1 0,AP2,AP1,AP0,C,B,AP3,Large Page Base,0 1,AP2,AP1,AP0,0 0,粗略页表 - 256 项,细致页表 - 1024 项,微页 1024页,1kB,大页 16页,64kB,大页 16 页,64kB,小页 256 页,4kB,小页 256页,4kB,错误,第二级地址变换,D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0,31 0,域,MMU 访问主要由域控

24、制 所有定义的存储器区域都有一个相关联的域 域被定义为2比特的读写区 可以定义16个域 域通常允许3个状态 客户态 服从段或页描述中的访问权限 管理态 忽略段或页描述中的访问权限 所以无错误产生 无读写态 任何访问都将产生一个域错误 可以通过简单的协处理器写操作修改域的读写区,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,c

25、13,c0,0 读进程ID寄存器,返回进程标识 写操作将更新进程标识,利用进程 ID 寄存器生成地址,VA24:0,进程 ID,OS 进程管理,VA31:25,判决逻辑,来自内核的指令地址 VA31:0,MVA31:0 修改过的地址 送入 Cache和 MMU,进程 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,P31,P30,0 MB,MMU 配置步骤,在存储器中构造转换页

26、表,定义所需的从虚拟地址到物理地址转换的初始值 转换页表项包括可cache和可缓冲的属性 也包括访问权限 设置变换页表基地址 CP15 之c2 使能cache, 设置时钟同步模式并使能 MMU CP15之c1 其他内核缺省配置如存储模式和向量地址页在这里设置,议程,Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合内存 ARM 的带Cache 处理器,什么是紧耦合内存?,取代cache 的一种选择,当其附在速度较慢的外部存储器上时,允许提供高性能的读写操作 快速存储器, 紧靠微处理器 提供高速性能,而不访问系统总线 与等量的cache 相比,在芯片尺寸上付出的代价较小 在存

27、储器映射中的位置是固定的 代码和数据执行前将被复制到此 实时性能能够被准确预测,ARM966E-S 存储器映射,0 x00000000,TCM混叠,64MB Instruction Memory,64MB Data Memory,0 x04000000,0 x08000000,128MB AHB Buffered,256MB AHB Unbuffered,0 x10000000,0 xFFFFFFFF,256MB AHB Unbuffered,Instruction Memory 64KB,Instruction Alias 1 64KB,Data Alias 2047 32KB,Instru

28、ction Alias 1023 64KB,Data Memory 32KB,Data Alias 1 32KB,0 x00000000,0 x00010000,0 x04000000,0 x04008000,0 x07FFFFFF,0 x03FF0000,0 x07FF8000,物理存储区图,ARM946E-S存储器映射,TCM存储器映射,内核 TCM 存储器,指令TCM的基地址总是 0 x0 数据 TCM的基地址是其大小的整数倍 TCM的大小可以指定 如果大于其实际大小, 将发生TCM 混淆现象 如果小于其实际大小, 某些存储空间将不会出现 随后可以放置在更好的地址 使能后, TCM 不可

29、以重叠,0-1024 KB TCM,议程,Cache、同步 和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合内存 ARM 的带Cache 处理器,命名约定,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,ARM的带 Cache处理器,ARM10 系列 - ARM1020E AR

30、M9E-S系列- ARM926EJ-S, ARM946E-S, ARM966E-S ARM9TDMI系列- ARM920T, ARM922T, ARM940T ARM7TDMI系列- ARM710T, ARM720T, ARM740T StrongARM 和XScale系列 更早的 ARM 处理器 - ARM710a, ARM610 等.,TM,ARM Cached 内核一览,720T,740T,920T,940T,SA110,926E,946E,966E,1020E,XScale,Architecture,Von,Neuman,Von,Neuman,Harvard,Harvard,Harva

31、rd,Harvard,Harvard,Harvard,Harvard,Harvard,Cache,8K Unified,4 words/line,8K Unified,4 words/line,16K,Instr,16K Data,8 Words/Line,4K,Instr,4K Data,4 Words/Line,16K,Instr,16K Data,4 Words/Line,4-128K,Instr,4-128K Data,8 Words/Line,0-1024K,Instr,0-1024K Data,8 Words/Line,None,16K,Instr,16K Data,8 Words

32、/Line,32K,Instr,32K Data,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,SSRAM,No,No,No,No,No,Yes,0-1024K,Instr,0-1024K Data,Yes,0-1024K,Instr,0-1024K Data,Yes,0-64M,Instr,0-64M Data,No,No,Replacement,Random,Random,Random/,Round Robin,Rand

33、om,Round Robin,Random/,Round Robin,Random/,Round Robin,NA,Random/,Round Robin,Random/,Round Robin,Write Strategy,Write,Through,Write,Through,Write,Through,Write Back,Write,Through,Write Back,Write Back,Write Through,Write Back,Write Through,Write Back,NA,Write Through,Write Back,Write Through,Write

34、Back,Write Buffer,8 Words,4 Addresses,8 Words,4 Addresses,16 Words,4 Addresses,8 Words,4 Addresses,8 Words,4 Addresses,16 Words,4 Addresses,16 Words,Data or,Addr,12 Words,Data or,Addr,16 Words,8 Addresses,8 x 16 Bytes,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,Further Information,ADS 1.2 提供了带Cache内核初始化的例子 ADS 页表生成应用MMUGen 内核技术参考手册 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交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!