大家好,很高兴又和大家见面啦!!!
从今天开始,我们将开始学习一门新的课程——计算机组成原理(Computer Organization, CO)。
计算机组成原理这门课程与操作系统一样,同样也是一门理论学科。在学习这门课程的过程中,我们会接触到很多的计算机名词,了解到计算机最底层的理论知识。这门学科的学习能够帮助我们更好的理解一台计算机及其工作原理。
计组这门课程总共有七大章节:
我们会在学习这些内容的过程中逐步加深对计算机的理解。
【计算机组成原理】博客专栏和其它的专栏一样,都是我个人的一份学习笔记。在每一篇的内容中,我都会完成相应理论知识点的记录、个人理解的对应表达以及相关必要的图片的绘制。
在当今的信息化时代,我们在生活中会经常使用计算机、手机等电子产品。一台个人计算机则是由最底层的硬件、在硬件之上的操作系统以及在操作系统之上的软件构成,而我们与其他人通过计算机进行交流时,则是通过计算机网络实现:
通过【计算机组成原理】这门课,我们会学习到计算机最底层的硬件的工作原理;通过【操作系统】这门课,我们会学习搭载在硬件上的操作系统的工作原理;通过学习【C/C++/JAVA……】这些高级编程语言以及【数据结构】这门课,我们则能够学习如果通过计算机语言来描述咱们的世界;通过学习【计算机网络】这门课,我们会学习计算机与计算机之间传递信息的工作原理。
因此整个计算机学习的阶段,高级编程语言、DS、OS、CO、CN这五门课程是必不可少的。在今天的内容中,我们将会学习一下计算机一个发展历程,了解一下计算机从诞生开始到现在经历了怎样的发展。今天的篇章算是学习计算机组成原理之前的一个小故事,下面我们就来进入今天的内容吧!
科技的发展是以国家之间的对抗为背景的,一个国家要想强大,只能通过不断的提升自己的技术。
时间回到二战时期,当时的战斗十分激烈,但是各国的武器装备却没有特别的先进,在战斗中占主导地位的战略武器就是飞机和大炮,因此研制和开发新型的大炮和导弹就是当时的重中之重。为此美国陆军军械部在马里兰州的阿拉伯丁设立了“弹道研究实验室”。[^1][^1]: ENIAC
于1937年~1941年间,美国爱荷华州立大学的约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)教授和他的研究生克利福特·贝瑞(Clifford Berry)先生研发了“阿塔纳索夫-贝瑞计算机”(Atanasoff-Berry Computer,简称ABC)。
ABC计算机是第一台电子化的计算机,非图灵完备和不可编程是其最大限制。
1941年,莫克利(JohnW.Mauchly)在阿坦纳索夫家中借助了5天,在此期间“盗取”了阿塔纳索夫教授的研究成果及想法,之后于1942年提出了试制第一台能够计算导弹弹道轨迹的电子计算机的初始设想——“高速电子管计算装置的使用”,期望用电子管代替继电器以提高机器的计算速度。
美国军方得知这一设想后,马上拨款大力支持,成立了以莫克利、埃克特(John Eckert)为首的研制小组开始研制工作,预算经费为15万美元。于是世界上第二台电子计算机,世界上第一台通用计算机 ENIAC (Electronic Numerical Integrator And Computer)开始进入研发状态。*[ENIAC]: 世界上第二台电子计算机,世界上第一台通用计算机
于1944年,也就是 ENIAC 的研发中期,当时弹道研究所的顾问——正在参与美国第一颗原子弹研制工作的数学家冯·诺依曼(von Neumann,1903-1957,美籍匈牙利人)带着原子弹研制过程中遇到的大量计算问题,在研制过程中期加入了研制小组。
当时的 ENIAC 设计中存在两个问题:
为了进行搭接,可能需要耗费数天的时间,这就导致计算机的速度被这一工作抵消了。
1945年,为了解决 ENIAC 存在的这两个问题,冯·诺依曼和他的研制小组在共同讨论的基础上,发表了一个全新的“存储程序通用电子计算机方案”—— EDVAC (Electronic Discrete Variable Automatic Computer)。方案中提出的计算机体系结构一直延续至今,也就是现代计算机的冯·诺依曼结构。
EDVAC 的初步预算为10万美元,但最终的成本大约超过估计的4倍,约50万美元。[^2]
*[EDVAC]: 第一台离散变量自动电子计算机[^2]: EDVAC
1946年,第一台通用计算机 ENIAC 问世,并开始投入运行。
1949年8月,第一台离散变量自动电子计算机 EDVAC 问世,于1951年正式开始投入运行。
在开始介绍硬件的发展之前,我们需要先了解几个名词:
这些名词在后续的内容中会经常提到,我们先要对其有个初步影响,接下来我们就来看看整个计算机硬件的发展过程;
从1946年世界上第一台电子数字计算机 ENIAC 问世以来,计算机的发展已经经历了四代。
在 ENIAC 问世后,人们在使用时通过在纸带或卡片上打孔的方式来编写机器语言,并通过纸带机将纸带上的内容转换成对应的电信号——有孔代表低电平,无孔代表高电平。
以 ENIAC 为首的第一代计算机的逻辑元件采用的是电子管,通过电子管来识别这些电信号。
在 ENIAC 中,总共使用了1.8w个这样的电子管,并通过线路将这些电子管给连接起来从而实现通过电路进行运算的功能,可想而知 ENIAC 必定是一个庞然大物。
在一次实验中,这些科学家们像往常一样将打了孔洞的纸带放入纸带机后,就等 ENIAC 进行相应的运算,可是那一次实验出现了问题,他们在寻找原因的过程中,其中一人在纸带上发现了一只小虫子,于是便说我发现了bug,这里的bug是指小虫子的意思。
后来人们便将这次事故中因这只小虫子产生的故障,以bug来命名。这种说法并沿用至今,现在我们在运行程序时如果遇到了问题,我们也会惊呼,这是bug,我发现了bug……
哈哈哈,题外话到此为止,下面我们继续回归正题。
以 ENIAC 为首的第一代计算机因其逻辑元件采用的是电子管,所以将这一时期称为电子管时代。在电子管时代的计算机的特点有以下几点:
在第二次世界大战期间,不少实验室在有关硅和锗材料的制造和理论研究方面,也取得了不少成绩,这就为晶体管的发明奠定了基础。
为了克服电子管的局限性,第二次世界大战结束后,贝尔实验室加紧了对固体电子器件的基础研究。肖克莱等人决定集中研究硅、锗等半导体材料,探讨用半导体材料制作放大器件的可能性。
1945年秋天,贝尔实验室成立了以肖克莱为首的半导体研究小组,成员有布拉顿、巴丁等人。
1947年12月,这个世界上最早的实用半导体器件终于问世了,在首次试验时,它能把音频信号放大100倍,它的外形比火柴棍短,但要粗一些。在为这种器件命名时,布拉顿想到它的电阻变换特性,即它是靠一种从“低电阻输入”到“高电阻输出”的转移电流来工作的,于是取名为trans-resistor(转换电阻),后来缩写为transistor,中文译名就是晶体管。
1950年,第一只“PN结型晶体管”问世了。
半导体材料的发明,尤其是硅半导体材料的应用,为晶体管计算机的发明奠定了基础。
1953:年,磁芯存储器被开发出来。
1954年,IBM的John Backus和他的研究小组开始开发 FORTRAN。
同年,美国贝尔实验室研制成功第一台使用晶体管线路的计算机,取名“催迪克”(TRADIC),装有800个晶体管。
1957年,FORTRAN 高级语言开发成功,这是一种适合科学研究使用的计算机高级语言。
1958年,美国的IBM公司制成了第一台全部使用晶体管的计算机RCA501型。
由于RCA501型计算机采用晶体管逻辑元件,及快速磁芯存储器,计算机速度从每秒几千次提高到几十万次,主存储器的存贮量,从几千提高到10万以上。
以RCA501为首的第二代计算机由于采用的是晶体管作为逻辑元件,因此该时代也被称为晶体管时代。在晶体管时代的计算机具有以下特点:
1958年,仙童公司Robert Noyce与德仪公司基尔比间隔数月分别发明了集成电路,开创了世界微电子学的历史;
1960年,H H Loor和E Castellani发明了光刻工艺
1962年,美国RCA公司研制出MOS场效应晶体管
1963年,F.M.Wanlass和C.T.Sah首次提出CMOS技术,今天,95%以上的集成电路芯片都是基于CMOS工艺
1964年,Intel摩尔提出摩尔定律,预测晶体管集成度将会每18个月增加1倍。
1964年4月7日,IBM公司研制成功世界上第一个采用集成电路的通用计算机IBM 360系统,它兼顾了科学计算和事务处理两方面的应用。IBM 360系列计算机是最早使用集成电路的通用计算机系列,它开创了民用计算机使用集成电路的先例,计算机从此进入了集成电路时代。
1966年:美国RCA公司研制出CMOS集成电路,并研制出第一块门阵列(50门),为现如今的大规模集成电路发展奠定了坚实基础,具有里程碑意义。
以IBM 360为首的第三代计算机采用的逻辑元件为中小规模的集成电路,因此该时期也被称为中小规模集成电路时代。这个时代,计算机主要还是应用于科学计算等专业用途,并未在普通的家庭进行普及。该时代的计算机具有以下特点:
1970年,仙童半导体公司生产处第一个较大容量的半导体存储器,至今,半导体存储器经历了11代:单芯片1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、256MB和现在的1GB。
1967年和1977年分别出现了大规模和超大规模集成电路。由大规模和超大规模集成电路组装成的计算机,被称为第四代电子计算机。美国ILLIAC-IV计算机,是第一台全面使用大规模集成电路作为逻辑元件和存储器的计算机,它标志着计算机的发展已到了第四代。
第四代计算机的另一个重要分支是以大规模、超大规模集成电路为基础发展起来的微处理器和微型计算机。
微处理器和微型计算机的发展总共经历了四个阶段:
由此可见,微型计算机的性能主要取决于它的核心器件——微处理器(CPU)的性能。
该时期计算机的特点有:
将CPU浓缩在一块芯片上的微型机的出现与发展,掀起了计算机大普及的浪潮。
1969年,英特尔(Intel)公司受托设计一种计算器所用的整套电路,公司的一名年轻工程师费金(Federico Fagin)成功地在4.2×3.2的硅片上,集成了2250个晶体管。这就是第一个微处理器——Intel 4004。它是4位的。
1971年11月15日,Intel公司的工程师霍夫发明了世界上第一个商用微处理器—4004,从此这一天被当作具有全球IT界里程碑意义的日子而被永远的载入了史册
在它之后,1972年初又诞生了8位微处理器Intel 8008。
1973年出现了第二代微处理器(8位),如Intel 8080(1973)、M6800(1975,M代表摩托罗拉公司)、Z80(1976,Z代表齐洛格公司)等。
1978年出现了第三代微处理器(16位),如Intel 8086、Z8000、M68000等。
1981年出现了第四代微处理器(32位),如iAPX432、i80386、MAC-32、NS-16032、Z80000、HP-32等。它们的性能都与七十年代大中型计算机大致相匹敌。微处理器的两三年就换一代的速度,是任何技术也不能比拟的。
自1971年Intel公司开发出第一个微处理器Intel 4004至今,微处理器经历了Intel 8008(8位)、Intel 8086(16位)、Intel 80386(32位)、Pentium(32位)、Pentium Ⅲ(64位)、Pentium 4(64位)、Core i7(64位)等。
这里的4位、8位、16位、32位、64位指的是机器字长,是指计算机进行一次整型运算所能处理的二进制数据的位数。
最早的个人计算机之一是美国苹果(Apple)公司的AppleⅡ型计算机,于1977年开始在市场上出售。继之出现了TRS-80(Radio Shack公司)和PET-2001(Commodore公司)。
从此以后,各种个人计算机如雨后春笋一般纷纷出现。
当时的个人计算机一般以8位或16位的微处理器芯片为基础,存储容量为64KB以上,具有键盘、显示器等输入输出设备,并可配置小型打印机、软盘、盒式磁盘等外围设备,且可以使用各种高级语言自编程序。
随着PC机的不断普及,IBM公司于1979年8月也组织了个人计算机研制小组。两年后宣布了IBM-PC,1983年又推出了扩充机型IBM-PC/XT,引起计算机工业界极大震动。在当时,IBM个人计算机具有一系列特点:设计先进(使用Intel8088微处理器)、软件丰富(有八百多家公司以它为标准编制软件)、功能齐全(通信能力强,可与大型机相连)、价格便宜(生产高度自动化,成本很低)。
到1983年,IBM-PC迅速占领市场,取代了号称美国微型机之王的苹果公司。
计算机软件技术的蓬勃发张,也为计算机系统的发展做出了很大的贡献。
计算机软件的发展实际上就是计算机语言的发展。
在今天的内容中我们详细介绍了计算机的整个发展历程:
从整个历程中我们不难发现计算机的发展是逐渐往小型化的方向去发展,同时也是往更快的运算速度发展。
现在的计算机发展逐步走向了两极分化:
今天的内容到这里就全部结束了,在下一篇内容中我们将介绍计算机系统层次结构的相关内容,大家记得关注哦!如果大家喜欢博主的内容,可以点赞、收藏加评论支持一下博主,当然也可以将博主的内容转发给你身边需要的朋友。最后感谢各位朋友的支持,咱们下一篇再见!!!