目錄
學習重點
- 定點運算
- 移位運算
- 加減運算
- 乘法
- 除法
- 浮點運算
- 加減
- ALU
- 示意圖
- 並行加法器
- 串行快速進位鏈
- 並行快速進位鏈
1.定點運算
1.1 移位運算
-
算術移位規則:
符號位不動,其他位移動,添補代碼如下:- 正數:原反補碼,都補0
- 負數:
- 源碼,補0
- 反碼,補1
- 補碼,左0右1
-
規則示意圖:
-
算術移位與邏輯移位:
- 算術移位:有符號位的移位(考慮符號位)
- 邏輯移位:無符號位的移位(符號位一起移動)
- 邏輯左移:低位添0,高位丟失
- 邏輯右移:高位添0,低位丟失
-
移位硬件實現:
1.2 加減運算
-
公式:連同符號位一起計算
- [A]補+[B]補=[A+B]補
- [A]補+[(-B)]補=[A-B]補
-
溢出判斷:(進位不等於溢出)
- 溢出:結果超出表示范圍
- 定點小數和>1
- 整數和符號位進位可能溢出
- 一位符號位判斷:僅考慮進位的符號
- 進位符號與原符號不同,則溢出
- 需要相加的兩個數符號位相同才能判斷
- 兩位符號位判斷:進位后產生的兩個符號位A,B
-
若A⊕B=1,則溢出(不同溢)
-
若A⊕B=0,則未溢出(同不溢)
-
如:1,0111+1,1011 相加不溢出
-
最高符號位代表真正符號位
-
- 溢出:結果超出表示范圍
-
加減法硬件配置
- V:溢出標記
- A,X:寄存器,A就是ACC
- A:ACC,保存被加數及和,被減數及差
- X:X寄存器,保存加數或減數
- A與X均為n+1位
- GA:加法控制,加法置1
- GS:減法控制,減法置1
- 減法操作時部控制邏輯啟用
- 完成從
[B]補
到[-B]補
的轉換
- 完成從
- 加法:A+X—>A
- 減法:A+(-X)—>A
1.3 乘法
-
筆算乘法:
- 符號由異或決定
-
乘法豎式表示:
A:-0.1101,被乘數
B:0.1011,乘數,從右往左一位一位的乘
- 乘積低位和乘數存在乘商寄存器中,將乘數低位頂掉
- 乘積高位存在ACC寄存器中
-
公式:
符號由異或決定,絕對值相乘 -
硬件配置示意圖:
- A:ACC寄存器,存放部分積(積的高位)
- X:X寄存器,放被乘數
- Q:MQ寄存器,存放乘數和部分積(積的低位)
- 計數器C:記錄移位次數
- S:符號
- GM:乘法標志
- 移位和加受末位乘數控制
1.4 除法
-
恢復余數法:
- 余數為正,上商1,減除數
- 余數為負,上商0,恢復余數
-
加減交替法:
- 規則:
- R:余數
- y:除數
- 豎式:
- 規則:
-
加減交替除法硬件配置:
- A:存放被除數,余數
- X:存放除數
- Q:存放商
- GD:除法標志
- V:溢出標志
2.浮點加減運算
步驟:對階,尾數求和,規格化,舍入,溢出判斷
2.1 對階
小階對大階,右移:
- 小階對大階
- 使階數相同
- 左移高位丟失,誤差大
2.2 尾數求和
將対階過后的尾數相加即可:
2.3 (尾數)規格化
-
規格化形式:基數為2
- 原碼:第一位數據位為1
- 補碼:第一位數據位和符號位不同
-
尾數規格化:基數為2
- 左歸:尾數左移1位,階碼減1
- 右歸:尾數右移1位,階碼加1
-
規格化數判斷:
-
特例:
- S=-1無原碼
2.4 舍入
対階右規過程中,可能會出現尾數末位丟失的情況
數據長度超過最大值,低位(末位)部分處理:
- 0舍1入:處理的最高位為0,不處理,為1,當前尾數加1
- 全1法:不管處理的最高位為多少,當前尾數末位都變為1
2.5 溢出判斷
3.ALU
- ALU電路:
組合邏輯電路,操作ki不同,輸出Fi也不同 - 並行加法器:
3.1 進位鏈
-
串行進位鏈:
-
並行進位鏈
-
單重分組跳躍進位鏈
-
雙重分組跳躍進位鏈
-