Лабораторная работа 4
ИЗУЧЕНИЕ ПРИНЦИПОВ ОРГАНИЗАЦИИ АРИФМЕТИКО-ЛОГИЧЕСКИХ УСТРОЙСТВ. СТРУКТУРА АЛУ ДЛЯ ДЕЛЕНИЯ ЧИСЕЛ С ФИКСИРО-
ВАННОЙ ЗАПЯТОЙ
Ц е л ь р а б о т ы: Изучение принципов построения и функционирования АЛУ для деления чисел с фиксированной запятой.
В в е д е н и е
Деление в ЭВМ обычно сводится к выполнению последовательности вычитаний делителя сначала из делимого, а затем из образующихся в процессе деления частичных остатков и сдвига частичных остатков.
Алгоритм деления аналогичен алгоритму деления при ручном счете. Рассмотрим особенности деления на примере деления целых чисел.
Пусть Z=X/Y где X-делимое, представленное обычно двойным словом (2n-1 цифровых разрядов), Y-делитель и Z-частное, представленное словами, содержащими n-1 цифровых разрядов.
Так как частное Z-слово, размещаемое в n-разрядном регистре, то должно иметь место неравество
n-1 n-1
|Z|<2 . Это возможно при условии (|Х |*2 - |Y|)<0
Поэтому перед выполнением операций деления производится так называемое "пробное" вычитание: из делимого X вычитают делитель Y, сдвинутый на (n-1) разрядов влево, а при неподвижном делителе сдвигается делимое на один разряд влево.
Если результат "пробного" вычитания больше 0, то n-1
|Z|>=2 и деление невозможно, если меньше 0, то можно
выполнить деление.
Реализовать деление можно двумя основными способами:
1.Деление с неподвижным делимым и сдвигаемым вправо делителем.
2.Деление с неподвижным делителем и сдвигаемым влево делимым.
Второй способ широко используется в арифметико-логических устройствах.
В этом случае возможно два алгоритма:
- алгоритм деления с неподвижным делителем и восстановлением остатка,
- алгоритм деления с неподвижным делителем без восстановления остатка. Последний алгоритм используется наиболее часто и состоит
из следующих этапов:
1.Берутся модули от делимого и делителя.
2.Исходное значение частичного остатка полагается равным старшим разрядам делимого.
3.Частичный остаток удваивается путем сдвига на один разряд влево, при этом в освобождающийся при сдвиге младший разряд частичного остатка заносится очередная цифра делимого.
4.Из сдвинутого частичного остатка вычитается делитель, если остаток положителен ,или к сдвинутому частичному остатку прибавляется делитель, если остаток отрицателен.
5.Очередная цифра модуля частного равна 1, если результат вычитания положителен, и 0, если отрицателен.
6.Пункты 3-5 последовательно выполняются для получения всех цифр модуля частного.
7.Знак частного-"плюс", если знаки делимого и делителя одинаковы, и "минус" в противном случае. Деление без восстановления остатка всегда требует для получения одной цифры частного только сложения или вычитания и сдвига частичного остатка . После завершения всех циклов деления выдается результат, при этом если остаток отрицателен, то он восстанавливается путем подсуммирования Y.
Структура АЛУ для выполнения деления приведена на рис.3.
В состав АЛУ входят: входной регистр PrY (хранит делитель-неподвижный); многофункциональный регистр PrX, который является входным регистром сумматора, входным регистром АЛУ, хранит первоначальное делимое, а затем частичны
В начальный момент с шины данных делимое и делитель поступают в соответствующие им регистры PrX и PrY. Затем из делимого в PrX вычитается делитель PrY (при этом начальное значение частичного остатка равно делимому); результат пересылается в PrCm, а из PrCm -в PrX. Таким образом остаток получает новое значение, а счетчик циклов сбрасывается в 0. На этом заканчивается установка исходного состояния.
По знаку остатка в PrX определяется очередная цифра частного PrZ, если PrX>=0, то PrZ [СчЦ]:=1, иначе - PrZ[СчЦ]:=0. В PrCm поступает сдвинутый на разряд влево PrX (остаток удваивается), затем содержимое PrCm пересылается в PrX.
Выполняется вычитание (прибавление) делителя. Из сумматора разность (сумма) поступает в PrCm и пересылается в PrX. На этом шаге заканчиваеся вычисление нового остатка.
Содержимое счетчика циклов увеличивается на единицу. Если СчЦ=n-1, то вычисления заканчиваются, в противном случае - повторяются.
В ы п о л н е н и е
л а б о р а т о р н о й р а б о т ы
Структура АЛУ для деления чисел с фиксированной запятой и алгоритм его функционирования моделируется с помощью программы, реализованной на языке Турбо-Паскаль-7.
Работа с программой осуществляется в интерактивном режиме. После запуска программы division.exe на экране дисплея появляется инструкция для пользователя, согласно которой и выполняется лабораторная работа. Текст описания лабораторной работы хранится в файле ....
Выполнение изучаемой операции АЛУ осуществляется по шагам и результат каждого шага отражается на экране в виде кодов содержимого соответсвующего регистров, промежуточных и конечных результатов. В процессе выполнения лабораторной работы необходимо зафиксировать по шагам состояние всех элементов АЛУ, индицируемые соответствующими кодами.
Работу АЛУ необходимо изучить для различных значений операндов и различных сочетаний их знаков.
По результатам работы необходимо построить блок-схему микропрограммы работы АЛУ.
С о д е р ж а н и е о т ч е т а
1.Описание работы АЛУ.
2.Блок-схема микропрграммы выполнения операций деления для чисел с фиксированной запятой.
К о н т р о л ь н ы е в о п р о с ы
1.Укажите недостатки алгоритма деления с неподвижным делимым и сдвигаемым вправо делителем.
2.Укажите недостатки алгоритма деления с восстановлением остатка.
3.Какие операции влияют на скорость выполнения деления?
4.Как выполныется деление с плавающей запятой?
5.Какое деление требует большего времени - чисел с фиксированной запятой или чисел с плавающей запятой?
Л и т е р а т у р а
1.Каган Б.М. Электронные вычислительные машины и системы.-
М.: Энергоатомиздат, 1985-552 с.
2.Нешумова К.А. Электронные вычислительные машины и системы.-М.: Высшая школа, 1989-336 с.
3.Соловьев Г.Н. Арифметические устройства ЭВМ - М.:Энергия, 1978-176 с.
4.Чернов В.Г. Математические и логические основы вычислительных машин. Методические указания к самостоятельной работе студентов.-ВПИ, 1992-47 с.
5.Калабеков Б.А. Микропрцессоры и их применения в системах передачи и обработки сигналов - м.: Радио и связь, 1988.