计算机组成原理
计算机硬件组成
五大部件:
存储器、控制器、运算器、输入设备、输出设备
可以分为两大方面。逻辑结构如下:
-
主机
-
中央处理器-CPU-Central Processing Unit
-
运算器-包含三个寄存器和一个算术逻辑单元
-
ALU-Arithmetic Logic Unit-算术逻辑单元
-
ACC-Accumulator-累加器
-
MQ-Multiplier-Quotient Register-乘商寄存器
-
X-操作数寄存器
-
-
控制器
- CU-Control Unit-控制单元-用来分析各种指令
- IR-Instruction Register-指令寄存器-当前正在执行的指令
- PC-Program Counter-程序计数器-接下来要执行的指令。自动+1,和控制器内的MAR之间有一条直接通路。
-
-
存储器-主存/内存-Main Memory-MM。工作方式为访存-按照存储单元的地址号进行写入、读出
- 存储体
- 由N个存储单元组成
- MAR-Memory Address Register-存储器地址寄存器-存放要访问的存储单元的地址。位数对应存储单元的个数,如MAR为10位,则有210 =1024个存储单元
- MDR-Memorry Data Register-存储器数据寄存器-存放从存储单元内读出的数据,或者存放即将要写入存储单元的数据-其位数=存储字长
- 存储体
-
-
外设/IO设备-Input/Output Equipment
- 键盘、鼠标
- 显示器
计算机执行运算过程
一条计算机指令由 操作码 + 地址码 组成
操作码代表当前指令是什么操作(取数、存数、加减乘除、停机、打印等)
地址码代表参加运算的数在存储器内的位置
一共有三个阶段
- 取指阶段
- 分析阶段
- 执行阶段
例如:计算 1 + 2 1 + 2 1+2
- 控制器将PC内将要执行的指令地址送入主存的MAR,经过地址总线,送至主存,命令存储器读,此时存储单元的内的数据送至数据总线,然后读出到MDR中。由MDR送到IR(因为IR是存放当前正在执行的指令)中。这条指令的具体内容已经被读出来了-取指阶段结束
- 指令到达IR之后,IR将当前指令的操作码送至CU,经过CU分析,该指令为取数指令。
- 于是CU将该指令的地址码送入MAR,并命令存储器读。将该地址的操作数1送至MDR。再由MDR送到ACC中
- 执行完第一条指令之后,PC自动+1,重复执行上述过程。取第二条指令重复上述过程,由CU分析该指令操作码为加法操作,CU向存储器发出读命令,将该指令地址码对应的操作数2,读出之后放到MDR中,然后经MDR送至X中,然后由ALU座加法运算,将结果送至ACC中
计算机存储容量的计算
-
存储总量 = 主存 + 辅存(硬盘的实际容量)
-
主 存 = 存 储 单 元 个 数 × 存 储 字 长 = 2 M A R 位 数 × M D R 位 数 = 2 地 址 总 线 根 数 × 数 据 总 线 根 数 ( 或 者 是 位 数 ) 主存 = 存储单元个数 \times 存储字长 = 2^{MAR位数} \times MDR位数=2^{地址总线根数} \times 数据总线根数(或者是位数) 主存=存储单元个数×存储字长=2MAR位数×MDR位数=2地址总线根数×数据总线根数(或者是位数)
例如:MDR为32位,MAR为16位,则主存的容量为
2 16 × 32 = 2 21 2^{16} \times 32 = 2^{21} 216×32=221位
而 1B(Bite) = 8位,1KB = 1024B ,换算为KB就是
2 21 ÷ 2 3 ÷ 2 10 = 2 8 2^{21} \div 2^{3} \div 2^{10} = 2^{8} 221÷23÷210=28KB
例如:地址总线为10根,数据总线为4根,则存储容量为
2 10 × 4 = 4 K 2^{10} \times 4 = 4K 210×4=4K