计算机组成及原理

计算机发展史

最近一直在学习python语言,总结了一下所需的计算机相关知识体系如下:

  • 计算机组成及原理(熟悉)
  • 数据的概念(重点)
  • 字符编码以及OSI七层模型(重点)
  • 通信原理及网络基础(重点)
  • 常用DOS命令(熟悉)

这篇文章主要讲的是计算机的组成及原理


学python为什么要学计算机基础?

首先举个🌰:

一个公司老板手下有三个员工: 1号是一个中国人, 2号是一个美国人, 3号一只猫, 然后呢,老板想让猫写一首诗!!! 🐱🐱🐱肯定是不可能做到的,所以呢,🐱就和计算机一样,我学了python语言但是我不知道计算机能干什么

  • 你会编程语言,他只是一种沟通工具,并不知道沟通对象能干什么事.

  • 学python语言,让计算机干活,但是计算机能干什么,根本不知道

所以说写代码如果计算机的底层知识严重缺乏,越写会越觉得力不从心,越高端越接近底层.有的人写代码永远只能写代码,有的人就会写成架构师等等,对底层的了解非常重要.


什么是计算机

计算机(computer), 俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储功能,能够按照程序运行,自动,高速处理海量数据的现代智能电子设备.

  • 程序自动化: 可以将预先编好的程序组纳入计算机内存,在程序的控制下,计算机可以连续,自动的工作,不需要人的干预

  • 高速: 当今计算机系统的运算速度已达到每秒万亿次,使大量复杂的科学计算问题得以解决(卫星轨道计算等等)

计算机发展过程

首先计算机是中国人发明的:

知识来源

  1. 算盘

远古的人们用石头来计算捕获的猎物,石头就是他们的计算工具,著名科普作家阿西莫夫说,人类最早的计算工具是手指,英语单词“Dight”既表示“手指”又表示“整数数字”;而中国古人常用“结绳”来帮助记事,“结绳”当然也可以充当计算工具。石头、手指、绳子……,这些都是古人用过的“计算机”。

不知何时,许多国家的人都不约而同想到用“筹码”来改进工具,其中要数中国的算筹最有名气。商周时代问世的算筹,实际上是一种竹制、木制或骨制的小棍。古人在地面或盘子里反复摆弄这些小棍,通过移动来进行计算,从此出现了“运筹”这个词,运筹就是计算,后来才派生出“筹”的词义。中国古代科学家祖冲之最先算出了圆周率小数点后的第6位,使用的工具正是算筹,这个结果即使用笔算也很不容易求得。

欧洲人发明的算筹与中国不尽相同,他们的算筹是根据“格子乘法”的原理制成。例如要计算1248×456,�可以先画一个矩形,然后把它分成3×2个小格子,在小格子边依次写下乘数、被乘数的各位数字,再用对角线把小格子一分为二,分别记录上述各位数字相应乘积的十位数与个位数。�把这些乘积由右到左,�沿斜线方向相加,最后就得到乘积。1617年,英国数学家纳皮尔把格子乘法表中可能出现的结果,印刻在一些狭长条的算筹上,利用算筹的摆放来进行乘、除或其他运算。纳皮尔算筹在很长一段时间里,是欧洲人主要的计算工具。算筹在使用中,一旦遇到复杂运算常弄得繁杂混乱,让人感到不便,于是中国人又发明了一种新式的“计算机”。

著名作家谢尔顿在他的小说《假如明天来临》里讲过一个故事:骗子杰夫向经销商兜售一种袖珍计算机,说它“价格低廉,绝无故障,节约能源,十年中无需任何保养”。当商人打开包装盒一看,这台“计算机”原来是一把来自中国的算盘。世界文明的四大发源地──黄河流域、印度河流域、尼罗河流域和幼发拉底河流域──先后都出现过不同形式的算盘,只有中国的珠算盘一直沿用至今。珠算盘最早可能萌芽于汉代,定型于南北朝。它利用进位制记数,通过拨动算珠进行运算:上珠每珠当五,下珠每珠当一,每一档可当作一个数位。打算盘必须记住一套口诀,口诀相当于算盘的“软件”。算盘本身还可以存储数字,使用起来的确很方便,它帮助中国古代数学家取得了不少重大的科技成果,在人类计算工具史上具有重要的地位。

以及后续还有人对其进行了改进.

timg?image&quality=80&size=b9999_10000&sec=1536904899517&di=122b2388f213061909ff2fd672d37512&imgtype=0&src=http%3A%2F%2Fpic32.photophoto.cn%2F20140713%2F0020033071400991_b.png

