RPZ_1 (Курсовой проект (готовый) вариант 64 ещё один)
Описание файла
Файл "RPZ_1" внутри архива находится в следующих папках: Курсовой проект (готовый) вариант 64 ещё один, 64_2. Документ из архива "Курсовой проект (готовый) вариант 64 ещё один", который расположен в категории "". Всё это находится в предмете "электронные вычислительные машины (эвм)" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "эксплуатация эвм" в общих файлах.
Онлайн просмотр документа "RPZ_1"
Текст из документа "RPZ_1"
17
Московский государственный технический университет
им. Н. Э. Баумана
Принял:
Виноградов В.И.
«___»__________2000 г.
___________________
Курсовая работа
«Проектирование вычислительного устройства»
по дисциплине
"Архитектура ЭВМ"
Вариант №64
Выполнил:
студент группы ИУ5-53
Писайкин М.С.
_____________________________________________________
Москва 2000
Содержание.
-
Постановка задачи 3
-
Микропрограммы машинных операций 4
-
Алгоритмы подключения, отключения, запроса исходных данных и передачи результата. 4
-
Алгоритм выполнения операции «Умножение». 4
-
Алгоритм выполнения операции «Сдвиг арифметический».
-
Алгоритм выполнения операции «Вычитание обратное». 5
-
Алгоритм выполнения операции «Вычитание модулей». 7
-
Логические операции. 7
-
Обобщенная микропрограмма. 7
Списки операций и условий. 7
Закодированный граф микропрограммы. 8
Разработка структурной схемы операционного автомата. 8
Синтез операционных элементов. 9
-
Регистр кода операции. 9
-
Счетчик. 9
-
Мультиплексор регистра А. 10
-
Регистр А. 10
-
Регистр В и схема его загрузки. 10
-
Арифметико-логическое устройство. 11
-
Регистр R. 11
-
Выходной мультиплексор. 11
-
Регистр С. 12
-
Прочие элементы. 12
Функциональная схема операционной части ВУ. 12
Список переходов. 13
Программирование ПЛМ. 13
Подсчет числа тактов, необходимых для выполнения каждой микрооперации. 15
Расчет максимально возможной частоты работы устройства 15
Заключение. 16
Список использованной литературы. 17
Приложение 1. Обобщенная микропрограмма.
Приложение 2. Списки микроопераций и условий.
Приложение 3. Закодированный граф микропрограммы.
Приложение 4. Структурная схема ОА.
Приложение 5. Списки переходов.
Приложение 6. Таблица программирования ПЛМ.
1. Постановка задачи.
Спроектировать вычислительное устройство для выполнения заданного множества операций. Вычислительное устройство должно состоять из операционной части и блока управления и подключаться к интерфейсу.
Состав шин интерфейса:
1.Шины прямой передачи данных /входные/ разрядностью 8 бит.
2.Шины обратной передачи данных /выходные/ разрядностью 8 бит.
3.Шины адреса разрядностью 7 бит.
4.Управляющие шины:
- проверка готовности устройства /ПРГОТ/,
- сигнал занятости устройства /ЗАН/,
- код операции /КОП/,
- передача данных по входным шинам /ДАННЫЕ/,
- передача результата по выходным шинам /РЕЗ/,
- запрос на передачу данных /ЗАПР/,
- подтверждение приема результата /ПРРЕЗ/,
- готовность устройства /ГОТ/,
- сигнал прерывания при делении на нуль /ПР/.
Таблица №1. Закодированный вариант задания.
Вариант | Выполняемые операции | Разрядность операндов | Код | Серия микросхем | ||||||
64 | У | С1 | А3 | А4 | Л1 | Л2 | Л3 | 8 | П | K555* |
*) При выполнении задания была взята серия КР1533.
Таблица №2. Расшифровка перечисленных в задании операций.
Номер | Обозначение операции | Операция |
1. | У | Умножение |
2. | С1 | Сдвиг арифметический |
3. | А3 | Вычитание обратное |
4. | А4 | Вычитание модулей |
5. | Л1 | A B |
6. | Л2 | A B |
7. | Л3 | ______ A В |
Формат, команд:
0 2 3 4 7
КОП |
2. Микропрограммы машинных операций.
2.1 Алгоритмы подключения, отключения, запроса исходных данных и передачи результатов.
При появлении номера устройства на шине адреса и сигнала на шине ПРГОТ, устройство (далее ВУ), при условии, что оно не занято, выдает сигнал ГОТ. После этого внешнее устройство, которое запрашивало операцию, выставляет ее код на шине данных и подает сигнал КОП. По сигналу КОП ВУ считывает код операции в регистр команд и начинает выполнение одной из микропрограмм операций.
После выдачи результата, ВУ снимает сигнал с шины ЗАН. После этого внешнее устройство снимает адрес устройства с шины адреса, освобождая интерфейс.
Для запроса данных устройство выдает сигнал ЗАПР. О появлении данных на входной шине интерфейса говорит сигнал ДАННЫЕ.
Для передачи результата, устройство выставляет сигнал РЕЗ и подает результаты на выходную шину. О приеме результата внешним устройством свидетельствует сигнал ПРРЕЗ.
2.2 Алгоритм выполнения операции «Умножение».
А
лгоритм выполнения операции умножения приведен на рис. 1. Если один из множителей равен 0, то результату присваивается значение 0, и умножение не производится. Регистр А используется для накопления результата умножения; его начальное значение 0. В регистр С помещается первый множитель, а в регистр В второй. Регистр R принимает результат операции из АЛУ и из него выдается результат умножения.
Рис. 1
Знак в операциях не участвует, а может быть вычислен сразу по формуле ЗнРез = ЗнА xor ЗнВ, и занесен в специальный регистр. Поэтому мы считаем, что в умножении участвуют 7 разрядов. Тогда начальное значение счетчика будет равно 7.
Разрядность исходных данных 8 бит. Назовем ее словом. Тогда разрядность результата должна быть равна 16 бит, то есть два слова. Значит все регистры и АЛУ, участвующие в образовании результата, должны иметь эту разрядность. Это относится к регистрам А, В и R.
Так как знаки не участвуют в умножении, то разрядность беззнакового результата 14 бит. Поскольку в остальных операциях, которые выполняет ВУ, используется только 8 бит, мы можем сразу записывать в 15 бит знак результата умножения.
Перед выполнением операции умножения должны быть считаны множители. Сначала в регистр С считывается первый множитель. Поскольку второй множитель участвует в операции сдвига и сложения, причем без знака, в регистр В должен быть считан его модуль. А его знак участвует в вычислении знака результата, который фиксируется в регистре знака и записывается в старший разряд результата (т.к. используется прямой код). После выполнения операции, результат должен выдаваться на выходную шину в порядке: старшее слово, младшее слово.
2.3 Алгоритм выполнения операции «Сдвиг арифметический».
Арифметический сдвиг – это такой сдвиг, при котором сохраняется знак числа. Поскольку мы работаем в прямом коде, то при сдвиге вправо, знаковый разряд попадет в значащую часть числа и испортит ее. Отсюда напрашивается вывод, что необходимо сдвигать число без знака, а знак сохранять и дописывать к числу после проведения операции. Так и сделаем: в регистр будем записывать модуль числа, а знак будем сохранять в регистре знака. Знаковый разряд в регистр R будет поступать через мультиплексор знака, который будет либо пропускать исходный знак, либо подавать на выход содержимое регистра знака. Сам сдвиг будем осуществлять в регистре B. В зависимости от значения бита знака K(3) в поле кода операции, содержимое регистра B будет сдвигаться вправо или влево на число позиций, записанное в поле K(4:7).
2.4 Алгоритм выполнения операции «Вычитание обратное».
Наше вычислительное устройство работает с операндами в прямом коде. Кроме того, у нас имеется операция вычитания модулей. В прямом коде для того, чтобы взять модуль от числа, необходимо просто «занулить» его знаковый разряд, поэтому, чтобы не связываться с переводом в дополнительный код и т.д., мы попробуем выразить «вычитание обратное» через действия с модулями. Операцию же взятия модуля можно реализовать аппаратно.
Рассмотрим варианты в зависимости от знака:
A>0, B>0 | R=B-A=|B|-|A| |
A>0, B<0 | R=B-A=-|B|-|A|=-(|B|+|A|) |
A<0, B>0 | R=B-A=|B|+|A| |
A<0, B<0 | R=B-A=-|B|+|A|=-(|B|-|A|) |
Можно заметить, что при несовпадении знаков А и В производится сложение модулей, а при совпадении – вычитание модулей. А после этого, если знак В был меньше 0, то знак результата изменяется. Алгоритм выполнения операции «вычитание обратное» представлен на рис. 2.
Рис. 2
Здесь и далее (во всех остальных операциях) предполагается, что начальные значения считаны в регистры А и В.
Для реализации операции взятия модуля при использовании прямого кода, нужно просто «обнулять» знаковый бит перед выполнением операции. Но поскольку у нас еще есть и логические операции, это должно происходить не всегда, а зависеть от операции. При 8-разрядных операндах, необходимо обнулять 7 бит.
Результат получается в дополнительном коде. Для изменения его знака, над ним надо произвести операцию: Xобр=^X+1 (инверсия X плюс 1).
П
осле этого необходимо перевести результат в прямой код. Если значение положительное, то ничего делать не нужно, а если отрицательное, то необходимо изменить его знак, как показано выше, а потом выставить бит знака. Алгоритм изменения знака представлен на рис. 3. В регистре R хранится результат.
Рис. 3
2.5 Алгоритм выполнения операции «Вычитание модулей».
Взятие модуля перед операцией уже реализовано аппаратно. Трудность в том, что если АЛУ может выполнить операцию X-Y, то не может выполнить операцию Y-X. А операция |B|-|A| уже используется. Но Y-X=-(X-Y), поэтому мы можем вычислить |B|-|A|, а затем изменить знак на противоположный. После этого результат необходимо преобразовать в прямой код.
2.6 Логические операции.
Логические операции могут быть выполнены АЛУ напрямую. При их выполнении знак не используется, поэтому бит знака должен сохраняться, как есть.
3. Обобщенная микропрограмма.
Обобщенная микропрограмма строится на основе микропрограмм отдельных операций. Она должна организовывать отдельные микропрограммы в единое целое, обеспечивать подключение к шине, запрос кода операции и исходных данных, выполнение микропрограммы, выдачу результатов и отключение от шины.