what transitioning from 32-bit to 64-bit x86 computing ... · what transitioning from 32-bit to...

39
© 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 Wanner Senior Architect, Industry Standard Servers Hewlett-Packard

Upload: hatuong

Post on 30-Jun-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

© 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

Page 2: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

2

Agenda

• What and Why of 64bit computing

• Intel EM64T vs. AMD64

• X86 64bit extensions vs. Itanium 2

• Transition to 64bit computing

Page 3: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 4: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

What and Why of 64bit computing ?

Its about:

- Data handling- Memory addressability

Page 5: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 6: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 7: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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….

Page 8: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 9: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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 ….

Page 10: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

What and Why of 64bit computing ?

Its about:

- data handling- Memory addressability

Page 11: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 12: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

“No one will need more than 64K of memory”

Urban Legend quote attributed to Bill Gates

How important is a larger address space?

Page 13: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

13

����

����

����

����

����

����

����

��� �

��� �

���

���

����

��

1

1K

1MB

1GB

1TB

Addressability over time

������

�������

1970 1980 1990 2000

3yrs

4yrs 7 yrs 18+ yrs

64k

4GB

Page 14: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

“Who needs more than 4GB of memory?”

A: increasingly more applications are requiringmore than 4GB of memory

Page 15: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 16: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 17: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

What took so long?

Page 18: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 19: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 20: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

x86 64 bit Extensions

Questions?

Page 21: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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)

Page 22: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

64bit extensions

registers & instructions

Page 23: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 24: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 25: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 26: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

Ecosystem Support for x86 64bit Extensions

OS & Applications

Page 27: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 28: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 29: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 30: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

X86 64bit extensions vs. Itanium 2

• Architecturally � significant differences• Instruction set � significant differences• positioning � significant differences

Page 31: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 32: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 33: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

33

Positioning continued…

Scalability

Bre

adth

of A

pplic

atio

ns 32-bit x86

X86 – 64

64-bit IPF

Page 34: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

Transitioning to 64bits

Page 35: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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 !!!

Page 36: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 37: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

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

Page 38: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

Co-produced by:

Page 39: What Transitioning from 32-bit to 64-bit x86 Computing ... · What Transitioning from 32-bit to 64-bit x86 Computing Means ... • Database engines – e.g. SQL, Oracle 8i,9i,

39

Backup

• Opteron Ecosystem support

������������� ����� ����������