目录
一.计算机系统概述
1.计算机系统层次结构
1.1.组成
1.2.计算机硬件
1.3.计算机软件
1.4.计算机系统的层次结构(下层是上层的基础,上层是下层的扩展)
2.计算机的性能指标
2.1.字长:是指计算机进行一次整数运算所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。
2.2.周期(不是计算机的性能指标)
2.3.数据通路带宽:指数据总线一次所能并行传送信息的位数。
2.4.主存容量:指主存储器所能存储信息的最大容量(字数X字长)。
2.5.运算速度
二.数据的表示和运算
1.数制与编码
1.1.进位计数制
1.2.定点数的编码表示
2.运算方法和运算电路
2.1.基本运算部件
2.2.定点数的移位运算
2.3.定点数的加减运算
2.4.定点数的乘除运算
3.浮点数的表示和运算
3.1.浮点数的表示
3.2.浮点数的加减运算
三.存储系统
1.存储器概述
1.1.存储器的分类
1.2.存储器的性能指标
1.3.多级层次的存储系统
2.主存储器
2.1.SRAM芯片和DRAM芯片
2.2.只读存储器(ROM)
2.3.多模块存储器
3.主存储器与CPU的连接
3.1.主存容量的扩展
3.2.存储芯片的地址分配和片选
4.外部存储器
4.1.磁盘存储器
4.2.固态硬盘
5.高速缓冲存储器(Cache)
5.1.Cache的基本工作原理
5.2.Cache和主存映射方式:Cache行中的信息是主存中某个块的副本,地址映射是指把主存地址空间映射到Cache地址空间。
5.3.Cache写策略
6.虚拟存储器
6.1.页式虚拟存储器:以页为基本单位。
6.2.段式虚拟存储器
四.指令系统
1.指令格式
1.1.指令(机器指令,指示计算机执行某种操作的命令)的基本格式
1.2.扩展操作码指令格式:缩短指令字长
1.3.指令的操作类型
2.指令的寻址方式
2.1.指令寻址
2.2.数据寻址
3.CISC和RISC
3.1.复杂指令系统计算机(CIRC):控制器大多数采用微程序控制。
3.2.精简指令系统计算机(RISC)
五.中央处理器
1.CPU的功能和基本结构
1.1.CPU的功能
1.2.CPU的基本结构
2.指令执行过程
2.1.指令周期
2.2.指令执行方案
3.数据通路的功能和基本结构
3.1.功能:数据在功能部件之间传送的路径称为数据通路,包括数据通路上流经的部件(ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等)。
3.2.基本结构
4.控制器的功能和工作原理
4.1.硬布线控制器
4.2.微程序控制器
5.异常和中断机制
5.1.异常:由CPU内部产生的意外事件
5.2.中断:来自CPU外部、与CPU执行指令无关的事件引起的中断。
5.3.异常和中断响应过程
6.指令流水线
6.1.流水线的节本实现
6.2.流水线的冒险与处理
6.3.流水线的性能指标
6.4.高级流水线技术
7.多处理器的基本概念
六.总线
1.总线基本概念
1.1.总线的定义::总线是一组能为多个部件分时共享的公共信息传送线路。
1.2.总线设备
1.3.总线特性
2.总线的分类
2.1.片内总线:芯片内部的总线,它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
2.2.系统总线:是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。
2.3.I/O总线:用于连接中低速的I/O设备。
2.4.通信总线(外部总线):在计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间传送信息的总线。
3.系统总线结构
3.1.单总线结构
3.2.双总线结构
3.3.三总线结构
4.常见的总线标准
5.总线的性能指标
6.总线事务和定时
6.1.总线事务
6.2.同步定时方式
6.3.异步定时方式
七.输入/输出系统
1.I/O系统的概念
1.1.输入/输出系统
1.2.I/O控制方式
1.3.外部设备
2.I/O接口
2.1.I/O接口的功能
2.2.I/O接口的基本结构
2.3.I/O端口及地址
3.I/O方式
3.1.程序查询方式
3.2.程序中断方式
3.3.DMA方式(完全由硬件进行成组信息传送的控制方式)
一.计算机系统概述
1.计算机系统层次结构
1.1.组成
- 硬件系统(硬件是指有形的物理设备)
- 软件系统(软件是指在硬件上运行的程序和相关的数据及文档)
1.2.计算机硬件
(1)输入设备:键盘、鼠标、扫描仪、摄像机。
(2)输出设备:显示器、打印机。
(3)存储器
主存储器(内存,CPU可直接访问)
- 存储体(由许多存储单元组成):存放二进制信息。
- 存储单元:包含若干存储元件,每个存储元件存储一个二进制代码“0”或“1”。
- 存储字:存储一串二进制代码。
- 存储字长:一个存储单元存储的二进制代码的长度(位数)。
- 地址寄存器(MAR):存放访存地址,其位数对应着存储单元的个数,MAR的长度与PC的长度相等。
- 数据寄存器(MDR):暂存要从存储器中读或写的信息,MDR的位数和存储字长相等。
- 时序控制逻辑:用于产生存储操作所需的各种时序信号。
辅助存储器(外存)
(4)运算器
算术逻辑单元(核心,ALU)
若干通用寄存器:用于暂存操作数和中间结果。
- 累加器(ACC)
- 乘商寄存器(MQ)
- 操作数寄存器(X)
- 变址寄存器(IX)
- 基址寄存器(BR)
程序状态寄存器(PSW):也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息。
- 结果是否溢出
- 有无产生进位或错位
- 结果是否为负
(5)控制器(计算器的指挥中心)
- 程序计数器(PC):用来存放当前欲执行指令的地址,可以自动加1形成下一条地址指令,与主存的MAR之间有一条直接通路。
- 指令寄存器(IR):用来存放当前的指令,其内容来自于主存的MDR。
- 指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列。
- 地址码Ad(IR)送往MAR,用以取操作数。
- 控制单元(CU)
1.3.计算机软件
(1)系统软件
- 操作系统(OS)
- 数据库管理系统(DBMS)
- 语言处理程序
- 分布式软件系统
- 网络软件系统
- 标准库程序
- 服务性程序
(2)应用软件
- 各种科学计算类程序
- 工程设计类程序
- 数据统计与处理程序
(3)三个级别的语言
- 机器语言
- 汇编语言
- 高级语言
- 翻译程序
- 汇编程序(汇编器):将汇编语言程序翻译成机器语言程序。
- 解释程序(解释器):将源程序中的语句按执行顺序逐条翻译成机器指令并立即执行。(每次执行都要翻译)
- 编译程序(编译器):将高级语言程序翻译成汇编语言或机器语言程序。(只需翻译一次)
1.4.计算机系统的层次结构(下层是上层的基础,上层是下层的扩展)
- 微程序机器层
- 传统机器语言层
- 操作系统层
- 汇编语言层
- 高级语言层
2.计算机的性能指标
2.1.字长:是指计算机进行一次整数运算所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。
- 字长一般等于内部寄存器的大小,直接反应了计算机的精度。
- 机器字长:通常所说的“某16位或32位机器”中,16、32指的是字长。
- 指令字长:一个指令字中包含的二进制代码的位数,一般取存储字长的整数倍。指令字长取决于操作码的长度、操作码地址的长度和操作码地址的个数。
- 存储字长:一个存储单元存储的二进制代码的长度。
2.2.周期(不是计算机的性能指标)
- 时钟周期:主频的倒数,是CPU中最小的时间单位,执行指令的每个动作至少需要一个时钟周期。
- 机器周期:也称为CPU周期,由若干时钟周期组成。
- 存取周期:两个存取操作(指存取一个存储单元)所需要的最小时间间隔。
- 指令周期:CPU从取来一条指令到指令完成,所需要的时间,在计算机中,通常使用存储周期来确定机器周期,就可以认为机器周期等于存取周期。
- 取址周期:是指指令周期的第一个阶段,主要用来根据PC到主存中取指令。
2.3.数据通路带宽:指数据总线一次所能并行传送信息的位数。
2.4.主存容量:指主存储器所能存储信息的最大容量(字数X字长)。
2.5.运算速度
- 吞吐量和响应时间
- 吞吐量:指系统在单位时间内处理请求的数量。
- 响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的时间。
- 主频和CPU时钟周期
- 主频(CPU时钟频率):机器内部主时钟的频率。
- CPU时钟周期:主频的倒数,是CPU中最小的时间单位,执行指令的每个动作至少需要一个时钟周期。
- CPI:即执行一条指令所需要的时钟周期数。
- CPU执行时间:指运行一个程序所花费的时间,CPU执行时间 = CPU时钟周期数 / 主频 =(指令条数*CPI)/ 主频。
- MIPS:即每秒执行百万条指令,MIPS = 指令条数 /(执行时间*10_6)= 主频 /(CPI*10_6)。
- MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS和ZFLOPS,MFLOPS = 浮点操作次数 /(执行时间*10_6)。
二.数据的表示和运算
1.数制与编码
1.1.进位计数制
- 二进制(B)
- 八进制
- 十进制(D)
- 十六进制(H)
1.2.定点数的编码表示
(1)机器数的定点表示
- 定点小数:纯小数,约定小数点位置在符号位之后、有效数值部分最高位之前。
- 定点整数:纯整数,约定小数点位置在有效数值部分最低位之后。
(2)原码、补码、反码、移码
- 原码:用机器数的最高位表示数的符号,其余各位表示数的绝对值。
- 补码
- 正数的补码=原码,零的补码表示是唯一的。
- 负数的补码=反码末位+1(要考虑进位)
- 反码
- 若符号位为0,则反码与原码相同。
- 若符号位为1,则数值位全部取反。
- 移码:补码的基础上将符号位取反,只能表示整数。
2.运算方法和运算电路
2.1.基本运算部件
- 一位全加器
- 串行进位加法器:每级进位直接依赖于前一级的进位。
- 并行进位加法器
- 带标志加法器
- 算术逻辑单元(ALU):是一种功能较强的组合逻辑电路。
2.2.定点数的移位运算
(1)算术移位:对象是有符号数,在移位过程中符号位保持不变。
- 左移一位若不产生溢出,相当于乘以2
- 右移一位,若不考虑因移出而舍去的末尾数,相当于除以2。
(2)逻辑移位:将操作数视为无符号数。
- 逻辑左移时,高位移丢,低位添0。
- 逻辑右移时,低位移丢,高位添0。
(3)循环移位:移出的数位又被移入数据中,适合将数据的低字节数据和高字节数据互换。
2.3.定点数的加减运算
- 补码的加减法运算
- 原码的加减法运算
2.4.定点数的乘除运算
(1)定点数的乘法运算:由累加器和右移操作实现
- 原码一位乘法
- 补码一位乘法
(2)定点数的除法运算
- 符号扩展
- 定点整数的符号扩展:在原符号位和数值位中间添加新位,正数都添“0”,负数原码添“0”,负数反、补码添“1”。
- 定点小数的符号扩展:在原符号位和数值位后面添加新位,正数都添“0”,负数原、补码添“0”,负数反码添“1”。
- 原码除法运算(不恢复余数法)
- 补码除法运算(加减交替法)
3.浮点数的表示和运算
3.1.浮点数的表示
(1)浮点数的表示格式
- 阶码的值反映浮点数的小数点的实际位置。
- 阶码的位数反映浮点数的表示范围。
- 尾数的位数反映浮点数的精度。
(2)浮点数的表示范围
上溢
- 运算结果大于最大正数时称为正上溢。
- 小于绝对值最大负数时称为负上溢。
- 数据一旦产生上溢,计算机必须中断运算操作,进行溢出处理。
下溢
- 运算结果在0至最小正数之间时称为正下溢。
- 在0至绝对值最小负数之间时称为负下溢。
- 数据下溢时,浮点数值趋于零,计算机仅将其当作机器零处理。
(3)浮点数的规格化
- 尾数的位数决定浮点数的有效位,有效位越多,数据的精度越高。
- 规格化操作:指通过调整一个非规格化浮点数的尾数和阶码的大小,使非零的浮点数在尾数的最高数位上保证是一个有效值。
(4)IEEE754标准:移码=真值+偏置值
- 短浮点数:偏置值为127
- 长浮点数:偏置值为1023
3.2.浮点数的加减运算
(1)对阶:使两个数的阶码相等。(小阶看向大阶原则)
(2)尾数求和
(3)规格化
- 左规:相当于乘2
- 右规:相当于除2
(4)舍入
- 0舍1入法:运算结果保留位最高数位为0,则舍去;最高数位为1,则在尾数的末位加1。
- 恒置1法:只要因移位而丢失的位中有1,就把末尾位置1,而不管原来是0还是1.
- 截断法:直接截取所需位数,丢弃后面的所有位。
(5)溢出判断
- 右规和尾数舍入
- 左规
三.存储系统
1.存储器概述
1.1.存储器的分类
(1)按在计算机中的 作用(层次)分类
- 主存储器:简称主存,又称内存储器(内存),用来存放计算机运行期间所需的程序和数据,CPU可直接随机地对其进行访问,也可以和高速缓冲存储器(Cache)及辅助存储器交换数据。
- 辅助存储器:简称辅存,又称外存储器(外存),用来存放当前暂时不用的程序和数据,以及一些需要永久性保存的信息,辅存的内容需调入主存后才能被CPU访问。
- 高速缓冲存储器:简称Cache,位于主存和CPU之间,用来存放当前CPU经常使用的指令和数据,以便CPU能高速地访问它们。
(2)按存储介质分类
- 磁表面存储器(磁盘、磁带)
- 磁芯存储器
- 半导体存储器(MOS型存储器、双极型存储器)
- 光存储器(光盘)
(3)按存取方式分类
- 随机存储器(RAM):存储器的任何一个存储单元都可以随机存取,而且存取时间与存储单元的物理位置无关。
- 只读存储器(ROM):存储器的内容只能随机读出不能写入。
- 串行访问存储器:对存储单元进行读/写操作时,需按其物理位置的先后顺序寻址。
顺序存取存储器(磁带)
直接存取存储器(磁盘、光盘)
(4)按信息的可保存性分类
- 易失性存储器:断电后,存储信息立即消失。(RAM)
- 非易失性存储器:断电后信息仍然保持。(ROM、磁表面存储器、光存储器)
1.2.存储器的性能指标
(1)存储容量=存储字数*字长
(2)单位成本:每位价格=总成本/总容量
(3)存储速度:数据传输率=数据的宽度/存储周期
- 存取时间:指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
- 存取周期:又称读写周期或访存周期,指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立访问存储器操作(读或写操作)之间所需的最小时间间隔。
- 主存带宽:又称数据传输率,表示每秒从主存进出信息的最大数量。(单位为字/秒、字节/秒)
1.3.多级层次的存储系统
- Cache-主存层:解决CPU和主存速度不匹配问题。(主存和Cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的)
- 主存-辅存层:解决存储系统的容量问题。(主存与辅存之间的数据调动是由硬件和操作系统共同完成的,对应用程序员是透明的)
2.主存储器
2.1.SRAM芯片和DRAM芯片
(1)存储元:通常存放一个二进制位的物理器件称为存储元,是存储器的最基本构件。
(2)静态随机存储器(SRAM):它的存储元是用双稳态触发器(六晶体管MOS)来记忆信息的,集成度低,一般用于高速缓冲存储器。
(3)动态随机存储器(DRAM):利用存储元电路中栅极电容上的电荷来存储信息的,容易集成,存取速度比SRAM慢,一般用于大容量的主存系统。
- 集中刷新
- 分散刷新
- 异步刷新
2.2.只读存储器(ROM)
- 掩模式只读存储器(MROM)
- 一次可编程只读存储器(PROM)
- 可擦除可编程只读存储器(EPROM)
- Flash存储器
- 固态硬盘(SSD)
- 控制单元
- 存储单元(Flash芯片)
2.3.多模块存储器
(1)单体多字存储器:存储器中只有一个存储体,地址必须顺序排列并处于同一存储单元。
(2)多体并行存储器:由多体模块组成。
- 高位交叉编址(顺序方式):相当于扩容。
- 低位交叉编址:低位地址为体号,高位地址为体内地址。
3.主存储器与CPU的连接
3.1.主存容量的扩展
- 位扩展法
- 字扩展法
- 字位同时扩展法
3.2.存储芯片的地址分配和片选
- 线选法
- 译码片选法
4.外部存储器
4.1.磁盘存储器
- 磁盘驱动器
- 磁盘控制器
- 盘片
- 存储区域
- 磁头数
- 柱面数
- 扇区数
- 磁盘阵列
4.2.固态硬盘
5.高速缓冲存储器(Cache)
5.1.Cache的基本工作原理
- Cache通常由SRAM构成,Cache块和主存块大小相同,又称为Cache行,每块由若干字节组成,块的长度称为块长(Cache行长)。
- CPU与Cache之间的数据交换以字为单位,而Cache与主存之间的数据交换以Cache块为单位。
5.2.Cache和主存映射方式:Cache行中的信息是主存中某个块的副本,地址映射是指把主存地址空间映射到Cache地址空间。
(1)直接映射:主存中的每一块只能装入Cache中的唯一位置。
(2)全相联映射:主存中的每一块可装入Cache中的任何位置。
(3)组相联映射:将Cache分成Q个大小相等的组。Cache组号=主存块号 mod Cache组数(Q)
(4)每个Cache行对应一个标记项(包括有效位、标记位Tag、一致性维护位、替换算法控制位)
5.3.Cache写策略
(1)Cache写命中
- 全写法(写直通法、write-through):在Cache和主存之间加了一个写缓冲。
- 回写法(write-back):每个Cache行设置一个修改位(脏位)。
(2)Cache写不命中
- 写分配法(write-allocate):加载主存中的块到Cache中,然后更新这个块,通常与回写法合用。
- 非写分配法(not-write-allocate):只写入主存,不进行调块,通常与全写法合用。
6.虚拟存储器
6.1.页式虚拟存储器:以页为基本单位。
- 虚页号
- 页内地址
6.2.段式虚拟存储器
- 段号
- 段内页号
- 页内地址
四.指令系统
1.指令格式
1.1.指令(机器指令,指示计算机执行某种操作的命令)的基本格式
- 操作码:指出指令中该指令应该执行什么性质的操作以及具有何种功能。
- 地址码:给出被操作的信息(指令或数据)的地址。
- 参加运算的一或多个操作数所在的地址
- 运算结果的保存地址
- 程序的转移地址
- 被调用的子程序的入口地址
- 零地址指令:不需要操作数的指令(空操作指令、停机指令、关中断指令)
- 一地址指令
- 二地址指令
- 三地址指令
- 四地址指令
1.2.扩展操作码指令格式:缩短指令字长
- 不允许短码是长码的前缀
- 各指令的操作码一定不能重复
1.3.指令的操作类型
(1)数据传送:进行主存与CPU之间的数据传送。
- 寄存器之间的传送(MOV)
- 从内存单元读取数据到CPU寄存器(LOAD)
- 从CPU寄存器写数据到内存单元(STORE)
(2)算术和逻辑运算
- 加(ADD)
- 减(SUB)
- 乘(MUL)
- 除(DIV)
- 比较(CMP)
- 加1(INC)
- 减1(DEC)
- 与(AND)
- 或(OR)
- 取反(NOT)
- 异或(XOR)
(3)移位操作
- 算术移位
- 逻辑移位
- 循环移位
(4)转移操作:改变程序执行的顺序
- 无条件转移(JMP)
- 条件转移(BRANCH)
- 调用(CALL)
- 返回(RET)
- 陷阱(TRAP)
(5)输入输出操作:进行CPU和I/O设备之间的数据传送。
2.指令的寻址方式
2.1.指令寻址
- 顺序寻址
- 跳跃寻址
2.2.数据寻址
- 隐含寻址:在指令中隐含操作数的地址,有利于缩短指令字长。
- 立即(数)寻址:地址字段指出的是操作数本身,采用补码表示。
- 直接寻址:指令中的形式地址A是操作数的真实地址。
- 间接寻址:指令中的形式地址A是操作数地址的地址。
- 寄存器寻址:在指令字中直接给出操作数所在的寄存器编号,其操作数在由Ri所指的寄存器内。
- 寄存器间接寻址
- 相对寻址:PC的内容+形式地址A。
- 基址寻址(面向操作系统):基址寄存器(BR)的内容+形式地址A。
- 变址寻址(面向用户):变址寄存器IX的内容+形式地址A。
- 堆栈寻址
3.CISC和RISC
3.1.复杂指令系统计算机(CIRC):控制器大多数采用微程序控制。
3.2.精简指令系统计算机(RISC)
- 只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行。
- 一定采用指令流水线技术,大部分指令在一个时钟周期内完成。
五.中央处理器
1.CPU的功能和基本结构
1.1.CPU的功能
- 运算器:对数据进行加工。
- 控制器:负责协调并控制计算机各部件执行程序的指令序列。
- 取指令
- 分析指令
- 执行指令
- 指令控制
- 操作控制
- 时间控制
- 数据加工
- 中断处理
1.2.CPU的基本结构
(1)运算器
- 算术逻辑单元(ALU)
- 暂存寄存器:对应用程序员透明。
- 累加寄存器(ACC):一个通用寄存器,用于暂时存放ALU运算的结果信息。
- 通用寄存器:存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。
- 程序状态字寄存器(PSW)
- 移位器:对操作数或运算结果进行移位运算。
- 计数器(CT):控制乘除运算的操作步数。
(2)控制器
- 程序计数器(PC):用于指出下一条指令在主存中的存放地址。
- 指令寄存器(IR):用于保存当前正在执行的那条指令。
- 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号。
- 存储器地址寄存器(MAR):用于存放要访问的主存单元的地址。
- 存储器数据寄存器(MDR):用于存放向主存写入的信息或从主存读出的信息。
- 时序系统:用于产生各种时序信号,它们都由统一时钟(CLOCK)分频得到。
- 微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时钟信号,产生控制整个计算机系统所需的各种控制信号。
(3)CPU内部寄存器
用户可见
- 通用寄存器组
- 程序状态寄存器
- 程序计数器
用户不可见(对用户透明)
- 存储器地址寄存器
- 存储器数据寄存器
- 指令寄存器
- 暂存寄存器
2.指令执行过程
2.1.指令周期
- 取址周期(FE)
- 间址周期(IND)
- 执行周期(EX)
- 中断周期(INT)
2.2.指令执行方案
- 单指令周期
- 多指令周期
- 流水线方案
3.数据通路的功能和基本结构
3.1.功能:数据在功能部件之间传送的路径称为数据通路,包括数据通路上流经的部件(ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等)。
3.2.基本结构
- CPU内部单总线方式
- CPU内部三总线方式
- 专用数据通路方式
4.控制器的功能和工作原理
4.1.硬布线控制器
(1)硬布线控制单元CU的输入信号来源
- 经指令译码器译码产生的指令信息。
- 时序系统产生的机器周期信号和节拍信号。
- 来自执行单元的反馈信息即标志。
- 来自系统总线(控制总线)的控制信号,如中断请求、DMA请求。
(2)时序系统及微操作
- 时钟周期
- 机器周期
- 指令周期
- 微操作命令分析
(3)CPU的控制方式
- 同步控制方式
- 异步控制方式
- 联合控制方式
(4)硬布线控制单元设计步骤
- 列出微操作命令的操作时间表
- 进行微操作信号综合
- 画出微操作命令的逻辑图
4.2.微程序控制器
(1)基本概念:将每条机器指令编写成一个微程序,每个微程序包含若干个微指令,每条微指令对应一个或几个微命令。
(2)微程序控制器组成
- 控制存储器(CM):核心部件,用于存放各指令对应的微程序,可用只读存储器ROM构成。
- 微指令寄存器:用于存放从CM中取出的微指令,它的位数等于微指令字长。
- 微地址形成部件:用于产生初始微地址和后继微地址,以保证微指令的连续执行。
- 微地址寄存器:接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。
(3)微指令的编码方式
- 直接编码(直接控制)方式
- 字段直接编码方式
- 字段间接编码方式(隐式编码)
(4)微指令的地址形成方式
- 直接由微指令的下地址字段指出。
- 根据机器指令的操作码形成。
- 增量计数器法
- 根据各种标志决定微指令分支转移的地址。
- 通过测试网络形成。
- 由硬件直接产生微程序入口地址。
(5)微指令的格式
- 水平型微指令
- 垂直型微指令
- 混合型微指令
(6)微程序控制单元的设计步骤
- 写出对应机器指令的微操作命令及节拍安排。
- 确定微指令格式。
- 编写微指令码点。
(7)动态微程序设计和毫微程序设计
5.异常和中断机制
5.1.异常:由CPU内部产生的意外事件
(1)硬故障中断:由硬连线出现异常引起的。
- 存储器校验错
- 总线错误
(2)程序性异常(软件中断):指在CPU内部因执行指令而引起的异常事件。
- 整除0
- 溢出
- 断点
- 单步跟踪
- 非法指令
- 栈溢出
- 地址越界
- 缺页
5.2.中断:来自CPU外部、与CPU执行指令无关的事件引起的中断。
(1)I/O设备发出的I/O中断
- 键盘输入
- 打印机缺纸
(2)发生某种特殊事件
- 用户按Esc键
- 定时器计数时间到
5.3.异常和中断响应过程
- 关中断
- 保存断点和程序状态
- 识别异常和中断并转到相应的处理程序
6.指令流水线
6.1.流水线的节本实现
(1)流水线的数据通路
取址(IF)
程序计数器
指令存储器
下条指令地址的计算逻辑
译码(ID)
操作控制器
取数操作逻辑
立即数符号扩展模块
执行(EX)
算术逻辑单元
分支地址计算模块
访存(MEM)
数据存储器读写模块
写回(WB)
寄存器写入控制模块
(2)流水线的控制信号
(3)流水线的执行过程
- 取址
- 译码
- 执行
- 访存
- 写回
6.2.流水线的冒险与处理
(1)结构冒险
(2)数据冒险
- 写后读(RAW)
- 读后写(WAR)
- 写后写(WAW)
(3)控制冒险
6.3.流水线的性能指标
- 流水线的吞吐率:在单位时间内流水线所完成的任务数量,或输出结果的数量。
- 流水线的加速比:完成同样的一批任务,不使用流水线与使用流水线所用的时间之比。
- 效率:流水线设备的利用率。
6.4.高级流水线技术
- 超标量流水线技术:每个时钟周期内可并发多条独立指令。
- 超长指令字技术:将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字。
- 超流水线技术:通过提高流水线主频的方式来提升流水线性能。
7.多处理器的基本概念
- 单指令流单数据流(SISD)结构
- 单指令流多数据流(SIMD)结构
- 多指令流单数据流(MISD)结构
- 多指令流多数据流(MIMS)结构
- 硬件多线程的基本概念
- 细粒度多线程
- 粗粒度多线程
- 同时多线程
六.总线
1.总线基本概念
1.1.总线的定义::总线是一组能为多个部件分时共享的公共信息传送线路。
1.2.总线设备
- 主设备:指获得总线控制权的设备。
- 从设备:指被主设备访问的设备,它只能响应从主设备发来的各种总线命令。
1.3.总线特性
- 机械特性(尺寸、形状)
- 电器特性(传输方向和有效的电平范围)
- 功能特性(每根传输线的功能)
- 时间特性(信号和时序的关系)
2.总线的分类
2.1.片内总线:芯片内部的总线,它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
2.2.系统总线:是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。
- 数据总线:用来传输各功能部件之间的数据信息。
- 地址总线:用来指出数据总线上的源数据或目的数据所在的主存单元或I/O端口的地址。(单向传输总线)
- 控制总线:传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号。
2.3.I/O总线:用于连接中低速的I/O设备。
2.4.通信总线(外部总线):在计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间传送信息的总线。
3.系统总线结构
3.1.单总线结构
3.2.双总线结构
- 主存总线
- I/O总线
3.3.三总线结构
- 主存总线
- I/O总线
- 直接内存访问(DMA)总线
4.常见的总线标准
5.总线的性能指标
- 总线传输周期
- 总线时钟周期
- 总线工作频率
- 总线时钟频率
- 总线宽度
- 总线带宽
- 总线复用
- 信号线数:地址总线、数据总线和控制总线的总线数总和。
6.总线事务和定时
6.1.总线事务
- 请求阶段
- 仲裁阶段
- 寻址阶段
- 传输阶段
- 释放阶段
6.2.同步定时方式
6.3.异步定时方式
- 不互锁方式
- 半互锁方式
- 全互锁方式
七.输入/输出系统
1.I/O系统的概念
1.1.输入/输出系统
- 外部设备
- 接口:在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件。
- 输入设备
- 输出设备
- 外存设备
- I/O软件:驱动程序、用户程序、管理程序、升级补丁。
- I/O硬件:外部设备、设备控制器和接口、I/O总线
1.2.I/O控制方式
- 程序查询方式
- 程序中断方式
- DMA方式
- 通道方式
1.3.外部设备
- 输入设备:键盘、鼠标
- 输出设备:显示器、打印机
- 外部存储器(辅存):磁表面存储器、固态硬盘(SSD)、光盘存储器
2.I/O接口
2.1.I/O接口的功能
- 进行地址译码和设备选择
- 实现主机和外设的通信联络控制
- 实现数据缓冲
- 信号格式的转换
- 传送控制命令和状态信息
2.2.I/O接口的基本结构
2.3.I/O端口及地址
(1)I/O端口
- 数据端口
- 状态端口
- 控制端口
- 若干端口加上相应的控制逻辑电路
(2)编址方式
- 统一编址:用统一的访存指令就可以访问I/O端口。
- 独立编址:I/O映射方式,需设置专门的I/O指令来访问I/O端口。
3.I/O方式
3.1.程序查询方式
3.2.程序中断方式
(1)中断请求
(2)中断响应判优
- 不可屏蔽中断>内部异常>可屏蔽中断
- 内部异常中:硬件故障>软件中断
- DMA中断请求优于I/O设备传送的中断请求
- 在I/O传送类中断请求中
- 高速设备优于低速设备
- 输入设备优于输出设备
- 实时设备优于普通设备
(3)CPU响应中断条件
- 中断源有中断请求
- CPU允许中断及开中断
- 一条指令执行完毕,且没有更紧迫的任务
(4)中断响应过程
- 关中断
- 保存断点
- 引出中断服务程序
(5)中断向量
(6)中断处理过程
- 关中断
- 保存断点
- 中断服务程序寻址
- 保存现场和屏蔽字
- 开中断
- 执行中断服务程序
- 关中断
- 恢复现场和屏蔽字
- 开中断、中断返回
3.3.DMA方式(完全由硬件进行成组信息传送的控制方式)
(1)DMA控制器的组成
- 主存地址计数器
- 传送长度计数器
- 数据缓冲寄存器
- DMA请求触发器
- “控制/状态”逻辑
- 中断机构
(2)DMA的传送方式
- 停止CPU访存
- 周期挪用(或周期窃取)
- DMA与CPU交替访存
(3)DMA的传送过程
- 预处理
- 数据传送
- 后处理