文档库 最新最全的文档下载
当前位置:文档库 › 计算机组成原理补码乘法

计算机组成原理补码乘法

计算机组成原理补码乘法
计算机组成原理补码乘法

第二章运算器

本章知识要点及要求如下所示:

1、掌握数据信息的表示方法,包括原码、补码、

反码、移码及定、浮点数的表示方法;

2、了解非数值数据(字符和汉字)的表示方法;

3、掌握定点数的加、减、乘、除运算;

4、了解定点运算器的组成与结构;

5、掌握浮点运算方法,了解浮点运算器的基本结

构。

●补码一位乘法

(1)求 [ X ]补, [ Y]补, [-X ]补

(2)求 [ X ]补* [ Y]补:通过求和n、右移n-1次得到乘积

(3)[X*Y]补=……

(4)验证

●X*Y-----→Z

●由(4), [X*Y]补=……---→X*Y=Z1

●Z和Z1相等,结果正确

例12:已知X=+13,Y=-11,N=5,用补码一位

乘法求X*Y

解:(1)[ X]补=[ +13 ]补= [ +1101B ]补=01101B [ -X]补= =10011B

[ Y]补=[ -11]补= [ -1011B ]补=10101B

(2)高位积乘数/低位积

Y1Y0

00 0000 1 0 1 0 1 0 +[(Y0 -Y1)*X ]补11 0011

11 0011 1 0 1 0 1 0

右移11 1001 1 1 0 1 0 1 +[(Y0 -Y1)*X ]补00 1101

00 0110 1 1 0 1 0 1

右移00 0011 0 1 1 0 1 0 +[(Y0 -Y1)*X ]补11 0011

11 0110 0 1 1 0 1 0

右移11 1011 0 0 1 1 0 1 +[(Y0 -Y1)*X ]补00 1101

00 1000 0 0 1 1 0 1

右移00 0100 0 0 0 1 1 0 +[(Y0 -Y1)*X ]补11 0011

11 0111 0 0 0 1

(3) [X*Y]补=1101110001B

(4)验证

●X*Y=+13*(-11)=-143

●由(3),[X*Y]补=1101110001B可知,

X*Y=-010001111B=-143

结果一致,正确

思考:

一、以下数据,结果如何?

1、X=-13,Y=+11

2、X=+13,Y=+11

3、X=-13,Y=-11

4、X=-13/16,Y=-11/16

5、X=+13/16,Y=-11/16

6、X=-13/16,Y=+11/16

7、X=+13/16,Y=+11/16

二、乘法运算对标记位的影响?

三、比较补码乘法和原码乘法。

四、课后作业。

定点补码一位乘法器方案

个人资料整理仅限学习使用 课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点补码一位乘法器的设计 院<系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2018年1月15日

目录第1章总体设计方案1 1.1设计原理1 1.2设计思路2 1.3设计环境4 第2章详细设计方案5 2.1顶层方案图的设计与实现5 2.1.1创建顶层图形设计文件5 2.1.2器件的选择与引脚锁定6 2.2功能模块的设计与实现7 2.2.1求补电路模块的设计与实现7 2.2.2 控制电路模块的设计与实现8 2.2.3选择器模块的设计与实现10 第3章编程下载与硬件测试12 3.1编程下载12 3.2硬件测试及结果分析12 参考文献14 附录<电路原理图)15

