计算机组成原理学习笔记(1):概述
计算机组成原理学习笔记(2):发展
计算机组成原理学习笔记(3):总线
计算机组成原理学习笔记(4):存储器
计算机组成原理学习笔记(5):I/O
计算机组成原理学习笔记(6):数字
计算机组成原理学习笔记(7):指令系统
计算机组成原理学习笔记(8):CPU的结构和功能
计算机组成原理学习笔记(9):控制单元的功能
计算机组成原理学习笔记(10):控制单元的设计
CPU——Central Processing Unit,中央处理机(器)
PC——Program Counter,程序计数器,存放当前欲执行指令的地址,并可自动计数形成下一条指令地址的计数器
IR——Instruction Register,指令寄存器,存放当前正在执行的指令的寄存器
CU——Control Unit,控制单元(部件),控制器中产生微操作命令序列的部件,为控制器的核心部件
ALU——Arithmetic Logic Unit,算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件
ACC——Accumulator,累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器
MQ——Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器
X——此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数
MAR——Memory Address Register,存储器地址寄存器,内存中用来存放欲访问存储单元地址的寄存器
MDR——Memory Data Register,存储器数据缓冲寄存器,主存中用来存放从某单元读出、或写入某存储单元数据的寄存器
I/O——Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送
MIPS——Million Instruction Per Second,每秒执行百万条指令数,为计算机运算速度指标的一种计量单位
基本部件的结构和组织方式
基本运算的操作原理
基本部件和单元的设计思想
特色
·计算机组成的一般原理,不以具体机型为依托
·采用自顶向下的方式、层层细化
现代计算机的多态性,种类较多,较为复杂
计算机系统组成
硬件:计算机的实体,算|如主机、外设等机系统
软件:由具有各类特殊功能的信息(程序)组成
软件
系统软件:用来管理整个计算机系统
- 语言处理程序(高级语言编译)
- 操作系统(管理软硬件资源,提供人机交互,协调执行)
- 服务型程序(库)
- 数据库管理系统
- 网络软件
应用软件:按任务需要编制成的各种程序
软硬件层次结构
计算机组成:
实现计算机体系结构所体现的属性
(具体指令的实现)
计算机体系结构:
机器语言程序员所见到的计算机系统的属性(所编写程序能正确执行所必须了解的计算机属性,一般指指令集、寄存器文件的组织、内存的编址单位、指令集能都对那些数据类型进行操作。这些统称为数据表示),概念性的结构与功能特性
(指令系统、数据类型、寻址技术、l/o机理)
定义软硬件的交界面,定义具体那些功能由软件实现,那些功能由硬件实现,上层软件编写和硬件交互的接口
举个例子
计算机组成:
- 如何实现乘法指令(逻辑实现)
计算机体系结构:
- 规定和定义的内容有无乘法指令,对什么类型的数据进行乘法操作,数据长度是多长
五大组成部分
指令和数据以同等地位存于存储器,可按地址寻访
指令和数据用二进制表示
指令由操作码(所做操作)和地址码(所存地址)组成
存储程序
以运算器为中心
以运算器为核心的结构容易因为运算器工作量巨大繁忙成为瓶颈,且不具有层次化的特征
改进第一步:以存储器为核心
改进第二步:提高层次化
系统复杂性管理的方法(3’Y)
- 层次化(Hierachy):将被设计的系统划分为多个模块或子模块
- 模块化(Modularity):有明确定义(well-defined)的功能和接口
- 规则性(regularity):模块更容易被重用
1.上机前的准备
- 建立数学模型
- 确定计算方法
- 编制解题程序(运算的全部步骤)
存储体 - 存储单元 - 存储元件(0/1)
大楼 - 房间 - 床位(无人/有人)存储单元:存放一串二进制代码(每个存储单元赋予一个地址)
存储字:存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
按地址寻找
MAR(Memory Address Register,存储地址寄存器)反映存储单元的个数,保存存储单元的地址或者编号,MAR的位数与存储单元的个数有关
MDR(Memory Data Register,存储数据寄存器)保存了要存入存储体中或刚从存储体中取出来的数据,MDR长度和存储单元的长度相同
举个例子
MAR = 4位
MDR = 8位
==>存储单元个数16个
==>存储字长8位
ALU——Arithmetic Logic Unit,算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件;
ACC——Accumulator,累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器;
MQ——Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。
指令包含两部分:第一部分加法指令,第二部分内存中加数的地址M
初始状态中被加数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)加数放置在X中
加法操作使用ALU实现,结果保存在ACC当中
方括号表示地址 [ ⋅ ] [\cdot] [⋅]的内容
指令包含两部分:第一部分减法指令,第二部分内存中减数的地址M
初始状态中被减数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)减数放置在X中
减法法操作使用ALU实现,结果保存在ACC当中
指令包含两部分:第一部分乘法指令,第二部分内存中乘数的地址M
初始状态中被乘数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)乘数放置在X中
操作1234顺序是有控制器控制的,12可同时进行或交换顺序
双斜线表示位连接
指令包含两部分:第一部分除法指令,第二部分内存中除数的地址M
初始状态中被除数已经存放在ACC里面(之前先要有一条指令把数据输入到ACC当中)除数放置在X中
商放入MQ 余数放入ACC
PC——Program Counter,程序计数器,存放当前欲执行指令的地址,并可自动计数形成下一条指令地址的计数器;
IR——Instruction Register,指令寄存器,存放当前正在执行的指令的寄存器;
CU——Control Unit,控制单元(部件),控制器中产生微操作命令序列的部件,控制信号由此发出,为控制器的核心部件;
功能
解释指令
保证指令的按序执行
完成一条指令
取指令:PC存放当前欲执行指令的地址,具有计数功能,执行完后(PC)+step一PC
分析指令:IR存放当前欲执行的指令
执行指令:CU()
以取数指令为例
1、PC中存储的地址送入MAR
2、MAR根据地址寻找存储体中的存储位置
3、找到的指令数据送入MDR
5、IR中的指令操作码送入CU,经过译码以后
在CU中完成
6、在控制器的控制之下,将指令中的取数所需地址从IR送入MAR
7、MAR根据地址寻找存储体中的存储位置
8、找到的数据送入MDR
9、MDR将缓存的数据送入ACC
以存数指令为例
1、PC中存储的地址送入MAR
2、MAR根据地址寻找存储体中的存储位置
3、找到的指令数据送入MDR
4、MDR将缓存的指令数据送入IR
5、IR中的指令操作码送入CU,经过译码以后
在CU中完成
6、在控制器的控制之下,将指令中存数的地址从IR送入MAR
7、MAR根据地址寻找存储体中的存储位置
8、将ACC的数据送入MDR
9、MDR将缓存的数据送入存储体
将程序通过输入设备送至计算机
程序首地址->PC
启动程序运行
取指令PC->MAR->M->MDR->IR,(PC)+1->PC
分析指令OP(IR)->CU操作码给CU
执行指令Ad(IR)->MAR->M->MDR->ACC地址码给MAR
。。。
停机
CPU一次能处理数据的位数与CPU中的寄存器位数有关
主频
核数:每个核支持的线程数
吉普森法: T M = ∑ i = 1 n f i t i T_{\mathrm{M}}=\sum_{i=1}^{n} f_{i} t_{i} TM=∑i=1nfiti(对指令出现频率加权平均)
CPI:执行一条指令所需时钟周期数
IPC:一个时钟周期数所执行指令数
MIPS 每秒执行百万条指令
FLOPS每秒浮点运算次数
存放二进制信息的总位数