Как сдвиги реализуются на аппаратном уровне?
Как сдвиги битов реализуются на аппаратном уровне, когда число, на которое нужно сдвинуться, неизвестно?
Я не могу представить, что будет отдельная схема для каждого числа, на которое вы можете сдвинуться (это будет 64 схемы сдвига на 64-разрядной машине), и при этом я не могу представить, что это будет цикл сдвигов на единицу (который будет выполнить до 64 циклов смены на 64-битной машине). Это что-то вроде компромисса между ними или есть какая-то хитрая уловка?
1 ответ
Схема называется " бочкообразная перемычка" - в основном это нагрузка мультиплексоров. У него есть слой на каждый требуемый бит сдвига адреса, поэтому 8-разрядному бочкообразному сдвигу нужно три бита, чтобы сказать "на сколько сдвинуться", и, следовательно, 3 слоя муксов.
Вот изображение 8-битного из http://www.globalspec.com/reference/55806/203279/chapter-9-additional-circuit-designs: