<span>软件设计师备考笔记——计算机硬件基础2</span>
存储器系统
本章在综合考试中的平均分数为6分,约总分的8%
考点归纳
1、数值的计算
各进制数相互间的转换、二进制的特点、原码、反码、补码、移码的特点、数值的表示范围
2、计算机系统的组成
计算机包含的部件、常见的寄存器及各寄存器的作用重点
、计算机的性能和基本工作原理、计算机体系结构的分类、指令系统基础、寻址方式重点
、CISC和RISC、流水线工作原理、流水线的计算重点
、总线系统
3、存储系统
存储器的分类、主存-Cacher的工作原理、命中率计算、存储芯片容量计算重点
、虚拟存储器重点
、RAID类型和特点、主存、存储器地址编码
4、可靠性与性能评价
可靠性计算重点
、系统性能评价
5、校验码
循环冗余校验码(CRC)、海明效验码、奇偶校验码的基本原理
6、输入输出
常见的I/O设备、I/O控制方式
一、主存储器
存储器是计算机系统中的记忆设备,用来存放程序和数据。
计算机中全部信息,包括输入的原始数据、计算机程序、中间运 行结果和最终运行结果都保存在存储器中。
存储器分为:
寄存器
Cache(高速缓冲存储器)
主存储器
辅存储器
一、存储器的存取方式
二、存储器的性能
- 存取时间:对于随机存取而言,就是完成一次读/写所花的时 间;对非随机存取,就是将读/写装置移动到目的位置所花的 时间。
- 存储器带宽:每秒能访问的位数。通常存储器周期是纳秒级 (ns)。计算公式是:1/存储器周期×每周期可访问的字节数。
例如:存储器周期是200ns,每个周期可访问4B,则带宽 =1s/200ns×(4Bx8)=160Mbps。
- 数据传输率:每秒输入/输出的数据位数。 对于随机存取而言,传输率R=1/存储器周期。
例:地址编号从80000H到BFFFFH且按字节编址的内存容量为 ( B )KB,若用16K*4bit的存储芯片够成该内存,共需( C )片。
A.128 B.256 C.512 D.1024
A.8 B.16 C.32 D.64
三、主存储器
(1)主存储器的种类
-
1.RAM:随机存储器,可读/写,只能暂存数据,断电后数据丢失。
- SRAM:静态随机存储器,在不断电时信息能够一直保持,读 写速度快,生产成本高,多用于容量较小的高速缓冲存储器。
- DRAM:动态随机存储器,需要定时刷新以维持信息不丢失,读写速度较慢,集成度高,生产成本低,多用于容量较大的主存储器。
-
2.ROM:只读存储器,出厂前用掩膜技术写入,常用于存放BIOS和微程序控制。
-
3.PROM:可编程ROM,只能够一次写入,需用特殊电子设备进行写入。
-
4.EPROM:可擦除的PROM,用某种方法可擦去信息,可写入多次。
-
5.E2PROM:电可擦除EPROM,可以写入,但速度慢。
-
6.闪速存储器(Flash Memory):其特性介于EPROM与E2PROM之间。但不能进行字节级别的删除操作。
-
7.CAM(相联存储器):CAM是一种特殊的存储器,是一种基于数据内容进行访问的存储设备。其速度比基于地址进行读写的方式要快。
二、辅助存储器
一、磁带
磁带是一种顺序存取的设备。
特点:存储容量大,价格便宜。适合数据的备份存储。
二、磁盘
三、RAID(独立磁盘冗余阵列)
把多个相对便宜的磁盘组合起来,成为一个磁盘组,配合数据分散排列的设计,提升数据的安全性和整个磁盘系统效能。
- 利用多磁盘来提高数据传输率;
- 通过数据冗余与校验实现可靠性。
RAID应用的主要技术:分块技术、交叉技术和重聚技术。
(1) RAID 0级(无冗余和无校验的数据分块)
RAID 0原理是把连续的数据分散到多个磁盘上存取,数据请求被多个磁盘并行执行,每个磁盘执行属于自己的那部分数据请求。这种数据上的并行操作充分利用总线的带宽,显著提高磁盘整体存取性能。
- 优点:具有最高的I/O性能和最高的磁盘空间利用率,易管理。
- 缺点:不提供数据冗余,一旦数据损坏,损坏的数据将无法得到恢复。
RAID 0特别适用于对性能要求较高,对数据安全要求低的领域, 如图形工作站等。对于个人用户,也是提高硬盘存储性能的绝佳选择。
(2) RAID 1级(磁盘镜像阵列)
由磁盘对组成,每个工作盘都有其对应的镜像盘,上面保存着与工作盘完全相同的数据拷贝,具有最高的安全性,但磁盘空间利用率只有50%。RAID 1主要用于存放系统软件、数据及其他重要文件。
(3) RAID 2级(采用纠错海明码的磁盘阵列)
RAID 2采用海明码纠错技术,用户增加校验盘来提供纠错和验错功能,磁盘驱动器组中的第1个、第2个、第4个…第2n个磁盘驱动器是专门的校验盘,用于校验和纠错,其余的用于存放数据。 RAID2最少要三台磁盘驱动器方能运作。
(4) RAID 3级(采用带奇偶校验码的并行传送)
RAID 3把数据分成多个“块”,按照奇偶校验算法存放在N+1个 硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,第N+1 个硬盘上存储的数据是校验容错信息。
当N+1个硬盘中的一个硬盘出现故障时,从其他N个硬盘中可以恢复原始数据。所以RAID 3,安全性可以得到保障。
RAID 3比较适合大文件类型且安全性要求较高的应用,如视频编辑、硬盘播放机和大型数据库等。
(5) RAID 4级(带奇偶校验码的独立磁盘结构)
RAID4和RAID3很像,不同的是,它对数据的访问是按数据块进行的(一个数据块是一个完整的数据集合,比如一个文件就是一个典型的数据块。一个数据块存储在一个磁盘上),也就是按磁盘进行的,每次是一个盘。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘成为写操作的瓶颈。
(6) RAID 5级(无独立校验盘的奇偶校验码磁盘阵列)
RAID 5把数据和奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID5磁盘空间利用率较高:(N-1)/N
RAID4和RAID5使用了独立存取技术,阵列中每一个磁盘都相互独立地操作,所以I/O请求可以并行处理。该技术非常适合于I/O请求率高的应用,不太适用于要求高数据传输率的应用。
(7) RAID 6级(具有独立的数据硬盘与两个独立的分布式校验方案)
RAID6技术是在RAID 5基础上,为了进一步加强数据保护而设计的一 种RAID方式,是一种扩展RAID 5等级。
与RAID 5的不同之处:除了每个硬盘上都有同级数据XOR校验区外, 还有一个针对每个数据块的XOR校验区。当前盘数据块的校验数据不是存在当前盘而是交错存储的,每个数据块有了两个校验保护, 所以RAID 6的数据冗余性能相当好。
但是,由于增加了一个校验,所以写入的效率较RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。
(8) RAID 10级
把RAID0和RAID1技术结合起来,即RAID0+1 是磁盘分段及镜像的结合,结合了RAID0及RAID1的优点。
它采用两组RAID0的磁盘阵列互为镜像,也就是它们之间又成为 一个RAID1阵列。
三、Cache 存储器
Cache(高速缓冲存储器)
高速缓冲存储器是位于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于 CPU的速度。但其成本更高,因此Cache的容量要比内存小得多。
Cache存储了频繁访问内存的数据。
(1) Cache原理、命中率、失效率
使用Cache改善系统性能的主要依据是程序的局部性原理。
命中率、失效率
Cache的访问命中率为h(通常1-h就是Cache的失效率),Cache的 访问周期时间是t1,主存储器的访问周期时间是t2,则整个系统的平均访存时间就是:t3=h x t1+(1-h)x t2
(2) Cache存储器的映射机制
分配给Cache的地址存放在一个相联存储器(CAM)中。CPU发生 访存请求时,会先让CAM判断所要访问的数据是否在Cache中, 如果命中就直接使用。这个判断的过程就是Cache地址映射,这 个速度应该尽可能快。
常见的映射方法有:
- 直接映射
- 全相联映射
- 组相联映射
1、直接映射
是一种多对一的映射关系,但一个主存块只能够复制到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(1110 1000 1111)中 获取,得到10 1000 1111 。内存地址为1234E8F8H的单元装入的 Cache地址为10 1000 1111 1000。
2、全相联映射
将主存中任一主存块能映射到Cache中任意行(主存块的容量等 于Cache行容量)。
根据主存地址不能直接提取Cache页号,而是需要将主存块标记与Cache各页的标记逐个比较,直到找到标记符合的页(访问Cache命中),或者全部比较完后仍无符合的标记(访问Cache失 败)。
主存块标记与Cache各页的标记逐个比较,所以这种映射方式 速度很慢,失掉了高速缓存的作用,这是全相联映射方式的 最大缺点。如果让主页标记与各Cache标记同时比较,则成本太高。
3、组相联映射
是前两种方式的折中方案。它将Cache中的块再分成组,各组之间是直接映像,而组内各块之间则是全相联映像。
主存地址=区号+组号+组内块号+块内地址号
例:容量为64块的Cache采用组相联方式映射,字块大小为128个 字,每4块为一组。若主存容量为4096块,且以字编址,那么主 存地址应该为多少位?主存区号为多少位?
首先根据主存块与Cache块的容量必须一致,得出内存块大小也 是128个字,因此共有128x4096个字,即219 (27x212)个字,因此需 19位主存地址;其中:块内地址号为7位,以表示128个字。一组 为4块,则组内块号用2位表示。Cache容量为64块,共分16组, 故组号需要4位地址表示。剩余的即为区号,为6位。
(3) Cache淘汰算法
当Cache数据已满,并且出现未命中情况时,就要淘汰一些老的数据,更新一些新的数据进入Cache 。选择淘汰哪些数据的方法就是淘汰算法。
常见的方法有三种:
- 随机淘汰算法
- 先进先出淘汰算法( FIFO)
- 最近最少使用淘汰算法(LRU)
其中平均命中率最高的是LRU算法。
(4) Cache存储器的写操作
在使用Cache时,需要保证其数据与主存一致,因此在写Cache时 就要考虑与主存间的同步问题,通常使用以下三种方法:
- 写直达:当Cache写命中时,Cache与主存同时发生写修改。
- 写回:当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,当此行被换出才写回主存
- 标记法:数据进入Cache后,有效位置1;当CPU对该数据修改时, 数据只写入主存并将该有效位置0。当要从Cache中读取数据时 要测试其有效位,若为1则直接从Cache中取数,否则从主存中 取数。