导图社区 计算机考研 第一章计算机系统概论
这是一篇关于计算机考研 计算机组成原理思维导图,知识点系统且全面,希望对大家有用。
编辑于2024-05-04 21:20:02计算机系统概论
发展历程
四代变化
电子管 -> 晶体管 -> 中小规模集成电路 -> 超大规模集成电路(从晶体管开始有了操作系统的概念)
元件的更新换代
摩尔定律
集成电路上可容纳的晶体管数目每18个月翻一倍
半导体、微处理器的发展
软件的发展
编程语言
机器、汇编、高级语言
PASCAL C++ Java
操作系统
Windows、Linux、UNIX
计算机分类和发展
电子计算机
使用机器语言编程
数字计算机
专用 + 通用计算机
通用计算机
巨型机、大型机、中型机、小型机、微型机、单片机
SISD、SIMD、MISD、MIMD
Single/Multi instruction S/M data stream
单指令流和单数据流系统:
SISD: 冯诺依曼
传统冯洛伊曼体系结构
单指令流和多数据流系统:
SIMD: 向量、阵列处理器
包括阵列处理器和向量处理器系统
多指令流和单数据流系统:
MISD: 不存在
实际上不存在
多指令流和多数据流系统:
MIMD: 多处理器系统
包括多处理器和所计算机系统
系列机的特性:
指令系统向后兼容
在时间上向后兼容:新的机器是兼容老机器指令系统的(Apple就在部分淘汰老机器的指令系统)
*
硬件的工作原理
主存储器
MAR位数反映存储单元的个数
MDR位数=存储字长
现在的计算机通常把MAR,MDR也几种在CPU中
运算器
除此之外,还有IX,BR,PSW寄存器
控制器
计算机的执行流程
深入理解乘法过程
层次结构
软硬件功能等价性
对某一功能来说,既可以由硬件实现,又可以由软件实现,从用户的角度来看,它们在功能上是等价/等效的
硬件的基本组成
输入、输出设备
存储器
主存储器:内存
CPU可以直接访问
辅助存储器:外存
需要进行调入后才可以被CPU访问
通过【时序控制逻辑】来控制
冯 · 诺依曼机
最大贡献:
提出了“存储程序”的概念
即:把指令以代码的形式事先输入到计算机的主存储器中
特点:
【硬件】系统有:运算器、存储器、控制器、输入设备、输出设备
指令和数据【同等地位】存储在存储器中,都可以通过【地址访问】
指令和数据均用【二进制】表示
指令由【<操作码 、地址码>】组成
指令在存储器中【顺序存放】
早期冯诺依曼机是以【运算器】作为核心的
冯诺依曼模型机(虚线:控制信号)
其他考点:
单处理机
驱动方式
控制流驱动
先取指令,指令指明如何取数据
冯诺依曼
数据流驱动
先取数据,数据指明如何取指令
控制方式
微程序控制
硬布线控制
和冯诺依曼没有必然联系,在后续章节学习
现代计算机
以【存储器】为核心
现代计算机的数据处理量增大、运算器和控制器合并、存储器的容量大、I/O尽可能绕过CPU
图示:
各个设备的内容:
请看后续章节
软件分类
软件分类
系统软件
操作系统(OS)、数据库管理系统(DBMS)
操作系统是大型系统软件
区别DBMS和DBS:
DBS是数据库系统,DBS是OS【引入了数据库以后的系统】,一般由数据库、数据库管理系统、数据库管理员、应用系统组成,是【应用软件】
DBMS是位于用户和OS之间的一层【数据管理软件】,是【系统软件】
DBS没了操作系统依然可以正常运行,故为【应用软件】。DBMS是用于把DBS和硬件进行交互的软件,故为【系统软件】
语言处理系统、分布式软件系统、网络软件系统、标准库系统、服务型程序等
应用软件
文本处理
DBS(数据库系统)
其他软件
编译程序
:语言处理软件
连接程序
:服务型程序
不属于应用软件
语言分类
机器
二进制
汇编
二进制的易读形式
高级
【预处理】是把头文件中的引用代码段插入到程序文件中
【编译】生成的就是【汇编程序】
【汇编】生成的就是【机器程序】
编译的步骤:
源代码文件 .c
预处理 -> .i
编译 -> .s
汇编 -> .o
链接 -> .exe
ci,so,exe
编译后产生的目标模块地址都是从0开始的相对地址
翻译、编译、解释、汇编:
翻译[过程]:
高级语言一步步转为机器语言
编译程序:
高级语言一步到位直接转为机器语言
解释程序:
高级语言一条条解释为机器语言后执行
如python
汇编程序:
汇编 -> 机器
三种级别的语言
层次结构、工作原理
多层结构图:
还有M5是应用程序层(执行的操作是需要先转为M4来对应到高级语言的某段代码的)
M2 - 混合层
没有软件的系统:裸机(即只有M0、M1)
虚拟机(指M2 ~ M4)
下层是上层的基础,上层是下层的拓展
存储程序工作方式:
根据PC取指令
指令译码,PC ++
取操作数,执行
送结果
从源程序到可执行程序:
预处理阶段:
预处理器(cpp)对源程序中以字符#开头的命令进行处理。
例如将#include 命令后面的.h文件内容插入程序文件。输出结果是一个以.i为扩展名的源文件hello.i
编译阶段:
编译器(ccl)对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s
汇编语言源程序中的每条语句都以一种文本格式描述了一条低级机器语言指令 。
汇编阶段:
汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成一个称为可重定位目标文件的hello.o
它是一种二进制文件,因此用文本编辑器打开会显示乱码。
链接阶段:
链接器(Id)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,或简称可执行文件。
本例中,链接器将hello.o和标准库函数printf所在的可重定位目标模块printf.o合并,生成可执行文件hello最终生成的可执行文件被保存在磁盘上。
UNIX中执行
一个简单的C语言程序样例
vim中的内容
①:键盘将char逐个送到CPU中 ②:CPU把char送到主存缓冲区中,等待回车 (程序中断方式:IO->CPU->内存)
③:shell收到回车后,调用OS内核程序,把test文件从磁盘加载到主存 ④:主存中有了程序,逐条执行代码(#include还需要从磁盘读代码),执行到printf需要输出,就把对应的string放入到CPU中 ⑤:CPU发送到显示上中(不用掌握)
指令执行描述
取指令
PC->MAR->M->MDR->IR
分析指令
OP(IR)->CU
执行指令
Ad(IR)->MAR->M->MDR->ACC
CPU区分指令和数据的依据:指令周期的不同阶段
考频:中
09、15、16、19、22
计算机性能指标
考频:中
10-14、17、20-22
机器字长
机器进行一次整数运算时所能处理的最大二进制位数
和指令字长、存储字长的区别:
指令字长是设定的一条指令的长度范围
存储字长是指存储器存储数据的最大长度
数据通路带宽
数据总线一次所能并行传送的信息的位数
此处的”数据通路宽度“是指“外部数据总线”的宽度,即CPU与其他部件相连的线的根数
主存容量
主存储器能够存储信息的最大容量,即:( 字数 x 字长 )
MAR反应存储单元个数
16bit -> 系统有2^16个存储单元
和PC长度一致
MDR反应存储单元字长
32bit -> 一个存储单元中有32bit
2M bit / 256MB大小
地址有多少个
按字节寻址:2M 个
按字寻址:64K 个
运算速度
吞吐量
系统能在单位时间内处理请求的数量
CPU的速度很大程度上受限于主存,故吞吐量主要取决于主存的存取周期
响应时间
用户向计算机发送了一个请求,到系统对该请求做出响应并获得所需结果的等待时间
CPU时钟周期
节拍脉冲,主频的倒数
执行指令的每一个动作至少需要一个时钟周期
主频
计算:1s➗CPU时钟周期
机器内部主时钟的频率,单位为Hz
频率:1s内重复多少个时钟周期的个数
CPI
Clock cycle per instruction,每条指令所需的时钟周期数
一个系统/程序的CPI是平均下来的CPI
CPI与时钟频率无关,只是影响该指令的执行速度
IPC
每个时钟周期执行多少条指令
CPU执行时间 (整个程序的耗时)
CPU时钟周期数/主频
(指令条数 x CPI)/主频
CPU时钟周期数 x 时钟周期
三个因素:主频、CPI、指令条数
MIPS
Million instructions per second,每秒执行多少百万条指令
FLOPS
FLoating-point Operation Per Second,每秒执行的浮点运算数
K/M/G/T/P/E/Z + FLOPS
对应的10的次方数:K - 3. M - 6. G - 9. T - 12. P - 15. E - 18. Z - 21.
KMG, TP, EZ
基准程序
跑分程序,存在一定的缺陷
END