第1章总体设计方案 1.1设计原理 <1)用[X]补×[Y]补直接求[X×Y]补 讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。 若[Y]补=Y0Y1Y2…Yn 当Y0为1时,则有Y=-1+Yi×2-i 故有X×Y=X×Yi×2-1-X当Y为负值时,用补码乘计算[X×Y]补,是用[X]补乘上[Y]补的数值位,而不理[Y]补符号位上的1,乘完之后,在所得的乘积中再减X,即加-[X]补。实现补码乘法的另一个方案是比较法,是由BOOTH最早提出的,这一方法的出发点是避免区分乘数符号的正负,而且让乘数符号位也参加运算。技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个-1:X×Y=X×<-1+Yi×2i)<逐项展开则得)=X×[-Y0+Y1×2-1+Y2×2-2+…+Yn×2-n]=X×[-Y0+(Y1-Y1×2-1>+(Y2×2-1-Y2×2-2>+…+(Yn×2-(n-1>-Yn×2-n>]<合并相同幂次项得)=X×[(Y1-Y0>+(Y2-Y1> ×2-1+…+(Yn-Yn-1> ×2-(n-1>+(0-Yn> ×2-n]=X× ×X]补 P2=[2-1(P1+(Yn-Yn-1> ×X>]补 … Pi=[2-1(Pn-i+(Yn-I+2-Yn-I+1> ×X>]补 … Pn=[2-1(Pn-1+(Y2-Y1> ×X>]补 Pn+1=[ (Pn+(Y1-Y0> ×X>]补 则最终补码乘积为[X*Y]补=[Pn+1]补

计算机组成原理(第二版)唐朔飞 各章节知识点

第一章知识总结(一) 2017-04-19马辉安阳师院mh 一个完整的计算机系统包括了硬件和 软件两个子系统。 硬件部分按冯诺依曼观点分为运算器、控制器、存储器、输入设备和输出设 备五大功能部件。它们之间用系统总 线进行连接。系统总线按传输内容分 地址总线、数据总线和控制总线三类。 软件部分包括系统软件和应用软件两类,它们通常使用机器语言、汇编语 言和高级语言三种计算机语言进行编写。由于机器硬件电路只能识别用0、1编写成的机器语言程序,所以用汇编或高级语言编写的源程序在运行前需 使用汇编程序、编译程序或解释程序 进行翻译。 软件的狭义观点是:软件是人们编制 的具有各类特殊功能的程序,广义观 点是:软件是程序以及开发、使用和 维护程序需要的所有文档。 为了简化对复杂的计算机系统的理解,对计算机系统进行了层次结构划分, 通常分为微程序机器、传统机器语言 机器、操作系统虚拟机、汇报语言虚 拟机、高级语言虚拟机等。从不同角度、层次理解机器的功能与使用方法,简化了需要掌握的知识内容。 虚拟机:依赖于一定的系统软件,所 体现出的具有某种结构、功能和使用 方法的计算机。计算机组成原理关注传统机器语言机 器M1和微程序机器M0,它们是实际机器,所看到的机器功能与结构由硬件 电路直接实现。 冯诺依曼关于计算机结构的观点: 1、计算机由五大功能部件组成。 2、指令和数据均用二进制数表示,以同等地位存放于存储器中。 3、存储器按地址进行访问。 4、指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来 表示操作数在存储器中的位置。 5、指令在存储器内按顺序存放,通常被顺序执行,在特定条件下,可根据 运算结果或设定的条件改变执行顺序。 6、机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器 完成。 现代大部分机器仍采用“存储程序” 思想构建,仍属于冯诺依曼结构的计 算机。 典型的冯诺依曼计算机以运算器为中心,现代计算机转化为以存储器为中心。 现代计算机可认为由三大部分组成:CPU(包含了运算器和控制器、及高速缓存)、I/O设备及主存储器。CPU和主存合起来称主机(及电源、总线与 I/O接口),I/O设备也称外设。

定点补码一位乘法器的设计与实现

课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点补码一位乘法器的设计与实现 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2012年1月13日

目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (1) 1.3设计环境 (2) 第2章详细设计方案 (3) 2.1顶层方案图的设计与实现 (3) 2.1.1创建顶层图形设计文件 (3) 2.1.2器件的选择与引脚锁定 (4) 2.1.3编译、综合、适配 (5) 2.2功能模块的设计与实现 (5) 2.2.1 取补模块的设计与实现 (5) 2.2.2选择器模块的设计与实现 (7) 2.2.3 乘数补码移位寄存器模块的设计与实现 (11) 2.2.4 部分积移位寄存器模块的设计与实现 (13) 2.3仿真调试 (14) 第3章编程下载与硬件测试 (16) 参考文献 (17) 附录(电路原理图) (18)

第1章总体设计方案 1.1 设计原理 在计算两个补码相乘时,可以通过Booth算法来实现定点补码一位乘的功能。布斯(Booth)算法采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据后两个数据位的情况决定进行加法、减法还是仅仅进行移位操作。讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。 Booth乘法规则如下: 假设X、Y都是用补码形式表示的机器数,[X]补和[Y]补=Ys.Y1Y2…Yn,都是任意符号表示的数。比较法求新的部分积,取决于两个比较位的数位,即Yi+1Yi 的状态。 首先设置附加位Yn+1=0,部分积初值[Z0]补=0。 当n≠0时,判断YnYn+1, 若YnYn+1=00或11,即相邻位相同时,上次部分积右移一位,直接得部分积。若YnYn+1=01,上次部分积加[X]补,然后右移一位得新部分积。 若YnYn+1=10,上次部分积加[-X]补,然后右移一位得新部分积。 当n=0时,判YnYn+1(对应于Y0Y1),运算规则同(1)只是不移位。即在运算的最后一步,乘积不再右移。 1.2 设计思路 首先要采用原码值输入,乘数和被乘数皆为8位。而且根据补码一位乘法运算规则:(1) 如果yn = yn+1,部分积[ zi ] 加0,再右移一位;(2) 如果yn yn+1 = 01,部分积加[ x ]补,再右移一位;(3) 如果yn yn+1 = 10,部分积加[ - x]补,再右移一位;这样重复进行n+1 步,但最后一步不移位。包括一位符号位,所得乘积为2n+1 位,其中n 为尾数位数。 设计一个二输入三选一选择器对可能的三种情况进行选择。当选择器中输入

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

计算机组成原理习题章 带答案 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

第四章 1.一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片? 1K×4位,2K×8位,4K×4位,16K×1位,4K×8位,8K×8位 地址线和数据线的总和 = 14 + 32 = 46根; 选择不同的芯片时,各需要的片数为: 1K×4:(16K×32) / (1K×4) = 16×8 = 128片 2K×8:(16K×32) / (2K×8) = 8×4 = 32片 4K×4:(16K×32) / (4K×4) = 4×8 = 32片 16K×1:(16K×32)/ (16K×1) = 1×32 = 32片 4K×8:(16K×32)/ (4K×8) = 4×4 = 16片 8K×8:(16K×32) / (8K×8) = 2×4 = 8片 2.现有1024×1的存储芯片,若用它组成容量为16K×8的存储器。试求: (1)实现该存储器所需的芯片数量? (2)若将这些芯片分装在若干块板上,每块板的容量为4K×8位,该存储器所需的地址线总位数是多少?其中几位用于选板?几位用于选片?几位用做片内地址? 16K×8=2^14×8,地址线为14根.4K×8容量的板,共需要4块板子.则14根地址线的最高2位用于板选(00~11,第1块板子~第4块板 子),4K*8位=2^12*8位=12*1K*8位,也就是在每块板子内需要4*8个芯片,而每8个芯片组成8位,也就是位扩展.也就是说需要4组,则除了

补码一位乘法

计算机组成原理 第三章运算方法与运算器3.4 补码一位乘法

1补码一位乘法的基本方法 设[X]补= X0X1X2X3…X n[Y]补= Y0Y1Y2Y3…Y n 可证明: [X?Y]补= [X]补?( 0.Y1Y2Y3…Yn) –Y0? [X]补 进一步展开合并后可得: n [x?y]补=[x] 补?∑(y i+1-y i)2-i (符号位参加运算) i=0

1补码一位乘法的基本方法 [x?y] 补=[x] 补? (y i+1-y i)2-i (符号位参加运算) 补码一位乘法的运算规则如下: (1)如果y n+1=y n,部分积加0,部分积算术右移1位; (2)如果y n+1y n=10,部分积加[x]补,部分积算术右移1位; (3)如果y n+1y n=01,部分积加[-x]补,部分积算术右移1位. 重复进行n+1步,但最后一步不移位。 包括一位符号位,所得乘积为2n+1位,其中n为数据位位数.

1补码一位乘法的基本方法 几个特殊问题的处理 [x ?y] 补=[x] 补? (y i+1- y i )2-i (符号位参加运算) 设[X]补= X 0X 1X 2X 3…X n [Y]补= Y 0Y 1Y 2Y 3…Y n (1)i=n 时,y n+1=?(2)y n+1是哪个寄存器? (3)算术右移的对象有哪些?y n+1=0 在乘数寄存器Y 后增加的一位部分积和乘数寄存器均右移

2补码一位乘法的举例 例1 已知X= +1101 Y=+1011 用补码一位乘法求X?Y 解:[X]补=01101 [Y]补=01011 [–X]补=10011 部分积乘数说明 000000 010110Y n+1< Y n部分积+[–X]补 + 110011 110011 →111001101011结果右移一位,Y n+1= Y n部分积+0 + 000000 111001 →111100 110101结果右移一位, Y n+1> Y n部分积+[X]补 + 001101 001001

计算机组成原理第六章答案

1. 写出下列各数的原码、反码、补码、移码(用8位二进制表示),其中MSB是最高位(符号位),LSB是最低位。如果是小数,则小数点在MSB之后;如果是整数,则小数点在LSB之后。 (1)-59/64 (2)27/128 (3)-127/128 (4)用小数表示-1 (5)用整数表示-1 (6)-127 (7)35 (8)-128 2. 设[x]补=x0.x1x2x3x4,其中x i取0或1,若要使x>-0.5,则x0、x1、x2、x3、x4的取值应满足什么条件? 3. 若32位定点小数的最高位为符号位,用补码表示,则所能表示的最大正数为,最小正数为,最大负数为,最小负数为;若32位定点整数的最高位为符号位,用原码表示,则所能表示的最大正数为,最小正数为,最大负数为,最小负数为。 4. 若机器字长为32位,在浮点数据表示时阶符占1位,阶码值占7位,数符占1位,尾数值占23位,阶码用移码表示,尾数用原码表示,则该浮点数格式所能表示的最大正数为,最小正数为,最大负数为,最小负数为。 5. 某机浮点数字长为18位,格式如图2.35所示,已知阶码(含阶符)用补码表示,尾数(含数符)用原码表示。 (1)将(-1027)10表示成规格化浮点数; (2)浮点数(0EF43)16是否是规格化浮点数?它所表示的真值是多少? 图2.35 浮点数的表示格式 6. 有一个字长为32位的浮点数,格式如图2.36所示,已知数符占1位;阶码占8位,用移码表示;尾数值占23位,尾数用补码表示。 图2.36 浮点数的表示格式 请写出:

(1)所能表示的最大正数; (2)所能表示的最小负数; (3)规格化数所能表示的数的范围。 7. 若浮点数x的IEEE754标准的32位存储格式为(8FEFC000)16,求其浮点数的十进制数值。 8. 将数(-7.28125)10转换成IEEE754标准的32位浮点数的二进制存储格式。 9. 已知x=-0.x1x2…x n,求证:[x]补=+0.00…01。 10. 已知[x]补=1.x1x2x3x4x5x6,求证:[x]原=+0.000001。 11. 已知x和y,用变形补码计算x+y,同时指出运算结果是否发生溢出。 (1)x=0.11011 y=-0.10101 (2)x=-10110 y=-00011 12. 已知x和y,用变形补码计算x-y,同时指出运算结果是否发生溢出。 (1)x=0.10111 y=0.11011 (2)x=11011 y=-10011 13. 已知[x]补=1.1011000,[y]补=1.0100110,用变形补码计算2[x]补+1/2[y]补=?,同时指出结果是否发生溢出。 14. 已知x和y,用原码运算规则计算x+y,同时指出运算结果是否发生溢出。 (1)x=0.1011,y=-0.1110 (2)x=-1101,y=-1010 15. 已知x和y,用原码运算规则计算x-y,同时指出运算结果是否发生溢出。 (1)x=0.1101,y=0.0001 (2)x=0011,y=1110 16. 已知x和y,用移码运算方法计算x+y,同时指出运算结果是否发生溢出。 (1)x=-1001,y=1101 (2)x=1101,y=1011

计算机组成原理第1章 习题及参考答案

第一章绪论习题及参考答案 一、判断题 1.微型计算机广阔的应用领域中,会计电算化属于科学计算应用方面。( ) 2.决定计算机计算精度的主要技术指标是计算机的字长。( ) 3.利用大规模集成电路技术把计算机的运算部件和控制部件做在一块集成电路芯片上,这样的一块芯片叫做单片机。( ) 4.计算机“运算速度”指标的含义是指每秒钟能执行多少条操作系统的命令。() 5.兼容性是计算机的一个重要性能,通常是指向上兼容,即旧型号计算机的软件可以不加修改地在新型号计算机上运行。系列机通常具有这种兼容性。() 二、简答题 1.电子数字计算机与电子模拟计算机的主要区别是什么 2.简单描述计算机的发展过程和应用范围。 3.冯·诺依曼机的主要特点是什么 4.按照冯·诺依曼原理,现代计算机应具备哪些功能 5.如何理解软硬件之间的等价性 6.何谓绿色计算机对它有哪些要求 7.简单描述计算机的层次结构,说明各层次的主要特点。 8.计算机系统的主要技术指标有哪些 参考答案 一、判断题 1.错。会计电算化属于计算机数据处理方面的应用。 2.对。 3.错。计算机的运算部件和控制部件做在一块集成电路芯片上,这样的一块芯片叫CPU。 4.错。“运算速度”指标的含义是指每秒钟能执行多少条指令。 5.错。兼容性包括数据和文件的兼容、程序兼容、系统兼容和设备兼容,微型计算机通常具有这种兼容性。 二、简答题 1.电子数字计算机的运算对象是离散的数字量,用数码进行运算,其运算结果也是离散的数字量;电子模拟计算机的运算对象是连续变化的物理量(如电流、电压等),其运算结果也是连续变化的物理量。数字计算机的运算速度快,运算精度高。现代所说的计算机都是电子数字计算机。 2.从1946年世界上第一台数字电子计算机ENIAC研制成功至今,计算机的发展经历了4个时

补码一位乘法之较正法的公式推导

在定点乘法运算中,补码乘法分为补码一位乘法和补码两位乘法。而补码一位乘法又分为较正法和比较法(Booth算法)两种。其中,较正法是比较法的基础。因此,掌握较正法是学习补码一位乘法的关键。下面,我们就对较正法进行深入分析。 一、较正法公式 [XY]补= [X]补*(0.Y1,Y2, … ,Y n) + [-X]补*Y0 其中,X、Y是两个定点数的真值,[Y]补=Y0.Y1,Y2, … ,Y n,Y0是符号位。 为了推导出此公式,我们分情况来进一步分析。 1、Y=0 在这种情况下,[Y]补=Y=0.0,0, … ,0=0。 [XY]补=0 =[X]补*(0.0,0, … ,0)+[-X]补*0 =[X]补*(0.Y1,Y2, … ,Y n)+[-X]补*Y0 2、X>=0, Y>0 在这种情况下,[X]补=X,[Y]补=Y,且Y0=0。不难看出, [XY]补=XY =[X]补*Y =[X]补*(Y0.Y1,Y2, … ,Y n)+[-X]补*0 =[X]补*(0.Y1,Y2, … ,Y n)+[-X]补*Y0 到此为止,我们还有两种情况尚未讨论,一种情况是X<0, Y>0,一种情况是Y<0。前一种情况是本文讨论的重点。与很多教材上的推导方法不同,本文采用与原码一位乘法相对照来证明此种情况。此方法用到的知识点有原码一位乘法和补码移位规则。首先,我们先来回顾一下这两个知识点。 二、原码一位乘法 原码一位乘法基本上是从手算法则演变过来的。我们知道,两个数相乘的手算法则是“绝对值相乘;同号得正,异号得负”。原码一位乘法也采用这种方法。 设[X]原=X s.X1,X2, … ,X n [Y]原=Y s.Y1,Y2, … ,Y n 因为[X]原=X,[Y]原=Y,[XY]原=XY 所以[XY]原=[X]原*[Y]原

计算机组成原理习题答案

附录各章习题参考答案 第1章习题参考答案 1. (1)D (2)D (3)B (4)C (5)D (6)D 2. 答:计算机是一种以电子器件为基础的,不需人的直接干预,能够对各种数字化信息进行快速算术和逻辑运算的工具,是一个由硬件﹑软件组成的复杂的自动化设备。 理解计算机的概念,应从六个方面:(1)以电子器件为物质基础,即研究的对象是电子数字计算机(Digital Computer);(2)不需要人的直接干预,说明具有自动化能力,其前提是存储程序;(3)处理各种数字化信息,计算机以二进制编码作为数字化编码及运算的基础;(4)具有算逻运算能力,基本运算操作是算术和逻辑运算;(5)计算机是快速工具,主要取决于两个因素:一是电子器件,二是存储程序。(6)由硬件和软件组成。 3. 答:见本章小结。 4. 答:计算机的生命力在于它的广泛应用,应用的范围几乎涉及人类社会的所有领域。归纳起来,在科学计算、过程检测与控制、信息管理、计算机辅助系统等领域中的应用成就最为突出。 举例:计算机辅助教学CAI;学生的学籍管理系统;数字图书馆系统;虚拟现实系统;售票系统;学校的一卡通系统等。 5. 答:冯?诺依曼原理的基本思想是: ?采用二进制形式表示数据和指令。指令由操作码和地址码组成。 ?将程序和数据存放在存储器中,使计算机在工作时从存储器取出指令加以执行,自动完成计算任务。这就是“存储程序”和“程序控制”(简称存储程序控制)的概念。 ?指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。 ?计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能。

间接补码阵列乘法器的设计组成原理课程设计报告

沈阳航空航天大学 课程设计报告 课程设计名称:计算机组成原理课程设计课程设计题目:间接补码阵列乘法器的设计 院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期:2015年1月16日

沈阳航空工业学院课程设计报告 目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (2) 1.3设计环境 (2) 第2章详细设计方案 (5) 2.1顶层方案图的设计与实现 (5) 2.1.1创建顶层图形设计文件 (5) 2.1.2器件的选择与引脚锁定 (5) 2.1.3编译、综合、适配 (6) 2.2功能模块的设计与实现 (6) 2.2.1 细胞模块的设计与实现 (6) 2.2.2 全加器模块的设计与实现 (7) 2.3仿真调试 (11) 第3章编程下载与硬件测试 (13) 3.1编程下载 (13) 3.2硬件测试及结果分析 (13) 参考文献 (15) 附录(电路原理图) (16)

第1章总体设计方案 1.1 设计原理 由于计算机采用补码做加减运算,所以设计阵列补码乘法器能避免码制转换,提高机器效率。可以利用原码阵列乘法器来设计补码阵列乘法器,这时需要在计算前先进行原码--补码的转换。乘法器的常规设计是适用“串行移位”和“并行加法”相结合的方法,这种方法并不需要很多器件。然而串行方法毕竟太慢,不能满足科学技术对高速乘法所提出的要求。自从大规模集成电路问世以来,高速的单元阵列乘法器应运而生,出现了各种形式的流水线阵列乘法器,它们属于并行乘法器。阵列乘法器采用类似于人工计算的方法进行乘法运算。人工计算方法是用乘数的每一位去乘被乘数,然后将每一位权值对应相加得出每一位的最终结果。如图1.1所示,用乘数的每一位直接去乘被乘数得到部分积并按位列为一行,每一行部分积末位与对应的乘数数位对齐,体现对应数位的权值。将各次部分积求和,即将各次部分积的对应数位求和即得到最终乘积的对应数位的权值。 011010 * 001001 ____________ 011010 000000 000000 011010 000000 000000 _______________ 00011101010 图1.1 人工计算乘法示例 阵列乘法器采用类似人工的计算方法来完成乘法计算。阵列的每一行送入乘

补码乘法

补码乘法因符号位参与运算,可以完成补码数的“直接”乘法,而不需要求补级。这种直接的 方法排除了较慢的对2求补操作,因而大大加速了乘法过程。 首先说明与直接的补码乘法相联系数学特征。对于计算补码数的数值来说,一种较好的表示 方法是使补码的位置数由一个带负权的符号和带正权的系数。今考虑一个定点补码整数 [N]补=a n-1a n-2…a1a0,这里a n-1是符号位。根据[N]补的符号,补码数[N]补和真值N 的关系 可以表示成: N= n-2 +∑a i2i当a n-1= 0([N]补为正)时i=0 n-2 -[1+∑(1-a i)2i] 当a n-1= 1([N]补为负)时i=0 如果我们把负权因数-2n-1强加到符号位a n-1上,那么就可以把上述方程组中的两个位置 表达式合并成下面的统一形式: (2.29) (2.30) [例19] 已知: [N]补= 01101,[-N]补=10011,求[N]补,[-N]补具有的数值。 [解:]

常规的一位全加器可假定它的3个输入和 2个输出都是正权。这种加法器通过把正权或 负权加到输入/输出端,可以归纳出四类加法 单元。如右表,0类全加器没有负权输入; 1类全加器有1个负权输入和2个正权输入;依次类推。 对0类、3类全加器而言有: S =XYZ +XYZ +XYZ +XYZ C =XY +YZ +ZX 对1类、2类全加器,则有 S =XYZ +XYZ +XYZ +XYZ C =XY +XZ +YZ 表2.3 四类一般化全加器的名称和逻辑符号 注意,0类和3类全加器是用同一对逻辑方程来表征的,它和普通的一位全加器(0类)是一致 的。这是因为3类全加器可以简单地把0类全加器的所有输入输出值全部反向来得到,反之亦然。 1类和2类全加器之间也能建立类似的关系。由于逻辑表达式具有两级与一或形式,可以用 “与或非”门来实现,延迟时间为2T 。 利用混合型的全加器就可以构成直接补码数阵列乘法器。设被乘数A 和乘数B 是两个5位的二 进制补码数,即 A =(a 4)a 3a 2a 1a 0

《计算机组成原理》课程设计_两个数的乘法运算

《计算机组成原理》课程设计报告课程设计题目:两个数的乘法运算 小组成员: …. 完成日期:第十一周

模型机设计实验 一、实验目的 综合运用所学计算机原理知识,设计并实现较为完整的模型计算机。其功能为: 输入两个数,进行两个正数(二进制4位)的乘法运算,输出结果。 二、实验内容 编写程序,运行程序,观察并记录运行结果。 三、实验仪器 1、ZY15CompSys12BB计算机组成原理及系统结构教学实验箱一台 2、排线若干 3、PC机一台 四、预备知识 1、数据格式 8位,其格式如下: 其中第7位为符号位,数值表示范围是:-1≤X<127。 2、指令格式 模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器、转移指令和停机指令。 (1)算术逻辑指令 规定: 算术逻辑指令的名称、功能和具体格式见表2—3。 (2)访存指令及转移指令 模型机设计2条访存指令,即存数(STA)、取数(LAD),2条转移指令,即无条件转移( 负均可)

本模型机规定变址寄存器RI指定为寄存器R2。 (3)I/O指令 其中,在IN 指令中,addr=01,选中“输入”中的开关组作为输入设备,在OUT指令中,addr=10时,表示选中“输出单元”中的数码块作为输出设备。 (4)停机指令 HALT指令,机器码为60H,用于实现停机操作。 3、指令系统 复杂模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。表2-3列出了各条指令的格式、汇编符号、指令功能。 我们依然采用复杂模型机指令系统中的部分指令。 五、实验的机器指令程序如下: 地址内容助记符说明 00 14 IN R0 ; 作计数器用,00000001→R0 01 15 IN R1 ; 输入X的值,0000xxxx→R1 02 05 STA R1 ; X→22H 03 22 04 15 IN R2 ; 输入Y→R2,0000xxxx→R2 05 06 STA R2 ; R2→23H 06 23

用原码一位乘

第六章 20.用原码一位乘、两位乘和补码一位乘( Booth算法)、两位乘计算x ? y。 (1)x= 0.110111, y= -0.101110; (2)x= -0.010111 , y= -0.010101 ; (3)x= 19 , y= 35 ; (4)x= 0.110 11 , y= -0.111 01。 解: (a)原码一位乘: (1) 凶原=0.110111 [y]原=1.101110 x*=0.110111 y*=0.101110 符号位:X 0 Y00 1 1 数值部分的计算: 部分积乘数y* 0.000000 + 0.000000 10111 0 开始部分积为0 乘数为0,加上0 0.000000 0.000000 010111 1 部分积右移一位,乘数右移一位+ 0.110111 乘数为1,加上X* 0.110111 0 0.011011 10 1011 1 部分积右移一位,乘数右移一位 + 0.110111 乘数为1,加上X* 1.010010 10 0.101001 010 101 1 部分积右移一位,乘数右移一位 + 0.110111 乘数为1,加上X* 1.100000 010 0.110000 0010 10 + 0.000000 0.110000 0010 0.011000 00010 1 部分积右移一位,乘数右移一位 + 0.110111 乘数为1,加上X* 1.001111 00010 右移一位 0.100111 100010

[x*y]原=1.100111100010 ⑵ 凶原=1.010111 [y]原=1.010101 x*=0.010111 y*=0.010101 符号位:X 0 Y 0 1 1 0 数值部分的计算: 部分积 乘数y* 0.000000 010101 开始部分积为0 乘数为1,加上X* + 0.010111 0.010111 0.001011 1 01010 1 部分积右移一位,乘数右移一位 + 0.000000 乘数为0,加上0 0.001011 1 0.000101 11 0101 1 部分积右移一位,乘数右移一位 + 0.010111 乘数为1,加上X* 0.011100 11 0.001110 011 010 部分积右移一位,乘数右移一位 + 0.000000 乘数为0,加上0 0.001110 011 0.000111 0011 01 部分积右移一位,乘数右移一位 + 0.010111 乘数为1,加上X* 0.011110 0011 0.001111 00011 0 部分积右移一位,乘数右移一位 + 0.000000 0.001111 00011 0.000111 100011 故,x ? y=0.000111100011 (3) [x]原=0, 0001 0011 [y]原=0, 0010 0011 x*=0001 0011 y*=0010 0011 符号位:X 0 Y 0 0 0 0 00000000 00100011 + 00010011 开始部分积为0 乘数为1,加上X* 数值部分的计算: 部分积 乘数y* 部分积右移一位,乘数右移一位 00010011 00001001 1 001000

计算机组成原理各章练习参考答案.docx

《计算机组成原理》各章练习题参考答案 第一章思考练习题 一. 填空 1.电子数字计算机可以分为专用计算机和通用计算机两类。 2.硬件采用 LSI 或 VLSI 的电子计算机属于计算机发展过程中的第四代。 3.存储器中存放数据和程序。 4.一台计算机包括运算、存储、控制、输入及输出五个单元。 5.完成算术运算和逻辑运算的部件是运算器 ( 或 ALU);运算器的核心是加法器;控制、指挥程序 和数据的输入、运行以及处理运算结果的部件是控制器。 内部连接各寄存器及运算部件之间的总线是内部总线;CPU同存储 器、通道等互相连接的总线是系统总线;中、低速 I/O 设备之间互相连接的总线是I/O总线。 7.在多总路线结构中, CPU总线、系统总线和高速总线相连通过桥实现。 8.计算机软件一般分为系统软件和应用软件。 9.完整的计算机系统由硬件系统和软件系统构成。 10.机器字长是指一台计算机一次所能够处理的二进制位数量。 11.数据分类、统计、分析属于计算机在数据处理方面的应用。 12.计算机是一种信息处理机,它最能准确地反映计算机的主要功能。 13.个人台式商用机属于微型机。 14.对计算机软硬件进行管理,是操作系统的功能。 15.用于科学技术的计算机中,标志系统性能的主要参数是MFLOPS。 16.通用计算机又可以分为超级机、大型机、服务器、工作站、微型机和单片机六类。 17.“存储程序控制”原理是冯 . 诺依曼提出的。 18.运算器和控制器构成 CPU,CPU和主存构成主机。 19.取指令所用的时间叫取指周期,执行指令所用的时间叫执行周期。 20.每个存储单元都有一个编号,该编号称为地址。 21.现代计算机存储系统一般由高速缓存、主存和辅存构成。 22.计算机能够自动完成运算或处理过程的基础是存储程序和程序控制原理。 二. 单选 1.存储器用来存放 ( C ) 。 2.下面的描述中,正确的是 ( B ) A.控制器能够理解、解释并执行所有的指令及存储结果。 B.一台计算机包括输入、输出、控制、存储及运算逻辑五个单元。 3.存储字长是指 ( B ) 。 A.存放在一个存储单元中的二进制代码组合。 B.存放在一个存储单元中的二进制代码位数。 4.对有关数据进行分类、统计、分析是计算机的( C ) 应用。 A. 数值计算 B.辅助设计 C.数据处理 D.实时控制 5. 下面的四句话中,最能准确反映计算机主要功能的是( C )

补码一位乘的程序设计 计算机组成原理

沈阳 课程设计报告 课程设计名称:计算机组成原理课程设计课程设计题目:定点补码乘法器的程序设计 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (1) 1.3设计环境 (2) 第2章详细设计方案 (4) 2.1总体方案的设计与实现 (4) 2.1.1总体方案的具体描述 (4) 2.2流程图的设计与实现 (5) 2.2.1流程图具体分析 (5) 第3章程序调试与结果测试 (9) 3.1程序调试 (9) 3.2程序测试及结果分析 (9) 参考文献 (14) 附录 (15)

第1章总体设计方案 1.1设计原理 采用伟福COP2000试验箱,设计并实现定点补码一位乘(booth)。 要求:采用的算法为定点补码一位乘booth算法,乘数和被乘数规定为6位,其中首位为符号位。数据要求以原码的形式输入,采用补码方式进行运算。实验数据从试验箱的开关输入,运算的结果在OUT寄存器中显示。 设计原理:比较YnYn+1的状态执行相应的操作。如下图是补码一位乘的运算规则: 表1.1 Booth算法操作表说明 需要说明的是此操作表是在当n≠0时,当n=0时,判断YnYn+1,运算规则同此操作表只是不移位。即在运算的最后一步,乘积不再右移。 1.2设计思路 (1)构造补码一位乘的初始化所需要的数值 因为补码一位乘的算法需要先求出[X]补、[-X]补、[Q]补,所以先将[X]补、[-X]补、[Q]补分别存贮到0F0H到0F2H存储单元中。因为部分积和附加位的初始值都是0,所以在0E0H单元存入附加位初始值0,在R0中存入部分积初始值0。 其他数的处理:将输入的一个值Q求出补码作为乘数Y,并存入R2中;另一个值X存入R1中,根据它来求出[X]补、[-X]补; 本实验规定乘数和被乘数为6位,数据位为五位,所以要完成六次操作,但

计算机组成原理课设 定点补码一位乘法器的设计

沈阳航空工业学院 课程设计报告 课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计 院(系):计算机学院 专业:计算机科学与技术 班级:***** 学号:***** 姓名:***** 指导教师:***** 完成日期:2006年12月31日

沈阳航空工业学院课程设计报告 目录 第1章总体设计方案 (2) 1.1补码乘法器设计原理 (2) 1.2设计思路 (4) 1.3设计环境 (5) 第2章详细设计方案 (5) 2.1补码乘法器电路图的设计与实现 (6) 2.1.1 补码乘法器设计 (6) 2.1.2 器件的选择与引脚锁定 (8) 2.1.3 编译、综合、适配 (8) 2.2功能模块的设计与实现 (9) 2.2.1 两输入三选一选择器模块的设计与实现 (9) 2.2.2 半加器模块的设计与实现 ........................................... 错误!未定义书签。 2.3仿真调试 (10) 第3章编程下载与硬件测试 (12) 3.1编程下载 (12) 3.2硬件测试及结果分析 (12) 参考文献 (14)

第1章总体设计方案 1.1 补码乘法器设计原理 原码乘法的主要问题是符号位不能参加运算,单独用一个异或门产生乘积 的符号位,故自然提出能否让符号数字化后也参加乘法运算,补码乘法就可以实现符号位直接参加运算。 布斯(Booth)算法,它采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。 Booth算法操作表示 判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。判断被乘数中的最低位以及右边的位(辅助位0),如果

计算机组成原理三章图文稿

计算机组成原理三章集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

第3章习题参考答案 1、设有一个具有20位地址和32位字长的存储器,问 (1) 该存储器能存储多少字节的信息? (2) 如果存储器由512K ×8位SRAM 芯片组成,需要多少片? (3) 需要多少位地址作芯片选择? 解: (1) 该存储器能存储:字节4M 8 32 220=? (2) 需要 片88 232 28512322192020=??=??K (3) 用512K8位的芯片构成字长为32位的存储器,则需要每4片为一组进行字长的位数扩展,然后再由2组进行存储器容量的扩展。所以只需一位最高位地址进行芯片选择。 2、已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M ×8位的DRAM 芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问; (1) 若每个内存条为16M ×64位,共需几个内存条 (2) 每个内存条内共有多少DRAM 芯片 (3) 主存共需多少DRAM 芯片 CPU 如何选择各内存条 解: (1) 共需 条464 1664 226=??M 内存条

(2) 每个内存条内共有 328 464 16=??M M 个芯片 (3) 主存共需多少 1288 464 648464226=??=??M M M 个RAM 芯片, 共有4个内存条,故CPU 选择内存条用最高两位地址A 24和A 25通过2:4译码器实现;其余的24根地址线用于内存条内部单元的选择。 3、用16K ×8位的DRAM 芯片构成64K ×32位存储器,要求: (1) 画出该存储器的组成逻辑框图。 (2) 设存储器读/写周期为0.5μS ,CPU 在1μS 内至少要访问一次。试问采用哪种刷新方式比较合理两次刷新的最大时间间隔是多少对全部存储单元刷新一遍所需的实际刷新时间是多少 解: (1) 用16K ×8位的DRAM 芯片构成64K ×32位存储器,需要用 16448 1632 64=?=??K K 个芯片,其中每4片为一组构成16K ×32位——进行字 长位数扩展(一组内的4个芯片只有数据信号线不互连——分别接D 0D 7、D 8D 15、D 16D 23和D 24D 31,其余同名引脚互连),需要低14位地址(A 0A 13)作为模块内各个芯片的内部单元地址——分成行、列地址两次由A 0A 6引脚输入;然后再由4组进行存储器容量扩展,用高两位地址A 14、A 15通过2:4译码器实现4组中选择一组。画出逻辑框图如下。 (2) 设刷新周期为2ms ,并设16K8位的DRAM 结构是1281288存储阵列,则对所有单元全部刷新一遍需要128次(每次刷新一行,共128行) 若采用集中式刷新,则每2ms 中的最后1280.5s=64s 为集中刷新时 间,不能进行正常读写,即存在64s 的死时间

数据结构课程设计(长整数四则运算)汇总

一、需求分析 1.本程序实现计算任意长的整数的四则运算. 以用户和计算机对话的方式,先后输入数字的最多位数,然后程序就计算并显示出这两个数的运算。 2. 利用双向循环链表现实长整数的存储,每个结点含一个整形变量。输入的形式以回车结束,可以直接输入正数或负数,程序会过滤掉无效的字符。按中国对于长整数的表示习惯,每四位一组,除数字和位于首位置的负号外,其它一切字符都将作为分隔符,连续多个分隔符当一个处理。但不使用分隔符也不影响结果。 3.测试数据(1)0; 0; 输出“0”; (2)-2345,6789; -7654,3211; 输出“-1,000,000”; (3)-9999,9999; 1,0000,0000,0000; 输出“9999,0000,0001”; (4)1,0001,0001; -1,0001,0001; 输出“0”; (5)1,0001,0001; -1,0001,0001; 输出“1”; (6)-9999,9999,9999; -9999,9999,9999; 输出“-1,9999,9999,9998”; (7)1,0000,9999,9999; 1; 输出"1,0001,0000,0000". 二、概要设计 为实现上述程序功能,应以双向循环链表表示长整数。为此,需要定义一个抽象数据类型。 1. 抽象数据类型定义为:

ADT OrderedList{ 数据对象:D={ai|ai∈int,i=1,2,...n, n≥0} 基本操作: init(&a,digit4) 操作结果:构造一个位数是digit4*4长整数。 pass(&a,&b,&c) 初始条件:a,b,c都已存在 操作结果:c等于a和b的和。nep(&a) 初始条件:a已存在。 操作结果:a变为输入参数的相反数。printlong(&a) 初始条件:a已存在。 操作结果:按四位一组,分隔符为","的格式,在屏幕上输出a。ston(&S,&a) 初始条件:a已存在。 操作结果:把字符串形式的长数字赋给a。}ADT OrderedList 2.本程序包含两个模块: 1)主程序模块:V oid main(){ 选择操作: 1:帮助。 2:加法。 3:减法。

补码运算加减乘除原理

首先我们来看为什么要使用补码运算法: 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了. 于是人们开始探索将符号位参与运算, 并且只保留加法的方法. 首先来看原码: 计算十进制的表达式: 1-1=0 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2 如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数. 为了解决原码做减法的问题, 出现了反码: 计算十进制的表达式: 1-1=0 1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0 发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特 殊的数值上.虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0. 于是补码的出现, 解决了0的符号以及两个编码的问题: 1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原 这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128: 接下来我们来看补码运算原理: 在计算机里,如果我们要计算5-3的值,我们既可以用5减去3,也可以用5 加上13。这是为什么呢? 这就像我们的钟表,它从1点走到12点之后,又回到了1点。我们的计算机 也是,从0走到15之后,再往下走就又回到了0,就像我们转了一个圈一样。 我们从5这个位置往回退3个格,就完成了5-3这个计算。我们也可以从5这 个位置往前走,一直走到15,这时我们走了10个格,然后我们继续往前走, 走到0,然后到1,然后就走到了2。这样,我们往前走了13个格之后,也到 了2这个位置。 所以说,在我们这个计算机中,减3和加13是一样的。而3+13=16,我们说在 模16的系统下,3和13是互补的。 这样,我们计算5-3就可以换成5+13。3的二进制表示为0011,5的二进制表 示为0101。这样,0101-0011就可以表示为0101+(-0011)。 我们在计算机中都是把负数用其补码表示,-0011的补码就是10000-0011(即 16-3,也就是13)。10000-0011=1+1111-0011=1+(1111-0011)=1+1100=1101。

相关文档