Remove ads
来自维基百科,自由的百科全书
桶式移位器(barrel shifter)是一种数位电路,可以在一个时脉周期内,将资料字进行特定位元数的移位。桶式移位器可以用一串的数据选择器实现,某一个数据选择器的输出是其他数据选择器的输入,其关系则视要位移的位元数而定。
例如,以一个四位元的桶式移位器为例,一开始的输入是A, B, C及D,桶式移位器可以由输入ABCD得到DABC、CDAB或BCDA,所有位元的资讯都会留下来,只是位置以循环组合的方式改变,桶式移位器有许多不同的应用,是微处理器中的一个重要成份。
桶式移位器可以用平行的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]。以下列出五种常见的资料字宽度及其桶式移位器需要的数据选择器数量:
在FO4中,关键路径的成本为(预估,不考虑线路延迟):
桶式移位器常用的场合是用硬体实现浮点数运算时,若要进行浮点的加法或减法,两个数字的有效位数需要对齐,也就是将较小的数字往右移,增加其次幂,直到两个数字的次幂相等为止,实际作法是将二数的次幂相减,再利用桶式移位器右位移较小的数字,位移位元数即为二数的次幂的差。若不是用桶式移位器,而是一般较简单的移位器,位移n位元需要n个时脉周期。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.