考研-计算机组成原理-1

1. 计算机系统

计算机系统由硬件和软件组成

1.1 软件
软件包括系统软件应用软件

  • 系统软件:用来管理整个计算机系统

操作系统,数据库管理系统DBMS,标准程序库,网络软件,语言处理程序,服务程序

  • 应用软件:按任务需要编制成的各种程序

1.2 硬件

  • 硬件的发展
    硬件发展
  • 微处理器的发展(Intel)
    Intel

2. 计算机硬件的基本组成

2.1 早期冯诺依曼机型

冯诺依曼
冯诺依曼计算机的特点:

  • 计算机由五大部件组成
  • 指令和数据以同等地位存储于存储器,可以按地址寻址
  • 指令和数据用二进制表示
  • 指令由操作码和地址码组成
  • 存储程序 // 首次提出
  • 以运算器为核心

2.2 现代计算机的结构

现代计算机
现代计算机2

现代计算机:以存储器为中心
CPU = 运算器 + 控制器

3. 硬件部件介绍

3.1 主存储器

在这里插入图片描述

MAR: Memory Address Register:存储地址寄存器
MDR:Memory Data Register:存储数据寄存器

注意:如今计算机把MAR和MDR也集成在了 CPU 内

存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
存储元:即存储二进制的电子元件,每个存储元的可存1bit

例子

MAR 4位: 总共有 2^4 个存储单元
MDR 16位:每个存储单元可以存放16 bit,一个字(word) = 16 bit

易混淆

一个字节(Byte)= 8 bit
1B = 1个字节,1b = 1bit

3.2 运算器

在这里插入图片描述
运算器:用于实现算数运算(加减乘除)、逻辑运算(与或非)


部件:

ACC(Accumulator):累加器,用于存放操作数,或运算结果
MQ(Multiple-Quotient Register):乘商寄存器,在乘法、除法运算时,用于存放操作数或运算结果
X:通用的操作数寄存器,用于存放操作数
ALU(Arithmetic and Logic Unit)算术逻辑单元,通过内部复杂的电路实现算术运算,逻辑运算

各个寄存器运算时作用:

ACC被加数、和被减数、差乘积高位被除数、余数
MQ乘数、乘积低位
X加数减数被乘数除数

3.3 控制器

在这里插入图片描述

部件介绍:

CU(Control Unit):控制单元,分析指令,给出控制信号
IR(Instruction Register):指令寄存器,存放当前执行的指令
PC(Program Counter):程序计数器,存放下一条指令地址,有自动加1的功能

4. 计算机的工作流程

一下面一段程序为例

int a = 2, b = 3, c = 1, y = 0;
void main(){
	y = a * b + c;
}

主存分配如下:
在这里插入图片描述
在这里插入图片描述

①:第一步指令(取数a 至 ACC) PC=0

#1: (PC)→MAR,导致(MAR)=0
#3: M(MAR)→MDR,导致(MDR)=000001 0000000101
#4: (MDR)→IR,导致(IR)=000001 0000000101
#5: OP(IR)→CU,指令的**操作码**送到CU,CU分析后得知,这是 **取数** 指令
#6: AD(IR)→MAR,指令的地址码送到MAR,导致(MAR)=5
#8: M(MAR)→MDR,导致(MDR)=0000000000000010 = 2
#9: (MDR)→ACC,导致(ACC)=0000000000000010 = 2

②:第二步指令(乘b,将ab存在ACC中)PC=1 , (ACC)=2

#1: (PC)→MAR,导致(MAR)=1
#3: M(MAR)→MDR,导致(MDR)=000100 0000000110
#4: (MDR)→IR,导致(IR)=000100 0000000110
#5: OP(IR)→CU,指令的**操作码**送到CU,CU分析后得知,这是 **乘法** 指令
#6: AD(IR)→MAR,指令的地址码送到MAR,导致(MAR)=6
#8: M(MAR)→MDR,导致(MDR)=0000000000000011 =3
#9: (MDR)→MQ,导致(MQ) = 0000000000000011 =3(MQ中存放乘数)
#10: (ACC)→X,导致(X)=2 (X中存放被乘数)
#11: (MQ)*(X) → ACC ,由ALU实现乘法运算,导致(ACC)=6,如果乘积太大,则需要MQ辅助存储

③:第三条指令(加c得ab+c,存于ACC中)PC=2,(ACC)=6

#1: (PC)→MAR,导致(MAR)=2
#3: M(MAR)→MDR,导致(MDR)=000011 0000000111
#4: (MDR)→IR,导致(IR)=000011 0000000111
#5: OP(IR)→CU,指令的**操作码**送到CU,CU分析后得知,这是 **加法** 指令
#6: AD(IR)→MAR,指令的地址码送到MAR,导致(MAR)=7
#8: M(MAR)→MDR,导致MDR=0000000000000001=1
#9: (MDR)→X,导致(X)=1
#10: (ACC)+(X)→ACC,导致(ACC)=7,由ALU实现加法运算操作

④:第四条指令(将ab+c存到主存单元)PC=3,(ACC)=7

#1: (PC)→MAR,导致(MAR)=3
#3: M(MAR)→MDR,导致(MDR)=000010 0000001000
#4: (MDR)→IR,导致(IR)=000010 0000001000
#5: OP(IR)→CU,指令的**操作码**送到CU,CU分析后得知,这是 **存数** 指令
#6: AD(IR)→MAR,指令的地址码送到MAR,导致(MAR)=8
#7: (ACC)→MDR,导致(MDR)=7
#9: (MDR)→地址为8的存储单元,导致y=7

⑤:第五条指令 (停机) (PC)=4

#1: (PC)→MAR,导致(MAR)=3
#3: M(MAR)→MDR,导致(MDR)=000110 0000000000
#4: (MDR)→IR,导致(IR)=000110 0000000000
#5: OP(IR)→CU,指令的**操作码**送到CU,CU分析后得知,这是 **停机** 指令

(利用操作系统中断机制通知操作系统终止该进程)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值