运算器的发展

原创 2012年04月11日 00:16:08

运算器的发展

一.        ALU的发展:

ALUArithmeticLogic 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进行的,所以又称为浮点协处理器。

1985Intel推出了80386芯片,数学协处理器80387也随之诞生。80387不仅是浮点运算器,而且还集成了很多控制功能。

1989Intel推出80486芯片,它是将80386和数学协处理器80387以及一个8KB的高速缓存器集成在一个芯片内。

到了奔腾时代CPU内部的浮点运算器开始采用流水线设计。使用了UV两条流水线。

 

Android自带计算器源码 分析

Android自带计算器源码存放在\packages\apps\Calculator目录下,共有11个java文件。主要可以画分为UI部分、表示层部分、历史记录存储和读取部分、逻辑实现部分。 (一)...
  • xiayu98020214
  • xiayu98020214
  • 2013年09月11日 19:25
  • 9574

【并行计算-CUDA开发】浅谈GPU并行计算新趋势

随着GPU的可编程性不断增强,GPU的应用能力已经远远超出了图形渲染任务,利用GPU完成通用计算的研究逐渐活跃起来,将GPU用于图形渲染以外领域的计算成为GPGPU(General Purpose c...
  • LG1259156776
  • LG1259156776
  • 2016年10月13日 11:07
  • 2734

高级编程语言的发展历程(机器语言、汇编语言、高级语言)

目录   高级编程语言的发展历程(一)创始纪   高级编程语言的发展历程(二)虚拟机的前世今生   高级编程语言的发展历程(三)FORTRAN 语言是怎么来的   高级编程语言的发展历程(四)...
  • u012701023
  • u012701023
  • 2015年05月31日 17:52
  • 2549

计算机组成原理:运算方法和运算器

本文内容:定点运算,浮点运算,定点运算器和浮点运算器。
  • Jurbo
  • Jurbo
  • 2017年11月26日 21:18
  • 340

使用flask框架实现一个简单的网页加法运算器

1. 前言最近在看Python web 开发的一些内容, 正好看到了flask, 这里做一些记录2. flask框架简要说明 flask 是一个微型的web框架, 相比于 Django 集成了各种模块...
  • zhyh1435589631
  • zhyh1435589631
  • 2016年05月29日 15:55
  • 1903

计算机组成课设实验一: 微程序控制的运算器设计

设计目的: 1、熟悉简单运算器的结构。 2、熟悉微命令的产生和时序。 3、熟悉运算器功能测试。 设计要求: 设计一个八位算法逻辑运算单元ALU。两操作数由八位寄存器R0、R1...
  • kswkly
  • kswkly
  • 2017年11月15日 20:41
  • 97

计原——脱机运算器实验

计原——脱机运算器实验标签(空格分隔): 计原实验设备与环境教学计算机的运算器部件由4片4bit的位片结构运算器AM2901组成。脱机实验需要将其独立出来(将联机/脱机功能置为脱机,标志位控制器SST...
  • daishenjian
  • daishenjian
  • 2015年07月31日 19:15
  • 1443

模拟简单运算器

【描述】 模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。 【输入】 输入在一行中给出一个四则运算算式,没有空格,且至少...
  • u011545923
  • u011545923
  • 2014年12月01日 07:57
  • 766

Scalaz(53)- scalaz-stream: 程序运算器-application scenario

从上面多篇的讨论中我们了解到scalaz-stream代表一串连续无穷的数据。对这个数据流的处理过程就是一个状态机器(state machine)的状态转变过程。这种模式与我们通常遇到的程序流程很相似...
  • TIGER_XC
  • TIGER_XC
  • 2016年08月12日 10:02
  • 216

计算机组成课程设计之一——微程序控制的运算器设计

这个学期做了一系列的实验和课程设计,昨天期末考试刚刚结束,是时候整理一波了。     计算机组成原理与设计的课程设计总共分为四个部分,前两个位典型部件设计,如运算器设计和存储器读写设计,后两个是简单...
  • john_bian
  • john_bian
  • 2017年01月11日 16:36
  • 2395
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:运算器的发展
举报原因:
原因补充:

(最多只允许输入30个字)