xiaoyangst 发表于 2024-5-4 09:57:15

指令的执行和引退章节

引退(retirement)和 提交(commit)如何理解,特别是这个引退


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


站长 发表于 2024-5-4 11:47:39

引退和提交如课程中所说,本是容易理解的。

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

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



waltz169874 发表于 2024-5-4 12:25:44

老師請問一下,《硬件内存模型和C/C++内存模型》這門課有其他參考書籍嗎?有些基礎概念不是很清楚。

站长 发表于 2024-5-4 14:16:20

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

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

xiaoyangst 发表于 2024-5-4 16:56:59

站长 发表于 2024-5-4 11:47
引退和提交如课程中所说,本是容易理解的。

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


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

xiaoyangst 发表于 2024-5-4 17:06:05

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

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

站长 发表于 2024-5-5 09:06:36

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

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

xiaoyangst 发表于 2024-5-5 10:05:03

站长 发表于 2024-5-5 09:06
怎么通过这本书就找到我这个课程的?

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

linuxspring 发表于 2024-5-8 22:00:31

关于引退,我的理解是这样的,如果不正确请题主海涵....
比如如下4条指令
1、mov eax,   ;从mem1内存物理地址取出值放入到寄存器eax
2、mov ebx,;从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,这就叫引退技术。

xiaoyangst 发表于 2024-5-9 09:15:36

linuxspring 发表于 2024-5-8 22:00
关于引退,我的理解是这样的,如果不正确请题主海涵....
比如如下4条指令
1、mov eax,   ;从mem1内 ...

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