© 2004 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice
What Transitioning from 32-bit to 64-bit x86 Computing Means Today
Chris WannerSenior Architect, Industry Standard ServersHewlett-Packard
2
Agenda
• What and Why of 64bit computing
• Intel EM64T vs. AMD64
• X86 64bit extensions vs. Itanium 2
• Transition to 64bit computing
3
64bit processors
R8K
1990 2000
R4K
EV4
Merced
MIPS
POWER
PA-RISC
ALPHA
SPARCUltra
SPARC III
EV5
UltraSPARC
R10K R12K R14K
UltraSPARC IV
R16K
IPF
8000
UltraSPARC II
EV6
8700
Power4
McKinley
Opt
eron
Opt
eron
Madison
X86-64 bit Extensions Xeo
nX
eon
x86-64 extensions brings 64bit computing to the
volume/mainstream industry standard market
8500
EV7
8800
Power3
Power5
What and Why of 64bit computing ?
Its about:
- Data handling- Memory addressability
5
Data handling
− Registers− Datapaths− Arithmetic units
• What is the benefit of being able to use larger chunks of data?
What size “chunks” can we use to move and manipulate data
64bit arithmetic vs. 32bit64bit logical operations vs. 32bit
Higher performance
64bit floating point operations vs. 32bit
Greater accuracy
6
Data handling – register size
1970 1980 1990 2000
��������
����
����
����
����
����
��� �
��� �
���
���
����
��
4
8
16
32
64������
�������
3 yrs
4 yrs
7 yrs
18+ yrs
64-bit computing will continue to feed the
need for higher levels of performance
����
32-bit computing fueled the growth of
the Industry Standard Server
market
7
Data handling - register size
• But….− Tempered by the reality that 32bit processors in
Industry Standard Servers already can move and compute data in chunks larger than 32bits:• Cache line size is 512-bits• 64-bit front side bus• 64-bit, 128-bit, and even 256-bit internal datapaths• 80bit FPUs, 64bit MMX, and 128bit XMM SIMD floating point
and Integer operations (SSE2)
There would be little need for a “true” 64bit processor if data size was the only reason….
8
Data handling – register quantity
• Its not just about the width of registers, its also about quantity of registers:
• 64bit processors typically have more registers than 32-bit processors
• More registers can equal more performance− Registers are “faster” than cache or memory− More registers = more data can be held close to the CPU core
and used without incurring CPU idles− Ex. IPF = 128 General Purpose registers vs. 8 GPR for IA-32
9
Data handling - register quantity
• But….− Even though the basic IA-32 ISA only specifies 8
GPRs, additional but specific registers are available with x87, MMX, and SSE extensions
So there must be more still ….
What and Why of 64bit computing ?
Its about:
- data handling- Memory addressability
11
Memory Addressability
• How much memory a CPU can access is dependent on the bit-ness of the CPU:− Address range = 2bit-ness
• Thus:
− 216 = 64KB
− 232 = 4 GB
− 264 = 16 Exabytes
32-bit processors
64-bit processors
32bit address range 64bit address range
4,000,000,000 times
“No one will need more than 64K of memory”
Urban Legend quote attributed to Bill Gates
How important is a larger address space?
13
����
����
����
����
����
����
����
��� �
��� �
���
���
����
��
1
1K
1MB
1GB
1TB
Addressability over time
������
�������
1970 1980 1990 2000
3yrs
4yrs 7 yrs 18+ yrs
64k
4GB
“Who needs more than 4GB of memory?”
A: increasingly more applications are requiringmore than 4GB of memory
15
Memory addressability
• Consider:�Currently 4GB address space is shared between OS kernel, library
routines, and applications• Applications get only 2GB – 3GB of space
�Server consolidation solutions where a number of applications are sharing the available memory space• Consolidation solutions are becoming more prevalent across the
industry• Greater CPU power• Need to reduce TCO
• Virtual address space may be even more important than physical�Database applications that can store more data in memory rather
than on disk decreases database delays by orders of magnitude�Email applications where each user supported requires memory
resources� More memory = more supported users
16
Memory Addressability
• These and many other solutions can benefit from larger address space and thus:
• These are not new concepts to computing, − But x86 64bit extensions moves new capabilities into
the the volume industry standard computing space
More memory = more performanceMore memory = more capabilities
More memory = more reliability and availability
What took so long?
18
Memory capacity and pricing trends
$100
$1,000
$10,000
$100,000
1994 1996 1998 2000 2002
����������
02468
1012141618
1994 1996 1998 2000 2002
���� ��������
Economical
Not economical
Practical
Not practical
>4GB capacities in a typical Industry Standard Server has not been practical during the past 10
years
Expense of >4GB has not been economical until
recently
19
Memory barriers removed
So at this time it is both practicaland economical to have large
memory capacities in volume servers thus making 64bit computing ala x86
64bit extensions viable and important
x86 64 bit Extensions
Questions?
21
64bit Extensions Architectures
• What?
− Intel: EM64T (Extended Memory 64bit technology)
− AMD: AMD64 (AMD’s x86-64bit technology)
− Microsoft: X64 (Microsoft’s term for x86 64bit extensions)
64bit extensions
registers & instructions
23
x86 to x86-extensions - registers
alahbxcxdxspbpsidi
15 7 0
EAXEBXECXEDXESPEBPESIEDI
RAX
R8
R15
3163
MMX0/FPR0
.
.
.
.
.
.MMX7/FPR7
079
X87/MMXGPR
XMM0......
XMM7XMM8
.
.
.
.
XMM15.
.
127 0
SSE & SSE2
Program Counter
EIP63 31 0
ip
15
64bit extensions is the latest in a series of changes to the x86 architecture that has been
occurring over the last 20+ years
24
x86 extensions – 10 new instructions
8-byte only version in AMD64SupportedNot supportedCMPXCHG16B
New mnemonic for existing opcodeSupportedSupportedSTOSQ
New for Intel in 64bit mode only64-bit mode onlySupported in all modesSYSRET
64-bit version of existing instructionSupportedSupportedMOVZX
New mnemonic for existing opcodeSupportedSupportedMOVSQ
NewSupportedSupportedSWAPGS
New for Intel in 64bit mode only64-bit mode onlySupported in all modesSYSCALL
New mnemonic for existing opcodeSupportedSupportedLODSQ
New mnemonic for existing opcodeSupportedSupportedCMPSQ
New mnemonic for existing opcodeSupportedSupportedCDQE
NotesIntelAMDInstruction
Minor differences in the implementations of 64bit extensions is expected to be handled by compilers and OS’s transparent to the end user
Different platforms but single binary
25
32bit and 64bit modesU
ser
Ker
nel
Application
OperatingSystem
Drivers
Full 64bit environment
64 bit
64 bit
64 bit
Native 64-bit
Allows users to move to 64-bit
without giving up 32-bit compatibility
or performance
64 bit
64 bit
32 bit
Compatibility
Existing SW infrastructure
32 bit
32 bit
32 bit
Legacy
Long Modelegacy Mode
Thunking*
* Windows - Thunking/DLLLinux - System call emulation
Ecosystem Support for x86 64bit Extensions
OS & Applications
27
OS and Applications
• Transition from x86 16bit to 32bit:
• Transition from x86 32bit to 64bit:
64bit OS support significantly faster than last major transition
82386Release
Windows NT 3.1Windows 95
> 8 years
Opteron/AMD64SuSE/SLES8Redhat EL3
<1 year
Microsoftx86 OS
2 years
28
Redhat Enterprise Linux 3
SuSE Linux Enterprise Server 9
Microsoft ProductsMicrosoft Products
Windows XP 64-bit Edition
6464--bitbit3232--bitbit
Windows Server 2003 Datacenter Edition
Windows Server 2003 Enterprise Edition
Windows Server 2003 Standard Edition
Windows Server 2003 Web Edition
X86X86--6464IPFIPFx86x86Linux ProductsLinux Products
OS SupportOS Support
Available now Expected release 1H05
29
Application support
����������������� ������
050
100150200250300350
Q1'03 Q2'03 Q3'03 Q4'03 Q1'04 Q2'04 Q3'04
���������������
• Development tools – e.g. GNU & C++ compilers, debuggers, profilers, libraries• Database engines – e.g. SQL, Oracle 8i,9i, MySQL• Infrastructure applications – e.g. VMware, Zeus web server, .NET environment• Vertical applications - .e.g. Synopsys, Cadence, Fluent, Matlab
AMD64 EM64T
LinuxOSs
ShippedIn development
X86 64bit extensions vs. Itanium 2
• Architecturally � significant differences• Instruction set � significant differences• positioning � significant differences
31
Xeon/Opteron compared to Itanium 2
1 2 3 4 5 6
Xeon / Opteron
6.4 GB/s20 GB/s
1 TB
2.2 GHz, 3.2+GHz
Itanium® 2 Processor
6.4 GB/s
1024 TB
8
Memory Addressing
1 2 3 4 5 6 7 8 9 1011
System Bus Bandwidth
On-die Cache
On-die Registers
Execution Units
Core Frequency
Issue Ports
264 Application Registers + 64 Predicate Registers*
6 Instructions / Cycle
40 Registers
1231
3 Instructions / Cycle
6 MB
Instructions / Clk
6 Integer, 3 Branch
2 FP (FMAC)1 SIMD
2 Load and 2 Store
2 Loador
2 Store
Fmisc,Fmul,Fadd1 for SIMD
3Integer
1MB – 4MB
1.5 GHz
Pipeline Stages
32
Positioning x86 64bit extensions vs. IPF
Workgroup
MailMessaging
Directory, DNS, firewall, security
Services, caching, proxy Web
Infra-structure
HPC
Apptier
Biz intelligence/ SCM planning
Biz intelligenceVery large data sets
Large SMP, large memoryHPC
ERPlarge
OLTPlarge
BI
1 - 4 processors 4 - 8 processors 8 - 64+ processors
OLTPmed
ERPmedium
BI
Integrity & NonStop
ProLiant & Integrity
Integrity & NonStop servers
ProLiant & Integrity systems
Mix of ProLiant, Integrity & NonStop
ProLiant
Integrity
For customers who need the highest levels of performance and scalability for the most demanding applications and enterprise environments, Itanium architecture and HP Integrity servers are the solutions of choice
33
Positioning continued…
Scalability
Bre
adth
of A
pplic
atio
ns 32-bit x86
X86 – 64
64-bit IPF
Transitioning to 64bits
35
32 bit to 64 bit transitioning
Lessons learn with Itanium:
- some applications port extremely well- others are a huge burden…
- esp. 16bit code- assembly code
- be judicious about what to port and what not to port- some applications benefit from 64bit- others run slower in 64bit mode- 64bit extensions gives you the flexibility to portonly those applications that make sense to portand the rest can stay 32bits !!!
36
What applications should port to x86-64?
Database:− Many database apps are memory bound within a 32-bit environment
and benefit greatly from larger physical address space− Possibly even run entire database out of memory rather than from
disk
email:− Larger address space allows the server to support a much larger
number of users per server• Fewer servers / lower TCO
Terminal Server:− Avoiding kernel address space limitations when hosting multiple
applications• Ex. Microsoft Office hosting on Terminal Server in a 64bit environment
can support 50% more users vs. 32bit environment
37
What applications should port to x86-64?
Business Apps:− Apps that have high memory requirements− Apps that have high computational requirements
Technical / Scientific computing:− Need for a large virtual and physical address space− Complex computations
These requirements are valid for porting to IPF 64-bits also, it’s a matter of degree:
- low/med requirements = x86 64-bit extensions- high requirements = Itanium 2 processor
Co-produced by:
39
Backup
• Opteron Ecosystem support
������������� ����� ����������