В чем различия между плоским адресным пространством, линейными адресами, базовым адресом, расчетами эффективного адреса - PullRequest
1 голос
/ 23 октября 2019

В чем различия между всеми этими вещами: плоские адреса, базовый адрес, линейные адреса, эффективные адреса, физический адрес, вычисления эффективных адресов ???

1 Ответ

4 голосов
/ 23 октября 2019

80x86 имеет сегментацию и разбиение на страницы;где виртуальные адреса (которые используют программное обеспечение) преобразуются в физические адреса (которые используют такие устройства, как контроллер памяти). Для полного преобразования:

  • первый ЦП определяет эффективный адрес / смещение (например, для инструкции типа "mov eax,[eax+ebx*4+99]" ЦП вычисляет результат "eax"+ ebx * 4 + 99 ")

  • , затем процессор применяет сегментацию (добавляя базовый адрес сегмента после проверки предела сегмента), чтобы получить линейныйадрес .

  • , тогда процессор использует линейный адрес и таблицы страниц (и / или TLB) для преобразования линейного адреса в физический адрес .

Примечание. Если базовые адреса сегментов всегда всегда равны нулю (а ограничения сегментов установлены на макс.), То сегментация фактически отключается (поскольку она ничего не делает). Это часто называют « плоская адресация » (и это то, что делает большинство операционных систем).

...