电子科技大学,计算机组成原理,3计算机组成原理-3-3-运算方法

合集下载

大学计算机组成原理--第3章、运算方法与运算器

大学计算机组成原理--第3章、运算方法与运算器
26
精品文档
相加数产生 部件 (chǎnshēng)
A = 0. a4 a3 a2 a1 a0 ……
&

a4b4
B = 0. b4 b3 b2 b1 b0

&
&
a1b0 a0b0
经过(jīngguò)一级门电路延迟,即可得到所有的相加数
27
精品文档
0
a4b0
a3b0
a2b0
a1b0 a0b0
COUT
V
s0
s1
sn-1 sn
C
Σ0 C0 Σ0
C1 Σ1 C2 …Cn-1 Σn-1 Cn Σn
Cn+1
M
x0 y0 x1 y1
xn-1 yn-1 xn yn
12
精M品由文档汇编语言中的加法指令add,以及(yǐjí)sub等产生
快速 加法器 (kuài sù)
能否提前产生各位的进位输入 使得各位的加法(jiāfǎ)运算能并行起来 提高多位加法器运算速度
Si = Ai Bi Ci+1
Ci = Ai Bi + ( Ai Bi )Ci+1
注意:逻辑表达式可以变形(biàn xíng),故电路形式不是
唯一的。
9
精品文档
典型(diǎnxíng)门 电路
与非
A B&
或非
A B ≥1

A1

A B&

A B ≥1
异或
A B =1
异或非
A B
=1
10
精品文档
所以我们(wǒ men)先讨论一位全加器
7
精品文档

西安电子科技大学_计算机组成与体系结构_第3章运算方法与运算器_课件PPT

西安电子科技大学_计算机组成与体系结构_第3章运算方法与运算器_课件PPT

17
3.1.1 加减运算 4. n位加法器的实现
2) 先行进位加法器
三级门的延时
P3* G3*
C4
C3
C2
C1
≥1
≥1
≥1
≥1
≥1

&& &

&& &
&&

G3

X3 Y3
P3
≥1
X3 Y3
G2

X2 Y2
P2
≥1
G1 P1
& ≥1
G0 P0
& ≥1
X2 Y2 X1 Y1 X1 Y1 X0 Y0 X0 Y0 C0
x xxxxxxx
10
3.1.1 加减运算 2. 溢出判断 3) 根据运算结果的符号位和进位标志判别
适用于两同号数求和或异号数求差时判别溢出。溢出 的逻辑表达式为:
VF=SF⊕CF
0 xxxxxxx 1 xxxxxxx + 0 xxxxxxx + 1 xxxxxxx
c s xxxxxxx c s xxxxxxx
01100010 …98
11000001 … -63 + 11011101 …11111 … 63 + 11011101 … -35
100011100 … 28
7
3.1.1 加减运算 2. 溢出判断
当两个同符号的数相加(或者是相异符号数相减)
时,运算结果可能发生溢出。 00111111 …63
补码一位乘法:校正法,布斯(Booth)法
补码二位乘法
阵列乘法器
适于流水线工作的阵列乘法器
32
3.1.2 乘法运算 1. 原码乘法运算
1) 原码一位乘法的法则 假定被乘数X和乘数Y为用原码表示的纯小数,

电子科技大学计算机组成原理计算机组成原理PPT课件

电子科技大学计算机组成原理计算机组成原理PPT课件
第21页/共62页
计算机的硬件
1.2.1 计算机的硬件系统组成CPU
(第3章) 控 制 器
运算器
高速缓存

