Если есть какое-либо преимущество, оно будет в пользу or
. В действительности, однако, вряд ли будет какая-либо разница с любым достаточно современным процессором (или даже с чем-либо, кроме действительно древнего).
По сути, or
просто устанавливает бит, и это все. Все, что нужно, - это один входной шлюз or
с двумя входами, поэтому вы получаете ровно один вентиль задержки распространения.
Сумматор немного сложнее: для вычисления текущего бита требуется XOR с тремя входами. XOR обычно состоит из двух уровней ворот. Кроме того, он генерирует перенос, который должен использоваться в качестве входа для сумматора для следующего бита. Следовательно, «сумматор с волновым переносом» требует столько тактов, сколько добавляется бит. Существуют более разумные способы решения проблемы, когда вы обрабатываете переносы отдельно от остального дополнения, поэтому вы получаете меньшую задержку распространения, но в худшем случае даже это не поможет.
Большая часть этого имеет значение, только если вы сами проектируете процессор. Если вы используете типичный процессор, шлюзы в функциональных блоках работают достаточно быстро, чтобы он мог / будет делать полное добавление за один такт. Некоторые достаточно недавние могут даже сделать два добавления за такт в одном функциональном блоке.