系 统 总 线 存储器  运算器  控制器  接口与通信  输入 / 输出设备 林楠 办公室: 408 办公电话: 0371-63887293 电子邮件: [email_address] 《 计算机组成原理 》 第六章 计算机的运算方法
4 、定点除法运算 4.1 、原码一位除法 4.2 、补码一位除法 4.3 、阵列除法器 5 、浮点四则运算 5.1 、浮点加减运算 对阶、执行加减、规格化、舍入、判溢出 5.2 、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出 第六章 计算机的运算方法
设有两浮点数 X , Y ,其中: X = S X  * 2  j X  Y = S Y  * 2  j Y X±Y 运算执行以下五步: 1) “ 对大阶”操作 对大阶 :使两数的阶码值相等。 求阶码差 Δj , Δj≠0 时,小阶码的尾数右移 Δj 位:阶码  +Δj , 2)  尾数的加 / 减运算  两尾数进行加 / 减运算。 3)  规格化操作 尾数符号  01  或  10 :尾数溢出 。 右规: 尾数(带符号)右移 1 位,阶码 +1 尾数符号  00  或  11 :尾数不溢出 。 但如最高数值位与符号位相同 :  00  0   或  11  1 左规: 尾数数值部分连续左移, 直到最高数值位与符号位不同为止( 00 1 , 11 0 ) 同时从阶码中减去移位的位数。  5.1 、浮点加减运算
4)  舍入(处理多余位) 在执行右规或对阶时,尾数低位上的数值会移掉,使数值的精度 受到影响,常用 “ 0” 舍“ 1” 入 法。  (三种舍去法:恒舍去,末位恒置  1 , 0 舍 1 入; 取其精度受影响最小的方法) 5)  检查阶码是否溢出 在规格化和舍入时都可能发生溢出, 若 阶码符号 10  为下溢 ,置运算结果为零, 若 阶码符号 01  为上溢 ,置溢出标志。 5.1 、浮点加减运算
X =  0111  00.1101000 j X   S X Y =  0110   00.1010000 j Y   S Y S Y j Y  + 1 S X j X  + 1 S X j X  + 1 No No Yes j X   = j Y   ? S X  +- S Y  S X j X  (or j Y )  j X X f1 ⊕X f2   = 1 X f1 X f2   X 1 +  X f1 X f2  X 1 = 1 ? S X j X  - 1 输出 Yes Yes No 3 )规格化处理 00.1101000  S X + 00.0101000  S Y 01. 0 010000 右规: 1000 00.10010000 左规 右规 2 )尾数运算 1 )阶码对齐 4 )舍入处理 5 )溢出判断 j X  > j Y   ? No Yes
例 :   已知  X = 0.11011011 * 2 010 , Y = - 0.10101100 * 2 100   求  X + Y 解 :  ①  对大阶: [ j X ] 补  = 00 0010  [  j Y ] 补  = 00 0100  [ - j Y ] 补  = 11 1100 求阶差 Δj= [ j X ] 补 + [ - j Y ] 补  = 00 0010 + 11 1100 = 11 1110  ( -2 ) X  的阶码小: X 阶码  + 2  ( [ j X ] 补   =  [  j Y ] 补  =  00 0100  )  X 的尾数右移 2 位,前面补符号位 [ S X ] 补 =  00 00110110 11 (此时保留右移数据,不丢不舍) ②  尾数相加 [ S X ] 补  = [ S X ] 补  + [ S Y ] 补  =  00 00110110 11 +  11 01010100 =  11   1 0001010   11   ③  规格化操作: 左规 :  数值位左移 1 位  =  11   0 0010101 1 阶码  - 1 ([ j X ] 补 =  00 0011 ) ④  舍入  舍去的附加位最高位为 1 ,结果最低位 +1 : [ S x ] 补 = 11  00010110   S= - 0.11101010 ⑤  判溢出  阶码符号为 00 ,不溢出。  最终结果为: X+Y = - 0.11101010 * 2 011 实际运算时,先确定位数。假设机器字长 16 位,采用浮点表示数, 其中阶符 2 位,阶码 4 位,尾符 2 位,尾数 8 位,都用补码表示。
4 、定点除法运算 4.1 、原码一位除法 4.2 、补码一位除法 4.3 、阵列除法器 5 、浮点四则运算 5.1 、浮点加减运算 对阶、执行加减、规格化、舍入、判溢出 5.2 、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出 第六章 计算机的运算方法
 X =  S X   · 2  j X   Y =  S Y  · 2  j Y  X * Y =  (  S X  * S Y   )  2  j X  + j Y   X / Y =  (  S X  / S Y   )  2  j X  - j Y   5.2 、浮点乘除运算 1 )阶码加减: 乘法: j X  + j Y   ,除法:  j X  - j Y   2 )尾数乘除: 乘法:  S X  * S Y   ,除法:  S X  / S Y   3 )规格化处理; 4 )舍入操作: 有可能带来又一次规格化; 5 )判溢出: 检查阶码上下溢出。
例如: 求 X*Y , X = 0.0110011   *   2  -5 Y = - 0.1110010  *  2  3 阶码(含符号位)用 4 位移码表示,采用单符号位。 尾数(含符号位)用 8 位补码表示,采用单符号位。 [j X ] 补 = 1 011  [j X ] 移 = 0 011 [j Y ] 补 = 0 011  [j Y ] 移 = 1 011 [S X ] 补 = 0.0110011 [-S X ] 补 =1.1001101 [S Y ] 补 =1.0001110 [X] 浮   = 0 011 ,  0.0110011 [Y] 浮   = 1 011 ,  1.0001110 5.2 、浮点乘除运算
1 )阶码相加: [ j X  + j Y  ] 移   = [ j X  ] 移   + [ j Y  ] 补 = 0 011 + 0 011 = 0 110 2 )尾数相乘:   [S X ] 补   * [S Y ] 补 = 0.0110011 * 1.0001110 = 1.10100101001010 [XY] 浮   = 0 110,  1.1 0100101001010 3 )规格化处理 : 符号位与最高数值位相同,需要规格化(尾数左移一位,阶码 -1 ) [XY] 浮   = 0.101, 1.0100101 0010100 4 )舍入操作: 尾数设 8 位, 0 舍 1 入,则   [XY] 浮   = 0 101, 1.0100101 5 )判溢出: 阶码两符号位相同,不溢出。 5.2 、浮点乘除运算
浮点运算器 浮点运算器 由 阶码 定点 运算器 和 尾数 定点 运算器 组成。 阶码 部分仅执行 加减法 运算。 尾数 部分则执行 加减乘除 运算,左规时有时需要左移多位。
6 、定点运算器的基本结构   6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
定点运算器 是数据的加工处理部件, 是 CPU 的重要组成部分。 包括: ALU 算术 / 逻辑单元 , 阵列乘除器, 数据寄存器, 累加寄存器, 多路转换器, 数据总线(内部总线) 等逻辑构成。 6 、定点运算器的基本结构 移位门 ALU 选择门  A 选择门  B 通用 寄存器组 数据总线 数据总线 运算器结构框图
定点运算部件框图
A , B , C 寄存器的作用  5 、定点运算器的基本结构 商 S 除数 Y 被除数 X  余数 R 除法 乘数 Y  乘积低位 S 被乘数 X 部分积  乘积高位 S 乘法 无用 减数 Y 被减数 X  运算结果 S 减法 无用 加数 Y 被加数 X  运算结果 S 加法 C B  A 运算
算术逻辑单元 ALU 74181  逻辑电路图  P281  P299 M 是状态控制端, M=1, 执行逻辑运算 M=0, 执行算术运算 F 3 ~ F 0 是运算结果 S 0 ~S 3 是运算选择控制端, 决定电路执行哪种算术运算 或哪种逻辑运算。 C n 是 ALU 的最低位进位输入 A 3 ~A 0 , B 3 ~ B 0 是 参加运算的两个数
1.2 、算术逻辑单元 M 是状态控制端, M=1, 执行逻辑运算 M=0, 执行算术运算 S 0 ~S 3 是运算选择控制端, 决定电路执行哪种算术运算 或哪种逻辑运算。 C n 是 ALU 的最低位进位输入 A 3 ~A 0 , B 3 ~ B 0 是 参加运算的两个数 算术逻辑单元 ALU 74181  运算功能表  P281  P299 A· B (A·B) 减 1 A·B 1 1 1 0 A 减 B A 减 B 减 1 A  B 0 1 1 0 (A·B) 加 (A+B) 加 1 (A·B) 加 (A+B) B 1 0 1 0 A 加 (A·B) 加 1 A 加 (A·B) A·B 0 0 1 0 “ 0” 减 1 “ 0” 1 1 0 0 (A+B) 加 1 A+B A·B 0 1 0 0 (A+B) 加 1 A+B A+B 1 0 0 0 A+1 A A 0 0 0 0 C n =0 C n =1 M=0  算术运算 M=1 逻辑运算 正  逻  辑 S 0 S 1 S 2 S 3
运算器的设计 主要是围绕 ALU 和 寄存器 之间,怎样通过 数据总线 传送 操作数和运算结果进行的。 在决定设计方案时,需要考虑数据传送的方便性和操作速度, 在微型机和单片机中还要考虑在硅片上制作总线的工艺。 运算器 大体有 单总线 、 双总线 、 三总线 三种结构形式。 根据总线所在位置, 总线 分为 内部总线 和 外部总线 两类。 内部总线 是指 CPU 内, 各部件的连线。( 本章讲的是内部总线 ) 外部总线 是指 系统总线, 即 CPU  与 存储器 、 I/O 系统 之间的连线。       6 、定点运算器的基本结构
6 、定点运算器的基本结构   6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
CPU 内部所有部件都接到同一总线上。 数据可以在任何两个寄存器之间,或任一个寄存器和 ALU 之间传送。 如果有阵列乘法器或除法器,它们所处的位置应与 ALU 相当。 同一时刻,只能有一个操作数放在总线上, 不能同时传送两个数据 。 结构特点: 操作速度较慢,控制电路比较简单。 6.1  单总线结构的运算器
6 、定点运算器的基本结构   6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
这种结构有两条总线:总线 1 、总线 2 。 两个操作数可以同时加到 ALU 中进行运算,只需一次操作控制,而把运算结果送到缓冲器,缓冲器的数据可以送到任意一条总线上,两条总线的数据通过通用寄存器组来存储。 优点: 速度比单总线结构快。 6.2  双总线结构的运算器
6 、定点运算器的基本结构   6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
有三条总线:   两端接 ALU 的输入: 输入总线 1 ,输入总线 2   一端接 ALU 的输出: 输出总线 3 这样一步就可以控制两个数的运算,速度可以大大提高, 通过通用寄存器把总线 3 的数据送到总线 1 与总线 2 。 6.3  双总线结构的运算器
复习与作业 复习章节:  第 6 章  计算机的运算方法 6.3  定点运算 6.3.1  移位运算 6.3.4  除法运算 6.4  浮点四则运算 作业: P291   6.21  6.26  6.29
1 、 数据的表示方式   1.1 、符号的处理( 正数、负数 ) 1.2 、数值的处理( 数制转换 ) 1.3 、小数点的处理( 定点、浮点 ) 1.4 、原码的表示方法 1.5 、反码的表示方法 1.6 、补码的表示方法( 重点研究补码运算 ) 1.7 、字符的表示方法(  ASCII  码 ) 1.8 、汉字的表示方法( 字型码、内码 ) 1.9 、校验码( 奇偶校验、海明威校验、 CRC 校验 ) Review:  第六章 计算机的运算方法 机器数的 表示方法 真值表示 问题解决
2 、定点加、减法运算与实现 2.1 、补码定点加、减运算( 减法通过加法来实现 ) 2.2 、溢出概念与检测方法( 数值超出了表示范围 ) 2.3 、补码定点加法器 3 、定点乘法运算 3.1 、原码一位乘法( 符号位单独处理 ) 3.2 、补码一位乘法( 矫正法、比较法 ( 布斯 Booth )  ) 3.3 、补码两位乘法 3.4 、阵列乘法器 ( 并行计算结果 ) 4 、定点除法运算 4.1 、原码一位除法( 恢复余数法、加减交替法 ) 4.2 、补码一位除法 4.3 、阵列除法器( 并行计算结果 ) Review:  第六章 计算机的运算方法
5 、浮点四则运算(引入移码) 5.1 、浮点加减运算 对大阶( 对齐小数点 )、 执行加减( 定点小数加减 )、 规格化( 尾数加减结果右规或左规 )、 舍入( 尾数按机器字长进行 0 舍 1 入 )、 判溢出( 阶码的符号判运算结果是否溢出 ) 5.2 、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出 Review:  第六章 计算机的运算方法
定点运算器 是数据的加工处理部件, 是 CPU 的重要组成部分。 包括: ALU 算术 / 逻辑单元 , 阵列乘除器, 数据寄存器, 累加器, 多路转换器, 数据总线(内部总线) 等逻辑构成。 移位门 ALU 选择门  A 选择门  B 通用 寄存器组 数据总线 数据总线 定点运算器的基本结构框图 Review:  第六章 计算机的运算方法
考研题精选 1 、当采用两位符号位进行加法运算时,如果结果的符号位为()表示负溢出。 A 00 B 01 C 10 D 11 两符号位相同不溢出。 最高位符号位代表真正的符号,所以 01 表示正溢出, 10 表示负溢出。 2 、在补码定点加法运算中,采用 1 位符号位,则当()时,表示结果溢出。 A  符号位有进位 B  符号位进位和最高位进位异或结果为 0 C  符号位为 1 D  符号位进位和最高位进位异或结果为 1 3 、在补码加减交替法中,参加操作的数是(),商符()。 A  绝对值的补码 在形成商值的过程中自动形成 B  补码 在形成商值的过程中自动形成 C  补码 由两个数符号位异或形成 D  绝对值的补码 由两个数符号位异或形成
考研题精选 1 、真值 0 表示形式唯一的机器数是() A  原码 B  补码和移码  C  反码 D  以上都不对 2 、什么是机器零?浮点数采用什么机器数形式表示时,可用全 0 表示机器零? 当一个浮点数尾数为 0 ,无论阶码为何值; 或者当阶码等于或小于它所能表示的最小数时,无论尾数为何值; 机器都把该浮点数当做机器零处理。 阶码用移码表示:最小的阶码是全 0 ; 尾数用补码表示:真值 0 表示为全 0 。 3 、计算机中表示地址时,采用() A  原码 B  补码 C  反码 D  无符号数
考研题精选 1 、浮点数的表示范围和精度取决于() A  阶码的位数和尾数的机器数形式 B  阶码的机器数形式和尾数的位数 C  阶码的位数和尾数的位数 D  阶码的机器数形式和尾数的机器数形式 2 、采用规格化的浮点数是为了() 3 、当定点运算发生溢出时,应该()。 A  向左规格化 B  向右规格化 C  发出出错信息 D  舍入处理 A  增加数据的表示范围 B  方便浮点运算 C  防止运算时数据溢出 D  增加数据的表示精度 当阶码和尾数的位数确定后,采用规格化尾数可获得最好的表示精度。
考研题精选 1 、大部分计算机减法是用()实现的。 A  将被减数加到减数中 B  从被减数中减去减数 C  补码的加法 D  从减数中减去被减数 2 、 ALU 属于() 4 、浮点机器数中,()是隐含的。 A  阶码 B  数符 C  尾数 D  基数 A  时序电路 B  组合逻辑电路 C  控制器 D  寄存器 3 、运算器由许多部件组成,其核心部分是() A  数据总线 B  算术逻辑单元   C  累加寄存器 D  多路开关 5 、定点补码加减法运算中,产生溢出的条件是什么? 浮点加减运算中,产生溢出的条件是什么? 定点补码加减运算,产生溢出的条件是两个符号数加减, 结果超出了它的表示范围。 V=X f  Y f  S f +X f Y f S f  = 1  双符号位异或为 1  双进位异或为 1 浮点加减运算,产生溢出的条件是阶码超出了它的表示范围。

08 计算机的运算方法05

  • 1.
    系 统 总线 存储器 运算器 控制器 接口与通信 输入 / 输出设备 林楠 办公室: 408 办公电话: 0371-63887293 电子邮件: [email_address] 《 计算机组成原理 》 第六章 计算机的运算方法
  • 2.
    4 、定点除法运算 4.1、原码一位除法 4.2 、补码一位除法 4.3 、阵列除法器 5 、浮点四则运算 5.1 、浮点加减运算 对阶、执行加减、规格化、舍入、判溢出 5.2 、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出 第六章 计算机的运算方法
  • 3.
    设有两浮点数 X ,Y ,其中: X = S X * 2 j X Y = S Y * 2 j Y X±Y 运算执行以下五步: 1) “ 对大阶”操作 对大阶 :使两数的阶码值相等。 求阶码差 Δj , Δj≠0 时,小阶码的尾数右移 Δj 位:阶码 +Δj , 2) 尾数的加 / 减运算  两尾数进行加 / 减运算。 3) 规格化操作 尾数符号 01 或 10 :尾数溢出 。 右规: 尾数(带符号)右移 1 位,阶码 +1 尾数符号 00 或 11 :尾数不溢出 。 但如最高数值位与符号位相同 : 00 0 或 11 1 左规: 尾数数值部分连续左移, 直到最高数值位与符号位不同为止( 00 1 , 11 0 ) 同时从阶码中减去移位的位数。 5.1 、浮点加减运算
  • 4.
    4) 舍入(处理多余位)在执行右规或对阶时,尾数低位上的数值会移掉,使数值的精度 受到影响,常用 “ 0” 舍“ 1” 入 法。 (三种舍去法:恒舍去,末位恒置 1 , 0 舍 1 入; 取其精度受影响最小的方法) 5) 检查阶码是否溢出 在规格化和舍入时都可能发生溢出, 若 阶码符号 10 为下溢 ,置运算结果为零, 若 阶码符号 01 为上溢 ,置溢出标志。 5.1 、浮点加减运算
  • 5.
    X = 0111 00.1101000 j X S X Y = 0110 00.1010000 j Y S Y S Y j Y + 1 S X j X + 1 S X j X + 1 No No Yes j X = j Y ? S X +- S Y S X j X (or j Y ) j X X f1 ⊕X f2 = 1 X f1 X f2 X 1 + X f1 X f2 X 1 = 1 ? S X j X - 1 输出 Yes Yes No 3 )规格化处理 00.1101000 S X + 00.0101000 S Y 01. 0 010000 右规: 1000 00.10010000 左规 右规 2 )尾数运算 1 )阶码对齐 4 )舍入处理 5 )溢出判断 j X > j Y ? No Yes
  • 6.
    例 : 已知 X = 0.11011011 * 2 010 , Y = - 0.10101100 * 2 100 求 X + Y 解 : ① 对大阶: [ j X ] 补 = 00 0010 [ j Y ] 补 = 00 0100 [ - j Y ] 补 = 11 1100 求阶差 Δj= [ j X ] 补 + [ - j Y ] 补 = 00 0010 + 11 1100 = 11 1110 ( -2 ) X 的阶码小: X 阶码 + 2 ( [ j X ] 补 = [ j Y ] 补 = 00 0100 )  X 的尾数右移 2 位,前面补符号位 [ S X ] 补 = 00 00110110 11 (此时保留右移数据,不丢不舍) ② 尾数相加 [ S X ] 补 = [ S X ] 补 + [ S Y ] 补 = 00 00110110 11 + 11 01010100 = 11 1 0001010 11  ③ 规格化操作: 左规 : 数值位左移 1 位 = 11 0 0010101 1 阶码 - 1 ([ j X ] 补 = 00 0011 ) ④ 舍入 舍去的附加位最高位为 1 ,结果最低位 +1 : [ S x ] 补 = 11 00010110 S= - 0.11101010 ⑤ 判溢出 阶码符号为 00 ,不溢出。 最终结果为: X+Y = - 0.11101010 * 2 011 实际运算时,先确定位数。假设机器字长 16 位,采用浮点表示数, 其中阶符 2 位,阶码 4 位,尾符 2 位,尾数 8 位,都用补码表示。
  • 7.
    4 、定点除法运算 4.1、原码一位除法 4.2 、补码一位除法 4.3 、阵列除法器 5 、浮点四则运算 5.1 、浮点加减运算 对阶、执行加减、规格化、舍入、判溢出 5.2 、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出 第六章 计算机的运算方法
  • 8.
     X = S X · 2 j X Y = S Y · 2 j Y  X * Y = ( S X * S Y ) 2 j X + j Y X / Y = ( S X / S Y ) 2 j X - j Y 5.2 、浮点乘除运算 1 )阶码加减: 乘法: j X + j Y ,除法: j X - j Y 2 )尾数乘除: 乘法: S X * S Y ,除法: S X / S Y 3 )规格化处理; 4 )舍入操作: 有可能带来又一次规格化; 5 )判溢出: 检查阶码上下溢出。
  • 9.
    例如: 求 X*Y, X = 0.0110011 * 2 -5 Y = - 0.1110010 * 2 3 阶码(含符号位)用 4 位移码表示,采用单符号位。 尾数(含符号位)用 8 位补码表示,采用单符号位。 [j X ] 补 = 1 011 [j X ] 移 = 0 011 [j Y ] 补 = 0 011 [j Y ] 移 = 1 011 [S X ] 补 = 0.0110011 [-S X ] 补 =1.1001101 [S Y ] 补 =1.0001110 [X] 浮 = 0 011 , 0.0110011 [Y] 浮 = 1 011 , 1.0001110 5.2 、浮点乘除运算
  • 10.
    1 )阶码相加: [j X + j Y ] 移 = [ j X ] 移 + [ j Y ] 补 = 0 011 + 0 011 = 0 110 2 )尾数相乘: [S X ] 补 * [S Y ] 补 = 0.0110011 * 1.0001110 = 1.10100101001010 [XY] 浮 = 0 110, 1.1 0100101001010 3 )规格化处理 : 符号位与最高数值位相同,需要规格化(尾数左移一位,阶码 -1 ) [XY] 浮 = 0.101, 1.0100101 0010100 4 )舍入操作: 尾数设 8 位, 0 舍 1 入,则 [XY] 浮 = 0 101, 1.0100101 5 )判溢出: 阶码两符号位相同,不溢出。 5.2 、浮点乘除运算
  • 11.
    浮点运算器 浮点运算器 由阶码 定点 运算器 和 尾数 定点 运算器 组成。 阶码 部分仅执行 加减法 运算。 尾数 部分则执行 加减乘除 运算,左规时有时需要左移多位。
  • 12.
    6 、定点运算器的基本结构 6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
  • 13.
    定点运算器 是数据的加工处理部件, 是CPU 的重要组成部分。 包括: ALU 算术 / 逻辑单元 , 阵列乘除器, 数据寄存器, 累加寄存器, 多路转换器, 数据总线(内部总线) 等逻辑构成。 6 、定点运算器的基本结构 移位门 ALU 选择门 A 选择门 B 通用 寄存器组 数据总线 数据总线 运算器结构框图
  • 14.
  • 15.
    A , B, C 寄存器的作用 5 、定点运算器的基本结构 商 S 除数 Y 被除数 X 余数 R 除法 乘数 Y 乘积低位 S 被乘数 X 部分积 乘积高位 S 乘法 无用 减数 Y 被减数 X 运算结果 S 减法 无用 加数 Y 被加数 X 运算结果 S 加法 C B  A 运算
  • 16.
    算术逻辑单元 ALU 74181 逻辑电路图 P281 P299 M 是状态控制端, M=1, 执行逻辑运算 M=0, 执行算术运算 F 3 ~ F 0 是运算结果 S 0 ~S 3 是运算选择控制端, 决定电路执行哪种算术运算 或哪种逻辑运算。 C n 是 ALU 的最低位进位输入 A 3 ~A 0 , B 3 ~ B 0 是 参加运算的两个数
  • 17.
    1.2 、算术逻辑单元 M是状态控制端, M=1, 执行逻辑运算 M=0, 执行算术运算 S 0 ~S 3 是运算选择控制端, 决定电路执行哪种算术运算 或哪种逻辑运算。 C n 是 ALU 的最低位进位输入 A 3 ~A 0 , B 3 ~ B 0 是 参加运算的两个数 算术逻辑单元 ALU 74181 运算功能表 P281 P299 A· B (A·B) 减 1 A·B 1 1 1 0 A 减 B A 减 B 减 1 A  B 0 1 1 0 (A·B) 加 (A+B) 加 1 (A·B) 加 (A+B) B 1 0 1 0 A 加 (A·B) 加 1 A 加 (A·B) A·B 0 0 1 0 “ 0” 减 1 “ 0” 1 1 0 0 (A+B) 加 1 A+B A·B 0 1 0 0 (A+B) 加 1 A+B A+B 1 0 0 0 A+1 A A 0 0 0 0 C n =0 C n =1 M=0 算术运算 M=1 逻辑运算 正 逻 辑 S 0 S 1 S 2 S 3
  • 18.
    运算器的设计 主要是围绕 ALU和 寄存器 之间,怎样通过 数据总线 传送 操作数和运算结果进行的。 在决定设计方案时,需要考虑数据传送的方便性和操作速度, 在微型机和单片机中还要考虑在硅片上制作总线的工艺。 运算器 大体有 单总线 、 双总线 、 三总线 三种结构形式。 根据总线所在位置, 总线 分为 内部总线 和 外部总线 两类。 内部总线 是指 CPU 内, 各部件的连线。( 本章讲的是内部总线 ) 外部总线 是指 系统总线, 即 CPU 与 存储器 、 I/O 系统 之间的连线。       6 、定点运算器的基本结构
  • 19.
    6 、定点运算器的基本结构 6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
  • 20.
    CPU 内部所有部件都接到同一总线上。 数据可以在任何两个寄存器之间,或任一个寄存器和ALU 之间传送。 如果有阵列乘法器或除法器,它们所处的位置应与 ALU 相当。 同一时刻,只能有一个操作数放在总线上, 不能同时传送两个数据 。 结构特点: 操作速度较慢,控制电路比较简单。 6.1 单总线结构的运算器
  • 21.
    6 、定点运算器的基本结构 6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
  • 22.
    这种结构有两条总线:总线 1 、总线2 。 两个操作数可以同时加到 ALU 中进行运算,只需一次操作控制,而把运算结果送到缓冲器,缓冲器的数据可以送到任意一条总线上,两条总线的数据通过通用寄存器组来存储。 优点: 速度比单总线结构快。 6.2 双总线结构的运算器
  • 23.
    6 、定点运算器的基本结构 6.1 、单总线结构的运算器 6.2 、双总线结构的运算器 6.3 、三总线结构的运算器 第六章 计算机的运算方法
  • 24.
    有三条总线: 两端接 ALU 的输入: 输入总线 1 ,输入总线 2 一端接 ALU 的输出: 输出总线 3 这样一步就可以控制两个数的运算,速度可以大大提高, 通过通用寄存器把总线 3 的数据送到总线 1 与总线 2 。 6.3 双总线结构的运算器
  • 25.
    复习与作业 复习章节: 第 6 章 计算机的运算方法 6.3 定点运算 6.3.1 移位运算 6.3.4 除法运算 6.4 浮点四则运算 作业: P291 6.21 6.26 6.29
  • 26.
    1 、 数据的表示方式 1.1 、符号的处理( 正数、负数 ) 1.2 、数值的处理( 数制转换 ) 1.3 、小数点的处理( 定点、浮点 ) 1.4 、原码的表示方法 1.5 、反码的表示方法 1.6 、补码的表示方法( 重点研究补码运算 ) 1.7 、字符的表示方法( ASCII 码 ) 1.8 、汉字的表示方法( 字型码、内码 ) 1.9 、校验码( 奇偶校验、海明威校验、 CRC 校验 ) Review: 第六章 计算机的运算方法 机器数的 表示方法 真值表示 问题解决
  • 27.
    2 、定点加、减法运算与实现 2.1、补码定点加、减运算( 减法通过加法来实现 ) 2.2 、溢出概念与检测方法( 数值超出了表示范围 ) 2.3 、补码定点加法器 3 、定点乘法运算 3.1 、原码一位乘法( 符号位单独处理 ) 3.2 、补码一位乘法( 矫正法、比较法 ( 布斯 Booth ) ) 3.3 、补码两位乘法 3.4 、阵列乘法器 ( 并行计算结果 ) 4 、定点除法运算 4.1 、原码一位除法( 恢复余数法、加减交替法 ) 4.2 、补码一位除法 4.3 、阵列除法器( 并行计算结果 ) Review: 第六章 计算机的运算方法
  • 28.
    5 、浮点四则运算(引入移码) 5.1、浮点加减运算 对大阶( 对齐小数点 )、 执行加减( 定点小数加减 )、 规格化( 尾数加减结果右规或左规 )、 舍入( 尾数按机器字长进行 0 舍 1 入 )、 判溢出( 阶码的符号判运算结果是否溢出 ) 5.2 、浮点乘除运算 阶码加减、尾数乘除、规格化、舍入、判溢出 Review: 第六章 计算机的运算方法
  • 29.
    定点运算器 是数据的加工处理部件, 是CPU 的重要组成部分。 包括: ALU 算术 / 逻辑单元 , 阵列乘除器, 数据寄存器, 累加器, 多路转换器, 数据总线(内部总线) 等逻辑构成。 移位门 ALU 选择门 A 选择门 B 通用 寄存器组 数据总线 数据总线 定点运算器的基本结构框图 Review: 第六章 计算机的运算方法
  • 30.
    考研题精选 1 、当采用两位符号位进行加法运算时,如果结果的符号位为()表示负溢出。A 00 B 01 C 10 D 11 两符号位相同不溢出。 最高位符号位代表真正的符号,所以 01 表示正溢出, 10 表示负溢出。 2 、在补码定点加法运算中,采用 1 位符号位,则当()时,表示结果溢出。 A 符号位有进位 B 符号位进位和最高位进位异或结果为 0 C 符号位为 1 D 符号位进位和最高位进位异或结果为 1 3 、在补码加减交替法中,参加操作的数是(),商符()。 A 绝对值的补码 在形成商值的过程中自动形成 B 补码 在形成商值的过程中自动形成 C 补码 由两个数符号位异或形成 D 绝对值的补码 由两个数符号位异或形成
  • 31.
    考研题精选 1 、真值0 表示形式唯一的机器数是() A 原码 B 补码和移码 C 反码 D 以上都不对 2 、什么是机器零?浮点数采用什么机器数形式表示时,可用全 0 表示机器零? 当一个浮点数尾数为 0 ,无论阶码为何值; 或者当阶码等于或小于它所能表示的最小数时,无论尾数为何值; 机器都把该浮点数当做机器零处理。 阶码用移码表示:最小的阶码是全 0 ; 尾数用补码表示:真值 0 表示为全 0 。 3 、计算机中表示地址时,采用() A 原码 B 补码 C 反码 D 无符号数
  • 32.
    考研题精选 1 、浮点数的表示范围和精度取决于()A 阶码的位数和尾数的机器数形式 B 阶码的机器数形式和尾数的位数 C 阶码的位数和尾数的位数 D 阶码的机器数形式和尾数的机器数形式 2 、采用规格化的浮点数是为了() 3 、当定点运算发生溢出时,应该()。 A 向左规格化 B 向右规格化 C 发出出错信息 D 舍入处理 A 增加数据的表示范围 B 方便浮点运算 C 防止运算时数据溢出 D 增加数据的表示精度 当阶码和尾数的位数确定后,采用规格化尾数可获得最好的表示精度。
  • 33.
    考研题精选 1 、大部分计算机减法是用()实现的。A 将被减数加到减数中 B 从被减数中减去减数 C 补码的加法 D 从减数中减去被减数 2 、 ALU 属于() 4 、浮点机器数中,()是隐含的。 A 阶码 B 数符 C 尾数 D 基数 A 时序电路 B 组合逻辑电路 C 控制器 D 寄存器 3 、运算器由许多部件组成,其核心部分是() A 数据总线 B 算术逻辑单元 C 累加寄存器 D 多路开关 5 、定点补码加减法运算中,产生溢出的条件是什么? 浮点加减运算中,产生溢出的条件是什么? 定点补码加减运算,产生溢出的条件是两个符号数加减, 结果超出了它的表示范围。 V=X f Y f S f +X f Y f S f = 1 双符号位异或为 1 双进位异或为 1 浮点加减运算,产生溢出的条件是阶码超出了它的表示范围。