首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >流水线数据通路

流水线数据通路
EN

Stack Overflow用户
提问于 2014-11-15 22:02:21
回答 1查看 385关注 0票数 0

在MIPS体系结构中使用流水线数据路径意味着什么?

我读过的所有例子包括洗衣服和等待某些任务完成,然后再转到其他任务中去,这是相当容易理解的。

我希望对流水线数据路径如何帮助MIPS架构更快地运行和如何停止工作进行更深入的技术解释。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-16 12:26:13

我想最好的解释是在你的教科书里,StackOverflow说得有点狭隘,但是无论如何-

管道只是将任务链分解成顺序步骤的一种方法。流水线CPU在与时钟同步的步骤之间有特殊的锁存,以便在每个时钟周期中,每个步骤都可以执行其任务,并将结果发送到下一个步骤。管道化的最大好处来自于这样一个事实:一旦您将第一个元素输入管道(无论是指令、洗衣袋或诸如此类的东西),那么在下一个循环中,它就可以自由地接受下一个周期,在前面的元素完成完整的数据路径之前很久(就像多周期MIPS所做的那样)。

这允许您在一个稳定的状态下,在没有检测到控制/数据危险的情况下,每个周期向管道中输入一个元素。因此,机器的最高吞吐量仍然是每周期一个元素(IPC=1在CPU命名中),而您实际上没有限制周期的长度!从理论上讲,您可以将工作划分为更简单、更短的阶段,并缩短周期时间(提高工作频率和每次工作的总吞吐量)。

当然也有局限性,就像CPU行业不久前发现的那样--一旦管道变得太大,冲水器的惩罚(我们之前忽略了)就变成了一个巨大的惩罚,所以它不是所有的玫瑰。在管道设计中,寻找深度和复杂性的难点基本上是关键。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26954332

