developing a 64-bit strategy craig mcmurtry developer evangelist, software vendors developer and...

37

Upload: garey-hoover

Post on 06-Jan-2018

229 views

Category:

Documents


3 download

DESCRIPTION

By the middle of [2005], virtually all our server products will be 64-bit capable. – Phil Brace, Intel Server Marketing Group

TRANSCRIPT

Page 1: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation
Page 2: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

Developing a 64-bit Strategy

Craig McMurtryDeveloper Evangelist, Software VendorsDeveloper and Platform EvangelismMicrosoft Corporation

Page 3: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

By the middle of [2005], virtually all our server products will be 64-bit capable. – Phil Brace, Intel Server Marketing Group

Page 4: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

AMD’s processors are already (almost) all 64-bit capable!

Page 5: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

Objects in the mirror are closer than they appear.

Page 6: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

Developing a 64-bit StrategyAgenda 64-bit Hardware What Microsoft is doing about it What you can do about it

Page 7: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

64-bit HardwareWhat is a 64-bit Processor? Processors work on data in chunks. Bigger chunks = higher throughput On a 32-bit processor, max chunk size =

4 GB On a 64-bit processor, max chunk size >

16TB!!!

Page 8: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

64-bit HardwareWhat is a 64-bit Processor? Processors work on data in chunks. Bigger chunks = higher throughput On a 32-bit processor, max chunk size =

4 GB On a 64-bit processor, max chunk size >

16TB!!!

Page 9: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

64-bit HardwareTwo different species of 64-bit Processors Intel Itanium Processor

EPIC Instruction Set Explicitly Parallel Computing Bundling Instructions Predication

64-bit EPIC Instruction Set NOT x86 Instruction

Set!!! Has decoder to translate x86 instructions Can’t boot x86 Operating Systems

6 Floating Point Calculators 6.4 Gigaflops of single-precision floating point

power

Page 10: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

64-bit HardwareTwo different species of 64-bit Processors x64 Processors

64-bit processor Built-in memory controller x86 Instruction Set

Runs 32-bit x86 applications at machine speed!!!

Stunning performance

Page 11: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

64-bit HardwareTwo different species of 64-bit Processors x64 Processors

Stunning performance Opteron outpaced pre-x64 Xeons by 45% in

some tests At Microsoft, reduced Windows OS build times

by 2/3

Source: http://www.anandtech.com/IT/showdoc.aspx?i=1935&p=9

Page 12: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

64-bit HardwareTwo different species of processors Both revolutionary designs Itanium is the floating-point champ x86 is the software compatibility champ

Number-crunching

Broad utility

Page 13: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

64-bit HardwareTwo different species of processors Both revolutionary designs Itanium is the floating-point champ x86 is the software compatibility champ

Number-crunching

Broad utility

Page 14: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit? Operating Systems? Developer Tools? Applications?

Page 15: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems

Itanium x64

Windows XP Professional AvailableWith WS2K3 SP1 (H2

2005)Windows Server 2003,

StandardWith WS2K3 SP1 (H2

2005)With WS2K3 SP1 (H2

2005)Windows Server 2003,

Enterprise AvailableWith WS2K3 SP1 (H2

2005)Windows Server 2003,

Datacenter Available n/a

Page 16: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems

WindowsCodeBase

x86 compiler

x64 compiler

Itanium compiler 64-bit Windows for Itanium

64-bit Windows for x64

32-bit Windows for x86

One code base

Page 17: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems Features not supported on any 64-bit

Windows Microsoft DOS 16-bit applications OS/2 Subsystem POSIX Subsystem Obsolete transport protocols

Page 18: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems

Windows Firewall Windows Security

Center DVD video playback NetMeeting Fax Movie Maker Windows Messenger MSN Internet Access ZIP Folders Home Networking

Fast user switching Remote Assistance File and Settings Transfer

Wizard Search Companion OpenGL DirectX Themes Power Management System Restore BlueTooth

x64 Windows has many features not on Itanium

Page 19: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems 32-bit support at O/S level via WoW64

Intercepts calls from 32-bit apps to O/S

Page 20: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems 32-bit support at O/S level via WoW64

Intercepts calls from 32-bit apps to O/S Separate sets of system folders

64-bit apps in Program Files folder 64-bit libraries in System32 folder

32-bit apps in Program Files (x86) folder 32-bit libraries in SysWOW64 folder

Page 21: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems 32-bit support at O/S level via WoW64

Intercepts calls from 32-bit apps to O/S Separate sets of system folders Registry keys for 32-bit apps under

HKEY_LOCAL_MACHINE\Software\WOW6432Node

Page 22: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems 32-bit support at O/S level via WoW64

Intercepts calls from 32-bit apps to O/S Separate sets of system folders Registry keys for 32-bit apps under

HKEY_LOCAL_MACHINE\Software\WOW6432Node

Limitations: 16-bit installers 32-bit drivers

Page 23: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Operating Systems Summary

64-bit Windows for Itanium today 64-bit Windows for x86 in H2 2005

Part of Windows Server 2003 SP1 Release WOW64 subsystem supports 32-bit apps at

O/S level

Page 24: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Developer Tools For C and C++

Itanium compiler & MFC, ATL, C-Runtime libs today

x64 versions with WS2K3 SP1 ([email protected])

New Itanium and x64 versions with VS 2005

For .NET VS .NET 2003 may be supported on WS2K3

SP1 VS 2005 includes 64-bit 2.0 .NET

Framework for Itanium and x64

Page 25: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What is Microsoft doing about 64-bit?Applications SQL Server 2000 for Itanium today SQL Server 2005 for x64 and Itanium in H2

2005

Page 26: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit? Extend your Microsoft-based apps to

support it Architectural Issues Code migration Testing and debugging

Page 27: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Architecture Support a 64-bit Database Extending your code

Cannot access 32-bit DLLs from 64-bit code… So plan to access 32-bit DLLs via remote

interfaces

Page 28: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Architecture Support a 64-bit Database Extending your your code

Cannot access 32-bit DLLs from 64-bit code… So plan to access 32-bit DLLs via remote

interfaces

Page 29: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Extending your code Aim for one version for both 32-bit and 64-

bit!

Page 30: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Extending your code C and C++

Consider moving it to managed code If you stick to C and C++ note:

On 64-bit Windows, long integer is 32-bits, pointer is 64

ImageBase = (PVOID)((ULONG)ImageBase|1)

Use the Windows data types exclusively New fixed precision types,

eg. DWORD32 – 32-bits on both 32-bit and 64-bit New polymorphic types,

eg. ULONG_PTR – 32-bits on 32-bit, 64-bits on 64

ImageBase = (PVOID)((ULONG_PTR)ImageBase|1)

X

Page 31: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Extending your code C and C++

If you stick to C and C++ note: 0xFFFFFFFF is not -1 on a 64-bit system Memory alignment is critical especially on Itanium

#pragma pack (1) struct AlignSample {

ULONG size; void *ptr;

};

void foo(void *p) {

struct AlignSample s; s.ptr = p;

}

Page 32: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Extending your code C and C++

If you stick to C and C++ note: 0xFFFFFFFF is not -1 on a 64-bit system Memory alignment is critical especially on Itanium

#pragma pack (1) struct AlignSample {

ULONG size; void *ptr;

};

void foo(void *p) {

struct AlignSample s; s.ptr = p;

}

Page 33: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Extending your code C and C++

If you stick to C and C++ note: Use SIZE_T to determine if you are on 32- or 64-

bit

Page 34: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Extending your code Managed Code

1.0 & 1.1 executables run as 32-bit apps For 2.0 64-bit executables

Floating points are more precise Examine interfaces to unmanaged code SYSTEM.INPOINTER tells if you are on 32- or 64-

bit Components in the GAC are tagged as 32-

or 64-bit

Page 35: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

What can you do about 64-bit?Migration Building and testing

Build & test on 32-bit, then compile for 64 and test

Debugging is remote on 64-bit

Page 36: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

Conclusions The market for x64 hardware is

exploding You need to take advantage of it There never was a better time to

adopt .NET

Page 37: Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation

© 2002 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.