按在计算机系统中的作用不同,存储器主要分为主存储器、辅助存储器、缓冲存储器
存储器主要有三个性能指标:速度、容量和每位价格。
如图,越上层的存储器容量越小,速度越快,价格越贵。
最上层的寄存器通常都制作在CPU芯片内,寄存器中的数直接在CPU内部参与运算;
主存用来存放将要参与运行的程序和数据,其速度与CPU差距较大,因此为了使它们之间速度更好的匹配,在主存与CPU之间插入了一种速度比主存更快、容量更小的高速缓冲存储器Cache,现代计算机将Cache也制作在CPU内;
磁盘、磁带属于辅助存储器,大都用来存放暂时未用到的程序和数据文件,CPU不能直接访问辅存,辅存只能与主存交换信息。
缓存-主存层次主要解决CPU和主存速度不匹配的问题,其间的数据调动是由硬件自动完成的;
主存-辅存主要解决存储系统的容量问题,其间的数据调动是由硬件和操作系统共同完成的。
根据MAR(内存地址寄存器)中的地址访问某个存储单元后,还需要经过地址译码、驱动等电路才能找到所需访问的单元;读出时,需经过读出放大器,才能将被选中单元的存储字送到MDR,写入时,MDR中的数据也必须经过写入电路才能真正写入到被选中的单元中,主存的实际结构如下图:
现代计算机的主存都由半导体集成电路构成,图中的驱动器、译码器和读写电路均制作在存储芯片中,而MAR和MDR制作在CPU芯片内;
当要从主存中读出某一信息字节时,首先由CPU将该字的地址送到MAR,经地址总线送至主存,然后发出读命令,主存接到读命令后,将该地址单元的内容读出,再将其由数据总线送至MDR。
半导体存储芯片采用超大规模集成电路制造工艺,在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路等;半导体存储芯片的译码驱动方式有两种,线选法和重合法;
译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,即找到地址指出的数据单元,该信号在读/写电路的配合下完成对被选中单元的读/写操作;
读/写电路包括读出放大器和写入电路,用来完成读/写操作;
随机存取存储器按其存储信息的原理不同,可分为静态RAM和动态RAM两大类
静态RAM:
存储器中用于寄存0或1代码的电路称为存储器的基本单元电路;
静态RAM是用触发器工作原理存储信息,因此即使信息读出后,它仍保持其原状态,不需要再生,但电源掉电时,原存信息丢失,故它属于易失性半导体存储器。
动态RAM:
常见的动态RAM基本单元电路有三管式和单管式两种,其特点是靠电容存储电荷的原理来寄存信息。若电容上存有足够多的电荷表示存1,电容上无电荷表示存0,。电容上的电荷一般只能维持1~2ms,因此必须在2ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新。由于动态RAM与静态RAM相比具有集成度更高、功能更低等特点,目前被各类计算机广泛使用。
ROM的原始定义是一旦注入信息即不能改变,但随着用户的需要,有时不得不任意修改ROM内的信息,因此出现了PROM、EPROM、EEPROM等。
由于单片存储芯片的容量总是有限的,很难满足实际的需要,因此可将若干存储芯片连在一起组成足够容量的存储器,这种方式称为存储容量的扩展,通常有位扩展和字扩展。
存储芯片与CPU芯片相连时,需要注意片与片之间的地址线、数据线和控制线的连接。
单体多字系统:由于程序和数据在存储体内是连续存放的,因此CPU访存取出的信息也是连续的,如果可以在一个存取周期内,从同一地址取出4条指令,然后再逐条将指令送至CPU执行,即每隔1/4存取周期,主存向CPU送一条指令,这样显然增大了存储器的带宽,提高了单体存储器的工作速度;
多体并行系统:多体并行系统就是采用多体模块组成的存储器,每个模块有相同的容量和存取速度,有独立的地址寄存器和数据寄存器、地址译码、驱动电路和读写电路,既能并行工作也能交叉工作;
在多体并行存储系统中,由于I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,致使CPU空等一段时间,从而降低了CPU的工作效率,为了避免CPU与I/O设备争抢访存,可在CPU与主存之间加一级缓存,这样主存可将CPU要取得信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等;
通过大量典型程序的分析,发现CPU从主存取指令或是数据,在一定时间内只是对主存局部地址区域的访问,因为指令和数据在主存内都是连续存放的,并且有些指令和数据往往会被多次调用,根据这一现象,只要将CPU近期要用到的程序和数据提前从主存送到Cache,那么就可以做到CPU在一段时间内只访问Cache;
在主存与片内缓存之间再增加一级缓存,称为片外缓存或二级缓存
与主存相比,辅存具有容量大、速度慢、价格低、可脱机保存信息等特点,属于非易失性特点;
写入数据时,记录介质在磁头下方匀速通过,根据写入代码的要求,对写入线圈输入一定方向和大小的电流,使磁头导磁体磁化,产生一定方向和强度的磁场,由于磁头和磁表面间距非常小,磁力线直接穿透磁层表面,将对应磁头下方的微小区域磁化,可以根据写入驱动电流的不同方向,使磁表面被磁化的极性方向不同,以区别记录0或1;
读出时,记录介质在磁头下方匀速通过,磁头相对于一个个被读出的磁化单元作切割磁力线的运动,从而在磁头读线圈中产生感应电势e,其方向正好和磁通的变化方向相反,感应电势方向不同,便可读出1或0两种不同信息;