From 6e141c3fdea8c6df092982caa8bb7fd74d2d9832 Mon Sep 17 00:00:00 2001 From: gatieme Date: Fri, 12 Nov 2021 22:15:34 +0800 Subject: [PATCH] arch: pipeline: history and description --- .../arch/pipeline/{ => description}/README.md | 0 .../boom-pipeline-detailed.png | Bin .../{ => description}/boom-pipeline.svg | 0 .../history/0001-i486-5-stage-pipeline.png | Bin 0 -> 8395 bytes .../0002-i486-superscalar-pipeline.png | Bin 0 -> 2244 bytes ...ium-two-parallel-superscalar-pipelines.png | Bin 0 -> 2835 bytes .../history/0004-out-of-order-pipeline.png | Bin 0 -> 28080 bytes .../0005-hyper-thread-ooo-pipeline.png | Bin 0 -> 131093 bytes study/arch/pipeline/history/README.md | 244 ++++++++++++++++++ 9 files changed, 244 insertions(+) rename study/arch/pipeline/{ => description}/README.md (100%) rename study/arch/pipeline/{ => description}/boom-pipeline-detailed.png (100%) rename study/arch/pipeline/{ => description}/boom-pipeline.svg (100%) create mode 100644 study/arch/pipeline/history/0001-i486-5-stage-pipeline.png create mode 100644 study/arch/pipeline/history/0002-i486-superscalar-pipeline.png create mode 100644 study/arch/pipeline/history/0003-pentium-two-parallel-superscalar-pipelines.png create mode 100644 study/arch/pipeline/history/0004-out-of-order-pipeline.png create mode 100644 study/arch/pipeline/history/0005-hyper-thread-ooo-pipeline.png create mode 100644 study/arch/pipeline/history/README.md diff --git a/study/arch/pipeline/README.md b/study/arch/pipeline/description/README.md similarity index 100% rename from study/arch/pipeline/README.md rename to study/arch/pipeline/description/README.md diff --git a/study/arch/pipeline/boom-pipeline-detailed.png b/study/arch/pipeline/description/boom-pipeline-detailed.png similarity index 100% rename from study/arch/pipeline/boom-pipeline-detailed.png rename to study/arch/pipeline/description/boom-pipeline-detailed.png diff --git a/study/arch/pipeline/boom-pipeline.svg b/study/arch/pipeline/description/boom-pipeline.svg similarity index 100% rename from study/arch/pipeline/boom-pipeline.svg rename to study/arch/pipeline/description/boom-pipeline.svg diff --git a/study/arch/pipeline/history/0001-i486-5-stage-pipeline.png b/study/arch/pipeline/history/0001-i486-5-stage-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..f957af8161cca71191eec6d13610ac8e24edd958 GIT binary patch literal 8395 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 literal 0 HcmV?d00001 diff --git a/study/arch/pipeline/history/0002-i486-superscalar-pipeline.png b/study/arch/pipeline/history/0002-i486-superscalar-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..e823c0288378f40ddbccc6f405e67ef79e0f7683 GIT binary patch literal 2244 zcmb7Gdpy&7AD?qPtdYXfluJ}p$Xs#>+nI$N8*9;y%4J49hdL^>)0{X5(~)dCQi~^- z2s_g%bLm*DMst~A8aqFAp7V5`*K^M6Jb!$D-`Ds1eSP1*&-?wkeN%AW z9%~_+ARrKEt>^xIcwlY^#s#nn@I72x5dcg|QFsqm5W7R~EwE5Nj>4iqpnG&RIq@IB zdd;c*{!t*1M$_t0YKbff1%bf+p8HU~-v++R#zqXf>orR=?PApXEkjhZHX4>08W-IP ze$uuxmX2QM0!wJMKx{J++OEgYTD2&m{9DkhoVMs=wm%(nFQ{Ce%F4_Us;;|dYnj#6 z5$Q3|jnQl`+7)Xi!xP~7gv2C-chk4^bPRG)GMd9LL@_UL#?pvwbaH$4%n4Aod-|A z!JJLZE-?vX?4|Ag1RY4CD)~Pss#MM2!7(_-gxVi3?zprCsS$FZ?;^rOj_Fh73L7*i*%OZi=4}X z6}4FTgkW=ZE??B1Qw%Re!Z?h=*Lm>JEe;%8u`@JzPIW)yj%X4=HL|X1!ojRTdc;Ky zv>oV2xY#sw!OUM5f>yEiCt_TXiV%I$4QGCfax>jOmvM`6G z+W!M3;L4G6$3*?Huw+VQ}TG1>pejo3v|n# zN*;Q7A%E|}M34b%`9x99QHqe#Jm+XO0$%=GIUfNo5=c#cwp=wXgnl$$e7HhJP8Z2I^~#sJN0a zN9PCKr!E+w8?>7he&$kE|M!4I4M{0&gMuS6R{!1K0$kX#|0lU$`}-dA$zrFXpaiZm z^VJ$kqmn-FcUHorOynvSeV;|wBwibK zyz#TxH0C>-xO^nOIB>`pxXI%aOZDE177NJYu>-psYYC_!UhMTOm!(2Q2ennfei}aN z2BZqchmp)h){qO`X31#;Q67{vY;vvi{I%619BiS)Pi#VkjR#HLGhcs`cp>F%p#$J$ zPl)!DV1ur~0zWBO$19U^fmttkY!w66;X#|lyJQLL9>a~#S;{ikr+Abl8$#r(!tBD7 zXEWkiZc_%Gftz&Y3mHl9)+i!iXvPMU5$rrKa@+N0fx+&NqdN5 zd}quIqL!UtUu9vjbFLQAxstJ``kOCCWKUEbOip!!(-sFF1te6UJR^tos}B3wQV+18m=T< z4BOjUqcsBOxu>4FhXD)p`9nojfxf+or|f6nuMz5A{AY7GThM7%#||peZtpLzjItS% z#qda0N#`>IZeN`5k}U>S^s?v$HzRUZVyZ=(s>LZIgd_Dc4*aDd17qUPo>hV}eB9BK zcbEwE6>PT$W#*;be3M3`oO`n>@WnNjQ>EZEGpK~qOOLF}M>JQ%xv(?%v1d{2%18sR zo0hTqykY`!addhrj9eS6rzD+y;VhY$WAS5r4zBE@p5}19t zk3Q1u`AUuSCUOOB9oVHp^@n$x%Nd_N6+PEf-S1JS)B!lPH&<-g52TQHQZw8buef} z8r~A9I6txdE#o+D_(0#v&_Yi1Tutu>u;%i&fe%vR)EiX`?{OYjem{HoH2+Y$LsQ(- z$enyTf|fMHEqC&tacAYQTU zl2IgqZ}FMdGE6HKp?J=!OR(dPdS`N9a(#Q&HbdtMHlpCB_Pt@gEmt=@c=qs@ob40g zo5rsoY1QUBOO&ryS@ZVz)So8=phtd(rGU|Av00|-iN&LcK%W=kVBKIU6KMEG g7C@t?6ueM`Wtbk_nTXvAygWdjZr=OYuE7bv0>?Zd%>V!Z literal 0 HcmV?d00001 diff --git a/study/arch/pipeline/history/0003-pentium-two-parallel-superscalar-pipelines.png b/study/arch/pipeline/history/0003-pentium-two-parallel-superscalar-pipelines.png new file mode 100644 index 0000000000000000000000000000000000000000..27ada75b30d33db5cc7a7e60e24110ce3ebe21fb GIT binary patch literal 2835 zcmb7Gdpy&7A0I}tLubuNNjzt1smQuG%W*&E7_AYNmisM{OIkLZF-LAAW9dT8$*Vf0 z6e+nAnIWuPdNyVjlM$m?CWf6AJ+IUAI_EsE=a1jz`~7`B-_Q5`{=7e*-JBKR3jm-1mcJ*ds>tsZD7_c*hXT&U{wF{&Q)gU000!9{vH<`}vp|c!%JT8r zGbk($0MKaqbSbn%6b1kQYK0C+n7h>MDlpTq< zJh*dw>FI4Rd>{ZI0YDTI>Kc#$A7eNezy_g#0EyyPQyI7RQeTH8<5dfQ_CZjRjPvZi z^P#FVIM_fLc5w$9Xx)h1n@k265>l> zHpA2-rI&F_m6_^+7}8?TUi5pn~d@(xjSmy#a=q%x*NJluK+ke4!D2E1DUIO zNfFYf2~#Zaf#y9&0yNS3uDPlSkKqtg+Fvd8)pnHs!t?AoSYo%LL1R~5tCdXb{@wi@ zT40#s?+t&3vFc~ofsBX0e3@dbqeqh1emnOxCWND#Cx{qW>N)ypmzxWK8T-K{&OD-@ z?m=q&$EV!oiJ+`&k%I{1$>mf8)pi8>99f{*jsPEifI66)Hl}bE>!3G~P^?vsJq6tWVcz|N4{9j9K|OI_3YnKDcRvj2uN#~WF`(+|2X zCqotTtBYYbQlI&{#|_g_G`B`*D*M@Xp;CDfhl`%AnXEtmAf_n zA9t&I(a9$llmQ&ioP*6sxt{++Szgy)vYNCgL2f0T(+I6j0Z9BJlN1-oJa$?#YV zloNqss2DUt579S-+zg9~S8CwlhBlw@n6iK7)YUuA;gd2+a&_ zEM{>ODb47^E5+IjJ%k*NP3FBvjJillN;)=2$jm=SSYy!G#wFKQpGubuKi?2BZbp@^ z6ey-0IpA&W_bj_(wceZ8=AqbkI7`O*;#F;wq9D`*ZY~eHysc^8sKrRem#P5mqc+|9 z`{GUfvld@;<*7P?K6jT0*%I#`b$5wOl#S!iu^gIt+d>m>KXFEibJtir6NW{mSTPsgtL+mB^#+WR zR@=vM8adi-N0z4WRze-pf zMi8Kx8rdr?paJz`+g-b$b_2e_V+FOuX^Naf+$R+ z^9jJVH!qa_`yVkJfF8j=*;~{ZRuh#zkT)T|+_mkDRo0&E__aD5V!Pn_ez5zwDUM7$ z0pm*fQw!z>@7$jRQ*iNdH|)prPD7g(DO=D1+NrtIab6SQ_3PYicdUoqB+s^uN#eBI zY%)Gf_0vjz=v?o#1~Q%tsR2^L>fegHRlzA)O0M~RMCa&>rMueYAUXW;3hU4pPu6?PUs zi$@>C3xyxe_%&g3Pu}Q0JIs6aEkim1JfVoKeY5~m;~ns;6@kR8KYym z{)Wdky00TV@Z?vUs?{*Uenu7FbGk!L5?({!IA5MB3cq;%W~l!;w*y|Ar#;iCqI^q< zXj_zE{}3}E+xwMZD%PJ_G2g!hBRx|uB0i64g-@9WZlRfP6*LIVwt2Z~$LpG1WgfXS zqRq4*h$Q2zW43#*wjP%paAgIXGu!>!9~u2%Z^0;I2MdB&l|o55zqJw)a@&89k0vCw zDooPP11qkpFF#KbC33cV6h0#P5ecb;=Src=@v>~+_;AeG#gmhx8@bvsqEd*@Trv;d z6hr5qs4YkFvIA=ID{3&)6ct4Kw4HG@?rtl94{FYh~i?8#2JwsgqFItvcNk zrN4Mgn_tL0%{gDYesVu``4}VWk&1hPO^p@=yK&q#gRClqIt-2G9(E8h1vbPYVFQ`3+GWxK2NRf8^YpXi-%_vKoA}X$ z=^sGxlAJ|#(2kU8mm;_YSO)DDU#8wQGd(21@_8$0QqBo@{CJxT3#z&qtn}S zbDJ%ud}KmrSGgtLn*feN{<|#`B#q{5ja$PBuNC((I?S(rkH4_{PKT=W>ZaLg9epx9wz)PP+v@Anr~*L^Pae%BJBx={bDv%T0o_2{kD~ zTD1llcahAor; literal 0 HcmV?d00001 diff --git a/study/arch/pipeline/history/0004-out-of-order-pipeline.png b/study/arch/pipeline/history/0004-out-of-order-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea1dc5ed042301de4be46b9371f932331faca2e GIT binary patch literal 28080 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 literal 0 HcmV?d00001 diff --git a/study/arch/pipeline/history/0005-hyper-thread-ooo-pipeline.png b/study/arch/pipeline/history/0005-hyper-thread-ooo-pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..0dc4c7b2460d6eab064685b95569259deb361571 GIT binary patch literal 131093 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≥DgwjP} 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 + +本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请注明出处, 谢谢合作 + +知识共享许可协议 + +因本人技术水平和知识面有限, 内容如有纰漏或者需要修正的地方, 欢迎大家指正, 鄙人在此谢谢啦 + +**转载请务必注明出处, 谢谢, 不胜感激** + +
+ +| 日期 | 作者 | GitHub| CSDN | BLOG | +| ------- |:-------:|:-------:|:-------:|:-------:| +| 2021-02-15 | [成坚-gatieme](https://kernel.blog.csdn.net) | [`AderXCoding/system/tools/fzf`](https://github.com/gatieme/AderXCoding/tree/master/system/tools/fzf) | [使用模糊搜索神器 FZF 来提升办公体验](https://blog.csdn.net/gatieme/article/details/113828826) | [Using FZF to Improve Productivit](https://oskernellab.com/2021/02/15/2021/0215-0001-Using_FZF_to_Improve_Productivity)| + + +
+ +| 英文原文 | 描述 | +|:-------:|:---:| +| [A Journey Through the CPU Pipeline](https://bryanwagstaff.com/index.php/a-journey-through-the-cpu-pipeline) | 讲述了 CPU 流水线的前世今生(不断演进和完善) | + +# 1 前言 +------- + +  作为程序员,CPU 在我们的工作中扮演了核心角色,因此了解处理器内部的工作方式对程序员来说不无裨益。 + +  CPU 是如何工作的呢?一条指令执行需要多长时间?当我们讨论某个新款处理器拥有 12 级流水线还是 18 级流水线,甚至是更深的 31 级流水线时,这到些都意味着什么呢? + +  应用程序通常会将 CPU 看作是黑盒子。程序中的指令按照顺序依次进入 CPU,执行完之后再按顺序依次从 CPU 中出来,而内部到底发生了什么,我们通常并不了解。 + +  对我们程序员来说,尤其是对做程序性能调优工作的程序员来说,学习 CPU 内部的细节非常必要。否则,如果你不知道 CPU 的内部结构,那如何才能针对 CPU 做性能优化? + +  本文所关注的就是专门针对 X86 处理器流水线的工作原理。 + +# 2 你需要掌握的预备知识 +------- + +  首先,阅读本文你需要了解编程,最好了解一点汇编语言。如果你还不知道指令指针(instruction pointer)是什么,那么本文对你来说可能有些难。你需要知道什么是寄存器,指令和缓存,如果不明白它们是什么,你需要尽快查找资料了解一下。 + +  第二,CPU 的工作原理是一个非常庞大和复杂的话题,本文仅仅是匆匆一瞥,很难以用一篇文章详尽叙述。如果我有什么疏漏,请通过评论告诉我。 + +  第三,我仅仅关注英特尔处理器及其 X86 架构。当然除了 X86,还有很多其他架构的处理器。虽然 AMD 公司引入了很多新特性到 X86 架构,但是 X86 架构是 Intel 公司发明,并且创造了 X86 指令集,其中绝大多数特性是由 Intel 引入的。所以为了保持叙述的简单和一致性,我仅关注 Intel 的处理器。 + +  最后,当你读到这篇文章时,它已经是“过时”的了。更新款的处理器已经设计出来,其中一些会在未来几个月之内发布。我很高兴技术能如此快速的发展,我希望有一天所有这些技术都会过时,创造出拥有更惊人计算能力的 CPU。 + +# 3 处理器流水线基础 +------- + +  从一个非常广的角度来说,X86 处理器架构在近 35 年来并没有变化太多。虽然 X86 架构被附加了很多新功能,但是最初的设计(包括几乎所有最初的指令集)仍然基本上是完整保留的,即使在最新的处理器上仍然被支持。 + +  最初的 8086 处理器支持 14 个寄存器,这些寄存器在如今最新的处理器中仍然存在。这 14 个寄存器中,有 4 个是通用寄存器:AX,BX,CX 和 DX;有 4 个是段寄存器,段寄存器用来辅助指针的实现:代码段(CS),数据段(DS),扩展段(ES)和堆栈段(SS);有 4 个是索引寄存器,用来指向内存地址:源引用(SI),目的引用(DI),基指针(BP),栈指针(SP);有 1 个寄存器包含状态位;最后是最重要的寄存器:指令指针(IP)。 + +  指令指针寄存器是一个拥有特殊功能的指针。指令指针的功能是指向将要运行的下一条指令。 + +  所有的 X86 处理器都按照相同的模式运行。首先,根据指令指针指向的地址取得下一条即将运行的指令并解析该指令(译码)。在译码完成后,会有一个指令的执行阶段。有些指令用来从内存读取数据或者向内存写数据,有些指令用来执行计算或者比较等工作。当指令执行完成后,这条指令会通过退出(retire)阶段并将指令指针修改为下一条指令。 + +  译码,执行和退出三级流水线组成了 X86 处理器指令执行的基本模式。从最初的 8086 处理器到最新的酷睿 i7 处理器都基本遵循了这样的过程。虽然更新的处理器增加了更多的流水级,但基本的模式没有改变。 + +# 4 35 年来发生了什么改变 +------- + +  相较于现今的标准,最初的处理器设计显得太过简单。最初的 8086 处理器的执行过程可以简述为从当前指令指针取得指令,通过译码,执行最后退出,然后继续从指令指针指向的下一条指令处取得指令。 + +  新的处理器增加了新的功能,有些增加了新的指令,有些增加了新的寄存器。我将主要关注和本文主题有关系的改变,这些改变影响了 CPU 指令执行的流程。其他的一些变化比如虚拟内存或者并行处理虽然都很有意义而且有趣,但是并不在本文主题的范围内。 + +| 时间线 | 里程碑 | 描述 | +|:-----:|:-----:|:---:| +| 1982 年 | 指令缓存在 1982 年被加入到处理器中。 | 通过指令缓存,处理器可以一次性从内存读取更多指令并放在指令缓存中,而不用每条指令都从内存中取。指令缓存仅有几个字节大小,只能容纳数条指令,但是因为消除了之后每次取指往返内存和处理器的时间,极大的提高的效率。 | +| 1985 年 | 386 处理器引入了数据缓存,而且扩展了指令缓存的设计。 | 数据访存请求通过一次性读取更多的数据放在数据缓存中,从而提升了性能。而且,数据缓存和指令缓存都从几个字节扩大到几千字节。 | +| 1989 年 | 推出的 i486 处理器引入了五级流水线。 | 这时,在 CPU 中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。这个设计使得 i486 比同频率的 386 处理器性能提升了不止一倍。五级流水线中的取指阶段将指令从指令缓存中取出(i486 中的指令缓存为 8KB);第二级为译码阶段,将取出的指令翻译为具体的功能操作;第三级为转址阶段,用来将内存地址和偏移进行转换;第四级为执行阶段,指令在该阶段真正执行运算;第五级为退出阶段,运算的结果被写回寄存器或者内存。由于处理器同时运行了多条指令,大大提升了程序运行的性能。 | +| 1993 年 | Intel 推出了奔腾(Pentium)处理器。 | 由于诉讼问题,Intel 无法继续沿用原来的数字编号。因此,用奔腾替代了 586 作为新款处理器的代号。奔腾处理器相对 i486 处理器对流水线做出了更多修改。奔腾处理器架构增加了第二条独立的超标量流水线。主流水线工作方式类似于 i486,第二条流水线则并行的运行一些较简单的指令,比如说定点算术,而且该流水线能更快的进行该运算。 | +| 1995 年 | Intel 推出了奔腾 Pro (Pentium Pro)处理器。 | 和之前的处理器相比,奔腾 Pro 采用了完全不同的设计。该处理器采用了诸多新特性以提高性能,包括乱序(Out-of-Order, OOO)执行的部件以及猜测执行。流水线扩展到了 12 级,而且引入了“超标量流水线”的概念,使得许多指令可以被同时处理。我们稍后将详尽的介绍乱序执行的部件。 | +| 在 1995-2002 年之间 | 乱序执行部件经过了数次重大改进。 | 处理器中加入了更多的寄存器;单指令多数据(Single Instruction Multiple Data, or SIMD)的引入使得一条指令可以进行多组数据运算;现有的缓存变得更大而且引入了新的缓存;有些流水级被拆分成更多流水级,有些流水级被合并,使得更加适合实际的应用。这些改变对整体性能的提升有重要作用,但它们都没有从根本影响数据在处理器中的流动方式。 | +| 2002 年 | 发布的奔腾 4 处理器引入了超线程技术。 | 乱序执行部件的设计使得指令被执行的速度比处理器能够提供指令的速度更快。因此对于大部分应用,CPU 的乱序执行部件在大部分时间处于空闲状态,甚至在高负载的情况下也不能充分利用。为了让指令流能充分的流入乱序执行部件,Intel 加入了第二套前端部件(译注:在处理器结构中,前端是指取指,译码,寄存器重命名等模块,经过前端部件的处理后,指令等待发射进入乱序执行部件)。虽然实际上只有一个乱序执行部件,但对于操作系统来说,它能看到两个处理器。前端部件包含两组同样功能的 X86 寄存器,两个指令译码器根据两个指令指针指向的地址分别处理。所有的指令被一个共享的乱序执行部件执行,但对应用程序来说并不知情。当乱序执行部件执行完成,像之前一样退出流水线后,最终结果返回虚拟的两个处理器。 | +| 2006 年 | Intel 发布了酷睿(Core)微架构。为了品牌效应,它被称做酷睿2(二总比一好)。 | 令人惊讶的是,处理器频率不升反降,而且超线程也被去掉了。通过降低时钟频率,每一级流水线可以做更多工作。乱序执行部件也被扩展的更宽。各种不同的缓存和队列都相应做的更大。而且处理器被重新设计,以适应双核和四核的共享缓存结构。 | +| 2008 年 | Intel 开始用酷睿 i3, i5, i7 的方式来命名新的处理器。 | 新处理器重新引入了超线程。这三个系列的处理器主要区别在于内部缓存大小不同。 | +| 未来的处理器,Intel 的下一代微结构被称为 Haswell。 | Haswell 据称将于 2013 年发布。目前已知的文档说明它将拥有 14 级流水级的乱序执行部件,所以它仍然遵循从奔腾 Pro 以来的基本设计思路。 | + + +  那么,流水线到底是什么?乱序执行部件是什么?他们如何提升了处理器的性能呢? + +# 5 CPU 指令流水线 +------- + +  根据之前描述的基础,指令进入流水线,通过流水线处理,从流水线出来的过程,对于我们程序员来说,是比较直观的。 + +  I486 拥有五级流水线。分别是:取指(Fetch),译码(D1, main decode),转址(D2, translate),执行(EX, execute),写回(WB)。某个指令可以在流水线的任何一级。 + +![I486 的经典五级流水线](./0001-i486-5-stage-pipeline.png) + +  但是这样的流水线有一个明显的缺陷。对于下面的指令代码,它们的功能是将两个变量的内容进行交换。 + +```cpp +XOR a, b +XOR b, a +XOR a, b +``` + +  从 8086 直到 386 处理器都没有流水线。处理器一次只能执行一条指令。再这样的架构下,上面的代码执行并不会存在问题。 + +  但是 i486 处理器是首个拥有流水线的 x86 处理器,它执行上面的代码会发生什么呢?当你一下去观察很多指令在流水线中运行,你会觉得混乱,所以你需要回头参考上面的图。 + +  第一步是第一条指令进入取指阶段;然后在第二步第一条指令进入译码阶段,同时第二条指令进入取指阶段;第三步第一条指令进入转址阶段,第二条指令进入译码阶段,第三条指令进入取指阶段。但是在第四步会出现问题,第一条指令会进入执行阶段,而其他指令却不能继续向前移动。第二条 xor 指令需要第一条 xor 指令计算的结果a,但是直到第一条指令执行完成才会写回。所以流水线的其他指令就会在当前流水级等待直到第一条指令的执行和写回阶段完成。第二条指令会等待第一条指令完成才能进入流水线下一级,同样第三条指令也要等待第二条指令完成。 + +  这个现象被称为流水线阻塞或者流水线气泡。 + +  另外一个关于流水线的问题是有些指令执行速度快,有些指令执行速度慢。这个问题在奔腾处理器的双流水线架构下显得更加明显。 + +  奔腾 Pro 拥有 12 级流水线。当这个数字被首次宣布后,所有的程序员都倒抽了一口气,因为他们知道超标量流水线是如何工作的。如果 Intel 仍然按照以前的思路设计超标量流水线的话,流水线的阻塞和执行速度慢的指令会严重影响执行速度。但同时,Intel 宣布了完全不同的流水线设计,叫做乱序执行部件(Out-of-Order core)。单从叙述上很难理解这些改变带来的好处,但 Intel 确信这些改进是令人激动的。 + +  让我们来更深入的看看这个乱序执行的部件吧! + +# 6 乱序执行流水线 +------- + +  在描述乱序执行流水线时,往往是一图胜千言。所以我们主要以图例进行介绍。 + + +  I486 处理器拥有 5 级流水线。这种设计在现实世界中的其他处理器中很常见,而且效率不错。 + +![I486 处理器流水线图例](0002-i486-superscalar-pipeline.png) + + +  而奔腾处理器的流水线比 i486 更好。两条流水线可以并行运行,而且每条流水线可以同时有多条指令在不同流水级执行。它几乎可以同时执行比 i486 多一倍的指令。 + +![奔腾处理器的两条流水线](./0003-pentium-two-parallel-superscalar-pipelines.png) + +  能够快速完成的指令需要等待前面执行慢的指令即使在并行流水线中也仍然是一个问题。流水线仍然是线性的,导致处理器面临性能瓶颈难以逾越。 + +  乱序执行部件和之前处理器设计中的线性通路有很大不同,它增加了一些复杂度,引入了非线性的通路。 + +![引入乱序执行部件流水线](./0004-out-of-order-pipeline.png) + +  第一个改变是指令从内存中取到处理器的指令缓存的过程。现代处理器能够检测何时会产生一个大的分支跳转(比如函数调用),然后提前将跳转目的地的指令加载到指令缓存中。 + +  译码级有一些略微的修改。不同于以往处理器仅仅译码指令指针指向的指令,奔腾 Pro 处理器每一个时钟周期最多能译码 3 条指令。现今的处理器(2008-2013 年)每个时钟周期最多可以译码 4 条指令。译码过程产生很多小片的操作,被称作微指令(micro-ops, µ-ops)。 + +  下一级(或者好几级)被称为微指令翻译,接着是寄存器重命名(register aliasing)。许多操作同时执行,并且执行的顺序是乱序的,所以有可能出现一条指令读一个寄存器的同时,另外一条指令正在对这个寄存器进行写操作。在处理器内部,这些原始的寄存器(如 AX,BX,CX,DX 等)被翻译(或者重命名)成为内部的寄存器,而这些寄存器对程序员是不可见的。寄存器和内存地址需要被映射到一个临时的地方用于指令执行。当前每个始终周期可以翻译 4 条微指令。 + +  当微指令翻译完成后,它们会进入一个重排序缓存(Reorder Buffer, ROB),ROB 可以存储最多 128 条微指令。在支持超线程的处理器上,ROB 同样可以重排来自两个虚拟处理器的指令。两个虚拟处理器在 ROB 中将微指令汇集到一个共享的乱序执行部件中。 + +  这些微指令已经准备好可以执行了。它们被放在保留站中(Reservation Station, RS)。RS 最多可以同时存储 36 条微指令。 + +  现在才开始乱序执行部件神奇的部分。不同的微指令在不同的执行单元中同时执行,而且每个执行单元都全速运行。只要当前微指令所需要的数据就绪,而且有空闲的执行单元,微指令就可以立即执行,有时甚至可以跳过前面还未就绪的微指令。通过这种方式,需要长时间运行的操作不会阻塞后面的操作,流水线阻塞带来的损失被极大的减小了。 + +  奔腾 Pro 的乱序执行部件拥有 6 个执行单元:两个定点处理单元,一个浮点处理单元,一个取数单元,一个存地址单元,一个存数单元。这两个定点处理单元有所不同,一个能够处理复杂定点操作,一个能同时处理两个简单操作。在理想状况下,奔腾 Pro 的乱序执行部件可以在一个时钟周期内执行 7 条微指令。 + +  现今的乱序执行部件仍然拥有 6 个执行单元。其中取数单元,存地址单元,存数单元没有变,另外 3 个多少发生了变化。这三个执行单元都可以执行基本算术运算,或者执行更复杂的微指令。但每个执行单元擅长执行不同种类的微指令,使得它们能更高效的执行运算。在理想状况下,现今的乱序执行部件可以在一个时钟周期内执行 11 条微指令。 + +  最终微指令会得到执行,在经过数个流水级之后,最终会退出流水线。这时,这条指令完成并且递增指令指针。但从程序员的角度来说,指令仅仅是从一端进入 CPU,从另一端退出,就像老的 8086 一样。 + +  如果你仔细看过上面的内容,你会注意到上面提到过很重要的一个问题:如果执行指令的位置发生了跳转会发生什么?例如,当指令运行到”if”或者是”switch”时,会发生什么呢?在较老的处理器中这意味着清空流水线,等待新的跳转目的指令的取指执行。 + +  当 CPU 指令队列中存储了超过 100 条指令时,发生流水线阻塞带来的性能损失是极其严重的。所有的指令都需要等待跳转目的的指令取回并且重启流水线。在这种情况下,乱序执行部件需要将跳转指令之后但是已经执行的微指令全部取消掉,返回到执行前的状态。当所有乱序执行的微指令都退出乱序执行部件之后,将它们丢弃掉,然后从新的地址开始执行。这对于处理器来说是相当困难的,而且发生的频率很高,因此对性能的影响很大。这时,引入了乱序执行部件的另外一个重要功能。 + +  答案就是猜测执行。猜测执行意味着当遇到一个分支指令后,乱序执行部件会将所有分支的指令都执行一遍。一旦分支指令的跳转方向确定后,错误跳转方向的指令都将被丢弃。通过同时执行两个跳转方向的指令,避免了由于分支跳转导致的阻塞。处理器设计者还发明了分支预测缓存,当面临多个分支时进行预测,进一步提高了性能。虽然 CPU 阻塞仍然会发生,但是这个解决方案将 CPU 发生阻塞的概率降到了一个可以接受的范围。 + +  最后,拥有超线程的处理器将两个虚拟的处理器暴露给共享的乱序执行部件。它们共享一个重排序缓存和乱序执行部件,让操作系统认为它们是两个独立的处理器,看上去就像这样: + +![支持超线程的处理器 OOO 流水线](./0005-hyper-thread-ooo-pipeline.png) + +  超线程的处理器拥有两个虚拟的处理器,从而可以给乱序执行部件提供更多的数据。超线程对一般的应用程序都有性能提升,但是对一些计算密集型的应用,则会迅速使得乱序执行部件饱和。在这种情况下,超线程反而会略微降低性能。但这种情况毕竟是少数,超线程对于日常应用来讲通常都能够提供大约一倍的性能。 + +# 7 一个示例 +------- + +  这一切看上去有点令人感到困惑,那么我们举一个例子来让这一切变得清晰起来。 + +  从应用程序的角度来看,我们仍然是运行在指令流水线上,就想老的 8086 处理器那样。处理器就是一个黑盒子。黑盒子会处理指令指针指向的指令,当处理完之后,会在内存里找到处理的结果。 + +  但是从指令本身的角度来讲,这个过程可谓历经沧桑。我们下面介绍对于现今的处理器(大约在 2008-2013 年之间),一条指令在其内部的过程。 + +  首先,你是一条指令,你所属的程序正在运行。 + +  你一直在耐心的等待指令指针会指向自己,等待被 CPU 运行。当指令指针距离你还有 4KB 远的时候(这大约是 1500 条指令),你被 CPU 从内存取到指令缓存中。虽然从内存加载进入指令缓存需要一段时间,但是现在距离你被执行的时刻还很远,你有足够的时间。这个预取的过程属于流水线的第一级。 + +  当指令指针离你越来越近,距离你还有 24 条指令的时候,你和你旁边的 5 个指令会被放到指令队列里面。 + +  这个处理器有 4 个译码器,可以容纳一个复杂指令和最多三个简单指令。你碰巧是一条复杂指令,通过译码,你被翻译成 4 个微指令。 + +  译码的过程可以划分为多步。译码过程中的一步是检查你需要的数据和猜测你可能会产生一个地址跳转。译码器一旦检测到需要的额外数据,不需要让你知道,这个数据就开始从内存加载到数据缓存中了。 + +  你的四个微指令到达寄存器重命名表。你告诉它你需要读哪个内存地址(比如说 fs:[eax+18h]),然后寄存器重命名表将这个地址转换为临时地址供微指令使用。地址转化完成后,你的微指令将进入重排序缓存(Reorder Buffer, ROB)并记录指令次序。接着第一时间进入保留站(Reservation Station, RS)。 + +  保留站用于存储已经准备就绪可以执行的指令。你的第三条微指令被立即选中并送往端口5,这个端口直接执行运算。但是你并不知道为什么它会被首先选中,无论如何,它确实被执行了。几个时钟周期之后你的第一条微指令前往端口2,该端口是读单元(Load Address execution unit)。剩余的微指令一直等待,同时各个端口正在收集不同的微指令。他们都在等待端口 2 将数据从缓存和内存中加载进来并放在临时存储空间内。 + +  他们等了很久…… + +  相当久的时间…… + +  不过在他们等待第一条微指令返回数据的时候,又有其他的新指令又进来。好在处理器知道如何让这些指令乱序执行(即后到达保留站的微指令被优先执行)。 + +  当第一条微指令返回了数据,剩余的两条微指令被立即送往执行端口 0 和1。现在这 4 条微指令都已经运行,最终它们会返回保留站。 + +  这些微指令返回后交出他们的“票”并给出各自的临时地址。通过这些地址,你作为一个完整的指令,将他们合并。最后 CPU 将结果交给你并使你退出。 + +  当你到达标有“退出”的门的时候,你会发现这里要排一个队列。你进入后发现你刚好站在你前面进来指令的后面,即使执行中的顺序可能已经不同,但你们退出的顺序继续保持一致。看来乱序执行部件真正知道自己做了什么。 + +  每条指令最终离开 CPU,每次一条指令,就和指令指针指向的顺序一样! + +# 8 结论 +------- + +  希望这篇小文能够给读者展示一些处理器工作的奥秘,要知道,这并不是魔术。 + +  让我们回到最初的问题,现在我们应该可以给出一些较好的答案了。 + +  处理器内部是如何工作的呢?在这个复杂的过程中,指令首先被分解为更小的微指令命令,这些微指令以乱序的方式尽可能快的被执行,然后按照原始的顺序提交执行结果。因此,从外部看来,所有的指令都是按照顺序的方式执行的。但是现在我们知道,处理器内部是以乱序的方式处理指令的,有时甚至以猜测的方式来运行分支代码。 + +  运行一条指令究竟需要多长时间呢?对于没有使用流水线技术的处理器来说,这是一个容易回答的问题,但对于现代的处理器来说,一条指令的执行时间与它周围指令的内容以及临近 cache 的大小和内容都有关。一条指令通过处理器有一个最小的时间,但只能粗略的说这个时间是恒定的。一个好的程序员和编译器可以让很多条指令同时运行,从而使每条指令的分摊时间几乎为零。这里说的几乎为零的执行时间并不是指一条指令的总的执行时间很短,相反,通过整个乱序部件和等待内存读写数据是需要花费很多时间的。 + +  一个新的处理器拥有 12 级或者 18 级、甚至更深的 31 级流水线意味着什么呢?这意味着更多的指令可以被同时送进加工厂。一个非常深的流水线可以让几百条指令同时被处理。当一切顺利时,一个乱序部件可以保持高速运转,从而获得惊人的吞吐量。不幸的是,深的流水线同时意味着流水线停顿会从一个相对可以容忍的性能损失变成一个可怕的性能噩梦。因为几百条指令都不得不停顿下来,等待流水线恢复运转。 + +  我怎么根据这些信息来优化程序呢?幸运的是,CPU 可以在大部分常见情况下工作良好,并且编译器已经为乱序处理器优化了近 20 年。当指令和数据按照顺序(没有烦人的跳转)执行时,CPU 可以获得最好的性能。因此,首先,使用简单的代码。简单直接的代码会帮助编译器的优化引擎识别并优化代码。尽量不使用跳转指令,当你不得不跳转时,尽量每次跳转到同样的方向。复杂的设计,例如动态跳转表,虽然看起来很酷并且的确可以完成非常强大的功能,但不管是处理器还是编译器,都无法进行很好的预测处理,因此复杂的代码很可能导致流水线停顿和猜测错误,从而极大的损害处理器性能。其次,使用简单的数据结构。保持数据顺序、相邻和连续可以阻止数据停顿。使用正确的数据结构和数据分布可以获得很大的性能提升。只要保持代码和数据结构尽量简单,剩下的工作就可以放心地交给编译器的优化引擎来完成了。 + +  感谢与我一起参与这次旅行! + +
+ +* 本作品/博文 ( [AderStep-紫夜阑珊-青伶巷草 Copyright ©2013-2017](http://blog.csdn.net/gatieme) ), 由 [成坚(gatieme)](http://blog.csdn.net/gatieme) 创作. + +* 采用知识共享许可协议知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可. 欢迎转载、使用、重新发布, 但务必保留文章署名[成坚gatieme](http://blog.csdn.net/gatieme) ( 包含链接: http://blog.csdn.net/gatieme ), 不得用于商业目的. + +* 基于本文修改后的作品务必以相同的许可发布. 如有任何疑问, 请与我联系. + +* **转载请务必注明出处, 谢谢, 不胜感激** +