Opentopia Directory Encyclopedia Tools

31-bit

Encyclopedia : 3 : 31 : 31B : 31-bit


N-bit Processors
4-bit 8-bit 16-bit 24-bit 31-bit 32-bit 48-bit 64-bit 128-bit
N-bit Applications
    16-bit   31-bit 32-bit   64-bit  
N-bit Data Sizes
4-bit 8-bit 16-bit     32-bit   64-bit 128-bit
nibble byte octet word dword qword
In computer architecture, 31-bit integers, memory addresses, or other data units are those that are at most 31 bits (32 bits minus 1 unused/reserved bit) wide. Also, 31-bit CPU and ALU architectures are those that are based on registers, address buses, or data buses of that size.

Specifically, it refers to the 31-bit addressing mode which IBM introduced in the System/370-XA Mainframe architecture in a step to upgrade the 24-bit addressing of earlier models. This allowed address spaces to be 128 times larger.

In the System/360 and System/370 architectures, addresses were always represented in 32-bit words, but the machine had ignored the top 8 bits of the address. With the extension, no bits in the word were ignored.

The transition was tricky: programmers had been using the spare byte at the top of addresses for flags for almost twenty years. IBM chose to support two forms of address to reduce the pain: if the most significant bit of a 32-bit address was on, the next 31 bits were interpreted as the virtual address. If the most significant bit was off, then only the lower 24 bits were treated as the virtual address (in other words, just like before the feature was added). So programs could continue using the seven low-order bits of the top byte for other purposes, as long as they left the top bit off.

Certain machine instructions of the architecture also change this addressing mode bit as a possibly intentional side effect. The original subroutine call instruction BAL stores certain status information in the top byte of the return address; a BAS instruction was added to support 31-bit return addresses.

In the 1990s IBM introduced 370/ESA architecture (later named 390/ESA and finally ESA/390 or System/390, in short S/390), finishing the evolution to full 31-bit virtual addressing and keeping this addressing mode flag.

The barrier of 2GB linear addressing was only broken in 2000 with the upgrade to 64-bit using the z/Architecture and its first Server, the IBM zSeries Model 900.

Since Linux/390 was first released for the existing 32-bit data/31-bit addressing hardware in 1999, the initial 32-bit mainframe Linux and applications compiled in 32-bit mode suffer this restriction. It is only abandoned by use of 64-bit hardware. 64-bit zLinux (referring to 64-bit Linux on the z/Archtecture) with 64-bit applications breaks the barrier.

However, using Expanded Storage, which can be allocated for a given S/390 LPAR and VM guest instance, code running in 32-bit mode can make use of additional storage, but at any one instant, at most 2GiB is in the address space. In Linux/390 memory beyond 2GiB can only be used as a RAM disk.

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: