文章目录
一. 计算机发展史概述
1946年2月14日,在美国宾夕法尼亚大学,众所周知的世界上第一台电子数字计算机ENIAC诞生。然而,英国在二战期间研制的电子计算机Colossus(巨人)却要比ENIAC早两年,多年来,英国人对自己研制首台电脑的荣誉始终保持着缄默。
第一代:电子管计算机
第二代:晶体管计算机
第三代:中小规模集成电路计算机
第四代:大规模和超大规模集成电路计算机
第五代:人工智能和大数据云服务的结合
最开始的时候,计算机诞生的使命是为了战争,二战时期,为了计算导弹轨道
计算的需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算机的发展历程。
二. 计算机基本组成
1. 冯诺依曼体系
冯·诺依曼(John von Neumann,1903~1957),20世纪最重要的数学家之一,在现代计算机、博弈论、核武器和生化武器等诸多领域内有杰出建树的最伟大的科学全才之一,被后人称为“计算机之父”和“博弈论之父”。
美籍匈牙利数学家冯·诺伊曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯·诺依曼体系结构冯·诺伊曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯·诺伊曼的这个理论称为冯·诺伊曼体系结构。
现代的计算机,大多遵守冯诺依曼体系结构
冯诺依曼体系提出任何的计算机都应该有cpu(运算器与控制器),输入设备,储存器和输出设备组成。
cpu 中央处理器: 进行算术运算和逻辑判断.
存储器: 分为外存和内存,用于存储数据(使用二进制方式存储).
输入设备: 用户给计算机发号施令的设备.
针对存储空间:
硬盘 > 内存 >> cpu
针对数据访问速度:
cpu >> 内存 > 硬盘
2. cpu和GPU
cpu是计算机最核心的部分,进行算术运算和逻辑判断.
cpu可以认为是当前人类科技的巅峰之作,技术难度上,能和cpu相提并论的,只有"氢弹".
cpu 造的最好的就是美国(Intel,AMD,高通),全世界的计算机,绝大多数,都是使用这几个公司的cpu.
cpu难的不是理论,而是工艺,lntel AMD 可以研发出5 nm制程的cpu 了,目前(2022年)能买到的cpu最好就是这个.
cpu最重要的指标,就是叫做"主频",3.20Ghz,描述了cpu运算的速度,其实本质是3.2G时钟周期,可以近似的视为,每秒钟能执行32亿条指令.
与cpu类似的功能组件还有一个显卡GPU,显卡的定位和cpu类似.
cpu通用计算芯片→好比大学生,可以让他算1+1,也可以算微积分.
GPU专用计算芯片→好比小学生,只会算1+1
很多图形相关运算(游戏,视频剪辑),不需要计算微积分,就只需要算1+1,但是计算的量特别大,拿cpu算,也可以,但是大材小用了,此时就专门搞了个GPU,专门负责算这些1+1的(这里面包含很多很多的小学生).
3. cpu基本组成
3.1 逻辑门
逻辑门(Logic Gates)是在集成电路(Integrated Circuit)上的基本组件。简单的逻辑门可由晶体管组成。这些晶体管的组合可以使代表两种信号的高低电平在通过它们之后产生高电平或者低电平的信号。高、低电平可以分别代表逻辑上的“真”与“假”或二进制当中的1和0,从而实现逻辑运算。
3.2 门电路
用以实现基本逻辑运算和复合逻辑运算的单元电路称为门电路。常用的门电路在逻辑功能上有与门、或门、非门、与非门、或非门、与或非门、异或门等几种。
4. 算术逻辑单元 ALU(Arithmetic & Logic Unit)
ALU是计算机中进行算数、逻辑运算的核心部件,是计算机的数学大脑,ALU有两个单元,一个是逻辑单元,就是由前面的逻辑门实现,还有一个单元是算术单元AU。
由于计算机中的计算是以二进制来进行运算的,我们先来了解一下二进制。
算数单元(AU),负责计算机里的所有数字操作,比如四则运算,当然它能做的远远不止这些,最基本的运算器就是加法器,包括半加器和全加器,配合上逻辑门就能够进行运算了。
半加器(Half Adder),进行两个 1 位(bit) 数的相加,根据基本的门电路,可以构建出半加器。
全加器(Full Adder),进行三个 1 位(bit) 数的相加,根据半加器和门电路,可以构建出全加器。
进一步通过半加器和全加器可以构建8位的加法器,以此类推,最终可以实现32位或64位的加法器。
逻辑单元,如8 位(bits) 数非 0 判断器,由多个或门构成,就是每两位为一个单位,判断是否含有1,如果含有1最终结果会返回1,表示这个数不是0。
上面的ALU实现图是8位的,都是由基本的门电路一步一步构建而成的,前面的半加器和全加器也是基于门电路实现的,现在大部分是64位的计算机了,虽然这里构建的是一个8位的ALU,但是基于64的ALU也是按照类似的思路构建出来的。
5. 寄存器和内存
寄存器和内存(主储存器)都是属于储存器,除此之外,还包括外存(硬盘,磁盘等)。
寄存器是cpu中内部的储存器,速度比内存快3-4个数量级,空间比内存小很多,一般几百字节左右。
计算机的工作离不开寄存器,因为在计算之前,首先需要将数据加载到寄存器,然后计算完成后需要把运算好的结果保存到寄存器中。
内存被称为 RAM(Random Access Memory),可以支持 O(1) 时间复杂度访问任意位置的数据,这也就是我们数组下标访问操作是 O(1) 的硬件支持。
6. 控制单元
有了ALU和存储了,但这还是不足以让计算机工作起来,需要有一个部件来指挥 ALU 进行何种的运算,而这个部件就是控制单元(CU)。
7. 指令
所谓指令,即指导 cpu 进行工作的命令,主要有操作码 + 被操作数组成。其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。指令本身也是一个数字,用二进制形式保存在内存的某个区域中。
指令周期:
时钟频率的概念:
最后,ALU + CU + 寄存器 + 时钟就组成了我们平时经常看到的一个词汇:中央处理器(Center Process Unit)简称 cpu。
8. 编程语言到指令
我们所写的代码都会被编译器转换成许多条cpu能够识别的机器语言指令,然后cpu去执行指令,实现程序的功能。