2012年(106)
分类: 系统运维
2012-05-08 17:13:39
运算器的发展
一. ALU的发展:
ALU(ArithmeticLogic Unit),即算术逻辑单元是进行整数运算的结构。现阶段是用电路来实现,应用在电脑芯片中。ALU的操作和操作种类由控制器决定。ALU处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。
1945年数学家冯诺伊曼在一篇介绍被称为EDVAC的一种新型电脑的基础构成的报告中提出ALU的概念。
1946年,冯诺伊曼与同事合作为普林斯顿高等学习学院(IAS)设计计算机。随后IAS计算机成为后来计算机的原形。在论文中,冯诺伊曼提出他相信计算机中所需的部件,其中包括ALU。 冯诺伊曼写到,ALU是计算机的必备组成部分,因为已确定计算机一定要完成基本的数学运算,包括加减乘除。于是他相信「(计算机)应该含有专门完成此类运算的部件。」
ALU必须使用与数字电路其他部分使用同样的格式进行数字处理.对现代处理器而言,几乎全都使用二进制补码表示方式。早期的计算机曾使用过很多种数字系统,包括反码、符号数值码,甚至是十进制码,每一位用十个管子。 以上这每一种数字系统所对应的ALU都有不同的设计,而这也影响了当前对二进制补码的优先选择,因为二进制补码能简化ALU加法和减法的运算。 一个简单的能进行与或非和加运算的2位ALU。
处理位数
20世纪70年代的微处理器常以1、4、8或16个二进制位作为处理数据的基本单位,当时ALU运算器一次可处理4、8或16位;
80年代的ALU运算器一次可处理8位或16位;
90年代之后,ALU运算器一次可处理的位数已经达到32位;
现在的ALU运算器一次可处理64位,甚至128位。因此现在大多数计算机的ALU是以32、64或者128位作为ALU处理数据的长度。
基本操作:
早期的ALU运算器最基本的操作之一是加法。
后来,左右移位和乘除法等较为复杂的操作也被设计为ALU运算器的基本操作。ALU运算器的另一基本操作是逻辑操作,它可将两个数据按位进行与、或、异或以及将一个数据的各位求非。随着技术的发展,ALU运算器还能进行二值代码的16种、甚至更多逻辑操作。
现在的ALU在处理位数和执行操作上都得到了长足的发展。
二. 浮点运算器的发展:
浮点运算器是进行浮点运算的结构。现阶段是用电路来实现,应用在计算机芯片中。是整数运算器之后的一大发展,因为在浮点运算器发明之前,计算机中的浮点运算是都是用整数运算来模拟的,效率十分低下。
80x87是美国Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器。由于它们的算术运算是配合80x86CPU进行的,所以又称为浮点协处理器。
1985年,Intel推出了80386芯片,数学协处理器80387也随之诞生。80387不仅是浮点运算器,而且还集成了很多控制功能。
1989年,Intel推出80486芯片,它是将80386和数学协处理器80387以及一个8KB的高速缓存器集成在一个芯片内。
到了奔腾时代,CPU内部的浮点运算器开始采用流水线设计。使用了U,V两条流水线。