前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >i386/i686/x86-64的区别

i386/i686/x86-64的区别

作者头像
全栈程序员站长
发布于 2022-08-31 08:59:27
发布于 2022-08-31 08:59:27
5K0
举报

大家好,又见面了,我是你们的朋友全栈君。

1. i386 适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu.intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,Pentium D系列以及centrino P-M,core duo 等.

2. X86_64 适用于intel的Core 2 Duo, Centrino Core 2 Duo, and Xeon 和AMD Athlon64/x2, Sempron64/x2, Duron64等采用X86架构的64位cpu.

3.I686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持.

i386和i686的区别:

现在所有的intel 32位体系(包括AMD等兼容CPU)都叫i386体系,包括P4。、i686仍然属于i386体系,不过对CPU(相对于386)的特性作了指令优化。GNU/Linux分为alpha、PowerPC、Sun等各个不同版本,所有从Intel386-P4都用i386版本,但i386版本中有几个内核(i486,i486,i586,i686),安装时安装程序检测到你得CPU级别后,自动为你安装相应内核。

与cpu的指令集有关.I代表与intel的指令集兼容,后面的数字是指cpu的分类。 因为intel的cpu经过这么久的发展,不断的更新,产生从8086,8088,80286,80386,80486,奔腾(586),奔腾二代(686),奔腾三代(686)…cpu的每次换代,都增加了一些新的指令集,但都向后兼容(就是说后面的CPU都能完全使用前面的CPU的指令集)。而软件包为了能发挥好cpu的全部性能,就加入cpu相对应能指行的指令。因此就产生了各种不同的软件包。所以,i686的软件包能在奔腾二代以上的cpu上执行,但基本不能在此之先的cpu如486上执行。而i386的软件包既可在i386的电脑上执行,也可在后面所有的cpu上执行(如奔三、奔四,但不能发挥cpu的最佳性能。)

i686指的是Pentium Pro以及此后的Intel IA32 CPU,也就是平常我们所说的P6系列处理器。

i386不用说了,泛指80386以后的。

IA32划分子集的话:386、486是一个,Pentium自己是一个, Pentium Pro、Pentium II、Pentium III是P6系列,Pentium IV又独自算一个。 Pentium 4是NetBurst架构的,比起P6系列有些变化。

i686是pentiumpro及以后的通用arch,而i386是所有x86的通用arch,i386包括而i686没有包括的就是386、486、586(pentium)、pentium-mmx 现在应该没有人还在用586及以前的cpu,甚至是pentiumpro。而rpm都是为i386打的包,运行效率会低很多。 兼容性关系大概是 i386: i386: i486: winchip-c6: MMX 3dNOW! winchip2: MMX 3dNOW! i586(pentium): pentium-mmx: MMX i686: pentiumpro: pentium2: MMX pentium3(m): MMX SSE pentium-m: MMX SSE SSE2 pentium4(m): MMX SSE SSE2 prescott: MMX SSE SSE2 SSE3 nocona: MMX SSE SSE2 SSE3 (64bit) c3: MMX 3dNOW! c3-2: MMX SSE k6: MMX k6-2,k6-3: MMX 3dNow! althon,althon-tbird: MMX 3dNow! SSE(prefetch only) athlon-4, athlon-xp, athlon-mp: MMX 3dNOW! 3dNOW(enhanced) SSE(full) k8, opteron, athlon64, athlon-fx: MMX 3dNOW! 3dNOW(enhanced) SSE SSE2 (64bit) 可以看出,i686囊括了现在正在使用的所有x86,所以把rpm打包是的arch改为i686是没有问题的,反而能在指令调度上优化,填满流水线,使程序运行的更快。

而其中除了pentiumpro外,所有兼容i686的x86都有MMX,大多数有SSE。十分使用扩展指令基对大规模计算来说很重要,如昨天加了-mmmx -march=i686打包了一下GIMP,发现有些处理(如马赛克滤镜)快了5倍以上。 另外,如果浮点运算使用-mfpmath=sse -msse的话,浮点除法速度有近百倍的提高,这对浮点运算偏重的如音、视频解码,编码很重要。 当然为了兼容,可以打包两个版本,有sse和没有sse的。 希望开发者能考虑一下,把/usr/lib/rpm/rpmrc中的buildtranslator xxx:i386改为 xxx:i686,并在optflag i686:中加入 -mmmx。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143059.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
i386和i686的区别[通俗易懂]
现在所有的intel 32位体系(包括AMD等兼容CPU)都叫i386体系,包括P4。、i686仍然属于i386体系,不过对CPU(相对于386)的特性作了指令优化。GNU/Linux分为alpha、PowerPC、Sun等各个不同版本,所有从Intel386-P4都用i386版本,但i386版本中有几个内核(i486,i486,i586,i686),安装时安装程序检测到你得CPU级别后,自动为你安装相应内核。
全栈程序员站长
2022/06/26
1.8K0
Linux下rpm包x86、i386、i486、i586、i686和x86_64这些后缀含义
iamlaosong评:虽然rpm包版本很多,不过目前的新机器都可以使用x86_64版本,而且也应该使用这个版本,除非一些特殊场合,比如为了使用一些老版程序。有些功能没有x86_64版本,那也只好用i386了。现在的发行包,一般也就提供i386和x86_64两个版本,即32位版本和64位版本,有些甚至已经不提供i386版本了。
全栈程序员站长
2022/09/06
2.3K0
AMD64和i386的区别
下载Debian系统时,出现两个选项:ADM64和i386,那么这两者的区别是什么? i386=Intel 80386。其实i386通常被用来作为对Intel(英特尔)32位微处理器的统称。 AMD64,又称“x86-64”或“x64”,是一种64位元的电脑处理器架构。它是建基于现有32位元的x86架构,由AMD公司所开发。 下文引用自知乎: x86架构首度出现在1978年推出的Intel 8086中央处理器,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。In
用户1749219
2018/05/16
9.1K0
linux版本i686,在Ubuntu中’i686’是什么意思? – Ubuntu问答
检查我是使用32位还是64位Ubuntu。我查看了如何检查我是否拥有32位或64位操作系统?,发现此答案为uname -a。如果它显示为i386,它将是32位和amd64,它将是64位,但我得到了这个结果:
全栈程序员站长
2022/06/26
2.2K0
Linux系统中使用GCC CPU参数优化代码编译
在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。
一见
2018/08/07
2.5K0
[转]SIMD、MMX、SSE、AVX、3D Now!、NEON
对于SISD,每个指令只能处理一个数据,而SIMD一个指令可以处理多个数据,因为多个数据的处理是平行的,因此从时间来说,一个指令执行的时间,SISD和SIMD是差不多的。由于SIMD一次可以处理N个数据,所以它的处理的时间也就缩短到SISD的1/N。需要指出一点,NEON是需要硬件支持的,需要有一块寄存器放到硬件上来处理这个的。SIMD、MMX、SSE、AVX、3D Now!、NEON
闪电gogogo
2019/11/14
1.6K0
java i586什么意思_linux里面i386 i686 i486 i586代表什么?是什么意思
在linux里面,我们经常会遇到i386 i686 i486 I586 这些代码,例如查看内核版本:
全栈程序员站长
2022/09/02
2K0
intel处理器历代产品_英特尔酷睿历代提升
悉数历史 英特尔历代经典 CPU 产品回顾 从英特尔于 1971 年推出首款 4004 微处理器到现在, 英特尔处理器已经走过 了 40 个年头。在告别 13 年传奇品牌奔腾之后,我们又迎来新一代酷睿 i 双核处 理器。现在,我们就来回顾一下英特尔处理器 40 年来的发展历程。 1971 年:4004 微处理器 4004 是英特尔推出的第一款微处理器。这一突破性的发明最先应用于 Busicom 计算器,为无生命体和个人计算机的智能嵌入铺平了道路。 晶体管数量: 2300 速度:108 KHz
全栈程序员站长
2022/09/28
2.3K0
x86,x64,x86-64,amd64,arm指令集架构之间的关系
所谓指令集,可以理解成硬件对外的接口。我们运行程序是通过操作系统调度,操作系统然后让硬件去计算。
windliang
2022/08/20
4.6K0
x86,x64,x86-64,amd64,arm指令集架构之间的关系
gcc编译链中i686和x86-64有什么区别?
i386对应的是32位系统、而i686是i386的一个子集,i686仅对应P6及以上级别的CPU,i386则广泛适用于80386以上的各种CPU;x86_64主要是64位系统。
全栈程序员站长
2022/09/06
4K0
gcc编译链中i686和x86-64有什么区别?
Linux下如何查看版本信息
Linux下如何查看版本信息, 包括位数、版本信息以及CPU内核信息、CPU具体型号等等,整个CPU信息一目了然。
用户4988376
2021/07/21
21.5K0
cpu(了解了以下8条,没人敢和你忽悠CPU)
主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。像其他的处理器厂家,有人曾经拿过一快1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。
用户7657330
2020/08/14
1.6K0
i386 i586 i686 的意思「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134013.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/26
1.3K0
x86 CPU与IA-32架构
现代计算机使用的CPU大部分都是x86CPU,包括现在牙膏厂的酷睿。x86系列CPU的原型是Intel 1978年推出的8086 CPU
Orlion
2024/09/02
1890
x86 CPU与IA-32架构
Linux 中的 32 位与 64 位
在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位"与"64位"的说法,类似的还有"x86"与"x86_64","i386"与"amd64",这两组概念之间有着怎样的联系和区别呢?
杰哥的IT之旅
2021/01/06
3.6K0
跟Google学写代码--Chromium/base--cpu源码学习及应用
Chromium是一个伟大的、庞大的开源工程,很多值得我们学习的地方。 前面写道: 《跟Google学写代码–Chromium/base–stl_util源码学习及应用》 《跟Google学写代码–Chromium/base–windows_version源码学习及应用》 今天分享cpu相关的操作。 先看看这个枚举: enum IntelMicroArchitecture { PENTIUM, SSE, SSE2, SSE3, SSSE3, SSE41
程序员的酒和故事
2018/03/12
1K0
ARM架构和X86架构区别
​ 指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。拥有这些指令集,CPU就可以更高效地运行。
zhangjiqun
2024/12/14
2150
ARM架构和X86架构区别
接触过的第一台电脑-90年代的x86与如今的树莓派
总的来说,第一台486电脑的特点是处理器速度较快,内存容量较大,硬盘容量也比较大,操作系统已经开始向图形化界面转变,但售价较高,适用范围相对较窄。
zhangrelay
2023/03/28
7.4K0
接触过的第一台电脑-90年代的x86与如今的树莓派
各种开源汇编、反汇编引擎的非专业比较
由于平时业余兴趣和工作需要,研究过并使用过时下流行的各种开源的x86/64汇编和反汇编引擎。如果要对汇编指令进行分析和操作,要么自己研究Intel指令集写一个,要么就用现成的开源引擎。自己写太浪费时间,又是苦力活,还容易出错,所以还是使用现成的好一点。 这里对我曾使用过的比较流行的反汇编引擎做个比较,我使用过的反汇编引擎有: 1. Ollydbg的ODDisassm   Ollydbg的ODDisassm,这是我最早使用的一个开源的反汇编引擎,07年在《加密解密》(三) 中我写的一个很简单的虚拟机就是使用的这个库,因为那个时候还没有那么多可选择。不过多亏有这样一个基础库,整个虚拟机从设计到开发完成只用了两个星期便开发完成(当时对反汇编库的要求不高,只要求能用字符串文本做中间表示进行编码/解码)。   这个反汇编库的优点是含有汇编接口(即文本解析,将文本字符串解析并编码成二进制),就拿这个特性来说在当时也算是独树一帜的了,到目前为止开源界在做这个工作的人也很少,   不过近年出现的调试器新秀x64dbg,也附带开发了开源的汇编库XEDParse,功能与OD的文本解析功能相似,并且支持的指令集更加完整,BUG更少,同时还支持X64,维护一直很强劲。 但是ODDisassm的缺点也很多,比如:   1. 指令集支持不全,由于Ollydbg年久失修,现在甚至连对MMX指令集都不全,而现在的INTEL/AMD的扩展指令集标准又更新了多个版本,什么SSE5/AVX/AES/XOP就更别提了,完全无法解析。   2. 解码出来的结构不详细,比如指令前缀支持不够友好,这点从Ollydbg的反汇编窗口可以看出,除了movs/cmps等指令以外,repcc与其他指令组合时都是单独分开的; 再比如寄存器无法表示ah\bh\ch\dh这种高8位寄存器。   3. 作者一次性开源后便不再维护开源版本,对于反汇编上的BUG很难即时修复。   不过这些也可以理解,因为在当时作者的开发目的是进行文本汇编\反汇编,所以没有为解码出的信息建立结构体以及接口。总的来说,如今再使用这个反汇编引擎,已经落后于时代了。 2. BeaEngine BeaEngine是我用的第二个库,当时使用OD库已经不能满足我的需求了。在做反编译器的时候,需要一个能够解码信息越多越好的库,于是我找到了BeaEngine,这个库我记得以前的版本不支持高8位寄存器识别,现在的版本也支持了。   在使用过程中基本上没有发现什么明显的缺点,不常用的新的扩展指令集也实现了不少。   目前实现的扩展指令集有:
战神伽罗
2019/07/24
3.5K0
微机原理与接口技术 重点详解与章节总结——微处理器架构详解
1946年2月15日,世界上第一台电子数字计算机在美国宾夕法尼亚大学问世,这台电子计算机叫“ENIAC 计算机的五代变化。其内存:水银延迟线(Mercury Delay Line)存储装置——二战期间为军用雷达开发的一种存储装置作为内存,脉冲信号从管子一端进入,转换成超声波,960ms后超声波到达管子的另一端,然后再转换成电信号输出。
timerring
2022/07/20
1.4K0
微机原理与接口技术 重点详解与章节总结——微处理器架构详解
推荐阅读
相关推荐
i386和i686的区别[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档