1 / 24

计算机组成原理第四章

计算机组成原理第四章. 知识点三:高速缓存存储系统. 主讲教师:吴非. 问题引入. 如何解决 CPU 和主存性能不平衡的问题?. 学习建议.  系统观: 与计算机的系统组织联系在一起,理解运算器、控制器、存储器的数据传输机制,计算机性能除了与 CPU 有关外, 更多的需要考虑 CPU 和主存之间带宽平衡问题。 构造观: 理解 cache 存储系统的原理和几种实现方式的异同,对性能的影响。. 1. 解决 CPU 与主存带宽不平衡的方法. 主存采用更高速的材料,缩短读写时间; 增加字长,在每个存储周期中存取多个字; 采用双端口存储器;

chesmu
Download Presentation

计算机组成原理第四章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机组成原理第四章 知识点三:高速缓存存储系统 主讲教师:吴非

  2. 问题引入 如何解决CPU和主存性能不平衡的问题? 学习建议 系统观:与计算机的系统组织联系在一起,理解运算器、控制器、存储器的数据传输机制,计算机性能除了与CPU有关外, 更多的需要考虑CPU和主存之间带宽平衡问题。 构造观:理解cache存储系统的原理和几种实现方式的异同,对性能的影响。

  3. 1.解决CPU与主存带宽不平衡的方法 • 主存采用更高速的材料,缩短读写时间; • 增加字长,在每个存储周期中存取多个字; • 采用双端口存储器; • 将主存划分为多个模块,多模块并行; • 在CPU和主存间插入高速缓冲存储器(Cache)。

  4. 2. 多体交叉存储器 • 高位交叉, 扩展容量 • 低位交叉, 提高速度

  5. 3. Cache基本思想和组织方式 例.以下程序A和B中,哪一个对数组A[2048][2048]访问的空间局部性更好?时间局部性呢? • 程序局部性原理

  6. 数组A:访问顺序为A[0][0], …, A[0][2047];与存放顺序一致,故空间局部性好!但每个A[i][j]只被访问一次,故时间局部性差!

  7. 数组A:访问顺序为A[0][0] - A[2047][0];与存放顺序不一致,每次跳过2048个单元,若主存与Cache之间交换信息的块小于2KB,则没有空间局部性! (每个数组变量只被访问一次,没有时间局部性,同程序A)

  8. Cache 的 行 标记 存储体 有效位 (valid) 数据 存储体 块 3. Cache基本思想和组织方式 • Cache的结构 • 数据存储体 • 标记存储体 • 有效位

  9. 主存块地址 块内偏移地址 块 3. Cache基本思想和组织方式 标记 索引 • 应用于cache的主存地址格式 • 块地址(标记,索引)+块内偏移 • 索引是作为Cache存储体的地址指示器 • 标记作为判断CPU要访问的内容是否在Cache中的依据

  10. 管理逻辑 未命中 命中 CPU 主存 地址总线 块 3. Cache基本思想和组织方式 相联存储器 快存 Cache 数据总线 • Cache的组织和访问 • 交换单位: cache和主存(块),cache和CPU(字) • 命中:数据在cache,反之,不命中 • 不命中, 页面替换调度

  11. 3. Cache基本思想和组织方式 • 采用相联存储器 • 按内容进行访问的存储器 • 采用(Key,Value)检索方法 • 相联存储器构成 • 存储体、检索寄存器、屏蔽寄存器、符合寄存器、比较线路、代码寄存器、控制线路

  12. 4.Cache与主存地址映射方法 • 地址映射的概念 • 地址映射方法 • 全相联 (fully-associated) • 直接相联 (direct mapped) • 组相联 (set-associated)

  13. 主存 4.Cache与主存地址映射方法 • 全相联映射方式 • 主存分块, Cache分行 • 算法:主存的每一块可以映射到Cache的任意一行 • 举例: 设每块4个字,其中第3DH个字的主存地址为: 00001111 01 (块号 块内地址) • 则将00001111填入Cache某行的标记,该块的4个字填入该行的Cache存储体

  14. 4.Cache与主存地址映射方法 • 全相联映射的检索 例:CPU要读内存地址为: 00001111 10 判断是否发生命中

  15. 4.Cache与主存地址映射方法 • 直接相连映射方式 • 主存分区,区内分块;Cache分行, • 算法:i =j mod n(i 是Cache行号,j是主存块号,n是cache包含的块数) • 举例: 设每块4个字,其中第3DH个字的主存地址为: 00001 111 01 (在1区、7 块中) • 则将00001填入Cache的第[111]2行的标记部分,该块的4个字填入该行的Cache存储体

  16. 主存区号 (标识) 区内块号(索引) 块内 偏移 4.Cache与主存地址映射方法 • 直接相联映射检索 例: CPU读内存地址为: 00001 111 11 判断是否命中

  17. 4.Cache与主存地址映射方法 • 组相联映射方式 • Cache、主存分组;主存分块;Cache分行, • 算法:i =j mod n(i 是Cache组号,j是主存块号,n是cache包含的组数), • 举例: 设每块4个字,其中第3DH个字的主存地址为: 000011 11 01 • 则将000011填入Cache的第3组某行的标记部分,该块的4个字填入该行的Cache存储体

  18. 区内块号(索引) 块内 偏移 主存区号(标识) 4.Cache与主存地址映射方法 • 组联映射的检索 例: CPU读内存地址: 000011 11 11 判断是否命中 • K路组相联定义 Cache中每组包含的行数

  19. 5.替换算法 • 替换策略 • 先进先出法 • 最近最不经常使用方法---LFU(程序局部性好) • 近期最少使用法--- LRU(程序局部性好) • 随机替换法

  20. 221 221 221 22 221 22 222 22 0 22 221 22 222 222 223 41 0 22 t 1 1 11 11 111 112 111 162 161 11 111 11 113 111 111 19 193 2 2 19 191 192 19 4 19 19 16 3 3 16 73 72 71 16 22 11 19 7 16 4 3 22 11 22 19 11 16 22 4 3 220 220 40 5.替换算法—举例说明 222 221 220 160 110 111 11 30 190 19 4 LRU t 70 16 3 命中 载入 载入 替换 替换 替换 载入 载入 LFU 命中 命中 命中 载入 替换 替换 载入 载入 载入

  21. 主存 CPU寄存器 磁带,光盘 Cache高速缓存 磁盘 6. Cache一致性问题 • 几个概念 • Cache脏位或修改位(Dirty bit): 表示cache数据是否被修改过 • Cache有效位(Valid bit): 判断cache数据与主存数据是否一致,如果是, 则有效 • cache数据一致性问题

  22. 6. Cache一致性问题 • 写策略 • 写回法(write back): 只写cache • 写穿法 (write through): 写命中时,同时写cache和主存 • 写不命中处理方法 • 写分配(write-allocate):写cache • 写不分配(not-write-allocate):不写cache

  23. Memory (Tm,Nm,Sm,Cm) 7. Cache性能评价方法 Cache (Tc,Nc,Sc,Cc) • 命中率 h=Nc /(Nc+Nm) • 平均访问时间 Ta=hTc +(1-h)Tm

  24. 知识点三 回顾 • cache基本原理 • 相联存储器 • 三种地址映射方式 • 替换算法 • 写一致性问题解决方法 • Cache性能评价方法

More Related