计算机组成原理

1 计算机发展简史

计算机发展的四个阶段

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

微型计算机的发展历史

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

计算机分类

  • 超级计算机

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

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

  • 大型计算机

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

  • 小型计算机

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

  • 工作站

  • 微型计算机

计算机体系结构

  1. 冯诺依曼体系
  2. 早期计算机仅包含固定程序 -> 改变程序意味着重新设计专有电路 -> 设计出通用电路、将程序存储起来
  3. 创造通用的指令集结构,将运算转换为指令
  4. 将程序指令和数据一起存储
  5. 组件:
    • 存储器、控制器、运算器、输出输出设备
  6. 现代计算机都是冯诺依曼体系
  7. CPU = 控制器 + 运算器
  8. 早期冯诺依曼结构:存储器和CPU分开 -> CPU快 存储器慢 -> CPU空转等待存储器 -> 冯诺依曼瓶颈
  9. 现代计算机结构
    • 在冯诺依曼结构上改进,将存储器包括进CPU
    • 现代CPU以存储器为核心
  10. 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. 程序翻译和程序解释

  2. 翻译是将高级语言通过编译器转化为为机器语言;解释是将高级语言解释为低级语言

  3. 程序翻译:C/C++、Golang;程序解释:python,Php,JavaScript;
  4. 翻译+解析:Java(Java代码 --编译--> JVM字节码 --解释--> 机器码)

  5. 层次

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

  • 硬件逻辑层:

    门电路、逻辑电路

  • 微程序层:

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

  • 传统机器层

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

  • 操作系统层

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