不能理解流水线的方式如何能提高指令执行效率?

[复制链接]
1968|15
 楼主| pengf 发表于 2018-11-8 20:11 | 显示全部楼层 |阅读模式
不能理解流水线的方式如何能提高指令执行效率?
llljh 发表于 2018-11-8 20:14 | 显示全部楼层
对指令进行了流水线的操作啊
 楼主| pengf 发表于 2018-11-9 09:15 | 显示全部楼层
但CPU在微观的一个时间只能处理一跳指令或者一个任务,感觉它在流水线操作时还是需要那么多个时间点来完成。
dingy 发表于 2018-11-9 09:19 | 显示全部楼层
你看些关于空区和分支的描述
dingy 发表于 2018-11-9 09:24 | 显示全部楼层
你看些关于空区和分支的描述
 楼主| pengf 发表于 2018-11-9 09:28 | 显示全部楼层
不能理解,希望哪位懂行的用通俗点的方式解释下这个原理!
xxrs 发表于 2018-11-9 09:32 | 显示全部楼层
RISC是什么
liuzaiy 发表于 2018-11-9 09:35 | 显示全部楼层
reduced instruction set computer,精简指令集计算机
yinxiangh 发表于 2018-11-9 09:50 | 显示全部楼层
“CPU在微观的一个时间只能处理一跳指令”,这个说法并不严密。
 楼主| pengf 发表于 2018-11-9 09:52 | 显示全部楼层
怎么讲
chenjunt 发表于 2018-11-9 09:56 | 显示全部楼层

一条指令执行占用的时间可以再往下分解为“微微观”,
例如fetch、decode、mem/reg access、exec、write back
这几个“微微观”操作是并行的,或者说从“微微观”角度来看,CPU在一个时间点上是在并行执行多条指令。

Time   +-----------+-----------+-----------+----------+
INS1   fetch           decode       mem            exec        wb
INS2                     fetch          decode         mem        exec
morrisk 发表于 2018-11-9 10:01 | 显示全部楼层

通俗点讲,把CPU执行1条指令的过程,比作饭店做一道菜,过程包括点菜,下单,洗菜,切菜,备调料,备汤底,炒菜,上菜总共8个步骤,假设每个步骤需要5分钟,如果只有1个人做,这个人在任何时间就只能做其中1个步骤,完成这些步骤要40分钟,这个饭店要40分钟才能上一道菜,然后才能点下一道菜。如果把这些步骤安排好先后顺序,8个人一起做8个菜,虽然每道菜从开始点到最后上还是要40分钟,但是从总体上看,这个饭店可以5分钟就出一道菜,这个5分钟就是流水线的一个节拍周期
xxmmi 发表于 2018-11-9 10:04 | 显示全部楼层
比如分两个菜。切菜,烧菜。第一个菜就切好了拿去做,第二菜不是等到第一才完成了再切菜,而是第一个菜在烧的时候就可以切了。
 楼主| pengf 发表于 2018-11-9 10:09 | 显示全部楼层
搞定了,呵呵,犯了低级错误……结贴啦,多谢各位
Praying丶落幕 发表于 2020-3-3 15:51 | 显示全部楼层
morrisk 发表于 2018-11-9 10:01
通俗点讲,把CPU执行1条指令的过程,比作饭店做一道菜,过程包括点菜,下单,洗菜,切菜,备调料,备汤底 ...

但问题是,每5分钟做一道菜是建立在第一道菜完成后的效率。从整体过程来看,第一道菜做好的时间是第40分钟,之后每5分钟多出一道菜,完成8道菜的总时间应该是40+7*5=75分钟。同样是8个人,各自做各自的菜,第40分钟的时候8道菜同时完成。假设做16道菜,流水线的方式完成需要40+15*5=115分钟,而独立做需要的时间为80分钟。当数量越多,流水线的时间消耗越大。
麻花油条 发表于 2024-1-12 10:21 | 显示全部楼层
流水线技术通过并行处理、简化硬件设计、优化资源利用、隐藏内存延迟和易于扩展和优化等手段,显著提高了指令的执行效率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

718

主题

10129

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部