Почему двоичное вычитание всегда (?) Выполняется путем добавления дополнения? - PullRequest
3 голосов
/ 09 марта 2011

Я ищу хорошее объяснение почему ( не так, как , я знаю, что) двоичное вычитание всегда (?) Выполняется путем добавления дополнения и т. Д.из дополнительных логических ворот, которые были бы необходимы, или есть дополнительные, более сложные причины?Например, я мог понять, что это будет проблематично, если результат будет отрицательным - представление может измениться.Можете ли вы придумать больше причин?

Ответы [ 3 ]

5 голосов
/ 09 марта 2011

Рассмотрим 8-битный сумматор. Есть 2 набора 8 сигналов, поступающих вместе с битом переноса. Вы можете построить 2 практически идентичные схемы, а затем включить мультиплексор, чтобы выбрать, какой результат сохранить в регистре результатов. Или вы можете добавить одну строку ворот XOR в путь одного операнда. Вы получаете дополнение путем XORing с 1. Вы также вводите эту «1» на вход переноса сумматора, так как X-Y = X + ~ Y +1. Теперь у вас есть один немного больший канал, который может выполнять две операции вместо большого количества каналов. Вы также можете передать 0 в один аргумент и использовать вентили XOR для реализации NOT. Сумматор также можно слегка модифицировать для выполнения других операций - например, XOR над двумя операндами - с очень небольшим количеством схем. Все это восходит к небольшим дням интеграции, когда ворота должны были быть минимизированы. С тех пор не было никаких причин делать это иначе. Ниже приведена принципиальная схема 4-разрядного АЛУ 74181, который может выполнять множество операций: 74181 описание

0 голосов
/ 09 марта 2011

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

0 голосов
/ 09 марта 2011

Вы уже ударили гвоздь по голове, это все о пространстве на кристалле. Зачем увязать в АЛУ с большим количеством схем? Это пространство, которое можно использовать для логики, или для меньшего размера ALU, и для дополнительной памяти.

...