【计算机组成原理 - 第一章】计算机系统概论(完结)
本章参考王道考研相关课程:
【2021版】1.2.1_计算机硬件的基本组成_哔哩哔哩_bilibili
【2021版】1.2.2_认识各个硬件部件_哔哩哔哩_bilibili
【2021版】1.2.3_计算机系统的层次结构_哔哩哔哩_bilibili
【2021版】1.3_计算机的性能指标_哔哩哔哩_bilibili
目录
一、计算机的发展
二、计算机软硬件概念
三、计算机系统层次结构
1、三个级别的语言
2、翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?
四、计算机的基本组成
1、冯诺依曼计算机特点
2、计算机硬件框图
(1)主存储器(cpu可以直接访问)、辅助存储
(2)运算器
(3)控制器
五、计算机工作过程
1、取数指令 编辑
2、乘法指令
3、加法指令
4、存数指令
5、计算机工作过程总结
1、取指阶段(必经阶段)
2、分析阶段(必经阶段)
3、执行阶段(根据不同指令步骤不同)
六、计算机性能指标
1、机器字长
2、存储器的性能指标
3、CPU的性能指标
4、系统整体性能指标
5、主频高的CPU一定比主频低的CPU快吗?为什么?
一、计算机的发展
- 第一代:电子管计算机
- 第二代:晶体管计算机
- 第三代:较小规模集成电路
- 第四代:较大规模集成电路
二、计算机软硬件概念
- 系统软件:标准程序库、语言处理程序、操作系统、服务程序、数据库管理系统、网络软件等
- 应用软件:科学计算类程序,工程设计类程序,数据统计与处理程序
三、计算机系统层次结构
1、三个级别的语言
- 机器语言:二进制代码,计算机唯一可以直接识别和执行的语言
- 汇编语言:用英文单词或其缩写代替二进制指令,必须经过一个称为汇编程序的系统软件翻译,将其转换为机器语言,才能在计算机的硬件系统上执行
- 高级语言:为方便程序员处理问题,经过编译程序编译成汇编语言,然后通过汇编程序转换成机器语言,或直接由高级语言程序翻译成机器语言
- 高级语言 ——编译——> 汇编语言 ——汇编——> 机器语言
- 边翻译边执行叫做解析
2、翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?
翻译程序:包括编译程序和解释程序
- 编译程序:将高级语言一次全部翻译成目标程序
- 解释程序:翻译一句执行一句,并且不会生成目标程序
汇编程序:将汇编语言翻译成机器语言
四、计算机的基本组成
1、冯诺依曼计算机特点
- 计算机由运算器、存储器、控制器、输入设备、输出设备组成
- 指令和数据以同等地位存放于存储器内,并按地址寻访
- 数据和指令均用二进制数表示
- 指令由操作码和地址码组成
- 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成
- 早期冯诺依曼机最根本特征是【程序存储】,即按照地址访问并顺序执行指令
- 计算机五大功能:数据传送功能、数据存储功能、数据处理功能、操作控制功能、操作判断功能
2、计算机硬件框图
(1)主存储器(cpu可以直接访问)、辅助存储
存储体含有许多存储单元,每个存储单元包含若干个存储元,每个存储元可以0或1
- 存储字:一个存储单元存储一串二进制代码
- 存储字长:这串二进制代码的位数
为了实现按地址存取,主存配置两个寄存器:
- 地址寄存器MAR:指明要读/写哪个存储单元。位数=存储单元的个数
- 数据寄存器MDR:暂存要读/写的数据。位数=存储字长
(2)运算器
- 运算器最少包括3个寄存器和一个算数逻辑单元ALU
- 寄存器:ACC累加器、MQ乘商寄存器、X操作数寄存器
(3)控制器
- 完成一条指令操作:取指阶段PC、分析阶段IR、执行阶段CU
- 控制器由PC程序计数器、IR指令寄存器、CU控制单元组成
- (Program Counter)PC程序计数器:存放下一条指令的地址,将指令传给MAR,有自动+1功能
- (Instruction Register)IR指令寄存器:存放当前执行的指令,拆分出操作码传给CU,拆分出地址码传给MAR,MAR在主存储体中取出数据传给MDR
- (Control Unit)CU控制单元:分析指令,给出控制信号
五、计算机工作过程
【2021版】1.2.2_认识各个硬件部件_哔哩哔哩_bilibili(16min开始)
高级语言的一段代码
int a=2,b=3,c=1,y=0; void main() { y=a*b+c; }
1、取数指令
2、乘法指令
3、加法指令
4、存数指令
5、计算机工作过程总结
CPU区分指令和数据的依据:指令周期的不同阶段
1、取指阶段(必经阶段)
- PC存放下一条指令的地址 ——> MAR(存放欲访问的存储单元地址)
- MAR在存储体内找到存储指令的地址 ——> MDR(存放从主存储体取来的数据)
- MDR将指令 ——> IR(存放当前执行的指令)
- 取数阶段结束 PC++
2、分析阶段(必经阶段)
- IR拆分出操作码 ——> CU
- 分析阶段结束
3、执行阶段(根据不同指令步骤不同)
- IR拆分出地址码 ——> MAR
- MAR在存储体内找到存储的数据的地址 ——> MDR
- MDR ——> ACC
- 执行阶段结束
六、计算机性能指标
1、机器字长
CPU一次能处理数据的位数,一般等于内部寄存器的大小,决定了计算机的运算精度
2、存储器的性能指标
- MAR:位数反映存储单元的数量
- MDR:位数反映存储字长(存储字长=存储单元二进制码的位数)
总容量 = 存储单元个数×存储字长 bit(b)
= 存储单元个数×存储字长÷8 byte(B)
1 byte = 8 bit
eg:MAR为32位,MDR为8位
总容量 =
描述存储容量、文件大小时:
K— M— G— T— P=
3、CPU的性能指标
1、时钟周期:CPU中最小时间单位(单位:微秒、纳秒)
2、CPU主频(时钟频率):CPU内数字脉冲信号振荡频率,主频越高的CPU不一定比主频低的CPU快
CPU主频=1/时钟周期 (单位:Hz)
3、CPI:执行一条指令所需的时钟周期数,不同指令CPI不同,相同指令CPI也可能变化
4、CPU执行时间(运行一个程序花费的时间) =(指令条数×CPI)÷主频
eg:某CPU主频为1000Hz,某程序包含100条指令,平均来看指令的CPI=3,问该程序走该CPU上执行需要多久?
100×3÷1000=0.3s
5、IPS:每秒执行多少条指令 IPS=主频÷平均CPI
KIPS、MIPS——比如:2MIPS,即每秒能执行 条指令
6、FLOPS:每秒执行多少次浮点运算
KFLOPS、MFLOPS、GFLOPS、TFLOPS
7、核数——处理器个数(核心数:八核)
描述频率、速度时:
K= M= G= T=
4、系统整体性能指标
1、数据通路带宽:数据总线一次所能并行传送信息的位数,各硬件部件通过数据总线传输数据
2、吞吐量:指系统在单位时间内处理请求的数量,主要取决于主存的存储周期
3、响应时间
4、基准程序(动态测试):像鲁大师这种跑分软件,一般情况下,基准测试程序能够反映机器性能的好坏。但由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题
5、主频高的CPU一定比主频低的CPU快吗?为什么?
衡量CPU运算速度的指标有很多,不能以单独的某个指标来判断CPU的好坏。
CPU的主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、 Cache大小等)。由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的CPU实际运算速度较低的现象