专业课复习,参考王道考研资料,主要是自己进行查缺补漏以及系统性地复习。
计算机组成原理主要是研究硬件在底层是如何相互工作的。
参考资料链接:
前言
我们自己在日常生活中会关注的硬件有:CPU型号(电脑的i7/i9等)、运行内存(手机的16G/32G)、机身存储(手机256G)、显卡、
计算机硬件唯一能识别的数据:二进制0/1;分别表示低电平和高电平;通过电信号来传递数据。
以主板的印刷电路为例:通过多条电路,传递多个二进制数位,每一个数位称为1bit
问题抛出:
- 数字、文字、图像如何用二进制表示?
- CPU如何对二进制数进行加减乘除?
- 如何存储这些二进制数的?
- 如何从内存中取出想要的数据?
- CPU如何识别和执行我们写的程序?
1 计算机发展
计算机系统 = 硬件 + 软件
硬件:计算机的实体,比如主机、外设等。
软件:app、操作系统等由具有各类特殊功能的程序组成。
系统软件:用来管理整个计算机系统。如:操作系统、DBMS、标准程序库等
应用软件:按任务需要,编制成的各种程序。如:各种app
1.1 硬件发展
第一台电子数字计算机于1946诞生,ENIAC,由冯诺依曼作为资深顾问。逻辑元件采用的是电子管。
逻辑元件:用来处理电信号的最小的基本单元。
- 第一代计算机:(电子管),j机器语言编程时,是在纸带上打孔。有小虫子就会导致问题,所以bug在当时表示的是小虫子的意思。
- 第二代计算机:(晶体管,体积比电子管小了很多),体积减小、功耗降低。面向过程设计语言FORTRAN,并且有了操作系统的雏形。
- 第三代计算机:(中小规模的集成电路)
- 第四代计算机:(大规模、超大规模的集成电路)
机器字长:计算机一次整数运算所能处理的二进制位数。
1.2 软件发展
机器语言 → 汇编语言 → FORTRAN → PASCAL → C++ → Java
DOS → Windows → Android、IOS...
2 计算机硬件基本组成
早起的ENIAC在执行指令时,需要工作人员手动接线来控制计算机。因此,冯诺依曼提出“存储程序”的概念。
存储程序:将指令以二进制代码的形式事先输入计算机的主存储器。然后按照在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他命令直到程序执行结束。
冯诺依曼计算机的特点:
- 由五大部件组成(I/O设备、运算器、控制器、存储器)。
- 指令和数据以同等地位存于存储器,可按地址寻访。
- 指令和数据用二进制表示。
- 指令由操作码(执行什么操作)和地址码(所操作的数据存在哪)组成。
- 存储程序(将指令以二进制代码的形式事先输入计算机的主存储器)。
- 以运算器为中心(I/O设备与存储器之间的数据传输通过运算器完成)。
但是很明显,输入和输出都需要通过运算器作为一个中转,效率很低,所以引出现代计算机结构。以存储器为中心就好了。
计组中的主机指的是:CPU+主存(运算器+控制器和主存储器)
手机中安装的app实际上是放在辅存里面,app需要启动运行的时候,把辅存里面的app相关代码数据读到主存里面,所以辅存属于IO
3 各个硬件工作原理
3.1 主存储器
主存储器组成:存储体(由一系列存储元件构成,存放二进制0/1)、MAR(Memory Address Register)、MDR(Memory Data Register)
存储体用来存放数据,CPU将想要的数据的地址写入MAR、主存储器根据MAR的地址找到数据,并把该数据写入到MDR中,最后CPU根据数据线路从MDR中取走数据。整体思路类似下图的取包裹:
注:CPU还可以写入数据,把需要写入的数据放在MDR,需要写入的地址在MAR中,告诉存储体自己要执行“写”操作即可。
数据在存储体内是按照地址存储,一个存储体会被分为多个存储单元,每一个存储单元会存放一串二进制代码,这些二进制代码的组合被称为“存储字”,二进制代码的位数被称为“存储字长”(8k bit,8的整数倍,如8、16、32等)
地址被写入MAR中,如下图右边中的0、1、2等;
3.2 运算器
用来实现算术运算如加减乘除、逻辑运算如与或非
ACC:累加器,用于存放操作数、运算结果
MQ:乘商寄存器,在乘除运算时存放操作数和运算结果
x:通用的操作数寄存器,存放操作数(有可能会有多个)
ALU:算术逻辑单元,核心部件,内部复杂的电路可以实现算术运算和逻辑运算
3.3 控制器
根据PC记录的地址,从内存中取出那一条指令,放入IR中,CU进行分析,配合其他部件完成指令的执行。
3.4 计算机工作流程
取a至ACC中
乘b得ab存于ACC
加c得ab+c存于ACC
ab+c存于主存单元
4 计算机软件
应用软件:抖音、QQ等app,为了解决某个应用领域的问题编写的程序
系统软件:操作系统、DBMS等,负责管理硬件资源,向上层应用程序提供基础服务
5 计算机系统的层次结构
6 计算机系统工作原理
7 计算机的性能指标
7.1 存储器的性能指标
7.2 CPU 性能指标
CPU主频:CPU数字脉冲信号振荡的频率。类似于广播体操的口号。