Электронные системы ускорителей

Семинар 3. Организация адресного пространства микропроцессора

Размер адресного пространства определяется числом линий в адресной шине МП. Адресное пространство представляет собой упорядоченное множество кодов 0 ... (2n - 1), где n - число адресных линий. Для наглядности оно изображается либо в виде отрезка числовой оси, либо в виде таблицы, как показано на рис.3.1, 3.2 для n=16. Нумерация точек или ячеек адресного пространства при его графическом представлении производится чаще всего сверху вниз в шестнадцатеричной форме.

Рис.3.1

Рис. 3.2. Изображение адресного пространства в виде таблицы: а) шестнадцатиричная; б) десятичная нумерация ячеек памяти

Рис3.2

Рис. 3.1. Деление адресного пространства 64К: а) одним старшим разрядом; б) двумя старшими разрядами; в) тремя старшими разрядами

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

Старший двоичный разряд делит адресное пространство на две равные части (рис. 3.2,а), два старших разряда - на четыре равные части (рис. 3.2,б), три старших разряда - на восемь (рис. 3.2,в) и т.д.

Понятие адресное пространство позволяет наглядно представить размещение в нем различных программно-доступных объектов. Пример распределения адресного пространства показан на рис. 3.3.

Рис.3.3

Рис. 3.3. Пример распределения адресного пространства

В адресном пространстве размещены адреса, принадлежащие ОЗУ (16К, 0000 - 3FFF) и ПЗУ (8К, 4000 - 5FFF). Последние ячейки отведены под окно для расширения адресного пространства (8К, С000 - DFFF) и для регистров (портов) контроллеров, входящих в систему (8К, E000 - FFFF). Зона 6000 - BFFF - не занята.

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

Схемы адресных дешифраторов

Стандартные дешифраторы.

На рис. 3.4 приведена схема дешифратора типа ИД7 (138), имеющего три входа выбора кристалла (C1, C2, C3), три адресных входа (1, 2, 4) и восемь выходов Y0...Y7.

Рис.3.4

Рис. 3.4. Дешифратор 3Х8, разделяющий адресное пространство 64К на восемь зон по 8К

Пример. Схема из двух последовательно включенных дешифраторов 3х8, изображенная на рис. 3.5, открывает восемь зон по 16 ячеек в диапазоне адресов Y0':8600-860F, Y1':8640-864F, Y2':8620-862F, Y3':8660-866F, Y4':8610-861F, Y5':8650-865F, Y6':8630-863F, Y7':8670-867F.

Рис.3.5

Рис. 3.5. Схема дешифратора

Адресная таблица выглядит следующим образом:

табл.1

Задание для самостоятельной работы

1) В зависимости от распределения сигналов (см. таблицу) на входах 1...13 схемы, изображенной на рис. 3.6, определить диапазоны зон, открываемых дешифратором в 64К адресном пространстве.

Рис.3.6

Рис. 3.6. Условная схема дешифратора

Вариант12345678910111213
1A13A14A15A12A11A10Y0A7A8A9A6A5A4
2A15A14A13A10A11A12A9Y1A8A4A5A6A7
3A15"0""0"A13A14A12Y2A11A10A9A6A7A8
4"1"A15A14A11A12A13Y4"0"A10A9A8A7A6
5"1""0""0"A15A14A13Y3A12A11A10A7A8A9
6"1"A15"0"A12A13A14"0"Y5A11A10A9A8A7
7A15A14A13A12A11A10A9Y6A8A7A4A5A6
8"1""0""0"A13A14A15Y1A12"1""0"A11A10A9
9"1""0""0"A15A14A13"0"Y7"1""0"A12A11A10
10A15A14"0"A13A12A11Y6"0"A9A10A7A8A9

2) Разработать дешифратор на основе ИД7 для зоны (диапазона адресов):

ВариантЗадание
1EDF0 – EDF3
2DAB0 – DAB7
3CDE0 – CDEF
4BF80 – BF9F
5FCE0 – FCE1

Использование ПЗУ в качестве дешифратора

Пусть требуется выделить 5 зон адресного пространства для микросхем следующих устройств:

1) ОЗУ1: зона 0000 - 1FFF, 8K;

2) ОЗУ2: зона 2000 - 3FFF, 8K;

3) УВВ: зона С000 - С7FF, 2K;

4) ПЗУ1: зона E000 - EFFF, 4K;

5) ПЗУ2: зона F000 - FFFF, 4K.

Рис3.7

Рис. 3.7. Микросхема ПЗУ 32Х8 бит

Так как наименьшая зона имеет объем 2К ячеек, то и разрешающая способность дешифратора должна быть такая же. Таким образом, для деления адресного пространства 64К на 32 части по 2К требуется пять старших разрядов адреса. Для реализации дешифратора выбираем ПЗУ с пятью адресными входами, имеющими структуру 32x8 бит (рис. 3.7). Выходы 1 - 5 подключаются к инверсным входам (активный 0) выбора соответствующих микросхем.

Затем, требуется разработать таблицу кодировки ПЗУ (рис. 3.8), и полученный код записать в ПЗУ.

Табл

Рис. 3.8. Таблица кодировки ПЗУ

Недостатком использования ПЗУ в качестве дешифратора является то, что с уменьшением зоны адресного пространства увеличивается число адресных входов ПЗУ. При этом объем ПЗУ растет пропорционально 2n, где n - число входов. Например, для выделения зоны памяти размером 32 ячейки потребуется ПЗУ с 11 адресными входами, что соответствует объему 2Кх1 бит.

Применение ПЗУ для дешифрации усложняется, если деление адресного пространства не кратно 2. Например, требуются зоны размером 8К с адресами 0001 - 2000 или 0002 - 2001. Для первого случая необходимо анализировать адрес с точностью в 1 разряд, для второго - 2 разряда и, следовательно, объем ПЗУ составит 216 = 64К и 215 = 32К бит, соответственно.

Задание для самостоятельной работы

Определить емкость ПЗУ и разработать таблицу ее кодировки для дешифрации зон адресного пространства для разных вариантов, представленных в таблице:

ВариантЗадание
11: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 - F3FF;
4: F400 - FBFF;
5: FC00 - FFFF
21: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 – FFFF.
31: 0000 - 7FFF;
2: 8000 - DFFF;
3: E000 – FFFF.
41: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 – F7FF;
4: F800 – FFFF.
51: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 - F3FF;
4: F400 - F7FF;
5: F800 - FBFF;
6: FC00 - FFFF.
11: 0002 - 1001;
21: 0003 - 4002;
31: 0001 - 3000;
41: 0005 - 3004;
51: 0004 - 2003;

Использование программируемой логической матрицы в качестве дешифратора

Программируемая логическая матрица (ПЛМ) представляет собой устройство, которое хранит некоторую систему логических выражений с использованием операций булевой алгебры. Предположим, что микросхема ПЛМ имеет структуру, изображенную на рис. 3.9, что соответствует микросхеме К556РТ1.

Рис3.9

Рис. 3.9. Структура программируемой логической матрицы

Пример системы логических выражений, реализуемых этой ПЛМ:

B0=A1•-A2•-A5•A11 V A6•-A13 V ...;

-B1=-A8•-A12 V A2•A3•-A5 V ...;

...

B7=-A7•A10•-A12•-A13•A15;

Записи, разделенные знаками дизъюнкции "V", называются логическими произведениями, знак “•“ обозначает операцию логического умножения или конъюнкции, знак "-" обозначает отрицание или инверсию. Число членов в произведении не должно превышать 16, а число произведений в каждом выражении не более 48. Это определяется емкостью конкретной микросхемы ПЛМ. Любой вход и выход может быть прямым или инверсным.

Рассмотрим пример, в котором требуется выделить устройства инверсными сигналами в следующих зонах:

В0: 0000 - 1FFF, 8K ячеек;

В1: 7000 - 703F, 64 ячейки;

В2: B000 - B07F, 128 ячеек;

