[计组] №6. 计算机的运算方法

计算机系统与CPU的组成

Ⅰ. 无符号数与有符号数

1.1 无符号数

  • 寄存器的位数称为机器字长,反映了无符号数的表示范围

1.2 有符号数

1.2.1 机器数与真值
  • 真值指的是我们平时常用的带符号的数,如+0.1011;机器数是指符号数字化的数,如
    机器数与真值
1.2.2 原码表示法
整数原码

小数原码
1.2.3 补码表示法

正数的原码、反码、补码 相同,负数原码 逐位取反,其结果再加 1

整数补码表示

小数补码表示

1.2.4 反码表示法
整数反码

小数反码
三种机器码的总结
  • 最高位为符号位,书写上用“,”(整数)或“.”(小数)分隔符号位和数值部分
  • 正数的三码形式相同
  • 负数的补码为其原码逐位取反再加1;反码为其原码逐位取反
1.2.5 移码表示法
  • 补码难以直接判断其真值大小,故采用移码表示;对真值加上一个2n(n为整数的位数)即可成为移码
    移码

Ⅱ. 数的定点表示和浮点表示

2.1 定点表示

  • 小数点位置在数符部分或数值部分之后,只能分别表示纯小数或纯整数

2.2 浮点表示

  • 常常而言,计算机要处理的并非完全是纯小数或纯整数,而且有些数据数值范围相差很大,并不能用定点小数或定点整数表示,因而引进了浮点数
  • 如何表示这些数呢?可以由类比科学计数法,使得非纯小数或非纯整数变为规范形式
  • 浮点数的规范化数:尾数最高位为1的浮点数
  • N = S × r j ,其中S称为尾数,r称基数,j为阶码,一般而言,计算机的基数通常为2及其幂方
    浮点数的表示形式

    浮点数表示范围

2.3 定点数与浮点数的比较

  • 位数相同,浮点数表示范围比定点数大得多
  • 浮点数规格化数的相对精度高于定点数
  • 浮点运算的步骤多,运算速度将低于定点数,运算线路也更复杂
  • 浮点数在数的表示范围,数的精度,溢出处理和程序编程方面优于定 点数,但在运算规则,运算速度,硬件成本方面又不如定点数

Ⅲ. 定点运算

3.1 移位运算

  • 符号数的移位称算术移位,对符号数的移位称逻辑移位
3.1.1 算术移位的规则
  • 对于正数: 三码(原,反,补)移位后的空位以0添补
  • 对于负数
    • 原码——空位补0
    • 反码——空位补1
    • 补码——左移添0,右移添1
      算术移位规则

      算术移位的硬件实现

3.1.2 逻辑移位
逻辑移位

3.2 加减法运算

补码加减运算公式
3.2.1 溢出判断
①一位符号位判断
  • 参加操作的两个数符号相同,结果的符号位与操作数不同即为溢出
②双符号位判断
双符号位判断溢出

3.3 乘法运算

笔算乘法的改进
  • 可以看出,乘法运算可以拆分为加法和移位
  • 解读上式的最后一步,将A与累加器内的初始值0相加,随后乘以乘数的最低位得到结果,此时乘数的最低位可以右移舍弃;上一步的结果右移一位,存入累加器中,将A与乘数的最低位相乘得到结果,乘数最低位再次右移舍弃;重复②的步骤,此时A与乘数最低位0相乘,表示此时不需将A与上一步结果相加,乘数最低位右移舍弃,进入下一步;重复直至乘完所有位,此时所得结果即为A和B相乘的结果
3.3.1 原码乘法
小数乘法

小数乘法
3.3.2 原码除法
小数除法
  • 我们规定,小数除法中,被除数<除数;整数除法中被除数>除数;并且,被除数和除数均不为0

Ⅳ. 浮点运算

4.1 加减运算

  • 对阶
    浮点加减的对阶操作
    • 因为如果对操作数进行左移操作,可能会导致数值高位的丢失,导致其大小改变;而如果对操作数进行右移操作,则可能会导致数值低位的丢失,导致其精度改变,权衡之下,更宜采用右移方式进行对阶
    • 对阶原则:小阶向大阶对齐
  • 尾数补码求和
  • 规格化:尾数求和后,可能会出现结果并非规格化数的形式,因而需要对结果进行规格化
    • 左规:尾数每左移1位,阶码减1,直到数符和第一数位不同为止
    • 右规:尾数溢出(>1)时采用右规,即尾数(双符号位)出现01.XX...X或10.XX...X时;尾数每右移1位,阶码加1
  • 舍入:在对阶和右规过程中,可能出现尾数末位舍弃引起误差,此时考虑舍入的几种方法
    • 0舍1入法
    • 恒置1法

Ⅴ. 算术逻辑单元(ALU)

5.1 ALU电路

ALU
  • Ai和Bi是输入变量;Ki为控制信号,表示这一次该作何运算;Fi是运算结果

5.2 快速进位链

5.2.1 并行加法器
并行加法器
  • 上图完全是数电课程中的并行加法器,由多个全加器组成
5.2.2 串行进位链
串行加法器
5.2.3 并行进位链
并行进位链
(1)单重分组跳跃进位链

n位全加器分成若干个小组,小组中的进位同时产生,小组与小组之间采用串行进位

(2)双重分组跳跃进位链

n位全加器分成若干个大组,大组中又包含若干小组。每个大组中的小组中的最高进位同时产生,大组与大组之间采用串行进位



Written by Tknight9 ©

Written in 12/17/2020

你可能感兴趣的:([计组] №6. 计算机的运算方法)