i386和i686

2024-02-13 06:48
文章标签 i386 i686

本文主要是介绍i386和i686,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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。

这篇关于i386和i686的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/704786

相关文章

wps for linux wps-office_10.1.0.5460~a20p1_i386.deb字体库缺失

ubuntu环境,安装完wps-office_10.1.0.5460~a20p1_i386.deb,提示Some formula symbols might not be displayed correctly******,按其提供的解决方案,打开后无法解决,在此提供解决方案如下: 1、网上下载wps_symbol_fonts.zip字体库,或搜寻.tff字体库也可; 2、在用户目录下打开~/

linux下jdk安装 failed /usr/local/jdk1.6.0_10/jre/lib/i386/client/libjvm.so, because /usr/local/jdk1.6.

今天在centos5.5下面安装jdk1.7后,运行java -version,没有出现相关的版本信息,而是出现了以下错误: Error: dl failure on line 863 Error: failed /home/yumh/software/jdk1.7.0_79/jre/lib/i386/server/libjvm.so, because /home/yumh/so

iOS 上传app error: The executable for XXXX contains unsupported architetures x86_64,i386 (framework分离)

好久没有上传app store了,昨天新项目提交,上传ipa的时候出现了一点问题,如图所示 根据英语的意思,基本是说某某sdk中,含有不支持的结构,那么这个不支持的结构是什么呢? 就是其中说的i386 x86,那这俩货又是什么? 他们是支持模拟器运行的结构,那好,经过分析查证,我们只需要将这两个结构去掉,就OK了,下面就是解决方法 首先在终端找到文件路径,输入lipo ZipArchi

msys2(msys2-i686-20180531)32位下安装GMT4.5.6

​     捣鼓了两天,终于在msys2上安装了GMT4.5.6,下载msys2安装以后,安装netcdf,解压GMT4.5.6至/home/xiaok目录下,然后生成配置文件      ./configure mingw32 shared --prefix=/home/xiaok/gmt/GMT4.5.6 --bindir=/home/xiaok/gmt/GMT4.5.6/bin

Undefined symbols for architecture i386: _OBJC_CLASS_$_XX 错误解决方法

以下是我在一个工程中的类似操作带来的错误,现在将其简化。 首先新建一个工程,再新建一个Target: 不计单元测试部分的话,现在工程中有两个Target:Demo和ATarget。 在Demo的ViewController中添加一个类方法并公开接口: + (void)logClassName {NSLog(@"%@", [self class]);} 在ATarget的AppD

/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.19' not found

原因是:程序运行机器和编译机器上的C++编译器版本不匹配问题解决方法:$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test$ sudo apt-get update$ sudo apt-get install libstdc++6-4.7-dev

duplicate symbols for architecture i386

1、报错原因:重复的symbols(类文件编译过程中的产生的文件)。 2、解决:在编译资源中删掉重复的类文件。 Go to Project Target-> Build Phases->Look for multiple occurrences of same file under "Compile Sources".

armv6、armv7、armv7s、armv8、armv64及其i386、x86_64区别

ARM处理器指令集 一. 苹果模拟器指令集: 指令集分析i386针对intel通用微处理器32架构的x86_64针对x86架构的64位处理器i386|x86_64是Mac处理器的指令集,i386是针对intel通用微处理器32架构的。x86_64是针对x86架构的64位处理器。     模拟器并不运行arm代码,软件会被编译成x86可以运行的指令。所以生成静态库时都是会先生成两个.a,一个是

copy i386/i686与x86_64的关系

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

IOS No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv6 armv7)错误

我在xCode4.0版本上写了一个程序,然后觉得4.0运行太慢了,装了xCode4.2版本,在4.2版本上运行程序 报了一个:No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv6 armv7)的错误。 上网上搜了下, 解决方法如下: 在Bulid Settings选项下