Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по МПС.doc
Скачиваний:
32
Добавлен:
26.11.2019
Размер:
3.25 Mб
Скачать

3. Методы расширения адресного пространства.

3.1. Метод окна. Обычно при первом решении проблемы расширения адресного пространства предлагается наиболее простой и естественный вариант, который является ошибочным, в случае, если центральный процессор или микроконтроллер имеет собственную резидентную память. Пример для МК48. К двенадцати основным адресным линиям (при обращении к внешней памяти программ ВПП) добавляются еще четыре линии (в случае если хотим получить ВПП объемом 64К). Полный шестнадцатиразрядный адрес поступает в ВПП объемом 64К.

Предположим, что из процессора МК выдается адрес 0000000000002, а в регистр старших разрядов адреса предварительно загружен код 11112. Во внешней памяти программ этой совокупности адресов соответствует ячейка с адресом 0F000h. В тоже самое время в резидентной памяти программ будет выбрана ячейка с адресом 0000h. (Резидентная память программ «не подозревает» о существовании внешней памяти программ и связанной с ней дополнительной 4-разрядной адресной шины.)

Результатом одновременного чтения из двух ячеек – конфликт на шине данных. При записи код с шины данных попадает в обе ячейки одновременно, что также лишено смысла. Если же значение двенадцатиразрядного адреса превышает или равно 1К (в случае МК48), конфликта не будет, так как ни одно из устройств внутри МК на этот адрес не откликнется. Следовательно, данный метод можно использовать, но 25% внешней памяти программ будет недоступно (значение двенадцати младших разрядов адреса меньше 1К). Недоступность обеспечивается либо аппаратно введением дополнительных логических схем, либо программно. В любом случае в схеме присутствует избыточность, так как недоступная память физически присутствует, но использоваться не может, плюс к этому схемы арбитража доступа к памяти. В общем случае, если размер резидентной памяти МК составляет Y% от общего размера адресуемой памяти, то при данном методе расширения адресного пространства недоступно будет Y% ячеек внешней памяти. Вряд ли данную систему можно считать хорошо спроектированной.

Метод окна позволяет решить эту проблему. Идея метода состоит в том, что часть смежных ячеек общего внешнего адресного пространства отображается на часть собственного адресного пространства МК. Эта часть соответствует свободным адресам МК и называется окном.

Здесь LG – резидентная память в основном адресном пространстве МК, LO- нерезидентная память в основном адресном пространстве МК, W – окно.

Емкость внешней памяти V=2d+g ячеек. В рассматриваемом случае МК48, например, d+g=16. Конкретные значения d и g могут быть выбраны двумя разными способами:

1. Окно W имеет размер 2 килобайта и занимает адреса от 2К до 4К-1 адресуемой памяти МК. В данном случае d=5, g=11 и внешнюю память можно рассматривать как состоящую из 32 страниц объемом 2К каждая. Кроме того, во внешней памяти существует еще одна страница, имеющая размер 1К и занимающая адреса с 1К до 2К-1. В резидентной памяти имеется страница объемом 1К, занимающая адреса с 0 до 1К-1 и общий объем адресуемой памяти равен 66К (64К+1К+1К).

2. Окно W имеет размер 1 килобайт и может занимать одну из трех позиций: с 1К до 2К-1, с 2К до 3К-1, с 3К до 4К-1. В данном случае d=6, g=10 и внешнюю память можно рассматривать как состоящую из 64 страниц объемом 1К каждая. Кроме того, во внешней памяти существует еще одна страница объемом 2К (или 2 страницы объемом 1К каждая). В резидентной памяти имеется страница объемом 1К, занимающая адреса с 0 до 1К-1 и общий объем адресуемой памяти равен 67К (64К+2К+1К).

Кроме того, за счет манипулирования входом EA, можно получить во внешней памяти еще одну страницу объемом 1К.

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

3.2. Метод базовых регистров. Недостатком рассмотренного метода является относительная сложность одновременного доступа к ячейкам внешней памяти, лежащим в разных проекциях окна (необходимо постоянно перегружать регистр старших разрядов). Метод базовых регистров является обобщением метода окна. Базовые регистры -–это регистры старших разрядов. В адресном пространстве выделяется не одно, а несколько окон. При каждом обращении во внешнюю память используется лишь одно окно. Проекции окон на основное адресное пространство МК могут лежать в произвольных местах внешней памяти, и, в частности, могут совпадать. Углы наклона лучей проекции задаются содержимым базовых регистров. В самом простом случае размеры окон одинаковы (но это совершенно необязательно). Принцип формирования адресов внешней памяти тот же, что и по методу окна.

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