InvestorsHub Logo
Followers 4
Posts 4127
Boards Moderated 0
Alias Born 03/06/2003

Re: HailMary post# 27477

Friday, 02/27/2004 10:19:27 AM

Friday, February 27, 2004 10:19:27 AM

Post# of 97555
HailMary, I'm not sure what you read to get that conclusion -

From this reference manual, it looks like segmentation stuff still has to be included even in 64-bit compatibility mode.

I presume you mean Compatibility Mode within Long Mode (there is no '64-bit compatibility mode'). The system does not have any segmentation in this mode. All the underlying memory structures are flat 64-bit; the application sees the flat 32-bit area at the start of the 64-bit area.

Maybe you are confusing the concept of a selector with the old segment concept. Different things. All modern processors support a memory management scheme where the application is put in an environment where it sees flat memory, starting with address 0x0 and going to the maxmum requested address.

Now, to keep a simple memory model for the application, the OS maps memory to this flat area. The application's memory may be made from different sections of actual DRAM, but it looks contiguous (and zero-based) to the app.

Early computers did not do this. Applications would be 'link-loaded' to some memory area (which may have holes which the application could not use). During the loading of the program, a load-time linker would parse the application and fix all the address references with the actual memory locations it required. It was a pretty clumsy scheme.

In AMD64, Long Mode totally gets rid of segments. 32-bit programs are loaded into a contiguous 32-bit (flat) address space and 64-bit programs are loaded into a contiguous 64-bit address space. The programs don't see the actual memory locations that are used for this mapping.
Volume:
Day Range:
Bid:
Ask:
Last Trade Time:
Total Trades:
  • 1D
  • 1M
  • 3M
  • 6M
  • 1Y
  • 5Y
Recent AMD News