1、1 1/206/206第3章 流水线技术张晨曦张晨曦 刘依刘依www.GotoS2 2/206/2063.1重叠执行和先行控制3.2流水线的基本概念3.3流水线的性能指标3.4流水线的相关与冲突 3.5流水线的实现3.6向量处理机3 3/206/206w将一条指令的执行过程分为三个阶段3.1 重叠执行和先行控制3.1.1 重叠执行一条指令的执行过程一条指令的执行过程 4 4/206/2063.1 重叠执行和先行控制取指令q按照指令计数器按照指令计数器PCPC的内容访问主存,取出一条指令的内容访问主存,取出一条指令 送到指令寄存器。送到指令寄存器。指令分析q对指令的操作码进行译码,按照给定的寻址
2、方式和对指令的操作码进行译码,按照给定的寻址方式和 地址字段形成操作数的地址,并用这个地址读取操地址字段形成操作数的地址,并用这个地址读取操 作数。作数。指令执行q按照操作码的要求,完成指令规定的功能。按照操作码的要求,完成指令规定的功能。在指令的执行过程中还要更新PC值,为读取下一 条指令做好准备。5 5/206/2063.1 重叠执行和先行控制2.三种执行方式顺序执行方式一次重叠执行方式二次重叠执行方式 6 6/206/2063.1 重叠执行和先行控制执行n条指令所花的时间 1.顺序执行方式指令的执行过程7 7/206/2063.1 重叠执行和先行控制如果取指令、指令分析和指令执行的时间相
3、等,都是t,则 T=3nt 优点q控制简单,节省设备。控制简单,节省设备。主要缺点q 处理机执行指令的速度慢处理机执行指令的速度慢q 功能部件的利用率很低功能部件的利用率很低8 8/206/2063.1 重叠执行和先行控制1.一次重叠执行方式 指令的执行过程执行第k条指令与取第k+l条指令同时进行。(一种最简单的重叠方式)(一种最简单的重叠方式)9 9/206/2063.1 重叠执行和先行控制如果执行一条指令的3个阶段的时间相等,都是 t,则执行n条指令所花的时间为 T=(1+2n)t 优点q程序的执行时间减少了近程序的执行时间减少了近1/31/3。q功能部件的利用率明显提高。功能部件的利用率
4、明显提高。缺点q需要增加一些硬件,控制过程变复杂了。需要增加一些硬件,控制过程变复杂了。1010/206/2063.1 重叠执行和先行控制1.二次重叠执行方式 指令的执行过程 取第k+l条指令提前到与分析第k条指令同时进行,分析第k+l条指令与执行第k条指令同时进行。1111/206/2063.1 重叠执行和先行控制如果执行一条指令的3个阶段的时间相等,都是 t,则执行n条指令所花的时间为 T=(2+n)t 优点q与顺序执行方式相比,执行时间缩短了近与顺序执行方式相比,执行时间缩短了近2/32/3。q部件的利用率有了进一步的提高。部件的利用率有了进一步的提高。缺点q需要增加更多的硬件。需要增加
5、更多的硬件。q需要设置独立的取指令部件、指令分析部件和指令执需要设置独立的取指令部件、指令分析部件和指令执行部件。行部件。1212/206/2063.1 重叠执行和先行控制访问主存的冲突问题 4种解决方法q设置两个独立编址的存储器:设置两个独立编址的存储器:指令存储器指令存储器(存放指令)、(存放指令)、数据存储器数据存储器(存放数据)(存放数据)q指令和数据仍然混合存放在同一个主存中,但设置指令和数据仍然混合存放在同一个主存中,但设置 两个两个CacheCache:指令指令CacheCache、数据、数据CacheCache 程序空间和数据空间相互独立的系统结构被称为程序空间和数据空间相互独
6、立的系统结构被称为哈佛哈佛结构结构。q 指令和数据仍然混合存放在同一个主存中,但主存采用指令和数据仍然混合存放在同一个主存中,但主存采用 多体交叉结构。多体交叉结构。(有一定的局限性)(有一定的局限性)1313/206/2063.1 重叠执行和先行控制q在主存和指令分析部件之间增设在主存和指令分析部件之间增设指令缓冲站指令缓冲站 (又被称为(又被称为先行指令缓冲站先行指令缓冲站)n主存不是满负荷工作的,插空从主存中预先把后面将主存不是满负荷工作的,插空从主存中预先把后面将要执行的指令取出来,存放到指令缓冲站中。要执行的指令取出来,存放到指令缓冲站中。n在在“取指令取指令”阶段从指令缓冲站读取指
7、令(如果指令阶段从指令缓冲站读取指令(如果指令缓冲站不为空),而不用去访问主存。缓冲站不为空),而不用去访问主存。1414/206/2063.1 重叠执行和先行控制w先行指令缓冲站先行指令缓冲站的组成1515/206/2063.1 重叠执行和先行控制指令缓冲存储区和相应的控制逻辑q按队列方式工作。按队列方式工作。q只要指令缓冲站不满,它就自动地向主存控制器发只要指令缓冲站不满,它就自动地向主存控制器发 取指令请求,不断地预取指令。取指令请求,不断地预取指令。指令分析部件q每分析完一条指令,就自动向指令缓冲站发出取下每分析完一条指令,就自动向指令缓冲站发出取下 一条指令的请求。指令取出之后就把指
8、令缓冲站中一条指令的请求。指令取出之后就把指令缓冲站中 的该指令作废。的该指令作废。q指令缓冲站中存放的指令的条数是动态变化的。指令缓冲站中存放的指令的条数是动态变化的。两个程序计数器1616/206/2063.1 重叠执行和先行控制q先行程序计数器先行程序计数器PC1PC1:用于从主存预取指令;用于从主存预取指令;q现行程序计数器现行程序计数器PCPC:用来记录指令分析部件当前正在用来记录指令分析部件当前正在 分析的指令的地址。分析的指令的地址。1.先行控制方式中的一次重叠执行 若取指令阶段的时间很短,可以把这个操作合并 到分析指令中。上述的二次重叠就演变成了一次重叠q把一条指令的执行过程分
9、为把一条指令的执行过程分为分析分析和和执行执行两个阶段;两个阶段;q让前一条指令的让前一条指令的执行执行与后一条指令的与后一条指令的分析分析重叠进行。重叠进行。1717/206/2063.1 重叠执行和先行控制如果指令分析和指令执行所需要的时间都是t,则采用这种方式连续执行n条指令所需要的时间为:T=(1+n)t控制方式比较简单,得到了广泛应用。1818/206/2063.1 重叠执行和先行控制当指令分析和指令执行所需要的时间不相等时,其执行过程为:指令分析部件和指令执行部件存在相互等待的时候,会出指令分析部件和指令执行部件存在相互等待的时候,会出现部件空闲的情况。现部件空闲的情况。1919/
10、206/2063.1 重叠执行和先行控制1.先行控制技术:缓冲技术和预处理技术的结合缓冲技术:在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。预处理技术:预取指令、对指令进行加工以及预取操作数等。2.采用先行控制方式的处理机结构 3.1.2 先行控制2020/206/2063.1 重叠执行和先行控制2121/206/2063.1 重叠执行和先行控制设置了4个缓冲站(平滑主存、指令分析部件、运算器三者之间的工作)(平滑主存、指令分析部件、运算器三者之间的工作)q先行指令缓冲站(前面已讲述)先行指令缓冲站(前面已讲述)q先行操作站先行操作站q先行读数站先行读数站q后行写数站后行写
11、数站 共同特点:共同特点:按先进先出的方式工作,而且都是由一组若按先进先出的方式工作,而且都是由一组若 干个能快速访问的存储单元和相关的控制逻干个能快速访问的存储单元和相关的控制逻 辑组成。辑组成。2222/206/2063.1 重叠执行和先行控制先行操作站q在指令分析部件和运算器之间提供缓冲在指令分析部件和运算器之间提供缓冲q 先行:先行:因为其中的指令对于运算器正在执行的因为其中的指令对于运算器正在执行的 指令来说是后续的,但却被指令来说是后续的,但却被先行先行取出并预处理。取出并预处理。指令分析部件 q从先行指令缓冲站取指令,并进行预处理,加工成从先行指令缓冲站取指令,并进行预处理,加工
12、成 统一格式的统一格式的RRRR型操作命令型操作命令,然后送入先行操作站。,然后送入先行操作站。q对于不同指令做不同的处理。对于不同指令做不同的处理。2323/206/2063.1 重叠执行和先行控制q寄存器寄存器-寄存器型(寄存器型(RRRR型)指令:型)指令:可以不作任何处理,直可以不作任何处理,直 接送入。接送入。q操作数来自主存的运算指令:操作数来自主存的运算指令:计算出操作数的有效地计算出操作数的有效地 址,并将该地址送入先行读数站的某个存储单元(设其址,并将该地址送入先行读数站的某个存储单元(设其地址为地址为i i),同时用),同时用i i替换原来指令中的操作数地址码字段。替换原来
13、指令中的操作数地址码字段。q向主存向主存“写数写数”的指令:的指令:把形成的有效地址送入后行写把形成的有效地址送入后行写 数站的某个存储单元(设其地址为数站的某个存储单元(设其地址为j j),同时用),同时用j j替换原替换原来指令中的目标地址码字段。来指令中的目标地址码字段。q立即数型指令:立即数型指令:把指令中的立即数送入读数站(设为第把指令中的立即数送入读数站(设为第l l 个存储单元),同样也用个存储单元),同样也用l l替换原来指令中的立即数字替换原来指令中的立即数字 段。段。2424/206/2063.1 重叠执行和先行控制运算器q从先行操作站取出从先行操作站取出RRRR型型操作命
14、令并执行。操作命令并执行。q每执行完一条,将运算结果写入通用寄存器组或者每执行完一条,将运算结果写入通用寄存器组或者 后行写数站。后行写数站。q继续执行先行操作站中的后续命令。继续执行先行操作站中的后续命令。先行读数站q作用:作用:接收指令分析部件送来的访问主存的有效地接收指令分析部件送来的访问主存的有效地 址,按顺序依次从主存读取操作数,提供给运算器址,按顺序依次从主存读取操作数,提供给运算器 使用。使用。q先行:先行:因为对于正在执行的指令来说,先行读数站因为对于正在执行的指令来说,先行读数站 中的操作数是中的操作数是先行先行取出的。取出的。2525/206/2063.1 重叠执行和先行控
15、制q每个存储单元由每个存储单元由3 3部分部分组成:组成:先行地址字段、先行操作数字段、标志字段先行地址字段、先行操作数字段、标志字段n每当从指令分析部件接收有效地址时,将之放每当从指令分析部件接收有效地址时,将之放入先行地址字段,并将地址有效标志置位。入先行地址字段,并将地址有效标志置位。n等到该单元成为队列的第一项时,先行读数站等到该单元成为队列的第一项时,先行读数站会用该地址向主存发出读请求,把取来的操作数会用该地址向主存发出读请求,把取来的操作数放入该单元的先行操作数字段,同时将数据有效标放入该单元的先行操作数字段,同时将数据有效标志置位。志置位。n当以后运算器需要该操作数时,就可以直
16、接从当以后运算器需要该操作数时,就可以直接从先行读数站取得,而不必去访问主存。先行读数站取得,而不必去访问主存。2626/206/2063.1 重叠执行和先行控制后行写数站q作用:作用:接收从运算器送来的结果数据,并负责将之接收从运算器送来的结果数据,并负责将之 写入主存。写入主存。q后行:后行:因为站在运算器的角度来看,结果数据不是在因为站在运算器的角度来看,结果数据不是在相应的指令运算完后立即写入主存,而是由后行写数相应的指令运算完后立即写入主存,而是由后行写数站站滞后滞后写入的。写入的。q每一个存储单元由每一个存储单元由3 3部分部分组成:组成:后行地址字段、后行数据字段、标志字段后行地址字段、后行数据字段、标志字段 每当从运算器接收数据时,将之放入后行数据字每当从运算器接收数据时,将之放入后行数据字段,并把相应的数据有效标志置位。后行写数站的控段,并把相应的数据有效标志置位。后行写数站的控制逻辑自动向主存发出写数请求。当写数据操作完成制逻辑自动向主存发出写数请求。当写数据操作完成后,也要置位有关标志。后,也要置位有关标志。2727/206/2063.1 重叠执行和先行控制w采用
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1