В3: FE00 - FFFF, 512 ячеек.

Представим эти области в виде таблицы:

Табл

Запишем требования для программирования в виде логических выражений:

-В0 = -A15•-A14•-A13;

-В1 = -A15•A14•A13•A12•-A11•...•-A6;

-В2 = A15•-A14•A13•A12•-A11•...•-A7;

-В3 = A15•A14•A13•A12•...•A9.

В данном случае из 48 возможных логических произведений задействовано только четыре. Дизъюнктивные возможности ПЛМ здесь не используются. В общем случае, поскольку каждое логическое произведение может содержать до 16 переменных, возможна локализация одной ячейки в пространстве 64К, поделенной на 8 адресных зон.

Задание для самостоятельной работы

Разработать таблицу кодировки ПЛМ и записать логические выражения для дешифрации зон адресного пространства для разных вариантов, представленных в таблице:

ВариантЗадание
11: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 - F3FF;
4: F400 - FBFF;
5: FC00 - FFFF
21: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 – FFFF.
31: 0000 - 7FFF;
2: 8000 - DFFF;
3: E000 – FFFF.
41: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 – F7FF;
4: F800 – FFFF.
51: 0000 - 7FFF;
2: 8000 - EFFF;
3: F000 - F3FF;
4: F400 - F7FF;
5: F800 - FBFF;
6: FC00 - FFFF.
11: 0002 - 1001;
21: 0003 - 4002;
31: 0001 - 3000;
41: 0005 - 3004;
51: 0004 - 2003;

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

Метод окна

Метод заключается в отображении малого участка свободной памяти W на память большего объема H, как показано на рис. 3.10а. Здесь P - адресное пространство процессора, ZP - область размещения программ, ZF - свободная зона.

Рис3.10

Рис. 3.10. Метод окна: а) геометрическое представление метода; б) структурная схема реализации

Схемное решение метода приведено на рис. 3.10б. Емкость большой памяти H=2R+Q ячеек. Большую память можно рассматривать как состоящую из 2R страниц, каждая из которых имеет размер 2Q ячеек, совпадающий с размером окна. Адресная шина процессора разделяется на две части: одна поступает в большую память, а другая на дешифратор. Система работает следующим образом:

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

2. Процессор обращается по некоторому адресу, лежащему внутри окна.

3. Дешифратор опознает принадлежность текущего адреса фиксированному окну и разрешает обмен данными с большой памятью, формируя сигнал ее выбора. В большую память выдается полный адрес R+Q бит, определяющий одну из ячеек.

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

Пример. Большая память имеет объем 256М байт. Ширина окна в адресном пространстве процессора с 16-разрядным адресом составляет 32К байт, а его позиция в зоне 8000 - FFFF. Определить схему дешифрации окна и разрядность регистра R.

1. Разрядность адреса большой памяти - 28.

2. Для дешифрации окна в адресном пространстве процессора требуется старший бит адреса А15, Q = 1. Схема дешифрации простая: инверсия сигнала А15 для выбора большой памяти.

3. Разрядность регистра R = 28 - (16 - 1) = 13.

Задание для самостоятельной работы

В схеме аппаратной реализации окна, изображенной на рис. 3.10б, определить количество разрядов R и Q, необходимых для старшей и младшей частей полного адреса большой памяти объемом H, код дешифратора и схему дешифрации, формирующую сигнал обращения.

Варианты:

ВариантОбъем большой
памяти H
Размер окна W
18ME800 - EFFF
2256МD000 - EFFF
3512МA000 - BFFF
4128МB000 - EFFF
564М1000 - 1FFF
62C00 - 2FFF
73000 - 37FF
816М5000 - 6FFF
9E000 - FFFF
1016МF000 - FFFF

Метод банков

Под банком понимается отдельный блок памяти, имеющий управляющий вход разрешения работы c этим блоком Е. Схема подключения нескольких банков памяти приведена на рис. 3.11.

Рис3.11

Рис. 3.11. Схемная реализация метода банков

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

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

Метод виртуальной памяти

