Основное различие между логическим адресом и физическим адресом заключается в том, что ЦП генерирует логический адрес во время выполнения программы, тогда как физический адрес представляет собой ячейку памяти.
Проще говоря, ЦП генерирует логический адрес или виртуальный адрес. С точки зрения работающей программы кажется, что элемент расположен по адресу, заданному логическим адресом. Блок памяти соблюдает физический адрес. Более того, он позволяет получить доступ к конкретной ячейке оперативной памяти по шине данных.
Что такое логический адрес?
ЦП генерирует логический адрес. С точки зрения работающей программы кажется, что элемент расположен по адресу, заданному логическим адресом. Прикладные программы, запущенные на компьютере, не видят физических адресов. Они всегда работают с использованием логических адресов. Логическое адресное пространство - это набор логических адресов, генерируемых программой. Перед их использованием необходимо сопоставить логические адреса с физическими адресами. Блок управления памятью аппаратного устройства (MMU) обрабатывает этот процесс сопоставления.
Схемы отображения MMU
MMU следует нескольким схемам отображения. В простейшей схеме отображения значение в регистре перемещения добавляется к каждому логическому адресу, создаваемому прикладными программами, перед их отправкой в память. Существуют также некоторые другие сложные методы для создания отображения. Привязка адресов (т. е. размещение инструкций и данных по адресам памяти) может происходить в три разных момента времени.
Рисунок 01: Логический и физический адреса
Во-первых, это может произойти во время компиляции, если фактическое расположение памяти известно заранее, и это будет генерировать абсолютный код во время компиляции. Это также может произойти во время загрузки, если места в памяти заранее не известны. Для этого во время компиляции необходимо сгенерировать перемещаемый код. Кроме того, привязка адреса может происходить во время выполнения. Для этого требуется аппаратная поддержка сопоставления адресов. Во время привязки адреса во время компиляции и во время загрузки логические и физические адреса совпадают. Но эта процедура отличается, когда привязка адреса происходит во время выполнения.
Что такое физический адрес?
Блок памяти наблюдает за физическим адресом или реальным адресом. Это позволяет шине данных получить доступ к определенной ячейке памяти в основной памяти. MMU сопоставляет логический адрес с физическим адресом. Например, используя простейшую схему отображения, которая добавляет значение регистра перемещения (предположим, что значение в регистре равно y) к логическому адресу, диапазоны логических адресов от 0 до x будут отображаться в диапазон физических адресов от y до x+. у.
Кроме того, это также называется физическим адресным пространством этой программы. Все логические адреса должны быть преобразованы в физические адреса, прежде чем их можно будет использовать.
В чем разница между логическим адресом и физическим адресом?
Логический адрес против физического адреса |
|
Логический адрес - это адрес, по которому объект находится с точки зрения выполняющейся прикладной программы. | Физический адрес - это адрес памяти, который представлен в виде двоичного числа на схеме адресной шины, чтобы позволить шине данных получить доступ к конкретной ячейке памяти основной памяти или регистру памяти, отображаемому I /O устройство. |
Видимость | |
Пользователь может просмотреть логический адрес программы. | Пользователь не может просматривать физический адрес программы. |
Способ генерации | |
ЦП генерирует логический адрес. | MMU вычисляет физический адрес. |
Доступность | |
Пользователь может использовать логический адрес для доступа к физическому адресу. | Пользователь не может получить прямой доступ к физическому адресу. |
Резюме – логический адрес против физического адреса
Разница между логическим адресом и физическим адресом заключается в том, что ЦП генерирует логический адрес при выполнении программы, тогда как физический адрес представляет собой ячейку памяти. Все логические адреса должны быть преобразованы в физические адреса, прежде чем MMU сможет их использовать. Физические и логические адреса одинаковы при использовании привязки адреса времени компиляции и времени загрузки, но они различаются при использовании привязки адреса времени выполнения.