计算机组成原理(超详解!!) 第三节 运算器(定点数加减乘)

1.定点补码加减法

(1)加法      

整数 [X+Y]补=[X]补+[Y]补 (mod 2^n+1)      

小数 [X+Y]补=[X]补+[Y]补 (mod 2)

(2)减法      

整数 [X-Y]补=[X]补- [Y]补=[X]补+[-Y]补(mod 2^n+1)              

小数 [X-Y]补=[X]补- [Y]补=[X]补+[-Y]补(mod 2)  

若已知[Y]补,将[Y]补的每一位(包括符号位)取反且末位加“1”,可实现[-Y]补。      

[-Y]补=-[Y]补              (mod 2)

例题:

溢出:运算结果超出数的表示范围。

上溢:两个正数相加,结果为负,结果大于机器所能表示的最大正数

下溢:两个负数相加,结果为正,结果小于机器所能表示的最小负数

产生“溢出”的原因:当最高有效数值位的运算进位与符号位的运算进位不一致时,将产生运算“溢出”

补码加(减)法运算规则:

(1)参与运算的操作数用补码表示。  

(2)符号位作为数的一部分一起参与运算。  

(3)符号位采用变形补码表示时,溢出表达式为 V=Sf1异或Sf2 ;符号位采用单符号表示时,溢出表达式为V=Cf异或C0。

由于数据以补码形式存储,各位求反加1操作也易于实现,且符号位既不单独处理,也无需按参加运算的数的符号决定怎样运算,十分方便,故大多数计算机均采用补码加(减)法运算。

2.定点加减法

3.从半加器到算术逻辑部件ALU

算术逻辑部件ALU(Arithmetic Logic Unit)是运算器的核心,用来实现数据加工和处理所必需的各种整型数据和逻辑型数据的算术运算和逻辑运算功能。算术运算包括加、减、乘、除运算,但不论是那种运算都离不开加法运算,因此加法器是ALU中最基本的部件。

半加器

全加器

并行加法器

4.定点乘法

实现乘除法运算的方案:  

1、当使用乘除运算较多,速度要求高时,用硬件直接实现;

 2、一般情况,配置乘除法选件;     

选件:是指在标准配置之外,可以增强产品功能,提升产品性能的部件。  

3、对速度要求不高的机器,用软件实现。

(1)乘积符号的运算规则:同号相乘为正,异号相乘为负

(2) 手工运算过程: 

运算步骤

(1) 从乘数的最低位开始,用乘数y的每个二进制位去乘被乘数A,若y的某个二进制位为1,则得位积A;如为0,则得位积0。

(2) B的各位分别乘以A的所得的位积,因为位权不同,逐次向左移位,即在空间上按一定位数错开,这样逐位进行下去,直到乘数各位都乘完为止。

(3) 把经过移位对准的各次位积相加起来即得结果。

机器与人们习惯的算法不同之处:

(1)  机器通常只有n位长, 两个n位数相乘,  乘积可能为2n位。

(2) 只有两个操作数相加的加法器难以胜任将n位积 一次相加起来的运算。

改进:

(a)把一次求和的操作,变成逐步累加求部分积的操作

(b)将求积过程中逐位按权左移位积的操作,改为位积不动,而是上次部分积右移的操作

1.原码乘法

原码表示对乘法运算比较方便,原码表示的两数相乘,乘积的符号位为相乘两数符号位的按位加之和,数值部分为两数绝对值之积。原码乘法实际上是两个正数相乘的方法。这里“按位加”就是不考虑进位的加法,即“异或”运算,记作+,所以原码乘法的表达式为;

设被乘数为X、乘数为Y。

用原码表示为:

被乘数[X]原 = Xs. X1X2···Xn-1Xn

乘数[Y]原= Ys. Y1Y2···Yn-1Yn

(2) 改进后的笔算乘法过程(竖式)

乘法运算    

加和移位。n = 4,加 4 次,移 4 次

由乘数的末位决定被乘数是否与原部分积相加,   然后1形成新的部分积,同时乘数1(末位移丢),空出高位存放部分积的低位。

被乘数只与部分积的高位相加

例题:

原码一位乘法运算实现的原理框图:

这是一个5位二进制数X = (+/-)0.X1X2X3X4 与Y = (+/-)0.Y1Y2Y3Y4采用原码一位乘法运算的原理框图,图中,

被乘数[X]原= Xs. X1X2X3X4    

乘数 [Y]原= Ys. Y1Y2Y3Y4

C寄存器为4位寄存器存放部分积,初值为0;

B寄存器为4位寄存器存放乘数Y的绝对值|Y|;

D为2选1的选择器

CSR为右移控制信号(脉冲信号),每发一脉冲信号,控制有关寄存器C_B右移一次,移出位(bs)信号值 ——1或0控制选择器D的输出;

bs=1时,选择器D输出被乘数X的绝对值|X|到ALU,与部分积相加后输出,形成新的部分积送寄存器C同寄存器B一起右移决定下一次操作;

bs=0时,选择器D输出0到ALU,与部分积相加后输出(即仅输出上次的部分积),形成新的部分积送寄存器C同寄存器B一起右移决定下一次操作;

计数器CR为减法计数,初始值为操作数中数值位的位数,用来控制操作中部分积的右移次数,当CR为0时结束操作。

