In computer architecture, 128-bit integers, memory addresses, or other
data units are those that are at most 128 bits wide. Also, 128-bit CPU and ALU
architectures are those that are based on registers, address buses, or data
buses of that size. While there are currently no mainstream
general-purpose processors built to operate on 128-bit integers or
addresses, a number of processors do have specialized ways to operate on
128-bit chunks of data. The IBM System/370 could be considered the first
simple 128-bit computer, as it used 128-bit floating point registers. Most
modern CPUs feature SIMD instruction sets where 128-bit vector registers are
used to store several smaller numbers, such as four 32-bit floating-point
numbers. A single instruction can then operate on all these values in parallel.
However, these processors do not operate on individual numbers that are 128
binary digits in length, only their registers have the size of 128-bits.
The DEC VAX supported operations on 128-bit integer and 128-bit
floating-point datatypes. Support for such operations was an upgrade option
rather than being a standard feature. Since the VAX's registers were 32 bits
wide, a 128-bit operation used four consecutive registers or four longwords
in memory. The ICL 2900 Series provided a 128-bit
accumulator, and its instruction set included 128-bit floating point and
packed decimal arithmetic. In the same way that compilers emulate
e.g. 64 bit integer arithmetic on architectures with register sizes less
than 64 bit, some compilers also support 128 bit integer arithmetic. For example,
the GCC C compiler has a __int128_t 128 bit integer type. For the C programming
language, this is a compiler-specific extension, as C11 itself doesn't
guarantee support for 128 bit integers. Uses
The free software used to implement RISC-V architecture is defined for 32,
64 and 128 bits of integer data width. Universally Unique Identifiers consist
of a 128-bit value. IPv6 routes computer network traffic
amongst a 128-bit range of addresses. ZFS is a 128-bit file system.
GPU chips commonly move data across a 128-bit bus.
128 bits is a common key size for symmetric ciphers and a common block
size for block ciphers in cryptography. 128-bit processors could be used for
addressing directly up to 2128 bytes, which would greatly exceed the total
data stored on Earth as of 2010, which has been estimated to be around 1.2
zettabytes. Quadruple precision floating point
numbers can store qword fixed point numbers or integers accurately without
losing precision. Since the Intel 8087, the x86 architecture supports 80-bit
floating points that store and process 64-bit signed integers accurately.
The AS/400 virtual instruction set defines all pointers as 128-bit. This
gets translated to the hardware's real instruction set as required, allowing
the underlying hardware to change without needing to recompile the
software. Past hardware was 48-bit CISC, while current hardware is 64-bit
PowerPC. Because pointers are defined to be 128-bit, future hardware may be
128-bit without software incompatibility.
Increasing the word size can speed up multiple precision mathematical
libraries. Applications include cryptography.
History A 128-bit multicomparator was described
by researchers in 1976. A CPU with 128-bit multimedia extensions
was designed by researchers in 1999. References