C语言内存编址

一、总线

1.总线的含义

总线是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。总线是一种内部结构,它是CPU、内存、输入、输出设备传递信息的公共通道。主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线

总线的特点[引用]
共享性
总线是供所有部件通信共享的,任何两个部件之间的数据传输都是通过共享的公共总线进行的。
独占性
当一个部件占用总线与另一个部件进行数据通信时,其他部件就不能再占用总线。

2.总线的分类

按总线上传输信号的不同来分[参考]

地址总线:
地址总线是用于传递地址信息的总线。CPU(中央处理器)是通过地址总线来指定存储单元的,而内存是通过地址来管理的。CPU想从内存中的某个地址空间上存储一个数据,CPU就需要在地址总线上输出这个存储单元的地址。地址总线的宽度(地址总线根数)决定了CPU的寻址能力,也就是CPU能达到的最大地址范围。如果CPU有32根地址总线,每根地址总线上只能传输0(低电平)和1(高电平)两种电信号(计算机中数据是以二进制的形式存储),所以32根地址总线总共能传送2^32种信息,即CPU的寻址能力能达到2^32,CPU可以对2^32个存储单元进行寻址。所以如果一个CPU有N根地址线,那么就说这个CPU的地址总线的宽度就为N,CPU的寻址范围为0~2^32,即这样的CPU最多可以寻找2^32个内存单元[参考]
在这里插入图片描述 数据总线:
CPU与内存或者其他器件之间的数据传输是通过数据总线来进行的。数据总线的宽度(数据总线的根数)决定了CPU和外界数据的传输速度。例如:8根数据总线一次即可传送8位(bit)二进制数据(一个字节);16根数据总线一次可传送16位二进制数据(两个字节)。

如8位数据总线:
CPU分两次传送数据89D8,第一次传送D8,第二次传送89:(89D8是16进制数,转换为二进制数为1000100100011011)
在这里插入图片描述16位数据总线一次即可传送上面的数据89D8:
在这里插入图片描述
控制总线:
CPU对外部器件的控制是通过控制总线进行的。控制总线用于传输控制信号和指令信息。它负责将指令和控制信号从CPU发送到各个计算机组件,协调和控制计算机的操作。这里的控制总线是一些不同控制线的集合。有多少根控制总线,就意味着CPU提供了对外部器件的多少控制。如CPU对存储器的读、写控制信号等。

总结三种总线的功能:
地址总线:用来传递地址信息
数据总线:用来传递数据信息
控制总线:用来控制各种控制信号

二、内存编址的意义

1.如何理解计算机中内存是按照字节来进行编址的这句话[引用]
内存是按字节进行编址,每个地址的存储单元可以存放8bit的数据。我们也知道CPU通过内存地址获取一条指令和数据,而他们存在存储单元当中。我们的数据和指令可能是刚好是8bit(1字节),也可能小于8位,顶多浪费几位(或许按照字节编址是为了节省内存空间考虑)。但当数据或指令的长度大于8bit,我们就需要使用多个存储单元来存放数据或指令。读取数据的时候,一次就读取多个内存单元。
2.内存编址的意义
CPU访问内存中的某个字节空间,必须知道这个字节空间在内存的什么位置,而因为内存中字节很多,所以需要给内存进行编址(就如同宿舍很多,需要给宿舍编号一样)。

  • 18
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米饭「」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值