文章目录
- 1 计算机发展历程
- 1.1 软硬件发展
- 1.2 分类以及发展方向
- 2 计算机系统层次结构
- 2.1 计算机系统组成
- 2.1.1 硬件的基本组成
- 2.1.2 软件系统
- 2. 2 CPU及其工作过程
- 2.2.1 运算器
- 2.2.2 控制器
- 2.2.3 计算机的工作过程
- 2.2.4 计算机系统层次结构
- 2.2.5 存储器
- 3 计算机性能指标
- 3.1 容量
- 3.2 速度
- 3.2.1 指令的执行
- 3.2.2 速度衡量单位
1 计算机发展历程
1.1 软硬件发展
- 电子管时代:
ENIAC
是第一台电子数字计算机
- 使用机器语言:计算机能够直接理解的0101电信号(偏向于机器如何运行)
汇编语言
- 特点:占地大,耗电量超大,基本元件包含大量真空管,容易坏
- 晶体管时代:
TRADIC
是第一台晶体管计算机
- 出现了面向过程的语言
FORTRAN
(偏向于解决问题针对科学计算)- 特点:基本元件规模变小,耗电量小,并且出现了操作系统的雏形
- 中小规模集成电路:
- 内存使用材料的变化:磁芯存储器->半导体存储器
- 计算机语言高速发展(模块化的语言
Pascal
)- 出现了分时操作系统
- 超大规模集成电路:产生了微处理器
- 微型计算机的发展是以微处理器技术为标志
- 微处理器处理的机器字长就是计算机一次整数运算所能处理的二进制位数(如果机器字长是
8bit
,要处理16bit
数的加法,那么就要分成两部分进行加法)。
- 出现了新概念:并行、流水线、高速缓存、虚拟存储
- 出现了面向对象的语言c、c++、java
机器字长VS操作系统位数:
机器字长:计算机一次整数运算所能处理的二进制位数
操作系统位数:其所依赖的指令集的位数
摩尔定律:
集成电路上所能容纳的晶体管的数目每隔18个月就会翻一倍,计算机的性能也会翻一倍
1.2 分类以及发展方向
指令和数据流:
单指令流单数据流:冯诺依是体系结构
单指令流多数据流:阵列、向量处理机
多指令流单数据流:不存在
多指令流多数据流:多核处理机
2 计算机系统层次结构
2.1 计算机系统组成
- 软件和硬件在逻辑上是等效的
(处理多位数据可以通过购买多位的处理器或者设计处理步骤)- 实际上不是等价的
比如处理多位的数据,物理上是一个数据流动的时间;软件上是将其切分成两端分别进行计算,因此是2个数据流动的时间
2.1.1 硬件的基本组成
存储器:批量存储要处理的数据、中间结果
存储数据按照什么方式进行处理 – 提供给控制器的指令
2.1.2 软件系统
- 分类:
系统软件:管理整个计算机系统的软硬件资源进行合理的分配
操作系统、DBMS、语言处理程序
应用软件:完成用户的特定功能
使用系统软件提供的资源接口
- 计算机编程语言
机器语言:二进制代码(需要手动查表)
汇编语言:助记符——-采用汇编程序进行查表
高级语言:C、C++
编译程序(编译器):将高级语言翻译成汇编语言接着翻译成机器语言,可以记录重复代码
解释程序:每次都直接把高级语言翻译成机器语言
2. 2 CPU及其工作过程
2.2.1 运算器
运算器各部件:
MQ
:重装寄存器
ACC
:累加器
ALU
:算术逻辑单元 采用组合逻辑的设计方式(规则不变)
X
:通用寄存器
PSW
:程序状态字(存放运算的溢出、进位)
2.2.2 控制器
控制器基本部件:
CU
:控制单元(分析指令,给出控制信号)采用时序逻辑设计方式(管理操作步骤的安排)
IR
:指令寄存器,存放当前要执行的指令输入到控制单元中
PC
:存放指令的地址,具有自动加1的功能
2.2.3 计算机的工作过程
取数指令为例:
M
:主存中某存储单元
ACC、MQ、X、MAR、MDR..
:相应寄存器
M(MAR)
:取存储单元中的数据
(ACC)..
:取相应寄存器中的数据
OP(IR)
:取操作码
Ad(IR)
:取地址码
指令=操作码+地址码
操作码:指令要操作的序列,送到控制器CU控制单元
地址码:指令要操作的数据存放位置,PC中永远存放下一条指令地址,控制器去PC中找要执行的指令
取数操作过程说明:
step1: (PC)->MAR
第一步取
PC
所指的指令,去主存中取,PC
寄存器存储的下一条指令的地址存储到主存的地址寄存器MAR
中
step2. 3:M(MAR)->MDR
主存根据这个地址到存储体中找到这个数据并写到数据寄存器MDR中
step 4:(MDR)一>IR
将MDR里数据放到指令寄存器IR中
step 5:OP(IR)->CU
指令的操作码部分放到控制器的控制单元,自动完成分析指令是什么类型
step 6: Ad(IR)->MAR
指令的地址码部分放到主存的地址寄存器
step 7.8: M(MAR)->MDR
主存从这个地址取出数据放到数据寄存器
step 9: (MDR)一>ACC
数据放到累加寄存器当中
CPU区分指令和数据的依据:指令周期的不同阶段
2.2.4 计算机系统层次结构
冯诺依曼计算机:
思想:“存储程序”:将指令以代码的形式事先输入到计算机主存储器中,然后按其在存储器中的首地执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束。
冯诺依曼计算机特点:
- 计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
- 指令和数据以同等地位存于存储器内,并可按地址寻访。
- 指令和数据均用二进制代码表示。
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
- 早期的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。
2.2.5 存储器
主机中的主存(内存)
- 地址寄存器
MAR
:承接一个地址对应到存储体内的某一个存储单元,数据自动输出到数据寄存器
N
位地址→2N个存储单元
- 存储体
可以存储的二进制位:
总容量= 存储单元的个数* 存储字长
bit
= 存储单元的个数* 存储字长/8byte
1byte
=8bit
系统最大容量=2NX存储字长
MAR
与存储体之间还会有 译码器和 驱动器(增强供电能力)
3. 数据寄存器MDR
取出一个存储单元之后直接送到MDR
存储单元的位数决定了MDR
的位数
MDR、MAR
逻辑上是属于主存的,但是物理实现上可能一般放到CPU
里面
3 计算机性能指标
3.1 容量
见上述
3.2 速度
3.2.1 指令的执行
机器字长:计算机进行一次整数运算所能处理的二进制数据的位数(比如 现在计算的处理机是多少位的)
指令并不是一口气执行完毕,而是分成多个小步骤,
CPU
提供CLK
这个时钟信号,协商指令的执行
CPI(Clock cycle Per Instruction)
:执行一条指令所需的时钟周期数
该指令耗时=CPI
×CPU
时钟周期
3.2.2 速度衡量单位
MIPS(Million Instructions Per Second)
:每秒执行多少百万条指令。
MIPS
=指令条数/(执行时间×106)=主频/CPI
如果主频的单位是MHz
那么就不用除以106
MFLOPS(Mega Floating-point Operations Per Second)
:每秒执行多少百万次浮点运算。
MFLOPS
=浮点操作次数/(执行时间×106)。
GFLOPS(Giga Floating-point Operations Per Second)
:即每秒执行多少十亿次浮点运算。
MFLOPS
=浮点操作次数/(执行时间×109)。
TFLOPS(Tera Floating-point Operations Per Second)
:每秒执行多少万亿次浮点运算。
MFLOPS
=浮点操作次数/(执行时间×1012)。
因此,不是指令数越少,CPU
耗时越少,跟CPI
和CPU
时钟周期都有关系
数据通路带宽:数据总线一次能并行传送数据的位数
- 吞吐量:指系统在单位时间内处理请求的数量。
它取决于信息能多快地输入内存,CPU
能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。- 吞吐量衡量系统批量处理能力
- 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
通常包括CPU
时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O
操作、操作系统开销等时间)。- 响应时间衡量系统交互性能