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 –