第一章 计算机系统概述 1.2.2 各硬件部分的介绍
本笔记参考书目:
- 计算机组成原理(第六版.立体化教材)白中英、戴志涛
- 2021王道计算机组成原理视频公开课
本节重点:
- 主存储器、运算器和控制器的基本组成
- 计算机运行过程的实例
转载请注明文章来源!
主存储器
结构
- 存储体:用于存放二进制0/1。
- MAR:存储地址(Address)寄存器,提供数据位置。
- MDR:储存数据(Data)寄存器,提供MAR对应地址的数据。
数据读入读出
- 读入:CPU告诉MAR位置和MDR数据,向对应位置写入数据;
- 读出:CPU从MAR位置获取数据,存入MDR,再从MDR取数据。
存储体
二进制数据按地址存储在存储体中。
- 存储单元:每个存储单元存放一串二进制代码
- 存储字(word):存储单元中二进制代码的组合
- 存储字长:存储单元中二进制代码的位数(通常为8bit的整数倍)
- 地址:MAR指向的信息
- 存储元:二进制的电子元件(电容),每个存储元存放1bit
**
MAR位数反映了存储单元的个数;
MDR位数 = 存储字长
**
易错点:
- 1Byte(字节) = 8bit,1B = 1Byte
- 1word(字) = ?bit -> 存储字长取决于计算机架构(MDR位数)
运算器
运算器用于实现算术运算(加减乘除)和逻辑运算(与或非)。
ACC/MQ/X均为寄存器
- ACC(Accumulator):累加器(寄存器),存放操作数或运算结果;
- MQ(Multiple-Quotient Register):乘商寄存器,在乘、除运算时,用于存放操作数或运算结果;
- X:通用寄存器(通用的操作数寄存器),存放操作数。X有多个,但只需一个X,就能实现运算;
- ALU(Arithmetic/Logic Unit):算术逻辑单元,是运算器的核心单元,集成复杂电路,实现算术运算/逻辑运算。
控制器
- CU(Control Unit):控制单元,控制器的核心元件,集成复杂电路,分析指令,发出控制信号;
- IR(Instruction Register):指令寄存器,存放当前执行的指令;
- PC(Program Counter):程序计数器,存放下一条指令的地址,有自动加1的功能。
指令执行顺序
PC:取指令
IR:存储指令
CU:分析/执行指令
计算机的工作流程
操作码和地址码是指令,计算机执行时会自动拆分;
指令均存放在存储体中。
“取数”流程:
(寄存器)表示寄存器内容,
M(MAR)->MDR表示将主存储器MAR指向的内容赋值给MDR
- PC指向主存地址0;
- PC将主存地址0传入MAR(控制器向主存指明访问数据的地址),控制器通过控制总线告诉主存进行读取操作;
- MAR去存储体中寻找相应数据,取出并放入MDR;
- MDR中的指令通过总线传入IR;
- IR中的操作码被送入CU,CU分析操作码,进行 “取数” 操作;
- “取数” 操作将指令的地址码传入MAR;
- 同上,主存储器根据M(MAR)将存储体中相应数据放入MDR;
- 在CU的指挥下,(MDR)=a被送入ACC中。
以上为“取数”指令,
1~4为取指令,(取指令结束后,PC++,移向下一条指令)
5分析指令,
6~8执行指令。
“乘法”流程:
- 取指令(PC)=1;(取指令过程同上)
- IR储存指令,将操作码送入CU, CU分析知“乘法”指令 ;
- “取数据”(MAR)=6(过程同上);
- 因为是乘法操作,所以总线控制MDR将b值存入MQ;
- 将ACC的a值放入X中,即(X)=2( 执行乘/商操作时,被乘数放入X,乘数放入MQ );
- CU告诉ALU执行乘法运算,ALU将(X)和(MQ)相乘,结果存入ACC(若乘积过大,需要MQ辅助存储)。
“加法”流程:
- 取指令…;
- 分析指令…;
- 执行指令:
- CU得知是加法指令,开始协调各部件工作;
- 按主存地址2的地址码取c存入MDR后,令(X) <- (MDR) = c = 1;( 执行加法时,ACC存入被加数,X存入加数 )
- CU向ALU发送信号,(ACC) <- (ACC) + (X);
关于加/乘法规律小总结:
加法运算指令地址码内容(加数)存入X;
乘法运算指令地址码内容(乘数)存入MQ,ACC内容存入X。
“储存”流程:
将ab+c
存入主存单元,取/分析指令同上。
“存数”指令是把ACC中的数据存到地址码指明的存储单元中。
执行指令:…
- 指令3地址码传入MAR,指明存入的存储单元;
- ACC中的结果传入MDR,指明储存内容;
- CU通过控制总线告诉存储体进行存储操作。
(PC)<-4,终止进程,利用中断机制通知 操作系统 终止该进程。
必经步骤:
取指令、分析指令、执行指令、指令结束
总结和知识回顾
一个指令由操作码
和地址码
组成!
**CPU区分指令和数据的依据是:指令周期的不同阶段
。**先取指令,后取数据,CPU就可以区分从内存中取出的是指令还是数据。
现代计算机中,MAR、MDR被集成于CPU中!