计算机系统基础 第一章计算机系统概述
计算机系统概述
- 1.1计算机基本工作原理
- 1.2 程序的开发与运行
-
- 1.2.1 程序设计语言和翻译程序
- 1.3 计算机系统层次结构
- 1.3.1 计算机系统抽象层的转换
- 1.4 计算机性能评价
-
- 1.4.1 计算机性能的定义
博主使用的教材为《计算机系统基础—第二版(袁春风 余子濠编著)》
1.1计算机基本工作原理
1.1.1 冯诺依曼结构的基本思想
存储程序
: 任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需操作人员干预下,自动完成逐条取出指令和执行指令的任务。
- 基本组成部分:
1、存储器:存放数据和指令
2、控制器:自动取出指令
3、运算器:进行四则运算、逻辑运算、附加运算
4、输入设备
5、输出设备 - 组织形式:
内部以二进制
表示指令和数据。每条指令由操作码和地址码两部分组成。
1.1.2 冯诺依曼机基本结构
MDR(Memory Data Register)存储器数据寄存器
MAR(Memory Address Register)存储器地址寄存器
IR(Instruction Register)指令寄存器
GPRs(General Purpose Register)通用寄存器组
ALU(Arithmetic Logic Unit)算术逻辑部分
ALUop(Arithmetic Logic Unit)控制信号
PC(Program Counter)程序计数器
- 程序的执行过程:
1、根据PC取指令
2、指令编译
3、取操作数
4、指令执行
5、回写结果
6、修改PC的值
1.1.3 程序和指令的执行过程
时钟周期
:CPU所有微操作都是由时钟信号进行定时,时钟信号的宽度为一个时钟周期。一条指令的执行时间包含一个或多个时钟周期。
1.2 程序的开发与运行
1.2.1 程序设计语言和翻译程序
机器级语言:机器语言、汇编语言
- 机器语言:使用特定计算机规定的指令格式而形成的0/1序列
- 汇编语言:由汇编指令
操作码+操作数(地址值)
组成
高级程序设计语言:C、JAVA、PYTHON…
- 处理逻辑:顺序结构、选择结构、循环结构
- 转换方式:“编译”和“解释”
编译程序
:将高级语言源程序转换为机器级目标程序,执行时只要启动目标程序就可以
解释程序
:将高级语言逐条翻译成机器指令并立即执行,不生成目标文件
预处理—>编译—>汇编—>链接
1.3 计算机系统层次结构
1.3.1 计算机系统抽象层的转换
- 功能转换:上层是下层的抽象,下层是上层的实现底层为上层提供支撑环境!
- 软件和硬件的界面: ISA(Instruction Set Architecture )指令集体系结构
- 前后端的规范
1.前端遵循语言规范
2.后端
根据ISA规范和应用程序二进制接口(Application Binary Interface,ABI)规范进行设计实现。
ABI是为运行在特定ISA及特定操作系统之上的应用程序中所遵循的一种机器级目标代码层接口
描述了应用程序和操作系统之间、应用程序和所调用的库之间、不同组成部分(如过程或函数)之间在较低层次上的机器级代码接口。
1.4 计算机性能评价
1.4.1 计算机性能的定义
-
Time to do the task
- 响应时间
- 执行时间
- 等待时间或时延
-
Tasks per day, hour, sec, ns. .
- 吞吐率
- 带宽
-
基本的性能评价:CPU的执行时间
-
时间的计算
CPI : Cycles Per Instruction
CPU执行时间 = CPU时钟周期数 / 程序 x 时钟周期
= CPU时钟周期数 / 程序 ÷ 时钟频率
= 指令条数 / 程序 x CPI x 时钟周期
CPU时钟周期数 / 程序 = 指令条数 / 程序 x CPI
CPI = CPU时钟周期数 / 程序 ÷指令条数 / 程序
- CPI 计算
已知CPU时间、时钟频率、总时钟数、指令条数,则程序综合CPI为:
CPI = (CPU 时间×时钟频率) / 指令条数 = 总时钟周期数 / 指令条数
阿姆达尔定律:
对系统中某部分(硬件或软件)进行更新所带来的系统性能改进程度,取决于该部分被使用的频率或其执行时间占总执行时间的比例。
p=1/(t/n +1-t)