存储系统
存储器是用来存储数据和指令等的记忆部件
为了解决存储容量、成本和速度之间的矛盾,计算机通常采用分级存储体系。
存储器
将不同特点的存储器通过适当的硬件、软件有机地组和在一起形成计算机存储体系结构
作用:写入和读出计算机工作需要的信息(输入设备将程序和数据写入主存,CPU取指令,CPU执行指令期间读取数据,CPU写回运算结果,输出设备输出结果)
内存
内存也称为主存,设在主机内或主板上,用来存放机器当前运行所需的临时程序和数据,方便向CPU提供信息。特点是:容量小、速度快。内存的性能直接影响电脑的运行速度
按工作原理划分,内存分为ROM、RAM、Cache
只读存储器ROM
ROM常用于存储各种固定程序和数据,如BIOS ROM,这些信息只能读出,不能写入,即使机器断电数据也不会丢失。
随机存储器RAM
日常中说的内存叫做RAM,RAM既可以从中读取数据,也可以写入数据。当机器断电时,存储的数据便会丢失。内存条(SIMM)就是将RAM集成块集中在一起的一小块电路板。RAM分为DRAM和SRAM。
DRAM(动态随机存储器):存储单元是由电容和相关元件做成的。电容存在漏电现象,电荷不足会导致存储单元数据出错,所以DRAM需要周期性刷新,以保持电荷状态。DRAM结构简单,单位体积内容量高成本低,但是访问速度慢,耗电大,相应的SRAM结构复杂,成本高等。
SRAM(静态随机存储器):存储单元是由晶体管和相关元件做成的锁存器它速度快且不需要刷新操作,但集成度差和功耗较大。
高速缓存Cache
缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。
高速缓存(Cache)用来存放当前最活跃的程序和数据,它是位于CPU与内存之间,相当于信息中转站。Cache是一种容量较小但读写速度更快的存储器,容量一般是几千字节到几兆字节,速度一般比主存快5~10倍,由快速半导体存储器构成。一般采用SRAM
CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
Cache的组成部分是控制部分和存储器部分。存储器部分用来存放主存的部分拷贝信息;控制部分判断CPU要访问的信息是否在Cache存储器中,若在,即为命中。
Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要是集成在CPU内部,而L2Cache集成在主板上或是CPU上。
地址映像
在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读写信息,这就需要将主存地址转换为Cache存储器的地址。
地址映像的方式:直接映像、全相联映像、组相联映像
(1)直接映像:主存中的一块只能映像到Cache的一个特定的块中
(2)全相联:主存的任意一块可以映像到Cache的任意一块中
(3)组组联:各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间可以任意存放。
替换算法
替换算法目的是使Cache尽可能提高命中率。常用算法:随机替换算法、先进先出算法、近期最少使用算法、优化替换算法
性能分析
命中率是Cache的一个重要指标。容量越大,命中率越高。
外存
外存也称为辅存,如磁盘、光盘和固态硬盘,用来存放当前不参加运行的程序和数据,而在需要的时候调入内存。CPU不能直接访问外存中的程序和数据,只有将其以文件为单位调入主存才可以访问。
像操作系统、游戏软件等一般安装在外存上。
按存储器材料分类:磁存储器、半导体存储器、光存储器
磁盘存储器
磁盘存取速度较快,具有较大的存储容量,是目前广泛使用的外存储器。
磁盘分为硬盘和软盘,硬盘包括电脑的系统盘(C盘)和扩展盘(D、E等盘)。
磁盘缓存:把从磁盘中读取到的数据保存到内存中,保存到内存中的这块数据其实就是缓存,下次读取该数据大的时候不会再从磁盘中去读取,而是直接从内存中读取
磁盘存储器由盘片、驱动器、控制器和接口组成。
盘片:存储信息
驱动器:驱动磁头沿盘面径向运动以寻找目标磁盘磁道位置,驱动磁盘以额定速率稳定旋转。控制数据的读写。
控制器:接受主机发来的命令,转化成驱动器的控制命令,控制驱动器的读写。
接口:主机和磁盘存储器之间的连接逻辑
光盘存储器
采用聚焦激光束在盘式介质上非接触地记录高密度信息的新型存储装置,根据性能和用途,分为只读型光盘、只写一次型光盘和可擦除型光盘。
固态硬盘
固态硬盘(SSD)的存储介质分别是采用闪存作为存储介质和采用DRAM作为存储介质。和传统机械硬盘相比,SSD读写快速、质量轻、能耗低、体积小。
SSD内部结构:主控芯片、闪存芯片、固件算法
(1)主控芯片:是固态硬盘的大脑。能够合理调配数据在各个闪存芯片上的负荷;能够承担数据中转作用,连接 闪存芯片和外部SATA接口;负责固态硬盘内部各项指令的完成。一款主控芯片的好坏直接决定了固态硬盘的实 际体验和使用寿命。
(2)固件算法:SSD固件是确保SSD性能的非常重要的一部分,主要用于驱动控制器。固件冗余存储至NAND闪 存中,主控使用固件算法中的控制程序,去执行自动信号处理,耗损平衡,错误校正码(ECC),坏块管理、垃圾 回收算法、与主机设备(如电脑)通信,以及执行数据加密等任务。
(3)闪存芯片
NAND闪存是一种非易失性存储技术,即断电后仍能保存数据,而NADA闪存颗粒就是存储数据的颗粒。
NAND闪存分类(根据电子单元密度大小划分):SLC(单层次存储单元)、MLC(双层存储单元)、TLC(三层 存储单元)以及QLC(四阶存储单元)。
通过对闪存内最小的物理存储单元的电位划分不同的阶数,可以在一个存储单元内存储一至多个二进制位数。 即SLC一个单元只有两种状态(0或1)储存一位信息;MLC中一个单元有四种状态(00/01/10/11)储存两位信 息。每个存储单元存储的二进制位数越多,寿命越短。(电压阈值较低可靠性差)
理论上SLC好于MLC,而MLC又好于TLC,而即将出炉的QLC,则是比TLC成本更低,寿命更短
关联存储器
关联存储器是一种按内容访问的存储器。
原理:把数据或数据中的某一部分作为关键字,按顺序写入信息,读出时并行地将该关键字与存储器中的每一单元进行比较,找出存储器中所有与关键字相同的数据字。
例如,存储器中存放学生信息,如果选学号作为关键字,就用所给的学号作为地址来访问存储器
相联存储器由存储体、检索寄存器、屏蔽寄存器、符合寄存器、比较线路、代码寄存器、控制线路等组成
(1)检索寄存器:用来存放检索字
(2)屏蔽寄存器:用来存放屏蔽码
(3)符合寄存器:用来存放按检索项内容检索存储体中与之符合的单元地址
(4)比较线路:把检索项和从存储体中读出的所有单元内容的相应位进行比较
(5)代码寄存器:用来存放存储体中读出的代码,或者存放向存储体中写入的代码.
(6)存储体:通常用双极型半导体存储器构成,以求快速存取。
虚拟存储器
虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。
随着计算机系统软件和应用软件的功能不断增强,某些程序却需要很大的内存才能运行,但是计算机本身的物理内存容量比较小。(如果内存空间不够,如何运行大内存程序呢?)而且在多用户多任务系统中,多用户或多个任务共享全部主存,要求同时执行多道程序。这些同时运行的程序到底占用实际内存中的哪一部分,在编制程序时是无法确定的,必须等到程序运行时才动态分配。
机制:虚拟内存技术是把很大的程序分成许多较小的块,全部存储在辅存中。运行时把要用的程序块先调入主存,并马上把需要的程序块从主存调入高速缓存。这样就可以一边运行程序,一边进行程序块的调进和调出。从效果上来看,好像为用户提供了一个存储容量比实际主存大得多的存储器,用户无需考虑所编程序在主存中是否放得下或放在什么位置等问题。称这种存储器为虚拟存储器。
在运行大内存程序时,虚拟内存通过特定技术把磁盘中的一部分容量作为内存来使用,然后在真正的内存中也存放部分这个程序的数据,在运行这个程序的时候,如果所需要的数据没有在内存中,而是在磁盘中的虚拟内存中,那么就会发生数据交换,把虚拟内存中需要现在用到的数据与内存中这段程序暂时不用的数据进行交换,以此来保证程序的正常运行。
虚拟存储体系由主存储器和辅存(在线磁盘存储器等)两级存储器构成
虚拟存储器管理方式:页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器