Программа для ЭВМ это упорядоченная последовательность команд, подлежащая обработке
Скачать 1.98 Mb.
|
40.Управление памятью в микропроцессорах: линейная и сегментная адресации, преобразование логических адресов в физические, управление виртуальной памятью.Линейная и сегментная адресации В современных МПС размер адресного пространства, требуемого программе для выполнения, может быть достаточно большим, так что число разрядов адреса при этом превышает размер машинного (информационного) слова конкретного процессора. В этом случае при адресации памяти в микропроцессоре возникают две задачи:
Для решения этих задач используют два способа адресации: линейную и сегментную адресации. По первомуспособу адрес представляет собой отдельное целочисленное значение и в процессоре адреса хранятся в специальных адресных регистрах соответствующей разрядности, превышающей разрядность регистров, используемых для обработки данных. Вычисление адреса осуществляется с помощью операции сложения, приращения и уменьшения слов соответствующей длины, которая превышает длину машинного (информационного) слова. Для этой цели можно несколько раз использовать АЛУ, предназначенное для обработки данных, но для ускорения вычисления адреса лучше использовать отдельный специальный сумматор соответствующей разрядности. Архитектура микропроцессора довольно сложная, но зато удобная, так как все адресное пространство используется как единое целое. По второмуспособу все пространство адресов делится на множество сегментов. Пространство, разбитое на такие сегменты, называется сегментированнымпространствомадресов. Начальный адрес сегмента называется базовым. За каждым сегментом закреплен соответствующий номер. Порядок разбиения пространства может быть произвольным, но, после того как он установлен, адрес можно представить с помощью номера сегмента и некоторого смещения внутри сегмента. При сегментной адресации такое разбиение позволяет представить адрес в виде двух целочисленных величин – номера сегмента и смещения, т.е. можно использовать два регистра меньшей разрядности (равной разрядности машинного слова), хранящих номера сегментов и значения смещений. Таким образом, вычисление адреса в принципе сводится только к вычислению смещения, т.е. для вычисления адреса можно воспользоваться тем же АЛУ, что и для обработки данных, не прибегая к помощи специальных регистров и сумматоров повышенной разрядности, что значительно упрощает структуру процессора. Преобразование логических адресов в физические В целях рационализации процесса программирования программы и данные удобно разбивать на модули. Каждому модулю присваивается соответствующее имя, а адрес внутри модуля представляется некоторым смещением. Такие модули используются в произвольных комбинациях. Программа, разбитая на модули, может быть помещена в любую область основной памяти. При таком подходе пространство адресов удобно представлять в виде сегментированного пространства: если каждый модуль расположить в отдельном сегменте памяти, то обращение к памяти можно осуществлять с помощью номера соответствующего сегмента и смещения. Такой адрес называется логическимадресом. Таким образом, так как программный модуль и модуль данных организуются в виде отдельных сегментов, программирование осуществляется с помощью логических адресов. Когда выполняется программа, составленная с помощью логических адресов, процессор в качестве адреса, также формирует логический адрес. Однако при обращении к этим сегментам, расположенным в основной памяти, в память надо передавать физический адрес, т.е. необходимо преобразование логического адреса в физический. Для этой цели между процессором и основной памятью помещают устройство, преобразующее логические адреса в физические, которое называется устройствомуправленияпамятью(УУП). Принцип преобразования логических адресов в физические состоит в следующем. Местоположение сегмента в основной памяти указывается его базовым адресом. Базовый адрес каждого сегмента помещается в УПП. По номеру сегмента из логического адреса УУП находит базовый адрес сегмента, соответствующий его номеру. Физический адрес вычисляется путем сложения найденного базового адреса сегмента и смещения, заданного в логическом адресе: Физический адрес = Базовый адрес сегмента + Смещение. Для задания базового адреса сегмента используются дескрипторы(описатели) сегментов. В УУП имеются специальные регистры для хранения дескрипторов сегментов – регистрыдескрипторовсегментов. Число этих регистров определяется числом используемых сегментов. Для выбора регистра служит номер сегмента. Существуют два способа выбора регистров. В соответствие с первым способом для хранения дескрипторов сегментов используется регистровый файл и адресом для выбора регистра служит номер сегмента. При этом, если номер сегмента является n-разрядным, необходимо использовать 2n регистров. Второй способ предполагает организацию регистров дескрипторов в виде ассоциативной памяти. В этом случае в памяти хранятся дескрипторы и соответствующие им номера сегментов. Схемы сравнения имеются во всех регистрах, поэтому сравнение осуществляется параллельно. В этом случае число регистров может быть меньше 2n. |