1. 计算机系统概述
文章目录
计算机组成(硬件)-> 操作系统 -> 数据结构(软件)<—计算机网络—> 其他计算机
例子:买电脑的时候会关注CPU型号(图像处理速度)、运行内存(同时开多个应用程序)、机身存储(外存)(可以存的容量大小)、显卡(显卡是由GPU、显存等组成的)
计算机硬件唯一能识别的数据:二进制0/1,用低/高电平分别表示0/1
硬件上的金属针脚是用来接受高/低电平的电信号的,主板上的印刷电路是导电用的
待解决问题:数字、文字、图像如何用二进制表示?CPU如何对二进制数进行加减乘除?二进制数如何存储?如何从内存中取出想要的数据?CPU如何识别和执行我们写的程序?
软件:系统软件(用来管理整个计算机系统,例如操作系统、数据库管理系统DBMS、标准程序库、网络软件、语言处理程序、服务程序) + 应用软件
1.1 计算机的发展
硬件的发展
计算机逻辑元件的发展:电子管(机器语言,纸袋机,冯诺依曼),晶体管(面向过程设计语言,操作系统雏形,贝尔实验室),中小规模集成电路(高级语言,分时操作系统),大规模、超大规模集成电路(微处理器CPU,微型计算机,个人计算机,操作系统)
微处理器发展:机器字长增加⬆
机器字长:计算机(CPU)一次整数运算所能处理的二进制位数
摩尔定律:在集成电路上,可以容纳的晶体管数目每隔18个月会增加一倍,(CPU)整体性能也将提升一倍。主存(内存)的发展也符合摩尔定律。
软件的发展
软件的发展就是编程语言的发展:机器语言,汇编语言,高级编程语言
操作系统的发展:DOS命令行,图形化界面
目前的两极分化:微型计算机向更微型化、网络化、高性能、多用途方向发展;巨型机向更巨型化、超高速、并行处理、智能化方向发展
1.2.1 计算机硬件的基本组成
早期冯诺依曼的结构
存储程序的概念:将指令以二进制代码的形式事先输入计算机的主存储器(内存),计算机按顺序执行指令,直到程序结束
硬件结构:
![1](images\1.png)
运算器:进行算术运算、逻辑运算
控制器:指挥程序运行
冯诺依曼计算机的特点:计算机由五大部件组成;指令和数据以同等地位存于存储器,可按地址寻访;指令和数据用二进制表示;指令由操作码和地址码组成;存储程序;以运算器为中心
现代计算机的结构
是冯诺依曼结构的优化,以存储器为中心
![2](images\2.png)
CPU = 运算器 + 控制器
![3](images\3.png)
现代计算机结构:主机(CPU(运算器+控制器)+存储器)+IO设备(输入设备+输出设备)
存储器:存放数据和程序
运算器:算术运算、逻辑运算
控制器:指挥各部件,使程序运行
1.2.2 各个硬件的工作原理
主存储器
主存储器 = 存储体 + MAR + MDR, 数据在存储体内按地址存储
主存储器的工作流程:CPU->MAR 存储地址寄存器->存储体->MDR 存储数据寄存器->CPU
CPU可以往主存储器读写数据,流程是一样的
![4](images\4.png)
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数,通常为8 bit 的整数倍
![4](images\5.png)
MAR位数反应存储单元的个数,MDR位数=存储字长
例子:MAR = 4位 ->总共有24个存储单元
MDR = 16位 ->每个存储单元可存放16bit, 1个字(word) = 16bit
易混淆:1个字节(Byte) 1B = 8bit ; 1b = 1bit
和字不一样,字的大小看计算机硬件怎么设计的
运算器
运算器用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)
运算器 = ACC +MQ+X+ALU
ACC:累加器,用于存放操作数或运算结果
MQ:乘商寄存器,在乘除运算时,用于存放操作数或运算结果
X:通用的操作数寄存器,用于存放操作数
ALU:算术逻辑单元,通过内部复杂的电路实现算术运算、逻辑运算
控制器
控制器 = CU+IR+PC
CU:(最核心)控制单元,分析指令,给出控制信号
IR:指令寄存器,存放当前执行的指令
PC:程序计数器,存放下一条指令地址,有自动加一功能
完成指令:取指令(PC),分析指令(IR),执行指令(CU)
计算机工作过程
控制器PC➡主存储器MAR➡主存储体➡MDR➡控制器IR //取指令
➡CU //分析指令
➡主存储器 //执行取或存数指令
(➡运算器)
➡控制器PC自动加一
(执行停机指令)
1.2.3 计算机系统的多级层次结构
高级语言(C++为例)->(编译器:编译程序)-> 汇编语言:助记符 -> (汇编器:汇编程序)-> 机器语言:二进制代码
编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序
解释程序:将源程序一条语句翻译成对应于机器语言的语句,并立刻执行
1.3 计算机的性能指标
存储器的性能指标
总容量
总容量= 存储单元个数 * 存储字长 bit = 存储单元个数 * 存储字长/8 Byte
例:MAR为32位(存储单元个数为232),MDR为8位(存储字长位8),则总容量为232 * 8 = 4GB
MAR位数反应存储单元的个数(最多支持多少个)
CPU的性能指标
CPU主频
**CPU主频:**CPU内数组脉冲信号振荡的频率。
每个脉冲信号的时间 -> CPU时钟周期
CPU主频(时间频率) = 1 / CPU时钟周期 Hz
平均CPI
CPI: 执行一条指令所需要的时钟周期数
CPU执行一条指令的耗时 = CPI * CPU时钟周期
CPU执行时间 = 指令条数 * 平均CPI * CPU时钟周期
IPS
IPS: 每秒执行多少条指令 = 主频/平均CPI
系统整体的性能指标
数据通路带宽
数据总线一次所能并行传送信息的位数
吞吐量
系统在单位时间内处理请求(一条指令、一个完整的程序运行)的数量
响应时间
从用户向计算机发送一个请求,到系统对该请求做出相应并得到他所需要的结果的等待时间
系统整体的性能指标(动态测试)
基准程序:用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相同程序的其他计算机性能进行比较
基准程序中的语句存在频度差异,运行结果不能完全说明问题
常用数量单位
描述存储容量、文件大小时:
K = 2^10,
M = 2^20,
G = 2^30,
T = 2^40
描述频率、速度时:
K = 10^3,
M = 10^6,
G = 10^9,
T = 10^12