Rick Witham, Head of Developer Management & Evangelism Nokia
Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and...
-
Upload
garey-hoover -
Category
Documents
-
view
229 -
download
3
description
Transcript of Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and...
Developing a 64-bit Strategy
Craig McMurtryDeveloper Evangelist, Software VendorsDeveloper and Platform EvangelismMicrosoft Corporation
By the middle of [2005], virtually all our server products will be 64-bit capable. – Phil Brace, Intel Server Marketing Group
AMD’s processors are already (almost) all 64-bit capable!
Objects in the mirror are closer than they appear.
Developing a 64-bit StrategyAgenda 64-bit Hardware What Microsoft is doing about it What you can do about it
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!!!
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!!!
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
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
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
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
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
What is Microsoft doing about 64-bit? Operating Systems? Developer Tools? Applications?
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
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
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
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
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
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
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
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
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
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
What is Microsoft doing about 64-bit?Applications SQL Server 2000 for Itanium today SQL Server 2005 for x64 and Itanium in H2
2005
What can you do about 64-bit? Extend your Microsoft-based apps to
support it Architectural Issues Code migration Testing and debugging
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
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
What can you do about 64-bit?Extending your code Aim for one version for both 32-bit and 64-
bit!
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
√
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;
}
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;
}
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
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
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
Conclusions The market for x64 hardware is
exploding You need to take advantage of it There never was a better time to
adopt .NET
© 2002 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.