• 桶式移位器

    編輯
    本詞條由“匿名用戶” 建檔。

    桶式移位器

    編輯

    桶形移位器是一種數字電路,可以將數據字移位指定位數,而無需使用任何時序邏輯,僅使用純組合邏輯,即它本身提供二進制運算。 然而,理論上它也可以用于實現一元運算,例如邏輯左移,在受固定數量限制的情況下(例如地址生成單元)。 實現桶形移位器的一種方法是作為一系列多路復用器,其中一個多路復用器的輸出以取決于移位距離的方式連接到下一個多路復用器的輸入。 桶形移位器通常用于在現代微處理器中移位和旋轉 n 位,通常在單個時鐘周期內進行。

    例如,采用一個四位桶形移位器,其輸入為 A、B、C 和 D。移位器可以將位 ABCD 的順序循環為 DABC、CDAB 或 BCDA; 在這種情況下,不會丟失任何位。 也就是說,它可以將所有輸出向右移動最多三個位置(從而形成 A、B、C 和 D 的任意循環組合)。 桶形移位器有多種應用,包括作為微處理器中的有用組件(與 ALU 一起)。

    實施

    編輯

    最快的移位器被實現為完整的交叉開關,其方式類似于上面描述的 4 位移位器,只是更大。 這些產生的延遲最少,輸出總是在要移位的輸入后面有一個門延遲(在允許移位計數解碼器穩定所需的一小段時間之后;然而,這種損失僅在移位計數發生變化時才會發生)。 然而,這些交叉開關移位器需要 n2 個門來進行 n 位移位。 正因為如此,桶形移位器通常被實現為并行的 2×1 多路復用器的級聯,這允許大量減少門數,現在只增加 n x log n; 然而,傳播延遲更大,隨著 log n 增長。

    對于 8 位桶形移位器,使用兩個中間信號,它們根據 S[2] 和 S[1] 的值移動四位和兩位,或傳遞相同的數據。 然后該信號由另一個多路復用器移位,該多路復用器由 S[0] 控制:

    int1 = IN ,如果 S[2] == 0 = IN << 4、如果S[2] == 1 int2 = int1 ,如果S[1] == 0 = int1 << 2、如果 S[1] == 1 OUT = int2 ,如果 S[0] == 0 = int2 << 1,如果 S[0] == 1

    較大的桶形移位器具有額外的級數。

    級聯移位器與全交叉移位器相比還有一個優勢,即不需要任何用于移位計數的解碼邏輯。

    費用

    編輯

    一個 n 位字所需的多路復用器數量為 n log 2 ? n {\displaystyle n\log _{2}n} 。

    數字電路

    使用

    編輯

    桶形移位器的常見用法是在浮點運算的硬件實現中。 對于浮點加法或減法運算,兩個數的尾數必須對齊,這需要將較小的數右移,增加其指數,直到它與較大數的指數匹配。 這是通過減去指數并使用桶形移位器在一個周期內將較小的數字向右移動差值來完成的。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/195890/

    (1)
    詞條目錄
    1. 桶式移位器
    2. 實施
    3. 費用
    4. 使用

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久