3.5主存储器与CPU的连接

news2024/9/21 0:43:46

文章目录

  • 一、引子
  • 二、单块存储芯片与CPU的连接
  • 三、多块存储芯片与CPU的连接
    • 1.现代计算机
    • 2.命名
    • 3.增加主存的存储字长--位扩展
      • (1)单块
      • (2)多块
    • 4.增加主存的存储字数--字扩展
      • (1)单块
      • (2)多块
      • (3)线选法
      • (4)1-2译码器
      • (5)译码片选法
  • 四、主存容量扩展
    • 1.主存容量扩展--字扩展
    • 2.主存容量扩展--字位同时扩展
      • (1)位扩展
      • (2)字扩展
      • (3)地址
  • 五、译码器
    • 1.第一种译码器
    • 2.第二种译码器
    • 3.使能端
    • 4.RAM的读写周期
  • 六、总结

一、引子

在这一小节中,我们要学习主存储器与 CPU 之间的连接。首先我们会回顾之前小节学习过的内容,我们已经知道了单块存储芯片它对外暴露出来的一些接口。

我们首先会探讨单块存储芯片和 CPU 之间的连接如何实现,接下来会介绍多块存储芯片和 CPU 之间的连接,分别是位扩展、字扩展和字位同时扩展。这个小节的最后我们还会补充一些关于译码器的知识。补充的内容可能在考题当中遇到。

这小节的内容可能会比较多,也比较硬核,特别是对于没有学过数字电路的同学,可能理解起来会比较吃力。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uM9znR82-1674904175322)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230127215734603.png)]

二、单块存储芯片与CPU的连接

先来回顾一下之前学过的内容。详情请戳:3.2主存储器的基本组成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U93nQjWM-1674904175324)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128103520656.png)]

我们需要对外暴露出这样的一些接口:

绿色的线是用来传送数据的,通常会利用数据总线与CPU连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOAN1d49-1674904175325)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230127220033460.png)]

红色的线是用来传送访问地址的,通常会通过地址总线和CPU连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y9SUUht8-1674904175325)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230127220157155.png)]

③另外,还需要对外暴露片选线读/写控制线,CPU通过控制总线来发送控制信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sj6NRTJh-1674904175326)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230127220331314.png)]

上面图示是一个8*8的存储芯片。

因为图示一共有8个字(2^3),每个字的字长是8位。

这里只用了单块的存储芯片来存储数据,并且只能存储8B数据。

<1> 如果想要扩展主存储字数该怎么办呢?那么接下来我们学习字扩展法

我们可以连接多块存储芯片来扩展主存的字数。

<2> 数据总线的宽度>存储芯片字长,怎么办?这里就需要用到位扩展法

这里给出的存储芯片,它的字长只有8位,也就是CPU一次只能存或者取8bit数据。但是现在的CPU大多每次可以读或者写64位数据,也就是现代的计算机数据总线的宽度至少也要有64位。

之前说过,应该尽可能保证数据总线的宽度和主存的存储字长一样,只有这样才能尽可能的发挥数据总线的性能。(每次多存或者多取一些数据,可以让数据的读写速度更快)

所以现在问题产生了,我们现在拥有的单块存储芯片,如果它的芯片的字长比数据总线的宽度更小,怎么办?

这个小节要学习的位扩展就是要解决这个问题,通过多块存储芯片的合理连接,我们可以让整个主存的存储字长拓展为和数据总线宽度一致。

所以字扩展和位扩展就是小节要解决的两个主要问题。


三、多块存储芯片与CPU的连接

1.现代计算机

我们之前在讲存储芯片的时候,把 MAR 和MDR都画在了存储芯片里边。

但是现在的计算机通常 MAR、MDR 这两个寄存器都是集成在CPU内部的,所以现在的存储器当中,它里边的寄存器其实并不是 MDR和MAR,只不过是一个普通的寄存器而已。

因此现在大家使用的计算机一般来说是这样的一个结构,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1tNRddX-1674904175326)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128104632766.png)]

就是CPU里边集成了 MAR和 MDR。 MDR里边存储的数据,也就是要读或者要写的数据,是通过数据总线和主存进行交换的。而 MAR里边存储的地址数据,是通过地址总线送给主存。

另外, CPU 还需要通过控制总线向主存发送、读写这一类的控制信息。而现在的主存中一般会包含很多块的存储芯片,大家可以去淘宝或者京东上随便搜一下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dwL1Ff6Y-1674904175327)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128104812310.png)]

这是三星的一个 8GB 的内存条,它里边白色贴纸下面,大家注意看一下,总共有四块黑黑的存储芯片。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vhjOT6T3-1674904175327)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128104903283.png)]

16GB 的内存条总共有 8 块。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r6rrhFgi-1674904175328)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128104929032.png)]

所以多块存储芯片如何与CPU进行连接,这个问题是很有现实意义的,非常值得我们研究和探讨。

2.命名

接下来,为了描述方便,我们给一块存储芯片的各个输入信号和输出信号进行一个命名。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m4itD5A5-1674904175328)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128105535018.png)]

地址我们通常用A来表示,我们有可能需要输入多位的地址。A0、A1、A2……(因为地址是address,所以我们用A来表示)

A0 表示的是地址的低位, A7 表示的是地址的高位。当然了,地址也有可能有更多位。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YALj7FmU-1674904175328)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128105650614.png)]

数据我们通常用D来表示。(因为数据是data,所以使用D)

同样的, D0表示的是低位, D7表示的是高位。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eh8D9YbB-1674904175329)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128105827827.png)]

片选信号我们通常用CS(cheap select )来表示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pvildrPT-1674904175329)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128110142129.png)]

如果CS上面画了一个横线,就说明这个片选信号是低电平的时候有效。而如果头上没有横线,就说明这个片选信号是高电平的时候有效。

大多数的教材都是把片选信号用CS这样的英文缩写来表示。当然了,也有的教材会用CE这样的缩写来表示,考试的时候说不定都可能遇到。

读写控制线的信号,我们通常用WE(Write)或者WR(Read)这样的方式来表示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wefkQDqu-1674904175330)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128110250237.png)]

上面画了一条横线的意思是当这个信号是低电频信号的时候,我们是在进行写操作,而如果是高电频信号,我们要进行的是读操作。

这两种英文缩写都是很常用的。当然了,也有的地方有可能会把读信号和写信号分开,用两个输入端输入,写信号用 WE表示,读信号用OE表示,都是低电频有效。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MeYtYn1Z-1674904175330)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128110410354.png)]

总之,这个地方想给大家强调的是存储芯片当中各种输入信号和输出信号常用的一些英文缩写。大家需要注意上面有没有横线,如果有横线说明低电频有效,没有横线说明高电频有效。

3.增加主存的存储字长–位扩展

(1)单块

接下来我们来看一下,如果此时我们已经买到了一块 8K 乘以 1 位的存储芯片,那么单块的存储芯片应该如何和我们的 CPU 进行连接呢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pfp69Fnx-1674904175331)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128110706309.png)]

①地址线的连接

首先这块存储芯片总共有 8K 个存储单元, 8K 对应二进制应该是 2 的 13 次方,所以我们需要用 13 根地址线来表示这 8K 的地址。

因此这一块存储芯片对外暴露出的地址线的引脚应该是 A0 到A12,总共有 13 条。 CPU 会把它想要访问的地址通过地址总线给送过来,这样我们就完成了地址线的连接。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i5XuXb5D-1674904175331)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128111005751.png)]

②WE信号

接下来看 WE信号。这信号表示的是 writing enable 写使能信号,它的头上没有横杠,就说明当这个信号是一个高电平的时候,此时 CPU 是要往里边写数据。而如果传过来的是一个低电平信号,就表示 CPU 要从中读数据。

CPU 也会有一个金属引脚来发送读写控制信号,这个信号是通过控制总线传给芯片的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgIhJqYX-1674904175332)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128111205416.png)]

③数据的传送

接下来再看数据的传送。虽然 CPU 可以通过数据总线同时读或者写8比特的数据,然而由于我们存储芯片的限制,我们每一次只能通过数据总线来传送一个比特。也就是数据总线的传输能力是利用的很不充分的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJ4WQZwc-1674904175332)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128144456663.png)]

不管怎么说,我们也已经完成了单块存储芯片和 CPU 的连接。

④CS

这个地方还有一个CS,也就是片选信号,我们还没有接。由于只有这一块芯片工作,所以我们可以简单粗暴地给它直接上一个高电平的信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sVb2rhuO-1674904175332)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128144631192.png)]

因为 CS 的头上没有画横线,意味着片选信号是高电频有效。

此时我们整个主存只有一块存储芯片,每一次只能读或者写一位的数据,所以此时主存的存储字长就是1比特。数据总线并没有被充分的利用好。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7v6KUa1M-1674904175333)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128144713194.png)]


(2)多块

为了解决这个问题,我们可以给主存再加上一块相同型号的存储芯片,同样也是 8K 乘以1位。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h8mE1Jsz-1674904175333)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128145424256.png)]

同样的 CPU 通过地址总线把它想要访问的地址信息传给这块芯片。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cp0K4xqD-1674904175333)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128145401156.png)]

因为左边和右边这两块芯片,它们都有 8K 个存储单元,所以如果把 13 位的地址信息同时送给这两块芯片,地址信息可以选中这两块芯片相同位置的存储单元。

读写控制线也是一样的,我们只需要把CPU发出的这些读写控制信号同时送给两块芯片就可以,要么同时读,要么同时写。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oyspE4bh-1674904175334)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128145610837.png)]

右边这一块芯片,从这儿读出的这一位数据,我们可以作为 CPU 读入的D1这一位的数据。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m1ItsJ3A-1674904175334)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128145738605.png)]

接下来我们只需要给右边的片选信号,加一个高电频,这样这两块芯片就可以同时工作。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EOnbN5dS-1674904175334)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128145939481.png)]

进行了改造之后,我们整个主存储器总共有两块存储芯片。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zDgg0cwp-1674904175335)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128150040862.png)]

总体来看,存储器的存储字长拓展为了两位。现在我们可以同时读或者同时写两位的信息。


接下来使用同样的方法,我们还可以继续增加同类型的 6 块芯片。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BOlrQjd2-1674904175335)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128150528786.png)]

最终我们就可以得到这样的一个连接。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-20u9AIod-1674904175336)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128150556101.png)]

每一块芯片都有 8K 个存储单元, CPU 发出的A0到 A12这13 位的地址信息会同时送给 8 片存储芯片。

由于每一块芯片的存储单元只有一个比特的数据,所以我们会把这 8 块存储芯片,它的这一位数据分别送到数据总线的不同位上。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2fBp6XRT-1674904175336)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128150832632.png)]

接下来,数据总线可以同时把这8位的信息送给CPU。

这样我们就把整个主存的存储字长拓展为了8比特。

这种连接方式,我们把它称为位扩展的方式。我们把 8 片 8K 乘以 1 位的存储芯片连接组合成了 8K 乘以8位的存储器,总容量应该是8KB。

4.增加主存的存储字数–字扩展

(1)单块

接下来我们再来看第二种连接方式,叫做字扩展的方式。

假设现在我们买了一片存储芯片,是 8K 乘以8位的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6G9xP9vk-1674904175336)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154007257.png)]

CPU的结构是这样的:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nrYnzdwO-1674904175337)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154025116.png)]

CPU可以同时读或者写8位的信息。(D0~D7)

现在,由于我们的存储芯片,它的字长已经有8位了。因此这块存储芯片的字长,数据的宽度和 CPU 能够处理的宽度是能够完美匹配上的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G6mMlAb4-1674904175337)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154139420.png)]

对于这个场景,我们不需要像之前那样进行位扩展,数据总线的传输能力已经被使用到极致了。

由于它有 8K 个存储单元,因此我们需要有 13 位的地址信息(A0~A12)。接下来再给片选信号,加一个高电频,这一块存储芯片就可以正常的工作了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LJeo3w4K-1674904175338)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154257216.png)]

现在我们会发现 CPU 还有三个地址位的信息没有被利用到。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4CeuxJUy-1674904175338)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154319466.png)]

CPU 的MAR来是有 16 位,也就是CPU,它拥有 2 的 16 次方这样的一个寻址能力。然而,现在我们只利用了 13 位的地址信息,并没有完全发挥出 CPU 的寻址能力。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6oRjuWJW-1674904175347)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154357868.png)]

那我们如何解决这个问题?

(2)多块

同样的,我们会买一块同型号的芯片,我们试一试按照之前位扩展的那种连线方法,能不能解决问题。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Ft74hAl-1674904175348)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154450805.png)]

也就是把低位的 13 根地址线也连到这一块新的芯片上。另外,这块芯片的8位数据,我们同样通过数据总线传送给CPU,读写控制信号也把它连起来。

接下来再给这块芯片一个高电平的片选信号。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKqBFBXZ-1674904175349)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128154618679.png)]

现在问题来了,当 CPU 给出一个全 0 的地址之后,这个地址是不是会同时传给左边和右边这两块芯片。

而由于此时这两块芯片的片选信号都是1,他们都在工作,因此,这两块芯片的 0 号存储单元的 8 个比特的信息都会顺着数据总线传给CPU。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zr3haxzC-1674904175349)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128155020722.png)]

两边同时传,是不是就会导致数据总线的一个冲突?

(3)线选法

解决这个问题的关键就在于片选信号的使用。我们来改造一下电路。

现在我们把 A13 这一位的地址信息连到左边这块芯片, A14 连到右边这块芯片。

<1> 由于片选信号是高电频有效,因此,当 A13 和 A14分别为 1 和 0 的时候,是不是就意味着左边的这块芯片它的片选信号有效,它是被选中的。而右边这块芯片由于传过来的是一个零,因此它不会工作,它没有被选中。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uG81rJvx-1674904175349)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128155347170.png)]

这种情况下, CPU 提供的低 13 位的地址,其实只会读取出左边这块芯片对应存储单元的8比特的数据。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mLJkrZ7O-1674904175350)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128155433357.png)]


<2> 现在换种情况,我们让 A13 和 A14 分别为 0 和1。这种情况下,右边这块芯片会被选中,而左边这块芯片输入信号,片选信号是0,它不会工作。此时 CPU 提供的低十三位的地址,其实指明的是右边这块芯片的一个存储单元。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m19MNYCm-1674904175350)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128155606856.png)]

<3> 现在看起来问题已经解决了,但是事情并没有那么简单。如果此时我们给A13、 A14 输入的都是两个1 的信号,那么这两块芯片是不是都会被选中?这样又出现了之前所说的问题,两边会同时读或者同时写数据,再次出现了冲突的情况。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lSrNaJHT-1674904175350)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128155654249.png)]


所以如果我们采用这样的连线方式,想要让存储器正常的工作,我们只能允许 A14 和 A13 这两位要么为01,要么为10,不可以是11和00

当 A14 为0, A13 为 1 的时候(01X XXXX XXXX XXXX),此时我们选中的是左边这块芯片。而 A14 为1, A13 为 0 的时候(10X XXXX XXXX XXXX),我们选中的是右边这块芯片。

我们再结合 A0 到 A12 这些更低位的 13 位,就会发现左边这块芯片,它所对应的地址应该是 010 0000 0000 0000 (最低地址),直到 011 1111 1111 1111(最高地址),这样的一个地址范围。总共有8k个地址。

而右边这块芯片,它所对应的地址应该是100 0000 0000 0000(最低地址)直到101 1111 1111 1111(最高地址),这样的一个范围。同样也是8k个地址。

此时如果把它们看作是一整个存储器,我们会发现在存储器当中, 00 开头的地址我们不能用,11开头的地址我们也不能用,所以这种连线方法是有待改进的。

这种连线方法称为线选法,指我们会用一个专门的地址线作为片选信号,来选中其中的某一块芯片。

如果 CPU 有 n 条多余的地址线,采用这种方法,我们就只能有 n 个片选信号。

(4)1-2译码器

接下来我们对线选法进行一个优化。

给 A13 输出的线路把它分两边接出去。上面这一端我们接了一个非门

画非门的核心在于前边这儿要有一个小圆圈。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1vb4zfZa-1674904175351)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128161003843.png)]

<1> 假设此时CPU的A13输出信号是1,这条信号输出之后,下面这一条线我们应该接收到的是一个1,因为是一个直接的连接。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gassCNRm-1674904175351)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128161126949.png)]

而另外一条线, 1 这个信号经过非门的处理之后, 1 会变0,因为非门就是一个取反,所以右边芯片接收到的信号应该是 0 。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJpCakua-1674904175352)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128161233237.png)]

由于片选信号是高电频有效,因此这种情况下左边这块芯片正在工作,右边没有工作。

此时 CPU 通过低 13 位的地址指明了要读出的是哪一个存储单元,读出的是左边这块芯片的数据。

<2> 接下来再换一种。如果此时A13 是0,左边这输入的片选信号应该是0,右边这输入的就是1。

因为进行了一个非门的取反,所以此时应该是右边这块芯片工作,左边这块芯片不工作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MUHP45B2-1674904175352)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128161604329.png)]

因此这个时候 CPU 给出的低13 位数据,其实指明的是右边这块芯片的某一个存储单元,读出的是右边这块芯片的数据。

所以我们增加了这样的一个小电路之后,左边这块芯片,它的合法地址范围就变成了一个 1 后面再跟任意的 13 位地址信息(1X XXXX XXXX XXXX),而右边这块芯片应该是 0 开头后面 13 位任意的地址信息(0X XXXX XXXX XXXX)。

我们再结合 A0 到 A12 这些更低位的 13 位,就会发现左边这块芯片,它所对应的地址应该是 10 0000 0000 0000 (最低地址),直到 11 1111 1111 1111(最高地址),这样的一个地址范围。

而右边这块芯片,它所对应的地址应该是00 0000 0000 0000(最低地址)直到01 1111 1111 1111(最高地址),这样的一个范围。

进行这样的改造之后,我们会发现整个存储器它的地址空间就是从00 0000 0000 0000一直到11 1111 1111 1111 ,整个主存的地址空间是连续的


我们这儿设计的小电路,可以把它看作是一个1-2译码器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AGmJqjB4-1674904175352)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128162659105.png)]

什么叫1-2?

我们输入1位的地址信息,这1位的地址信息有可能呈现出 2 的一次方两种不同的状态。这两种不同的状态会被译码器翻译为要么是上面这条线高电平,要么是下面这条线高电平。这是1-2译码器的意思。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nhIQ9CMF-1674904175352)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128162810442.png)]

(5)译码片选法

之前其实我们接触过更复杂的译码器,因此我们可以顺着这个思路往下优化。我们可以使用一个译码器来处理 CPU 的高位地址部分,这种方法我们把称为译码器片选法

如果 CPU 能够给出 n 位的地址信息,那么通过译码器的翻译,我们可以得到 2 的 n 次方这么多个片选信号。来看一下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5MBgeTKp-1674904175353)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128163126680.png)]

这是我们之前小结中见过的一种译码器,它的输入端可以输入3个比特的数据,刚好可以和 A13 到 A15 对应上 3 位的地址信息,我们可以把它对应成 2 的 3 次方,也就是 8 种不同的状态。

因此, 译码器的输出端总共有 8 条线,我们可以给这 8 条线进行一个编号,分别是 0、1、2……7。

所以,如果输入端输入的是 3 个0,译码器的 0 号片选线就会被选通。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1LPfAuW-1674904175353)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128163407806.png)]

也就是最上面这条线会发出一个高电频信号,下面这些线都是低电频。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T8pgVPVG-1674904175353)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128163449279.png)]

和之前的命名规则类似,我们可以把译码器把它命名为 3-8 译码器。因为我们输入了 3 个信号,输出的是 8 个信号,所以叫 3-8 译码器,是不是类似的?

当然,也可以有 2-4 译码器,输入 2 个,输出 4 个。

接下来再看个例子,如果输入的是001,与这个二进制数对应的是十进制的1。因此此时译码器编号为1的这一根选通线会被选通,其他的线输出的都是低电平。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P8r7rbJT-1674904175354)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128163907769.png)]

又如果是010 ,对应十进制的2,所以译码器编号为2的这一根选通线会被选通,其他的选通线都保持低电平。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e9QT0IRK-1674904175354)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128163938012.png)]

我们给译码器的这些输出线的编号也可以是逆过来的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OtagkqlG-1674904175355)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128164512231.png)]

四、主存容量扩展

1.主存容量扩展–字扩展

现在有了译码器之后,我们再来看一下如何更好地进行字扩展

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NaOj33zU-1674904175355)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128164830630.png)]

这儿,我们给出了一个 2-4译码器,输入 2 个信号,输出 4 个信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-okRJe64F-1674904175355)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128164741342.png)]

在图示当中,我们搞了 4 块 8K乘以8位的存储芯片,每一块芯片我们都会接收 CPU 发过来的低 13 位的地址信息。

这些地址线如果是像刚才那样从上面连过来,这么画,整个图看起来会比较乱,所以我们这次改变了划线的方式。但是大家需要知道,并不是地址信息是从左边这块芯片传过来的。不是这个意思,所有的地址信息都是直接来自于地址总线,都是CPU传过来的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jJBVztZv-1674904175356)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128165338217.png)]

另一点需要注意的是,我们这给出的图示当中,CS信号上面已经加了一条横线,要低电平才有效。

当我们在表示低电平有效的输入信号的时候,我们通常会在上面画一个小圆。所以大家在看书或者做题的时候, CS 还有 CS 上面一条横线,这两种情况都是有可能遇到的。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u3ba8DTX-1674904175356)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128165534778.png)]

既然是低电平有效,那就意味着我们要输入的是 0 这样的一个信号。所以译码器的输出端我们也画了一个小圆圈。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kef6QYei-1674904175356)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128165642209.png)]

