9
当移位的数量未知时,在硬件级别如何实现位移?如何在硬件级别上实施轮班?
我无法想象每个数字都可以有一个单独的电路(64位机器上有64个移位电路),我也不能想象它会是一个由一个(这将在64位机器上花费64个移位周期)。这两者之间有某种妥协吗?还是有一些聪明的伎俩?
当移位的数量未知时,在硬件级别如何实现位移?如何在硬件级别上实施轮班?
我无法想象每个数字都可以有一个单独的电路(64位机器上有64个移位电路),我也不能想象它会是一个由一个(这将在64位机器上花费64个移位周期)。这两者之间有某种妥协吗?还是有一些聪明的伎俩?
该电路被称为“barrel shifter” - 这基本上是一个复用器的负载。它每个地址都有一个移位位,因此一个8位桶式移位器需要三位来表示“移位多少”,因此需要3层复用器。
下面是一个8位的一个的从http://www.globalspec.com/reference/55806/203279/chapter-9-additional-circuit-designs一个图:
如果它使用相同的“电路”,这将是很慢:)换档通常在现代硬件一个周期内操作。 – leppie
@leppie这就是为什么我问。 – Matt
相关问题:http://stackoverflow.com/questions/9083743/is-bit-shifting-o1-or-on –