Чем отличаются логические и физические адреса

Чем отличаются логические и физические адреса

Адреса бывают логические и физические. Разберем, что это значит.

Адреса в основной памяти, характеризующие реальное расположение данных в физической памяти, называются физическими адресами. Набор физических адресов, с которым работает программа, называют физическим адресным пространством. Иными словами физический адрес это адрес, по которому процессор (или другое устройство) обращаются к RAM, используя шину адреса. Совсем просто можно сказать, что физический адрес это номер байта, к которому мы обращаемся, в адресном пространстве.

Пользовательская программа, которая загружается в память для исполнения, не видит реальных физических адресов, а имеет дело с, так называемыми, логическими адресами. Это нужно, потому что одна и та же программа может быть загружена в разные области памяти, в зависимости от того какие другие программы к этому моменту уже загружены в память. Логические адреса обычно образуются на этапе создания загрузочного модуля программы. Т.е. логический адрес это адрес, который «знает» программа. Набор адресов, используемый программой, называют логическим адресным пространством

В процессоре должен быть особый узел – блок преобразования адреса (БПА). Программа указывает свой (логический) адрес, он попадает в этот блок, блок что-то с ним делает такое, чтобы из этого адреса сделать физический, и лишь затем такой преобразованный адрес попадает на шину адреса. Это называется отображение логического адреса на физический, или трансляция логического адреса в физический. Способ отображения зависит от режима работы процессора отдельно для реального и отдельно для защищенного режима работы.

Сегментная адресация в реальном режиме.

Реальный режим работы процессора это режим, в котором работало первое поколение процессоров (i8086, i8088), любой современный процессор после включения питания начинает работать в реальном режиме и только потом программно переводится в защищенный режим.

Для работы с памятью используются две шины — шина адреса и шина данных. Физически память устроена таким образом, что возможна адресация как 16-битовых слов, так и отдельных байтов памяти. Кроме того, процессоры начиная с i80386 могут адресовать 32-битовые слова памяти.

В любом случае так называемый физический адрес передаётся из процессора в память по шине адреса. Ширина шины адреса определяет максимальный объём физической памяти, непосредственно адресуемой процессором. Для 20-разрядной адресной шины процессора i8086 используется двадцать двоичных (или пять шестнадцатеричных) разрядов. Однако все регистры этого процессора являются 16-разрядными. Возникает проблема представления 20-разрядного физического адреса памяти при помощи содержимого 16-разрядных регистров. Максимальное число (данное или адрес), которое можно записать в 16-разрядный регистр, составляет всего 2 16 — 1 = 65535, или 64Кб-1 из нужного нам одного мегабайта.

Для разрешения этой проблемы используется двухкомпонентный логический адрес. Логический адрес состоит из двух 16-разрядных компонент. Такой способ называется сегментной адресацией памяти.

Суть сегментной адресации заключается в следующем. Обращение к памяти осуществляется исключительно с помощью сегментов. Сегментом называется условно выделенная область адресного пространства определённого размера. В реальном режиме процессора всё адресное пространство делится на одинаковые сегменты размером 64Кб.

Физический адрес любой ячейки памяти вычисляется процессором путем сложения начального адреса сегмента (базы сегмента), в котором располагается эта ячейка, со смещением к ней (в байтах) от начала сегмента (рис. 17). Это смещение иногда называют относительным адресом.

Рисунок 17 Образование физического адреса из сегментного адреса и смещения.

Читайте также:  Методы объектов и контекст вызова

Покажем как вычисляется физический адрес–для получения 20-разрядного физического адреса к сегментной компоненте (заносящейся в сегментный регистр) приписывается справа четыре нулевых бита (для расширения до 20 разрядов), затем полученное число складывается с компонентой смещения. Перед сложением к компоненте смещения слева дописывается четыре нулевых бита (также для расширения до 20 разрядов). Эту процедуру иллюстрирует рисунок 18

Рисунок 18. Вычисление физического адреса в реальном режиме.

Логический адрес принято записывать в шестнадцатеричной форме в виде .

Например, пусть у нас есть логический адрес 1234h:0123h. Содержимое базового регистра равно 1234h, регистра смещения — 0123h. Вычислим физический адрес, соответствующий нашему логическому адресу:

расширяем до 20 бит сегментную компоненту, дописывая справа 4 нулевых бита, получаем число 12340h;

расширяем до 20 бит компоненту смещения, дописывая слева 4 нулевых бита, получаем число 00123h;

для получения физического адреса складываем полученные числа: 12340h + 00123h = 12463h.

Очевидно, что одному физическому адресу может соответствовать несколько логических. Например, физическому адресу 12463h соответствует логический адрес 1246h:0003h.

Фактически в схеме адресации памяти реального режима вся память как бы разбивается на перекрывающиеся сегменты размером 64Кб. Физический адрес начала сегмента (базовый адрес) равен расширенной до 20 бит сегментной компоненте адреса (расширение выполняется дописыванием справа 4 нулевых бит).

Сегмент может начинаться не с любого физического адреса, а только с такого, который кратен 16 байтам. Деление адресного пространства на фрагменты по 16 байт с которых может начинаться сегмент называется делением на параграфы, поэтому обычно говорят, что сегмент может начинаться только с границы параграфа.

Содержимое сегментного регистра при такой схеме адресации определяет номер сегмента, а компонента смещения является смещением внутри сегменты памяти. Рисунок 19 иллюстрирует сказанное выше.

Рисунок 19. Соответствие логического и физического адресов.

На этом рисунке показано соответствие логического адреса 0002h:0028h физическому адресу 00048h.

Использование сегментной адресации дает дополнительное преимущество при программировании.

Каждой программе выделяется свой собственный сегмент (или даже несколько). Внутри каждого сегмента начинается собственная адресация от нуля — смещение. Таким образом, программист во время кодирования может вообще не заботиться, где именно физически будет размещена программа в памяти.

Операционная система управляет загрузкой и выгрузкой программ примерно так. Свободный сегмент выделяется программе во время загрузки. А после того, как программа завершилась, операционная система снова помечает сегмент как незанятый.

главное отличие между логическим и физическим адресом является то, что логический адрес — это виртуальный адрес, сгенерированный ЦП, в то время как физический адрес является фактическим местоположением в основной памяти.

Одним из компонентов компьютера является память. Каждая ячейка памяти состоит из адреса, чтобы однозначно идентифицировать его. Существует два типа адресов, известных как логический адрес и физический адрес. Процессор генерирует логический адрес. Он также называется виртуальным адресом. Физический адрес — это фактический адрес в блоке памяти. Доступ к программе из вторичной памяти занимает больше времени. Следовательно, программа загружается в основную память во время выполнения. Затем сгенерированный ЦП логический адрес преобразуется в физический адрес, чтобы найти соответствующее местоположение в основной памяти.

Ключевые области покрыты

1. Что такое логический адрес
— определение, функциональность
2. Что такое физический адрес
— определение, функциональность
3. Разница между логическим и физическим адресом
— Сравнение основных различий

Основные условия

Логический адрес, физический адрес, операционная система

Что такое логический адрес

Программа представляет собой набор инструкций. Первоначально он сохраняется во вторичной памяти.Процессору требуется больше времени для доступа к вторичной памяти. Поэтому программа помещается в основную память во время выполнения. При выполнении инструкций ЦП генерирует логический адрес. Это также называется виртуальный адрес, Этот адрес преобразуется в физический адрес для доступа к инструкции в основной памяти. Набор всех логических адресов, сгенерированных для программы, называется логическим адресным пространством.

Читайте также:  Для чего накачивают шины азотом

Что такое физический адрес

Физический адрес — это адрес в основной памяти. Все физические адреса, принадлежащие программе, называются физическим адресным пространством. Логический адрес преобразуется в физический адрес во время выполнения. Следующее изображение объясняет этот процесс.

Рисунок 1: Преобразование логического адреса в физический адрес

Предположим, что есть компьютерная программа со 100 инструкциями. Он загружается в ячейку 500 основной памяти. 100-я инструкция находится в ячейке 600. Регистр перемещения — это специальный регистр ЦП. Он сохраняет базовый адрес программы при загрузке в основную память для выполнения. В этом сценарии регистр перемещения имеет значение 500. CPU генерирует логический адрес 60. Добавление этого логического адреса и значения в адресе перемещения дает физический адрес. Это фактическое местоположение в основной памяти. Следовательно, 560 является соответствующим физическим адресом.

Разница между логическим и физическим адресом

Определение

Логический адрес — это адрес, по которому элемент, такой как ячейка памяти, элемент хранения, кажется, находится с точки зрения исполняемой программы. Физический адрес — это адрес памяти, который позволяет получить доступ к определенной ячейке памяти в основной памяти.

Адресное пространство

Логическое адресное пространство — это набор всех логических адресов, сгенерированных для программы, в то время как физическое адресное пространство — это набор всех физических адресов программы.

использование

Логический адрес помогает получить физический адрес. Физический адрес помогает идентифицировать местоположение в основной памяти.

Метод генерации

ЦП генерирует логические адреса, в то время как комбинация регистра перемещения и логического адреса обеспечивает физический адрес.

Заключение

Разница между логическим и физическим адресом заключается в том, что логический адрес — это виртуальный адрес, сгенерированный ЦП, а физический адрес — это фактическое расположение в основной памяти. Процессор генерирует логический адрес или виртуальный адрес. Суммирование этого логического адреса и значения из регистра перемещения дает соответствующий физический адрес в основной памяти.

Ссылка:

1. Логическое и физическое адресное пространство, Учебное пособие Point (Индия) Pvt. ООО, 18 января 2018 г.,

Адрес однозначно идентифицирует местоположение в памяти. У нас есть два типа адресов: логический адрес и физический адрес. Логический адрес является виртуальным адресом и может быть просмотрен пользователем. Пользователь не может просматривать физический адрес напрямую. Логический адрес используется как ссылка для доступа к физическому адресу. Принципиальное различие между логическим и физическим адресом состоит в том, что логический адрес генерируется ЦП во время выполнения программы, тогда как физический адрес относится к месту в блоке памяти.

Есть некоторые другие различия между логическим и физическим адресом. Давайте обсудим их с помощью сравнительной таблицы, показанной ниже.

Читайте также:  Расчет радиатора охлаждения транзистора

Сравнительная таблица

Основа для сравнения Логический адрес Физический адрес
основной Это виртуальный адрес, сгенерированный процессором Физический адрес — это место в блоке памяти.
Адресное пространство Набор всех логических адресов, сгенерированных ЦП применительно к программе, называется логическим адресным пространством. Набор всех физических адресов, сопоставленных с соответствующими логическими адресами, называется физическим адресом.
видимость Пользователь может просматривать логический адрес программы. Пользователь никогда не сможет просмотреть физический адрес программы
Доступ Пользователь использует логический адрес для доступа к физическому адресу. Пользователь не может напрямую получить доступ к физическому адресу.
поколение Логический адрес генерируется процессором Физический адрес вычисляется MMU

Определение логического адреса

Адрес генерируется процессором во время работы программы и называется логическим адресом . Логический адрес является виртуальным, поскольку он не существует физически. Следовательно, он также называется виртуальным адресом . Этот адрес используется в качестве ссылки для доступа к физической памяти. Набор всех логических адресов, генерируемых перспективой программы, называется логическим адресным пространством .

Логический адрес сопоставляется с соответствующим физическим адресом с помощью аппаратного устройства, называемого блоком управления памятью . Методы привязки адресов, используемые MMU, генерируют идентичный логический и физический адрес во время компиляции и загрузки . Однако во время выполнения методы привязки адресов генерируют разные логические и физические адреса.

Определение физического адреса

Физический адрес определяет физическое местоположение в памяти. MMU ( модуль управления памятью) вычисляет физический адрес для соответствующего логического адреса. MMU также использует логический адрес для вычисления физического адреса. Пользователь никогда не имеет дело с физическим адресом. Вместо этого пользователь обращается к физическому адресу по его соответствующему логическому адресу. Пользовательская программа генерирует логический адрес и считает, что программа работает по этому логическому адресу. Но для выполнения программы нужна физическая память. Следовательно, логический адрес должен быть сопоставлен с физическим адресом перед их использованием.

Логический адрес сопоставляется с физическим адресом с использованием оборудования, называемого блоком управления памятью . Набор всех физических адресов, соответствующих логическим адресам в пространстве логических адресов, называется физическим адресным пространством.

Ключевые различия между логическим и физическим адресом в ОС

  1. Основное различие между логическим и физическим адресом состоит в том, что логический адрес генерируется процессором в перспективе программы. С другой стороны, физический адрес является местоположением, которое существует в блоке памяти.
  2. Набор всех логических адресов, генерируемых ЦП для программы, называется логическим адресным пространством. Однако набор всех физических адресов, сопоставленных с соответствующими логическими адресами, называется физическим адресным пространством.
  3. Логический адрес также называется виртуальным адресом, поскольку логический адрес физически не существует в блоке памяти. Физический адрес — это место в блоке памяти, к которому можно получить физический доступ.
  4. Идентичный логический адрес и физический адрес генерируются методами привязки адресов времени компиляции и загрузки.
  5. Логический и физический адрес, сгенерированный в то время, как метод привязки адресов во время выполнения отличается от другого
  6. Логический адрес генерируется процессором во время работы программы, тогда как физический адрес вычисляется MMU (блоком управления памятью).

Заключение:

Логический адрес является ссылкой, используемой для доступа к физическому адресу. Пользователь может получить доступ к физическому адресу в блоке памяти, используя этот логический адрес.

Ссылка на основную публикацию
Чем открывать файл doc
Файлы формата DOC открываются специальными программами. Существует 2 типа форматов DOC, каждый из которых открывается разными программами. Чтобы открыть нужный...
Функция датазнач в excel
Возвращает числовой формат даты, представленной в виде текста. Функция ДАТАЗНАЧ используется для преобразования даты из текстового представления в числовой формат....
Функция если ячейка содержит определенный текст
Функция ЕСЛИ СОДЕРЖИТ Наверное, многие задавались вопросом, как найти функцию в EXCEL«СОДЕРЖИТ» , чтобы применить какое-либо условие, в зависимости от...
Чем открываются файлы pdf
Файлы формата PDF распространены для книг, журналов, документов (в том числе, требующих заполнения и подписи) и других текстовых и графических...
Adblock detector