非门的图示最重要的就是小圆圈,小圆可以理解为进行了一个取反。刚才我们不是说译码器的输出,会输出一个1,剩下全部0。现在我们把所有的这些位都取反,是不是就意味着输出的只有一个0,剩下的全是1。

好,这是大家看图的时候会遇到的一些小细节。


现在对于2-4译码器,我们输入的是A13、 A14 这两位,如果这两位都是0,这个时候 0 号选通线会被选通,其余的这些片选信号都是无效的。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uEqempTU-1674904175356)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128170103611.png)]

类似的,如果 A13 为1, A14 为0,就是 1 号选通线被选通(二进制01对应的十进制为1)。只有第二片正在工作,其他的芯片都没有被选中。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YrXlZCYv-1674904175357)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128171849099.png)]


然后再结合着低13 位的信息,我们不难得出这样的结论。

如果我们要访问的是第一块芯片那么A14、A13 这两个高位必须为全0。这块芯片它所对应的存储地址的范围应该是00 0…0一直到00 1…1,总共 8K 个地址。

而第二块芯片就应该对应的是01,后面再跟上 13 位的地址,即01 0…0到01 1…1;第三块芯片应该是10,后面跟上 13 位的地址,即10 0…0到10 1…1;第四块芯片应该是11,后面跟上13 位的地址,即11 0…0到11 1…1。

所以采用译码片选法之后,我们就可以保证整个主存它合法的地址空间是从全 0 开始,一直到 15 个全 1。这是一个连续的地址范围,也是我们实际应用里边可以采取的一种设计思路。


📚补充

在考试的时候,为了考察大家的理解程度,它有可能是这么接的。给 A13 和 A15 作为译码器的输入信号。这样无论A14 这一位,它到底是取 0 还是取1,它都影响不到我们选片操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8HFAFLFk-1674904175357)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128173125962.png)]

当 A15 和 A13 都为 0 的时候,无论我们的 A14 取什么值,此时选中的都是第一块芯片。 A15 和 A13 分别为 0 和 1 的时候,选中的是第二块,剩下的都是类似。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jl4Ot2dM-1674904175357)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128173459580.png)]

我们会发现,对于第一块芯片来说,当 A14 为 0 的时候,我们有可能取得 8K 个地址。当 A14 为 1 的时候,这儿又有 8K 个合法的地址。

所以本来这样的一块芯片,它只有 8K 个存储单元。然而会有 16K 这么多个合法的地址对应到这 8K 个存储单元,这对于其他这几块芯片也是类似的。

所以在实际应用当中,这种设计是不可能采用的,只有可能在考试当中遇到。

回到之前正常的设计。

我们是不是还有 A15 这一位没有使用?想要再使用这一位很简单,我们只需要换一个3-8译码器,然后再增加 4 片 8K乘以8位的存储芯片就可以了(2^3=8,需要8个芯片)。 这儿就不再赘述了。


🚗回顾

我们来快速回顾一下。字扩展法可以有限选法片选法这样的两种线选法。

限选法就是用 n 条多余的地址线把它们作为 n 个片选信号,这种电路会比较简单,但是缺点就是地址空间不连续。

译码器片选法可以把 n 位的地址信息映射为 2 的 n 次方个选片信号,设计电路会更复杂,但是地址空间是连续的,所以实际应用中都是采用片选法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WcqYQaJ3-1674904175358)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128174211354.png)]

2.主存容量扩展–字位同时扩展

目前为止,我们学习了什么叫位扩展,什么是字扩展

位扩展可以使存储器的字长变得更长,从而更好地发挥数据总线的数据传输能力;而字扩展可以增加存储器的存储字数,可以更好地利用 CPU 的寻址能力。

这两种方法可以在不同维度上扩展主存的总容量。好,既然有位扩展,也有字扩展,我们是不是还可以把这两种方法进行一个结合?二者的结合就是字位同时扩展法,其实原理都是类似的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-91vX4HFF-1674904175358)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128174548159.png)]

(1)位扩展

我们这图里面总共画出了 8 块芯片,其中每两块芯片为一组,实现了位扩展

因为每一块芯片它是 16K 乘以4位的,而 CPU 可以同时读写8位,所以我们可以让两块芯片为一组。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JgENmuTe-1674904175358)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128174713527.png)]

上面这块芯片①,我们可以把它连接上,比如 D0 到 D3 这四根数据线;而后面这块芯片②,我们可以把它连接上D4一直到D7这四根数据线。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6BkmHMW-1674904175358)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128174804320.png)]

这画的空心箭头,指的是数据总线。数据总线总共有8位,其中低8位可以由上面这块芯片①传出,高8位由下面这块芯片②传出。好,这是位扩展,两块芯片为一组。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CSUIvgx0-1674904175359)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128174904403.png)]

(2)字扩展

再来看字扩展

每一块芯片,它的字数是16K, 16K对应 2 的14 次方,所以芯片内的地址总共需要用 14 位来表示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jZUGpLsn-1674904175359)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128175155989.png)]

我们可以把 CPU 的 A0 到 A13 这 14 位的地址信息,作为片内地址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ov0qt0mi-1674904175359)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128175228880.png)]

CPU 还有两个高位地址A4、A15没有使用,我们可以给它接上一个 2-4 译码器,总共有 4 个片选信号,所以我们可以接上这样的 4 组。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmzbuVJf-1674904175360)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128175357090.png)]

每一组的存储芯片总共有16K这么多个存储单元,每一个单元可以存8位的数据,总共有 4 组,所以我们就可以得到一个 16K 乘以8位的存储器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Oyzb8utp-1674904175360)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128175503615.png)]

