Download presentation
Presentation is loading. Please wait.
Published byGarey Hoover Modified over 9 years ago
2
Developing a 64-bit Strategy Craig McMurtry Developer Evangelist, Software Vendors Developer and Platform Evangelism Microsoft Corporation
3
By the middle of [2005], virtually all our server products will be 64-bit capable. – Phil Brace, Intel Server Marketing Group
4
AMD’s processors are already (almost) all 64- bit capable!
5
Objects in the mirror are closer than they appear.
6
Developing a 64-bit Strategy Agenda 64-bit Hardware What Microsoft is doing about it What you can do about it
7
64-bit Hardware What 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!!!
8
64-bit Hardware What 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!!!
9
64-bit Hardware Two 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
10
64-bit Hardware Two 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
11
64-bit Hardware Two 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
12
64-bit Hardware Two different species of processors Both revolutionary designs Itanium is the floating-point champ x86 is the software compatibility champ Number-crunching Broad utility
13
64-bit Hardware Two different species of processors Both revolutionary designs Itanium is the floating-point champ x86 is the software compatibility champ Number-crunching Broad utility
14
What is Microsoft doing about 64-bit? Operating Systems? Developer Tools? Applications?
15
What is Microsoft doing about 64-bit? Operating Systems Itaniumx64 Windows XP ProfessionalAvailableWith WS2K3 SP1 (H2 2005) Windows Server 2003, StandardWith WS2K3 SP1 (H2 2005) Windows Server 2003, EnterpriseAvailableWith WS2K3 SP1 (H2 2005) Windows Server 2003, DatacenterAvailablen/a
16
What is Microsoft doing about 64-bit? Operating Systems Windows Code Base x86 compiler x64 compiler Itanium compiler 64-bit Windows for Itanium 64-bit Windows for x64 32-bit Windows for x86 One code base
17
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
18
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
19
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
20
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
21
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
22
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
23
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
24
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 (libs7164@microsoft.com) 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
25
What is Microsoft doing about 64-bit? Applications SQL Server 2000 for Itanium today SQL Server 2005 for x64 and Itanium in H2 2005
26
What can you do about 64-bit? Extend your Microsoft-based apps to support it Architectural Issues Code migration Testing and debugging
27
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
28
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
29
What can you do about 64-bit? Extending your code Aim for one version for both 32-bit and 64-bit!
30
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 √
31
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; }
32
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; }
33
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
34
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
35
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
36
Conclusions The market for x64 hardware is exploding You need to take advantage of it There never was a better time to adopt.NET
37
© 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.