Search code examples
cpucpu-architecturevirtual-address-space

POWER8 architecture 'flat' virtual address space


As mentioned here, can anyone explain what is meant by a 'flat' 32 bit space?

Text for the lazy:

Another interesting feature of the architecture is a virtual address system which maps all addresses into a 52-bit space. In this way applications can share memory in a "flat" 32-bit space, and all of the programs can have different blocks of 32 bits each.


Solution

  • A "flat" address space means that the virtualized 32-bit space used for each program is independently and directly accessible in consecutive offsets starting at byte 0 all the way through xFFFFFFFF.

    Contrast this with what are typically termed "segmented" address spaces where an address is composed of a segment number or descriptor, and then a smaller number of bits as an offset into that segment/descriptor.

    The memory management system performs the sleight of hand to translate a 32-bit address reference into a specific location within the actual 52-bit address space provided by the underlying architecture.