第三章 运算方法和运算部件(3-3,4,5)

合集下载

2019精品第三章运算方法与运算器部件化学

2019精品第三章运算方法与运算器部件化学
若二进制的位数是8,求其表示的最大值、最 小值及表示数的个数
整数 127,-127; 小数 127/128,-127/128; 个数:255
26
原码特点:
表示简单,易于同真值之间进行转换, 实现乘除运算规则简单。 进行加减运算十分麻烦。
27
2、补码表示法 模:计量器具的容量,或称为模数。
[X+Y]补= [X]补+[Y]补 定点补码运算在减法运算时的基本规则:
[X-Y]补=[X]补+[-Y]补
37
例如:已知机器字长n=8,X=44,Y=53, 求X+Y=?
解:[X]原=00101100,[Y]原=00110101 [X]补=00101100,[Y]补=00110101
5
例如:写出(1101.01)2,(237)8,(10D)16的十 进制数 (1101.01)2=1×23+1×22+0×21+1×20+
0×2-1+1×2-2 =8+4+1+0.25=13.25
(237)8=2×82+3×21+7×20 =128+24+7=159
(10D)16=1×162+13×160=256+13=269
11
二进制转换成八进制
例:(10110111 .01101) 2 二进制: 10 ,110 , 111 . 011 , 01 二进制: 010 ,110 , 111 . 011 , 010 八进制: 2 6 7 . 3 2
(10110111.01101) 2 =(267.32)8
12
八进制转换二进制
4
2、进位计数制之间的转换

计算机组成与结构(全)第3章运算方法和运算部

计算机组成与结构(全)第3章运算方法和运算部

Xn -2= -1+
i 1
Xi•2-i
X= - X0 + 0. X1 X2 … Xn
2021/6/26
整理课件
40
补码的右移
[X]补 =X0.X1 X2 … Xn X= - X0 + 0. X1 X2 … Xn
1
2 X = (- X0 + 0. X1 X2 … Xn )/2
能表示的最小负整数为_(9)_。
C (8)A.2047
B.2048
C.4095
D.4096
A (9)A.-2047
B.-2048
C.-4095
D.-4096
2021/6/26
整理课件
29
3.3 二进制乘法运算
要求: 掌握原码一位乘法 理解补码一位乘法 了解原码二位乘法
3.3.1 定点数一位乘法 3.3.2 定点数二位乘法
2021/6/26
整理课件
36
思考题
用原码一位乘计算X = --0.1101,Y = --0.1011
2021/6/26
整理课件
37
+X
右移 +X
右移 +0
右移 +X
右移
00 0000 00 1101 00 1101 00 0110 00 1101 01 0011 00 1001 00 0000 00 1001 00 0100 00 1101 01 0001 00 1000
数据精度:一个数的有效位数。从第一个不 为0 的数开始算起。
例:C++中 short int 类型变量占4个字节
[-32768,32767]
X=0.0001100,有效位数为

第三章 运算方法

第三章 运算方法

第三章运算方法一名词解释(1)溢出——在运算过程中如出现数据超过这个数表示范围的现象,称溢出。

(2)运算器——运算器是一个用于信息加工的部件,又称执行部件。

它对数据进行算术运算和逻辑运算。

(3)并行加法器——全加器的位数与操作数的位数的加法器称并行加法器。

(4)进位链——进位信号的产生与传递的逻辑结构称为进位链。

(5)进位产生函数——当xi与yi都为1时,Ci=1,即有进位信号产生,所以将xiyi称为进位产生函数,以Gi表示。

(6)进位传递函数——当xi⊕yi=1、Ci-1=1时,则Ci=1。

这种情况可看作是当xi⊕yi=1时,第i-1位的进位信号Ci-1可以通过本位向高位传送。

因此把xi⊕yi称为进位传递函数,以Pi表示。

(7)桶形移位器——在选择电路的控制下可以实现左移、右移、直送操作的具有移位功能的电路。

一.选择题1.大部分计算机内的减法是用_____实现。

A.将被减数加到减数中B.从被减数中减去减数C.补码数的相加 D.补码数的相减2.原码加减法是_____。

A.操作数用原码表示,连符号位直接相加减B.操作数用原码表示,尾数直接相加减,符号位单独处理C.操作数用原码表示,根据两数符号决定实际操作,符号位单独处理D.操作数取绝对值,直接相加减,符号位单独处理3.补码加减法是指______。

A.操作数用补码表示,两尾数加减,符号位单独处理,减法用加法代替B.操作数用补码表示,符号位和尾数一起参加运算,结果的符号与加减相同C.操作数用补码表示,连符号位直接相加减,减某数用加负某数的补码代替,结果的符号在运算中形成D.操作数用补码表示,由数符决定两尾数的操作,符号位单独处理4.在原码加减交替除法中,符号位单独处理,参加操作的数是_____。

A.原码 B.绝对值C.绝对值的补码 D.补码5.两补码相加,采用1位符号位,则当_____时,表示结果溢出。

A.最高位有进位 B.最高位进位和次高位进位异或结果为0C.最高位为1 D.最高位进位和次高位进位异或结果为16.在下列有关不恢复余数法何时需恢复余数的说法中,正确的是_____。

第3章运算方法与运算器

第3章运算方法与运算器

教学内容安排•第一章绪论•第二章数码系统•第三章运算方法和运算器•第四章存储系统•第五章指令系统•第六章中央处理器•第七章输入输出设备•第八章输入输出系统第三章运算方法和运算器• 3.1组成计算机硬件电路的基本逻辑部件• 3.2机器数的加减运算及其实现• 3.3定点乘法及其实现• 3.4定点除法及其实现(了解)• 3.5浮点数的算术运算(了解)• 3.6运算器的组教学重点和难点•基本逻辑运算和逻辑电路•机器数的加减运算•定点原码一位乘第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件逻辑电路的基本概念•表示电路中输入信号与输出信号之间的关系的运算,为逻辑运算•赋以逻辑属性值“0”或“1”的变量,为逻辑变量。

•描述逻辑变量关系的函数(F=f(A,B)),为逻辑函数•实现逻辑函数功能的电路,为逻辑电路•逻辑电路可以做成计算机系统中常用的部件,为逻辑部件。

•逻辑部件分为:组合逻辑部件和时序逻辑电路•描述逻辑函数的值与它的逻辑变量之间关系的表格,称作真值表。

第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件逻辑代数中基本逻辑运算•逻辑与(逻辑乘)•逻辑或(逻辑加)•逻辑非(逻辑求反)•逻辑异或•逻辑同或第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件1.“与”逻辑------实现的电路叫与门只有决定事物结果的全部条件同时具备时,结果才会发生(有一个条件不具备,结果也不会发生)。

闭合1闭合1逻辑表达式第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件2.“或”逻辑------实现的电路叫或门决定事物结果的诸条件中只要有任何一个满足时,结果就发生,这种因果关系叫做逻辑“或”,换句话说,只有所给条件均不具备,结果才不会发生。

第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件3.“非”(反)逻辑-----实现的电路叫非门(或反相器)如果条件具备了,结果便不会发生;而条件不具备时结果一定发生。

精品文档-计算机组成与系统结构(裘雪红)-第3章

精品文档-计算机组成与系统结构(裘雪红)-第3章

(4) 运算结果为补码表示。
第3章 运算方法与运算器
10
2. 溢出判断 1) 溢出的概念 例3.4 有两个定点整数63和85,利用补码加法求63+85=? 解 根据题意,用8位二进制补码表示63和85:
第3章 运算方法与运算器
11
例3.5 设正整数X=+1000001,Y= +1000011,若用8位补 码表示,则[X]补=01000001,[Y]补=01000011,求[X+Y]补。
第3章 运算方法与运算器
15
(2) 进位判决法。若Cn-1为最高数值位向最高位(符号位)的 进位,Cn表示符号位的进位(即进位标志CF),则判别溢 出的逻辑表达式为
(3-4)
OF=Cn-1⊕Cn
溢出判定如表3.1所示。在例3.6的运算过程中,Cn-1为0而 Cn为1 ,故Cn-1⊕Cn=1,表示运算结果有溢出。
第3章 运算方法与运算器
28
图 3.3 四位先行进位链电路
第3章 运算方法与运算器
29
5. BCD数加法器 1) 8421 BCD码
第2章中已详细地介绍了BCD码。在所描述的几种BCD码中, 计算机中应用最广泛的是8421 BCD码。8421 BCD码只利用了四 位二进制编码的0000~1001这十种来表示十进制数的0~9,剩余的
(3-6)
第3章 运算方法与运算器
19
3. 一位全加器的实现
设一位全加器的输入分别为Xi和Yi,低一位对该位的进位 为Ci, 全加器的结果和向高一位的进位分别用Zi和Ci+1表示, 则 一位全加器所实现的逻辑表达式如下:
(3-7)
(3-8)
第3章 运算方法与运算器
20
实现上述逻辑功能的一位全加器的逻辑电路及其框图分别

计算机组成原理复习题带答案

计算机组成原理复习题带答案

第1章计算机系统概述一、选择题1、在下列四句话中,最能准确反映计算机主要功能的是 C。

A、计算机可以存储大量信息B、计算机能代替人的脑力劳动C、计算机是一种信息处理机D、计算机可实现高速运算2、1946年2月,在美国诞生了世界上第一台电子数字计算机,它的名字叫(1)C,1949年研制成功的世界上第一台存储程序式的计算机称为(2)。

(1)A、EDVAC B、EDSAC C、ENIAC D、UNIVAC-Ⅰ(2)A、EDVAC B、EDSAC C、ENIAC D、UNIVAC-Ⅰ3、计算机硬件能直接执行的只能是B。

A、符号语言B、机器语言C、汇编语言D、机器语言和汇编语言4、对计算机软、硬件资源进行管理,是 A 的功能。

A、操作系统B、数据库管理系统C、语言处理程序D、用户程序二、填空题1、计算机的各大部件通过____总线____________连接在一起,它是各部件之间传输信息的通道。

2、计算机按内部信息形式可以分为___模拟____________和___数字信号_两类。

3、计算机硬件一般由_运算器,控制器_______、__存储器______、_输入_______和、____输出____和五大部分组成。

4、运算器是一个数据加工部件,主要完成二进制___算术_______运算及__逻辑________运算。

5、运算器的___位数________越多,计算的精度就越高,但是所费的电子器件也越多,成本越高。

三、简答题1、简述计算机的发展过程。

1、第一代电子管计算机1946年2月,诞生了世界上第一台电子数字计算机——ENIAC ,1949年研制成功的世界上第一台存储程序式的计算机EDSAC 。

2、第二代晶体管计算机1947年在贝尔实验室制成第一个晶体管,进入20世纪50年代全球出现一场以晶体管代替电子管的革命。

3、第三代集成电路计算机4、大规模集成电路计算机5、超大规模集成电路计算机3、冯.诺依曼计算机的特点是什么?它包括哪些主要组成部分?各部分的功能是什么?1、计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成2、指令和数据以同等的地位存放在存储器内,并可以按地址寻访3、指令和数据均用二进制数表示4、指令由操作码和地址组成。

最新第3章 运算方法和运算部件课件PPT

最新第3章 运算方法和运算部件课件PPT
第3章 运算方法和运算部 件
第一讲:不同层次程序员看到的运算及ALU
主 要内 容
u C语言程序中涉及的运算
• 整数算术运、浮点数算术运算 • 按位、逻辑、移位、位扩展和位截断
u 指令集中与运算相关的指令( 以MIPS为参考 )
• 涉及到的定点数运算
- 算术运算
• 带符号整数运算:取负 / 符号扩展 / 加 / 减 / 乘 / 除 / 算术移位 • 无符号整数运算:0扩展 / 加 / 减 / 乘 / 除 - 逻辑运算 • 逻辑操作:与 / 或 / 非 / … • 移位操作:逻辑左移 / 逻辑右移 • 涉及到的浮点数运算:加、减、乘、除
07.01.2021
MIPS 逻辑运算指令
涉及到的操作数:32/16位 逻辑数 涉及到的操作:按位与 / 按位或 / 按位或非 / 左移 / 右移
07.01.2021
MIPS定点比较和分支指令
涉及到的操作数:32/16位 无符号数, 32/16位带符号

涉通及过到减的法操运作算:实大现小“比比较较和”相操等比较(有符号 / 无符
实现MIPS定点运算指令的思路: 先实现一个能进行基本算术运算(加/减)和基本逻辑运算、并 生成基本条件码(ZF/OF/CF/NF)的ALU,再由ALU和移位器 实现AL乘U、是除运运算算部器件。的核心!以下介绍ALU的实现。
07.01.2021
ALU的功能说明
ALUop 3
AN
Zero
ALU
N Result
subtract unsigned subu $1,$2,$3 $1 = $2 – $3 3 operands; no exceptions
add imm. unsign. addiu $1,$2,100 $1 = $2 + 100 + constant; no exceptions

第3章 运算方法和运算部件(2)

第3章 运算方法和运算部件(2)

解:v=(-1)0×2129-127×1.00011000000000000000000B =22×1.00011000000000000000000B =4×1.09375=4.375 除了以上的规格化浮点数之外,IEEE754还规定了以下4种特殊情况: (1)+0,-0:如果e=0且f=0,则v=(-1)s×0 (2)DNRM-非规格化数(denormalized):如果e=0但f≠0,则v=DNRM (3)+∞,-∞正负无穷大:如果e=255且f=0,则v=(-1)s∞ (4)NaN-不是一个数(not a number):如果e=255且f≠0,则v=NaN 除0之外,IEEE754单精度浮点数所能表示的绝对值最小的数为±2-126 除±∞之外,IEEE754单精度浮点数所能表示的绝对值最大的数为 ±2127×(2-2-23) IEEE754双精度(double-precision)浮点数格式:
其中,N为浮点数,M(mantissa)为尾数,E
(exponent)为阶码,R(radix)称为“阶的基数 (底)”,而且R为一常数,一般为2、8或16。 在一台计算机中,所有数据的R都是相同的,于是 不需要在每个数据中表示出来。 因此,浮点数的机内表示一般采用以下形式: MS E M 1位 n+1位 m位 MS是尾数的符号位,设置在最高位上。 E为阶码,有n+1位,一般为整数,其中有一位符 号位,设置在E的最高位上,用来表示正阶或负阶。
IEEE(Institute of Electrical and Electronic Engineers)754单精度(single-precision)浮点数格式: IEEE754浮点数由3部分构成:符号(sign)、阶码(exponent)和 尾数(fraction)。单精度的格式为32位,见下图:

运算方法和运算部件

运算方法和运算部件
N 1 6 K n 1 1 6 n 1 K n 2 1 6 n 2 … K 1 1 6 1 K 0 1 6 0 K 1 1 6 1 … K m 1 6 m
n 1
K i1 6 i i m
例如: ( 9 A B . F ) 1 6 9 1 6 2 1 0 1 6 1 1 1 1 6 0 1 5 1 6 1
n 1
K i1 0 i i m
例如:
2 3 6 1 . 7 2 1 0 3 3 1 0 2 6 1 0 1 1 1 0 0 7 1 0 1
2007.7.2
计算机组成原理
9
2)二进制(Binary)二进制是数字电路中应用最 广泛的计数制。因为在数字电路中通常只有高电平
和低电平两个状态。这两个状态刚好可以用二进制 数中的两个符号0和1来表示。它的运算规则简单,在 电路中易于实现。在二进制中,相邻位之间,低位逢 二向高位进一。它的基数为2,各位的系数Ki可以是0 或1,各位的权为2i。因而任一个n位二进制数N2可 表示为:
2007.7.2
计算机组成原理
17
③二进制数转换成八进制数
二进制数转换为八进制数的规则可以概括为 “三位并一位”。即以小数点为基数,整数部分从 右至左,每三位一组,最高位不足三位时,添0补 足三位;小数部分从左至右,每三位一组,最低有 效位不足三位时,添0补足三位。然后,将各组的 三位二进制数按22,21,20权展开后相加,得到一 位八进制数。
(15)8表示八进制数,
(15)16表示十六进制数。
2007.7.2
计算机组成原理
7
对于任何进制数,都有以下几个基本特点。
(1)基数 在某种数制中,允许使用的数字符号的个数, 称为这种数制的基数或基。例如:十进制的基数为10,有十 个数码0~9;二进制的基数为2,有两个数码0和1;八进制 的基数为8,有八个数码0~7;十六进制的基数为16,有十 六个数码0~9和A到F。

b o o t h 算 法

b o o t h 算 法

第三章运算方法与运算器文章目录定点补码加减法运算补码加减法运算方法溢出及检测溢出检测操作数与运算结果的符号位是否一致最高位的进位和符号位的进位是否一致变形补码补码加减法的逻辑实现移码加减运算及实现逻辑移码的加法运算移码加减法的溢出判断直接采用移码运算的溢出判断方法采用双符号判断定点乘法运算机器数的移位操作原码一位乘法原码一位乘法符号位的确定乘积的数值补码一位乘法运算规则(booth算法)阵列乘法器定点除法运算原码一位除法原码恢复余数法原码不恢复余数法不恢复余数的补码一位除法浮点运算浮点数加减运算阶码和尾数采用补码表示的浮点数加减运算IEEE 754浮点数的加减运算浮点数乘法运算浮点数除法运算逻辑运算运算器定点运算器运算前的基本组成单元算术逻辑运算单元通用寄存器组输入输出数据选择控制内部总线运算器的基本结构单总线双总线三总线浮点运算器基本算术逻辑单元的设计基本算术、逻辑部件基本算术逻辑运算单元设计串行进位加法器并行加法器定点补码加减法运算补码加减法运算方法补码加法:[x]补 + [y]补 = [x + y]补 mod M补码减法:[x]补 - [y]补 = [x - y]补 mod M溢出及检测运算结果超出数据类型所能表示数据范围的现象称为溢出溢出检测操作数与运算结果的符号位是否一致只有符号相同的数相加,才有可能产生溢出,因此检测运算结果的符号位,是否与操作数一致设操作数为S1XXXX和S2XXXX,其中S1和S2为他们的符号位,结果为SXXXX,S是结果的标志位,V是溢出标志位,那么V = S1 S2 !S + !S1 !S2 S如果符号位不同,则S1和S2必定是0和1的组合,其结果V一定为0 如果符号位相同,则可能同时为0或者同时为1,这时就要看结果的符号位S了最高位的进位和符号位的进位是否一致最高位C和符号位S的进位,如果不同步,则发生了溢出变形补码变形补码就是用两个位来表示符号位,正数符号位00,负数符号位11 如果运算后的结果为01,则上溢,10则下溢补码加减法的逻辑实现利用一位全加器(FA)作为基本的加法单元,低位FA的进位,直接送到相邻高位FA的进位输入,构成一个串行进位链进行加法运算时,直接送入全加器,进行减法运算时,减数先求补采用基于变形补码的双符号位溢出检测方法不支持逻辑运算移码加减运算及实现逻辑移码的加法运算公式1:[x]移 + [y]移 = [x + y]移 + 2^n公式2:[x]移 + [y]移 = [x + y]补公式3:[x]移 + [y]补 = [x + y]移 mod 2^(n+1)求移码的加法有三种方式直接对两数的移码求和,然后将高位取反直接求出两数和的补码,然后将高位取反用一个数的移码,加另一个数的补码移码加减法的溢出判断直接采用移码运算的溢出判断方法只有符号相同的加法,才会溢出正数的移码,符号位为1,如果两个正数的移码相加,符号位1+1=0,结果的符号位变成0因此,移码相加后,符号位与操作数相同,则发生了溢出采用双符号判断S1S2 = 00,结果为负,未溢出S1S2 = 01,结果为正,未溢出S1S2 = 10,上溢S1S2 = 11,下溢定点乘法运算机器数的移位操作移位操作是乘法实现过程的基本操作,又分为逻辑移位和算术移位逻辑移位:左移和右移,空出来的位置都补0算术移位:左移时低位补0,右移时高位补符号位原码一位乘法原码一位乘法符号位的确定两个乘数符号位的异或乘积的数值由于符号位已经单独处理了,所以乘积就是绝对值相乘用循环累加和移位操作实现乘法运算两个n位数参加乘法运算,要做n次加法和移位操作补码一位乘法运算规则(booth算法)被乘数一般取双符号位参与运算乘数末位增设附加位Y(n+1),初值为0利用Y(n+1) 与 Yn 的差,决定下一步的具体运算按照上述算法进行n+1步累加操作,n步右移操作Y(n+1) - Yn部分积右移一位部分积加[x]补后,右移一位部分积加[-x]补后,右移一位阵列乘法器一位乘法通过逐位判断、右移、循环累加来实现,速度较慢,为了提高乘法速度,可以采用硬件方式实现阵列乘法器,其基本思想是采用类似手工乘法运算的方法,用大量与门产生手工乘法中的各乘积项,同时将大量一位全加器按照手工乘法算式中需要进行加运算的各相关项的排列方式组成加法器阵列定点除法运算除法运算与乘法运算的处理思想相似,通常是将n位数的除操作转换成若干次的加减和移位来实现原码一位除法原码恢复余数法被除数(余数)减去除数,如果为正则够减商1,如果为负则不够减商0,而且被除数(余数)要恢复到减之前的值,这就叫恢复余数法为了防止溢出,除法运算(x - y)一定要满足(|x| |y|),保证商的绝对值不超过1,因此第一次上商的值,要放在商的符号位,后面上的商,从小数点后依次排列,商的位数一般与除数相等,因此最后一次上商后,就不用做减法和移位了原码不恢复余数法与恢复余数法相比,进行比较后,如果商1则算法不变,如果商0则不恢复余数,先移位再加上除数当余数为正时,商1,余数左移一位,减去除数当余数为负时,商0,余数左移一位,加上除数不恢复余数的补码一位除法算法规则如下被除数与除数同号,被除数减去除数;被除数与除数异号,被除数加上除数余数与除数同号,商1,余数左移一位减去除数;余数与除数异号,商0,余数左移一位加上除数一般情况下,对于商的精度没有特殊要求,商的末位“恒置1”如果要求提高精度,则多求一位商,再用校正的办法对商进行处理当刚好能除尽时,如果除数为正,则商不必修正;如果除数位负,则商需要校正当不能除尽时,如果商为正,则不必修正;如果商为负,则商需要校正求得n位商后,得到的余数往往是不正确的,正确的余数常需要根据具体情况做适当的处理若商为正,当余数与被除数符号相同,则不需处理;当余数与被除数异号时,则应将余数加上除数进行修正才能获得正确的余数若商为负,当余数与被除数同号时,则余数不需要处理;当余数与被除数异号时,则余数需要减去除数进行校正余数之所以需要校正,是因为补码不恢复余数法除法运算过程中先比较上商的缘故浮点运算浮点数常用规格化数进行运算浮点数加减运算阶码和尾数采用补码表示的浮点数加减运算对阶:对阶的原则是小的阶码向大的看齐,因为小阶码增大时,尾数部分右移而减小,损失的是最低位,对精度影响不大尾数运算:对阶完成后,按照定点数的加减法运算执行尾数加减操作结果规格化:为了处理方便,一般取两位符号位,当尾数符号位01或10时,需要向右规格化,将尾数右移一位,同时阶码加一;当尾数为11.1xxx 或00.0xxx时,需要左移规格化,左移次数不固定,直到尾数部分出现11.0xx或00.1xx为止舍入:在对阶右移和结果规格化右移时,会丢掉末尾的值,常用的舍入方法末位恒置1法:只要右移时丢失过1,则末位置10舍1入法:当丢失位数最高位为1时,尾数末尾加1溢出判断:只有阶码溢出时,才产生溢出,阶码符号位为01和10时溢出IEEE 754浮点数的加减运算IEEE 754浮点数的阶码采用移码表示,尾数采用原码表示,且尾数的最高位隐藏,因此算法与之前都采用补码的形式不同对阶和规格化过程中,阶码的运算采用移码的加减运算尾数的运算采用原码运算法则,且隐藏位要参与尾数运算隐藏位参与尾数规格化判断及尾数规格化过程溢出判断,上溢时阶码全1,下溢时阶码全0浮点数乘法运算阶码相加尾数相乘结果规格化浮点数除法运算尾数调整:检查被除数的尾数是否小于除数的尾数(考察绝对值),如果被除数的尾数大于除数尾数,则将被除数的尾数右移一位并调整阶码。

第3章 运算方法和运算部件

第3章  运算方法和运算部件

第3章运算方法和运算部件在计算机中,完成数值运算的部件就是CPU中的算术逻辑运算单元ALU(Arithmetic Logical Unit)。

ALU的逻辑结构取决于机器的指令系统、数据的表示方法、运算方法和选用的逻辑器件等。

数据的表示方法在第二章中已经讲解,指令系统的内容将在第五章介绍,本章重点介绍运算方法、运算器的结构和工作原理。

对运算方法的讨论主要是指:算术运算在计算机中是按什么规则进行的。

对不同的机器数表示形式所对应的算法也不同。

此外,由于计算机中的数有定点和浮点表示,因此相应的有定点数运算和浮点数的运算方法。

计算机中的加、减、乘、除基本算术运算通常都是转化为加法运算完成的,因此加法器是构成运算器的关键部件。

为了提高乘除法运算速度,有的计算机还专门设置了乘法部件和除法部件,但加法器绝对不是可有可无的。

在运算器内部,除了加法器以外,还设有一定数量的寄存器,用来存放参加运算的数据及运算过程中的中间结果。

不同计算机的寄存器数目和功能都有所不同。

满足加、减法运算要求的寄存器数目一般最少要有两个,而要完成乘、除法运算,则一般至少要有三个寄存器。

可被程序员指定访问的寄存器通常叫做通用寄存器(General Register);此外还有一些工作寄存器,例如状态标志寄存器(Flag Register),主要用以保存一条指令执行后运算结果的特征。

逻辑运算也是计算机中常用的操作,其硬件设置比较简单,通常是在加法器的输入端增加相应的逻辑门来实现。

随着大规模集成电路的发展,运算器的结构也在不断地变化。

本章将以4位片的ALU SN 74181 为例子,介绍ALU的结构和原理。

3-1算术逻辑运算基础3-1-1 定点数的加减法运算加法运算是所有计算机的基本运算,减法运算可以通过补码加法来实现。

而乘法和除法运算也可以通过一系列的加减法运算和移位来实现。

