线路位宽与 CPU 位宽

操作系统小议




背景知识

在这里插入图片描述

总线

总线是用于 CPU 和内存以及其他设备之间的通信,总线可分为 3 种:

  • 地址总线,用于指定 CPU 将要操作的内存地址;
  • 数据总线,用于读写内存的数据;
  • 控制总线,用于发送和接收信号,比如中断、设备复位等信号,CPU 收到信号后自然进行响应,这时也需要控制总线;
  • 流程

当 CPU 要读写内存数据的时候,一般需要通过下面这三个总线:

首先要通过「地址总线」来指定内存的地址;
然后通过「控制总线」控制是读或写命令;
最后通过「数据总线」来传输数据;

一、线路位宽与 CPU 位宽

结论:

操作系统的位数,指的是线路位宽,也就是指地址总线的位数。
俗称大家说的32位和64位电脑

通常说的操作系统的位数,指的是地址总线的位宽,32位操作系统地址总线根数就是32。而线路位宽是与内存紧密相关的,因为内存是通过地址总线来进行寻址的。
CPU位宽与线路位宽没有直接的联系。

1.1 CPU位宽。

CPU位宽是指一次可以计算数据的bit数。有CPU在计算时,数据需要先保存在寄存器中,因此CPU位宽一般就是指寄存器的位数。如32CPU一次可以计算32bit的数据,64位CPU一次可以计算64bit的数据。
要 CPU 操作 4G 大的内存,那么就需要 32 条地址总线,因为 2 ^ 32 = 4G。

1.2 线路位宽

操作系统位宽一般就是指线路位宽。程序在执行时,需要通过地址总线去内存中找到对应数据或指令的地址。线路位宽就是指地址总线有多少根。

二、解释

首先,要明白内存是储存单元的集合,每个储存单元对应一个物理地址 ,目前大多数计算机都是按照字节(Byte)编址的,8bit占用一个物理地址,也就是说一个物理地址对应1Byte的内存。
每根地址总线可以高电平(对应1)或低电平(对应0),相当于一根地址总线对应一个bit,因此,若是32根地址总线,那么就可以得到一个32bit的地址,地址的范围为0 ~ 2^32,由于每个地址对应1Byte的数据,因此内存的大小为 2^32 Byte,也就是4GB。
这就是为什么32位操作系统,一般内存最大就是4GB,因为内存大于4GB,操作系统也没法一次寻址,内存就显得有些浪费。
顺便再说一下,为什么不同的操作系统,C/C++ 指针变量的大小不一样?比如32位操作系统中,指针变量大小为4 Byte,64位系统为8 Byte。
这是因为指针的值的含义就是内存地址,在32位系统中,寻址的最大值为2^32,地址编码为0 ~ 2^32,刚好可以用一个32bit的数据来表示,也就是4 Byte。同样对于64位操作系统,寻址的最大值为2^64,需要用一个64 bit的数表示,也就是8 Byte。

线路位宽与内存的联系

程序在运行的时候,需要先加载到内存中,然后CPU根据地址总线去读取内存中的指令或数据。内存中的地址已byte进行编号,比如第一个byte编号为0x01,第二个地址编号为0x02 。。。如果是32为地址总线,那么可以得到一个32位的二进制数据,范围为 0 ~ 2^32, 因此32位操作操作系统(32位线宽)可以寻址的地址范围为4GB (每个地址都对应1Byte的内存)。所以说32位的操作系统最大寻址的内存是4GB。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SPARC                                                                              Sun UltraSPARC II处理器 SPARC,全称为“可扩充处理器架构”(Scalable Processor ARChitecture),是RISC微处理器架构之一。它最早于1985年由升阳电脑所设计,也是SPARC国际公司的注册商标之一。这家公司于1989年成立,其目的是向外界推广SPARC,以及为该架构进行符合性测试。此外该公司为了扩阔SPARC设计的生态系统,SPARC国际也把标准开放,并授权予多间生产商采用,包括德州仪器、Cypress半导体、富士通等。由于SPARC架构也对外完全开放,因此也出现了完全开放原始码的LEON处理器,这款处理器以VHDL语言写成,并采用LGPL授权。 SPARC架构原设计给工作站使用,及后应用在升阳、富士通等制造的大型SMP服务器上。而升阳开发的Solaris操作系统也是为SPARC设计的系统之一,除Solaris外,NeXTSTEP、Linux、FreeBSD、OpenBSD及NetBSD系统也提供SPARC版本。 现时最新版本的SPARC为第8及第9版,在2005年12月,升阳方面宣布其UltraSPARC T1处理器将采用开放原始码方式。 开源CPU--OpenSparc T1简介     FPGA级别 2006年3月,Sun宣布开源化其多核心UltraSparc T1 CPU的处理器设计,采用的是GNU通用公共许可证(GNU GPL license)。之前Sun已经公开了"Hypervisor"API规范,允许各公司将Linux、BSD 及其他操作系统移植到UltraSparc T1平台。 Sun是业界首家将复杂的硬件设计使用GNU GPL许可进行发布的公司,而此举也将为UltraSparc T1处理器增加曝光度,并吸引开发人员为该平台开发软硬件解决方案。 该硬件设计的开源发布包括64-bit UltraSparc T1的Verilog硬件描述语言源代码,验证套装和模拟模型,ISA规范及Solaris 10 OS虚拟镜像。T1处理器的代号为“Niagara”,于去年发布并应用于Sun的T1000/T2000服务器中。 Sun目前推出了4、6、8核心的CPU版本,且每核心最多支持4线程,即总共最多32线程。T1基于Sparc V9架构,每核心集成16KB指令缓存和8KB主数据缓存,整个处理器共享3MB L2缓存。“OpenSparc T1”芯片设计,验证套装,架构和性能模型工具已经发布在http://www.opensparc.net网站。Sun还发布了“Cool Tools”,其中包括优化多线程CPU性能的各种程序以及CMT编程及描绘工具。 OpenSparc T1处理器的主要特征包括: 8个Sparc V9处理核心,每核心4线程,共计32线程 每处理核心16KB一级指令缓存,共128KB; 每处理核心8KB一级数据缓存,共64KB; 3MB二级缓存,4-way bank,12向关联,各核心共享; 4个DDR2内存控制器,每通道位宽144bit,总带宽峰值25GB/s; IEEE754兼容浮点单元(FPU),各核心共享; J-Bus输入输出接口,峰值带宽2.56GB/s,128bit多元地址/数据复用总线。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

依嘫_吃代码

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

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

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

打赏作者

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

抵扣说明:

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

余额充值