第三章 运算方法和运算部件(3-3,4,5)
最新计算机组成原理第5讲定点除法
第3章 运算方法和运算部件
(4)
Several algorithms exist to perform division in digital designs. These algorithms fall into two main categories: slow division and fast division. Slow division algorithms produce one digit of the final quotient per iteration.
10
§ 3. 4 二进制除法运算
Binary (Fixed-Point) Division Arithmetic
Unsigned Binary Division Tow’s complement Division
原码除法 补码除法
11
计算机的除法运算对除数和被除数的大小有限制。
首先,除数不能为零。其次,定点除法运算可能会发生溢出。
若除数是n位,则得到n位的商Quotient和n位的余数Remainder。
整数除法若被除数Dividend只有n位,是不会发生溢出的。但 是,若被除数为2n位,则被除数的高n位的绝对值必须小于除数 Divisor的绝对值,否则,将发生溢出。
小数除法,只要满足 |被除数|<|除数| 就不会溢出。
第三章 运算方法和运算器
答案:①.分开运算 ②被乘数与乘数的符号位异或
9.在浮点加法运算中,主要的操作步骤是__①__、__②__、__③__、__④__和__⑤__。
答案:①对阶 ②尾数相加,③结果规格化 ④舍入 ⑤溢出检查
10.浮点数乘除法的运算步骤为:__①__、__②__、__③__、__④__和__⑤__。
答案:①阶码相加/减 ②尾数相乘/除 ③规格化 ④舍入、⑤溢出检查
7.在一台具有80387协处理器的PC机中,CPU是把80387当作外设来读取80387的指令。
答案:错。CPU与80387配对使用。
8.加法器是构成运算器的基本部件,为提高运算速度,运算器一般都采用串行加法器。
答案:错。加法器是构成运算器的基本部件,为提高运算速度,加法器一般都采用并
行加法器。
9.在CPU中执行算术运算和逻辑运算,都是按位进行且各位之间是独立无关的。
答案:①ALU ②寄存器 ③多路选择器 ④移位器 ⑤数据通路
19.ALU的基本逻辑结构是,_____加法器,它比行波进位加法器优越,具有先行进位逻辑,不仅可以实现高速运算,还能完成逻辑运算。
答案:快速进位
20.浮点运算器由__①__和__②__组成,它们都是定点运算器,__②__要求能进行__③__ 运算。
【精品】计算机
计算机组成原理基础要点(徐爱萍)(2009-09-12 17:35:09)杂谈 第一章 计算机系统概述:1.第1代计算机采用的是电子管;第2代计算机采用的是晶体管;第3代计算机采用的是中小规模集成电路;第4代计算机采用的是大规模、超大规模集成电路。2.计算机系统由硬件系统和软件系统构成。3.计算机系统的三个层次结构由内到外分别是硬件系统、系统软件和应用软件。在硬件之外的所有层次通称为虚拟机。4.CPU、存储器、输入/输出接口及系统总线合称为主机。5.计算机软件一般分为系统软件和应用软件,操作系统属于系统软件。6.计算机的工作特点是快速性、通用性、准确性和逻辑。7.存储程序并按地址顺序执行,这是冯.诺依曼型计算机的工作原理。8.硬件是指计算机中的电子线路和物理装置。9.软件是指一台计算机中全部程序的集合。10.固件是指将程序固定在ROM中组成的部件。11.没有外存储器的计算机其监控程序可以放在ROM中。12.兼容性包括数据和文件的兼容、程序兼容、系统兼容和设备兼容,微型计算机通常具有这种兼容性。第二章 数据信息的表示1.-1的补码定点整数表示时为1...1,用定点小数表示时为1...0。2.定点小数补码表示的范围是:-1~1-2^(-n) (n为尾数位数)。3.定点小数原码表示的范围是:-(1-2^(-n))~1-2(-n) (n为尾数位数)。4.定点整数补码表示的范围是:-2^n~2^n-1 (n为整数,不含符号位)。5.定点整数原码表示的范围是:-(2^n-1)~2^n-1 (n为整数, 不含符号位)。6.n位字长的无符号数的范围是:0~2^n-1。7.在数值的编码表示中:0有唯一表示的编码是补码;用0表示正,用1表示负的编码是原码、反码、补码;满足若真值大,则码值大的编码是移码;存在真值越大,则码值越小的现象的编码是反码;负数的码值大于正数的吗值的编码有补码;若要求浮点数的机器零(尾数为0,阶最小)的编码为全零(阶为0,尾数为0),则尾数的编码可为补码,阶的编码可为移码。8.在浮点数编码表示中基数在机器数中不出现,是隐含的。9.当浮点数的尾数为补码时,其为规格化数应满足的条件为符号位与最高有效位相反。10.在规格化浮点数表示中,保持其它方面不变,将阶码部分的移码表示改为补码表示,将会使数的表示范围不变。11若浮点数格式中基值(阶码的底)一定,且尾数采用规格化表示法,则浮点数的表示范围取决于阶码的位数,而精度取决于尾数的位数。12.常用的校验码有奇偶校验码、海明检验码、CRC码等。13.奇偶校验法只能发现奇数个错,不能检查无数或偶数个错。
第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组成计算机硬件电路的基本逻辑部件
第三章 运算方法
第三章运算方法
一名词解释
(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.操作数用补码表示,连符号位直接相加减,减某数用加负某数的补码代替,结果的符号在运算中形成
精品文档-计算机组成与系统结构(裘雪红)-第3章
35
同样,将多个一位BCD加法器串联起来,可构成多位行波进
位的BCD加法器,其框图如图3.5所示。
第3章 运算方法与运算器
36
图 3.5 n位行波进位BCD加法器框图
第3章 运算方法与运算器
37
6. 移码加减运算 1) 运算法则
关于移码的定义及其特点,在第2章中已经做了介绍。由于 移码多用在浮点数中表示阶码,因此,在这里仅就定点整数移 码的加减运算加以说明。
(3-2)
第3章 运算方法与运算器
7
例3.3 有两个定点整数63和35,利用补码减法求 63-35=?
解 根据题意,用8位二进制补码表示63和35: [63]补=00111111 [35]补=00100011
第3章 运算方法与运算器
8Baidu Nhomakorabea
而[63-35]补=[63]补+[-35]补 ; 同时,[-35] 补 =[[35]补]求补 =11011101,从而求出:
第3章 运算方法与运算器
44
2) 原码一位乘法的实现思路
(1) 手工乘法运算。
为了求得绝对值之积,先举例讨论手算过程。
例3.10 若[X]原=0.1101, 者之积。
[Y]原=1.1011,求两
解 乘积的符号为0⊕1 =1。绝对值之积的手算过程如下:
第3章 运算方法与运算器
苏州大学计算机组成原理习题
第二章
1.某加法器进位链小组信号为C4C3C2C1 ,低位来的信号为C0,请分别按下述两种方式写出C4C3C2C1的逻辑表达式。
(1)串行进位方式(2)并行进位方式
解:(1)串行进位方式:
C1 = G1 + P1 C0其中:G1 = A1 B1,P1 = A1+B1
C2 = G2 + P2 C1G2 = A2 B2,P2 = A2+B2
C3 = G3 + P3 C2G3 = A3 B3 , P3 = A3+B3
C4 = G4 + P4 C3G4 = A4 B4 , P4 = A4+B4
(2) 并行进位方式:
C1 = G1 + P1 C0
^
C2 = G2 + P2 G1 + P2 P1 C0
C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 C0
C4 = G4 + P4 G3 + P4 P3 G2 + P4P3 P2 G1 + P4 P3 P2 P1 C0
其中G1—G4,P1—P4表达式与串行进位方式相同。
2. 图为某ALU部件的内部逻辑图,图中S0、S1为功能选择控制端,
Cin为最低位的进位输入端,A(A1-A4)和B(B1-B4)是参与运算的两个数,F(F1-F4)为输出结果,试分析在S0,S1,Cin各种组合条件下输出F和输入A,B,Cin的算术关系。
图
解:图中所给的ALU只能进行算术运算,S0、S1用于控制B数送(B1-B4)原码或反码,加法器输入与输出的逻辑关系可写为:F i=Ai+(S0 B i+S i B i)+Cin i = 1,2,3,4由此,在S0,S i,Cin的各种组合条件下,输入A,B,Cin与输出F的算术关系列于下表:
第3章 运算方法和运算器
• • • •
3.1定点数的加法、减法运算 • 定点数的加减在计算机中通常采用补码进行, 运算时连同符号位一起运算,结果也用补码 表示。 • 3.1.1补码加减法所依据的关系 • 加法:[X+Y]补=[X]补+[Y]补 • 减法:[X-Y]补=[X]补+[-Y]补 • 其中[-Y]补是将[Y]补连同符号位一起取反后, 再在最低位加1,即:[-Y]补=/[Y]补+1(最末 位),也就是说在计算机内部,减法最终也 是通过加法来实现的,这对运算器的物理实 现将会带来很大大的简化。
A8 A7A6A5 B8B7B6B5
• 输入信号Ai、Bi、C0是同时提供的,所有 的进位延迟时间都是3ty,因为进位信号 同时产生,所以称为同时进位或并行进位 CLA(Carry Look Ahead)。 • 把这种进位信号由逻辑线路产生,再送去 求和而构成的加法器,称为先行进位加法 器。
C4
C3
C2
C1
C0
G4
P4 G3 P3 G2 先行进位产生电路
• • • •
3.1.2补码加减法运算规则 参加运算的操作数用补码表示。 符号位等同于数值一起参加运算。 对于两数相加减的各种情况,计算机都执 行求和操作。当操作码为加运算时就直接 进行相加,当操作码为减时,将减数连同 符号位一起求反加1后再与被减数相加。 • 结果用补码表示。 加法:[X+Y]补=[X]补+[Y]补 减法:[X-Y]补=[X]补+[-Y]补 • 如果不溢出,结果就是正确的。
计算机组成原理 移位运算 ppt课件
0 0 1 1 0 0 1 0 右
移
+(25+24+21)=+50
一
位
0
0 1 1 0 0 1 +(24+23+20)=+25
1/2 右移后最高有效位也出现了空位,数量也有变化
计算机固定机器字长 怎么办??
3-1 移位操作、十进制运算及逻辑运算
(一)算术移位规则 前提:移位后,符号为保持不变 (1)原码移位规则
计算机组成原理 移位运算
第三章 运算方法与运算部件
3-1 移位操作、十进制运算及逻辑运算
3-1 移位操作、十进制运算及逻辑运算
☆移位的意义:是计算机运算的基础,最基本最常 见的运算操作之一,因此将本内容提前。
移位操作按移位性质分: 逻辑移位:整组数据移位,只有数字位置的变化,无数量的变化 循环移位:数据本身形成闭合环路
注:若左移溢出,单符号位将破坏正确符号
3-1 移位操作、十进制运算及逻辑运算
(二)逻辑移位
移位对象:一组无数值意义的二进制代码 仅仅数码位置变化,数值大小无变化
规则:
• 左移,低位补0 • 右移,高位补0
3-1 移位操作、十进制运算及逻辑运算
(三)循环移位 规则:闭合移位环路,数据最高位与最低位之间 有位移通路。注:符号位参与环路中。
(2)补码右移规则
计算机硬件技术基础网上作业及答案
计算机硬件技术基础⽹上作业及答案
第⼀章概述
1.下列叙述错误的是()
A.⽬前⼤多数计算机结构仍属冯·诺依曼结构
B.计算机的⼯作原理基于“程序存储和控制”
C.计算机的速度取决于CPU的主频,主频⾼的CPU速度快
D.计算机系统包括硬件、软件两部分
2.⽤于科学计算的计算机,标志系统性能的主要参数是()
A.时钟频率B.主存容量C.MFLOPS D.MIPS
3.第⼀台电⼦计算机ENIAC所⽤的主要元件是_______。
A.集成电路B.晶体管C.电⼦管D.都不是
4.冯·诺依曼计算机中指令和数据均以⼆进制形式存放在存储器中,CPU区分它们的依据是()
A.指令操作码的译码结果B.指令和数据的寻址⽅式
C.指令周期的不同阶段D.指令和数据所在的存储单元
5.下列()属于应⽤软件。
A.操作系统B.编译系统 C.连接程序D.⽂本处理
6.CPU主要包括()
A.控制器B.控制器、运算器、Cache
C.运算器和主存D.控制器、ALU和主存
7. 系统总线中地址线的功能是()
A. ⽤于选择主存单元地址
B. ⽤于选择进⾏信息传输的设备
C.⽤于选择外存地址
D.⽤于指定主存和I/O设备接⼝电路的地址
8.冯·诺依曼机⼯作⽅式的基本特点是()
A.多指令流单数据流B.按地址访问并顺序执⾏指令
C.堆栈操作D.存储器按内容选择地址
9.完整的计算机系统应包括_______。
A.程序和数据B.整机和电源
C.主机和外设D.硬件和软件
10.计算机经历了从器件⾓度划分的四代发展历程,但从系统结构上来看,⾄今绝⼤多数计算机仍属于______型计算机。A.实时处理B.智能化C.并⾏D.冯.诺依曼
第三章 运算方法及运算部件习题
第三章运算方法及运算部件
一、选择题:将正确的答案序号填在横线上
1.下列数中最小的数是______。
A.(1010011.10101)2 B.(123.55)8
C.(53.B0)16 D.(83.75)10
2.某数在计算机中用8421BCD码表示为0011 1001 1000,其真值为______。
A.398 B.398H C.1630Q D.1110011000B
3.ASCII码是对(1)_进行编码的一种方案,它是(2)_的缩写。
(1)A.字符 B.汉字 C.图形符号 D.声音
(2)A.余3码 B.十进制数的二进制编码
C.格雷码 D.美国标准信息交换代码
4.一个1G的硬盘,最多可存放______个ASCII字符。
A. 220B.224 C. 210 D. 230
5.存储32个汉字的机内码需要______。
A.16字节 B.32字节 C.64字节 D.128字节
6.机器数10000001B,它所代表的数______。
A.一定是-1 B.一定是-127
C.一定是-126 D. 以上3个数都有可能
7. 假定一个十进制数为-66,按补码形式存放在一个8位寄存器中,该寄存器的内容用十六进制表示为______。
A.C2H B.BEH C.BDH D.42H
8.如果X是负数,由[X]补求[X]原是将______。
A.符号位变反,其他各位不变 B.所有位求反,末位加1
C.除符号位外,其他位求反后末位加1D.除符号位外,其他位求反
9.下列数中,最大的是______。
A.[X]补=1001101 B.[X]原=1001101
第3章 运算方法和运算部件习题
第3章运算方法和运算部件
一、选择题(每题3分)
1. 若十进制数据为 137.625,则其二进制数为()。
A.10001001.11 B.10001001.101 C.10001011.101 D.1011111.101 【答案】B
2.如果 [X]补=11110011,则[-X]补是()。
A.11110011 B.01110011 C.00001100 D.00001101
【答案】D
3.原码乘法是()。
A.先取操作数绝对值相乘,符号位单独处理
B.用原码表示操作数,然后直接相乘
C.被乘数用原码表示,乘数取绝对值,然后相乘
D.乘数用原码表示,被乘数取绝对值,然后相乘
【答案】A
4.定点16位字长的字,采用2的补码形式表示时,一个字所能表示的整数范围是______。
A -215 ~ +(215 -1)
B -(215 –1)~ +(215 –1)
C -(215 +1)~ +215
D -215 ~ +215
【答案】A
5. (2000)10化成十六进制数是______。
A.(7CD)16 B.(7D0)16 C.(7E0)16 D.(7F0)16
【答案】B
6. 下列数中最大的数是______。
A.(10011001)2 B.(227)8 C.(98)16 D.(152)10 【答案】A
7. ______表示法主要用于表示浮点数中的阶码。
A. 原码
B. 补码
C. 反码
D. 移码
【答案】D
8.二进制数11001011等于十进制的______。
A.395
B.203
C.204
D.394
【答案】B
9.设X= —0.1011,则[X]
计算机组成原理第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.0101
2[-X]补=0.1010 (溢出) 2[-Y]补=0.1010
3.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
计算机组成原理--教学大纲
计算机组成原理教学大纲
是计算机专业系统能力培养核心课程。采用系统观、构造观和工程观的教学设计,研究冯诺依曼计算机各功能部件的工作原理与设计方法,指导大家进行系列组成原理实验,提升智能硬件设计及软/硬协同计算机系统编程能力!提升研究生入学组成原理备考能力。
课程概述
“计算机组成原理”是一门理论性、工程性、技术性和实践性都很强的核心专业基础课程,在计算机学科系列课程中处于承上启下的作用。课程教学目标是通过相关的教学活动,帮助学生理解计算机基本组成部件(包括运算器、控制器、存储器、输入/输出)的结构、工作原理、内部运行机制和设计方法。加深学生对计算机软、硬件系统的整体化理解,建立硬件/软件协同的整机概念,并有效增强学生的计算机系统设计能力。课程学习为研究生考试、后续课程(如系统结构,并行编程、嵌入式系统、接口技术)的学习,参加IT企业招聘等都奠定了坚实的基础。
本MOOC 课程具有如下特点:
1.面向系统能力培养的教学设计
结合课程特点与教学目标,创造性提出基于构造观、系统观、工程观的教学设计。其中,构造观重在培养软/硬功能部件设计方法,提升部件级的设计能力;系统观强调硬件结构对软件执行正确性及性能的影响,提升学生软硬协同的系统分析与解决问题的能力;工程观训练考虑工程制约因素,选择恰当技术、优化工程的意识,提升系统实现能力。
2.精心设计实验内容
结合教学团队多年系统能力培养实践教学经验,参考国际一流计算机专业相关课程的先进经验,引入了易学易用的免费开源虚拟仿真实验平台,本着理论实践一体化、实验目标系统化、课内课外协同化等原则,建立了逐层递进、立足计算机系统、设计型实验为主导的实践教学体系开发了系列原创的课程实验,引导学生从逻辑门电路开始逐步设计运算部件、存储器、数据通路和控制器、流水线冲突冒险机制直至完整的MIPS 流水CPU来深入理解计算机软硬件系统。
计算机原理第三章运算方法和运算器综合练习
计算机原理第三章运算⽅法和运算器综合练习
计算机原理第3章运算⽅法和运算器综合练习
⼀、选择题
知识点:定点补码的加法,减法,不带符号数的运算,溢出 P26
1、[X]补+[Y]补=[X+Y]补(mod 2n)
2、[X-Y]补=[X+(-Y)]补= [X]补+[-Y]补(mod 2n)
3、[-Y]补=[[Y]补]变补(注:连同符号位⼀起变反加1的过程叫变补或求补。)
4、判断溢出条件: C S+1和C S相异时溢出当C S+1C S=00或 C S+1C S=11时不产⽣溢出。
当C S+1C S=01或C S+1C S=10时则产⽣溢出。
1、计算机中实现减法运算使⽤的⽅法是()
A.从被减数中减去减数 B.从减数中减去被减数再求反
C.转换为补码的加法运算 D.依减数的形式再选择⼀种适当的⽅法
2、定点数作补码加减运算时,其符号位是( )
A.与数位分开进⾏运算
B.与数位⼀起参与运算
C.符号位单独作加减运算
D.两数符号位作异或运算
3、补码加减法运算是()
A .操作数⽤补码表⽰,两数的尾数相加减,符号位单独处理,减法⽤加法代替
B .操作数⽤补码表⽰,符号位与尾数⼀起参加运算,结果的符号与加减所得相同
C .操作数⽤补码表⽰,连同符号位直接相加减,减某数⽤加负某数的补码代表,结果的符号在运算中形成
D .操作数⽤补码表⽰,由数符决定两尾数的操作,符号位单独处理
4、执⾏⼆进制算术运算11001001+00100111,其运算结果是()。
A) 11101111 B) 11110000 C) 00000001 D) 10100010
第三章 运算方法和运算部件
u 指令集中涉及到的运算( 以MIPS为例 )
• 涉及到的定点数运算
- 算术运算
• 带符号整数运算:取负 / 符号扩展 / 加 / 减 / 乘 / 除 / 算术移位 • 无符号整数运算:0扩展 / 加 / 减 / 乘 / 除 - 逻辑运算 • 逻辑操作:与 / 或 / 非 / … • 移位操作:逻辑左移 / 逻辑右移 • 涉及到的浮点数运算:加、减、乘、除
ALU是运算部件的核心!以下介绍ALU的实现。
2024/8/5
ALU的功能说明
ALUop 3
AN
Zero
ALU
BN
N
Result
Overflow
CarryOut
ALU可进行基本的加/减算 术运算和逻辑运算。其核
心部件是加法器。
u ALU Control Lines (ALUop) • 000 • 001 • 010 • 110
下面以MIPS为例,看指令中会提供哪些运算?能否完全支持高级语言需求?
2024/8/5
MIPS定点算术运算指令
Instruction
Example
Meaning
Comments
add
add $1,$2,$3 $1 = $2 + $3 3 operands; exception possible
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
部分积 乘数 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
计算机学院
所以,若要得
右移I位即可。
[2 i X ]补
,只要将[X]补连同符号位
(3) 补码的乘法规则 设被乘数为[X]补=X0.X1X2„.Xn, 乘数[Y]补=Y0.Y1Y2„.Yn均为任意符号, 则补码乘法算式:[X*Y]补=[X]补*Y
证明参见(P75-76)。
计算机学院
3.3 二进制乘法运算
一、定点数一位乘法 1、定点原码一位乘法
用原码实现乘法运算十分方便,在定点运算中,完成两个
原码表示得数相乘时,乘积得符号由两数得符号位按位相 加(异或)得到,而乘积得数值部分则是两个数得绝对值 之积。可以表示为:
被除数 乘 数 乘 积
[X]原=Xs.X1X2„„Xn [Y]原=Ys.Y1Y2„„Yn [Z]原 =(Xs⊕Ys).(0.X1X2„.Xn)(0.Y1Y2„.Yn)
手工方法 法 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
(4) BOOTH算法 根据相邻两位比较结果决定运算操作的方法称为“比较法 ”,是由BOOTH夫妇提出的,也称BOOTH算法。
BOOTH算法流程:
开始时,部分积为0,即[P0]补=0,然后每一步都是在前 次部分积的基础上由(Yi+1-Yi)(i=0,1,2„n)决定对[X]补 的操作,再右移一位,得到新的部分积。如此重复n+1步, 最后一步不移位,便得到[X]补*[Y]补。
与一位乘法比较,多出了+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位
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 二进制乘法运算
将[ 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
i 1
n
计算机学院
3.3 二进制乘法运算
(2) 补码的右移 正数右移一位,相当于乘1/2,负数用补码表示,右移一位 也相当于乘1/2。因此在补码运算的机器中,一个数不论其 正负,连同符号位向右移一位,符号位保持不变,就等于 n 乘1/2。 X i 2 i 设[X]补=X0.X1X2„..Xn,因为 X X 0
3.3 二进制乘法运算
2、补码两位乘 根据BOOTH算法,将两步合并成一步,可以推导除编码两位 乘法公式: [ i 上一步部分积: P ]
本步部分积:
[ P 1 ]={[ P ]补 +(Yni1 Yn1 )[ X ]补 }2 i i
1
下一步部分积:
[ P2 ]补= P1 ]补 (Yn1 Yni 1 )[X 补 ]}21 {[ i i
计算机学院
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。
《计算机组成与结构》
——本科生课程教学
《计算机组成原理》 课程组
计算机组成与结构
本课程主要讲授计算机系统的硬件和软件构成方法,包括
硬件系统中运算器、控制器、存储器、输入设备和输出设 备和总线系统的构成原理等;并与当代先进的计算机技术 相结合。是计算机科学与技术本科专业核心课程。
本课程着重计算机系统组成与结构方面的教学和研究。
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 二进制乘法运算
计算机学院
3.3 二进制乘法运算
(6) 实现补码一位乘法的逻辑图(p104图3.9)
计算机学院
3.3 二进制乘法运算
补码一位乘法逻辑图与原码一位乘法逻辑图的差异:
(1)被乘数、乘数的符号位X0,Y0都参加运算; (2)乘数寄存器有附加位Yn+1,其初始状态为0,并有右移功 能; (3)被乘数寄存器的每一位用原码或反码的多路开关输入, 多路开关由YnYn+1控制; (4)部分积寄存器具有移位功能,其符号位与加法器的符号 位始终一致; (5)当计数器i=n+1时,封锁移位信号,保证最后一步不移位 。
计算机学院
3.3 二进制乘法运算
符号法则:同号相乘为正(0),异号相乘为负(1),
(XsYs=00,01,10,11), 所以积得符号可按“异或” 到。
数值部分运算法则:与普通十进制小数乘法相似。
运算得
计算机学院
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 二进制乘法运算
机器运算与手工运算方法区别在于:
(1) 机器一次只能进行两个数相加,所以P1+P2+P3+P4必 须分步进行:P1+P2; (P1+P2)+P3; [(P1+P2)+P3]+P4。 (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
n
尾数部分为真值X
计算机学院
3.3 二进制乘法运算
当X<0时, X0=1(符号位为1)
[X]补=1.X1X2„„.Xn=2+X 所以真值X为: X=1.X1X2„..Xn-2 =-1+0.X1X2„„Xn
1 X i 2 i
i 1
n
X X 0 X i 2 i 所以,
计算机学院
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 最后一步不移位
计算机学院
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位。
计算机学院
3.3 二进制乘法运算
上述乘法运算的递推算法可用流程图来表示:(P83图3.6)
开始
Pi=0, i=0
N
Yn=1 Pi+0 Pi+X
Y
Pi,Y右移一位,i=i+1
N
i=n? Y 结束
计算机学院
3.3 二进制乘法运算
实现原码一位乘法的逻辑电路图(P82图3.5)。
计算机学院
3.3 二进制乘法运算
计算机结构定义为系统程序员所能见到的计算机硬件特性; 计算机组成是指计算机硬件的具体实现。
计算机学院
第三百度文库 运算方法和运算部件
数据的表示方法和转换 带符号数的表示方法及加减运算 二进制乘法运算
二进制除法运算
浮点数的运算方法
运算部件
数据校验码
计算机学院
3.3 二进制乘法运算
部分积 明 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 二进制乘法运算
例,两位补码乘法,假设X=+0110011,Y=-0110010
则:[X]补=00110011,[Y]补=11001110; [-X]补=11001101, 2[X]补=01100110, 2[-X]补=10011010;
其两位补码乘法实现过程如下:
计算机学院
3.3 二进制乘法运算
参见流程图。
计算机学院
3.3 二进制乘法运算
(5) 补码一位乘法的运算规则 根据BOOTH算法流程图,可得到补码一位乘法的运算规则。
运算规则: 如果Yn=Yn+1,部分积[Pi]加0,再右移一位; 如果YnYn+1=01,部分积加[x]补,再右移一位; 如果YnYn+1=10,部分积加[-X]补,再右移一位。 如此重复进行n+1步,最后一步不移位;包括一位符号位, 所得乘积为2n+1位,其中n为尾数位数。
一般而言,设被乘数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
计算机学院
3.3 二进制乘法运算
原码机器乘法规律:
当所乘得乘数为1时,则上次所得的部分积(最初为0)加 被乘数右移一位,而得新的次一部分积;若所乘的乘数为0 时,则上次所得的部分积加0右移一位后就是新的次一部分 积。如此反复,直到乘数各位都乘完为止。
计算机学院
3.3 二进制乘法运算
例,X=0.1101,Y=0.1011,求X*Y=?机器算法如下: