一、计算机原理前世今生

计算机,言外之意,最初人民设计出来它的时候就是为了解决“计算calculation”的事情,而除了最早期的的算盘以外,最早的是在美国的一次人口普查用的,公元1880年,美国举行了一次全国性人口普查,为当时5000余万的美国人口登记造册。当时美国经济正处于迅速发展的阶段,人口流动十分频繁;再加上普查的项目繁多,统计手段落后,从当年1月开始的这次普查,花了7年半的时间才把数据处理完毕。也就是说,直到快进行第二次人口普查时,美国政府才能得知第一次人口普查期间全国人口的状况。

直到有一位叫“霍列瑞斯”的人,发明了“打孔制表机”,把穿孔纸带改造成穿孔卡片,由于每个人的调查数据有若干不同的项目,如性别、籍贯、年龄等等。霍列瑞斯把每个人所有的调查项目依次排列于一张卡片,然后根据调查结果在相应项目的位置上打孔。例如,穿孔卡片“性别”栏目下,有“男”和“女”两个选项;“年龄”栏目下有从“0岁”到“70岁以上”等系列选项,具体实现是怎么样的呢,让我们来了解下:

他的设备核心思想就是用机械来代替人工计数上面我们讲到了用卡片上的孔来代表某一项的数据,如图所示,当卡片插入机器时,机器上的小金属针就会到卡片上,如果某个地方有打孔,那么小金属针就会穿过,注入一小瓶汞,联通电路,电路会驱动电机,给某个选项的齿轮+1。这样就用自动的电动机械行为代替了手工运算。当时这类机器的效率是人工运算的10倍。要知道,这个数量级的提升在当时是非常有意义的,也就是说本来一次人工普查的耗时7年,现在减少到不到一年。

随着时代的发现和计算需求的逐渐增大,人民需要计算力更强的机器,打孔的本质其实也是区分0和1,因此人民发现有没有更快的方式去去分,这样“继电器”就产生了,如图,当电流流过线圈,线圈产生电磁场,吸引金属臂,从而闭合电路。这个电路可以连到其他电路,比如马达,马达会让计数齿轮+1,类似于上面的打孔制表机。这类型的计算机代表就是哈佛马克系列。

不幸的是,继电器的质量太大,导致开关的速度也不够快,当时最好的继电,1秒也就翻转40次左右。另外,这些继电器组成的庞大的电路,工作时会发出较高的温度。而正由于这些温度会吸引昆虫。1947年,哈佛马克2型出现了一次重大故障,最后查到原因就是有一只“死虫”把其中的继电器卡住了。因此我们今天计算机故障都叫“bug”!

正是由于以上的缺陷,所以我们又得想更加先进的模式去取代它!中间经历过真空管,直到1947年,贝尔实验室科学家发明了晶体管,一个全新的计算机时代诞生了!晶体管的物理学原理有兴趣的同学可以自己深入理解下,涉及到物理学和量子力学。我们只讲用于计算机的原理及基础。

晶体管有两个电极,我们称之为发射机和集电集。电极之间有一种材料隔开它们,这种材料有时候导电,有时候不导电(这叫半导体),控制线连到一个“门”电极,通过改变基级的电荷,我们可以控制半导体材料的导电性,来允许电流流动获不流动。就实现了和之前真空管、继电器一样的功能。

======================①所以到这里为止,我们终于知道了最佳的用于控制0和1的个体元素。====================【所以说计算机就是由晶体管组成的,下面会讲到cpu的三大部件,其实核心本质都是各种晶体管组成的逻辑电路!】

接下来我们就用晶体管组成各类逻辑电路,下面是最简单的一个and电路(“与”门),用两个晶体管可以组成,两个输入一个输出,只有两个输入都是1的时候,输出才为1,否则任何一个输入不为1,结果就不成立:

而同理,我们可以组成或门、非门、或非门。然后这些基础门再组成庞大的电路来处理复杂的运算。下面组成了一个“半加器”

而利用“半加器”又可以组装成“全加器”(有进位的加法器)【这些都是“数字逻辑电路”这门课中讲到的原理,有兴趣的同学可以自行深入了解!】

最早的因特尔74181处理器打工用了70个逻辑门,但不能执行乘除,具体的逻辑电路结构如下:

======================②到这里为止,已经把计算机中的ALU(cpu三大部件之一)讲清楚了。============================

寄存器,也是由晶体管组成的,看以下两个电路,第一个电路,开始的时候A、B输入都为1,那么输出也为1,如果之后A设为0,由于是AND门,输出会变成0,无论后面输入变成什么,output一直为0.因此,这个电路能记录0;

同理下面这个电路可以记录1

现在有了能记录0和1的电路,我们把它们组合起来,变成AND-OR锁存器,它有两个输入,“设置”输入,把输出可以变成1,“复位”输入

,把输出可以变成0。如果“设置”和“复位”都是0,电路会输出最后放入的内容。(大家可以自己模拟试以下,只要复位不为1,输出就永远是上一次的输入!也就是说,它存住了1bit的信息,这就是传说中的内存原理!!!

======================到这里为止,已经把计算机中的寄存器(cpu三大部件之一)讲清楚了。============================

cpu控制器由两个阶段组成,第一个阶段就是“取指令阶段”,第二个阶段是“解吗阶段”,这两种都是通过电路连接解决。这部分用视频过程演示可以会更清楚,文字的描述篇幅太大了(具体过程可以参考视频讲解,关注微信公众号后,直接发信息即可,我会把视频链接发给大家)。

======================到这里为止,已经把计算机中的控制器(cpu三大部件之一)讲清楚了。============================

剩下的就是执行程序了,有好多好多程序语言,最本质的原理无非是每一个程序指令会和机器码对应,而计算机也保存着这份对应关系。以便用作解码用。

而最终程序也是放在存储中,让cpu控制器去取了,然后逐条执行完成计算。这样就是cpu最简单的工作模型。

总结下,计算机核心部件如下,而cpu内部包括内存都是由晶体管组成的,其实就看我们如何去做我们的集成电路!

可以关注公众号“python三人行”,我们会定期分享讨论数据、架构、算法以及计算机或操作系统底层原理,欢迎参与!

---恢复内容开始---

【1】什么是操作系统?

“操作系统是管理计算机硬件软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。”------这个是百度百科的解释

其实最简单的理解就是一个程序,一通电第一个启动的程序,包含了shell和kernel两个模块,shell对接其他应用程序,也就是用户;而kernel对接硬件,这里硬件包含了计算机的底层硬件,另外还有一些外设(包括键盘、鼠标等)

计算机底层硬件其实最主要由三部分构成:CPU、内存和磁盘,其中CPU和内存都是由三极管构成的(此部分如果想深入了解可以看计算机原理,或联系楼主微信allenforu,我这边有快速理解的视频资料可分享,这里不展开来讲)

因此操作系统为了管控其他各类的应用程序,它有特殊的权限,它的最重要的作用就是把实际的CPU、磁盘、内存分布抽象成进程、文件、地址空间。所以操作系统是一个非常复杂的软件,像window操作系统一共有4500万行的代码

所以一般人不可能读完所有源码,我们读懂其中自己关心的一部分已经是很不错了!

上面说到操作系统是一通电第一个启动的程序,因此我们来看下启动的过程及原理:

DISK:存放OS

BIOS:基本I/O处理系统

芯片里的电路结构会把CS设置为0xFFFF,IP设置为0x0000,这样组成的地址就是0xFFFF0,而这个就是BIOS的入口地址,因此通电以后第一时间,CPU读取这个地址的代码。然后BIOS去读取放在磁盘里的OS,这样OS就被运行起来了!

操作系统的三种:

1)中断:外设

2)异常:应用程序意想不到的行为

3)系统调用:应用程序请求操作提供服务

【2】

---恢复内容结束---

原文地址:https://www.cnblogs.com/pythonfor/p/11442414.html

时间: 2024-10-10 09:15:27

一、计算机原理前世今生的相关文章

计算机原理学习(7)-- x86-32 CPU和内存管理之分段管理

前言 前一篇我们介绍了内存管理中的分页试内存管理,分页的主要作用就是使得每个进程有一个独立的,完整的内存空间,通过虚拟内存技术,使得程序可以在较小的内存上运行,而进程之间内存空间相互独立,提高了安全性.这一篇将主要介绍内存管理中分段管理,以及两种的结合,也是目前计算机普遍采用的段页式内存管理.这也直接决定了的后面程序的编译,加载以及允许时的内存布局. 1. 内存分段 1.1 为什么分段? 在x86-16体系中,为了解决16位寄存器对20位地址线的寻址问题,引入了分段式内存管理.而CPU则使用CS

