Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) icon

Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”)



НазваниеПроектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”)
Дата конвертации08.07.2012
Размер175.8 Kb.
ТипКурсовой проект
1. /NOMYPTCA/ANTIK_M/MTD4.TXT
2. /NOMYPTCA/ANTIK_M/MTDLIT.TXT
3. /NOMYPTCA/ANTIK_M/MTDUA.TXT
4. /NOMYPTCA/PTCA_INF/ALU2.DOC
5. /NOMYPTCA/PTCA_INF/ALU3.DOC
6. /NOMYPTCA/PTCA_INF/ANDY_PTC.DOC
7. /NOMYPTCA/PTCA_INF/DIGIT.DOC
8. /NOMYPTCA/PTCA_INF/OA.DOC
9. /PTCAM.DOC
Схема электрическая функциональная управляющего автомата
Схема электрическая функциональная контроля данных по модулю 3
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”)
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”)
Схема электрическая функциональная операционного автомата
M1 Вычитание чисел с плавающей точкой


Московский Государственный Институт Радиотехники, Электроники, Автоматики

(Технический Университет)


Кафедра вычислительной техники


курсовой проект по теме

ПРОЕКТИРОВАНИЕ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА

(на основе курса “Прикладная теория цифровых автоматов”)


Студент Серегин А.Л.

Вариант 22

Группа АВ-7-92

Преподаватель Антик М.И.


Москва

1995


СОДЕРЖАНИЕ


Задание 3

Интерфейс разрабатываемого устройства 3

Математические обоснования используемых алгоритмов 4

Примеры выполнения задач 5

Алгоритм работы вычислительного устройства 6

Микропрограмма в содержательном виде 7

Особенности работы некоторых узлов устройства 8

Описание сигналов управляющего автомата 9

Таблица заполнения управляющей памяти 10


Интерфейс разрабатываемого устройства

Исходя из задания, целесообразно использовать следующий интерфейс вычислителя.

Входные сигналы:

1. Двухразрядный сигнал SLCT - управляет выбором задачи; его старший (нулевой) разряд задает вид операндов: “1”- c плавающей точкой, “0”- целые, младший(первый) разряд задает вид операции: “0”- сложение, “1” - вычитание.

2.
Сигнал RDYIN обозначает готовность операнда; “1” - операнд готов, “0”- операнд не готов

3. Сигнал синхронизации - С.

Выходные сигналы:

1. Сигнал RDYOUT - указывает указывает внешнему устройству на готовность ответа; “0”- ответ готов,”1”- ответ не готов.

2. Сигнал ERROR - указывает внешнему устройству на наличие/отсутствие ошибки; “1” - ошибка есть, “0” - ошибки нет.

Для передачи данных и результатов используется 32-разрядная двунаправленная шина данных.


Математические обоснования используемых алгоритмов

Рассмотрим принцип выполнения автоматом задач, указанных в задании.

1. Нахождение минимального числа из последовательно поступающих чисел.

Для определения минимального числа из двух чисел A и B необходимо вычислить разность A-B и по ее знаку сделать вывод о том, какое число является меньшим. Для этого A и B представляются в модифицированном дополнительном коде, причем устройство, передающее вычислителю эти операнды, представляет их в дополнительном коде, а далее, в операционном автомате у A знаковый разряд расширяется влево, разряды B инвертируются, полученный новый знаковый разряд расширяется влево, и к B добавляется “1”. Затем к полученному таким образом числу добавляется A, и результат представляет собой разность A-B. Старший разряд говорит о знаке разности - “1” - разность отрицательная, следовательно A, “0” - разность положительная, то есть A>B. Равенство разности нулю говорит о равенстве A и B, при этом минимальным числом считается любое из них.

Значение второго после знакового разряда говорит о выходе разности за разрядную сетку операционного автомата, однако справедливость знака разности по-прежнему имеет место.

Таким образом, можно определить минимальное из двух целых чисел (положительных или отрицательных).

Далее операционный автомат ожидает поступление следующего числа и сравнивает его с уже имеющимся и т.д. пока не будет получен сигнал о завершении последовательности.

