存储器系统:
概述:
计算机中的存储系统是用来保存数据和程序的。对存储器最基本的要求就是存储容量要大、存取速度快、成本价格低。为了满足这一要求,提出了多级存储体系结构。一般可分为高速缓冲存储器、主存、外存3个层次,有时候还包括CPU内部的寄存器以及控制存储器。
衡量存储器的主要因素:存储器访问速度、存储容量和存储器的价格;
存储器的介质:半导体、磁介质和光存储器;
存储器的组成:存储芯片+控制电路(存储体+地址寄存器+数据缓冲器+时序控制);
存储体系结构从上层到下层离CPU越来越远、存储量越来越大、每位的价格越来越便宜,而且访问的速度越来越慢。
存储器系统分布在计算机各个不同部件的多种存储设备组成,位于CPU内部的寄存器以及用于CU的控制寄存器。内部存储器是可以被处理器直接存取的存储器,又称为主存储器,外部存储器需要通过I/O模块与处理器交换数据,又称为辅助存储器,弥补CPU处理器速度之间的差异还设置了CACHE,容量小但速度极快,位于CPU和主存之间,用于存放CPU正在执行的程序段和所需数据。
整个计算机的存储器体系结构可以用下面的图来说明:
通常衡量主存容量大小的单位是字节或者字,而外存的容量则用字节来表示。字是存储器组织的基本单元,一个字可以是一个字节,也可以是多个字节。
信息存取方式:信息的存取方式影响到存储信息的组织,常用的有4种,
◆顺序存取
存储器的数据是以记录的形式进行组织,对数据的访问必须按特定的线性顺序进行。磁带存储器的存取方式就是顺序存取。
◆直接存取
共享读写装置,但是每个记录都有一个唯一的地址标识,共享的读写装置可以直接移动到目的数据块所在位置进行访问。因此存取时间也是可变的。磁盘存储器采用的这种方式。
◆随机存取
存储器的每一个可寻址单元都具有唯一地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。主存储器采用的是这种方式。
◆相联存取
也是一种随机存取的形式,但是选择某一单元进行读写是取决于其内容而不是其地址。Cache可能采用该方法进行访问。
衡量存储器系统性能的指标有以下几种:
存取时间:一次读/写存储器的时间
存储器带宽:每秒能访问的位数。
存储器周期:两次相邻的存取之间的时间
数据传输率:每秒钟数据传输的bit数目。
主存储器:
主存储器是指能由CPU直接编程访问的存储器,它存放需要执行的程序与需要处理的数据。因为它通常位于所谓主机的范畴,常称为内存。如果内存的地址为n位,容量为2的n次。
主存储器的种类很多,主要有:
随机存储器(RAM):可以读出和写入,随机访问存取,断电消失
只读存储器(ROM):只能读出原有的内容,不能写入新内容
可编程ROM(PROM)
可擦除PROM(EPROM)
电可擦除PROM(E2PROM)
闪速存储器(flash memory)
实际的存储器总是由一片或多片存储芯片配以控制电路组成的,其容量往往是W×B来表示。W表示该存储器的存储单元(word)的数量,而B表示每一个word由多少bit组成。#p#
辅助存储器:
由于主存容量有限(受地址位数、成本、速度等因素制约),在大多数计算机系统中设置一级大容量存储器作为对主存的补充与后援。它们位于主机的逻辑范畴之外,常称为外存储器,简称外存。
外存的最大特点是容量大、可靠性高、价格低,主要有两大类。
◆磁表面存储器:这类外存储器主要包括磁带和磁盘存储器。
▲磁带
磁带存储设备是一种顺序存取的设备,存取时间较长,但存储容量大。磁带上的信息是以文件块的形式存放的,而且便于携带,价格便宜。按它的读写方式可分为两种:启停式和数据流。
▲磁盘存储器
磁盘存储器是目前应用最广泛的外存储器。它存取速度较快,具有较大的存储容量,适用于调用较频繁的场合,往往作为主存的直接后援,为虚拟存储提供了物理基础。可分为软盘和硬盘。
◆光存储器
光盘存储器是利用激光束在记录表面存储信息,根据激光束的反射光来读出信息。按照它的记录原理可分为形变型、相变型(晶相结构)和磁光型。有CD、CD-ROM、WORM、EOD等。
CD-ROM:只读光盘,只能一次性写入数据,由生产厂家将数据写入,永远保存
CD-WO:可由用户写入一次,写入后不能修改或擦除,但是可以多次读出
CD-MO:可改写光盘,可以读出也可以写入数据;
光盘存储器的特点:
大容量、标准化、相容性、持久性、实用性
辅助存储器方面的计算:
1.存储容量为capacity=n*t*s*b,n为存放数据的总盘面数;t为每面的磁道数;s为每道的扇区数;b为每个扇区存储的字节数
2.寻道时间为磁头移动到目标磁道所需的时间。
3.等待时间为待读写的扇区旋转到磁头下方所用的时间。一般用磁道旋转一周所用的时
间的一半作为平均等待时间。
4.磁盘存取时间=寻道时间+等待时间。
5.位密度:沿磁道方向,单位长度存储二进制信息的个数;
6.道密度:沿磁盘半径方向,单位长度内磁道的数目;
7. 数据传输速率R=B/T,B为一个磁道上记录的字节数,T为每转一周的时间
8.磁带机的容量计算:(这些公式要熟悉记住)
数据传输率=磁带记录密度*带速;
数据块长度=字节数*块因子/记录密度+块间间隔;
读N条记录所需时间T=启停时间+有效时间+间隔时间;
RAID存储器(廉价磁盘冗余阵列):基本思想是用多个小的磁盘存储器,通过合理的分布数据,支持多个磁盘同时进行访问,从而改善磁盘存储器的性能。其采用的主要技术:
1. 分块技术:把数据分块写到阵列中的磁盘上;
2. 交叉技术:对分布式的数据采用交叉式进行读写,提高访问速度;
3. 重聚技术:对多个磁盘空间重新编址,数据按照编址后的空间存放;
主要特点如下:
1. 物理上多个磁盘,但操作系统看是一个逻辑磁盘;
2. 数据分布在磁盘阵列中的磁盘存储器上;
3. 采用冗余技术和校验技术提高可靠性,可恢复数据;
4. RAID速度快、容量大、功耗低、价格便宜、容易扩展。
RAID0:无冗余、无校验,具有最高的I/O性能和最高的磁盘空间利用率
RAID1:磁盘镜像、磁盘利用率50%,具有最高的安全性
RAID2:海明码纠错、数据分块、并行访问、适合大批量数据、已很少使用
RAID3:奇偶校验、数据分块、并行访问、单独校验盘
RAID4:奇偶校验、独立存取、单独校验盘、适合访问频繁、传输率低
RAID5:独立存取、无单独校验盘、适合访问频繁、传输率低
Cache存储器:(对系统和应用程序员都是透明的)(重点)
Cache位于主存储器与CPU通用寄存器组之间,全部由硬件来调度,用于提高CPU的数据I/O效率,对程序员和系统程序员都是透明的。Cache容量小但速度快,它在计算机的存储体系中是访问速度最快的层次。
使用Cache改善系统性能的依据是程序的局部性原理,即程序的地址访问流有很强的时序相关性,未来的访问模式与最近已发生的访问模式相似。根据这一局部性原理,把主存储器中访问概率最高的内容存放在Cache中,当CPU需要读取数据时就首先在Cache中查找是否有所需内容,如果有则直接从Cache中读取;若没有再从主存中读取该数据,然后同时送往CPU和Cache。
系统的平均存储周期t3与命中率h有很密切的关系,如下的公式:
t3=h×t1+(1-h)×t2
其中,t1表示Cache的周期时间,t2表示主存的周期时间。#p#
当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定数据是否已在Cache中,若命中则直接对Cache进行访问,否则直接进行主存访问。
Cache的地址映射是指把主存地址空间映射到Cache地址空间,Cache和主存都使用同样大小的块为单位。Cache中常见的映射方法有三种。
直接映射:一对一,(不需要替换算法)
全相联映射:多对多
组相联映射:将块划分成组,主存中的一组与Cache相对应,根据高位地址标志符来访问数据,组相联可以允许相同的Block和word标志,而tag标志不同。
随着程序的执行,访问频繁地区将逐渐迁移,Cache中的内容逐渐变得陈旧,访问命中率下降,就需要更新内容。常用的替换算法有三种。
随机淘汰法:
先进先出法FIFO:
近期最少使用法LRU:
对于这个算法可以从整体上把握,每个的优点、缺点,不需要记算法的过程。
另外,为了保证环存在Cache中得数据与主存中的内容一致,对写操作来说有以下几种方法:
写直达:同时
写回:
标记法#p#
虚拟存储器:(重点)(对应用程序员透明)
虚拟存储系统的作用是给程序员一个更大的虚拟的存储空间,其容量可远远超过主存储器的容量,而与辅助存储器容量相当。
我们提供给用户的这个存储器,即在软件编程上可以使用的存储器,就称为虚拟存储器。它的容量即虚拟存储空间,简称虚拟空间。面向虚拟存储器的编程地址称为虚拟地址,或称为逻辑地址。与主存和辅助存储器地址相对应。
为了实现虚拟存储器,需将虚拟存储空间与物理实存空间,按一定的格式分区组织管理,根据管理的方式不同可以分为三种虚拟存储器:页式、段式和段页式。
页式管理:
段式管理:
段页式管理:
此外还可以增加一个小容量的高速存储器实现一种快表查询,而快表和慢表也构成了两级存储器系统
另外,与Cache一样,虚拟存储器系统还需采用一定的调度策略实现主存内容的变换,使当前需要的程序和数据都在主存之中。常用的淘汰算法有:
FIFO算法:选择最先进入主存的页面淘汰
LRU算法:选择在最近一段时间内访问频率最低的页面淘汰
【相关专题】