带Cache的内核简要介绍.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
带Cache的内核简要介绍.ppt

带Cache的内核简要介绍 带Cache的 ARM 宏单元举例 议程 Cache、同步 和写缓冲介绍 存储器保护单元 内存管理单元 紧耦合存储器 带Cache的ARM处理器 什么是 cache? 位于处理器中的少量高速缓冲存储器, 保存最近被访问的存储空间内容的备份 哪些存储空间需要读入到cache中,要通过MMU 或 MPU来控制 依赖于内存的重使用 仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能 降低对总线宽度的要求 减少功耗 Cache 的用法 数据以每次传送一行的方式复制到cache 中 每个cache行包含连续的数据 Cache行按其自然的行边界尺寸分配 Cache中的数据一旦被获取后,立即对内核有效 这一处理就是大家所知的数据流动 在一个cache 读操作不命中后,将激发cache 行内容的填充 但新数据应放在cache 的什么位置? ARM 处理器支持以下置换策略中的一个或多个: 随机, 循环轮换 轮换指针指向下一个要填充的cache 行 已经使用过的行将被收回和替换 对回写数据cache而言, 任何改过的数据都要写到存储器中 结合性 简单cache,采用直接映射策略 一个特殊的存储器数据项被存放在cache 的某个特定位置。 相同cache 地址域的数据项将竞争这一位置。 实施简单,执行快捷 块结合cache,减少位置竞争 一个特殊的存储器数据项被存放在cache 的许多位置 如果一个特殊的存储器数据项被存放在cache中的‘n’ 个位置,那么可以说cache是n维的 实施较复杂,需要更多的比较硬件 直接映射 Cache 2-维块结合 Cache 若干定义 Line: 行, cache的最小可装载单元 – 任何情况下都是存储器中一个连续的字块。 Tag: 标签,存放在cache 中的存储器地址的一部分,用来识别定位在那里的特定的物理地址。 Set: 块,一组行,用来保持来自特定存储器空间的数据。 Way: 维,一个块所含行的数量,就是cache 的维数。 Index: 索引,存储器地址的一部分,它决定可以存储cache 行的块。 4-维块结合 Cache 64-维块结合 Cache Cache 闭锁 (1) 部分cache 可能闭锁以避免被清除 其间隔尺度随着内核的不同而变化 可能在需要保证实时性能时使用 需要一个短的子程序来控制行填充 提供了例子程序 目标计数器范围受限 (cp15之r9) 闭锁行可免于替换 仍可被‘冲洗’ - 那么闭锁机制肯定被清除了 Cache闭锁 (2) 这是一个4维结合的cache,每维包含32 行 (块). 单一的目标计数器选择将要替换的维. 闭锁固定了计数器的基值所以该值以下的通道完全免于替换. 闭锁具有一维的间隔尺寸 (1/4的cache大小). Cache闭锁 (3) 这是一个64维,4个块的结合cache. 单一的目标计数器选择将要替换的维(每个块中相同数字的行). 闭锁固定了计数器的基值所以该值以下的块完全免于替换. 闭锁具有一行的间隔尺寸 (1/64的cache大小). Cache Flushing 保存在cache中的信息将优先与存储器相联系。但并不总是希望如此 如果使用了自修改的代码 如果MPU或MMU 被重新编程 因此需要一种机制来“刷新”cache 当 cache 被刷新时, cache 行将被标记为无效,然后被重新使用 另外,数据cache可能含有‘脏数据’ ,所以要通过分别操作将数据写回存储器 Cache清理和刷新由CP15指令来实现 时钟 固化宏单元内核(硬核) 硬核 (例如 ARM920T, ARM940T) 有两个时钟输入,提供了灵活的时钟配置方法 BCLK AMBA 总线时钟, 为所有的外部总线提供时钟 只有在配置为‘快速总线’时才用于内核 FCLK 当配置为‘同步’或‘异步’时钟模式,没有外部总线活动时为内核提供时钟 可合成内核(软核) 可综合内核(例如. ARM946E-S, ARM966E-S, ARM926EJ-S)只有单个时钟输入 单个时钟输入作为CLK信号 HCLKEN 是第二个输入,用来生成总线时钟输出 (HCLK) HCLK 必须能被 CLK整除 同步模式 (固化宏单元) 写缓冲器 (1) 用于消除内核和存储器速度不匹配的影响 数据进入缓冲器时是按内核的速度 数据写到存储器时按总线的速度 存储器访问总是以正确的顺序出现 在非cache读, 非缓冲写和cache 行填充时,写缓冲总是首先被排空 有一个特定的排空写缓冲操作 写缓冲器(2) 写操作出现以下情况时处理器将停顿: 写缓冲器满 写缓冲器被禁用 写到不可用作缓冲的区域 在写非缓冲区之前写缓冲器将被排空

文档评论(0)

wsh1288 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档