说计算机是中国人发明的原因还有一点:

  1. 八卦图

不久,因独立发明微积分而与牛顿齐名的莱布尼茨,又为计算机提出了“二进制”数的设计思路。有人说,他的想法来自于东方中国。

大约在公元1700年左右某天,友人送给他一幅从中国带来图画,名称叫做“八卦”,是宋朝人邵雍所摹绘的一张“易图”。莱布尼茨用放大镜仔细观察八卦的每一卦象,发现它们都由阳(—)�和阴(--)两种符号组合而成。他挠有兴趣地把8种卦象颠来倒去排列组合,�脑海中突然火花一闪──这不就是很有规律的二进制数字吗?�若认为阳(—)是“1”�,阴(--)是“0”,八卦恰好组成了二进制000到111共8个基本序数。正是在中国人睿智的启迪下,莱布尼茨最终悟出了二进制数之真谛。虽然莱布尼茨设计的计算机用的还是十进制,但他率先系统提出了二进制数的运算法则,直到今天,二进制数仍然左右着现代电脑的高速运算。

d01373f082025aaff95dcde7f6edab64034f1aaa.png

八卦图由两种情况组成: 长的线 和 两个短线, 那么 长的代表1 两个短的代表0,那八卦图就可以理解为:

111, 110, 010, 100, 000, 001, 101, 011 一共八种情况, 这就是后来我们所常知的二进制.

  1. 提花纺织机

要让机器听人类的话,按人类的意愿去计算,就要实现人与机器之间的对话,或者说,要把人类的思想传送给机器,让机器按人的意志自动执行。

说来也怪,实现人与机器对话的始作俑者却不是研制计算机的那些前辈,而是与计算机发明毫不相干的两位法国纺织机械师。他们先后发明了一种指挥机器工作的“程序”,把思想直接“注入”到了提花编织机的针尖上。

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

应该是,提花编织机最早出现在中国。在我国出土的战国时代墓葬物品中,就有许多用彩色丝线编织的漂亮花布。据史书记载,西汉年间,钜鹿县纺织工匠陈宝光的妻子,能熟练地掌握提花机操作技术,�她的机器配置了120根经线,平均60天即可织成一匹花布,每匹价值万钱。明朝刻印的《天工开物》一书中,还赫然地印着一幅提花机的示意图。可以想象,当欧洲的王公贵族对从“丝绸之路”传入的美丽绸缎赞叹不已时,中国的提花机也必定会沿着“丝绸之路”传入欧洲。

不过,用当时的编织机编织图案相当费事。所有的绸布都是用经线(纵向线)和纬线(横向线)编织而成。若要织出花样,织工们必须细心地按照预先设计的图案,在适当位置“提”�起一部分经线,�以便让滑梭牵引着不同颜色的纬线通过。机器当然不可能自己“想”到该在何处提线,只能靠人手“提”起一根又一根经线,不厌其烦地重复这种操作。

timg?image&quality=80&size=b9999_10000&sec=1536905762584&di=2f9bbf4a1c433b2a573d67376d5d7c3f&imgtype=jpg&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D1652322336%2C1260164544%26fm%3D214%26gp%3D0.png

织布机要想工作,就需要预先设计好图案,这就是编程序.

然后就是杰卡德穿孔卡片:

1725年,法国纺织机械师布乔(B.�Bouchon)突发奇想,想出了一个“穿孔纸带”的绝妙主意。布乔首先设法用一排编织针控制所有的经线运动,然后取来一卷纸带,根据图案打出一排排小孔,并把它压在编织针上。启动机器后,正对着小孔的编织针能穿过去钩起经线,其他的针则被纸带挡住不动。这样一来,编织针就自动按照预先设计的图案去挑选经线,布乔的“思想”于是“传递”给了编织机,而编织图案的“程序”也就“储存”在穿孔纸带的小孔之中。真正成功的改进是在80年后,另一位法国机械师杰卡德(J.Jacquard),大约在1805年完成了“自动提花编织机”的设计制作。

timg?image&quality=80&size=b9999_10000&sec=1536905794592&di=32353782bcc2085aad7fe2fa25896764&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2Fbf096b63f6246b6022dc97bde1f81a4c500fa22c.png

接下来是一个非常厉害的人,叫巴贝奇,发明了差分机,在计算机发明史上有很大的作用.