(3)地址

再来看一下每一组芯片它们所对应的合法的地址。

第一组芯片显然是 00 开头,第二组是 01 开头,第三组是 10 开头,第四组是 11 开头。整个主存的地址空间是从全 0 到全1,并且中间是连续不间断的。同时主存的字长也能够完美地匹配 CPU 对数据的读写能力。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LMJlzI6o-1674904175360)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128175715032.png)]

这就是字位同时扩展的好处。

五、译码器

接下来我们还需要补充关于译码器的一些小的知识点、考点。

1.第一种译码器

之前我们给出的3-8 译码器有3个输入端, 8 个输出端。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v1P46GL3-1674904175361)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128180543472.png)]

给定一个输入信号之后,我们的输出端只有一条信号线会输出高电平,其他都会保持低电平。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TCaGnAHU-1674904175361)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128180614112.png)]

这个译码器就可以和高电瓶有效的这种存储芯片配合着使用,因为它输出的有效信号刚好是高电平,把它接上就可以。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tRNZsmWe-1674904175361)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128180746142.png)]

2.第二种译码器

接下来,再看译码器的另一种画法。

其实我们之前说到过,如果译码器的右边输出端这画了一个小圆,采用这种示意图表示的是我们输出的有效信号是0,其他的无效信号都是1,也就是在上边译码器的基础上取了一个反。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R9B8pugw-1674904175362)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128180852016.png)]

这种译码器就比较适合和低电平有效的芯片配合着使用。因为输出的有效信号是一个低电瓶,我们直接把它接上就可以。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6DhaOAn-1674904175362)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128181001527.png)]

所以在画图的时候,这芯片和译码器应该是配套的。本质上还是那个问题,要注意到底是低电平有效还是高电平有效。

3.使能端

现实中的译码器,除了输入的地址,还有输出的选通信号之外,其实还会有这样的一个接口,叫做使能端。 en 指的是enable,这个地方没有画小圆,意思就是它是高电平有效。这个使能端就是使译码器能够工作的意思,就有点类似于存储芯片的片选信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yNCCdnsY-1674904175363)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128181122075.png)]

这个使能端有什么作用,我们一会再来解释。

还有一种大家有可能遇到的更复杂的译码器,会有多个使能端,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KzpZnpSp-1674904175363)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128181522688.png)]

注意观察下面这两个输入信号,画了小圆,意思就是下面这两个使能信号必须是低电平才有效,而上面使能信号必须是高电平才有效。只有这样译码器才可以开始工作。

这个译码器就是《数字电路》那门课里边很喜欢考察的74LS138,大家可以去淘宝搜一下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y70m5lgF-1674904175363)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128181715089.png)]

现在注意观察。我们输入的这三个使能信号100(1蓝色的部分),刚好可以让译码器开始工作。

此时我们输入的地址信号101(CBA),把它转成十进制就是5,所以译码器的输出端只有 Y5 这条线输出了一个0,而其他都是无效的1。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Td3Q1Hhl-1674904175364)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128182008515.png)]

现在我们让使能信号变得无效,比如输入三个0,由于最上面使能信号无效,所以此时译码器的所有的输出端输出的都是1。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0iP1jD92-1674904175364)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128182111366.png)]

类似的,如果使能信号是其他的一些非法的状态,译码器输出的也都是全1。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8mxlEIx0-1674904175364)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128182209826.png)]

☕️ 这个特性有什么作用?

CPU 可以使用译码器的使能端来控制片选信号的生效时间。

来看一下什么意思。其实,CPU 里边除了地址的输出,还有数据的输入输出之外,还会有一个很重要的输出信号,叫MREQ 就是 memory request 主存储器请求的一个信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qWtOs4id-1674904175365)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128182429830.png)]

当 CPU 想要正式的访问主存的时候,就会使这个信号有效。由于它上面画了一横,所以就意味着输出的有效信号是一个低电平信号。

现在我们把刚才的译码器,它的 G1 还有 G2A 这两个使能端都给它们一个合法的值(1 0)。把最下面的 G2B 给它接上 CPU 的输出端MREQ。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T3c7ilis-1674904175365)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128182727385.png)]

当 CPU 没有发出主存请求信号的时候, G2B 输入的就是一个1,也就是译码器不工作,所有的片选信号都是1,没有任何一个存储芯片会被选通。

而只有 CPU 发出请求信号之后, G2B 接收到 0 这个信号,译码器才会把输入的这节地址信号(CBA)映射为其中某一位的选通信号。


🍸CPU与主存配合工作过程

实际当中 CPU 和主存是这么配合工作的。 CPU 首先会通过地址线送出地址信号,包括更低的 13 位(A0、A1、A2…A12),还有更高的这 3 位(C、B、A)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TOF2RAcL-1674904175366)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128183439301.png)]

地址信息是通过电信号来输出的。所以当 CPU 刚开始输出这些电信号的时候,电信号有可能不稳定。

因此 CPU 送出这些地址信息之后,它需要等一下,等电流稳定之后,再发出主存请求信号。也就是让译码器的某一个选通线有效。

这样我们就可以保证,当一块存储芯片它被选通的时候,这块存储芯片所接收到的地址信号,这些电信号一定是稳定的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-99IlyHnP-1674904175366)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128185053992.png)]

这就是译码器使能端的一个作用。


4.RAM的读写周期

讲到这儿,大家可以再回去看一下 3. 3之前的某小节,其中有一个部分讲的是 RAM 的读写周期,这个部分其实不太重要,所以我们之前把它给跳了。

我们结合刚才分析的过程,才可以更好地理解时序图的含义。

