3.3.3 主存储器的基本组成
这个世界比太阳还耀眼的人是谁呢?
没错,是我了hhhhh~棒棒哒
各位同学大家好在总结,但是我们会把这部分的内容把它提到3.3.1和3.3.2之前来讲解,因为学习这个小节的内容可以让大家能够对主存储器的基本原理能有一个宏观的认识,然后我们再回去学习,3.3.1和3.3.2会更容易理解,那在这次品种我们首先会学习使用半导体元器件来存储二进制0和1的一个基本的原理,然后通过半导体元器件的一个组合,我们可以构成所谓的存储芯片,那由于存储芯片里边存储了很多个字的数据,因此存储芯片必须提供一个选址的功能,那在这些选择之后我们还会探讨不同的寻址方式如何实现好的,那首先我们来看一下组成主存储器的基本的半导体元件,还有它工作的一个原理,在第1章里面我们说过一个组存储器,逻辑上可以分为存储体数据计算机三个部分的控制下。其中ma AR是地址寄存器,B2是数据寄存器,那这三个部分会在时序控制逻辑这些电路的控制下有条不紊的,相互配合的工作好呢,之前我们说过存储体就是用来存放实际的二进制数据0和1的一个存储体,由多个的存储单元构成,而每一个存储单元又有多个存储,原来构成也就是存储元件,用这样的一个存储元件,我们就可以存放一位的二进制,0或者1,那这里边涉及到两个半导体元器件,下面这个部分是电容,上面这个部分是一个冒死关,可能很多同学没有学过数字电路这门课,那这简单的解释一下,我们可以把mosque这种半导体元件把它看作是一种可以控制的开关如果说我能在这一段了一个高电压达到一个阈值他就可以到店如果我们不给这一段或者电压要求就是一个决定。一个阈值,那么这个貌似管它就可以导通,他就可以导电,而如果我们不给这一段加电压或者电压达不到阈值的要求五福的话,那这个莫斯就是一个绝缘体,它是不导电的,所以我们在这个地方把它画成了虚线,所以为什么这种元器件我们会把它叫做半导体呢,因为它既不是导体也不是绝缘体,在给了一定的电压条件的情况下,这个绝缘体可以变为导体,而如果我们给个电压条件不满足的情况下它又不是导体好,所以Moscow就是一种典型的半导体元器件好再看,另外这个元器件电容电容是我们在高中阶段学过的东西,一个电容有两个金属板,还有中间的绝缘体构成,那下面这块金属板,这个地方画了三条线表示的是它是接地的我不知道接地点的对吧上面这一块金属板加一个大雨淋伏的电压比如说加一个五福的高见停电呀由于这两块金属板升了这种电压差因此也就是所谓。金属板加一个大于0伏的电压,比如说加一个5伏的高电平电压,那么由于这两块金属板产生了这种电压差,因此这个电容里边的电荷就会开始移动,也就是所谓给电容充电的一个过程,那当我们输入一个5伏电压之后,这个电容里边就可以保存一定的电荷,而如果我们在上边输入的是一个低电平信号,比如说灵符或者啊异符,那么由于上面这块金属板和下面这块金属板的电压差非常小,所以这种情况下电容不会充电,所以接下来我们可以根据电容是否保存了电荷两种状态的信息来对应二进制的0和1好来看一下,假设现在这个电容上是保存了一些电荷的当它保存了一些电荷的是二进制的如何读取着个二进制的吗我们只需要一个高端。由于耄耋通了,所以此时电容里面保存的这些电荷就可以顺着这个导线往外流,那么当我们在这一段检测到有一个输出电流的时候,就意味着此时他输出了一个二进制的一好再换一种情况,如果本来这个电容它里边没有保存电荷,也就是说这种状态表示二进制的零,那么当末次管接通的时候,我们在这一端并不能检测到有电荷的流出,因此在这种情况下,我们就可以判断这个电容里边保存的是二进制的零好,这是读出一个二进制的原理,大家看写入一个二进制的原理,假设现在我们想要让这个电容保存一个二进制的一,那么我们可以在这一端到现在这一端加一个5伏的高电平,同时给这个moss管也加一个5伏的高电平,这样的话moss管可以接通,接通之后是不是意味着电容上边这一块金属板它的电压应该是5伏,而下边这些金属板由于是接了D,所以它是0伏差就会导致这个电容里面。电压应该是5伏,而下边这个金属板由于是接了D,所以它是0伏,那只要电容的,两块金属板之间有这种电压差,就会导致这个电容里边的电荷开始移动,于是这个电容就会存储一些电荷,也就是存储了二进制的一,那接下来我们再让这个末次往端看,唉,这样的话电容里的电荷是不是就跑不出去了啊?所以这就是存储元件存储二进制0和1的一个原理,需要用到一个mouse管和一个电容好,接下来如果我们把多个存储源进行科学合理的连接,那么我们就可以一次性读出或者写入多个二进制数据,比如现在上面这一块存储源,他们存储的二进制信息分别是这样的一些值,那注意,这张图里有一条红色的线,这条线连接了每一个存储源的这个莫斯瓦因此如果我们给张红色的线加一个是不是就意味着所有这些存储元都可以被空之后店主的电荷就可以顺着这条线然后。这个高建平是不是就意味着所有这些存储员的冒死管都可以被导通,当MOS管导通之后,电容里存储的电荷就可以顺着这条线,然后往绿色这条线往外导出,也就是说我们只需要监测每一条绿色的线,有没有产生电流,我们就可以判断每一条线它所对应的是二进制的零还是一如果有变流那么意味着啊产生的是一个二进制的一如果没有电流,那么就意味着产生的是一个二进制的零好,所以用这样的方式我们就可以补充这一整行的这个存储源所存储的这些二进制比克的信息好,那这样的一整行就是我们之前提到过的存储单元,也就是一个存储字,而多个存储单元就构成了我们之前提到过的存储体,也可以叫做存储矩阵,我们一次可以读出的这些二进制位就是一个存储字,那像这个例子当中存储字啊,就应该是8个比特,因为我们一行总共有8个存储源,那如果说我们再让这个存储源更多一些,比如说有16个存储源构成一行。我们之前提到过的存储体也可以叫做存储矩阵,我们一次可以读出的这些二进制位就是一个存储字,那像这个例子当中存储字长就应该是8个比特,因为我们一行总共有8个存储源,那如果说我们再让这个存储源更多一些,比如说有16个存储源构成一行,那么说明就意味着存储字长就变成了16比特,好,那讲到这儿大家应该就能够理解,为什么我们在第1章的时候说过存储器每一次读或者每一次写的单位都是读或者写一个存储字,因为从属于同一个存储字的这些存储元件,他们的貌似管家如果要接通,那么就是整个字的所有这些存储单元同时截图,也就可以同时被读出或同时被写入啊,另一点再次强调要注意字节和存储字的一个区别,一个字节一定是等于8个皮克,而一个存储字等于多少个皮克,这个具体得看我们的存储体它的结构是什么样的好,那么在这个同时当中,我们的存储体当中只包含了两个存储单元。一定是等于8个旅客,而一个存储字等于多少个旅客,这个具体得看我们的存储体它的结构是什么样的好,那么在这个图示当中,我们的存储体当中只包含了两个存储单元,那接下来我们要研究的问题就是如何根据地址来决定我们要读或者要写哪个存储字呢,那这就涉及到译码器的使用,噢,那译码器的作用是这样的,我们给出了N位二进制地址之后,这个NV2进制地址应该会对02的N次方的存储单元,所以译码器它会根据这个地址寄存器mar里面给出的这几位地址,把它转变成某一条选通线的高电平信号,比如此时CPU给这个mar送过来的地址是三个0,那三个零翻译成十进制,觉得应该是对应十进制的零,所以密码器会把D0跟这个自选择线给它一个高电平的输出,这样的话我们第1个存储字所对应的这些存储原件都会被选通可以读出这个二级啦总之每一个地址。电瓶的输出,这样的话,我们第1个存储字所对应的这些存储原件都会被选通,我们就可以读出每一位的这个二进制数据了,总之每一个地址会对应页码器的一条输出线,0号1号2号一次类推,总共有2的三次方的地址,也就是8个地址,因此译码器的这个输出端总共会有8条线好,所以经过密码器的处理,一个地址信号会被转换成一码记的,某一条输出线的高电平信号,那当这一条红色的自选择线被接通之后,我们就可以通过这个数据线,也就是这绿色的这条线,把每一位的二进制信息传送到mdr当中,然后接下来CPU会通过数据总线从mdr当中取走这一整个字的数据应该是和纯属自唱这就是给出地址之后通过集中的自立这个。特别大啊是相同的好,所以这就是给出地址之后,通过译码器的处理选中其中的某一个字的原理,那对于这个例子来说,这个存储其他的总容量应该是存储单元的个数乘以存储字长,那存储单元的个数就应该是2的三次方,因为只有三位的地址,然后每个存储字应该是8个比特,所以相乘就可以得到这个存储体,它的一个总容量好,接下来我们继续完善这个存储芯片的构成,我们还需要增加一个控制电路用于控制译码器a2和MP R,比如CPU通过地址总线把地址送到,但是由于我们使用的是电信号来传送这些二进制数据,而电信号难免会有不稳定的情况,因此当ml里面的这个变形好稳定之前,这个地址信息是不能送到1码7当中的,所以这就是控制电路的一个作用,只有mar稳定之后,它才会打开这个易码器的开关,让易码器来翻译这个地址当窗。 Mar里面的这个电信号稳定之前这个地址信息是不能送到一码期当中的,所以这就是控制电路的一个作用,只有mar稳定之后,它才会打开这个页码器的开关,让密码器来翻译这个地址,然后给出相应的数据信号,那那同样的当数据输出的时候,只有这个输出的电信号稳定之后控制电路才会认为此时的输出是正确无误的,所以它也需要控制mdr在什么时候给数据总线送出数据好,另一个方面存储芯片还需要对外提供这样的一些呃线路,一个叫骗选线,通常我们会用CS上面加两个杠或者ce上面加一个杠来表示PA选线的电信号,那像这种头上画了一横的意思就是说这个电信号当它是低点屏的时候是有效的,那这CS和ce其实是英文缩写芯片的英文是GP对吧?这是芯片,然后CS表示的是芯片选择cheap,select芯片选择信号选择信号是一个低电平的时候就说明。中文是GP对吧,这是芯片,然后CS表示的是芯片选择cheap,select芯片选择信号,如果我们给出的芯片选择信号是一个低电平的时候,就说明这个芯片的总开关是被我们接通的,那有地方也会把片选线的信号把它命名为ce,ce是chicken able也就是芯片使能的一个信号和芯片选择信号的含义一样,就是说当我们给这个片选线加一个低电平的时候,就意味着这块芯片是可以工作的,是这样一个意思好另外控制电路还需要对外提供一个独控制线和斜控制线,那有的地方是读控制线斜控制线,会把它分成这样的两条线,we表示的是允许写,那上面画一条横杠的意思就是说当这个斜控制线的信号we它是低电平的时候,表示此时这个芯片正在进行的是写操作,也就是要把mdr里保存的这个数据把它输入到各个电容当中这个让。呃,电信号让它变为低电平,那当毒控制线接收到一个低电平信号的时候控制电路就知道,唉此时我们要进行的是一个独操作而不是一个写操作啊,那这是第1种常见的设计方法,我们会把读和写这两个控制线分为单独的两根,那还有一种常见的设计方法是可以把读写控制线合二为1,用一根线来表示,我们此时要进行写还是读这种情况下,当我们对这根线输入一个低电平的时候,表示我们要进行的是写操作,而如果我们输入的是一个高电平,那么表示此时要进行的是一个读操作好,这一点大家需要注意,在题目当中它可能会告诉你我们会采用两根读斜线,或者有可能是只采用一根读斜线,当采用这两种方案的时候,我们的芯片对外暴露的引脚就是金属的引脚数目是不一样的,那这一点我们一会再解释好,那到目前为止我们就给出了一块存储芯片的完整的一个构造,好,那我们把这些内部细节屏蔽掉,进行一个封装,那么整体来看我们的存储芯片他有着一些逻辑。当中他可能会告诉你,我们会采用两根螺旋线,或者有可能是只采用一根路线线,当采用这两种方案的时候,我们的芯片对外暴露的引脚就是金属的引脚数目是不一样的,那这一点我们一会再解释好,那到目前为止我们就给出了一块存储芯片的完整的一个构造啊,那我们把这些内部细节屏蔽掉进行一个封装,那么整体来看我们的存储芯片他有这样的一些逻辑部分构成,其中存储矩阵就是这些一个一个存储元,然后左边这个部分译码驱动电路啊,他其实是分为了译码器和驱动器,那译码器的作用刚才我们已经说过,而驱动器的作用也很简单,我们的译码器它不是会输出某一条线的高电平信号吗?那这一条线你看一下,他连了很多很多存储源需要控制这些存储源的开和关,那么为了密码器输出的这个高电平信号稳定有效,因此通常还会在译码器后面加上接上一个驱动器这些东西的作用就是保证这一马竞在这些店型号的。挺好吧,那这一条线你看一下,他连了很多很多存储源,需要控制这些存储源的开和关,那么为了密码器输出的这个高电平信号稳定有效,因此通常还会在易码器后面加上街上一个驱动器,这个驱动器的作用就是保证这些译码器它输出的这些电信号是稳定可靠的,所以驱动器其实就是把电信号进行放大的一个部件,另外读写电路,包括了我们之前给的这些红色绿色的这些线还有控制电路,因为控制电路也是用来控制这些数据的读写的好,所以逻辑上我们可以把存储芯片的内部分为这样的三大部分,另外一块存储芯片需要接收来自外界的一个地址信息,这个地址信息通常是CPU通过地址邮件给传过来的好,另外还需要通过数据线进行数据的传输这款鞋子是否也需要提供什么。背部分为这样的三大部分,另外一块存储芯片需要接收来自外界的一个地址信息,这个地址信息通常是CPU通过地址软件给传过来的好,另外还需要通过数据线进行数据的传输,那除此之外还需要通过骗血线的电信号来确定这一块芯片此时是否可用,另外也需要提供读写控制线,那这个读写控制键,有可能只有一条也有可能有两条好,那现在大家可能还会比较疑惑,这个pH权限到底有什么作用,我们来看一个我们实际的内存条,它的样子大家有空可以把自己的电脑拆开来看一下,看一下你的内存条是不是长这个样子,它里面有这样呃黑色的一小块一小块的芯片,那这样的每一块芯片其实就是一个存储芯片,所以我们使用的内存条它里面其实是包含了多块存储芯片的,比如在这个图里面每一块存储芯片能存储的这个呃数据容量都是1GB,那么它总共有8块存储芯片,总共是不是就可以存储8GB的数据我们现在思考如果你要读取的数据。存储的这个呃数据容量都是一致的,那么它总共有8块存储芯片,总共是不是就可以存储8GB的数据,好,那现在思考这样的一个问题,如果你要读取的数据刚好是存放在这一块存储芯片当中,那么是不是意味着你提供了一个读写的地址之后,我们只能让这一块存储芯片工作,其他的存储芯片不能工作对吧?所以这就是片选线的作用,如果我们只想读取这款存储芯片指定地址的啊,那些数据,那么我们就需要让这块存储芯片的片选线信号有效,也就是CS这个信号给一个低电平,而其他这些芯片的片选线信号,我们都给他一个高一点品信号,这样的话我们就可以保证,此次我们要读取的就是指定今天的数据好,所以这就是片选线片选信号的一个作用,因为我们的一个存储器有可能会有多块存储芯片构成噢,所以大家可以再结合这个例子来思考便血线的一个作用而且冲的一点是我们每一块其实他。好,所以大家可以再结合这个例子来思考pH值线的一个作用好,接下来还需要补充的一点是,我们这儿的每一块存储芯片,其实它都会对外暴露出这样的一个一个的金属针角或者叫金属的引脚,那这些金属银角其实就是用来接收地址信号或者数据信号或者是骗取信号,还有读写信号用的,所以我们经常会遇到这样类型的题目,就是告诉你一块存储芯片的某些参数信息,然后让你判断这块存储芯片,它的引脚的数目至少应该是多少,那这种类型的题目其实就是让你判断,呃你的地址线位数总共有多少根,那么每一根地址线会对应这样的一个金属的引脚,然后数据线应该有多少根?那每一条数据线同样也会对应这样的一个金属的引脚除了地址线和数据线吃饭还需要有信号的一个输出端口的影响方面我们还需要提供一个控制线表示要进行的操作。生成了两根,就是我们之之前上一页PPT讲的数据线之外,我们是不是一定还是要有一个片选线,也就是片选信号的一个输入端口,所以片选线一定也会对应一个金属的引脚,而另一个方面我们还需要提供一个读写控制线来表示我们此时要进行的是读操作还是写操作,所以读写控制线也至少会对应一个金属的音调,好,那如果题目告诉你读写控制线分成了两根,就是我们之前上一页PPT讲到那种情况,那此时是不是同控制线和斜控制线会分别对应不同的两个金属银角,所以大家需要根据题目来判断啊,这个存储芯片对外暴露出的金属银角到底有多少根好,那除了我们这儿实现功能所必须提供的金属银角之外,通常还会有供电使用的引脚,还有接地的引导好,所以注意体会这个地方每一条线会对应一个金属的引脚地震安全我们知道了。好,那如果告诉你一块存储芯片,它有N位地址,那数位移位的地址线需要有N条,那这N位地址又会对应2的N次方这么多个存储单元,另外之前说过,我们知道了存储单元的数量,然后再乘以呃每一个存储单元也就是每一个存储字长就可以得到这个芯片的总容量是多少?那之前我们都是用多少个字节或者多少个比特这样的方式来描述一块芯片的容量,那从这个小组也开始大家还会见到这样的描述,比如说一块存储芯片,它是8×8倍的第1个8表示的是它有多少个存储单元,而第2个8位表示的是它的存储字长是多少?每一个存储单元包含多少倍的信息,好,所以接下来大家有可能会经常遇到类似的描述,比如说一块存储芯片是8K×8位这样的一个大小,那么第1个8K指的是它总共有8K这么多个存储单元,也就是2的13次方这么多的存储单元然后每个单元也就杵子长十八位这个型号的应该有十三个地址。那么第1个8K指的是它总共有8K这么多个存储单元,也就是二点13次方这么多的存储单元,然后每一个存储单元也就是整储资产是8位,那显然这个型号的存储芯片应该有13位的地址对吧?然后每个地址对应这样的一行存储元,然后每一行总共有8个存储元而第2块存储芯片吧,K×一位,意思就是说总共有8K的存储单元,而每一个存储单元也就是这儿的每一行只会包含一个存储元店是这样的,一个意思,好所以以后大家也是要注意这种描述方式前边的部分反映了存储单元的数量,而后边这个部分是反映了存储字长,所以如果题目告诉你一块存储芯片,它是64K×16倍,那你是不是就可以根据这两个部分的信息来分别判断出地址线有多少位,数据线有多少位根据地址线数据线的数量控制线这一块应该对外暴露出多少个金属的迎角那就是一种很常见。据现有多少位,然后根据地址线数据线的数量再加上片选线啊,读写控制线,你就可以判断出这一块存储芯片应该对外暴露出多少个金属的影响,那这就是一种很常见的考查方式,具体的大家会在客户信息里面遇到,好,那接下来我们要进一步探讨关于寻址的问题,在这个图是里面这样的一个小方格表示一个字节,也就是巴比特的呃信息,然后这样的一整行表示的是一个存储字,也就是说这块存储芯片它的字长是4个字节,那我们假设它的总容量是1K,他自己也就是256个字,也就是说总共有256行好那之前我们说过就是现代的计算机当中通常是按字节编制的,也就是说每个字节会对于一个地址这个纯属举着自己就会对格力至二三四五六每一个地址按自己的意思现代的这些存储器虽然自己。1号自己23456号以此类推,每一个字节会对应一个地址,这是很字节编址的意思。但是我们现代的这些存储器虽然是按自己编制的,然而通常也支持暗自巡视,按半自形质,甚至按双字寻址,好,那既然是按字节编制,总共有1K个地址单元,那么我们的地址线就应该有10根,因为2的10次方刚好就是1K,只有10个地址线才可以表示1K个地址,那整个地球空间应该是从10个全零一直到10个全一,也就是0~1023这样的一个范围,好,现在我们把每一个自己的地址画到这个图例,好,那现在如果我们想要按次巡视,那由于一个字占4个字节,因此我们会把4个连续的字节地址和他们合并看作是一整个字,那这个问题其实我们之前说过,当我们指明了要读的是第几个字的时候,我们只需要把字地址进行算术左移两位,这样的话就可以把字地址转换成与之对应的自觉地阵子那么这。做营养胃,这样的话就可以把自体脂转换成与之对应的字节地址,比如此时我们要读的是1号字,那么这是第0号,字1号字,2号字,3号字,也就是要读第2行的这一个字,那么我们把1号字的这个一进行算术左移两倍,也就是在末尾添两个0,那么这个二进制数对应的实际值应该是4,对吧,这样的话我们就得到了这一个字,它的起始字节的一个字节地址好,那关于半字寻址和双字寻址和字节编址的一个对应关系的转换,其实也是类似的原理。那其实也是类似的原理,好,那这个时候也是我们认识了主存储器的一个基本原理,刚开始我们介绍了两种基本元件,一种叫莫思莞,莞的作用就是作为一个电路的开关,第2个重要的元器件就是电容用来存储电荷也就是存储二进制的,0或一给电容充电的过程就是我们写数据的过程给电容放电的过程,就是我们读出数据的一个过程,好那有这两种半导体元件,我们就可以构成一个一个存储元,然后把多个存储元进行合理的连接,再加上译码驱动电路读写电路,还有各种什么地址线数据线,这些东西就构成了存储芯片,那通过这一小节的学习,大家一定要能够理解这个译码器的一个工作原理,另外我们经常会遇到一种题型,就是让大家判断一块存储芯片,它金属银角的个数那关键在于它能够判断地实现和数据线分别是要注意控制线他到底是分为了两根一根那么一条线都会对应一个金属的影响简单。能够判断历史线和数据线分别是多少,跟另外也需要注意读写控制线,他到底是分为了两根还是合并为了一根,那每一条线都会对应一个金属的影响,好那这个时候觉得最后我们也简单介绍或者说复习了一下阿和巡视相关的知识,虽然现在计算机都是按字节编址的,每一个字节会对应一个地址,但是自截编址的这种形式也可以很方便的支持,按字寻址,按字节寻址,按字寻址,按半自行式和双字寻址,好的那一上就是这小节全部内容。