W7-W9 的内容

  1. 计组相关笔记①
  2. 计组相关笔记②
  3. 计组相关笔记③
  4. 计组相关笔记④

Memory

ROM (只读存储器)

ROM,全称为只读存储器(Read-Only Memory),是一种非易失性的存储设备,这意味着即使在断电的情况下,ROM 中的数据也不会丢失。ROM 中的数据在制造时就被写入,并且在使用过程中不能被修改。ROM 常用于存储固定的程序,如计算机的 BIOS。

RAM (随机存取存储器)

RAM,全称为随机存取存储器(Random Access Memory),是一种易失性的存储设备,这意味着在断电的情况下,RAM 中的数据会丢失。与 ROM 不同,RAM 中的数据可以在任何时候被读取和写入。RAM 是计算机的主要工作区域,用于存储操作系统、应用程序和当前工作的数据。

SRAM (静态随机存取存储器)

SRAM,全称为静态随机存取存储器(Static Random Access Memory),也是 RAM 的一种类型。与 DRAM 不同,SRAM 的每个存储单元由六个晶体管组成,不需要定期刷新。因此,SRAM 的速度比 DRAM 快,但是成本更高,容量更小。SRAM 常用于 CPU 的缓存。

DRAM (动态随机存取存储器)

DRAM,全称为动态随机存取存储器(Dynamic Random Access Memory),是 RAM 的一种类型。DRAM 的每个存储单元都是由一个电容和一个晶体管组成的,电容存储电荷(数据),晶体管控制读写。由于电容会自然漏电,所以 DRAM 需要定期刷新来保持存储的数据。

命中 hit

在存储器层次结构中,当 CPU 在给定的内存级别上找到所需的数据时,我们称之为 “命中”(hit)。如果在给定的内存级别上找不到所需的数据,我们称之为 “未命中”(miss)。

命中率(hit rate)是指在给定内存级别上找到数据的时间百分比。换句话说,它是 CPU 在该内存级别上找到所需数据的概率。

未命中率(miss rate)是指在给定内存级别上找不到数据的时间百分比。未命中率等于 1 减去命中率。

命中时间(hit time)是指访问给定内存级别的数据所需的时间。这包括从该内存级别读取数据以及将数据传输到 CPU 的时间。

未命中惩罚(miss penalty)是指处理未命中所需的时间。这包括从下一级内存中获取数据、替换当前级别内存中的数据(如果需要的话)以及将数据传输到 CPU 的时间。

理解这些概念对于理解和优化计算机系统的性能至关重要。通过提高命中率、减少命中时间和未命中惩罚,我们可以使 CPU 大部分时间都在与速度最快的存储设备交互,从而提高系统的性能。

(Effective Access Time, EAT)的公式,它是评估存储器层次结构性能的一个重要指标。

在两级存储器系统中,EAT 的计算公式为:

EAT=H×Access_C+(1H)×Access_MEAT = H \times Access\_C + (1 - H) \times Access\_M

其中:

H 是命中率(hit rate),即在高级存储器(例如高速缓存)中找到所需数据的概率。
Access_C 是高级存储器(例如高速缓存)的访问时间。
Access_M 是低级存储器(例如主存)的访问时间。
这个公式的含义是,有效访问时间等于命中时的访问时间(即在高级存储器中找到数据的时间)和未命中时的访问时间(即在低级存储器中找到数据的时间)的加权平均。
这是一个计算有效访问时间(EAT)的例子。

在这个例子中,我们有一个主存访问时间为 200ns 的系统,由一个访问时间为 10ns 的高速缓存支持,命中率为 99%。

我们可以将这些值代入 EAT 的公式进行计算:

EAT = H × Access_C + (1 - H) × Access_M

将给定的值代入公式,我们得到:

EAT = 0.99 × 10ns + (1 - 0.99) × 200ns = 9.9ns + 2ns = 11.9ns

所以,这个系统的有效访问时间是 3ns。

高速缓存(Cache Memory)

高速缓存是位于 CPU 和主存之间的一种非常快速的存储设备,用于存储频繁使用的数据。高速缓存的设计目的是减少 CPU 访问主存的次数,从而提高系统的性能。

在存储器层次结构中,越是上层的存储设备,其容量越小、速度越快、价格也越贵。相反,越是下层的存储设备,其容量越大、速度越慢、价格也越便宜。这是因为上层的存储设备使用的是更先进、更昂贵的技术,而下层的存储设备使用的是更成熟、更便宜的技术。

以下是存储器层次结构的一个典型例子:

  1. 寄存器:位于 CPU 内部,存储正在被处理的数据。寄存器的存取速度最快,但数量有限。

  2. 一级缓存(L1 Cache):位于 CPU 内部,存储最近使用的数据。一级缓存的存取速度非常快,但容量小。

  3. 二级缓存(L2 Cache):位于 CPU 内部或者 CPU 和主存之间,存储一级缓存中未能存储的数据。二级缓存的存取速度比一级缓存慢,但容量大。

  4. 三级缓存(L3 Cache):位于 CPU 和主存之间,存储二级缓存中未能存储的数据。三级缓存的存取速度比二级缓存慢,但容量更大。

  5. 主存(RAM):存储当前正在运行的程序和数据。主存的存取速度比高速缓存慢,但容量大。

  6. 本地磁盘(硬盘、SSD):用于长期存储数据。本地磁盘的存取速度比主存慢,但容量非常大。

  7. 网络存储(网络硬盘、云存储):用于存储大量的、不常访问的数据。网络存储的存取速度最慢,但容量几乎无限。