我们通过第二章的学习已知:在计算机内部,带符号数通常都是用补码来表示的,这当然是由补码的特点决定的。

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

3.3 二进制乘法运算
例,两位补码乘法,假设X=+0110011,Y=-0110010
则:[X]补=00110011,[Y]补=11001110; [-X]补=11001101, 2[X]补=01100110, 2[-X]补=10011010;
其两位补码乘法实现过程如下:
计算机学院
3.3 二进制乘法运算
计算机学院
3.3 二进制乘法运算
令Pi表示第i次的部分积,则上式可写成如下递推公式:
P0=0, P1=2-1(YnX+P0), P2=2-1(Yn-1X+P1), Pi=2-1(Yn-i+1X+Zi-1), Pn=X*Y=2-1(Y1X+Pn-1) 此处的P0,P1„Pn-1为部分积,Pn为最终的乘积P。
计算机学院
3.3 二进制乘法运算
符号法则:同号相乘为正(0),异号相乘为负(1),
(XsYs=00,01,10,11), 所以积得符号可按“异或” 到。
数值部分运算法则:与普通十进制小数乘法相似。
运算得
计算机学院
3.3 二进制乘法运算
例,X=0.1101,Y=0.1011,求X*Y=?
计算机学院
3.3 二进制乘法运算
二、定点数二位乘法 1、原码两位乘 两位乘数有四种可能组合及相应的操作: 00-相当于0*X;部分积Pi+X,右移2位; 01-相当于1*X;部分积Pi+X,右移2位; 10-相当于2*X;部分积Pi+2X,右移2位; 11-相当于3*X;部分积Pi+3X,右移2位。
手工方法 法 0.1101(X) ×0.1011(Y) 1101„„P1 1101 1101„„..P2 0000„„„P3 + 1101„„„..P4 10001111„„P ×
机器方 0.1101 0.1011 0.0000
+
0.0001 101 0.0000 00 0.0110 1 0.1000 1111
一、定点数一位乘法 1、定点原码一位乘法
用原Байду номын сангаас实现乘法运算十分方便,在定点运算中,完成两个
原码表示得数相乘时,乘积得符号由两数得符号位按位相 加(异或)得到,而乘积得数值部分则是两个数得绝对值 之积。可以表示为:
被除数 乘 数 乘 积
[X]原=Xs.X1X2„„Xn [Y]原=Ys.Y1Y2„„Yn [Z]原 =(Xs⊕Ys).(0.X1X2„.Xn)(0.Y1Y2„.Yn)
i 1
n
计算机学院
3.3 二进制乘法运算
(2) 补码的右移 正数右移一位,相当于乘1/2,负数用补码表示,右移一位 也相当于乘1/2。因此在补码运算的机器中,一个数不论其 正负,连同符号位向右移一位,符号位保持不变,就等于 n 乘1/2。 X i 2 i 设[X]补=X0.X1X2„..Xn,因为 X X 0
一般而言,设被乘数X,乘数Y都是小于1的n位定点正数:
X=0. X1 X2„„„. Xn Y=0. Y1Y2„„„. Yn 其乘积为: X*Y=X(0. Y1Y2„„Yn) =X(Y12-1+Y22-2+„„.+Yn2-n) =2-1(Y1X+2-1(Y2X+2-1(„„+2-1(Yn-1X+21(Y X+0))„„))) n
与一位乘法比较,多出了+2X和3X两种情况。把X左移一位
即得2X;+3X可以用(4X-X)来实现。
原码两位乘法规则(P88表3.4)
计算机学院
3.3 二进制乘法运算
例,X=0.100111,Y=0.100111,则:[-X]补=1.011001
+[-X]补 右移2位 +2X 右移2位 +2X 右移2位

