Early versions of OpenVMS Alpha simulated the 32-bit VAX environment through a straightforward technique known as sign extension. In technical terms, it copied the highest bit of a 32-bit address to each of the high 32 bits of the 64-bit address. Any VAX address at 7FFFFFFF or lower has a clear first bit, which caused the first 32 bits of the corresponding Alpha address to be clear also. Any VAX address of 80000000 or higher has the first bit set, thus setting the first 32 bits of the Alpha address.
In practical terms, it mapped the first 2GB of VAX address space to the lowest 2GB of Alpha address space, and the high 2GB of the VAX space to the highest 2GB of Alpha space. All the extra addressing space in between, nearly all of the available 64-bit space, was unused:
VAX address Alpha address 00000000 0000000000000000 00000123 0000000000000123 40000000 0000000040000000 7FFFFFFF 000000007FFFFFFF 0000000100000000 (Unused) . . (Unused) . FFFFFFFF7FFFFFFF (Unused) 80000000 FFFFFFFF80000000 85004444 FFFFFFFF85004444
Later versions of OpenVMS Alpha began using the previously unused sections of the 64-bit address space. Since the VAX system space (80000000 x and above) was starting to get crowded, the OpenVMS engineers began moving certain components to unused portions of the address space. Data for the Distributed Lock Manager were among the first to be moved, and since that time, various other components have been moved to newly defined regions of system space.