前言
参考书和小伙伴给的资料,简单归纳总结了一下体系结构复习
第一章 计算机体系结构的基本概念
在多数人认可的历史中,人们第一台最早使用的计算机是1946年诞生于美国宾夕法尼亚大学的ENIAC,用于计算火炮弹道。(作为计算机的了解一下历史,书上写的是1945,百科上1946年2月)。
冯.诺依曼描述的计算机由四个部分组成:
(1)运算器,用于完成数值运算;
(2)存储器,用于存储数据和程序;
(3)输入输出设备,用于完成计算机和外部的信息交换;
(4)控制器,根据程序形成控制(指令、命令)序列,完成对数据的运算。
存储程序计算机的主要特点
(1) 机器以运算器为中心 存储器、输入/输出设备的操作由控制器集中控制
(2)采用存储程序原理 程序(指令)和数据放在同一存储器中
(3)存储器是按地址访问的、线性编址的空间
(4)控制流由指令流产生 解题算法是顺序型的
(5)指令由操作码和地址码组成 数据以二进制编码表示,采用二进制运算
计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性(软硬件的交界面)。
计算机系统设计的三个方面:计算机指令系统;计算机组成;计算机硬件。
计算机系统的多级层次结构:
翻译和解释:
翻译 :先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问
解释 :每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行
一般来说,解释执行比翻译花的时间多,但存储空间占用较少 。
系列机:具有相同体系结构,但组成和实现不同的一系列不同型号的计算机系统。现代计算机不但系统系列化,其构成部件和软件也系列化。
兼容机:不同厂家生产的具有相同体系结构的计算机。
系列机的软件兼容还有向上兼容、向下兼容、向前兼容和向后兼容之分。其中比较重要的是向上兼容和向后兼容,向后兼容是软件兼容的根本特征,也是系列机的根本特征。
计算机技术和市场分化成为嵌入式计算机、掌上计算机、台式计算机、服务器、计算中心五个部分。
集成电路密度大约每两年翻一番,这就是著名的摩尔定律。
CISC:复杂指令集计算机
RISC:精简指令集计算机
并行性:是指同一时刻或者同一时间间隔内完成两种或者两种以上性质相同或不相同的工作。包括同时性和并发性,两个或者多个事件在同一时刻发生的并行性叫做同时性;而把两个或者多个事件在同一时间间隔内发生的并行性叫做并发性。
按照指令的数据的关系,将计算机从并行处理的角度划分为4类模型:
SISD:单指令单数据流
SIMD:单指令多数据流
MISD:多指令单数据流
MIMD:多指令多数据流
提高并行性的车技术途径:
1.时间重叠
2.资源重复
3.资源共享
对成本产生最直接的影响是时间,即使技术没有变动,计算机的制造成本也会不断下降。
量化设计的基本原则
1.大概率事件优先原则
基本思想:对于大概率事件,赋予它优先的处理权和资源使用权,以获得全局的最优结果。
2.Amdahl定律
3.程序的局部性原理:
程序访问地址的分布不是随机的,而是相对地簇聚, 包括时间局部性和程序的空间局部性。
程序的时间局部性: 程序即将用到的信息很可能就是目前正在使用的信息。
程序的空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。
CPU性能(看书上例题和课后习题)
CPU时间=总时钟周期数/时钟频率 。IC:指令数。CPI:指令时钟数。
CPI=总时间周期数/IC
总CPU时间=CPI*IC/时钟频率
第二章 指令系统
CPU存放操作数的存储单位主要有三种:堆栈、累加器和通用寄存器组。
堆栈型和累加器型计算机的优点是指令字比较短。
寻址方式:是指指令系统中产生所要访问的数据地址的方法。
指令一般由两个部分组成:操作码和地址码。
编码方式有等长编码、定长编码、哈夫曼编码(大题)。
- CISC指令集结构存在的问题
- 各种指令使用频度相差悬殊,许多指令很少用到
- 指令系统庞大,指令条数多,许多指令功能复杂,就会占用大量芯片面积,增加时间和成本,很容易设计错误
- 许多指令操作繁杂,CPI值大,执行速度慢
- 设计RISC机器,遵循的原则
- 指令条数低,指令功能简单
- 采用简单又统一的指令格式,减少寻址方式
- 指令的执行在单周期内完成
- 采用load_story结构
- 大多数指令都采用硬连线逻辑实现
- 强调优化编译器的作用,为高级语言程序生成优化的代码
- 充分利用流水技术来提高性能
MISP指令格式:
所有指令都是32位的
数据表示:
整数:字节(8位),半字(16位),字(32位)
浮点数:单精度浮点数(32位)和双精度浮点数(64位)
MIPS三种指令格式:I类指令、R类指令、J类指令。
I类指令:Load指令,store指令,寄存器-立即数型ALU指令,分支指令
R类指令:寄存器-寄存器型ALU指令、专用寄存器读/写指令、move指令
J类指令:跳转指令,跳转并链接指令、自陷指令、异常返回指令。
第三章 流水线技术
重点:画时空图、加速比、效率和吞吐率。
流水线的分类:
按照功能:单功能流水线、多功能流水线。
单功能流水线:是指只能完成一种固定功能的流水线。
多功能流水线:各段可以进行不同的连接,同一时间完成不同的功能。
按照同一时间内各段之间的连接方式分类:静态流水线、动态流水线。
静态流水线中:只有当输入的是一串相同的运算操作时,流水线的效率才发挥
动态流水线:同一时间内,各段可以实现不同的运算。
按照流水的级别分:部件级流水线。把处理机的算术逻辑部件分段,以为各种数据类型进行流水操作。
处理机级流水线,把解释指令的过程按照流水方式处理。
处理机间流水线,又称为宏流水。
按照数据表示来分:标量流水处理机、向量流水处理机。
按照是否有反馈回路:线性流水线,非线性流水线。
指令执行划分为5个阶段 取指令 指令译码/读寄存器 执行/有效地址计算 存储器访问/分支完成 写回
流水线性能分析 :
三项性能指标:吞吐率、加速比和效率
吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量。 最大吞吐率TPmax是指流水线在达到稳定状态后所得到的吞吐率。 设流水线由m段组成,完成n个任务的吞吐率称为实际吞吐率,记作TP。
加速比是指流水线速度与等功能的非流水线速度之比。 根据定义可知,加速比S = T非流水/T流水 若流水线为m段,每段时间均为△t0,则 T非流水 = nm△t0,T流水 = m△t0 + (n-1)△t0
消除瓶颈的方法 细分瓶颈段 重复设置瓶颈
效率指流水线的设备利用率。
结构相关→当指令在同步重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突将产生结构相关
数据相关→当一条指令需要用到前面指令的执行效果,这些指令均在流水线中重叠执行,就可能引起数据相关。
(1)写后读相关 RAW
(2)写后写相关 WAW
(3)读后写相关 WAR
控制相关→当流水线遇到分支指令和其他能够改变PC值的指令时就会发生控制相关。
减少流水线处理分支指令的暂停周期:
1.在流水线中早判断是否分支转移成功
2.早计算出分支转移成功时的PC值(分支的目标地址)
降低流水线分支损失的方法:
(1)”冻结“或者排空流水线的方法
(2)预测分支失败方法
(3)预测分支成功方法
(4)延迟分支方法
向量流水处理机也称为向量处理机
1.水平处理方式
2.垂直处理方式
3.分组处理方式
第四章 指令级并行
最基本的技术有:指令调度技术、循环展开技术、换名技术。
循环展开的基本方法:
指令调度就是通过改变指令在程序中的位置,将相关指令之间的距离加大到不小于指令执行延迟的时钟数,这样就可以将相关指令转化为无关指令。指令调度时循环展开的基础。
程序中的相关主要有三种:数据相关、名相关、控制相关。
动态调度算法有:记分牌算法和Tomasulo算法。其核心都是通过寄存器换名来消除写后写和先读后写相关引起的流水线阻塞。
寄存器换名是通过保留站来实现的,保留站:在功能部件中设置的数据缓冲寄存器。
实现前瞻性的关键思想是:允许指令乱序执行,但是必须顺序确认。
多指令流出处理器有三种基本结构:超标量、超流水、超长指令
第五章:存储层次
- 存储体系中基本存在cache和虚拟存储,Cache是解决CPU与主存速度不匹配,所以就用相关硬件来匹配,成本比较高。虚拟存储主要解决主存容量问题。平均访问时间
- 映像规则
- 直接映像
- 全相联映像
- 组相联映像
- 组内直接相连,组件是全相联映射
- 替换算法
- 随机法
- 先进先出法→FIFO
- 最近最少使用法→LRU
- 最不常使用法→LFU
- 堆栈型替换算法→命中率随主存页数的增加只可能提高,不会下降 随机法和先进先出法都不是堆栈型替换算法, 最近最少使用法和最不常使用法是堆栈型替换算法
- 写策略
- 如果要被写的快,不在cache中写失效,则有两种方案决定是否将相应的快调入cache
- 按写分配法,先把所有写的单元,所写的块掉入cache,然后再进行更新与读时写类似,这种方法也称为写时取
- 不按写分配法,直接写入下一级存储器,而不将相应的块调入cache这种方法也称为绕写
- 当待写的块已经在cache中写命中或写失效时按写分配,有两种策略来维护一致性
- 写直达法→不仅把信息写入cache中相应的块,而且也写入下一级存储器中相应的块
- 写回法→只把,信息写入配置中,相应的块该块在被替换时才能写回下一级存储器,也就是主存。
- 如果要被写的快,不在cache中写失效,则有两种方案决定是否将相应的快调入cache
- 改进cache性能
- 三个方面
- 降低失效率(提高命中率)
- 调节cache块大小
- 提高相联度
- Victim Cache
- 硬件预取
- 减少失效开销
- 写缓冲及写合并
- 让读失效优先于写
- 请求字处理
- 多级Cache
- 减少cache命中时间
- 容量小、结构简单的Cache
- 虚拟Cache
- 访问流水化
- 多体Cache
- 路预测
- Track Cache
- 降低失效率(提高命中率)
- 三个方面
- 映像规则
Cache性能分析(P173 例题5.2、例题5.3、例题5.4)
所有的桌面机和服务器都用DRAM作为主存,而使用SRAM作为Cache。
主存-虚存讨论:
1.映像规则 2.查找算法 3. 替换算法 4.写策略
快表:计算机常设置一个专门用于地址转换的高速缓存部件,称为TLB、地址变换缓冲器或快表。
-
第六章:输入输出系统
- Flash存储器与固态硬盘SSD
- 廉价磁盘冗余阵列
- RAID盘阵列分级
- 通道的种类
- 字节多路通道
- 选择通道
- 数组多路通道
- 多处理机
- 并行计算机体系结构的分类
- 集中式共享存储器结构
- 对称式共享存储器结构
- 例题7.2→p279
- 并行计算机体系结构的分类
- 对称式共享存储器体系结构
- 多处理机cache一致性
- 监听协议
- 互联网络
- 互联网络的性能参数
- 节点度
- 网络直径
- 等分宽度
- 路由
- 均匀混洗
- 超立方体路由功能
- 互联网络的性能参数
- 静态连接网络
- 形状→树状和星状,网格状和环网状,环
- 动态连接网络
- p301路径的一个回去路径
- 大题??→总延时时间→发送方开销+飞行时间+消息长度+接收方开销
大题:Amdahl定律、流水线性能和时空图、CPU性能、Cache性能、磁盘寻道、哈夫曼编码