128-bit
Error: Fetching the article from Wikipedia failed.

128-Bit

Representation

128-bit processors could be used for addressing directly up to 2128 (over 3.40×1038 bytes, which would greatly exceed the total data captured, created, or replicated on Earth as of 2018, which has been estimated to be around 33 zettabytes (over 274 bytes).1)

A 128-bit register can store 2128 (over 3.40 × 1038) different values. The range of integer values that can be stored in 128 bits depends on the Value and representation | integer representation used. With the two most common representations, the range is 0 through 340,

282,

366,

920,

938,

463,

463,

374,

607,

431,

768,

211,

455 (2128 − 1) for representation as an (signedness | unsigned) binary number, and −170,

141,

183,

460,

469,

231,

731,

687,

303,

715,

884,

105,

728 (−2127) through 170,

141,

183,

460,

469,

231,

731,

687,

303,

715,

884,

105,

727 (2127 − 1) for representation as two's complement.

Quadruple-precision floating-point format | Quadruple precision (128-bit) floating-point arithmetic | floating-point numbers can store 113-bit fixed-point arithmetic | fixed-point numbers or integer (computer science) | integers accurately without losing significant figures | precision (thus 64-bit integers in particular). Quadruple precision floats can also represent any position in the observable universe with at least micrometer precision.

Decimal128 floating-point numbers can represent numbers with up to 34 significant digits.

History

A 128-bit multicomparator was described by researchers in 1976.<ref>

</ref>

The IBM System/360 Model 85,<ref>

</ref> and IBM System/370 and its successors, support 128-bit floating-point arithmetic.

The Siemens 7.700 and 7.500 series mainframes and their successors support 128-bit floating-point arithmetic.<ref>

</ref>

Most modern CPUs feature single instruction, multiple data (SIMD) instruction sets (Streaming SIMD Extensions, AltiVec etc.) 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 vector registers have the size of 128&nbsp;bits.

The DEC VAX supported operations on 128-bit integer ('O' or octaword) and 128-bit floating-point ('H-float' or HFLOAT) datatypes. Support for such operations was an upgrade option rather than being a standard feature. Since the VAX's registers were 32&nbsp;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.

A CPU with 128-bit multimedia extensions was designed by researchers in 1999.<ref>

</ref>

The Dreamcast and the PlayStation 2 among the Sixth generation of video game consoles used the term “128-bit” in their marketing to describe their capability. The Playstation 2's CPU had 128-bit Single instruction, multiple data | SIMD capabilities.<ref name=“CAAQA”>John L. Hennessy and David Patterson (scientist) | David A. Patterson. “Computer Architecture: A Quantitative Approach, Third Edition”.

</ref><ref name=“MPR”>Keith Diefendorff. “Sony's Emotionally Charged Chip”. Microprocessor Report, Volume 13, Number 5, April 19, 1999. Microdesign Resources.</ref> Neither console supported 128-bit addressing or 128-bit integer arithmetic.

Hardware

The RISC-V ISA specification from 2016 includes a reservation for a 128-bit version of the architecture, but the details remain undefined intentionally, because there is yet so little practical experience with such large memory systems.<ref name=“isa”>

</ref>

Graphics processing unit (GPU) chips commonly move data across a 128-bit bus.<ref>

</ref>

Software

In the same way that compilers emulate e.g. 64-bit integer arithmetic on architectures with register sizes less than 64 bits, some compilers also support 128-bit integer arithmetic. For example, the GNU Compiler Collection | GCC C compiler 4.6 and later has a 128-bit integer type

__int128

for some architectures.<ref>

</ref> GCC and compatible compilers signal the presence of 128-bit arithmetic when the macro

__SIZEOF_INT128__

is defined.<ref>

</ref> For the C programming language, 128-bit support is optional, e.g. via the

int128_t

type, or it can be implemented by a compiler-specific extension. The Rust (programming language) | Rust programming language has built-in support for 128-bit integers (originally via LLVM), which is implemented on all platforms.<ref>

</ref> A 128-bit type provided by a C compiler can be available in Perl via the

Math::Int128

module.<ref>

</ref>

Uses

Research It More

Fair Use Sources

128-bit.txt · Last modified: 2025/02/01 07:23 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki