计算机系统概论
计算机的分类
总体上可以分为两类
- 电子模拟计算机
- 数值是由连续量来表示,运算过程也是连续的
- 精度较小,存储容量小
- 电子数字计算机
- 在算盘的基础上发展起来,使用数字表示数量的大小。
- 主要特点:按位计算,并且不连续。
习惯上所说的电子计算机就是电子数字计算机。
电子数字计算机即“电脑”,又可进一步分为两类:
- 专用计算机
- 最有效率 最快速 最经济,但是适应性差
- 例如: Embedded(嵌入式) IoT(物联网) 等等
- 通用计算机
- 适应性强 但是效率 速度 经济性都有所牺牲
- 又可分为六类:
- 超级计算机(巨型机) 应用于航天、勘探、气象、金融等领域
- 大型机 商业领域,如 : 银行 电信 网络服务器 等等
- 服务器(中型机)
- 微型机(PC机) 普及率最高
- 单片机
- 多核机
计算机发展简史
五代计算机
- 第一代 1946—1957年 电子管计算机(Vacuum Tubes) 数据处理
- 冯诺依曼计算机(von Neumann Machine)
- 第二代 1958—1964年 晶体管计算机(Transistor) 工业控制
- 第三代 1965—1971年 LSI (Large-scale Integrated Circuit) 中小规模集成电路计算机 小型计算机开始出现。
- 8080, 8Bit
- 第四代 1972—1990年 VLSI (Very-Large-scale Integration) 大规模和超大规模集成电路计算机 微型计算机开始出现。
- IBM PC , Apple Lisa , Alpha DEC 64Bit
- 第五代 1991年开始 ULSI (Ultra-Large-scale Integration) 巨大规模集成电路计算机、单片机出现。
- Low-Power and Invisible
摩尔定律:芯片上的晶体管数量,每18个月翻一番
计算机性能指标
- 吞吐量 : 表示一台计算机在某一时间间隔内能够处理的信息量。
- 常用单位 : 字节/秒 ($ B/s $)
- 响应时间 : 表示从输入有效到系统产生响应之间的时间度量。
- 常用单位 : 微秒 $ \mu s $ $ 10^{-6}s $ 、 纳秒 $ ns $ $ 10^{-9}s $
- 利用率 : 在给时间间隔内系统被实际使用的时间所站的比率,用百分比表示。
- 处理机字长 : 处理机运算器一次能够完成的二进制数运算的位数
- 如 32 位机、64 位机。
- 总线宽度 : 一般指CPU中运算器和存储器之间进行互连的内部总线二进制位数
- 存储器容量 : 存储器中存储单元的总数目,通常用于比较大小。
- 常用单位 : $KB( 10^{10} )$、$MB( 10^{20} )$、$GB( 10^{30} )$、$TB( 10^{40} )$。B表示字节。
- 存储器带宽 : 单位时间内从存储器读出的二进制数信息量,通常用于比较速度。
- 常用单位 : 字节/秒($ B/s $)
- 主频/时钟周期 : CPU的工作节拍受主时钟控制,主时钟会产生固定频率的时钟。
- CPU主频 : 主时钟的频率 $ f $
- CPU时钟周期 : 主频的倒数,$ T= \frac{1}{f}$ 度量单位为 $ \mu s $、$ ns $
- CPU执行时间 : 表示CPU执行一般程序所占用的CPU时间
- 计算公式 : $$ CPU执行时间 = CPU时钟周期数 \times CPU时钟周期 =I_N \cdot CPI \cdot T $$ $$ 其中 I_N 为指令总数 $$
- CPI : 表示每条指令周期数,即执行一条指令所需要的平均周期数。
- 计算公式 : $$ CPI = 执行某段程序所需的CPU时钟周期数 \div 程序包含的指令条数 $$ $$ CPI = \frac{时钟周期数}{I_N} = \frac {\sum_{i=1}^n CPI_i \cdot I_i}{I_N} = \sum_{i=1}^n CPI_i \cdot \frac {I_i}{I_N} $$
- MIPS (Million Instructions Per Secopnd) : 表示每秒执行多少百万顶点指令数。
- 计算公式 : $$ MIPS = 指令数 \div(程序执行时间 \times 10^6) = \frac{I_N}{I_N \cdot CPI \cdot \frac{1}{f} \cdot 10^6}=\frac{f}{CPI \cdot 10^6} $$ $$ 其中 \frac {1}{f} 为 CPU 周期 $$
- FLOPS (Floating-point Operations Per Second) : 表示每秒执行浮点操作的次数,用来衡量机器浮点操作的性能.
- 计算公式 : $$ FLOPS = 程序中的浮点操作次数 \div 程序执行时间(s) $$
计算机硬件
电子计算机包含以下几部分:
- 运算器
- 进行算术运算和逻辑运算,通常称为 ALU;
- ALU, 即算术逻辑运算单元。
- 存储器
- 存储器存储数据和程序。
- 数据在存储器中以 0 1 的形式存储;
- 存储器由若干存储单元组成,存储单元的总数称为存储容量;
- 每个存储单元的编号称为 地址,通常是按照字节编址;
- 存储器分为内部存储器和外部存储器,通常外部存储器容量较大。
- 控制器
- 按照一定顺序读取指令,进行指令译码,并按照指令要求进行相应操作;
- 每一个基本操作(加减乘除)就是一条指令,一串指令序列构成了计算程序;
- 指令通常分为操作码和地址码;
- 将程序(指令序列)存储到存储器中称为存储程序,控制器依据存储程序协调计算任务称为程序控制;
- 冯·诺依曼结构:指令和数据存放在同一个存储器中;(使用统一编址)
- 哈佛结构:指令和数据放在不同的存储器中。(使用独立编址)
- 计算机的若干基本指令,构成了计算机的指令系统。
- 取指令的时间称为取指周期,执行指令的时间称为执行周期;
- 一个字的二进制位数称为字长,一个字包含一个及以上的字节;
- 某字代表要处理的数据,称为数据字,如果为一条指令,称为指令字
- 在取指周期读出的信息为指令流,流向控制器;
- 在执行周期读出的信息为数据流,流向运算器。
- 按照一定顺序读取指令,进行指令译码,并按照指令要求进行相应操作;
- I/O设备(输入输出设备)
- 输入输出设备通常为外围设备;
- I/O设备通过适配器与主机相连。
- 总线
- 系统总线是构成计算机的骨架,用于各部件之间传输数据。
在计算机中运算器和控制器合称为中央处理器(CPU)。
冯•诺依曼型计算机的工作原理: 存储程序并按地址顺序执行
计算机软件
组成与分类
- 系统软件
- 各种服务性程序,如诊断程序、排错程序、练习程序等
- 语言程序,如汇编程序、编译程序、解释程序等
- 操作系统
- 数据库管理系统
- 应用软件
- 用户利用计算机解决问题编制的程序
发展演变
编程语言的发展:
- 手编程序 机器语言 二进制
- 汇编程序 符号语言 汇编程序
- 高级程序 算法语言/高级语言 机器编译/解释程序
系统软件发展:
- 操作系统
- 数据库管理系统
算法语言需要通过多层转换从而使计算机能够“理解”其含义:
- 源程序: 使用算法语言编写的程序
- 编译程序: 使用机器语言编写, 将源程序翻译为目的程序(机器代码);
- 运行系统: 目的程序不能独立运行, 需要运行系统进行辅助
- 编译器: 编译程序和运行系统的统称
- 链接器: 将多个模块与库程序组合在一起进行解析
- 加载器: 将机器代码放在合适的内存位置便于处理器处理
<!– 补图片 ,c语言转换层次 –>
计算机系统的层次结构
<!– 补充多级的计算机结构图 –>
五级计算机结构:
- 微程序设计级(逻辑电路级) 实在的硬件级
- 一般机器级(机器语言级)也是硬件级
- 操作系统级 混合级
- 汇编语言级 如果不采用汇编语言这一级别可以取消
- 高级语言级
多层结构的优点:
- 高级层上编程更简单;
- 具有兼容性,向上兼容,旧程序可以运行在新机器上;
- 硬件变化不影响高层;
- 硬件电路更简单。
多层机器的变革:
- 微程序的发明
- 操作系统的发明
- CISC 和 RISC
其他层次结构
<!– 其他结构层次补图 –>
- Level 5 -> Problem-oriented language level
- Translation : Compiler
- Level 4 -> Assembly language level
- Translation : Assembler
- Level 3 -> Operating system machine level
- Partial interpretation : Operating system
- Level 2 -> Instruction set architecture level
- Interpretation(microprogram) or direct execution
- Level 1 -> Microarchitecture level
- Hard ware
- Level 0 -> Digital logic level
软件与硬件逻辑等价性
随着大规模集成电路技术的发展和软件硬化的趋势,计算机系统的软、硬件界限已经变得模糊了。因为任何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由硬件完成,也可以由软件来完成。
- 固件:功能上是软件,形态上是硬件。
- BIOS (Basic Input Output System) 基本输入输出系统
- 一组固化到计算机内主板上一个ROM芯片上的程序
Summary
- 计算机的分类(电子数字计算机、电子模拟计算机)
- 计算机发展简史(发展史,性能指标)
- 计算机的硬件(运算器、存储器、控制器、适配器、总线和输入/输出设备)
- 计算机的软件(系统软件和应用软件)
- 计算机系统的层次结构(五级)