i 1
所以
n 1 1 1 n 1 1 n X X 0 X i 2 i X 0 X 0 X i 2 i X 0 X i 2 (i1) 2 2 2 i 1 2 2 i 1 i 0
计算机学院
3.3 二进制乘法运算
1 [ X ]补=X 0 . X 1 X 2 ........X n 写成补码形式,得: 2
计算机学院
3.3 二进制乘法运算
例,[X]补=1.0101,[Y]补=1.0011,求[X*Y]补=?
解:[-X]补=0.1011,采用双符号位表示后,运算过程如下: 部分积 乘数 操作 00.0000 1.00110 Yn+1=0,YnYn+1=10; + 00.1011 加[-X]补 00.1011 00.0101 110011 YnYn+1=11; + 00.0000 加0 00.0101 00.0010 111001 YnYn+1=01; + 11.0101 加[X]补 11.0111 11.1011 111100 YnYn+1=00; + 00.0000 加0 11.1011 11.1101 111110 YnYn+1=10 + 00.1011 加[-X]补 00.1000 1111 最后一步不移位
部分积 乘数 00.000000 100111 0 11.011001 11.011001 11.110110 011001 1 01.001110 01.000100 00.010001 000110 0 01.001110 01.011111 00.010111 110001 0
欠位C
计算机学院
计算机学院
3.3 二进制乘法运算
将[ P1 ]补 代入[ P2 ]公式中,则: i i
[P2 ]补 {[ P ]补 (Yni 1 Yni ) [ X ]补}21 (Yni Yni 1 )[X ]补}21 i i
{[ P ]补 [Yni 1 Yn1 ] [ X ]补} 2(Yni Yni 1 )[X ]补 22 i
0000
初始化值
y=1
+ 1101
1101 110 1„„„..P1 + 1101 10011 1 1001 11„„„P2 + 0000 1001 11 100 111„„..P3 + 1101 10001 111 1000 1111„„P4=P
计算机学院
y=1
y=0
y=1
3.3 二进制乘法运算
《计算机组成与结构》
——本科生课程教学
《计算机组成原理》 课程组
计算机组成与结构
本课程主要讲授计算机系统的硬件和软件构成方法,包括
硬件系统中运算器、控制器、存储器、输入设备和输出设 备和总线系统的构成原理等;并与当代先进的计算机技术 相结合。是计算机科学与技术本科专业核心课程。

本课程着重计算机系统组成与结构方面的教学和研究。
2、定点补码一位乘法 原码乘法的主要问题是符号位不能参加运算。补码乘法可以实现 符号位直接参加运算。 (1) 补码与真值的转换关系 设 [X]补=X0.X1X2„„..Xn 当 X>=0时,X0=0(符号位为0)
[ X ]补=0. X 1 X 2 X n X i 2 i X
i 1
计算机学院
3.3 二进制乘法运算
原码机器乘法规律:
当所乘得乘数为1时,则上次所得的部分积(最初为0)加 被乘数右移一位,而得新的次一部分积;若所乘的乘数为0 时,则上次所得的部分积加0右移一位后就是新的次一部分 积。如此反复,直到乘数各位都乘完为止。
计算机学院
3.3 二进制乘法运算
例,X=0.1101,Y=0.1011,求X*Y=?机器算法如下:
{[ P ]补 (Yni 1 Yni 2Yni 1 )[X ]补}22 i
上式表明,产生部分积 [ Pi ]补 之后,可以加上乘数寄存 [X ]补 器最低两位和附加位的组合值与 的积,再右移2位,
可得到 [ Pi 2 ]补
三位组合值的关系参加p89表3.5
计算机学院
计算机学院
3.3 二进制乘法运算
(6) 实现补码一位乘法的逻辑图(p104图3.9)
计算机学院
3.3 二进制乘法运算
补码一位乘法逻辑图与原码一位乘法逻辑图的差异:
(1)被乘数、乘数的符号位X0,Y0都参加运算; (2)乘数寄存器有附加位Yn+1,其初始状态为0,并有右移功 能; (3)被乘数寄存器的每一位用原码或反码的多路开关输入, 多路开关由YnYn+1控制; (4)部分积寄存器具有移位功能,其符号位与加法器的符号 位始终一致; (5)当计数器i=n+1时,封锁移位信号,保证最后一步不移位 。
部分积 明 0000000000 11001110 0 组合值为100,+2[-X]补 1110011010 1111100110 10110011 1 右移2位,组合值为111 1111111001 10101100 1 右移2位,组合值为 001,+[X]补 0000110011 0000101100 0000001011 00101011 0 右移2位,组合值为110,+[X]补 1111001101 1111011000 1111110110 00001010 右移1位 计算机学院 运算结果为:11111011000001010 即为:-0.00100111110110 乘数 附加位 说
参见流程图。
计算机学院
3.3 二进制乘法运算
(5) 补码一位乘法的运算规则 根据BOOTH算法流程图,可得到补码一位乘法的运算规则。

运算规则: 如果Yn=Yn+1,部分积[Pi]加0,再右移一位; 如果YnYn+1=01,部分积加[x]补,再右移一位; 如果YnYn+1=10,部分积加[-X]补,再右移一位。 如此重复进行n+1步,最后一步不移位;包括一位符号位, 所得乘积为2n+1位,其中n为尾数位数。
相关文档
最新文档