
- •230100 «Информатика и вычислительная техника»
- •1 Общие положения
- •1.1 Цели и задачи дисциплины
- •2 Лекция №1 схемы алгоритмов
- •2.1 Ключевые (основные) вопросы (моменты)
- •2.2 Текст лекции
- •2.2.1 Схемы Ляпунова-Янова
- •2.2.2 Программы
- •2.2.3 Микропрограммирование
- •3 Лекция №2 программирование
- •3.1 Ключевые (основные) вопросы (моменты)
- •3.2 Текст лекции
- •3.2.1 Парадигмы программирования
- •3.2.2 Функциональное программирование
- •4 Лекция №3
- •4.1 Ключевые (основные) вопросы (моменты)
- •4.2 Текст лекции
- •4.2.1 Продукционные системы
- •4.2.2 Императивное и объектно-ориентированное программирование
- •5 Лекция №4
- •5.1 Ключевые (основные) вопросы (моменты)
- •5.2 Текст лекции
- •5.2.1 Информационный граф
- •6 Лекция №5
- •6.1 Ключевые (основные) вопросы (моменты)
- •6.2 Текст лекции
- •6.2.1 Управление вычислительным процессом
- •6.2.2 Управление последовательностью команд
- •7 Лекция №6
- •7.1 Ключевые (основные) вопросы (моменты)
- •7.2 Текст лекции
- •7.2.1 Управление по потоку данных
- •8 Лекция №7
- •8.1 Ключевые (основные) вопросы (моменты)
- •8.2 Текст лекции
- •8.2.1 Механизм управления по запросу
- •8.2.2 Механизмы передачи данных
- •9 Лекция №8
- •9.1 Ключевые (основные) вопросы (моменты)
- •9.2 Текст лекции
- •9.2.1 Организация процессора пересылок
- •9.2.2 Пример программы
- •10 Лекция №9
- •10.1 Ключевые (основные) вопросы (моменты)
- •10.2 Текст лекции
- •10.2.1 Теговые машины
- •10.2.2 Ассоциативный процессор
- •11 Лекция №10
- •11.1 Ключевые (основные) вопросы (моменты)
- •11.2 Текст лекции
- •11.2.1 Вычисления с использованием стека
- •12 Лекция №11
- •12.1 Ключевые (основные) вопросы (моменты)
- •12.2 Текст лекции
- •12.2.1 Принципы организации параллельныхвычислений
- •13 Лекция №12
- •13.1 Ключевые (основные) вопросы (моменты)
- •13.2 Текст лекции
- •13.2.1 Квантовые вычисления
2.2.3 Микропрограммирование
П
начало
од
микрооперацией понимается элементарный
процесс обработки информации одним
операционным элементом, происходящий
за один машинный такт. Последовательность
выполнения микроопераций описывается
в виде граф-схемы алгоритма
(ГСА) – ориентированного связного графа,
содержащего вершины четырех типов:
начальную, конечную, операторную и
условную (рис.4.1).
y1
y3
x1
y2
x2
x3
y2
y4
y1
y3
y1
y4
конец
Рис.4.1
При проектировании цифровых устройств сначала строятся содержательные ГСА, в которых логические условия хi и микрооперации yj описываются в содержательных терминах, для чего используется язык функционального микропрограммирования (Ф–язык) или языки структурно-функционального программирования, нацеленные на описание микропрограмм, привязанных к конкретной вычислительной структуре.
В каждой операторной вершине с помощью языка функционального микропрограммирования описывается набор микроопераций, совместно выполняемых в один и тот же момент времени, а в условных вершинах – приходящие в управляющий автомат условные сигналы. Последовательность вершин представляет собой микропрограмму.
Таким образом, относительно сложные действия, осуществляемые вычислительной машиной в процессе выполнения команды, реализуются на основе микропрограммы, состоящей из последовательности микрокоманд. Последовательность выполнения микрокоманд зависит от условий, формируемых в процессе вычислений операционными элементами. При выполнении микропрограммы происходит формирование управляющих сигналов, которые поступают во внутренние узлы процессора, а также на линии внешней магистрали, связывающей процессор с остальными компонентами вычислительной машины. Реализуют микропрограммы, вырабатывая задаваемые микрокомандами управляющие сигналы, микропрограммные автоматы с программируемой или жесткой логикой.
В управляющих автоматах с жесткой логикой каждой микропрограмме соответствует свой набор логических схем с фиксированными связями между ними. Для начала выполнения микропрограммы код операции в регистре команд преобразуется в унитарный код, который активизирует схему, реализующую указанную операцию. Управляющие автоматы с жесткой логикой проектируются на основе предложенного академиком В.М. Глушковым канонического метода, при котором структурный синтез автомата сводится к синтезу комбинационных схем. Разработка устройств управления осуществляется на базе граф-схем алгоритмов, отмеченных в соответствии с моделями абстрактных автоматов Мили (George H. Mealey, 1955) или Мура (Edward F. Moore, 1956).
Автомат с жесткой логикой обеспечивает наибольшее быстродействие при реализации простой системы команд, однако, при расширении набора команд происходит существенное усложнение аппаратной части и схема подвергается значительной переделке. Введение в систему сложных команд приводит к тому, что вместо управляющих автоматов с быстродействующей аппаратной логикой приходится прибегать к более медленным автоматам с программируемой логикой.
Идея устройств управления с программируемой логикой, выдвинутая в 1951 году Морисом Уилксом (M.V.Wilkes), основана на том, что для инициирования любой микрооперации достаточно сформировать на соответствующей линии управляющий сигнал, для чего в регистр микрокоманд из управляющей памяти микропрограмм последовательно считываются микрокоманды, содержащие информацию о сигналах управления. Помимо операционной части в микрокоманде содержится также адресная часть, позволяющая сформировать адрес очередной микрокоманды. Принцип управления с программируемой логикой обеспечивает вычислительной системе дополнительную гибкость: становится возможным изменять систему управления, не конструируя заново аппаратную часть.
Долгое время данная идея не реализовывалась из-за отсутствия быстрой памяти относительно большой емкости. Впервые она была осуществлена в 1962 году в специализированной вычислительной машине “Тетива”, созданной под руководством Н. Я. Матюхина. Устройство управления с программируемой логикой также было использовано в системе IBM 360 разработанной в 1964 году, которая дала начало семейству вычислительных машин с единой архитектурой и сложной системой команд.
Микропрограммирование может также применяться для виртуализации вычислительных ресурсов и поддержки операционных систем путем использования микропрограмм, реализующих основные функции ОС.