【计算机组成原理(唐朔飞)】笔记
计组的地位
目录
1.1 计算机系统概论
现代计算机系统组成部分
- 计算机系统
- 硬件
- 计算机实体
- 软件
- 系统软件
- 管理整个计算机系统
- 语言处理程序:JAVA、C
- 操作系统:win、linux
- 服务性程序:通信程序等
- 数据库管理系统
- 网络软件
- 管理整个计算机系统
- 应用软件
- 按任务编制的各种程序
- 系统软件
- 硬件
层次结构
层次 | 内容 |
---|---|
软件 | 应用软件、系统软件 |
硬件 | 硬件 |
计算机系统的层次结构
语言 | 机器 |
---|---|
高级语言 | 虚拟机器m3 |
汇编语言 | 虚拟机m2 |
操作系统 | 虚拟机器 |
机器语言 | 实际机器m1 |
微指令系统 | 微程序机器m0 |
计算机体系结构和计算机组成
系统复杂性管理的方法-1
- 计算机体系结构
- 程序员所见到的计算机系统的属性
- 概念性的结构与功能特性
- 有无乘法指令
- (指令系统、数据类型、寻址技术、I/O机理)
- 计算机组成
- 实现计算机体系结构所体现的属性
- (具体指令的实现)
- 如何实现乘法指令
1.2 计算机的基本组成
一、冯·诺依曼计算机的特点
- 计算机由五大部件组成
- 运算器、存储器、控制器、输入、输出
- 指令和数据逸同等地位存于存储器;可按地址寻访
- 指令和数据用二进制表示
- 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
- 存储程序
- 以运算器为中心
框图
典型的冯·诺依曼计算机结构框图
- 运算器:用于完算术运算和逻辑运算,并将运算结果暂存在运算器中
- 存储器:用于存放数据和程序
- 控制器:用来控制、指挥程序和数据的输入、运行以及处理运算结果
- 输入输出设备:输入和输出
改进👇:控制线和反馈线分离
以存储器为中心的计算机结构框图
改进👇
现代计算机硬件框图
主存:存储器中的一类:存程序和数据,可与CPU直接交换信息
辅存 :又称外存
系统复杂性管理的方法-2 (3Y)
- 层次化 Hierachy:将被设计的系统划分为多个模块或子模块
- 模块化 Modularity:有明确定义(well-defined)的功能和接口
- 规则化 regularity:模块更容易被重用
操作码
存储器的基本组成
存储体 - 存储空间 - 存储元件
类比↓
大楼 - 房间 - 床位
存储单位 | 内容 |
---|---|
存储单元 | 存放一串二进制代码 |
存储字 | 存储单元中二进制代码的组合 |
存储字长 | 存储单元中二进制代码的位数、每个存储单元赋予一个*地址号** |
MAR | 存储器地址寄存器(反映存储单元的个数) |
MDR | 存储器数据寄存器(反映存储字长) |
运算器基本组成及操作过程
指令 | ACC | MQ | X |
---|---|---|---|
+ | 被加数、和 | 加数 | |
- | 被减数、差 | 减数 | |
× | 乘积高位 | 乘数、乘积低位 | 被乘位 |
÷ | 被除数、余数 | 商 | 除数 |
运算器最少包括3个寄存器(现代计算机内部往往设有通用寄存器组)和一个算术逻辑单元(ALU)。
其中 ACC( Accumulator) 为 累加器,
MQ( Multiplier-Quotient Register) 为 乘商寄存器,
X 为 操作数寄存器。
这3个寄存器在完成不同运算时,所存放的操作数类别也各不相同。
加法
相当于 ACC = ACC+X
减法同理
乘法
运算之前用指令将被乘数送入ACC中,将乘数M送入MQ,将ACC中的内容送入X,并在累加(移位)之前清零ACC;
乘法:两个寄存器之间的乘法
(ACC送X,清零ACC,乘)顺序不能变
除法
控制器的基本结构
完成一条指令:取指令(PC程序寄存器)→分析指令(IR指令寄存器)→执行指令(CU控制单元).
PC:存放当前欲执行指令的地址,具有计数功能(PC)+1→PC
IR:存放当前欲执行的指令
主机完成一条指令的过程
存取指令的区别尽在8、9之间,取:从存储空间取出到MDR,再从MDR到ACC中;存反之。
控制器由程序计数器( Program Counter ,PC)、指令寄存器( Instruction Register ,IR )以及控制单元(CU)组成。
PC用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加1的功能,即可自动形成下一条指令的地址。
IR用来存放当前的指令,IR的内容来自主存的MDR。IR中的操作码( OP(IR))送至CU,记作 OP(IR)→CU ,用来分析指令;其地址码(Ad(IR))作为操作数的地址送至存储器的MAR,记作 Ad(IR )-→MAR。
CU用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。