( 第
线
4 章
主存储器




虚拟存储器
输 出
(磁盘设备)
接 口
(第5章)
输入设备 ( 第 6 章
输出设备 )
第22页/共62页
计算机的一般组成结构为: 运算器+存储器+控制器+输入/
输出设备。
输出结果
执行指令
存储程序
将程序转换为 指令序列
图 计算机的工作流程
第15页/共62页
1.1.2 信息的数字化表示
1. 在计算机中用数字代码表示各种信息 二进制代码
例1 用数字代码表示数据 5 表示为 0 101
- 5 表示为 1 101
第16页/共62页
例2 用数字代码表示字符
A 表示为 1000001
的辅助存储器。 如:磁盘存储器、光盘存储器等,其主要特
点是存储容量大,价格便宜,工作速度较慢。
第34页/共62页
/
………… …………
地 址 寄 存
译 码 器

存储体
控制线路


写 线
据 寄 存


讨论
存储单元读/写原理、存储器逻辑设计
第35页/共62页
/
………… …………
地 址 寄 存
译 码 器
B 表示为 1000010
例3 用数字代码表示命令、状态
启动
表示为 00
停止
表示为 01
正在工作 表示为 10

计算机组成原理实验指导书 电子科技大学

计算机组成原理实验指导书 电子科技大学

计算机专业核心硬件课程实验指导书电子科技大学计算机学院实验平台介绍一.硬件部分:1.核心适配板:主控芯片是XILINX公司的SPRTAN XC3S500E(50万逻辑门电路),它具有可编程接口(JTAG),通过并口与PC机相连,该芯片可以反复擦写。

2.实验箱上输入/输出接口:⑴按键开关:键按下为抵电平,弹起为高电平,实验箱上的序号是AN1,AN2。

用它可以形成脉冲信号。

(2个)⑵拨动开关:开关向上为高电平,向下为低电平,实验箱上的序号是K1~K12。

(12个)⑶发光二极管:分成红、绿、黄三种颜色。

高电平点亮,低电平熄灭。

实验箱上的序号是L1~L24。

(24个)(4)8段LED数码管:低电平点亮相应的段。

实验箱上的序号是LED1~LED4。

(4个)3. 用户接口部分二.软件部分:本实验系统的开发软件采用Xilinx公司的ISE集成开发环境。

其软件开发流程:1.创建工程*双击桌面“Xilinx ISE 7.1”;*选择“File” New Project”,屏上显示(图1);●填写“工程项目名”和文件存放路径。

*点击“下一步”,屏上显示(图2);●选择所使用芯片的类型、封装等信息;●选择综合工具(Synthesis Tool)(图1)(图2)2.设计输入*在(图3)对话框,输入文件名,同时选左框中的”Verilog Module”*输入Verilog HDL 的源程序代码(图3)3.约束(引脚绑定)*在“Process View”框中,点击“User Constraints”前的‘+’,双击“Assign Package Pins”*在“Design Browser”框中,选“I/O Pins”*在“Design Object List…”框中‘Loc’栏添入芯片的引脚序号,注意在引脚序号前加上字母p;4.综合在“Process View”框中,点击“Synthesize-XST”;5.实现在“Process View”框中,点击“Implement Design”;6.下载在“Process View”框中,点击“Configure Device(Impact)”;●选“Boundary-Scan Mode”●选“Automatically connect to cable….”(注意此时必须将实验目标板通过并口与PC相连,同时打开实验箱的电源!),屏上显示下图。

计算机组成原理第3章 运算方法和运算器

计算机组成原理第3章 运算方法和运算器
⑤如果运算的结果超过机器字长所能表示的范
6
3 如何用加法器实现补码加减法呢?图3.1给出 了补码加减运算器示意框图。图中有一个n+1位加 法器(∑0~∑n),提供操作数与暂存结果的寄存 器A与B(n+1)位,运算器功能为A±B→A。现以 粗框表示寄存器,只画出其中一位加、减控制逻辑
7
图3.1
补码加减运算器示意框图
第 3章
运算器是计算机系统的重要组成部件,它在控 制器的控制下实现其功能。主要完成算术运算和逻 辑运算,也是数据信息的重要传送通道。本章主要 讨论运算方法和运算器,内容包括算术逻辑运算基础 、算术逻辑运算部件ALU、定点乘法运算、定点除 法运算、浮点算术运算及其实现,以及运算器的基
1
第一节 前一章我们介绍了定点数是指小数点位置固定 的数,这一特点决定了其表示的数值范围是有限的, 其要求的硬件比较简单。在计算机中,带符号的数 有原码、补码、反码等几种表示方法,原码加减和 补码加减是一切算术运算的基础。但原码加减运算 复杂,例如,加法指令指示做(+A)+(-B),由 于一操作数为负,实际操作是做减法(+A)-(+ B),结果符号与绝对值大的数的符号相同。
47
图3.8
组间串行进位的ALU图
48
图3.9
组间并行进位的ALU
49
运算器中除了有作为核心部件的加法器外,还 应该有能提供操作数和暂存运算结果的寄存器和数
50
运算器中的各个部件之间需要通信,为了简化 通信线路,通常采用总线方式。常采用三态门来控 制总线上的数据传送方向。例如对于8位单向总线, 其控制逻辑如图3.10所示,当T=0(有效)时,三 态门开通,8位的数据可以从a端传送到b端,通过 8条总线可以从源件传送到目的件中;当T=1(无 效)时,三态门关闭,跟b端相连的数据总线处于

计算机组成原理计算机的运算方法(共56张PPT)精选全文

计算机组成原理计算机的运算方法(共56张PPT)精选全文

10 0001 0000
0000
0001
……
……
1001
1010
0
00110000
1
00110001
……
9
00111001
A
16 0001 0110
1111
F
由于ASCII码低四位与BCD码相同,转换方便。 ASCII码左移四位得BCD码, BCD码前加0011得ASCII码。
一般采用二进制运算的计算机中不采用BCD码,矫正不方便。 商用计算机中采用BCD码,专门设置有十进制运算电路。
八进制数与十六进制数之间,可将二进制数作为中介进行转换。
、数值的处理(数制转换)
3) BCD码(十进制):P214-215
如果计算机以二进制进行运算和处理时,只要在输入输出处理时进
行二 / 十进制转换即可。
但在商业统计中,二 / 十进制转换存在两个问题:
(1)转换占用实际运算很大的时间; (2)十进制的,无法用二进制精确表示;
例:将(0. 1)10转换成二进制数 ( 要求5位有效位) 。
结果
0.1×2
最高位 0 .2×2
… 0 .4×2
0 .8×2
1 .6×2
1 .2×2
0 .4×2
直到乘积的小数部分为0,
或结果已满足所需精度要求为止.
0 .8×2
最低位 1 .6000
可能永远乘不完,小数部分不为0, 意味存在一点误差。
2 105
余数
结果
2 52
1
2 26
0
2 13
0
26
1
23
0
21
1
0
1
直到商等于0为止

电子科技大学计组期末总复习资料

电子科技大学计组期末总复习资料
(3)內总线 单向数据总线(ALU总线),实现数据分配。 (4)与系统总线的连接 由MAR、MDR实现连接。
1.4 CPU工作机制 1.4.1指令流程(寄存器传送级)
用寄存器传送语言描述指令从读取到执行的整个 流程。 拟定流程的关键:清楚了解数据通路结构 熟练掌握基本寻址方式 1、基本寻址方式(模型机) 寄存器寻址 :R 寄存器间址 :(R) 自减型寄存器间址 :–(R)、–(SP) (用于入栈操作) 自增型寄存器间址 :(R)+、(SP)+ (用于出栈操作) 立即寻址 :(PC)+ 变址:X(R) 相对寻址 :X(PC)
计算机组成原理总复习
主要内容: 1、计算机的性能指标
基本字长、存储容量、运算速度、
数据传输率 2、信息的表示 数据信息的表示、指令信息的表示
3、CPU (1)逻辑组成 寄存器、ALU设置,数据通路结构 (2)工作机制
寄存器传送级: 各类指令的流程 指令的执 行过程 微操作控制级:微命令序列
微命令序列 组合逻辑控制 微命令产生方式 微程序控制 时序控制方式: 同步控制
1.4.2微命令序列
指令流程在微操作级的具体实现。 微命令设置: (1)数据通路操作 ALU输入选择:R0 A、C B、…… ALU功能选择:加、减、加1、传送、…… 移位功能选择:左移、右移、直送、…… 结果分配:CPR0、CPR1、CPC、…… (2)访存操作 地址使能EMAR、读R、写W(读/写 R/W)、 置入SMDR、置入SIR
(3)IEEE754标准
符号位 阶码 尾数 总位数 数值 s e-127 短实数 1 8 23 32 (-1)× 1.M × 2 s e-1023 长实数 1 11 52 64 (-1)× 1.M × 2 临时实数 1 15 64 80 s为0表示正数; s为1表示负数。 长实数e为1~2046(11位), =真值+1023;M为52位。 例、十进制数5的短实数IEEE754代码为( A. 01000000101000000000000000000000 B. 11000000101000000000000000000000 C. 01100000101000000000000000000000 D. 11000000101100000000000000000000 )。

计算机组成原理第3章

计算机组成原理第3章

