1.1 计算机发展历程
- 从数据表示看,分为数字计算机和模拟计算机
现代计算机理论基础
- 布尔代数
- 计算机开关电路
- 图林机
- 阿塔纳索夫三原则
- 维纳现代计算机五原则
- 数字式不是模拟式
- 以电子元件构成并尽量减少机械装置
- 采用二进制而不是十进制
- 内部存放计算表
- 内部存储数据
- 冯诺依曼计算机原理
- 存储程序
- 运算器、控制器、存储器、输入设备、输出设备
- 存储器:存储数据和指令;控制器:自动执行指令;运算器:加减乘除与或非;输入输出设备:人机通过这些设备使用计算机
- 计算机内部以二进制表示指令和数据;指令包括操作码和地址码;一串指令组成程序
1.1.1 国外计算机发展概括
第n代 | 时间 | 逻辑元件 | 存储器 | 特点 | 典型机器 | 语言 |
---|---|---|---|---|---|---|
第一代 | 20世纪四五十年代 | 电子管 | 声延迟线、磁鼓、纸带、卡片 | 定点运算 | ENIAC、EDVAC、EDSAC | 低级语言(机器、汇编) |
第二代 | 20世纪五六十年代 | 晶体管 | 内:磁芯存储器 外:磁鼓、磁带 | 浮点运算、变址、中断、I/O处理器 | TRADIC、IBM7070 | 高级语言和编译器 |
第三代 | 20世纪六七十年代 | 集成电路 | 半导体磁盘 | 操作系统 | DEC PDP、IBM360、CDC6600 | |
第四代 | 20世纪七十年代后期 | 超大规模集成电路 | 半导体磁盘 | 普适计算、嵌入式、智能化 | Cray-1 |
1.1.2 摩尔定律
- 内容:价格不变时,集成电路上可容纳的晶体管数量大约18~24个月翻一番,性能也将提升一倍
- 意义:
- 单芯片集成度⬆️,成本变化不大,总成本⬇️
- 电路距离⬇️,连线⬇️,工作速度⬆️
- 芯片内部连线⬆️,外部⬇️,可靠性⬆️
- 体积⬇️,电能消耗⬇️,适应性⬆️
(补)计算机发展规律(选)
- Moore定律:晶体管数量大约18~24个月翻一番,性能也将提升一倍
- Bell定律:保持计算机能力不变,微处理器价格,每18个月减少一半
- Gilder定律:未来25年(1996年预言),主干网带宽每6个月增加一倍
- Metcalfe定律:网络价值同网络用户数的平方成正比
- DRAM发展:DRAM密度每年增加60%,每三年翻四倍
- 硬盘发展规律:硬盘密度每年增加约一倍
- 新Moore定律:从现在起,每18个月新增的存储量是有史以来存储量的和
1.1.3 集成电路工艺发展概况
- 集成电路生产
- IC设计
- IC制造
- IC封测
- 光刻
1.1.4 我国计算机发展概况
1.2 计算机系统的组成
- 硬件、软件、固件(固化的软件,兼具软件和硬件的特性)
1.2.1 计算机硬件系统
- 硬件系统:构成计算机系统的电子线路和电子元件等物理设备的总称
- 硬件:计算机的物质基础、核心
- 数字硬件:对数字进行处理、传输、存储的硬件
- 转换硬件:信息→数字信息,数字信息→硬件
冯诺依曼
- 存储程序:解题步骤编制成程序,将程序和运行程序所需要的数据以二进制的形式存放到存储器中
- 程序控制:控制器逐条取出存储器中的指令并按顺序执行,控制各功能部件进行操作,完成数据加工处理
- 二者为冯诺依曼结构计算机的主要设计思想,冯诺依曼体系结构
- 硬件系统:运算器、控制器、存储器、输入设备、输出设备
- 主机
- CPU
- 运算器:完成算数运算、逻辑运算
- 控制器:控制指令执行
- 存储器:存放程序数据
- CPU
- 输入输出设备
- 总线
- 主机
存储器
- 功能:存放程序和数据,二进制表示,统称为信息
- 地址:存储单元按某种顺序编号,编号为单元地址,与信息一一对应
- 主存储器都是半导体存储器
- 访问存储器:向存储单元存入或取出信息
- 相关部件:
- 地址总线:为访问存储器传递地址信息,单向
- 数据总线:为访问存储器传递数据信息,双向
运算器
- 功能:信息加工处理,对数据进行算术运算和逻辑运算
- 构成:
- 算术逻辑单元(ALU)
- 一系列寄存器
- 机器字长:运算器一次能处理的二进制位数,重要性能指标
控制器
-
功能:指挥中心,使计算机各部件协调工作
-
实质:解释程序,读取-译码-发送,以实现指令和程序的功能
-
信息:
- 控制流信息:操作命令,分散流向各个功能部件,发源地时控制器
- 来源:
- 指令寄存器中的机器指令,计算机操作依据
- 状态寄存器,存放反映计算机运行的状态信息
- 时序电路
- 来源:
- 数据流信息:受控制流信息控制,从一个部件流向另一个部件,过程中被加工
输入/输出设备
- 通过接口与主机连接
- 外存储器:输入/输出设备,作为辅存使用
- 控制流信息:操作命令,分散流向各个功能部件,发源地时控制器
1.2.2 计算机软件系统
- 软件系统:全部程序的集合
- 按功能分类:应用软件、系统软件
软件与硬件
- 互相依存
- 逻辑等效性:某些功能可由软件或硬件实现
- 协同发展
操作系统
- 操作系统:管理计算机中各种资源、自动调度用户作业、处理各种中断软件
程序设计语言及语言处理程序
- 机器语言
- 机器语言:二进制代码表示的计算机能直接识别和执行的一种机器指令的集合
- 面向机器的语言,不同硬件结构的计算机机器语言不同
- 机器语言程序执行快、编程繁琐、硬件透明性差、直观性差、容易出错
- 汇编语言
- 汇编语言:用助记符表示的面向机器的计算机语言
- 必须对处理器内部架构了解,汇编程序必须利用汇编器转化成机器指令才能执行
- 汇编语言便于记忆和描述指令
- 高级语言
- 高级语言:与人类自然语言接近且能为计算机所接受的、语意确定、规则明确、自然直观和通用易学的计算机语言
- 解释型语言:边解释边执行,不生成目标程序。Java、Basic
- 编译型语言:将源程序翻译成目标程序执行。C
- 语言翻译程序:编译程序、汇编程序、解释程序、其他软件操作程序
- 编译程序/编译器:高级语言➡️汇编代码
- 汇编程序/汇编器:汇编语言➡️机器语言目标程序
- 解释程序/解释器:源程序语句➡️机器指令
数据库管理系统
- 数据库:华中科技大学达梦数据库
- 数据库管理系统:Oracle、DB2
应用程序
1.3 计算机系统的层次结构
1.3.1 系统层次结构
1.3.2 各层之间的关系
1.3.3 软件和硬件的逻辑功能等价性
1.4 计算机性能指标和评价
1.4.1 基本性能指标
字长
- 字长以字节(byte)为单位,现在一般为32或64
- 字长一般为CPU一次处理的数据位数,等于寄存器、运算器、数据总线位宽
- 例如一次最多出来两个八位二进制数相加,得到八位二进制数,则字长为8
- 对计算机性能影响:字长 ↑ ,性能 ↑
- 影响计算准确度
- 影响数据表示范围和精度
总线宽度
- 总线宽度:数据总线一次你并行传送的最大信息位数
- 有些计算机内外部宽度不一致
主存容量
- 主存容量:主存能存储的最大信息量,一般用M✖️N表示(M存储单元数/字容量,N每个单元存储的二进制位数/位容量)
- 主存容量⬆️,程序运行时访问辅存次数⬇️,执行速度⬆️,计算机性能⬆️
存储带宽
- 存储带宽:指单位时间内与主存交换的二进制信息量,单位Byte/s
- 影响因素:数据位宽和数据传输速率
1.4.2 与时间有关的性能指标
- 执行/响应时间:硬盘访问时间、内存访问时间、I/O操作时间、操作系统开销时间和CPU执行时间等
时钟周期
- 时钟周期:计算机中最基本、最小的时间单位,一个时钟周期内CPU只完成一个最基本的动作
- 时钟周期=1/时钟频率,又称节拍周期
- 主频⬆️,时钟周期⬇️,
CPU主频f
- CPU主频:CPu内数字脉冲信号振荡3的频率
- CPU主频 = 1/时钟周期,又称始终频率,单位HZ
外频
- 外频:系统总线的工作频率,CPU与主板之间同步运行的速度
- 标准外频(MHz):66、100、133、200等
倍频
- 主频=外频×倍频
CPI
- CPI:执行每条指令(每条或某一类或某个程序中)所需要的平均时钟周期数
- CPI = m / IC
- m:程序执行所需时钟周期数
- IC:总指令条数
- CPI = ∑ni=1(CPIi × ICi ÷ IC)
CPU时间
- TCPU = m × T = m / f
- T:机器周期
- TCPU = CPI × IC × T
- 影响因素:
- 时钟频率
- CPI
- 指令条数
- 程序执行时间(CPU时间+I/O时间+存储访问时间+排队时延等)
IPC
- IPC:每个时钟周期CPU能执行的指令条数
- IPC = 1 / CPI
- 已经可以大于1
MIPS
- MIPS:每秒百万条指令,GIPS更大
- MIPS = 指令条数 /( 执行时间 × 106 )
- MIPS = f / CPI = f × IPC —— CPU全性能公式
MFLOPS
- MFLOPS(106):计算机每秒执行浮点运算的次数,更大的单位有GFLOPS(109)、TFLOPS(1012)、PFLOPS(1015)、EFLOPS(1018)
- MFLOPS = ICflops / ( Tcpu × 106 )
1.4.3 CPU性能公式应用
硬件或软件指标 | 如何影响 | 影响什么 |
---|---|---|
算法 | 影响指令数量和指令类型 | CPI、MIPS、CPU时间 |
编程语言 | 影响指令数量和指令类型 | CPI、MIPS、CPU时间 |
编译程序 | 影响指令数量和指令类型 | CPI、MIPS、CPU时间 |
指令集体系结构 | 全面影响 | f/T、CPI、MIPS、CPU时间 |
1.4.4 性能测试及其工具
- 性能测试原理
- 计算机中配置了大量传感器和状态寄存器
- 通过读取相应寄存器的值得到系统运行的状况
- 通过实际运行测试关键指标获取性能数据
- 性能测试工具分类
- CPU测试工具
- 显卡测试工具
- 磁盘测试工具
- 内存测试工具
- 用基准程序来评测计算机性能
- 专门用来进行性能评价的一组程序,运行实际负载来反映性能
- 最好的基准程序是用户实际使用的程序或典型的简单程序
- 基准程序的缺陷
- 基准程序性能与某段短代码密切相关时,会被利用以得到不当的性能评测结果
- 硬件系统设计人员或编译器开发者针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快
- 性能测试程序
- 综合测试程序
- 定点运算性能测试
- 浮点运算性能测试
- 数据库性能测试
- 并行运算测试