МПС 4 курс Лекции Лекция 3 Адресное пространство МПС Лекция 5 3 Адресное пространство МПС - BysonHunter/Tavrich_college GitHub Wiki

🏠 Главная · Микропроцессорные системы · 4 курс · Лекции · Лекция 3 Адресное пространство МПС


Тема 5.3. Адресное пространство микропроцессорной системы

Карта памяти и портов ввода-вывода. Полная и неполная дешифрация адресов

Дисциплина: «Микропроцессорные системы»
Курс: 4
Продолжительность: 80–90 минут

Цель лекции

Цель лекции — сформировать понимание того, как процессор выбирает память и периферийные устройства, как строится карта адресного пространства и почему качество дешифрации адреса влияет на надёжность всей микропроцессорной системы.

После изучения темы студент должен уметь:

  • определять число адресов по разрядности адресной шины;
  • рассчитывать размер адресного диапазона;
  • находить базовый и конечный адреса блока;
  • составлять карту памяти и периферийных устройств;
  • различать ввод-вывод, отображённый в память, и изолированный ввод-вывод;
  • определять линии внутреннего адреса микросхемы;
  • составлять логическое условие формирования сигнала CS;
  • объяснять разницу между полной и неполной дешифрацией;
  • находить зеркальные адреса и возможные адресные конфликты.

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

Общая структура микропроцессорной системы

Рисунок 1 — Процессор, системные шины, память и периферийные устройства.

На рисунке адресная шина определяет объект обмена, шина данных переносит команды и данные, а шина управления задаёт тип и момент выполнения операции. Совместная работа этих шин позволяет процессору обращаться ко всем компонентам системы.


1. Для чего микропроцессорной системе нужны адреса

К одной системной шине могут быть подключены ОЗУ, ПЗУ, последовательные интерфейсы, таймеры, контроллеры прерываний, АЦП и другие устройства. Процессор должен однозначно определить, какой компонент должен выполнить текущую операцию.

Во время обмена процессор выполняет следующие действия:

  1. помещает двоичный адрес на адресную шину;
  2. задаёт направление обмена сигналом чтения или записи;
  3. ожидает выбора нужного устройства;
  4. передаёт или принимает данные по шине данных;
  5. завершает цикл обмена и снимает управляющие сигналы.

Пример выбора устройства по адресу 8022h показан на рисунке 2. Старшая часть адреса выбирает модуль UART, а младшая часть определяет регистр со смещением 02h.

Выбор устройства по адресу

Рисунок 2 — Выбор UART и его внутреннего регистра по адресу 8022h.

На рисунке только UART получает активный сигнал выбора. ОЗУ, ПЗУ и таймер остаются неактивными и не должны воздействовать на шину данных.

1.1. Основные понятия

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

Адресуемая единица — минимальный объём данных, которому назначается отдельный адрес. В большинстве современных МПС адресуемой единицей является байт, то есть 8 бит.

Адресное пространство — множество всех адресов, которые способен сформировать процессор.

Связь этих понятий представлена на рисунке 3: отдельный адрес выбирает один байт, а полный набор допустимых адресов образует адресное пространство.

Адрес и адресное пространство

Рисунок 3 — Переход от отдельного адреса к байту и полному адресному пространству.

На рисунке адрес 1003h указывает на конкретный байт. Вертикальная шкала справа показывает всё множество доступных адресов от минимального до максимального.

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


2. Разрядность адресной шины и объём адресного пространства

Каждая линия адресной шины может находиться в одном из двух состояний: 0 или 1. Если шина содержит n линий, количество различных комбинаций определяется степенью числа 2.

После введения величин N — количества адресов и n — числа адресных линий формулу можно записать так:

$$ N = 2^n. $$

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

$$ A_{max} = 2^n - 1. $$

Формирование адресов с помощью линий A0...A(n−1) показано на рисунке 4.

Разрядность адресной шины

Рисунок 4 — Формирование адреса различными комбинациями состояний адресных линий.

