跳轉到內容

微處理器設計/移位和旋轉塊

來自華夏公益教科書,開放的書籍,開放的世界

移位和旋轉

[編輯 | 編輯原始碼]

移位和旋轉塊是大多數處理器中必不可少的元素。它們本身很有用,但它們也用於乘法和除法模組。在二進位制計算機中,左移位與乘以 2 具有相同的效果,右移位與除以 2 具有相同的效果。由於移位和旋轉操作的執行速度遠快於乘法和除法,因此它們作為程式最佳化工具非常有用。

邏輯移位

[編輯 | 編輯原始碼]
左邏輯移位 右邏輯移位

在邏輯移位中,資料按適當的方向移位,並且零被移位到新位置。

算術移位

[編輯 | 編輯原始碼]
右算術移位

在算術移位中,資料向右移位,以便保留資料的符號。這意味著 MSB 是移位到新位置的值。算術左移位與邏輯左移位相同,因此這裡沒有顯示。

左旋轉 右旋轉

旋轉類似於移位,不同之處在於移位出暫存器末端的位然後移位到新位置。

快速移位實現

[編輯 | 編輯原始碼]

上面每個部分中的影像都有助於指示一種更快地移位暫存器的方法,但需要額外的硬體。與其使用一個試圖就地移位的暫存器,不如並行使用兩個暫存器,並用電線將各個塊連線起來。當指示移位時,門開啟,允許資料以適當的位數向前或向後從一個暫存器傳遞到另一個暫存器。

在實踐中,快速移位塊實現為“桶形移位器”。桶形移位器包括多個“級”的多路複用器,每個多路複用器透過直線(不移位傳輸資料的電線)和導致按 2 的連續冪進行移位的電線連線到前一個多路複用器。例如,第一級移位將是 4 個空格,下一級將是 2 個空格,最後一級將是 1 個空格。透過這種方式,每個移位級的值對應於要移位空格數的二進位制表示。這種實現使移位器速度非常快,可以在一個時鐘週期內移位任意數量的空格。

進一步閱讀

[編輯 | 編輯原始碼]

使用 74 系列積體電路的 32 位桶形移位器實現

華夏公益教科書