找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 1886|回复: 13

指令的执行和引退章节

[复制链接]

7

主题

17

回帖

253

积分

至尊会员

积分
253

至尊会员

发表于 2024-5-4 09:57:15 | 显示全部楼层 |阅读模式
引退(retirement)和 提交(commit)如何理解,特别是这个引退


流水线的分发阶段,这个分发阶段指什么


416

主题

315

回帖

3288

积分

管理员

积分
3288
发表于 2024-5-4 11:47:39 | 显示全部楼层
引退和提交如课程中所说,本是容易理解的。

分发即是将微操作送入流水线。

如果对这些主题感兴趣,可看一下《超标量处理器设计》一书。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

1

主题

2

回帖

555

积分

至尊会员

积分
555

至尊会员

发表于 2024-5-4 12:25:44 | 显示全部楼层
老師請問一下,《硬件内存模型和C/C++内存模型》這門課有其他參考書籍嗎?有些基礎概念不是很清楚。

416

主题

315

回帖

3288

积分

管理员

积分
3288
发表于 2024-5-4 14:16:20 | 显示全部楼层
waltz169874 发表于 2024-5-4 12:25
老師請問一下,《硬件内存模型和C/C++内存模型》這門課有其他參考書籍嗎?有些基礎概念不是很清楚。 ...

我觉得《C-- Concurrency in Action, 2nd Edition》不错,虽然我只粗略研究一下其中的几节。
其它的基本上没啥了。
不过有很多论文比较有价值,到时候我上传一下。

7

主题

17

回帖

253

积分

至尊会员

积分
253

至尊会员

 楼主| 发表于 2024-5-4 16:56:59 | 显示全部楼层
站长 发表于 2024-5-4 11:47
引退和提交如课程中所说,本是容易理解的。

分发即是将微操作送入流水线。

对,我也是看后面两节课之后理解了。也感谢老师的书籍推荐

7

主题

17

回帖

253

积分

至尊会员

积分
253

至尊会员

 楼主| 发表于 2024-5-4 17:06:05 | 显示全部楼层
站长 发表于 2024-5-4 14:16
我觉得《C-- Concurrency in Action, 2nd Edition》不错,虽然我只粗略研究一下其中的几节。
其它的基本 ...

这个目前就有中文版,手里就有一份实体书,就是通过这本书找到老师课程的,太巧了。大概有一半的内容和本课程有关

416

主题

315

回帖

3288

积分

管理员

积分
3288
发表于 2024-5-5 09:06:36 | 显示全部楼层
xiaoyangst 发表于 2024-5-4 17:06
这个目前就有中文版,手里就有一份实体书,就是通过这本书找到老师课程的,太巧了。大概有一半的内容和本 ...

怎么通过这本书就找到我这个课程的?

7

主题

17

回帖

253

积分

至尊会员

积分
253

至尊会员

 楼主| 发表于 2024-5-5 10:05:03 | 显示全部楼层
站长 发表于 2024-5-5 09:06
怎么通过这本书就找到我这个课程的?

因为这块内容不好理解(书里的),就查这块的资料,看到网易有对应的课程,就找到这里了。然后大一买过一本《穿越计算机的迷雾》,现在才知道原来是老师写的,有意思

40

主题

39

回帖

338

积分

至尊会员

积分
338

至尊会员

发表于 2024-5-8 22:00:31 | 显示全部楼层
关于引退,我的理解是这样的,如果不正确请题主海涵....
比如如下4条指令
1、mov eax,[mem1]   ;从mem1内存物理地址取出值放入到寄存器eax
2、mov ebx,[mem2]  ;从mem2内存物理地址取出值放入到寄存器ebx
3、add ebx,eax         ;将ebx+eax并将结果存入到ebx中
4、shl eax,3             ;将eax左移3位

传统上这4条指令是《串行》执行的即第一条执行完做第二条然后第三条第四条。

但是CPU引入了《流水线、乱序执行以及寄存器重命名》技术后,
在执行完第一条指令后,其实eax已经有值了,这个时候程序在执行第二条的同时,其它独立机构也能并行的执行第4条,你肯定会很好奇如果执行第四条后eax的值被左移了三位,那么第三条执行的时候eax的值就不是mem1内存中的值了啊,其实确实是这样的,但实际情况是CPU在运行完第一条指令的时候,找一个临时寄存器假如叫T_eax,让这个T_eax的值等于eax,然后第四条指令先让T_eax左移3位,把值放入T_eax先运行好放这放着,等前面的第二条第三条全部执行完毕之后,再把T_eax的值赋值给eax,这就叫引退技术。

7

主题

17

回帖

253

积分

至尊会员

积分
253

至尊会员

 楼主| 发表于 2024-5-9 09:15:36 | 显示全部楼层
linuxspring 发表于 2024-5-8 22:00
关于引退,我的理解是这样的,如果不正确请题主海涵....
比如如下4条指令
1、mov eax,[mem1]   ;从mem1内 ...

引退 是不是对 指令执行准确性的肯定,即乱序执行的结果最终符合编排顺序执行的结果。因此,引退之后再无法回溯,因为这些指令已经离开流水线。那引退就是一个动作或者分界点喽。若有错误,感谢指正

点评

感觉你解释的更专业。  发表于 2024-5-9 11:07
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-12-22 09:27 , Processed in 0.241570 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表