文章目录
计算机组成原理基础概念
- 硬件五大部件:运算器ALU、控制器CU、存储器(主存与辅存)、输入、输出
- 软件:系统软件与应用软件
- 计算机系统层次结构:微指令系统(微程序机器)–>机器语言(实际机器)—>操作系统(虚拟机器)–>汇编语言(虚拟机器)–>高级语言(虚拟机器)
计算机体系结构和计算机组成
- 计算机体系结构:计算机体系结构是指那些对程序员可见的系统属性,概念性结构与功能特性。
- 指令系统、数据类型、寻址技术、I/O处理
- 计算机组成:计算机组成指的是实现计算机体系结构所体现的属性,具体指令的实现。
- 实现体系结构,具体指令的实现
计算机的基本组成
冯洛依曼计算机特点:
- 由五大部件组成
- 指令和数据以同等地位存于存储器,可按地址寻址
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序
- 以运算器为中心
现代计算机
- 在冯洛依曼计算机结构的特点上改为以存储器为中心
计算机组成原理中常用英文缩写
ALU 算术逻辑单元 | CU 控制单元 |
ACC 运算器的累加器 | MAR 存储器地址寄存器 |
MDR 存储器数据寄存器 | MQ 运算器的乘商寄存器 |
X 操作数寄存器 | PC 程序计数器 |
IR 指令寄存器 | MIPS 百万条指令每秒 |
CPI 执行一条指令所需的时钟周期 | FLOPS 浮点运算每秒 |
MBPS 兆字节每秒 | DMA 直接存储器存取 |
BS 总线忙 | BR 总线请求 |
BG 总线同意 | MROM 掩模型只读存储器 |
PROM 可编程只读存储器 | EPROM 可擦除可编程只读存储器 |
EEPROM 用电可擦除可编程只读存储器 | MCT 存取周期 |
CS(上划线) 片选信号(低电平有效) | WE(上划线) 写允许信号(低电平为写,高电平为读) |
VCC 代表电源 | GND 代表接地端 |
RAS(上划线) 行地址选通 | CAS(上划线) 列地址选通 |
CCW 通道指令 | DBR 数据缓冲寄存器 |
INTR 中断请求触发器 | MASK 屏蔽触发器 |
AR 主存地址寄存器 | WC 字计数器 |
BR 数据缓冲寄存器 | DAR 设备地址寄存器 |
DREQ 向DMA接口提出申请 | HRQ 发出总线使用权的请求信号 |
RISC 精简指令系统计算机 | CISC 复杂指令系统计算机 |
NOP 空操作 | HLP 停机 |
RET 子程序返回 | IRET 中断返回 |
SP 堆栈指针 | FLASH MEMORY 闪速存储器 |
计算机的工作步骤
ACC是累加器,MQ(乘商寄存器)和ACC都是运算器ALU中的部件,PC(计数器:存放当前欲执行的指令的地址,且有计数功能);IR(指令寄存器:存放当前欲执行指令)
LDA:取数
STD:存数
ADD:加
MUL:乘
PTA:打印
STA:把寄存器内容写回内存
存储器的基本构成
- 指令字长:操作码和地址码的总位数(二进制位数),指令字长≤存储字长较好
- 存储单元:存放一串二进制代码,cpu访问存储器的最小单位,每个存储单元都有一个地址
- 存储字:存储单元中二进制代码的组合
- 存储字长:存储单元中二进制代码的位数,每个存储单元赋予一个地址号
- 按地址寻访
- MAR:存储器地址寄存器,反映存储单元的个数
- MDR:存储器数据寄存器反映存储字长,数据线内容有多少位就有多少位因并行传送
- 存储体=A*D(存储单元个数*存储单元位数)
存储器容量计算公式
按位计算(b):存储容量=存储单元个数×存储字长
按字节计算(B):存储容量=存储单元个数×存储字长/8
n根地址线可以查找,2n个存储单元
存储字长=数据线根数
1Byte(字节B)=8bit(位)
若MAR=4位,MDR=8位,
MAR=4则0000,0001,....2^4个地址。
存储单元个数为16
(4位,每一位0,1两种选择)
则存储单元个数=16,存储字长=8
控制器的基本组成
- PC(程序计数器):完成取指令,存放当前欲执行指令的地址,具有计数功能(PC)+1——>PC
- IR(指令寄存器):分析指令,存放当前欲执行的指令
- 执行指令:CU(控制单元)
主机包含运算器(核心ALU及三个寄存器(ACC、X、MQ)、控制器(CU及两个寄存器IR和PC)、存储器(存储体、MAR和MDR)
三步走:取指令——>分析指令——>执行指令
取数指令
要执行的指令的地址在PC中,指令在存储体当中,则
- 取指令PC将地址给MAR(地址寄存器)
- MAR给存储体
- 控制器的控制下,存储体把指定存储单元当中保存的取数指令取出,送入MDR(数据寄存器)
- 取指令,取出的指令送入IR(保存当前正在执行的这条指令)
- 分析指令:将指令寄存器中保存的指令操作码部分送给CU(从IR送给CU控制单元)
将保存到内存单元M中的数据取到ACC寄存器。在控制器的控制之下,将指令中的地址部分送给存储器,以便把数据从存储体当中取出来。则第六步这个操作还是从IR开始
- IR中保存了当前这条指令和当前这条指令操作数的地址。从IR的地址码部分将地址取出,送入MAR
- MAR将地址送给存储体
- 在控制器的控制之下,从存储体当中把取数指令要取得数存入MDR
- 将数送入ACC
存数指令
存数指令功能:将ACC中保存的数据放到存储体当中指定的单元里。
同样三步走:第一步取指令,把指令从存储体当中取出来则需要知道指令的地址,指令的地址在PC当中则:
- PC当中保存的指令的地址送给MAR
- MAR送给存储体
- 控制单元CU的控制下,从存储体指定存储单元当中把指令取出,放入MDR
- 控制单元控制将MDR中取出来的指令送入IR
- 分析指令,将IR中保存的指令的操作码部分送给CU
- CU对指令进行分析,发出相应信号,CU控制将IR当中地址码部分送入MAR
- MAR再送入到存储体,告诉存储体有数据要存入及对应地址
- ACC中的内容送到MDR(保存了从存储体中输入及输出的地址)
- 在控制器的控制之下将MDR中的数据,保存到存储体中
ax2+bx+c程序的运行过程
- 将
程序通过输入设备送至计算机
(程序和数据保存至内存中) - 为执行程序,控制器要知道该程序的首地址,
程序首地址送至寄存器PC
中 启动程序运行
,(执行多条指令)取指令
取数指令的地址在PC送地址——>MAR送地址——>M(存储体取指令送指令)——>MDR 送指令——>IR,取指令后就对PC的内容调整,PC+1即
(PC)+1——>PC。分析指令
指令操作码(OP表示操作码)送给CU:OP(IR指令寄存器)——>CU分析操作码执行指令
(取数指令,要取的数据的地址在IR的地址码部分(Ad表示地址码部分)):Ad(IR)送地址——>MAR送地址——>M(存储体中取数据)——>MDR(数据送入ACC)——>ACC- 乘法指令(取址,分析,执行)等等
- 打印结果(同样取址,分析,执行)
- 停机
计算机硬件的主要技术指标
1.机器字长:CPU一次能处理数据的位数与CPU中的寄存器位数有关(如可以对两个8位二进制数做加法结果还是两个8位二进制数,则此时机器字长为8位),机器字长越长越好
2.
运
算
速
度
{
主
频
核
数
,
每
个
核
支
持
的
线
程
数
吉
普
森
法
T
M
=
∑
i
=
1
n
f
i
t
i
,
f
i
为
每
条
指
令
在
程
序
出
现
频
率
C
P
I
执
行
一
指
令
所
需
时
钟
周
期
数
越
少
越
好
(
加
权
平
均
计
算
)
M
I
P
S
每
秒
执
行
百
万
条
指
令
F
L
O
P
S
每
秒
浮
点
运
算
次
数
运算速度\begin{cases} 主频\\ 核数,每个核支持的线程数\\吉普森法 T_{M}=\sum_{i=1}^n f_{i}t_{i},f_{i}为每条指令在程序出现频率\\CPI 执行一指令所需时钟周期数越少越好(加权平均计算)\\MIPS每秒执行百万条指令\\FLOPS 每秒浮点运算次数\end{cases}
运算速度⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧主频核数,每个核支持的线程数吉普森法TM=∑i=1nfiti,fi为每条指令在程序出现频率CPI执行一指令所需时钟周期数越少越好(加权平均计算)MIPS每秒执行百万条指令FLOPS每秒浮点运算次数
3.存储容量:存放二进制信息的总位数,1K=210,1B=23b,1GB=230B
{
主
存
容
量
{
存
储
单
元
个
数
×
存
储
字
长
(
如
M
A
R
=
16
,
M
D
R
=
32
。
则
容
量
为
2
16
∗
32
即
64
K
∗
32
位
)
字
节
数
如
2
13
b
=
1
K
B
辅
存
容
量
:
字
节
数
,
如
80
G
\begin{cases} 主存容量\begin{cases}存储单元个数\times存储字长\\(如MAR=16,MDR=32。则容量为2^{16}*32即64K*32位)\\字节数如2^{13}b=1KB\end{cases}\\辅存容量:字节数,如80G\end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧主存容量⎩⎪⎨⎪⎧存储单元个数×存储字长(如MAR=16,MDR=32。则容量为216∗32即64K∗32位)字节数如213b=1KB辅存容量:字节数,如80G