Каждая добавленная линия удваивает число комбинаций. Например, 10 линий позволяют сформировать 1024 адреса, а 20 линий — 1 048 576 адресов.

2.1. Пример для 16-разрядной шины

Для шестнадцати адресных линий число адресов равно:

$$ N = 2^{16} = 65,536. $$

Максимальный адрес равен:

$$ A_{max} = 2^{16} - 1 = 65,535 = \mathrm{FFFF}_{16}. $$

Следовательно, полный диапазон составляет 0000h–FFFFh. При побайтовой адресации такой диапазон соответствует 65 536 байтам, то есть 64 КиБ. Шкала этого пространства показана на рисунке 5.

Шестнадцатиразрядное адресное пространство

Рисунок 5 — Адресное пространство 16-разрядной системы от 0000h до FFFFh.

На рисунке пространство разделено контрольными отметками. Следует помнить, что 1 КиБ равен 1024 байтам, поэтому 64 КиБ равны 65 536 байтам, а не 64 000 байтам.

2.2. Адресация многобайтовых данных

В побайтово адресуемой системе один адрес соответствует одному байту. Поэтому:

  • 8-разрядное значение занимает 1 адрес;
  • 16-разрядное слово занимает 2 последовательных адреса;
  • 32-разрядное слово занимает 4 последовательных адреса;
  • 64-разрядное значение занимает 8 последовательных адресов.

Размещение 32-разрядного слова с начальным адресом 1000h показано на рисунке 6.

Размещение многобайтового слова

Рисунок 6 — Четыре байта 32-разрядного слова в ячейках 1000h–1003h.

На рисунке показаны варианты little-endian и big-endian. Они отличаются порядком значимости байтов, но в обоих случаях значение занимает четыре одинаковых адреса.


3. Карта адресного пространства

Карта адресного пространства — таблица или схема, устанавливающая соответствие между диапазонами адресов и компонентами МПС.

Карта необходима, чтобы:

  • исключить пересечение диапазонов разных устройств;
  • назначить базовые адреса памяти и периферии;
  • определить условия работы дешифратора;
  • создать программные константы и указатели;
  • оставить резерв для расширения;
  • проверить соответствие принципиальной схемы и программы.

Пример карты 16-разрядной системы приведён на рисунке 7.

Карта адресного пространства

Рисунок 7 — Распределение диапазона 0000h–FFFFh между ОЗУ, периферией, ПЗУ и резервом.

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

Пример той же карты в табличной форме:

Диапазон адресов Размер Назначение
0000h–1FFFh 8 КиБ ОЗУ
2000h–7FFFh 24 КиБ Резерв
8000h–80FFh 256 байт Периферийные регистры
8100h–BFFFh 15,75 КиБ Резерв
C000h–FFFFh 16 КиБ ПЗУ программы

3.1. Расчёт размера диапазона

Пусть известны начальный адрес Astart и конечный адрес Aend. Поскольку обе границы входят в диапазон, размер вычисляется с добавлением единицы:

$$ S = A_{end} - A_{start} + 1. $$

Для диапазона 0000h–1FFFh расчёт имеет вид:

$$ S = \mathrm{1FFF}{16} - \mathrm{0000}{16} + 1 = \mathrm{2000}_{16} = 8192\ \text{байта} = 8\ \text{КиБ}. $$

Необходимость добавления единицы показана на рисунке 8.

Расчёт размера диапазона

Рисунок 8 — Расчёт размера адресного диапазона с учётом обеих границ.

На рисунке зачёркнут ошибочный вариант без +1. Такая ошибка уменьшает вычисленный размер на одну адресуемую единицу.

3.2. Расчёт конечного адреса

Если известны базовый адрес Abase и размер блока S, конечный адрес получают по формуле:

$$ A_{end} = A_{base} + S - 1. $$

Для блока ОЗУ размером 8 КиБ с базовым адресом 0000h:

$$ A_{end} = \mathrm{0000}{16} + \mathrm{2000}{16} - 1 = \mathrm{1FFF}_{16}. $$

Границы этого блока показаны на рисунке 9.

Базовый и конечный адрес блока

Рисунок 9 — Адресный блок ОЗУ с базой 0000h, размером 2000h и концом 1FFFh.

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

3.3. Базовый адрес и смещение

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

$$ A = A_{base} + offset. $$

Пусть базовый адрес UART равен 8000h. Тогда регистр управления со смещением 02h имеет адрес 8002h. Этот принцип показан на рисунке 10.

Базовый адрес и смещение

Рисунок 10 — Выбор регистра UART сложением базового адреса и смещения.

На рисунке все регистры UART имеют общую базу 8000h, но разные смещения. Именно такую структуру обычно содержит таблица регистров в документации микроконтроллера.


4. Организация ввода-вывода

Существует два основных подхода к размещению регистров периферийных устройств:

  1. Ввод-вывод, отображённый в память — память и периферия используют общее адресное пространство.
  2. Изолированный ввод-вывод — память и порты имеют раздельные адресные пространства.

Различие подходов показано на рисунке 11.

Два способа организации ввода-вывода

Рисунок 11 — Общее адресное пространство и два раздельных пространства памяти и портов.

Слева регистры I/O занимают часть общей карты. Справа номер порта не уменьшает доступное адресное пространство памяти.

4.1. Ввод-вывод, отображённый в память

При memory-mapped I/O регистры периферийных устройств входят в общее адресное пространство. Процессор обращается к ним теми же командами, что и к обычной памяти.

Преимущества подхода:

  • единая система адресов;
  • использование обычных команд LOAD и STORE;
  • применение стандартных способов адресации;
  • удобная работа с регистрами через указатели.

Ограничения:

  • периферия занимает часть общего пространства;
  • ошибочная запись может изменить состояние устройства;
  • чтение некоторых регистров может иметь побочный эффект;
  • компилятору необходимо сообщать, что значение регистра может изменяться аппаратно.

Пример единого пространства ARM Cortex-M показан на рисунке 12.

Memory-mapped I/O

Рисунок 12 — Единое 32-разрядное пространство ARM Cortex-M для кода, SRAM и периферии.

На рисунке одинаковые операции LOAD/STORE используются и для SRAM, и для периферийных регистров. Тип объекта определяется его адресом.

4.2. Изолированный ввод-вывод

При isolated I/O память и порты образуют разные пространства. Один числовой номер может одновременно существовать как адрес памяти и как номер порта.

В архитектуре x86:

  • MOV работает с памятью;
  • IN читает значение из порта;
  • OUT записывает значение в порт;
  • управляющие сигналы определяют тип цикла шины.

Разделение памяти и портов показано на рисунке 13.

Изолированный ввод-вывод

Рисунок 13 — Разные маршруты обращения к памяти и портам x86.

На рисунке число 0060h используется в двух пространствах. Команда процессора определяет, будет выбрана ячейка памяти или порт устройства.

Сравнение двух способов приведено на рисунке 14 и в таблице ниже.

Сравнение способов ввода-вывода

Рисунок 14 — Сопоставление memory-mapped I/O и isolated I/O.

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

Признак Memory-mapped I/O Isolated I/O
Пространство Общее Раздельное
Команды LOAD/STORE IN/OUT
Способы адресации Обычно все Ограниченные
Расход адресов памяти Часть занята I/O Адреса памяти не расходуются
Пример ARM Cortex-M x86

4.3. Особенность AVR

В микроконтроллерах AVR часть регистров периферии доступна двумя путями: через пространство I/O командами IN/OUT и через пространство данных командами LD/ST.

Оба пути приводят к одному физическому регистру, что показано на рисунке 15.

Двойная адресация регистра AVR

Рисунок 15 — Два адресных маршрута к одному физическому регистру AVR.

При чтении документации AVR необходимо уточнять, в каком пространстве указан адрес. Число, предназначенное для команды IN, нельзя без проверки использовать как обычный адрес данных.


5. Дешифрация адреса

Дешифратор адреса — комбинационная логическая схема, которая анализирует адресные линии и формирует сигнал выбора устройства.

Сигнал CS означает Chip Select — выбор микросхемы. Пока CS неактивен, устройство не должно участвовать в обмене. При чтении его выходы обычно переводятся в высокоимпедансное состояние.

Разделение адреса на старшую и младшую части показано на рисунке 16.

Работа дешифратора адреса

Рисунок 16 — Старшие биты формируют CS, а младшие выбирают регистр UART.

На рисунке дешифратор выбирает UART. Остальные устройства получают CS = 0, поэтому только UART может отвечать процессору.

5.1. Линии внутреннего адреса

Если устройство содержит S = 2^k адресуемых ячеек, для выбора одной ячейки требуется k младших адресных линий. После введения размера S число линий можно определить так:

$$ k = \log_2 S. $$

Для памяти 2 КиБ:

$$ 2\ \text{КиБ} = 2048\ \text{байт} = 2^{11}\ \text{байт}. $$

Следовательно, входы памяти должны получить линии A0–A10. Старшие линии A11–A15 выбирают микросхему. Подключение показано на рисунке 17.

Линии внутреннего адреса

Рисунок 17 — Подключение младших линий к памяти 2 КиБ и старших линий к дешифратору.

Диапазон внутренних адресов памяти составляет 000h–7FFh. Он повторяется при каждом новом сочетании старших битов, если эти биты не проверяются дешифратором.

5.2. Цикл чтения

Типовая последовательность чтения включает несколько этапов:

  1. процессор устанавливает адрес;
  2. адрес становится стабильным;
  3. дешифратор активирует CS;
  4. процессор активирует RD или OE;
  5. устройство выдаёт данные;
  6. процессор считывает достоверное значение;
  7. сигналы снимаются, а шина освобождается.

Временные соотношения сигналов представлены на рисунке 18.

Временная диаграмма чтения

Рисунок 18 — Временная диаграмма сигналов ADDRESS, CS, RD и DATA.

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


6. Выравнивание адресных блоков

Блок размером 2^k удобно размещать с базового адреса, у которого k младших битов равны нулю. Такой адрес кратен размеру блока.

Для памяти 2 КиБ размер равен 0800h, поэтому допустимыми естественными базами являются:

0000h, 0800h, 1000h, 1800h, ..., 8000h, 8800h.

Сравнение выровненного и невыровненного размещения показано на рисунке 19.

Выравнивание адресного блока

Рисунок 19 — Выровненный диапазон 8000h–87FFh и невыровненный блок 8400h–8BFFh.

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


7. Полная дешифрация адреса

При полной дешифрации проверяются все старшие линии, которые не используются для внутренней адресации устройства.

Для памяти 2 КиБ в диапазоне 8000h–87FFh:

  • A0–A10 выбирают байт внутри памяти;
  • A15–A11 выбирают микросхему;
  • комбинация старших битов равна 10000₂.

Разделение 16-разрядного адреса показано на рисунке 20.

Полная дешифрация адреса

Рисунок 20 — Полная проверка старших битов для диапазона 8000h–87FFh.

На рисунке один код старших битов формирует единственный активный CS. Поэтому микросхема не отвечает на другие диапазоны.

7.1. Логическое условие выбора

Для активного высоким уровнем сигнала CS необходимо проверить комбинацию:

A15 A14 A13 A12 A11 = 1 0 0 0 0.

После словесного задания условия его можно записать булевым выражением:

$$ CS = A15 \cdot \overline{A14} \cdot \overline{A13} \cdot \overline{A12} \cdot \overline{A11}. $$

Соответствующая логическая схема показана на рисунке 21.

Логическое условие CS

Рисунок 21 — Формирование CS элементом И и инверторами старших адресных линий.

Линия A15 поступает на элемент И без инверсии. Линии A14–A11 инвертируются, поэтому выход активируется только для комбинации 10000₂.

7.2. Преимущества полной дешифрации

Полная дешифрация обеспечивает:

  • один диапазон для каждого устройства;
  • отсутствие случайных адресов-синонимов;
  • предсказуемую диагностику;
  • возможность безопасного расширения;
  • снижение риска одновременного выбора устройств.