巴贝奇巨星陨落后,世人已逐渐将他淡忘,20世纪已经来临。计算机的历史等待着,等待着巴贝奇式的人物再世,等待着人类划时代的壮举。

差分机(物理设备)分为三部分组成:

  • 仓库: 存数据
  • 作坊: 运算室
  • 控制器: 相当于杰卡德的穿孔卡片,目的是控制程序运行

后来一个叫艾肯的人在图书馆读书发现了巴贝奇和他的女助手阿达,然后就想继续研究,就找到IBM拿到了投资

差分机是根据此轮来运转的,艾肯所发明的则是通过电来运转,性能提升非常大,也就是电磁铁(通电代表1,断电代表0, 同性相吸,异性相克)

艾肯设计的马克1号已经是一种电动的机器,�它借助电流进行运算,最关键的部件,用的是普通电话上的继电器。�马克1号上大约安装了3000个继电器,每一个都有由弹簧支撑着的小铁棒,�通过电磁铁的吸引上下运动。吸合则接通电路,代表“1”;释放则断开电路,代表“0”。继电器“开关”能在大约1/100秒的时间内接通或是断开电流,当然比巴贝奇的齿轮先进得多。

当时也出现了现在所说的bug:

在调试程序时出现了故障,拆开继电器后,发现有只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波恢谐地把程序故障统称为“臭虫”�(bug),而这一奇怪的“称呼”,后来成为计算机领域的专业行话,如DOS系统中的调试程序,程序名称就叫DEBUG。

正是由于艾肯,人类社会已经跨进了电子的时代,而原理都是基于差分机的原理

马克1号终于实现了巴贝奇的夙愿。�事隔多年后,已经担任大学教授的艾肯谈起巴贝奇其人其事来,仍然惊叹不已,他曾感慨地说,如果巴贝奇晚生75年,我就会失业。但是,马克1号是早期计算机的最后代表,�从它投入运行的那一刻开始就已经过时,因为此时此刻,人类社会已经跨进了电子的时代。

时代变化: 蒸汽时代-电时代-电子时代-电子管-集成管....

计算机构成

562c11dfa9ec8a1391e554c5f503918fa0ecc01c.png

计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。主要分为五个部分:控制器,运算器存储器,输入设备,输出设备

CPU = 运算器+控制器

主板 = I/O总线, 输入输出设备

存储器: 内存+硬盘

I/O设备:键盘,鼠标,扫描仪,显示器等等


  1. 硬件(差分机三部分)
  • 运算器: 负责算术运算和逻辑运算,与控制器组成了中央处理器(CPU)

    CPU: 运算器,控制器,寄存器(缓存)

    • 寄存器:存储数据最快,缓存CPU和内存的速度差
  • 控制器: 发送和接受指令

  • 存储器: 存储正在进行程序,将要进行程序的数据及刚处理完的数据,所有的存储都是二进制方式(CPU,内存,硬盘)

  1. 内存: 基于电流工作的(停电就完了,数据就没了)

    • 不能永久保存数据

    • 速度快

  2. 硬盘: 固态硬盘机械硬盘, 基于磁来工作

    • 永久保存数据

    • 速度慢

机械硬盘: 笔记本电脑,机械手臂,不能直接拔电源,硬盘指标(转速快,转的越快读取的速度越快,再快也快不过内存),永久存放一些数据

  • 输入设备: 键盘,鼠标等

  • 输出设备: 显示器,音响等

  1. 软件

编织机-需要打孔的图案, 差分机-需要规则, 写程序就是在写程序

  • 计算机-需要软件(让计算机完成特定的事)

软件是为了完成某一项特定工作而开发的工具

层级关系: 计算机硬件-系统软件-应用软件(不能识别硬件)-用户(可以开发应用软件,也可以控制操作系统)

  • 应用软件:运行流程: 一开始在硬盘上,启动的时候加载到内存当中,CPU从内存中来调(不能从硬盘上来调,很慢)
  1. 系统软件的启动流程

主板上有个写死的程序(bios),开机启动该程序(CPU来调用),该程序告诉该从哪来读取该系统,系统在哪块硬盘上

bios- 找到启动介质(硬盘)-把系统加载到内存中-CPU执行

  1. 应用软件的启动流程

双击鼠标-通知操作系统在硬盘中找到该软件-加载到内存中

和硬件交互的都需要通过操作系统

最后

以上就是计算机组成及其原理的大概,具体的可以去深入了解,会发现很有意思!

下一章我会在总结一下关于数据方面相关的知识!

推荐阅读更多精彩内容