计算机组成原理——2.2 存储系统
一、主存存储器与CPU的连接
单个存储芯片的容量可能不是很大,往往需要通过存储器芯片拓展技术,把多个芯片集成在一个内存条上,然后由多个内存条+主板上的ROM芯片,组成计算机所需要的主存空间。
内存条插槽就是存储器总线。内存条通过总线与主板相连,然后链接到CPU。
由于单个存储芯片的容量是有限的,在字数或者字长上与实际的存储器要求都有差距。因此,需要在字和位两个方面进行扩充。通常采用的方法如下:
- 位拓展法:使数据总线宽度=存储芯片宽度(数据总线)
- 字拓展法:拓展主存字数(地址总线)
- 字位同时拓展
1、位扩展
当 CPU的数据线数 与 存储芯片的数据位数 不相等时,就进行位扩展。(针对数据总线)
用多个存储芯片扩充存储字长
举个栗子:
有一个
8k*1位
的芯片,8k对应了2的13次方所以需要13根地址线表示地址,将其和CPU连接起来
假设现在数据总线有8位,那我们就可以链接八个这样的芯片
每传进来一个八位的数据,就由这八块芯片,分别存储这八位数据的其中一位。
由上可知,地址总线、读写控制信号线(WE)、片选信号(CS),由这八个芯片共同使用。
2、字扩展法
当CPU的地址线数与存储芯片的地址位数不相等时,就进行字扩展。(针对数据总线)
该方法把多出来的地址引脚接到译码器上,用译码器区分不同的片选信号,由这些片选信号来启动不同的存储芯片。
地址总线(部分)、数据总线、读写控制信号线(WE)由这些芯片共同使用。片选信号(CS)接上译码器使用
3、字位同时扩展
有了前面的理解,我们直接上原理图
16k的存储,对应2的14次方。所以需要使用14条线来表示。
采用字位同时扩展时,各个芯片连接地址线的方式相同
但连接数据线的方式不同。且片选信号需要连接译码器。
二、存储芯片的地址分配和片选
CPU选择存储芯片的操作叫做片选。
选中后,为选中的芯片按照地址码,选择相应的存储单元,用来存储数据。这个操作叫做字选。
片内的字选,通常是由CPU送出的N条低位地址线完成的。
地址线直接连到所有存储芯片的地址输入端
N由片内存储容量$ 2^{N} $决定。
片选信号的产生分为线选法,译码片选法
1、线选法
使用专门的地址线直接链接(或者加个反相器),接到存储芯片上。
- 由于是直接链接到存储芯片,当专用的地址线,**有两个及以上的片选信号发出时,会造成访问冲突。
- 举个栗子,比如只有两个存储芯片,线选法就只能在专门的地址线,比如最高位两位,选择控制芯片.
- 如果此时最高位同时为00,或者11,就会导致访问数据出现问题
- 而且会导致存储地址不连续。00xxxxxx和11xxxxxx的地址就是不可用的,可以看出有一定的局限性
2、译码片选法
就是使用译码器,用来产生片选信号。可以通俗的理解为,把8421码转成单独的一个个片选输出
虽然在连接过程中,需要接入译码器芯片,但是n条线可以产生$ 2^{n} $个片选信号,二千地址空间连续,实用性更高
三、外存储器
磁表面存储器,是指把某些磁性材料薄薄地涂在铝或者塑料表面上,作为记忆载体,一次存储信息。磁盘、磁带、磁鼓存储器都是磁表面存储器
1、磁盘存储器
磁盘存储器的优点:
-
存储容量大,位价格低。相同价位下,机械硬盘的存储容量会比固态硬盘的大
-
存储介质可以重复使用
-
记录信息可以长期保存而不丢失,可以脱机存档
-
非破坏性读出,读出时不需要再生
缺点:
- 存取速度慢
- 机械结构比较复杂
- 对工作环境要求比较高(容易受到强磁场的干扰)
1. 磁盘设备的组成
由磁盘驱动器,磁盘控制器和盘片组成
- 磁盘驱动器的核心部件是磁头和盘片。温彻斯特盘是一种可移动磁头,固定盘片的存储器
- 磁盘控制器,硬盘和主机的接口,常见的有IDE、SCSI、SATA
-
存储区
- 一块硬盘有很多个盘片,也就是记录面,每个记录面划分为若干个磁道,每条磁道划分为若干个扇区(也称为块)。扇区是磁盘读写的最小单位。磁盘按照块来存取。
-
磁头数-Heads:也就是记录面数,表示硬盘一共有多少个磁头。磁头用来读取、写入盘片的信息,一个记录面对应一个磁头
-
柱面数-Cylinder:表示硬盘的每个盘片上有多少个磁道。这个名词可以理解为,有一叠盘片,这些盘片上,相同位置(编号)的磁道们构成一个圆柱的面
说柱面号的时候,就是指明某一条磁道
-
扇区数-Sectors:表示每个磁道有多少个扇区[1]。
2. 磁盘存储原理
- 原理:磁头和磁性介质相对运动的时候,通过电磁转换完成读写操作
- 编码方法:按照某种方案或者规律,把一连串的二进制信息变成存储介质上磁层中(磁层翻转状态)的序列,并让读写控制电路更容易、可靠地实现转换
- 磁记录方式:通常采用调频方式(FM)和改进型调频(MFM)的记录方式
3. 磁盘的性能指标
-
记录的密度
是指盘片上,单位面积内记录的信息量。通常用道密度、位密度和面密度表示。
-
道密度:沿磁盘半径方向,单位长度上的磁道数
-
位密度:磁道单位长度上,能记录的二进制代码位数
-
面密度:位密度 x 道密度
-
补充:
-
位密度:
越内侧的磁道位密度越大。越靠外越小
所以一个磁盘的存储性能受到最靠内侧磁道的制约
不难理解,因为在最短的一个扇区内的存储上限很低
-
所以:磁盘所有磁道记录的信息量一定是相等的。并不是圆圈越大信息量越多。所以每个磁道的位密度都不相同(外圈长度更长)
-
-
-
磁盘的容量
-
非格式化容量
磁记录表面可利用的磁化单元总数,由道密度和位密度计算来的
(磁盘在物理上总共可以存储多少的数据)
-
格式化容量
按照某种特定的记录格式,能够存储的信息总量
(会留出一部分空间用作其他用途。比如为了防止个别扇区损坏,影响整个磁盘的正常工作,会留出一部分备用扇区等等)
非格式化空间大小 > 格式化容量
-
-
平均存取时间
由:
寻道时间(磁头移动到对应的磁道,花费的时间)
旋转延迟时间(磁头找到要读取的扇区,花费的时间)
传输时间(传输数据花费的时间)
三个部分相加而成。
也就是,先找到磁道,再2找到对应的扇区位置,然后再写数据。
由于寻道和找扇区的距离远近不一,所以寻道时间通常取平均值,旋转延迟时间可以取转半圈花费的时间。
因为我们要读取的扇区,在任何一个位置的概率都是相等的。按照概率计算数学期望的思想,平均来看,尧都区的扇区转到磁头臂的下方,其期望值接近转半圈的时间。
补充:计算机发出读写命令也需要花时间,也就是磁盘控制器的延迟花费的时间
-
数据传输率
磁盘存储器在单位时间内,向主机传送数据的字节数。
假设磁盘专属为 r转/秒,每条磁道的容量为 N字节,数据传输率计算方式如下(理论最大值):
$$
D_r = rN
$$
4. 磁盘地址
主机会向磁盘控制器发出一个寻址的信息。磁盘的地址一般如下表分布:
驱动器号 | 柱面(磁道)号 | 盘面号 | 扇区号 |
---|---|---|---|
一台电脑可以有多个磁盘 | 移动磁头臂来寻道 | 激活某个磁头 | 通过旋转,将特定扇区划过磁头下方 |
假设系统有
- 4个驱动器,每个驱动器带1个磁盘
- 每个磁盘有256个磁道、16个盘面
- 每个盘面分为16个扇区
则每个扇区地址要18位数据表示
驱动器号 | 柱面(磁道)号 | 盘面号 | 扇区号 |
---|---|---|---|
占2位 | 占8位 | 占4位 | 占4位 |
5. 硬盘的工作过程
硬盘主要操作为寻址、读盘、写盘。每个操作都对应一个控制字(控制命令)
硬盘工作的时候,先取控制字,再执行控制字
机械硬盘是机械式的部件,读写操作都是串行的,不能在同一个时刻又读又写,也不能在用一时刻读两组数据或写两组数据。
2、磁盘阵列
RAID(Redundant Array of Inexpensive Disks。 廉价磁盘冗余阵列 ):指将多个独立的物理磁盘组成一个独立的逻辑盘。数据在多个物理盘上分割交叉存储、并行访问。具有更好的存储性能、可靠性、安全性。
- RAID0:无冗余和无校验的磁盘阵列
- RAID1:镜像磁盘阵列
- RAID2:采用纠错的汉明码的磁盘阵列
- RAID3:位交叉奇偶校验的磁盘阵列
- RAID4:块交叉奇偶校验的磁盘阵列
- RAID5:无独立校验的奇偶校验磁盘阵列
- RAID后面带的数字越大,冗余信息越少,可靠性越高
1、RAID0:无冗余和无校验的磁盘阵列
逻辑上相邻的两个甚至多个扇区,在物理上存到两个或多个磁盘(类比上一篇介绍的低位交叉编址的多体存储器)
也就是说,逻辑上相邻的数据块,把它们依次、分散存在物理上多个磁盘内。
看得出来,RAID0存储方式没有冗余的信息,也没有校验的功能[1]
2、RAID1:镜像磁盘阵列
就是存两份一样的数据
虽然数据出问题的时候,可以通过比对信息,来恢复数据。但是冗余了一半的存储空间,确实有点太粗暴了,也不能并行访问
3、采用纠错的汉明码的磁盘阵列
这里每个盘的每块颜色存的不是一块数据,而是一个bit。逻辑上连续的几个bit在物理上分散存储在各个盘中。
而且,4 bit数据+3 bit汉明码,可以纠正一位错误信息。
后面几种偷懒不写🐶 ,感兴趣可以看RAID百度百科了解更多
3、光盘存储器
用光学原理存储信息的装置。用聚焦光束对介质存信息
特点:
- 存储密度高
- 携带方便
- 成本低、容量大
- 存储时间长,更好保存
- ……
蓝光波长较短,接近紫光,存储数据的话,信息密度更高。必入蓝光光盘
光盘类型如下:
- CD-ROM:只读光盘,无法写入数据
- CD-R:只能写进去一次信息,之后不可修改
- CD-RW:可重复读写光盘
- DVD-ROM:高容量的CD-ROM。DVD表示通用数字化多功能的光盘
4、固态硬盘SSD
是一种基于闪存技术的存储器,是一种ROM。它与U盘没有本质的区别,就是容量更大,存储性能更好。
一个SSD由一个或多个闪存芯片和闪存翻译层组成。闪存芯片替代传统旋转磁盘的机械驱动器。闪存翻译层相当于磁盘控制器的角色。