
- •1. Математическая и логическая основа вт
- •Проблема представления информации.
- •Системы счисления, используемые в цифровой технике.
- •1.3. Формы представления двоичных чисел.
- •1.4. Арифметические операции над числами с фиксированной точкой.
- •1.6.Логическая основа вт. Элементарные фал и их техническая реализация.
- •2. Комбинационные цифровые устройства (кцу).
- •2.1. Последовательность синтеза кцу.
- •2.2. Табличный и скобочный способы задания кцу.
- •2.5. Основные законы и тождества алгебры логики.
- •Минимизация фал.
- •2.7. Базисы и минимальные базисы.
- •1 Вариант - обычный каскад.
- •2 Вариант - каскад с открытым коллектором.
- •3 Вариант - каскад с открытым эмиттером.
- •4 Вариант - каскад с тремя состояниями.
- •3. Последовательностные цифровые устройства (пцу).
- •3.1. Понятие пцу.
- •1 Этап. Определение минимального числа состояний, позволяющих построить устойчивый автомат, соответствующий поставленным условиям работы.
- •Переход к динамическому способу управления;
- •Увеличение числа состояний автомата, т.Е. Числа триггеров зу.
- •2 Этап. Определение количества и типа триггеров зу.
- •3 Этап. Определение функций переходов и синтез кцу1.
- •Лекция 11 d rg 1 Циклический сдвиг организуется путём соединения выхо-
- •Двоичные счётчики.
- •C t tt t tt t tt c ct2 1 q1 графическое
- •Счётчики с произвольным модулем счёта.
- •Полупроводниковые запоминающие устройства.
- •4.1. Классификация и основные характеристики зу.
- •4.2. Организация накопителя зу.
- •4.3. Статические озу.
- •4.4. Динамические озу.
- •4.6. Построение памяти заданной структуры.
- •4.7. Стековая память.
- •Преобразователи сигналов.
- •6.1. Принципы построения цап.
- •Согласующее
- •6.2. Основные параметры цап.
- •6.3. Аналого-цифровые преобразователи.
- •6.4. Основные параметры ацп.
- •7. Принципы управления микропроцессора.
- •7.1. Классификация микропроцессоров.
- •7.2. Декомпозиция мп.
- •7 .3. Принцип аппаратного управления ("жёсткой" логики).
- •7.4. Принцип микропрограммного управления (гибкой логики).
- •7.5. Способы формирования сигналов управления
- •Код номера
- •7.6. Операционное устройство мп.
- •7.7. Обобщённая структурная схема мп.
- •8. Элементы архитектуры мп.
- •8.1. Структура команд.
- •Необходимость иметь большее число разрядов для представления адресов и кода операции приводит к недопустимо большой длине трёхадресной команды;
- •Часто в качестве операндов используются результаты предыдущих операций, хранимых в регистрах мп. В этом случае трёхадресный формат используется неэффективно.
- •8.2. Способы адресации, основанные на прямом использовании кода команды.
- •Номера реги- стров
- •Число 4527
- •Адрес 1765
- •8.3. Способы адресации, основанные на преобразовании кода команды.
- •8.4. Понятие вектора состояния мп.
- •8.5. Понятие системы прерывания программ.
- •8.6. Характеристики системы прерывания.
- •8.7. Способы организации приоритетного обслуживания запросов прерывания.
- •Счётчик
- •Счётчик
- •Компаратор
- •Код маски
- •8.8. Процесс выполнения команд. Рабочий цикл мп.
- •8.9. Конвейерная обработка команд и данных.
- •8.10. Особенности risc-архитектуры.
- •Усложнение процессора делает более трудным или даже невыполнимым реализацию его на одном кристалле, что могло бы облегчить достижение высокой производительности.
- •Регистры глобальных переменных
- •Регистр адреса
- •Цепи данных
- •Интерфейс пу
- •Канал ввода-вывода
- •Канал ввода-вывода
- •1. Организация цепочки данных.
- •9.4. Интерфейсы периферийных устройств.
- •Данные от процессора
- •Данные в процессор
- •Регистр передатчика очищен
- •Регистр приёмника заполнен
М
Число сто- Управление
Число бит
повых бит паритетом
данных
Регистр управления
Разрешение
регистра
Регистр данных
передатчика
управления
Разрешение
данных
пе-
редатчика
Регистр сдвига
передатчика
Выход
последовательных
данных (к ПУ)
FC
Регистр
сдвига приёмника
РС-синхрон-
ный вход по-
следовательных
данных
Регистр управления
Разрешение
регистра
состояния
Регистр данных
передатчика
Разрешение
данных
приёмника
Ошибки
Данные от процессора
Данные в процессор
Регистр передатчика очищен
Регистр приёмника заполнен
одуль асинхронного последовательного
интерфейса имеет следующую
структуру:
Интерфейс преобразует данные, принятые от микропроцессора, из параллельной формы в последовательную с введением бит паритета, а также стартовых и стоповых бит.
В схеме используются два независимых генератора синхроимпульсов: один – в интерфейсном модуле, другой – в ПУ.
Частота их работы намного выше скорости передачи в бодах (обычно в 16 раз).
Генератор синхронизации в приёмнике синхронизируется стартовым битом по началу каждого символа, что компенсирует возможное отличие частот генераторов.
В остальном интерфейс аналогичен асинхронному параллельному интерфейсу.
Синхронный параллельный интерфейс используется при известных временных соотношениях режимов работы ПУ.
ПУ должно быть готово к приёму или передаче данных за время, равное времени выполнения микропроцессором определённой команды.
Структура модуля синхронного параллельного интерфейса имеет вид:
Шинный
формирователь
Шина
данных
Строб 1
ПУ
Регистр данных
Шинный
формирователь
Дешифратор
адреса.
Шина
адреса
Строб 2
Информационное слово, подлежащее передаче в ПУ, снимается с шины данных и поступает на вход регистра данных.
Одновременно по команде МП дешифратор адреса вырабатывает стробирующий импульс 2, с помощью которого информация заносится в регистр данных.
Чтение содержимого этого регистра и передача информации в ПУ осуществляется третьим стробирующим импульсом (на схеме не показан), определяющим длительность такта вывода.
Информация передаётся в ПУ без проверки готовности устройства.
Вывод данных из ПУ и ввод их в микропроцессор производится по инициативе последнего.
Дешифратор вырабатывает стробирующий импульс 1 и разрешает работу шинных формирователей.
В результате слово данных коммутируется на общую шину и считывается микропроцессором.
При этом предполагается, что в момент обращения микропроцессора к ПУ данные готовы к передаче.
Наибольшую гибкость допускают программируемые синхронно-асинхрон-ные интерфейсы как последовательного, так и параллельного типа, иногда называемые адаптерами.
Модуль синхронно-асинхронного последовательного интерфейса (последовательного адаптера) имеет следующую структуру: (рис. на следующей странице).
Блок
принятых данных
Блок
управления вводом-выводом
Блок
передаваемых данных
Шина
данных
Внутренняя шина
Блок
управления передатчиком
Блок
управления приёмником
Блок
состояния
Блок
передатчика
Блок
приёмника
Буфер
шины данных
ПУ
Буфер шины данных обеспечивает сопряжение с внешней шиной данных и служит для передачи данных, управляющих слов и информации состояния.
Обмен инициируется командами ввода-вывода.
Блок управления вводом-выводом принимает сигналы с шины управления и генерирует внутренние управляющие сигналы.
Блок передатчика со своей схемой управления принимает информацию, поступающую с буфера шины данных в параллельной форме, преобразует её в последовательную форму, автоматически добавляет служебные биты и символы и выдаёт последовательный поток на выход.
Блок приёмника с автономной схемой управления принимает информацию в последовательной форме, преобразует её в параллельную форму, контролирует правильность приёма, исключает служебную информацию и символы синхронизации, а затем передаёт обработанную информацию в микропроцессор через буфер шины данных.
Настройка адаптера на требуемый режим работы осуществляется программированием соответствующих схем управления.
С этой целью загружается несколько управляющих слов, определяющих скорость передачи, длину символа, число стоповых бит, режим работы и условия контроля (по чётному или нечётному числу принимаемых символов).
Программирование адаптера производится по следующему алгоритму: (рис. на следующей странице).
Управляющие слова, задающие конфигурацию адаптера, должны загружаться сразу после операции сброса и имеют два формата: слово режима и слово приказа.
Начало
Установка сброса
тацию в его блоках.
Поэтому слово режима должно загружаться пер-
Загрузка
сло-ва режима
вым.
Син-
хронный
Загрузка
S1
Одно
S
Загрузка
S2
Загрузка сло-ва
приказа
Сброс
Передача данных
Закончено
Да
Нет
Да
Нет
Нет
Да
Нет
Да
В случае асинхронного режима слова синхрони-
зации пропускаются. Последним загружается слово приказа, определя-
ющее конкретные действия адаптера в соответствии со словом режима.
Структура модуля синхронно-асинхронного па- раллельного интерфейса (параллельного адапте- ра) имеет вид: (рис. чуть ниже).
Буфер шины данных и блок управления вводом-
выводом выполняют те же функции, что и анало- гичные блоки последовательного адаптера.
Для сопряжения с периферийным оборудовани- ем используются 3 двунаправленных канала А, В и С, называемых портами.
Старшие разряды
Младшие разряды
Порт С разделён на две равные части.
П
Шина данных
Буфер шины данных
Буфер шины данных
Сигналы управления
Порт В
Порт С
Порт А
Программирование адаптера заключается в загрузке управляющего слова (слова приказа) в регистр управления.
Данная конфигурация адаптера допускает несколько режимов работы.
В режиме 0 работают все порты. Выводимые данные фиксируются в регистрах портов, а вводимые данные не запоминаются, т.е. информация с входа порта сразу передаётся на выход буфера шины данных.
Этот режим применяется при организации ввода-вывода с медленно работающими ПУ (посимвольного печатающего устройства, ленточного перфоратора и т.п.).
Режим 1 стробируемого ввода и вывода предназначен для однонаправленных передач данных, инициируемых прерываниями.
В этом режиме обмен данными осуществляется через порты А и В, а 6 ли-ний порта С используются для управления обменом.
Оба или один из параллельных портов А и В можно запрограммировать с линиями квитирования и прерывания. При этом каждый из них может работать на ввод или вывод.
В режиме 2 порт А используется как двунаправленный буфер, а 5 линий порта С используются для управления обменом.
Оставшиеся линии порта С и порт В можно запрограммировать в режиме 0 или в режиме 1.
А теперь поднимемся на уровень выше в иерархии интерфейсов и рассмотрим интерфейс "общая шина", широко применяемый в МПС.
Поле метки отделяется от поля кода операции двоеточием.
Поле кода операции содержит мнемоники кодов операций или директив ассемблера.
Мнемоники кодов операций отражают соответствующие машинные коды и содержат от одной до десяти латинских букв и специальных символов.
Мнемоники директив ассемблера не имеют эквивалентных машинных кодов, поскольку директивы ассемблера (псевдокоманды) являются лишь указаниями транслятору ассемблера о выполнении определённых действий в процессе трансляции программы.
Например, директивы ассемблера определяют последовательность трансляции, порядок размещения в памяти необходимой информации, присваивают символическим наименованиям конкретные численные значения, резервируют определённые области памяти и т.п.
Поэтому директивы ассемблера на машинный язык не транслируются.
Поле кода операций отделяется от поля операндов одним пробелом.
Поле операндов содержит один или два операнда, разделяемые запятой.
Операнды отражают информационное содержание команд МП и директив ассемблера, указанных в поле кода операции.
В качестве операндов могут использоваться численные или символьные константы, имена, выражения.
Численные константы представляются в различных системах счисления с помощью специальных идентификаторов (имён), записанных непосредственно за числом: B – двоичная, Q – восьмеричная, H – шестнадцатеричная, отсутствие идентификатора или D – десятичная.
Символьные константы заключаются в апострофы (') или кавычки.
Имена, используемые в поле операндов, могут быть:
метками, применяемыми в поле меток других операторов;
данными, определяемыми программистом с помощью директив присвоения;
зарезервированными словами ассемблера, например идентификаторами внутренних регистров МП.
Поле комментария начинается с разделителя – точки с запятой (;).
В поле комментария помещается краткое пояснение действий, осуществляемых данным оператором.
Такое сопровождение способствует лучшему пониманию программы, написанной на языке ассемблера. Поэтому не следует сокращать комментарий в ущерб его содержанию.
Комментарий можно переносить на следующую строчку программы, при этом новая строка должна снова начинаться с разделителя.
Следует отметить, что обязательным для заполнения является только поле кода операции. Остальные поля строки ассемблера могут быть пустыми.
Язык ассемблера, как и машинный язык, требует от программиста свободного владения архитектурой соответствующей МПС.
В этом смысле оба языка являются машинно-зависимыми (машинно-ориентированными), т.е. программа, составленная на любом из этих языков, учитывает особенности архитектуры конкретной МПС и не может быть непосредственно перенесена на МПС другой архитектуры.
Однако модификация программ, написанных на языке ассемблера, вызывает значительно меньшие трудности, чем модификация программ на машинном языке.
Кроме того, язык ассемблера предусматривает использование макрокоманд, что даёт возможность программисту сократить размер исходной программы и улучшить её структуру.
Макрокоманда ассемблера представляет собой последовательность операторов ассемблера, заключённую в так называемые операторные скобки.
Открывающая операторная скобка имеет мнемонику MACRO, а закрывающая – мнемонику ENDM.
Эти мнемоники не входят в систему команд МП, а являются директивами языка ассемблера.
Макрокоманда объединяет последовательность операторов, используемых в программе неоднократно. Поэтому макрокоманде программистом даётся некоторое имя, которое может использоваться в программе на языке ассемблера произвольное число раз.
Имя макрокоманды записывается в поле меток той строки ассемблера, которой начинается макрокоманда.
В поле кода операции этой строки записывается мнемоника MACRO, а её поле операндов может содержать список формальных параметров, называемых также аргументами.
Макрокоманда заканчивается строкой, поле операторов которой содержит мнемонику ENDM.
Группа операторов, расположенных между директивами MACRO и ENDM, представляет тело макрокоманды и может содержать любые мнемоники соответствующих машинных кодов, директив, комментариев и т.п.
Тело макрокоманды транслируется на машинный язык только единожды.
Далее, встречая имя макрокоманды, транслятор автоматически включает тело макрокоманды в объектную программу (в программу на машинном языке).
Как показывает опыт, время написания и отладки программ, написанных на языках низкого уровня – машинном или ассемблере, а также трудность их понимания пропорциональны числу команд в программе. Поэтому широкое распространение при разработке прикладных программ находят языки высокого уровня: Паскаль, Бейсик, Си и т.п.