关于CPU位数和操作系统位数

来源:互联网 发布:盘点数据差异如何处罚 编辑:程序博客网 时间:2024/05/16 12:32

  CPU的位数是指CPU能一次同时寄存和处理二进制数码的位数,这和CPU中寄存器的位数对应。
     CPU为了实现其功能一般设计了指令集,即是CPU的全部指令,这就是机器语言。计算机的所有功能都是基于CPU的指令集。指令集和CPU的位数是有联系 的。如Intel 8086 CPU 是16位,其指令集也是16位。如Intel 80386DX CPU 是32位,其指令集也是32位,但它也保持原16位指令集,这是为了向上兼容。
     操作系统的位数是说其所依赖的指令集的位数。
     计算机系统一般都应有向上兼容性,所以也可有64位CPU上运行32位操作系统、32位CPU上运行16位操作系统的情况。

操作系统位数应该是根据指针类型的位数来定的。整数类型不一定跟位数相等。

CPU位数准确地说应该是CPU一次能够并行处理的数据宽度,一般就是指数据总线宽度。

计算机字长取决于数据总线的宽度,是指一次能传输的数据的位数,通常就是CPU一次能处理的数据的位数,所以字长就是取决于数据总线。像平时我们买电脑说的64位的处理器,指的就是字长为64的CPU。地址总线决定的是存储器的容量,以为要进行寻址。实际生活中就是主板对内存的支持容量是有限制的。

寻址空间,是地址总线决定的,而写程序访问地址,是靠寄存器决定的。操作系统之所以有不同的版本,是为什么适应CPU的发展,以及CPU提供的功能,就象你以前提的问题,比如386以前,CPU没有保护模式,所以那时候主流微处理器系统都是DOS,DOS也是为了适应当时的CPU实模式,后386推出了CPU保护模式,随后WIN快速适应了CPU保护模式,提供了强大的功能,所以占据了主流市场......也就说CPU决定操作系统,提供能够使用的基础功能,而系统相当于运行在CPU第一层的软件,只不过这个软件,有控制CPU的权利。
64位处理器,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。
跟地址总线没关系。
64根地址总线寻址能力为2^64(Byte),远不止4GB了。64根数据总线的话,单次传输数据为8Byte,没错。弄清楚两种总线的功能,也就明白计算方法了。地址总线用来寻址的。地址总线上的二进制数组合标识的是地址号,寻址能力就是地址总线总共可以表示多少个不同的地址号。那么1根线可以标识两种地址号;N根线可以标识2^N种地址号,即寻址能力为2^N。数据总线用来传输数据的,比如你只有一根数据线,即只能传输1bit数据,有N根,那就能传输Nbit的数据。

内存的可寻址单元是以字节为单位,也就是说cpu不能单独定位某个内存位(bit)而只能一次定位道byte;
机器的字长是指cpu一次可以读入的位数;32位可以读入四个字节;64位可以读入八个字节;
为了保证可以单独寻址单个字节;内存的每个字节都需要一个地址;
这样;32为地址线接口的内存只能有2^32*8bit=4GB的容量;
如果内存的寻址单元为两个字节,那么容量可以达到8GB,但是最小的单位将变成两个字节,哪怕我们只是存入一个char,也要占用两个字节;这是个寻址粒度和容量的问题;
cpu和内存之间有内存控制器吧,cpu可以一次吐出四个字节到内存控制器;内存控制器分别寻址到每个字节,然后存入内存。

1 0
原创粉丝点击