Bootstrap

存储系统(计组)

一、存储系统基本概念

        在计算机组成原理的第一章我们说过,由存储器、运算器和控制器组成主机,第二章主要讲的是运算器与控制器是如何配合CPU中的各种寄存器完成二进制数的算术运算的。那么第三章存储系统主要讲的就是存储器是如何在计算机中形成一个存储体系的。

        1.1存储系统的层次结构

        神说要有主存,于是便有了主存,但是由于组成主存的元件特性限制,主存的数据传输效率不会很高,但是CPU运行速度是很快的。那么为了解决CPU与主存之间的速度矛盾,于是便有了Cache,Cache是一种高速存储器,他可以介于主存和CPU之间,来降低这个矛盾,但是CPU的运算过程中,还需要一些存储器来辅助CPU完成运算过程,这个存储器就是ACC、MQ等寄存器,所以寄存器是介于CPU与Cache之间的。

        CPU可以直接与Cache进行数据交换,也可以直接与主存进行数据交换,而Cache与主存之间也可以直接进行数据交换,这个过程是由硬件自主完成的。但无论是Cache、主存还是寄存器,他们的电路设计过于复杂,集成度不会特别高,就导致他们无论如何都满足不了现代计算机所需要的存储容量,于是便出现了辅存,所以辅存是为了解决主存存储容量不够的问题,辅存的容量很大,比如磁盘、光盘等都是辅存,辅存的存储容量虽然大,但是他们的电路设计简单,造价低,这也导致了辅存功能性差,不能与CPU直接进行数据交换,只能与主存直接进行数据交换,而这个交换过程就是我们操作系统中所讲的作业调度变为进程,这个知识在操作系统中讲到,那么显然这个过程是由操作系统完成的。这样一来由计算机的存储系统便层次分明,各层互相配合着工作。

        1.2存储器的分类

        存储器可以通过材料来划分:主存和Cache由半导体材料组成,内存条和Cache中的MOS管就是半导体材料;磁盘和磁带这种外存由磁性材料组成;光盘由光性材料组成。存储器还可以通过存取方式进行分类:首先是随机存取存储器(RAM),这种存储器给出任意一个逻辑地址,CPU可以直接找到对应的物理地址,存取时间与其本身的物理位置无关;顺序存取存储器(SAM),这种存储器是根据存储的物理地址来顺序的访问存储的内容,比如磁带,只有当磁带旋转到某个位置时才能访问该位置存储的内容;直接存取存储器(DAM),这种存储器即有随机存取的特性,又有顺序存取的特性,比如机械硬盘,机械硬盘的磁头可以移动到任意位置这就有了随机的特性,而机械硬盘的盘块又可以旋转,这就有了顺序的特性。以上三种存储器都是给出一个地址,根据地址来找到对应的数据信息,但是有一种存储器叫做相联存储器,这种存储器是直接根据内容来检索存储位置进行读写操作,快表就是相联存储器。

        存储器还可以通过写入信息的可更改性来划分,比如光盘,一但写入就无法更改,而磁盘、内存、Cache等就可以更改,最后是根据断电能否保存信息来划分:内存和Cache断电后信息会丢失,而磁盘和固态硬盘断电后信息不会丢失。

        1.3存储系统的指标

        1.存储容量:表示形式为512K×32位这种形式,512K为存储字数,32位为存储字长。该知识点通常与Cache的容量与内存的转换关系以及字位扩展来联合考察。

        2.单位成本:总成本/总容量,该知识点我还没见到对应题目,考的较少。

        3.存储速度:存储字长/存储周期,该知识点重点是存储周期的概念,存储周期分为存取时间和恢复时间,恢复的过程也是刷新的过程,在后面我们会讲到。

二、存储器的基本组成

        2.1DRAM芯片基本组成

         该图为内存条的电路基本组成,也是DRAM芯片的基本组成,图中右侧中的一个基本元件是由一个电容接地,然后一个MOS管一端连着电容一端连着数据线来形成一个基本元件,在数电中MOS管其实就是一个高电平打通,低电平不通的一个半导体元件,而电容中就可以存放高电平或者低电平的电荷。图中红色的线是地址线(这里为了方便我直接说地址线,但是这个地址线和地址总线不同),地址线可以通过译码器传送的电流来打通MOS管;绿色的线是数据线,当某一行的MOS管被打通后,电容中的电荷会通过MOS管进入数据线,通过数据总线来传送数据。图中译码器的功能就是通过地址总线传来的地址来判断此时应该接通哪根地址线来打通MOS管。

        以上是内存条中单个芯片的工作原理,但是众所周知,一个内存条包含多个DRAM芯片,那么我们如何去选择此时到底是要使用哪个芯片呢?这就涉及到了片选线的功能(如果头上有一横就代表低电平有效),那么每个芯片都有一根片选线连接着控制电路,图中是低电平有效,所以控制电路一开始会将所有片选线都连接高电平信号,当我们要读取某个芯片的数据时,控制电路会对相应芯片的片选线连接一个低电平信号来打通该芯片,这样我们就可以读写该芯片中的内容,不用我说,读写自然也是需要占用一根线的。

        这样一来,内存条的整体工作原理便理清了,芯片是通过引脚来与内存条相连接的,而我们刚才所说的所有的线都需要占用一个引脚,题中经常考察的点就包括让你计算一个芯片的引脚数目,引脚数目=地址总线数+数据总线数+片选线+读写控制线(不过片选线这里可能会存在一些问题,在DRAM的地址线复用技术中,片选线似乎被行选通线和列选通线所代替,在真题中我也没见过要计算芯片的总引脚数所以也没法证实,真题中通常是求地址线数和数据线数)。

        2.2寻址

        这里直接举例说明,假如一个内存共有16个地址,那么也就是说共有2^4个地址,那么就需要4根地址总线也就是4位比特的数据来表达这16个地址,DRAM地址线复用技术中,地址总线数量还可以减半。

        2.3DRAM芯片的地址线复用技术

        在前面的图示中我们发现,所有的地址线都连在一个译码器上,图中的地址为3位,可以表示8个地址,而现代计算机的地址通常都是32位和64位,那么可以表示的地址就是很大的一个量级,那么此时将这么多的地址线都连接在一个译码器上,显然是不太现实的,那么我们就需要将一个32位的地址拆分成前16位和后16位,那么如果此时我们有两个译码器,分别传输这16位地址的话,就可以大大降低一个译码器所连接的地址线数量,如图。        

;