【计算机系统结构】第五章:标量处理机

2024-04-02 01:52

本文主要是介绍【计算机系统结构】第五章:标量处理机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一节:重叠方式

知识点1:重叠原理与一次重叠

顺序解释指的是各条指令之间顺序串行(执行完一条指令后才取下条指令)地进行,每条指令内部的各个微操作也顺序串行地进行。

解释一条机器指令的微操作可归并成取指令、分析和执行三部分,时间关系如图5-1所示。

取指是按指令计数器的内容访主存,取出该指令送到指令寄存器。指令的分析是对指令的操作码进行译码,按寻址方式和地址字段形成操作数真地址,并用此真地址去取操作数(可能访主存,也可能访寄存器),为取下一条指令还要形成下一条指令的地址。指令的执行则是对操作数进行运算、处理,或存储运算结果(可能要访主存)。

实现指令的重叠解释必须在计算机组成上满足以下几点要求:

1)要解决访主存的冲突。

2)要解决“分析”与“执行”操作的并行。

3)要解决“分析”与“执行”操作控制上的同步。

4)要解决指令间各种相关的处理。

一次重叠

“一次重叠”的定义和好处

任何时候都只是“执行R”与“分析+”重叠。就是说,即使“分析+1”比“执行,”提前结束,“执行,”也不紧接在“分析:1"之后与“执行”重叠进行;同样,即使“执行”比“分析+1”提前结束,“分析+”也不紧接在“执行,”之后与“分析+1”重叠进行。称这种指令分析部件和指令执行部件在任何时候都只有相邻的两条指令在重叠解释的方式为“一次重叠”

“一次重叠”的好处是节省硬件,计算机内指令分析部件和指令执行部件均只需一套,也简化了控制。设计时应适当安排好微操作,使“分析”和“执行”的时间尽量等长,重叠方式才能有较高的效率。

知识点2:相关处理

1、转移指令

标量计算机中的条件转移概率可达10%-30%这样,重叠效率将显著下降。因此,重叠方式的计算机在程序中应尽量减少使用条件转移指令。

如果要用条件转移指令时,可采用延迟转移技术,由编译程序生成目标程序时,将转移指令与条件转移无关的第k-1条指令交换一下位置,这样,即使条件转移成功也不会使重叠效率下降。

2、相关处理与设置

①指令相关:

指令相关是因为机器指令允许修改而引出的。如果规定在程序运行过程中不准修改指令,指令相关就不可能发生。不准修改指令还可以实现程序的可再入和程序的递归调用。但是,为满足程序设计灵活性的需要,在程序运行过程中有时希望修改指令,这时可设置一条“执行”指令来解决。

②主存空间数相关:

主存空间数相关的处理主存空间数相关是相邻两条指令之间出现对主存同一单元要求先写而后读的关联。如果让“执行;”与“分析;+”在时间上重叠,就会使“分析pt1”读出的数不是第k条指令执行完应写人的结果而出错。要想不出错,只有推后“分析t1”的读。

推后读常见的方法是由存控(存储器控制器)给读数、写数申请安排不同的访存优先级来解决。

③通用寄存器组相关:

通用寄存器组相关一般的计算机中,通用寄存器除了存放源操作数、运算结果外,也可能存放形成访存操作数物理地址的变址值或基址值。因此,通用寄存器组的相关又有操作数的相关和变址值或基址值的相关两种。

第二节:流水方式

知识点1:流水方式基本概念

1、流水与重叠的定义

流水与重叠在概念上没有什么差别,流水可以看成是重叠的引申。二者的差别只在于“一次重叠”是把一条指令的解释分为两个子过程,而流水是分为更多个子过程。前者可同时解释两条指令;后者可同时解释4条指令。显然,如果能把一条指令的解释分解成时间相等的m个子过程,则每隔△t=T/m就可以处理一条指令。因此,流水的最大吞吐率取决于子过程的经过时间At,△t越小,流水线的最大吞吐率就越高。

流水的最大吞吐率是指流水线满负荷每隔△t流出一个结果时所达到的吞吐率。实际吞吐率总是低于其最大吞吐率。

2、流水的分类

流水的分类从不同的角度对流水可进行不同的分类。具体如下:

①流水按处理的级别可分为部件级处理机级系统级

②从流水线具有功能的多少,可以分为单功能流水线多功能流水线

③按多功能流水线的各段能否允许同时用于多种不同功能连接流水,可把流水线分为静态流水线动态流水线

