МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Санкт-Петербургский государственный университет аэрокосмического приборост...
13 downloads
271 Views
217KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Санкт-Петербургский государственный университет аэрокосмического приборостроения ____________________________________________________________
ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ Методические указания к курсовому проектированию
Санкт-Петербург 2003
Составитель И. В. Козин Рецензент кандидат технических наук Н. И. Иванов Методические указания предназначены для выполнения курсового проекта по дисциплине «Организация ЭВМ и систем» студентами специальностей 2201, 2202, 2203, 2204 . Указания полезны также студентам всех специальностей университета при проектировании устройств и систем, в которых используется цифровая обработка информации. Подготовлены кафедрой вычислительных машин и комплексов и рекомендованы к изданию редакционно-издательским советом СанктПетербургского государственного университета аэрокосмического приборостроения.
© Санкт-Петербургский
государственный университет аэрокосмического приборостроения, 2003
Подписано в печать 21.01.03. 60x84 1/16. Бумага офсетная. Печать офсетная. Усл. печ. л. 1.1 . Уч.-изд. л. 1,2. Тираж 100 экз. Заказ № Редакционно-издательский отдел Отдел электронных публикаций и библиографии библиотеки Отдел оперативной полиграфии СПбГУАП 190000, Санкт-Петербург, ул. Большая Морская, 67
3
Выполнение курсового проекта по дисциплине «Организация ЭВМ и систем» имеет целью закрепить теоретические знания, полученные в процессе изучения лекционного курса и выполнения лабораторного практикума, а также привить навыки самостоятельной инженерной работы. 1. ОБЪЕКТ И ЭТАПЫ ПРОЕКТИРОВАНИЯ Объектом курсового проектирования является процессор специализированной ЭВМ [1], или, что то же самое, специализированный процессор (СП), т.е. арифметико-логическое устройство (АЛУ) и устройство центрального управления (УЦУ) специализированной ЭВМ. В процессе проектирования выполняются следующие этапы: 1. Разработка алгоритма решения функциональной задачи. 2. Определение минимального набора операций АЛУ. 3. Разработка алгоритмов микропрограмм выполнения минимально необходимого набора операций АЛУ. 4. Разработка объединенной микропрограммы работы АЛУ. 5. Разработка структурной схемы операционного автомата АЛУ. 6. Выбор системы команд специализированной ЭВМ. 7. Разработка объединенной микропрограммы работы УЦУ. 8. Разработка структурной схемы операционного автомата УЦУ. 9. Разработка управляющего автомата АЛУ. 10. Разработка управляющего автомата УЦУ. 11. Оценка времени реализации алгоритма. По результатам курсового проектирования оформляется пояснител ьная записка объемом 25–40 страниц текста с необходимыми для изложения графическими материалами. Записка должна быть оформлена в соответствии с требованиями ГОСТ 7.32-91, ГОСТ 2.105-95 на листах стандартного формата с текстом на одной стороне листа. На отдельном листе представляется объединенный содержательный алгоритм микропрограммы АЛУ и (или) УЦУ.
4
2. ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ Задание на курсовое проектирование СП включает два раздела – алгоритмический и архитектурный. Алгоритмический раздел задания определяет проектируемый СП с точки зрения выполняемых им функций. Необходимо разработать СП для последовательного циклического вычислени следующих функций: F1 = P1 {P2 [x1 , P3 (x 2 , x3 )]},
F2 = P4 {P5 [x1 , P6 (x 2 , x3 )]},
F3 = P7 {P8 [x1 , P9 (x 2 , x3 )]}.
Функции P1 − P6 , P8 , P9 определяются по табл. 1, 2 в соответствии с индивидуальным заданием, функция P7 представляет собой операцию возведения в степень, равную n = 2,3,4,5. Таблица 1 1 2 3 4 № варианта 0 x chx cos x sin x shx Функции P1 , P4 e № варианта 5 6 7 8 9 −x arctgx ln x arcsin x ln(1 + x ) Функции P1 , P4 e № варианта Функции P2 , P3 ,
0
1
2
3
P5 , P6 , P8 , P9
+
–
×
/
4 xi − x j
Таблица 2 5 xi − x j
Функции P4 , P7 вычисляются процессором программным путем, функция P1 – микропрограммным. Архитектурный раздел задания определяет проектируемый СП с точки зрения структурной и функциональной организации. Структура АЛУ и УЦУ определяется типом операционного автомата (ОА), который согласно индивидуальному заданию выбирается из табл. 3. № варианта
0
1
2
АЛУ
ОА с общими микрооперациями
ОА с закреп- ОА с общими ленными мик- микрооперарооперациями циями
УЦУ
ОА с общими микрооперациями
ОА с общими микрооперациями
Таблица 3 3
ОА с закрепленными микрооперациями
ОА с закреп- ОА с закрепленными мик- ленными микрооперациями рооперациями
5
Заданием предусматривается, что управляющие автоматы СП строятся по схеме с программируемой логикой. Тип адресации микрокоманд в УА выбирается по табл. 4, метод кодирования операционной части микрокоманды определяется по табл. 5. № варианта
0
1
Тип адресации ЕстественМК в УА ная
№ варианта
2
Принудительная
0
Страничная
1
Метод кодирования опе- Вертикальрационный ной части МК
Таблица 4 3
2
Горизонтальный
–
Ортогональная
Таблица 5 3 Смешанный (диагональный)
Функциональная организация СП определяется методом представления данных и системой команд. Данные представляются в формате с фиксированной запятой, разрядность слова информации задается равной m =16 бит, при этом вид кода, в котором числа хранятся в ОЗУ, задается табл. 6. № варианта
0
Код
Таблица 6 2
1
Прямой
Обратный
Дополнительный
Заданием определяется также способ индикации переполнения ра зрядной сетки АЛУ по одному из следующих признаков – операции выполняются в модифицированных или немодифицированных кодах. Формат команды задается исходя из табл. 7. № варианта Формат манды
0
Одноадресная ко- без признака засылки
1 Одноадресная с признаком засылки
2 Двухадресная без признака засылки
Таблица 7 3 Двухадресная с признаком засылки
Интерфейс СП с ОЗУ емкостью 256×8 бит осуществляется 8-разрядными шинами для передачи данных, 8-разрядными адресными шинами и системой управляющих шин. Таким образом, в общем случае задание на курсовой проект определяется содержимым табл. 1–7.
6
Индивидуальные варианты заданий на курсовое проектирование приведены в табл. 8. В левом столбце этой таблицы перечислены номера вариантов. Столбцы, помеченные цифрами 1– 9, определяют по табл. 1 и 2 соответственно функции P1– P9. При этом столбец, помеченный цифрой 7, определяет не саму функцию P7, а величину n, определяющую эту функцию. Столбец 10 определяет номер варианта в табл. 3, столбец 11 – номер варианта в табл. 4. Аналогичным образом, столбец 12 определяет номер варианта в табл. 5, столбец 13 – номер варианта в табл. 6, а столбец 14 – номер варианта в табл. 7.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
2 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
3 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0
4 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
5 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2
6 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3
7 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4
8 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4
9 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
10 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1
11 0 1 3 0 1 3 0 1 3 0 1 3 0 1 3 0 1 3 0 1 3 0 1 3 0 1 3 0 1 3
Таблица 8 12 13 14 1 2 0 3 1 1 0 0 2 1 2 3 3 1 0 0 0 1 1 2 2 3 1 3 0 0 0 1 2 1 3 1 2 0 0 3 1 2 0 3 1 1 0 0 2 1 2 3 3 1 0 0 0 1 1 2 2 3 1 3 0 0 0 1 2 1 3 1 2 0 0 3 1 2 0 3 1 1 0 0 2 1 2 3 3 1 0 0 0 1
7
3. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ ЭТАПОВ ПРОЕКТА 3.1.
Разработка алгоритма решения функциональной задачи
На этом этапе выполняется алгоритмизация функций F1 , F2 , F3 . Конечным результатом этапа являются граф-схема алгоритма последовательного, циклического вычисления заданного набора функций Fi в порядке возрастания номера i =1,2,3 1 и алгоритмы вычисления собственНачало но функций F1 , F2 , F3 . Например, пусть индивидуальным заданием определены сле2 Ввод дующие номера вариантов для x 1, x2, x3 функций P1 − P9 : P1 − 3, P2 − 1, P3 − 4, P4 − 7, P5 − 0, P6 − 4, P7 − n = 4, P8 − 1, P9 − 4.
Тогда из табл. 1, 2 находим, что проектируемый СП предназначен для реализации следующей системы функций:
( x1 − x2 − x3 ) , F2 = ln (1 + ( x1 + x2 − x3 )) , 4 F3 = ( x1 − x2 − x3 ) . F1 = sh
Укрупненный алгоритм последовательного, циклического вычисления полученной системы функций можно поэтому представить в виде рис. 1. Другой пример рассмотрен в [2]. Множество основных операций пусть содержит P1 и может содержать сложение, вычитание, умножение, деление, сдвиги числа, инвертирование знака и взятие абсолютной величины числа.
3
F1= sh (x1-|x2-x3|) 4
Вывод F1 5
F2=ln(1+(x1+|x2-x3|)) 6
Вывод F2
7
F3=(x1-|x2-x3|)4 8
Вывод F3 9
Конец работы 10 Да
Конец
Рис. 1
Нет
8 Алгоритмы вычисления функций F1, F2, F3 можно выразить через основные операции ЭВМ, если воспользоваться каким-либо символом для обозначения операции присваивания значений переменным. В этих и во всех последующих алгоритмах для этого будем использовать символ := . Алгоритм вычисления 1 функции F1 приведен на рис. 2, Начало F2 функции F3 – на рис. 3. 1 2 Для вычисления x := x2-x3 Начало F1 функции F2 можно 3 2 воспользоваться степенным ряx := |x| x := x2-x3 дом [3] 4
3
x := |x| 4
x := x1+x
5
x := x1-x 5
F2 := x
6
a := x
F1 = sh(x) 7 66
Рис.2 1
Начало F3 2
x = x2-x3
3
x := |x| 4
x := x1-x
5 6 7
n := 1
Конец
x := x·x
F3 := x·x Конец
Рис. 3
8
ln (1 + x ) = x −
1 2 x + 2
1 3 1 4 x − x + ... 3 4 n n +1 x ( ) + −1 + ..., n
где n = 1,2,… Этот ряд сходится при 9 Сумму − 1 < x ≤ 1. a := a·n ряда удобно нахо10 a := a·(-1) дить с помощью рекурентных 11 14 F2 := F2+a n := n+1 соотношений. Общий член ряда an 12 a := a/n выражается в данном 13 случае через Нет предыдущий член a=0 ряда аn-1 с помощью равенства Да a := a·x
15
Конец
Рис. 4 a n = a n −1
(− 1) (n − 1) x . n
При вычислении в машине с фиксированной запятой можно считать до тех пор, пока член ряда не станет машинным нулем. Алгоритм вычисления F2 представляется тогда в виде рис. 4, где в вершинах 2, 3, и 4 производится вычисление аргумента, в вершинах 5, 6 и 7 присваиваются начальные значения переменным, в вершинах 8–12 происходит вычисление очередного
9 члена ряда, в вершине 13 производится проверка условия окончания вычислительного процесса, в вершинах 11 и 14 изменяются параметры цикла. Пример формирования алгоритмов для другой системы функций рассмотрен в учебном пособии [2]. Функция F1 согласно разд. 2 вычисляется микропрограммным способом, т.е. по одной команде. В этом случае код операции команды, по которой вычисляется F1, преобразуется в начальный адрес микропрограммы, интерпретирующей алгоритм вычисления F1. Для вычисления функций из табл. 1 используется разложение в степенной ряд [3]. 3.2.
Определение минимального набора операций АЛУ
Исходным материалом для выполнения этапа служат граф-схемы алгоритмов F1 , F2 , F3 , детализированные до элементарных операций. Для рассмотренного в подразд.3.1 примера эти алгоритмы приведены на рис. 2–4. Из этих рисунков легко находим, что в данном частном случае минимальный набор операций АЛУ должен быть следующим: арифметические операции – сложение, вычитание, умножение, деление; операции специальной арифметики – вычисление функции sh ( x ) , выделение абсолютной величины числа. Некоторые разновидности арифметических операций с целью сокращения времени их выполнения можно выделить и тоже отнести к списку операций специальной арифметики. К ним для данного примера относятся – умножение на (–1), которое сводится к инвертированию знака числа, и умножение на два, которое эквивалентно сдвигу числа на один разряд влево, если при этом не возникает переполнение разрядной сетки операционного автомата 3.3. Разработка алгоритмов микропрограмм выполнения минимально необходимого набора операций АЛУ Для каждой операции из минимально необходимого набора операций АЛУ разрабатывается содержательный алгоритм микропрограммы [1,2]. При составлении алгоритмов микропрограмм операций следует считать, что операнды к началу операций находятся в соответствующих регистрах АЛУ. Выборка операнда из ОЗУ и запись результата в ОЗУ производится УА (контроллером) ОЗУ, пересылка операндов между ОЗУ и процессором выполняется УЦУ. Конечным результатом данного подраздела являются: содержательные алгоритмы микропрограмм выполнения каждой операции из минимально необходимого набора операций АЛУ, таблицы использованных в этих микропрограммах слов, таблицы микроопераций и таблицы условий. Пример разработки алгоритмов микропрограмм операций и составления таблиц слов, микроопераций и логических условий рассмотрен в [2].
10 Алгоритмы микропрограмм операций, перечисленных в подразд. 3.2, за исключением функции shx, имеются в [2]. Там же приведены соответствующие этим алгоритмам таблицы использованных в них слов, микроопераций и условий. Функция shx разлагается [3] в степенной ряд: shx = 1
Начало F1
+
2
e x − e−x x x3 x5 = + + +… 2 1! 3! 5!
x 2 n +1 ..., (2n + 1)!
где n = 0,1,2…, сходящийся при x < ∞. Общий член ряда можно представить в виде
x := x2-x3 3
x := |x| 4
x := x1-x
an =
5
F1 := x
x 2 n +1 . (2n + 1) !
Член разложения на предыдущем шаге можно представить в виде
6
a := x
a n −1
7
n := 1
x 2( n −1) +1 = . (2(n − 1) + 1)!
Если в an воспользоваться соотношениями
8
a := a·x
x 2 n +1 = x 2(n −1+1)+1 = x 2(n −1)+1 ⋅ x 2 ,
9
a := a·x 10
15
z := n·2
n := n+1
11
(2n + 1)!= (2(n − 1 + 1) + 1)!= (2(n − 1) + 2 + 1)! = (2(n − 1) + 1)!⋅2n (2n + 1),
16
F1 := F1+a
z1 := z+1 12
x := z·z1 13
a n = a n −1
a := a/z 14
получим следующее рекуррентное соотношение для вычисления функции F1:
Нет
x2 . 2n(2n + 1)
(1)
Если при умножении оба операнда – правильные двоичные дроби, произДа ведение также будет правильной дво15 ичной дробью. Если оба сомножителя Конец – целые числа, то и произведение будет целым числом. Деление правильРис. 5 ной двоичной дроби на целое всегда возможно. Деление правильной дроби на правильную дробь возможно лишь в том случае, когда делитель больше делимого. Для обнаружения переполнения разрядной сетки результатом используется модифицированный код. a=0
11 В алгоритмы вычисления сложных функций наряду с микрооперациями присваивания и счета могут входить операции сложения, умножения и деления, каждая из которых представляется соответствующей микропрограммой. По этой причине для реализации алгоритма вычисления сложных функций целесообразно использовать обращение к готовым микропрограммам более простых операций. Признаком того, является ли микропрограмма частью алгоритма вычисления сложной функции или используется самостоятельно, может служить специальное одноразрядное слово МР, если считать МР = 0 в случае, когда микропрограмма используется самостоятельно, и МР = 1 в противном случае. Значение МР должно присваиваться перед началом вычисления сложной функциии каждой самостоятельно используемой операции, которая входит в состав алгоритма вычисления сложной функции. Проверка значения МР осуществляется после окончания каждой такой операции в процессе вычисления сложной функции. После окончания операции вычисления такой функции и только самостоятельно используемых более простых операций осуществлять эту проверку нет необходимости. В рассмотренном в [2] примере вычислени я функции e x каждая подпрограмма используется только один раз. Для другой функции возможна иная ситуация. Для функции F1 ( x ) = shx алгоритм вычисления сводится к рекуррентной формуле (1) и F1(n ) = F1(n −1) + a n , где n =1,2,…, F1(0 ) = x. Граф-схема этого алгоритма приведена на рис. 5. Легко заметить, что в алгоритме трижды используется операция умножения (вершины 8, 9, 12).Операцию, заданную в вершине 10, выгоднее выполнять по другой микропрограмме. Алгоритм содержит также одну операцию деления (вершина 13) и одну операцию сложения (вершина 16). Так как числа z и n здесь целые, можно считать, что в вершинах 11 и 15 задана микрооперация счета. При многократном использовании в алгоритме одной и той же операции необходимо перед каждым вхождением в подпрограмму присвоить операндам соответствующие значения, а после выхода из подпрограммы увеличить на единицу значение специального слова (счетчика числа вхождений в подпрограмму) и избрать дальнейший путь в микропрограмме в зависимости от полученного значения этого слова. Число разрядов такого слова равно ] log 2 N [, где N – общее количество вхождений в данную подпрограмму. На рис. 6 приведена микропрограмма, соответствующая алгоритму, изображенному на рис. 5. В вершине 2 здесь присваиваются исходные значения переменных. Слову RG6(0:16) – значение a0 , слову RG3(0:15) – значение F10 , слову RG4(0:15) – значение x, которое предварительно было присвоено полю RG(1:16) слова RG(0:16), слову CT1(0:15) присваивается начальное значение числа n = 1. В вершине 3 осуществляется пересылка операндов в соответствии с назначением слов в микропрограмме умножения ([2 , рис. 2.3]) и присваивается начальное значение слову CT2, используемому для подсчета числа вхождений в подпрограмму умножения. В данном
12 случае это слово имеет два разряда T1 и T2, значения которых проверяются в вершинах 7, 8, 13. При втором вхождении в подпрограмму умножения реализуется операция x·a. При этом значение множителя оказалось присвоено полю RG(1:16) слова RG(0:16) после первого умножения, а новое значение множимого присваивается в вершине 9. После второго умножения в вершине 14 результат присваивается слову RG5(0:15). В вершине 15 слову RG присваивается текущее значение n. В вершине 10 слову CT3 присваивается значение 2n, в вершине 11 это число увеличивается на единицу, а в вершине 12 результат присваивается слову RG1. Значение множителя для третьего умножения присвоено полю RG(1:16) слова RG(0:16) в вершине 16. После третьего умножения результат присваивается слову RG1 (вершина 18), играющему роль делителя в микропрограмме деления ([2 , рис. 2.4]), а полю RG(1:16) слова RG(0:16), играющего роль делимого в вершине 20, присваивается значение a, вычисленное в вершине 14. В вершине 22 проверяется на нуль величина общего члена разложения. Если он не равен нулю, то в вершине 23 его значение присваивается слову RG6 и, кроме того, используется в вершине 24 в качестве одного их слагаемых. В вершине 23 в качестве второго слагаемого для вершины 24 слову RG1 присваивается текущее значение F1. Результат сложения присваивается слову RG3 в вершине 26 в качестве нового значения F1. В вершине 27 текущее значение n увеличивается на единицу. В вершине 28 результат вычисления функции присваивается полю RG(1:16) слова RG(0:16). Если бы в этой микропрограмме и другие подпрограммы использовались неоднократно, то для подсчета числа вхождений в них наряду со словом CT2 нужно было бы взять аналогичные слова с соответствующим числом разрядов. Сказанное позволяет представить алгоритм вычисления функции shx в виде рис.6. В рассматриваемом примере негласно полагалось, что операнды хранятся в ОП в прямом коде. Следует иметь в виду, что законченная микропрограмма любой операции в общем случае имеет три части: 1) преобразование кода из вида, хранимого в ОП, к виду, используемому в операции; 2) выполнение собственно операции; 3) преобразование кода из вида, используемого в операции, к виду, хранимому в ОП. При использовании микропрограмм в составе более сложной операции первая или третья части микропрограммы или даже обе эти части могут отсутствовать, если то или иное преобразование кодов не требуется. Это объясняется тем, что внутри микропрограммы обращение к ОП не производится.
13
1 Начало 2 RG6 := x RG3 := x RG4 :=RG(1:16)
CT1 := 1 3 RG(1:16) := RG4 RG1 := RG6(0:15) CT2 := 0
28 RG(1:16) := RG3 1
Да 22 RG =0
4
Микропрограмма умножения 5
Нет 23 RG1 := RG3 RG6 := RG(1:16).0
0 MP 29
1 6
T2
RG1 := CT3
MP 1 26 RG3 := RG(1:16)
13 T2
1
1
17 MP
27 CT1 := CT1+1
18 RG1:= RG(1:16)
0 14 RG5 := RG(1:16) 15 RG := 0.CT1 16 Микропрограмма ×2
12
Микропрограмма сложения 25
1
1 9 RG1 := RG4
11 CT3 := CT3+1
CT2 := CT2+1
T1
0
10 CT3 := RG(1:16)
Конец
7
0 8
24
19 RG(1:16) := RG5 20
0
0
1
Рис. 6
Микропрограмма деления 21 MP
1
0
1
14 Процедура объединения множеств внутренних слов для различных микропрограмм сводится к перечислению в множестве S слов с попарно различными идентификаторами, причем, если два слова с одинаковыми идентификаторами имеют разную длину, то в множестве S вводится только слово с максимальной длиной и считается, что слово меньшей длины может быть представлено в большем формате. В частности, на рис. 6 в микропрограмме умножения используется слово RG(0:16), а не слово RG(0:15), как это имеет место на рис. 2.3 в [2]. При этом поле RG(0:1) слова RG используется для представления знака числа. Множество Y микроопераций, используемых в микропрограммах, получается путем последовательной выборки из содержательных графов алгоритмов операторов присваивания, представляющих микрооперации. Аналогичным образом строится список условий, используемых в микропрограммах. 3.4. Разработка объединенной микропрограммы работы АЛУ Процессор состоит из АЛУ и УЦУ. В объединенном списке микроопераций, используемых в микропрограммах минимального набора операций АЛУ, для унификации формы записи различных операций и форматов одноименных слов следует по сравнению с рис. 2.3 из [2] изменить три микрооперации: - для вершины 2 вместо микрооперации RG2 := RG нужно использовать микрооперацию RG2 := RG(1:16).0; - для вершины 6 вместо микрооперации RG 2 (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. В списке слов, использованных в АЛУ, слову RG1 следует приписать тип IL, а слову МР тип L. В объединенную микропрограмму работы АЛУ следует включить микрооперации MP:=0 и MP:=1, отсутствующие в микропрограммах минимального набора операций, выполняемых в АЛУ. Это сделано потому, что микропрограммы сложения, умножения и деления могут использоваться как
15 самостоятельно, так и в качестве составляющих микропрограммы вычисления функции shx. По этой же причине осведомительный сигнал MP включен в состав осведомительных сигналов, соответствующих операции сложения. Микропрограммы операций объединяются с помощью двоичных переменных g1, g2, g3, определяющих код операции (КО). Он подается в АЛУ из УЦУ. Запуск АЛУ производится управляющим сигналом АЛУ, возбуждающим начало операции, заданной КО. В АЛУ формируются осведомительные сигналы, определяющие признаки результата и осведомительный сигнал АЛО, идентифицирующий состояние устройства. Устройство считается занятым выполнением операции, если АЛО =1. Если АЛО = 0, устройство закончило выполнение операции, т. е. результат операции присвоен RG. 3.5. Разработка структурной схемы операционного автомата АЛУ Операционный автомат АЛУ может быть реализован как по схеме с закрепленными микрооперациями, так и по схеме с общими микрооперациями. Метод синтеза таких автоматов изложен в [1,2]. Исходными данными для синтеза служат объединенные списки слов, микроопераций и условий, соответствующие микропрограммам минимального набора операций, выполняемых АЛУ. Для автомата с закрепленными микрооперациями каждому слову из объединенного списка слов, не являющемуся вспомогательным, ставится в соответствие регистр с тем же наименованием и того же формата. Тип этого регистра определяется типом слова. Каждому входному регистру ставится в соответствие вход автомата, а каждому выходному регистру – выход автомата. Затем каждая микрооперация из объединенного списка микроопераций закрепляется за регистром, которому присваивается результат этой микрооперации. Регистр с закрепленным за ним списком микроопераций объявляется операционным элементом. За ним сохраняется имя регистра. Каждый список микроопераций, закрепленных за каким-либо регистром, разбивается на группы однотипных (эквивалентных) микроопераций. Две микрооперации считаются однотипными, если они определяются одинаковыми функциями, возможно и с различным числом аргументов. Каждому аргументу такой функции сопоставляется вход операционного элемента. К нему подводится управляемая шина, с управляющим сигналом, помеченным тем же индексом, что и функция, определяющая микрооперацию. Если ко входу операционного элемента подходит несколько шин, необходимо ставить мультиплексор. Микрооперации установки и инвертирования изображаются просто управляющим сигналом, подведенным к операционному элементу. Цепи осведомительных сигналов находятся с помощью объединенного списка условий. После соединения операционных элементов соответствующими шинами и разметки управляющих и осведомительных сигналов получаем
16 структурную схему операционного автомата АЛУ с закрепленными микрооперациями. Конкретные примеры таких схем имеются в [2]. Все операционные автоматы с общими микрооперациями имеют одинаковую структуру, содержащую набор внутренних регистров одинакового формата, две шины, на каждую из которых может быть передано содержимое любого из регистров, и комбинационной схемы, операндами для которой служит содержимое этих шин. Результат с выхода комбинационной схемы может быть передан в любой из внутренних регистров. Микрооперации выборки слов на шины, преобразования слов в комбинационной схеме и загрузки результатов в регистры называют операторами в отличие от микроопераций, используемых в микропрограмме. Каждая микрооперация в автомате с общими микрооперациями представляется последовательностью операторов. Логические условия обычно представляются в виде значения булевой функции результата на выходе комбинационной схемы. Исходными данными для синтеза операционного автомата с общими микрооперациями, как и в случае автомата с закрепленными микрооперациями, служат объединенные списки слов, микроопераций и условий. Процедура синтеза операционного автомата с общими микрооперациями распадается на несколько этапов. Подробно эта процедура изложена в [1,2]. Там же приведены конкретные примеры синтеза. Результатом данного раздела проекта служит структурная схема операционного автомата АЛУ. 3.6.
Выбор системы команд
На этом этапе считаются заданными адресность команды, наличие или отсутствие признака засылки, способ адресации ОЗУ и список операций АЛУ. Используя эти данные, составляют программы вычисления функций F2, F3 по алгоритмам, разработанным в подразд. 3.2. По окончательному варианту нужно составить список команд всех типов, используемых для программирования F2, F3. Этот список и является минимальной системой команд проектируемого СП. Примеры выбора минимальной системы команд для всех предусмотренных заданием вариантов форматов команд приведены в [2]. Далее, с помощью полученных программ вычисления F1, F2, F3 по методике, изложенной в [2], нужно рассчитать верхнюю границу времени решения функциональной задачи. Предполагается, что проектируемый вычислитель является машиной с синхронным управлением и постоянной длительностью такта. Для полученного варианта системы команд СП разрабатывается аклгоритм микропрограммы УЦУ. Конечным результатом выполнения этого этапа будут программы вычисления F1, F2, F3; максимальное значение Tц max решения одного цикла задачи; алгоритм микропрограммы. Пусть процессор состоит из АЛУ и УЦУ .
17 3.7.
Разработка объединенной микропрограммы работы УЦУ
Будем считать, что в АЛУ для основных операций над одним оп ерандом (ОО1) значение операнда перед началом операции присваивается слову RG, для основных операций над двумя операндами (ОО2) значение первого операнда присваивается слову RG, а значение второго – слову RG1. Результат всякой основной операции присваивается слову RG. Код операции КО подается в АЛУ из УЦУ. Запуск АЛУ производится поступающим из УЦУ управляющим сигналом АЛУ, возбуждающим начало операции, заданной кодом операции КО. В АЛУ формируются осведомительные сигналы, определяющие признаки результата (неотрицательность, равенство нулю и т. д.), и осведомительный сигнал АЛО, идентифицирующий состояние устройства. Устройство считается занятым выполнением операции, если АЛО = 1. Если же АЛО = 0 считается, что устройство закончило операцию, т.е. результат операции присвоен слову RG. УЦУ выбирает команды из ОП в требуемой последовательности, определяемой естественным порядком выполнения команд или командами переходов, выбирает операнды, заданные адресами, запускает в АЛУ выполнение основной операции, предписанной выбранной командой, записывает результат и переходит к выборке следущей команды из ОП. ОП является самостоятельным устройством. В нем выделяется регистр адреса RGA, регистр слова RGC, управляющие входы ЗП и ЧТ и осведомительный выход ОПО. Сигналы ЗП и ЧТ возбуждают в ОП операции записи и чтения слова: ЗП) ОП[RGA]:=RGC
ЧТ) RGC:=ОП[RGA]
Период выполнения этих операций, реализуемых под управлением местного устройства управления ОП, отмечается осведомительным сигналом ОПО, который принимает значение 1 в момент начала обращения к памяти и значение 0 – в момент окончания операций ЗП и ЧТ. Если ОП работает с отдельными байтами, а слово, представляющее команду или операнд, состоит из нескольких байтов, то это слово выбирается из ОП за несколько обращений. Будем считать, что байты одного и того же слова располагаются в ОП по соседним адресам последовательно, так что после выборки первого байта слова адрес следующего байта получается прибавлением единицы к адресу выбранного байта и т. д. В том же порядке осуществляется и запись слов. Пусть в УЦУ значения выбранных из ОП команд присваиваются слову RGK, значения адресов команд присваиваются слову СТАК. Также имеется возможность с пульта управления процессором слову СТАК присвоить начальное значение адреса программы (пусковой адрес) и остановить работу процессора после выполнения любой команды нажатием кнопки «Останов». Ситуация, при которой во время выполнения основной операции признаку переполнения разрядной сетки ПП присвоено значение 1, пусть счи-
18 тается аварийной и приводит к прекращению работы процессора с выдачей сигнала на пульт управления. Работа процессора при этом должна автоматически возобновиться после присвоения вручную с пульта управления признаку ПП значения 0. В нашем случае специализированный процессор взаимодействует с единственным устройством ввода и с единственным устройством вывода. Операция ввода (ВВД) состоит из трех частей: 1. В УЦУ одноразрядному слову ВВО присваивается значение 1. Это служит сигналом, запускающим устройство ввода, которое присваивает слову BRG1 из УЦУ значение вводимой переменной, после чего присваивает слову ВВО значение 0. 2. Проверяется значение слова ВВО. Если ВВО = 0, то слову RG присваивается значение слова BRG1. 3. Ячейке ОП с указанным в команде ввода адресом присваивается значение слова RG. Операция вывода (ВЫВ) пусть также состоит из трех частей: 1. Слову RG из АЛУ присваивается значение ячейки ОП с указанным в команде вывода адресом. 2. В УЦУ проверяется значение одноразрядного слова ВЫО. Если ВЫО = 0, слову BRG2 из УЦУ присваивается значение слова RG. 3. Слову ВЫО присваивается значение 1, что служит сигналом, запускающим устройство вывода. Это устройство записывает значение слова BRG2 после чего присваивает слову ВЫО значение 0. Содержательные граф-схемы микропрограмм работы УЦУ, соответствующие всем предусмотренным заданием форматам команд, приведены в [2]. 3.8 . Разработка структурной схемы операционного автомата УЦУ Исходными данными для разработки структурной схемы операцио нного автомата УЦУ служат списки слов, микроопераций и условий, полученные из содержательной граф-схемы алгоритма работы УЦУ. Нахождение этих списков и служит первым шагом построения структурной схемы операционного автомата УЦУ. Затем, как и при построении операционного автомата АЛУ, в соответствии с заданием строится либо автомат с закрепленными, либо с общими микрооперациями. Примеры синтеза структурных схем таких автоматов приведены в [2]. 3.9. Разработка управляющего автомата АЛУ Рекомендуется следующая последовательность действий: 1. Преобразование содержательного алгоритма микропрограммы в закодированную ГСА. 2. Выделение фрагментов в закодированной ГСА, эквивалентных одной микрокоманде (с учетом способа адресации и кодирования операционной зоны).
19 3. Микропрограммирование ГСА, т.е. формирование упорядоченного списка микрокоманд, интерпретирующих ГСА, в условных адресах. 4. Расчет формата микрокоманды и определение информационной организации ПЗУ – М слов × k бит, где М – число микрокоманд, реализующтх ГСА; k – разрядность микрокоманды. Если автомат предназначен для управления операционным автоматом с общими микрооперациями, то закодированная ГСА должна быть предварительно преобразована так, чтобы каждая операторная вершина, содержащая несколько совместимых между собой микроопераций, была заменена соответствующим числом операторных вершин, каждая из которых содержала бы ровно по одной микрооперации. Конечным результатом данного пункта являются: 1. Структурная схема управляющего автомата с учетом заданного способа адресации микрокоманд. 2. Списочная форма микропрограммы ГСА в условных адресах и с выделенными операционными и адреснымиполями каждой микрокоманды. 3. Рассчитанные значения разрядности в битах каждого поля микрокоманды и информационная организация ПЗУ. По данной методике разрабатывается как УА АЛУ, так и УА УЦУ. Примеры составления микропрограмм приведены в [2]. 3.10. Разработка операционной структуры специализированного процессора Исходными данными для выполнения п. 3.10 служат структурные схемы АЛУ и УЦУ. На этом этапе проектирования выполняется композиция АЛУ и УЦУ, которая и образует операционное устройство как специализированный процессор. Результатом выполнения этого этапа является структурная схема специализированного процессора [1,2]. 3.11. Оценка времени реализации алгоритма Требуется рассчитать время реализации одного цикла решения задачи для случая, когда используется АЛУ с закрепленными микрооперациями, и случая, когда используется АЛУ с общими микрооперациями. Методика расчета приведена в [2].
20
Библиографический список 1. Майоров С.А., Новиков Г.И. Структура электронных вычислительных машин. Л.: Машиностроение, 1979. 384 с. 2. Козин И.В., Хмельницкий С.В. Синтез специализированных процессоров: Учеб. пособие/ЛИАП. Л., 1987. 107 с. 3. Корн Т., Корн Г. Справочник по математике. М.: Мир, 1977. 831 с. СОДЕРЖАНИЕ 1. ОБЪЕКТ И ЭТАПЫ ПРОЕКТИРОВАНИЯ……………………………. 3 2. ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ…………………… 4 3. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ ЭТАПОВ ПРОЕКТА………………………………………………………………… 7 3.1. Разработка алгоритмов решения функциональной задачи……. 7 3.2. Определение минимального набора операций АЛУ…………… 9 3.3. Разработка алгоритмов микропрограмм выполнения минимально необходимого набора операций АЛУ…………… 9 3.4. Разработка объединенной микропрограммы работы АЛУ……. 14 3.5. Разработка структурной схемы операционного автомата АЛУ.. 15 3.6. Выбор системы команд………………………………………….. 16 3.7. Разработка объединенной микропрограммы работы УЦУ…… 17 3.8. Разработка структурной схемы операционного автомата УЦУ.. 18 3.9. Разработка управляющего автомата АЛУ……………………… 18 3.10. Разработка операционной структуры специализированного процессора………………………………………………………... 19 3.11. Оценка времени реализации алгоритма………………………… 19 Библиографический список………………………………………………… 20