4.2主存储器
4.2.0 回顾一下chapter 1中有关主存储器的相关知识
主存储器:
主存储器(简称主存或者内存)包括存储体M、各种逻辑部件及控制电路等。
存储体由许多存储单元组成,每个存储单元又包含若干个存储元件(或存储基元,存储元),每个存储元件能寄存一位二进制代码“0”或1”。咱们说的“位”。
一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长。存储字长可以是8位,16位,32位等。 赋予每个存储单元一个编号 ,称为存储单元的地址号。
一个存储字(一个存储单元的二进制代码)可以代表很多意思,不仅仅是16个二进制数本身,具体代表什么,按照输出的格式。如存储字为0011011001111101 既可表示为由十六进制字符组成的367DH,又可代表16位的二进制数,此值对应十进制数为13949,还可代表两个ASCII 码:“{"和“6”一个存储字还可代表一条指令.
主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写人)、取(读出)。
这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)。
为了能实现按地址访问的方式,主存中还必须配置两个寄存器MAR和MDR。
MAR(Memory Address Register) 是存储器地址寄存器,用来存放欲访问的 存储单元的地址,其位数对应存储单元的个数 (如 MAR为10位,则有2^10=1024个存储单元,记为1 K)。
MDR(Memory Data Reg-ister)是存储器数据寄存器。用来存放从存储体某单元取出的代码或者准备在某存储单元存入的代码,其位数与存储字长相等。(一个储存单元的储存字长)
4.2.1 概述
主存储器(简称主存)的基本结构已在第1章介绍过,如上图所示。实际上,根据MAR中的地址访向某个存储单元时,还需经过地址译码、驱动等电路,オ能找到所需访问的单元。读出时,需经过读出放大器,才能将被选中单元的存储字送到MDR。写入时,MDR中的数据也必须经过写入电路才能真正写入到被选中的单元中。可见,主存的实际结构如图4.4所示。
现代计算机的主存都由半导体集成电路构成,图中的驱动器、译码器和读写电路均制作在存储芯片中,而MAR和MDR制作在CPU芯片内。存储片和CPU芯片可通过总线连接,如图4.5所示。
当要从存储器读出某一信息字时,首先由CPU将该字的地址送到MAR,经地址总线送至主存,然后发出读命令。主存接到读命令后,得知需将该地址单元的内容读出,便完成读操作,将该单元的内容读至数据总线上,至于该信号由MDR送至什么地方,这已不是主存的任务,而是由CPU决定的。若要向主存存入ー个信息字时,首先CPU将该字所在主存单元的地址经MAR送到地址总线,并将信息字送入MDR,然后向主存发出写命令,主存接到写命令后,便将数据线上的信息写入到对应地址线指出的主存单元中。
1.主存中存储单元地址的分配
主存各存储单元的空间位置是由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储字。不同的机器存储字长也不同,为了满足字符处理的需要,常用8位二进制数表示一个字节。因此存储字长都取8的倍数。通常计算机系统既可按照字寻址,也可按字节寻址。
例如IBM370机的字长为32位,它可按照字节寻址,即它的每一个存储字包含4个可独立寻址的字节,其地址分配如图4.6(a)所示。字地址是用该字高位字节的地址来表示,故其字地址是4的整数倍,正好用地址码的末两位来区分同一字的4个字节的位置。但对PDP-11机而言,其字长为16位,字地址是2的整数倍,它用低位字节的地址来表示字地址,如图4.6(b)所示。
由图4.6(a)所示,对24位地址线的主存而言,按字节寻址的范围是16M,按字寻址的范围为4M。由图4.6(b)所示,对24位地址线而言,按字节寻址的范围仍为16M,但按字寻址的范围为8M。
2.主要的技术指标
主存的主要技术指标是指存储容量和存储速度。
(1)存储容量
存储容量是指主存能存放二进制代码的总位数,即
存储容量=存储单元个数x存储字长
它的容量也可用字节总数来表示,即
存储容量=存储单元个数x存储字长/8
目前的计算机存储容量大多以字节数来表示,例如,某机主存的存储容量为256MB,则按字节寻址的地址线位数应对应28位。
计算参考第一章节:
(2)存储速度
存储速度是由存取时间和存取周期来表示的。
存取时间又称为存储器的访问时间( Memory Access Time),是指启动一次存器操作(读或写)到完成该操作所需的全部时间。存取时回分读出时和写人时间两种。读出时间是从存储器接收到有效地址开始,到产生有效输出所的全部时间。写人时间是从存储器接收到有效地址开始,到数据写人被选中单元为止所需的全部时间
存取周期( Memory Cycle Time)是指存储器进行连续两次独立的存储器操作(如连续两次读操作)所需的最小间隔时间,通常存取周期大于存取时间。现代MOS型存器的存取周期可达100ns;双极型TT.存储器的存取周期接近于10ns
(3)存储器带宽
与存取周期密切相关的指标为存储器带宽,它表示单位时间内存储器存取的信息量,单位可用字/秒或字节/秒或位/秒表示。如存取周期为500ns,每个存取周期可访问16位,则它的带宽为32M位/秒。带宽是衡量数据传输率的重要技术指标。
存储器的带宽决定了以存储器为中心的机器获得信息的传输速度,它是改善机器瓶颈的一个关键因素。为了提高存儲器的带宽,可以采用以下措施:
①缩短存取周期。
②增加存储字长,使每个存取周期可读/写更多的二进制位数
③増加存储体(详见4.2.7节)
4.2.2 半导体存储芯片简介
1.半导体存储芯片的基本结构
半导体存储芯片采用超大规模集成电路制造工艺,在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路等,如图4.7所示。
译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写电路的配合下完成对被选中单元的读/写操作。
读/写电路包括读出放大器和写入电路,用来完成读/写操作。
存储芯片通过地址总线、数場总线和控制总线与外部连接。
地址线是单向输入的,其位数与芯片容量有关。
数据线是双向的(有的芯片可用成对出现的数据线分别作为输入或输出),其位数与芯片可读出或写入的数据位数有关。数据线的位数与芯片容量有关。
地址线和数据线的位数共同反映存储芯片的容量。例如,地址线为10根,数线为4根,则片容量为2^10x4=4K位;又如地址线为14根,数据线为1根,则其容量为16K位。
控制线主要有读/写控制线与片选线两种。不同存储芯片的读/写控制线和片选线可以不同。有的芯片的读/写控制线共用1根(如214),有的分用两根(如6264);有的芯片的片选线用1根(如2114),有的用2根(如6264)。读/写控制线决定芯片进行读/写操作,片选线用来选择存储芯片。由于半导体存储器是由许多芯片组成的,为此需用片选信号来确定哪个芯片被选中。例如,一个64Kx8位的存储器可由32片16Kx1位的存储芯片组成,如图4.8所示。但每次读出一个存储字时,只需选中8片。
2.半导体存储芯片的译码驱动方式:
半导体存储芯片的译码驱动方式有两种:线选法和重合法,如图4.9和图4.10所示。
图4.9是一个16x1字节(8位)线选法存储芯片的结构示意图。它的特点是用一根字选择线(字线),直接选中一个存储单元的各位(如一个字节)。这种方式结构较简单,但只适于容量不大的存储芯片。如当地址线A3A2A1A0为1111时,则第15根字线被选中,对应图4.9中的最后一行8位代码便可直接读出或写入。但是对应于地址线多的设备来说,比如有20根地址线,那么意味着有2^20的输出线连接对应多的储存单元,这样对于芯片来说,集成度需要非常高,这样对芯片制作来说困难是很大的,就是即使做出来了,也需要很昂贵的成本。
所以咱们推出了下面一种方法:
重合法
图4.10是一个1Kx1位重合法结构示意图。 显然,只要用64根选择线(X、Y两个方向各32根),便可选择32×32矩阵中的任一位。例如,当地址线为全0时,译码输出X和Y。有效矩阵中第0行、第0列共同选中的那位即被选中。由于被选单元是由X、Y两个方向的地址决定
的,故称为重合法。重合法大大降低了集成化,这样使制造高水平存储器成为了可能。