自学笔记
计算机的发展历程
计算机系统构成
- 用户
- 应用程序
- 操作系统OS
- 硬件(裸机)
系统软件安装在硬件上
应用程序安装在系统上
只有硬件的就是裸机
应用程序和操作系统统称软件,
系统软件:
- 操作系统
- 语言处理程序:C语言等之类代码的编译,高级语言转为低级语言
- 数据库管理系统
- 分布式软件系统:多设备使用,同时连接多个键盘进行控制
- 网络软件系统
- 各种服务软件:属于操作系统的一部分
硬件软件的发展
硬件发展:
电子管时代:1946-1959
晶体管时代:1959-1964
中小规模集成电路时代:1964-1975
超大规模集成电路时代:1975-1990
超级规模集成电路时代:1990-现在
随着半导体材料和工艺的发展不断发展
软件发展:
汇编语言阶段:20世纪50年代
汇编语言不是机器语言——二进制,计算机唯一能够识别的,人类不好分辨,对他进行封装,形成汇编语言
程序批处理阶段:20世纪60年代
操作系统的雏形
分时多用户阶段:20世纪70年代
给不同用户用一定时间
分布式管理阶段:20世纪80年代
软件重用阶段:20世纪90年代
代码复用的思想,面向对象
Web服务阶段:21世纪初至今
之前将单台计算机视为服务器,在拆分后,多台计算机提供不同服务,合起来又是大型服务
电子计算机的分类
处理信号不同
- 模拟计算机:模拟信号,连续的,电磁波容易受到干扰
- 数字计算机:数字信号,离散的
用途不同:
专用计算机:完成特定功能
路由器、交换机
通用计算机:能完成很多很多
巨型机、大型机:科学计算
中型机、小型机:服务器
微机:个人使用,PC机
单片机:工厂自动化流程控制
计算机系统的结构
计算机硬件的基本组成
- 输入设备
- 输出设备
- 存储器
- 运算器
- 控制器
依靠总线相互连接
输入输出设备称为IO设备:相对于CPU/主机,来看输入输出
控制器和运算器合起来称为CPU
存储器
包含:
主存:内存,内存条
辅存:外存,硬盘,光盘,U盘等等
以主存为例
存储单元放置二进制位,是字节的倍数
存储字的长度简称存储字长
前方编号,当前存储单元的地址,有多少地址乘以字长,就有多少个比特位,除以8得到字节
地址寄存器:MAR,存储地址
数据寄存器:MDR,存储数据
寄存器放置的数据很小,一般和CPU相当
时序控制器:控制不同操作的先后顺序,发送相关指令,读或者写
时序控制器,按照地址寻找,走地址总线,到存储体,存储体接收时序控制器的信号,读或写,放到数据寄存器。
存储体容量=2^MAR位数*存储字长bit
运算器
ALU:进行核心运算
GPRs通用寄存器组:临时存储
控制器
控制单元CU:分析指令,给出控制信号
程序计数器PC:寄存器,存放下一条指令地址,+1
指令寄存器IR:存放当前指令
冯·诺依曼计算机结构
入/出/存/算/控
采用二进制表示数据和指令
以同等地位在存储器中,按地址寻访
指令有操作码和地址码组成,构成一个二进制码
指令按顺序存放和执行,也可改变指令顺序
采用存储程序方式
事先编制好程序,并与所需数据预先存入主存,控制器自动地、连续地从存储器取出指令并执行
主要以运算器为核心
控制器发起,控制器操作
现代计算机组织结构
- 入/出/存/算/控
- 采用二进制表示数据和指令
- 采用存储程序方式
- CPU:运算器与控制器合并到微处理器
- 以存储器为核心,IO设备尽可能绕过CPU
现代计算机运算器不再是性能瓶颈
输入输出将信息存储到存储器,CPU直接从内存中读取,减少IO设备和CPU的交互
计算机的工作过程
程序如何运行?
从源文件到可执行文件
预处理阶段
高级语言:C/C++、Java、GO
删除注释;
引入包含文件;
编译阶段
汇编语言:指令代码(计算机依旧不能识别
汇编阶段
机器语言:二进制编码(计算机唯一能够识别的语言
链接阶段
+库函数
计算机的性能指标
机器字长
基本概念:也叫基本字长,参与运算的二进制数据的位数决定了寄存器、ALU、数据总线位数,代表了运算精度
易混淆概念:
所有字长都必须是字节的整数倍
机器字长:一般等于内部寄存器的大小
指令字长:一个指令包含的二进制码的位数
存储字长:存储单元的二进制码的长度/位数
指令字长和机器字长没有任何关系
存储字长和他们也没有关系
64位的机器,说明内部寄存器都是64位,一次ALU可计算64位
Q:8位存储单元放不下16位指令单元怎么办?
A:取两次,一次取两个存储单元
主存容量
基本概念:一般指主存的最大容量,单位是字节Byte
运行时程序和数据都在主存中,主存容量越大,可运行的程序就越多,MAR位数决定了可寻址范围的最大值(但不一定是当前机器安装内存的容量)
运算速度
吞吐量和响应时间
吞吐量:单位时间内处理的请求数量
信息输入内存的速度
CPU取指令的速度
数据取出/存入内存的速度
从内存转出到外部设备的速度
响应时间:从用户发送请求到收到响应经过的时间
CPU时间(运行程序花费的时间)
等待时间(磁盘访问/主存访问/IO操作/OS开销/网络传输)
CPU时钟周期和主频
CPU时钟周期:单个动作所花费的时间
节拍脉冲或T周期,即主频的倒数
CPU中最小的时间单位,每个动作至少一个时钟周期
单位:秒
主频(CPU时钟频率):单位时间完成基本动作的数量
机器内部主时钟的频率
主频越高花费时间越短,执行指令速度越快
单位:Hz(赫兹),即次数/秒
时钟周期=1/主频,互为倒数
CPI(Clock cycle Per Instruction)
执行一条指令所需的时钟周期数
CPU执行时间
即运行一个程序所花费的时间
=CPU时钟周期数/主频=(指令条数*CPI)/主频
三要素(相互制约)
- 主频(时钟频率)
- 每条指令所用的时钟周期数(CPI)
- 指令条数
其他(了解)
MIPS:Million Instructions Per Second
=指令条数/(执行时间*10^6)
MFLOPS:Mega Floating-point Operations PS
=浮点数操作次数/(执行时间*10^6)
GFLOPS:Giga Floating-point Operation PS
=浮点数操作次数/(执行时间*10^9)
TFLOPS:Tera Floating-point Operations PS
=浮点数操作次数/(执行时间*10^12)