Home  |  News  |  Reviews  | About Search :  HardWare.fr 



  Processors

  Motherboards

  Graphic Cards

  Multimedia

  Storage

  Imaging

  Monitors

  Miscellaneous
Advertise on BeHardware.com
Review index:
Intel Pentium 4 660 and EE 3.73 GHz
by Marc Prieur
Published on February 21, 2005

Enhanced Memory 64 Technology
EM64T is, in fact, the equivalent to the AMD64’s ISA. It’s a 64 bit extension of the x86 instruction set. So, general registers, small memory areas which temporary store memory addresses and whole numbers, are increased from 32 to 64 bits.

Processing data in 64 bits isn’t an innovation in and of itself. Since its introduction, x87 which is in charge of floating point calculations is able to work up to 80 bits internally. Furthermore, certain MMX/SSE/SSE2 instructions also permit work with 64 bit whole numbers. The use of this type of data, now generalised to all data stored in the GPR, has two advantages:

- An increased speed of whole numbers calculations. In fact, for applications which require very big whole numbers (the limit is still 4.29e9 in 32 bits, and reaches 1.84e19 in 64 bits), the process of coding the whole number to 64 bits helps the processor more easily manipulate this type of number without needing to double the number of registers and clock cycles required for calculations. This only concerns specific applications such as data encoding or scientific calculations.

- Storing data in 64 bits allows exceeding the 4 GB limit due to binary coding in 32 bits, increasing to 256 Terabytes because of the 48 bit virtual memory coding “restriction”. Intel has been able to go beyond this 4 GB limit with the Xeon to reach 64 Go, even if this code has some restrictions. Here again, it won’t be really that useful for most users.





In fact, the main interest of the EM64T, like the AMD64, is the number of registers. In x86 mode, processors have 8 x87 80 bit, 8 32 bit general and 8 SSE 128 bit registers. With the AMD64 and EM64T, the number of x87 80 bits registers is still 8, however the number of 64 bit general registers and SSE 128 bit ones is increased to 16. The higher number of available registers permits the restriction of the number of instructions to disable registers and copy them in memory. Consequently this increases performance.

Finally, the release of the EM64T and AMD64 permits a break with the sacrosanct x86 compatibility. Several executables are still compiled to be compatible with the x86 set of instructions like with the 386. They have since been improved, but these improvements aren’t necessarily used by developers during compilations. Now there is no confusion, the EM64T or AMD64 means Athlon 64 or Pentium 4.


In practice, the performance gains of this new function are variable, all the more because they rely on compilers that aren’t necessarily perfect. In order to evaluate its performance we used the latest testzlib version of by Gilles Vollant (to whom we are grateful) which measures the Windows portage performance of Zlib library compression. Complied with Visual C++ 2005 beta it’s available in four versions :

- x86 32 bits, only C
- x86 32 bits, C + Optimisation assembler
- x86 64 bits, only C
- x86 64 bits, C + Optimisation assembler.

Here are the results obtained expressed in MB /s under the latest Windows XP Professional x64 Edition, the v1433 (Release Candidate 2) – the final version is expected this spring:


With the Athlon 64 the performance gain is only 1% of the compiler level for non-optimized versions via assembler routines. With the Pentium 4 660 performance is even reduced! Of course, this result isn’t normal and the origin is most likely the compiler.

The assembler version uses a routine initially developed for the Pentium Pro, and adapted to the x86-64. Results are much more logical even if in the end the executable is 1.3% faster than the 32 bit version. The 64 bit assembler version is however 7.8% faster than the 32 bit one, and this result is more than satisfactory. For the moment it’s impossible to draw any conclusion on the 64 bit results.

Performance gains that are too large generally come from poorly optimized 32 bit executables. When performances are reduced the problem at this time clearly comes from the compiler. The new Pentium 4 supports the EM64T, but it’s now hard to tell how beneficial it will be.

<< Previous page
Introduction, Prescott v1.1

Page index
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
Next page >>
CPUs, in use, tests  




Copyright © 1997- Hardware.fr SARL. All rights reserved.
Read our privacy guidelines.