计算机的发展历史,原理,及运行

本文来自我的博客apeit-程序猿IT

概述

从1946第一台通用计算机ENIARC诞生, 短短70几年,已经非常普及和强大了,几乎渗透到各个领域了。从一座房子大小到掌上电脑的微型。从简单的计算到复杂的人工智能。计算机在引领着时代的潮流。

计算机的前世今生

感觉计算机的横空出世是不是惊呆了,但是看它的发展历史,其实创新就是在原有的基础上进行加工推进,并非完全的无中生有。
计算机前世:计算加数及减数的机械计数机-》精确至12位的计数器-》解决差分程序计数机-》16位加数器-》复杂数字计数机-》ABC计算器-》ENIAC
据传ENIARC的发明者之一莫克利在阿坦纳索夫家(ABC)借住5天,借此机会盗取了研究成果及想法,之后和埃克特一起制造了“ENIAC”。

第一台电子计算机ABC(Atanasoff-Berry Computer)阿塔纳索夫-贝瑞计算机
第一台通用计算机ENIARC(Electronic Numerical Integrator And Computer)。
计算机出现的原因,战争的需要,美国“弹道研究实验室”需要大量进行计算,催生了超强计算能力的计算机。
ENIARC每秒能进行5000次加法运算(据测算,人最快的运算速度每秒仅 5次加法运算),每秒400次乘法运算。是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。

计算机原理

**冯 诺依曼体系 **

  • 存储程序原理:把程序当做数据对待,程序和该程序处理的数据以同样的方式存储起来。
    cpu按照指针加载数据,数据有描述符记录着这个内存段的访问权限(可读,可写,可执行),从描述符就可以知道是指令还是数据。
    存储器是按地址访问的线性编址的一维结构,每个单元数固定是8bit位。

  • 计算机的数制采用二进制

  • 程序按顺序执行
    指令由操作码和地址组成的。操作码指明指令的操作类型,地址码表明操作数和地址。操作数本身无数据类型标志,它的数据类型是由操作码决定。
    指令的执行直接发出控制信号,控制器控制计算机的操作。指令在存储器是按其执行顺序存放的,由指令计数器指明指令所存放的单元地址,指令计数器只有一个,一般按顺序递增。但执行顺序可按运算结果和外界条件而改变。
    运算器为中心,I/O设备与存储器的数据都要经过运算器

feng-01.jpg

  • 计算机硬件五大件:
  • 输入数据和程序的输入设备
  • 记忆程序和数据的存储器
  • 完成数据加工处理的运算器
  • 控制程序执行的控制器
  • 输出处理结果的输出设备

CPU(Central Processing Unit)中央处理器

CPU(Central Processing Unit)中央处理器: 是一块超大规模的集成电路(integrated circuit),是一台计算机的运算核心和控制核心,主要功能是解释计算机指令以及处理计算机软件中的数据。
构成:运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit),控制器(control unit),寄存器(内部存储器),缓存 。

算术逻辑运算单元(ALU):的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。

计算机运行时,运算器的操作和操作种类由控制器决定。
控制器:主要负责指令译码,并且发出为完成指令所要执行的各个操作的控制信号。

寄存器(内部存储器):暂存指令,数据,地址。CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。

缓存(高速缓冲存储器):介于cpu和内存之间的一级存储器。存放由内存调入的指令和数据。
cpu比内存快的多。

任何层次不能很好的协同处理,那么加中间层。cpu缓存介于cpu和内存中间。

cpu对内存地址编址,只能是扁平化的,平面化地址结构。它的编址必须容纳所有的内存空间。类似key-value。

32位的cpu是指:cpu数据存储能力一次是32位。
32根线,通电是1,不通电0,2^32次可能。
32位的cpu的寻址能力= 2^32次 = 4GB。所以32的cpu最多支持4GB内存。
例如:加法。先取一个数放到寄存器,取操作符放到寄存器,再取要加的数据,最后进行运算。

