资讯详情

计算简史:什么是计算机?《禅与计算机程序设计艺术》 / 陈光剑

我们人类一直认为我们可以创造一个世界。

什么是计算机?

计算社会

我们人类已经进入了计算社会。

纵观人类社会的计算历史,从结绳记事中的绳结到计算、计算尺、机械计算机,再到我们今天的电子计算机,也许还有未来的光子计算机、量子计算机等。计算在人类不同的历史时期发挥着各自的历史作用——用马克思的话来说,它提高了生产力。

不知过了多久,很多国家的人开始用筹码来计数,最有名的就是我们中国商周时期出现的计算筹码。古代的算筹实际上是一根长度和厚度相同的小棍子,大约270件作为一束; 竹子多用于木材、兽骨、象牙、金属等材料。计算数学家祖冲之圆周率时使用的工具是计算筹款。计算的缺点:使用计算计算太麻烦,非常不方便——计算时需要慢慢放置。

因此,人们发明了更好的计算工具——算盘。算盘最早可能在汉代萌芽,在南北朝定型,并采用进位制计数。使用时需要配合一套公式——就像计算机软件一样。算盘本身也可以存储数字,使用非常方便。到目前为止,算盘仍在使用中。

轮子的历史

计算机简史

在15世纪,随着天文和航海的发展,计算工作越来越繁重,计算工具迫切需要改进。

1630年,当英国数学家奥特雷德使用当时流行的对数刻度尺进行乘法时,他突然想到,如果他使用两个相互滑动的对数刻度尺,他很快就会节省用两只脚的长度。他的想法导致了机械化计算的诞生,但奥特雷德并不关心这件事,他的发明在200年有被实际应用。

18世纪末,发明蒸汽机的瓦特成功制作了第一个计算尺,并在尺座上添加了一个存储计算的中间滑标,长期以来一直被后代使用。

1850年以后,计算尺发展迅速,成为工程师携带的计算器。直到20世纪56年代,计算尺仍然是工科大学生的身份标志。

1623年,法国数学家帕斯卡出生,三岁失去母亲,由税务官的父亲抚养长大。当帕斯卡还是个孩子的时候,当他看到父亲努力计算税率时,他想帮助父亲做点什么。

帕斯卡在19岁时(1642年)发明了人类历史上第一台机械计算机帕斯卡加法器。它是一种由一系列齿轮组成的装置,看起来像一个长方形的盒子。只有用儿童玩具的钥匙拧紧发条,才能旋转,只能加减。但即使只加法,也有逢十进一的进位问题。智能帕斯卡采用小爪棘轮装置。当定位齿轮向9旋转时,棘爪逐渐上升;一旦齿轮转向0,棘爪就会咔嗒一声下降,推动十位数齿轮向前移动。

帕斯卡于1662年去世。不久之后,德国大数学家莱布尼茨看到了帕斯卡关于加法计算机的论文,引起了他的发明欲望。莱布尼茨早年经历了起起落落,后来有机会去法国。在巴黎,他聘请了一些著名的机械专家和熟练的工匠,最终在1674年制造了一台更完美的机械计算机。

连续重复计算加减法

莱布尼茨发明的新计算机长约1米,内部安装了一系列齿轮机构。除了体积大,基本原理继承在帕斯卡。然而,莱布尼茨技术高超,他为电脑增加了一种叫做步进轮的装置。步进轮是一个有9个齿的长圆柱体,依次分布在圆柱体表面;旁边的另一个小齿轮可以沿轴向移动,以便逐渐与步进轮啮合。每当小齿轮旋转一圈时,步进轮可以根据与小齿轮啮合的齿数分别旋转1/10和2/10圈……,直到9/10圈,它才能连续重复加法。

连续重复的计算加法是现代计算机乘除法的一种方法,莱布尼茨的计算机加减乘除四种计算。

介绍莱布尼茨时还有一个小插曲。(据说大约1700年的某一天,莱布尼茨的朋友给了他一张中国的易图,这实际上是一张八卦图。在观看八卦图时,他发现每个八卦图像都由阴阳符号组成。这不是一个定期的二进制数字吗?因此,他率先提出了二进制的操作规则,直到今天,我们使用的计算机仍然使用二进制。)

提花编织机

到目前为止,计算机仍们仍然在操作机器,人与机器之间的对话还没有实现,或者俱乐部告诉机器人类的想法,这样机器就可以根据人的想法自动执行。说到实现人机对话,我们应该谈谈另一个行业——纺织业。

提花编织机是具有升降纱线的提花装置,是一种能使绸布编织出图案花纹的织布机器。

一开始,编织机编织图案很麻烦。所有的丝绸布料都是用经线(纵线)和纬线(横线)编织的。如果要编织图案,编织者必须根据预先设计的图案在适当的位置提升部分经线,以便滑梭能够牵引不同颜色的纬线通过。当然,机器不可能思考在哪里提线。它只能依靠手提升一条又一条经线,并不厌其烦地重复此操作。

1725 年国纺织机械师布乔发明了穿孔纸带的想法。布乔想出了穿孔纸带的绝妙想法。布乔首先试图用一排编织针控制所有的经络运动,然后取一卷纸带,根据图案打一排小孔,压在编织针上。机器启动后,面对小孔的编织针可以通过去钩住经线,其他的则被纸带挡住。于是,编织针自动按照预先设计的图案去挑选经线,布乔的“思想”“传递”给了编织机,编织图案的“程序”也就“储存”在穿孔纸带的小孔中。

1790年 当时,法国机械师杰卡德基本上形成了改进提花机的想法。由于当时是法国大革命时期,杰卡德没有时间考虑发明和创造,直到1805年才真正完成自动提花编织机的生产。杰卡德为他的提花机增加了一个装置,可以同时操作 1200 编织针,控制图案的穿孔纸带后来换成了穿孔卡。

在电子计算机发展的最初几年,我们可以在许多著名的计算机中找到自动提花机。

18世纪末,法国启动了一项宏大的工程——人工编制数学表由于当时没有先进的计算工具,这项工作极其艰巨。数学界调动了足够的数学家和大量的数学家,形成了人工计算的流水线,大部分手稿都是在黑暗中完成的。即便如此,计算出来的数学表还是有很多错误的。

巴贝奇差分机

巴贝奇在自传《哲学家的人生历程》中写道,大约在1812年,一天晚上,我坐在剑桥大学分析学会办公室,恍惚地低头看着面前打开的对数 手表。一个会员走进房间,看到我的样子,忙着喊道:‘嘿!你梦见了什么?’我指着数表回答:‘我在考虑这些表。 也许可以用机器来计算!

巴贝奇的第一个目标是制造一分机。所谓差分,就是将函数表的复杂算式转化为差分运算,用简单的加法代替平方运算。那一年,刚满20岁的巴贝奇受到法国杰卡德发明的提花编织机的启发,差分机设计闪烁着程序控制的灵感──根据设计师的意愿,自动处理不同函数的计算过程。巴贝奇花了十年时间完成了1822年的第一台差分机。它可以处理3个不同的5位数,计算精度达到6位小数,并立即计算出几个函数表。由于当时工业技术水平极低,从设计绘图到械零件加工,都是巴贝奇亲自动手完成。当他看着自己的机器制作出准确无误的《数学用表》,高兴地对人讲:“哪怕我的机器出了故障,比如齿轮被卡住不能动,那也毫无关系。你看,每个轮子上都有数字标记,它不会欺骗任何人。”以后实际运用证明,这种机器非常适合于编制航海和天文方面的数学用表。

成功后,巴贝奇连夜上书皇家学会,要求政府资助他建造第二台运算精度为20位的大型差分机。政府看到巴贝奇的研究有利可图,破天荒地与科学家签订了第一个合同。

