Автор работы: Пользователь скрыл имя, 02 Ноября 2010 в 18:32, Не определен
Курсовая работа
Министерство Общего и Профессионального
Образования Российской Федерации
Московский Государственный Институт
Радиотехники, Электроники и Автоматики
(Технический Университет)
Факультет ВАВТ
Кафедра ВТ
Курсовая Работа
Тема: Разработка вычислительного устройства
Студент: Башкиров А.А.
Начало работы: ______________________
___ 2002 г.
Окончание работы: ______________________
___ 2002 г.
Руководитель: Иваненко Н.С.
Допущен к защите “______” ____________
__ 2002 г.
Москва 2002
Содержание
|
3 |
|
4-5 |
|
6-7 |
|
8 |
|
9 |
|
10 |
|
11-14 |
|
15 |
|
16 |
Введение
Каноническая
структура синтеза синхронного
вычислительного устройства состоит
из двух автоматов – операционного
(ОА) и управляющего (УА).
На
вход ОА подаются входные (исходные) данные,
а на выходе ОА формируются выходные
данные (результат). На вход УА подается
управляющая информация (например, код
операции (КОП), сигнал разрешения чтения
и тп.), а на выходе УА формируется выходная
управляющая информация (например, сигнал
готовности, сигнал ошибки и тп.). ОА и УА
взаимосвязанны: от ОА к УА передаются
сигналы признаков (условия) и в зависимости
от этих условий от УА к ОА возвращается
соответствующая микрокоманда. Синхронизация
служит для управления работой всех синхронных
узлов и деталей устройства.
Постановка
задачи
Разработать
вычислительное устройство, состоящее
из двух взаимосвязанных частей –
операционного и управляющего автоматов
– и выполняющее следующие
действия:
2) Нахождение
максимума в массиве с
Числа
произвольных знаков, разрядность 12, дополнительный
код, Тип УА: с регулярной адресацией.
Интерфейс вычислительного устройства
ШиВх[0-11] – Входная шина данных.
ШиВых[0-11] – Выходная шина данных.
ШуВх[0] – Входная шина управления:
0: RI – Разрешение чтения (RI=1 – Можно читать со входной шины данных),
ШуВых[0] – Выходная шина управления:
0: Rо – Подтверждение вывода (Rо=1 – на выходной шине данных сформирован результат).
1: STOP – Неверные данные (STOP=1 – длинна массива равна нулю)
SYN – Синхронизация.
Формат числа с плавающей точкой
|
Разряды
нумеруются начиная с нуля, 0 –
старший разряд.
0-3 – Порядок в доп. коде, 0 – знак порядка.
4-11 – Мантисса
в доп. коде, 4 – знак мантиссы.
Числа
поступают одно за другим по входной
шине данных. Если выполняется команда
нахождения максимума массива, то биты
2-5 первого числа принимаются
за длину массива, причем это первое
число участвует в операции. Результат
поступает на выходную шину данных.
Математическое обоснование
используемых алгоритмов
Общая
задача состоит из двух подзадач: нахождение
модуля числа и нахождение максимума
в массиве с плавающей точкой.
Поскольку в процедуре поиска
максимума используется предварительная
нормализация числа с плавающей точкой,
то алгоритм нормализации также рассмотрим
как самостоятельную задачу.
Нахождение
модуля числа
Реализация
нахождения модуля числа представим
в виде перевода из дополнительного
кода в прямой код. Положительное число
и его модуль выглядят одинаково. Отрицательные
числа переводятся из прямого в обратный
код так: знаковый разряд присваивает
единицу, а само число инвертируется и
к полученному, инвертированному, числу
прибавляем единицу. Поэтому, чтобы
получить положительное число, необходимо
отрицательное число в дополнительном
коде инвертировать, вместе со знаковым
разрядом, и прибавить к результату единицу,
что и есть обратный переход к прямому
коду.
Нормализация.
Число
считается нормализованным, если 2 старших
разряда мантиссы (4-ый и 5-ый) не равны
между собой. Если эти разряды
равны, то число не нормализованное.
Необходимо сдвинуть мантиссу на 1 разряд
влево, а из порядка вычесть единицу.
Эти действия надо повторять до тех
пор, пока старшие 2 разряда мантиссы не
станут различными. Если на очередной
итерации порядок примет свое минимальное
значение (-8), то алгоритм завершается,
и хотя число при этом может остаться не
нормализованным, но такая его форма также
пригодна для операции сравнения.
В
случае, если мантисса числа равна 0
(т.е. число – машинный ноль), то вне
зависимости от исходного значения
порядка, в результате нормализации порядок
принимает значение (-8). Именно в таком
виде машинный ноль корректно обрабатывается
схемой сравнения.
Нахождение максимума
в массиве с плавающей
точкой
Для
поиска максимума в массиве необходима
переменная “накопления максимума” (регистр
Rg1). Первое число записывается в Rg1, второе
и последующие сравниваются с Rg1, и если
Rg1 окажется больше очередного числа, то
это число пропускается, в противном случае
оно записывается в Rg1. Длина массива задается
2-5 разрядами первого числа, участвующего
в поиске максимума. Длина массива – беззнаковое
целое 0-15. Если длина массива равна 0, то
выдается сигнал STOP и вычисление максимума
не производится.
Перед
сравнением числа необходимо нормализуются.
Примеры
Для
иллюстрации вышеописанных
Нахождение
модуля числа
A = 1001 11010011
1001 11010011
инвертируем: 1001 00101100
прибавим «1» 1001 00101101
|A| = 1001 00101101
Нормализация
0001 1.1111010 – Знаковый разряд мантиссы и следующий за ним совпадают ==> не нормализовано.
0000 1.1110100 – ----//----
1111 1.1101000 – ----//----
1110 1.1010000 – ----//----
1101 1.0100000
– Знаковый разряд мантиссы
и следующий за ним не совпадают ==>
нормализовано.
-0.046875*2^1 = -0.09375
-0.75*2^(-3) = -0.09375
Нахождение
максимума в массиве
с плавающей точкой
0011 1.0001101 – Первое число, записываем его в Rg1. Из этого числа определили, что кол-во элементов в массиве равно 3.
0011 1.0011110 – Второе число, сравниваем его с Rg1. Rg1 меньше поступившего числа, записываем это число в Rg1.
0100 1.0011110
– Третье число, последнее.
Сравниваем с Rg1. Знаковый бит мантиссы
третьего числа равен 1 ==> третье число
меньше Rg1. Пропускаем это число.
Поиск закончен.
MAX = 0011 1.0011110
0011 1.0001101 = -0,8984375*2^3 = -7,1875
0011 1.0011110 = -0,765625*2^3 = -6,125
0100 1.0011110
= -0,765625*2^4 = -12,25
Описание
УА. Таблица заполнения
управляющей памяти.
В
данном вычислительном устройстве используется
УА с регулярной адресацией. В таком
УА при разветвлении процесса вычислений
один из альтернативных адресов всегда
на единицу больше, чем текищий; второй
адрес – произвольный.
Элементом,
“вычисляющим” адрес, является счетчик,
управляемый сигналом, являющимся входным
для УА. В зависимости от значения входного
сигнала счетчик либо прибавляет единицу
к значению, которое хранилось в счетчике
и являлось текущим адресом, либо загружается
значением адреса из управляющей памяти.