01月11, 2017

cpu处理器架构小知识

关于cpu你总是听说i386,x86_64,amd64,arm等名词,它们代表处理器架构,它们究竟是啥意思呢,有什么区别呢?

处理器架构

这些名词都代表的是cpu的处理器架构,它和操作系统(32位,64位)无关。

一定要明白,cpu的架构和操作系统是32位,64位没有关系

Architecture ,结构、架构,这个词用于 CPU 的时候是指 CPU “接受和处理信号的方式”,及其内部元件的组织方式。CPU架构,从大的层面分两类——CISC、RISC

CISC和RISC

cpu架构大致分两种,CISC,RISC
CISC :复杂指令集计算机
RISC:精简指令集计算机

CISC

复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故), 但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。

RISC

RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快, 所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。 咱们经常见到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。

需要指出的是,现在的 Intel 和 AMD CISC处理器的内核其实都是 RISC内核,是在内核的外围电路中把复杂指令动态翻译成精简指令,然后送到 RISC内核中处理。严格来说,现代CPU本质上都是 RISC处理器。

x86

x86的全称是80x86,是intel的微处理器体系结构的泛称,一般来讲I386 i486 i586都属于x86架构,x86架构是32位处理器架构,x86架构又称为IA-32. i386的全称为intel 80386,以后的486 586 686同属于此架构,只不过做了更多的优化。

x86_64

“x86-64”,有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是Intel x86架构的延伸产品。“x86-64”1999由AMD设计,AMD 首次公开 64 位集以扩充给 IA-32,称为 x86-64(后来改名为 AMD64)。 其后也为Intel所采用,现时英特尔称之为“Intel64”. 由于AMD64和Intel64基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来表明它们对两种架构的同时兼容。出于这个目的,AMD对这种CPU架构的原始称呼——“x86-64”被不时地使用,还有变体“x86_64”。其他公司如微软和Sun在营销资料中使用“x64”作为对 “x86-64”的缩写。

IA-64

IA-64架构是英特尔为了全面提高以前IA-32位处理器的运算性能,是Intel和Hp共同开发了6年的64位CPU架构,是专为服务器市场开发的一种 全新的处理器架构,它放弃了以前的x86架构,认为它严重阻碍了处理器的性能提高。它的最初应用是英特尔的Itanium(安腾)系列服务器处理器,现在 最新的Itanium 2系列处理器也是采用这一架构的。由于它不能很好地解决与以前32位应用程序的兼容,所以应用受到较大的限制,尽管目前Intel采取了各种软、硬方法来 弥补这一不足,但随着AMD Operon处理器的全面投入,Intel的IA-64架构的这两款处理器前景不容乐观。

intel认为32位处理器拖慢了处理速度,所以另起炉灶研究了IA-64架构,但是效果不理想,而且无法兼容32位操作系统,在此期间AMD基于x86开发了x86_64架构,速度很好,也可向下兼容,因为AMD和intel有交叉专利,所以x86_64现在共同使用。 盖茨也极力促成AMD和intel架构统一,因为不想开发两套操作系统。

说到这里给大家分享一个故事,在计算机早期,个人pc还没有流行,cpu主要供货给大型机,IBM这是决定进入个人pc领域,但是决定引进外部厂商做cpu,intel的x86 cpu架构被选入,同时AMD做为外包公司一同生产x86 cpu,所以AMD有intel x86的使用权,到后期AMD基于intel x86开发了x86_64架构,同时也叫AMD64.

目前主流架构就是x86,x86_64,一个是32位,一个是64位。

32位 64位

那么32位和64位有啥区别?为啥新的cpu和操作系统都要64位呢? 区别就是cpu一次能处理多少位的指令,32位就是cpu一次能处理32位指令,比如有一个128位指令,32位cpu需要处理4次,64位只需要处理2次,在同等cpu频率下,当然执行效率会有显著提高。 同时32位的内存寻址只能到4GB,当硬件内存超过4GB,其它内存将使用不了。

操作系统和rpm

每一个rpm包的名称都由”-“和”.”分成了若干部分。就拿 a2ps-4.13b-57.2.el5.i386.rpm 这个包来解释一下,a2ps 为包名;4.13b则为版本信息Version;57.2.el5为发布版本号(同一版本的软件包有很多准对不同平台的发布号Release);i386为运行平台。其中运行平台常见的有i386, i586, i686, x86_64 ,需要你注意的是cpu目前是分32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制。例如 alacarte-0.10.0-1.fc6.noarch.rpm 。
CentOS官网中的不同版本ISO文件:
CentOS-6.3-i386-minimal.iso
CentOS-6.3-x86_64-minimal.iso
这里的i386和x86_64指的是CPU(中央处理器)的指令集,而不是操作系统的位数(32位、64位)!

64位cpu,可安装32,64位操作系统,32位cpu,只能安装32位操作系统。

在操作系统上如何查看呢? so easy,有两个命令

uname -a
Linux 2.6.32-2.0.0.8-6 #5 SMP Sun Jan 26 16:13:25 CST 2014 x86_64 x86_64 x86_64 GNU/Linux
getconf LONG_BIT
64

本文链接:https://www.opsdev.cn/post/chuliqijiagou.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。