计算机组成原理数据的机器运算
数字逻辑与计算机组成原理:第二章 数据的表示与运算
第二章 数据的表示与运算
第一节 数的表示
一、无符号数和有符号数
1、无符号数:
没有符号的数,寄存器中的每一位都可用 来存放数据
机器字长为n位,无符号数的表示范围 为0~2n-1
反映无符号数的表示范围
8位 16 位
0 ~ 255 0 ~ 65535
有两种常用的无符号表示法: ◆ 非负数码:表示0或一个正数
(1) 定义
整数
0,x
2n > x ≥ 0
[x]反 = ( 2n+1 – 1) + x 0 ≥ x > 2n(mod 2n+1 1)
x 为真值
n 为整数的位数
如 x = +1101
x = 1101
[x]反 = 0,1101
[x]反 = (24+1 1) 1101 = 11111 1101
用 逗号 将符号位
= 1,0010
和数值部分隔开
小数 x
[x]反 = ( 2 – 2-n) + x
1>x≥ 0 0 ≥ x > 1(mod 2 2-n)
x 为真值 n 为小数的位数
如 x = + 0.1101
x = 0.1010
[x]反 = 0.1101
[x]反 = (2 2-4) 0.1010
= 1.1111 0.1010
有符号小数: +0.1011,在机器中表示为
-0.1011,在机器中表示为
第一节 数的表示
一、无符号数和有符号数 2、有符号数
有符号整数: +1101,机器中表示为
-1101, 机器中表示为
第一节 数的表示
一、无符号数和有符号数
计算机组成原理第4章习题参考答案
计算机组成原理第4章习题参考答案第4章数值的机器运算4-2.某加法器采⽤组内并⾏,组间并⾏的进位链,4位⼀组,写出进位信号C6逻辑表达式。
[解] 组间并⾏的进位链,产⽣的最低⼀组的进位输出为:C4=G1*+P1*C0 (其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1;P1*=P4P3P2P1)然后在组内产⽣进位信号C6:C6=G6+P6C5=G6+P6G5+P6P5C44-4.已知X和Y,使⽤它们的变形补码计算出X+Y,并指出结果是否溢出。
(1)X=0.11011,Y=0.11111(2)X=0.11011,Y=-0.10101(3)X=-0.10110,Y=-0.00001(4)X=-0.11011,Y=0.11110[解](1)[X]补=0.11011,[Y]补=0.1111100.11011 [X]补+00.11111 [Y]补01.11010 [X+Y]补结果正溢出!(2)[X]补=0.11011,[Y]补=1.0101100.11011 [X]补+11.01011 [Y]补00.00110 [X+Y]补结果不溢出!X+Y=0.00110(3)[X]补=1.01010,[Y]补=1.1111111.01010 [X]补+11.11111 [Y]补11.01001 [X+Y]补结果不溢出!X+Y=-0.10111(4)[X]补=1.00101,[Y]补=0.1111011.00101 [X]补+00.11110 [Y]补00.00011 [X+Y]补结果不溢出!X+Y=0.000114-5.已知X和Y,使⽤它们的变形补码计算出X-Y,并指出结果是否溢出。
(1)X=0.11011,Y=-0.11111(2)X=0.10111,Y=0.11011(3)X=0.11011,Y=-0.10011(4)X=-0.10110,Y=-0.00001[解](1)[X]补=0.11011,[Y]补=1.00001, [-Y]补=0.1111100.11011 [X]补+00.11111 [-Y]补01.11010 [X-Y]补结果正溢出!(2)[X]补=0.10111,[Y]补=0.11011, [-Y]补=1.0010100.10111 [X]补+11.00101 [-Y]补11.11100 [X-Y]补结果不溢出!X-Y=11.11100(3)[X]补=0.11011,[Y]补=1.01101, [-Y]补=0.1001100.11011 [X]补+00.10011 [-Y]补01.01110 [X-Y]补结果正溢出!(4)[X]补=1.01010,[Y]补=1.11111,[-Y]补=0.0000111.01010 [X]补+00.00001 [-Y]补11.01011 [X-Y]补结果不溢出!X-Y=-0.101014-6.已知:X=0.1011,Y=-0.0101求:[X/2]补 ,[X/4]补 ,[-X]补 ,[Y/2]补 ,[Y/4]补 ,[-Y]补,[2Y]补[解] 由[X]补=0.1011,[Y]补=1.1011 得:[X/2]补=0.0101,[X/4]补=0.0010,[-X]补=1.0101[Y/2]补=1.1101,[Y/4]补=1.1110,[-Y]补=0.0101,[2Y]补=1.01104-7. 设下列数据长8位,包括⼀位符号位,采⽤补码表⽰,分别写出每个数右移或左移两位之后的结果(1)0.1100100 (2) 1.0011001 (3) 1.1100110 (4)1.0000111[解] (1)右移两位后为 0.0011001 左移两位后为1.0010000(溢出)或0.0010000 (2)右移两位后为 1.1100110 左移两位后为0.1100100(溢出)或1.1100100(3)右移两位后为1.1111001 左移两位后为 1.0011000(4)右移两位后为 1.11000001 左移两位后为0.0011100(溢出)或1.00111004-8.分别⽤原码乘法和补码乘法计算X×Y.(1) X=0.11011,Y=-0.11111(2) X=-0.11010,Y=-0.01110[解]原码乘法:(1)|X|=0.11011 → B, |Y|=0.11111 →C,0→A5=1,+ |X|00.1101100.01101 1 0 1 1 1 1 部分积右移1位5=1,+ |X|01.0100000.10100 0 1 0 1 1 1 部分积右移1位5=1,+ |X|01.0111100.10111 1 0 1 0 1 1 部分积右移1位5=1,+ |X|01.1001000.11001 0 1 0 1 0 1 部分积右移1位5=1,+ |X|01.1010000.11010 0 0 1 0 1 0 部分积右移1位所以, |X×Y|=0.1101000101X×Y=-0.1101000101(2) |X|=0.11010 → B, |Y|=0.01110 → C, 0→A 5=0,+ 000.0000000.00000 0 0 0 1 1 1 部分积右移1位5=1,+ |X|00.1101000.01101 0 0 0 0 1 1 部分积右移1位5=1,+ |X|01.0011100.10011 1 0 0 0 0 1 部分积右移1位5=1,+ |X|01.0110100.10110 1 1 0 0 0 0 部分积右移1位5=0,+ 000.1011000.01011 0 1 1 0 0 0 部分积右移1位所以, |X×Y|=0.010*******X×Y=+0.010*******补码乘法:(1)[X]补=0.11011 → B, [Y]补=1.00001 → C, 0 → A [-X]补说明 + [-X]补5C 6=10,+ [-X]补11.0010111.10010 1 1 0 0 0 0 1 部分积右移1位+ [X]补5C 6=01,+ [X]补00.0110100.00110 1 1 1 0 0 0 0 部分积右移1位5C 6=00,+ 000.0011000.00011 0 1 1 1 0 0 0 部分积右移1位5C 6=00,+ 000.0001100.00001 1 0 1 1 1 0 0 部分积右移1位5C 6=00,+ 000.0000100.00000 1 1 0 1 1 1 0 部分积右移1位+ [-X]补 5C 6=10,+ [-X]补所以, [X×Y]补=1.0010111011X×Y =-0.1101000101(2)[X]补=1.00110 → B, [Y]补=1.10010 → C, 0→A [-X]补说明5C 6=00,+ 01位+ [-X]补 00.11010 C 5C 6=10,+ [-X]补00.1101000.01101 0 0 1 1 0 0 1 部分积右移1位+ [X]补 11.00110 C 5C 6=01,+ [X]补11.1001111.11001 1 0 0 1 1 0 0 部分积右移1位+ 0 00.00000 C 5C 6=00,+ 011.1100111.11100 1 1 0 0 1 1 0 部分积右移1位+ [-X]补 00.11010 C 5C 6=10,+[-X]补00.1011000.01011 0 1 1 0 0 1 1 部分积右移1位+ 0 5C 6=11,+ 000.01011所以, [X×Y]补=0.010*******X×Y = 0.010*******4-10.分别⽤原码和补码加减交替法计算X/Y 。
(完整版)计算机组成原理知识点总结
第2章数据的表示和运算主要内容:(一)数据信息的表示1.数据的表示2.真值和机器数(二)定点数的表示和运算1.定点数的表示:无符号数的表示;有符号数的表示。
2.定点数的运算:定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数的乘/除运算;溢出概念和判别方法。
(三)浮点数的表示和运算1.浮点数的表示:浮点数的表示范围;IEEE754标准2.浮点数的加/减运算(四)算术逻辑单元ALU1.串行加法器和并行加法器2.算术逻辑单元ALU的功能和机构2.3 浮点数的表示和运算2.3.1 浮点数的表示(1)浮点数的表示范围•浮点数是指小数点位置可浮动的数据,通常以下式表示:N=M·RE其中,N为浮点数,M为尾数,E为阶码,R称为“阶的基数(底)”,而且R为一常数,一般为2、8或16。
在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来。
浮点数的机内表示浮点数真值:N=M ×2E浮点数的一般机器格式:数符阶符阶码值 . 尾数值1位1位n位m位•Ms是尾数的符号位,设置在最高位上。
•E为阶码,有n+1位,一般为整数,其中有一位符号位EJ,设置在E的最高位上,用来表示正阶或负阶。
•M为尾数,有m位,为一个定点小数。
Ms=0,表示正号,Ms=1,表示负。
•为了保证数据精度,尾数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值大于或等于0.5。
对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求。
浮点数的机内表示阶码通常为定点整数,补码或移码表示。
其位数决定数值范围。
阶符表示数的大小。
尾数通常为定点小数,原码或补码表示。
其位数决定数的精度。
数符表示数的正负。
浮点数的规格化字长固定的情况下提高表示精度的措施:•增加尾数位数(但数值范围减小)•采用浮点规格化形式尾数规格化:1/2≤M <1 最高有效位绝对值为1浮点数规格化方法:调整阶码使尾数满足下列关系:•尾数为原码表示时,无论正负应满足1/2 ≤M <1即:小数点后的第一位数一定要为1。
第4章 数值的机器运算
哈尔滨学院2014年秋季学期单元测试试卷课程名称:计算机组成原理单元名称:第四章数值的机器运算一、填空题1.影响并行加法器速度的关键因素是。
2.A、B均为8位二进制数,A=F0H,B=E0H,则A+B= ,A-B= 。
C4.两个补码数相加,采用1位符号位,当时,表示结果溢出。
A.符号位有进位B.符号位进位和最高数位进位异或结果为0C. 符号位为1D.符号位进位和最高数位进位异或结果为15.在双符号位判断溢出的方案中,出现正溢时,双符号位应当为。
A. 00B. 01C. 10D. 116.在定点机中执行算术运算时会产生溢出,其原因是。
A.主存容量不够 B.操作数过大C.操作数地址过大D.运算结果无法表示7. 当定点运算发生溢出时,应进行。
A. 向左规格化B.向右规格化91112.X、C.n+1 D. n+213.原码加减交替除法又称为不恢复余数法,因此。
A.不存在恢复余数的操作B.当某一步运算不够减时,做恢复余数的操作C.仅当最后一步余数为负时,做恢复余数的操作D.当某一步余数为负时,做恢复余数的操作14.在加法器、寄存器的基础上增加部分控制电路实现除法时,用B寄存器存放。
A.被乘数和被除数B.被乘数和除数C. 乘数和被除数D.乘数和除数15.若浮点数用补码表示,判断运算结果是否是规格化数的方法是。
16.20.计算机中的累加器。
A .没有加法器功能,也没有寄存器功能B.没有加法器功能,有寄存器功能C. 有加法器功能,没有寄存器功能D.有加法器功能,也有寄存器功能21.一个C 语言程序在一台32位机器上运行。
程序中定义了3个变量x 、y 和z ,其中x 和z 为int 型,y 为short 型。
当x=127、y=-9时,执行赋值语句z=x+y 后,x 、y 和z 的值分别是A .H z H FFF y FH x 00000076,9,0000007===B .H FFFF z H FFF y FH x 0076,9,0000007===C. H FFFF z H FFF y FH x 0076,7,0000007===D .H z H FFF y FH x 00000076,7,0000007===222325A. y x +B. y x +-C. y x -D. y x --三、判断题1.进位信号串行传递的加法器称为串行加法器。
计算机组成原理第二章数据的表示和运算
计算机组成原理第⼆章数据的表⽰和运算第⼆章数据的表⽰和运算数制与编码进制转换使⽤⼆进制的原因⼆进制与⼋进制、⼗六进制的转换各种进制的书写⽅式⼗进制转换为任意进制整数部分⼗进制转换⼆进制如(75)10752=37……1 K372=18……1 K1182=9……0 K292=4……1 K342=2……0 K422=1……0 K512=0……1 K6K0K1K2K3K4K5K6=1101001⼩数部分⼗进制转换⼆进制如(75.3)10⼩数部分=0.30.3∗2=0.6=0+0.6 K−10.6∗2=1.2=1+0.2 K−20.2∗2=0.4=0+0.4 K−30.4∗2=0.8=0+0.8 K−40.8∗2=1.6=1+0.6 K−5……0.3D=0.01001……B⼩数⽆法准确表述⼗进制转换⼆进制(拼凑法)总结Processing math: 52%BCD码(Binary-Coded Decimal)修正数据(9+9)10(9)10→(1001)2(9+9)2=100110011001+1001−−−−1001010010超出了8421码中的1010−1111+(6)10⇔+(0110)2修正10010+0110−−−−11000相加结果在合法范围(1010~1111)内,不需要修正其他编码总结字符与字符串ASCII码可印刷字符:32~126其余为控制、通信字符⼤写字母:65(0100 0001)~ 90(0101 1010)⼩写字母:97(0110 0001)~ 122(0111 1010)汉字的表⽰和编码输⼊:输⼊编码输出:汉字字形码字符串⼤端模式&⼩端模式总结奇偶校验码校验原理当d=1时,⽆检错能⼒;当d=2时,有检错能⼒;当d≥3时,若设计合理,可能具有检错纠错能⼒(海明码)奇偶校验码例题奇校验:(1)1001101 (0)1010111偶校验:(0)1001101 (1)1010111只能发现数据代码中奇数位的出错情况,但不能纠错总结海明码简单思路求解步骤总结循环冗余校验码基本思想校验步骤(模⼆除)G(x)=x3+x2+1=1∗x3+1∗x2+0∗x1+1∗x0→1101110101−−−−−−−−−−−−−−−−−−−1101 |101001000110111101101−−−−−−−−−−−−−−−−−−−01110000−−−−−−−−−−−−−−−−−−−11101101−−−−−−−−−−−−−−−−−−−01100000−−−−−−−−−−−−−−−−−−−11001101−−−−−−−−−−−−−−−−−−−001→校验位对应的CRC码为101001 001s余数为001、010时并不能确定是哪⼀位出错了此时是信息位过多,降低信息位就可以解决问题K个信息位,R个校验位,若⽣成多项式选择得当,且2R≥K+R+1,则CRC码可纠正1位错总结定点数的表⽰⽆符号数通常只有⽆符号整数,⽽没有⽆符号⼩数1001100B=1∗27+1∗26+0∗25+0∗24+1∗23+1∗22+0∗21+0∗20=156D有符号数的定点表⽰原码⽤尾数表⽰真值部分的绝对值,符号位“0/1”对应“正/负”若机器字长为n+1位,则尾数占n位反码若符号位为0,则反码与原码相同若符号位为1,则数值位全部取反反码是原码转变为补码的⼀个中间状态补码正数的补码=原码负数的补码=反码末位+1(要考虑进位)设机器字长为8位[+0]原=0000 0000[+0]反=0000 0000[+0]补=0000 0000[−0]原=1000 0000[−0]反=1111 1111[−0]补=1 0000 0000由于机器字长为8位,进位丢弃[−0]补=0000 0000逆向将负数补码转回原码的⽅法相同:尾数取反,末尾+1[−19]原=1001 0011[−19]反=1110 1100[−19]补=1110 1101[−19]原=1001 0010+0000 0001=1001 0011移码补码的基础上将符号位取反移码只能⽤于表⽰整数⼏种码表⽰定点整数练习假设机器字长为8位定点整数x=50[+50]原=0011 0010[+50]反=0011 0010[+50]补=0011 0010[+50]移=1011 0010定点整数x=−100[−100]原=1110 0100[−100]反=1001 1011[−100]补=1001 1100[−100]移=0001 1110知识回顾各种码的作⽤⽤加法代替减法表盘为例10+9=1919%12=7相当于求余数模运算的性质可以说在模12的情况下上述数字等价其中-3和9互为补数,⼆者绝对值之和等于模\begin{align} 有符号数&~~~~~~~~~~~~~~~~~~~⽆符号数\\ 14~~~~~~&0000~1110~~~~~~~~14\\ -14~~~+&1000~1110~~~~~~142\\ -----&-----------\\0~~~~~~&1001~1100~~~~~~156\\ &模-a的绝对值=a的补数\\ &0000~1110\\ -&0000~1110\\ -----&-----------\\ &0000~0000\\ &\\ &模2^8-0000~1110\\ &1~0000~0000\\ -&~~~0000~1110\\ -----&-----------\\ &~~~1111~0010\\ -----&-----------\\ &~~~0000~1110\\ +&~~~1111~0010\\ -----&-----------\\ &~1~0000~0000\\ \end{align}\begin{align} &求-66的补码\\ &[-66]_{原}=1100~0010\\ &[-66]_{反}=1011~1101\\ &[-66]_{补}=1011~1110\\ &[+88]_{原}=0101~1000\\ &1101~1000\\ +&0011~1110\\ --&-----------------\\ 1~&0001~0110~~~~~~22D\\ \end{align}移位运算算术移位原码的算术移位\begin{align} &[+20]_{原}=0001~0100\\ &{左移⼀位}=0010~1000=+40D\\ \end{align}反码的算数移位补码的算数移位\begin{align} &[-20]_{原}=1001~0100\\ &[-20]_{反}=1110~1011\\ &[-20]_{补}=1110~1100\\ &左移⼀位=1010~1000\\ &[-20]_{原}=1001~0100\\ &[-20]_{反}=1110~1011\\ &[-20]_{补}=1110~1100\\ &右移⼀位=1111~0110\\ \end{align}逻辑移位(针对⽆符号数)应⽤举例循环移位总结加减运算原码的加减运算补码的加减运算\begin{align} &A=15,B=-24,C=124,求[A+C]_{补}[B-C]_{补}\\ &[A]_{原}=0000~1111\\ &[A]_{反}=0000~1111\\ &[A]_{补}=0000~1111\\ &[B]_{原}=1001~1000\\ &[B]_{反}=1110~0111\\ & [B]_{补}=1110~1000\\ &[C]_{原}=0111~1100\\ &[C]_{反}=0111~1100\\ &[C]_{补}=0111~1100\\ &[A+C]_{补}\\ &0000~1111\\ +&0111~1100\\ ----&------------\\ &1000~1011\\&1111~0100\\ &1111~0101~~~~~~-117D\\ &[B-C]_{补}\\ 1&~0000~0000\\ -&~0111~1100\\ ----&-------------\\ &~1000~0100\\ +&~1110~1000\\ ----&-------------\\ &~0110~1100\\&~0110~1100\\ &~0110~1100~~~~~~+108D\\ \end{align}出现了溢出溢出判断⼀位符号逻辑表达式进位判断双符号位符号扩展整数⼩数总结乘法运算⼿算乘法(⼗进制)⼿算乘法(⼆进制)原码⼀位乘法实现⽅法:先加法再移位,重复n次(0)乘法进⾏前ACC置0(1)第⼀步加法加法移位(2)第⼆步加法加法移位(3)第三步加法加法移位(4)第四步加法加法移位乘法结果修正符号位原码⼀位乘法(⼿算模拟)\begin{align} &⾼位部分积~~~~ ~~~~低位部分积~~~~ ~~~~ ~~~~说明\\ &~~00.0000~~~~ ~~~~ ~~~~ ~~~~ 101\underline{1}|~~~~ ~~~~ 低位=1~~~~ +|x|\\ +|x|&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~|\\ ----&---------------------\\ &~~00.1101\\ 右移&~~00.0110~~~~ ~~~~ ~~~~ ~~~~ 110\underline{1}|1~~~~ ~~~ 低位=1~~~~ +|x|\\ +|x|&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~|\\ ----&---------------------\\ &~~01.0011\\ 右移&~~00.1001~~~~ ~~~~ ~~~~ ~~~~ 111\underline{0}|11~~ ~~~低位=0~~~~ +0 \\ +&~~00.0000\\ ----&---------------------\\&~~00.1001\\ 右移&~~00.0100~~~~ ~~~~ ~~~~ ~~~~ 111\underline{1}|011 ~~~低位=1~~~~ +|x| \\ +|x|&~~00.1101\\ ----&---------------------\\ &~~01.0001\\ 右移&~~00.1000~~~~ ~~~~ ~~~~ ~~~~ 111\underline{1}|1011 ~右移部分积和乘数全部移出 \\ &|x|=00.10001111\\ &x*y=-0.10001111\\ \end{align}补码的⼀位乘法辅助位⼿算模拟\begin{align} &⾼位部分积~~~~ ~~~~低位部分积~~~~ ~~~~ ~~~~说明\\ &~~00.0000~~~~ ~~~~ ~~~~ 0.101\underline{1}|0~~~~ ~~~~ ~~~~起始情况\\ +[-x]_补&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=-1,+[-x]_{补}\\ ----&-----------------------------\\ &~~00.1101\\ 右移&~~00.0110~~~~ ~~~~ ~~~~10.10\underline{1}|10~~~~ ~~~~ ~~~~右移部分积和乘数\\ +0&~~00.0000~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=0,+0\\ ----&-----------------------------\\ &~~00.0110\\ 右移&~~00.0011~~~~ ~~~~ ~~~~ 010.1\underline{0}|110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[x]_补&~~11.0011~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~~~~~ ~~~~ Y_4Y_5=01,Y_5-Y_4=1,+[x]_补\\ ----&-----------------------------\\ &~~11.0110\\ 右移&~~11.1011~~~~ ~~~~ ~~~~ 0010.\underline{1}|0110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[-x]_补&~~00.1101~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ Y_4Y_5=10,Y_5-Y_4=-1,+[-x]_补\\ ----&-----------------------------\\ &~~00.1000\\ 右移&~~00.0100~~~~~~~~ ~~~~ \underline{\underline{0001}}\underline{0}.|10110~~~~ ~~~~ ~~~~右移部分积和乘数\\ +[x]_补&~~11.0011~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~Y_4Y_5=01,Y_5-Y_4=1,+[x]_补\\ ----&-----------------------------\\ &~~11.0111\\ &[x*y]_补=11.0111~0001\\ &x*y=-0.1000~1111\\ \end{align}除法运算⼿算除法(⼗进制)⼿算除法(⼆进制)恢复余数法原码除法:恢复余数法(0)初始(1)第⼀步上商求余数判断上商是否正确01011上商后得11110,相减结果为负,应上商0修正逻辑左移(2)第⼆步上商求余数判断上商是否正确相减结果为正数,上商正确逻辑左移(3)第三步上商求余数判断上商是否正确上商⽆误逻辑左移(4)第四步上商求余数判断上商是否正确相减结果⼩于0,上商有误修正逻辑左移(5)第五步:最后⼀步除法上商&求余数判断上商是否正确最后⼀步除法,如果上商求余数结果⼩于0.还需要继续恢复余数(6)最后⼀步\begin{align} &余数=ACC*2^{-n}\\ \end{align}原码除法(⼿算)加减交替法默认规定被除数要⼩于除数,否则硬件电路⽆法运⾏,如果被除数⼤于除数,商的结果为⼤于1的数将⽆法表⽰通过第⼀步的商来判断被除数与除数的⼤⼩关系第⼀步商的结果⼀定为负值,如果为正值说明被除数⽐除数⼤,硬件电路会⽴即停⽌运算补码除法加减交替法总结C语⾔中的强制类型转换数据的存储和排列⼤⼩端模式边界对齐浮点数的表⽰浮点数尾数的规格化左规&右规规格化浮点数的特点总结IEEE754 浮点数标准\begin{align} &IEEE754规定偏置值=2^{n-1}\\ \end{align}IEEE 754 标准\begin{align} &(-0.75)_{10}=(-0.11)_2=(-1.1)*2^{-1}\\ &数符=1\\ &尾数部分=.1000~0000……(隐含最⾼位1)\\ &阶码真值=-1\\ &单精度浮点型偏移量=127D\\ &移码=阶码真值+偏移量=-1+111~1111=0111~1110(凑⾜8位)\\ \end{align}总结浮点数的运算浮点数的加减运算\begin{align} &(0)转换格式\\ &5D=101B,\frac{1}{256}=2^{-8},X=-101*2^-8=-0.101*2^{-5}=-0.101*2^{-101}\\ &59D=111011,\frac{1}{1024}=2^{-10},Y=111011*2^{-10}=0.111011*2^{-4}=0.111011*2^{-100}\\ &X: &[阶码]_{原}=-101\\ &[阶码]_{补}=1011\\ &阶码双符号位补码:11011\\ &[尾数]_{原}=-0.101\\ &[尾数]_{补}=1.011\\ &尾数双符号位补码:11.011\\&X=11011,11.011000000\\ &Y: &[阶码]_{原}=-100\\ &[阶码]_{补}=1100\\ &阶码双符号位补码:11100\\ &[尾数]_{原}=0.111011\\ &[尾数]_{补}=0.111011\\ &尾数双符号位补码:00.111011\\ &X=11100,00.111011000\\ &浮点数加减法运算步骤\\ &(1)对阶\\ &⼩阶向⼤阶看齐,尾数每右移⼀位,阶码+1\\ &[1]求阶差:[\Delta E]_补=||E_X|_原+|E_Y|_补|=11011+00100=11111\\ &\Delta=-1\\ &[2]对阶:X:11011,11.011000000\rightarrow 111011,11.1011000000\\ &X=-0.0101*2^{-100}\\ &(2)尾数减法\\ &-Y=11100,11.000101000\\ &11011,11.011000000\\ +&11100,11.000101000\\ ---&----------------------------\\ &10.110001000\\ &X_Y=11100,10.110001000\\ &(3)规格化\\&X_Y=11100,10.110001000\rightarrow11101,011000100\\ &(4)舍⼊ \\ &⽆需舍⼊\\ &(5)判断溢出\\ &常阶码,⽆溢出,结果真值为2^{-3}*(-0.1001111)_2 \end{align}舍⼊强制类型转换总结加法器设计算术逻辑单元ALU机器字长=ALU⼀次可以处理的数据长度基本逻辑运算⽤门电路求偶校验位⼀位全加器串⾏加法器并⾏加法器总结加法器、ALU的改进并⾏加法器的优化组内并⾏&串⾏ALU芯⽚优化。
计算机组成原理:4-2 数值的机器运算
( 小数点不动 !)
左移 ——绝对值扩大
右移—— 绝对值缩小
在计算机中,移位与加减配合,能够实现
乘除运算。
逻辑移位
逻辑移位——无符号数的移位。
逻辑左移:低位添 0,高位移丢。
0 逻辑右移:高位添 0,低位移丢。
0
例:
01010011
逻辑左移 10100110
逻辑右移 00101001
算术移位
较大正数相加 产生进位,影
响符号位
解: [X]补= 0 , 1 0 1 0 + [Y]补= 0 , 1 0 0 1 1,0011
设字长为5
例2:X=-1010 Y=-1011 求 X+Y
解: [X]补= 1, 0 1 1 0
+ [Y]补= 1, 0 1 0 1 0,1011
较大的负数对应较 小的正数补码,相 加无进位,符号位
例: X=-0.1100 Y=-0.1000,求 X+Y=? 解:设字长为5.
[X]补=11. 0100 + [Y]补=11. 1000
10. 1100 结果说明:
负数绝对值太大了对应的补码小,最高数据位向前无进位, 而符号位向前有进位; 两个符号位:10,表示负上溢
双符号位法溢出逻辑表达式为:V=Sf1⊕ Sf2
在模2意义下,任意两数的补码之和等于该两数之和 的补码。 这是补码加法的理论基础。
特点:
不需要事先判断符号,符号位与数值位一起参加 运算,符号位相加后若有进位,则舍去该进位数字。
补码加法运算举例
例: X=+0.1010, Y=+0.0011,求 X+Y 解: 设字长为5.
[X]补=0. 1 0 1 0 + [Y]补=0. 0 0 1 1
计算机组成原理第4章
本章学习要求
• 掌握:定点补码加法和减法运算方法 • 理解:3种溢出检测方法 • 理解:补码移位运算和常见的舍入操作方法 • 了解:串行加法器与并行加法器 • 理解:进位产生和进位传递 • 掌握:定点原码、补码乘法运算方法 • 掌握:定点原码、补码加减交替除法运算方法 • 理解:浮点加减乘除运算 • 理解:逻辑运算 • 了解:运算器的基本结构及浮点协处理器
第4章 数值的机器运算
设操作数信号为4、3、2、1、(最低 位信号为1)。向最低位进位的信号为C0、 Gi、Pi 分别是各位的进位产生函数和进位 传递函数。
(1)完善第4位先行进位信号的逻辑表达 式。 C4=G4+P4G3+……
(2)基于操作数,试述表达式中各项的 实际含义。
第4章 数值的机器运算
[-Y]补=[[Y]补]变补
第4章 数值的机器运算
2.补码减法(续)
“某数的补码表示”与“变补”是两个不 同的概念。一个负数由原码转换成补码时,符 号位是不变的,仅对数值位各位变反,末位加 “1”。而变补则不论这个数的真值是正是负, 一律连同符号位一起变反,末位加“1”。[Y]补 表示的真值如果是正数,则变补后[-Y]补所表示 的真值变为负数,反之亦然。
第4章 数值的机器运算
16位单级先行进位加法器
S1 6~S1 3
S1 2~S9
S8~S5
S4~S1
C16 4位CLA C12 4位CLA C8 4位CLA C4 4位CLA
加法器
加法器
加法器
加法器
C0
A1 6~A1 3
A1 2~A9
B1 6~B1 3
B1 2~B9
A8~A5 B8~B5
计算机运算原理
计算机运算原理
计算机运算原理是指计算机进行数据处理和运算的基本原理。
计算机运算是通过执行一系列的算术和逻辑操作来实现的。
首先,计算机运算需要使用二进制数来表示和处理数据。
在计算机中,所有的数据都是以二进制形式表示的,其中0和1分别表示逻辑上的“假”和“真”。
其次,计算机运算包括算术运算和逻辑运算。
算术运算是指对数据进行加、减、乘、除等数学运算,而逻辑运算是通过对数据进行与、或、非等逻辑运算来实现不同的逻辑结果。
计算机运算需要使用运算器和控制器来完成。
运算器包括算术逻辑单元(ALU)和寄存器,它们负责进行具体的运算操作,如加法、乘法等。
控制器负责控制和协调运算器的工作,它根据程序中的指令来决定何时执行什么样的运算操作。
计算机运算过程中使用的指令集是通过指令和数据组成的。
指令是计算机执行某个操作的命令,数据则是指令操作的对象。
计算机通过解码指令,提取操作码和操作数,并根据操作码指示的操作对操作数进行相应的处理。
最后,计算机运算还需要考虑数据的存储和传输。
计算机内部的数据存储是通过寄存器和内存来实现的,而数据的传输则需要使用总线进行。
总线是计算机各个部件之间传输数据和信号的通道,它包括数据总线、地址总线和控制总线等。
通过运算器和控制器的协调工作,计算机能够实现各种复杂的运算和处理任务。
计算机运算原理的理解和掌握对于深入了解计算机工作原理和优化程序性能具有重要意义。
《计算机组成原理第4章数值的机器运算
3.移位功能的实现 3.移位功能的实现 在计算机中, 在计算机中 , 通常移位操作由移位寄存 器来实现, 器来实现,但也有一些计算机不设置专门的移 位寄存器,而在加法器的输出端加一个移位器。 位寄存器,而在加法器的输出端加一个移位器。 移位器是由与门和或门组成的逻辑电路( 移位器是由与门和或门组成的逻辑电路(实际 是一个多路选择器) 可以实现直传( 是一个多路选择器 ) , 可以实现直传 ( 不移 左斜一位送(左移一位) 位)、左斜一位送(左移一位)和右斜一位送 右移一位)的功能。 (右移一位)的功能。
10
3.补码加减运算规则
⑴参加运算的两个操作数均用补码表示; 参加运算的两个操作数均用补码表示; 符号位作为数的一部分参加运算; ⑵符号位作为数的一部分参加运算; 若做加法, 则两数直接相加, 若做减法, ⑶ 若做加法 , 则两数直接相加 , 若做减法 , 则 将被减数与减数的机器负数相加; 将被减数与减数的机器负数相加; ⑷运算结果仍用补码表示
第4章数值的机器运算
运算器是计算机进行算术运算和逻辑运 算的主要部件, 算的主要部件,运算器的逻辑结构取决于机器 的指令系统、数据表示方法和运算方法等。 的指令系统、数据表示方法和运算方法等。本 章主要讨论数值数据在计算机中实现算术运算 和逻辑运算的方法, 和逻辑运算的方法,以及运算部件的基本结构 和工作原理。 和工作原理。
8
4.2.2 补码加减运算
1.补码加法 补码加法 两个补码表示的数相加,符号位参加运算, 两个补码表示的数相加,符号位参加运算,且两 数和的补码等于两数补码之和, 数和的补码等于两数补码之和,即: [X+Y]补=[X]补+[Y]补
2.补码减法 补码减法
根据补码加法公式可推出: 根据补码加法公式可推出: [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补 从补码减法公式可以看出,只要求得[-Y] 补 , 就 从补码减法公式可以看出 , 只要求得 可以变减法为加法。 不管Y的真值为正或为负 的真值为正或为负, 可以变减法为加法 。 不管 的真值为正或为负 , 已知 [Y]补求[-Y]补的方法是:将[Y]补连同符号位一起求反, 的方法是: 连同符号位一起求反, 末尾加“ 被称为[Y] 的机器负数, 末尾加 “ 1” 。 [-Y]补 被称为 补 的机器负数 , 由 [Y] 补 的过程称为对[Y] 变补(求补) 求[-Y]补的过程称为对 补变补(求补),表示为 [-Y]补=[[Y]补]变补 9
计算机组成原理
第二章 计算机组成原理2.1 计算机的组成与分类 2.1.1 计算机的发展与作用一、 计算机的发展过去很长时间人们都按照计算机主机所使用的元器件,为计算机划代。
二、计算机的巨大作用1开拓了人类认识自然、改造自然的新资源 2增添了人类发展科学技术的新手段 3提供了人类创造文化的新工具 4引起了人类的工作与生活方式的变化2.1.2 计算机系统的组成● 硬件:计算机系统中所有实际物理装置的总称● 软件:在计算机中运行的各种程序和相关的数据及文档 程序:用来向计算机指出应如何一步步地进行规定的操作 数据:程序处理的对象深入到各行各业,家庭和个人开始使用计算机软件工程、分布式计算、网络软件等开始广泛使用CPU :LSI 、VLSI 内存:LSI 、VLSI 的半导体存储器20世纪70年代中期以来第4代在科学计算、数据处理、工业控制等领域得到广泛应用操作系统,数据库管理系统等开始使用CPU :SSI ,MSI 内存:SSI ,MSI 半导体存储器60年代中期~70年代初期第3代开始广泛应用于数据处理领域使用FORTRAN 等高级程序设计语言CPU :晶体管 内存:磁芯50年代中后期~60年代中期 第2代 科学计算和工程计算使用机器语言和汇编语言编写程序CPU :电子管 内存:磁鼓20世纪40年代中期~50年代末期 第1代 主要应用 配置的软件 主要元器件 年 代 代 别文档:提供给用于使用的操作说明、技术资料等它们都是软件不可缺少的组成部分计算机硬件组成示意图一、输入设备●输入(input)指把信息(程序,数据,信息)送入计算机的过程(名词)向计算机输入的内容输入设备,用来向计算机输入信息的设备输入到计算机中的信息都使用二进制中的“0”和“1”两个符号来表示输入设备类别●按照输入信息的类型划分●数字和文字输入设备(键盘、写字板等)●位置和命令输入设备(鼠标器、触摸屏等)●图形输入设备(扫描仪,数码相机等)●声音输入设备(话筒,MIDI演奏器等)●视频输入设备(摄像机)●温度、压力输入设备(温度、压力传感器)二、中央处理器CPU●处理器能高速地进行算术运算和逻辑运算,负责对输入信息进行各种处理●微处理器简称μP或MP,通常指使用单片大规模集成电路制成的、具有运算和控制功能的处理器包含运算器和控制器。
计算机组成原理复习2
主存容量
一个主存储器所能存储的全部信息量称 为主存容量。衡量主存容量单位有两种: ① 字节数。这类计算机称为字节编址的计 算机。每1024个字节称为1K字节 (210=1K),(220=1M),(230=1G)。 ② 字数×字长。这类计算机称为字编址的 计算机。如:4096×16表示存储器有4096 个存储单元,每个存储单元字长为16位。
计算机组成原理复习
写出各种寻址方式的有效地址EA 的计算式(PC为程序计数器,A为 形式地址,Rx为变址寄存器): 寻址方式: 例:立即寻址 EA=(PC) 直接寻址 间接寻址 变址寻址 相对寻址
计算机组成原理复习
习题1:执行一条一地址的加法指令共 需要___ B 次访问内存(含取指令)。
A. 1 B. 2 C. 3 D. 4
计算机组成原理复习第第3章章指令系统计算机组成原理复习专业文档某机字长32位指令单字长指令系统中具有二地址指令一地址指令和零地址指令各若干条已知每个地址长12位采用扩展操作码方式问该指令系统中二地址指令一地址指令零地址指令各最多能有多少条
计算机组成原理
陈锦煌
E-mail:554237327@
A. 4K B. 8K C. 16K D. 24K
计算机组成原理复习
习题4:某计算机存储器按字(16位)编址, 每取出一条指令后PC的值自动+1,说明其 指令长度是___ B。
A. 1字节 B. 2字节 C. 3字节 D. 4字节
计算机组成原理复习
习题5:变址寄存器寻址方式中,若变址 寄存器的内容是4E3CH,指令中的形式地 址是63H,则对应的有效地址是___ D。
计算机组成原理复习
计算机的硬件应由运算器、存储器、控制器、输入设 备和输出设备五大基本部件组成。它们各自的功能是: ① 输入设备:把人们编好的程序和原始数据送到计算 机中去,并且将它们转换成计算机内部所能识别和接 受的信息方式。 ② 输出设备:将计算机的处理结果以人或其他设备所 能接受的形式送出计算机。 ③ 存储器:用来存放程序和数据。 ④ 运算器:对信息进行处理和运算。 ⑤ 控制器:按照人们预先确定的操作步骤,控制整个 计算机的各部件有条不紊地自动工作。
计算机组成原理--运算方法:加减乘除
计算机组成原理--运算⽅法:加减乘除补码加减法补码加法公式:[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
1、全加器(FA)
全加器真值表
全加器(FA)是最基本 的运算单元,由它构成 加法器。
全加器有三个输入量: 操作数Ai、Bi、以及低 位传来的进位信号Ci-1 。
全加器有两个输出量: 本位和Si、以及向高位 的进位信号Ci。
Ai 0 0 0 0 1 1 1 1
Bi 0 0 1 1 0 0 1 1
27
2、补码加减溢出的判别
例3、X=1011,Y=111 求X+Y。 解:[X]补=0,1011,[Y]补=0,0111 0,1011 (+11) 0,0111 (+7) 1,0010 例4、X=-1011,Y=-111 求X+Y。 解:[X]补=1,0101,[Y]补=1,1001 1,0101 (-11) 1,1001 (-7 ) 0,1110
参加运算的操作数用补码表 示。 补码的符号位与数值位同时 参加运算。 若做加法,则两数补码直接 相加; 若做减法,用被减数与减数 的机器负数相加。 运算结果为和、差的补码。 注:机器负数等于补码连同 符号位按位求反,末位加1。
26
补码加减示例
例1、A=0.1011, B=-0.1110,求A+B. 解: [A]补 = 0.1011, [B]补 = 1.0010 0.1011 + 1.0010 1.1101 ∴ [A+B]补 = 1.1101 A+B = -0.0011 例2、A=0.1011, B=-0.0010,求A-B. 解: [A]补 = 0.1011, [B]补 = 1.1110, [-B]补 = 0.0010 0.1011 + 0.0010 0.1101 ∴ [A-B]补 = 0.1101 A-B = 0.1101
计算机组成原理
概论CPU :中央处理器,是计算机的核心部件,由运算器和控制器构成。
运算器:计算机中完成运算功能的部件,由ALU 和寄存器构成。
总线:计算机中连接功能单元的公共线路,是一束信号线的集合。
主机:由CPU 、存储器与IO 接口合在一起构成的处理系统称为主机。
接口:是主机与外设之间传递数据与控制信息的电路,是主机与外设的桥梁。
汇编语言:采用文字方式(助记符)表示的程序设计语言。
字长:一个数据字包含的位数,一般为8 位、16 位、32 位和64 位等。
运算器的功能:完成算术逻辑运算,由ALU 和若干寄存器组成。
其中ALU 负责执行各种数据运算操作,寄存器用于暂时存放参与运算的数据以及保存运算状态。
控制器的功能:从内存中取出指令,对其进行译码,产生相应的时序控制信号,控制其它器件工作。
数据编码和数据运算数据:定点数据、浮点数据、图形数据、文字数据。
原码:用一个符号位表示数据的正负,0 代表正号,1 代表负号,其余的代码表示数据的绝对值。
补码:用最高位表示符号,其余各位代码给出数值按2 取模的结果。
阶码:浮点数编码中,表示小数点的位置的代码。
海明距离:在信息编码中,两个合法代码对应位上编码不同的数据位。
冯诺依曼舍入法:浮点数据的一种舍入方法,在截去多余位时,将剩下数据的最低位置1 。
规格化数:浮点数编码中,为使浮点数具有唯一的表示方式所作的规定,规定尾数部分用纯小数形式给出,而且尾数的绝对值应大于1/R ,即小数点后的第一位不为零。
机器零:浮点数编码中,阶码和尾数为全0 时代表的0 值。
为什么用二进制:容易用数据电路表示,数据运算和存储方式简单,是高效的数据表示方式。
如何区分ASCII 代码和汉字编码:ASCII 代码是7 位的代码,在存储时可以在它前面增加一位形成8 位的代码,增加的位用0 表示是ASCII 码, 1表示是汉字编码。
存储系统SRAM :静态半导体存储器,可随机读写,其存储的数据表示为晶体三极管构成的双稳态电路的电平,存储数据稳定,不需刷新。
计算机组成原理第4章
数据开关 (11000001)
C1H
打开三 态门 SW_G=0
-1 0 +1 定点小数
器允许的表示范围(溢出)。
补码 纯小数:0≤X<1
总线1 总线2
通用 寄存器
ALU
特殊 寄存器
总线 旁路器
总线3
16
4.9 运算器的基本组成与实例
4.9.2 ALU举例 1. ALU电路
ALU即算术逻辑单元,它是既能完成算术运 算又能完成逻辑运算的部件。前面已经讨论过, 无论是加、减、乘、除运算,最终都能归结为加 法运算。因此,ALU的核心首先应当是一个并行 加法器,同时也能执行像“与”、“或”、 “非”、“异或”这样的逻辑运算。由于ALU能 完成多种功能,所以ALU又称多功能函数发生器。
C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0
C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
6
C1=G1+P1C0 C2=G2+P2C1 C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
…
…
计算机组成原理知识点
计算机组成原理知识点第一章:概论1、电子计算机:电子模拟计算机(连续变化的物理量)和电子数字计算机(离散的数字量)。
2、计算机的发展历史:根据电子元器件的不同,分为若干个代:电子管,晶体管,小、中规模的集成电路,大、超大规模的集成电路,甚大规模的集成电路,极大规模的集成电路。
3、冯诺伊曼存储程序的概念:5大组成部分,二进制,存储与程序控制4、计算机的组成框图:5、计算机的主要部件:输入设备,输出设备,存储器,运算器,控制器6、计算机总线结构:单总线和双总线7、计算机系统:硬件和软件8、计算机的主要性能指标:机器字长、数据通路宽度、主存容量、运算速度第二章:数据的机器层次表示1、无符号数和有符号数:2、原码表示法:[X]=X/2n-X;补码表示法:[X]=X/M+X;反码表示法:[X]=X/(2-2-n)+X3、模和同余的概念:4、三种码制之间的相互转换:5、机器数的定点表示法:定点整数和定点小数:6、浮点表示法:N=M×r E;浮点数的表示范围,规格化浮点数。
7、ASCII字符编码,汉字国标码,汉字区位码,汉字机内码8、十进制数的编码:8421码,2421码,余3码9、数据校验码:奇偶校验码,海明校验码,第三章:指令系统1、指令的基本格式:操作码字段+地址码字段(一、二、三、四和零)地址2、指令操作码的定长编码和变长编码:3、编址方式:编址单位:字、字节、位;指令中地址码的位数与主存容量和最小寻址单位有关。
4、指令寻址和数据寻址:分为:顺序寻址和跳跃寻址(直接、相对和间接)。
5、数据寻址的方式:立即寻址(立即数)、寄存器寻址(寄存器地址)、直接寻址(主存中有效地址)、间接寻址(又分一级和多级,需要多次访问主存)、寄存器间接寻址(主存地址放在寄存器中)、变址寻址(变址寄存器与指令给出的形式地址A相加)、基址寻址(基址寄存器的内容与指令给出的位移量D相加)、相对寻址(程序计数器的基准地址与指令给出的位移量D相加)、页面寻址(分为基页寻址:0与给出地址拼接和当前页寻址,PC的高位地址与给出的地址拼接)、自增型寄存器简址和自减型寄存器简址(寄存器内容自动增量修改,指向下一个地址和自动减量修改)、扩展变址方式(变址和间址相结合:一种先进行变址运算,其结果作为间接寻址;先进行间接寻址,然后再与变址值进行运算)、基址变址寻址(基址寄存器中的值、变址寄存器中的值和位移量三者相加得到)6、堆栈分为:硬堆栈和软堆栈7、指令类型:数据传送类指令、运算类指令:算术运算、逻辑运算、移位;程序控制类指令(转移指令、子程序调用指令、返回指令)、输入输出类指令(独立编址、统一编址)第四章:数值的机器运算1、加法器:全加器、进位的产生和传递。
知识点 计算机组成原理
知识点计算机组成原理知识点-计算机组成原理计算机组成原理重要知识点第一章绪论一、冯.诺依曼思想体系――计算机(硬件)由运算器、控制器、存储器、输入输出设备五部分组成,存储程序,按地址出访、顺序继续执行二、总线的概念。
按传送信息的不同如何划分;按逻辑结构如何划分三、冯.诺依曼结构(普林斯顿结构)与哈弗结构的存储器设计思想四、计算机系统的概念,软件与硬件的关系、计算机系统的层次结构(实际机器与交互式机器)五、计算机的主要性能指标的含义(机器字长,数据通路宽度,主存容量,运算速度)六、cpu和主机两个术语的含义,完备的计算机系统的概念,硬件、软件的功能分割七、总线概念和总线分时共享资源的特点、三态门与总线电路第二章数据的机器层次表示一、真值和机器数的概念数的真值变为机器码时存有四种则表示方法:原码表示法,反码表示法,补码表示法,移码则表示码。
其中移码主要用作则表示浮点数的阶码e,以利比较两个指数的大小和对阶操作方式二、一个定点数由符号位和数值域两部分组成。
按小数点位置不同,定点数有纯小数和纯整数两种表示方法。
几种定点机器数的数值则表示范围。
三、浮点数浮点数的标准表示法:符号位s、阶码e、尾数m三个域组成。
其中阶码e通常用移码表示(其值等于指数的真值e加上一个固定偏移值)。
规格化浮点数(原码,补码则表示的规格化浮点数的区别)五、处理字符信息(符号数据即非数值信息),七、常用的bcd码:8421码、2421码、余3码、格雷码(有权码,无权码,特点)八、检错纠错码:奇偶校验(掌握奇偶校验原理及校验位的形成及检测方法),海明码的纠错原理(理解)第三章指令系统一、指令格式:指令的基本格式,指令的地址码结构(3、2、1、0地址指令的区别),非规整型指令的操作码(扩展览会操作码)二、编址方式(位,字节,字…)三、操作数串行方式――立即串行、轻易串行、间接串行、寄存器串行、寄存器间接串行、相对串行、基址寻址、变址寻址、页面寻址四、指令串行方式――顺序对串行方式、弹跳串行方式五、指令类型及功能六、不同的计算机的i/o指令差别很大,通常有两种方式:独立编址方式,统一编址方式第四章数值的机器运算一、为运算器构造的简单性,运算方法中算术运算通常采用补码加减法,原码乘除法或补码乘除法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章 数据的机器运算
计算机的主要功能是对数据进行各种加工和处理,包括 加、减、乘、除这些基本的算术运算,与、或、非这些 基本的逻辑运算,以及由此构成的其它复杂的运算。运 算器则是实现这些运算的主要部件。
无论多么复杂的运算,最终都要分解为加法运算来实现。 其中,减法运算通过补码转化为加法来实现 ;乘、除运 算可以转换为加减运算、移位操作来实现。加法和移位 是计算机中最基本的两种运算操作。
一个控制门M,选择算逻运算。 当M=0时,开门接收低位来的进 位信号,执行算术运算;当M=1 时,关门不接收低位进位信号, 执行逻辑运算,与进位无关。
22
算术逻辑部件ALU(续二)
控制信号与选择器输出关系表:
S3 S2 Xi S1 S0 Yi
001
0 0 Ai
0 1 Ai+Bi 0 1 AiBi
101 110 111
01 01 11
5
全加器的逻辑方程和电路
根据真值表得:
Si=Ai⊕Bi⊕Ci-1 Ci=AiBi+(Ai⊕Bi)Ci-1
Si : 本位和 Ci : 向高位的进位 一个全加器只完成一位加法
实现电路
逻辑框图
6
全加器构成加法器
全加器并不存储信息,可用门电路来实现。用全加 器能够方便地构成加法器。加法器分为串行加法器 和并行加法器。
4
1、全加器(FA)
全加器真值表
全加器(FA)是最基本 的运算单元,由它构成 加法器。
Ai Bi Ci-1 000
001
Si Ci 00
10
全加器有三个输入量: 0 1 0 操作数Ai、Bi、以及低 0 1 1 位传来的进位信号Ci-1 。 1 0 0
10 01 10
全加器有两个输出量: 本位和Si、以及向高位 的进位信号Ci。
进位产生次序如下:
产生第一小组的C1~C3、所有 组进位产生函数Gi*和组进位传 递函数Pi*,时间为2ty.
由CLA电路产生第二、三、四 小组的组间进位信号C4、C8、 C12、C16,时间为2ty.
产生第二、三、四小组的组内 进位信号C5、C6、C7、C9、C10、 C11、C13、C14、C15,时间为 2ty.
其中:C1=G1+P1C0 C2=G2+P2C1 ┇ Cn=Gn+PnCn-1
A2 B2
A1 B1
串行进位的并行加法器,总的延迟时间正比于字 长,字长越长,总延迟时间也越长。
若一位进位需2ty时间,完成n位进位就需要2nty.
要提高加法运算速度,必须改进进位方式。
9
3、并行加法器的快速进位
改进串行进位方式的基本思路是让各进位同时形成,避免各进位之 间的依赖关系。现在来分析一下进位关系。 展开C1=G1+P1C0 ;C2=G2+P2C1 ;… ,Cn=Gn+PnCn-1 得关系式: C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0 ┇ 以上进位输出只与Gi、Pi以及最低进位C0有关,而且不依赖于其低 位进位Ci-1的输入,因此各级进位可以同时产生,形成并行进位。
由此可见,提高并行加法器速度的关键是尽量加快 进位产生和传递的速度。
7
2、进位产生与传递
进位链的概念: 并行加法器中的每一个全加器都有一个从低位送来 的进位输入和一个传送给高位的进位输出。我们把 构成进位信号产生和传递的逻辑网络称为进位链。
进位链上每一位的进位表达式为: Ci=AiBi+(Ai⊕Bi)Ci-1
20
算术逻辑部件ALU
算术逻辑部件ALU大体上有三部分组成: 全加器 进位链 输入选择器
下面以ALU的一位逻辑为例,原理性地说明 算术、逻辑功能是如何实现的。
21
算术逻辑部件ALU(续一)
一位加法器由全加器和进位门构 成,其中,两个半加器构成全加 器、与或非门构成一位进位门。
一位输入选择器,由两个与或非 门构成,可输入2个本位操作数 或非、4个控制信号(S3~S0)
14
多级先行进位
为说明问题,我们不妨仍以16位加法器为例,仍然4 位一组,分成4个小组,先就第一小组的进位输出函 数C4做一下分析: C4 = G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0
G1*
P1*
= G1* +P1*C0
G1*称为组进位产生函数,P1*称为组进位传递函数; 这两个函数类似于进位产生函数G和进位传递函数P.
0.1011 + 0.0010
0.1101 ∴ [A-B]补 = 0.1101
A-B = 0.1101
28
2、补码加减溢出的判别
例3、X=1011,Y=111 求X+Y。 解:[X]补=0,1011,[Y]补=0,0111
0,1011 (+11)
+
0,0111 (+7)
1,0010
[X+Y]补 =1,0010 X+Y=-1110 (-14)
两条总线同时供给操作数,输出与 第三条总线相连;完成一次运算需 要1步。特点是操作速度快,控制 相对复杂一些。
25
二、定点加减运算
原码加减运算
当原码做加减运算时,符号位不参加运算,只 在两数的绝对值之间进行。
加法时可能要做减法(两数异号)、减法时又 可能做加法(两数异号)。
操作结果需要根据绝对值的大小来确定运算结 果的符号。计算机中通常没有减法器,减法运 算需要转换为加法来实现。
运算器大体上有如下三种结构:单总线结构、双 总线结构和三总线总线结构。
24
运算器的3种组织结构
操作数需要分两次送入ALU,而 且需要两个缓冲寄存器;完成一 次运算需要3步。特点是控制电路 简单,而速度较慢。
两个操作数可以同时到达ALU进行 运算,且马上可以得到运算结果, 输出端需要设置一个缓冲寄存器 ; 完成一次运算需要2步 。
10
并行进位的特点
并行进位的特点是各级进位信号同时形成,与字长无 关,提高了整体运算速度 。并行进位又叫先行进位。
最长延迟时间仅为2ty。 随着加法器位数的增加,Ci的逻辑表达式会变得越来
越长,输入变量会越来越多,电路结构也会变得越来 越复杂,导致电路实现也越来越困难。 并行进位方式需继续改进,才能有实用价值。这就是 下面要介绍的分组进位方式。
先把单级先行进位加法器的串行进位链断开; 增加一级先行进位链,这个新增加的先行进位链的
进位称为二级进位; 组间进位信号C4、C8、C12、C16由二级进位链来产
生,其逻辑关系式已经得到; 让一级进位链多产生两个辅助函数Gi*和Pi*,并且
作为二级进位链的输入。
18
多级先行进位(续四)
16位2级先行进位时间图
可见,加法器又是运算器的核心部件。在加法器的基础 上增加移位功能,并通过选择输入控制条件,就可以实 现所有的运算。
2
本章主要内容
主要内容
算术、逻辑运算的实现 定点加、减运算 数的移位和舍入操作 定点乘、除运算 规格化浮点运算
3
一、算术逻辑运算的实现
计算机中最基本的算术运算是加法运算,不论加、 减、乘、除运算最终都可以归结为加法运算。所以 首先讨论最基本、最核心的运算部件——加法器, 以及并行加法器的进位问题。 加法器是由全加器和其它必要的逻辑电路组成的, 所以我们从全加器开始讨论。
解: [A]补 = 0.1011, [B]补 = 1.0010
0.1011 + 1.0010
1.1101 ∴ [A+B]补 = 1.1101
A+B = -0.0011
例2、A=0.1011, B=-0.0010,求A-B.
解: [A]补 = 0.1011, [B]补 = 1.1110, [-B]补 = 0.0010
在组间,每个组的进位输入是前一个组的进位输 出,而每个组的进位输出是下一个组的进位输入.
12
单级先行进位(续一)
上述组内并行、组间串行的进位方式也称为单级先 行进位方式,原理如下图所示。
13
单级先行进位(续二)
组内并行、组间串行进位的时间图(16位)如下:
完成进位时间8ty. 进位时间与组数成正比,组数越多,进位时间越长。
例4、X=-1011,Y=-111 求X+Y。 解:[X]补=1,0101,[Y]补=1,1001
可以看出,这4组进位结构与前述4位先行进位逻辑完全相同, 组间进位信号只与最低进位C0有关,所以能同时产生。
16
多级先行进位(续二)
组内进位信号能同时产生、组间进位信号也能同时产 生,由此可以构成多级并行进位逻辑。16位2级先行 进位加法器如下图所示。
17
多级先行进位(续三)
问题是这4个组间进位信号如何用硬件来产生呢? 对于多级先行进位的实现可以按如下思路来理解:
结论:原码加减运算过程比较复杂,一般不用.
26
1、补码加减运算
补码的运算规则:
补码加减运算的依据如下:
参加运算的操作数用补码表 示。
补码的符号位与数值位同时
和的补码等于补码的和
参加运算。
[X + Y]补 = [X]补 + [Y]补 相反数的补码等于补码的相反数
若做加法,则两数补码直接 相加;
若做减法,用被减数与减数
[-X]补 = - [X]补
的机器负数相加。