Метод обеспечивает работу микропроцессорной системы при ограниченном объеме физической оперативной памяти. Суть метода заключается в том, что при большом размере програмного кода или данных, когда они не помещаются в ОЗУ полностью, их разбивают на страницы. Страницы загружаются в ОЗУ и по мере необходимости подкачивается из внешних накопителей, например, жесткого диска, заменяя ненужную страницу в данный момент. Механизм подкачки поддерживается аппаратными и программными средствами, скрытыми от пользователя. Поэтому пользователь может использовать все адресное пространство, определяемое адресной шиной процессора, независимо от размера физической памяти, например, 232 = 4Г ячеек при физической памяти емкостью 218 = 256К ячеек.

Виртуальный 32-разрядный адрес состоит из двух частей: старшие 20 разрядов определяют номер PAGE одной из 220 = 1М страниц, с которой процессор собирается работать, а 12 младших разрядов OFFSET определяют смещение на выбранной странице, состоящей из 212 = 4К ячеек. Структура схемной реализации виртуальной памяти, изображенная на рис. 3.12, содержит программно доступные элементы: регистр виртуального адреса, таблицу дескрипторов страниц PDT и буферную память BRAM.

Рис3.12

Рис. 3.12. Структура схемы реализации виртуальной памяти

Регистр виртуального адреса предназначен для хранения адреса, поступающего из процессора по магистрали. Таблица дескрипторов содержит 64 ячейки, каждая из которых состоит из трех полей, поля номера страницы N (20 бит), поля номера локальной страницы в памяти L (6 бит) и поля атрибутов страницы Р, характеризующих ее особенности: факт недавнего использования A, факт изменения содержимого D, присутствие страницы в буферной памяти V, четырехуровневая защита страницы U,W.

Условием выдачи данных из некоторой ячейки RBUF является совпадение кода поступившей из поля PAGE регистра виртуального адреса с кодом, хранившимся в поле N этой ячейки. При совпадении в любом из 64 дескрипторов PDT на его выходе Q формируется логическая “1”.

Буферная память BRAM организована в виде 64 страниц по 12К с номерами 000000...111111. На вход BRAM поступает 18-разрядный адрес, образованный из 6 разрядов поля L и младших 12 разрядов OFFSET в регистре виртуального адреса. Буферная память подключается к магистрали только при условии, что в BRAM выбрана одна из 64 страниц. В противном случае, если страница отсутствует, то по сигналу Q’ срабатывает прерывание для загрузки нужной страницы. Задача программы обработки прерывания – отыскать, где находится страница, например, соответствующая коду y, и загрузить эту страницу в BRAM, записав дескриптор в PDT. Этот дескриптор загружается в свободное место PDT или на место страницы, которая давно не использовалась.

Отыскание страницы на внешнем носителе производится следующим образом. Процессор считывает из регистра виртуального адреса поле PAGE и использует его содержимое как 20-разрядный адрес при обращении к памяти в которой хранится таблица соответствия логических номеров страниц местам их хранения на внешних носителях со всеми их атрибутами.

Затем процессор должен определить, на какое место в BRAM можно загрузить нужную страницу из внешнего накопителя. Для этого он считывает поле атрибутов Р в PDT по всем 64 ячейкам, анализируя специальные биты: бит A, по которому можно определить к каким ячейкам давно не было обращения. Бит A может по таймеру периодически сбрасываться, а при обращении к странице устанавливаться. Найдя такое место, он помещает туда информацию о странице, и в соответствии с полученным номером дескриптора записывает старую страницу из буферной памяти на внешний носитель, если в процессе работы производилась запись информации (бит D), а на ее место загружает новую.

Виртуальная память имеет встроенный механизм защиты страниц в буферной памяти от несанкционированного доступа. В данном случае для этого предназначены биты U и W в поле Р. При U=0 пользовательские программы не имеют права доступа к странице. При попытке обратиться к ним происходит прерывание с соответствующей программой обработки. При W=0 возможно только чтение страницы, а при W=1 - чтение и запись.