然而,第二台差分机在机械制造工厂里触上了“暗礁”。第二台差分机大约有25000个零件,主要零件的误差不得超过每英寸千分之一,即使用现在的加工设备和技术,要想造出这种高精度的机械也绝非易事。

由于进度缓慢,到1842年的时候,政府宣布停止对巴贝奇的一切资助,连科学界的有人都用一种怪异的目光看他。

然而在这个时候,巴贝奇收到了一封信,写信人不仅对他表示理解而且还希望与他共同工作。娟秀字体的签名表明了她不凡的身份——伯爵夫人。收到信函不久后,写信的女士来到了巴贝奇的实验室,巴贝奇感觉与这位女士似曾相识,却有想不起在哪里见过。直到这位女士说”您还记得我吗?十多年前,您还给我讲过差分机原理。”看到巴贝奇迷惑的眼神,她又笑着补充说:“您说我像野人见到了望远镜。”巴贝奇恍然大悟,想起已经十分遥远的往事。 原来这位女士是大名鼎鼎的英国诗人拜伦之独生女——阿达·奥古斯塔。

在大型差分机进军受挫的1834年,巴贝奇提出了一个更新更大胆的设计——通用的数学计算机。巴贝奇称它为“分析机”,它能够自动解算100个变量的复杂算题,每个数字可以达25位,速度每秒1次。

巴贝奇首先为分析机构思了一种齿轮式的“存贮库”,每一齿轮可贮存10个数,总共能够储存1000个50位数。分析机的第二个部件是所谓“运算室”,其基本原理与帕斯卡的转轮相似,但他改进了进位装置,使得50位数加50位数的运算可完成于一次转轮之中。此外,巴贝奇也构思了送入和取出数据的机构、以及在“存储库”和“运算室”之间运输数据的部件。他甚至还考虑到如何使这台机器处理依条件转移的动作。一个多世纪过去后,现代电脑的结构几乎就是巴贝奇分析机的翻版,只不过它的主要部件被换成了大规模集成电路而已。仅此一说,巴贝奇就当之无愧于计算机系统设计的“开山鼻祖”。

阿达非常准确地评价道:“分析机'编织’的代数模式同杰卡德织布机编织的花叶完全一样”。于是,为分析机编制一批函数计算程序的重担,落她的肩头。阿达开天辟地第一回为计算机编出了程序,其中包括计算三角函数的程序、级数相乘程序、伯努利函数程序等等。阿达编制的这些程序,即使到了今天,电脑软件界的后辈仍然不敢轻易改动一条指令。人们公认她是世界上第一位软件工程师。众所周知,美国国防部据说是花了250亿美元和10年的光阴,把它所需要软件的全部功能混合在一种计算机语言中,希望它能成为军方数千种电脑的标准。1981年,这种语言被正式命名为ADA语言,使阿达的英名流传至今。当然这些都是后话了。

在当时,两人为把分析机的图纸变成现实,耗尽了全部财产,搞得一贫如洗,在此期间,两人为筹措研究经费,两人还商量“下海创收”,比如制作国际象棋玩具、赛马游戏机等等。但这并没有带来什么改变,为此,阿达还两次把丈夫家中的祖传珍宝拿去当铺换钱,不过后来又被阿达的母亲赎了回来。在经历了贫困交加和无休止的脑力劳动,阿达的身体状况急剧恶化,1852年,年仅36岁的阿达怀着对分析机美好的梦想去世了。

阿达去世后,巴贝奇又默默的独自坚持了20年,晚年的他已经不能准确发音 和有条理的表达自己的意思,但仍坚持工作。1871年巴贝奇去世。最终分析机没有被制造出来。巴贝奇和阿达设想的分析机超出了他们所处时代至少一个世纪。

1890年,德国侨民霍列瑞斯博士在美国做人口普查(上一次人口普查人工花了7年),人口普查需要做大量工作,如年龄、性别等用调查表做采集的项目,还要计算每个社区有多少老人、小孩,男人、女人等。霍列瑞斯博士就想用机器自动统计这些数据。几年后

他根据巴贝奇的发明和杰卡德的穿孔纸带设计了机器。结果花了6周就得出了准确的数据。

杰卡德和霍列瑞斯分别用开创了程序设计和数据处理之先河。以历史的目光审视他们的发明,正是这种程序设计和数据处理,构成了电脑“软件”的雏形。

1896年霍列瑞斯博士创办了IBM公司的前身。

到了现在,制造出来的计算机都是机械的,机械计算机向电子计算机发展的过渡时期发生的主要事件。

1906年,美国的德福雷斯特发明了电子管,为计算机的发展奠定了基础。

1907年,德福雷斯特向美国专利局申报了真空三极管(电子管)的发明专利。真空三极管可分别处于“饱和”与“截止”状态。“饱和”即从阴极到屏极的电流完全导通,相当于开关开启;“截止”即从阴极到屏极没有电流流过,相当于开关关闭。其控制速度要比艾肯的继电器快成千上万倍。

1924年,IBM——一个有划时代意义的公司成立了。

1936年,美国青年霍德华·艾肯去哈佛共度物理学博士学位,由于博士论文设计设计空间电荷传导理论,需要计算非常复杂的非线性微分方程。艾肯想发明一种机器代替人工计算,幻想有一台计算机帮他解决数学难题。三年后,艾肯在图书馆里发现了巴贝奇和阿达的论文。 博士毕业后,艾肯进入了美国海军军械局做了一名小小的海军中尉。为了实现计算机的梦想,他想到了IBM。正好艾肯的一位老师正在IBM出资创办的“哥伦比亚大学统计局”里任职,艾肯从这位老师这里听说了IBM董事长沃森的大名。这位老师为艾肯写了一封推荐信。艾肯拿到推荐信后,准备好了一份可行性报告,就去找沃森。沃森听完了艾肯的话以后,直接给艾肯划了100W美元。有了钱,艾肯开始了“MARK I”(马克1号)的研发。马克1号借助电流进行运算,最关键的部件采用继电器组成,马克1号上安装了大约3000个继电器。继电器接通电路表示“1”,继电器断开则表示“0”。继电器能在大约1/100秒内接通或断开电路。为马克1号编制计算程序的也是一位女数学家格雷斯·霍波(G.Hopper)。有一天,她在调试程序时出现了故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波恢谐地把程序故障统称为“臭虫”(bug,现在表示电脑系统或程序中的一些缺陷或问题)

1944年2月,马克1号计算机在哈佛大学正式运行。从外表看,它的外壳用钢和玻璃制成,长约15米,高约2.4米,自重达到31.5吨,他可以每分钟进行200次以上的运算。可以作23位数加23位数的加法,一次仅需要0.3秒;而进行同样位数的乘法,则需要6秒多的时间。

马克1号被称为最后一台“史前”计算机——机械/电动方式。

时间向前一年,也就是1943年,此时正是二战时期,美国为了实验新式火炮,需要计算火炮的弹道表。需要进行大量计算。一张弹道表需要计算近4000条弹道,每条弹道需要计算750此乘法和更多的加减法,工作量巨大。 你可以想象这样一个场景:一发炮弹大出去,100多人用一种手摇计算机算个不停,还经常出错,费力不讨好。当时任职宾夕法尼亚大学莫尔电机工程学院的莫希利(John Mauchly)于 1942年提出了试制第一台电子计算机的初始设想——“高速电子管计算装置的使用”,期望用电子管代替继电器以提高机器的计算速度。

美国军方得知这一设想后,拨款成立了一个以莫希利、埃克特(John Eckert)为首的研制小组。终于在1946年2月14日,世界上第二台电子计算机,世界上第一台通用计算机 (多个行业都可以使用)埃历阿克”(ENIAC,译成中文是“电子数字积分和计算机”)诞生于美国宾夕法尼亚大学。

ENIAC长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元。它包含了17,468根真空管(电子管)7,200根晶体二极管,1,500 个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关。 每秒能进行5000次加法运算(据测算,人最快的运算速度每秒仅 5次加法运算),每秒400次乘法运算,是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。。它还能进行平方和立方运算,计算正弦和余弦等三角函数的值及其它一些更复杂的运算。 以我们的眼光来看,这当然很微不足道。但这在当时可是很了不起的成就!原来需要20多分钟时间才能计算出来的一条弹道,现在只要短短的30秒!

阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,通常简称ABC计算机)在1937年设计,不可编程,仅仅设计用于求解线性方程组,并在1942年成功进行了测试。然而,这台计算机用纸卡片读写器实现的中间结果存储机制是不可靠的。而且,在发明者约翰·文森特·阿塔纳索夫因为二战任务而离开爱荷华州立大学之后,这台计算机的工作就没有继续进行下去。ABC计算机开创了现代计算机的重要元素,包括二进制算术和电子开关。但是因为缺乏通用性、可变性与存储程序的机制,将其与现代计算机区分开来。这台计算机在1990年被认定为IEEE里程碑之一。

阿塔纳索夫和克利福德·贝瑞的计算机工作直到1960年才被发现和广为人知,并且陷入了谁才是第一台计算机的冲突中。那时候,ENIAC普遍被认为是第一台现代意义上的计算机,但是在1973年,美国联邦地方法院注销了ENIAC的专利,并得出结论:ENIAC的发明者从阿塔纳索夫那里继承了电子数字计算机的主要构件思想。因此,ABC被认定为世界上第一台计算机。

埃历阿克虽然威力强大,但是它毕竟还很不完善,比如存在着耗电多、费用高的缺点。它的耗电量超过174千瓦,据说那些年,只要埃历阿克一开动,整个费城城市的所有灯光顿时黯然失色。那些个电子管发光又发热,平均每隔7分钟要损坏一只。虽然当初只花了军械部40万元的研制费用,可谁能料到,维护它的费用后来竟超过200万之巨!埃历阿克最致命的缺点是程序与计算两分离。指挥埃历阿克2万只电子管工作的程序指令,被存放在机器的外部电路里。需要计算某个题目前,埃克特必须分派几十员精兵强将,把数百条线路用手接通,像一群电话接线员那样手忙脚乱地忙活好几天,才能进行几分钟运算。

这时,冯·诺依曼用高超的理论和技术方法,一举攻克了巨大的难关。

冯·诺依曼通用计算机模型

在埃历阿克尚未投入运行前,冯·诺依曼就已开始着手起草一份新的设计报告,要对这台电子计算机进行脱胎换骨的改造。他把新机器的方案命名为 “离散变量自动电子计算机”,英文缩写译音是“埃德瓦克”(EDVAC)。

1946年冯·诺依曼于提出通用计算机模型,由运算器、控制器、存储器、输入设备、输出设备组成:

运算器:简单的来说可以做些加减乘除的运算,还有逻辑运算,是CPU来实现此功能的

控制器:协调各个硬件相互工作的设备,但是现在的控制器已经结合在CPU中了,所有CPU里面由于运算器也有控制器

存储器 :存储器是计算机记忆或暂存数据的部件,即规定对输入数据如何进行加工处理的一系列指令也都存放在存储器中

输入设备:输入数据

输出设备:输出数据

CPU: 中央处理单元。

冯·诺依曼体系还定义了计算机的一些基本特性:所有的计算机里面都使用二进制信息来做相应的计算和处理。

First Draft of a Report on the EDVAC, John von Neumann, 1945, June

1945年6月,冯·诺依曼与戈德斯坦、勃克斯等人,为埃德瓦克方案联名发表了一篇长达101页纸洋洋万言的报告,即计算机史上著名的“101页报告”。这份报告奠定了现代电脑体系结构坚实的根基,直到今天,仍然被认为是现代电脑科学发展里程碑式的文献。报告明确规定出计算机的五大部件(输入系统、输出系统、存储器、运算器、控制器),并用二进制替代十进制运算,大大方便了机器的电路设计。

埃德瓦克方案的革命意义在于“存储程序”──程序也被当作数据存进了机器内部,以便电脑能自动依次执行指令,再也不必去接通什么线路。

人们后来把根据这一方案思想设计的机器统称为“诺依曼机”。自冯·诺依曼设计的埃德瓦克始,直到今天我们用“奔腾”芯片制作的多媒体计算机为止,电脑一代又一代的“传人”,大大小小千千万万台计算机,都没能够跳出诺依曼机的掌心。在这个意义上,冯·诺依曼是当之无愧的“电脑之父”。

  • 第一代电子管计算机(1946~1958): 特点: 操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据。

  • 第二代晶体管计算机 (1956-1963): 特点: 晶体管代替了体积庞大电子管,使用磁芯存储器。体积小、速度快、功耗低、性能更稳定。还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。在这一时期出现了更高级的COBOL和FORTRAN等编程语言,使计算机编程更容易。新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。

  • 第三代集成电路计算机 (1964-1971): 以中小规模集成电路,来构成计算机的主要功能部件。主存储器采用半导体存储器。运算速度可达每秒几十万次至几百万次基本运算。在软件方面,操作系统日趋完善。

  • 第四代大规模集成电路计算机 (1971-至今):

By the 1970s science and technology were in the ascendancy as astronauts landed on the Moon, and fertility experts produced the first test-tube baby. Meanwhile advances in electronics and computing enabled almost instant global communication—and people started to talk about the Information Age.

从1970年以后采用大规模集成电路(LSI)和超大规模集成电路(VLSI)为主要电子器件制成的计算机,重要分支是以大规模、超大规模集成电路为基础发展起来的微处理器和微型计算机。

现代计算机组成原理

计算机的核心是中央处理器(CPU)。CPU本质上是一个数学机器。CPU对数字进行加法、减法和其他算术运算。当你操作你的计算机时,或者使用你的手机时,你所看到的一切都是建立在一个每秒处理数百万次数据的CPU之上的。

仅仅从01这样的数字中,就产生了文字、图片、音视频、电商购物、金融支付等等虚拟数字世界,不是很神奇吗?

CPU将其作用的数字存储在称为寄存器的小内存单元中。中央处理器能够将数字从计算机的主存(被称为随机存取存储器(RAM))读入寄存器。它还能够将存储在寄存器中的数字写回RAM。这使得CPU可以处理大量的数据,这些数据不能全部放入寄存器中。以下是其工作原理的图表:

当CPU从RAM中取出值到它的寄存器中时,它在它的数学单元中使用这些值,并将结果存储到另一个寄存器中。

每次CPU做加法,减法,从RAM中读取或写入时,它只执行一条指令。每个计算机程序通常由数千到数百万条指令组成。

一个复杂的计算机程序,比如你的操作系统,不管是iOS、Android、macOS、Windows还是Linux(是的,它们也是计算机程序!),可能总共有数百万条指令。

编写单独的指令来告诉计算机该做什么是完全可能的,但对于除最简单的程序之外的所有程序来说,这将是非常耗时和乏味的。这是因为大多数计算机程序的目的不仅仅是做简单的数学——计算机程序可以让你上网冲浪,操纵图像,让你和你的朋友聊天。

您不用编写单独的指令,而是用一种特定的编程语言编写代码(例如,C,C++,Java,Go,JavaScript等等)。这些代码通过一个叫做编译器的计算机程序,编译器将这些代码转换成CPU知道如何执行的指令。您编写的每一行代码都将变成许多指令——有些行可能最终变成几十条指令!

现代计算机体系架构

参考资料

https://blog.csdn.net/shuzishij/article/details/87030579

标签: 超级电容器能贮存电荷吗468三极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台