python全栈 day02 计算机原理 -- 硬件

day02 计算机原理 学习总结! 一.编程语言: 计算机编程语言,也就是所谓的机械码(二进制0101),是由早期的八卦阵图演变而来,再后来的继电器(强电接触通1,不接触解除0),根据这种情况演变而来的机械码计算,及二进制. 任何一种编程语言要想实现其功能,不管怎么转变,都必须转换成计算机可以识别的机械码,及二进制码,计算机才能识别. 二.计算机构成: 计算机是可以进行数值运算和逻辑运算,按照程序顺序来执行,并具备存储分析能力的电子设备,它由硬件和软件两部分构成. 硬件主要五大部分是:运算器(C

计算机原理 发展简史

1发展简史编辑 1943——1946年美国宾夕法尼亚大学研制的电子数字积分器和计算机ENIAC(Electronic Numerical And Computer)是世界上第一台电子计算机.一般认为它是现代计算机的始祖. 早期计算机 与ENIAC计算机研制的同时,冯·诺依曼(Von Neumann)与莫尔小组合作研制EDVAC计算机,采用了存储程序方案,其后开发的计算机都采用这种方式,称为冯·诺依曼计算机. 2诺依曼机编辑 冯·诺依曼机具有以下特点: (1)计算机由运算器.控制器.存储器.输入设

计算机原理学习(2)-- 存储器和I/O设备和总线

前言 前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理.这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的. 这些东西都是看得见摸得着的硬件,平时我们买电脑时最关注的就是CPU的速度,内存的大小,主板芯片等等的参数. 1. 存储器 前面我们以一个简单通用的计算机模型来介绍了CPU的工作方式,CPU执行指令,而存储器为CPU提供指令和数据. 在这个简单的模型中,存储器是一个线性的字节数组.CPU可以在一个常数的时间内访

计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来说,屏幕上的东西简直就是天书.有了计算机我们生活发生了巨大的变化,打游戏,上网,聊天,甚至到现在以此为业.有时无不感叹计算机的强大. 人类总是聪明的而又懒惰的.即便是1+1这种简单的计算都不想自己做,1623年Wilhelm Schickard 制作了一个能进行六位以内数加减法,并能通过铃声输出答案

【转】计算机原理学习

前言 前一篇文章介绍了冯诺依曼体系结构的计算机的基本工作原理,其中主要介绍了CPU的结构和工作原理.这一篇主要来介绍存储区,总线,以及IO设备等其他几大组件,来了解整个计算机是如何工作的. 这些东西都是看得见摸得着的硬件,平时我们买电脑时最关注的就是CPU的速度,内存的大小,主板芯片等等的参数. 1. 存储器 前面我们以一个简单通用的计算机模型来介绍了CPU的工作方式,CPU执行指令,而存储器为CPU提供指令和数据. 在这个简单的模型中,存储器是一个线性的字节数组.CPU可以在一个常数的时间内访

一些同样适用于人生的计算机原理

学了软件工程导论和计算机网络,都是理论性很强的内容,有时未免感到乏味,可是仔细看看,书中介绍的不仅是计算机的相关理论,也在讲着人生呢. 1.错误发现与改正得越晚,所需付出的代价也越高. --出自软件工程的七条基本原理之坚持阶段性评审 2.得到最广泛应用的不是法律上的国际标准OSI,而是非国家标准TCP/IP.这样TCP/IP就常被称为事实上的国际标准.从这种意义上说,能够占领市场的就是标准. 一个新标准的出现,有时不一定反映其技术水平是最先进的,而是往往有着一定的市场背景. --出自计算机网络体

我对计算机原理的理解

一.cpu是如何识别010101二进制机器码的? cpu都会有预定义的指令集,每一个指令代表了一种操作:不同cpu可能有不同的指令集:当cpu运行一个程序时,会顺序地执行程序的指令. 首先控制器会读取一条指令,当cpu执行完后,控制器会生成下一条指令,不断执行: 二.编程语言的诞生和发展 1.因为计算机智能识别二进制指令,因此最开始的程序是人工输入,然后采用纸袋打孔输入,都是直接对计算机输入二进制指令: 2.由于可读性差,不易维护等诸多因素,采用了汇编语言,即用符号来代表二进制指令,代码完成后需

计算机原理--内存篇

简介 本文的目的是为了能够对特定的计算模型估算所需的内存规格,通道,个数. 主要介绍内存工作原理,主要性能指标.