2. Перевод правильной двоичной дроби в десятичную

Здесь будем предполагать, что поступающее в операционный автомат число A представляет собой 24 разряда некоторой правильной двоичной дроби.

Под десятичной дробью будем понимать совокупность двоично-десятичных цифр в коде 8-4-2-1. Тогда для перевода необходимо проделать следующие действия:

1. Умножить число A на двоичное число 1010 (десятичное 10).

2. Запомнить старшие 4 разряда результата

3. Взять дробную часть результата и умножить ее на двоичное 1010

4. Повторить пункты 2-4 еще 23 раза.

23 раза повторять пункты 2-4, вообще говоря, необязательно. При 24-разрядной шине данных повторять данные операции можно лишь 6 раз (4X6=24). Однако для выполнения контроля данных по модулю 3 необходимо получить десятичную дробь со 100% точностью.

Примеры выполнения задач

Рассмотрим по одному примеру на выполнение каждой из задач.

1. Пусть вычислительное устройство принимает последовательность чисел, из которых необходимо найти минимальное.

1110’0010’1101’1110’1010’0001 (-1909087) число A

0001’0110’1111’0110’1010’1101 (1504941) число B

1010’1100’1110’0111’0011’1000 (-5445832) число C

Инвертируя B и расширяя знаковый разряд у A и B, операционный автомат вычисляет сумму:

1’1110’0010’1101’1110’1010’0001

1’1110’1001’0000’1001’0101’0010

0’0000’0000’0000’0000’0000’0001

1’1’1100’1011’1110’0111’1111’0100 = -3414028

Самая левая единица отбрасывается, следующая за ней единица говорит об отрицательности результата, что действительно верно. Aи следующее число C будет сравниваться с числом A.

1’1110’0010’1101’1110’1010’0001

0’0101’0011’0001’1000’1100’0111

0’0000’0000’0000’0000’0000’0001

1’0’0011’0101’1111’0111’0110’1001 = 3536745

Как видим, результат получился положительным, следовательно A>C и следующее число будет сравниваться с C.

2. Пусть необходимо перевести в десятичное число двоичную дробь:0.1110’0010’1101’1110’1010’0001 (0.886209...). Отметим, что соответствующая десятичная дробь конечна.

Умножая на двоичное 1010 получим 1000.1101’1100’1011’0010’0100’1010, следовательно первая двоично-десятичная цира 1000 (8). Далее умножаем дробную часть на 1010. Получим 1000.1001’1110’1111’0110’1110’0100, следовательно вторая двоично-десятичная цифра - тоже 8. Еще раз умножим дробную часть полученного числа на 1010. Результат - 0110.0011’0101’1010’0100’1110’1000, и третья двоично-десятичная цира - 6 и т.д. Опреационный автомат будет вычислять результат, пока дробная часть множимого не станет нулевой. Первые 24 разряда полученного числа будут выданы на шину данных. Все 24X4=96 разрядов нужны для контроля данных по модулю три, однако запоминать 72 “лишних” разряда нет необходимости, так как узел, отвечающий за контроль, содержит сумматор с памятью.


Алгоритм работы вычислительного устройства.

Алгоритм состоит из двух основных ветвей. Левая - соответстветствует решению задачи о нахождении минимального числа, правая - задаче перевода двоичной дроби в десятичную. В данный алгоритм не входит описание поведения некоторых сигналов, о котрых будет сказано далее.

В алгоритме используются обозначения:

d1d0:=d1d0(X) - вычисление двух контрольных разрядов регистра X по модулю три. В регистре X находится исходный операнд;

d1’d0’:=d1’d0’(Y) - вычисление двух контрольных разрядов регистра Y по модулю три. В регистре Y находится промежуточный или конечный результат.

(d1’d0’)* - предыдущее значение контрольных разрядов результата.

d1, d1’ - старший разряд, d0, d0' - младший разряд двоичного числа от 0 до 2

В задаче нахождения минимума нулевой разряд A и B - младший, разряд № 23- старший. В задаче перевода дробей нулевой разряд старший, разряд № 3 (у A1) и разряд № 23 (у A2 и B) - младший.

Микропрограмма в содержательном виде

Здесь действуют те же обозначения, что и в алгоритме.


n1 {m1} (0.0)

<RDYIN
,do,n2)>> 1.x

d0 {m0} (1.0)

<RDYIN
,d0,n2)>> 1.x

n2{m2} (1.1)

d1{m0} (0.1)

<> 2.x

n3{m3} (2.1)

<RDYIN
,d2,n4)>> 3.x

d2{m0} (3.0)

<RDYIN,d2,n4)>> 3.x

n4{m4} (3.1)

n5{m5} (7.0) ; (8,0)

d3{m0} (19.0)

<> 4.x

d4{m0} (4.0)

<> 5.x

d6{m0} (5.0)

<> 6.x

n6{m6} (6.0)

d8{m0} (19.1)

<> 7.x

n7{m7} (6.1)

d7{m0} (20.0)

<> 8.x

n8{m8} (8.1) ; (9.1)

<>

d5{m0} (4.1)

<> 9.x

n9{m9} (2.0)

<RDYIN,d9,n10)>> 10.x

d9{m0} (10.0)

<RDYIN,d9,n10)>> 10.x

n10{m10} (10.1)

n11{m11} (5.1)

n12{m12} (20.1)

<> 11.x

n13{m13} (11.0)

<>

n14{m14} (11.1)

n15{m15} (21.0)

d10{m0} (21.1)

<> 12.x

d11{m0} (12.1)

<> 13.x

d12{m0} (13.0)

<> 14.x

n17{m17} (14.1)

<>

n16{m16} (14.0)

d14{m0} (22.0)

<> 15.x

n20{m20} (15.1)

<>

d15{m0} (15.0)

<> 16.x

n21{m21} (16.0)

d16{m0} (22.1)

<> 17.x

n22{m22} (17.1)

<>

n23{m23} (17.0)

<>

n18{m18} (13.1)

d13{m0} (23.0)

<
n19{m19} (18.0)

<>

n24{m24} (12.0); (18.1)

n25{m25} (7.1); (9,0); (16.1)


Особенности работы некоторых узлов устройства

Так как разрабатываемое устройство представляется лишь на функциональном уровне необходимо указать особенности функционирования его некоторых узлов.

1. Для коммутации информационных данных будем использовать многоразрядные мультиплексоры шины. От обычных одноразрядных мультиплексоров они отличаются тем, что по определенному слову на адресных входах они коммутируют сразу несколько информационных сигналов с одного из многоразрядных входов на многоразрядный выход соответственно. По существу они представляют собой несколько обычных одинаковых одноразрядных мультиплексоров, адресные линии которых соответственно соединены. Мультиплексор MUX3 снабжен Z-входом, единичный уровень на котором вводит его в Z-состояние. Это необходимо для организации двунаправленной шины данных.

2. Для хранения данных целесообразно использовать многоразрядные регистры хранения. В задаче перевода дробей удобно хранение совместить с арифметическим сдвигом влево на один разряд. Для хранения данных используются регистры RGA1, RGA2, RGB, RG1-RG6. Регистры RGA1 и RGA2 снабжены также сдвиговым входом M и последовательным входом SI. По сигналу “0” на входе M данные в регистре последовательно сдвигаются влево от входа SI к старшим разрядам. Значение старшего разряда теряется.

3. В обеих задачах необходимо использовать операции суммирования. С этой целью в состав операционного автомата входят два многоразрядных сумматора.

Сумматор SM1 используется в задаче перевода дробей и способен выполнять сложение двух 27-разрядных операндов. Результатом сложения является 28-разрядное число. В условном обозначении сумматора SM1 разряды A0, B0, S0 - старшие, а разряды A26, B26, S27 - младшие.

Сумматор SM2 представляет собой устройство, выполняющее сложение двух 25-разрядных операндов и одноразрядного входа переноса cr. Результатом является также 25-разрядное число. Старший разряд при этом отбрасывается.

4. Шинный инвертор Ix24 служит для инвертирования 24 разрядной шины B.

5. В состав управляющего автомата входит инкрементор, выполненый на базе сумматора SM3. Младшие разряды входов и выхода имеют индекс 0.

