31-bit computing
In computer architecture, 31-bit integers, memory addresses, or other data units are those that are 31 bits wide.
In 1983, IBM introduced 31-bit addressing in the System/370-XA mainframe architecture as an upgrade to the 24-bit physical and virtual, and transitional 24-bit-virtual/26-bit physical, addressing in System/370. This enhancement allowed address spaces to be 128 times larger, permitting programs to address memory above 16 MB. Support for COBOL, FORTRAN and later on Linux/390 was included.
In the early 1980s, the Motorola 68012 was introduced; it had 32-bit data and address registers, as did the Motorola 68010, but instead of providing the lower 24 bits of an address, it did so for all but bit 30 on the address pins.
31-bit computer
The Librascope LGP-30 was an early off-the-shelf computer. The LGP-30 was first manufactured in 1956, at a retail price of $47,000,.It was a binary, 31-bit word computer with a 4096-word drum memory. There were 32 bit locations per drum word, but only 31 were used, permitting a "restoration of magnetic flux in the head" at the 32nd bit time. The number of vacuum tubes was minimized by using solid-state diode logic, a bit-serial architecture and multiple use of each of its 15 flip-flops.
The LGP-30 was commonly referred to as a desk computer. Its height, width, and depth, excluding the typewriter shelf, was 33 by 44 by 26 inches. It weighed about 800 pounds, and was mounted on sturdy casters which facilitated moving the unit.
IBM mainframes with 31-bit addressing
In the System/360, other than the 360/67, and early System/370 architectures, the general-purpose registers were 32 bits wide, the machine did 32-bit arithmetic operations, and addresses were always stored in 32-bit words, so the architecture was considered 32-bit, but the machines ignored the top 8 bits of the address resulting in 24-bit addressing.With the System/370-XA architecture and the IBM Enterprise Systems Architecture, in addition to a 24-bit addressing mode for compatibility with older applications, there is a 31-bit addressing mode, in which only the high order bit in the word is ignored for addressing. An exception is that mode-switching instructions also use bit 0. There were at least two reasons that IBM did not implement the 32-bit addressing of the 360/67
- The loop control instructions BXH and BXLE did signed comparisons.
- Much of the existing software used bit 0 as an end-of-list indicator.