Алгоритм решения задач
Содержание
Введение
1 Алгоритм решения функциональной задачи
2 Выбор системы команд специализированной ЭВМ
3 Форматы команд и операндов
4 Содержательные графы микропрограмм операций АЛУ
5 Разработка объединенной микропрограммы работы АЛУ
6 Закодированные алгоритмы микропрограмм
7 Проектирование управляющего автомата
Введение
Целью курсового проектирования является закрепление знаний по курсу: «Организация ЭВМ и систем» , полученных в результате изучения лекционного курса и выполнения лабораторного практикума.
Объектом курсового проектирования является процессор специализированной ЭВМ.
В процессоре выделяют устройство, в котором выполняются все основные (арифметические и логические) операции. Это устройство называют арифметико-логическим устройством (АЛУ). Если все основные операции выполняются за один такт (это имеет место в большинстве современных микропроцессоров), АЛУ является частью операционного автомата процессора; если же некоторые или все основные операции выполняются алгоритмически за много тактов, АЛУ имеет собственное устройство управления.
Разработка процессора специализированной ЭВМ включает в себя следующие этапы:
Разработка алгоритма решения функциональной задачи.
Выбор системы команд специализированной ЭВМ.
Определение форматов команд и операндов.
Разработка алгоритмов микропрограмм выполнения минимально необходимого набора операций АЛУ.
Разработка объединенной микропрограммы работы АЛУ.
Разработка структурной схемы операционного автомата АЛУ.
Разработка управляющего автомата АЛУ.
1 Алгоритм решения функциональной задачи
Укрупненный алгоритм решения поставленной задачи представлен на рисунке 1.1. Алгоритм вычисления функций F приведен соответственно на рисунке 1.2.
Рис.1.1 Укрупненный алгоритм
Для вычисления функции F можно воспользоваться степенным рядом:
Ф
1
ункция Arth(x) разлагается [3] в степенной ряд:Этот ряд сходится при |x|<1, .
Рис.1.3
Сумму ряда удобно находить с помощью рекуррентных соотношений. Общий член ряда выражается в данном случае через предыдущий член ряда с помощью равенства:
2 Выбор системы команд специализированной ЭВМ
Для двухадресной системы команд без признака засылки основные операции над двумя операндами будут выглядеть так:
,
где
А>1 >– первый адрес в команде;
А>2> – второй адрес в команде;
* - обозначение операции.
Введем обозначение:
N . Наименование операции . X . Y
X – первый операнд и результат операции.
Y – второй операнд (если он не участвует, то ставится -).
Для двухадресной системы команд без признака засылки программа будет выглядеть так:
Часть команд в этой программе имеют два адреса, а часть – один адрес, поэтому и система команд ЭВМ должна состоять из одноадресных и двухадресных команд.
3 Форматы команд и операндов
Будем считать, что оперативная память (ОП) состоит из 256 ячеек длиной в один байт каждая.
Двухадресная система команд без признака засылки содержит 13 различных наименований команд, для кодирования которых поле КО должно иметь 4 разряда.
Поскольку в данном случае имеются одноадресные команды и двухадресные команды, для их различия введено одноразрядное поле кода длины команды (КДК) и принято считать: КДК=1 - для одноадресных и КДК=0 - для двухадресных команд.
Разряды 5-7 первого байта всех команд здесь не используются. Формат команд приведен на рисунке 3.1.
В качестве операнда будет использоваться 16-разрядное слово, запятая считается фиксированной перед старшим разрядом, а ОП оперирует с однобайтовыми словами. Формат операнда в ОП представлен на рисунке 3.2:
Такой операнд загружается за два обращения к ОП, здесь старшие разряды операнды и знак содержатся в первом байте, а младшие разряды – во втором.
4 Содержательные графы микропрограмм операций АЛУ
Числа представляются в 16-разрядном формате, старший (нулевой) разряд используется для представления знака числа, для операции сложения используется модифицированный дополнительный код, поэтому регистр RG имеет 17 разрядов (0:16) (поле RG(1:16) – для хранения первого слагаемого), регистр RG1 имеет 16 разрядов RG1(0:15) – для второго слагаемого, одноразрядному полю признака переполнения изначально присвоено нулевое значение, при операции сложения слагаемые помещаются по младшим разрядам, результат (сумма) помещается в поле RG(1:16), прибавление константы означает прибавление 1 к младшему разряду слова.
Содержательный алгоритм сложения представлен на рисунке 4.1:
Рисунок 4.1 – Алгоритм операции сложения
Описание слов, использованных в микропрограмме сложения, представлены в таблице 4.1:
Таблица 4.1
Тип |
Слово |
Пояснение |
ILO |
RG(0:16) |
Слагаемое (Сумма) |
IL |
RG1(0:16) |
Слагаемое |
ILO |
ПП |
Признак переполнения |
Содержательный алгоритм вычитания представлен на рисунке 4.2:
Рисунок 4.2 – Алгоритм вычитания
Описание слов, использованных в микропрограмме вычитания представлены в таблице 4.2:
Таблица 4.2
Тип |
Слово |
Пояснение |
ILO |
RG(0:16) |
Уменьшаемое (разность) |
IL |
RG1(0:16) |
Вычитаемое |
ILO |
ПП |
Признак переполнения |
Содержательный алгоритмы умножения и деления представлены на рисунках 4.3 и 4.4:
Описания слов, использованных в микропрограммах представлены в таблицах 4.3 и 4.4:
Таблица 4.3
Тип |
Слово |
Пояснение |
ILO |
RG(0:16) |
Множитель, произведение |
IL |
RG1(0:16) |
Множимое |
L |
RG2(0:16) |
Множитель, произведение |
L |
СТ(1:4) |
Счетчик циклов |
Таблица 4.4
Тип |
Слово |
Пояснение |
ILO |
RG(0:16) |
Делимое, остаток, частное |
IL |
RG1(0:16) |
Делитель |
L |
RG2(0:16) |
Частное |
L |
СТ(1:4) |
Счетчик |
ILO |
ПП |
Признак переполнения |
Содержательные алгоритмы умножения на 2 и нахождения абсолютной величины числа представлены на рисунке 4.5 и 4.6, а описания слов, использованных в микропрограммах – в таблице 4.5 и 4.6:
Рисунок 4.5 – Алгоритм операции «умножение на 2»
Рисунок 4.6 – Алгоритм приведения абсолютной величины числа
Таблица 4.5
Тип |
Слово |
Пояснение |
ILO |
RG(2:16) |
Операнд |
ILO |
ПП |
Признак переполнения |
Таблица 4.6
Тип |
Слово |
Пояснение |
ILO |
RG(0:1) |
Операнд |
Содержательный алгоритм микропрограммы специальной функции Arth(x) представлен на рисунке 4.7, здесь до начала выполнения программы регистру RG4 присваивается значение X. Описания слов, использованных в микропрограмме – в таблице 4.7:
Таблица 4.7
Тип |
Слово |
Пояснение |
ILO |
RG(0:16) |
Переменная x,n,b,a,F множитель, произведение, делимое, остаток, частное, слагаемое, сумма, уменьшаемое, разность |
IL |
RG1(0:15) |
Переменная F,b,a константа, Множимое, делитель, слагаемое, вычитаемое |
L |
RG2(0:16) |
Множитель, произведение, частное |
L |
RG3(0:15) |
Переменная F |
L |
RG4(0:15) |
Переменная x,a,b |
L |
RG5(0:15) |
Переменная n |
L |
CT(1:4) |
Счетчик |
ILO |
ПП |
Признак переполнения |
Теперь необходимо составить схему укрупненного алгоритма, используя уже полученную микропрограмму вычисления функции Arth(x). Предполагается, что переменные x1, x2 и x3 перед началом выполнения программы уже будут загружены соответственно в регистры RG4, RG3 и RG5. Данная схема алгоритма представлена на рисунке 4.8:
Рисунок 4.8 – Схема алгоритма
В таблице 4.8 представлено описание слов, использованных в программе. Так как описание слов для микропрограммы вычисления специальной функции было представлено в таблице 4.7, здесь приводится описание только тех слов, которые принимали значения отличные от тех, что использовались в алгоритме на рисунке 4.7.
Таблица 4.8
Тип |
Слово |
Пояснение |
ILO |
RG(0:16) |
Переменная x1, x2,X делимое, остаток, частное, уменьшаемое, разность абсолютная величина числа |
IL |
RG1(0:15) |
Переменная x2, x3 константа, делитель, вычитаемое |
L |
RG3(0:15) |
Переменная x2 |
L |
RG4(0:15) |
Переменная x1, X |
L |
RG5(0:15) |
Переменная x3 |
5 Разработка объединенной микропрограммы работы АЛУ
Процессор состоит из АЛУ и УЦУ.
В объединенном списке микроопераций, используемых в микропрограммах минимального набора операций АЛУ, для унификации формы записи различных операций и форматов одноименных слов следует по сравнению с рисунком 4.3 изменить три микрооперации:
для вершины 2 вместо микрооперации RG2 := RG нужно использовать микрооперацию RG2 := RG(1:16).0;
для вершины 6 вместо микрооперации RG2(1:15):=R1(RG (15).RG2(1:15)) – использовать микрооперацию RG2(1:15):=R1(RG(16).RG2(1:16);
вместо микрооперации RG(0):=1 в вершине 11 – использовать микрооперацию RG(0:1):=11.
Благодаря этим изменениям значение числовой части результата каждой операции присваивается полю RG(2:16) слова RG, а нулевой и первый разряды этого слова используются для представления знака числа. Появляется возможность считать, что перед началом каждой операции над двумя операндами в АЛУ значение первого операнда присваивается полю RG(1:16) слова RG, а значение второго операнда – слову RG1. При выполнении этого условия перед началом сложения и вычитания необходимо произвести присваивание RG(0) := RG(1), перед началом умножения нужно осуществить передачу RG2 := RG(1:16).0, а перед делением – микрооперации RG2(0):= RG(1) и RG(0:1):= 00.
В таблице 5.1 приведен список логических условий, используемых в микропрограммах:
Таблица 5.1
Обозначение |
Лог. Условие |
Тип операции |
X1 |
RG(0) |
Сложение и Вычитание |
X2 |
RG1(0) |
|
X3 |
RG(1) |
|
X4 |
RG2(15) |
Умножение |
X5 |
CT=0 |
|
X6 |
RG2(1) |
|
X7 |
RG1(0)RG2(0) |
Деление |
X8 |
RG2(16) |
Умножение на «2» |
X9 |
RG(2) |
Вычисление функции Arth(x) |
X10 |
RG(0:16) |
В таблице 5.2 приведен список микроопераций, используемых в микропрограммах:
Таблица 5.2
№ |
Микрооперации |
Тип операции |
Y1 |
RG(0):=RG(1) |
Сложение |
Y2 |
RG(2:16):= RG(2:16) + |
|
Y3 |
RG:=RG+RG1(1:15) |
|
Y4 |
RG:=RG+11. RG1(1:15)+ |
|
Y5 |
ПП:=1 |
|
Y6 |
RG1(0):= RG1(0) |
Вычитание |
Y7 |
RG2:=RG(1:16).0 |
Умножение |
Y8 |
RG:=0 |
|
Y9 |
CT:=1510 |
|
Y10 |
RG2(1:16):=R1(RG(16).RG2(1:16)) |
|
Y11 |
RG(1:16):=R1(0.RG(1:16)) |
|
Y12 |
CT:=CT-1 |
|
Y13 |
RG:=RG+ |
|
Y14 |
RG(0:1):=11 |
|
Y15 |
RG2(0):=RG(1) |
Деление |
Y16 |
RG(2:16):=L1( RG(2:16).0) |
|
Y17 |
CT:=0 |
|
Y18 |
RG2(1:16):=0 |
|
Y19 |
RG2(1:16):=L1(RG2(1:16). RG(0)) |
|
Y20 |
RG:=RG2(1:15) |
|
Y21 |
RG(0:1):=00 |
Выделение абсолютной величины числа |
Y22 |
RG3:=RG4 |
Вычисление функции Arth(x) |
Y23 |
RG5:= |
|
Y24 |
RG:=RG4 |
|
Y25 |
RG1:=RG |
|
Y26 |
RG4:=RG |
|
Y27 |
RG:=RG5 |
|
Y28 |
RG4:=RG1 |
|
Y29 |
RG1:= |
|
Y30 |
RG5:=RG5+ |
|
Y31 |
RG:=RG3 |
В приложениях 1, 2 и 3 приведена соответственно схема объединенной микропрограммы работы АЛУ, закодированная схема объединенной микропрограммы работы АЛУ и структурная схема операционного автомата.
6 Закодированные алгоритмы микропрограмм
Закодированные алгоритмы сложения, вычитания, умножения, деления, умножения на «2» и выделения абсолютной величины числа представлены соответственно на рисунках 6.1, 6.2, 6.3, 6.4, 6.5 и 6.6:
7 Проектирование управляющего автомата
Формат микрокоманды при вертикальном кодировании имеет формат, представленный на рисунке 7.1:
Формат команды с принудительной адресацией представлен на рисунке 7.2:
Алгорим формирования исполнительного адреса обращения к микропрограммной памяти (МПП) представлен на рисунке 7.3:
Рисунок 7.3 – Алгоритм формирования адреса
В таблице 7.1 приведены все микрооперации, расположенные в микропрограммной памяти, где адрес A0 - переход по «истина»:
Таблица 7.1
Логичеcкий адрес МК в МПП |
Формат микрокоманды |
||||
Операционная зона |
Адресная зона |
||||
Y |
X(1..l) |
A0 |
A1 |
||
0 |
Y0 |
1 |
|||
1 |
Y31 |
2 |
|||
2 |
Y33 |
3 |
|||
3 |
Y15 |
4 |
|||
4 |
Y21 |
5 |
|||
5 |
Y4 |
6 |
|||
6 |
X1 |
23 |
7 |
||
7 |
Y16 |
||||
8 |
Y9 |
9 |
|||
9 |
Y18 |
10 |
|||
10 |
X1 |
12 |
11 |
||
11 |
Y4 |
13 |
|||
12 |
Y3 |
13 |
|||
13 |
Y19 |
14 |
|||
14 |
Y16 |
15 |
|||
15 |
Y12 |
16 |
|||
16 |
X5 |
17 |
10 |
||
17 |
Y20 |
18 |
|||
18 |
X8 |
19 |
20 |
||
19 |
Y13 |
||||
20 |
X7 |
22 |
21 |
||
21 |
Y21 |
24 |
|||
22 |
Y14 |
24 |
|||
23 |
Y5 |
24 |
|||
24 |
Y25 |
25 |
|||
25 |
Y24 |
26 |
|||
26 |
Y6 |
27 |
|||
27 |
Y1 |
28 |
|||
28 |
X1 |
29 |
30 |
||
29 |
Y2 |
30 |
|||
30 |
X2 |
32 |
31 |
||
31 |
Y3 |
33 |
|||
32 |
Y4 |
33 |
|||
33 |
X1 |
35 |
34 |
||
34 |
X2 |
36 |
38 |
||
35 |
X2 |
37 |
36 |
||
36 |
Y5 |
38 |
|||
37 |
Y2 |
38 |
|||
38 |
Y26 |
39 |
|||
39 |
Y21 |
40 |
|||
40 |
Y34 |
41 |
|||
41 |
Y6 |
42 |
|||
42 |
Y1 |
43 |
|||
43 |
X1 |
44 |
45 |
||
44 |
Y2 |
45 |
|||
45 |
X2 |
47 |
46 |
||
46 |
Y3 |
48 |
|||
47 |
Y4 |
48 |
|||
48 |
X1 |
50 |
49 |
||
49 |
X2 |
51 |
53 |
||
50 |
X2 |
52 |
51 |
||
51 |
Y5 |
53 |
|||
52 |
Y2 |
53 |
|||
53 |
X1 |
0 |
54 |
||
54 |
Y22 |
55 |
|||
55 |
Y23 |
56 |
|||
56 |
Y24 |
57 |
|||
57 |
Y25 |
58 |
|||
58 |
Y7 |
59 |
|||
59 |
Y8 |
60 |
|||
60 |
Y9 |
61 |
|||
61 |
X4 |
62 |
63 |
||
62 |
Y3 |
63 |
|||
63 |
Y10 |
64 |
|||
64 |
Y11 |
65 |
|||
65 |
Y12 |
66 |
|||
66 |
X5 |
67 |
61 |
||
67 |
X6 |
68 |
69 |
||
68 |
Y13 |
69 |
|||
69 |
X7 |
70 |
71 |
||
70 |
Y14 |
71 |
|||
71 |
Y26 |
72 |
|||
72 |
Y27 |
73 |
|||
73 |
X9 |
75 |
74 |
||
74 |
Y16 |
76 |
|||
75 |
Y5 |
76 |
|||
76 |
Y6 |
77 |
|||
77 |
Y1 |
78 |
|||
78 |
X1 |
79 |
80 |
||
79 |
Y2 |
80 |
|||
80 |
X2 |
82 |
81 |
||
81 |
Y3 |
83 |
|||
82 |
Y4 |
83 |
|||
83 |
X1 |
85 |
84 |
||
84 |
X2 |
86 |
88 |
||
85 |
X2 |
87 |
86 |
||
86 |
Y5 |
88 |
|||
87 |
Y2 |
88 |
|||
88 |
Y25 |
89 |
|||
89 |
Y24 |
90 |
|||
90 |
Y28 |
91 |
|||
91 |
Y7 |
92 |
|||
92 |
Y8 |
93 |
|||
93 |
Y9 |
94 |
|||
94 |
X4 |
95 |
96 |
||
95 |
Y3 |
96 |
|||
96 |
Y10 |
97 |
|||
97 |
Y11 |
98 |
|||
98 |
Y12 |
99 |
|||
99 |
X5 |
100 |
94 |
||
100 |
X6 |
101 |
102 |
||
101 |
Y13 |
102 |
|||
102 |
X7 |
103 |
104 |
||
103 |
Y14 |
104 |
|||
104 |
Y25 |
105 |
|||
105 |
Y24 |
106 |
|||
106 |
Y28 |
107 |
|||
107 |
Y29 |
108 |
|||
108 |
Y1 |
109 |
|||
109 |
X1 |
110 |
111 |
||
110 |
Y2 |
111 |
|||
111 |
X2 |
113 |
112 |
||
112 |
Y3 |
114 |
|||
113 |
Y4 |
114 |
|||
114 |
X1 |
116 |
115 |
||
115 |
X2 |
117 |
38 |
||
116 |
X2 |
118 |
117 |
||
117 |
Y5 |
119 |
|||
118 |
Y2 |
119 |
|||
119 |
Y25 |
120 |
|||
120 |
Y24 |
121 |
|||
121 |
X10 |
122 |
158 |
||
122 |
Y15 |
123 |
|||
123 |
Y21 |
124 |
|||
124 |
Y4 |
125 |
|||
125 |
X1 |
142 |
126 |
||
126 |
Y16 |
127 |
|||
127 |
Y9 |
128 |
|||
128 |
Y18 |
129 |
|||
129 |
X1 |
131 |
130 |
||
130 |
Y4 |
132 |
|||
131 |
Y3 |
132 |
|||
132 |
Y19 |
133 |
|||
133 |
Y16 |
134 |
|||
134 |
Y12 |
135 |
|||
135 |
X5 |
136 |
129 |
||
136 |
Y20 |
137 |
|||
137 |
X8 |
138 |
139 |
||
138 |
Y13 |
139 |
|||
139 |
X7 |
141 |
140 |
||
140 |
Y21 |
143 |
|||
141 |
Y14 |
143 |
|||
142 |
Y5 |
143 |
|||
143 |
Y30 |
144 |
|||
144 |
Y31 |
145 |
|||
145 |
Y32 |
146 |
|||
146 |
Y1 |
147 |
|||
147 |
X1 |
148 |
149 |
||
148 |
Y2 |
149 |
|||
149 |
X2 |
150 |
151 |
||
150 |
Y3 |
152 |
|||
151 |
Y4 |
152 |
|||
152 |
X1 |
154 |
153 |
||
153 |
X2 |
155 |
157 |
||
154 |
X2 |
156 |
155 |
||
155 |
Y5 |
157 |
|||
156 |
Y2 |
157 |
|||
157 |
71 |
||||
158 |
Y0 |