Ф ЕДЕР АЛЬ Н ОЕ АГЕНТСТВО П О ОБ Р АЗОВ АНИ Ю М ОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (государственный технический университет) Кафедра 304 (вычислительные машины, системы и сети) Курсовая работа по курсу «Организация ЭВМ и систем» Отчёт по работе №4 . Разработка алгоритма и микропрограммы (наименование работы) выполнения операций сложения и вычитания Вариант задания №2 . Курсовую работу выполнил: студент гр.13-401 Медведев Алексей Анатольевич (должность) (Ф. И. О.) . (подпись) Курсовую работу принял: Мурсенков Павел Александрович (Ф. И. О.) . (подпись) «____» ________________ 2010 г. (дата приёма) Оглавление Задание ............................................................................................................. 3 Теория ............................................................................................................... 4 Словесное описание алгоритма ...................................................................... 5 Структурная схема АЛУ .................................................................................... 6 Блок-схема алгоритма ...................................................................................... 7 Микропрограмма ............................................................................................. 8 Граф переходов микропрограммы.................................................................. 9 Среднее время выполнения микропрограммы ............................................. 9 Список литературы ........................................................................................... 10 2 Задание Разработать операционное устройство, выполняющее операции сложения и вычитания. Дополнительные требования: 1. Отрицательные числа представить в модифицированном дополнительном коде 2. 16-ти разрядные числа 3. Дробная арифметика 3 Теория В современных ЭВМ используются два варианта представления чисел с фиксированной запятой: а) все числа по модулю меньше 1 – запятая фиксирована перед старшим разрядом дроби, б) все числа целые – запятая фиксирована после младшего разряда числа. Обычно в АЛУ операция алгебраического сложения сводится к алгебраическому сложению кодов чисел путем применения инверсных кодов – дополнительного или обратного для представления отрицательных чисел. Обратный код имеет два представления нуля, что затрудняет анализ результата операции поэтому чаще используют дополнительный код. Алгоритмы выполнения в АЛУ арифметических операций зависят от того, хранятся ли в памяти ЭВМ отрицательные числа в прямом или дополнительном (обратном) коде. В последнем случае сокращается время выполнения операции за счет исключения операции преобразования получаемого в АЛУ дополнительного (обратного) кода отрицательного результата в прямой код. При выполнении операции сложения положительные слагаемые представляются в прямом, а отрицательные – в дополнительном коде и производится сложение двоичных кодов, включая разряды знаков. Операция алгебраического вычитания может быть сведена к изменению знака вычитаемого числа и операции сложения. Изменению знака соответствует следующая операция: приняты в регистр Рг.2 код числа передается инверсно на Рг.В и при сложении осуществляется подсуммирование 1 в младший разряд сумматора. Для получения признака переполнения разрядной сетки применяется модифицированный прямой, дополнительный и обратный коды. Для представления знака в этих кодах используют два разряда. При этом знак плюс обозначается 00, а знак минус – 11. При алгебраическом сложении на переполнение разрядной сетки указывает несовпадение цифр в знаковых разрядах. Комбинации 01 в знаковых разрядах соответствует положительное переполнение, а комбинации 10 – отрицательное переполнение. 4 Словесное описание алгоритма 1. Определить какую операцию следует выполнять. 2. Если сложение, то оставляем числа без изменений, а если вычитание – берется инверсия вычитаемого числа и при сложении осуществляется подсуммирование 1. 3. Осуществляется сложение двух кодов. 4. Если в знаковых разрядах будут разные цифры, то устанавливается флаг переполнения. 5 Структурная схема АЛУ ШИВх Y1 Y2 0 f Рг. 2 15 Y3 Рг. A 0 Y4 0 15 Рг. B 15 Y5 0 15 0 15 Тр. Уст. 0 C0 Уст. 1 См 0 15 Y7 0 1 2 3 . . . . . . . . 15 + 1 0 Рг.См Y6 15 0 1 & Y8 1 OVR ШИВых 6 Блок-схема алгоритма Начало Y2 Рг. А := ШИВх МК1 Y1 Рг. 2 := ШИВх нет f = 0? МК2 Y3 Y5 да f f Рг. B := Рг. 2 Тр. C0 = 0 МК3 Y7 Y4 Y6 Рг. B := Инв( Рг.2 ) Тр. C0 = 1 МК6 Рг.См := См МК4 Y8 ШИВых := Рг.См Конец МК5 7 Микропрограмма МК1: Y2 Рг. А := ШИВх МК2: Y1 Рг. 2 := ШИВх Идти к МК6, если f = 1 МК3: Y3 Y5 Рг. B := Рг. 2 Тр. C0 := 0 МК4: Y7 Рг. См := См МК5: Y8 ШИВых := Рг. См Конец МК6: Y3 Y5 Рг. B := Инв( Рг. 2 ) Тр. C0 := 1 Идти к МК4 8 Граф переходов микропрограммы 1 МК1 МК2 1-p1 p1 МК3 МК6 1 1 МК5 МК4 1 Среднее время выполнения микропрограммы по теории вероятности 𝑇МП = 𝜏МК1 + 𝜏МК2 + 𝑝1 ∙ 𝜏МК6 + (1 − 𝑝1 ) ∙ 𝜏МК3 + 𝜏МК4 + 𝜏МК5 Пусть 𝑝1 = 0,5, а 𝜏МК = 𝜏. Тогда: 𝑻МП = 4 𝜏 + 0,5 𝜏 + 0,5 𝜏 = 𝟓 𝝉 9 Список литературы 1. Каган Б.М. Электронные вычислительные машины и системы. – М.: Энергия, 1979. 2. Савельев А. Я. Прикладная теория цифровых автоматов. – М.: Высшая школа 10