Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS_2015.docx
Скачиваний:
442
Добавлен:
11.05.2015
Размер:
2.07 Mб
Скачать

40.Управление памятью в микропроцессорах: линейная и сегментная адресации, преобразование логических адресов в физические, управление виртуальной памятью.

Линейная и сегментная адресации

В современных МПС размер адресного пространства, требуемого программе для выполнения, может быть достаточно большим, так что число разрядов адреса при этом превышает размер машинного (информационного) слова конкретного процессора. В этом случае при адресации памяти в микропроцессоре возникают две задачи:

  • в какой форме размещать адрес в регистрах;

  • каким образом осуществлять вычисление адреса.

Для решения этих задачиспользуют два способа адресации: линейную и сегментную адресации.

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

По второму способу всепространство адресов делится на множество сегментов. Пространство, разбитоена такие сегменты, называется сегментированным пространством адресов. Начальный адрес сегмента называется базовым. За каждым сегментом закреплен соответствующий номер. Порядок разбиения пространства может бытьпроизвольным, но, после того как он установлен, адрес можно представить с помощью номера сегмента и некоторого смещения внутри сегмента. При сегментной адресации такое разбиение позволяет представить адрес в видедвух целочисленных величин – номера сегмента и смещения, т.е. можно использовать два регистра меньшей разрядности (равной разрядности машинного слова), хранящих номера сегментов и значения смещений. Таким образом, вычисление адреса в принципе сводится только к вычислению смещения,т.е. для вычисления адреса можно воспользоваться темже АЛУ, что и для обработки данных, не прибегая к помощи специальных регистров и сумматоров повышенной разрядности, что значительноупрощает структуру процессора.

Преобразование логических адресов в физические

В целях рационализации процесса программирования программы и данныеудобно разбиватьна модули.Каждому модулю присваивается соответствующее имя, а адрес внутри модуля представляется некоторым смещением. Такие модули используются в произвольных комбинациях. Программа, разбитая на модули, может быть помещена в любую область основной памяти. При таком подходе пространство адресов удобно представлять в виде сегментированного пространства: если каждый модуль расположить в отдельном сегменте памяти,то обращение к памяти можно осуществлять с помощью номера соответствующего сегмента и смещения. Такой адрес называется логическим адресом. Таким образом, так как программный модуль и модуль данных организуются в виде отдельных сегментов, программирование осуществляется с помощью логических адресов. Когда

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

Принцип преобразования логических адресов в физические состоит в следующем. Местоположение сегмента в основной памяти указывается его базовым адресом. Базовый адрес каждого сегмента помещается в УПП. По номеру сегмента излогического адреса УУП находит базовый адрес сегмента, соответствующий его номеру. Физический адрес вычисляется путем сложения найденного базового адреса сегмента и смещения, заданного в логическом адресе:

Физический адрес = Базовый адрес сегмента + Смещение.

Для задания базового адреса сегмента используются дескрипторы (описатели) сегментов. В УУП имеются специальные регистры для хранения дескрипторов сегментов – регистры дескрипторов сегментов. Число этих регистров определяется числом используемых сегментов. Для выбора регистра служит номер сегмента. Существуют два способа выбора регистров. В соответствие с первым способом для хранения дескрипторов сегментов используется регистровый файл и адресом для выбора регистра служит номер сегмента. При этом, если номер сегмента является n-разрядным, необходимо использовать 2n регистров.

Второй способ предполагает организацию регистров дескрипторов в виде ассоциативной памяти. В этом случае в памяти

хранятся дескрипторы и соответствующие им номера сегментов. Схемы сравнения имеются во всех регистрах, поэтому сравнение осуществляется параллельно. В этом случае число регистров может быть меньше 2n.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]