高速缓存映射

高速缓存映射是计算机科学中的一个重要概念,它描述了如何将内存地址映射到高速缓存中的特定位置。这种映射关系决定了当 CPU 需要访问一个特定的内存地址时,应该在高速缓存的哪个位置查找数据。

直接映射高速缓存

在直接映射高速缓存中,每个内存块都映射到高速缓存的一个特定块。这个映射是通过地址的一部分来确定的。例如,如果我们有一个内存大小为 2142^{14} 个字,高速缓存有 242^{4} 个块,每个块可以存储 8 个字。这意味着内存被划分为 214/23=2112^{14} / 2^{3} = 2^{11} 个块。

对于我们的字段大小,我们知道我们需要 4 位来表示块(因为高速缓存有 242^{4} 个块),需要 3 位来表示字(因为每个块有 232^{3} 个字)。剩下的位数用于表示标记(tag)。

标记用于确定存储在特定高速缓存块中的数据是来自哪个内存块的。这种设计使得高速缓存可以快速确定一个特定的内存地址是否在高速缓存中(即,是否命中),并且如果在,那么它在哪个块中。

关联映射高速缓存

在关联映射高速缓存中,内存地址被划分为两个字段:标签(Tag)和字(Word)。例如,如果我们有 14 位的内存地址和一个有 16 个块的高速缓存,每个块的大小为 8。内存引用的字段格式为:标签和字。

当搜索高速缓存时,所有的标签都会并行搜索以快速检索数据。这需要特殊的、昂贵的硬件。

关联映射高速缓存的优点是任何内存块都可以映射到任何高速缓存块,这可以减少高速缓存未命中的可能性。但是,这种方法的缺点是需要更复杂的硬件来并行搜索所有的标签,并在命中时选择正确的数据。

I/O system

RAID

RAID(冗余独立磁盘阵列)是一种用于提高数据可靠性和性能的存储技术。它通过将数据分布在多个磁盘上,实现了数据的冗余存储和并行访问。

RAID 0

RAID 0,也被称为条带化,不提供冗余保护,因此不真正符合 RAID 的定义。它通过将数据分布在所有磁盘上,提高了数据的读写速度。但是,如果任何一个磁盘失败,所有的数据都将丢失。

RAID 1

RAID 1,也被称为镜像,通过完全复制数据到两个或更多的磁盘来提供冗余保护。这意味着每个磁盘都有数据的完整副本。如果一个磁盘失败,其他的磁盘可以继续提供数据访问,无需任何数据恢复过程。

RAID 2

RAID 2 使用一种称为位级条带化的技术,并使用 Hamming 码进行错误检测和纠正。这种级别的 RAID 已经过时,因为现代磁盘驱动器已经内置了错误检测和纠正。

RAID 3

RAID 3 使用字节级条带化,并在一个专用的磁盘上存储奇偶校验信息。如果一个磁盘失败,数据可以从奇偶校验信息中恢复。然而,由于所有的读写操作都需要访问奇偶校验磁盘,所以可能会成为瓶颈。

RAID 4

RAID 4 使用块级条带化,并在一个专用的磁盘上存储奇偶校验信息。这允许同时读取多个磁盘,从而提高了读取性能。然而,写入性能可能会受到影响,因为每次写入都需要更新奇偶校验信息。

RAID 5

RAID 5 在所有磁盘上分布数据和奇偶校验信息。这种配置提供了冗余保护,并允许在任何一个磁盘失败时继续运行。如果一个磁盘失败,数据可以从其他磁盘的数据和奇偶校验信息中重建。RAID 5 需要至少三个磁盘,但比 RAID 1 和 RAID 0 提供了更好的平衡性能和可靠性。

RAID 6

RAID 6 类似于 RAID 5,但它在所有磁盘上分布两个独立的奇偶校验信息。这允许在两个磁盘同时失败时继续运行。RAID 6 需要至少四个磁盘,但提供了比 RAID 5 更高的数据保护级别。

RAID DP

RAID DP(双奇偶冗余独立磁盘阵列)是一种特殊的 RAID 级别,主要用于提供额外的数据保护。它是由 NetApp 公司开发的,主要用于其存储系统。

RAID DP 与 RAID 6 类似,都使用两个奇偶校验块来提供冗余保护。这意味着,即使有两个磁盘同时失败,数据也能够被完整地恢复。

RAID DP 的一个主要优点是它提供了与 RAID 6 相同级别的数据保护,但是性能损失较小,存储效率更高。这是因为 RAID DP 使用了一种特殊的算法来计算第二个奇偶校验块,这种算法比 RAID 6 的算法更为高效。