码迷,mamicode.com
首页 > 其他好文 > 详细

X86和X86_64

时间:2017-01-11 09:12:55      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:无法   表示法   指令集   64位   网上   lin   32位   个人   开发   

整理了下网上的资料,归类了下,大似表述是这样的:
IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86。
x86并不是指32位环境,而是指80x86架构,这个架构目前有32位,64位两种。
曾经听说还包括了过8位和16位,不过我没机会看过。

习惯上来说,x86架构就是32位的,但AMD扩展出了64位环境,而且64位硬件支持32位,称为amd64
intel叫EM64T,EM64T本质上和amd64一样都是IA-32的增强版本,Xeon借助于EM64T可实现高达1TB(40bit)的物理内存寻址和256TB(48bit)的虚拟内存寻址,并且良好地支持现有32位x86代码的执行,这一点跟AMD64无异,同时也是Intel开发EM64T的出发点—让现有的x86指令集能够执行64位代码,而继续保持对32位代码的良好兼容。但由于多方面的限制,无论是EM64T还是AMD64均只能实现比32位指令集更大内存空间的寻址,而无法真正做到纯64位指令集的1PB(50bit)和16EB(64bit)的物理内存和虚拟内存寻址(IA-64就能做到这一点),其关键在于EM64T和AMD64本质上仍是基于32位的x86指令集,只是Intel和AMD分别采用不同的技术手段对x86指令集进行扩展,从而实现对64位的支持。

大多数情况下,amd64不叫amd64也不叫em64t,而是x86_64,从而表明他和x86这个32位的关系。
其实x86其实也不全叫x86,Linux下还分成 i386 i486 i586 i686。如当年intel推出的新一代586处理器,叫Pentium(奔腾)。
后面的64就成了这个架构的一个分支指令集的描述。x86就成了一个统称,而不是专指32位环境。
因此,要明白x86的涵义,那个x可以是3,4,5,6等等。

扩展信息:

x86:指Intel制造的普通CPU(提出x86这个表示法时,个人电脑上以32位Intel的CPU为主)
x64:x86_64的缩写(同时也相当于amd64,em64t),指x86的基础上加入64位地址扩展
IA32:表示纯32位架构
IA64:表示纯64位架构
表示32位兼容的64位架构用(AMD是这一架构的主要生产商)

X86和X86_64

标签:无法   表示法   指令集   64位   网上   lin   32位   个人   开发   

原文地址:http://www.cnblogs.com/maruidong/p/6272306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!