Most CPUs are designed so that the contents of a single integer register can store the
address (location) of any datum in the computer's
virtual memory. Therefore, the total number of addresses in the virtual memory — the total amount of data the computer can keep in its working area — is determined by the width of these registers. Beginning in the 1960s with the
IBM System/360 (which was an exception, in that it used the low order 24 bits of a word for addresses, resulting in a 16
MB [16 × 10242 bytes] address space size), then (amongst many others) the
DEC VAX minicomputer in the 1970s, and then with the
Intel 80386 in the mid-1980s, a
de facto consensus developed that 32 bits was a convenient register size. A 32-bit
address register meant that 232 addresses, or 4
GB of
RAM, could be referenced. At the time these architectures were devised, 4 GB of memory was so far beyond the typical quantities (4 MB) in installations that this was considered to be enough "headroom" for addressing. 4.29 billion addresses were considered an appropriate size to work with for another important reason: 4.29 billion integers are enough to assign unique references to most entities in applications like
databases.
Bookmarks