Skip to content

概述

计算机的发展历史

计算机发展的四个阶段

  • 1946年 ~ 1957年:第一阶段 - 电子管计算机
    • 第二次世界大战是电子管计算机产生的催化剂(英国为了解密德国海军的密文)
    • 埃尼阿克(ENIAC)是第一阶段较为著名的电子管计算机
      • 埃尼阿克(ENIAC)拥有1万8千多个电子管,运行耗电量150千瓦,重量达30吨,占地1500平方英尺
    • 电子管计算机总结
      1. 集成度小,空间占用大
      2. 功耗高,运算速度慢
      3. 操作复杂,更换程序需要接线
  • 1957年 ~ 1964年:第二阶段 - 晶体管计算机
    • 贝尔实验室的三个科学家发明了晶体管,因此十年内给计算机带来了革命
    • 全世界第一个晶体管计算机:TX-0,诞生于麻省理工大学的林肯实验室
    • 同期较为出名的晶体管计算机:PDP-1,是当时性能最高的晶体管计算机。拥有4k的内存,每秒20万个指令的能力,配备512 x 512的显示器
    • 晶体管计算机总结
      1. 集成度相对较高,空间占用相对小
      2. 功耗相对较低,运行速度较快
      3. 操作相对简单,交互更加方便
  • 1964年 ~ 1980年:第三阶段 - 集成电路计算机
    • 德州仪器的工程师发明了集成电路(IC)
    • 集成电路计算机总结
      1. 计算机变得更小
      2. 功耗变得更低
      3. 计算速度变得更快
    • 操作系统的诞生
      • 当时IBM有两款计算机卖的比较好,分别是 70941401 这两款计算机,它们之间主打功能不同,互相无法兼容。为了解决这个问题,IBM推出了兼容的产品System/360, System/360也成为了操作系统的雏形。操作系统的出现,改变了计算机行业,使得不同的电子元器件,不同电路的计算机,都能在同一个操作系统下面运行。
  • 1980年 ~ 现在:第四阶段 - 超大规模集成电路计算机

    • CPU就是一个超大规模集成电路
    • 一个芯片集成了上百万的晶体管
    • 速度更快、体积更小、价格更低
    • 用途丰富:文本处理、表格处理、高交互的游戏与应用
  • 微型计算机的发展历史

    • 单核CPU
      1. 1971 - 1973:500KHz频率的微型计算机(字长8位)
      2. 1973 - 1978:高于1MHz频率的微型计算机(字长8位)
      3. 1978 - 1985:500MHz频率的微型计算机(字长16位)
      4. 1985 - 2000:高于1GHz频率的微型计算机(字长32位)
      5. 2000 - 现在:高于2GHz频率的微型计算机(字长64位)
    • 多核CPU
      1. 2005年 Intel崩腾系列双核CPU、AMD速龙系列
      2. 2006年 Intel酷睿四核CPU
      3. Intel酷睿系列16核CPU
      4. 在服务器领域 Intel至强系列五十六核CPU

计算机的分类

  • 超级计算机
    • 功能最强、运算速度最快、存储容量最大的计算机
    • 标记他们运算的单位是TFlop/s(1TFlop/s = 每秒一万亿次浮点计算)
      • Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz: 44.87GFlop/s 44.87GFlop/s = 0.04487TFlop/s
  • 大型计算机
    • 又称大型机、大型主机、主机等
    • 具有高性能,可处理大量数据与复杂的运算
    • 在大型机市场领域,IBM占据着很大的市场份额(在大型计机中使用GOBOL编程语言)
  • 迷你计算机(服务器)
    • 也称为小型机,普通服务器
    • 不需要特殊的空调场所
  • 工作站
    • 高端的通用微型计算机,提供比个人计算机更强大的性能
    • 类似于普通台式电脑,体积较大,但性能强劲
  • 微型计算机
    • 又称为个人计算机,是最普通的一类计算机
      1. 台式机
      2. 笔记本电脑
      3. 一体机

计算机的体系与结构

  • 冯诺依曼体系
    • 将程序指令和数据一起存储到计算机设计概念结构
    • 能够把需要的程序和数据送至计算机中
    • 能够长期记忆程序、数据、中间结果及最终运算结果的能力
    • 能够具备算术、逻辑运算和数据传送等数据加工处理的能力
    • 能够按照要求将处理结果输出给用户
  • 现代计算机的结构
    • 现代计算机在冯诺依曼体系结构基础上进行修改
    • 解决CPU与存储设备之间的性能差异问题
      1. 增加内存
      2. CPU的寄存器

计算机的层次与编程

程序翻译与程序解析

  • 程序翻译(编译器):较为高级的计算机语言L1进行逻辑描述,转换成较为低级的计算机语言L0,最终实际执行的语言就是L0
  • 程序解析(解析器):较为高级的计算机语言L1进行逻辑描述,使用L0语言实现另一个程序作为输入转为较为低级的计算机语言L0
  • 总结
    1. 计算机执行的指令都是L0
    2. 翻译过程生成新的L0程序,解释过程不生成新的L0程序
    3. 解释过程由L0编写的解释器去解释L1程序
  • 程序翻译型语言
    1. C/C++
    2. Object-C
    3. Golang 4.
  • 程序解释型语言
    1. Python
    2. PHP
    3. JavaScripy
  • 翻译 + 解释型语言
    1. Java
      • java -> 编译 -> jvm字节码 -> 解释 -> 机器码 (平时编写程序都是在JVM虚拟机的上层进行编写)
    2. C#

计算机的层次

  • 层次(由低到高)
    1. 硬件逻辑层
    2. 微程序机器层
    3. 传统机器层
    4. 操作系统层
    5. 汇编语言层
    6. 高级预压层
    7. 应用层
  • 层次划分
    • 1~3为实际的机器,硬件逻辑,跟物理设备相关的。
    • 4~7为虚拟机器
    • 4~6为系统软件
    • 7为应用软件
    • 微指令 < 微程序 = 机器指令
      • 一条机器指令对应一个微程序
      • 一个微程序对应一组微指令

计算机的速度与单位

  • 容量单位

    • 在物理层面,高低电平记录信息
    • 理论上只认识0/1两种状态
    • 0/1能够表示的内容太少了,需要更大的容量表示方法,0/1成为bit(比特位)
    bit Byte KB MB GB TB PB EB
    名字 比特位 字节 千字节 兆字节 吉字节 太字节 拍字节 艾字节
    比例 - 8bits 1024B 1024KB 1024MB 1024GB 1024TB 1024EB
    常见设别 门电路 - 寄存器 高速缓存 内存/硬盘 硬盘 云硬盘 数据仓库
  • 速度单位

    • 网络速度
      • 为什么100M的光纤,测试峰值速度只有12M每秒?
        • 网络常用单位为Mbps
        • 100M/s = 100Mbps = 100Mbit/s
        • 100Mbit/s = (100/8)MB/s = 12.5MB/s
  • CPU 速度

    • CPU的速度一般体现为CPU的时钟频率
    • CPU的时钟频率的单位一般是赫兹(Hz)
    • 主流CPU的时钟频率都在2GHz以上
    • Hz其实就是秒分之一:它是每秒中的周期性变动重复次数的计量
    • 在高低电平中每秒变幻的次数:2GHz = 2 * 1000^3Hz = 20亿次/秒

计算机的字符与编码

  • 字符编码集的历史
    • ASCII码:一共有128个(33 + 95 = 128 = 2^7)
      • 使用7个bits就可以完全表示ASCII码
      • 包含95个可打印字符
      • 33个不可打印字符(包括控制字符) ASCII
    • ASCII码缺点:很多应用或者国家中的符号都无法表示,还有数学符号:除、不等于、大于等于、约等于、π...,为了补充缺点,有了以下的ASCII码的扩充
    • Extended ASCII码:第一次对ASCII码进行扩充,7bits => 8bits,扩充后为256个字符,如下表 ASCII 扩充
    • 字符编码集的国际化
      • 欧洲、中亚、东亚、拉丁美洲国家的语言多样性
      • 语言体系不一样,不以有限字符组合的语言
      • 中国、韩国、日本等的语言最为复杂
  • 中文编码集
    • GB2312
      • 1980年发明,中文名称《信息交换用汉字编码字符集 -- 基本集》
      • 一共收录了7445个字符
      • 包括6763个汉字和682个其它符号
    • GBK
      • 1995年推出,中文名称《汉字内码扩展规范》
      • 向下兼容GB2312,向上支持国际ISO标准
      • 收录了21003个汉字,支持全部中日韩汉字
    • Unicode
      • 兼容全球的字符集
      • 统一码、万国码、单一码
      • Unicode定义了世界通用的符号集,UTF-*实现了编码
      • UFT-8以字节为单位对Unicode进行编码