第2章2.2定点运算和定点运算器
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
∴ x+y= -0.0111
5
2.2.1 定点加、减法运算
2. 补码减法 减去一个数就是加上这个数的负数, [x-y]补=[x+(-y)]补=[x]补+[-y]补 (mod 2)
从[y]补求[-y]补的法则:将[y]补连同符号位“取反且最低位
加1,相当于求负数的补码。 (hw)
【例2-12】 x= -0.1010,y= -0.0011,求 x-y。 【解】 [x]补=1.0110 [y]补=1.1101 [-y]补=0.0011
2)采用硬件实现乘除法运算
3)并行乘除法器
•
从编码角度考虑:乘除由法结果的符ቤተ መጻሕፍቲ ባይዱ位确定比较容易,运算结果的
绝对值和参加运算的数据的符号无关,所以用原码实现也很简单。 但在现代计算机中一般还是采用补码进行乘除法运算
9
2.2.3 逻辑运算
参加逻辑运算的数据称为逻辑数,是不带符号位的二进 数通常用“1” 表示逻辑真,用“0”表示逻辑假 1 逻辑非(取反运算)
操作数的各位按位取反,使每一位0变成1,1变成0
设x=x0x1x2…xn,则逻辑非标记 【解】
x x0 x1x2 xn 【例2-14】 设x=10100010,求 x 。
x =01011101
10
2.2.3 逻辑运算
2 逻辑与 (逻辑乘) • 两个操作数相同位的数据进行按位“与”运算,两个都是1 则结果为1,两个中只要有1个为0结果就是0 一般写成“∧”或“·” • 特点 对任何数据逻辑与0都会变成0,而逻辑与1则保持原有数据 不变;可用于对一个数据的某几位清0,而其他位保持不变 【例2-15】 设x=01011101,y=10011001,求x∧y。 【解】 01011101
2.2.4 定点运算器的组成
运算器的基本结构
⑴能实现算术和逻辑运算的功能部件ALU ⑵存放待加工信息或加工后信息的通用寄存器组 ⑶按操作要求控制数据输入的部件,如多路开关或数据 锁存器,可以接收来自外部设备或存储器的数据,也 可以暂存通用寄存器的数据 ⑷按操作要求控制数据输出的部件,如输出移位开关和 多路开关,可以将ALU的输出结果根据要求进行移位 ,并经总线送往其他部件,或作为中间结果送给通用 寄存器,以便作为ALU的输入进行下一次运算 ⑸计算机与其他部件进行信息传输的总线,以及总线接 收器和发送器,总线接收器和发送器通常是由三态门 构成的
RS0 RS1
RD=“00”
RD=“01”
RD=“10”
RD=“11”
R0
DRW T3
R1
DRW T3 DBUS
R2
DRW T3
R3
DRW T3
数据总线 D7~D0 SWBUS#
23
数据开关 SW7~SW0
2.2.4 定点运算器的组成
2)双总线结构的运算器
• 有两条总线同时连接ALU的两个输入端 • 可以与通用寄存器双向传送数据 • 为了防止总线冲突,在ALU的输出端设置缓冲寄存器 • 特殊寄存器分为两组,分别与两条总线相连 • 两个操作数同时加到ALU进行运算 • 只需要一次操作控制,而且马上就可以得到运算结果 • ALU的输出不能直接加到总线上去 • 当形成操作结果的输出时,两条总线都被输入数占据 • 必须在ALU输出端设置缓冲寄存器 • 比单总线结构运算器速度快 • 一个双操作数运算,需要两次数据传送(2个单元时间) • 总线控制电路要相对复杂些 24
14
2.2.4 定点运算器的组成
1. ALU 2. 数据总线 3. 运算器的基本结构形式 4. 寄存器
15
2.2.4 定点运算器的组成
1. ALU 2. 数据总线 3. 运算器的基本结构形式 4. 寄存器
16
2.2.4 定点运算器的组成
运算器简介
• 对数据进行加工处理, CPU的重要组成部分 • 算术运算,加、减、乘、除运算,变更数据的符号等 • 逻辑运算,如进行与、或、非等运算 • 由算术逻辑单元(Arithmetic Logic Unit,ALU)、寄存器、 数据总线和其他逻辑部件组成 • ALU是具体完成算术与逻辑运算的单元,是运算器的核 心,由加法器及其他逻辑运算单元组成 • 寄存器用于存放参与运算的操作数,其中的累加器是一 个特殊的寄存器,除了可以存放操作数外,还用于存放 中间结果和最后结果 • 数据总线用于完成运算器内部的数据传送 17
2.2.4 定点运算器的组成
2 数据总线
• 总线优势:为了减少运算器内部的数据传送线同时便于控 制,通常将一些寄存器之间的数据传送通路加以归并,组 成总线结构,使不同来源的信息在此总线上分时传送 • 分类1:根据总线所处的位置, • 内部总线:CPU内各部件的连线,如运算器内部总线 • 外部总线:指系统总线,即CPU与存储器、I/O系统之 间的连线
逻辑运算
逻辑与、或、非、异或等运算 针对不带符号的二进制数
2
2.2.1 定点加、减法运算
定点加、减法运算属于算术运算,要考虑参加运算 数据的符号和编码格式,现代计算机的运算器一般 都采用补码形式加减法
• 原码 • 符号位不能直接参加加减运算,实现起来很麻烦 • 反码 • 符号位和数值位一起运算,但符号位一旦有进位, 结果就会发生偏差,需采用循环进位法进行修正( 即符号位的进位要加到最低位*note) • 补码 • 符号位与数值位一起处理,只要结果不超出机器数 允许的表示范围,结果一定正确;如果有进位,也 只要将进位数据舍弃。
∧
10011001
00011001
∴ x∧y=00011001
11
2.2.3 逻辑运算
在80C51单片机中应用逻辑与
D0位是P,表示每执行一条汇编指令,累加器A中1 的个数的奇偶校验此标志位对串行通信的数据传输 非常有用,通过就校验可以检验传输的可靠性。 通过PWS∧0000 0001B取出P这一位。
∴ x+y=0.1101
4
2.2.1 定点加、减法运算
【例2-10】 x= -0.1010,y= -0.0011,求 x+y。 【解】 [x]补=1.0110 [y]补=1.1101
∴ x+y= -0.1101 【例2-11】 x= -0.1010,y= 0.0011,求 x+y。 【解】 [x]补=1.0110 [y]补=0.0011
21
2.2.4 定点运算器的组成
3 运算器的基本结构形式
1)单总线结构的运算器 以加法运算为例 首先把第一个操作数通过总线送往缓冲寄存器A暂存 再把第二个操作数通过总线送往缓冲寄存器B暂存 最后一步是将两个操作数从缓冲寄存器A和B送往ALU, 并将运算结果通过总线送往相应的通用寄存器
22
2.2.4 定点运算器的组成
∨
∴ x∨y=11011101
10011001
11011101
13
2.2.3 逻辑运算
4 逻辑异或(按位加) • 两个操作数相同位的数据进行按位“模2加”运算,若两个 都相同则结果为0,若两个不同则结果为1 一般写成“⊕” • 特点: 1)任何数据逻辑异或1是取反,而逻辑异或0则是保持原 有数据不变;用于对数据某几位取反,而其他位不变 2)连续两次逻辑异或,恢复原来状态,用于数据恢复 【例2-17】 设x=01011101,y=10011001,求x⊕y。 【解】 ⊕ ∴ x⊕y=11000100 01011101 10011001 11000100
∴ x-y= -0.0111
6
2.2.1 定点加、减法运算
3. 溢出及其判断 • 溢出的概念 • 溢出:两数加减运算的运算结果超出给定的取值范围 • 正溢出:结果大于最大正数 • 负溢出: 结果小于最小负数 在定点数运算中,正常情况下溢出是不允许的 • 溢出的判定方法 单符号位法和双符号位法两种 双符号位法(两个符号位表示一个数据)溢出判断的方法 • 如果两个数相加后,其结果的两个符号位一致(00 或11),则没有发生溢出 • 如果两个符号位不一致(10或01),则发生溢出 两个符号位为01时为正溢,10时为负溢 7 不论溢出与否,运算结果最高符号位始终指示正确符号(hw)
(应该mod4 书err)
• 机器就可以通过逻辑电路自动检查出这种溢出,并进行相
应的中断处理。
8
2.2.2 定点乘、除法运算
1)采用软件实现乘除法运算
• • • • • 利用基本运算指令,编写实现乘除法的循环子程序 这种方法所需的硬件最简单,但速度最慢 在原有基本运算电路的基础上,通过增加左右移位和计数器等逻 辑电路来实现乘除法运算,同时增加专门的乘除法指令; 这种方式的速度比第一种方式快 并行乘法器使用专门乘除法指令,依靠硬件资源的重 复设置来赢得乘除运算的高速:如高速的单元阵列乘,除法器; 流水式阵列乘除法器等; 三种方式中速度最快的一种
• 分类2:按照总线逻辑结构 • 单向传送总线,通常的地址总线和控制总线 • 双向传送总线,通常的数据总线(也有单向的) • 实现总线连接的驱动器,通常由三态(高,低,高阻三种 状态)门组成,使能端控制高阻状态。
20
2.2.4 定点运算器的组成
3 运算器的基本结构形式
1)单总线结构的运算器 • 所有部件连接到同一条总线上,运算器内部只有一组数据 总线,数据可以在任何两个寄存器之间,或者在任一个寄 存器和ALU之间传送 • 优点是总线的控制电路比较简单 • 缺点是操作速度较慢,同一时间内只能有一个操作数放 到总线上 • 把两个操作数输入到ALU需要分两步,且需要A、B 两个缓冲寄存器 • 执行一个双操作数的运算, 一般需要三次数据传 送,花费三个单元时间
12
2.2.3 逻辑运算
3 逻辑或(逻辑加) • 两个操作数相同位的数据进行按位“或”运算,两个都是0 则结果为0,两个中只要有1个为1结果就是1 一般写成“∨”或“+” • 逻辑或的特点 对任何数据逻辑或1都会变成1,而逻辑或0则保持原有数据不 变;可用于对一个数据的某几位置1,而其他位保持不变 【例2-16】 设x=01011101,y=10011001,求x∨y。 【解】 01011101
2.2.1 定点加、减法运算
1. 溢出及其判断 【例2-13】 x=-0.1010,y=-0.0111,求 x+y(用双符号位法)。 【解】 [x]补=11.0110 [y]补=11.1001 两个符号位出现“10”,表示发生负溢 *err 溢出判断实现: • 双符号位方法,只要将两个符号位进行异或运算, 异或结果为0的就表示正常,异或结果为1的就表示溢出
18
2.2.4 定点运算器的组成
1 ALU
• 算术运算, 逻辑运算,先行进位逻辑,便于高速运算 • 特定ALU所支持的算术运算, • 加法和减法,乘法、除法,或三角函数和平方根 • 有些支持整数,而其他可能使用浮点 • 任何计算机都可以通过编程来执行任何算术运算,或者是 ALU硬件支持,或者软件方式实现,只是时间较多而已。 • 逻辑运算:与、或、异或非等布尔运算;条件语句和处理 布尔逻辑 • 比较数值:根据比较结果来返回布尔值----真(TRUE)或 假(FALSE) • 超标量(Superscalar)计算机包含多个ALU,可以同时处 理多条指令 • 矢量和矩阵算术运算:通常图形处理器以及具有单指令流 多数据流SIMD和多指令流多数据流MIMD特性的计算机可 19 以提供这些运算。
3
2.2.1 定点加、减法运算
1. 补码加法 • 补码加法的公式——这是补码加法的理论基础 [x]补+[y]补=[x+y]补 (mod 2)
模2意义下,任意两数补码之和等于该两数之和的补码 模2运算,最高位相加结果中的向上进位是要舍去的 【 例2-9】 x=0.1010,y=0.0011,求 x+y。 【解】[x]补=0.1010 [y]补=0.0011
2.2 定点运算和定点运算器
2.2.1 定点加、减法运算 2.2.2 定点乘、除法运算 2.2.3 逻辑运算
2.2.4 定点运算器的组成
1
2.2 定点运算和定点运算器
计算机中的基本运算 算术运算 加、减、乘、除四则运算 要考虑符号和编码格式(即原码、反码还是补码) 可分为定点数四则运算和浮点数四则运算
3 运算器的基本结构形式
Z C
1)单总线结构的运算器:COY-FLY-I实验箱的ALU和总线结 构
DBUS 数据总线 D7~D0 LZ S0 S1 S2 S3 A端口 A7—A0 4选1 选择目的寄存器 RD0 RD1 LC F:ALU运算结果 ALUBUS# M CIN
ALU
B端口 B7—B0 4选 1 选择源寄存器