HIT_CO_Week_5

假期结束,学习继续🤓

这周是存储器的最后一部分了,余下的内容不算多,重点在高速缓冲存储器(Cache)这一部分。

Cache

概述

首先回答第一个问题:为什么使用 Cache?

答案很简单,目的是为了避免 CPU “空等”现象,弥补 CPU 和主存(DRAM)的速度差异,使计算机能以更高的效率进行工作。

另外,还得提一下程序的局部性原理,具体点击参考百度,这里不赘述了。

Cache 的工作原理

主存和缓存的编址见下图:

主存和缓存的编址

主存和缓存的块内地址完全一样,假设缓存共分为 C 块,主存共分为 M 块,那么 M 是远大于 C 的。此时,主存块会调入缓存中(这样主存块就与缓存块建立了对应关系),同时利用标记记录与某缓存块建立对应关系的主存块号,这样就称缓存块命中了主存块。相反,如果主存块未调入缓存中,那么主存块与缓存块就不存在对应关系,也就是未命中了。

由此,Cache 会产生一个叫做命中率($h$)的参数,也即:
$$
h = \frac {N_c} {N_c + N_m}
$$
上述式子中,$N_c$ 表示 Cache 完成存取的总次数,$N_m$ 表示主存完成存取的总次数。

对应的,Cache-主存系统的效率见下图:

Cache-主存系统的效率

再看一下 Cache 的基本结构:

Cache 的基本结构

Cache 的读操作只有一种:
Cache 的读操作

Cache 的写操作要复杂一些(因为需要考虑 Cache 和主存的一致性问题),有两种:

  1. 写直达法(Write-through):写操作时数据既写入 Cache 又写入主存,这样能保证 Cache 和主存一致,但可能造成 CPU 对同一内存单元重复写的问题。写操作时间就是访问主存的时间,Cache 块退出时,不需要对主存执行写操作,更新策略比较容易实现。
  2. 写回法(Write-back):写操作时只把数据写入 Cache 而不写入主存,当 Cache 数据被替换出去时才写回主存。此法不能保证 Cache 和主存实时一致,同时因为多核 CPU 的存在,不同核心对应的 Cache 可能不同,由此会导致不同 Cache 中同时存在主存的某一个副本,而且这些副本还不能确定是否一致。另外,写操作时间就是访问 Cache 的时间,Cache 块退出时,被替换的块需写回主存,增加了 Cache 的复杂性。

为了提高 Cache 的效率,针对 Cache 还有一些改进措施:

  1. 增加 Cache 的技术,如片载(片内)Cache,片外 Cache。
  2. 统一缓存和分立缓存,如指令 Cache 和数据 Cache,具体与指令执行的控制方式有关。

Cache-主存的地址映射

三种映射方法:

  1. 直接映射:每个缓存块可以与若干个主存块对应;每个主存块只能与一个缓存块对应。
  2. 全相联映射:主存中的任一块可以映射到缓存中的任一块。
  3. 组相联映射:某一主存块按模 Q 映射到缓存中的第 i 组中的任一块,算是直接映射和全相联映射的结合版(也可以理解为将主存和缓存分组,组之间为直接映射,组内内全相联映射)。

替换算法

替换算法介绍了两种:

  1. 先进先出(FIFO,类似队列)算法
  2. 近期最少使用(LRU)算法

辅助存储器

辅助存储器最直接的特点就是不直接与 CPU 交换 信息,只是作为主存的“辅助”而存在,常见的辅助存储器又有磁表面存储器(又可分为硬磁和软磁)、光盘存储器。

磁表面存储器的技术指标:

  1. 记录密度
  2. 存储容量
  3. 平均寻址时间
  4. 数据传输率
  5. 误码率

磁记录原理就不深入探究了。

硬磁盘存储器的类型:

  1. 固定磁头和移动磁头
  2. 可换盘和固定盘

硬磁盘存储器由磁盘控制器、磁盘驱动器和盘片组成,软盘主要由聚酯薄膜制成。

光盘存储器采用光存储技术,利用激光写入和读出。第一代光存储技术采用非磁性介质,不可擦写;第二代光存储技术,采用磁性介质,可擦写。只读型和只写一次型光盘的存储原理为热作用(也即物理或化学变化),可擦写光盘的存储原理为热磁效应

总结

这一周课程的重难点部分在 Cache 这一块,从应试的角度来讲,这部分内容容易与其他章节内容结合,然后组合在一起作为一道大题出现,建议着重理解这块知识点。

补齐存储器整个章节的思维导图:
存储器

PS:存储器算是完结了,这个思维导图好大啊~说明零零散散的知识点真的多...🥴


Buy me a coffee ? :)
0%