本篇文章是博主在学习计算机组成原理后总结的一些知识点,文章中有误或者讲的不太明白请见谅,留言评论,博主看到后查询资料核实后会修改的。
前提须知:
基础单位的换算
位(比特):计算机中存储的最小单位,一个位的值可以是0或者1。
字节(Byte):一个字节等于八个位,代表了8个0或者1的数据。
字:一个字的大小并不绝对,大型计算机一般为32-64位,字长是用于衡量计算机的一个重要因素。
下面是一些常见单位的换算:

1.计算机系统的组成
硬件系统和软件系统共同构成了一个完整的计算机系统。硬件是指有形的物理设备,是计算机系统中的实际物理装置的总称。软件是指在硬件上运行的程序和相关的程序和相关的数据及文档。
2. 计算机硬件
冯·诺依曼机的基本思想
冯·诺依曼在研究EDVAC机时提出了“存储程序”的概念,“存储程序”是将指令以二进制代码的形式先输入计算机的主存储器中。以此概念机称为冯·诺依曼机器,该机器的特点如下:
1)采用“存储程序”的工作方式
2)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成
3)指令和数据以等同地位存储在存储器中,形式上没有任何区别,但是计算机可以区分他们
4)指令和数据均用二进制代码表示
5)指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。
6)以运算器为中心
补充:CPU=运算器+控制器
3.计算机的功能部件
1.输入设备
类似键盘、鼠标,这边不多介绍
2.输出设备
类似打印机,这边不多介绍
3.存储器
存储器分为主存储器(也称为内存储器或者主存)和辅助存储器(外存储器或外存)。主存储器CPU是可以直接访问的,而辅助存储器是需要把信息调入主存才可以访问。
主存储器一般被称为内存,就类似开启一个应用时,任务管理器显示有一个后台一样的,而辅助存储器存在的意义是用来帮助主存储器记忆更多东西,一般有硬盘、磁盘等。
- 存储元:存储二进制的电子元件,每个存储元可以存1bit
- 存储单元:每个存储单元会存放一串二进制代码
- 存储字:存储单元中二进制代码的组合
- 存储字长:存储单元中二进制代码的位数
- MAR(memory address register):中文称为地址寄存器,用于存放数据的地址。同时MAR的位数可以反应最多可以寻址的存储单元的个数。
- MDR(memory data register):中文称为数据寄存器,用于在根据MAR中的地址信息进行寻址,寻址取出数据存放到数据寄存器。MDR的位数一般等于存储字长,一般为字节的2次幂的整数倍。
4.运算器(Arithmetic and Logic Unit,ALU)
运算器是计算机的执行部件,可以进行加减乘除等操作。运算器主要由算术逻辑单元和若干的寄存器(如:累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)、程序状态寄存器(PSW)),下面详细介绍这些寄存器的作用:
- 累加器(ACC):用于存放操作数、运算的中间结果,作为ALU运算结果的暂存单元。
- 乘商寄存器(MQ):在运算过程中,乘商寄存器MQ会存放运算前的乘数,以及运算后的结果数(如乘积低位、商)
- 操作数寄存器(X):是一个独立的寄存器,通常包含一个基地址,该基地址可以通过指令送入,主要是根据主存地址寄存器(MAR)的地址从存储器中取数据,然后存到寄存器X中
- 变址寄存器(IX):通过将基地址与指令给定的偏移量相加,可以形成操作数的有效地址,从而实现变址寻址。
- 基址寄存器(BR):用于存放基地址。执行指令时,基地址寄存器的内容会与相对地址相加,从而得到实际的内存地址。
- 程序状态寄存器(PSW):用于存放两类信息,一类是体现当前指令执行结果的各种状态信息(如有无借位进位[Carry Flag,CF]、有无溢出[Overflow,OF]、结果正负[Sign Flag,SF]、结果是否为零[Zero Flag,ZF]等),称为状态标志;另一类是存放控制信息(如允许中断、跟踪标志、方向标志等),称为控制状态。
5.控制器
控制器是计算机的指挥中心,其指挥各部件自动协调的进行,主要由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。下面是这三个部件的作用:
- 程序计数器(PC):程序计数器是用来存放当前执行的指令的地址,并且具有自动形成下一条指令的功能,存放入PC中,有时候会被称为“自动+1”。
- 指令寄存器(IR):指令寄存器是用来存放当前指令,其中的内容主要来自于MDR。指令中的操作码OP(IR)会送到CU处对操作码进行分析,而Ad(IR)会送到MAR,用以取得操作数。
- 控制单元(CU):分析指令,给出控制信号。
4.计算机的加法乘法的工作过程
(1)取数的工作流程:

首先:PC指向某条取数指令的存储地址
1):(PC)→MAR,使得MAR为PC的值(即地址值),PC+1
2与3):M(MAR)→MDR,完成对于地址值的取值,取出来的指令放至MDR
4):(MDR)→IR,把MDR中的指令传给IR
5):OP(IR)→CU,把指令的操作码交给CU分析,分析得出是一个“取数”指令
6):Ad(IR)→MAR,把指令的地址码部分重新交给MAR
7与8):M(MAR)→MDR,完成对于地址码的取值,去出来的数放至MDR
9):M(MDR)→ACC,将MDR中的数传递给ACC
(2) 加法的工作流程:
前提中ACC中存放被加数,通用寄存器X中存放加数。

在当前有ACC中有数值的情况下,假设ACC中数值为3,再一次重复取数的指令部分,将数值存入X通用寄存器中。
1):(PC)→MAR,使得MAR为PC的值(即地址值),PC+1
2与3):M(MAR)→MDR,完成对于地址值的取值,取出来的指令放至MDR
4):(MDR)→IR,把MDR中的指令传给IR
5):OP(IR)→CU,把指令的操作码交给CU分析,分析得出是一个“加法”指令
6):Ad(IR)→MAR,把指令的地址码部分重新交给MAR
7与8):M(MAR)→MDR,完成对于地址码的取值,去出来的数放至MDR
9):M(MDR)→X,将MDR中的数传递给X通用寄存器,假设数值为2.
10):(ACC)+(X)→ACC,导致ACC最后结果为3+2=5,其中是ALU实现加法的运算。

在当前有ACC中有数值的情况下,假设ACC中数值为3,再一次重复取数的指令部分,将数值存入MQ乘商寄存器中,然后需要通过ACC中的数值转移到X通用寄存器中,最后通过X中的数值和MQ中的数值相乘,存入ACC累加寄存器中。
1):(PC)→MAR,使得MAR为PC的值(即地址值),PC+1
2与3):M(MAR)→MDR,完成对于地址值的取值,取出来的指令放至MDR
4):(MDR)→IR,把MDR中的指令传给IR
5):OP(IR)→CU,把指令的操作码交给CU分析,分析得出是一个“乘法”指令
6):Ad(IR)→MAR,把指令的地址码部分重新交给MAR
7与8):M(MAR)→MDR,完成对于地址码的取值,去出来的数放至MDR
9):M(MDR)→MQ,将MDR中的数传递给MQ乘商寄存器,假设数值为2.
10):(ACC)→X,使得ACC中的值转移至X通用寄存器中,使得X通用寄存器值为3。
10):(MQ)*(X)→ACC,导致ACC最后结果为3*2=6,若乘积太大,则需要MQ辅助存储。
(3) 指令执行过程的描述
1)取指令:PC→MAR→M→MDR→IR
2)分析指令:OP(IR)→CU
3)执行指令:Ad(IR)→MAR→M→MDR→ACC
ps:上述中的M是Memory的意思,是存储器的意思。
5. 计算机软件一些其他的知识点
(1)系统软件和应用软件
系统软件支撑计算机系统运行,管理硬件资源;应用软件满足用户特定需求,提供多样化服务。
(2)三个级别的语言
- 机器语言。也称作二进制代码语言,机器语言是计算机唯一可以直接识别和执行的语言。
- 汇编语言。汇编语言使用英文单词或者缩写代替二进制的指令代码,使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为机器语言后才能在计算机硬件系统上执行。
- 高级语言。类似C、C++等语言,需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
(3)各种翻译的概念
汇编程序(汇编器):将汇编语言程序翻译成机器语言程序。
解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行,翻译一句执行一句。
编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序,一次性翻译完成。
二、计算机性能指标
1.机器字长
通常说该机器是某16位或者32位机器,其中的16位和32位就是指的是机器字长,简称字长。字长是计算机进行一次整数运算(即定点整数的运算)所能处理的二进制数据的位数。通常与CPU的寄存器位数、ALU有关。因此,字长一般等于通用寄存器位数或者ALU的宽度,字长越长,数字表示范围越大,计算精度越高。计算机字长通常选定位字节(8位)的整数倍。
2.数据通路带宽
数据通路带宽是指数据总线一次所能并行传递信息的位数。
3.主存储量
主存储量是指主存储器所能存储信息的最大容量,通常用字节来衡量,也可以用字数×字长来表示。其中MAR的位数反映了存储单元的个数,MDR的位数反应了存储单元的字长。
4. 运算速度
- 吞吐量:指系统在单位时间内处理请求的数量
- 响应时间:指用户向计算机发出请求,到系统对该请求做出响应并获得所需结果的等待时间。
- 主频:机器内部的时钟周期频率,即时钟周期数量。更加详细的说,应该是CPU内数字脉冲信号震荡频率,1个脉冲信号称为一个时钟周期。CPU时钟周期=1/主频。主频一般以Hz(赫兹)为单位,10Hz代表每秒10次。
- CPU时钟周期:机器内部主时钟脉冲的宽度,它是CPU工作的最小时间单位
- CPI:执行一条指令的平均时钟周期数。其中不同的指令,CPI不同,甚至相同的指令,CPI也有可能发生变化。执行一条指令的耗时=CPI×CPU时钟周期数。
- ISP:每秒执行多少条指令,ISP=主频/平均CPI。
- CPU执行时间:指运行一个程序所花费的时间。CPU的性能(CPU的执行时间)取决于三个因素:主频、CPI和指令条数。
CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)÷主频
- MIPS是对不同机器的一个性能比较,实际意义是每秒处理百万级的指令数
MIPS=指令条数÷(执行时间×
)=主频÷(CPI×
)
- FIOPS:即每秒执行多少次浮点运算。(1京=1亿亿=
)
MFLOPS(Million FLOPS),即每秒执行多少百万(
)次浮点运算。
GFLOPS(Giga FLOPS),即每秒执行多少十亿(
)次浮点运算。
TFLOPS(Tera FLOPS),即每秒执行多少万亿(
)次浮点运算。
PFLOPS(Peta FLOPS),即每秒执行多少千万亿(
)次浮点运算。
EFLOPS(Exa FLOPS),即每秒执行多少百京(
)次浮点运算。
ZFLOPS(Zetta FLOPS),即每秒执行多少十万京(
)次浮点运算。
三、博主做题时碰到的易错点
- IR、MAR、MDR是CPU内部工作寄存器,对程序员不可见,则透明(即程序员看不见,无法操控);而程序员可以通过代码来设置PC的值,因此PC是可见的,同样的还有PSW和通用寄存器。
- CPU中的CPI的影响因素不包括时钟频率,因为CPI表示的意思是一条指令需要花费多少时钟数和CPU中一秒产生多少时钟数没有关系。但是时钟频率的加快会导致指令的执行速度加快。
- 从用户观点看,评价计算机性能的综合指标是吞吐量
- 计算机的机器字长与运算的精确度指标最为相关
四、结语
本文大多参考2025年计算机组成原理--王道考研辅导书
2932

被折叠的 条评论
为什么被折叠?



