做网站的市场,wordpress内容里的图片大小,北京企业网站设计制作,企业网络营销策划方案设计文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-vSsJnNqZf24LgjVK {font-family:trebuchet m… 文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-vSsJnNqZf24LgjVK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-vSsJnNqZf24LgjVK .error-icon{fill:#552222;}#mermaid-svg-vSsJnNqZf24LgjVK .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-vSsJnNqZf24LgjVK .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-vSsJnNqZf24LgjVK .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-vSsJnNqZf24LgjVK .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-vSsJnNqZf24LgjVK .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-vSsJnNqZf24LgjVK .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-vSsJnNqZf24LgjVK .marker{fill:#333333;stroke:#333333;}#mermaid-svg-vSsJnNqZf24LgjVK .marker.cross{stroke:#333333;}#mermaid-svg-vSsJnNqZf24LgjVK svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-vSsJnNqZf24LgjVK .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-vSsJnNqZf24LgjVK .cluster-label text{fill:#333;}#mermaid-svg-vSsJnNqZf24LgjVK .cluster-label span{color:#333;}#mermaid-svg-vSsJnNqZf24LgjVK .label text,#mermaid-svg-vSsJnNqZf24LgjVK span{fill:#333;color:#333;}#mermaid-svg-vSsJnNqZf24LgjVK .node rect,#mermaid-svg-vSsJnNqZf24LgjVK .node circle,#mermaid-svg-vSsJnNqZf24LgjVK .node ellipse,#mermaid-svg-vSsJnNqZf24LgjVK .node polygon,#mermaid-svg-vSsJnNqZf24LgjVK .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-vSsJnNqZf24LgjVK .node .label{text-align:center;}#mermaid-svg-vSsJnNqZf24LgjVK .node.clickable{cursor:pointer;}#mermaid-svg-vSsJnNqZf24LgjVK .arrowheadPath{fill:#333333;}#mermaid-svg-vSsJnNqZf24LgjVK .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-vSsJnNqZf24LgjVK .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-vSsJnNqZf24LgjVK .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-vSsJnNqZf24LgjVK .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-vSsJnNqZf24LgjVK .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-vSsJnNqZf24LgjVK .cluster text{fill:#333;}#mermaid-svg-vSsJnNqZf24LgjVK .cluster span{color:#333;}#mermaid-svg-vSsJnNqZf24LgjVK div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-vSsJnNqZf24LgjVK :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 指令流水线 指令流水线的基本概念 流水线的性能指标 流水线分类 影响流水线的因素 超级流水线 吞吐率 加速比 流水线效率 结构冲突 数据冲突 控制冲突 超标量技术 朝流水技术 超长指令字 指令流水线的概念
指令流水线执行方式 计算机的流水线把一个重复的过程分解为若干子过程每个子过程与其他子过程并行执行。由于采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍因此成为计算机中普遍使用的一种并行处理技术。 顺序执行方式
取指1析指1执行1中断1取指2析指2执行2中断2............
假设机器周期为 △ t \triangle t △t,那么顺序执行n条指令的执行时间为 4 n △ t 4n \triangle t 4n△t 流水线执行方案
执行5条指令的时间为: 5 △ t 4 △ t 5\triangle t4\triangle t 5△t4△t 执行n条指令的时间为: T ( n − 1 ) △ t T(n-1)\triangle t T(n−1)△t
流水线性能分析
流水线的吞吐率
在指令级流水线中吞吐率是指在单位时间内流水线所完成的任务数量或输出结果的数量。计算流水线吞吐率(TP) 的最基本的公式如下: n是任务数Tk是处理完n个任务所用的时间。 T P n T k TP\frac{n}{T_k} TPTkn T P n ( k n − 1 ) △ t TP\frac{n}{(kn-1)\triangle t} TP(kn−1)△tn 流水线的加速比
完成同样一批任务不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。设T,表示不使用流水线时的执行时间即顺序执行所用的时间:K表示使用流水线时的执行时间则计算流水线加速比(S)的基本公式为 T P T 0 T k TP\frac{T_0}{T_k} TPTkT0 $TP\frac{kn\triangle t}{(kn-1)\triangle t} \frac{kn}{kn-1} $ 流水线的效率
流水线的设备利用率称为流水线的效率。在时空图上流水线的效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间及k个流水段所围成的时空区总面积之比。因此流水线的效率包含了时间和空间两个因素: n个任务占用的时空区有效面积T。 n个任务所用的时间与k个流水段所围成的时空区总面积 T P T 0 k T k TP\frac{T_0}{kT_k} TPkTkT0 影响流水线的因素
流水线的问题 每个阶段的时间不一样所以我们取得阶段周期都是最大的那个! 每个阶段都有缓冲区这种缓冲区用于保存本阶段的结果用于下一阶段使用
结构相关 (资源冲突)
由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。
解决办法
后一相关指令暂停若干周期资源重复配置: 数据存储器指令存储器
数据相关 (数据冲突)
数据相关指在一个程序中存在必须等前一条指令执行完才能执行后一条指令的情况则这两条指令即为数据相关
解决办法:
把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期直到数据相关问题消失后再继续执行可分为硬件阻塞 (stall) 和软件插入NOP指令两种方法。设置相关专用通路即不等前一条指令把计算结果写回寄存器组下一条指令也不再读寄存器组而直接把前一条指令的 ALU的计算结果作为自己的输入数据开始计算过程使本来需要暂停的操作变得可以继续执行这称为数据旁路技术。通过编译器对数据相关的指令编译优化的方法调整指令顺序来解决数据相关。
数据的基本操作: 读 ® 、写(W) 冲突的基本类型 : RAW、WAR、WAW、 RAW按序发射按序完成”时只可能出现RAW相关) I1: ADD R3R2.R1: (R1)(R1)-R3 I2: ADD R5R3.R4: (R3)(R4)-R5 WAR: I1:STA MR1: (R1)-MM为主存单元 乱序发射编写程序的时候希望1在2前完成但优化手段导致I2在I1前发射 I2:ADD R1,R2,R3; (R3)(R2)-R1
WAW:(存在多个功能部件时后一条指令可能比前一条指令先完成) I1:ADD R3,R2, R1: (R1)(R2)-R3 I2:SUB R3,R4, R5: (R4)-(R5)-R3
控制相关 (控制冲突)
当流水线遇到转移指令和其他改变PC值的指令而造成断流时会引起控制相关
解决办法
尽早判别转移是否发生尽早生成转移目标地址预取转移成功和不成功两个控制流方向上的目标指令加快和提前形成条件码提高转移方向的猜准率
流水线分类
部件功能级、处理机级和处理机间级流水线 根据流水线使用的级别的不同流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。 部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如可将浮点加法操作分成求阶差、对阶尾数相加以及结果规格化等4个子过程。 处理机级流水是把一条指令解释过程分成多个子过程如前面提到的取指、译码、执行、访存及写回5个子过程 处理机间流水是一种宏流水其中每一个处理机完成某一专门任务各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。单功能流水线和多功能流水线 按流水线可以完成的功能流水线可分为单功能流水线和多功能流水线 单功能流水线指只能实现一种固定的专门功能的流水线: 多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线动态流水线和静态流水线 按同一时间内各段之间的连接方式流水线可分为静态流水线和动态流水线。 静态流水线指在同一时间内流水线的各段只能按同一种功能的连接方式工作。 动态流水线指在同一时间内当某些段正在实现某种运算时另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处但会使流水线控制变得很复杂。线性流水线和非线性流水线 按流水线的各个功能段之间是否有反馈信号流水线可分为线性流水线与非线性流水线。 线性流水线中从输入到输出每个功能段只允许经过一次不存在反馈回路。 非线性流水线存在反馈回路从输入到输出过程中某些功能段将数次通过流水线这种流水线适合进行线性递归的运算。
超量流水线
超标量技术 每个时钟周期内可 并发多条独立指令要配置多个功能部件不能调整 指令的执行顺序通过编译优化技术把可并行执行的指令搭配起来
超流水线技术 在一个时钟周期内再分段 (4段) 在一个时钟周期内一个功能部件使用多次 (4次) 但是不能调整指令的执行顺序靠编译程序解决优化问题
超长指令字 由编译程序挖掘出指令间潜在的并行性将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字(可达几百位)