Road to Mac OS X 10.6 Snow Leopard: 64-BitsNext year's 10.6 reference release of Mac OS X promises to deliver technology updates throughout the system without focusing on the customer-facing marketing features that typically sell a new operating system. Here's a look at what those behind-the-scenes enhancements will mean to you, starting with new 64-bit support.
The move toward 64-bit computing is often generalized behind the assumption that "more bits must be better," but that's not always true. In some cases, expanding support for more bits of memory addressing only results in requiring more RAM and computing overhead to do the same thing. However, Apple's progressive expansion of 64-bit support in Snow Leopard will bring performance enhancements across the board for users of new 64-bit Intel Macs. Here's a look at why, along with how it is that every version of Mac OS X since Tiger has advertised "64-bit support" as a key feature.
Follow up segments take a more detailed look at the issues related to the amount of RAM that can be installed and actually used by the system, how much memory a specific app can reserve for itself, how the OS gets faster with 64-bit addressing despite the additional overhead involved, how the market for 64-bit apps is unfolding, and how Apple is pioneering 64-bits on the desktop.
Road to Mac OS X Snow Leopard 1: 64-bits
2: 64-bits, Santa Rosa and the great PC swindle
3: Twice the RAM, half the price, 64-bits
4: The Future of 64-bit Apps
The march toward 64-bit
Through the 1980s, personal computers rapidly moved from 8-bit to 16-bit to 32-bit architectures, with each advance enabling the operating system and its applications to address more memory and more efficiently handle the memory available to them. The 8-bit computers of the early 80s could only directly address 64K, the upper limit of their 16-bit memory addressing; early Apple II systems switched between two banks providing 128K. DOS 8086 PCs with 20-bit addressing could handle a whopping 1MB of RAM, but overhead effectively limited them to using 640K of it. These early machines also highlight the fact that a CPU's architecture, memory address bus, and its data registers (used to load and store instructions) may all have different bit widths.
Similarly, the 1984 Macintosh jumped to using a 32-bit 68000 processor with 24-bit addressing, allowing the theoretical use of "only" 16MB, although at the time that was far more RAM than anyone could afford. That seemingly high limit eventually became a problem for memory hungry applications, particularly with the increased demands required by graphical computing and multitasking.
By the end of the 80s, Apple had delivered full 32-bit hardware with the Mac II's 68020 processor and the "32-bit clean" Mac System 7 software, which together enabled applications and the system to theoretically use as much as 4GB of directly addressable memory. By 1995, Microsoft was shipping its own 32-bit Windows API with WinNT and Win95 to take advantage of Intel's 32-bit 80386 and 486 CPUs.
More bits here and there
A decade later, the 4GB limit of 32-bit memory addressing would begin to pinch even home computers. To accommodate that inevitability, Apple began its migration to PowerPC in 1994 to make progress toward 64-bit computing and break from the limitations of the Motorola 680x0 processors it had been using. PowerPC offered a scaled down version of IBM's modern 64-bit POWER architecture, with 32 individual 32-bit general purpose registers; Intel's 32-bit x86 was a scaled up version of a 16-bit processor, and only offered 8, 32-bit GPRs. The lack of registers on x86 served as a significant constraint on potential performance and complicated development.
In order to attack the RAM limitation problem in advance of moving to 64-bit CPUs, Intel added support for "Physical Address Extension" or PAE to its 32-bit x86 chips, which provided a form of 36-bit memory addressing, raising the RAM limit from 4GB to 64GB. Using PAE, each application can still only address 4GB, but an operating system can map each app's limited allocation to the physical RAM installed in the computer.
Being able to use more than 4GB of RAM on a 32-bit PC requires support for PAE in the OS kernel. Microsoft has only supported this extra RAM in its Enterprise, Datacenter, and 64-bit versions of Windows; the standard 32-bit versions of Windows XP, Vista, and Windows Server are all still constrained to using 4GB of physical RAM, and they can't provide full access to more than about 3.5GB of it, making the limit an increasingly serious problem for desktop Windows PC users.
In the late 90s, Windows NT was ported to 64-bit architectures such as Digital's Alpha, MIPS, PowerPC, and Intel's ill-fated Itanium, but this also only benefitted high-end workstation users. Apple's own mid-90s PowerPC transition prepared the Mac platform for an easier transition to 64-bit computing, but it wasn't until 2003 that the PowerMac G5 introduced real 64-bit hardware. The G5 processor delivered 32 individual 64-bit GPRs and a 42-bit MMU (memory management unit) for directly addressing 4TB of RAM, although the PowerMac G5 hardware was limited to 8GB.
The mainstream PC remained stuck at 32-bit conventions until AMD released its 2003 Opteron CPU using an "AMD64" architecture that turned out to be a more practical alternative to upgrading into the world of 64-bits than Intel's entirely new Itanium IA-64 design. The new 64-bit PC, also called x86-64 and x64, largely caught up to PowerPC by suppling 16, 64-bit GPRs, and potentially a 64-bit memory bus to address 16EB (16 million TB) of RAM. AMD's x64 processors can theoretically address 48-bits, or 256TB, in hardware. In practice, no PC operating system currently supports more than 44-bits, or 16TB of virtual memory, and of course considerably less physical RAM.
On page 2 of 3: The challenge of moving to 64-bits; Windows and 64-Bits; and One step back two steps forward.