社区
汇编语言
帖子详情
cpu执行指令是不是一条一条执行??
asdasfww
2011-08-04 02:07:23
看书上写的超标量流水线说每个时钟周期(每个机器周期)最多可以执行3条指令,看到这我晕了。如果真的是这样那
nop
mov al,1
mov bh,al
这3条指令可不是乱了(都还执行把1送到al就把al的值送给bh了),到底cpu是不是在同一时刻只能执行1条指令
还有多分支预判断是什么意思?
...全文
713
13
打赏
收藏
cpu执行指令是不是一条一条执行??
看书上写的超标量流水线说每个时钟周期(每个机器周期)最多可以执行3条指令,看到这我晕了。如果真的是这样那 nop mov al,1 mov bh,al 这3条指令可不是乱了(都还执行把1送到al就把al的值送给bh了),到底cpu是不是在同一时刻只能执行1条指令 还有多分支预判断是什么意思?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
亮______亮
2011-08-26
打赏
举报
回复
支持
...
用户 昵称
2011-08-07
打赏
举报
回复
是一条一条的,无相关性的多条指令,从意义上就不是顺序的,所以无论先执行哪一条,都可以说成 没有乱序,有相关性的指令,肯定要顺序执行。
所以是一条一条执行的。
guangmingdeshenju
2011-08-07
打赏
举报
回复
不会乱,并行处理都有流水线结构,取址,访存,执行,写回,
每一条指令在同一个时间处在这个流水线得不同阶段
如果前后两条指令有相关性,则不会并行执行
aeolianliu
2011-08-06
打赏
举报
回复
..........1.......2......3......4.....5......6......7......8......9
指令5 ..............................取指令-读内存-读端口-写内存-退出
指令4 .......................取指令-读内存-读端口-写内存-退出
指令3 ................取指令-读内存-读端口-写内存-退出
指令2 .........取指令-读内存-读端口-写内存-退出
指令1 ..取指令-读内存-读端口-写内存-退出
这样总行了把
aeolianliu
2011-08-06
打赏
举报
回复
我晕,帖子里的空格怎么给删了?!
lz参考这个图片。
http://211.69.144.40:8080/include/htmleditor/uploadfile/20091214001326114.jpg
aeolianliu
2011-08-06
打赏
举报
回复
每个机器指令都含有多个
微指令
,每个微指令占用一个机器周期(一个cpu滴答)。
假设
每个指令都有如下微指令构成:取指令-读内存-读端口-写内存-退出,共需5个机器周期。
那么流水线就像以下结构
1 2 3 4 5 6 7 8 9
指令5 取指令-读内存-读端口-写内存-退出
指令4 取指令-读内存-读端口-写内存-退出
指令3 取指令-读内存-读端口-写内存-退出
指令2 取指令-读内存-读端口-写内存-退出
指令1 取指令-读内存-读端口-写内存-退出
假设上面表中垂直方向的不同指令的微指令不冲突,那么这些垂直方向微指令可以在一个机器周期中完成。
如果cpu没有超标量流水线,那么执行5个指令需要耗费5x5=25个机器周期。
如果cpu有超标量流水线,那么执行5个指令需要9个机器周期。
以上只是理论上的效率提升,实际情况下,有些微指令不能再一个机器周期中完成,因为有可能有冲突。
比如读端口,如果两个微指令同时读一个端口,那么cpu只能顺序执行,不能并发执行。
skyworth98
2011-08-06
打赏
举报
回复
[Quote=引用 6 楼 haojiahuo50401 的回复:]
怎么要考虑那么多东西啊?什么指令分支预测,什么多核的,什么流水线,对这些我都听说过一点点,不太明白。我就当作CPU是一条条顺利执行指令了,这样理解多简单。
[/Quote]
可以去研究一下计算机系统结构。
canmeng
2011-08-04
打赏
举报
回复
怎么要考虑那么多东西啊?什么指令分支预测,什么多核的,什么流水线,对这些我都听说过一点点,不太明白。我就当作CPU是一条条顺利执行指令了,这样理解多简单。
pro_or_gram
2011-08-04
打赏
举报
回复
每个周期执行几条指令,个人理解是一个平均的说法,
每一个指令都细化为 取指,解码,执行,保存等阶段
当流水线建立起来之后,每一个指令都会处于不同的阶段,占据流水线中不同的位置,
所以,看起来有几条指令都在执行,只是处于不同阶段而已
流水线 正常运行的时候,会被认为是很爽的事情。
core内部的 指令预取队列,instructioin cache,都是基于时间性和空间性的概念来使用的。
以下是引用:
"引 入Cache 的理论基础是程序局部性原理,包括时间局部性和空间局部性。即最近被CPU 访问的数据,短期 内CPU 还要访问(时间 );被CPU 访问的数据附近的数据,CPU也会访问"
在指令中出现跳转指令之前,流水线也一直在跑,假设碰到了跳转指令,对其解码之后,CPU才能决定要不要进行跳转,万一要跳转的话,流水线中后边的数据就没用了,会被flush掉,在进行中的指令经过的那些stage白费了,指令预取单元,instruction cache中的指令可能也就白白缓存了,如果这样的话,就会出现 instruction cache的填充,替换,虽然这个过程可能使用sdram的 burst mode,但是也是要花时间的。
跳转,也就是碰见了分支。
一个T字路口,路口边有一个指示牌,天堂向左,地狱向右。
一个人想去天堂,直到走到十字路口之前,这个人都是很爽的,路上不塞车,一路狂飙,
车到了这个T字路口,虽然没有红灯,但是他不知道该往哪个方向走,他就看指示牌,看了指示牌之后,他就采了油门向左边的方向冲了下去,接下来又是一路狂飙。
有另外一个人,想去地狱。 在到达这个T字路口之前,他也很爽,一路狂飙,他的车上有一个GPS,虽然他没法在GPS上顶一个目的地址,但是他可以看到前面的路况,那么他就发现,前面有一个T字路口,往左是天堂,往右是地狱,他知道,他该从右边走,那么,他就没有像之前那个人那样停下来,他直接一个漂移,向着右边的方向就冲了下去。
所以为了尽量减少跳转指令导致的一些开销,就有了一个指令预测这么个东西,处理器架构师们希望能尽早的发现有没有跳转指令,要不要跳转,而不是像上面那样,指令都在流水线里边了,才去决定。
所以,在最初的时候出现的是个流水线使用的最差的情况,有了指令的分支预测,可能就爽了很多了
mooxin
2011-08-04
打赏
举报
回复
[Quote=引用 2 楼 zara 的回复:]
下载的 cpu,预测、分析和执行能力都比较强的,如果后一指令不依赖于前一指令的执行结果的话,就会并发执行的,比如楼主的第二条和第一条指令;但第三和第二条指令就不是了,它们具有相干性,后面的指令就必须等前面的指令执行完了才能继续。
再一个比较意外的例子吧,看个优化的书上说,对 sum = i1 + i2 +i3 + 4; 这样的语句,这样写法的执行效果就不如 sum = (i1 + i2) + ……
[/Quote]
对的
大熊猫侯佩
2011-08-04
打赏
举报
回复
双核的机子,除去竞争条件,你说是不是一条条执行。
zara
2011-08-04
打赏
举报
回复
下载的 cpu,预测、分析和执行能力都比较强的,如果后一指令不依赖于前一指令的执行结果的话,就会并发执行的,比如楼主的第二条和第一条指令;但第三和第二条指令就不是了,它们具有相干性,后面的指令就必须等前面的指令执行完了才能继续。
再一个比较意外的例子吧,看个优化的书上说,对
sum = i1 + i2 +i3 + 4;
这样的语句,这样写法的执行效果就不如
sum = (i1 + i2) + (i3 + i4);
!这个就是基于指令相干性对并发执行的影响。
竞择
2011-08-04
打赏
举报
回复
这三个指令会顺序执行,所谓的并行处理,是不同程序的指令可以同时执行,没个程序占一条流水线,所以不会混乱。而CPU需要把不同程序指令加以标记,使得同一程序得以顺序执行。
个人理解.
cpu
执行
指令
是不是
一条
一条
执行
?
这3条
指令
可不是乱了(都还
执行
把1送到al就把al的值送给bh了),到底
cpu
是不是
在同一时刻只能
执行
1条
指令
还有多分支预判断是什么意思? 解答: 这三个
指令
会顺序
执行
,所谓的并行处理,是不同程序的
指令
可以...
简述
CPU
执行
一条
指令
的过程
CPU
执行
一条
指令
的过程大致如下: 获取
指令
:
CPU
从内存中取出...跳转到下
一条
指令
:根据
指令
的类型,
CPU
决定是否跳转到下
一条
指令
或者
执行
其他操作。 这是一个大致的过程,实际上
CPU
执行
指令
的过程更为复杂...
理解
CPU
怎么
执行
一条
指令
取
指令
(Fetch)解码(Decode)
执行
(Execute)写回(Write Back)(如果适用)这一整个
指令
周期通常是以时钟周期为单位进行的,
CPU
每个...[
CPU
]爆肝一天,用动画带你理解
CPU
怎么
执行
一条
指令
呢?_哔哩哔哩_bilibili。
一条
指令
在
CPU
里如何
执行
?
一条
指令
在
CPU
里如何
执行
?我来给出回答!
计算机硬件
cpu
指令
执行
过程,
cpu
执行
指令
的过程详解
cpu
执行
指令
的过程详解计算机每
执行
一条
指令
都可分为三个阶段进行。即取
指令
-----分析
指令
-----
执行
指令
。取
指令
的任务是:根据程序计数器PC中的值从程序存储器读出现行
指令
,送到
指令
寄存器。分析
指令
阶段的任务是...
汇编语言
21,497
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章