Как уже говорилось, размер адресного пространства определяется количеством адресных линий в составе адресной шины. Для увеличения адресного пространства необходимо увеличить количество этих линий (добавить старшие разряды). Сигналы на этих проводниках ничем не отличаются от сигналов, используемых для управления внешними устройствами, поэтому для расширения адресного пространства микропроцессора можно воспользоваться параллельным портом. Внешние выводы параллельного порта можно использовать в качестве старших битов адресной шины. Такой метод расширения адресного пространства называется страничным методом адресации. Регистр данных параллельного порта при использовании его для расширения адресного пространства будет называться переключателем страниц, а сам параллельный порт — диспетчером памяти. Схема использования параллельного порта в качестве переключателя страниц памяти приведена на рис. 5.4.
Рис. 5.4.
При применении 8-разрядного параллельного порта в микропроцессорной системе появились дополнительные восемь линий адреса. В результате адресное пространство микропроцессорной системы увеличилось до 16 Мбайт. Структура нового адресного пространства приведена на рис. 5.5, а принцип формирования нового адреса с использованием переключателя страниц пояснен на рис. 5.6.
Рис. 5.5.
Рис. 5.6.
Метод страничной адресации прост в реализации и при формировании адреса физической памяти не приводит к дополнительным временным задержкам. При использовании многозадачного режима работы процессора для каждой активной задачи выделяется целая страница в системной памяти микропроцессора. Если программный код задачи не занимает полностью страницу, то в системной памяти процессора остается много неиспользуемых областей. Решить возникшую проблему позволяет метод сегментной организации памяти.
При использовании этого метода для расширения адресного пространства используется базовый регистр, относительно которого производится адресация команд или данных в программе. Разрядность базового регистра обычно выбирают равной разрядности счетчика команд. В качестве базового регистра, как и при страничной организации памяти, можно использовать параллельный порт.
Адресное пространство при использовании сегментного метода адресации и различном размере сегментов, приведено на рис. 5.7.
Рис. 5.7.
Для формирования физического адреса используется параллельный двоичный сумматор. На входы этого сумматора подается содержимое базового регистра и счетчика команд. Суммирование производится со смещением кода базового регистра влево на несколько битов относительно содержимого счетчика команд (рис. 5.8). В результате максимальный размер сегмента определяется разрядностью программного счетчика, а максимальная неиспользуемая область памяти — смещением базового регистра относительно программного счетчика.
Это связано с тем, что окна при сегментной организации памяти могут перекрываться, и если часть памяти в окне, выделенном для предыдущей программы, не используется, то следующее окно можно разместить, начиная с первой свободной ячейки памяти.
Учитывая, что на рис. 5.8 базовый регистр смещен относительно программного счетчика на четыре разряда, минимальный шаг при размещении окон будет 24 = 16 байт. То есть в этом случае максимальная область неиспользуемой памяти между окнами будет равна 15 байтам.
Рис. 5.8.
Количество одновременно используемых сегментов определяется количеством базовых регистров. Сегменты могут перекрываться в адресном пространстве, и тем самым можно регулировать размер памяти, который отводится под каждый конкретный сегмент памяти. В компьютерах семейства IBM PC имеются четыре базовых регистра, определяющих сегмент данных, сегмент программы, сегмент стека и дополнительный сегмент. Информацию в базовые регистры заносит операционная система при запуске программы и переключении между активными программами.
Еще одним распространенным способом увеличения адресного пространства является применение окон. При использовании окон производится расширение не всего адресного пространства, а только его части. Внутри адресного пространства выделяется некоторая область, которая называется окном. В это окно может отображаться часть другого адресного пространства.