POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 17514|回复: 62
打印 上一主题 下一主题

看穿英特尔64位处理器!Intel EM64T技术详解

[复制链接]
跳转到指定楼层
1#
发表于 2007-11-21 01:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  有读者反映,“Itanium(安腾)处理器才是真正的64位架构,而采用了EM64T技术的Pentium 4处理器并不算真正意义上的64位处理器,把EM64T架构等同于Intel的64位CPU架构是不严谨的!”是的,非常感谢这位热心的读者。从严格意义上而言,EM64T架构跟纯64 bit处理器有着本质的区别,它更像是一种介于32bit和纯64 bit处理器之间的兼容性架构。 兼容性方面的改进
  Intel官方是给EM64T这样定义的:EM64T全称Extended Memory 64 Technology,即64位内存扩展技术,它是Intel IA-32架构(Intel Architectur-32 extension)的一个扩展,且兼容原来的架构。通过增加CPU的运算位宽扩展增加CPU和内存之间的位宽,从而让系统支持更大容量的内存(32bit处理器最多只能支持内存容量只有4GB,而64bit的最高则达64GB)。
寻址空间对应表
处理器
虚拟内存寻址
物理内存寻址
物理内存容量
Prescott(P4,普通PC处理器)
Nocona(Xeon,服务器处理器)
48 bit
36 bit
64 GB
  为了实现64bit和32bit两种运算间的兼容,Intel在原来32bit处理器核心的基础上加入了8个64 bit GPRs(通用寄存器)和内存指针(memory pointers),从而实现了64 bit内存寻址。在理论上,虽然EM64T架构最高可以支持64 bit内存寻址,但由于设计和制造工艺等方面的因素,并非所有EM64T的处理器都能达到理论的上限,所以,在64 bit和32bit内存寻址之间提供一个48 bit的虚拟内存寻址,以增强两者间的兼容性。
2#
 楼主| 发表于 2007-11-21 01:58 | 只看该作者
EM64T模式的运行及识别
  既然,EM64T是一种兼容性很强的64 bit扩展技术,那么它是如何工作的呢?
  Intel为支持EM64T技术的处理器可分为两大类:传统IA-32模式和IA-32e扩展模式,两大类下具体又可分为多种运行模式,具体如下表:在支持EM64T技术的处理器内有一个称之为扩展功能激活寄存器(Extended Feature Enable Register,IA32_EFER)的部件,其中一个被称作长模式有效(Long Mode Active,LMA)的Bit10控制器控制EM64T是否被激活。当LMA=0时,处理器便作为一颗标准的32 bit(IA32)处理器运行在传统IA-32模式;当LMA=1时,EM64T便被激活,处理器会运行在IA-32e扩展模式下。
EM64T的运行模式
传统IA-32模式
IA-32e扩展模式
保护模式
真实地址模式
真实8086模式
兼容模式
64位模式
  在IA-32e扩展模式下的兼容模式和64位模式,两者都需要64bit操作系统和64bit驱动程序的支持,但后者才是真正的64bit计算。在64bit模式下,必须要有64bit的操作系统、驱动程序和应用程序三者合作。此时,处理器内的新增的8个GPRs和8个SSE寄存器(XMM8-XMM15)才会被激活,原有的8个GPRS(RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP)的宽度也会同时扩展为64bit,并且启用64bit指令指针。此时,处理器才能利用64bit指令操作来支持64bit内存寻址,进行双精度(64bit)整数运算。
  而在另一种兼容模式下,计算机允许在64bit操作系统下不需要预编译就可以运行大多数传统16bit或32bit应用程序,这和传统IA-32模式下基本相同,只不过此时的操作系统和驱动程序都是64bit的。
  从上面的描述我们可以看出,在不同模式的转换中,处理最大的变化便是寄存器的改变。这正是因为64bit与32bit定义的最大不同就是在寄存器上。我们可以从下表看出寄存器的具体变化情况。


