
- •Методические указания
- •Под редакцией к.Т.Н. Доцента Виноградова в.И.
- •1.Теоретическая часть Особенности центрального устройства управления
- •Рон ри рс sp а в рк сид рв ра Результат Из алу Команды и Данные из оп y1 y n x1 – x4 уа z,n,c,p Из алу операнды ДанныеВ алу Данные в оп Адрес в оп r тиш1 ш2 ш3
- •Управление работой алу
- •Типовые машинные команды, используемые в работе
- •Результат выполнения операции может засылаться в оперативную память или/и
- •Список микроопераций
- •Варианты заданий
- •2. Пример выполнения задания учебной задачи
- •Система команд
- •Выбор регистра общего назначения
- •3.Лабораторная работа «Типовые микрооперации».
- •4.Лабораторная работа «Форматы машинных команд».
- •5.Лабораторная работа «Операционные устройства процессора».
- •6.Лабораторная работа «Способы адресации».
- •7.Лабораторная работа «Типовые машинные операции».
- •8.Лабораторная работа «Управляющие автоматы схемно-логического типа».
- •9.Лабораторная работа «Программируемые логические матрицы».
- •10.Лабораторная работа «Типовые устройства персонального компьютера (пк)».
Выбор регистра общего назначения
Таблица 7
Управляющие сигналы |
Адрес РОН [Т] | |||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F | |
y7 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
y8 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
y9 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
y10 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Примечание. Формирование адреса следующей команды происходит вне микропрограммы операции;
е) «Переход безусловный» (ПБК) – команда реализует безусловный переход по косвенному адресу, т.е. по адресу, который хранится в ячейке возврата в оперативной памяти. В качестве ячейки возврата можно использовать любое слова страницы F(адреса отF0 доFF). Номер слова в страницеFуказывают в полеRкоманды ПБК (рис. 5е).
ж) «Вывод» (Выв) - по этой команде байт информации из памяти выдается на экран дисплея в шестнадцатеричной системе. Адрес выдаваемого байта указывается в поле S1 (рис. 5ж);
з) «Останов» (Стоп) - по этой команде происходит выключение центрального устройства управления. Эта команда должна быть последней исполняемой в программе пользователя. Она выдает на пульт управления специальный сигнал о завершении работы процессора, а само ЦУУ переходит в состояние ожидания (исходное состояние) (рис. 5з).
6. Разработать обобщенную микропрограмму, описывающую работу ЦУУ:
а) в исходном положении ЦУУ находится в состоянии ожидания. Включение ЦУУ производится сигналом "Пуск", подаваемым с пульта управления. После этого в программный счетчик (РОН[1]) и регистр адреса РА заносится начальный адрес машинной программы - нуль. (В качестве начального адреса программы можно использовать любой адрес оперативной памяти, однако в большинстве процессоров он равен нулю. Это объясняется удобствами схемной реализации - во всех регистрах имеются специальные входы обнуления.);
б) произвести выборку команды из оперативной памяти в регистр команд. В каждом варианте задания длина всех команд одинакова: 2, 3 или 4 байта. В соответствии с этим использовать микрооперацию, записывающую в старшие разряды регистра команд слово длиной 2, 3 или 4 байта и на соответствующее число единиц увеличивать содержимое программного счетчика, чтобы сформировать адрес следующей команды. Длина трехадресных команд 4 байта, поэтому счетчик увеличить на 4 с помощью микрооперации
РОН [Т]: = РОН [Т] *А. Выбор номера регистра и типа операции задать по табл. 7 и 8 с помощью управляющих сигналов. Для получения микрооперации РОН[1]: = РОН[1] + 4 необходимы управляющие сигналы: y7, y11, y13,y14;
в) проанализировать код операции машинной команды и перейти к выполнению соответствующей операции. Микропрограммы всех необходимых в задании операций приведены на рис. 5. Код операции всегда размешается в четырех старших разрядах регистра команд (31:28). Коды операций используемых команд приведены в табл. 6. С помощью четырех разрядов в КОП можно закодировать до 16 различных машинных команд. В нашей задаче используются только восемь команд с кодами 0000-OIII. При появлении несуществующего кода операции в микропрограмме формируется сигнал ошибки "Ошибка в КОП" и выполнение микропрограммы завершается;
г) после завершения выполнения микропрограмм всех операций, кроме операции "Стоп", в регистр адреса ЦУУ необходимо занести адрес следующей машинной команды. После выполнения команды "Стоп" в регистре адреса хранится адрес последней выполненной команды.
Управление работой схемы инкремента-декремента
Таблица 8
Управляющий сигнал
|
Выполняемая микрооперация
|
У6 =1
|
Декремент (-1)
|
У6 = 0
|
Инкремент (+1)
|
Построить обобщенную микропрограмму (рис. 6).
По обобщенной микропрограмме построить закодированный граф микропрограммы (рис. 7) и по нему - управляющий автомат Мура или Мили. В общем случае автомат Мили имеет меньше состояний и для него необходим регистр состояний меньшей разрядности. В лабораторной работе использован восьмиразрядный регистр состояний. Его разрядности достаточно для построения автомата любого типа во всех вариантах. В качестве примера можно построить автомат Мура. В табл. 9 приведены списки переходов автомата. Разметка автомата указана на рис. 7.
Список переходов
Таблица 9
№ пп. |
Исходное состояние |
Код |
Следующее состояние |
Код |
Входные сигналы |
Сигналы возбуждения |
Выходные сигналы |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
а0 |
000000 |
а1 |
000001 |
B |
D1 |
--- |
2 |
а1 |
000001 |
а2 |
000010 |
--- |
D2 |
y7, y13, y14 ,y15 ,y43 ,y58 |
3 |
а2 |
000010 |
а3 |
000011 |
|
D1,D2 |
y7, y11, y13 ,y14 ,y58 ,y64 |
4 |
a7 |
000111 |
|
D1,D2,D3 | |||
5 |
a11 |
001011 |
|
D1,D2,D3 | |||
6 |
a16 |
010000 |
|
D5 | |||
7 |
a27 |
011011 |
|
D5,D4,D2,D1 | |||
8 |
a28 |
011100 |
|
D5,D4,D3 | |||
9 |
a30 |
011110 |
|
D5,D4,D3,D2 | |||
10 |
a31 |
011111 |
|
D5,D4,D3,D2,D1 | |||
11 |
a34 |
100010 |
|
D6,D2 | |||
12 |
а3 |
000011 |
a4 |
000100 |
--- |
D3 |
y21 |
13 |
а4 |
000100 |
a5 |
000101 |
--- |
D3,D1 |
y11, y12, y13 ,y14 ,y15 ,y42 |
14 |
а5 |
000101 |
a6 |
000110 |
--- |
D3,D2 |
y30 |
15 |
а6 |
000110 |
a26 |
011010 |
--- |
D5,D4,D2 |
y48 |
16 |
а7 |
000111 |
a8 |
001000 |
--- |
D4 |
y21 |
17 |
а8 |
001000 |
a9 |
001001 |
--- |
D4,D1 |
y11, y12, y13 ,y14 ,y15 ,y42 |
18 |
a9 |
001001 |
a |
001010 |
--- |
D4,D2 |
y30 |
19 |
a10 |
001010 |
a26 |
011010 |
--- |
D5,D4,D2 |
y67 |
20 |
a11 |
001011 |
a12 |
001100 |
--- |
D4,D3 |
y11, y29, y38 |
21 |
a12 |
001100 |
a13 |
001101 |
--- |
D4,D3,D1 |
y11, y13, y15 ,y42 |
22 |
a13 |
001101 |
a14 |
001110 |
--- |
D4,D3,D2 |
y60 |
23 |
a14 |
001110 |
a15 |
001111 |
--- |
D4,D3,D2, 1 |
y21 |
24 |
a15 |
001111 |
a26 |
011010 |
--- |
D5,D4,D2 |
y7, y11, y13,y15 ,y58 |
25 |
a16 |
010000 |
a17 |
010001 |
--- |
D5,D1 |
y6, y21, y47 |
26 |
a17 |
010001 |
a18 |
010010 |
--- |
D5,D2 |
y35 |
27 |
a18 |
010010 |
a19 |
010011 |
--- |
D5,D2,D1 |
y11, y14, y42 |
28 |
a19 |
010011 |
a20 |
010100 |
--- |
D5,D3 |
y30 |
29 |
a20 |
010100 |
a21 |
010101 |
--- |
D5,D3,D1 |
y8, y11, y13 ,y15 ,y22 ,y58 |
30 |
a21 |
010101 |
a22 |
010110 |
--- |
D5,D3,D2 |
y11, y14, y42 |
31 |
a22 |
010110 |
a23 |
010111 |
--- |
D5,D3,D2,D1 |
y30 |
32 |
a23 |
010111 |
a24 |
011000 |
--- |
D5,D4 |
y8, y11, y14, y23 ,y58 |
33 |
a24 |
011000 |
a25 |
011001 |
--- |
D5,D4,D1 |
y8, y11, y14, y29 ,y42 |
34 |
a25 |
011001 |
a26 |
011010 |
--- |
D5,D4,D2 |
y60 |
35 |
a26 |
011010 |
a2 |
000010 |
--- |
D2 |
y7, y41 |
36 |
a27 |
011011 |
a0 |
000000 |
--- |
--- |
y69 |
37 |
a28 |
011100 |
a29 |
011101 |
--- |
D5,D4,D3 |
y23 |
38 |
a29 |
011101 |
a25 |
011001 |
--- |
D5,D4,D1 |
y11, y12, y13 ,y14 ,y15 ,y42 ,y56 |
39 |
a30 |
011110 |
a0 |
000000 |
--- |
--- |
y70 |
40 |
a31 |
011111 |
a32 |
100000 |
--- |
D6 |
y38 |
41 |
a32 |
100000 |
a33 |
100001 |
--- |
D6,D1 |
y11, y13, y15 ,y42 |
42 |
a33 |
100001 |
a15 |
001111 |
--- |
D4,D3,D2,D1 |
y30 |
43 |
a34 |
100010 |
a35 |
100011 |
--- |
D6,D2,D1 |
y35 |
44 |
|
|
a14 |
001110 |
|
D4,D3,D2 |
y11, y13, y15 ,y37 |
45 |
a35 |
100011 |
a26 |
011010 |
Z |
D5,D4,D2 |
9. Синтезировать управляющий автомат на основе регистра
состояний Р и программируемых логических матриц:
а) необходимую разрядность регистра состояний определить по формуле К= log2N , где N - число состояний автомата;
б) в работе использовать ПЛМ типа 16x8x68 (16 - входов, 8 – выходов, 68 - конъюнкций). Необходимое число Q ПЛМ определить по формуле
Q= ](K+m)/8[
где m- число управлявших сигналов, формируемых в автомате.
В нашем примере
Q= ](6+28)/8[ = 5
в) распределить управляющие сигналы и сигналы возбуждения
между всеми ПЛМ (сигналы возбуждения D1-D6, подавать на входы регистра состояний), Каждый из этих сигналов может быть закреплен только за одной ПЛМ;
г) выполнить программирование ПЛМ. Для этого для каждой ПЛМ построить таблицу соединений. В каждой таблице указать входы, выходы и строки.
На входы ( f1-fk) всех ПЛМ подключить выходы регистра состояний Р (старшие разряды слева, младшие - справа). На остальные входы ПЛМ подключить осведомительные сигналы, используемые в данной ПЛМ. Неиспользуемые входы ПЛМ не указывать. Число входов не должно превышать 16.
С выходов (1-k) первой ПЛМ снимать сигналы возбужденияD1= Dk(в нашей задачеD1=D6, так как К= 6). С остальных выходов этой ПЛM и со всех выходов ПЛМ снимать управляющие сигналы. Число выходов в каждой ПЛM не должно превышать восьми.
В каждой строке входов прямое значение переменной кодировать единицей, инверсное - нулем, а безразличное - звездочкой. На выходах единицей обозначать необходимость использовать данную конъюнкцию (строку) в булевской функции, описывавшей соответствующую выходную переменную (управляющий сигнал или сигнал возбуждения). Число строк в каждой матрице не должно превышать 68.
10. Построить функциональную схему управляющего автомата. Соединение всех элементов схемы производить не основе обшей
шины (табл. 10).
Состав цепей шины
Таблица 10
Номер цепи |
1 |
… |
80 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
Сигнал |
Y1 |
… |
Y80 |
B |
X4 |
X3 |
X2 |
X1 |
Z |
N |
Номер цепи |
91 |
92 |
- |
101-108 |
111-118 |
120 |
121 |
122 |
123 |
- |
Сигнал |
C |
P |
- |
F1-F8 |
D1-D8 |
«0» |
«1» |
TИ |
R |
- |
Здесь:
В - сигнал "Пуск", поступающий с пульта управления;
ТИ - тактовый импульс, поступающий с генератора тактовых импульсов;
"I" и "0" - сигналы логической единицы и логического нуля;
R - сигнал системного сброса, поступающий с пульта управления при включении системы;
Z, N , С, Р - осведомительные сигналы, формируемые в АЛУ, соответственно нулевой и отрицательный результаты, перенос и переполнение;
Х4= PK(3I), X3 =РК(30), Х2 = РК(29), X1= РК(28) - осведомительные сигналы, характеризующие код операции.
11. В соответствии с разработанной системой машинных команд составить программу решения задачи:
1) провести распределение оперативной памяти (составить карту памяти). Оперативная память состоит из 16 страниц с номерами 0-F . В каждой странице размещается по 16 слов с номерами 0-F . Все слова однобайтовые. Адресуется каждый байт. Полный адрес байта состоит из адреса страницы и адреса слова в странице. При этом карта памяти имеет вид:
а) страницы 0 и I - основная программа;
б) страница 2 - массив А;
в) страница 3 - массив В;
г) страница 4 - массив С;
д) страница 5 - адрес возврата - FO , параметр n–F1.
е) страница 6 - подпрограмма;
2) провести кодировку машинной программы в шестнадцатеричной системе счисления (табл. 11). Основная программа должна начинаться с адреса 00;
Машинная программа
Таблица 11
№ пп. |
Адрес ОП |
Код команды |
Примечание | |||
Байт 1 |
Байт 2 |
Байт 3 |
Байт 4 | |||
|
|
|
Основная программа |
| ||
1 |
00 |
70 |
00 |
00 |
F1 |
Ввод n |
2 |
04 |
20 |
60 |
00 |
00 |
Переход к подпрограмме |
3 |
08 |
00 |
F1 |
00 |
00 |
Вывод n |
4 |
|
00 |
40 |
00 |
00 |
Вывод С1 |
5 |
10 |
60 |
00 |
00 |
00 |
Останов |
|
|
|
Подпрограмма |
| ||
6 |
60 |
10 |
F1 |
00 |
00 |
Установка индекса |
7 |
64 |
30 |
20 |
30 |
40 |
Сложение |
8 |
68 |
40 |
64 |
00 |
00 |
Переход условный по ненулевому индексу |
9 |
6 |
50 |
00 |
00 |
00 |
Возврат из подпрограммы по косвенному адресу |
3) подготовить фотографию оперативной памяти (табл. 12). На фотографии необходимо указать основную программу, подпрограмму, исходные данные и результаты. Исходные данные взять из табл. 13. На этом домашнюю подготовку закончить;
4) проверить правильность работы программы, задавая различные значения параметра n. Сравнить содержимое памяти после выполнения программы с фотографией памяти, полученной при домашней проработке.
Общие замечания по выполнении работы
1. Любую задачу можно решить с помощью различных наборов машинных команд.
2. При разработке конкретного набора машинных команд необходимо стремиться к минимальному числу типов команд.
3. Допускается использовать сложные комбинированные команды, которые фактически состоят из ряда простых. Например, в рассмотренном примере используют команду "Сложение с модификацией" (Сл), практически состоящую из двух команд: собственно сложения с модификацией адресов операндов и команды декремента индекса. Однако использовать такие команды следует осторожно, так как они ограничивают возможности системы команд так, рассмотренная в примере система команд не позволяет выводить на дисплей элементы массивов в цикле.
4. При разработке системы команд можно широко использовать регистры общего назначения или ячейки оперативной памяти для хранения промежуточных результатов или признаков (Z, N, С, Р ) - так называемые
рабочие ячейки или рабочие регистры.
Содержимое оперативной памяти
Таблица 12
Адрес страницы |
Адрес слова в странице | ||||||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F | ||||
0 |
70 |
00 |
00 |
F1 |
20 |
60 |
00 |
00 |
00 |
F1 |
00 |
00 |
00 |
40 |
00 |
00 | |||
1 |
60 |
00 |
00 |
00 |
|
|
|
|
|
|
|
|
|
|
|
| |||
2 |
00 |
05 |
01 |
03 |
0A |
02 |
0F |
0C |
01 |
00 |
09 |
01 |
03 |
05 |
00 |
06 | |||
3 |
04 |
06 |
00 |
0B |
01 |
04 |
00 |
02 |
03 |
0A |
00 |
02 |
01 |
0A |
02 |
00 | |||
4 |
01 |
03 |
02 |
01 |
07 |
00 |
08 |
01 |
04 |
0B |
0A |
0A |
00 |
00 |
01 |
01 | |||
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
6 |
10 |
F1 |
00 |
00 |
30 |
20 |
30 |
40 |
40 |
64 |
00 |
00 |
50 |
00 |
00 |
00 | |||
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
B |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
D |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||
F |
(08) |
(n) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примечание. Вертикальными жирными линиями команды отделяются друг от друга.
Таблица 13
Исходные данные
Массив |
Значения элементов массива | |||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | |
А |
0 |
5 |
1 |
3 |
А |
2 |
F |
С |
1 |
0 |
9 |
1 |
3 |
5 |
0 |
6 |
В |
4 |
6 |
0 |
В |
1 |
4 |
0 |
2 |
3 |
А |
0 |
2 |
1 |
А |
2 |
0 |
С |
1 |
3 |
2 |
1 |
7 |
0 |
8 |
1 |
4 |
В |
А |
А |
0 |
0 |
1 |
1 |
5. Особое место в работе ЦУУ занимает страница F оперативной памяти. К любому слову этой страницы можно обращаться в любой микропрограмме с помощью микрооперации А:=F.R, где F - номер страницы F; R - номер слова в странице F, который должен быть записан в поле R машинной команды.
6. В командах с модификациями, по усмотрению разработчика, можно модифицировать либо все адреса, либо часть из них. При этом во многих случаях бывает целесообразно производить обработку индекса (инкремент или декремент) с помощью специальной команды.
7. Во всех заданиях необходимо использовать команды ввода и вывода (можно использовать комбинированные команды ввода-вывода, в которых признак направления передачи информации помещают в одном из неиспользуемых полей команды ввода-вывода, например в поле R).
8. Допускается использовать следующие форматы данных: целые без
знака, целые со знаком. В первом случае число занимает все восемь разрядов (при этом признак перевыполнения Р не имеет смысла). Во втором случае в старшем разряде числа записывается знак (плюс -0, минус - I), а в остальных разрядах - целое семиразрядное число.
9. Все арифметические операции в АЛУ выполняются над операндами в дополнительном коде. Результат также получается в дополнительном коде.
10. Признак переноса С формируется при переносе из старшего (седьмого) разряда слова, а признак переполнения Р - при возникновении единицы переноса в шестом разряде слова, т.е. при переносе в знаковый разряд. Разряды слова нумеруются справа налево от нуля до семи, старшие разряды помешаются слева.
Структура таблицы переходов
Таблица переходов ( таблица 9 «Списки переходов») содержит информацию, необходимую для управления моделированием. Таблица переходов состоит из нескольких десятков строк (в разных вариантах количество строк может быть различным). В каждой строке должно быть указано:
Номер строки.
Исходное состояние (например, а31)
Код исходного состояния (это номер состояния в двоичной системе счисления)
Следующее состояние.
Код следующего состояния.
Входные (осведомительные) сигналы – определяют условия перехода в новое (следующее) состояние.
Сигналы возбуждения – используются для переключения памяти управляющего автомата (регистр Рна рис.3) в новое состояние. Сигналы возбуждения (столбец 7) формируются из кода следующего состояния (столбец 5). В столбце 7 указываются номера входов регистраР, на которые подаются единичные сигналы (не нулевые). Нумерация входов регистраPпроизводится справа налево, начиная с единицы. Например, для кода следующего состояния000011 надо указать сигналы возбужденияD1, D2.
Выходные сигналы (y):
выполняют настройку схемы инкремента – декремента (y6, табл.8, стр.24),
выбирают требуемый РОН (y7-y10, табл.7, стр.23),
настраивают АЛУ (y11-y15, табл.1, стр.7),
инициализируют микрооперации (y20-y70, табл.2, стр.12).