补码加、减运算举例
【例】已知x =-0.10111,y=-0.10001,求 1/2(x+y) 。 解: ∵[x]变补=11.01001,[y]变补=11.01111, ∴[ 1/2x]变补=11.10101,[ 1/2y]变补=11.10111;[ 1/2x] 变补是对[x]变补右移一位得到的,由于移位时丢掉了最低位1, 所以对[x]变补右移一位得到的结果(11.10100)进行修正, 即在最低位加1,便得到[ 1/2x]变补。 [ 1/2(x+y)]变补= [ 1/2x]变补+[ 1/2y]变补=11.10101+ 11.10111=11.01100 溢出判断:由于结果的双符号位相同,未产生溢出,运算结果正 确
2、补码加、减运算具体实现
补码表示的数的加减运算可以采用同一个电路实现。其核 心部分是全加器(运算电路的延迟时间
则全加器的Si的时间延迟为6T(每级异或门的延迟为3T),Ci+1的 时间延迟为5T。 则:一个n位的行波进位加法器的时间延迟ta为: ta=n×2T+9T
原码一位乘法举例
举例:假定 X=0.1101 Y=0.1011
原码一位乘法实现电路
实现原理框图:
Cj A Af CR 加法器 =1 Cn C Cn 移 位 脉 冲
&
& Bf C f Cn CT Q
启动
时钟脉冲
B
结束
2.2 2、原码两位乘法原理
两位乘数的取值可以有四种可能组合,每种组合对应于以下操作: 00 相当于0×X,部分积Pi右移2位,不进行其它运算; 01 相当于1×X,部分积Pi+ X后右称2位; 10 相当于2×X,部分积 Pi+ 2X后右移2位; 11 相当于3×X,部分积 Pi + 3X后右移2位。 上面出现了 + 1X, + 2X, + 3X 三种情况,+X 容易实现,+2X可把X左移1 位得2X,在机器内通常采用向左斜1位传送来实现。可是+3X一般不能一次完成, 如分成两次进行,又降低了计算速度。解决问题的办法是备: 以 +(4X-X) 来 代替 +3X运算,在本次运算中只执行 -X, 而 +4X 则归并到下一步执行,因为 下一步运算时,前一次的部分积已右移了两位,上一步欠下的 +4X 在本步已 变成 +X。实际线路中要用一个触发器C来记录是否欠下+4X的操作尚未执行, 若是,则1→C。因此实际操作要用Yi-1 Yi C三位的组合值来控制乘法运算操 作,运算规则如表2.12所示。

计算机组成原理--运算方法:加减乘除

计算机组成原理--运算方法:加减乘除

计算机组成原理--运算⽅法:加减乘除补码加减法补码加法公式:[x+y]补=[x]补+[y]补补码减法:为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补(证明)为了求得同时[-y]补,需要证明[-y]补=[y]补+2^-n(意义是[-y]补等于[y]补取反,末位加1)溢出检测溢出的检测可能产⽣溢出的情况两正数加,变负数,上溢(⼤于机器所能表⽰的最⼤数)两负数加,变正数,下溢(⼩于机器所能表⽰的最⼩数)定点原码乘法定点乘法原理n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,⽽FA只有两个输⼊端,机器⼀次只能进⾏两个数的相加,不能进⾏多个数据的加法。

⼿⼯计算中,乘数的每⼀位是0还是1都可直接看见,⽽在计算机中,采⽤放乘数的寄存器的每⼀位直接决定本次相加数是被乘数还是0是很不⽅便的,若采⽤该寄存器的最低⼀位来执⾏这种判断就简便了。

计算机中执⾏乘法时,积的符号位由被乘数和乘数的符号位通过⼀个半加器(即异或门)实现。

数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移⼀位,得到新的部分积;当Yi为0时,则写下全0。

然后再对乘数Y的⾼⼀位进⾏类似乘法运算。

重复“加—右移”操作N次,可得到最后的乘积。

R0存放部分积,R2存放被乘数,R1存放乘数R0清零,R2存放被乘数,R1存放乘数。

乘法开始时,“启动”信号时控制CX置1,于是开启时序脉冲T,当乘数寄存器R1最末位为“1“时,部分积Z和被乘数X在加法器中相加,其结果输出⾄R0的输⼊端。

⼀旦控制脉冲T到来,控制信号LDR0使部分积右移1位,与此同时,乘数寄存其R1也在控制信号LDR1作⽤下右移⼀位,且计数器I记数⼀次;将步骤三重复执⾏N次当计数器I=n时,计数器I的溢出信号使控制触法器CX置0,关闭时序脉冲T,乘法宣告结束原码算法存在的缺点:⼀是符号位需要单独运算,最后给运算结构以正确的符号;⼆是对于采⽤补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,这样很不⽅便,⽽且影响速度。

《计算机组成原理》教程第3章上运算方法与运算器

《计算机组成原理》教程第3章上运算方法与运算器

解:
[X]补= 00.1 0 0 1 +[Y]补= 00.0 1 0 1 [X+Y]补= 00.1 1 1 0
两个符号位相同,运算结果无溢出 X+Y=+0.1110
例3
设有效数值位为4, X= 0.1011,Y= 0.0111,求 [X+Y]=?
解:
[X]补= 00. 1 0 1 1 + [Y]补= 00. 0 1 1 1 [X+Y]补= 01. 0 0 1 0


1. 补码加减的基本公式

补码加法的基本公式为: 整数 [A]补+[B]补=[A+B]补 (mod 2n+1) 小数 [A]补+[B]补=[A+B]补 (mod 2)
对于减法因A-B=A+(-B),则[A-B]补=[A+(-B)] 补,由补码加法基本公式可得: 整数 [A-B]补=[A]补+[-B]补 (mod 2n+1) 小数 [A-B]补=[A]补+[-B]补 (mod 2)

补码的加、减法的例子
[X+Y]补= [X]补+[Y]补
(a) (-7)+(+5)
1,001 0,101 1,110
[X-Y]补= [X]补+[-Y]补
(b) (-4)+(+4)
1,100 计算机中这种超出机器字 0,100 长的现象,称为溢出。 1 0,000 =0 在补码定点运算中,必须 对结果是否溢出做成明确 (d) (-7)+(-6) 的判断。
两个符号位10不同,运算结果负溢出。
双符号位溢出判断法
双符号含义: 00表示运算结果为正数; 01表示运算结果正溢出; 10表示运算结果负溢出; 11表示运算结果为负数。 第一位符号位为运算结果的真正符号位。

计算机组成原理-第3章运算方法与运算器

计算机组成原理-第3章运算方法与运算器

03
浮点数运算方法
浮点加减法运算
对阶操作
使两个浮点数的阶码 相等,即小数点位置 对齐。
尾数相加/减
将对阶后的两个浮点 数尾数按定点数加减 规则进行运算。
规格化
将运算结果规格化为 标准形式,包括左规 和右规两种情况。
舍入处理
对规格化后的结果进 行舍入,以减小误差。
溢出判断
判断运算结果是否溢 出,若溢出则作相应 处理。
浮点乘法运算
尾数相乘
将两个浮点数的尾 数按定点数乘法规 则进行运算。
舍入处理
对规格化后的结果 进行舍入。
阶码相加
将两个浮点数的阶 码相加,得到积的 阶码。
规格化
将乘积规格化为标 准形式。
溢出判断
判断运算结果是否 溢出。
浮点除法运算
溢出判断
判断运算结果是否溢出。
阶码相减
将被除数的阶码减去除数的阶码,得到商 的阶码。
THANKS
感谢观看
运算器基本功能及组成
寄存器组
用于暂存操作数和运算结果。
数据总线
连接各部件,实现数据传输。
控制逻辑
控制运算器的操作。
数据通路与控制器设计
数据流
描述数据在运算器中的流动路径 。
控制信号
控制数据的流动和运算的执行。
数据通路与控制器设计
指令译码
将指令转换为控制信号。
时序控制
确定各操作的时间顺序。
微操作控制
01
02
03
04
05
运算方法与运算 器的基本…
定点数与浮点数 的表示方法
定点数的加减运 算
浮点数的加减运 运算器的组成与

设计
介绍了运算方法和运算器 的基本概念和分类,包括 算术运算、逻辑运算、移 位运算等。

计算机组成原理第3章运算方法和运算器

计算机组成原理第3章运算方法和运算器
上一页 下一页 返回
3.3 定点乘法运算
• 由此可见,阵列乘法可用“乘加单元”电路实现。
• 1.阵列乘法器的逻辑框图(图3-4)
• 2.n×n位阵列乘法器的构成
• ①被加数位积产生部件:n×n个“与门”。
• ②被加数求和部件:n× (n-1)个加法器。
•将
位权2i+j相等的位积相加。
上一页
返回
3.4 定点除法运算
组成。 • 3.BCD (8-4-2-1)码加法器 • ①和数的修正。
上一页 下一页 返回
3.2 加法器
• 若和数≥(1010)2,应有进位,和数加(110)2修正;若和 数≤(1001)2,无进位,则和数不必修正。
• ②进位的形成。

利用Ci+1=1修正和数。
上一页
返回
3.3 定点乘法运算
• 计算机实现乘除法运算的方法有三种,分别是:用程序实现;在加法 器、寄存器中增添控制电路实现;用阵列乘除法器实现。
• (2)算法特点 • ①操作数的符号位均作为数的一部分参加运算。 • ②商的符号及数位用统一的上商规则进行。
上一页
返回
3.5 定点运算器的组成与结构
• 3.5.1 逻辑运算
• 1.逻辑数
• 通常用“1”表示逻辑真,用“0”表示逻辑假的非数值数据。
• 2.计算机的基本逻辑运算
• (1)逻辑非(x-)运算
• 为了判断“溢出”是否发生,可采用两种检测的方法。第一种方法是 采用双符号位法,这称为“变形补码”或“模4补码”,从而可使模 2补码所能表示的数的范围扩大一倍。
• 为了得到两数变形补码之和等于两数之和的变形补码,同样必须: • ①将两个符号位都看作数码参加运算。 • ②两数进行以4为模的加法,即最高符号位上产生的进位要丢掉。

计算机组成原理 运算器与运算方法

计算机组成原理 运算器与运算方法
R3(H) R3(L) (d) 表示高低字段
或者:中、小规模集成RAM。
12
顺序脉冲发生器
顺序脉冲发生器:产生一组在时间上有先后顺序的脉冲。
用途: 机器执行指令时,是将一条指令分成一些有先后顺序 的基本动作; 控制器发生一系列节拍脉冲,控制这些基本动作有顺序 地的完成,实现一条指令的功能。
电路组成: 计数器:按设计要求计脉冲CP的个数。 译码器:将计数器状态翻译成对应输出端的高低电平,顺 序输出脉冲信号。
移位线路是一个多路选 择器。
图3.2 实现移位功能的 多路选择器(1位)
8
逻辑门电路的分类
组合逻辑电路
不具备记忆功能,任意时刻的输出信号仅取决 于该时刻的输入信号,而与电路过去的电平状 态无关。 建立在简单逻辑门基础上,可以直接用真值表 和逻辑表达式表示。如移位器。
时序逻辑电路
具有记忆功能,电路的输出不仅取决于当时的 输入状况,而且取决于电路的状态。 建立在触发器的基础上,如寄存器、计数器
Pm4Pm3Pm2 Gm1+Pm4Pm3Pm2P m1C0 与组内进位表达式相似
并行进位链结构相同.
31
组间由先行进位链构成的16位加法器
可将并行进位的概念用于更大位数的加法器上,随着加 法器位数的增加,加法电路变得越来越复杂。
32
3.2.3 ALU部件
多功能算术/逻辑单元(ALU)的基本思想: 将全加器的功能扩展以完成多种算术逻辑运算。
组间为串行进位构成的16位加法器
Hale Waihona Puke 组内并行、组间串行:在各加法单元之间,进位信号
是串行传送的,而在加法单元内,进位信号是并行
传送的。
29
16位加法器
并行进位的概念可用于16位加法器; 进一步提高16位加法器的运算速度。 组间进位: C4=G4+P4G3+ P4P3G2+ P4P3P2G1+P4P3P2P1C0 表示成:Cm=Gm+PmC0

计算机组成原理-03运算方法和运算器

计算机组成原理-03运算方法和运算器
• 真值 带符号位的机器数对应的数值
例9:写出机器数(01001)2、(11011)2的真值
[01001]真值 = (+1001)2 = +9 [11011]真值 = (-1011)2 = -11
符号数的机器码表示
• 原码表示法 • 反码表示法 • 补码表示法
原码表示法
设机器字长为n+1位,定点小数的原码形式为x0. x1x2…xn (x0为符号位) ,则定点小数的原码定义如下:
1. 进位计数制
十进制每位的值等于该位的权与该位数码的乘积。 一个十进制数可以写成按权展开的多项式和的形式。
例如:将十进制数789.23按权展开
789.23 = 7 10 2 8 10 1 9 10 0 2 10 1 3 10 2
2. 二进制
❖ 二进制
基数为2的计数制叫二进制。二进制只有“0”和 “1”两种数码,计数逢二进一。
即取其原码的反码再加1: [ x]补 [ x]反 1 2.(1)正数的补码与原码一样;
(2)负数的补码:
– 将原码符号位保持“1”之后, – 尾数部分自低位向高位数,第一个1以及之前的0保持不变,
以后的各高位按位变反。
由补码求原码的方法:补码再求补
补码的性质
• 补码的符号位是数值的一部分,可直接参与 运算
补码表示法
设模为M,则x的补码定义如下: [x]补=M+x (mod M)
设机器字长为n+1位,定点小数的补码形式为x0. x1x2…xn
(x0为符号位) ,则定点小数的补码定义如下:
x
0<=x<1
[x]补=x0. x1x2…xn= 2+x=2-|x|
mod 2 -1<x<=0

计算机组成原理课件第三章运算器与运算方法3.2

计算机组成原理课件第三章运算器与运算方法3.2
• 原码做加减运算时,数值位和符号位要分别处理,还是 比较麻烦的。为了使运算简单化,计算机中广泛采用补码 进行加减运算。
• 补码运算的特点是数据位和符号位一起运算。补码的加减 法公式是:
• [X+Y]补=[X]补+[Y]补 • [X-Y]补=[X]补+3;0.1010101B,Y= -0.0010011B,求[X+Y]补和[XY]补。
3.2.1原码定点加、减法
• [例3-1]已知X=-0000011B,Y=-0001010B,在原码机中计
算[X+Y]原。

解:原码机中,两个加数的形式是[X]原=10000011,
[Y]原=10001010
• ①判断符号位:Xs=1,Ys=1,两个加数的符号位同号,
对数值部分求和

②数值部分加法运算:0000011+0001010=0001101
– [40]补=00101000 – [-12]补=11110100 – [40-12]补=00101000+11110100=00011100 – [40-12]补=[28]补=00011100
3.2.3溢出及检测
• 在计算机中,每种数据编码都有其数据表示范围。在运算 中发生了数据溢出,则运算结果就不是正确的了。因此, 运算器中应设置溢出判断线路和溢出标志位。
• [例3-5]设X=+ 1011B,Y=+1001B,求[X+Y]补
– [X]补=01011,[Y]补=01001,[X+Y]补=10100
• 采用操作数和运算结果符号位判断方法,Xs=0,Ys=0, Zs=1,所以,VF=1,结果溢出。
• 采用变形补码运算时,[X]补=00 1011 ,[Y]补=00 1001, [X+Y]补=01 0100,结果的符号位为01,所以结果溢出。

电子科技大学,计算机组成原理3计算机组成原理-3-5-组合逻辑控制方式

电子科技大学,计算机组成原理3计算机组成原理-3-5-组合逻辑控制方式

3.5.3 微命令的综合与产生
归纳微命令,综合化简条件,用组合逻辑电路实现。 例: 读令R= FT0 +MOV(ST1+ST4+……) +…… CPPC = FT0 P +MOV(ST2+DT2) X P +……
组合逻辑方式的缺点: (1)设计不规整 (2)不容易修改或扩展
由硬件完成
(2)时钟周期(节拍)T 1)时钟周期时间: 1微秒 完成一步操作:
一次从M读出,并经数据通路传送的操作;或
一次数据通路传送操作;或
一次向M写入的操作
模型机以访存时间作为一步操作时间。 一个总线 周期等于一个时钟周期,可根据需要扩展。
2)时钟周期数: 一个工作周期中的时钟数可变。
每个工作周期第一拍T=0,
操作时间表中各微命令的含义:
(1) 控制访存操作的微命令 EMAR, R/W, SIR, … (2) 控制CPU内部数据通路操作微命令
PCA, S3S2S1S0M, DM, CPPC, …
(3) 控制时序切换的微命令
1ST/DT/ET, CPFT/ST/DT/ET, CPT, …
(2)传送指令 1)流程图 例1:MOV R0,R1; FT0: M ET0: R1 ET1: PC 例2:MOV(R0),(R1); FT0: M ST0: R1 ST1: M DT0: R0 ET0: C ET1: MDR ET2: PC
IR,PC+1 R0 MAR
PC
IR, PC+1 PC MAR 源数 MDR C MAR 目的地址 MDR M MAR
IR 例3:MOV X(R0),X(R1);FT0: M PC+1 PC 形地 MAR ST0: PC 取源操作数, MDR C ST1: M 暂存于C, ST2: PC+1 PC 源数 MAR ST3: C+R1 需5步。 MDR C ST4: M 形地 MAR DT0: PC 取目的地址, MDR D DT1: M 暂存于MAR, 目的地址 PC+1 PC DT2: 需4步。 MAR DT3: D+R0 MDR ET0: C 源数送存储器, M ET1: MDR 需3步。 MAR ET2: PC

计算机组成原理第3章 运算器和运算方法

计算机组成原理第3章 运算器和运算方法

第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。

2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。

(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。

(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 硬件判断逻辑一(SA、SB与Sf的关系)
(2)A=10 B=7 10+7 :0 1010 0 0111 正溢 1 0001 溢出= SA SB Sf (4)A= -10 B= -7 1 -10+(-7): 0110 1 1001 负溢 0 1111 SA SB Sf
2. 硬件判断逻辑二(Cf与C的关系)
(2)A=10 B=7 10+7: 0 1010 010111 Cf=0 C =1 1 0001 正溢 (4)A= -10 B= -7 1 -10+(-7): 0110 Cf=1 11 1001 C =0 0 1111 负溢 (6)A= -6 B=4 -6+4: 1 1010 Cf=0 0 0100 C =0 1 1110 正确
第3节
运算方法
3.3.1 定点加减运算
数用补码表示,符号位参加运算。 实际操作能否只取决于操作码? 结果需不需修正? 如何将减法转换为加法?
1. 补码加减的基本关系式 ( X + Y )补 = X补 + Y补 ( X - Y )补 = X补 + (-Y)补
举例: 求(X操作码为“加”时,两数直接相加。
1. 硬件判断逻辑一(SA、SB与Sf的关系)
(2)A=10 B=7 10+7 : 0 1010 010111 1 0001 (4)A= -10 B= -7 1 -10+(-7): 0110 11 1001 0 1111
溢出= SA SB Sf
SA SB Sf
2. 硬件判断逻辑二(Cf与C的关系) 溢出= Cf C 3. 硬件判断逻辑三(双符号位)

A
+1
∑ A:打开控制门,将结 果送A输入端。 CPA:将结果打入A。
+A
+B
A B B
A(X补)
CPA
B(Y补)
+B
分别讨论控制命令序列
3.3.2 溢出判断与移位
在什么情况下可能产生溢出?
例.数A有4位尾数,1位符号SA 数B有4位尾数,1位符号SB 结果符号Sf 符号位参 加运算
符号位进位Cf
( X + Y )补 = X补 + Y补 ( X – Y )补 = X补 + (–Y)补
(1) (2)
式(2):操作码为“减”时,将减转换为加。 即将减数变补后与被减数相加。
将Y变补
Y补
(–Y)补: 不管Y补为正或负,将其符号连同
尾数一起各位变反,末位加1。
举例:求(X – Y)补
2) X= –4 X补=1 1100 1) X= 4 X补=0 0100 Y= 5 Y补=0 0101 Y= –5 Y补=1 1011 (-Y)补=1 1011 (-Y)补=0 0101 0 1001 1 0111 9补码) (– (+9补码)
(4)乘数末位(Cn)为判断位,其状态决定
下步操作;
(5)作n次循环(累加、右移)。
4.逻辑实现
加法器输入端控制信号:+A、+B
加法器输出端控制信号:1/2∑ A、C、CPA、CPC
A4
CPA
A3 门3 ∑3
A2 门2 ∑2
A1 门1 ∑1
C4 门4
C3 门3 C4
C2 门2
C3
C1 门1
C2
CPC
4.负数补码移位规则
(1)单符号位 :
1 1011 左移 1 0110 右移 1 1011 右移 1 1101
(2)双符号位:
11 0110 左移 10 1100 右移 11 0110 右移 11 1011
(3)移位规则
数符不变 (单:符号位不变;双:第一符号位不变)。 左移空位补0 右移空位补1(第二符号位移至尾数最高位)。
(1)A=3 B=2 3+2: 0 0011 Cf=0 0 0010 C =0 0 0101 正确 (3)A= -3 B= -2 1 -3+(-2): 1101 Cf=1 1111110 C =1 1 1011 正确 (5)A=6 B= -4 0 6+(-4): 0110 Cf=1 1111100 C =1 0 0010 正确
(1)3+2: (2)10+7: 00 0011 第一符号位Sf1 00 1010 00 0010 00 0111 00 0101 正确 01 0001 (3)-3+(-2): (4)-10+(-7): 11 1101 第二符号位Sf2 11 0110 11 1110 11 1001 11 1011 正确 10 1111 (5)6+(-4): (6)-6+4: 00 0110 11 1010 11 1100 00 0100 00 0010 正确 11 1110
1 00101原
1 11011补
2. 末位恒置1(原码、补码)
例. 保留4位尾数: 0 00100原
0 0010原 1 0011原 1 1110补
1 00101原 1 11011补
0 0011原 1 0011原 1 1101补
3.3.3 定点乘法运算
乘法 部分积累加、移位。
1、 原码一位乘法
每次用一位乘数去乘被乘数。
注意:某数的补码表示与某数变补的区别。 例. 1 0101原 1 1011 补码表示 0 0101原 0 0101
1 0011补 0 0011补
变补 变补 补码表示
符号位不变; 负数尾数改变, 正数尾数不变。 符号位改变, 尾数改变。 补码的机器负数
0 1101 1 1101
2. 补码加减运算规则

2.比较法算法 Yn(高位) Yn+1(低位) 0 0 (0) 0 1 (1) 1 0 (-1 ) 1 1 (0)
操作(A补为部分积累加和) 1/2A补 1/2(A补+X补) 1/2(A补-X补) 1/2A补
-1 -2 -n
Yn-2 Yn)
-1 -2
-n
= X补 (Y1-Y0)+2 (Y2-Y1)+2 (Y3-Y2)+…… +2 (0 n+1 -Yn) 令 Yn+1=0 Y 比较法:用相邻两位乘数比较的结果决定
+X补、-X补或+0
令[A0]补=0,[A1]补、[A2]补、…、[An]补依次 为各步求得的累加并且右移后的部分积,则
1) X=3 X补=0 0011 2) X= –3 X补=1 1101 Y=2 Y补=0 0010 Y= –2 Y补=1 1110 0 0101 1 1011 – 5补码) ( (+5补码)
4) X= –3 X补=1 1101 3) X= 3 X补=0 0011 Y= 2 Y补=0 0010 Y= –2 Y补=1 1110 1 1111(–1补码) 0 0001 (+1补码)
正溢
负溢
正确
1. 硬件判断逻辑一(SA、SB与Sf的关系)
(2)A=10 B=7 10+7 : 0 1010 0 0111 1 0001 (4)A= -10 B= -7 1 -10+(-7): 0110 1 1001 0 1111
溢出= SA SB Sf 溢出= Cf C
SA SB Sf
2. 硬件判断逻辑二(Cf与C的关系) 3. 硬件判断逻辑三(双符号位) 溢出= Sf1 Sf2
门4
1/2∑ A
C
∑4
+A +B A1 B1
2、 补码一位乘法 1.算法分析(比较法)
X补 = X0.X1X2……Xn (1)Y为正:Y补 = 0.Y1Y2……Yn (XY)补 = X补(0.Y1Y2……Yn) (2)Y为负:Y补 = 1.Y1Y2……Yn (XY)补 = X补(0.Y1Y2……Yn)+(-X)补 (3)Y符号任意: (XY)补 = X补(0.Y1Y2……Yn)+(-X)补Y0
操作
C Cn .1011
1.101
11.10 111.1 1111 1111
2.算法流程
0 A、X B、Y C、0 N 1/2(A+0) A,C CR
Cn = 1 ?
Y 1/2(A+B) A,C CR + 1 N CR
CR = n ? Y
SX + SY
SA
3.运算规则
(1)操作数、结果用原码表示; (2)绝对值运算,符号单独处理; (3)被乘数(B)、累加和(A)取双符号位;
1.算法分析
X原
Y原
例. 0.1101×1.1011
乘积 P = X × Y
积符 SP= SX + SY
0.1101 ×0.1011 部分积 1101 1101 0000 1101 0.10001111 上符号:1.10001111 问题:1)加数增多(由乘数位数决定)。
2)加数的位数增多(与被乘数、乘数位 数有关)。
双符号位总结:
00 ---- 结果为正,无溢出
Sf1Sf2 01 ---- 结果正溢出
10 ---- 结果负溢出
11 ---- 结果为负,无溢出
移位操作
1. 逻辑移位
:数码位置变化,数值不变。
10001111 循环左移: 0 0 0 1 1 1 1 1
2. 算术移位
:数码位置变化,数值变化, 符号位不变。
右斜
∑4
3.正数补码移位规则
(1)单符号位 :
左移
右移 右移
(2)双符号位:
左移
左移 右移 右移
0 0111 0 1110 0 0111 0 0011
(3)移位规则
00 0111 00 1110 01 1100 00 1110 00 0111
相关文档
最新文档