复制
相关文章
『计算机的组成与设计』-处理器
前面几篇我们说过,一台计算机的性能有三个关键因素决定: 指令数目,时钟周期长度和每条指令所需要的时钟周期数 CPI。 编译器和指令集决定了一个程序所需的指令数目,而处理器则决定了时钟周期长度和 CPI。 本篇通过一个基本 MIPS 实现,来了解实现一个处理器所需要的原理和技术。
1ess
2021/10/29
4820
『计算机的组成与设计』-处理器
CPU流水线详解_多周期流水线cpu
为什么Intel处理器主频这么高,而AMD处理器主频都很低?是不是AMD处理器性能不如Intel?我们一般的回答都是,因为Intel处理器与AMD处理器内部构架不同,所以导致了这种情况,还有一种具体一点的回答就是因为Intel处理器流水线长,那到底流水线与CPU主频具体有什么关系呢?今天给大家带来一篇我以前刊登在《电脑报》硬件板块技术大讲堂版面的一篇原创文章。
全栈程序员站长
2022/09/24
1.5K0
流水线设计的概念_流水线原理
所谓流水线设计实际上是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器并暂存中间数据。
全栈程序员站长
2022/09/21
3740
流水线设计的概念_流水线原理
流水线设计思想_全自动流水线
在硬件电路设计中,流水线设计思想是一种很重要的设计思想,这种思想是一种用面积换速度的思想,用更多的资源来实现高速。(面积就是需要的硬件数量,如触发器的数量)
全栈程序员站长
2022/09/21
2520
MIPS指令集与简要分析R格式指令I格式指令J格式指令指令分析
R格式指令 基本格式 标记 op rs rt rd shamt funct 位数 31-26 25-21 20-16 15-11 10-6 5-0 功能 操作符 源操作数寄存器1 源操作数寄存器2 目的操作数寄存器 位移量 操作符附加段 指令 算数类指令 指令 op rs rt rd shamt funct 功能 add 000000 rs rt rd 00000 100000 rd=rs+rt addu 000000 rs rt rd 00000 100001 r
月见樽
2018/04/27
8.8K0
MIPS指令集与简要分析R格式指令I格式指令J格式指令指令分析
计算机组成原理期末救急--下
将记录下一条地址的职责交给程序计数器后,那么指令就变成三地址了,随之而来的就是A1,A2能表示的地址范围变大了
大忽悠爱学习
2022/06/01
7780
计算机组成原理期末救急--下
java 流水线模式_流水线设计模式实现
public Integer execute(Integer input) {
全栈程序员站长
2022/09/21
6100
流水线、超流水线、超标量(superscalar)技术对比
本文转载自:https://blog.csdn.net/qq_32092885/article/details/83349275
zy010101
2020/08/17
5.9K0
pipeline流水线框架_流水线主动轮设计
流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。
全栈程序员站长
2022/09/21
3540
pipeline流水线框架_流水线主动轮设计
Jenkins流水线
之前采用Jenkins的自由风格构建的项目,每个步骤流程都要通过不同的方式设置,并且构建过程中整体流程是不可见的,无法确认每个流程花费的时间,并且问题不方便定位问题。
程序猿川子
2022/08/24
6890
创建 Tekton 流水线
前面我们创建的两个任务 test 和 build-and-push 都已经完成了,我们还可以创建一个流水线来将这两个任务组织起来,形成一个流水线,这里就是我们要使用的 Pipeline 这个 CRD 对象。
我是阳明
2021/06/25
6840
创建 Tekton 流水线
verilog流水线设计代码_流水线cpu设计verilog
定义:流水线设计就是将组合逻辑分割,并在各级之间插入寄存器,暂存中间数据的方法。以面积换速度。
全栈程序员站长
2022/09/21
6330
verilog流水线设计代码_流水线cpu设计verilog
CPU流水线详解
为什么Intel处理器主频这么高,而AMD处理器主频都很低?是不是AMD处理器性能不如Intel?我们一般的回答都是,因为Intel处理器与AMD处理器内部构架不同,所以导致了这种情况,还有一种具体一点的回答就是因为Intel处理器流水线长,那到底流水线与CPU主频具体有什么关系呢?今天给大家带来一篇我以前刊登在《电脑报》硬件板块技术大讲堂版面的一篇原创文章。 关于CPU流水线的知识,很多报纸杂志都介绍过了,但以往的很多文章对某些问题的解释不够清楚,比如报纸杂志上曾多次提及增加流水线级数有利于提高CPU主频,但对其原因的解释却少有触及,又比如对于流水线的级数与其周期的关系是什么?CPU流水线与工厂流水线的区别和联系等问题的解释也不够清楚,本文将带领您找到以上问题的答案。关于流水线的基本原理本文就不再说明了,对于增加流水线级数有利于提升CPU主频这一观点笔者将通过理论论证和事实举例两方面对其进行解释说明。 我们先对流水线的级数与其周期的关系给出一个公式,一个k级流水线,处理n个任务总共需要花费“k+(n-1)”个周期,这是因为先是处理第一个任务就需要k个时钟周期,k个周期后流水线被装满,剩余n-1个任务只需n-1个周期就能完成。如果同样数量的n个任务不采用流水线处理,那么就需要n*k个周期,我们把两者做比,得到另一个概念,叫做流水线加速比C,所以C=n*k / [k+(n-1)],当n远远大于k时,C的值趋进于k,也就是说,理论上k级流水线几乎可以提高k倍速度,但这仅限于理论。看到这也许有的读者可能会感到一头雾水,不用急,下面就将举例对其进一步说明。 举例前先对流水线周期选取的问题进行一下解析,我们假设一辆成品车的生产过程分为车轮生产,车门生产,最后组装三个步骤,每辆车的车轮生产需要8s,车门需要12s,而最后的组装需要10s,在本例中生产厂商针对此情况设计了1条3级流水线,分别是车轮生产流水线,车门生产流水线以及组装流水线,整条流水线的周期选取为12s,注意,在此为什么设置整条流水线的周期为三个步骤中最长的12s呢?其实在现实生产中由于工艺水平,原料特性以及制造难度的不同,每级流水线完成任务的时间都可能是不同的,这里如果选择8s或10s为整条流水线的周期将会导致车门生产线的任务不能在单位周期内完成,也就无法及时向下一级提交任务,所以在k级流水线中只能选择完成任务所需时间最常的那级流水线的时间作为整条流水线的周期。此例虽然选取12s为整条流水线的周期,但这样又带来了另一个问题,在每个周期内车轮流水线与组装流水线为了等待车门流水线而造成了一定时间上的闲置,具体到CPU内部的流水线也同样存在这个问题,当然我们可以通过合理分配流水线和增加缓存来缓解此问题,但缓存的增加必然导致信号的延迟和高功耗高发热量! 好,我们回到上例,厂商打算在此3级流水线上生产6辆汽车,流水线周期为12s(流水线的周期选取可参看上文),模拟流程如图1,从图上可以看到,6辆汽车一共花费了9-1=8个周期,此结果也印证了上文n个任务总共需花费“k+(n-1)”个周期的公式,此3级流水线生产6辆汽车一共花费的时间是12*8=96s。 一段时间后,厂商决定进行技术改革,又把车轮生产线车门生产线以及组装生产线进一步细分,把流水线的级数由3条增至6条,改革后的6级流水线周期也从12s缩短至6s,(由于细分了各级流水线,所以在此假设每级流水线周期也由原来的8s,12s,10s减半,所以新流水线的周期选取为12s/2s=6s),新流水线生产6辆汽车所花费的周期为12-1=11,所花费的整体时间为11*6=66s,相对于上例的96s提升了30s,至此,我们已从理论上和实际上找到了增加流水线级数确实可以提高工作效率的依据,相信大家已经对流水线的知识有了更进一步的了解,这里还要对一些问题进一步说明。 1流水线级数与频率的关系 结合上文对周期设置的解释和两个例子的对比大家可以发现,只要进一步细分流水线增加其级数,就可以使整条流水线采用更短的周期工作,我们又知道频率等于周期的倒数,由此我们得出结论,增加流水线级数有利于提高各级流水线之间交换任务的频率,也就是有利于提高CPU的主频。 2增加流水线级数为什么能提升工作效率 我们对车辆1进行跟踪测试,其在3级流水线上的生产时间为8s+12s+10s=30s,同样是车辆1在6级流水线上的生产时间为4s+4s+6s+6s+5s+5s=30s,由此我们发现无论对于几级流水线,单个产品的生产时间并没有因流水线级数而改变,既然这样那流水线是通过什么方式提升工作效率的?右图模拟的是不采用流水线时一辆汽车的生产流程,由3个工人分别负责完成3个任务,从图上可以明确看到在每段时间内只有一个工人在工作,其余两个处于闲置状态,对比上例的两个图示我们发现流水线正是充分利用了这段闲置的时间,所以才在单位时
用户4766018
2022/08/19
5000
jenkins流水线搭建
我这里采用的是 all-in-one 的配置,即所有操作都在一台主机上,如资源充足可以将 jenkins和gitlab 与后续项目容器分开部署
Amadeus
2023/03/17
1.2K0
jenkins流水线搭建
五段式流水线_cpu流水线工作原理
现在再看这个代码,我觉得写得太恶心了,没有注释,没有说清楚关键的地方。我自己都忘了为什么这么写~~
全栈程序员站长
2022/09/21
4560
五段式流水线_cpu流水线工作原理
[源码解析] 深度学习流水线并行Gpipe(1)---流水线基本实现
GPipe是一个基于 Lingvo (Lingvo 是 Google 基于 TensorFlow 二次开发的重点针对序列模型的框架)开发的,支持超大规模模型的神经网络训练并行库,本文介绍其基本功能和流水线机制。
罗西的思考
2021/08/24
1.5K0
流水线、超流水线、超标量(superscalar)技术对比(转)
流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。 市场上推出的各种不同的1 6位/ 3 2位微处理器基本上都采用了流水线技术。如8 0 4 8 6和P e n t i u m均使用了6步流水线结构,流水线的6步为: ( 1 ) 取指令。C P U从高速缓存或内存中取一条指令。 ( 2 ) 指令译码。分析指令性质。 ( 3 ) 地址生成。很多指令要访问存储器中的操作数,操作数的地址也许在指令字中,也许要经过某些运算得到。 ( 4 ) 取操作数。当指令需要操作数时,就需再访问存储器,对操作数寻址并读出。 ( 5 ) 执行指令。由A L U执行指令规定的操作。 ( 6 ) 存储或"写回"结果。最后运算结果存放至某一内存单元或写回累加器A。 在理想情况下,每步需要一个时钟周期。当流水线完全装满时,每个时钟周期平均有一条指令从流水线上执行完毕,输出结果,就像轿车从组装线上开出来一样。P e n t i u m、Pentium Pro和Pentium II处理器的超标量设计更是分别结合了两条和三条独立的指令流水线,每条流水线平均在一个时钟周期内执行一条指令,所以它们平均一个时钟周期分别可执行2条和3条指令。 流水线技术是通过增加计算机硬件来实现的。例如要能预取指令,就需要增加取指令的硬件电路,并把取来的指令存放到指令队列缓存器中,使M P U能同时进行取指令和分析、执行指令的操作。因此,在1 6位/3 2位微处理器中一般含有两个算术逻辑单元A L U,一个主A L U用于执行指令,另一个A L U专用于地址生成,这样才可使地址计算与其它操作重叠进行。
zy010101
2020/08/17
2.2K0
CPU五级流水线_五级流水线是什么
指令取指(InstrucTIon Fetch)是指将指令从存储器中读取出来的过程。
全栈程序员站长
2022/09/24
7710
HLS应用流水线
主要对于FOR循环进行优化
瓜大三哥
2018/02/26
6430
HLS应用流水线
Verilog 流水线设计[通俗易懂]
流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。 目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。
全栈程序员站长
2022/09/21
6500

相似问题

Verilog FSM控制器与数据通路

12

HTTP流水线与非流水线的示例

17

IEnumerable流水线

11

流水线和GridSearch -流水线完全重新计算?

111

流水线架构

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文