版权声明:本文为博主 (是小D吖)原创文章,遵循 CC 4.0 BY-SA 版权协议。
本文链接:https://blog.csdn.net/qq1350975694/article/details/107290348
文章目录
涉及到的几个概念
MDR:数据寄存器,用来存入内存中读入/写出的信息。
MAR:地址寄存器,用来存放当前CPU访问的内存单元地址
地址线与数据线
- 地址线的作用:地址线的作用就是决定了数据的存储单元的位置,也决定了你有多少个能够存放数据的存储单元个数,这点不懂没关系,后面会解释的。
- 数据线的作用:数据线的作用就是决定了二进制的数据。
- 举个例子:地址线就是你家的门牌号,数据线就是待在家里边的你。比如现在有人想要找你,就要通过门牌号来找到你,也就是通过地址线来找到数据线决定的数据。
字扩展与位扩展
Xk × X位 其中Xk就是代表字扩展里的字,X位就是代表位扩展里边的位。
- 字扩展
字扩展就是要增加存储字的数量,也就是地址线的位数
举个栗子:现在我能搜索的门牌号范围只有一个村,现在我想能够搜索到一个镇的门牌号,怎么办?当然是要扩大能够搜索的范围呀,字扩展就是起到的这么一个作用。
- 例如利用1K×8位的DRAM芯片,设计2K×8位的DRAM存储器(字扩展)
这里为什么要把A10设置成片选端呢?因为它们不能同时工作,每个芯片提供8位数据,在数据线上会造成混乱,A10做片选信号,控制选中哪个芯片。 - A10等于0的时候范围是:A10A9A8A7A6A5A4A3A2A1A0=00000000000-01111111111B=0-1023
第一个芯片会工作,当A0到A9都为1时再增加A10就会变为1此时根据图可以看出CS0非=1是高电平,A10在经过一个非门使CS1非接收到0,此时第二个芯片工作,从10000000000=1024开始。 - A10等于1的时候范围是:A10A9A8A7A6A5A4A3A2A1A0=10000000000-11111111111B=1024-2047
扩展之前是0-1023,扩展之后是从0-2047.
这样就形成了字扩展。对应了上边的地址线作用中的定义,这样就扩大了存储单元的个数。
- 位扩展
位扩展就比较简单了,位扩展就是增大数据的范围,原本是四位D0到D3对应范围是0000-1111B= 0 - 15;变为八位之后是D0到D7对应范围变成00000000 - 11111111B=0 - 255;对应的图上的连线两个芯片八根数据线从D0到D7。一个芯片是数据的高四位,一个芯片是数据的低四位。
扩展之前是0-15,扩展之后0-255.
因为他们的地址线是连在一起的所以地址的范围两个芯片是一样的,对应的数据的地址也是一样的,取数据的时候根据地址取出第一个芯片的四位和第二个芯片的四位,最后形成八位的数据。
- 字位扩展
这里A11A10两个二进制数可以有00,01,10,11四种情况对应了四组二个芯片组成的八位存储器的选择。若有八个的话就要有A12A11A10三个二进制数000,001,010,011,100,101,110,111来代表八组二个芯片组成的八位存储器。
如果觉得博主写的可以的话,动动你的小手点个赞吧。