P为(2n+1)位寄存器,用来存放最终结果,2n位存放乘积的数值,最高位Ps为符号位,由异或门输出Xs+Ys生成。

5. 定点运算器的组成

最基本的组成:算术/逻辑运算单元、数据缓冲寄存器、通用寄存器、多路转换器和数据总线等。

1.逻辑运算

1.逻辑非运算:求反,在数上面加一横;

2.逻辑加运算:逻辑或、‘∨’ ,  ‘+’;

3.逻辑乘运算:逻辑与、‘∧’  ,‘·’ ,‘×’;

4.逻辑异运算:异或、模2的和、按位加、 ‘ 异或 ’;

2.内部总线

1.内部总线 :机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。

2.分类

(1)所处位置: 内部总线(CPU内), 外部总线(系统总线)

(2)逻辑结构: 单向传送总线 ,双向传送总线

三态门组成的双向数据总线:

3.基本结构

运算器包括:ALU、阵列乘除器、寄存器、多路开关、三态缓冲器、数据总线等。

(1)单总线结构的运算器          

所有的部件都连接到同一总线上。所有的数据传输都是采用分时方式。          

缺点:操作速度比较慢。          

优点:电路设计比较简单。

(2)双总线结构的运算器          

两个操作数同时加到ALU进行运算,只需要一次操作控制,而且马上可以得到运算结果。

(3)三总线结构的运算器          

ALU的两个输入端分别由两条总线供给,而ALU的输出则与第三条总线相连,因此,算术逻辑操作可以在一步的控制之内完成。

6.移位电路

该移位电路是由三个三选一的选择器组成的,三选一电路的工作过程是:以中间选择器为例,输入信号为b,输出信号为a。

当S1S0=00是,a2=b3右移;S1S0=01时,a2=b2直通;S1S0=10时,a2=b1左移。

据此,在图3-14所示的移位电路中,选择信号S1S0用来控制移位功能。

当S1S0=00时a3a2a1=b4b3b2,三位代码右移1次;

S1S0=01时a3a2a1=b3b2b1,三位代码直通传送;

S1S0=10时a3a2a1=b2b1b0,三位代码左移一次。

在上述移位电路的基础上,增加选择信号S以增加移2位,移4位和移8位等功能,构成桶形移位器。

1.寄存器组   由若干个通用寄存器组成,为一个输入端口和二个输出端口的结构,输出分别送A寄存器和B寄存器,可以通过寄存器号来选择输入寄存器,以及输出寄存器。

2.A寄存器、B寄存器和Q寄存器   A寄存器,B寄存器接收来自寄存器组的数据,作为ALU二个运算数据的来源之一;B寄存器的数据也可直接送到选择电路3。  

Q寄存器,接收来自移位电路1的数据,其输出可反馈到其移位电路1的输入端(左、右移输入端)。实现数据的左移1位或右移1位的操作。Q寄存器输出通过三选一电路1送入ALU的输入端。Q寄存器在进行乘除法运算时可用作乘数及商寄存器。

3.ALU为多功能算术逻辑运算部件   参加运算的二个数据来自:①选择电路1——三选一电路,输入来自Q寄存器、A寄存器和B寄存器;②选择电路2—二选一电路,输入来自B寄存器和外部输入。ALU输出端送选择电路3——二选一电路,可以选择ALU输出或B寄存器输出。

4.移位电路1和移位电路2:   可进行左移1位,右移1位以及直通操作,移位数据可以来自ALU输出(移位电路1,还可对Q寄存器反馈回来的信息进行左移或右移1位的操作)。  

ALU的加减操作和移位操作可以在同一操作步骤中完成。

  • 30
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机组成原理习题详解涉及到计算机的时钟周期、计算机的五级组成和冯·诺依曼型计算机的设计思想。 首先,计算机的时钟周期是计算机中最基本的、最小的时间单位。一个时钟周期内,CPU仅完成一个最基本的动作。例如,如果计算机主频为1.2GHz,那么计算机每秒钟含有1.2x10^9个时钟周期。 其次,现代计算机系统通常由五个以上不同的级组成。这五个级别分别是微程序设计级(或逻辑电路级)、一般机器级、操作系统级、汇编语言级和高级语言级。每个级别都有不同的功能和任务。例如,微程序设计级由硬件直接执行,而高级语言级由各种高级语言编译程序支持和执行。这种分级观点对了解计算机如何组成提供了一种好的结构和体制,并对保证一个良好的系统结构也很有帮助。 最后,冯·诺依曼型计算机的主要设计思想是存储程序并按地址顺序执行。冯·诺依曼型计算机用二进制表示数据和指令,并将程序和数据存放到存储器中。计算机在工作时通过控制器按照指令在存储器中存放的顺序取出指令以执行,自动完成计算任务。冯·诺依曼型计算机的主要组成部分包括存储器、运算器、控制器、输入设备和输出设备。 以上是计算机组成原理习题的详细解析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [计算机组成原理计算机性能习题解析](https://blog.csdn.net/qq_41086461/article/details/83691560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [计算机组成原理:基础知识部分习题解答(学习笔记)](https://blog.csdn.net/weixin_40589192/article/details/106958803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值