④从计算机所具有的数据表示角度,可以把流水线处理机分为标量流水机向量流水机

⑤从流水线中各功能段之间是否有反馈回路的角度,可以把流水线分为线性流水线非线性流水线

知识点2:标量流水线的主要性能

1、流水线的性能与计算

标量流水处理机的性能主要是吞吐率T,、加速比S.和效率n。其中吞吐率是流水线单位时间里能流出的任务数或结果数。

由于各个子过程进行的工作不同,所经过的时间也就不一定相同,所以在子过程间设置了接口锁存器,让各锁存器都受同一时钟同步。时钟周期会直接影响流水线的最大吞吐率,总希望它越小越好。如果各个子过程所需的时间分别为△t1、t2、At和△t4,时钟周期应当为

受限于流水线中最慢子过程经过的时间。

[重点]流水线中经过时间最长的子过程称为瓶颈子过程。

如果线性流水线每段经过的时间△ti不等,其中瓶颈段的时间为△tj ,则完成n个任务所能达到的实际吞吐率为:

2、效率

流水线的效率是指流水线中设备的实际使用时间占整个运行时间之比,也称流水线设备的时间利用率。

如果是线性流水线、任务间不相关且各段经过的时间相同,则在T时间里,流水线各段的效率都相同,均为no

因此,从时空图上看,效率实际上就是n个任务占用的时空区面积和m个段总的时空区面积之比。显然,只有当n>>m时,n才趋于1同时还可以看出,对于线性流水且每段经过时间相等,任务间无相关时,流水线的效率才正比于吞吐率,即

对于非线性流水,或线性流水但各段经过的时间不等或任务间有相关时,应通过画实际工作的时空图才能求出吞吐率和效率。

流水线的效率为:

知识点3:标量流水机的相关处理和控制机构

任务在流水线中流动顺序的安排和控制可以有两种方式:

同步流动方式(顺序流动方式)

一种是让任务(指令)流出流水线的顺序保持与流入流水线的顺序一致,称为顺序流动方式或同步流动方式。

异步流动方式

另一种是让流出流水线的任务(指令)顺序可以和流入流水线的顺序不同,称为异步流动方式

总线式分布方式控制管理

标量流水机对局部性相关的处理一般采用总线式分布方式控制管理,包括:

①相关的判断主要是靠分布于各寄存器的“忙位”标志来管理;

②在分散于各流水线的入、出端处设置若干保存站来缓存信息;

③用站号控制公共数据总线的连接作相关专用通路,使之可为多个子过程的相关所共用;

④.一旦发生相关,用更换站号来推后和控制相关专用通路的连接;

⑤采用多条流水线,每条流水线入端有多组保存站,以便发生相关后,可以采用异步的流动方式。

全局性相关的处理

全局性相关指的是已进入流水线的转移指令(尤其是条件转移指令)和其后续指令之间相关。下面介绍一些常用的处理方法。

①使用猜测法

②加快和提前形成条件码

③采取延迟转移

④加快短循环程序的处理

单功能非线性流水线的任务调度方案

为了对流水线的任务进行优化调度和控制,1971年,提出使用一个二维的预约表。

如果有一个由K段组成的单功能非线性流水线,每个任务通过流水线需要N拍。利用类似画时空图的方法,可以得到该任务使用流水线各段的时间关系表(即预约表)。其中拍号n为任务经过流水线的时钟节拍号。如果任务在第n拍要用到第k段,就在相应第n列第k行的交点处用“√”表示。

由表5-3可知,最小平均延迟为4拍。此时流水线的最大吞吐率Tomax=1/4(任务/拍)。最佳调度方案宜选其中按(1,7)周期性调度的方案。

①按(1,7)调度方案输入6个任务,全部完成的时间为1+7+1+7+1+7=24(拍),实际吞吐率Tp=6/24(任务/拍)。

②若按(3,5)调度方案输入6个任务,全部完成的时间为3+5+3+5+3+7=26(拍),实际吞吐率Tp=6/26(任务/拍)。

③若按(5,3)调度方案输人6个任务,全部完成的时间为5+3+5+3+5+7=28(拍),实际吞吐率T,=6/28(任务/拍)。

可见,最佳的方案应为(1,7)调度方案,输入6个任务的实际吞吐率较其他方案要更高些。

第三节:指令集高度并行的超级处理机

知识点1:处理机的工作原理和结构