好,来看一下。上面这一溜表示的是 CPU 送出了地址信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mk68FtOY-1674904175366)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128183558035.png)]

从这个时刻开始, CPU 送出了地址信息。但是刚才我们说 CPU 会稍微等一段时间,等地址信号稳定之后才开始发出读或者写的请求。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MCqbI4IN-1674904175367)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128183717396.png)]

所以一直等到这个时刻(上图),CPU 才会发出存储器请求信号。这会导致译码器的某一个输出端输出一个有效的片选信号,使得某一片存储芯片被选通。所以这个地方第二行表示的是片选信号的有效时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vy4kdZaU-1674904175367)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128183823599.png)]

在这个时刻(上图),地址信号稳定了,同时某一片芯片被选通。

经过一小段时间之后,芯片里的某一个存储单元的数据就可以通过数据总线给传出。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g4dzpfFM-1674904175368)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128183946221.png)]

所以这写的是 dout,把数据传出的意思。

等数据传出了一小段时间之后, CPU 就可以撤销存储请求信号,也就是撤销片选信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AGh5MI8O-1674904175368)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128184158572.png)]

刚才输出的这些数据也需要经过一小段时间才可以传给CPU。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l2sPAgvl-1674904175369)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128184242103.png)]

CPU 确定接收到这些数据之后,它才会撤销刚才发出的这些地址信号。好,这是之前跳过的一小部分内容,结合我们刚才的讲解,会更好理解。

时序图里面地址信号,它是不是会往上也会往下?意思就是我们传过去的地址有可能是0,也有可能是1。很多0101,所以它是用这样的图来画。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ut5yys42-1674904175369)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128184438522.png)]

而对于CS片选信号,当它无效的时候是高电平,这被它涂成了黑色。当它有效的时候是低电频,所以会有一个斜坡。斜坡后这一段表示的就是低电平时期。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-of3RtROA-1674904175369)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128184716055.png)]

另外,对于数据的输出,这个部分也是灰色的,表示没有数据输出。在中间白色这一阶段,它同样是用了既有往上又有往下这样的画法。这也是表示输出的数据有可能为0,也有可能为1,有很多0101。如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hgSBuM4o-1674904175370)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128184645078.png)]

这就是我们之前没有提到的时序图。

六、总结

这一小节当中,我们学习了主存与 CPU 的连接,主要分为字扩展、位扩展、字位同时扩展。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZvQLTSxe-1674904175370)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230128180457224.png)]

首先我们需要理解每一块单独的存储芯片,它对外暴露出的这些接口分别有什么用,分别需要多少根,特别是地址线,还有数据线。

对于片选信号CS,我们在画图的时候也需要注意,它到底是高电平有效还是低电平有效。如果是低电平有效,那我们在画图的时候需要在芯片的头上画一个小圆圈。

考试当中比较容易考察的我们画红框的部分。首先是译码器的使用,大家需要根据译码器的输入和输出的连线来分析每一块存储芯片,它的地址空间是多少。

对于字位同时扩展法,通常考察的是存储芯片的一个选择。

不管是数电还是计算机组成原理的某些学校的期末考试都有可能会考察74LS138 型号的译码器芯片。当题目当中告诉你 74LS138 的时候,你需要知道这个译码器的结构是什么样的,它有几个输入端,有几个输出端。


请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/182637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

19行列式公式和代数余子式

行列式公式 学习了关于行列式的这么多性质&#xff0c;现在我们有能力推导二阶行列式公式了&#xff1a; 观察上面的推导过程&#xff0c;不难发现&#xff0c;行列式的值等于使用性质3.b 分解后所得的那些非零行列式的和&#xff0c;所谓的非零行列式也即该行列式各行各列都…

【算法基础】大整数加减乘除法(高精度)

大整数的思想:用数组存储大整数(超长整数),比如存储1000位的整数只需要开辟一个长度为1000的数组(C++通常使用vector),今天将通过OJ例题来介绍高精度问题。(完全0基础的先建议自主学习一下,本博客默认已了解大致思想) 一、 大整数加法(大整数 + 大整数) (一)Qu…

6 逻辑斯蒂回归

文章目录回归问题和分类问题问题提出逻辑回归二分类问题逻辑函数与线性回归方程的不同模型变化loss函数不同BCEloss函数的介绍课程代码课程来源&#xff1a; 链接课程文本来源借鉴&#xff1a; 链接以及&#xff08;强烈推荐&#xff09; Birandaの回归问题和分类问题 有监督学…

Docker安装Tomcat服务器

Docker安装Tomcat服务器查看tomcat镜像下载 tomcat镜像启动tomcat容器浏览器访问容器中的tomcat1 查看ip2 查看容器是否启动3 进入容器重启容器浏览器访问查看tomcat镜像 docker search tomcat下载 tomcat镜像 咱直接下载最近版本的tomcat镜像 docker pull tomcat查看一下本…

芯片验证系列——激励(stimulus)

对于芯片验证&#xff0c;主要的挑战在于&#xff1a;1.如何打出所有可能的激励灌给DUT&#xff1b;2.如何在各种可能得激励情况下&#xff0c;判断出不符合硬件描述的行为。本文单单聚焦于一些关于构造stimulus方面的想法吧&#xff0c;结合了红皮书, writing testbench和项目…

储殷黄日涵教授《丁香花》唐磊推荐杨语莲,意味拜师赵本山有望吗