Организация системы с полной дешифрацией показана на рисунке 22.

Преимущества полной дешифрации

Рисунок 22 — Непересекающиеся диапазоны и точный выбор устройства полным дешифратором.

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


8. Неполная дешифрация адреса

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

Пример проверки только линии A15 показан на рисунке 23.

Неполная дешифрация адреса

Рисунок 23 — Линии A14–A11 не участвуют в выборе микросхемы.

На рисунке одна физическая память связана с несколькими адресными окнами. Эти окна называют зеркальными диапазонами, а соответствующие адреса — адресами-синонимами.

8.1. Количество зеркал

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

$$ M = 2^m. $$

Если не проверяются четыре линии A14–A11, получаем:

$$ M = 2^4 = 16. $$

Образование шестнадцати комбинаций показано на рисунке 24.

Количество зеркальных диапазонов

Рисунок 24 — Четыре непроверяемые линии создают 16 сочетаний старших битов.

Каждая комбинация формирует отдельное окно того же размера, что и физическая память. При этом число физических ячеек не изменяется.

8.2. Зеркальные диапазоны памяти 2 КиБ

Если проверяется только условие A15 = 1, окно размером 0800h повторяется во всей верхней половине адресного пространства:

  • 8000h–87FFh;
  • 8800h–8FFFh;
  • 9000h–97FFh;
  • ...
  • F800h–FFFFh.

Все шестнадцать окон показаны на рисунке 25.

Зеркальные диапазоны

Рисунок 25 — Шестнадцать адресных окон одной физической памяти объёмом 2 КиБ.

На рисунке разные сегменты карты соединены с одной микросхемой. Наличие зеркал увеличивает занятый адресный диапазон, но не добавляет физической памяти.

8.3. Адреса-синонимы

Адреса 8005h, 8805h, 9005h и F805h имеют одинаковые младшие 11 бит. Если линии A14–A11 не проверяются, все эти адреса выбирают внутреннюю ячейку 005h.

Это соответствие показано на рисунке 26.

Адреса-синонимы

Рисунок 26 — Несколько внешних адресов обращаются к одной физической ячейке 005h.

Запись по любому адресу-синониму изменяет одно и то же значение. Чтение любого синонима возвращает содержимое той же физической ячейки.


9. Адресные конфликты

Особенно опасна ситуация, когда зеркальный диапазон одного устройства пересекается с диапазоном другого.

Пусть UART назначен адресам 8020h–802Fh. Если линия A4 не проверяется, UART будет также отвечать на 8030h–803Fh. Если этот диапазон выделен АЦП, адрес 8032h активирует оба устройства.

Возникновение конфликта показано на рисунке 27.

Адресный конфликт

Рисунок 27 — Одновременная активация CS_UART и CS_ADC из-за неполной дешифрации.

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


10. Сравнение полной и неполной дешифрации

Основные различия способов сведены на рисунке 28 и в таблице.

Сравнение способов дешифрации

Рисунок 28 — Сравнение полной и неполной дешифрации по основным признакам.

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

Признак Полная дешифрация Неполная дешифрация
Проверяемые старшие биты Все Только часть
Число диапазонов устройства Один Несколько зеркал
Сложность схемы Выше Ниже
Расход адресного пространства Минимальный Повышенный
Возможность расширения Хорошая Ограниченная
Риск конфликта Низкий Повышенный

11. Алгоритм разработки карты адресов

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

  1. определить разрядность адресной шины и полный диапазон;
  2. составить перечень памяти и периферийных устройств;
  3. определить размер каждого блока в адресуемых единицах;
  4. назначить непересекающиеся диапазоны;
  5. выровнять блоки по их размеру;
  6. рассчитать конечные адреса;
  7. определить линии внутреннего адреса;
  8. записать условия формирования CS;
  9. проверить перекрытия и зеркала;
  10. перенести базовые адреса в программную документацию.

Последовательность действий показана на рисунке 29.

Алгоритм разработки карты адресов