cpu-01.png

cpu支持的指令的所有的集合叫做指令集。普通指令,对其他人没有影响。特权指令,影响到其他人的。
指令是计算机规定执行操作的类型和操作数的基本命令。

程序运行步骤:

  1. 程序和数据放在磁盘上,启动。
  2. 将数据和程序存储到内存中
  3. cpu从内存或者高速缓存器取出指令
  4. cpu取出指令,放入寄存器 ,并对指令进行译码。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。
  5. 将指令分解为一系列微操作,然后发出各种控制指令,执行微操作系列,从而完成指令的执行。
  6. 进行计算

计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。

主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。
主频3GHZ:在1秒钟内,能做3GHZ(3亿多次)次的操作。

存储器:内存,RAM(Random Access Memory)

加速和提升cpu
cell:存储单元,固定8 bit位(8位二进制)。bytes字节(8 bit)是最小存储单位。
指令和数据都存放在内存中。
cpu本身也有存储设备(寄存器),但是太小。

计算机接口

计算机就是由硬件和软件组成。
硬件接口:
机器语言:二进制指令,二进制数据
硬件接口只保留最底层的功能,非常简陋,基础的。因此保持了最大的通用性。用硬件的接口去直接实现复杂逻辑功能是非常麻烦的,而且是固化的。

软件接口:
给用户使用最好是傻瓜式的,高级的,易用的。
软件通过调用硬件的接口,来实现各种复杂的高级功能。
提供的工具越接近最终形态,适用的范围越窄。越底层,适用范围越广,可操作性越强。

软件:
机器语言:二进制指令,二进制数据
汇编语言:低级语言;(汇编器:语言转换)
写驱动程序
几乎每种芯片都会提供汇编语言接口,它们紧密相连,所以通用性很差,使用另一种芯片又需要重新学习接口。

高级语言:
(编译器->汇编器)
系统级:C,C++
操作系统,对性能要求较高的服务类程序
应用级:java, python,php
应用程序:ansible,puppet…
程序员写的程序水平代码,编程语言。
高级语言-》编译器-》汇编语言-》汇编器-》机器语言-》计算机运行。

高级语言:离人较近,人易懂,学习容易,但是机器执行效率较低,最高级人类语言。
低级语言离机器较近,机器容易执行,执行效率高,最低级二进制。

应用:
linux运维:linux生态圈中的各应用程序应用。
shell脚本编程:让某些应用工作能自动完成。
python:专业编程语言;
ansible,openstack

DevOps:
Development 研发
Operations 运维

操作系统的前世-监控程序

计算机执行指令方式:
第一阶段:人与计算机交互。人手动输入指令,读取指令。
第二阶段:人将指令写入磁带,然后将磁带与机器交互。任务单一执行。
第三阶段:多任务,一个计算机运行多个任务。

人输入-》计算机-》输出给人。计算机运行很快,人这一环节是最慢的。
人输入-》磁带-》计算机-》输出给人。

远古时代:程序员查看芯片的说明书写程序,不同芯片接口不同,代码不能通用。
通用程序 , 专用程序。
通用程序:让底层硬件能够基本工作起来的驱动程序。最后发展为操作系统。
专用程序:解决具体任务。

计算机硬件是没有计算操作能力,所以需要I/O设备。
程序:
指令 + 数据
算法 + 数据结构
硬件本身没有任何程序。计算机器本身没有任何指令。输入输出设备:硬盘。输入设备:键盘。输出设备:显示屏。
过程式编程语言:
顺序执行,循环执行,选择执行

cpu 单任务的系统。
cpu 比内存快,cpu大量时间处于空闲的。是否能够让cpu满载。
cpu 进行时间分片,任务分批。轮流执行。
多任务:
内存分片
cpu时间切割
监控程序:为其他程序提供公平的运行环境。

延伸

linux学习线路
计算机的发展历史,原理,及运行
Unix发展历史
linux 发展历程,及原理

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值