自从20世纪80年代RISC兴起之后,出现了提高指令级并行的高性能超级处理机,让单处理机在每个时钟周期里可解释多条指令。

代表性的例子是超标量处理机、超长指令字处理机、超流水线处理机和超标量超流水线处理机。

①超标量处理机

超标量处理机采用多指令流水线,每个At同时流出m条指令(称为度m)。在超标量流水线处理机中配置多套功能部件、指令译码电路和多组总线,寄存器也备有多个端口和多组总线。

程序运行时由指令译码部件检测顺序取出的指令之间是否存在数据相关和功能部件争用,将可并行的相邻指令送往流水线。若并行度为1,就逐条执行。超标量流水机主要靠编译程序来优化编排指令的执行顺序,将可井行的指令搭配成组,硬件不调整指令顺序,这样实现起来比较容易些。

②超长指令处理机

超长指令字(VLIW)结构是将水平型微码和超标量处理两者相结合。指令字长可达数百位,多个功能部件并发工作,共享大容量寄存器堆。

③超流水线处理机

不同于超标量处理机和VLIW处理机,每个△t'仍只流出一条指令,但它的t'值小,一台度为m的超流水线处理机的△t'只是基本机器周期△t的1/m因此,一条指令需花kmAt '的时间,k为一条指令所含的基本机器周期数。只要流水线性能得以充分发挥,其并行度就可达m。

④超标量超流水线处理机

超标量超流水线处理机是超标量流水线与超流水线处理机的结合。在一个△t’(等于△t/n)发射了k条指令(超标量),而每次发射时间错开△t’(超流水),相当于每拍△t流出了nk条指令,即并行度m=kn。

超标量处理机利用资源重复,设置多个执行部件寄存器堆端口。超流水线处理机则着重开发时间并行性,在公共的硬件上采用较短的时钟周期,深度流水来提高速度,需使用多相时钟,时钟频率高达100~500MHz没有高速时钟机制,超流水线处理机是无法实现的。

这篇关于【计算机系统结构】第五章:标量处理机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/868676

相关文章

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

Science|癌症中三级淋巴结构的免疫调节作用与治疗潜力|顶刊精析·24-09-08

小罗碎碎念 Science文献精析 今天精析的这一篇综述,于2022-01-07发表于Science,主要讨论了癌症中的三级淋巴结构(Tertiary Lymphoid Structures, TLS)及其在肿瘤免疫反应中的作用。 作者类型作者姓名单位名称(中文)通讯作者介绍第一作者Ton N. Schumacher荷兰癌症研究所通讯作者之一通讯作者Daniela S. Thomm

oracle11.2g递归查询(树形结构查询)

转自: 一 二 简单语法介绍 一、树型表结构:节点ID 上级ID 节点名称二、公式: select 节点ID,节点名称,levelfrom 表connect by prior 节点ID=上级节点IDstart with 上级节点ID=节点值 oracle官网解说 开发人员:SQL 递归: 在 Oracle Database 11g 第 2 版中查询层次结构数据的快速

Tomcat下载压缩包解压后应有如下文件结构

1、bin:存放启动和关闭Tomcat的命令的路径。 2、conf:存放Tomcat的配置,所有的Tomcat的配置都在该路径下设置。 3、lib:存放Tomcat服务器的核心类库(JAR文件),如果需要扩展Tomcat功能,也可将第三方类库复制到该路径下。 4、logs:这是一个空路径,该路径用于保存Tomcat每次运行后产生的日志。 5、temp:保存Web应用运行过程中生成的临时文件

C和指针:结构体(struct)和联合(union)

结构体和联合 结构体 结构体包含一些数据成员,每个成员可能具有不同的类型。 数组的元素长度相同,可以通过下标访问(转换为指针)。但是结构体的成员可能长度不同,所以不能用下标来访问它们。成员有自己的名字,可以通过名字访问成员。 结构声明 在声明结构时,必须列出它包含的所有成员。 struct tag {member-list} variable-list ; 定义一个结构体变量x(包含

Java Web应用程序的推荐目录结构

以前没有用过maven管理过项目的依赖,最后使用上了maven,发现通过不能方式建立出来的web应用程序目录结构基本都不一样,既然每次都要到网上搜索如何建立maven管理的Web应用程序,不如自己找百度谷歌一下。 找了半天 ,感觉比较好的maven管理的web应用程序目录结构是这个: ├── pom.xml└── src├── main│ ├── java│ │ └── myg