内存单元,CPU对存储器的读写,三大总线
.存储单元
存储器被分成若干个存储单元,每个存储单元从0开始顺序编号。电子计算机的最小信息单位是bit。8个bit组成一个Byte(虽然现在一个字节可能不是8位,有宽字符出现了,但是一般我们的机器都是8位1字节的),也就是通常所说的字节。微型机存储器的存储单元可以存储一个Byte,即8个二进制位。一个存储器如果有128个存储单元,那么它就可以存储128个Byte。
微机存储器的容量是以字节为最小单位来计算的。
对于拥有128个存储单元的存储器,我们可以说,它的容量是128个字节。常见计量容量换算:
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
.CPU对存储器的读写
CPU要想进行数据读写,必须和外部器件(标准说法是芯片)进行下面三类信息的交互:
1.存储单元的地址(地址信息)
2.器件的选择(即选择要对那个一个器件进行操作 ),读或写的命令(控制信息)
3.读或写的数据(数据信息)
但是,CPU是通过上面讲地址、数据和控制信息传到存储芯片中的呢?电子计算机能处理、传输的信息都是电信号,电信号当然要用导线传送。在计算机中专门有链接CPU和其他芯片的导线,通常称为总线。总线从屋里上来讲,就是一根根导线的集合。根据传输信息的不同,总线从逻辑上分为三类,地址总线,数据总线和控制总线。
.地址总线
CPU是通过地址总线来指定存储单元的。一根导线在稳定状态只有两种状态,0或者1。一个CPU有N跟地址总线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元,即2的N次方Byte。
.数据总线
数据总线的宽度决定了CPU和外界的数据传送速度。8根数据总线一次可以传送一个8位二进制数据,即一个字节。
8088CPU数据总线宽度为8, 8086CPU数据总线宽度为16。如果传输数据89D8H,8088需要分两次传输,而8086只用传输一次。
.控制总线
CPU对外部器件的控制是通过数据总线来进行的。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。控制总线的宽度决定了CPU对外部器件的控制能力。
.内存地址空间
什么是内存空间?如果一个CPU地址总线宽度为10,那么可以寻址1024个内存单元,即寻址能力为1KB。这1024个可寻址的内存单元就构成这个CPU的内存地址空间。
.主板
每一台PC机都有一个主板,主板上的器件通过总线相连。这些器件有CPU、存储器、外围芯片组、扩展插槽等。扩展插槽上一般插有RAM内存条和各类接口卡。
.接口卡
CPU对外部设备都不能直接控制,比如显示器、音箱、打印机等。直接控制这些设备工作的是插在扩展插槽上的接口卡。扩展插槽通过总线个CPU相连,所以接口卡也通过总线和CPU相连。CPU可以直接控制接口卡,从而实现对外设的间接控制。
.各类存储器芯片
RAM:随机存储器,可读可写,但必须带电存储,掉电后存储内容丢失。
ROM:只读存储器,只能读取数据不能写入,掉电后内容不丢失。
.内存地址空间
CPU在操控存储器的时候,把它们当做内存来对待。把它们总的看作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们说说的内存地址空间。在汇编这门课中,我们面对的就是内存地址空间。内存地址空间的大小受CPU地址总线的宽度限制。8086CPU地址总线宽度为20,可以定位2的10次方个内存单元,即内存空间大小为1MB,80386CPU地址总线宽度为32,则内存地址空间最大为4GB。我们基于一个计算机硬件系统编程的时候,必须知道这个系统中的内存地址空间分配情况。这样才能保证读写操作是在预期存储器中进行的。最终运行程序的是CPU,我们用汇编编程的时候,必须从CPU的角度思考问题。
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |