计算机组成原理(哈尔滨工业大学 — 刘宏伟老师)
目录
第一章 计算机系统概述
1.1 计算机系统简介
- 计算机系统:硬件、软件
- 软件:系统软件、应用软件
- 计算机系统的层次结构(由高到低):高级语言、汇编语言、操作系统、机器语言、微指令语言
1.2 计算机的基本组成
- 冯·诺依曼计算机的特定:由五大部件组成;指令和数据以同等地位存于存储器,可按地址寻访;指令和数据用二进制表示;指令由操作码和地址码组成;存储程序;以运算器为中心
- 现代计算机硬件:主机和I/O设备。主机包括CPU和主存。I/O设备包括输入设备和输出设备。CPU包括ALU(运算器)和CU(控制器)。
- 存储器的结构:存储体;MAR(memory address register)(存储器地址寄存器);MDR(memory data register)(存储器数据寄存器)。MAR反映存储单元的个数;MDR反映存储字长
- 运算器的组成:算术逻辑单元ALU;累加器;状态寄存器;通用寄存器
- 控制器的组成:CU执行指令;IR分析指令;PC取指令
- 主机完成一个取数指令的过程:PC将指令的地址给MAR,MAR送给存储体,将指令取到MDR中,再取到IR中,至此完成了取指令,CU进行执行,将IR中取数的地址传给MAR,传给存储体,将数据传给MDR,将MDR中的数据传给ACC。
1.3 计算机硬件的主要技术指标
- 机器字长:与CPU中的寄存器位数有关
- 运算速度:主频、核数、线程数、CPI(Clock cycle Per Instruction)、MIPS(Million Instructions Per Second)、FLOPS(floating-point operations per second)
- 存储容量:主存容量;辅存容量
第二章 计算机的发展及应用
2.1 计算机的发展史
- 摩尔定律:微芯片上集成的晶体管数目每三年翻两番(变为4倍)
2.2 计算机的应用
2.3 计算机的展望
第三章 系统总线
3.1 总线的基本概念
- 总线是连接各个部分的信息传输线,是各个部件共享的传输介质
3.2 总线的分类
第一种分类方式:
- 片内总线:芯片内部的总线
- 系统总线:计算机各部件之间的信息传输线(数据总线;地址总线;控制总线)
- 通信总线:用于计算机系统之间或计算机系统与其它系统之间的通信
第二种分类方式:
- 串行通信总线
- 并行通信总线
3.3 总线特性及性能指标
- 总线物理实现
- 总线特性:机械特性;电气特性;功能特性;时间特性
- 总线 的性能指标:总线的宽度(数据线的根数);标准传输率;时钟同步/异步;总线复用;信号线数;总线控制方式;其他指标
- 总线标准:ISA; EISA; VESA(LV-BUS); PCI; AGP; RS-232; USB
3.4 总线结构
3.5 总线控制
- 总线判优控制(链式查询、计数器定时查询、独立请求方式)
- 总线通信控制(同步通信、异步通信、半同步通信、分离式通信)
第四章 储存器
4.1 概述
- 按存储介质分类(半导体存储器、磁表面存储器、磁芯存储器、光盘存储器)
- 按存取方式分类(随机访问、穿行访问)
- 按在计算机中的作用分类
- 存储器的层次结构
4.2 主存储器
4.2.1 概述
- 主存的基本组成
- 主存和CPU的联系
- 主存的技术指标:存储容量、存储速度(存取时间;存取周期)、存储器的带宽
4.2.2 半导体存储芯片简介
- 半导体芯片的基本结构
- 半导体存储芯片的译码驱动方式(线选法、重合法)
第一个图,地址译码器有4位,说明有16个单元,读写控制电路有8位,说明一个单元里有8位。
4.2.3 随机存取存储器(RAM)(Random Access Memory)
- 静态RAM(SRAM)
- 动态RAM(DRAM)
- 动态RAM和静态RAM的比较
(一般用DRAM做主存,用SRAM做缓存)
DRAM | SRAM | |
---|---|---|
储存原理 | 电容 | 触发器 |
集成度 | 高 | 低 |
芯片引脚 | 少 | 多 |
功耗 | 小 | 大 |
价格 | 低 | 高 |
速度 | 慢 | 快 |
刷新 | 有 | 无 |
4.2.4 只读存储器(ROM)(Read-Only Memory)
- 掩模ROM(MROM)
- PROM(一次性编程)
- EPROM(多次性编程)
- EEPROM(多次性编程)
- Flash Memory(闪存型存储器)
4.2.5 存储器与CPU的连接
- 存储器容量的扩展(位扩展、字扩展、字和位同时扩展)
- 存储器与CPU的连接:地址线的连接、数据线的连接、读/写命令线的连接、片选线的连接、合理选择存储芯片、其他(时序、负载)
4.2.6 存储器的校验
汉明码
4.2.7 提高访存速度的措施
- 单体多字系统
- 多体并行系统
- 高性能存储
4.3 高速缓冲存储器
4.3.1 概述
- 问题的提出:避免CPU“空等”现象(CPU和主存DRAM的速度差异)
- Cache的工作原理:主存和缓存按块存储;命中和未命中;命中率;效率
- Cache的基本结构
- Cache的读写操作
- Cache的改进
4.3.2 Cache-主存的地址映射
- 直接映射:某一主存块只能固定映射到某一缓存块
- 全相联映射:某一主存块能映射到任一缓存块
- 组相联映射:某一主存块只能映射到某一缓存组的任一块
4.3.3 替换算法
- 先进先出(FIFO)算法
- 近期最少使用(LRU)算法
4.4 辅助存储器
- 不直接与CPU交换信息
- 磁表面存储器的技术指标:记录密度;存储容量;平均寻址时间;数据传输率;误码率
- 磁记录原理
- 硬磁盘存储器
- 软磁盘存储器(淘汰了)
- 光盘存储器
第五章 输入输出系统
5.1 概述
I/O设备与主机信息传送的控制方式:程序查询方式;程序中断方式;DMA方式
5.2 外部设备
5.3 I/O接口
- 接口的功能和组成
功能 | 组成 |
---|---|
选址功能 | 设备选择电路 |
传送命令的功能 | 命令寄存器、命令译码器 |
传送数据的功能 | 数据缓冲寄存器 |
反映设备状态的功能 | 设备状态标记 |
- I/O接口的基本组成
- 接口的分类:数据传送方式分类(并行接口、串行接口);按功能选择的灵活性分类(可编程接口、不可编程接口);按通用性分类(通用接口、专用接口);按数据传送的控制方式分类(中断接口、DMA接口)
5.4 程序查询方式
5.5 程序中断方式
5.6 DMA方式
第六章 计算机的运算方法
6.1 无符号数和有符号数
有符号数:真值(带符号的数);机器数(符号数字化的数);原码;反码;补码
对于正数:原码 = 补码 = 反码
对于负数:符号位为1,反码:除符号位每位取反,补码:反码+1
补码与移码只差一个符号位
6.2 数的定点表示和浮点表示
为什么要引入浮点数:
- 编程困难,程序员要调节小数点的位置
- 数的表示范围小,为了能表示两个大小相差很大的数据,需要很长的机器字长
- 数据存储单元的利用率往往很低
IEEE 754 标准
6.3 定点运算
在计算机中,移位与加减配合,能够实现乘除运算
- 移位运算
- 加减法运算
- 乘法运算
- 除法运算
6.4 浮点四则运算
6.5 算术逻辑单元
- ALU电路
- 快速进位链:并行加法器;串行进位链;并行进位链(先行仅为,跳跃进位)
第七章 指令系统
7.1 机器指令
- 指令的格式:操作码 地址码 寻址方式
- 指令的字长 :固定字长、可变字长
- 指令的一般格式:操作码(反映机器做什么操作)和地址码字段
- 扩展操作码技术
- 地址码:四地址、三地址、二地址、一地址、零地址
- 指令字长取决于:操作码的长度、操作数地址的长度、操作数地址的个数
- 指定字长:固定(=存储字长);可变(按字节的倍数变化)
7.2 操作数类型和操作类型
- 操作数类型:地址、数字、字符、逻辑数
- 数据在存储器中的存放方式:从任意位置开始存储、从一个存储字的起始位置开始访问、边界对准位置
- 操作类型:数据传送、算术逻辑操作、移位操作、转移、输入输出
7.3 寻址方式
- 寻址方式的定义:确定本条指令的操作数地址;下一条要执行指令的指令地址
- 寻址方式的分类:指令寻址;数据寻址
- 指令地址:顺序、跳跃
- 数据寻址:立即寻址、直接寻址、隐含寻址、 间接寻址、寄存器寻址、寄存器的间接寻址、 基址寻址、变址寻址、相对寻址、堆栈寻址
7.4 指令格式举例
- IBM 360
- Intel 8086
7.5 RISC技术
- RISC(Reduced Instruction Set Computer)
- CISC(Complex Instruction Set Computer)
第八章 CPU的结构和功能
8.1 CPU的结构
8.1.1 CPU的功能
- 控制器:取指令、分析指令、执行指令、程序输入结果输出、总线管理、处理异常情况
- 运算器:算术运算和逻辑运算
- CPU的功能:指令控制、操作控制、时间控制、数据加工、处理中断
8.1.2 CPU结构框图
8.1.3 CPU的寄存器
- 用户可见寄存器:通用寄存器、数据寄存器、地址寄存器、条件码寄存器
- 控制和状态寄存器:控制寄存器、状态寄存器
8.1.4 控制单元CU和中断系统
8.1.5 ALU
8.2 指令周期
8.2.1 指令周期的基本概念
- 指令周期:取出并执行一条指令所需的全部时间
- 每条指令的指令周期不同
- 具有间接寻址的指令周期
- 带有中断周期的指令周期
- 指令周期流程
- CPU工作周期的标志
8.2.2 指令周期的数据流
- 取指周期数据流
- 间址周期数据流
- 执行周期数据流
- 中断周期数据流
8.3 指令流水
8.3.1 如何提高机器速度
- 提高访存速度
- 提高I/O和主机之间的传送速度
- 提高运算器速度
8.3.2 系统的并行性
- 并行的概念
- 并行性的等级
8.3.3 指令流水原理
8.3.4 影响指令流水线性能的因素
- 结构相关
- 数据相关
- 控制相关
8.3.5 流水线性能
- 吞吐率:单位时间流水线完成指令或输出结果的数量
- 加速比:流水线的速度与等功能的非流水线的速度之比
- 效率:流水线各功能段的利用率
8.3.6 流水线的多发技术
- 超标量技术
- 超流水技术
- 超长指令字技术
8.3.7 流水线结构
- 指令流水线结构
- 运算流水线
8.4 中断系统
8.4.1 概述
8.4.2 中断请求标记和中断判优逻辑
8.4.3 中断服务程序入口地址的寻找
8.4.4 中断响应
8.4.5 保护现场和恢复现场
8.4.6 多重中断
第九章 控制单元的功能(控制单元即控制器)
9.1 微操作命令分析
- 取指周期
- 间址周期
- 执行周期:非访存指令、访存指令、转移指令
- 中断周期
9.2 控制单元的功能
9.2.1 控制单元的外特性
- 输入信号:时钟、指令寄存器、标志、外来信号
- 输出信号:CPU内的各种控制信号、送至控制总线的信号
9.2.2 控制信号举例
9.2.3 多级时序系统
- 机器周期
- 时钟周期:控制计算机操作的最小单位时间
- 一个指令周期包含若干个机器周期 一个机器周期包含若干个时钟周期
- 机器速度 不仅与 主频有关 ,还与机器周期中所含 时钟周期(主频的倒数)数 以及指令周期中所含 的 机器周期数有关
9.2.4 控制方式
产生不同微操作命令序列所用的时序控制方式
- 同步控制方式:任一微操作均由 统一基准时标 的时序信号控制
- 异步控制方式:无基准时标信号,采用应答方式
- 联合控制方式:同步与异步相结合
- 人工控制方式
第十章 控制单元的设计
10.1 组合逻辑设计
10.1.1 组合逻辑控制单元框图
10.1.2 微操作的节拍安排
- 原则一:微操作的 先后顺序不得 随意 更改
- 原则二:被控对象不同的微操作,尽量安排在 一个节拍 内完成
- 原则三:占用 时间较短 的微操作尽量安排在 一个节拍内完成,并允许有先后顺序
10.1.3 组合逻辑设计步骤
- 列出操作时间表
- 写出微操作命令的最简表达式
- 画出逻辑图
10.2 微程序设计
10.2.1 微程序设计思想的产生
10.2.2 微程序控制单元框图及工作原理
10.2.3 微指令的编码方式(控制方式)
- 直接编码:在微指令的操作控制字段中,每一位代表一个微操作命令
- 字段直接编码方式:将微指令的控制字段分成若干“段”,每段经译码后发出控制信号
- 字段间接编码方式
- 混合编码
10.2.4 微指令序列地址的形成
10.2.5 微指令格式
- 水平型微指令
- 垂直型微指令
10.2.6 静态微程序设计和动态微程序设计
- 静态:微程序无须改变,采用ROM
- 动态:通过改变微指令和微程序改变机器指令,有利于仿真,采用EPROM