运算器及其相关理论
扫描二维码
随时随地手机看文章
运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。算术逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。计算机运行时,运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。与Control Unit共同组成了CPU的核心部分。
运算器的处理对象是数据,所以数据长度和计算机数据表示方法,对运算器的性能影响极大。70年代微处理器常以1个、4个、8个、16个二进制位作为处理数据的基本单位。大多数通用计算机则以16、32、64位作为运算器处理数据的长度。能对一个数据的所有位同时进行处理的运算器称为并行运算器。如果一次只处理一位,则称为串行运算器。有的运算器一次可处理几位 (通常为6或8位),一个完整的数据分成若干段进行计算,称为串/并行运算器。运算器往往只处理一种长度的数据。有的也能处理几种不同长度的数据,如半字长运算、双倍字长运算、四倍字长运算等。有的数据长度可以在运算过程中指定,称为变字长运算。按照数据的不同表示方法,可以有二进制运算器、十进制运算器、十六进制运算器、定点整数运算器、定点小数运算器、浮点数运算器等。按照数据的性质,有地址运算器和字符运算器等。它的主要功能是进行算术运算和逻辑运算。
运算器能执行多少种操作和操作速度,标志着运算器能力的强弱,甚至标志着计算机本身的能力。运算器最基本的操作是加法。一个数与零相加,等于简单地传送这个数。将一个数的代码求补,与另一个数相加,相当于从后一个数中减去前一个数。将两个数相减可以比较它们的大小。
左右移位是运算器的基本操作。在有符号的数中,符号不动而只移数据位,称为算术移位。若数据连同符号的所有位一齐移动,称为逻辑移位。若将数据的最高位与最低位链接进行逻辑移位,称为循环移位。运算器的逻辑操作可将两个数据按位进行与、或、异或,以及将一个数据的各位求非。有的运算器还能进行二值代码的16种逻辑操作。乘、除法操作较为复杂。很多计算机的运算器能直接完成这些操作。乘法操作是以加法操作为基础的,由乘数的一位或几位译码控制逐次产生部分积,部分积相加得乘积。除法则又常以乘法为基础,即选定若干因子乘以除数,使它近似为1,这些因子乘被除数则得商。没有执行乘法、除法硬件的计算机可用程序实现乘、除,但速度慢得多。有的运算器还能执行在一批数中寻求最大数,对一批数据连续执行同一种操作,求平方根等复杂操作。
实现运算器的操作,特别是四则运算,必须选择合理的运算方法。它直接影响运算器的性能,也关系到运算器的结构和成本。另外,在进行数值计算时,结果的有效数位可能较长,必须截取一定的有效数位,由此而产生最低有效数位的舍入问题。选用的舍入规则也影响到计算结果的精确度。在选择计算机的数的表示方式时,应当全面考虑以下几个因素:要表示的数的类型(小数、整数、实数和复数):决定表示方式,可能遇到的数值范围:确定存储、处理能力。数值精确度:处理能力相关;数据存储和处理所需要的硬件代价:造价高低。
两种常用格式:定点格式:定点格式容许的数值范围有限,但要求的处理硬件比较简单;浮点格式:容许的数值范围很大,但要求的处理硬件比较复杂。1、定点数表示法:定点指小数点的位置固定,为了处理方便,一般分为定点纯整数和纯小数。2、浮点数表示法:由于所需表示的数值取值范围相差十分悬殊,给存储和计算带来诸多不便,因此出现了浮点运算法。浮点表示法,即小数点的位置是浮动的。其思想来源于科学计数法。IEEE754的浮点数(比较特殊)浮点数的规格化:主要解决同一浮点数表示形式的不唯一性问题。规定 ,否则尾数要进行左移或右移。机器零的概念:尾数为0或是阶码值小于所能表示的最小数。3、十进制数串的表示方法:由于人们对十进制比较熟悉,因此在计算机中要增加对十进制运算的支持。两种方式:将十进制数变为二进制数运算,输出时再由二进制变为十进制。直接的十进制运算。直接运算的表示方法:字符串形式:用于非数值计算领域、压缩的十进制数串:分为定长和不定长两种。需要相应的十进制运算器和指令支持。4、自定义数据表示:标志符数据表示、描述符数据表示。区别:标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放;描述符表示中,先访问描述符,后访问数据,至少增加一次访存;描述符是程序的一部分,而不是数据的一部分。原码:比较自然的表示法,最高位表示符号,0为正,1为负。优点:简单易懂。缺点:加减法运算复杂。补码:加减法运算方便,减法可以转换为加法。定点小数的补码。定点整数的补码,反码:为计算补码方便而引入。由反码求补码:符号位置1,各位取反,末位加1。移码:用于阶码的表示,两个移码容易比较大小,便于对阶。