Рисунок 29 — Этапы от определения диапазона до проверки условий CS.

На рисунке карта памяти, двоичное представление адреса и дешифратор рассматриваются как связанные результаты одного процесса проектирования.

Итоговая связь процессора, адреса, дешифратора, карты и программы показана на рисунке 30.

Связь карты, дешифратора и программы

Рисунок 30 — Прохождение адреса от процессора к выбранному устройству.

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


12. Типичные ошибки

При проектировании и решении задач чаще всего встречаются следующие ошибки:

  1. Смешение разрядности адресной шины и шины данных. 16-разрядный процессор не обязательно имеет адресное пространство 64 КиБ.
  2. Пропуск единицы при вычислении размера диапазона. Обе границы включаются в диапазон.
  3. Добавление размера без вычитания единицы. Конечный адрес равен Abase + S − 1.
  4. Невыровненный базовый адрес. Он усложняет логику выбора устройства.
  5. Использование адреса без указания пространства. Это особенно важно для x86 и AVR.
  6. Игнорирование зеркальных адресов. Они могут пересечься с новым устройством.
  7. Одновременная активация нескольких сигналов CS. Такой режим недопустим для общей шины данных.
  8. Несогласованность схемы и программы. Изменение карты требует обновления программных констант.

13. Контрольные вопросы

Перед выполнением практического задания рекомендуется ответить на вопросы, сгруппированные на рисунке 31.

Контрольные вопросы

Рисунок 31 — Основные понятия и расчёты для самопроверки.

Карточки напоминают темы вопросов: разрядность шины, расчёт конечного адреса, организация I/O, выбор линий памяти, зеркальные диапазоны и физический объём.

  1. Сколько адресов формирует 20-разрядная адресная шина?
  2. Как вычислить максимальный адрес для n линий?
  3. Как рассчитать размер диапазона 4000h–5FFFh?
  4. Как найти конечный адрес блока по базе и размеру?
  5. Чем memory-mapped I/O отличается от isolated I/O?
  6. Какие адресные линии потребуются памяти объёмом 8 КиБ?
  7. Почему при неполной дешифрации появляются зеркала?
  8. Увеличивают ли зеркальные адреса физический объём памяти?
  9. Почему адресный конфликт опасен при чтении?
  10. В чём преимущество выравнивания адресного блока?

14. Практическое задание

Необходимо самостоятельно распределить компоненты в 16-разрядном адресном пространстве. Исходные блоки и пустая карта представлены на рисунке 32.

Практическое задание по составлению карты

Рисунок 32 — Заготовка карты 0000h–FFFFh и блоки, которые требуется разместить.

На рисунке готовые диапазоны не указаны. Студент должен выбрать базовые адреса, обеспечить выравнивание и оставить непрерывный резерв.

Исходные данные

  • адресная шина — 16 бит;
  • ОЗУ — 16 КиБ;
  • ПЗУ — 8 КиБ;
  • четыре периферийных блока по 32 адреса;
  • необходим резерв для расширения.

Требуется

  1. определить полный диапазон адресов;
  2. выбрать базовый адрес ОЗУ;
  3. рассчитать конечный адрес ОЗУ;
  4. выбрать базовый и конечный адреса ПЗУ;
  5. разместить четыре периферийных блока;
  6. указать резервные области;
  7. определить линии внутреннего адреса каждого типа устройства;
  8. записать условия формирования CS;
  9. проверить отсутствие перекрытий;
  10. отметить возможные зеркала, если используется неполная дешифрация.

Заключение

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

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

Основные расчётные зависимости темы:

$$ N = 2^n, $$

$$ A_{max} = 2^n - 1, $$

$$ S = A_{end} - A_{start} + 1, $$

$$ A_{end} = A_{base} + S - 1, $$

$$ A = A_{base} + offset, $$

$$ M = 2^m. $$


← Лекция 5.2. Организация шин и управляющих сигналов микропроцессорных систем · Тема 5.4. Выбор элементной базы для микропроцессорной системы →

Оригинал материала на GitHub