计算机组成原理
1 计算机发展简史
计算机发展的四个阶段
- 1946-1957:电子管计算机
- 二战中英国为破解德国密文设计的
- ENIAC:战争中计算导弹参数;大且操作复杂
- 1957-1964:晶体管计算机
- 贝尔实验室发明晶体管
- MIT:TX-0;PDP-1,配备512*512显示器
- 集成度高;空间占用小;功耗低
- 1964-1980:集成电路计算机
- 德州仪器发明集成电路
- 降低尺寸和功耗
- IBM:system360,操作系统雏形
- 1980-now:超大规模集成电路计算机
- 芯片中集成了百万级别的晶体管
微型计算机的发展历史
- 2000左右,出现了高于1GHz的CPU,字长32位
- 单核CPU越来越复杂,不再遵循摩尔定律,出现多核CPU
计算机分类
-
超级计算机
-
衡量单位 1 TFlops/s = 每秒一万次浮点运算
-
世界第一:IBM summit 200795 TFlop/s;中国第一:神威太湖之光125436 TFlops/s
-
大型计算机
-
阿里2008年提出 去 IOE 行动:(IBM系统、Oracle数据库、EMC存储)
-
小型计算机
-
普通服务器,已经构成了大规模企业计算的中枢
-
工作站
-
微型计算机
计算机体系结构
- 冯诺依曼体系
- 早期计算机仅包含固定程序 -> 改变程序意味着重新设计专有电路 -> 设计出通用电路、将程序存储起来
- 创造通用的指令集结构,将运算转换为指令
- 将程序指令和数据一起存储
- 组件:
- 存储器、控制器、运算器、输出输出设备
- 现代计算机都是冯诺依曼体系
- CPU = 控制器 + 运算器
- 早期冯诺依曼结构:存储器和CPU分开 -> CPU快 存储器慢 -> CPU空转等待存储器 -> 冯诺依曼瓶颈
- 现代计算机结构
- 在冯诺依曼结构上改进,将存储器包括进CPU
- 现代CPU以存储器为核心
- 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
计算机层次与编程语言
-
程序翻译和程序解释
-
翻译是将高级语言通过编译器转化为为机器语言;解释是将高级语言解释为低级语言
- 程序翻译:C/C++、Golang;程序解释:python,Php,JavaScript;
-
翻译+解析:Java(Java代码 --编译--> JVM字节码 --解释--> 机器码)
-
层次
硬件逻辑层 - 微程序机器层 - 传统机器层 - 操作系统层 - 汇编语言层 - 高级语言层 - 应用层
-
硬件逻辑层:
门电路、逻辑电路
-
微程序层:
微指令集 - 微程序 - 硬件执行
-
传统机器层
CPU指令集(机器指令)- 微程序解析
-
操作系统层
- 向上提供建议操作界面;向下对接了指令系统,管理硬件资源;软件和硬件之间的适配层
-
汇编语言层