导图社区 组成原理
计算机组成原理,涉及99%的知识点,
编辑于2019-11-10 03:26:45组成原理
黄色表示考场上需注意的
1. 数据的表示和运算
校验码
码距
两个码字之间不同的二进制的位数
码距越大, 检错纠错能力越强, 检错能力总是大于纠错能力
海明码
校验位位数k应能表示数据位+校验位+一位正确位
所以2^k≥n+k+1
发现两位错, 纠正一位错误
循环冗余码
除数位数多, 添0数和余数位数=除数位数-1
定点数
无舍入操作
0表示不唯一
原码
反码
正数, 原码反码一样, 负数, 除符号位以外取反
0表示唯一
补码
移码
补码符号位取反=移码
溢出判断
若两个加数符号位相同, 但与结果符号位不同, 则溢出
若最高位进位与次高位进位不同, 则溢出
双符号位不相同则溢出
乘法
原码一位乘法
符号位不参与运算, 累加次数n, n次逻辑右移
补码一位乘法
符号位参与运算, 累加次数n+1, n次算术右移
n表示数值位数
除法
原码不恢复余数法
符号位不参与运算, n次逻辑左移
若余数为负, 需恢复余数
补码加减交替法
符号位参与运算, n次算术左移
同号上商1, 异号上商0,最后恒置1
模4补码只在ALU算术与逻辑部件中采用双符号位
浮点数
计算
对
和
规
当尾数溢出时需要右规
右规操作最多一次, 左规可能不止一次
指移位这个操作, 不是整个右规. 舍入阶段也可能进行右规
float浮点数进行乘法运算的结果肯定不需要左规, 因为位数≥1, 乘后依然≥1.
舍
溢
左规和舍入可能导致溢出
下溢(当做机器零处理)
下溢表示阶码负溢出, 精度不够, 运算结果绝对值小于浮点数所能表示的最小绝对值
IEEE 754标准
float
阶码8位, 数值23位
double
阶码11位, 数值52位
阶码全0表示非规格化, 全1表示无穷大
普通浮点数阶码可以全1, 但偏置值为2^n
零
机器零
表示0点及其附近的一般区域, 即计算机中小到机器数的精度达不到的数为"机器零"
真值零
表示0这一点
运算
加减法
有符号
a-b=[a]补+[-b]补
无符号
a-b=a+[-b]补
2. 中央处理器
寄存器由触发器构成
组成
运算器
ALU算术逻辑单元
暂存寄存器
单总线结构防止ALU同时获得两个相同的数据, 使数据通路不能正常工作
ACC累加寄存器
通用寄存器组
PSW程序状态字寄存器
OF溢出标志
CF进位标志
CF进位标志表示最高位进位情况
包括符号位
SF符号标志
符号标志位1, 结果为负
ZF零标志
移位器
计数器
一些细节
浮点运算器由两个松散的定点运算器实现
尾数部件要求加减乘除4种运算
阶码部件要求加减, 比较3种
程序猿可见, 不透明
通用寄存器
PSW
PC
中断字寄存器
控制器
PC程序计数器
页式存储结构中, PC中的内容始终是逻辑地址, 因此入栈时SP中内容是逻辑地址
位数与地址数有关, 如果指令字按边界对其存放, 则与字地址数有关
IR指令寄存器
指令译码器
MAR存储器地址寄存器
地址总线位数=MAR位数=最大存储单元个数
MDR存储器数据寄存器
MDR位数=存储字长
时序系统
微操作信号发生器
与寄存器数量无关
功能和工作原理
硬布线控制器
RISC
微程序控制器
CISC
构成
CMAR微地址寄存器
CMDR或μIR微指令寄存器
CM控制存储器
微地址形成部件
微指令
完全透明
微指令的地址形成方式
1. 断定方式: 由微指令的下地址字段指出
2. 根据机器指令的操作码形成: 机器指令取至指令寄存器后, 微指令的地址由操作码经微地址形成部件形成
3. 增量计数法: (CMAR)+1→CMAR
4. 由硬件直接产生微程序的入口地址
微指令的格式
水平型微指令
一条水平型微指令定义并执行几种并行的基本操作
垂直型微指令
和传统指令相似, 一条垂直型微指令只能定义并执行一种基本操作
比较
水平并行能力强, 垂直较差
水平执行一条指令时间短, 垂直长
水平微指令长, 微程序短, 垂直反之
水平复杂, 垂直对于用户相对容易掌握
混合型微指令
微指令的编码方式
直接编码
微指令的微命令字段中(操作码字段)每位都代表一个微命令.
字段直接编码
互斥的微命令在同一段, 相容的微命令在不同段
每段多出一个状态全0表示不操作
字段间接编码(又称隐式编码)
一个字段的某些微命令需由另一个字段中的某些微命令来解释, 进一步缩短了微指令的字长
设计目标
1. 缩短微指令长度
2. 减少控制存储器容量
3. 提高执行速度
4. 有利于修改
5. 灵活性
数据通路
数据在功能部件之间传送的路径, 由组合逻辑电路和时序逻辑电路组合而成
包含
ALU
通用寄存器组合
取值部件
不包含
控制部件
节拍设计
进入ALU时的节拍
(A)+(R0)→AC
AC为从ALU出来后的寄存器
不采用CPU内部总线的数据通路是专用数据通路
3. 指令系统
计算机软件和硬件的接口
指令执行过程
指令周期
分为定长和不定长的机器周期
1. 取值周期
控制器自动进行
2. 间址周期
取操作数的有效地址
3. 执行周期
每个=机器周期(有多个节拍)=CPU周期=存取周期
4. 中断周期
每条指令结束前都要发送中断查询信号, 若有中断请求, 则进入中断周期, 否则没有中断周期
指令流水线
三种相关
结构相关
多条指令在同一时刻争用同一资源形成的冲突
数据相关
解决方法
1. 延后几个时钟周期, 采用硬件阻塞或软件插入NOP指令
2. 数据旁路技术(转发技术): 直接把前一条指令的ALU的运算结果作为自己的输入开始计算, 即不等前一条写回寄存器.
3. 编译器优化, 调整指令顺序
单发射, 按序流动流水线不可能出现___后写相关
按序发射, 按序完成, 当前指令的IF必须与前一条指令的ID并行, 以免因上一条指令冲突而导致下一条指令先执行完
分支指令后的ALU运算不会发生数据相关
可通过调整指令顺序和插入NOP指令消除所有数据相关
控制相关
遇到转移指令或改变PC的指令而造成断流时会引起控制相关.
遇到转移类指令会发生控制冒险
解决方法
1. 分支预测
2. 预取转移成功和不成功两个控制方向上的目标指令
3. 加快和提前形成条件码
4. 提高转移方向的猜准率
理想情况下每个时钟周期内都有一条指令在流水线中完成
第一条指令不是
高级流水线
超标量流水线技术
可并行多条指令的执行, 固需要多个功能部件.
超流水线技术
一个时钟周期内再分段, 功能部件使用多次
流水线分类
动态流水线
同时多个运算
静态流水线
同时一个运算
性能指标
吞吐率
指令条数/总时间
加速比
不使用流水线的时间/使用流水线的时间
效率
实际面积/总面积
指令种类
跳转指令
1. 子程序调用指令
1. 取值 2. PC+ 3. 存断点 4. (SP)-1
不需保存PSW
2. 无需返回地址
返回指令
中断返回指令
中断处理指令需要保存PSW
3. 转子指令要返回
4. 无条件转移指令不需要返回
跳转指令总是根据PC中内容来执行下一条指令
根据PC从主存中读出
二地址指令
RR
RS
SS
源操作数
准备操作的数
目的操作数
操作完后存放的地址
操作数的物理位置仅可安排在这里,不可在外存和Cache中
Cache是主存副本, 若数据在Cache中, 则主存中一定有, 地址依然是主存地址
零地址指令
堆栈寻址
操作数来自栈顶和次栈顶
I/O指令也是系统指令的一部分
寻址方式
1. 堆栈寻址
软堆栈(内存)
硬堆栈(寄存器)
无操作数
2. 基址寻址
用于操作系统的程序控制
基不变
3. 变址寻址
用于循环结构
变变
都扩大了寻址范围( 两者都在原有形式地址的基础上加上了寄存器中的内容)
4. 跳跃寻址可以实现程序的条件和无条件转移
指令集
CISC
复杂, 大于200条, 指令字长不固定, 访存指令不限制, 各指令执行时间不固定, 通用寄存器少, 难生成高校的目标代码
绝大多数为微程序控制
RISC
精简, 小于100条, 指令字长固定, 只有Load/Store访存指令, 各指令执行时间固定, 通用寄存器多, 目标代码高效, 必须用指令流水线
绝多大数为组合逻辑控制
多地址指令题目分为定长操作码和非定长操作码
指令字长必须为字节的整数倍(假设按字节编址)
4. 总线
总线之间通过桥接器连接
总线仲裁
集中仲裁
链式查询
计数器定时查询
若每次计数从中间开始, 则前半部分的优先级低于后半部分的优先级
独立请求
控制线数
总线忙信号由获得总线控制权的设备建立
忙都是一根
1. 请求1+忙1+允许1=3
2. 请求1+忙1+设备地址线log2(n)=2+log2(n)
3. 请求n+忙1+允许n=2n+1
优缺点
优先级灵活
定时; 独立请求
结构简单, 扩充容易
链式
对电路敏感
链式
分布仲裁
不需要中央总裁器
总线标准
PCI总线与CPU及其性能无关, 即插即用, 可进行奇偶校验, 猝发传送.
总线分类
并行总线
PCI, EISA, ISA
串行总线
PCI-E, USB, SATA, RS-232C
局部总线
PCI(主存), VESA, AGP(显卡), PCI-E, CPU总线
总线传送定时方式
同步定时方式
异步定时方式
常用于串行I/O总线中
不互锁
相当于一次握手
半互锁
相当于两次握手
全互锁
相当于三次握手
用于两个速度差异大的部件进行信息交换, 如I/O接口和打印机
总线特性
对应网络
1. 物理特性(机械特性)
插头插口的几何特性, 引脚数和排列顺序
2. 功能特性
每根信号线的功能, 如用地址总线表示地址码,以及数据总线和控制总线的功能描述
3. 电气特性
信号线上的信号方向和电平范围
4. 时间特性(逻辑特性)
信号何时有效,确定时序关系
总线综合知识点
串行传输成本低, 距离远
衡量并行总线的速度指标是最大数据传输率
系统级总线用来连接系统中各个功能模块和设备
总线上的地址信息, 控制信息, 状态信息的传输为单向传输
当I/O接口可以作为数据通信的主控设备时, 它的地址总线是双向的
5. 主题
6. 存储系统
1. 存储器分类
CD-ROM是光盘,不是ROM,不可随机存储
Flash(闪存): 非易失, 有写功能, 可擦除, 属于ROM, 功能上有RAM的功能.
可随机存取, 但并非随机存取存储器
2. SRAM和DRAM
共同点
非易失
不同点
SRAM
非破坏性读出
不要
行列地址同时送
集成度: 低
功耗大
用途Cache
DRAM
破坏性读出
需要刷新
每隔一定时间, 根据原存内容重新写一遍, 一次完整的刷新只需占用一个存储周期
集中刷新
分散刷新
异步刷新
死时间
存在
不存在
存在少量
分两次送
地址线减半
高
发热小
内存
行列的最大值为地址线数
因为行列地址复用
特性
破坏性读出
需要刷新
送行列地址
集成度
功耗
用途
3. 局部性原理
时间局部性
被引用过一次的存储器位置在未来会被多次引用(通常在循环中)
每个数组只被访问一次, 无时间局部性
空间局部性
如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。
高位多体交叉不满足局部性原理, 低位很好的满足
4. 虚拟存储器
容量<=主存+辅存
地址映射由操作系统完成, 需要硬件支持
地址越界
保护方案
1. 界限保护
2. 键保护
3. 环保护
地址越权
保护方案
设置访问权限位
5. 多模块存储器
低位交叉
流水线纵轴是字数
高位交叉
可能在一个存储周期内连续访问多个模块
6. Cache
完全由硬件实现, 不涉及中断
Cache-内存有效存取时间:
Cache等效访问速度主要受命中率影响
1. Cache-内存不同时存取: T=Tc+(1-a)Tm
2. Cache-内存同时存取: T=aTc+(1-a)Tm
Cache由RAM组成,没有ROM
映射方式
1. 直接映射
地址结构
1. 主存字块标记
2. 块号
3. 块内地址
2. 组相联映射
地址结构
1. 主存字块标记
2. 组地址
3. 块内地址
2^n路组相联需要n位LRU替换位
3. 全相联映射
地址结构
1. 主存字块标记
2. 块内地址
地址解析
大题注意
除去主存字块标记, 剩下的就是Cache地址
除去块内地址, 剩下的地址相当于主存中的块号, 每经过一块, 此地址+1
组相联可能没有替换算法位, 具体看题目中描述
Cache中每行的东西
1. 标记项
1. 有效位
2. 脏位(一致维护位)
写回法才有
3. LRU替换算法位
4. 主存字块标记
2. 数据
替换算法
1. 随机算法RAND
2. 先进先出FIFO
3. 最近最少使用LRU
4. 最不常使用
写策略
1. 写命中
全写法
写命中时同时写入主存
非写分配法
写回法
只有调出的时候写回主存, 所以要设脏位
写分配法
2. 写不命中
写分配
调块
写回法
非写分配
不调块
全写法
7. I/O管理
I/O方式
1. 程序中断
软件和硬件实现
中断服务程序+隐指令
中断服务程序的最后指令是中断返回指令, 不需要进行无条件转移, 只需通知CPU从PC中取指
触发器
允许中断触发器
是用来控制是否允许设备发出中断请求
触发器置0表示关中断, 由隐指令完成
工作触发器
用来标记设备是否处于忙状态
中断屏蔽触发器
是为了标记CPU是否受理中断
对应屏蔽号
中断判优逻辑既可以通过硬件实现, 又可以通过软件实现
中断响应的优先级
1. 硬件故障
2. 访管
3. 程序性
主存故障引起的中断是机器校验中断
数据传送依然需要CPU完成
2. 程序查询
定时查询
由于缓冲区端口大小有限, 必须在传输完整个缓冲端口大小的数据时访问端口, 防止未及时读取而丢失, 所以I/O传输完一个缓冲区的时间就是CPU的最大间隔查询时间
计算定时查询大题时注意
3. DMA
完全由硬件进行
预处理和后处理需要CPU干预
由外部设备发出DMA请求, 不是DMA控制器.
CPU响应DMA请求是在当前机器周期执行完
4. 通道
通道过程
1. 编制通道程序
2. 启动I/O操作
3. 组织I/O操作
4. 向CPU发出中断请求
组成
由硬件+软件构成
分类
字节多路通道
允许多个设备同时传输, 单位字节
数组多路通道
允许多个设备同时工作, 只允许一个设备传输, 单位数据块, 适用于磁盘
通道程序
由通道命令编写的程序
通道的指令称为通道命令
通道指令的集合
由通道执行
外围设备: 除CPU和主存以外的设备
I/O分类
磁盘
非格式化容量是总容量, 格式化后是用户可用的, 比非格的容量小
地址结构
1. 驱动器号
2. 柱面号
3. 盘面号
4. 扇区号
最外道磁道号最小
读写的基本单位是扇区
RAID廉价冗余磁盘阵列
将多个独立的物理磁盘组成一个独立的逻辑盘, 数据在多个物理盘上交叉存储, 并行访问, 有更好的安全性,可靠性
磁记录密度不变, 磁盘利用率变小
方案
RAID0
无冗余和无校验的磁盘阵列
RAID1
镜像磁盘阵列
RAID2
采用纠错海明码的磁盘阵列
RAID3
位交叉奇偶校验
RAID4
块交叉奇偶校验
RAID5
无独立校验的奇偶校验
条带化
把连续数据分散到不同磁盘上, 获得更好的并行能力
I/O指令
I/O指令实现的数据传送通常发生在通用寄存器和I/O端口之间
CPU通过I/O指令来控制通道
I/O接口
主要功能
1. 解决主机和外设的时序配合问题
2. 进行地址移码和设备选择(并不存储地址)
3. 实现数据缓冲
4. 信号格式转换
5. 传送控制命令和状态信息(分别存于命令控制器和状态寄存器)
总线
数据线
命令字,状态字, 中断类型号通过接口发往CPU, 固是通过数据线发送的
地址线
控制线
单向
统一编址的方式下, 区分存储单元和I/O设备是靠
不同地址码
不同地址线
不同控制线
不同数据线
8. 杂七杂八综合知识点
硬件相关
需要硬件支持
1. 地址映射(由操作系统完成)
1. 页表寄存器
2. 地址变换机构
2. 中断系统
3. 通道
4. Cache
地址映射由硬件完成
不需要硬件支持
1. 进程调度
2. 系统调用
3. DMA
区分地址和数据
CPU和主存通过总线类型识别地址和数据
CU控制器可以区分存储单元中是数据还是地址
概述
计算机发展史
电子管→晶体管→中小规模集成电路→超大规模集成电路
早期计算器以运算器为中心, 如冯诺依曼体系
近代计算机以存储器为中心
系统组成
汇编语言是机器语言的符号表示, 与机器语言一一对应
计算机硬件能直接运行的程序是目标程序
工作站是一种高性能微型计算机
冯诺依曼的基本工作方式是控制流驱动方式
翻译程序
把高级语言转换成机器语言的软件
编译程序
一次性编译完成
将高级语言程序转换为机器级目标代码文件的程序
解释程序
翻译一句, 解释一句
汇编程序
把汇编语言翻译成机器语言的程序
性能指标
标志系统性能最有用的参数是每秒多少次浮点运算
不是时钟频率
当前设计高性能计算机的重要技术途径是
提高主频
扩大主存
采用非冯诺依曼
采用并行处理技术
汉字码
1. 用于输入汉字的编码称为输入码或外码
2. 用于输出汉字的编码称为字模码
3. 存储, 处理汉字的编码称为机内码或内码
单周期处理器
需多个部件同时工作
由于一条指令要在一个时钟周期中,固需将时钟周期延长
一个时钟周期内,控制信号不变
单周期多总线, 多周期单总线
三态门
控制寄存器与总线间数据通路的连接和断开
流水线相关
指令流水线纵轴是功能部件
多模块存储流水线纵轴是字
各种周期和时间
机器周期(有多个节拍)=CPU周期=存取周期
存取周期
连续两次读操作所需的最小间隔
存取周期大于存取时间
指令周期包括多个机器周期
CPI
存储器延迟与CPI无关, 只需时钟周期和指令速率就可得出CPI
不同程序, 同一台计算机的CPI可能不同
因为程序不同,指令就不同,每天指令的CPI不同, 平均CPI就不同
CPU执行程序的时间比观测到用户程序的执行时间短( 因为中间可能夹杂其他程序的运行)
总线周期=低位存储器一个体的时间, 总传输时间=送地址时间, 读取存储单元时间, 传输数据时间, 因为读取时间和传输时间重叠, 所以总时间=送地址时间+传输总数据时间
注意区分数据传输率和有效数据传输率
I/O的编织方式采用统一编址时, 进行输入/输出操作的指令是访存指令
采用独立编址时, 使用专门的输入输出指令完成输入/输出操作
自陷是人为预先设定的一种特定处理事件
9. 题
某计算机的Cache共有16块, 采用2路组相联, 每块32B,按字节编址. 主存129号单元的主存块的组号是___
共8组, 129/32=4余1.第5块, 组号为4
我把余数1当做块号了
每秒缺失的次数×每次缺失交换块的大小
页表项大小为4B, 页大小为4KB,物理地址1为0020 0020H
4体存储器, 一个存储器是8位, double为64位, 需要读8个存储体, 一个体是一个存储周期T, 因为是流水线方式, 所以, 总共需要, 第一个T+7×T/4. 所以至少需要3个存储周期
机器代码, 首位是低地址位, 所以数据的低位应在操作码之后, 数据的首位
遗留问题
13年44题