《计算机组成原理第3章 运算方法和运算部件(3-6_7)》由会员分享,可在线阅读,更多相关《计算机组成原理第3章 运算方法和运算部件(3-6_7)(87页珍藏版)》请在金锄头文库上搜索。
1、计算机学院计算机学院计算机组成与结构 本科生课程教学计算机学院计算机组成与结构q本课程主要讲授计算机系统的硬件和软件构成方法,包括 硬件系统中运算器、控制器、存储器、输入设备和输出设 备和总线系统的构成原理等;并与当代先进的计算机技术 相结合。是计算机科学与技术本科专业核心课程。q 本课程着重计算机系统组成与结构方面的教学和研究。计算机结构定义为系统程序员所能见到的计算机硬件特性; 计算机组成是指计算机硬件的具体实现。计算机学院第三章 运算方法和运算部件 q数据的表示方法和转换q带符号数的表示方法及加减运算q二进制乘法运算q二进制除法运算q浮点数的运算方法q运算部件q数据校验码计算机学院3.6
2、 运算部件一、运算部件 q定点运算部件由算术逻辑运算部件ALU、若干个寄存器、 移位电路、计数器、门电路等组成。 q运算器部件是计算机中进行数据加工的部件,其主要功能 包括: q1. 执行数值数据的算术加减乘除等运算,执行逻辑数据 的与或非等逻辑运算,由一个被称为 ALU 的线路完成。 q2. 暂时存放参加运算的数据和中间结果,由多个通用寄 存器来承担。 q3. 运算器通常也是数据传输的通路计算机学院3.6 运算部件q书P95,图3.9所示是一个能实现定点加、减、乘、除运算 的运算部件。 q1在进行加法运算时,应送来AALU、BALU、ALUS 、SA信号(高电位),另外还应向ALU发出加法运
3、算命令( 图中未画出)。 q2在进行减法运算时,应送来AALU、 BALU、1、 ALUS、SA信号(高电位),同样还应向ALU发出减法运 算命令。 q3乘法运算的实现见前面的流程图。 q4除法运算的实现见前面的流程图。计算机学院计算机学院3.6 运算部件q浮点运算部件 q通常由阶码运算部件和尾数运算部件组成,其各自的结构 与定点运算部件相似。但阶码部分仅执行加减法运算。其 尾数部分则执行加减乘除运算,左规时有时需要左移多位 。为加速移位过程,有的机器设置了可移动多位的电路。qP103 习题 3.25、 3.27计算机学院3.6 运算部件二、运算部件AM2901A 1、AM2901A逻辑结构及
4、原理图计算机学院3.6 运算部件q基本组成部件有:q八功能的ALU:完成算术与逻辑运算; q164位寄存器组:寄存加减运算的操作数; q4位Q寄存器:用于接收ALU的输出数据,具有左、右移功 能; q3选1和2选1多路开关:用于多路地址、数据的选择。q下图是AM2901A的逻辑原理图。计算机学院3.6 运算部件计算机学院3.6 运算部件2、AM2901A主要特点q位片式结构,即每片内仅有四位线路,要实现不同位数的 运算器,需将几片同样的器件串接起来使用。例如用四片 可实现个16位字长的运算器。 q该运算器的ALU能实现八种运算功能,它每一位上的两个 输入端数据分别用R和S表示,则这八种功能是:
5、三种算术运算功能:五种逻辑运算功能: 计算机学院3.6 运算部件q这八种功能的选择控制,是用外部送入的三位编码值I5I4I3 实现的,其具体规定如下表所示。ALU的功能选择 ALU的输入选择 计算机学院3.6 运算部件qALU的R输入端可以接收外部送入运算器的数据D,寄存器组 的组输出A,或接收逻辑0值。ALU的S输入端可以接收寄 存器组的一组输出A和另组输出B,还可以接收Q寄存器的 输出。这样,R和S接收的数据可以有如下12种组合情况: q R 0000 AAAA DDDD q S ABQ0 ABQ0 ABQ0 q 考虑到R和S同时接收0无实用价值,OA与AO组合、AA和 AB组合、DA和D
6、B组合可以相互替代,故只需留下八种组合情 况即可、此时可用外部送来的三位控制码来决定ALU的输入 数据,即区分可用的八种组合。对应关系如上表所示。计算机学院3.6 运算部件q运算器中有1个16X4位的通用寄存器组和一个4位的Q寄存 器。寄存器组被设计成能双端口输出的部件。每一个寄存 器都可以用A地址或B地址选择,将寄存器中的内容分别送 到输出端口A或B)。当A和B地址不同时,在输出端口A和B 将得到两个不同寄存器中的内容。该寄存器组的写入控制 ,只能用B地址实现,写入的数据是ALU的输出经过移位器 送到寄存器组的输入端的。移位器可执行直送、左移一位 操作,或右移一位的操作,使加减运算和移位操作
7、可在同 一个操作步骤中完成。 qQ寄存器本身具有移位功能,即它可以接收自己左移一位或 右移一位的值。Q寄存器 还可以接收ALU的输出F的值。Q 的输出可在经ALU的S输入端送入ALU。计算机学院3.6 运算部件qALU还给出了Cn+4、F3(可用作符号位)、OVR和F=0000四 个状态信息,它们分别是本四位运算器产生的向更高位的 进位、本片最高位的取值、结果溢出和结果为零的状态。 ALU的最低位还接收从更低位片送来的进位信号Cn,ALU 还给出了超前进位信号G和P。q移位器还有接收与送出移位数值的引线,它们分别是RAM3 、RAM0、Q3和Q0,它们都是用三态门给出的具有双向传 送功能的线路
8、实现的。计算机学院3.6 运算部件q运算器的四位输出为Y3一Y0,它可以是ALU的运算结果, 也可以是寄存器组A输出端口上的内容。这里用的是三态门 电路,仅当OE#信号为低电平时,y的值才是可用的,否则 Y输出处于高阻状态。q控制数据传送的方式(移不移位)和数据发送的去向,是用另 外三位编码(I8I7I6)来控制的,具体规定如下表所示。计算机学院3.6 运算部件数据传输控制 计算机学院3.6 运算部件3、16位字长定点运算器 q可以用四片Am2901A组成一个16位字长的定点运算器,其连 接关系如下图所示。 计算机学院3.6 运算部件线路工作原理: q每片器件上的Q0和Q3端,RAM0与RAM
9、3端都能用于输入和输出 ,因此,它们用三态门电路实现,在ALU的移位控制信号( 由数据传送控制的三位编码I8I7I6给出)控制下,把高位片 的Q0、RAM0输出信号送入低位邻片的Q3、RAM3输入端,或把 低位片的Q3、RAM3输出信号送入高位片的Q0、RAM0输入端。q四片的数据输入端D3-D0一起作为16位运算器的16个数据输 入端D15D0,四片的数据输出端Y3-Y0一起作为16位运算器 的16个数据输出端Y15-Y0。 计算机学院3.6 运算部件q四片的三组输入信号I2 I1-I0,I5 I4 I3,I8 I7 I6,分别用外部送 来的三组信号提供给每片,使四片总使用相同的控制信号 ,
10、保证它们的并行工作关系(片间有串行数据信号传送)。 q 通用寄存器组RAM的两个地址控制端“A”(读)和“B”(读 写)、Q寄存器移位用的CP时钟脉冲信号,分别送入每 片Am2901A的“A”、“B”和CP输入端 。计算机学院3.6 运算部件指令控制过程:q下述几条指令在运算器部件中的控制方法:q(1)把主存数据寄存器中读得的数据写入通用寄存器组中的 某个寄存器中; q(2)把通用寄存器组中某个寄存器的内容写进主存数据寄存 器中; q(3)通用寄存器组中的两个寄存器的内容相加。结果写回其 中的一个寄存器中。 计算机学院3.6 运算部件q按Am2901A的功能规定,可以给出如下表所示的一张信号
11、分配表。计算机学院3.6 运算部件q第一条指令,把主存数据寄存器的输出接到Am2901A的D 输入端: 用I2I1I0 111作为ALU的输入数据选择(D,0组合), 用I5I4I3 000作为ALU的功能选择(加,即实现D十0), 用I8I7I6011作为ALU的数据传送控制,即把ALU的输出送 到通用寄存器组的输入,再写入由“B”地址选择的寄存器 中。在此操作过程中,最低位进位输入值给0。计算机学院3.6 运算部件q第二条指令,把通用寄存器中的内容写入主存数据寄存器 中: 用I2I1I0 011作为ALU的输入选择(0,B组合), 用I5I4I3 000作为ALU的功能选择(加,即实现0+
12、B号寄存 器的内容), 用I8I7I6 001作为Am2901A的输出选择并同时给出面信号 ,Y输出即为B寄存器的内容,可以把Y接到主存数据寄存 器的输入端,从而完成向该寄存器的写入操作。计算机学院3.6 运算部件q第三条指令,把A寄存器的内容加上B寄存器的内容,结果 写入B寄存器中: 用I2I1I0 001作为ALU的输入数据选择, 用I5I4I3 000作为ALU的功能选择, 用I8I7I6 010作为ALU的数据传送选择,从而完成A寄存器 的内容加B寄存器的内容,并把结果写入B寄存器中的操作 过程。此时要使OE#取高电平,使输出Y处于高阻状态,而 不是输出A寄存器的内容。 计算机学院3.
13、6 运算部件q这三条指令的运行结果,应按某种规定设置运算器的状态 标志触发器C、y、Z、N,这些触发器要在Am2901A芯片之 外实现,将Am2901A的最高位芯片的输出Cn+4、OVR、F 0000和F3的值写入这四个标志触发器中。图上省略了这 一部分逻辑电路。计算机学院3.6 运算部件计算机学院q提高数据传送的正确性: q(1)提高计算机硬件的可靠性; q(2)在数据编码上找出路,即采用某种编码法 ,通过少量的附加电路,使之能发现某些错误, 甚至能确定出错位置,进而实现自动改错的能力 。3.7 数据校验码计算机学院3.7 数据校验码q码距是根据任意两个合法码之间至少有几个二进制位不相 同而
14、确定的,仅有一位不同,称其码距为1。例如,用四位 二进制表示16种状态,则16种编码都用到了,此时码距为1 ,就是说,任何一个状态的四位码中的一位或几位出错, 就变成另一个合法码,此时无查错能力。若用四个二进制 位表示8个状态,就可以只用其中的8种编码,而把另8种编 码作为非法编码,此时码距为2。计算机学院3.7 数据校验码一、奇偶校验码 q奇偶校验码的原理是在每组代码中增加一个冗余位,使合 法编码的最小码距由1增加到2。1、 校验码的构成规则 q偶校验:每个码字(包括校验位)中1的数目为偶数。 q奇校验:每个码字(包括校验位)中1的数目为奇数。计算机学院3.7 数据校验码2、校验位的形成 q
15、 设有效信息位为:q偶校验,在发送端求校验位:q奇校验,在发送端求校验位:计算机学院3.7 数据校验码(3) 校验原理q偶校验在接收端求:q奇校验在接收端求:q若P=0,则无错;P=1,则有错。计算机学院3.7 数据校验码计算机学院3.7 数据校验码4、局限性q奇偶校验码能发现数据代码中奇数个位出错情况,并且不能纠 正错误,常用于对存储器数据的检查或者传输数据的检查。 q下面给出对几个字节值的奇偶校验的编码结果: q 数据 奇校验的编码 偶校码的编码 q 00000000 l00000000 000000000 q 010l0l00 0010l0100 l01010l00 q 01ll1lll
16、 0011l1111 10l111l1l q其中,最高一位为校验位,其余低八位为数据位。从中可以看 到,校验位的值取。还是1,是由数据位中1的个数决定的。计算机学院3.7 数据校验码二、海明校验码q海明校验的基本思想是将有效信息按某种规律分成若干组 ,每组安排一个校验位进行奇偶测试。在一个数据位组中 加入几个校验位,增加数据代码间的码距,当某一位发生 变化时会引起校验结果发生变化,不同代码位上的错误会 得出不同的校验结果。因此,海明码能检测出2位错误,并能 纠正1位错误。 q海明校验实质上是一种多重奇偶校验。计算机学院3.7 数据校验码(1)求海明校验码的步骤。 q 确定海明校验位的位数设K为有效信息的位数,设r为校验位的位数,则整个码字 的 位数N应满足不等式:N=Kr2r1