运算器的基本理论

发布网友 发布时间:2022-03-29 17:27

我来回答

1个回答

热心网友 时间:2022-03-29 18:56

运算器的处理对象是数据,所以数据长度和计算机数据表示方法,对运算器的性能影响极大。70年代微处理器常以1个、4个、8个、16个二进制位作为处理数据的基本单位。大多数通用计算机则以16、32、64位作为运算器处理数据的长度。能对一个数据的所有位同时进行处理的运算器称为并行运算器。如果一次只处理一位,则称为串行运算器。有的运算器一次可处理几位 (通常为6或8位),一个完整的数据分成若干段进行计算,称为串/并行运算器。运算器往往只处理一种长度的数据。有的也能处理几种不同长度的数据,如半字长运算、双倍字长运算、四倍字长运算等。有的数据长度可以在运算过程中指定,称为变字长运算。
按照数据的不同表示方法,可以有二进制运算器、十进制运算器、十六进制运算器、定点整数运算器、定点小数运算器、浮点数运算器等。按照数据的性质,有地址运算器和字符运算器等。
它的主要功能是进行算术运算和逻辑运算 运算器能执行多少种操作和操作速度,标志着运算器能力的强弱,甚至标志着计算机本身的能力。运算器最基本的操作是加法。一个数与零相加,等于简单地传送这个数。将一个数的代码求补,与另一个数相加,相当于从后一个数中减去前一个数。将两个数相减可以比较它们的大小。
左右移位是运算器的基本操作。在有符号的数中,符号不动而只移数据位,称为算术移位。若数据连同符号的所有位一齐移动,称为逻辑移位。若将数据的最高位与最低位链接进行逻辑移位,称为循环移位。
运算器的逻辑操作可将两个数据按位进行与、或、异或,以及将一个数据的各位求非。有的运算器还能进行二值代码的16种逻辑操作。
乘、除法操作较为复杂。很多计算机的运算器能直接完成这些操作。乘法操作是以加法操作为基础的,由乘数的一位或几位译码控制逐次产生部分积,部分积相加得乘积。除法则又常以乘法为基础,即选定若干因子乘以除数,使它近似为1,这些因子乘被除数则得商。没有执行乘法、除法硬件的计算机可用程序实现乘、除,但速度慢得多。有的运算器还能执行在一批数中寻求最大数,对一批数据连续执行同一种操作,求平方根等复杂操作。 实现运算器的操作,特别是四则运算,必须选择合理的运算方法。它直接影响运算器的性能,也关系到运算器的结构和成本。另外,在进行数值计算时,结果的有效数位可能较长,必须截取一定的有效数位,由此而产生最低有效数位的舍入问题。选用的舍入规则也影响到计算结果的精确度。在选择计算机的数的表示方式时,应当全面考虑以下几个因素:要表示的数的类型(小数、整数、实数和复数):决定表示方式,可能遇到的数值范围:确定存储、处理能力。数值精确度:处理能力相关;数据存储和处理所需要的硬件代价:造价高低。
两种常用格式:定点格式:定点格式容许的数值范围有限,但要求的处理硬件比较简单;浮点格式:容许的数值范围很大,但要求的处理硬件比较复杂。
1、定点数表示法:定点指小数点的位置固定,为了处理方便,一般分为定点纯整数和纯小数。
2、浮点数表示法:由于所需表示的数值取值范围相差十分悬殊,给存储和计算带来诸多不便,因此出现了浮点运算法。
浮点表示法,即小数点的位置是浮动的。其思想来源于科学计数法。IEEE754的浮点数(比较特殊)浮点数的规格化:主要解决同一浮点数表示形式的不唯一性问题。规定 ,否则尾数要进行左移或右移。
机器零的概念:尾数为0或是阶码值小于所能表示的最小数。
3、十进制数串的表示方法:由于人们对十进制比较熟悉,因此在计算机中要增加对十进制运算的支持。两种方式:将十进制数变为二进制数运算,输出时再由二进制变为十进制。直接的十进制运算。直接运算的表示方法:字符串形式:用于非数值计算领域、压缩的十进制数串:分为定长和不定长两种。需要相应的十进制运算器和指令支持。
4、自定义数据表示:标志符数据表示、描述符数据表示。区别:标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放;描述符表示中,先访问描述符,后访问数据,至少增加一次访存;描述符是程序的一部分,而不是数据的一部分。原码:比较自然的表示法,最高位表示符号,0为正,1为负。优点:简单易懂。缺点:加减法运算复杂。补码:加减法运算方便,减法可以转换为加法。定点小数的补码。定点整数的补码,反码:为计算补码方便而引入。由反码求补码:符号位置1,各位取反,末位加1。移码:用于阶码的表示,两个移码容易比较大小,便于对阶。
ASCII码 输入码:用于汉字输入;汉字的存储;字模码:用于汉字的显示。余数处理的两种方法:恢复余数法:运算步骤不确定,控制复杂,不适合计算机运算。加减交替法:不恢复余数,运算步骤确定,适合计算机操作。逻辑数概念:不带符号的二进制数。四种逻辑运算:逻辑非、逻辑加、逻辑乘、逻辑异。多功能算术/逻辑运算单元(ALU) 并行进位,行波进位加/减法器存在的两个问题:运算时间长,行波进位加/减法器只能完成加法和减法,而不能完成逻辑操作,控制端M用来控制作算术运算还是逻辑运算,两种运算的区别在于是否对进位进行处理。M=0时,对进位无影响,为算术运算;M=1时,进位*,为逻辑运算。正逻辑中,“1”用高电平表示,“0”用低电平表示,而负逻辑刚好相反。逻辑与负逻辑的关系为,正逻辑的“与”到负逻辑中变为“或”,即+·互换。
内部总线,总线分类:内部总线、外部总线(系统总线)、通信总线。总线又可分为单向总线和双向总线。带锁存器的总线可实现总线的复用。运算器包括ALU、阵列乘除器件、寄存器、多路开关、三态缓冲器、数据总线等逻辑部件。运算器的设计,主要是围绕着ALU和寄存器同数据总线之间如何传送操作数和运算结果而进行的。运算器的三种结构形式:单总线结构的运算器:这种结构的主要缺点是操作进度较慢,但控制电路比较简单。双总线结构的运算器。三总线结构的运算器:三总线结构的运算器的特点是操作时间快。 运算器包括寄存器、执行部件和控制电路3个部分。在典型的运算器中有3个寄存器:接收并保存一个操作数的接收寄存器;保存另一个操作数和运算结果的累加寄存器;在进行乘、除运算时保存乘数或商数的乘商寄存器。执行部件包括一个加法器和各种类型的输入输出门电路。控制电路按照一定的时间顺序发出不同的控制信号,使数据经过相应的门电路进入寄存器或加法器,完成规定的操作。为了减少对存储器的访问,很多计算机的运算器设有较多的寄存器,存放中间计算结果,以便在后面的运算中直接用作操作数。为了提高运算速度,某些大型计算机有多个运算器。它们可以是不同类型的运算器,如定点加法器、浮点加法器、乘法器等,也可以是相同类型的运算器。运算器的组成决定于整机的设计思想和设计要求,采用不同的运算方法将导致不同的运算器组成。但由于运算器的基本功能是一样的,其算法也大致相同,因而不同机器的运算器是大同小异的。运算器主要由算术逻辑部件、通用寄存器组和状态寄存器组成。1、算术逻辑部件ALU。ALU 主要完成对二进制信息的定点算术运算、逻辑运算和各种移位操作。算术运算主要包括定点加、减、乘和除运算。逻辑运算主要有逻辑与、逻辑或、逻辑异或和逻辑非操作。移位操作主要完成逻辑左移和右移、算术左移和右移及其他一些移位操作。某些机器中,ALU 还要完成数值比较、变更数值符号、计算操作数在存储器中的地址等。可见,ALU 是一种功能较强的组合逻辑电路,有时被称为多功能发生器,它是运算器组成中的核心部件。ALU 能处理的数据位数(即字长)与机器有关。如 Z80单板机中,ALU 是 8 位;IBM PC/XT和 AT 机中,ALU 为 16 位;386 和 486微机中,ALU 是 32 位。ALU 有两个数据输入端和一个数据输出端,输入输出的数据宽度(即位数)与 ALU 处理的数据宽度相同。
2、通用寄存器组设计的机器的运算器都有一组通用寄存器。它主要用来保存参加运算的操作数和运算的结果。早期的机器只设计一个寄存器,用来存放操作数、操作结果和执行移位操作
,由于可用于存放重复累加的数据,所以常称为累加器。通用寄存器均可以作为累加器使用。通用寄存器的数据存取速度是非常快的,一般是十几个毫微秒(μs)。如果 ALU 的两个操作数都来自寄存器,则可以极大地提高运算速度。通用寄存器同时可以兼作专用寄存器,包括用于计算操作数的地址(用来提供操作数的形式地址,据此形成有效地址再去访问主存单元)。例如,可作为变址寄存器、程序计数器(PC)、堆栈指示器(SP)等。必须注意的是,不同的机器对这组寄存器使用的情况和设置的个数是不相同的。
3、状态寄存器状态寄存器用来记录算术、逻辑运算或测试操作的结果状态。程序设计中,这些状态通常用作条件转移指令的判断条件,所以又称为条件码寄存器。一般均设置如下几种状态位:
1)零标志位(Z):当运算结果为 0 时,Z 位置“1”;非 0 时,置“0”;
2)负标志位(N):当运算结果为负时,N 位置“1”;为正时,置“0”;
3)溢出标志位(V):当运算结果发生溢出时,V 位置“1”;无溢出时,置“0”;
4)进位或借位标志(C):在做加法时,如果运算结果最高有效位(对于有符号数来说,即符号位;对无符号数来说,即数值最高位)向前产生进位时,C 位置“1”;无进位时,置“0”。在做减法时,如果不够减,最高有效位向前有借位(这时向前无进位产生)时,C 位置“1”;无借位(即有进位产生)时,C 位置“0”。除上述状态外,状态寄存器还常设有保存有关中断和机器工作状态(用户态或核心态)等信息的一些标志位(应当说明,不同的机器规定的内容和标志符号不完全相同),以便及时反映机器运行程序的工作状态,所以有的机器称它为“程序状态字”或“处理机状态字”(Processor Status Word,PSW )。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com