Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Деление без восстановления остатка





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

.

При делении без восстановления остатка операция сложения не выполняется. Вместо этого запоминается необходимость замены в следующем цикле операции вычитания на сложение. Текущий i-ый цикл заканчивается сдвигом влево, и в аккумуляторе получается число . Если в этом цикле получен отрицательный остаток, то в следующем цикле вместо вычитания делается сложение, в результате чего в аккумуляторе оказывается число

.

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

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

Числовой пример деления без восстановления остатка приведен в таблице 1. Показан только процесс обработки модулей. | A | = 33; | В | = 5.

 

Таблица 1

Схема микропрограммы деления без восстановления остатка показана на рис.1

Рис. 2

Из сравнения микропрограмм на рисунках 1 и 2 еще не видно преимуществ второго варианта. Напротив, схема на рис. 2 сложнее, а что касается числа последовательно выполняемых в каждом цикле операций, то оно в обоих вариантах одинаково и равно трем. Однако можно слегка изменить схему второго алгоритма, совместив во времени запись в младший бит частного и установку триггера Т со сдвигом А и С и с декрементом счетчика. В качестве триггера Т при этом целесообразно использовать младший разряд частного (только теперь нулевое значение С [0] нужно интерпретировать, как единичное состояние триггера Т).

С учетом сказанного скорость выполнения деления во втором варианте получается выше примерно на 30%. Это настолько чувствительный выигрыш, что на практике применяется только вариант без восстановления остатка.

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

 

Date: 2015-09-19; view: 1778; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.008 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию