- •6. Проектирование микропроцессорных систем
- •6.1. Представление системы как объекта проектирования
- •6.2. Основные этапы проектирования
- •6.3. Разработка архитектуры системы
- •6.4. Проектирование аппаратных средств
- •6.4.1. Схемотехническое проектирование процессора
- •6.4.2. Схемотехническое проектирование памяти
- •Банкирование памяти
- •Организация банков памяти
- •Проектирование запоминающих устройств
- •6.4.3. Схемотехническое проектирование интерфейса
- •Организация ввода/вывода данных
- •6.4.4. Тестирование и настройка аппаратных средств
- •Тестирование статическими сигналами
- •Свободный прогон микропроцессора
- •6.5. Проектирование программных средств
- •6.5.1. Этапы жизненного цикла программы
- •6.5.2. Точная постановка задачи и формулировка требований к программе
- •Постановка задачи ввода данных в озу
- •6.5.3 Проектирование программы
- •Декомпозиция общей задачи
- •Декомпозиция задачи ввода данных в озу
- •Структуры данных
- •Разработка структуры данных программы для ввода данных в озу
- •Алгоритмизация программы
- •Подходы к алгоритмизации
- •Иерархическая организация алгоритма
- •Алгоритмизация программы для ввода данных в озу
- •1. Модуль "Тестовый контроль озу по шд" (dTstContr)
Организация банков памяти
В состав банка памяти в общем случае входят ПЗУ и ОЗУ, подключенные к системной шине МПС: шине адреса ША, шине данных ШД и шине управления ШУ (рис. 6.6,а). Для каждого из этих устройств допустима операция чтения информации, и обращение к ним осуществляется с помощью общего сигнала чтения MEMR. Одновременная активизация ПЗУ и ОЗУ привела бы к клинчу информации на шине данных и ее полному искажению, что недопустимо.
Для устранения клинча необходимо распределить адресное пространство МП между ПЗУ и ОЗУ, что исключит их одновременную активизацию. Распределение адресного пространства реализуется путем селекции адресных зон по старшим разрядам шины адреса и введением входа выборки каждого ЗУ в целом.
В простейшем случае распределение адресов осуществляется с помощью одной старшей линии адреса, например, A19 (см.рис. 6.6,а). В этом случае все адреса 0.A18A0 относятся к ОЗУ, а 1.A18A0к ПЗУ. Недостатком такой селекции является равенство адресных зон, выделенных каждому ЗУ.
Рис. 6.6. Организация банка памяти для МП ВМ88:
а) распределение адресов старшей адресной линией;
б) распределение адресов комбинацией старших адресных линий
В общем случае формирование селектирующих сигналов осуществляется с помощью дешифратора, декодирующего состояние нескольких старших адресных линий. При этом схема селекции имеет вид, приведенный на рис. 6.6,б.
Количество старших разрядов адреса nст, используемых для селекции, определяется минимальной зоной адресного пространства Amin, выделяемой некоторому ЗУ, в соответствии с формулой: nст= nlog2Amin, где nразрядность шины адреса МП.
Пример 6.1:
Определить количество адресных линий, используемых для селекции ЗУ, при требуемом объеме ОЗУ 2 кбайт, а объеме ПЗУ 8 кбайт.
Учитывая, что n=20, Amin=2K=211байтов, Amax=8K=213байтов, легко получить nст=nlog2Amin=20log2211=2011=9. Следовательно, для точной селекции зоны в 2 кбайт необходимо 9 старших адресных линий.
Рассмотренный вариант организации банка памяти и распределения адресного пространства между ПЗУ и ОЗУ полностью справедлив для МПС на базе МП ВМ88, имеющих единственный банк.
Для МПС на базе МП ВМ86, имеющих два банка памяти, организация банков и распределение адресного пространства осуществляются аналогичным образом и могут быть представлены схемой, приведенной на рис. 6.7. Селектирующие дешифраторы банков памяти стробируются сигналами и A0, что обеспечивает обращение к ним для обмена информацией необходимым образом.
Распределение адресного пространства путем использования одной старшей адресной линии (например,A19) в этом случае также возможно, но она должна быть застробирована сигналами и A0 с помощью логических элементов.
Рис. 6.7. Организация банков памяти для МП ВМ86
Селектирующие дешифраторы DC в банках памяти (см. рис. 6.6.б, 6.7) наиболее удобно выполнять по двухступенчатой схеме. В этом случае старшие разряды адреса nст, используемые для селекции, разбиваются на две группы n1и n2в соответствии с формулами:
nст=n1+n2, n1=nlog2Amax, n2=nстn1,
где Amaxмаксимальная зона адресного пространства, выделяемая некоторому ЗУ.
Схема селектирующего дешифратора при этом будет иметь вид, приведенный на рис. 6.8,а. Такое распределение соответствует разбиению адресного пространства на K=2n1максимальных зон, каждая из которых может быть разбита на L=2n2 минимальных зон (рис.6.8,б).
Рис. 6.8. Двухступенчатая селекция адресного пространства:
а) схема селектирующего дешифратора;
б) схема распределения адресного пространства
Пример 6.2:
Разделить адресные линии, используемые для селекции ЗУ в примере 6.1, для двухступенчатой реализации селектирующего дешифратора.
Учитывая, что для этого примера n=20, nст=9, Amax=213байтов, легко получить
n1=nlog2Amax=2013=7; n2=nстn1=97=2.
Таким образом, в разрабатываемой схеме дешифратор первой ступени DC1должен декодировать состояния семи самых старших адресных линий A19A13, а дешифратор второй ступени DC2состояния двух следующих адресных линий A12A11. При этом адресное пространство будет разбито на 128 максимальных зон по 8 кбайт, а выбранная максимальная зона будет разбита на 4 минимальных зоны по 2 кбайт в каждой.
Рассмотренный способ селекции обеспечивает высокую гибкость в распределении адресного пространства. Путем изменения единственной связи можно перемещать ЗУ в любую зону адресного пространства.
Как правило, ОЗУ размещается в самых младших адресах, что определяется положением таблицы векторов прерываний, а ПЗУ в самых старших адресах адресного пространства, что определяется положением стартовой точки программы (см.подраздел 6.4.1). В ячейках ПЗУ, соответствующих стартовой точке программы, должна находиться команда безусловной передачи управления на начало программы.
Пример 6.3:
Построить двухступенчатую схему селекции для примеров 6.1, 6.2 с размещением ОЗУ в самых младших, а ПЗУ в самых старших адресах адресного пространства.
Очевидно, что при построении селектирующего дешифратора по схеме, приведенной на рис.6.8,а, для размещения ОЗУ объемом 2 кбайт в самых младших адресах необходимо соединить его вход выборки с выходом Amin0 дешифратора второй ступени DC2, вход выборки которого должен быть соединен с выходом Amax0 дешифратора первой ступени DC1. Для размещения ПЗУ объемом 8 кбайт в самых старших адресах необходимо соединить его вход выборки с самым последним выходом AmaxK(K=127) дешифратора первой ступени DC1.
Очень часто при наличии избыточного адресного пространства для упрощения селектирующего дешифратора используется неполное декодирование селектирующих адресных линий. В этом случае декодируется не вся группа старших адресных линий, а лишь ее часть. Это приводит к дублированию выделенных адресных зон 2mраз, где mколичество отброшенных старших адресных линий. Наиболее целесообразно исключать из декодирования самые младшие из группы старших адресных линий. Это приведет лишь к расширению селектируемых адресных зон за счет дублирования смежных областей адресного пространства.