其他分享
首页 > 其他分享> > 【Computer Organization笔记12】流水线技术概述

【Computer Organization笔记12】流水线技术概述

作者:互联网

本次笔记内容:
P23 计算机组成原理(23)
P24 计算机组成原理(24)

本节课对应幻灯片:

 

文章目录

 

上节课提出疑问:除了多周期CPU,还有什么技术可以提升速度?流水。这是我们计组的最后手段了。剩下的优化技术要交给计算机系统这门课了。

本讲概要

多周期CPU

多周期CPU特点:

各部件利用率依然偏低:

生活中的流水线

顺序洗衣


顺序洗的话,4人洗完(4个任务)需要8小时;如果能流水处理的话,又是什么情况呢?

流水线:尽快启动任务


流水处理,仅需3.5小时完成!

流水线操作的前提

流水线操作的特性

流水线的概念

计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。

提高处理机内部的并行性:

计算机各个部分几乎都可以采用流水线技术:

指令流水阶段

一条指令的执行过程可以分为多个阶段。

指令执行方式

指令多次重叠执行方式实际上就是指令流水线。

指令流水执行性能比较

如果取指令、分析指令、执行指令的时间都相等,每段的时间都为 t t t,则 n n n条指令所用的时间为:

流水线的表示

流水线连接图表示法


但是难以表示并行指令。

流水线时空图表示法


横坐标表示时间,也就是输入到流水线中的各个任务在流水线中所经过的时间。纵坐标表示空间,即流水线的每一个流水段。

流水线的特点

把一个任务(一条指令或一个操作)分解为几个有联系的子任务,每个子任务由一个专门的功能部件来实现。

流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的结果。

流水线中各功能段的时间应尽量相等,否则将引起堵塞、断流。要求流水线的时钟周期不能短于最慢的流水段。

只有连续不断地提供同一种任务时才能发挥流水线的效率,所以在流水线中处理的必须是连续任务。

流水线需要有装入时间和排空时间。装入时间是指第一个任务进入流水线到输出流水线的时间。排空时间是指第n个(最后一个)任务进入流水线到输出流水线的时间。

流水线分类

流水线的性能指标

衡量流水线性能的主要指标:

流水线设计中,流水线的最佳段数选择也是一个重要问题。

流水线的实现原理

每一条指令的实现至多需要5个时钟周期。这5个时钟周期如下:

不同类型的指令在以上5个时钟周期中进行的操作各不相同。

MIPS指令的流水实现

指令执行步骤:

各步骤占用的资源:

数据通路设计


多周期CPU适合指令流水实现吗?

于是查看单周期CPU。

但是没有步骤间的衔接,没有指令寄存器。

于是,我们将上述二者结合。

流水线的实现

在流水线的各个流水段之间加入被称为流水线寄存器(流水线锁存器)的寄存器堆,并在这些寄存器堆上标明所连接的流水段。

PC值多路选择器被放到IF段,这样做的目的是保证对PC值的写操作只出现在一个流水段内,否则当分支转移成功的时候,流水线中两条指令都试图在不同的流水段修改PC值,从而发生写冲突。

每个时刻,每条指令都只在一个流水段上是活动的,因此,任何指令所作的任何动作都发生在一对流水线寄存器之间,具体操作由指令类型决定。


如上,各个阶段见增加一个寄存器堆,保存阶段运算结果。

0具体来讲,就是保存中间结果、中间参数、控制信号。

各阶段寄存器保存的值

指令系统的配合

流水线的控制

控制到每个功能部件,但是,每个部件执行的不是同一条指令。

解决方案:

流水控制的实现


在RF/ID阶段生成控制信号:

支持流水的CPU

单、多、流水的比较

流水线的实现原理


每一个时钟周期启动一条新的指令,就可以使数据通路成功流水,每一个时钟周期就是流水线的一个流水段。每一条指令经过5个时钟周期执行完成,而在每一个时钟周期内,硬件将启动一条新的指令并执行5条不同指令的某个部分。

但真的这么简单吗?

实际的流水线就这么简单吗?——NO!

简化的流水线数据通路:

数据发生冲突


把指令的串行执行原则打破了。

数据发送冲突

转移地址的问题

转移指令的地址:一般在EXE阶段计算

下一条指令:取哪一条?

流水线的冲突(Hazard)

什么是流水线中的“冲突”?

流水线中的冲突

解决流水线中“冲突”问题的重要性

 

标签:12,周期,Computer,寄存器,指令,流水,流水线,Organization,执行
来源: https://blog.51cto.com/u_15279775/2938498