ЛР7. Разработка обобщённого графа индивидуального задания и ввод исходных данных для эмулятора «СUU» (1065594), страница 4
Текст из файла (страница 4)
Параметры структуры ЦУУ
Таблица 5
Местонахождение компонент и код структуры ЦУУ
Компоненты ЦУУ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Программный счетчик | РОН | РОН | РОН | РОН | РС | РС | РС | РОН | РС |
Индексный регистр | РОН | РОН | РОН | РОН | РИ | РИ | РОН | РИ | РИ |
Адрес возврата | РВ | ОП | Стек | Стек | Стек | Стек | ОП | ОП | РВ |
Указатель стека | - | - | РОН | - | РОН | - | - | - | - |
2. Разработать алгоритм решения задач.
-
Для реализации полученного алгоритма разработать необходимый набор машинных команд. Машинные команды выбирать с учетом форматов и типов (см. рис. 1). Адресность арифметических и логических команд указана в задании. Число команд в наборе не должно превышать 16, так как под поле кода операции выделено четыре разряда.
-
Разработать микропрограммы машинных операций (рис. 4)
.
-
Разработать обобщенную микропрограмму работы ЦУУ. Исходные данные для проектирования микропрограммы : разработанный набор машинных команд, список допустимых микроопераций (см. табл. 2) и алгоритмы выполнения машинных операций. В микропрограмме необходимо предусмотреть выборку машинных команд из оперативной памяти в регистр команд (с учетом длины команды), расшифровку кода операции выбранной команды и выполнение соответствующей операции, а также переход к выбору и выполнению следующей команды программы. Микропрограмма должна обеспечивать загрузку начального (нулевого) адреса в программный счетчик и окончание вычислений после выполнения машинной программы.
Ввод n
Переход к подпрограмме
Настройка i := n
i := i-1
Ci := ai +bi
i=0?
НЕТ
Вывод C1
ДА
Возврат из подпрограммы
Вывод n
Рис.4 Схема алгоритма программы
-
Построить закодированный граф микропрограммы, пользуясь списками микроопераций и логических условий.
-
В соответствии с закодированным графом микропрограммы разработать управляющий автомат по схеме Мура или Мили и построить списки переходов. Списки переходов содержат всю информацию, необходимую для построения управляющего автомата ЦУУ.
-
Синтезировать управляющий автомат на основе программи-руемых логических матриц и регистра, включенного в режим записи по тактовому сигналу (см. Рис. 3) [2]:
а) определить разрядность памяти управляющего автомата по формуле К= log2N ,где N- число состояний автомата;
б) определить число m управляющих сигналов, формируемых управляющим автоматом;
в) определить необходимое число ПЛМ для реализации УА (каждая ПЛМ имеет 16 входов, 8 выходов и может реализовать до 68 конъюнкций) и распределить между ПЛМ управляющие сигналы и сигналы возбуждения;
г) для каждой ПЛМ построить таблицы соединений. На входы ПЛМ подавать коды состояний и осведомительные сигналы, а с выходов снимать сигналы возбуждения D (с первой ПЛМ) и управляющие сигналы (с первой и последующих ПЛМ).
-
В соответствии с алгоритмом и набором машинных команд составить машинную программу в мнемокодах. Программу оформить в виде стандартной подпрограммы с параметрами. Обращение к программе осуществляется через нулевую ячейку памяти.
-
Составить карту памяти. ЦУУ взаимодействует с памятью объемом 256 байт. Память имеет страничную организацию и состоит из 16 страниц по 16 байт в каждой. Для составления карты памяти необходимо распределить страницы за программой обращения к подпрограмме, за самой подпрограммой, а также за параметрами, исходными данными, результатами и стеком и указать соответствующие полные адреса.
-
Закодировать машинные команды в шестнадцатеричной системе счисления и составить программу в машинных кодах в соответствии с картой памяти и допустимыми полями машинных команд (см. рис.1).
-
Промоделировать работу ЦУУ на ЭВМ:
а) вызвать программу моделирования. На экране должно высветиться меню задач. Моделирование проводить в режиме диалога с ЭВМ;
б) последовательно выполняя пункты меню задач, ввести в ЭВМ подготовленное при домашней проработке описание ЦУУ (списки переходов, программу в машинных кодах и исходные данные для проверки работы ЦУУ). Для выполнения нужного пункта в меню задач необходимо ввести номер соответствующего пункта и нажать клавишу ввода.
З
амечание. В режиме контроля и редактирования на экран дисплея вызывается соответствующая информация. Эту информацию можно исправить непосредственно на экране. После внесения всех изменений нажать клавишу ввода. Курсор перемещать клавишами
<
> , < >,< >,< >.
Отчет по лабораторной работе должен содержать:
-
Постановку задачи и исходные данные
-
Алгоритм решения задач.
-
Программу в мнемокодах.
-
Программу в машинных кодах.
-
Карту памяти.
-
Фотографии памяти.
-
Микропрограмму.
-
Закодированный граф микропрограммы.
-
Список переходов.
-
Таблицы соединений ПЛМ.
-
Протокол работы ЦУУ.
Перечень задач
-
Вычислить
Сi = 2Аi – Bi , i=1,п
-
Вычислить:
Сi = Ai + 2Bi , i=1,n .
-
Переписать из массива А в массив В все числа, большие единицы.
-
Поменять местами в массивах А и В элементы с одинаковыми порядковыми номерами*.
-
Вычислить
n
С= (Аi +Bi), i=1,n*
i=1
-
Найти максимальный элемент в массиве А и записать его в оперативную память*.
-
Найти минимальный элемент в массиве А и записать его в оперативную память*.
-
В массиве А все отрицательрые элементы преобразовать в дополнительный код и найти их сумму*.
-
П
оменять местами соответствующие элементы в массивах А, В и С по схеме
Аi Bi Ci , i =1,n*
10. Выполнить преобразование Сi (7:0) = Ai(7:4).0000, i=1,n*.
11. Вычислить полную сумму четных элементов двух массивов А и В.
12. Вычислить полную сумму нечетных элементов двух массивов А и В.
13. Подсчитать число четных элементов в массивах А и В*.
14. Подсчитать число нечетных элементов в массивах А и В*.
15. В массивах А и В найти сумму элементов , лежащих в интервале 3…9*.
-
16. Вычислить Сi= Ai + Bi, i=1,n. Вывести на дисплей п и Сi.
*Размерность массивов n задать командой ввода.
Результаты всех задач вывести на дисплей.
2. Пример выполнения задания учебной задачи
Пусть требуется выполнить вариант 16 с кодом задания 16-П3-8 (16-номер задачи, П3-формат команды и способ адресации, 8- параметры структуры).
-
Задача 16. Разработать центральное устройство управления специализированного процессора, предназначенного для выполнения операций
Сi=Ai+Bi, i=1,n ,
где n- параметр, задаваемый командой ввода; А, В, С – массивы размерностью по 16 однобайтовых слов.
Вывести n и С1 на экран дисплея.
-
ЦУУ должно обрабатывать трехадресные команды с прямой адресацией операндов;
КОП | R | S1 | S2 | S3 |
Все команды должны быть длиной по четыре байта, даже если отдельные поля не используются.
-
ЦУУ должно включать:
-
общую часть: регистр общего назначения, аккумулятор, буферный регистр, арифметико-логическое устройство, схему инкремента-декремента, регистр команд, регистр адреса и управляющий автомат;
-
изменяемую часть (в соответствии с заданием):
-
а) программный счетчик – должен размещаться в РОН (используем для него, например, РОН[1]);
б) индекс необходимо размещать в автономном регистре индекса;
в) адрес возврата из подпрограммы – надо разместить в оперативной памяти (для этого можно использовать одно из слов страницы F, например, нулевое слово, ОП [F.0]).
-
Разработать алгоритм программы решения задач (см. рис.4). Предусмотреть ввод параметра n и вывод на дисплей результатов (n и С1).
-
Разработать систему машинных команд, необходимую и достаточную для решения задачи 16. Команды должны быть трехадресными с прямой адресацией. В соответствии с алгоритмом выбрать следующую систему команд (табл. 6). Каждой команде присвоить мнемокод, облегчающий ее понимание, и двоичный четырехразрядный код операции. Неиспользуемые поля команды заполнить нулями. Система команд содержит восемь команд. Для каждой команды разработать микропрограмму. Список допустимых микроопераций приведен в табл. 2.
Рассмотрим перечень микропрограмм:
а) «Ввод» (Вв) – по этой команде байт данных в шестнадцатеричной системе счисления заносится с экрана дисплея в ячейку оперативной памяти по адресу, записанному в поле S3. Микропрограмма этой операции приведена на рис.5а;
б) «Переход с возвратом» (ПВ) – используется для обращения к подпрограмме. При этой команде запоминается адрес следующей команды основной программы в ячейке возврата, и управление передается по адресу, указанному в поле S1 команды ПВ. В соответствии с заданием адрес возврата должен храниться в оперативной памяти. Для этой цели удобно использовать страницу памяти F. Для формирования адреса любого слова в странице можно использовать микрооперацию В:= F.R, где F – константа (IIII), а R – содержимое поля R команды ПВ. Так, если в качестве ячейки возврата выбрана ячейка оперативной памяти с адресом F0, то в поле R команды должен быть записан нуль.
Для перехода к подпрограмме необходимо в программный счетчик, расположенный в РОН [1], записать содержимое поля S1 команды ПВ (адрес перехода). Микропрограмма приведена на рисунке 5б. Здесь для формирования адреса ячейки памяти, в которую надо записать адрес возврата, используется микрооперация В:=F.R.
Система команд
Таблица 6
Формат команд | Мнемокод | КОП | Примечание |
1 | 2 | 3 | 4 |
КОП --- S1 --- --- | УИ | 0001 | «Установка индекса» ОП [S1] РИ |
КОП R S1 --- --- | ПВ | 0010 | «Переход с возвратом» (переход к подпрограмме) РC ОП[F.R] ОП[S1] PC |
КОП --- S1 S2 S3 | СЛ | 0011 | «Сложение с модификацией» ОП[S1+i]+ОП[S2+i] ОП[S3+i], i:=i-1 |
КОП --- S1 --- --- | ПУ | 0100 | «Переход условный по ненулевому индексу» S1, если i0, PC: = PC+4, если i=0 |
КОП R --- --- --- | ПБК | 0101 | «Переход безусловный по косвенному индексу» ОП[F.R] PC |
КОП --- --- --- --- | Стоп | 0110 | «Останов» «Стоп» Дисплей |
КОП --- --- --- S3 | Вв | 0111 | «Ввод байта» Дисплей ОП[S3] |
КОП --- S1 --- --- | Выв | 0000 | «Вывод байта» ОП[S1] Дисплей |