Mobile PCs don’t need or benefit from 64-bit Vista

thinker_sm There have been a couple of posts recently about lack of support for certain functionality in 64-bit Windows environments. 


James Kendrick pointed out that the Send to OneNote feature is missing in the 64-bit version of the OS.



GBM provided the bad news that there is not going to be a fix for the current version of Office.

David Rasmussen provided some valuable context around why the Send to OneNote feature is not there on the 64-bit OS and why it is not going to be fixed in this version.

Drivers must be fully ported from 32 bit to 64 bit to work on 64 bit OSes. 32 bit Application code works on 64 bit OSes on top of an emulation layer (called WOW64 or Windows on Windows 64), so getting the application code to work is not too hard. Drivers are a whole different story though because they hook into the OS at a lower level and can’t run on WOW64 emulation. Also, older drivers tend to contain a lot of low level code and often assembly code that is not easy to port.
Given the size of the code, and the issues above, porting the MODI print driver for OneNote 2007 would be a LOT of work. Work that we would have to trade off directly against other improvements, and features that many users such as yourselves have been asking us for. That makes it a difficult decision. One we thought about a lot.

There have been other examples uncovered recently – I learned that the Ink Analysis API currently only supports 32-bit architectures.  This means that any application that uses this API will have to run in the WOW64 emulation.

Personally I would like to see 64-bit support throughout the OS, the APIs and the applications that Microsoft produces, but it is simply not there yet.  So the question has to be asked – if I have a machine that supports the 64-bit OS?  The answer – in fact – is no.  Here’s why I say that. 

First – some background.  Wikipedia has a pretty good explanation of what 64-bit is all about.

One of the key benefits of a 64-bit Operating System is the ability to address more than 4GB of RAM.  From Wikipedia:

A 32-bit register meant that 232 addresses, or 4 GBs of RAM, could be referenced. At the time these architectures were devised, 4 GB of memory was so far beyond the typical quantities (0.016 GB) available in installations that this was considered to be enough “headroom” for addressing.


However – for most mobile PCs today – this is quite irrelevant for two main reasons.  The first reason is that the vast majority of mobile PCs shipping today have either one or two physical slots on the motherboard.  Since, AFAIK, the largest RAM DIMM you can buy for a laptop today is 2GB most mobile PCs therefore have a maximum memory capacity less than or equal to 4GB.

The second (and much more important) reason that for the mobile PCs on the market today, even if you install 4GB of RAM you will not see it all with either a 32-bit or a 64-bit OS.  The reasons for this were described in great detail about a year ago by Hilton Locke:

Due to an architectural decision made long ago, if you have 4GB of physical RAM installed, Windows is only able to report a portion of the physical 4GB of RAM (ranges from ~2.75GB to 3.5GB depending on the devices installed, motherboard’s chipset & BIOS).

This behavior is due to “memory mapped IO reservations”. Those reservations overlay the physical address space and mask out those physical addresses so that they cannot be used for working memory. This is independent of the OS running on the machine.

Significant chunks of address space below 4GB (the highest address accessible via 32-bit) get reserved for use by system hardware:

• BIOS — including ACPI and legacy video support

• PCI bus including bridges etc.

• PCI Express support will reserve at least 256MB, up to 768MB depending on graphics card installed memory

What this means is a typical system may see between ~256MB and 1GB of address space below 4GB reserved for hardware use that the OS cannot access.


The other major benefit of a 64-bit OS is that the memory bus is 64-bits wide.  The performance of a computer is going to be partially influenced by both the speed of the bus and the width of the bus.  However – that benefit is only realised if the application running on the 64-bit OS is actually a 64-bit application.  If not it is going to run in the Windows on Windows emulation and is only going to put data on the bus in 32-bit chunks.  Because the majority of applications that are available today are not 64-bit applications there will be minimal performance gain by running 64-bit OS.

So the upshot is that while you can run a 64-bit OS on many of the Tablet PCs and Mobile PCs available today, there will actually be little benefit in doing so.  Lay on top of the the pain you will encounter trying to find 64-bit drivers for hardware and missing features in applications like OneNote and it is just not worth running a 64-bit OS.  By all means buy hardware that is 64-bit capable for the sake of future proofing, but if it is a mobile PC, install the 32-bit OS for now.