Main menu
Main page
Contacts
Distributors
Product Overview
Gallery
References
Observations
Download
Astronomical cameras
Software
Store

Main pageProduct OverviewSoftware

What can 64 bit operating system do and which driver versions to choose?
 “64 bits” is a new marketing buzz-word in the world of mobile phones and tablets, but it is rather common in the world of Personal Computers. Despite the 64 bit systems are available for many years, especially recently number of newly installed 32 bit systems sharply declines and 64 bit systems dominate. Surprisingly, general understanding what does it mean is very low and particularly baffling is the fact, that 64 bit operating system is (fortunately) perfectly capable to run 32 bit applications. The answer to the question which driver version (32 bit or 64 bit) to install requires understanding of a few concepts.

64 bit computing

64 bit CPU (Central Processing Unit) is a computer processor with internal registers, holding and processing individual pieces of information (integer numbers, memory pointers, ...), up to 64 bits long. The first microprocessor ever was 4 bit (Intel 4004), but it was soon replaced by 8 bit version (Intel 8008). 8 bit CPUs became widely popular and numerous models appeared (Intel 8080, Zilog Z80, Motorola 6800, MOS Technology 6502, ...) and they powered first truly personal computers. In a chase for greater computing power and the ability to access more memory 16 bit and later 32 bit processors appeared, some of them created as extension of existing architectures, some designed from the scratch to be directly 16 or even 32 bit.

Continuous demand for more memory caused the 4 GB limit, allowed by 32 bit processors (2^32 = 4G) was exceeded and a room for 64 bit processors opened. And similarly, some of them were natural extension of older 32 bit architectures, some of them were newly designed as 64 bit.

But processor architectures have a tough life. They either become successful and widely spread or die soon. Currently (2015) only two architectures dominate—Intel x86-64 and ARM v7/v8. Another MIPS architecture processors (historically MIPS processors pioneered the RISC concepts and also become the first 64 bit microprocessors in the world) are trying to catch. All these architectures are available in 64 bit variants. And all evolved from their previous 32 bit versions, so they are able to run both 32 bit and 64 bit code.

Remark:

Intel x86 evolved from 16 bit to 32 bit first and only later 64 bit mode was added. It is worth noting that 64 bit version of the ancient x86 architecture was not introduced by Intel, which was busy promoting now dead Intel Itanium processors, completely incompatible with the x86 standard. Instead AMD, another manufacturer of x86 processors, invented 64 bit x86-64 extensions and when Microsoft started to support it, even Intel has to accept this standard. The key feature was the ability of 64 bit x86 CPUs to run all existing 32 bit software. Completely 32 bit environment was used first (operating system, applications) and only later 64 bit operating systems started to be common, running a mix of 32 bit and 64 bit applications.

64 bit x86 CPUs were marked x86-64, which was later reduced to x64 only. So “x86” means 32 bit Intel architecture, while “x64” means 64 bit Intel architecture (invented by AMD :-).

64 bit operating system

64 bit operating system needs 64 bit CPU to run. While a purely 64 bit OS, requiring 64 bit applications only, could be designed, it is almost impossible to succeed on the market. People need to run existing applications, so a backward compatibility is a key to success.

To achieve compatibility, both hardware (CPU) and software (operating system) must support it. And all major players do this (x64 and ARM, Windows and Android).

  • 64 bit CPU can run both 32 bit and 64 bit operating systems and applications. If 32 bit OS is run, the whole system acts as purely 32 bit, including memory address space limitations. It is not possible to use any 64 bit piece of code, 64 bit applications do not work.

  • When 64 bit CPU runs 64 bit OS, it is possible to run both 32 bit and 64 bit applications.

    Remark:

    Here is a source of confusion among many users. They have 64 bit CPU and 64 bit version of Windows, so they think all they run is 64 bit. In fact, only a very few applications are 64 bit, absolute majority are still in 32 bit form only (2015). And because they never need more than 4 GB of memory and work seamlessly, there is no pressure to rebuild them to 64 bit version.

    So 64 bit Windows can run both 32 bit and 64 bit SIPS without any problems.

  • But there is one important limitation. It not possible to mix 32 bit and 64 bit code in one process. One process is either completely 32 bit or completely 64 bit, including all DLLs, drivers and other components. The same is true for the operating system kernel—if it is 64 bit version, all device drivers must be 64 bit, too.

    Remark:

    This is why Gx camera system drivers are available as 32 bit and 64 bit versions for quite a long time. It is necessary to use 64 bit version of the system driver if 64 bit OS is used, despite the user application controlling the camera is 32 bit only.

    Similarly drivers for user applications (e.g. ASCOM camera drivers) must be 32 bit if the application is 32 bit (remember—majority of applications are still 32 bit), despite the application runs on 64 bit CPU and OS.

The fact that 32 bit and 64 bit code cannot be mixed and 64 bit code is always newly translated/modified allowed CPU designers to more or less modify the instruction set. Both AMD with x86-64 and ARM with v8 took advantage of introduction of a new 64 bit mode and upgraded the respective architectures. x64 somewhat reorganized register set, making it more regular, and doubled number of registers (from 8 to 16). ARM similarly removed conditional execution of all instructions and used the saved space in the instruction word to address twice as much registers (32 instead of 16). So it is not exaggeration to say that 64 bit ARM v8 is a completely new architecture, only similar to 32 bit ARM v7 (similarly like 16 bit Intel 8086 remotely resembled 8 bit Intel 8080).

Remark:

This is also source of confusion even among journalists focused to IT—64 bit code does not bring greater accessible memory only. Because of architectural updates the code also can run faster even if less that 4 GB memory is used.

 
 | Main page | Product Overview |