fbpx
维基百科

桶式移位器

桶式移位器(barrel shifter)是一種數位電路,可以在一個時脈週期內,將資料字進行特定位元數的移位。桶式移位器可以用一串的数据选择器實現,某一個数据选择器的輸出是其他数据选择器的輸入,其關係則視要位移的位元數而定。

四位元桶式移位器的線路圖,其中x表示輸入位元,y表示輸出位元

例如,以一個四位元的桶式移位器為例,一開始的輸入是A, B, C及D,桶式移位器可以由輸入ABCD得到DABCCDABBCDA,所有位元的資訊都會留下來,只是位置以循環組合的方式改變,桶式移位器有許多不同的應用,是微處理器中的一個重要成份。

實現

桶式移位器可以用平行的2×1数据选择器的組合而成。對於8位元的桶式移位器,需要二個中間的訊號,分別表示位移四位元、二位元或是不位移,這是依S[2]和S[1]的值而定,訊號會再經過数据选择器位移一位元,這是由S[0]控制。

 int1 = IN , if S[2] == 0 = IN << 4, if S[2] == 1 int2 = int1 , if S[1] == 0 = int1 << 2, if S[1] == 1 OUT = int2 , if S[0] == 0 = int2 << 1, if S[0] == 1 

較大的桶式移位器會有更多的中間訊號。

成本

n位元資料的桶式移位器,需要的数据选择器數量為 .[1]。以下列出五種常見的資料字寬度及其桶式移位器需要的数据选择器數量:

  • 128位元 —  
  • 64位元 —  
  • 32位元 —  
  • 16位元 —  
  • 8位元 —  

FO4英语FO4中,關鍵路徑的成本為(預估,不考慮線路延遲):

  • 32位元:從18 FO4到14 FO4[2]

用途

桶式移位器常用的場合是用硬體實現浮点数運算時,若要進行浮點的加法或減法,兩個數字的有效位数英语significand需要對齊,也就是將較小的數字往右移,增加其次幂,直到兩個數字的次幂相等為止,實際作法是將二數的次幂相減,再利用桶式移位器右位移較小的數字,位移位元數即為二數的次幂的差。若不是用桶式移位器,而是一般較簡單的移位器,位移n位元需要n個時脈週期。

相關條目

  • 環式移位英语Circular shift

參考資料

  1. ^ Kroening, D.; Strichman, Ofer. Decision Procedures. Springer. 2008. p.159. 
  2. ^ Revisiting the FO4 Metric. realworldtech.com. [2015-02-08]. (原始内容于2012-03-13). 

外部連結

  • for a useful Java Barrel shifter.
  • Xilinx Application Note (页面存档备份,存于互联网档案馆) Implementation of Barrel shifter using Xilinx FPGAs.

延伸閱讀

本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。


桶式移位器, barrel, shifter, 是一種數位電路, 可以在一個時脈週期內, 將資料字進行特定位元數的移位, 可以用一串的数据选择器實現, 某一個数据选择器的輸出是其他数据选择器的輸入, 其關係則視要位移的位元數而定, 四位元的線路圖, 其中x表示輸入位元, y表示輸出位元, 例如, 以一個四位元的為例, 一開始的輸入是a, c及d, 可以由輸入abcd得到dabc, cdab或bcda, 所有位元的資訊都會留下來, 只是位置以循環組合的方式改變, 有許多不同的應用, 是微處理器中的一個重要成份, 目录. 桶式移位器 barrel shifter 是一種數位電路 可以在一個時脈週期內 將資料字進行特定位元數的移位 桶式移位器可以用一串的数据选择器實現 某一個数据选择器的輸出是其他数据选择器的輸入 其關係則視要位移的位元數而定 四位元桶式移位器的線路圖 其中x表示輸入位元 y表示輸出位元 例如 以一個四位元的桶式移位器為例 一開始的輸入是A B C及D 桶式移位器可以由輸入ABCD得到DABC CDAB或BCDA 所有位元的資訊都會留下來 只是位置以循環組合的方式改變 桶式移位器有許多不同的應用 是微處理器中的一個重要成份 目录 1 實現 2 成本 3 用途 4 相關條目 5 參考資料 6 外部連結 7 延伸閱讀實現 编辑桶式移位器可以用平行的2 1数据选择器的組合而成 對於8位元的桶式移位器 需要二個中間的訊號 分別表示位移四位元 二位元或是不位移 這是依S 2 和S 1 的值而定 訊號會再經過数据选择器位移一位元 這是由S 0 控制 int1 IN if S 2 0 IN lt lt 4 if S 2 1 int2 int1 if S 1 0 int1 lt lt 2 if S 1 1 OUT int2 if S 0 0 int2 lt lt 1 if S 0 1 較大的桶式移位器會有更多的中間訊號 成本 编辑n位元資料的桶式移位器 需要的数据选择器數量為n log 2 n displaystyle scriptstyle n log 2 n 1 以下列出五種常見的資料字寬度及其桶式移位器需要的数据选择器數量 128位元 128 log 2 128 128 7 896 displaystyle scriptstyle 128 times log 2 128 128 times 7 896 64位元 64 log 2 64 64 6 384 displaystyle scriptstyle 64 times log 2 64 64 times 6 384 32位元 32 log 2 32 32 5 160 displaystyle scriptstyle 32 times log 2 32 32 times 5 160 16位元 16 log 2 16 16 4 64 displaystyle scriptstyle 16 times log 2 16 16 times 4 64 8位元 8 log 2 8 8 3 24 displaystyle scriptstyle 8 times log 2 8 8 times 3 24 在FO4 英语 FO4 中 關鍵路徑的成本為 預估 不考慮線路延遲 32位元 從18 FO4到14 FO4 2 用途 编辑桶式移位器常用的場合是用硬體實現浮点数運算時 若要進行浮點的加法或減法 兩個數字的有效位数 英语 significand 需要對齊 也就是將較小的數字往右移 增加其次幂 直到兩個數字的次幂相等為止 實際作法是將二數的次幂相減 再利用桶式移位器右位移較小的數字 位移位元數即為二數的次幂的差 若不是用桶式移位器 而是一般較簡單的移位器 位移n位元需要n個時脈週期 相關條目 编辑環式移位 英语 Circular shift 參考資料 编辑 Kroening D Strichman Ofer Decision Procedures Springer 2008 p 159 Revisiting the FO4 Metric realworldtech com 2015 02 08 原始内容存档于2012 03 13 外部連結 编辑University of Hamburg for a useful Java Barrel shifter Xilinx Application Note 页面存档备份 存于互联网档案馆 Implementation of Barrel shifter using Xilinx FPGAs 延伸閱讀 编辑Kroening Daniel Strichman Ofer Decision Procedures Springer 2008 ISBN 978 3 540 74104 6 本條目部分或全部内容出自以GFDL授權發佈的 自由線上電腦詞典 FOLDOC 取自 https zh wikipedia org w index php title 桶式移位器 amp oldid 61593672, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。