64位模式
64兼容模式
名称
数量
容量bits
名称
数量
容量bits
通用寄存器(GPRs)
RAX,BX,
RCX,RDX,
RBP,RSI,
RDI,RSP,
R8-15
16
64
EAX, EBX, ECX,
EDX, EBP, ESI,
EDI, ESP
8
32
指令指针
RIP
1
64
EIP
1
32
浮点寄存器
ST0-7
8
80
ST0-7
8
80
多媒体寄存器
MM0-7
8
64
MM0-7
8
64
SSE寄存器
XMM0-15
16
128
XMM0-7
8
128
栈宽度
64
16或32
  在上表中,我们可以清楚地看到处理器的寄存器在不同模式下的变化情况。虽然支持EM64T的Prescott核心拥有16个GPRs(通用寄存器),但他们并非任何时候都会工作的,Intel根据不同的运行模式定义了他们的工作状态。
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2007-11-21 01:58 | 只看该作者
支持EM64T的处理器型号
  EM64T技术最早是被应用在采用了Nocona核心的Xeon处理器上,尽管Prescott核心支持EM64T技术,但直到最近的Prescott 2M核心,EM64T才开始被激活。这样,支持此技术的处理器便有Xeon、Pentium 4 Extreme Edition以及Pentium 4 600系列等,具体的处理器型号请参阅下表。

处理器型号
主频
核心
L2
制程
前端总线FSB
接口
Xeon
2.80-3.60GHz
Nocona
1M/2M
90nm
800 MHz
Socket604
Pentium 4 Extreme Edition
3.73GHz
Prescott 2M
2M
90nm
1066 MHz
LGA775
Pentium 4 660
3.6GHz
Prescott 2M

90nm
800MHz
LGA775
Pentium 4 650
3.4GHz
Prescott 2M
2M
90nm
800MHz
LGA775
Pentium 4 640
3.2GHz
Prescott 2M
2M
90nm
800MHz
LGA775
Pentium 4 630
3.0GHz
Prescott 2M
2M
90nm
800MHz
LGA775
回复 支持 反对

使用道具 举报

4#
 楼主| 发表于 2007-11-21 01:59 | 只看该作者
下图显示了64位工作模式。从图1我们可以看出64 bit处理器的指令宽度并没有改变,只是增大了通用寄存器和数据通道的宽度,可以简单的理解为64 bit处理器是拥有数据宽度为64 bit的寄存器并且可以一次传输,运算64 bits的数据。
    那么64 bit处理器都有哪些优点呢?

    1、可以进行更大范围的整数运算,一个32 bit整数可以表示232也就是4GB数值,而一个64 bit整数264也就是1800万TB,可以看作无限大。

    2、可以支持更大的内存,即64 bit处理器可以支持64 bit内存寻址。

    以往我们认为64位计算机的强大性能更适合于大型服务器和专业工作站,似乎对于面向普通用户的桌面PC来说有些大材小用了。其实不然,随着互联网和多媒体应用的发展,桌面PC用户对于电脑性能的也日益增加,比如大型的3D游戏、HDTV的播放等等,同样需要强大的运算性能。
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2007-11-21 01:59 | 只看该作者
然后我们再来看看EM64T的定义——

    EM64T(Intel Extended Memory 64 Technology)即64位英特尔内存扩展技术,该技术为服务器和工作站平台应用提供扩充的内存寻址能力,拥有更多的内存地址空间,可带来更大的应用灵活性,理论上最大可使用16EB,足够满足当前和将来的软件应用需求,特别有利于提升音视频编辑,CAD等复杂工程软件及游戏软件的应用。而普通的32位CPU可寻址内存最大为4GB(约40亿字节)。目前只有800MHz前端系统总线的至强支持EM64T技术。    我们常说的64位指的是AMD公司出的64位CPU,而EM64T则是intel按照自己的意思理解出来的64位,也就是和amd的64位对应的另外一种叫法。实际上EM64T是在32位基础上扩展来的,应该是一种伪64,是过渡期的一种解决方案。说白了提到64位指的是AMD的64位CPU,而EM64T则指的是INTEL公司的CPU。
  
    实际上AMD的64位CPU是64位兼容32位运算,而INTEL的EM64T是32位兼容64位运算。
    最后我们需要注意的一点是:64 bit处理器的性能并不相当于两倍32 bit处理器的性能。我们不能因为数字上的变化,而简单的认为64 bit处理器的性能是32 bit处理器性能的两倍。实际上在32 bit应用下,32 bit处理器的性能甚至会更强,即使是64 bit处理器,目前情况下也是在32 bit应用下性能更加强大。所以我们在认清64 bit处理器优势的同时,不可过度迷信64 bit。
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2007-11-21 02:01 | 只看该作者
http://diy.yesky.com/cpu/327/2363827.shtml

http://publish.it168.com/2005/0418/20050418500301.shtml


这就是传说中的E6300的EM64T技术。。。。。:w00t):
不给好评,也不给差评。只是尊重事实~
回复 支持 反对

使用道具 举报

7#
发表于 2007-11-21 02:05 | 只看该作者
很好,很强大。
真64不敌假64
真多核不敌假多核
对多数用户来说这些真假根本没有意义,只看性能、价格
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2007-11-21 02:09 | 只看该作者
原帖由 tx97 于 2007-11-21 02:05 发表
很好,很强大。
真64不敌假64
真多核不敌假多核
对多数用户来说这些真假根本没有意义,只看性能、价格


对我有意义啊。。。省得有人又骂我无知。。。:a)
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2007-11-21 02:20 | 只看该作者
64位对我的唯一的意义就是。。。。。X-FI只有64位的Linux驱动。。。:crying:
回复 支持 反对

使用道具 举报

头像被屏蔽
10#
发表于 2007-11-21 03:08 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽
11#
发表于 2007-11-21 03:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽
12#
发表于 2007-11-21 03:12 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

13#
发表于 2007-11-21 04:03 | 只看该作者
你抄来的都对,就这句错的。

其实intel的em64t就是amd的x86-64
的克隆版。



原帖由 动力音熊II 于 2007-11-21 01:59 发表


   实际上AMD的64位CPU是64位兼容32位运算,而INTEL的EM64T是32位兼容64位运算
回复 支持 反对

使用道具 举报

14#
 楼主| 发表于 2007-11-21 04:24 | 只看该作者
原帖由 晶晶守护神 于 2007-11-21 03:10 发表
楼主何必这么诋毁intel  就像那些诋毁vista 64不是真正的纯64位系统一样


都是X-FI惹得祸啊。。。。

刚刚刻盘安装好了64位的Ubuntu,程序响应倒是蛮快的,eclipse也能够安装,32位的JDK确定是不行了,直接崩溃就是,没有去找64位的版本。。。flash有点小麻烦,没有去管它

直接奔到创新的网站,下了X-FI的64位驱动程序。。。。55555~

还是那句话,“该产品仅支持64位操作系统。。。。程序退出”。。白忙活了 :crying:
回复 支持 反对

使用道具 举报

15#
发表于 2007-11-21 07:07 | 只看该作者
很早以前就已经有PAE技术使32位CPU寻址大于4G的内存容量……
Windows Server的32位高端版本也支持大于4G的内存(Enterprise 8G,Datacenter 64G)
x86-64/Intal 64的出现倒是让微软不需要去考虑把服务器版的PAE技术引入32位Windows XP/Vista
而索性出一个x64的Windows
还带来了严重的兼容性问题和驱程重写问题……
而四年过去了,x64专用的64位软件没见多少,驱程继续一塌糊涂……
要用4G以上的内存,必须用x64的Windows,也必须忍受x64的兼容性和驱程缺失问题(主板显卡之类的设备还好,周边那些独立声卡、电视卡、蓝牙设备等很多只有一两个“可以用”的驱程或者索性什么都没有)……
某种角度来说,x86-64/Intel 64纯粹是中看不中用的恶魔般的技术……

[ 本帖最后由 frankincense 于 2007-11-21 07:12 编辑 ]
回复 支持 反对

使用道具 举报

16#
发表于 2007-11-21 08:42 | 只看该作者
Intel的EM64技术完全照搬AMD

当年可是被嘲笑坏了的

记得驱家有消息说,intel的说明文档都是amd的,还忘了replace AMD with Intel。。。。。。。。。

64位不过是AMD的市场炒作,intel被迫跟风罢了。。。。

建议lz改名看穿64位就好了,AMD也一样
回复 支持 反对

使用道具 举报

17#
发表于 2007-11-21 09:17 | 只看该作者
LZ去踩AMD和MS吧,这种中看不中用的技术就是AMD发布、MS推广的。

PS:现在的EMT64和X64毫无区别。

附:X86-64的说明
  • Full support for 64-bit integers: All general-purposeregisters (GPRs) are expanded from 32 bits to 64 bits, and allarithmetic and logical operations, memory-to-register andregister-to-memory operations, etc., are now directly supported for64-bit integers. Pushes and pops on the stack are always in eight-bytestrides, and pointers are eight bytes wide.
  • Additional registers:In addition to increasing the size of the general-purpose registers,the number of named general-purpose registers is increased from eight(i.e. eax,ebx,ecx,edx,ebp,esp,esi,edi) in x86-32to 16. It is therefore possible to keep more local variables inregisters rather than on the stack, and to let registers holdfrequently accessed constants; arguments for small and fast subroutinesmay also be passed in registers to a greater extent. However, moreregisters also involves more saving and restoring of register contents,and AMD64 still has fewer registers than many common RISC processors (which typically have 32–64 registers) or VLIW-like machines such as the IA-64 (which has 128 registers).
  • Additional XMM (SSE) registers: Similarly, the number of 128-bit XMM registers (used for Streaming SIMD instructions) is also increased from 8 to 16.
  • Larger virtual address space: Current processor models implementing the AMD64 architecture can address up to 256 tebibytes of virtual address space (248 bytes). This limit can be raised in future implementations to 16 exbibytes (264 bytes). This is compared to just 4 gibibytesfor 32-bit x86. This means that very large files can be operated on bymapping the entire file into the process' address space (which isgenerally faster than working with file read/write calls), rather thanhaving to map regions of the file into and out of the address space.
  • Larger physical address space: Current implementations of the AMD64 architecture can address up to 1 tebibyte of RAM (240 bytes); the architecture permits extending this to 4 pebibytes (252 bytes) in the future (limited by the page table entry format). In legacy mode, Physical Address Extension (PAE) is supported, as it is on most current 32-bit x86 processors, allowing access to a maximum of 64 gibibytes.
  • Instruction pointer relative data access: Instructions can now reference data relative to the instruction pointer (RIP register). This makes position independent code, as is often used in shared libraries and code loaded at run time, more efficient.
  • SSE instructions: The original AMD64 architecture adopted Intel's SSE and SSE2 as core instructions. SSE3 instructions were added in April 2005. SSE2 replaces the x87 instruction set's IEEE 80-bit precision,with the choice of either IEEE 32-bit or 64-bit floating-pointmathematics. This provides floating-point operations compatible withmany other modern CPUs. The SSE and SSE2 instructions have also beenextended to support the eight new XMM registers. SSE and SSE2 areavailable in 32-bit mode in modern x86 processors; however, if they'reused in 32-bit programs, those programs will only work on systems withprocessors that support them. This is not an issue in 64-bit programs,as all processors that support AMD64 support SSE and SSE2, so using SSEand SSE2 instructions instead of x87 instructions does not reduce theset of machines on which the programs will run. Since SSE and SSE2 aregenerally faster than, and duplicate most of the features of, thetraditional x87 instructions, MMX, and 3DNow!, the latter are redundant under AMD64.
  • No-Execute bit:The “NX” bit (bit 63 of the page table entry) allows the operatingsystem to specify which pages of virtual address space can containexecutable code and which cannot. An attempt to execute code from apage tagged "no execute" will result in a memory access violation,similar to an attempt to write to a read-only page. This should make itmore difficult for malicious code to take control of the system via "buffer overrun" or "unchecked buffer" attacks. A similar feature has been available on x86 processors since the 80286as an attribute of segment descriptors; however, this works only on anentire segment at a time. Segmented addressing has long been consideredan obsolete mode of operation, and all current PC operating systems ineffect bypass it, setting all segments to a base address of 0 and asize of 4 GiB.AMD was the first x86-family vendor to support no-execute in linearaddressing mode. The feature is also available in legacy mode on AMD64processors, and recent Intel x86 processors, when PAE is used.
  • Removal of older features: A number of "system programming"features of the x86 architecture are not used in modern operatingsystems and are not available on AMD64 in long (64-bit andcompatibility) mode. These include segmented addressing (although theFS and GS segments were retained in vestigial form for compatibilitywith Windows code)[3],the task state switch mechanism, and Virtual-8086 mode. These featuresdo of course remain fully implemented in "legacy mode," thus permittingthese processors to run 32-bit and 16-bit operating systems withoutmodification.
和EMT64对比一下,有什么区别?

[ 本帖最后由 acqwer 于 2007-11-21 09:18 编辑 ]
回复 支持 反对

使用道具 举报

来不及思考 该用户已被删除
18#
发表于 2007-11-21 09:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

19#
发表于 2007-11-21 09:18 | 只看该作者
小白年年有,今天特别多。
回复 支持 反对

使用道具 举报

20#
发表于 2007-11-21 09:21 | 只看该作者
原帖由 动力音熊II 于 2007-11-21 04:24 发表


都是X-FI惹得祸啊。。。。

刚刚刻盘安装好了64位的Ubuntu,程序响应倒是蛮快的,eclipse也能够安装,32位的JDK确定是不行了,直接崩溃就是,没有去找64位的版本。。。flash有点小麻烦,没有去管它

直接奔到 ...

送你一句话:不会玩linux就老老实实用Windows,跟什么风。你这种对待问题的态度,根本不适合使用Linux。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-2-1 05:07

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表