What are the differences among all these things : flat addresses ,base address , linear addresses , effective addresses, physical address , effective address calculations ???
80x86 has both segmentation and paging; where virtual addresses (that software use) are converted into physical addresses (that hardware like memory controller) uses. For the full conversion:
first CPU determines the effective address/offset (e.g. for an instruction like "
mov eax,[eax+ebx*4+99]
" the CPU calculates the result of "eax+ebx*4+99")then the CPU applies segmentation (by adding segment base address, after checking segment limit) to get a linear address.
then the CPU uses the linear address and page tables (and/or TLBs) to convert the linear address into a physical address.
Note: If the segment base addresses are all always zero (and segment limits are set to max.), then segmentation is effectively disabled (because it does nothing). This is often called "flat addressing" (and is what most operating systems do).
© 2022 - 2024 — McMap. All rights reserved.