线路位宽和CPU位宽详解,是个人就能懂(022/12/6笔记)

线路位宽和CPU位宽

什么是线路位宽:

在了解什么是线路位宽之前我们先了解一下CPU的结构

其中我们需要着重看一下寄存器和总线

寄存器:

CPU 中的寄存器主要作用是存储计算时的数据,你可能好奇为什么有了内存还需要寄存器?原因很简单,因为内存离 CPU 太远了,而寄存器就在 CPU 里,还紧挨着控制单元和逻辑运算单元,自然计算时速度会很快。

总线:

简单来说就是传输数据的,看名知意

然后再来看看什么是线路位宽

线路位宽:CPU操作指令数据通过高低电压变化进行数据传输,传输时候可以串行传输,也可以并行传输,多少个并行等于多少个位宽。

从上面我们了解到总线用来传说数据,从线路位宽的定义我们看到其中这么一句CPU操作指令数据通过高低电压变化进行数据传输,意思是给cpu和输入输出设备或者存储单元之间的数据传输,通过高低电平来实现意思就是1和0两种电平,但传输时候可以串行传输,也可以并行传输这句又是什么意思?其实也很好理解:

CPU 要想操作的内存地址就需要地址总线:

  • 如果地址总线只有 1 条,那每次只能表示 「0 或 1」这两种地址,所以 CPU 只能操作 2个地址(注意,不要理解成同时能操作 2 个内存地址,其实就是一根线,要么有信号,要么没信号,有信号代表一个地址没信号代表一个地址);

  • 如果地址总线有 2 条,那么能表示 00、01、10、11 这四种地址,所以 CPU 能操作的内存地址最大数量为 4(2^2)个。

那么如果有3条总线,就可以操作2^3=8个地址,4个就是2^4=16个地址,假如有32根总线,我们就能操作2^32=4294967296个地址,一个地址就会用一个32位的二进制数来标识,也就是32bit,总共表示地址所占的内存也就是2^32=4G,是不是很熟悉,也就是说一个32位的操作系统,你给他插8G的内存条是没用的,因为他的CPU的总线如果是32的话最大只能标识4G内存,但是呢有人要说了,虽然我CPU32位,我总线整个64条的地址总线不行吗?

可以是没问题,但是那样的话你传输的地址值就是64位的,你让我一个32位的CPU怎么处理,这里涉及到一个概念,就是32位CPU和64位CPU的区别(先告诉你答案:32位CPU就是一次处理的数据最大可以是2^32,64位同理),也就是说32位的CPU要处理64位的地址就要分两次,高32位和低32位,就是两次32位地址分开计算,会很麻烦,大大的拖垮CPU的效率,所以一般情况为了最大程度发挥CPU的性能CPU的位数和地址总线的条数是一样的

我们刚讨论了CPU位数小于地址总线条数的情况,如果大于呢?

大于的话也很好理解,如果大于,CPU可以处理32位的地址,你提供给它20位,那么CPU还剩下12位每次空闲或者处理下一个数据的地址,空闲的话显然浪费了CPU的性能,如果处理下一个数据的地址但又不能一次处理完,20位的地址你处理12位剩下8位怎么整,这不就等于把地址分割成很多小碎片,不仅处理起来麻烦,管理起来更麻烦

最后还可能有人说,如果我是16条的地址总线呢

我一次处理两个16位的地址,这不挺好的,我处理个1+1,一次读取两个数据进来美滋滋,首先这位同学提问的很好,因为大家都知道64位的系统是可以兼容32位的,原因肯就在这里,个人猜测,32位的CPU可以用16位的地址一个原理,但是但是但是,别忘了2^16=?肯定比2^32小对吧,32位地址还只能装4G内存呢,16位更别说了,所以64位还是香,综上,你就知道了地址总线和CPU的关系

这里有个问题不知道有人看出来没有,也是困惑我的问题,留在文末说

回到主题,想必大家应该也差不多猜到什么是串行什么是并行,串行就是一次传一个bit的数据,一个个来,32位地址就要传32次,并行呢,就是一次传输多个数据,而并行传输的这个数据的大小就是位宽,线路上的并行数据传输,就是线路位宽

CPU位宽:

知道了线路位宽,那CPU位宽大家肯定也猜到了,就是CPU一次处理的数据位数,32位CPU位宽就是32bit,64位CPU位宽就是bit,如果前面你都懂了,那么很显然我们CPU位宽最好还是大于等于线路位宽的好,为什么大家可以自行思考。

需要注意的是:

并不代表 64 位 CPU 性能比 32 位 CPU 高很多,很少应用需要算超过 32 位的数字,所以如果计算的数额不超过 32 位数字的情况下,32 位和 64 位 CPU 之间没什么区别的,只有当计算超过 32 位数字的情况下,64 位的优势才能体现出来

最后就是我的困惑,在介绍线路位宽时候举例时候说到

大家都知道8bit=1byte=0.001kb,那么4294967296bit=536870912byte=0.5G,我上面写的是4G,这也就是我疑惑的地方,我查阅了一些资料,没找到细说这个的,基本上都是我我上面的理论也就是2^32=4G,然后一笔带过,有大佬知道欢迎留言

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值