計算機組成與設計 除法器

2022-09-21 12:18:12 字數 1440 閱讀 9032

算術運算中的加減乘除,乘法和除法是比較難以實現的。乘法之前已有總結,這次學習的部分是除法器的設計和實現。

除法運算中的關鍵表示式:被除數 = 除數 × 商 + 餘數

首先用筆算的計算來推導硬體的設計思路:

其硬體結構如圖所示:

初始時商置為0,除數每次計算後右移一位以對準被除數,因此初始時位於64位移位暫存器的左端。餘數暫存器初始為被除數。

這個版本的除法器alu,除數移位暫存器和餘數暫存器都是64位,只有商是32位。

除法的演算法流程如下:

除法的第一步是被除數高位減除數,但是這種除法器架構的特點在於計算機是不知道計算部分被除數是否比除數大的。因此第乙個分支體現了計算過程,如果餘數大於等於0,則被除數是大於等於除數的,因此商左移一位並且lsb置1;若餘數是小於0的,則被除數小於除數,下一步操作是恢復原值,即將除數和餘數相加並將和放回餘數,商暫存器左移一位且lsb置0。這裡判斷餘數是否大於0只需要判斷餘數的msb是0還是1即可。

因為一些移位占用的資源不會被使用,考慮改進上述結構以加速和節約資源,改進後的結構如下:

改進後被除數和alu暫存器都是32位,減少了一半空間。餘數暫存器和商集成為一體,計算過程共同左移。

這種結構除法器的計算流程如圖,可以看出與版本一的差別。優化版本的除法器第一步先進行餘數暫存器的左移,再將餘數暫存器左半邊減去除數進行判斷。這樣只需判斷32次,進行32次迴圈計算。

但是計算初始餘數暫存器進行了一次左移操作,因此計算結束時餘數暫存器的左半邊也就是餘數部分需要右移一位。

在有符號數計算中,關鍵在於滿足除法運算中的關鍵表示式:被除數 = 除數 × 商 + 餘數

因此四種情況可以分別列出,正 ÷ 正,正 ÷ 負,負 ÷ 正,負 ÷ 負。

只要被除數與除數符號不一致,則商為負號。反之若兩運算元符號一致,則商為正號。餘數保持與被除數的符號一致。

由乘法器和除法器的學習可以看出,兩種設計都需要alu和一些移位暫存器,而mips型cpu中的hi和lo暫存器組合起來,在乘法運算和除法運算中作為64位移位暫存器。

32位的乘法/除法硬體如下所示:可以看出關鍵在於控制邏輯來決定移位暫存器的左移或右移來進行除法或乘法操作。

計算機組成與設計1

第一講 1 計算機的總體層次結構 硬體 指令系統 軟體 系統軟體 作業系統 彙編器 編譯器 應用軟體 2 計算機程式執行過程 高階語言程式首先預處理,然後通過編譯器生成組合語言程式,組合語言程式經過彙編器生成可重定位的目標檔案,可重定位的目標檔案通過鏈結器連線到一起形成可執行的目標檔案。第二講 3 ...

計算機組成與設計2

1機器指令 計算機設計者賦予計算機實現某種基本操作的命令。2指令系統 一台計算機所有及其指令的集合,就像是乙個單詞表一樣。指令集是計算機硬體與計算機軟體的介面,從硬體設計者而言,is向cpu提出了要求 從系統程式設計師角度而言,通過is來使用硬體資源。可見,指令集的好壞決定了計算機的走向。3指令系統...

《數字邏輯設計與計算機組成》一 1 3 計算機組成

邏輯設計要解決的是關於電路描述 綜合 最小化和 的相關問題,而計算機組成則研究電路部件及其物理關係,這些部件構成處理核心 cpu 處理器 儲存器 i o裝置控制器和介面,這些模組相互連線就構成計算機。例如,圖1 1中的暫存器檔案 加法器 乘法器和選擇器組成乙個資料通路。控制單元和資料通路 通過一系列...