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.
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
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.
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,
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).