Moving OpenVMS from 32 to 64 Bits

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.



Getting Started with OpenVMS(c) A Guide for New Users
Getting Started with OpenVMS: A Guide for New Users (HP Technologies)
ISBN: 1555582796
EAN: 2147483647
Year: 2005
Pages: 215

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net