6. В схеме контроля данных по модулю три используется специальный сумматор SM4. Он суммирует 12 двухразрядных двоичных чисел по модулю три. Приведем принципиальную схему его фрагмента.




Здесь суммируются только два двоичных числа по модулю три. Подавая результат и следующее число на аналогичную схему получим сумматор трех двоичных двухразрядных чисел по модулю три и т.д.

Описание сигналов управляющего автомата

Для управления работой операционного автомата и схемы контроля данных по модулю три используется 17 управляющих сигналов, вырабатываемых с помощью управляющего автомата с естественной адресацией.

Сигналы A0-A2 обеспечивают коммутацию данных и промежуточных результатов, направляя их в регистры хранения.

Сигнал A3 - управляет коммутацией ответа; “0” - ответ задачи перевода дробей, “1”- ответ задачи о нахождении минимального числа.

Сигнал A4 - управляет коммутацией между операндами и схемой контроля.

Сигнал А5 - управляет сбросом контрольных разрядов d1’d0’.

Сигналы , , - “0” на этих линиях означает разрешение модификации регистров RGA1, RGA2, RGB. “1” запрещает модификацию.

Сигнал - “0” разрешает модификацию выходных регистров RG1-RG6.

Сигнал - “0” разрешает запоминание разрядов d1d0, “1” запрещает их модификацию

Сигнал - “0” разрешает запоминание разрядов d1’d0’, “1” запрещает их модификацию.

Сигнал SANSWR - “1” устанавливает линию в “0”, “0” устанавливает эту линию в “1”

Сигнал SRDY - “1” устанавливет линию в “0”, “0” устанавливает эту линию в “1”

Сигнал - устанавливается в “0” для сброса счетстчика CT.

Сигнал - устанавливается в “0” для разрешения сдвига в регистрах. Действителен при условии, что регистрам разрешена модификация.

Сигнал INC - “1” разрешает увеличение значения счетчика CT на 1 при каждом тактовом импульсе.

Совокупность перечисленных сигналов представляет собой микрокоманду, исполнение которой проходит в три этапа.

1. Подготовка адреса микрокоманды. Это может быть адрес следующей микрокоманды или адрес некоторой другой микрокоманды, если имел место переход (условный или безусловный).

2. Подготовка самой микрокоманды. Микрокоманда запоминается в регистре микрокоманд RG10.

3. Исполнение микрокоманды. Сигналы управления передаются в операционный автомат и воздействуют на изменение его памяти и вычисление предикатов.

Выполняя один из этих этапов для любой микрокоманды, управляющий автомат одновременно выполняет предыдущий этап для следующей микрокоманды. Таким образом, операционный автомат никогда не “простаивает”, за исключением тех случаев, когда происходит условный или безусловный переход. На время перехода регистру микрокоманд запрещается модификация, а операционному автомату прекращается подача синхронизирующих импульсов, что способствует сохранению значений предиката и успешному выполнению перехода. После подготовки новой микрокоманды в RG10 синхронизация восстанавливается.


Таблица заполнения управляющей памяти

Для кодирования адреса понадобится 6 разрядов.


адрес


Y


H


S


e

000000

m1

0001

00001

x

000001

m0

0010

00010

x

000010

m0

0001

00001

x

000011

m2

0000

00000

1

000100

m9

0001

01010

x

000101

m3

0001

00011

x

000110

m0

0001

00011

x

000111

m4

0000

00111

0

001000

m0

0101

00101

x

001001

m0

0110

01001

x

001010

m0










001011

m11










001100

m6










001101

m7










001110

m5










001111

m25










010000

m5










010001

m8










010010

m25










010011

m8










010100

m0










010101

m10










010110

m13










010111

m14










011000

m24










011001

m0










011010

m0










011011

m18










011100

m16










011101

m17










011110

m0










011111

m20










100000

m21










100001

m25










100010

m23










100011

m22










100100

m19










100101

m24










100110

m0










100111

m0










101000

m0










101001

m12










101010

m15










101011

m0










101100

m0










101101

m0










101110

m0












Пример выполнения задачи


Рассмотрим пример в котором при при сложении двух чисел с пла-

вающей точкой в дополнительном коде произошло нарушение

нормализации вправо.


Первое слагаемое хранится в памяти так :

1 10001001011111001100001 0 0111111

мантисса порядок


Второе слагаемое хранится в памяти следующим образом :


1 11100100000111100000101 0 0111110

мантисса порядок

Находим разность между порядками первого и второго слагаемого

(вычисления производим в дополнительном модифицированном коде)

Порядок второго слагаемого меньше первого на число 0 0000001

00 0111111

+

11 1000010

00 0000001


Следовательно необходимо денормализовать второе слагаемое так

чтобы его порядок увеличить на 0 0000001 .


После выравнивания порядков производим сложение (в модифицированном

дополнительном коде) :


11 10001001011111001100001 0 0111111

+

11 01110010000011110000010 0 0111111

.........................................................................................

10 11111011100010111100011 0 0111111


Видно , что после сложения произошло нарушение нормализации

мантиссы . Необходима нормализация.


После нормализации получим :


1 011111011100010111100011 0 0111111


Математические обоснования используемых алгоритмов


Рассмотрим принцип выполнения автоматом задач, указанных в задании.


1. Сложение и вычитание целых в дополнительном коде


Задача сложения и вычитания целых чисел, представленных в дополнительном коде, реализуется в используемом алгоритме в блоке сложения и вычитания мантисс чисел, представленных в дополнительном коде с плавающей точкой ( см. пункт 2 ).


2. Сложение и вычитание в кодах с плавающей точкой


Выполнение сложения или вычитания чисел с плавающей точкой выполняется в несколько этапов:

1) Выравнивание порядков.

Для того чтобы выравнять порядки двух чисел , нужно найти разность порядков и затем сдвинуть мантиссу числа с меньшим порядком на столько разрядов вправо, какова абсолютная величина разности порядков. Сдвигать влево мантиссу числа с большим порядком , нельзя ,

так при этом за пределы регистра уходили бы старшие разряды; потеря младших разрядов при сдвиге вправо не играет такой роли и

может быть учтена при округлении.

2) Сложение и вычитание мантисс.

После того как порядки выравнены можно произвести сложение или

вычитание мантисс.

3) Нормализация полученной суммы ( разности).

Нормализация суммы(разности) - производится в случае невыполнения условия 1>q>1/2( q- мантисса результата), при этом, если q>1, при этом порядок увеличивается на единицу, а мантисса сдвигается на один двоичный разряд вправо, что дает q<1. Если q<1/2, то мантисса результата сдвигается на разряд влево при одновременном уменьшении порядка результата на 1. Эти операции производятся до тех пор пока не станет выполняться условие q>1/2(т.е. пока старший разряд мантиссы результата не станет “1”).

При получении положительного переполнения порядка формируется сигнал прерывания из-за переполнения порядка.При получении отрицательного переполнения порядка формируется нулевой результат.




Похожие:

Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
1. /Лысиков Б.Г.Арифметические и логические основы цифровых автоматов.1980.djvu
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
1. /Савельев А.Я.Арифметические и логические основы цифровых автоматов.1980.djvu
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
1. /Теория автоматов.doc
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДисциплины «Теория перевода» для отделения «Перевод и переводоведение»
Целью курса является дать студентам представление о том, что является предметом и объектом вышеназванной теории, какие лингвистические...
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
1. /Джон фон Нейман. Теория самовоспроизводящихся автоматов.djvu
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
1. /Джон фон Нейман. Теория самовоспроизводящихся автоматов.djvu
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconПрограмма курса «корпоративные финансы». Автор : Никитушкина И. В., доцент кафедры финансов и кредита. Продолжительность курса : 36 часов
Мгу им. М. В. Ломоносова. Данный курс является логическим продолжением курса «Теория финансов» и носит прикладной характер
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
...
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
1. /Гилмор Р. Прикладная теория катастроф. Том 1.djvu
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
...
Проектирование вычислительного устройства (на основе курса “Прикладная теория цифровых автоматов”) iconДокументы
...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов