引言html
任何事物的创造发明都来源于需求和欲望程序员
而科学技术的发展则推进实现了目标算法
正是由于人类对于计算能力孜孜不倦的追求,才创造了现在规模的计算机.编程
计算机,字如其名,用于计算的机器.这就是最初计算机的发展动力.架构
在漫长的历史长河中,随着社会的发展和科技的进步,人类始终有计算的需求函数
进行运算时所运用的工具,也经历了由简单到复杂,由低级向高级的发展变化。工具
本文尽量的仅仅描述逻辑本质,不去追究实现细节google
计算(机|器)的发展与数学/电磁学/电路理论等天然科学的发展息息相关spa
手动阶段设计
机械阶段
机电阶段
电子阶段
顾名思义,就是用手指进行计算,或者操做一些简易工具进行计算
最开始的时候人们主要是借助简单的工具好比手指/石头/打绳结/纳皮尔棒/计算尺等,
我想你们都用手指数过数;
有人用一堆石子表示一些数目;
也有人曾经用打绳结来计数;
再后来有了一些数学理论的发展,纳皮尔棒/计算尺则是借助了必定的数学理论,能够理解为是一种查表计算法.
你会发现,这里还不能说是计算(机|器),只是计算而已,更多的靠的是心算以及逻辑思惟的运算,工具只是一个简简单单的辅助.
我想不用作什么解释,你看到机械两个字,确定就有了必定的理解了,没错,就是你理解的这种普通的意思,
一个齿轮,一个杠杆,一个凹槽,一个转盘这都是一个机械部件.
人们固然不知足于简简单单的计算,天然想制造计算能力更大的机器
机械阶段的主题思想其实也很简单,就是经过机械的装置部件好比齿轮旋转,动力传送等来表示数据记录,进行运算,也便是机械式计算机,这样说有些抽象.
咱们举例说明:
契克卡德是现今公认的机械式计算第一人,他发明了契克卡德计算钟
咱们不去纠结这个东西究竟是如何实现的,只描述事情逻辑本质
其中他有一个进位装置是这样子的
能够看到采用十进制,转一圈以后,轴上面的一个突出齿,就会把更高一位(好比十位)进行加一
这就是机械阶段的精髓,无论他有多复杂,他都是经过机械装置进行传动运算的
还有帕斯卡的加法器
他是使用长齿轮进行进位
再有后来的莱布尼茨轴,设计的更为精巧
我以为对于机械阶段来讲,若是要用一个词语来形容,应该是精巧,就好似钟表里面的齿轮似的
无论形态究竟如何,终究也仍是同样,他也只是一个精巧了再精巧的仪器,一个精密设计的机关装置
首先要把运算进行分解,而后就是机械性的依靠齿轮等部件传动运转来完成进位等运算.
说计算机的发展,就不得不提一我的,那就是巴贝奇
他发明了史上著名的差分机,之因此叫差分机这个名字,是由于它计算所使用的是帕斯卡在1654年提出的差分思想
咱们仍旧不去纠结他的原理细节
此时的差分机,你能够清晰地看获得,仍旧是一个齿轮又一个齿轮,一个轴又一个轴的更加精巧的仪器
很显然他仍旧又仅仅是一个计算的机器,只能作差分运算
再后来1834年巴贝奇提出来了分析机的概念 一种通用计算机的概念模型
正式成为现代计算机史上的第一位伟大先驱。
之因此这样说,是由于他在那个年代,已经把计算机器的概念上升到了通用计算机的概念,这比现代计算的理论思想提早了一个世纪
它不局限于特定功能,并且是可编程的,能够用来计算任意函数——不过这个想法是构思在一坨齿轮之上的.
巴贝奇设计的分析机主要包括三大部分
一、用于存储数据的计数装置,巴贝奇称之为“仓库”(store),至关于如今CPU中的存储器
二、专门负责四则运算的装置,巴贝奇称之为“工厂”(mill),至关于如今CPU中的运算器
三、控制操做顺序、选择所需处理的数据和输出结果的装置
并且,巴贝奇并无忽略输入输出设备的概念
此时你回想一下冯诺依曼计算机的结构的几大部件,而这些思想是在十九世纪提出来的,是否是毛骨悚然!!!
巴贝奇另外一大了不得的创举就是将穿孔卡片(punched card)引入了计算机器领域,用于控制数据输入和计算
你还记得所谓的第一台计算机"ENIAC"使用的是什么吗?就是纸带!!
ps:其实ENIAC真的不是第一台~
因此说你应该能够理解为何他被称为"通用计算机之父"了.
他提出的分析机的架构设想与现代冯诺依曼计算机的五大要素,存储器 运算器 控制器 输入 输出是吻合的
也是他将穿孔卡片应用到计算机领域
ps:穿孔卡片自己并非巴贝奇的发明,而是来自于改进后的提花机,最先的提花机来自于中国,也就是一种纺织机
只是惋惜,分析机并无真正的被构建出来,可是他的思惟理念是超前的,也是正确的
巴贝奇的思想超前了整整一个世纪,不得不提的就是女程序员艾达,有兴趣的能够google一下,Augusta Ada King
机电阶段与电子阶段使用到的硬件技术原理,有很多是相同的
主要差异就在于计算机理论的成熟发展以及电子管晶体管的应用
为了接下来更好的说明,咱们天然不可避免的要说一下当时出现的天然科学了
天然科学的发展与近现代计算的发展是一路相伴而来的
文艺复兴运动令人们从传统的封建神学的束缚中慢慢解放,文艺复兴促进了近代天然科学的产生和发展
你要是实在没事情作,能够探究一下"欧洲文艺复兴革命对近代天然科学发展史有何重要影响"这一议题
据传是1752年,富兰克林作了实验,在近代发现了电
随后,围绕着电,出现了不少旷世的发现.好比电磁学,电能生磁,磁能生电
这就是电磁铁的基本原型
根据电能生磁的原理,发明了继电器,继电器能够用于电路转换,以及控制电路
电报就是在这个技术背景下被发明了,下图是基本原理
可是,若是线路太长,电阻就会很大,怎么办?
能够用人进行接收转发到下一站,存储转发这是一个很好的词汇
因此继电器又被做为转换电路应用其中
并且,一个很重要的事情是,德国人莱布尼茨大约在1672-1676发明了二进制
用0和1两个数码来表示的数
更准确的说是数理逻辑,乔治布尔开创了用数学方法研究逻辑或形式逻辑的学科
既是数学的一个分支,也是逻辑学的一个分支
简单地说就是与或非的逻辑运算
香农在1936年发表了一篇论文<继电器和开关电路的符号化分析>
咱们知道在布尔代数里面
X表示一个命题,X=0表示命题为假;X=1表示命题为真;
若是用X表明一个继电器和普通开关组成的电路
那么,X=0就表示开关闭合 X=1就表示开关打开
不过他当时0表示闭合的理念跟现代正好相反,难道以为0是看起来就是闭合的吗
解释起来有些别扭,咱们用现代的见解解释下他的观点
也就是:
(a) 开关的闭合与打开对应命题的真假,0表示电路的断开,命题的假 1表示电路的连通,命题的真
(b)X与Y的交集,交集至关于电路的串联,只有两个都联通,电路才是联通的,两个都为真,命题才为真
(c)X与Y的并集,并集至关于电路的并联,有一个联通,电路就是联通的,两个有一个为真,命题即为真
这样逻辑代数上的逻辑真假就与电路的连通断开,完美的彻底映射
并且,全部的布尔代数基本规则,都很是完美的适合开关电路
有了数理逻辑和逻辑电路的基础理论,不可贵出电路中的几个基础单元
Vcc表示电源 比较粗的短横线表示的是接地
与门
串联电路,AB两个电路都联通时,右侧开关才会同时闭合,电路才会联通
符号
另外还有多输入的与门
或门
并联电路,A或者B电路只要有任何一个联通,那么右侧开关就会有一个闭合,右侧电路就会联通
符号
非门
右侧开关常闭,当A电路联通的时候,则右侧电路断开,A电路断开时,右侧电路联通
符号:
因此你只须要记住:
与是串联/或是并联/取反用非门
接下来咱们说一个机电式计算机器的优秀典范
机电式的制表机
霍尔瑞斯的制表机,主要是为了解决美国人口普查的问题.
人口普查,你能够想象获得天然是用于统计信息,性别年龄姓名等
若是纯粹的人工手动统计,可想而知,这是多么复杂的一个工程量
制表机首次将穿孔技术应用到了数据存储上,你能够想象到,使用打孔和不打孔来识别数据
不过当时设计还不是很成熟,好比若是现代,咱们确定是一个位置表示性别,可能打孔是女,不打孔是男
当时是卡片上用了两个位置,表示男性就在标M的地方打孔,女性就在标F的地方打孔,不过在当时也是很先进了
而后,专门的打孔员使用穿孔机将居民信息戳到卡片上
紧接着天然是要统计信息
利用电流的通断来识别数据
对应着这个卡片上的每一个数据孔位,上面有着金属针,下面有着容器,容器装着水银
按下压板时,卡片有孔的地方,针能够经过,与水银接触,电路接通,没孔的地方,针就被挡住。
如何将电路通断对应到所须要的统计信息?
这就用到了数理逻辑与逻辑电路了
最上面的引脚是输入,经过打孔卡片的输入
下面的继电器是输出,根据结果 通电的M将产生磁场, 牵引特定的杠杆,拨动齿轮完成计数。
看到没,此时已经能够根据打孔卡片做为输入,继电器组成的逻辑电路做为运算器,齿轮进行计数的输出了
制表机中的涉及到的主要部件包括: 输入/输出/运算
1896年,霍尔瑞斯创立了制表机公司,他是IBM的前身.....
有一点要说明
并不能笼统的说谁发明了什么技术,下一个使用这种技术的人,就是借鉴使用了发明者或者说发现者的理论技术
在计算机领域,不少时候,一样的技术原理可能被好几我的在同一时期发现,这很正常
还有一位大神,不得不介绍,他就是康拉德·楚泽 Konrad Zuse 德国
http://zuse.zib.de/
由于他发明了世界上第一台可编程计算机——Z1
图为复制品,复制品其实机械工艺上比37年的要现代化一些
尽管zuse生于1910,Z1也是大约1938建造完成,可是他其实跟机械阶段的计算器并无什么太大区别
要说和机电的关系,那就是它使用电动马达驱动,而不是手摇,因此本质仍是机械式
不过他的牛逼之处在于在也设想出来了现代计算机一些的理论雏形
将机器严格划分为处理器和内存两大部分
采用了二进制
引入浮点数,发明了浮点数的二进制规格化表示
靠机械零件实现与、或、非等基础的逻辑门
虽然做为机械设备,可是倒是一台时钟控制的机器。其时钟被细分为4个子周期
处理器是微代码结构的操做被分解成一系列微指令,一个机器周期一条微指令。
微指令在运算器单元之间产生具体的数据流,运算器不停地运做,每一个周期都将两个输入寄存器里的数加一遍。
可编程 从穿孔带读入8比特长的指令 指令已经有了操做码 内存地址的概念
这些全都是机械式的实现
并且这些具体的实现细节的理念思惟,不少也是跟现代计算机相似的
可想而知,zuse真的是个天才
后续还研究出来更多的Z系列
虽然这些天才式的人物并无一块儿坐下来一边烧烤一边讨论,可是却老是"英雄所见略同"
几乎在相同时期,美国科学家斯蒂比兹(George Stibitz)与德国工程师楚泽独立研制出二进制数字计算机,就是Model k
Model I不可是第一台多终端的计算机,仍是第一台能够远程操控的计算机。
贝尔实验室利用自身的技术优点,于1940年9月9日,在达特茅斯学院(Dartmouth College)和纽约的本部之间搭起线路.
贝尔实验室后续又推出了更多的Model系列机型
再后来又有Harvard Mark系列,哈佛与IBM的合做
哈佛这边是艾肯IBM是其余三位
Mark I也经过穿孔带得到指令,和Z1是否是相同?
穿孔带每行有24个空位
前8位标识用于存放结果的寄存器地址,中间8位标识操做数的寄存器地址,后8位标识所要进行的操做
——结构已经很是相似后来的汇编语言
内部还有累加寄存器,常数寄存器
机电式的计算机中,咱们能够看到,有些伟大的天才已经构思设想出来了不少被应用于现代计算机的理论
机电时期的计算机能够说是有很多机器的理论模型已经算是比较接近现代计算机了
并且,有很多机电式的型号一直发展到电子式的年代,部件使用电子管来实现
这为后续计算机的发展提供了不可磨灭的贡献
咱们如今再转到电学史上的1904年
一个叫作弗莱明的英国人发明了一种特殊的灯泡-----电子二极管
先说一下爱迪生效应:
在研究白炽灯的寿命时,在灯泡的碳丝附近焊上一小块金属片。
结果,他发现了一个奇怪的现象:金属片虽然没有与灯丝接触,但若是在它们之间加上电压,灯丝就会产生一股电流,趋向附近的金属片。
这股神秘的电流是从哪里来的?爱迪生也没法解释,但他不失时机地将这一发明注册了专利,并称之为“爱迪生效应”。
此处彻底能够看得出来,爱迪生是多么的有商业头脑,这就拿去申请专利去了~此处省略一万字....
金属片虽然没有与灯丝接触,可是若是他们之间加上电压,灯丝就会产生一股电流,趋向附近的金属片
就是图中的这样子
并且这种装置有一个神奇的功能:单向导电性,会根据电源的正负极连通或者断开
其实上面的形式和下图是同样的,要记住的是左边靠近灯丝的是阴极 阴极电子放出
用如今的术语解释就是:
阴极是用来放射电子的部件, 分为氧化物阴极和碳化钍钨阴极。
通常来讲氧化物阴极是旁热式的, 它是利用专门的灯丝对涂有氧化钡等阴极体加热, 进行热电子放射。
碳化钍钨阴极通常都是直热式的,经过加热便可产生热电子放射, 因此它既是灯丝又是阴极。
而后又有个叫作福雷斯特的人在阴极和阳极之间,加入了金属网,如今就叫作控制栅极
经过改变栅极上电压的大小和极性,能够改变阳极上电流的强弱,甚至切断
电子三极管的原理大体就是这样子的
既然能够改变电流的大小,他就有了放大的做用
不过显然,是电源驱动了他,没有电他自己不能放大
由于多了一条腿,因此就叫作电子三极管
咱们知道,计算机应用的其实只是逻辑电路,逻辑电路是与或非门组成,他并非真的在意究竟是谁有这个本事
以前继电器能实现逻辑门的功能,因此继电器被应用到了计算机上
好比咱们上面提到过的与门
之因此继电器能够实现逻辑门的功能,就是由于它具备"控制电路"的功能,就是说能够根据一侧的输入状况,决定另外一侧的状况
那新发明的电子管,根据它的特性,也能够应用于逻辑电路
由于你能够控制栅极上电压的大小和极性,能够改变阳极上电流的强弱,甚至切断
也达到了根据输入,控制另一个电路的功能,只不过从继电器换成电子管,内部的电路须要变化下而已
如今应该说一下电子阶段的计算机了,可能你早就听过了ENIAC
我想说你更应该了解下ABC机.他才是真正的世界上第一台电子数字计算设备
阿塔纳索夫-贝瑞计算机(Atanasoff–Berry Computer,一般简称ABC计算机)
1937年设计,不可编程,仅仅设计用于求解线性方程组
可是很显然,没有通用性,也不可编程,也没有存储程序机制,他彻底不是现代意义的计算机
上面这段话来源于:http://www4.ncsu.edu/~belail/The_Introduction_of_Electronic_Computing/Atanasoff-Berry_Computer.html
主要陈述了设计理念,你们能够上面的这四点
若是你想要知道你和天才的距离,请仔细看下这句话
he jotted down on a napkin in a tavern
世界上第一台现代电子计算机埃尼阿克(ENIAC),也是继ABC以后的第二台电子计算机.
ENIAC是参照阿塔纳索夫的思想完整地制造出了真正意义上的电子计算机
奇葩的是为啥不用二进制...
建造于二战期间,最初的目的是为了计算弹道
ENIAC具备通用的可编程能力
更详细的能够参看维基百科:
https://zh.wikipedia.org/zh-cn/%E9%9B%BB%E5%AD%90%E6%95%B8%E5%80%BC%E7%A9%8D%E5%88%86%E8%A8%88%E7%AE%97%E6%A9%9F
不过ENIAC程序和计算是分开的,也就意味着你须要手动输入程序!
并非你理解的键盘上敲一敲就行了,是须要手工插接线的方式进行的,这对使用来讲是一个巨大的问题.
有一我的叫作冯·诺伊曼,美籍匈牙利数学家
有意思的是斯蒂比兹演示Model I的时候,他是在场的
并且他也参与了美国第一颗原子弹的研制工做,任弹道研究所顾问,并且其中涉及到的计算天然是极为困难的
咱们说过ENIAC是为了计算弹道的,因此他迟早会接触到ENIAC,也算是比较瓜熟蒂落的他也加入了计算机的研制
1945年,冯·诺依曼和他的研制小组在共同讨论的基础上
发表了一个全新的“存储程序通用电子计算机方案”——EDVAC(Electronic Discrete Variable Automatic Computer)
一篇长达101页纸洋洋万言的报告,即计算机史上著名的“101页报告”。这份报告奠基了现代电脑体系结构坚实的根基.
报告普遍而具体地介绍了制造电子计算机和程序设计的新思想。
这份报告是计算机发展史上一个划时代的文献,它向世界宣告:电子计算机的时代开始了。
最主要是两点:
其一是电子计算机应该以二进制为运算基础
其二是电子计算机应采用存储程序方式工做
而且进一步明确指出了整个计算机的结构应由五个部分组成:
运算器、控制器、存储器、输入装置和输出装置,并描述了这五部分的职能和相互关系
其余的点还有,
指令由操做码和地址码组成,操做码表示操做的性质,地址表示操做数的存储位置
指令在存储器内按照顺序存放
机器以运算器为中心,输入输出设备与存储器间的数据传送经过运算器完成
人们后来把根据这一方案思想设计的机器统称为“冯诺依曼机”,这也是你如今(2018年)在使用的计算机的模型
咱们刚才说到,ENIAC并非现代计算机,为何?
由于不可编程,不通用等,到底怎么描述:什么是通用计算机?
1936年,艾伦·图灵(1912-1954)提出了一种抽象的计算模型 —— 图灵机 (Turing Machine)
又称图灵计算、图灵计算机
图灵的一辈子是难以评价的~
咱们此处仅仅说他对计算机的贡献
下面这段话来自于百度百科:
图灵的基本思想是用机器来模拟人们进行数学运算的过程
所谓的图灵机就是指一个抽象的机器
图灵机更多的是计算机的科学思想,图灵被称为 计算机科学之父
它证实了通用计算理论,确定了计算机实现的可能性
图灵机模型引入了读写与算法与程序语言的概念
图灵机的思想为现代计算机的设计指明了方向
冯诺依曼体系结构能够认为是图灵机的一个简单实现
冯诺依曼提出把指令放到存储器而后加以执行,听说这也来源于图灵的思想
至此计算机的硬件结构(冯诺依曼)以及计算机的天然科学理论(图灵)
已经比较彻底了
计算机通过了第一代电子管计算机的时代
随后出现了晶体管
肖克利1947年发明了晶体管,被称为20世纪最重要的发明
硅元素1822年被发现,纯净的硅叫作本征硅
硅的导电性不好,被称为半导体
一块纯净的本征硅的半导体
若是一边掺上硼一边掺上磷 而后分别引出来两根导线
这块半导体的导电性得到了很大的改善,并且,像二极管同样,具备单向导电性
由于是晶体,因此叫作晶体二极管
并且,后来还发现加入砷 镓等原子还能发光,称为发光二极管 LED
还能特殊处理下控制光的颜色,被大量应用
如同电子二极管的发明过程同样
晶体二极管不具备放大做用
又发明了在本征半导体的两边掺上硼,中间掺上磷
这就是晶体三极管
只要电流I1 发生一点点变化 电流I2就会大幅度变化
也就是说这种新的半导体材料就像电子三极管同样具备放大做
因此被称为晶体三极管
晶体管的特性彻底适合逻辑门以及触发器
世界上第一台晶体管计算机诞生于肖克利得到诺贝尔奖的那年,1956年,此时进入了第二代晶体管计算机时代
再后来人们意识到:晶体管的工做原理和一块硅的大小实际没有关系
能够将晶体管作的很小,可是丝绝不影响他的单向导电性,照样能够方法信号
因此去掉各类链接线,这就进入到了第三代集成电路时代
随着技术的发展,集成的晶体管的数量千百倍的增长,进入到第四代超大规模集成电路时代