电子计算机(electronic computer),俗称电脑,简称计算机(computer),是一种根据一系列指令来对数据进行处理的机器。所相关的技术研究叫计算机科学,以数据为核心的研究称为信息技术。
计算机种类繁多。实际来看,计算机总体上是处理信息的工具。根据图灵机理论,一部具有最基本功能的计算机应当能够完成任何其它计算机能做的事情。因此,只要不考虑时间和存储因素,从个人数码助理(PDA)到超级计算机都应该可以完成同样的作业。即是说,即使是设计完全相同的计算机,只要经过相应改装,就应该可以被用于从公司薪金管理到无人驾驶飞船操控在内的各种任务。由于科技的飞速进步,下一代计算机总是在性能上能够显著地超过其前一代,这一现象有时被称作“摩尔定律”。
计算机在组成上形式不一。早期计算机的体积足有一间房屋大小,而今天某些嵌入式计算机可能比一副扑克牌还小。当然,即使在今天,依然有大量体积庞大的巨型计算机为特别的科学计算或面向大型组织的事务处理需求服务。比较小的,为个人应用而设计的计算机称为微型计算机,简称微机。我们今天在日常使用“计算机”一词时通常也是指此。不过,现在计算机最为普遍的应用形式却是嵌入式的。嵌入式计算机通常相对简单,体积小,并被用来控制其它设备—无论是飞机,工业机器人还是数码相机。
上述对于电子计算机的定义包括了许多能计算或是只有有限功能的特定用途的设备。然而当说到现代的电子计算机,其最重要的特征是,只要给予正确的指示,任何一台电子计算机都可以模拟其他任何计算机的行为(只受限于电子计算机本身的存储容量和执行的速度)。据此,现代电子计算机相对于早期的电子计算机也被称为通用型电子计算机。
计算机应用领域电子计算机的用途非常广泛,主要应用领域有:
(1)信息处理。信息处理又称数据处理,是指对科研,生产,经济活动中的大量数据进行收集,存储,加工,传输和输出等活动的总称。信息处理是目前计算机最主要的应用领域,这类处理也许并不复杂,但需用处理数据量却非常大。人事管理,人口统计,仓库管理,银行业务,文献检索,预订机票都属于信息处理的问题,而各类为公室自动化,管理信息系统,专家系统则是用于信息处理的软件,会计电算化属于信息处理的应用领域。
(2)科学计算。科学计算又称数值计算,是指计算机完成科学研究和工程技术等领域中涉及的复杂和数据运算,科学计算机是计算机最早的应用领域,例如航天,军事,气象,桥梁设计等等领域都有复杂的数学问题需要计算机进行计算。
(3)过程控制。过程控制又称实时控制,是指用计算机采集检测数据,按最佳值迅速对控制对象的自动控调节,从而实现有效的控制。过程控制,所涉及的范围广,如工业,交通运输的自动控制,对导弹,人造卫星,飞机的跟综与控制,等等。
(4)计算机辅助系统。计算机辅助系统是指利用计算机来帮助人类完成一些相关的工作,主要包括计算要辅助设计(CAD),计算机辅助制造(CAM),计算机辅助科教学(CAI),计算机辅助工程(CAE),等等。例如,CAD在航空,机械,建筑,服装,电子,等领域都得到广泛应用,从而提高设计质量,缩短设计周期和提高设计的自动化程度。
(5)计算机通信。计算机通信是计算机技术与通信技术相结合的产物,其典型的代表是计算机网络。随着互联网和多媒体的技术的迅速普及,网上会议,远程医疗,网上银行,电子商务,网络会计等基于计算机通信的远程处活动已经或将要获得普及。
(6)人工智能。人工智能(AI)是指利用计算机模拟人类的智能活动,使计算机具有判断,理解,学习,问题求解的能力。目前人工智能的研究已取得一些成果,如在医疗诊断,文字翻译,密码分析,智能机器人等领域的应用都有突破。
历史ENIAC是电脑发展史上的一个里程碑本来,计算机的英文原词“computer”是指从事数据计算的人。而他们往往都需要借助某些机械计算设备或模拟计算机。这些早期计算设备的祖先包括有算盘,以及可以追溯到公元前87年的被古希腊人用于计算行星移动的安提基特拉机制。随着中世纪末期欧洲数学与工程学的再次繁荣,1623年由Wilhelm Schickard率先研制出了欧洲第一台计算设备,这是一个能进行六位以内数加减法,并能通过铃声输出答案的“计算钟”。使用转动齿轮来进行操作。
1642年法国数学家Pascal在WILLIAM Oughtred计算尺的基础上,将计算尺加以改进,能进行八位计算。还卖出了许多制品,成为当时一种时髦的商品。
1801年,Joseph Marie Jacquard对织布机的设计进行了改进,其中他使用了一系列打孔的纸卡片来作为编织复杂图案的程序。Jacquard式织布机,尽管并不被认为是一台真正的计算机,但是它的出现确实是现代计算机发展过程中重要的一步。
查尔斯・巴比奇(Charles Babbage)是构想和设计一台完全可编程计算机的第一人,当时是1820年。但由于技术条件,经费限制,以及无法忍耐对设计不停的修补,这台计算机在他有生之年始终未能问世。约到19世纪晚期,许多后来被证明对计算机科学有着重大意义的技术相继出现,包括打孔卡片以及真空管。Hermann Hollerith设计了一台制表用的机器,就实现了应用打孔卡片的大规模自动数据处理。
在20世纪前半叶,为了迎合科学计算的需要,许许多多单一用途的并不断深化复杂的模拟计算机被研制出来。这些计算机都是用它们所针对的特定问题的机械或电子模型作为计算基础。20世纪三四十年代,计算机的性能逐渐强大并且通用性得到提升,现代计算机的关键特色被不断地加入进来。
1937年由克劳德·艾尔伍德·香农(Claude Shannon)发表了他的伟大论文《对继电器和开关电路中的符号分析》,文中首次提及数字电子技术的应用。他向人们展示了如何使用开关来实现逻辑和数学运算。此后,他通过研究Vannevar Bush的微分模拟器进一步巩固了他的想法。这是一个标志着二进制电子电路设计和逻辑门应用开始的重要时刻,而作为这些关键思想诞生的先驱,应当包括:Almon Strowger,他为一个含有逻辑门电路的设备申请了专利;尼古拉・特斯拉(Nikola Tesla),他早在1898年就曾申请含有逻辑门的电路设备;Lee De Forest,于1907年他用真空管代替了继电器。
Commodore公司在20世纪八十年代生产的Amiga 500电脑沿着这样一条上下求索的漫漫长途去定义所谓的“第一台电子计算机”可谓相当困难。1941年5月12日,Konrad Zuse完成了他的机电共享设备“Z3”,这是第一台具有自动二进制数学计算特色以及可行的编程功能的计算机,但还不是“电子”计算机。此外,其他值得注意的成就主要有:1941年夏天诞生的阿塔纳索夫-贝瑞计算机是世界上第一台电子计算机,它使用了真空管计算器,二进制数值,可复用内存;在英国于1943年被展示的神秘的巨像计算机(Colossus computer),尽管编程能力极其有限,但是它的的确确告诉了人们使用真空管既值得信赖又能实现电气化的再编程;哈佛大学的Harvard Mark I;以及基于二进制的“埃尼阿克”(ENIAC,1945年),这是第一台通用意图的计算机,但由于其结构设计不够弹性化,导致对它的每一次再编程都意味着电气物理线路的再连接。
开发埃尼爱克的小组针对其缺陷又进一步完善了设计,并最终呈现出今天我们所熟知的冯·诺伊曼结构(程序存储体系结构)。这个体系是当今所有计算机的基础。20世纪40年代中晚期,大批基于此一体系的计算机开始被研制,其中以英国最早。尽管第一台研制完成并投入运转的是“小规模实验机”(Small-Scale Experimental Machine,SSEM),但真正被开发出来的实用机很可能是EDSAC。
在整个20世纪50年代,真空管计算机居于统治地位。1958年9月12日在Robert Noyce(INTEL公司的创始人)的领导下,发明了集成电路。不久又推出了微处理器。1959年到1964年间设计的计算机一般被称为第二代计算机。
到了60年代,晶体管计算机将其取而代之。晶体管体积更小,速度更快,价格更加低廉,性能更加可靠,这使得它们可以被商品化生产。1964年到1972年的计算机一般被称为第三代计算机。大量使用集成电路,典型的机型是IBM360系列。
到了70年代,集成电路技术的引入极大地降低了计算机生产成本,计算机也从此开始走向千家万户。1972年以后的计算机习惯上被称为第四代计算机。基于大规模集成电路,及后来的超大规模集成电路。1972年4月1日 INTEL推出8008微处理器。1976年Stephen Wozinak和Stephen Jobs创办苹果计算机公司。并推出其Apple I计算机。1977年5月Apple II型计算机发布。1979年6月1日INTEL发布了8位元的8088微处理器。
1982年,微电脑开始普及,大量进入学校和家庭。1982年1月Commodore 64计算机发布,价格:595美元。 1982 年2月80286发布。时钟频率提高到20MHz,并增加了保护模式,可访问16M内存。支持1GB以上的虚拟内存。每秒执行270万条指令,集成了134000个晶体管。
1990年11月: 第一代MPC (多媒体个人电脑标准)发布。处理器至少80286/12MHz,后来增加到80386SX/16 MHz ,及一个光驱,至少150 KB/sec的传输率。1994年10月10日 Intel 发布75 MHz Pentium处理器。1995年11月1日Pentium Pro发布。主频可达200 MHz ,每秒钟完成4.4亿条指令,集成了550万个晶体管。1997年1月8日Intel发布Pentium MMX。对游戏和多媒体功能进行了增强。
此后计算机的变化日新月异,1965年发表的摩尔定律发表不断被应证,预测在未来10~15年仍依然适用。
计算机发展历程 :
19世纪之前
一、机械计算机时代的拓荒者
在西欧,由中世纪进入文艺复兴时期的社会大变革,大大促进了自然科学技术的发展,人们长期被神权压抑的创造力得到空前释放。其中制造一台能帮助人进行计算的机器,就是最耀眼的思想火花之一。从那时起,一个又一个科学家为把这一思想火花变成引导人类进入自由王国的火炬而不懈努力。但限于当时的科技总体水平,大都失败了,这就是拓荒者的共同命运:往往见不到丰硕的果实。后人在享用这甜美的时候,应该能从中品出一些汗水与泪水的滋味……
1614: 苏格兰人John Napier (1550-1617)发表了一篇论文,其中提到他发明了一种可以计算四则运算和方根运算的精巧装置。
1623: Wilhelm Schickard (1592-1635)制作了一个能进行六位以内数加减法,并能通过铃声输出答案的'计算钟'。通过转动齿轮来进行操作。
1625: William Oughtred (1575-1660) 发明计算尺
1642: 法国数学家Pascal 在WILLIAM Oughtred计算尺的基础上将计算尺加以改进,能进行八位计算。并且还卖出了许多,成为一种时髦的商品。
1668: 英国人Samuel Morl和 (1625-1695)制作了一个非十进制的加法装置,适宜计算钱币。
1671: 德国数学家Gottfried Leibniz设计了一架可以进行乘法,最终答案可以最大达到16位。
1775: 英国Charles制作成功了一台与 Leibniz's 的计算机类似的机器。但更先进一些。
1776: 德国人Mathieus Hahn成功的制作了一台乘法器。
1801: Joseph-Maire Jacuard 开发了一台能用穿孔卡片控制的自动织布机。
1820: 法国人Charles Xavier Thomas de Colmar (1785-1870),制作成功第一台成品计算机,非常的可靠,可以放在桌面上,在后来的90多年间一直在市场上出售。
1822: 英国人Charles Babbage (1792-1871)设计了差分机和分析机,其中设计的理论非常的超前,类似于百年后的电子计算机,特别是利用卡片输入程序和数据的设计被后人所采用。
1832: Babbage 和Joseph Clement 制成了一个差分机的成品,开始可以进行6位数的运算。后来发展到20位、30位,尺寸将近一个房子那么大。结果以穿孔的形式输出。但限于当时的制造技术,他们的设计难以制成。
1834: 斯德哥尔摩的George Scheutz用木头做了一台差分机。
1834: Babbage 设想制造一台通用的分析机,在只读存储器(穿孔卡片)中存储程序和数据,Babbage在以后的时间继续他的研究工作,并于1840年将操作数提高到了40位,并基本实现了控制中心(CPU)和存储程序的设想,而且程序可以根据条件进行跳转,能在几秒内作出一般的加法,几分钟内作出乘除法。
1842: Babbage的差分机项目因为研制费用昂贵,被政府取消。但他自己仍花费大量的时间和精力于他的分析机研究。
1843: Scheutz 和他的儿子Edvard Scheutz 制造了一台差分机,瑞典政府同意继续支持他们的研究工作。
1847: Babbage 花两年时间设计了一台较简易的、31位的差分机,但没有人感兴趣并支持他造出这台机器。但后来伦敦科学博物馆用现代技术复制出这台机器后发现,它确实能准确的工作。
1848: 英国数学家George Boole创立二进制代数学。提前差不多一个世纪为现代二进制计算机铺平了道路。
1853: 令Babbage感到高兴的是,Scheutzes制造成功了真正意义上的比例差分机,能进行15位数的运算。象Babbage所设想的那样输出结果。后来伦敦的Brian Donkin又造出了更可靠的第二台。
1858: 第一台制表机被Albany的Dudley天文台买走。第二台被英国政府买走。但天文台并没有将其充分利用,后来被送进了博物馆。而第二台却被幸运的使用了很长时间。
1871: Babbage 制造了分析机的部分部件和印表机。
1878: 纽约的西班牙人Ramon Verea,制造成功桌面计算器。比前面提到的都要快。但他对将其推向市场不感兴趣,只是想表明,西班牙人可以比美国人做的更好。
1879: 一个调查委员会开始研究分析机是否可行,最后他们的结论是:分析机根本不可能工作。此时Babbage 已经去世了。调查之后,人们将他的分析机彻底遗忘了。但Howard Aiken 例外。
1885: 这时期更多的计算机涌现出来。如美国、俄国、瑞典等。他们开始用有槽的圆柱代替易出故障的齿轮。
1886: 芝加哥的Dorr E. Felt (1862-1930), 制造了第一台用按键操作的计算器,而且速度非常快,按键抬起,结果也就出来了。
1889: Felt推出桌面印表计算器。
1890: 1890美国人口普查。1880年的普查人工用了7年的时间进行统计。这意味着1890年的统计将会超过10年。美国人口普查部门希望能得到一台机器帮助提高普查的效率。Herman Hollerith,建立制表机公司的那个人,后来他的公司发展成了IBM公司。借鉴了Babbage的发明,用穿孔卡片存储数据,并设计了机器。结果仅仅用了6个周就得出了准确的数据(62622250人)。Herman Hollerith大发其财。
1892: 圣多美和普林西比的William S. Burroughs (1857-1898),制作成功了一台比Felt的功能更强的机器,真正开创了办公自动化工业。
1896: Herman Hollerith创办了IBM公司的前身。1900~1910
1906: Henry Babbage, Charles Babbage 的儿子,在R. W. Munro的支持下,完成了父亲设计的分析机,但也仅能证明它能工作,而没有将其作为产品推出。
二、电子计算机最初的日子里
在这之前的计算机,都是基于机械运行方式,尽管有个别产品开始引入一些电学内容,却都是从属与机械的,还没有进入计算机的灵活:逻辑运算领域。而在这之后,随着电子技术的飞速发展,计算机就开始了由机械向电子时代的过渡,电子越来越成为计算机的主体,机械越来越成为从属,二者的地位发生了变化,计算机也开始了质的转变。下面就是这一过渡时期的主要事件:
1906: 美国的Lee De Forest发明了电子管。在这之前造出数字电子计算机是不可能的。这为电子计算机的发展奠定了基础。
1920~1930
1924年2月:IBM,一个具有划时代意义的公司成立
1930~1940
1935: IBM推出IBM 601机。这是一台能在一秒钟算出乘法的穿孔卡片计算机。这台机器无论在自然科学还是在商业意义上都具有重要的地位。大约造了1500台。
1937: 英国剑桥大学的Alan M. Turing (1912-1954)出版了他的论文,并提出了被后人称之为'图灵机'的数学模型。
1937: BELL试验室的George Stibitz展示了用继电器表示二进制的装置。尽管仅仅是个展示品,但却是第一台二进制电子计算机。
1938: Claude E. Shannon 发表了用继电器进行逻辑表示的论文。
1938: 柏林的Konrad Zuse 和他的助手们完成了一个机械可编程二进制形式的计算机,其理论基础是Boolean代数。后来命名为Z1。它的功能比较强大,用类似电影胶片的东西作为存储介质。可以运算七位指数和16位小数。可以用一个键盘输入数字,用灯泡显示结果。
1939 1月1日: 加利福尼亚的David Hewlet和William Packard 在他们的车库里造出了Hewlett-Packard计算机。名字是两人用投硬币的方式决定的。包括两人名字的一部分。
1939年11月: 美国John V. Atanasoff和他的学生Clifford Berry 完成了一台16位的加法器,这是第一台真空管计算机。
1939: 二次世界大战的开始,军事需要大大促进了计算机技术的发展。
1939: Zuse和Schreyer 开始在他们的Z1计算机的基础上发展Z2计算机。并用继电器改进它的存储和计算单元。但这个项目因为Zuse服兵役被中断了一年。
1939/1940: Schreyer利用真空管完成了一个10位的加法器,并使用了氖灯做存储装置。
1940~1950
1940年1月: Bell实验室的Samuel Williams和Stibitz制造成功了一个能进行复杂运算的计算机。大量使用了继电器,并借鉴了一些电话技术, 采用了先进的编码技术。
1941夏季: Atanasoff和学生Berry完成了能解线性代数方程的计算机,取名叫'ABC'(Atanasoff-Berry Computer),用电容作存储器,用穿孔卡片作辅助存储器,那些孔实际上是'烧'上的。时钟频率是60HZ,完成一次加法运算用时一秒。
1941年12月: 德国Zuse制作完成了Z3计算机的研制。这是第一台可编程的电子计算机。可处理7位指数、14位小数。使用了大量的真空管。每秒种能作3到4次加法运算。一次乘法需要3到5秒。
1943: 1943年到1959年时期的计算机通常被称作第一代计算机。使用真空管,所有的程序都是用机器码编写,使用穿孔卡片。典型的机器就是: UNIVAC。
1943年1月: Mark I,自动顺序控制计算机在美国研制成功。整个机器有51英尺长,重5吨,75万个零部件,使用了3304个继电器,60个开关作为机械只读存储器。程序存储在纸带上,数据可以来自纸带或卡片阅读器。被用来为美国海军计算弹道火力表。
1943年4月: Max Newman、Wynn-Williams和他们的研究小组研制成功'Heath Robinson',这是一台密码破译机,严格说不是一台计算机。但是其使用了一些逻辑部件和真空管,其光学装置每秒钟能读入2000个字符。同样具有划时代的意义。
1943年9月 : Williams和Stibitz完成了'Relay Interpolator',后来命名为'Model II Relay Calculator'。这是一台可编程计算机。同样使用纸带输入程序和数据。其运行更可靠,每个数用7个继电器表示,可进行浮点运算。
1943年12月: 最早的可编程计算机在英国推出,包括2400个真空管,目的是为了破译德国的密码,每秒能翻译大约5000个字符,但使用完后不久就遭到了毁坏。据说是因为在翻译俄语的时候出现了错误。
1946: ENIAC (Electronic Numerical Integrator 和 Computer): 第一台真正意义上的数字电子计算机。开始研制于1943年,完成于1946年。负责人是John W. Mauchly和J. Presper Eckert。重30吨,18000个电子管,功率25千瓦。主要用于计算弹道和氢弹的研制。
三、晶体管计算机的发展
真空管时代的计算机尽管已经步入了现代计算机的范畴,但其体积之大、能耗之高、故障之多、价格之贵大大制约了它的普及应用。直到晶体管被发明出来,电子计算机才找到了腾飞的起点,一发而不可收……
1947: Bell实验室的William B. Shockley、 John Bardeen和Walter H. Brattain.发明了晶体管,开辟了电子时代新纪元。
1949: EDSAC:剑桥大学的Wilkes和他的小组建成了一台存储程序的计算机。输入输出设备仍是纸带。
1949: EDVAC (electronic discrete variable computer):第一台使用磁带的计算机。这是一个突破,可以多次在其上存储程序。这台机器是John von Neumann提议建造的。
1949: '未来的计算机不会超过1.5吨。'这是当时科学杂志的大胆预测。
1950~1960
1950: 软磁盘由东京帝国大学的Yoshiro Nakamats发明。其销售权由IBM公司获得。开创存储时代新纪元。
1950: 英国数学家和计算机先驱Alan Turing说:计算机将会具有人的智慧,如果一个人和一台机器对话,对于提出和回答的问题,这个人不能区别到底对话的是机器还是人,那么这台机器就具有了人的智能。
1951: Grace Murray Hopper完成了高级语言编译器。
1951: Whirlwind:美国空军的第一个计算机控制实时防御系统研制完成。
1951: UNIVAC-1:第一台商用计算机系统。设计者:J. Presper Eckert 和John Mauchly。被美国人口普查部门用于人口普查,标志着计算机的应用进入了一个新的、商业应用的时代。
1952: EDVAC (Electronic Discrete Variable Computer):由Von Neumann领导设计并完成。取名:电子离散变量计算机。
1953: 此时世界上大约有100台计算机在运转。
1953: 磁芯存储器被开发出来。
1954: IBM的John Backus和他的研究小组开始开发 FORTRAN (FORmula TRANslation),1957年完成。是一种适合科学研究使用的计算机高级语言。
1956: 第一次有关人工智能的会议在Dartmouth 学院召开。
1957: IBM开发成功第一台点阵打印机。
1957: FORTRAN 高级语言开发成功。
四、集成电路,现代计算机插上腾飞的翅膀
尽管晶体管的采用大大缩小了计算机的体积、降低了其价格,减少了故障。但离人们的要求仍差很远,而且各行业对计算机也产生了较大的需求,生产更能更强、更轻便、更便宜的机器成了当务之急,而集成电路的发明正如"及时雨",当春乃发生。其高度的集成性,不仅仅使体积得以减小,更使速度加快,故障减少。人们开始制造革命性的微处理器。计算机技术经过多年的积累,终于驶上了用硅铺就的高速公路。
1958年9月12日: 在Robert Noyce(INTEL公司的创始人)的领导下,发明了集成电路。不久又推出了微处理器。但因为在发明微处理器时借鉴了日本公司的技术,所以日本对其专利不承认,因为日本没有得到应有的利益。过了30年,日本才承认,这样日本公司可以从中得到一部分利润了。但到2001年,这个专利也就失效了。
1959: 1959年到1964年间设计的计算机一般被称为第二代计算机。大量采用了晶体管和印刷电路。计算机体积不断缩小,功能不断增强,可以运行FORTRAN和COBOL ,接收英文字符命令。出现大量应用软件。
1959: Grace Murray Hopper开始开发COBOL (COmmon Business-Orientated Language)语言,完成于1961年。
1960~1970
1960: ALGOL:第一个结构化程序设计语言推出。
1961: IBM的Kennth Iverson推出APL编程语言。
1963: PDP-8:DEC公司推出第一台小型计算机。
1964: 1964年到1972年的计算机一般被称为第三代计算机。大量使用集成电路,典型的机型是IBM360系列。
1964: IBM发布PL/1编程语言。
1964: 发布IBM 360首套系列兼容机。
1964: DEC发布PDB-8 小型计算机。
1965: 摩尔定律发表,处理器的性能每年提高一倍。后来其内容又发生了改变。
1965: Lofti Zadeh创立模糊逻辑,用来处理近似值问题。
1965: Thomas E. Kurtz和John Kemeny完成BASIC(Beginners All Purpose Symbolic Instruction Code)语言的开发。特别适合计算机教育和初学者使用,得到了广泛的推广。
1965: Douglas Englebart 提出鼠标器的设想,但没有进一步的研究。直到1983年被苹果电脑公司大量采用。
1965: 第一台超级计算机CD6600开发成功。
1967: Niklaus Wirth开始开发PASCAL语言,1971年完成。
1968: Robert Noyce和他的几个朋友创办了INTEL公司。
1968: Seymour Paper和他的研究小组在MIT开发了LOGO语言。
1969: ARPANET计划开始启动,这是现代INTERNET的雏形。
1969 年4月7日: 第一个网络协议标准RFC推出。
1969: EIA (Electronic Industries Associa
1970~1980
1970: 第一块RAM芯片由INTEL推出,容量1K。
1970: Ken Thomson和Dennis Ritchie开始开发UNIX操作系统。
1970: Forth编程语言开发完成。
1970: Internet的雏形ARPAnet (Advanced Research Projects Agency network) 基本完成。开始向非军用部门开放,许多大学和商业部门开始接入。
1971年11月15日: Marcian E. Hoff在INTEL公司开发成功第一块微处理器4004,含2300个晶体管,是个4位系统,时钟频率108KHz ,每秒执行6万条指令。
在后来的日子里,处理器发展主要指标一览:
处理器 主频 每秒百万条指令
4004 108 KHz 0.06
8080 2MHz 0.5
68000 8MHz 0.7
8086 8MHz 0.8
68000 16 MHz 1.3
68020 16 MHz 2.6
80286 12MHz 2.7
68030 16MHz 3.9
386 SX 20 MHz 6
68030 25 MHz 6.3
68030 40MHz 10
386 DX 33MHz 10
486 DX 25MHz 20
486 DX2-50 50MHz 35
486 DX4/100 100MHz 60
Pentium 66MHz 100
Pentium 133MHz 240
Pentium 233MHz MMX 435
Pentium Pro 200 MHz 440
Pentium II 233MHz 560
Pentium II 333MHz 770
1971: PASCAL语言开发完成。
1972: 1972年以后的计算机习惯上被称为第四代计算机。基于大规模集成电路,及后来的超大规模集成电路。计算机功能更强,体积更小。人们开始怀疑计算机能否继续缩小,特别是发热量问题能否解决?人们开始探讨第五代计算机的开发。
1972: C语言的开发完成。其主要设计者是UNIX系统的开发者之一 Dennis Ritche。这是一个非常强大的语言,开发系统软件,特别受人喜爱。
1972: Hewlett-Packard发明了第一个手持计算器。
1972年4月1日: INTEL推出8008微处理器。
1972: ARPANET开始走向世界,INTERNET革命拉开序幕。
1973: 街机游戏Pong发布,得到广泛的欢迎。发明者Nolan Bushnell ,后来Atari 的创立者。
1974: 第一个具有并行计算机体系结构的CLIP-4推出。
五、计算机技术渐入辉煌
在这之前,计算机技术主要集中在大型机和小型机领域发展,但随着超大规模集成电路和微处理器技术的进步,计算机进入寻常百姓家的技术障碍已层层突破。特别是从INTEL发布其面向个人机的微处理器8080之后,这一浪潮便汹涌澎湃起来,同时也涌现了一大批信息时代的弄潮儿,如乔布斯、比尔.盖茨等,至今他们对计算机产业的发展还起着举足轻重的作用。在此时段,互联网技术、多媒体技术也得到了空前的发展,计算机真正开始改变人们的生活。
1974年4月1日: INTEL发布其8位的微处理器芯片8080。
1974年12月: MITS发布Altair 8800,第一台商用个人计算机,价值397美元,内存有256个字节。
1975: Bill Gates和Paul Allen完成了第一个在MITS 的Altair计算机上运行的BASIC程序。
1975: IBM公司介绍了他的激光打印机技术。1988年向市场推出其彩色激光打印机。
1975: Bill Gates和Paul Allen创办Microsoft公司。现在成为最大、最成功的软件公司。三年后就收入50万美元,增加到15个人。1992年达28亿美元,1万名雇员。其最大的突破性发展是在1981年为IBM 的PC机开发操作系统,从此后便开始了对计算机业的巨大影响。
1975: IBM 5100发布。
1976: Stephen Wozinak和Stephen Jobs创办苹果计算机公司。并推出其Apple I 计算机。
1976: Zilog推出Z80处理器。8位微处理器。 CP/M就是面向其开发的操作系统。许多著名的软件如:Wordstar 和dBase II基于此款处理器。
1976: 6502, 8 位微处理器发布,专为Apple II计算机使用。
1976: Cray 1,第一台商用超级计算机。集成了20万个晶体管,每秒进行1.5亿次浮点运算。
1977年5月: Apple II 型计算机发布。
1978: Commodore Pet发布:有 8K RAM,盒式磁带机,9英寸显示器。
1978年6月8日: INTEL发布其16位微处理器8086。但因其非常昂贵,又推出8位的8088满足市场对低价处理器的需要,并被IBM的第一代PC机所采用。其可用的时钟频率为4.77、8、10MHz。大约有300条指令,集成了29000更晶体管。
1979: 街机游戏'太空入侵者'发布,引起轰动。很快便使得类似的游戏机大规模流行起来,其收入超过了美国电影业。
1979: Jean Ichbiah 开发完成Ada计算机语言。
1979年6月1日: INTEL发布了8位的8088微处理器,纯粹为了迎合低价电脑的需要。
1979: Commodore PET 发布了采用1MHz的6502处理器,单色显示器、8K内存的计算机,并且可以根据需要购买更多的内存扩充。
1979: 发明了低密盘。
1979: Motorola公司发布68000微处理器。主要供应Apple公司的Macintosh ,后继产品68020用在Macintosh II机型上。
1979: IBM公司眼看着个人计算机市场被苹果等电脑公司占有,决定也开发自己的个人计算机,为了尽快的推出自己的产品,他们大量的工作是与第三方合作,其中微软公司就承担了其操作系统的开发工作。很快他们便在1981年8月12日推出了IBM-PC。但同时也为微软后来的崛起,施足了肥料。
1980~1990
1980:"只要有1兆内存就足够DOS尽情表演了"。微软公司开发DOS初期时说。今天来听这句话有何感想呢?
1980年10月: MS-DOS/PC-DOS开发工作开始了。但微软并没有自己独立的操作系统,他们买来别人的操作系统并加以改进。但IBM测试时竟发现有300个BUG。于是他们又继续改进,最初的DOS1.0有4000行汇编程序。
1981: Xerox开始致力于图形用户界面、图标、菜单和定位设备(如鼠标)的研制。结果研究成果为苹果所借鉴。而苹果电脑公司后来又指控微软剽窃了他们的设计,开发了WINDOWS系列软件。
1981: INTEL发布的80186/80188芯片,很少被人使用,因为其寄存器等与其他不兼容。但其采用了直接存储器访问技术和时间片分时技术。
1981年8月12日: IBM发布其个人计算机,售价2880美元。该机有64K内存、单色显示器、可选的盒式磁带驱动器、两个160KB单面
原理个人电脑的主要结构:
显示器
主板
CPU(中央处理器)
主要储存器 (内存)
扩充卡
电源供应器
光驱
次要储存器 (硬盘)
键盘
鼠标
尽管计算机技术自20世纪40年代第一台电子通用计算机诞生以来以来有了令人目眩的飞速发展,但是今天计算机仍然基本上采用的是存储程序结构,即冯·诺伊曼结构。这个结构实现了实用化的通用计算机。
存储程序结构间将一台计算机描述成四个主要部分:算术逻辑单元(ALU),控制电路,存储器,以及输入输出设备(I/O)。这些部件通过一组一组的排线连接(特别地,当一组线被用于多种不同意图的数据传输时又被称为总线),并且由一个时钟来驱动(当然某些其他事件也可能驱动控制电路)。
概念上讲,一部计算机的存储器可以被视为一组“细胞”单元。每一个“细胞”都有一个编号,称为地址;又都可以存储一个较小的定长信息。这个信息既可以是指令(告诉计算机去做什么),也可以是数据(指令的处理对象)。原则上,每一个“细胞”都是可以存储二者之任一的。
算术逻辑单元(ALU)可以被称作计算机的大脑。它可以做两类运算:第一类是算术运算,比如对两个数字进行加减法。算术运算部件的功能在ALU中是十分有限的,事实上,一些ALU根本不支持电路级的乘法和除法运算(由是使用者只能通过编程进行乘除法运算)。第二类是比较运算,即给定两个数,ALU对其进行比较以确定哪个更大一些。
输入输出系统是计算机从外部世界接收信息和向外部世界反馈运算结果的手段。对于一台标准的个人电脑,输入设备主要有键盘和鼠标,输出设备则是显示器,打印机以及其他许多后文将要讨论的可连接到计算机上的I/O设备。
控制系统将以上计算机各部分联系起来。它的功能是从存储器和输入输出设备中读取指令和数据,对指令进行解码,并向ALU交付符合指令要求的正确输入,告知ALU对这些数据做哪些运算并将结果数据返回到何处。控制系统中一个重要组件就是一个用来保持跟踪当前指令所在地址的计数器。通常这个计数器随着指令的执行而累加,但有时如果指令指示进行跳转则不依此规则。
20世纪80年代以来ALU和控制单元(二者合成中央处理器,CPU)逐渐被整合到一块集成电路上,称作微处理器。这类计算机的工作模式十分直观:在一个时钟周期内,计算机先从存储器中获取指令和数据,然后执行指令,存储数据,再获取下一条指令。这个过程被反复执行,直至得到一个终止指令。
由控制器解释,运算器执行的指令集是一个精心定义的数目十分有限的简单指令集合。一般可以分为四类:1)、数据移动(如:将一个数值从存储单元A拷贝到存储单元B)2)、数逻运算(如:计算存储单元A与存储单元B之和,结果返回存储单元C)3)、条件验证(如:如果存储单元A内数值为100,则下一条指令地址为存储单元F)4)、指令序列改易(如:下一条指令地址为存储单元F)
指令如同数据一样在计算机内部是以二进制来表示的。比如说,10110000就是一条Intel x86系列微处理器的拷贝指令代码。某一个计算机所支持的指令集就是该计算机的机器语言。因此,使用流行的机器语言将会使既成软件在一台新计算机上运行得更加容易。所以对于那些机型商业化软件开发的人来说,它们通常只会关注一种或几种不同的机器语言。
更加强大的小型计算机,大型计算机和服务器可能会与上述计算机有所不同。它们通常将任务分担给不同的CPU来执行。今天,微处理器和多核个人电脑也在朝这个方向发展。
超级计算机通常有着与基本的存储程序计算机显著区别的体系结构。它们通常有着数以千计的CPU,不过这些设计似乎只对特定任务有用。在各种计算机中,还有一些微控制器采用令程序和数据分离的哈佛架构(Harvard architecture)。
计算机的数字电路实现以上所说的这些概念性设计的物理实现是多种多样的。如同我们前述所及,一台存储程序式计算机既可以是巴比奇的机械式的,也可以是基于数字电子的。但是,数字电路可以通过诸如继电器之类的电子控制开关来实现使用2进制数的算术和逻辑运算。香农的论文正是向我们展示了如何排列继电器来组成能够实现简单布尔运算的逻辑门。其他一些学者很快指出使用真空管可以代替继电器电路。真空管最初被用作无线电电路中的放大器,之后便开始被越来越多地用作数字电子电路中的快速开关。当电子管的一个针脚被通电后,电流就可以在另外两端间自由通过。
通过逻辑门的排列组合我们可以设计完成很多复杂的任务。举例而言,加法器就是其中之一。该器件在电子领域实现了两个数相加并将结果保存下来—在计算机科学中这样一个通过一组运算来实现某个特定意图的方法被称做一个算法。最终,人们通过数量可观的逻辑门电路组装成功了完整的ALU和控制器。说它数量可观,只需看一下CSIRAC这台可能是最小的实用化电子管计算机。该机含有2000个电子管,其中还有不少是双用器件,也即是说总计合有2000到4000个逻辑器件。
真空管对于制造规模庞大的门电路明显力不从心。昂贵,不稳(尤其是数量多时),臃肿,能耗高,并且速度也不够快—尽管远超机械开关电路。这一切导致20世纪60年代它们被晶体管取代。后者体积更小,易于操作,可靠性高,更省能耗,同时成本也更低。
集成电路是现今电子计算机的基础20世纪60年代后,晶体管开始逐渐为将大量晶体管、其他各种电器元件和连接导线安置在一片硅板上的集成电路所取代。70年代,ALU和控制器作为组成CPU的两大部分,开始被集成到一块芯片上,并称为“微处理器”。沿着集成电路的发展史,可以看到一片芯片上所集成器件的数量有了飞速增长。第一块集成电路只不过包含几十个部件,而到了2006年,一块Intel Core Duo处理器上的晶体管数目高达一亿五千一百万之巨。
无论是电子管,晶体管还是集成电路,它们都可以通过使用一种触发器设计机制来用作存储程序体系结构中的“存储”部件。而事实上触发器的确被用作小规模的超高速存储。但是,几乎没有任何计算机设计使用触发器来进行大规模数据存储。最早的计算机是使用Williams电子管向一个电视屏或若干条水银延迟线(声波通过这种线时的走行速度极为缓慢足够被认为是“存储”在了上面)发射电子束然后再来读取的方式来存储数据的。当然,这些尽管有效却不怎么优雅的方法最终还是被磁性存储取而代之。比如说磁芯存储器,代表信息的电流可在其中的铁质材料内制造恒久的弱磁场,当这个磁场再被读出时就实现了数据恢复。动态随机存储器(DRAM)亦被发明出来。它是一个包含大量电容的集成电路,而这些电容器件正是负责存储数据电荷—电荷的强度则被定义为数据的值。
输入输出设备输入输出设备(I/O)是对将外部世界信息发送给计算机的设备和将处理结果返回给外部世界的设备的总称。这些返回结果可能是作为使用者能够视觉上体验的,或是作为该计算机所控制的其他设备的输入:对于一台机器人,控制计算机的输出基本上就是这台机器人本身,如做出各种行为。
第一代计算机的输入输出设备种类非常有限。通常的输入用设备是打孔卡片的读卡机,用来将指令和数据导入内存;而用于存储结果的输出设备则一般是磁带。随着科技的进步,输入输出设备的丰富性得到提高。以个人计算机为例:键盘和鼠标是用户向计算机直接输入信息的主要工具,而显示器、打印机、扩音器、耳机则返回处理结果。此外还有许多输入设备可以接受其他不同种类的信息,如数码相机可以输入图像。在输入输出设备中,有两类很值得注意:第一类是二级存储设备,如硬盘,光碟或其他速度缓慢但拥有很高容量的设备。第二个是计算机网络访问设备,通过他们而实现的计算机间直接数据传送极大地提升了计算机的价值。今天,国际互联网成就了数以千万计的计算机彼此间传送各种类型的数据。
程序简单说,计算机程序就是计算机执行指令的一个序列。它既可以只是几条执行某个简单任务的指令,也可能是可能要操作巨大数据量的复杂指令队列。许多计算机程序包含有百万计的指令,而其中很多指令可能被反复执行。在2005年,一台典型的个人电脑可以每秒执行大约30亿条指令。计算机通常并不会执行一些很复杂的指令来获得额外的机能,更多地它们是在按照程序员的排列来运行那些较简单但为数众多的短指令。
一般情况下,程序员们是不会直接用机器语言来为计算机写入指令的。那么做的结果只能是费时费力、效率低下而且漏洞百出。所以,程序员一般通过“高级”一些的语言来写程序,然后再由某些特别的计算机程序,如解释器或编译器将之翻译成机器语言。一些编程语言看起来很接近机器语言,如汇编程序,被认为是低级语言。而另一些语言,如即如抽象原则的Prolog,则完全无视计算机实际运行的操作细节,可谓是高级语言。对于一项特定任务,应该根据其事务特点,程序员技能,可用工具和客户需求来选择相应的语言,其中又以客户需求最为重要(美国和中国军队的工程项目通常被要求使用Ada语言)。
计算机软件是与计算机程序并不相等的另一个词汇。计算机软件一个较为包容性较强的技术术语,它包含了用于完成任务的各种程序以及所有相关材料。举例说,一个视频游戏不但只包含程序本身,也包括图片、声音以及其他创造虚拟游戏环境的数据内容。在零售市场,在一台计算机上的某个应用程序只是一个面向大量用户的软件的一个副本。这里老生常谈的例子当然还是微软的office软件组,它包括一些列互相关联的、面向一般办公需求的程序。
利用那些极其简单的机器语言指令来实现无数功能强大的应用软件意味着其编程规模注定不小。Windows XP这个操作系统程序包含的C++高级语言源代码达到了4000万行。当然这还不是最大的。如此庞大的软件规模也显示了管理在开发过程中的重要性。实际编程时,程序会被细分到每一个程序员都可以在一个可接受的时长内完成的规模。
即便如此,软件开发的过程仍然进程缓慢,不可预见且遗漏多多。应运而生的软件工程学就重点面向如何加快作业进度和提高效率与质量。
函数库与操作系统在计算机诞生后不久,人们发现某些特定作业在许多不同的程序中都要被实施,比如说计算某些标准数学函数。出于效率考量,这些程序的标准版本就被收集到一个“库”中以供各程序调用。许多任务经常要去额外处理种类繁多的输入输出接口,这时,用于连接的库就能派上用场。
20世纪60年代,随着计算机工业化普及,计算机越来越多地被用作一个组织内不同作业的处理。很快,能够自动安排作业时续和执行的特殊软件出现了。这些既控制硬件又负责作业时序安排的软件被称为“操作系统”。一个早期操作系统的例子是IBM的OS/360。
在不断地完善中,操作系统又引入了时间共享机制——并发。这使得多个不同用户可以“同时”地使用机器执行他们自己的程序,看起来就像是每个人都有一台自己的计算机。为此,操作系统需要像每个用户提供一台“虚拟机”来分离各个不同的程序。由于需要操作系统控制的设备也在不断增加,其中之一便是硬盘。因之,操作系统又引入了文件管理和目录管理(文件夹),大大简化了这类永久储存性设备的应用。此外,操作系统也负责安全控制,确保用户只能访问那些已获得允许的文件。
当然,到目前为止操作系统发展历程中最后一个重要步骤就是为程序提供标准图形用户界面(GUI)。尽管没有什么技术原因表明操作系统必须得提供这些界面,但操作系统供应商们总是希望并鼓励那些运行在其系统上的软件能够在外观和行为特征上与操作系统保持一致或相似。
除了以上这些核心功能,操作系统还封装了一系列其他常用工具。其中一些虽然对计算机管理并无重大意义,但是于用户而言很是有用。比如,苹果公司的Mac OS X就包含视频剪辑应用程序。
一些用于更小规模的计算机的操作系统可能没用如此众多的功能。早期的微型计算机由于记忆体和处理能力有限而不会提供额外功能,而嵌入式计算机则使用特定化了的操作系统或者干脆没有,它们往往通过应用程序直接代理操作系统的某些功能。
应用由电脑控制的机械在工业中十分常见
很多现代大量生产的玩具,如Furby,是不能没有便宜的嵌入式处理器
起初,体积庞大而价格昂贵的数字计算机主要是用做执行科学计算,特别是军用课题。如ENIAC最早就是被用作火炮弹道计算和设计氢弹时计算断面中子密度的(如今许多超级计算机仍然在模拟核试验方面发挥着巨大作用)。澳大利亚设计的首台存储程序计算机CSIR Mk I型负责对水电工程中的集水地带的降雨情形进行评估。还有一些被用于解密,比如英国的“巨像”可编程计算机。除去这些早年的科学或军工应用,计算机在其他领域的推广亦十分迅速。
从一开始,存储程序计算机就与商业问题的解决息息相关。早在IBM的第一台商用计算机诞生之前,英国J. Lyons等就设计制造了LEO以进行资产管理或迎合其他商业用途。由于持续的体积与成本控制,计算机开始向更小型的组织内普及。加之20世纪70年代微处理器的发明,廉价计算机成为了现实。80年代,个人计算机全面流行,电子文档写作与印刷,计算预算和其他重复性的报表作业越来越多地开始依赖计算机。
随着计算机便宜起来,创作性的艺术工作也开始使用它们。人们利用合成器,计算机图形和动画来创作和修改声音,图像,视频。视频游戏的产业化也说明了计算机在娱乐方面也开创了新的历史。
计算机小型化以来,机械设备的控制也开始仰仗计算机的支持。其实,正是当年为了建造足够小的嵌入式计算机来控制阿波罗宇宙飞船才刺激了集成电路技术的跃进。今天想要找一台不被计算机控制的有源机械设备要比找一台哪怕是部分计算机控制的设备要难得多。可能最著名的计算机控制设备要非机器人莫属,这些机器有着或多或少人类的外表和并具备人类行为的某一子集。在批量生产中,工业机器人已是寻常之物。不过,完全的拟人机器人还只是停留在科幻小说或实验室之中。
机器人技术实质上是人工智能领域中的物理表达环节。所谓人工智能是一个定义模糊的概念但是可以肯定的是这门学科试图令计算机拥有目前它们还没有但作为人类却固有的能力。数年以来,不断有许多新方法被开发出来以允许计算机做那些之前被认为只有人才能做的事情。比如读书、下棋。然而,到目前为止,在研制具有人类的一般“整体性”智能的计算机方面,进展仍十分缓慢。
网络、国际互联网20世纪50年代以来计算机开始用作协调来自不同地方之信息的工具,美国军方的贤者系统(SAGE)就是这方面第一个大规模系统。之后“军刀”等一系列特殊用途的商业系统也不断涌现出来。
70年代后,美国各大院校的计算机工程师开始使用电信技术把他们的计算机连接起来。由于这方面的工作得到了ARPA的赞助,其计算机网络也就被称为ARPANET。此后,用于ARPA网的技术快速扩散和进化,这个网络也冲破大学和军队的范围最终形成了今天的国际互联网(Internet)。网络的出现导致了对计算机属性和边界的再定义。太阳微系统公司的John Gage 和 Bill Joy就指出:“网络即是计算机”。计算机操作系统和应用程序纷纷向能访问诸如网内其它计算机等网络资源的方向发展。最初这些网络设备仅限于为高端科学工作者所使用,但90年代后随着电子邮件和万维网(World Wide Web)技术的扩散,以及以太网和ADSL等网络连接技术的廉价化,互联网络已变得无所不在。今日入网的计算机总数,何以千万计;无线互联技术的普及,使得互联网在移动计算环境中亦如影随形。比如在笔记本计算机上广泛使用的Wi-Fi技术就是无线上网的代表性应用。
下一代计算机自问世以来数字计算机在速度和能力上有了可观的提升,迄今仍有不少课题显得超出了当前计算机的能力所及。对于其中一部分课题,传统计算机是无论如何也不可能实现的,因为找到一个解决方法的时间还赶不上问题规模的扩展速度。因此,科学家开始将目光转向生物计算机技术和量子理论来解决这一类问题,合成生物学的技术发展,产生了另一类以人工设计细胞内信号传导与基因调控网络来进行数学计算或完成计算机程序化编码细胞行为的生物计算机,也称为“湿”计算机或活体细胞计算机。比如,人们计划用生物性的处理来解决特定问题(DNA计算)。由于细胞分裂的指数级增长方式,DNA计算系统很有可能具备解决同等规模问题的能力。当然,这样一个系统直接受限于可控制的DNA总量。
量子计算机,顾名思义,利用了量子物理世界的超常特性。一旦能够造出量子计算机,那么它在速度上的提升将令一般计算机难以望其项背。当然,这种涉及密码学和量子物理模拟的下一代计算机还只是停留在构想阶段。
计算机学科在当今世界,几乎所有专业都与计算机息息相关。但是,只有某些特定职业和学科才会深入研究计算机本身的制造、编程和使用技术。用来诠释计算机学科内不同研究领域的各个学术名词的涵义不断发生变化,同时新学科也层出不穷。
计算机工程学 是电子工程的一个分支,主要研究计算机软硬件和二者间的彼此联系。
计算机科学是对计算机进行学术研究的传统称谓。主要研究计算技术和执行特定任务的高效算法。该门学科为我们解决确定一个问题在计算机领域内是否可解,如可解其效率如何,以及如何作成更加高效率的程序。时至今日,在计算机科学内已经衍生了许多分支,每一个分支都针对不同类别的问题进行深入研究。
软件工程学着重于研究开发高质量软件系统的方法学和实践方式,并试图压缩并预测开发成本及开发周期。
信息系统研究计算机在一个广泛的有组织环境(商业为主)中的计算机应用。
许多学科都与其他学科相互交织。如地理信息系统专家就是利用计算机技术来管理地理信息。
全球有三个较大规模的致力于计算机科学的组织:英国电脑学会 (BCS);美国计算机协会(ACM);美国电气电子工程师协会(IEEE)。