Справочник от Автор24
Поделись лекцией за скидку на Автор24

Основы теории построения арифметических процессоров

  • 👀 214 просмотров
  • 📌 191 загрузка
Выбери формат для чтения
Статья: Основы теории построения арифметических процессоров
Найди решение своей задачи среди 1 000 000 ответов
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Основы теории построения арифметических процессоров» pdf
2. ОСНОВЫ ТЕОРИИ ПОСТРОЕНИЯ АРИФМЕТИЧЕСКИХ ПРОЦЕССОРОВ 2.1. Логические элементы Техническое устройство, реализующее логическую функцию, может рассматриваться просто как логический элемент, внутренняя структура которого не конкретизируется. На принципиальных и функциональных схемах логический элемент ИЛИ изображается прямоугольником с единицей в левом верхнем углу. A 1 f(A,B)=A v B B Рис.2.1. Логический элемент «ИЛИ» Логический элемент ИЛИ предназначен для «вычисления» значения логического сложения A  B . Логический элемент И предназначен для «вычисления» значения логического умножения A & B  A  B . Изображение логических элементов И на функциональных схемах выглядит следующим образом. A & f(A,B)=A & B B Рис.2.2. Логический элемент «И» Логические элементы НЕ изображаются с кружком в выходной цепи. 1 f(A)=A A Рис.2.3. Логический элемент «НЕ» Сигналы, вырабатываемые одним логическим элементом, можно подавать на вход другого элемента. Это даёт возможность образовывать цепочки из отдельных логических элементов. Например: A 1 1 f(A,B)=A v B B Рис.1.4. Цепочка из логических элементов Каждую такую цепочку называют логическим устройством, а соответствующую схему - функциональной схемой. Функциональную схему, которую полностью можно описать таблицей истинности, называют комбинационной логической схемой (КЛС). КЛС - это схема, в которой значения входных переменных в текущий момент времени полностью определяют значения выходных переменных. КЛС строятся из элементарных логических элементов И, ИЛИ, НЕ, и более сложных элементов И-НЕ, ИЛИ-НЕ, соединяя их так, как это следует из логической функции. КЛС с n выходами описываются системой из n логических функций, т.е. математической моделью комбинационной схемы является система булевых функций. 2.2. Аппаратная поддержка операции сложения Операция сложения в двоичной системе счисления (с/с) эффективно реализуема с использованием комбинационных схем, в качестве математического аппарата моделирования которых используется двузначная булева алгебра. Широко используется одноразрядный двоичный сумматор, условное обозначение которого приведено на рис. 2.5. ai bi SM pi-1 Si pi Рис. 2.5. Одноразрядный сумматор На рис. 2.5. используются следующие обозначения: ai , bi – цифры i -го разряда слагаемых А и В; Si - сумма i -го разряда; pi 1 - перенос из (i  1) -го разряда (из предыдущего разряда); pi - перенос из i -го разряда (в следующий разряд). Математическая модель одноразрядного сумматора представляет собой следующую систему булевых функций:  pi  ai  bi  ai  pi 1  bi  pi 1;  S i  (ai  bi  pi 1 )  pi  ai  bi  pi 1. (2.1) Таблица истинности модели одноразрядного сумматора представлена в таблице 2.1. Набор функциональных элементов, моделирующих булевы функции дизъюнкции, конъюнкции и отрицания (И, ИЛИ, НЕ), называется набором элементов булева базиса. Булев базис И-ИЛИ-НЕ избыточен. Таблица 2.1 ai bi pi 1 pi Si 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Существуют неизбыточные базисы: И-НЕ, ИЛИ-НЕ. Отображая функции (2.1) элементами булева базиса, построим функциональную схему одноразрядного сумматора (рис. 2.6), которая представляет КЛС, т.е. схему без элементов памяти. Существуют два типа сумматоров: - накапливающий, - комбинационный параллельный. Накапливающий сумматор. Схема накапливающего сумматора приведена на рис. 2.7. На этой схеме (рис. 2.7) условные графические символы, обозначенные как А, В, A  B , представляют собой сдвигающие регистры соответственно для хранения 𝑛- разрядных исходных чисел А и В и суммы этих чисел A  B . Регистры имеют возможность сдвигать свое содержимое на один разряд вправо при воздействии синхросигнала С. Графический символ, обозначенный как Т, представляет собой триггер, который служит для хранения одного бита. Причем триггер запоминает значение, которое подано на его вход, только при воздействии синхросигнала С. ai bi pi-1 & 1 & pi 1 & & 1 1 & Si Рис. 2.6. КЛС одноразрядного сумматора A B ai bi pi-1 C SM ai+bi pi A+B D T C Рис. 2.7. Схема накапливающего сумматора Работа приведенной схемы проходит следующим образом. В момент времени t  0 в регистры А и В загружаются исходные двоичные числа, регистр A  B и триггер Т сбрасываются в 0. В момент времени t  1 на вход сумматора подаются младшие разряды чисел А и В, а с выхода триггера Т значение 0. Происходит сложение, и результат суммирования поступает на вход регистра A  B , а значение переноса на вход триггера Т. В следующий момент времени по сигналу С происходит сдвиг всех регистров вправо на один разряд и запоминание в триггере значение переноса. На вход сумматора поступают следующие разряды чисел А и В, а также перенос от сложения предыдущего разряда. При этом результат сложения предыдущих разрядов запомнены в регистре A  B , а старший его разряд готов для приема результата сложения следующих разрядов А и В. Время сложения nразрядных чисел можно оценить как tсл  n  tслSM где n – количество разрядов; tслSM - время сложения одноразрядного сумматора. Комбинационный параллельный сумматор. В отличие от накапливающего в комбинационном параллельном сумматоре сложение происходит одновременно для всех разрядов, и используется n одноразрядных сумматоров. Схема комбинационного параллельного сумматора приведена на рис. 2.8. a0 b0 S0 SM p0 a1 b1 S1 bn-1 SM p1 an-1 SM p2 1 Sn-1 pn-1 pn n-1 Рис.2.8. Схема n-разрядного комбинационного параллельного сумматора 2.3. Ускорение операции сложения Рассмотрим ускорение операции сложения на примере метода с поэтапном получением частичных сумм и переносов с последующей их отдельной обработкой. Этот метод иллюстрируется примером. Пример. Сложить числа А и В. А=1001111, В=101010. частичная сумма 1 частичные переносы 1 частичная сумма 2 частичные переносы 2 частичная сумма 3 частичные переносы 3 Окончательная сумма  1001111  1100101  1110001  1111001 0101010 0010100 0001000 0000000 1111001 Процесс суммирования прекращается при достижении нулевых переносов. 2.4. Варианты схем умножения Операция умножения сводится к элементарным операциям сложения и сдвига. В зависимости от того, какой объект сдвигается, и с какого разряда начинается умножение, различают четыре схемы умножения, которые приведены ниже на рис. 2.9. На рис. 2.9. а) - г) символ означает наличие клапана, который пропускает значение текущего множимого, если на его управляющий вход подана 1. В противном случае клапан закрыт. Т.е., если на управляющий вход клапана подаётся: 1, то клапан открывается, и содержимое регистра «Множимое» суммируется с текущим содержимым сумматора SM; 0, клапан закрыт, и содержимое регистра «Множимое» не поступает в сумматор SM. Умножение можно проводить, начиная или с младшего разряда множителя, или со старшего разряда множителя. сдвиг 1 n Множитель Множитель SM SM 2n 1 2n 1 сдвиг сдвиг Множимое 2n 1 2n 1 б) 1 2 2 1 n 1 n Множитель Множитель SM SM сдвиг 1 2n 1 1 n 1 n в) 1 2 1 сдвиг сдвиг 2n Множимое сдвиг Множимое а) 1 2 2 сдвиг 1 n Множимое г) 1 2 1 Рис. 2.9. Схемы умножения а) схема умножения, начиная с младшего множимого; б) схема умножения, начиная со старшего множимого; в) схема умножения, начиная с младшего частичных сумм произведения (сумматора); г) схема умножения, начиная со старшего частичных сумм произведения (сумматора). разряда и со сдвигом разряда и со сдвигом разряда и со сдвигом разряда и со сдвигом Перед выполнением операции умножения ( t  0 ) в регистры «Множимое» и «Множитель» загружаются сомножители, сумматор SM обнуляется. В момент времени t  1 на управляющий вход клапана подаётся значение разряда множителя (младшего рис. 2.1 а, в или старшего рис. 2.1 б, г). Далее происходят действия, описанные выше, и подаётся сигнал сдвига. По сигналу сдвига происходит сдвиг множителя вправо для схем рис. 2.1 а, в, и влево для схем рис. 2.1 б, г. Одновременно происходит сдвиг множимого для схем рис. 2.9 а, б, текущего содержимого сумматора SM для схем рис. 2.9 в, г. На рис. 2.9 около каждого графического символа проставлена разрядность. Мнемоника, например, 1 2 2 означает, что в схеме используется множимое разрядностью n и по сигналу сдвига сдвигается вправо на один разряд, SM имеет разрядность 2n, множитель имеет разрядность 2n и по сигналу сдвига сдвигается влево на один разряд. Знак произведения определяется как функция «ИСКЛЮЧАЮЩЕЕ ИЛИ» от знаков сомножителей, т.е.: Зн.A B  Зн.A  Зн.B . 2.5. Ускорение операции умножения Ускорить операцию умножения можно за счет уменьшения количества слагаемых, т.е. единиц в множителе. Рассмотрим двоичную с/с с симметричным основанием. Алфавит такой с/с имеет вид:   A   1, 0,1  1 , 0,1 . Если задано двоичное число с натуральным основанием, которое состоит из  11 , то в двоичной с/с с симметричным основанием его k единиц, x  1111    k можно представить как число x  1000     0 1 , содержащее k  1 нулей. k 1  Справедливо соотношение: 111  1  k k 1 0 1 .  2i  2 k  20  100    i 0 k Таким образом, используя двоичную с/с с симметричным основанием, можно сократить количество единиц в последовательности единиц, а тем самым сократить количество операций сложения и сдвига. На этом построен метод анализа двух разрядов множителя, который и рассматривается ниже. Рассмотрим метод умножения, начиная с младшего разряда и со сдвигом частичных сумм произведения. При этом используется дополнительный или обратный код чисел. Для каждой комбинации двух двоичных разрядов введем правила, определяющие действия в каждом конкретном случае (табл. 2.2). Таблица 2.2 Правила преобразования пар разрядов множителя и действия на сумматоре Анализируемые Преобразование пары разрядов разрядов множителя 00 Не преобразуется 01 Не преобразуется Действия при анализе во время сложения на сумматоре SM Сдвиг на 2 разряда вправо содержимого 2 сумматора: SМ . Содержимое SM складывается с множимым x1 , затем результат сложения сдвигается на 2 разряда вправо: 1. SM  SM   x1 о/д ; 2 2. SМ . 10 Не преобразуется Содержимое SM складывается с множимым x1 , сдвинутым на 1 разряд влево, затем результат сложения сдвигается на 2 разряда вправо: 1  о/д ; 1. SМ  SМ  x1 2 11 Заменяется на 10 1 , на место анализируемой пары 2. SМ . Содержимое SM складывается с множимым - x1 в заданном обратном (о) или дополнительном (д) коде, затем результат сложения сдвигается на 2 записывается 0 1 , а 1 суммируется со следующей (старшей) анализируемой парой разрядов разряда вправо: 1. SМ  SМ  x1  о/д ; 2 2. SМ . Поясним действия, записанные в табл. 2.2. 00: преобразование пары разрядов не происходит, сложение не производится, частичная сумма произведения (содержимое SM) сдвигается вправо на два разряда; 01: преобразование пары разрядов не происходит, производится суммирование текущей частичной суммы произведения (содержимого SM) с текущем значением множимого, затем частичная сумма произведения (содержимое SM) сдвигается вправо на два разряда; 10: преобразование пары разрядов не происходит, множимое сдвигается вправо на один разряд, производится суммирование текущей частичной суммы произведения (содержимого SM) со сдвинутым значением множимого, затем частичная сумма произведения (содержимое SM) сдвигается вправо на два разряда; 11: проводится преобразование вида 11 101 , осуществляется перенос единицы в старшую пару разрядов множителя, текущая пара есть 0 1 , производится операция вычитания текущего значения множимого из текущего значения частичной суммы произведения (из содержимого SM), т.е. сложение кодов. Пример 1. Умножить число x1 на число x2 , используя метод анализа двух разрядов множителя. При вычислениях будет использован обратный код. x1  10110111011 - множимое; x2  1110000011 - множитель. Решение. Работа происходит с модулями чисел, используются модифицированные коды. 1) Знак результата: Зн.x1  Зн.x 2  1  0  1 . 2) Подготовка операндов. Для выполнения работ на сумматоре потребуются преобразования:  x1 п   x1 o  00.10110111011 - используется при арифметическом сложении для пары 01;  x1 o  11.0100100010 0 - используется при замене вычитания сложением в обратном коде, для пары 0 1 ; 1  x1 o  01.01101110110 - используется для пары 10.  x2 о  00.1110000011 001110 00 0011 Делим начиная на пары с младшего переписываем, правила разрядов, и используя преобразования разрядов.  x2 о,101  01  0110  00  01  01 * * Пары, помеченные «*», ранее содержали комбинацию «00» и были преобразованы: +1 переноса, появившаяся при анализе и преобразовании предыдущей пары 11  101 , т.е. пара 0 1 записывается вместо пары 11, а 1 суммируется со следующей анализируемой парой разрядов. 3) Выполнение действий на сумматоре В начальный момент времени сумматор обнуляется.  00.00000000000 SM  0 11.01001000100 Анализ пары 01 11.01001000100 SМ  SМ   x1 o 11.1101001000100 SM 2  00.10110111011 00.1000100110000  00.0000000000001 00.1000100110001 Анализ пары 01 SМ  SМ   x1 о цикл. перенос 2 00.001000100110001 SM 00.00001000100110001 Анализ пары 00 : SM  01.01101110110 2 Анализ пары 10 1 01.01110111010110001 SМ  SМ   x1 o 2  00.0101110111010110001 11.01001000100 11.1010011001010110001 SM Анализ пары 01 SМ  SМ   x1 o 2 11.111010011001010110001  00.10110111011 00.101000001111010110001  00.000000000000000000001 SM Анализ пары 01 SМ  SМ   x1 о цикл. перенос 00.101000001111010110010 2 00.00101000001111010110010 SM Ответ: x1  x2  101000001111010110010 Пример 2. Умножить число x1 на x2 , используя метод анализа двух разрядов множителя. При вычислениях будет использован дополнительный код. x1  0,10011001 - множимое; x2  0,10110110 - множитель. 1) Знак результата: Зн.x1  Зн.x2  0  0  0 . 2) Подготовка операндов  x1 п   x1 д  00.10011001 - используется при арифметическом сложении для пары 01;  x1 д  11.01100111 - используется при замене вычитания сложением в обратном коде, для пары 0 1 ; 1  x1 д  01.00110010 - используется для пары 10.  x2 д  00.10110110  00  01  .10  11  10 . Проведем анализ пар разрядов множителя x2 в дополнительном коде, применив двоичную с/с с симметричным основанием:  x2 д,101  01. 01 01 0110 . Анализ пар разрядов множителя проводится, начиная с младших разрядов. 3) Выполнение действий на сумматоре В начальный момент времени сумматор обнуляется.  00.00000000 SМ  0 01.00110010 Анализ пары 10 1 01.00110010 SМ  SМ   x1 д 00.0100110010 SM 2  00.10011001 Анализ пары 01 00.1110010110 SМ  SМ   x1 д 00.001110010110 SM 11.01100111 Анализ пары 01 2  11.101000000110 SМ  SМ   x1 д 2 11.11101000000110 11.01100111 11.01001111000110 11.1101001111000110 00.10011001 00.0110110011000110 SM Анализ пары 01 SМ  SМ   x1 д 2 SM Анализ пары 01 SМ  SМ   x1 д 2 00.000110110011000110 SM Результат: x1  x2  0,011011001100011. 2.6. Умножение кодов В случае, когда числа в ЭВМ представлены в дополнительном или обратном коде, необходимо операции производить в этом же коде. Правило 1. Произведение дополнительных кодов сомножителей равно дополнительному коду результата только в случае положительного множителя. В этом случае умножение сводится к анализу разрядов множителя, получению частичных сумм и сдвигу. Пример. Умножить целые числа x1  10101 и x2  10011, используя дополнительный код. Сдвигается SM. x1 д  11.01011 x2 д  00.10011 Сумматор Множитель  00.000000000 11.010110000 11.010110000 10011  11.101011000 11.010110000 11.000001000 01001 11.100000100 11.110000010 11.111000001 00100 00010 00001  11.010110000 11.001110001 x1  x2 д  11.001110001 x1  x2  110001111 Правило 2. Произведение дополнительных кодов при отрицательном множителе получается путем прибавления дополнения множимого к произведению дополнительных кодов. Пример. Найти произведение x1  0,10111 и x2  0,11001, используя дополнительный код. x1 д  11.01001 x2 д  11.00111 Сумматор  00.0000000000000 Множитель 00111 11.0100100000000 11.0100100000000  11.1010010000000 10011 11.0100100000000 10.1110110000000  11.0111011000000 11001 11.0100100000000 10.1011111000000  11.0101111100000 11100 11.1010111110000 11110 11.1101011111000 11111 11.0100100000000 11.0001111111000 x1  x2 д  11.0001111111000 x1  x2  0,1110000001 Умножение чисел в обратном коде подчиняется тем же правилам, за исключением того, что при отрицательном множителе к произведению обратных кодов прибавляется код, полученный от обращения обратного кода множимого. 2.7. Особенности выполнения операции деления Операция деления является приближенной операцией. Операция деления сводится к элементарным операциям: - вычитания; - анализу остатка ∆ от вычитания; - сдвигу. Анализ остатка ∆ от вычитания проводится с целью определения значения текущего разряда частного по правилу: - если ∆0 , то в частное записывается значение текущего разряда 1; - если ∆ 0 , то в частное записывается значение текущего разряда 0. Сдвиг проводится или делителя, или остатка от вычитания. Поэтому различают две схемы сдвига (рис. 2.10): а) сдвиг делителя 2n б) сдвиг остатка 2n 1 Делитель Делитель Зн. 1 Зн. SM SM 2n 1 2n 1 n 1 n 1 Частное -1 Частное -1 C C Рис. 2.10. Схемы деления Сдвиг происходит по сигналу С. Деление прекращается: а) при получении нулевого делителя или остатка; б) при заполнении всех разрядов частного. Различают два подхода к делению: 1) с восстановлением остатка; 2) без восстановления остатка. При использовании формы с фиксированной запятой перед старшим разрядом должно выполняться требование: Делитель  Делимое . Знак частного определяется функцией «ИСКЛЮЧАЮЩЕЕ ИЛИ» от знаковых разрядов делимого и делителя. 2.8. Деление с восстановлением остатка При выполнении деления с восстановлением остатка, как со сдвигом остатка, так и со сдвигом делителя, восстановление остатка производится только в случае получения отрицательного значения текущего остатка. Процедура восстановления остатка сводится к сложению текущего значения остатка с текущим значением делителя. 2.8.1 Деление с восстановлением остатка и со сдвигом остатка Правило. 1) Из кода делимого вычитается код делителя. 2) Анализируется знак результата (остатка): - если знак равен 0, то в текущий разряд частного записывается 1; - если знак равен 1, то в частное записывается 0 и производится восстановление остатка, т.е. к полученному остатку прибавляется значение положительного делителя. 3) Остаток сдвигается влево на один разряд, освободившийся разряд справа заполняется нулём. 4) Если деление не закончено, то делимому присваивается значение остатка, и происходит переход к п.1. В противном случае деление прекращается. Особенность: во время деления значение делителя по модулю не меняется. Пример. Разделить x1 на x2 , используя метод с восстановлением остатка со сдвигом остатка. Использовать дополнительный код. x1  0,1001100, x2  0,1010100. x1 д  00.1001100, x2 д  00.1010100,  x2 д  11.0101100. Зн.рез  Зн.x1  Зн.x2  0  0  0 .  00.1001100 делимое 11.0101100 вычитание делителя  сложение в д.к. 0  11.1111000  0 00.1001100 восстановленный остаток ,  01.0011000 сдвиг остатка 1  11.0101100 вычитание делителя 1  00.1000100  0  01.0001000 сдвиг остатка 1  11.0101100 вычитание делителя 1  00.0110100  0  00.1101000 сдвиг остатка 1  11.0101100 вычитание делителя 1  00.0010100  0  00.0101000 сдвиг остатка 1  11.0101100 вычитание делителя 0  11.1010100  0 00.0101000 восстановленный остаток  00.1010000 сдвиг остатка 1  11.0101100 вычитание делителя 0  11.1111100  0 00.1010000 восстановленный остаток  01.0100000 сдвиг остатка 1  11.0101100 вычитание делителя 1  00.1001100  0 Результат: x1 / x2  0,111001. 2.8.2. Деление с восстановлением остатка и со сдвигом делителя Правило. 1) Из кода делимого вычитается код текущего значения делителя. 2) Анализируется знак результата (остатка): - если знак равен 0, то в текущий разряд частного записывается 1. - если знак равен 1, то в частное записывается 0 и производится восстановление остатка, т.е. к полученному остатку прибавляется значение положительного текущего делителя. 3) Делитель сдвигается вправо на один разряд. Освободившийся старший разряд отрицательного делителя заполняется единицей. 4) Если деление не закончено, то делимому присваивается значение остатка, и происходит переход к п.1. В противном случае деление прекращается. Пример. Разделить x1 на x2 , используя метод с восстановлением остатка со сдвигом делителя. Использовать дополнительный код. x1  0,1000100, x2  0,1100101.  x1 д  00.1000100, x2 д  00.1100101,  x2 д  11.0011011 Зн.рез  Зн.x1  Зн.x 2  1  0  1 . Частное 00.1000100 делимое  11.0011011 делитель 0 , 1 11.1011111  0   0  0  0 11.1100110 сдвинутый делитель 00.0010001 восстановленный остаток 11.1110011 сдвинутый делитель 00.0000100  0 11.1111001 сдвинутый делитель 00.0000100 восстановленный остаток 11.1111100 сдвинутый делитель 00.0000000  0 11.0011011 1 11.1001101 1 11.1100110 1 11.1110011 1 11.1111001 1 11.1111100 1 11.1111110 1 11.1111111 11.1111110 сдвинутый делитель 11.1111110  0  0 00.0010001  0 11.1111101  0  1 11.1001101 сдвинутый делитель 11.1110111  0  1 00.1000100 восстановленный остаток Сдвиг делителя 00.0000000 восстановленный остаток 11.1111111 сдвинутый делитель 11.1111111 Результат: x1 / x2  0,1010100. 2.9. Деление без восстановления остатка Особенностью деления без восстановления остатка, как со сдвигом остатка, так и со сдвигом делителя, является тот факт, что в процессе получения частичных остатков, знак остатка определяет дальнейшую операцию: если остаток отрицательный, то следующая операция сложение, а если остаток положительный, то следующая операция - вычитание. 2.9.1. Деление без восстановления остатка и со сдвигом остатка Правило. 1) Из кода делимого вычитается код делителя. 2) Анализируется знак результата (остатка): - если знак равен 0, то в текущий разряд частного записывается 1 и выполняется переход к п. 3. - если знак равен 1, то в частное записывается 0 и выполняется переход к п. 4. 3) Если деление не закончено, остаток сдвигается влево на один разряд. Из кода остатка вычитается код делителя, и происходит переход к п.2. В противном случае деление прекращается. 4) Если деление не закончено, остаток сдвигается влево на один разряд. Код остатка складывается с кодом делителя, и происходит переход к п.2. В противном случае деление прекращается. Пример. Разделить x1 на x2 , используя метод без восстановления остатка со сдвигом остатка. Использовать дополнительный код. x1  0,1000100, x2  0,1010101.  x1 д  00.1000100, x2 д  00.1010101,  x2 д  11.0101011. Зн.рез  Зн.x1  Зн.x2  0  0  0 . Результат 00.1000100 делимое  11.0101011 делитель  x2 д 0 , 11.1101111  0  1 00.1010101 делитель x2 д 00.0110011  0  1 00.1100110 сдвиг остатка 1  11.0101011 делитель  x2 д 00.0010001  0  0 00.0100010 сдвиг остатка 1  11.0101011 делитель  x2 д 11.1001101  0  0 11.0011010 сдвиг остатка 1  00.1010101 делитель x2 д 11.1101111  0  1 11.1011110 сдвиг остатка 1  00.1010101 делитель x2 д 00.0110011  0  1 00.1100110 сдвиг остатка 1  11.0101011 делитель  x2 д 00.0010001  0  0 11.1011110 сдвиг остатка 1  00.0100010 сдвиг остатка 1  11.0101011 делитель  x2 д 11.1001101  0 Результат: x1 / x2  0,1100110. 2.9.2. Деление без восстановления остатка и со сдвигом делителя Правило. 1) Из кода делимого вычитается код делителя. 2) Анализируется знак результата (остатка): - если знак равен 0, то в текущий разряд частного записывается 1; переход к п. 3. - если знак равен 1, то в частное записывается 0; переход к п. 4. 3) Если деление не закончено, делитель сдвигается вправо на один разряд. Из кода остатка вычитается код делителя, и происходит переход к п.2. В противном случае деление прекращается. 4) Если деление не закончено, делитель сдвигается вправо на один разряд. Код остатка складывается с кодом делителя, и происходит переход к п.2. В противном случае деление прекращается. Пример. Разделить x1 на x2 , используя метод без восстановления остатка со сдвигом делителя. Использовать дополнительный код. x1  0,1001100, x2  0,1100100.  x1 д  00.1001100, x2 д  00.1100100,  x2 д  11.0011100 Зн.рез  Зн.x1  Зн.x 2  1  0  1 . Результат 00.1001100 делимое  11.0011100 делитель 0 11.1101000  0 1  , 00.0110010  x2 д 1 1 0 0  0 1 11.1100111  x2  д 00.0000001  0  11.1110011 00.1100100 11.0011100 1 00.0110010 11.1001110 1 00.0011001 11.1110100  0 00.0000110 11.1100111 11.1111010  0  00.0000011 00.0001100  0 0 00.0011010  0 Сдвиг делителя   11.1111101  0 00.0000001 1 11.1110011 1 00.0000110 11.1111110  0 00.0000000 11.1111001 11.1111110  0 00.0000011 1 11.1111100 1 00.0000001 11.1111110 1 00.0000000 11.1111111 Результат: x1 / x2  0,11. 2.10. Ускорение операции деления Подходы к ускорению операции деления заключаются в следующем: При образовании достаточно малого или достаточно большого по модулю остатка очередные цифры частного будут группой одинаковых цифр - либо 0, либо 1. Поэтому продолжение деления излишне, т.к. эту группу цифр можно записать в частное сразу. При малом положительном остатке в частное можно сразу записать (k  1) нулей в соответствующие разряды, остаток сдвинуть на k разрядов влево, вычесть из него делитель и продолжить операцию деления. Пример. Найти частное от чисел в десятичной с/с: x1  4456825, x2  2225 . 4456825 2225  4450  2 00 3 000  6825 k 1 k 6825 Результат: x1  x2  2003. Пример. Найти частное от двоичных чисел: x1  1000010000001, x2  1000001. 10000100000011000001  1000001  1000001 000000 1000001  k 1 k 1000001 Результат: x1  x2  1000001. При большом положительном остатке, у которого k старших разрядов содержат 1 (для двоичных чисел), в (k  1) -е разряды частного записываются 1, остаток сдвинуть на k разрядов влево. Для отрицательных остатков проводится анализ в старших разрядах.
«Основы теории построения арифметических процессоров» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 493 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot