【计算机体系结构量化与研究方法笔记】
目录
相关概念
一、指令级并行(ILP)
1 静态编译器调度
2 动态调度
3 多发射
4 多线程
二、数据级并行(向量机、SIMD、GPU)
三、线程级并行(MIMD)
1 多处理器分类
2 对称多处理器
相关概念
指令集体系结构(ISA):软件与硬件的接口,现在的ISA几乎都属于通用寄存器体系结构,即操作数为寄存器或存储器地址。
ISA的编码:定长(指令译码简单)、变长(可以占用较少的空间,代码规模较小)、混合编码(32位+16位指令)
RISC体系结构有几个关键属性,大大简化了流水线的实现,而这也式如此设计指令集的原因:
- 所有数据操作偶是对寄存器中的数据的操作;
- 只有load和store指令会影响到存储器;
- 指令格式的数量很少,通常是定长的。
流水线缩短的是指令的平均执行时间,而不是但条指令的执行时间,甚至由于流水线有额外开销,可能会延长但条指令的执行时间。
顺序执行中不存在WAR和WAW,乱序带来了WAR和WAW冒险。
超标量处理器:每个时钟周期有多条指令执行。
标量处理器:每个时钟周期只有一条指令执行。
一、指令级并行(ILP)
流水线CPI = 理想CPI + 冒险导致的停顿
1 静态编译器调度
循环展开
循环展开的缺陷:1)显著增大代码规模,可能导致指令缓存缺失率的上升;2)由于进行大量展开和调试而造成寄存器数量不足。
2 动态调度
硬件重新安排指令执行的顺序以减少停顿并同时保持数据流和异常行为。
2.1 记分牌
- 基本原理:在指令所需资源满足且没有数据依赖时,就可以发射执行(乱序)。
- 发射时检测WAW,如果有则不发射;写回时检测WAR,如果有则不写回。
- 会检测WAW和WAR,但并不解决,只是通过停顿来避免。
2.2 Tomasulo算法
- 核心思想:只有结构冒险和RAW冒险会导致指令阻塞,WAW冒险和WAR冒险通过寄存器重命名消除。
- 增设分布式保留站,即每个功能单元有各自的保留站,将寄存器重命名为功能单元保留站号。
- 增设公共数据总线,一条指令的结果直接经由公共数据总线传递到目的寄存器和任何需要该结果的功能单元的保留站。
- 与记分牌的最大区别是解决了WAW和WAR冒险。
2.3 Speculation:基于硬件的推测执行
- 基本原理:通过分支预测预测分支的输出,在假定预测正确的前提下执行程序。
- 不允许流水线中执行任何不可撤销的操作,即在分支结果出来前其后续指令不能更新寄存器或存储器。这一点通过指令提交来保证,即允许指令乱序执行,但必须顺序提交。
- 使用重排序缓冲区来保存才能已经执行完成但还没有提交的指令结果,并在指令执行结束到提交这段时间内提供源操作数。
- 当指令提交时将结果写回寄存器或存储器,当分支指令到达ROB头部时,如果推测是错误的,需要恢复流水线状态并重新从正确的目标地址取指。
- 需要一些机制处理分支预测错误的情形。
- 保证了精确异常(非精确异常:发生异常时,处理器的状态与严格按照程序顺序执行指令时的状态不完全一致)。
speculation与prediction的区别:
- 有branch prediction无speculation时:会根据分支预测进行取指,但在分支指令执行结束确定执行结果前其后的指令不被允许执行。
- 有branch prediction有speculation时:根据分支预测取指并执行后续指令。
3 多发射
通过降低CPI提高性能。
动态调度超标量处理器、VLIW(超长指令字)。
4 多线程
开发线程级并行,利用多线程隐藏流水线和存储器的延迟,从而提高单处理器的吞吐量。
- 细粒度多线程:每个时钟周期在线程间进行一次切换,使多个线程的指令执行过程交织在一起。当一个线程停顿时,哪怕只有几个周期也可以执行其他线程的指令。优点是可以隐藏因为长、短停顿而导致的吞吐量损失;缺点是会减缓个体线程的执行速度,因为一个做好执行准备且没有停顿的线程可能会被其他线程的执行所延迟。
- 粗粒度多线程:尽在发生成本较高的停顿时才切换线程,大大降低了减缓任一线程速度的可能性。缺点是克服吞吐量损失的能力非常有限,尤其时由于短停顿导致的损失。
- 同时多线程(Simultaneous Multithreading,SMT):细粒度多线程的一种变体。
二、数据级并行(向量机、SIMD、GPU)
三、线程级并行(MIMD)
1 多处理器分类
多处理器:紧耦合处理器组成的计算机,这些处理器的协调与使用由单一处理器系统控制,通过共享地址空间来共享存储器。
按照共享处理器的组织方式,多处理器分为两类:
多处理 |
对称(共享存储器)多处理器 (Symmetric Multi-Processing,SMP) |
分布式共享存储器 (Distributed Shared Memory,DSM) |
概念 | 又称集中式共享存储器多处理器。所有处理器共享一个集中式的存储器,所有处理器访问存储器的延迟都是一致的。适合处理器较少的情况。 | 为了支持更多的处理器,存储器分散在处理器之间。 |
优点 | - | 增加了带宽,也缩短了到本地存储器的延迟。 |
缺点 | 如果要为大量处理器提供带宽支持,访问延迟会大幅增加。 | 处理器之间传送数据的过程更加复杂。 |
SMP 和 DSM 中,线程通信是通过共享地址空间完成的,即任何一个拥有正确寻址权限的处理器都可以向任意存储器位置发出存储器引用。
- 限制并行处理的障碍:1)程序中本身可用的并行性有限;2)不同核心之间、不同芯片核心之间的通信延迟过长、成本较高。
2 对称多处理器
针对 SMP 远程延迟过长的问题,硬件上可以通过一些机制来降低远程访问的频率,例如缓存共享数据。
共享数据的缓存带来了新的问题:缓存一致性。为多个处理器保持缓存一致性的协议被称为缓存一致性协议,主要分为两类:
- 目录式:使用一个集中目录,保存存储块的共享状态。
- 监听式:所有缓存都可以通过总线访问,所有缓存控制器通过监听本处理器以及总线发出的请求,改变所选缓存块的状态,并使用总线访问数据或使其失效。
2.1 监听一致性协议
监听一致性协议中有两种实现一致性的方法:
1)写入失效:当对一个共享缓存执行写入操作时,先使该缓存的其他副本失效(MESI协议)。
2)写入更新:在写入一个数据项时更新该数据项的所有缓存副本。这种方法必须将所有写入操作都广播到共享缓存线上,所以它要占用相当多带宽。
【计算机体系结构量化与研究方法笔记】相关推荐
- 计算机体系结构:量化研究方法:第5版
<计算机体系结构:量化研究方法:第5版> 基本信息 原书名:Computer Architecture:A Quantitative Approach,Fifth Edition 作者: ...
- 计算机体系结构量化研究方法(一)
量化设计与分析方法 1.1 引言 1.2 计算机的分类 1.3 计算机体系结构的定义 1.3.1指令集体系结构(ISA) 指令集结构的分类 存储器寻址 寻址模式 ISA编码 1.3.2 真正的计算机体 ...
- 计算机体系结构学什么研究什么,对计算机体系结构研究的一点认识-XiaZhao.PDF
对计算机体系结构研究的一点认识-XiaZhao.PDF 专栏 第 10 卷 第 6 期 2014 年 6 月 对计算机体系结构研究的一点认识 钱学海 关键词 :计算机体系结构 研究方法 美国加州大 ...
- 心理实验应用计算机的优缺点,发展心理学研究方法发展的新趋势
近年来,随着发展心理学科学研究的不断深入,随着现代科学技术和社会的迅速发展,发展心理学研究出现了一些新的趋势,研究方法表现出许多新特点.这集中地体现在以下几个方面:研究思路的生态化:研究方式的跨学科和 ...
- 《计算机体系结构量化研究方法第六版》1.2 计算机的分类
1.2.1 个人移动设备(PMD) 1.比如说手机.平板之类的. 2.特点: (1)经常使用电池而强调能效,但是由于需要相对便宜的外壳,所以也只能限制总功耗. (2)上面的应用程序经常基于web.面向 ...
- 《计算机体系结构量化研究方法》1.8 性能的测量、报告和汇总
引入 1.一些概念 响应时间:手机用户所关注的"速度",也就是一个事件从启动到完成的时间,又称为执行时间. 吞吐量:给定时间内完成的总工作量,WSC的操作人员关注这个. 执行时间是 ...
- 《计算机体系结构:量化研究方法》读书笔记
Lecture 1: Quantitative Approach 1.计算机体系结构与计算机组成原理有什么区别? 计算机的实现包括两个方面:组成和硬件.组成一词包含了计算机设计的高阶内容,例如存储器系 ...
- 计算机体系结构复习笔记
本篇复习笔记对应的课本是<计算机体系结构 量化研究方法> 参考了老师的PPT,以及总结了课后习题和考试题 文章目录 1. 计算机体系结构基础 1.1 计算机系统的分层 1.2 计算机体系结 ...
- 数据级并行--计算机体系结构
参考书:<计算机体系结构量化研究方法> 作者:John L. Hennessy 一. 引言 指令流与数据流的并行分类 单指令流.单数据流(SISD) 单指令流.多数据流(SIMD) 多指令 ...
- 指令级并行--计算机体系结构
参考书:<计算机体系结构量化研究方法> 作者:John L. Hennessy 一.基本概念 几乎所有处理器都使用流水线来重叠指令的执行过程,以提高性能.由于指令可以并行执行,所以指令之间 ...
最新文章
- Spring MVC 学习笔记 对locale和theme的支持
- 红帽RHCE培训-课程3笔记目录
- c语言总是说有一个错误,我的电脑上的c语言为何老有一个错误
- mybatisPlus分页限制500条数据
- cass生成曲线要素文件_《CASS道路断面法施工技术》
- 专题导读:高性能计算虚拟数据空间
- 【算法】数组与矩阵问题——找到无序数组中最小的k个数
- android bmob获取数据,Android基于bmob后端云实现数据读取
- Loading动画加载素材模板,UI设计师好帮手
- java对比swith和if的不同,浅谈选择结构if语句和switch语句的区别
- Why do people love certain websites and web products?
- CENTOS上编译FreeSwitch
- 安卓隐藏摄像_隐藏摄像头探测器
- 脉冲神经网络 神经元模型-Izhikevich模型(3)
- 网络正常但Chrome不能上网的解决方法
- Windows 10系统【之】内置应用
- 《并发数据结构与多核编程》作业题答案
- 公众号 多服务器配置_公众号太多看不过来?微信新功能帮你一键拒收
- 基于人工智能算法的多元负荷预测
- Redis CacheClient
热门文章
- 关于CSS媒体查询--电脑尺寸大全
- 互联网技术人应该如何与上级沟通?
- 《深入理解计算机系统》Lab2-Bomblab
- BJ54坐标或者XA80坐标到WGS84坐标的转换(小工具附代码)
- jenkins配置svn提交一键自动部署
- php 检测是否是微信浏览器,PHP判断设备是否为微信浏览器或QQ浏览器
- RTMP推流摄像机联合EasyCVR安防视频云服务平台助力智能楼宇的建设
- 计算机音乐桃源恋歌,GARNiDELiA《桃源恋歌》[FLAC/MP3-320K]
- 《Python编程:从入门到实践》配套源代码下载
- html文件恢复工具,文件误删恢复工具