仅供参考
目录
参考
计算机系统结构课后题目答案_计算机系统结构课后题答案-CSDN博客
【计算机系统结构期末复习】第二章_指令集应满足哪几个基本要求?-CSDN博客
【计算机系统结构期末复习】第三章_简述三种向量处理方式,它们对向量处理机的结构要求有何不同?-CSDN博客
【计算机系统结构期末复习】第五章_计算机系统结构期末考题-CSDN博客
【计算机系统结构期末复习】第六章_某字节多路通道连接6台外设,其数据传输速率如表-CSDN博客
总结
例题&课后题
习题
【计算机系统结构】习题1_假设浮点数指令fp指令的比例为30%-CSDN博客
【计算机系统结构】习题2_在cray-1机器上,按照链接方式执行下述5-CSDN博客
期末复习【计算机系统结构】_计算机系统结构复习笔记(五)-CSDN博客
计算机系统结构的基本概念
计算机组成
定量分析
Amdahl定律
加速比
CPU时间
CPI
CISC、RISC
吞吐率TP
效率
流水线性能分析
链接技术
Tomasulo算法
相关与冲突、解决
存储器的层次结构
四个问题
命中率
不命中率
平均访存时间
Cache性能分析
改进Cache性能
降低不命中率
减少Cache不命中开销:两级Cache
减少命中时间
通道流量分析
第一章
计算机系统的层次结构
计算机系统结构是程序员所能够看到的计算机属性,即概念性结构与功能特性
指令集结构、组成和硬件
确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能
机器语言程序员所能看到的传统机器级所具有的属性
计算机组成是指计算机系统结构的逻辑实现,包括物理机器级中的数据流和控制流的组成以及逻辑设计等,着眼于物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系。
计算机实现指的是计算机组成的物理实现,包括处理机和主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。着眼于器件技术和微组装技术。
一个系统结构可以采用不同的计算机组成
一个计算机组成可以采用不同的计算机实现
定量分析技术
- 以经常性事件为重点
在计算机系统设计中经常要在不同的方法之间进行折中,这是按照对经常发生的事件采用优化方法的原则进行选择,因为这样能够得到更多的总体上的改进。这里优化是指分配更多的资源、达到更高的性能或者分配更多的电能等
- Amdahl定律
- CPU性能公式
CPU时间=执行程序所需的时钟周期数*时钟周期时间
CPI=执行程序所需的时钟周期数/所执行的指令条数
CPU时间=IC*CPI*时钟周期时间
- 程序的局部性原理
指程序执行时所访问的存储器地址分布不是随机的,而是相对簇聚
程序执行时间的90%都是在执行程序中10%的代码
局部性包括时间局部性和空间局部性。时间局部性是指程序即将用到的信息很可能就是目前正在使用的信息。空间局部性是指程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或临近
冯诺依曼结构
由运算器、控制器、存储器、输入设备和输出设备5部分构成
第二章
CISC
面向目标程序增强指令功能
面向高级语言的优化实现来改进指令集
面向操作系统的优化实现改进指令集
RISC
CISC(复杂指令集计算机)
目标:通过单条指令完成复杂任务(如乘除运算、内存操作)。
特点:指令数量多(100~250条),长度可变,寻址方式多样(5~20种),直接操作内存。
典型架构:x86(Intel/AMD桌面处理器)。
RISC(精简指令集计算机)
目标:简化指令功能,提高单周期执行效率。
特点:指令数量少(约100条内),长度固定,寻址方式少(通常1~5种),仅
Load/Store
指令访问内存。典型架构:ARM、MIPS。
对比维度 CISC RISC 指令系统 指令多、功能复杂,20%指令承担80%工作 指令精简,高频指令优化,单周期完成 寻址方式 支持5~20种复杂寻址 仅支持1~5种简单寻址 实现技术 微程序控制(微码解析指令) 硬布线逻辑+流水线技术,通用寄存器多 存储器操作 可直接操作内存 仅 Load/Store
指令访问内存中断响应 指令执行结束后响应中断 指令执行中可响应中断(如分支预测失败) 性能与成本 设计复杂、功耗高、周期长 设计简单、功耗低、易流水线优化 适用场景 通用计算(桌面/服务器) 嵌入式/移动设备(低功耗需求)
【计算机系统结构】习题1_假设浮点数指令fp指令的比例为30%-CSDN博客
【计算机系统结构】习题2_在cray-1机器上,按照链接方式执行下述5-CSDN博客
第三章
流水线分类
- 单功能与多功能
- 静态与动态
- 部件级(运算)、处理机级(指令)、处理机间
- 线性与非线性(是否有反馈)
- 按序与乱序
吞吐率
解决流水线瓶颈问题的方法
- 细分瓶颈
- 重复设置瓶颈段
加速比
S=不使用流水线/使用流水线
效率
流水线性能分析
静态流水线中,前一种功能的最后一条指令排空后,才能切换流水线,动态多功能指令不用
- 首先应该选择适合于流水线的算法
- 其次画出完成该计算的时空图
- 五个阶段(IF、ID、EX、MEM、WB)
- 各段功能
- 时空图
不属于解决流水线控制冲突静态方法的是()
A.延迟槽方法
B.分支目标缓冲器BTB方法
C.定向技术方法
D.插入气泡方法
选B
静态方法是对分支的处理在程序执行的过程中始终是不变的。
流水线的相关与冲突
1. 数据相关
真数据相关——写后读2. 名相关
反相关——读后写
输出相关——写后写寄存器换名技术
3. 控制相关
控制相关——分支指令引起
下列书法中,不属于数据相关的是()
A.写后读相关
B.反相关
C.段相关
D.名相关
选C
1. 结构冲突
- 停顿——气泡解决
- 相互独立的指令存储器和数据存储器(对功能部件进行流水,或重复设置资源)
2. 数据冲突
写后读冲突
写后写冲突
读后写冲突
- 定向技术
如上图所示的三个部分可以采用定向技术解决冲突,下一条指令(1)的ALU运算直接可以使用上一条指令ALU运算的结果;再向下一条(2)是数据通过流水线直接传送到下一级的流水线寄存器中,那此时的ALU可以使用当前MEM/WB级别的寄存器;第三种定向是在WB写回阶段和在下一条指令(3)的ID读周期重合,存在着写后读(真数据相关)的问题,这里安排前半个周期写,后半个周期读,所以不会出现冲突。
后面指令在前面的ALU之后出现ALU的使用可以使用定向技术进行操作,但是如果当前需要ALU的结果在前面的ALU运算之前就没有办法通过定向技术解决。
- 停顿
- 依靠编译器解决
3. 控制冲突
- “冻结”或“排空”流水线
- 减少分支延迟
- 依靠编译器来处理
- 预测分支失败
- 预测分支成功
- 延迟分支
- 分支取消
MIPS
系统结构期末复习(三)流水线技术_重复设置瓶颈段-CSDN博客
向量处理机
向量处理方式
1.横向(水平)处理方式
2.纵向(垂直)处理方式
2.纵横(分组)处理方式
提高向量处理机性能的方法
- 设置多个功能部件
- 链接技术
- 分段开采
- 多处理机系统
第四章
ILP
相关(程序固有的属性):数据相关、名相关、控制相关
冲突(流水线冲突是对于具体的流水线来说,由于相关的存在,使指令流中下一条指令不能在指定的时钟周期执行):结构冲突(硬件资源)、数据冲突(数据相关和名相关)、控制冲突(控制相关)
- 保持相关,但避免发生冲突(指令调度,依靠编译器静态进行指令调度[第3章]、动态调度的硬件方法)
- 通过代码变换消除相关
动态调度
乱序执行
名相关(反相关、输出相关)
读后写、写后写冲突
解决名相关---寄存器换名技术
Tomasulo算法
核心思想:记录和检测指令相关,操作数一旦就绪就立即执行(没有就绪则等待),把发生写后读RAW冲突的可能性降到最小;通过寄存器换名来消除WAR和WAW冲突
注意数据相关与反相关的区别:
数据相关--i写j读
反相关--i读j写
寄存器换名是通过保留站和流出逻辑共同完成的。当指令流出时,如果其操作数还没有计算出来,则将该指令中相应的寄存器号换名为将产生这个操作数的保留站的标识。所以指令流出到保留站后,其操作数寄存器号或者换成了数据本身(若已就绪),或者换成了保留站的标识,不再与寄存器有关系。
【计算机系统结构】Tomasulo算法具体例子-CSDN博客
Tomasulo算法能够做什么?不能够做什么?
能做:1. 解决RAW冲突 2. 消除WAW和WAR冲突
不能做:1. 分支预测 2. 处理异常
- 当浮点运算指令流出到一个保留站r时,把该指令的目标寄存器rd的状态表项置为r,以便将来从r接收运算结果(相当于进行了预约或者定向),操作数如果已经准备好直接放在V字段,否则就要等待其他保留站产生操作数(这里如果不是已经清晰了的结果就一定是保留站)。当指令执行完成且CDB就绪,就可以把结果写回,把数据放到CDB上,所有需要数据的部分可以在同一个时钟周期内同时接收该结果(广播)。操作数因此而备齐的指令可以在下一个时钟周期开始执行。
- 在Tomasulo算法中,load/store指令的处理和浮点运算指令有些不同,只要load缓冲器有空闲单元,load指令就可以流出。
- 该算法对指令的执行有个限制:如果流水线中还有分支指令没有执行,那么当前指令就不能进入“执行”阶段。这是因为在“流出”阶段后,程序顺序就不再被保证了。所以为了保持正常行为,必须加上这个限制。【前瞻执行可以消除限制】
- 对于多流出的处理机来说,随着流出能力的提高以及设计者们更多地关系难以静态调度的代码的性能,寄存器换名以及动态调度技术就变得越来越重要了。特别地,Tmoasulo算法还是硬件前瞻执行的基础,因此该算法得到了广泛的应用。
动态分支预测技术
- 分支历史表BHT
- 分支目标缓冲器BTB
基于硬件的前瞻执行
- 前瞻执行能够更好的解决控制相关的问题。它对分支指令的结果进行猜测总是对的,然后按照这个猜测结果继续取,流出和执行后续的指令。只是执行指令的结果不是写回寄存器或存储器,而是放到一个称为ROB的缓冲器中,等到相应的指令得到“确认”后,才将结果写入寄存器或存储器。
- 硬件的前瞻执行是把3种思想结合在了一起:
- 动态分支预测。用来选择后续执行的指令
- 在控制相关的结果尚未出来之前,前瞻的执行后续指令
- 用动态调度对基本块的各种组合进行跨基本块的调度
- 前瞻执行的重要思想:前瞻执行允许指令乱序执行,但是要求程序顺序确认。并且在指令被确认之前,不允许它进行不可恢复的操作,如更新计算机状态或发生异常。
前瞻执行的基本思路
- 顺序流出指令队列
- 猜测路径和乱序执行
- 顺序确认(保证顺序写回)
- 猜错或发生异常,没写回的全部不算数
多指令流出技术
- 基于静态调度的多流出技术
- 基于动态调度的多流出技术
- 超长指令字技术
- 超流水线处理机
循环展开和指令调度
第五章
存储系统的层次结构
命中率H
不命中率
平均访问时间
其中
,常称为不命中开销,它是指从向M2发出请求到把整个数据块调入M1所需的时间
平均访存时间
三级存储结构
Cache(高速缓冲存储器)
主存储器
磁盘存储器(辅存)
“Cache--主存“”层次:弥补主存速度的不足
“主存--辅存”层析:弥补主存容量的不足
存储层次的4个问题
映像规则:当把一个块调入高一层(靠近CPU)存储器时,可以放在哪些位置上?
查找算法:当所要访问的块在高一层存储器中时,如何找到该块?
替换算法:当发生不命中率而且高一层存储器已满时,应替换哪一块?
写策略:当进行写访问时,应进行哪些操作?
1.全相联映像
主存中的任一块可以被放置到Cache中的任意一个位置。
特点:空间利用率最高,冲突概率最低,实现最复杂2. 直接映像
主存中的每一个块只能被放到Cache中唯一一个位置。
特点:空间利用率最低,冲突概率最高,实现最简单
3. 组相联映像
Cache被等分成若干组,每组由若干个块构成。主存中的每一块可被放到Cache中唯一一个组的任何一个位置。组的选择常采用位选择算法:
- n路组相联:如果每组中有n个块(n=M/G)
- 查找算法是干啥的?
当CPU给出一个内存地址时,找一找Cache中有没有该内存单元的副本,也就是看看是“命中”,还是“不命中”。- 怎么知道“命中”还是“不命中”?
假设,Cache的块数为4, 主存的块数为8,直接映像,也就是主存的块地址划分为1位标识位(tag),2位索引(index),如下图所示。凡是内存地址索引位为“00”的,映像到Cache的“00”块上,以此类推。
当CPU访问存储器中的某个单元时,如何在Cache中找到包含该地址块(如果有的话)?是通过查找目录表来实现
直接映像Cache的候选位置最少,只有一个;全相联映像Cache的候选位置最多为M个;而n路组相联映像则介于两者之间,为n个
实现并行查找的方法:1.相联存储器 2.单体多字的按地址访问存储器和比较器来实现
无论是直接映像还是组相联映像,查找时只需比较标识,索引无须参加比较(索引已被用来选择要查找的组(或块),而所有索引相同且只有索引相同的块才被映像到该组(块)中)
在全相联映射情况下,索引的位数为0,块地址就是标识
替换算法
随机法
先进先出法
最近最少使用法
写策略
写直达法
写回法
Cache性能分析
- 平均访存时间=命中时间+不命中率×不命中开销
两个组成部分既可以使用绝对时间也可以使用时钟周期数来衡量。执行一个程序所需的CPU时间能更好地反应存储系统的性能。- CPU时间=(CPU执行周期数+访存次数×不命中率×不命中开销)× 时钟周期时间
其中,不命中开销是指不命中、访存所需要的周期数。
三种类型的不命中:强制性不命中、容量不命中、冲突不命中
降低Cache不命中率:增加Cache块大小、增加Cache容量、提高相联度、伪相联、硬件预取、编译器控制的预取、编译优化、牺牲Cache
减少Cache不命中开销:采用两级Cache、让读不命中优先于写、写缓冲合并、请求字处理技术、非阻塞Cache技术
减少命中时间:容量小结构简单的Cache、虚拟Cache、Cache访问流水化、踪迹Cache
第六章
输入/输出系统的可靠性、可用性和可信性
可靠性
平均失效前时间MTFF
系统的失效率是MTTF的倒数
如果系统重每个模块的生存期服从指数分布,则系统的整体的失效率是各部件的失效率之和
可用性
系统中断服务的时间用平均修复时间MTTR来衡量
可用性=
可信性
廉价磁盘冗余阵列RAID
总线
CPU与外部设备进行输入/输出的方式:程序查询、中断、DMA、通道
通道处理机
通道流量分析
在采用通用寄存器指令集结构的计算机上得到了如下图所示的数据:
假若编译器优化后能去掉50%的ALU指令,但不能去掉其他三类指令。求优化后的MIPS与优化前的MIPS速率比
设某机器系统指令字长12位,每个操作码和地址均占3位,试提出一种分配方案,使该指令系统由4条三地址指令,8条二地址指令和180条单地址指令
设通道在数据传送期中,选择设备需4.9us,传送一个字节数据需0.1us
(1)其低速设备每隔250us发出一个字节数据传送请求,问最多可接多少台这种设备?
(2)若有A~E共5中高速设备,要求字节传送的间隔时间如下表所示,其单位时间为us,若一次通信传送的字节数不少于1024个字节,问哪些设备可挂在此通道上?哪些不能?
有一非线线性流水线预约表如下
(1)求平均延迟最小的最佳调度方案
(2)画出按最佳方案之一连续输入3个任务的时空图
有一个四段线性流水线,没功能段延时时间分别是:
若在这个流水线上流水线上执行40个任务,求实际吞吐率、效率和加速比