查看源文件

计算机组成原理

1 计算机发展简史

计算机发展的四个阶段

  1. 1946-1957:电子管计算机
    • 二战中英国为破解德国密文设计的
    • ENIAC:战争中计算导弹参数;大且操作复杂
  2. 1957-1964:晶体管计算机
    • 贝尔实验室发明晶体管
    • MIT:TX-0;PDP-1,配备512*512显示器
    • 集成度高;空间占用小;功耗低
  3. 1964-1980:集成电路计算机
    • 德州仪器发明集成电路
    • 降低尺寸和功耗
    • IBM:system360,操作系统雏形
  4. 1980-now:超大规模集成电路计算机
    • 芯片中集成了百万级别的晶体管

微型计算机的发展历史

  • 2000左右,出现了高于1GHz的CPU,字长32位
  • 单核CPU越来越复杂,不再遵循摩尔定律,出现多核CPU

计算机分类

  • 超级计算机

    • 衡量单位 1 TFlops/s = 每秒一万次浮点运算

    • 世界第一:IBM summit 200795 TFlop/s;中国第一:神威太湖之光125436 TFlops/s

  • 大型计算机

    • 阿里2008年提出 去 IOE 行动:(IBM系统、Oracle数据库、EMC存储)
  • 小型计算机

    • 普通服务器,已经构成了大规模企业计算的中枢
  • 工作站

  • 微型计算机

计算机体系结构

  1. 冯诺依曼体系
  • 早期计算机仅包含固定程序 → 改变程序意味着重新设计专有电路 → 设计出通用电路、将程序存储起来
  • 创造通用的指令集结构,将运算转换为指令
  • 将程序指令和数据一起存储
  • 组件:
    • 存储器、控制器、运算器、输出输出设备
  • 现代计算机都是冯诺依曼体系
  • CPU = 控制器 + 运算器
  • 早期冯诺依曼结构:存储器和CPU分开 → CPU快 存储器慢 → CPU空转等待存储器 → 冯诺依曼瓶颈
  1. 现代计算机结构
    • 在冯诺依曼结构上改进,将存储器包括进CPU
    • 现代CPU以存储器为核心
  2. CPU类型简单区分
    • x86 / x64:基于架构的复杂指令集,二者CPU位数不同
      • x86 = x86_32 (32位); x64 = x86_64 (64位)
    • x64 / amd64:都是64位处理器,二者公司不同
      • x64:Intel公司
      • amd64:amd公司
      • 对于安装程序而言,二者一样
    • ARM架构
      • x86架构主要用于PC;ARM架构主要用于手机和pad
      • arm架构32位:arm v7;arm架构64位:arm64

计算机层次与编程语言

  1. 程序翻译和程序解释

    • 翻译是将高级语言通过编译器转化为为机器语言;解释是将高级语言解释为低级语言
    • 程序翻译:C/C++、Golang;程序解释:python,Php,JavaScript;
    • 翻译+解析:Java(Java代码 —编译⇒ JVM字节码 —解释⇒ 机器码)
  2. 层次

    硬件逻辑层 - 微程序机器层 - 传统机器层 - 操作系统层 - 汇编语言层 - 高级语言层 - 应用层

    • 硬件逻辑层:

      门电路、逻辑电路

    • 微程序层:

      微指令集 - 微程序 - 硬件执行

    • 传统机器层

      CPU指令集(机器指令)- 微程序解析

    • 操作系统层

      • 向上提供建议操作界面;向下对接了指令系统,管理硬件资源;软件和硬件之间的适配层
    • 汇编语言层