# 前言
本系列记录学习计组时的知识点梳理,我更喜欢采用讲故事的方式来表达我对知识点的理解。若文章所写之处过于繁杂,可忽略本篇😊 😊
# 一、何为计组
计算机组成原理,顾名思义,是一门研究计算机内部组成的学科。大家都用过电脑,从外观上来看,计算机无非就是显示器、主机、鼠标键盘之类的物件组合在一起的,这帮看得见摸得着的东西我们有个专业名词叫硬件。在电脑上我们使用的各种各样的应用,他们看得见却摸不着,是虚拟的,我们更愿意称这类东西叫软件。而计组一科就是要研究这些硬件的工作原理,试想一下,仅仅只按一个按钮,屏幕就亮了起来,鼠标点点就能查看图片、文件,键盘敲击几个英文字母,就能在屏幕上显示与之对应的内容,是不是非常神奇呢😏 😏 计组会为你一一揭秘,一起来探索计算机的世界吧!!!
# 知识点一
当我们以计算机的世界看待问题时,就会轻而易举的总结出:计算机系统由硬件系统和软件系统构成
# 知识点二(拓展)
计算机软件系统通常分为:系统软件和应用软件。系统嘛,总要分个一官半职的,分官职是为了管理,系统内部也需要管理,应用软件要给用户去使用,例如:QQ、WX这些就是典型的应用软件,用户关心的是这些软件界面做的漂不漂亮,运行起来快不快,使用时网络快慢的体验。当然,它的打扮是程序员人工调试的,但运行的快慢可就涉及到内存的分配了,网络快慢的体验可是与你的网卡多多少少沾点关系了,这部分则由主内的系统软件进行管理。
系统软件通常包含:操作系统(应用软件运行的大环境)、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理程序、服务程序。
应用软件就花样百出了:QQ、WX、抖音.....但凡是用户经常使用的,基本都是应用软件。
# 二、初代Computer崭露头角
早期计算机问世时,绝对配得上它的名字,就是做计算的。每每谈起第一台电子数字计算机,我们首先想到的是46年在宾夕法尼亚大学问世的ENIAC计算机,基于战争的诉求,它造出来后主要是针对于“弹道研究”进行计算的,每秒5000次的加法计算足以让当时的人们叹为观止了。但值得注意的是,ENIAC是第一台电子数字计算机,而不是第一台电子计算机,这个家伙已经被ABC(阿塔纳索夫-贝瑞计算机)抢先了。
既然说到了计算,就有一个大问题摆在我们面前,计算机是如何计算的?抛开这个比较复杂的问题不说,我总得知道计算机是如何表示一个数字的吧(ˇˍˇ) (ˇˍˇ) !记忆中,好像是二进制表示,这又是怎么来的呢? 计算机的能量来源于电能,这个电在我们看来可以有大小之分,也就是所谓的高电平和低电平(高电流和低电流)。OK,这不就好办了,这玩意儿太适合表示二进制了,给我一个低电流,我就看作是0;给我一个高电流,我就看作是1,二进制自然而然就出来了。
我们人类的语言习惯十进制表示,为什么计算机不用呢?很简单,二进制表示起来方便嘛,只需一个高低电平就搞定。
那高低电平在硬件上用什么表示呢?就是我们常听到的逻辑元件。就拿ENIAC来说,他的逻辑元件采用的是电子管,或许是那个年代人们的初次尝试吧,ENIAC使用了十进制进行表示。但其实本质还是高低电平,我们可以通俗的理解为:当一个电子管亮起来的时候,就表示1;当它暗下去的时候,就表示0 ===> 一个电子管可以表示一个二进制数 。那如何表示十进制数呢?多个电子管拼一起不就完了!!言外之意就是几个二进制位可以表示一个十进制数?接着推,三个二进制最大是111,可表示十进制数7;四个二进制最大是1111,可表示十进制16。也就是说,起码得在3个以上的电子管,才能表示一个十进制数。我们需要取整,也就是4 个电子管。为什么要取整?也很简单,我们不可能把电子管给掰成一半来用是吧😏
有趣的是,ENIAC是使用10个电子管组合起来表示一个十进制数的,这也就表明他一次性最多能表示的十进制数是1024。
采用电子管作为逻辑元件可以说是当时的一大突破了,但这玩意儿也有缺点呀,一两个组合起来还好,但是要支撑庞大的计算量必然需要更多的电子管组合起来,那造成的结果就是占地面积变大了,如此多的元件同时工作,耗电量也不是个小数目,况且那个时候进行计算的时候还需要人工进行拔插(即手动接线)来控制数字的运算,一般人还真用不起电脑。
# 三、后起之秀层出不穷
我们说,ENIAC是采用十进制进行运算的,人们用了一段时间后发现:我这么玩在高低电平切换的时候非常容易出错呀,况且还是人工进行切换,那这出错的概率更大了。冯诺依曼看不下去了,他表示不如直接采用二进制计算得了,高低电平表示起来贼方便,算出最后的二进制结果再转人类所能看懂的十进制数,总比每次计算的时候表示成十进制数计算出错的概率低呀。既然咱把进制都换了,不如玩个大的😁 每秒5000次的速度,这才哪到哪呀,就极限了?何况你是人工接线的方式去运算,太慢了,不如自动化一下,这件事儿能不能交给机器去做呢🤔。
妥了,存储程序工作原理提出了。通俗点来说就是,原先是我们每一个运算步骤都要人工参与,现在我们把这一系列步骤整成一个集合,存在某一个位置,告诉计算机你按照我的步骤一步步自己执行就好。由于集合中每个步骤是我们给计算机下达的命令,故称其为:指令。
至此,我们就可以推出更有趣的东西了,计算机以二进制存储数据,那你给计算机下达的命令肯定也属于数据咯,也就是说指令是不是就是以二进制的形式存储在计算机的某一个位置。OK,那我们给计算机下达命令是为了让它完成某个计算,抽象一点就是完成某个功能。而这个功能多数情况下不一定只由一条指令完成,绝大部分都是多个步骤组合在一起,全部执行完之后才算功能的完成。所以说,这一条条指令组合在一起,我们是不是就可以给它起一个新名字,名唤:指令集。
那我们日常所用的软件,可能在程序员眼中他就是一行行的某个语言编写的代码所组成,但若继续刨根问底,软件不就是某个功能的产品嘛?既然是具备功能的,又运行在计算机上的,那甭管啥语言写的,我们是不是都可以把它们归结成:软件(或程序),无非就是由一个一个的指令集所组成的。
冯诺依曼所提出的东西,只能作为理论基础,关键还得看实际运用啊。现在运算快慢的问题解决了,功耗的问题能不能解决一下呢?毕竟每次一用电脑就150千瓦起步,国家也难顶啊。
47年,贝尔实验室问世的晶体管可谓是风光无限。关键在于人家的体积和功耗远远小于电子管时代。加上冯诺依曼的理论基础,运算速度飙升至每秒几万到几十万的水准,很难让人不爱啊。作为晶体管之父的肖克利也在56年一举拿下诺贝尔物理学奖。
其实说白了,晶体管出现差不多是直接替换电子管位置的,也就是说,原先电子管摆放的位置,现在直接换成晶体管了。要么说那个年代人才辈出,以摩尔为代表的几人所创建的仙童半导体公司发明的集成电路简化了电路,提高了性价比。
我认为技术思想都是类似的,面相对象有封装的思想,这边也很像。外界看来庞大的晶体管组合,采用集成电路后,就变得简单了许多,而集成起来就如同封装起来一般。(^▽^)
# 知识点三(理解)
发展阶段 | 时间 | 逻辑元件 | 速度(次/秒) | 内存 | 外存 |
---|---|---|---|---|---|
第一代 | 1946-1957 | 电子管 | 几千-几万 | 汞延迟线、磁鼓 | 穿孔卡片、纸袋 |
第二代 | 1958-1964 | 晶体管 | 几万-几十万 | 磁芯存储器 | 磁带 |
第三代 | 1964-1971 | 中小规模集成电路 | 几十万-几百万 | 半导体存储器 | 磁带、磁盘 |
第四代 | 1972-现在 | 大规模、超大规模集成电路 | 上千万-万亿 | 半导体存储器 | 磁盘、磁带、光盘、半导体存储器 |
# 四、顺推CS发展趋势
从上表我们了解到,当前我们所处的计算机时代是第四代。由第一代的电子管,到现在的超大规集成电路,可见我们的计算机越变越小。给我们所使用的计算机起个名字:微型计算机。而我们的计算机在网络通讯、游戏性能方面又在步步高升,由此可推出:微型机朝着
微型化
、网络化
、高性能
、多用途
方向发展。还记得计算机刚出来是做科学计算的,那么这一类计算机当今也是不可或缺的。受各方面制约关系,这类产品和当初的ENIAC一样,体积是巨大的,我们给这类计算机起名:巨型机。由此推出:巨型机照着
更巨型化
、超高速
、并行处理
、智能化
方向发展。因不同的机型所呈现的效果反差较大,故称其为:两极分化
# 知识点四
计算机发展趋势两极分化,微型机更微型、多用途;巨型机更巨型、超高速。