购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4.1 考点精讲

在整个计算机系统中,存储系统的地位非常重要,在本书中,有多个章节涉及存储相关内容。本章主要描述存储系统中与硬件相关的部分,而在操作系统章节将描述存储调度相关内容。

1.Cache

由于在CPU与存储系统间存在着数据传送带宽的限制,因此在其中设置了Cache(高速缓冲存储器,通常速度比内存快),以提高整体效率。但由于其成本更高,因此Cache的容量要比内存小得多。Cache是一种相联存储器(即按内容进行存储的存储器)。

(1)Cache原理、命中率、失效率

使用Cache改善系统性能的主要依据是程序的局部性原理。通俗地说,就是一段时间内,执行的语句常集中于某个局部。而Cache正式将访问集中的内容放在速度更快的Cache上,以提高性能。引入Cache后,CPU在需要数据时,先找Cache,如果没有再找内存。

如果Cache的访问命中率为 h (通常 1− h 就是Cache的失效率),而Cache的访问周期时间是 t 1,主存储器的访问周期时间是 t 2,则整个系统的平均访存时间就应该是:

从公式可以看出,系统的平均访存时间与命中率有着很密切的关系。灵活地应用这个公式,可以计算出所有情况下的平均访存时间。

例如:设某流水线计算机主存的读/写时间为 100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为l0ns,取指令的命中率为 98%,取数的命中率为 95%。在执行某类程序时,约有 1/5 指令需要存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置Cache后,每条指令的平均访存时间约为多少?其实这是应用该公式的简单数学题:

(2% × 100ns + 98% × 10ns)+ 1/5 ×(5% × 100ns + 95% × 10ns)=14.7ns

(2)Cache存储器的映射机制

CPU发生访存请求时,会先让Cache判断是否包括,如果命中(即包括请求的内容)就直接使用。这个判断的过程就是Cache地址映射,这个速度应该尽可能快,常见的映射方法有直接映射、全相联映射和组相联映射 3 种,其原理如图 1-6 所示。

● 直接映射:是一种多对一的映射关系,但一个主存块只能够复制到Cache的一个特定位置上去。Cache的行号 i 和主存的块号 j 有函数关系: i = j %m(其中 m 为Cache总行数)。例如,某Cache容量为 16KB(可用 14 位表示),每行的大小为 16B(可用4 位表示),则说明其可分为 1024 行(可用 10 位表示)。则主存地址的最低 4 位为Cache的行内地址,中间 10 位为Cache行号。如果内存地址为 1234E8F8H的话,那么最后 4 位就是 1000(对应十六进制数的最后一位),而中间 10 位,则应从E8F(111010001111)中获取,得到 1010001111。

● 相联映射:将主存中一个块的地址与块的内容一起存于Cache的行中。速度更快,但控制复杂。

● 组相联映射:是前两种方式的折中方案。它将Cache中的块再分成组,然后通过直接映射方式决定组号,再通过相联映射的方式决定Cache中的块号。

图 1-6 Cache映射规则图解

要注意的是,在Cache映射中,主存和Cache存储器将均分成容量相同的块。

例如:容量为 64 块的Cache采用组相联方式映像,字块大小为 128 个字,每 4 块为一组。若主存容量为 4096 块,且以字编址,那么主存地址应该为多少位?主存区号为多少位?这样的题目,首先因为主存与Cache块的容量需一致,因此内存也是 128 个字,因此共有128×4096 个字,即 2 19 (2 7 +2 12 )个字,因此主存地址需要 19 位;而内存所需要分为 4096/64块,即 2 6 ,因此主存区号需要 6 位。

(3)Cache淘汰算法

当Cache数据已满,并且出现未命中情况时,就是淘汰一些老的数据,更新一些新的数据。而选择淘汰什么数据的方法就是淘汰算法,常见的方法有 3 种:随机淘汰、先进先出(FIFO)淘汰(淘汰最早调入Cache的数据)、最近最少使用(LRU)淘汰法。其中平均命中率最高的是LRU算法。

(4)Cache存储器的写操作

在使用Cache时,需要保证其数据与主存一致,因此在写Cache时就需要考虑与主存间的同步问题,通常使用以下 3 种方法:写直达(写Cache时,同时写主存)、写回(写Cache时不马上写主存,而是等其淘汰时回写)、标记法。

2.主存(内存)

(1)主存储器的种类

● RAM:随机存储器,可读写,断电后数据无法保存,只能暂存数据。

▶ SRAM:静态随机存储器,在不断电时信息能够一直保持。

▶ DRAM:动态随机存储器,需要定时刷新以维持信息不丢失。

● ROM:只读存储器,出厂前用掩膜技术写入,常用于存放BIOS和微程序控制。

● PROM:可编程ROM,只能够一次写入,需用特殊电子设备写入。

● EPROM:可擦除的PROM,用紫外线照射15~20分钟可擦去所有信息,可写入多次。

● E 2 PROM:电可擦除ERPOM,可以写入,但速度慢。

● 闪速存储器:现在U盘使用的种类,可以快速写入。

记忆时,抓住几个关键的英文字母。A,即Access,说明读写都行;O,即Only,说明只读;P,即Programmable,说明可通过特殊电子设备写入;E,即Erasable,说明可擦写;E平方说明是两个E,第 2 个E是电子。

(2)主存储器的组成

实际的存储器总是由一片或多片存储器配以控制电路构成的(如图 1-7 所示)。其容量为 W × B W 是存储单元(word,即字)的数量, B 表示每个word由多少bit(位)组成。如果某一芯片规格为 w × b ,则组成 W × B 的存储器需要用( W / w )×( B / b )个芯片。

图 1-7 主存储器组成示意图

(3)主存储器的地址编码

主存储器(内存)采用的是随机存取方式,需对每个数据块进行编码,而在主存储器中数据块是以word来标识的,即每个字一个地址,通常采用的是十六进制表示。例如,按字节编址,地址从A4000H到CBFFFH,表示有(CBFFF−A4000)+1 个字节,28000H个,也就是 163840 个字节,等于 160KB。

要注意的是,编址的基础可以是字节,也可以是字(字是由一个或多个字节组成的),要算地址位数,首先应计算要编址的字或字节数,然后求 2 的对数即可得到。 sqOSai8JWj8sAJHt4Q/GYHB3evQrVLBkl9BELogvlKuxYewAvwnGx4MTXgqmwPqe

点击中间区域
呼出菜单
上一章
目录
下一章
×