资源预览内容
第1页 / 共141页
第2页 / 共141页
第3页 / 共141页
第4页 / 共141页
第5页 / 共141页
第6页 / 共141页
第7页 / 共141页
第8页 / 共141页
第9页 / 共141页
第10页 / 共141页
亲,该文档总共141页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
武汉理工大学计算机系统结构教程流水技术与流水处理机课件武汉理工大学计算机系统结构教程目目 录录第第3章章 流水技术与流水处理机流水技术与流水处理机3.1 指令重叠与先行控制3.2 流水线的分类与性能3.3 非线性流水线的调度与性能计算3.4 流水线的相关问题与相关处理3.5 多发射处理机及其性能3.6 向量流水处理机及其性能流水技术与流水处理机课件武汉理工大学计算机系统结构教程第3章 流水技术与流水处理机流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.1 指令重叠与先行控制指令重叠与先行控制 提高处理机性能的一个途径是缩短指令序列执行提高处理机性能的一个途径是缩短指令序列执行的时间,提高指令平均执行速度。的时间,提高指令平均执行速度。 提高指令执行速度有以下3种途径: 提高处理机的工作主频。目前,处理机的工作主频已提高处理机的工作主频。目前,处理机的工作主频已达达GHzGHz的水平以上,以提高主频来提高指令执行速度的趋的水平以上,以提高主频来提高指令执行速度的趋势已经明显减缓。势已经明显减缓。 采用采用RISCRISC技术减少指令执行的平均周期数。技术减少指令执行的平均周期数。 采用指令级并行技术,使多条指令并行执行。采用指令级并行技术,使多条指令并行执行。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.1 指令重叠与先行控制指令重叠与先行控制3.1.1 指令的顺序执行方式与重叠执行方式指令的顺序执行方式与重叠执行方式 指令顺序执行方式指令顺序执行方式 : 是指指令之间顺序串行,且指令内的各是指指令之间顺序串行,且指令内的各是指指令之间顺序串行,且指令内的各是指指令之间顺序串行,且指令内的各个阶段之间也是顺序串行的方式。个阶段之间也是顺序串行的方式。个阶段之间也是顺序串行的方式。个阶段之间也是顺序串行的方式。 指令重叠执行方式指令重叠执行方式 : 如果处理机在结构上能使执行指令各如果处理机在结构上能使执行指令各如果处理机在结构上能使执行指令各如果处理机在结构上能使执行指令各阶段功能的部件或段(阶段功能的部件或段(阶段功能的部件或段(阶段功能的部件或段(segmentsegment)相互独立,)相互独立,)相互独立,)相互独立,而且各段完成相应功能的所需时间尽可能相而且各段完成相应功能的所需时间尽可能相而且各段完成相应功能的所需时间尽可能相而且各段完成相应功能的所需时间尽可能相等,那么,就可以把一个指令序列中的多条等,那么,就可以把一个指令序列中的多条等,那么,就可以把一个指令序列中的多条等,那么,就可以把一个指令序列中的多条指令在时间上重叠起来执行。指令在时间上重叠起来执行。指令在时间上重叠起来执行。指令在时间上重叠起来执行。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.1.2 先行控制技术先行控制技术 为使指令序列能够重叠执行,处理机在结构为使指令序列能够重叠执行,处理机在结构上必须解决以下两个问题。上必须解决以下两个问题。 首先,需要有独立的取指令部件、指令分析部首先,需要有独立的取指令部件、指令分析部件和指令执行部件,才能实现取指令、分析和执行件和指令执行部件,才能实现取指令、分析和执行的同时进行。的同时进行。 其次,要解决访问主存的冲突问题。其次,要解决访问主存的冲突问题。 通常,有以下通常,有以下3种方法来解决这个问题。种方法来解决这个问题。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程1. 采用两个独立编址的存储器组成主存采用两个独立编址的存储器组成主存 把主存分成两个独立编址的存储器,把主存分成两个独立编址的存储器,一个是专门存放指令的指令存储器,简称指一个是专门存放指令的指令存储器,简称指存;另一个是专门存放数据的数据存储器,存;另一个是专门存放数据的数据存储器,简称数存。两个存储器可同时独立访问,这简称数存。两个存储器可同时独立访问,这就解决了取指令和读操作数的冲突。就解决了取指令和读操作数的冲突。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 主存采用并行存储器主存采用并行存储器 主存采用多体低位交叉编址的并行存储器,从而可使主存采用多体低位交叉编址的并行存储器,从而可使主存采用多体低位交叉编址的并行存储器,从而可使主存采用多体低位交叉编址的并行存储器,从而可使得在一个存储周期中访问多个存储单元。得在一个存储周期中访问多个存储单元。得在一个存储周期中访问多个存储单元。得在一个存储周期中访问多个存储单元。 3. 采用先行控制技术采用先行控制技术先行控制技术的关键是缓冲技术和预处理技术。缓冲技先行控制技术的关键是缓冲技术和预处理技术。缓冲技先行控制技术的关键是缓冲技术和预处理技术。缓冲技先行控制技术的关键是缓冲技术和预处理技术。缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以术是在工作速度不固定的两个功能部件之间设置缓冲栈,用以平滑它们的工作速度的差异。预处理技术是把进入运算器的指平滑它们的工作速度的差异。预处理技术是把进入运算器的指平滑它们的工作速度的差异。预处理技术是把进入运算器的指平滑它们的工作速度的差异。预处理技术是把进入运算器的指令都处理成寄存器令都处理成寄存器令都处理成寄存器令都处理成寄存器寄存器型(寄存器型(寄存器型(寄存器型(RRRR型)指令,它与缓冲技术型)指令,它与缓冲技术型)指令,它与缓冲技术型)指令,它与缓冲技术相结合,为进入运算器的指令准备好所需要的全部操作数。相结合,为进入运算器的指令准备好所需要的全部操作数。相结合,为进入运算器的指令准备好所需要的全部操作数。相结合,为进入运算器的指令准备好所需要的全部操作数。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程采用先行控制技术的处理机结构采用先行控制技术的处理机结构 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.2 流水线的分类与性能流水线的分类与性能 流水处理方式流水处理方式 是把一个需要反复进行的过程分离为若干是把一个需要反复进行的过程分离为若干是把一个需要反复进行的过程分离为若干是把一个需要反复进行的过程分离为若干独立的子过程,每个子过程与其他子过程同时处独立的子过程,每个子过程与其他子过程同时处独立的子过程,每个子过程与其他子过程同时处独立的子过程,每个子过程与其他子过程同时处理不同的对象。理不同的对象。理不同的对象。理不同的对象。 流水处理方式是利用时间重叠的并行技术流水处理方式是利用时间重叠的并行技术流水处理方式是利用时间重叠的并行技术流水处理方式是利用时间重叠的并行技术来开发计算机系统的并行性。来开发计算机系统的并行性。来开发计算机系统的并行性。来开发计算机系统的并行性。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.2.1 流水线的分类与时空图流水线的分类与时空图1. 流水线的分类流水线的分类 (1 1)部部部部件件件件级级级级流流流流水水水水线线线线、处处处处理理理理机机机机级级级级流流流流水水水水线线线线和和和和系系系系统统统统级流水线级流水线级流水线级流水线部件级流水线部件级流水线 :是指由部件内各子部件组成的是指由部件内各子部件组成的是指由部件内各子部件组成的是指由部件内各子部件组成的流水线。流水线。流水线。流水线。 处理机级流水线处理机级流水线 :是指处理机内的各部件之间是指处理机内的各部件之间是指处理机内的各部件之间是指处理机内的各部件之间的流水线。的流水线。的流水线。的流水线。 系统级流水线系统级流水线 :是指处理机之间的流水线,它又是指处理机之间的流水线,它又是指处理机之间的流水线,它又是指处理机之间的流水线,它又称为宏流水线。称为宏流水线。称为宏流水线。称为宏流水线。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)线性流水线与非线性流水线)线性流水线与非线性流水线 线性流水线线性流水线 :是指流水线的各个段之间串行连接,是指流水线的各个段之间串行连接,是指流水线的各个段之间串行连接,是指流水线的各个段之间串行连接,处理对象顺序流经流水线各段最多一次处理对象顺序流经流水线各段最多一次处理对象顺序流经流水线各段最多一次处理对象顺序流经流水线各段最多一次的流水线。的流水线。的流水线。的流水线。 非线性流水线非线性流水线 :是指流水线的各段之间除有串行连是指流水线的各段之间除有串行连是指流水线的各段之间除有串行连是指流水线的各段之间除有串行连接之外,还有反馈回路,从而使处理接之外,还有反馈回路,从而使处理接之外,还有反馈回路,从而使处理接之外,还有反馈回路,从而使处理对象流经某个段或某几个段多次的流对象流经某个段或某几个段多次的流对象流经某个段或某几个段多次的流对象流经某个段或某几个段多次的流水线。水线。水线。水线。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(3)单功能流水线与多功能流水线)单功能流水线与多功能流水线单功能流水线单功能流水线 :是指流水线的各段之间的连接固定是指流水线的各段之间的连接固定是指流水线的各段之间的连接固定是指流水线的各段之间的连接固定不变,因此只能完成一种固定功能的不变,因此只能完成一种固定功能的不变,因此只能完成一种固定功能的不变,因此只能完成一种固定功能的流水线。流水线。流水线。流水线。 多功能流水线多功能流水线 : 是指流水线的各段之间可以实现不是指流水线的各段之间可以实现不是指流水线的各段之间可以实现不是指流水线的各段之间可以实现不同的连接,流水线能通过不同的连接同的连接,流水线能通过不同的连接同的连接,流水线能通过不同的连接同的连接,流水线能通过不同的连接实现不同的处理功能。实现不同的处理功能。实现不同的处理功能。实现不同的处理功能。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(4)静态流水线与动态流水线)静态流水线与动态流水线 静态流水线静态流水线 :是指在同一段时间内,多功能流水线只是指在同一段时间内,多功能流水线只是指在同一段时间内,多功能流水线只是指在同一段时间内,多功能流水线只能实现一种连接,从而只能执行一种功能,能实现一种连接,从而只能执行一种功能,能实现一种连接,从而只能执行一种功能,能实现一种连接,从而只能执行一种功能,且只有在按照这种连接已流入的所有处理且只有在按照这种连接已流入的所有处理且只有在按照这种连接已流入的所有处理且只有在按照这种连接已流入的所有处理对象都流出流水线后,才能重新连接以实对象都流出流水线后,才能重新连接以实对象都流出流水线后,才能重新连接以实对象都流出流水线后,才能重新连接以实现另一种功能。现另一种功能。现另一种功能。现另一种功能。 动态流水线动态流水线 :是指在同一段时间内,多功能流水线的是指在同一段时间内,多功能流水线的是指在同一段时间内,多功能流水线的是指在同一段时间内,多功能流水线的各段可以实现多种连接,从而同时执行多各段可以实现多种连接,从而同时执行多各段可以实现多种连接,从而同时执行多各段可以实现多种连接,从而同时执行多种功能。当然,流水线中的任何一个功能种功能。当然,流水线中的任何一个功能种功能。当然,流水线中的任何一个功能种功能。当然,流水线中的任何一个功能段只能参加到一种连接中。段只能参加到一种连接中。段只能参加到一种连接中。段只能参加到一种连接中。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(5)标量流水处理机与向量流水处理机)标量流水处理机与向量流水处理机 标量流水处理机标量流水处理机 :只有流水线,没有向量数据表示只有流水线,没有向量数据表示只有流水线,没有向量数据表示只有流水线,没有向量数据表示和相应的向量指令,处理向量时,采用和相应的向量指令,处理向量时,采用和相应的向量指令,处理向量时,采用和相应的向量指令,处理向量时,采用流水执行方式对向量各元素(标量数据)流水执行方式对向量各元素(标量数据)流水执行方式对向量各元素(标量数据)流水执行方式对向量各元素(标量数据)按标量指令的要求进行处理。按标量指令的要求进行处理。按标量指令的要求进行处理。按标量指令的要求进行处理。 向量流水处理机向量流水处理机 :是向量数据表示与向量指令流水是向量数据表示与向量指令流水是向量数据表示与向量指令流水是向量数据表示与向量指令流水线的结合,一个向量指令序列可以在向线的结合,一个向量指令序列可以在向线的结合,一个向量指令序列可以在向线的结合,一个向量指令序列可以在向量流水处理机上流水地执行。量流水处理机上流水地执行。量流水处理机上流水地执行。量流水处理机上流水地执行。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 时空图时空图时空图时空图 :是描述流水线工作过程的一种较好的工具。是描述流水线工作过程的一种较好的工具。是描述流水线工作过程的一种较好的工具。是描述流水线工作过程的一种较好的工具。时空图用横轴表示时间,当流水线中各功能部时空图用横轴表示时间,当流水线中各功能部时空图用横轴表示时间,当流水线中各功能部时空图用横轴表示时间,当流水线中各功能部件的执行时间都相等时,横轴被分割成相等长件的执行时间都相等时,横轴被分割成相等长件的执行时间都相等时,横轴被分割成相等长件的执行时间都相等时,横轴被分割成相等长度的时间段。时空图的纵轴表示流水线的各功度的时间段。时空图的纵轴表示流水线的各功度的时间段。时空图的纵轴表示流水线的各功度的时间段。时空图的纵轴表示流水线的各功能部件,每个功能部件通常称为一个功能段。能部件,每个功能部件通常称为一个功能段。能部件,每个功能部件通常称为一个功能段。能部件,每个功能部件通常称为一个功能段。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程 浮点加法器流水线浮点加法器流水线 :流水技术与流水处理机课件武汉理工大学计算机系统结构教程浮点加法器流水线的时空图浮点加法器流水线的时空图 :空间规格化尾数加对阶求阶差求求阶阶差差5 5求求阶阶差差4 4求求阶阶差差3 3求求阶阶差差2 2求求阶阶差差1 1对阶对阶5 5对阶对阶4 4对阶对阶3 3对阶对阶2 2对阶对阶1 1尾数加尾数加5 5尾数加尾数加4 4尾数加尾数加3 3尾数加尾数加2 2尾数加尾数加1 1规规格化格化5 5规规格化格化4 4规规格化格化3 3规规格化格化2 2规规格化格化1 10 t1 t2 t3 t4 t5 t6 t7 t8 时间 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.2.2 线性流水线的性能计算线性流水线的性能计算1. 吞吐率吞吐率 流水线的吞吐率是指流水线单位时间输出结果流水线的吞吐率是指流水线单位时间输出结果流水线的吞吐率是指流水线单位时间输出结果流水线的吞吐率是指流水线单位时间输出结果的数量。的数量。的数量。的数量。(1)各段执行时间相等的吞吐率)各段执行时间相等的吞吐率若一条若一条若一条若一条k k段线性流水线,各段执行时间相等,段线性流水线,各段执行时间相等,段线性流水线,各段执行时间相等,段线性流水线,各段执行时间相等,均为均为均为均为 ,当有,当有,当有,当有n n个处理对象连续流入流水线时,个处理对象连续流入流水线时,个处理对象连续流入流水线时,个处理对象连续流入流水线时,流水线的工作过程可用时空图表示为:流水线的工作过程可用时空图表示为:流水线的工作过程可用时空图表示为:流水线的工作过程可用时空图表示为: 流水技术与流水处理机课件武汉理工大学计算机系统结构教程n nn n- -1 13 32 21 1S S1 1n nn n- -1 13 32 21 1S S2 2n nn n- -1 13 32 21 1S S3 3n nn n- -1 13 32 21 1S S4 4时间空间 各段执行时间均相等的流水线时空图:各段执行时间均相等的流水线时空图: 流水技术与流水处理机课件武汉理工大学计算机系统结构教程流水线的实际吞吐率为:流水线的实际吞吐率为: 最大吞吐率为:最大吞吐率为:流水技术与流水处理机课件武汉理工大学计算机系统结构教程最大吞吐率与实际吞叶率的关系是:最大吞吐率与实际吞叶率的关系是:只有当只有当只有当只有当 n nk k 时,即连续输入流水线的处理对时,即连续输入流水线的处理对时,即连续输入流水线的处理对时,即连续输入流水线的处理对象数象数象数象数 n n 远大于流水线的段数远大于流水线的段数远大于流水线的段数远大于流水线的段数 k k 时,实际吞吐率时,实际吞吐率时,实际吞吐率时,实际吞吐率 TP TP 才接近于最大吞吐率才接近于最大吞吐率才接近于最大吞吐率才接近于最大吞吐率 TPTPmaxmax。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)各段执行时间不等的吞吐率)各段执行时间不等的吞吐率 若一条若一条若一条若一条 k k 段线性流水线,各段执行时间段线性流水线,各段执行时间段线性流水线,各段执行时间段线性流水线,各段执行时间 , , , , , , 不相等,那么,除第一个对象外,其余不相等,那么,除第一个对象外,其余不相等,那么,除第一个对象外,其余不相等,那么,除第一个对象外,其余 ( (n n-1) -1) 个对象必须按个对象必须按个对象必须按个对象必须按瓶颈时间间隔瓶颈时间间隔瓶颈时间间隔瓶颈时间间隔max( , , , )max( , , , )连续流入流水线。连续流入流水线。连续流入流水线。连续流入流水线。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程 消消除除流流水水线线的的瓶瓶颈颈段段,以以提提高高流流水水线线吞吞吐吐率率的的方方法有两种法有两种: 分离瓶颈段分离瓶颈段 :把流水线中的瓶颈功能段分离成为几个独立把流水线中的瓶颈功能段分离成为几个独立把流水线中的瓶颈功能段分离成为几个独立把流水线中的瓶颈功能段分离成为几个独立的子功能段,消除各段执行时间的的子功能段,消除各段执行时间的的子功能段,消除各段执行时间的的子功能段,消除各段执行时间的“ “瓶颈瓶颈瓶颈瓶颈” ”。 重复设置瓶颈段重复设置瓶颈段 :如果瓶颈功能段由于实现技术等方面的原因难如果瓶颈功能段由于实现技术等方面的原因难如果瓶颈功能段由于实现技术等方面的原因难如果瓶颈功能段由于实现技术等方面的原因难以分离成几个独立的子功能段,那么,可以采用以分离成几个独立的子功能段,那么,可以采用以分离成几个独立的子功能段,那么,可以采用以分离成几个独立的子功能段,那么,可以采用重复设置瓶颈段,让多个瓶颈段并行工作来消除重复设置瓶颈段,让多个瓶颈段并行工作来消除重复设置瓶颈段,让多个瓶颈段并行工作来消除重复设置瓶颈段,让多个瓶颈段并行工作来消除瓶颈段原执行时间的瓶颈段原执行时间的瓶颈段原执行时间的瓶颈段原执行时间的“ “瓶颈瓶颈瓶颈瓶颈” ”。 这两种方法只要完全消除了这两种方法只要完全消除了“瓶颈瓶颈”,提高,提高吞吐率的程度是相同的。吞吐率的程度是相同的。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 加速比加速比 流水线的加速比流水线的加速比 : 是指使用顺序处理方式处理一批对象所用的是指使用顺序处理方式处理一批对象所用的是指使用顺序处理方式处理一批对象所用的是指使用顺序处理方式处理一批对象所用的时间与流水线使用流水处理方式处理同一批对象时间与流水线使用流水处理方式处理同一批对象时间与流水线使用流水处理方式处理同一批对象时间与流水线使用流水处理方式处理同一批对象所用的时间之比。所用的时间之比。所用的时间之比。所用的时间之比。 (1 1)各段执行时间相等的加速比)各段执行时间相等的加速比)各段执行时间相等的加速比)各段执行时间相等的加速比 一条各段执行时间均为一条各段执行时间均为一条各段执行时间均为一条各段执行时间均为 的的的的 k k 段线性流水线,段线性流水线,段线性流水线,段线性流水线,若有若有若有若有 n n 个对象连续流入,那么,流水线流水处理个对象连续流入,那么,流水线流水处理个对象连续流入,那么,流水线流水处理个对象连续流入,那么,流水线流水处理这这这这 n n 个对象所用的时间为个对象所用的时间为个对象所用的时间为个对象所用的时间为 。若顺。若顺。若顺。若顺序处理这序处理这序处理这序处理这 n n 个对象,则所用时间为个对象,则所用时间为个对象,则所用时间为个对象,则所用时间为 。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程实际加速比为实际加速比为 : 最大加速比为最大加速比为 : 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)各段执行时间不等的加速比)各段执行时间不等的加速比当流水线各功能段的执行时间不相等时,一当流水线各功能段的执行时间不相等时,一当流水线各功能段的执行时间不相等时,一当流水线各功能段的执行时间不相等时,一条条条条k k段线性流水线完成段线性流水线完成段线性流水线完成段线性流水线完成n n个连续输入的对象的实际个连续输入的对象的实际个连续输入的对象的实际个连续输入的对象的实际加速比为加速比为加速比为加速比为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3. 效效 率率 流水线的效率流水线的效率 : 是指流水线的设备利用率。它是流水线各段是指流水线的设备利用率。它是流水线各段是指流水线的设备利用率。它是流水线各段是指流水线的设备利用率。它是流水线各段的有效工作时间之和与流水线各段被占用时间的有效工作时间之和与流水线各段被占用时间的有效工作时间之和与流水线各段被占用时间的有效工作时间之和与流水线各段被占用时间(从第一个对象流入至最后一个对象流出)之和(从第一个对象流入至最后一个对象流出)之和(从第一个对象流入至最后一个对象流出)之和(从第一个对象流入至最后一个对象流出)之和的比值。的比值。的比值。的比值。 可以由时空图直观地计算出流水线的效率可以由时空图直观地计算出流水线的效率可以由时空图直观地计算出流水线的效率可以由时空图直观地计算出流水线的效率为为为为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(1)各段执行时间相等的效率)各段执行时间相等的效率各段执行时间相等的流水线效率为:各段执行时间相等的流水线效率为:各段执行时间相等的流水线效率为:各段执行时间相等的流水线效率为:最大效率为最大效率为 :流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)各段执行时间不等的效率)各段执行时间不等的效率 各段执行时间不等的各段执行时间不等的各段执行时间不等的各段执行时间不等的 k k 段线性流水线连续段线性流水线连续段线性流水线连续段线性流水线连续输入输入输入输入 n n 个对象的流水线效率为:个对象的流水线效率为:个对象的流水线效率为:个对象的流水线效率为:流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例例3.2】 现有一条现有一条现有一条现有一条3 3段流水线,各段执行时间依次为段流水线,各段执行时间依次为段流水线,各段执行时间依次为段流水线,各段执行时间依次为 、 和和和和 。(1 1)分别计算连续输入)分别计算连续输入)分别计算连续输入)分别计算连续输入3 3条指令和连续输入条指令和连续输入条指令和连续输入条指令和连续输入3030条条条条指令时的实际吞吐率和效率。指令时的实际吞吐率和效率。指令时的实际吞吐率和效率。指令时的实际吞吐率和效率。(2 2)将瓶颈段细分为)将瓶颈段细分为)将瓶颈段细分为)将瓶颈段细分为3 3个独立子段,各子段执行个独立子段,各子段执行个独立子段,各子段执行个独立子段,各子段执行时间均为时间均为时间均为时间均为 ,分别计算改进后的流水线连续输入,分别计算改进后的流水线连续输入,分别计算改进后的流水线连续输入,分别计算改进后的流水线连续输入 3 3 条指令和连续输入条指令和连续输入条指令和连续输入条指令和连续输入3030条指令时的实际吞吐率和效条指令时的实际吞吐率和效条指令时的实际吞吐率和效条指令时的实际吞吐率和效率。率。率。率。(3 3)比较()比较()比较()比较(1 1)问和()问和()问和()问和(2 2)问的结果,能得出什)问的结果,能得出什)问的结果,能得出什)问的结果,能得出什么有用的结论?么有用的结论?么有用的结论?么有用的结论?流水技术与流水处理机课件武汉理工大学计算机系统结构教程解解(1)各段执行时间不等的连续流动可以用公式)各段执行时间不等的连续流动可以用公式直接计算吞吐率和效率。已知直接计算吞吐率和效率。已知 , , ,瓶颈段执行时间为,瓶颈段执行时间为 ,则,则 k=3,n=3流水技术与流水处理机课件武汉理工大学计算机系统结构教程 k=3,n=30流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)瓶颈段细分后,完全消除了瓶颈,指令可)瓶颈段细分后,完全消除了瓶颈,指令可每隔一个每隔一个 连续流入。可直接使用各段执行时连续流入。可直接使用各段执行时间相等的连续流动的公式计算吞吐率和效率。间相等的连续流动的公式计算吞吐率和效率。 k=5,n=3 流水技术与流水处理机课件武汉理工大学计算机系统结构教程 k=5,n=30流水技术与流水处理机课件武汉理工大学计算机系统结构教程(3)将()将(1)问和()问和(2)问的数据进行比较,可以)问的数据进行比较,可以得出下述有关结论:得出下述有关结论: 有有 可见,连续流入的处理对象越多(可见,连续流入的处理对象越多(n越大),实越大),实际吞吐率越大,效率越高。际吞吐率越大,效率越高。 有有 可见,改造瓶颈段能有效地提高吞吐率。实际上,可见,改造瓶颈段能有效地提高吞吐率。实际上,改造瓶颈段就是针对提高吞吐率采取的技术措施。改造瓶颈段就是针对提高吞吐率采取的技术措施。可见,改造瓶颈段并不能保证提高效率。实际上,可见,改造瓶颈段并不能保证提高效率。实际上,由于改造瓶颈段需要增加硬件资源,所以,一般由于改造瓶颈段需要增加硬件资源,所以,一般来说,会使效率下降。来说,会使效率下降。流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例例3.3】有一个有一个4段流水线如图所示段流水线如图所示。 其中,段其中,段S1和和S3的执行时间均为的执行时间均为200ns,段,段S2和和S4的执行时间均为的执行时间均为100ns。(1)分别使用公式和时空图求连续流入)分别使用公式和时空图求连续流入4条指令条指令的实际吞吐率和效率。的实际吞吐率和效率。(2)若瓶颈段)若瓶颈段S1可采用细分方法改造,瓶颈段可采用细分方法改造,瓶颈段S3只能采用瓶颈段并联方法改造,对改造后的流只能采用瓶颈段并联方法改造,对改造后的流水线,分别使用公式和时空图求连续流入水线,分别使用公式和时空图求连续流入4条指条指令的实际吞吐率和效率。令的实际吞吐率和效率。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程解解(1)首先使用公式计算,已知流水线段数)首先使用公式计算,已知流水线段数 k=4,连续流入指令条数,连续流入指令条数 n=4,各段执行时间不等,各段执行时间不等,且瓶颈段执行时间且瓶颈段执行时间 流水技术与流水处理机课件武汉理工大学计算机系统结构教程流水技术与流水处理机课件武汉理工大学计算机系统结构教程流水线处理流水线处理4条指令的时空图如图条指令的时空图如图: 4 44 43 33 32 22 21 11 1S S1 14 43 32 21 1S S2 24 44 43 33 32 22 21 11 1S S3 34 43 32 21 1S S4 4)ns100(=Dtt流水技术与流水处理机课件武汉理工大学计算机系统结构教程由时空图可得:由时空图可得:流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)首先使用公式计算,改造后的流水线段数)首先使用公式计算,改造后的流水线段数k=6,连续流入指令条数,连续流入指令条数n=4,各段执行时间相等,各段执行时间相等,且都为且都为 =100ns 流水技术与流水处理机课件武汉理工大学计算机系统结构教程流水线处理流水线处理4条指令的时空图如图条指令的时空图如图: 4 43 32 21 1S S11114 43 32 21 1S S12124 43 32 21 1S S2 23 33 31 11 1S S31314 44 42 22 2S S32324 43 32 21 1S S4 4流水技术与流水处理机课件武汉理工大学计算机系统结构教程由时空图可得由时空图可得可见,由公式直接计算和通过时空图计可见,由公式直接计算和通过时空图计算,算,2种方法得出的结果是一致的。种方法得出的结果是一致的。流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.3 非线性流水线的调度与性能计算非线性流水线的调度与性能计算 在线性流水线中,每一个对象流经每个在线性流水线中,每一个对象流经每个功能段最多一次,因此,线性流水线的调度功能段最多一次,因此,线性流水线的调度很简单,只需控制输入的对象按瓶颈段执行很简单,只需控制输入的对象按瓶颈段执行时间的时间间隔流入流水线即可。但是,在时间的时间间隔流入流水线即可。但是,在非线性流水线中,由于一个对象会通过反馈非线性流水线中,由于一个对象会通过反馈回路再次使用某个功能段,从而发生与后续回路再次使用某个功能段,从而发生与后续对象争用这个功能段的冲突,那么,将导致对象争用这个功能段的冲突,那么,将导致流水线阻塞。流水线阻塞。流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.3.1 非线性流水线的最优调度方法与性能计算非线性流水线最优调度要解决的问题是:非线性流水线最优调度要解决的问题是:如何确定处理对象流入流水线的时间间隔,使如何确定处理对象流入流水线的时间间隔,使得既不发生流入流水线的对象之间争用功能段得既不发生流入流水线的对象之间争用功能段的冲突,又能使流水线有较高的吞吐率和效率。的冲突,又能使流水线有较高的吞吐率和效率。这是一个最优调度问题,可以通过构造相应的这是一个最优调度问题,可以通过构造相应的状态有向图来寻找最优调度策略。状态有向图来寻找最优调度策略。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程1. 1.单功能非线性流水线的最优调度方法及其性能计算单功能非线性流水线的最优调度方法及其性能计算 最优调度方法获得最优调度策略的步骤是最优调度方法获得最优调度策略的步骤是: 根据处理对象对流水线各段的使用要求建立一根据处理对象对流水线各段的使用要求建立一根据处理对象对流水线各段的使用要求建立一根据处理对象对流水线各段的使用要求建立一个预约表。个预约表。个预约表。个预约表。 由预约表得出禁止表,禁止表是禁止后续对象由预约表得出禁止表,禁止表是禁止后续对象由预约表得出禁止表,禁止表是禁止后续对象由预约表得出禁止表,禁止表是禁止后续对象流入流水线的时间间隔的集合。流入流水线的时间间隔的集合。流入流水线的时间间隔的集合。流入流水线的时间间隔的集合。 由禁止表得出初始冲突向量由禁止表得出初始冲突向量由禁止表得出初始冲突向量由禁止表得出初始冲突向量 ,其中,其中,其中,其中, 为流水线各段的同步时钟周期。冲突向量的位数为流水线各段的同步时钟周期。冲突向量的位数为流水线各段的同步时钟周期。冲突向量的位数为流水线各段的同步时钟周期。冲突向量的位数n n为禁止表中的最大值。为禁止表中的最大值。为禁止表中的最大值。为禁止表中的最大值。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程 由初始冲突向量得出状态有向图。由初始冲突向量得出状态有向图。由初始冲突向量得出状态有向图。由初始冲突向量得出状态有向图。 后继状态的冲突向量用下式计算后继状态的冲突向量用下式计算后继状态的冲突向量用下式计算后继状态的冲突向量用下式计算 其中,当前状态为其中,当前状态为其中,当前状态为其中,当前状态为C Ci i, 是是是是 C Ci i 的一个允许时的一个允许时的一个允许时的一个允许时间间隔(即间间隔(即间间隔(即间间隔(即C Ci i 有有有有c ck k=0=0););););SHRSHR( (k k) )( (C Ci i) )表示将表示将表示将表示将C Ci i 右移右移右移右移k k位,高位补位,高位补位,高位补位,高位补“ “0”0”;后续状态;后续状态;后续状态;后续状态C Cj j 由向量由向量由向量由向量SHRSHR( (k k) )( (C Ci i) )和和和和初始冲突向量初始冲突向量初始冲突向量初始冲突向量C C0 0的的的的“ “或或或或” ”运算得出。运算得出。运算得出。运算得出。 由由由由状状状状态态态态有有有有向向向向图图图图得得得得出出出出最最最最优优优优调调调调度度度度策策策策略略略略。有有有有向向向向图图图图的的的的任任任任何何何何一一一一条条条条环环环环路路路路都都都都是是是是一一一一个个个个可可可可循循循循环环环环执执执执行行行行的的的的无无无无冲冲冲冲突突突突调调调调度度度度策策策策略略略略,从从从从中中中中选选选选择择择择一一一一个个个个平平平平均均均均时时时时间间间间间间间间隔隔隔隔最最最最小小小小的的的的调调调调度度度度策略就是最优调度策略。策略就是最优调度策略。策略就是最优调度策略。策略就是最优调度策略。流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例例3.4】 有一个有一个5段单功能非线性流水线,每一个功能段单功能非线性流水线,每一个功能段的执行时间均为段的执行时间均为 。处理对象在流水线中的处。处理对象在流水线中的处理过程由表理过程由表3.1给出的预约表描述。预约表中的记给出的预约表描述。预约表中的记号号“”表示处理对象在指定的时间(单位为表示处理对象在指定的时间(单位为 )需要由相应的段进行处理。求流水线的最优调度)需要由相应的段进行处理。求流水线的最优调度策略。若按此最优调度策略连续输入策略。若按此最优调度策略连续输入8个对象,计个对象,计算流水线的实际吞吐率、加速比和效率。算流水线的实际吞吐率、加速比和效率。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程表表3.1 5段单功能非线性流水线的一种预约表段单功能非线性流水线的一种预约表 S S5 5S S4 4S S3 3S S2 2S S1 19 98 87 76 65 54 43 32 21 1时间时间段段流水技术与流水处理机课件武汉理工大学计算机系统结构教程解解解解 按下述步骤先求出最优调度策略,然后求实际吞吐率、加按下述步骤先求出最优调度策略,然后求实际吞吐率、加按下述步骤先求出最优调度策略,然后求实际吞吐率、加按下述步骤先求出最优调度策略,然后求实际吞吐率、加速比和效率。速比和效率。速比和效率。速比和效率。 由预约表得出禁止表由预约表得出禁止表由预约表得出禁止表由预约表得出禁止表F F,禁止表是后续对象禁止流入流水线,禁止表是后续对象禁止流入流水线,禁止表是后续对象禁止流入流水线,禁止表是后续对象禁止流入流水线的时间间隔的集合。的时间间隔的集合。的时间间隔的集合。的时间间隔的集合。 由表由表由表由表3.13.1给出的预约表可见,一个对象在给出的预约表可见,一个对象在给出的预约表可见,一个对象在给出的预约表可见,一个对象在1 1 使用段使用段使用段使用段S S1 1后,后,后,后,在在在在9 9 将再次使用段将再次使用段将再次使用段将再次使用段S S1 1。为避免后续对象同该对象发生争用段。为避免后续对象同该对象发生争用段。为避免后续对象同该对象发生争用段。为避免后续对象同该对象发生争用段S1S1的冲突,后续对象禁止流入的时间间隔为的冲突,后续对象禁止流入的时间间隔为的冲突,后续对象禁止流入的时间间隔为的冲突,后续对象禁止流入的时间间隔为9 -1 =89 -1 =8 。 同样,为避免争用段同样,为避免争用段同样,为避免争用段同样,为避免争用段S S2 2的禁止时间间隔为的禁止时间间隔为的禁止时间间隔为的禁止时间间隔为 ;为避免争用段为避免争用段为避免争用段为避免争用段S S3 3的禁止时间间隔为的禁止时间间隔为的禁止时间间隔为的禁止时间间隔为 、 、 ;为避免争用;为避免争用;为避免争用;为避免争用S S4 4的禁止时间间隔的禁止时间间隔的禁止时间间隔的禁止时间间隔为为为为 ;为避免争用为避免争用为避免争用为避免争用S S5 5的禁止时间间隔为的禁止时间间隔为的禁止时间间隔为的禁止时间间隔为 。 由此,可得出禁止表由此,可得出禁止表由此,可得出禁止表由此,可得出禁止表F F=8,4,3,1=8,4,3,1。 由禁止表得出初始冲突向量由禁止表得出初始冲突向量由禁止表得出初始冲突向量由禁止表得出初始冲突向量 C C0 0=(10001101) =(10001101) 。3 -2 =17 -4 =38 -4 =48 -7 =15 -4 =17 -6 =1流水技术与流水处理机课件武汉理工大学计算机系统结构教程 由初始冲突向量得出状态有向图。由初始冲突向量得出状态有向图。 初始状态为初始状态为C0=(10001101),C0有有4个后继状态:个后继状态:C1=SHR(2)(C0)C0 =(00100011)(10001101)=(10101111)C2=SHR(5)(C0) C0 =(00000100)(10001101)=(10001101)=C0C3=SHR(6)(C0) C0 =(00000010)(10001101)=(10001111)C4=SHR(7)(C0) C0 =(00000001)(10001101)=(10001101)=C0 流水技术与流水处理机课件武汉理工大学计算机系统结构教程C1有有2个后继状态:个后继状态: C5=SHR(5)(C1) C0=(10001101)=C0C6=SHR(7)(C1) C0=(10001101)=C0C3有有3个后继状态个后继状态 : C7=SHR(5)(C3) C0=(10001101)=C0C8=SHR(6)(C3) C0=(10001111)=C3C9=SHR(7)(C3) C0=(10001101)=C0流水技术与流水处理机课件武汉理工大学计算机系统结构教程(10001101)(10101111)(10001111)257756657C0C1C3流水技术与流水处理机课件武汉理工大学计算机系统结构教程 表表3.2 图状态有向图的调度策略图状态有向图的调度策略 (2+5) /2=3. 55(7)(6)(6,7)(6,5)(5)(2,7)(2,5)平均时间间隔调度策略(2+7) /2=4. 5(6+5) /2=5. 5(6+7) /2=6. 567流水技术与流水处理机课件武汉理工大学计算机系统结构教程 计算最优调度策略的流水线吞吐率、加速比和效计算最优调度策略的流水线吞吐率、加速比和效率。率。最优调度策略(最优调度策略(2,5)的平均时间间隔为)的平均时间间隔为3.5 ,可得,可得出最优调度策略的流水线最大吞吐率为:出最优调度策略的流水线最大吞吐率为: TPmax=1/3.5 =0.286/ 按最优调度策略流水处理按最优调度策略流水处理8个对象所需时间为个对象所需时间为 由于每一个对象的处理过程所需时间为由于每一个对象的处理过程所需时间为9 ,所,所以,若按顺序处理方式处理以,若按顺序处理方式处理8个对象,所需时间为个对象,所需时间为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程可得出按最优调度策略流水处理可得出按最优调度策略流水处理n=8个对象时,个对象时,流水线的实际吞吐率、加速比和效率分别为流水线的实际吞吐率、加速比和效率分别为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 2. 多功能非线性流水线的最优调度方法及其性能计算多功能非线性流水线的最优调度方法及其性能计算 因为有因为有因为有因为有A A、B B两类对象在流水线中并发地被处理,需要用两类对象在流水线中并发地被处理,需要用两类对象在流水线中并发地被处理,需要用两类对象在流水线中并发地被处理,需要用两个预约表分别反映两类对象对流水线各段的使用要求,由两个预约表分别反映两类对象对流水线各段的使用要求,由两个预约表分别反映两类对象对流水线各段的使用要求,由两个预约表分别反映两类对象对流水线各段的使用要求,由此可得出此可得出此可得出此可得出A A类对象的初始冲突向量类对象的初始冲突向量类对象的初始冲突向量类对象的初始冲突向量C CAAAA和和和和B B类对象的初始冲突类对象的初始冲突类对象的初始冲突类对象的初始冲突向量向量向量向量C CBBBB,C CAAAA表示流入一个表示流入一个表示流入一个表示流入一个A A类对象对后续类对象对后续类对象对后续类对象对后续A A类对象流入的类对象流入的类对象流入的类对象流入的时间间隔约束,时间间隔约束,时间间隔约束,时间间隔约束,C CBBBB表示流入一个表示流入一个表示流入一个表示流入一个B B类对象对后续类对象对后续类对象对后续类对象对后续B B类对象流类对象流类对象流类对象流入的时间间隔约束。入的时间间隔约束。入的时间间隔约束。入的时间间隔约束。流入一个流入一个流入一个流入一个A A类对象对后续类对象对后续类对象对后续类对象对后续B B类对象流入的时间间隔约束的类对象流入的时间间隔约束的类对象流入的时间间隔约束的类对象流入的时间间隔约束的初始冲突向量初始冲突向量初始冲突向量初始冲突向量C CABAB和流入一个和流入一个和流入一个和流入一个B B类对象对后续类对象对后续类对象对后续类对象对后续A A类对象流入的类对象流入的类对象流入的类对象流入的时间间隔约束的初始冲突向量时间间隔约束的初始冲突向量时间间隔约束的初始冲突向量时间间隔约束的初始冲突向量C CBABA,C CABAB和和和和C CBABA可由两个预约可由两个预约可由两个预约可由两个预约表的综合表得出。表的综合表得出。表的综合表得出。表的综合表得出。 双功能非线性流水线最优调度方法双功能非线性流水线最优调度方法: 流水技术与流水处理机课件武汉理工大学计算机系统结构教程若首先流入一个若首先流入一个A类对象,则初始冲突矩阵为类对象,则初始冲突矩阵为 ;若首先流入一个若首先流入一个B类对象,则初始冲突矩阵为类对象,则初始冲突矩阵为 。它们。它们分别为:分别为:后续状态的冲突矩阵由下式计算:后续状态的冲突矩阵由下式计算: 其中,其中, 表示一个表示一个 p 类对象按当前状态类对象按当前状态 Mi 的一个允的一个允许时间间隔许时间间隔k 流入,则将当前状态矩阵流入,则将当前状态矩阵Mi的各行向量都右的各行向量都右移移 k 位,高位补位,高位补“0”,然后,同这个,然后,同这个 p 类对象的初始冲突类对象的初始冲突矩阵矩阵 进行进行“或或”运算。运算。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.3.2 非线性流水线最优调度的时空图非线性流水线最优调度的时空图 时空图可以直观地表示各类流水线的处时空图可以直观地表示各类流水线的处理过程,也同样可以直观地表示出非线性理过程,也同样可以直观地表示出非线性流水线的处理对象序列在最优调度策略的流水线的处理对象序列在最优调度策略的控制下,按预约表的要求占用流水线各段控制下,按预约表的要求占用流水线各段的处理过程。的处理过程。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例例3.6】 有一个有一个5段单功能非线性流水线,每一个功段单功能非线性流水线,每一个功能段的执行时间均为能段的执行时间均为 ,处理对象在流水线中的,处理对象在流水线中的处理过程由例处理过程由例3.4中的表中的表3.1给出的预约表描述。给出的预约表描述。(1)求流水线的最优调度策略和最大吞吐率。)求流水线的最优调度策略和最大吞吐率。(2)若按最优调度策略连续流入)若按最优调度策略连续流入6个对象,计算个对象,计算流水线的实际吞吐率、加速比和效率。流水线的实际吞吐率、加速比和效率。(3)画出按最优调度策略连续流入)画出按最优调度策略连续流入6个对象的时个对象的时空图,并由时空图计算流水线的实际吞吐率、加空图,并由时空图计算流水线的实际吞吐率、加速比和效率。速比和效率。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程 解解 (1)因为处理对象的预约表相同,所以,)因为处理对象的预约表相同,所以,流水线的最优调度策略即例流水线的最优调度策略即例3.4中求得的最优调度中求得的最优调度策略策略(2,5)。流水线的最大吞吐率就是最优调度策略的最大吞流水线的最大吞吐率就是最优调度策略的最大吞吐率,有吐率,有TPmax=1/3.5 。 (2)按按最最优优调调度度策策略略连连续续流流入入6个个对对象象,流流水线的实际吞吐率和加速比分别为水线的实际吞吐率和加速比分别为:流水技术与流水处理机课件武汉理工大学计算机系统结构教程由表由表由表由表3.13.1给出的预约表可见,一个处理对象在给出的预约表可见,一个处理对象在给出的预约表可见,一个处理对象在给出的预约表可见,一个处理对象在流水线中被流水线流水线中被流水线流水线中被流水线流水线中被流水线5 5个段实际处理的时间之和为个段实际处理的时间之和为个段实际处理的时间之和为个段实际处理的时间之和为(2+2+3+2+2) =11 (2+2+3+2+2) =11 ,所以,流水线,所以,流水线,所以,流水线,所以,流水线5 5个段处理个段处理个段处理个段处理6 6个对象的实际处理时间之和为个对象的实际处理时间之和为个对象的实际处理时间之和为个对象的实际处理时间之和为611 =66 611 =66 。流水线流水线流水线流水线5 5个段共被占用的时间之和为个段共被占用的时间之和为个段共被占用的时间之和为个段共被占用的时间之和为525 =125 525 =125 。因此,流水线的效率为。因此,流水线的效率为。因此,流水线的效率为。因此,流水线的效率为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程6 65 54 46 63 35 52 24 41 13 32 21 1S S1 16 66 65 55 54 44 43 33 32 22 21 11 1S S2 26 66 65 55 56 65 54 44 43 33 34 43 32 22 21 11 12 21 1S S3 36 66 65 55 54 44 43 33 32 22 21 11 1S S4 46 66 65 55 54 44 43 33 32 22 21 11 1S S5 52t 5t2t 5t2t 9tt(t)例例3.6的时空图的时空图 流水技术与流水处理机课件武汉理工大学计算机系统结构教程由时空图得出流水线的实际吞吐率、加速比由时空图得出流水线的实际吞吐率、加速比由时空图得出流水线的实际吞吐率、加速比由时空图得出流水线的实际吞吐率、加速比和效率分别为:和效率分别为:和效率分别为:和效率分别为: 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.3.3 非线性流水线的动态调度的实现非线性流水线的动态调度的实现 单功能非线性流水线控制器主要由一个初始冲突向量寄存器和一个移位寄存器组成,寄存器的位数为对象经流水线处理所需的 的个数。每一个 将使移位寄存器中的当前冲突向量Ci右移一位,高位补“0”。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程控制器的工作原理和操作过程如下:控制器的工作原理和操作过程如下: 把初始冲突向量把初始冲突向量C C0 0由初始冲突向量寄存器装入移由初始冲突向量寄存器装入移位寄存器。位寄存器。 如果在某个如果在某个 从移位寄存器移出的是从移位寄存器移出的是“ “0”0”,且,且同时有一个对象请求进入流水线,则允许该对象进入同时有一个对象请求进入流水线,则允许该对象进入流水线;如果从移位寄存器移出的是流水线;如果从移位寄存器移出的是“ “1”1”,则禁止,则禁止对象进入流水线,待下一个对象进入流水线,待下一个 到来时,重新提出请求。到来时,重新提出请求。 如果允许进入,就在现行如果允许进入,就在现行 结束时修改移位寄结束时修改移位寄存器中的内容存器中的内容C Ci i,它的新内容,它的新内容C Cj j是是C Ci i移位后的值与初移位后的值与初始冲突向量寄存器中的始冲突向量寄存器中的C C0 0进行进行“ “或或” ”运算的结果。如运算的结果。如果禁止进入,移位寄存器的内容仅右移一位,高位补果禁止进入,移位寄存器的内容仅右移一位,高位补“ “0”0”。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.4 流水线的相关问题与相关处理流水线的相关问题与相关处理 流水线的相关问题分为局部相关和全局相关两类。局部相关对程序执行过程的影响较小,它仅涉及到相关指令前后的一条或几条指令的执行。全局相关是指影响整个程序执行方向的相关,主要是转移类指令和中断引起的相关。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.4.1 局部相关及处理局部相关及处理 1. 1. 顺序流动的顺序流动的“ “先写后读先写后读” ”相关及处理相关及处理顺序流动顺序流动是指对象从流水线流出的次序同它们流是指对象从流水线流出的次序同它们流入流水线的次序一样。入流水线的次序一样。 如果指令如果指令h h写入结果的目的地址同指令写入结果的目的地址同指令j j读取操作读取操作数的源地址是同一个存储单元或寄存器,那么,称数的源地址是同一个存储单元或寄存器,那么,称这两条指令有这两条指令有“ “先写后读先写后读” ”的要求。如果当指令的要求。如果当指令j j到到达读段时,指令达读段时,指令h h还没有到达写段完成写入操作,那还没有到达写段完成写入操作,那么,指令么,指令j j读出的数据就是错误的,这就是读出的数据就是错误的,这就是“ “先写后先写后读读” ”相关。相关。 解决顺序流动的解决顺序流动的“ “先写后读先写后读” ”相关的方法是:延相关的方法是:延迟、异步流动和建立相关通路。迟、异步流动和建立相关通路。流水技术与流水处理机课件武汉理工大学计算机系统结构教程图3.16 顺序流动和异步流动 流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 异步流动的局部相关异步流动的局部相关 异步流动异步流动是指对象从流水线流出的次序同它们流是指对象从流水线流出的次序同它们流入流水线的次序不一样。入流水线的次序不一样。 若指令序列中的指令若指令序列中的指令j j和指令和指令k k都有写操作,且写都有写操作,且写入的目的地址是同一存储单元或同一寄存器,则顺入的目的地址是同一存储单元或同一寄存器,则顺序执行的结果是指令序执行的结果是指令j j先写入而指令先写入而指令k k后写入。但是,后写入。但是,若采用异步流动方式,则可能出现指令若采用异步流动方式,则可能出现指令k k先于指令先于指令j j到达写段,那么该存储单元或寄存器的内容最后是到达写段,那么该存储单元或寄存器的内容最后是由指令由指令j j写入的,而不是按指令序列的顺序要求由指写入的,而不是按指令序列的顺序要求由指令令k k写入的,这就是写入的,这就是“ “写写写写” ”相关。相关。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程若指令序列中的指令若指令序列中的指令j j的读操作和指令的读操作和指令k k的写操作的写操作是同一存储单元或同一寄存器,则这两条指令有是同一存储单元或同一寄存器,则这两条指令有“ “先读后写先读后写” ”的要求。若采用异步流动方式,则可能的要求。若采用异步流动方式,则可能出现指令出现指令k k的写操作先于指令的写操作先于指令j j的读操作被执行,那的读操作被执行,那么,指令么,指令j j读取的数据就是指令读取的数据就是指令k k写入的数据,这是写入的数据,这是违反这两条指令违反这两条指令“ “先读后写先读后写” ”要求的一个错误的数要求的一个错误的数据,这就是据,这就是“ “先读后写先读后写” ”相关。相关。异步流动解决相关的方法同样可以采用延迟方法。异步流动解决相关的方法同样可以采用延迟方法。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3. 相关专用通路相关专用通路 在流水线的读段与写段之间增加一条专用的数据通路。指令j 的读操作不是从存储单元去读,而是通过专用通路读取指令h 刚送入写段的数据, 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.4.2 全局相关及处理全局相关及处理 由条件转移或程序中断引起的相关称为全局相关。 1. 条件转移的处理在遇到条件转移指令时,为了使流水线不“断流”,通常采用“猜测法”,即在条件转移指令之后,选择一个分支方向,让后续指令进入流水线执行。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程i+1i+k2ipp+k4p+k3i1i+2p+1i+k3输出输出输入转移不成功转移成功形成转移条件形成条件码的指令条件转移指令时间t图3.17 条件转移指令在流水线中的执行过程 流水技术与流水处理机课件武汉理工大学计算机系统结构教程假设在一般程序中条件转移指令所占比例为假设在一般程序中条件转移指令所占比例为p p,转,转移成功的概率为移成功的概率为q q,那么,对于一个由,那么,对于一个由n n条指令组成条指令组成的程序在执行过程中,由于条件转移需要额外增加的程序在执行过程中,由于条件转移需要额外增加的执行时间就是的执行时间就是pqnpqn( (k k-1) -1) 。包括条件转移指令在内。包括条件转移指令在内的的n n条指令的总的执行时间是条指令的总的执行时间是 可得出有条件转移影响的流水线的吞吐率为可得出有条件转移影响的流水线的吞吐率为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程当当 时,有条件转移影响的流水线的最大吞时,有条件转移影响的流水线的最大吞吐率为吐率为由于条件转移指令的影响,流水线吞吐率下降百由于条件转移指令的影响,流水线吞吐率下降百分比为分比为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程由于条件转移指令对流水线的性能影响很大,必须采取措施来减小这种影响。可以采取的措施主要有以下几种。(1)延迟转移技术 (2)静态转移预测技术(3)动态转移预测技术 (4)提前形成条件码流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 中断处理中断处理在顺序处理方式中,在顺序处理方式中,CPUCPU任何时间都只执行一条任何时间都只执行一条指令,当中断发生时,被中断执行的那一条指令即指令,当中断发生时,被中断执行的那一条指令即是断点指令,被中断的指令的现场即是要保护的中是断点指令,被中断的指令的现场即是要保护的中断现场。在指令流水线中,同时有多条指令被执行,断现场。在指令流水线中,同时有多条指令被执行,每一条指令在流水地执行过程中都不断地改变着现每一条指令在流水地执行过程中都不断地改变着现场。场。 对此,有两种处理方法。对此,有两种处理方法。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(1)不精确断点方法)不精确断点方法不精确断点方法对中断的处理是:凡是已经进入不精确断点方法对中断的处理是:凡是已经进入流水线的指令序列的指令都执行完成,断点指令就流水线的指令序列的指令都执行完成,断点指令就是该指令序列中最后进入流水线的那条指令。实际是该指令序列中最后进入流水线的那条指令。实际上,提出中断请求的指令可能并不是最后那条指令,上,提出中断请求的指令可能并不是最后那条指令,所以称其为不精确断点法。这个方法只确定最后一所以称其为不精确断点法。这个方法只确定最后一条指令为断点指令,只保存这一条指令的现场条指令为断点指令,只保存这一条指令的现场。流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)精确断点方法)精确断点方法精确断点方法对中断的处理是:对于在流水线中精确断点方法对中断的处理是:对于在流水线中同时执行的多条指令,由哪一条指令的程序性错误同时执行的多条指令,由哪一条指令的程序性错误或故障发出的中断申请,断点指令就是这条指令。或故障发出的中断申请,断点指令就是这条指令。为了实现精确断点法,需要把断点指令之前尚在流为了实现精确断点法,需要把断点指令之前尚在流水线中已完全执行和部分执行的指令的执行结果都水线中已完全执行和部分执行的指令的执行结果都作为现场保存起来,为此,要设置一定数量的后援作为现场保存起来,为此,要设置一定数量的后援寄存器。寄存器。流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.4.3 相关对流水线性能的影响相关对流水线性能的影响 流水线处理对象之间的相关将导致流水线的性能下降。对于有相关问题的处理对象序列,可以用时空图来表示流水处理过程和分析相关对流水线性能的影响。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例3.8】 一条线性静态多功能流水线由6个功能段组成,加法操作使用其中的1、2、3、6功能段,乘法操作使用其中的1、4、5、6功能段,每个功能段的执行时间均为 ,流水线的输出端与输入端之间有直接数据通路,且设置有足够的缓冲寄存器。试用尽可能短的时间计算 ,画出流水线时空图,并计算流水线的实际吞吐率、加速比和效率。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程解解 为了减少流水线中发生先写后读相关的次数,为了减少流水线中发生先写后读相关的次数,使流水线完成计算的时间尽可能短,采用下述算法使流水线完成计算的时间尽可能短,采用下述算法计算计算F F:按先乘后加、先括号内后括号外的优先次序,上按先乘后加、先括号内后括号外的优先次序,上述计算述计算F F的过程需要先做的过程需要先做6 6次乘法,用次乘法,用1616表示;再做表示;再做3 3个括号内的个括号内的3 3次加法,用次加法,用7979表示;最后做括号外的表示;最后做括号外的2 2次加法,用次加法,用10111011表示。流水线时空图如图表示。流水线时空图如图3.193.19所所示。示。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程 S6 1 2 3 4 5 6 7 8 9 10 11 S5 1 2 3 4 5 6 S4 1 2 3 4 5 6 S3 7 8 9 10 11 S2 7 8 9 10 11 S1 1 2 3 4 5 6 7 8 9 10 11 t( t) 图3.19 例3.8的时空图 流水技术与流水处理机课件武汉理工大学计算机系统结构教程由时空图可得实际吞吐率、加速比和效率分别为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.5 多发射处理机及其性能多发射处理机及其性能 单发射是指处理机在一个时钟周期(单发射是指处理机在一个时钟周期( )只从存储器取)只从存储器取出一条指令(出一条指令(IFIF)、只对一条指令译码()、只对一条指令译码(IDID)、只执行一条)、只执行一条指令(指令(EXEX)和只写回一个运算结果()和只写回一个运算结果(WRWR),因此,平均一),因此,平均一个时钟周期只解释一条指令。单发射处理机的指令级并行度个时钟周期只解释一条指令。单发射处理机的指令级并行度ILPILP11。多发射是指处理机在一个时钟周期可发射多条指令。多发多发射是指处理机在一个时钟周期可发射多条指令。多发射处理机的指令级并行度射处理机的指令级并行度ILPILP22。属于多发射处理机范畴的。属于多发射处理机范畴的处理机有:超标量处理机、超流水处理机、超标量超流水处处理机有:超标量处理机、超流水处理机、超标量超流水处理机和超长指令字处理机。理机和超长指令字处理机。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.5.1 超标量处理机及其性能计超标量处理机及其性能计算算 超标量处理机是在单发射处理机的基础上,采用资源重复的途径来发展指令流水线的并行性,通过重复设置硬件资源来提高处理机的指令级并行度。1. 1. 超标量处理机指令流水线的结构超标量处理机指令流水线的结构超标量处理机指令流水线的结构超标量处理机指令流水线的结构 流水技术与流水处理机课件武汉理工大学计算机系统结构教程取指令 指令译码 执行指令 写回结果FA1FA2FA3MD1MD2MD3IFIDALWRLS定点算术逻辑部件乘除法部件来自指令Cache浮点加法部件通用寄存器或后行写数栈取数存数部件(a)单发射处理机指令流水线 流水技术与流水处理机课件武汉理工大学计算机系统结构教程取指令 指令译码 执行指令 写回结果FA1FA2FA3MD1 MD2MD3IF1ALWR1LS定点算术逻辑部件乘除法部件来自指令Cache浮点加法部件通用寄存器或后行写数栈取数存数部件IF2ID2来自指令CacheIF3先行指令窗口WR2通用寄存器或后行写数栈ID3ID1(b)超标量处理机指令流水线 FA:浮点加减法运算 MD:乘除法运算 AL:定点算术逻辑运算 LS:取数存数图3.20 单发射处理机与超标量处理机的指令流水线 流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 2. 超标量处理机性能超标量处理机性能超标量处理机性能超标量处理机性能如果一台超标量处理机每个时钟周期发射如果一台超标量处理机每个时钟周期发射m m条指条指令,则它的指令级并行度令,则它的指令级并行度ILPILP的期望值为的期望值为m m。在理想情况下,在理想情况下,N N条没有相关和段资源冲突的指条没有相关和段资源冲突的指令在单发射处理机上的执行时间为令在单发射处理机上的执行时间为 其中,其中,k k是流水线的段数,是流水线的段数, 是一个时钟周期的是一个时钟周期的时间长度。时间长度。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程如果把上述同样的如果把上述同样的N N条指令在一台每个时钟周期条指令在一台每个时钟周期发射发射m m条指令的超标量处理机上执行,则所需要的条指令的超标量处理机上执行,则所需要的时间为时间为 其中,第一项是第一批其中,第一项是第一批m m条指令同时通过条指令同时通过m m个指令个指令流水线所需要的执行时间流水线所需要的执行时间k k ;第二项是其余;第二项是其余N N- -m m条条指令分为指令分为( (N N- -m m)/ )/m m批通过指令流水线的时间,每隔批通过指令流水线的时间,每隔 就有一批就有一批m m条指令流出。条指令流出。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程超标量处理机相对于单发射处理机的加速比为最大加速比为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.5.2 超流水处理机及其性能计算超流水处理机及其性能计算 超流水处理机是在单发射处理机的基础上,采用超流水处理机是在单发射处理机的基础上,采用时间重叠的途径来发展指令流水线的并行性,通过时间重叠的途径来发展指令流水线的并行性,通过把单发射的指令流水线各功能段进一步细分来提高把单发射的指令流水线各功能段进一步细分来提高处理机的指令级并行度。处理机的指令级并行度。 指令流水线平均执行一条指令所需要的时间称为指令流水线平均执行一条指令所需要的时间称为流水线周期,单发射指令流水线的流水线周期就是流水线周期,单发射指令流水线的流水线周期就是时钟周期时钟周期 ,超流水指令流水线的流水线周期为,超流水指令流水线的流水线周期为 / /n n,在没有相关和段资源冲突的理想情况下,超,在没有相关和段资源冲突的理想情况下,超流水处理机的指令级并行度流水处理机的指令级并行度ILPILP= =n n。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程在指令级并行度为在指令级并行度为n n的超流水处理机上,在没有相的超流水处理机上,在没有相关和段资源冲突的理想情况下,连续执行关和段资源冲突的理想情况下,连续执行N N条指令条指令所需要的时间为所需要的时间为 其中,其中,k k为执行一条指令所需的时钟周期数。流水为执行一条指令所需的时钟周期数。流水线的段数为线的段数为knkn。式中的第一项是第一条指令通过指。式中的第一项是第一条指令通过指令流水线所需时间,第二项是其余令流水线所需时间,第二项是其余N N-1-1条指令分别同条指令分别同它前面一条指令相隔它前面一条指令相隔 / /n n连续流入流水线执行完成连续流入流水线执行完成所需时间。所需时间。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程超流水处理机相对于单发射处理机的加速比为超流水处理机相对于单发射处理机的加速比为 最大加速比为最大加速比为目前,把指令流水线的段数有目前,把指令流水线的段数有8 8个或个或8 8个以上的流个以上的流水处理机就称为超流水处理机。水处理机就称为超流水处理机。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.5.3 超标量超流水处理机及其性能计算超标量超流水处理机及其性能计算 超标量超流水处理机的指令流水线的每一个时钟周期分为n个流水线周期,每一个流水线周期同时发射m条指令,因此,每个时钟周期能够发射mn条指令。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程在一台能同时发射m条指令,且指令流水线为kn个段的超标量超流水处理机上,连续执行N条没有相关和段资源冲突的指令所需时间为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程超标量超流水处理机相对于单发射处理机的加速比为 最大加速比为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.5.4 超长指令字处理机的基本结构与特征超长指令字处理机的基本结构与特征 超长指令字(VLIW)处理机对指令序列的处理方式称为超长指令字处理方式。VLIW处理方式把一个足够长的指令分割成多个字段,每个字段都可以独立地控制各自的运算器、寄存器、互连网络(矩阵开关)和存储器等。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程运算器0运算器1运算器2运算器n-1存储模块寄存器堆/结合网运算器控制字段存储器控制字段其他控制字段m m- -1 11 10 0n n- -1 12 21 10 0指令指令图3.23 VLIW处理机基本结构 流水技术与流水处理机课件武汉理工大学计算机系统结构教程n nVLIWVLIW处理机的一个超长指令可以容纳可并行执行处理机的一个超长指令可以容纳可并行执行的的n n个运算器控制指令字段、若干个访问存储器控制个运算器控制指令字段、若干个访问存储器控制指令字段和其他控制字段。指令字段和其他控制字段。n n个运算器指令字段控制个运算器指令字段控制相应指定的相应指定的n n个运算部件(个运算部件(FUFU)。各运算部件所需)。各运算部件所需要的操作数或产生的结果可直接来自或存入寄存器要的操作数或产生的结果可直接来自或存入寄存器堆,也可由存储器指令字段对指定存储模块的存储堆,也可由存储器指令字段对指定存储模块的存储单元读出或写入。结合网(开关矩阵)在其他控制单元读出或写入。结合网(开关矩阵)在其他控制字段的控制下,提供指定的存储模块与运算部件之字段的控制下,提供指定的存储模块与运算部件之间的数据链路,结合网也可以为运算部件之间提供间的数据链路,结合网也可以为运算部件之间提供直接的数据链路,把一个运算部件的输出直接设置直接的数据链路,把一个运算部件的输出直接设置成其他运算部件的输入。超长指令中的一个运算器成其他运算部件的输入。超长指令中的一个运算器控制指令字段相当于程序中的一条运算指令,由一控制指令字段相当于程序中的一条运算指令,由一个个FUFU来执行。由于来执行。由于VLIWVLIW处理机可在一个周期执行处理机可在一个周期执行一条超长指令,因此一条超长指令,因此VLIWVLIW处理机可在一个周期发射处理机可在一个周期发射多条程序指令,所以,多条程序指令,所以,VLIWVLIW处理机也是一种多发射处理机也是一种多发射处理机。处理机。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程n n虽然VLIW的这种字段控制方式是由水平微指令方式派生出来的,但VLIW的超长指令的控制功能要强得多。微指令只对一个运算部件进行控制,一条超长指令是对多个运算部件的并行操作进行控制。n nVLIW处理机可在一个时钟周期执行一条超长指令,也就是说,它在一个时钟周期可发射n条短指令,由n个运算部件执行。从在一个时钟周期同时发射多条指令的特点来看,VLIW处理方式与超标量处理方式很相似,但是,这两者的工作基本原理是有区别的。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程n n VLIWVLIW方式是由编译程序对原程序中的指令判断方式是由编译程序对原程序中的指令判断并行运算的可能性,编译时从原程序的相邻指令抽并行运算的可能性,编译时从原程序的相邻指令抽出可并行的若干指令组成一条超长指令。由于出可并行的若干指令组成一条超长指令。由于VLIWVLIW处理机中的处理机中的FUFU的个数是固定的,因此,一条超长指的个数是固定的,因此,一条超长指令可容纳的运算器控制指令字段数也是固定的。即令可容纳的运算器控制指令字段数也是固定的。即使把使把VLIWVLIW处理机中的处理机中的FUFU的数量增加一倍,也不能的数量增加一倍,也不能同时运行同时运行2 2条超长指令。要提高条超长指令。要提高VLIWVLIW处理机同时发处理机同时发射指令的条数,就需要重新设计新的射指令的条数,就需要重新设计新的VLIWVLIW指令的格指令的格式,并需要重新设计编译。式,并需要重新设计编译。n n超标量处理机依靠多个指令处理模块超标量处理机依靠多个指令处理模块PUPU来支持多来支持多指令发射,一个指令发射,一个PUPU可以是一个指令流水线,每个可以是一个指令流水线,每个PUPU各自处理一条程序指令。程序运行时,指令的可并各自处理一条程序指令。程序运行时,指令的可并行性由行性由PUPU硬件来检测,无需由编译来保证。因此,硬件来检测,无需由编译来保证。因此,增加增加PUPU的个数就可以提高超标量处理机的同时发射的个数就可以提高超标量处理机的同时发射指令的条数。指令的条数。流水技术与流水处理机课件武汉理工大学计算机系统结构教程n n VLIWVLIW处理机中的各处理机中的各FUFU一般分别是整数逻辑运算一般分别是整数逻辑运算部件、浮点小数运算部件、访存操作部件及顺序控部件、浮点小数运算部件、访存操作部件及顺序控制部件等专用单功能部件,各制部件等专用单功能部件,各FUFU是非同构的。若是非同构的。若VLIWVLIW处理机中只有一个浮点小数运算部件,而程序处理机中只有一个浮点小数运算部件,而程序中有中有2 2条相邻可并行浮点运算指令,那么,编译只能条相邻可并行浮点运算指令,那么,编译只能将它们组装到将它们组装到2 2条超长指令中。另外,若程序中连续条超长指令中。另外,若程序中连续若干条指令中都没有浮点运算指令,那么,超长指若干条指令中都没有浮点运算指令,那么,超长指令中相应的浮点小数运算指令字段只能空缺。因此,令中相应的浮点小数运算指令字段只能空缺。因此,VLIWVLIW处理机的专用异构的处理机的专用异构的FUFU虽然可使其硬件结构虽然可使其硬件结构简单,但使得超长指令的指令字段的利用率不高。简单,但使得超长指令的指令字段的利用率不高。n n超标量处理机的各超标量处理机的各PUPU必须是能实现所有程序指令必须是能实现所有程序指令功能的通用部件,一定是同构型的,只要指令是可功能的通用部件,一定是同构型的,只要指令是可并行的,就可同时发射并行的,就可同时发射m m条指令。当然,通用性要条指令。当然,通用性要求使求使PUPU的硬件开销大。的硬件开销大。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程n nVLIWVLIW方式是由编译抽出程序中可并行的操作嵌入方式是由编译抽出程序中可并行的操作嵌入VLIWVLIW指令中,编译对指令并行的调度是静态调度。指令中,编译对指令并行的调度是静态调度。VLIWVLIW方式的处理性能很大程度取决于优化编译的能方式的处理性能很大程度取决于优化编译的能力。另外,由于是静态调度,指令中的访存等操作力。另外,由于是静态调度,指令中的访存等操作没有运行就不可能知道程序的物理地址流,也就不没有运行就不可能知道程序的物理地址流,也就不能完全解决数据相关问题。因此,经编译生成的能完全解决数据相关问题。因此,经编译生成的VLIWVLIW指令中还有不可并行执行的操作,这也是指令中还有不可并行执行的操作,这也是VLIWVLIW指令字段实际利用率不高的重要原因。指令字段实际利用率不高的重要原因。n n超标量处理方式虽然也需要优化编译的支持,但超标量处理方式虽然也需要优化编译的支持,但是,这种支持是辅助性的。程序指令的并行调度主是,这种支持是辅助性的。程序指令的并行调度主要是由超标量处理机的硬件来检测和动态调度的,要是由超标量处理机的硬件来检测和动态调度的,即是对程序指令序列边执行边进行指令并行调度。即是对程序指令序列边执行边进行指令并行调度。超标量处理机只发射可执行的并行操作。超标量处理机只发射可执行的并行操作。流水技术与流水处理机课件武汉理工大学计算机系统结构教程n nVLIW指令格式固定,因此VLIW指令的译码比超标量指令译码容易。n n 超标量处理机的兼容性优于VLIW处理机。流水技术与流水处理机课件武汉理工大学计算机系统结构教程根据VLIW处理机的基本结构和目前推出的有代表性的VLIW处理机,VLIW处理方式具有下述主要特征。(1)依靠编译组装超长指令 (2)硬件结构简单 (3)适合于细粒度的并行处理 (4)指令系统的非兼容性 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.5.5 多发射处理机的性能比较多发射处理机的性能比较 表3.6 4种不同类型处理机的性能比较 机器类型机器类型单发射处理机单发射处理机超标量处理机超标量处理机超流水处理机超流水处理机超标量超流水处超标量超流水处理机理机流水流水线线周期周期1 1个个时钟时钟周期周期1 1个个时钟时钟周周期期1/1/n n时钟时钟周周期期1/1/n n时钟时钟周期周期同同时发时发射指令射指令条数条数1 1条条m m条条1 1条条m m条条指令指令发发射等待射等待时间时间1 1个个时钟时钟周期周期1 1个个时钟时钟周期周期1/1/n n时钟时钟周期周期1/1/n n时钟时钟周期周期指令指令级级并行度并行度ILPILP1 1m mn nm m n n流水技术与流水处理机课件武汉理工大学计算机系统结构教程 1 2 3 4 5 6 7 8指令级并行度2.52.01.51.00.50.0超标量处理机超标量超流水线处理机超流水线处理机相对性能图3.25 3种指令级并行处理机的相对性能 流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例3.10】 设指令流水线由取指、分析、执行3个部件组成,每个部件执行时间为 ,连续流入12条指令,假设指令之间没有相关。请分别画出单发射处理机以及ILP均为4的超标量处理机、超长指令字处理机、超流水处理机的时空图,并分别计算出它们相对于单发射处理机的加速比。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程解解 单发射处理机的单发射处理机的ILPILP=1=1,连续执行,连续执行1212条指令的条指令的时空图如图时空图如图3.263.26所示。所示。 t(t)执执行行1 12 23 34 45 56 67 78 89 9101011111212分析分析1 12 23 34 45 56 67 78 89 9101011111212取指取指1 12 23 34 45 56 67 78 89 9101011111212图3.26 例3.10的单发射处理机的时空图 执行完12条指令所需时间为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程超标量处理机的ILP=4,连续执行12条指令的时空图如图3.27所示。执行完12条指令所需时间为 ,相对于单发射处理机的加速比为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程4 48 812123 37 711112 26 610101 15 59 94 48 812123 37 711112 26 610101 15 59 94 48 812123 37 711112 26 610101 15 59 9执行分析取指t(t) 0 1 2 3 4 5 图3.27 例3.10的超标量处理机的时空图 流水技术与流水处理机课件武汉理工大学计算机系统结构教程超长指令字处理机的ILP=4,连续执行12条指令的时空图如图3.28所示。时空图中数字1表示由指令14组成的超长指令1,数字2表示由指令58组成的超长指令2,数字3表示由指令912组成的超长指令3。执行完12条指令所需时间为 ,相对于单发射处理机的加速比为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程执行分析取指t(t)1 12 23 31 12 23 31 12 23 3图3.28 例3.10的超长指令字处理机的时空图 0 1 2 3 4 5 流水技术与流水处理机课件武汉理工大学计算机系统结构教程超流水处理机的ILP=4,连续执行12条指令的时空图如图3.29所示。执行完12条指令所需时间为 ,相对于单发射处理机的加速比为 流水技术与流水处理机课件武汉理工大学计算机系统结构教程0 1 2 3 4 5 5.751 5 9 2 6 10 3 7 11 4 8 12 1 5 9 2 6 10 3 7 11 4 8 12 1 5 9 2 6 10 3 7 11 4 8 12 执行分析取指t(t)图3.29 例3.10的超流水处理机的时空图 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.6 向量流水处理机及其性能向量流水处理机及其性能 向量由一组有序的向量元素组成,向量元素是具向量由一组有序的向量元素组成,向量元素是具有相同类型的标量数据。向量的运算和处理可以在有相同类型的标量数据。向量的运算和处理可以在标量处理机上完成,也可以在向量处理机上完成。标量处理机上完成,也可以在向量处理机上完成。标量处理机只能使用标量指令处理标量数据,一标量处理机只能使用标量指令处理标量数据,一条标量指令一次只能处理一个或一对标量数据。标条标量指令一次只能处理一个或一对标量数据。标量处理机根据处理机的结构不同对标量数据序列按量处理机根据处理机的结构不同对标量数据序列按顺序处理方式处理或按流水方式处理。顺序处理方式处理或按流水方式处理。向量处理机使用向量指令直接处理向量数据,一向量处理机使用向量指令直接处理向量数据,一条向量指令一次可以并行地处理多个或多对向量元条向量指令一次可以并行地处理多个或多对向量元素(标量数据)。处理机的指令系统中是否有向量素(标量数据)。处理机的指令系统中是否有向量指令是区分标量处理机与向量处理机的重要依据。指令是区分标量处理机与向量处理机的重要依据。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程根据向量处理机的结构不同,向量处理机可以分为向量流水处理机和并行(阵列)处理机。向量流水处理机使用向量指令对向量数据中的多个或多对向量元素并发地流水处理;并行处理机属于SIMD处理机,并行处理机执行一条向量指令对向量数据中的多个或多对向量元素同时处理。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.6.1 向量处理方式向量处理方式 向量处理方式分为3种,即横向处理方式、纵向处理方式和纵横处理方式。循环程序DO 100 i=1,n,1100 fi= 其中,ai、di、ei是元素个数为n的数组A、D、E的元素,b是一个标量数据。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程1. 横向处理方式横向处理方式 横向处理方式是对向量各元素按计算要求逐个进行计算。因此,对上述向量 F 的计算,是从f1至fn逐个计算,即:先算 f1再算 f2 最后算 fn流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 纵向处理方式纵向处理方式 纵向处理方式是对整个向量全体元素按相同的运纵向处理方式是对整个向量全体元素按相同的运算处理完之后,再去执行别的运算。纵向处理方式算处理完之后,再去执行别的运算。纵向处理方式将程序的计算要求写成如下向量运算的形式:将程序的计算要求写成如下向量运算的形式:向量的运算过程为:向量的运算过程为:先算先算A A2 2U U再算再算b b U UV V再算再算U U- -E EU U再算再算U U D DU U最后算最后算U U+ +V VF F 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3. 纵横处理方式纵横处理方式 纵横处理方式是横向处理方式和纵向处理方式相结合的一种向量处理方式,把长度为n的向量按向量处理机能并行处理的元素个数N分为若干组,组内按纵向方式处理,依次处理各组。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.6.2 向量流水处理机的结构向量流水处理机的结构 向量流水处理机对参加运算操作的向量元素序列向量流水处理机对参加运算操作的向量元素序列按流水处理方式进行运算或操作。完成向量指令的各按流水处理方式进行运算或操作。完成向量指令的各运算部件都采用流水线结构。运算部件都采用流水线结构。向量流水处理机结构设计面临的主要问题是如何向量流水处理机结构设计面临的主要问题是如何设计出一个能满足运算器带宽要求的存储系统。目前设计出一个能满足运算器带宽要求的存储系统。目前已有的向量流水处理机主要采用两种结构,即存储器已有的向量流水处理机主要采用两种结构,即存储器- -存储器结构和寄存器存储器结构和寄存器- -寄存器结构。寄存器结构。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程1. 存储器存储器-存储器结构存储器结构 存储器-存储器结构是指主存由多个存储模块构成,来支持对相互独立的数据的并发访问,从而达到所要求的主存带宽。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程图3.30 由8个3端口存储模块组成主存系统的向量处理机 流水技术与流水处理机课件武汉理工大学计算机系统结构教程2. 寄存器寄存器-寄存器结构寄存器结构 使主存有较高带宽的另一种方法是由一级或多级中间存储器形成一种层次结构的存储系统,速度最快的存储器级距处理器最近,中间几级存储器把数据缓存起来,这就是向量处理机的寄存器-寄存器结构。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程图3.32 Cray-1的寄存器-寄存器结构 流水技术与流水处理机课件武汉理工大学计算机系统结构教程3.6.3 向量流水处理机的性能向量流水处理机的性能 在向量流水处理机上,每条向量指令的内部执行在向量流水处理机上,每条向量指令的内部执行过程都是流水的。一条向量指令的执行时间为过程都是流水的。一条向量指令的执行时间为 Tvp=Ts+Tvf+(n-1)Tc其中,其中,n n为向量指令处理的向量的长度;为向量指令处理的向量的长度;T Ts s为向量为向量流水线的建立时间;流水线的建立时间;T Tvfvf为从指令译码到流出结果向为从指令译码到流出结果向量的第一个元素的所需时间;量的第一个元素的所需时间;T Tc c为向量流水线瓶颈为向量流水线瓶颈段的执行时间。段的执行时间。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程如果向量流水线各段执行时间均为一个时钟周期 ,则有 其中,s为建立相应向量指令的向量流水线所需的时钟周期数;e为第一个元素流过向量流水线所需的时钟周期数。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程向量指令序列中的n条相邻指令之间如果不存在资源争用冲突和数据相关,那么,这n条指令称为一个编队,编队内的指令可以同时并行执行,编队执行时间为编队内需时最多的那条向量指令的执行时间。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程如果相邻的多条向量指令之间无功能部件使用冲突,只有向量寄存器的先写后读相关,那么,可以通过链接实现这些向量指令之间的流水操作。向量流水线链接就是将前一条向量指令流水线流出的结果向量元素直接链入后续向量指令所用的流水线。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例3.11】 假设每种向量指令都有自己的一条流水线完成该向量指令的流水处理,下面一组向量指令能分成几个编队?LVLVV1,RXV1,RX ;取向量;取向量X XMULTSVMULTSVV2,F0,V1V2,F0,V1 ;向量和标量相乘;向量和标量相乘LVLVV3,RYV3,RY ;取向量;取向量Y YADDVADDVV4,V2,V3V4,V2,V3 ;向量加;向量加SVSVRY,V4RY,V4 ;存结果向量;存结果向量 流水技术与流水处理机课件武汉理工大学计算机系统结构教程解解 第一条指令第一条指令LVLV为第一编队,为第一编队,MULTSVMULTSV指令因与第一条指令因与第一条LVLV指令有向量寄存器指令有向量寄存器V1V1的先写后读数据相关,所以它们不的先写后读数据相关,所以它们不能在同一个编队中。能在同一个编队中。MULTSVMULTSV指令和第二条指令和第二条LVLV指令之间不存指令之间不存在功能部件冲突和数据相关,所以这两条指令为第二编队。在功能部件冲突和数据相关,所以这两条指令为第二编队。ADDVADDV指令与第二条指令与第二条LVLV指令有向量寄存器指令有向量寄存器V3V3的先写后读数据的先写后读数据相关,所以相关,所以ADDVADDV为第三编队。为第三编队。SVSV指令与指令与ADDVADDV指令有向量指令有向量寄存器寄存器V4V4的先写后读数据相关,所以的先写后读数据相关,所以SVSV为第四编队。因此,为第四编队。因此,这一组向量指令分为以下这一组向量指令分为以下4 4个编队个编队 LVLV MULTSV LV MULTSV LV ADDV ADDV SV SV 流水技术与流水处理机课件武汉理工大学计算机系统结构教程【例例3.123.12】 在向量流水处理机上,执行下述在向量流水处理机上,执行下述3 3条条向量指令来计算向量向量指令来计算向量D D= =A A(B B+ +C C) ),其中,结果向量,其中,结果向量D D的元素的元素d di i= =a ai i(b bi i+ +c ci i) ),i=1i=1,2 2,N N。N N为向量元为向量元素个数。素个数。 V3V3存储器存储器 ;访存取;访存取A A送入向量寄存器送入向量寄存器V3V3 V2V0+V1 V2V0+V1 ;B B+ +C CK K V4V2*V3 V4V2*V3 ;K K* *A AD D设启动存储器、启动乘设启动存储器、启动乘/ /加流水线、数据打入寄存加流水线、数据打入寄存器各需时器各需时 ,向量加流水线完成一次加法需时,向量加流水线完成一次加法需时6 6 ,访存一次需时访存一次需时6 6 ,向量乘流水线完成一次乘法需,向量乘流水线完成一次乘法需时时7 7 。 流水技术与流水处理机课件武汉理工大学计算机系统结构教程求出分别采用下列3种方式工作时,完成3条向量指令所需的时间。(1)3条指令依序串行。(2)指令与指令并行执行完后,再执行指令。(3)采用指令链接技术 流水技术与流水处理机课件武汉理工大学计算机系统结构教程解解 (1 1)计算)计算3 3条向量指令各自单独流水执行时所条向量指令各自单独流水执行时所需时间。需时间。向量指令向量指令V3V3存储器存储器 所需流水线建立的时间为所需流水线建立的时间为启动存储器所需时钟周期数,即有启动存储器所需时钟周期数,即有s s1 1=1=1;访存取向;访存取向量量A A并打入向量寄存器并打入向量寄存器V3V3中,以及流水操作打入中,以及流水操作打入A A的的第一个元素所需时钟周期数为第一个元素所需时钟周期数为6 + =7 6 + =7 ,即,即e e1 1=7=7;完成向量;完成向量A A其余其余N N-1-1个元素的打入所需时钟周期数个元素的打入所需时钟周期数为为( (N N-1)-1)。因此,该向量指令单独流水执行所需时间。因此,该向量指令单独流水执行所需时间 流水技术与流水处理机课件武汉理工大学计算机系统结构教程向量指令向量指令V2V0+V1V2V0+V1单独流水执行所需时间单独流水执行所需时间 向量指令向量指令V4V2*V3V4V2*V3单独流水执行所需时间单独流水执行所需时间因此,因此,3 3条指令之间串行执行,共需时间条指令之间串行执行,共需时间 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(2)由于指令和指令同时并行,所需时间 ,然后执行指令,因此,共需时间 流水技术与流水处理机课件武汉理工大学计算机系统结构教程(3 3)由于指令)由于指令与指令与指令之间既无向量流水线资源冲突之间既无向量流水线资源冲突(前者使用访存流水线,后者使用向量加流水线,二者之间(前者使用访存流水线,后者使用向量加流水线,二者之间无资源冲突),又无向量寄存器的先写后读相关,因此,这无资源冲突),又无向量寄存器的先写后读相关,因此,这2 2条指令是一个编队,可以同时并行执行。但是,指令条指令是一个编队,可以同时并行执行。但是,指令与与指令指令之间有寄存器之间有寄存器V3V3的先写后读相关,与指令的先写后读相关,与指令之间有寄之间有寄存器存器V2V2的先写后读相关,因此,指令的先写后读相关,因此,指令是另一个编队。可以是另一个编队。可以在编队之间采用链接技术,即可把指令在编队之间采用链接技术,即可把指令和指令和指令同时并行同时并行的流水线流出的结果向量元素直接流入指令的流水线流出的结果向量元素直接流入指令的流水线。指的流水线。指令令流水线与指令流水线与指令流水线同时并行执行,流出第一对元素流水线同时并行执行,流出第一对元素的时间为的时间为 ,因此,共需,因此,共需时间时间 流水技术与流水处理机课件
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号