本文主要是介绍计算机组成原理 第三章(存储器)—第二节(主存储器(上)),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在前面:
- 本系列笔记主要以《计算机组成原理(唐朔飞)》为参考,大部分内容出于此书,笔者的工作主要是挑其重点展示,另外配合下方视频链接的教程展开思路,在笔记中一些比较难懂的地方加以自己的一点点理解(重点基本都会有标注,没有任何标注的难懂文字应该是笔者因为强迫症而加进来的,可选择性地忽略)。
-
视频链接:计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili
一、概述
1、主存的基本组成
(1)主存储器(简称主存或内存)包括存储体M、各种逻辑部件及控制电路等。存储体由许多存储单元组成,每个存储单元都有一个编号,称为存储单元的地址号。每一个存储单元又包含若干个存储元件(或称存储基元、存储元),每个存储元件能寄存一位二进制代码“0”或“1”,那么一个存储单元可存储一串二进制代码,称这串二进制代码为一个存储字,这串二进制代码的位数称为存储字长(存储字长可以是8位、16位或32位等)。
(2)主存的工作方式就是按存储单元的地址号来实现对存储字各位的存(写入)、取(读出),这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存)。为了实现按地址访问的方式,主存中还必须配置两个寄存器MAR(存储器地址寄存器)和MDR(存储器数据寄存器)。
(3)实际上,根据MAR中的地址访问某个存储单元时,还需经过地址译码、驱动等电路才能找到所需访问的单元,读出时需经过读出放大器才能将被选中单元的存储字送到MDR,写入时MDR中的数据也必须经过写入电路才能真正写入被选中的单元中。
2、主存和CPU的联系
(1)现代计算机的主存都由半导体集成电路构成,驱动器、译码器和读写电路均制作在存储芯片中,而MAR和MDR制作在CPU芯片内。存储芯片和CPU芯片可通过总线连接,如下图所示。
(2)当要从存储器读出某一信息字时,首先由CPU将该字的地址送到MAR,经地址总线送至主存,然后发出读命令,主存接到读命令后得知需将该地址单元的内容读出,便完成读操作,将该单元的内容读至数据总线上,至于该信息由MDR送至什么地方,这是由CPU决定的。
(3)当要向主存存入一个信息字时,首先CPU将该字所在主存单元的地址经MAR送到地址总线,并将信息字送入MDR,然后向主存发出写命令,主存接到写命令后便将数据线上的信息写入对应地址线指出的主存单元中。
3、主存中存储单元地址的分配
(1)主存各存储单元的空间位置是由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,根据该地址可读入或写入一个存储字。不同的机器存储字长也不同,为了满足字符处理的需要,常用8位二进制表示一个字节,因此存储字长都取8的倍数。
(2)通常计算机系统既可按字寻址,也可按字节寻址。(对于下图,可认为方框内的是字节地址,方框外的是字地址,只是实际上地址码应该是用二进制或者十六进制表示的)
①IBM 370机的字长为32位,它的每一个存储字包含4个字节。字地址是用该字高位字节的地址来表示,故其字地址是4的整数倍,正好用地址码的末两位来区分同一字的4个字节的位置(两位二进制的地址码正好有4种取值)。
②PDP-11机的字长为16位,它的每一个存储字包含2个字节。字地址是用该字低位字节的地址来表示,故其字地址是2的整数倍,正好用地址码的末位来区分同一字的2个字节的位置(一位二进制的地址码正好有2种取值)。
③对24位地址线的主存而言,无论在哪个机器中,按字节寻址的范围都是16M(),而在IBM 370机中按字寻址的范围为4M(
),在PDP-11机中按字寻址的范围为8M(
)。
(3)大端和小端存储模式:
①大端(存储)模式是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中,也就是高位字节地址为字地址。(如上左图所示)
②小端(存储)模式是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中,也就是低位字节地址为字地址。(如上右图所示)
4、主存的技术指标
(1)存储容量:
①存储容量是指主存能存放的二进制代码总数,即
②存储容量也可用字节总数来表示,即
(2)存储速度:
①存储速度是由存取时间和存取周期来表示的。
②存取时间又称为存储器的访问时间,是指启动一次存储器操作(读或写)到完成该操作所需的全部时间,存取时间分读出时间和写入时间两种。
[1]读出时间是从存储器接收到有效地址开始,到产生有效输出所需的全部时间。
[2]写入时间是从存储器接收到有效地址开始,到数据写入被选中单元位置所需的全部时间。
③存取周期是指存储器进行连续两次独立的存储器操作(如连续两次读操作)所需的最小间隔时间,通常存取周期大于存取时间。
(3)存储器带宽:
存储器带宽与存取周期密切相关,它表示单位时间内存储器存取的信息量,单位可用字/秒或字节/秒或位/秒表示,同时它还是衡量数据传输率的重要技术指标。
二、半导体存储芯片简介
1、半导体存储芯片的基本结构
(1)半导体存储芯片采用超大规模集成电路制造工艺,在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路等,如下图所示。
①存储矩阵:由大量相同的位存储单元阵列构成。
②译码驱动:将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读/写操作。
③读/写电路:包括读出放大器和写入电路,用来完成读/写操作。
(2)地址线是单向输入的,数据线是双向的(有的芯片可用成对出现的数据线分别作为输入或输出),二者的位数共同反映存储芯片的容量,假如地址线为n根,数据线为k根,则芯片容量为位。
(3)控制线主要有读/写控制线与片选线两种,不同存储芯片的读/写控制线和片选线可以不同。
①读/写控制线决定芯片进行读/写操作。
②由于半导体存储器是由许多芯片组成的,为此需要用片选信号来确定哪个芯片被选中,片选线则是用来选择存储芯片的。下图所示的是由32片16K×1位的存储芯片组成的64K×8位存储器(字长为8位),每次读出一个存储字时需选中8片芯片。
2、半导体存储芯片的译码驱动方式
(1)线选法:如下左图所示,是一个16×1字节线选法存储芯片的结构示意图,它的特点是用一根字选择线(字线)直接选中一个存储单元的各位(比如当地址线为1111时,15号字线被选中,对应下左图中的最后一行8位数据便可直接读出或写入),这种方式结构较简单,但只适用于容量不大的存储芯片。
(2)重合法:如下右图所示,是一个1K×1位重合法结构示意图,只要用64根选择线(X、Y两个方向各32根),便可选择32×32矩阵中的任一位(比如当地址线全为0时,译码输出和
有效,矩阵中第0行、第0列共同选中的那位即被选中)。
三、随机存取存储器
1、静态RAM(SRAM)
(1)静态RAM的基本单元电路(寄存一位“0”/“1”代码的电路):
①图中是一个由MOS管组成的触发器基本电路,
、
犹如一个开关,受行地址选择信号控制,这6个MOS管共同构成一个基本单元电路。
、
受列地址选择信号控制,分别与位线A’(触发器原端)和A(触发器非端)相连,它们并不包含在基本单元电路内,而是芯片同一列的各个基本单元电路所共有的。
②假设触发器已存有“1”信号,即A点为高电平。当需读出时,只要使行、列地址选择信号均有效(即选中该基本单元),则使、
、
、
均导通,A点高电平通过
后再由位线A通过
作为读出放大器的输入信号,在读选择有效时将“1”信号读出。
③由于静态RAM是用触发器工作原理存储信息的,因此即使信息读出后,它仍保持其原状态,不需要再生,但电源掉电时,其原存信息丢失,故它属于易失性半导体存储器。
④写入时不论触发器原状态如何,只要将写入代码送至端,在写选择有效时,经两个写放大器,使两端输出为相反电平。当行、列地址选择有效时,使
、
、
、
导通,并将A与A’点置成完全相反的电平,这样就可以把欲写入的信息写入该基本单元电路中。比如要写入“1”信号,即
,经两个写放大器使位线A为高电平、位线A’为低电平,结果使A点为高,A’点为低,即写入了“1”信息。
(2)静态RAM芯片举例:
①下图所示是一个容量为1K×4位的2114外特性示意图,其中为地址输入端,
为数据输入输出端,
为片选信号(低电平有效),
为允许信号(低电平为写,高电平为读),
为电源端,
为接地端。
②2114 RAM芯片的结构示意图如下图所示,图中的存储矩阵由64×64个基本单元电路组成,列电路即读/写电路,10根地址线分为行地址
和列地址
、
、
、
,4根数据线为
,它们是受输入输出三态门控制的双向总线。
[1]当和
均为低电平时,输入三态门打开,
上的数据即写入指定地址单元中。
[2]当为低电平、
为高电平时,输出三态门打开,列
电路的输出经片内总线输出至数据线
上。
③2114 RAM芯片内的存储矩阵结构如下图所示,其中每一个小方块均为一个由6个MOS管组成的基本单元电路,排列成64×64矩阵,64列对应64对、
管,接着64列又分成4组,每组包含16列,并与一个读/写电路相连,读/写电路受
和
控制,4个读/写电路对应4根数据线
。从下图可见,行地址经译码后可选中某一行,列地址经译码后可选中4组中的对应列(每组都被选中1列),共4列,也就是每次都可选中4位(4个基本单元)。
(3)静态RAM读/写时序:
①(2114 RAM芯片的)读周期时序:
②(2114 RAM芯片的)写周期时序:
2、动态RAM(DRAM)
(1)动态RAM的基本单元电路(寄存一位“0”/“1”代码的电路):
①常见的动态RAM基本单元电路有三管式和单管式两种,它们的共同特点都是靠电容存储电荷的原理来寄存信息,若电容上存有足够多的电荷就表示存“1”,电容上无电荷则表示存“0”。电容上的电荷一般只能维持1~2ms,因此即使电源不掉电,信息也会自动消失,为此必须在2ms内对其所有存储单元进行一次恢复原状态的操作,这个过程称为再生或刷新。
②三管MOS动态RAM基本单元电路:
[1]图中、
、
这3个MOS管组成了三管MOS动态RAM基本单元电路。
[2]读出时,先对预充电管置一预充电信号(在存储矩阵中,每一列共用一个
管),使读数据线达高电平
,然后由读选择线打开
,若
的极间电容
存有足够多的电荷(被认为原存“1”),使
导通,则因
、
导通接地,使读数据线降为零电平,读出“0”信息;若
没有足够电荷(被认为原存“0”),则
截止,读数据线为高电平不变,读出“1”信息。可见,由读出线的高低电平可区分其是读“1”还是读“0”,只是它与原存信息反相。
[3]写入时,将写入信号加到写数据线上,然后由写选择线打开,这样
便能随输入信息充电(写“1”)或放电(写“0”)。
③单管MOS动态RAM基本单元电路:
[1]将三管电路进一步简化,去掉,把信息存在电容
上,将
、
合并成一个管子
,便得到单管MOS动态RAM基本单元电路。
[2]读出时,字线上的高电平使导通,若
有电荷,经
管在数据线上产生电路,可视为读出“1”;若
无电荷,则数据线上无电流,可视为读出“0”。读操作结束时,
的电荷会被释放,这种就是破坏性读出,必须对其进行“再生”操作(把它恢复成读出前的状态)。
[3]写入时,字线为高电平使导通,若数据线上为高电平,经
管对
充电,使其存“1”;若数据线为低电平,则
经
放电,使其无电荷而存“0”。
(2)动态RAM芯片举例:
①三管动态RAM芯片:
②单管动态RAM芯片:
(3)动态RAM的时序:
①首先分析、
与地址的关系:
②读时序:
③写时序:
(4)动态RAM的刷新:
①刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程。
②由于存储单元被访问时随机的,有可能某些存储单元长期都不会得到访问,也就是不进行存储器的读/写操作,这样其内的原信息就会慢慢消失,为此必须采用定时刷新的方法,它规定在一定时间内对动态RAM的全部基本单元电路必作一次刷新,一般取2ms,这个事件称为刷新周期,又称再生周期。
③刷新是一行一行进行的,必须在刷新周期内由专用的刷新电路来完成对基本单元电路的逐行刷新,才能保证动态RAM内的信息不丢失。
④通常有三种方式刷新:
[1]集中刷新:
集中刷新是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。
例如,对128×128矩阵的存储芯片进行刷新时,若存取周期为0.5μs,刷新周期为2ms(占4000个存取周期),则对128行集中刷新共需64μs(占128个存取周期),其余的1936μs(共3872个存取周期)用来读/写或维持信息。由于在这64μs时间内不能进行读/写操作,故称为“死时间”,又称访存“死区”,所占比率为128/4000×100%=3.2%,称为死时间率。
[2]分散刷新:
分散刷新是指对每行存储单元的刷新分散到每个存取周期内完成(每次读写完都刷新一行),其中把机器的存取周期分成两端,前半段
用来读/写或维持信息,后半段
用来刷新。
若读/写周期为0.5μs,则存取周期为1μs,仍以128×128矩阵的存储芯片为例,刷新按行进行,每隔128μs就可将存储芯片全部刷新一遍,这比允许的间隔2ms要短得多,而且也不存在停止读/写操作的死时间,但存取周期长了,整个系统的速度也降低了。
[3]异步刷新:
异步刷新是前两种方式的结合,它既可缩短“死时间”,又充分利用最大刷新间隔为2ms的特点。
例如,对于存取周期为0.5μs,排列成128×128的存储芯片,可采取在2ms内对128行各刷新一遍,即每隔15.6μs刷新一行,而每行刷新的时间仍为0.5μs,这样刷新一行只停止一个存取周期,但对每行来说刷新间隔时间仍为2ms,而死时间缩短为0.5μs。
3、动态RAM和静态RAM的比较
(1)动态RAM相较于静态RAM的优点:
①在同样大小的芯片中,动态RAM的集成度远高于静态RAM,
②动态RAM行、列地址按先后顺序输送,减少了芯片引脚,封装尺寸也随之减少。
③动态RAM的功耗比静态RAM小(静态RAM的发热量大)。
④动态RAM的价格比静态RAM的价格便宜。
(2)动态RAM相较于静态RAM的缺点:
①由于使用动态元件(电容),它的速度比静态RAM低。
②动态RAM需要再生,故需配置再生电路,也需要消耗一部分功率。
四、只读存储器
1、概述
(1)前面介绍的RAM是易失性的,一旦掉电,其中存储的内容全部丢失,而本部分介绍的ROM则是非易失性的,即使掉电,其中存储的内容也不会丢失。
(2)按ROM的原始定义,一旦注入原始信息后就不能改变,但随着用户的需要,总希望能任意修改ROM内的原始信息,这便出现了PROM、EPROM和EEPROM等。
2、掩模ROM
下图所示的是MOS型掩模ROM,其容量为1K×1位,采用重合法驱动,行、列地址线分别经行、列译码器,各有32根行、列选择线,行选择线与列选择线交叉处既可有耦合元件MOS管,也可没有。列选择线各控制一个列控制管,32个列控制管的输出端共连一个读放大器。
当地址为全“0”时,第0行、第0列被选中,若其交叉处有耦合元件MOS管,因其导通而使列线输出为低电平,经读放大器反相为高电平,输出“1”。当地址为11111,
为00000时,即第31行、第0列被选中,若其交叉处没有耦合元件MOS管,则0列线输出高电平,经读放大器反相为低电平,输出“0”。
可见,用行、列交叉处是否有耦合元件MOS管,便可区分原存“1”还是存“0”。而且,此ROM制成后不可能改变原行、列交叉处的MOS管是否存在,所以用户是无法改变原始状态的。
3、PROM
PROM是可以实现一次性编程的只读存储器,也就是只能往其中写一次内容,往后都不可以进行更改。
下图所示是16×1位双极型镍铬熔丝式PROM芯片,用户在使用前可按需要将信息存入行、列交叉的耦合元件内。若欲存“0”,则置耦合元件一大电流将熔丝烧掉;若欲存“1”,则耦合处不置大电流,熔丝不断。当被选中时,熔丝断掉处将读出“0”,熔丝未断处将读出“1”。
4、EPROM
EPROM是一种可擦除可编程只读存储器,它可以由用户对其所存信息做任意次的改写。
EPROM的改写有两种方法,一种是紫外线照射,但擦除时间比较长,而且不能对个别需改写的单元进行单独擦除或重写,另一种方法是用电气方法将存储内容擦除再重写。甚至在联机条件下,用字擦除方式或页擦除方式,既可局部擦写,又可全部擦写,这种EPROM就是EEPROM。
进入到20世纪80年代,又出现一种闪速存储器(Flash Memory),又称快擦型存储器,它是在EPROM和EEPROM工艺基础上产生的一种新型的、具有性能价格比更好、可靠性更高的可擦写非易失性存储器,它既有EPROM的价格便宜、集成度高的优点,又有EEPROM电可擦除重写的特性,它具有整片擦除的特点,其擦除、重写的速度快。
这篇关于计算机组成原理 第三章(存储器)—第二节(主存储器(上))的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!