4

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.

atx
  • 4,831
  • 3
  • 26
  • 40

1 Answers1

4

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.

David W
  • 10,062
  • 34
  • 60
  • I think this is basically correct. A *flat* address space is one without holes. As opposed to *segmented*, I would think *unmapped* might be the contrast. Since this is for the Power8, I would say that each process could have 4GB worth of swap for itself for about 1 million processes. – artless noise Jan 25 '13 at 01:54