计算机组成原理简介
# 基本组成
# 硬件工作原理
# 主存储器的基本组成
主存储器:存储体
、MAR
、MDR
MAR
:存储单元的地址(MAR位数反应存储单元的个数)
MDR
:存储单元取出来的数据放在MDR
中(MDR
位数=存储字长)
例子:
MAR
=4位 → 总共有2^4个存储单元
MDR
=16位 → 每个存储单位可存放16bit
,1字(word)=16bit
(主要看计算机硬件结构怎么设计,有可能是16、8、32、64)
易混淆:
1字节(Byte) = 8bit
1B = 1字节
1b = 1bit
数据在存储体内按地址存储
存储体由一个个存储单元组成
存储单元:存放一串二进制代码(存放16个二进制,16个比特)
存储字:存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数,通常8位
存储单元对应一个地址信息,地址从0开始(该地址信息是MAR应该指明的信息)
存储元:存储二进制的电子元件,每个存储元可存1bit
# 运算器的基本组成
# 控制器的基本组成
完成一条指令:取指令PC → 分析指令IR → 执行指令CU
# 计算机的工作过程
0-4存储这段程序的机器指令
每个存储单元是16bit
1-4取指令 5分析指令 6-9 执行取指令
指令和变量的数据存放在存储体中
执行的第一条指令存放在0号位置,PC指向0,取出指令执行
传送到MAR,MAR=0,控制器向主存储器指明接下来访问的是0,控制器通过控制总线告诉主存储器是读操作
主存储根据MAR记录的地址信息去存储体找0号地址所对应的二进制数据,并且把二进制数放到MDR
MDR
通过数据总线放到IR(指令寄存器)去
该IR指令前6bit
(操作码)送到CU,CU分析得知000001 是取数的指令,
将地址码放到MAR,MAR=5,将该指令的地址码所指明的内存单元的数据取出来
主存储器根据MAR指明的地址,去存储体当中找出5号单元的数据,放到MDR
当中,MDR
=2
MDR
的数据传送到ACC
,a
变量的值已经放在ACC
此时执行完第一条指令,PC+1,以此类推
# 计算机系统的层次结构
C++、Java:编译程序
JavaScript、Python:解释程序
# 计算机性能指标
# 存储器的性能指标
总容量 = 存储单元个数 × 存储字长bit 1Byte = 8bit
= 存储单元个数 × 存储字长/8 Byte
例子:
MAR为32位,MDR为8位
总容量 = 2^32 * 8 bit = 4GB