熟悉娱乐圈的人都知道&#xff0c;这个圈子包含有很多潜规则&#xff0c;尤其是一些女艺人&#xff0c;想要有所成就&#xff0c;不是有才华就可以的。就拿音乐人杨语莲来说&#xff0c;她是一个非常有才华的歌手&#xff0c;然而就因为不接受潜规则&#xff0c;至今仍是歌红人…

设计模式:单例模式

1、单例模式 单例模式是指在整个系统生命周期内&#xff0c;保证一个类只能产生一个实例&#xff0c;确保该类的唯一性。 为什么需要单例模式 单例模式是为了保证程序的线程安全。 线程安全&#xff1a; 在拥有共享数据的多条线程并行执行的程序中&#xff0c;线程安全的代…

cuda和pytarch的安装-参考官网的安装-较为通用

文章目录cuda 安装PyTorch 1.x版本安装cuda 安装 官网&#xff1a;cuda各个版本安装教程 选择相应版本点击版本前方链接就可以进入安装教程页面 例如&#xff1a;我想要为ubuntu系统安装一个11.7版本的cuda&#xff0c;则选择11.7版本的连接&#xff0c;然后进入安装教程页面…

深度学习之优化算法

入门小菜鸟&#xff0c;希望像做笔记记录自己学的东西&#xff0c;也希望能帮助到同样入门的人&#xff0c;更希望大佬们帮忙纠错啦~侵权立删。 目录 一、优化算法与深度学习 1、优化算法对于深度学习的意义 2、优化算法与深度学习的关系 3、优化算法在深度学习中的主要挑…

如何用Spring整合MyBatis和Junit

Spring整合MyBatis和Junit一. 整合MyBatis1. 目录&#xff1a;2. pom.xml&#xff1a;3. domain层&#xff1a;4. dao层&#xff1a;5. service层&#xff1a;AccountService接口类&#xff1a;AccountServiceImpl实现类&#xff1a;6. jdbc.properties配置文件&#xff1a;7. …

HBase基于HDFS上是如何完成增删改查功能的

HDFS只支持文件append操作, 而依赖HDFS的HBase如何完成增删改查功能&#xff1f; 1.如何理解? 1.这句话有个更专业的说法&#xff1a;HDFS 采用数据流方式来访问文件&#xff0c;只支持单个客户端向一个文件追加数据. 2 上半句话&#xff0c;访问文件不外乎读和写&#xff0…

SecureCRT for mac的坑

最新macOS升级到13&#xff08;原来是11&#xff0c;一直没升&#xff09;&#xff0c;升级之后输入法和SecureCRT挂了。 记录一下SecureCRT&#xff0c;备忘 1、第一个坑居然是下载 网上找破解版&#xff0c;想找个新一点的版本&#xff0c;发现都是收费的 收费也就罢了&…

三、优惠卷秒杀

文章目录优惠卷秒杀1.redis实现分布式ID2.优惠券秒杀下单3.超卖问题4.lua脚本5.分布式锁6.redis stream消息队列实现异步秒杀7.redis消息队列list实现消息队列PubSub实现消息队列stream实现消息队列stream的消息队列-消费者组学习黑马点评项目整理总结:https://www.bilibili.co…

腾达Tenda路由器中继wifi步骤

前提&#xff1a; 你有一个信号比较弱&#xff0c;但能上网的wifi&#xff08;暂时叫它1号wifi&#xff09;&#xff0c;并知道其密码你有一个有中继功能的路由器&#xff0c;比如Tenda某型号路由器&#xff0c;插上电&#xff0c;这个路由器的wifi暂时叫它2号wifi 长按下拉菜…

数据库面试题总结

文章目录一、索引相关&#xff08;1&#xff09;什么是索引?&#xff08;2&#xff09;索引是个什么样的数据结构呢?&#xff08;3&#xff09;为什么使用索引&#xff1f;&#xff08;4&#xff09;主键和索引的区别?&#xff08;5&#xff09;说一说索引的底层实现&#x…

educoder数据结构 排序 第2关:实现快速排序

本文已收录于专栏 &#x1f332;《educoder数据结构与算法》&#x1f332; 任务描述 本关要求通过补全快速排序私有函数QSort__来供函数QuickSort调用&#xff0c;以此来实现快速排序的功能。 相关知识 快速排序的基本过程是&#xff1a;从待排序记录中任选一个记录&#…

MS-Model【2】:nnFormer

文章目录前言1. Abstract & Introduction1.1. Abstract1.2. Introduction1.3. Related work2. Method2.1. Overview2.2. Encoder2.2.1. Components2.2.2. The embedding layer2.2.3. Local Volume-based Multi-head Self-attention (LV-MSA)2.2.4. The down-sampling layer…

【通信原理(含matlab程序)】实验五:二进制数字调制与解调

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; 本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识&#xff0c;如果大家喜欢&#xff0c;别忘点个赞加个关注哦&#xff0c;让我们一起共同进步~ &#x…

Arduino的45种传感器测试(初级)

前言 说是Arduino的传感器&#xff0c;实际只要明白接口通信方式&#xff0c;其他开发板也可以使用。这一篇的测试是对一些开关和led等的测试&#xff0c;只使用了3.3v / 5v电源和万用表就可完成。 震动开关 实物图和原理图如下 原理&#xff1a;中心有一个金属线的空心黑…

Java多线程-Thread的Object类介绍【wait】【notify】【sleep】

Thread和Object类详解 方法概览 Thread wait、notify、notifyAll方法详解 作用 阻塞阶段 使用了wait方法之后&#xff0c;线程就会进入阻塞阶段&#xff0c;只有发生以下四种情况中的其中一个&#xff0c;线程才会被唤醒 另一个线程调用了这个线程的notify方法&#xff0…