笔记为结合笔者自身情况而整理,并不详尽,也不保证没有错误,因此所有带有“学习笔记”字样的博客均用于博主自身复习,不可用于他人学习。
笔记首发于我的个人博客。
目录
计组原理学习笔记(一)
1. 一些概念
- 主机:CPU+MM(主存或内存)
- CPU:中央处理器。包括运算器和控制器。
- 主存:存放正在运行的程序和数据,可随机存取
- 存储单元:可以存放机器字并具有特定存储地址的存储单位
- 存储元件:存储一位二进制信息的物理元件
- 存储字:一个存储单元所存二进制代码的逻辑单位
- 存储字长:一个存储单元所存二进制代码的位数
- 存储容量:存储器可存二进制代码的容量
- 机器字长:CPU一次能处理的数据位数(取决于寄存器位数)
- 指令字长:一条指令的二进制代码位数
2. 英文缩写的中文含义
- CPU(Central Processing Unit):中央处理器。运算器+控制器。
- PC(Program Counter):程序计数器。位于控制器,存放当前欲执行指令地址,并自动计数形成下一条指令的地址
- IR(Instruction Register):指令寄存器。存放当前正执行执行指令的计数器
- CU(Control Unit):控制单元。控制器中产生微操作命令序列的部件
- ALU(Arithmet Logic Unit):算术逻辑运算单元
- ACC(Accumator):累加器。存放操作数和运算结果
- MQ(Multiplier-Quotient Register):乘商寄存器。乘法时存放乘数,除法时存放商
- MAR(Memory Address Register):存储器地址寄存器。内存中存放欲访问存储单元地址的寄存器
- MDR(Memory Data Register):存储器数据寄存器
- I/O(Input/Output equipment):输入输出设备
- MIPS(Million Instruction Pre Second):每秒执行百万条指令
- CPI(Cycle Per Instruction):执行一条指令所需要的指令周期数
- FLOPS(Floating Point Operation Per Second):每秒浮点运算次数
3. 冯·诺依曼计算机
3.1 特点(重点)
- 由五大部件组成,包括运算器、存储器、控制器和输入输出设备
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据均用二进制码表示(如何区分?)
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置
- 存储程序:指令在存储器内按顺序存放,通常顺序执行,可跳转(存储程序与PC的关系?)
- 以运算器为中心,I/O设备与存储器的数据传送要通过运算器
如何理解“存储程序”与PC的关系?
存储程序:指令在存储器内顺序存放、顺序执行,但可以根据运算结果或设定进行跳转。存储器能自动运行依赖于PC,PC存储欲执行指令的地址,并且在指令执行完后自动+1,直至停机。
计算机如何区分同样以0,1代码的形式存储在存储器中的指令和数据?
从时间角度:在取指周期取出的为指令,在执行周期取出的是数据。
从空间角度:访存时地址是由PC给出的,那么取出的是指令;若地址是由指令的地址码给出的,那么取出的是操作数。
3.2 硬件框图
4. 一条指令的执行过程
主机完成一条指令一般需要三个步骤:
- 取指令阶段
- 分析指令阶段
- 执行指令阶段
下面是取数指令的执行过程:
- 取指:PC->MAR->M->MDR->IR
- 分析:OP(IR)->CU
- 执行指令:AD(IR)->MAR->M->MDR->ACC
存数指令的执行过程:
- 取指令:PC->MAR->M->MDR->IR
- 分析指令:OP(IR)->CU
- 执行指令:AD(IR)->MAR->M, ACC->MDR->M
加法指令的执行过程:
- 取指令:PC->MAR->M->MDR->IR
- 分析指令:OP(IR)->CU
- 执行指令:AD(IR)->MAR->M->MAR->X, ACC->ALU, X->ALU, ALU->ACC
存储容量为256M*32位,256M代表了存储单元的个数,32位代表了存储字长。256M=228,所以地址线有28根。地址线的根数决定了存储单元有多少个。PC和MAR也就是28位。
5. 计算机系统层次结构
- 硬件和软件的分界线是指令。
6. 计算机组成与计算机体系结构
- 计算机体系结构:是程序员所见到的计算机系统的属性,即概念性的结构与功能特性(指令系统、数据类型、寻址技术、I/O机理等)
- 计算机组成:如何实现计算机体系结构所体现的属性
- 一个计算机体系结构对应多个计算机组成,一个计算机组成对应多个计算机实现
- 硬件和软件在功能上等价