最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【知乎】如何判斷CPU發(fā)射寬度?

2023-07-21 18:25 作者:失傳技術(shù)  | 我要投稿


如何判斷CPU發(fā)射寬度?

比如skylake架構(gòu)有人說它是五發(fā)射,理由是其有五個(gè)解碼器。又有人說還要看取指令,指令調(diào)度的寬度,取寬度最小值。我想知道能不能從這張圖中大概判斷出CPU的發(fā)射寬度,依據(jù)什么來判斷?
另一個(gè)問題是4發(fā)射已經(jīng)出現(xiàn)了好幾年了,為什么不提升到5或者6發(fā)射增強(qiáng)性能?又有觀點(diǎn)說發(fā)射數(shù)的增加,不能提升性能,反而導(dǎo)致后端執(zhí)行管線的閑置。這究竟是怎么一回事?


關(guān)注者

46

被瀏覽

24,923

一只橘貓也關(guān)注了該問題

關(guān)注問題寫回答

邀請回答

好問題 7

添加評論

分享

修改問題

收起?

4?個(gè)回答

默認(rèn)排序


Edison Chen


?關(guān)注

9 人贊同了該回答

只看紙面規(guī)格意義有限,最好是使用 microbenchmark 進(jìn)行實(shí)際測試,例如 x86 的話,nop 指令是最短的,可以以此為基礎(chǔ)探測處理器的取指、解碼、發(fā)射能力,然后進(jìn)一步拓展到 add/sub 以及其他更復(fù)雜的指令。


發(fā)布于 2021-01-06 19:08

已贊同 9添加評論

分享

收藏喜歡


XZiar


中央處理器 (CPU)話題下的優(yōu)秀答主

?關(guān)注

81 人贊同了該回答

你這里放出來的只是前端部分的圖,實(shí)際上“發(fā)射”,也就是issue/dispatch是形容后端執(zhí)行部分的寬度的,所以從這張圖只能看出5解碼,看不出幾發(fā)射。

底下的6uOPs表示的只是IDQ到Allocation的寬度,也就是前后端銜接部分的寬度。

當(dāng)然有些人翻譯時(shí)喜歡看到xx-wide就翻譯成xx發(fā)射,會(huì)帶來一些混亂。

根據(jù)完整的圖[1],應(yīng)該被描述成8發(fā)射。


前面提到的寬度為5的解碼被Intel稱作“Legacy Decode Pipeline[2]”(或者是MITE pipe),而相對應(yīng)的“modern pipeline”的是左邊那一“小”塊uOP Cache(DSB)。

傳統(tǒng)的解碼要耗費(fèi)不算少精力,還有各種限制(比如16B的fetch,x86變長的判斷,complex/simple組合),而解碼完的指令會(huì)存入DSB,日后再使用的話不但省去解碼開銷(MITE會(huì)直接休眠省電),還能減少流水線深度。

單純MITE部分寬度小于發(fā)射說明不了太多,uOP來源可能是DSB(帶寬更高),也可能是LSB(對循環(huán)做優(yōu)化,直接IDQ自給自足)。

更重要的是MicroFusion,即解碼出來的可能是fused uop(可以分解成多條unfused uop),而發(fā)射、執(zhí)行的全都是unfused uop。既然非1:1關(guān)系,解碼小于發(fā)射倒也可以理解。

MicroFusion in Intel CPUs.easyperf.net/blog/2018/02/15/MicroFusion-in-Intel-CPUs


至于為什么解碼不做更寬,有的說法是變長指令、復(fù)雜結(jié)構(gòu)導(dǎo)致更寬的解碼技術(shù)上很難做有的說法是功耗、帶寬、面積制約

當(dāng)然也有種說法是分支指令很常見(每五六條指令就有一分支),解碼更寬容易導(dǎo)致浪費(fèi)。但是現(xiàn)在分支預(yù)測準(zhǔn)確率通常都是9x%,浪費(fèi)的概率也很低啊……

如果開著超線程的話,雖然MITE是時(shí)分交錯(cuò)解碼,DSB等也會(huì)容量減半,但每個(gè)線程有各自的IDQ,這部分其實(shí)是翻倍的,也可能可以增加實(shí)際uOP量。


至于后端寬度比解碼寬會(huì)不會(huì)喂不滿——其實(shí)不滿才是常態(tài),哪怕是RISC也是一樣。

一方面亂序執(zhí)行、投機(jī)執(zhí)行并不能解決真正的數(shù)據(jù)依賴,能同時(shí)解碼10條指令不意味著就能同時(shí)發(fā)射10條指令。

另一方面后端端口各有分工,10個(gè)端口10發(fā)射如果面對全是ALU計(jì)算指令,照樣會(huì)有浪費(fèi)。

這也就是為什么ROB的容量很大,有上百個(gè)條目——盡可能地去發(fā)掘并行操作。

而且整條流水線上到處都可能成為瓶頸,比如allocate/rename/retire。


最后,這些都是紙面數(shù)字,具體性能還是得具體分析。

參考

  1. ^Skylake?https://en.wikichip.org/wiki/intel/microarchitectures/skylake_(client)

  2. ^Legacy Pipeline?https://en.wikichip.org/wiki/intel/microarchitectures/sandy_bridge_(client)#New_.C2.B5OP_cache_.26_x86_tax


編輯于 2021-01-31 19:03

贊同 8114 條評論

分享

收藏喜歡

收起


章魚哥


深度學(xué)習(xí)加速器工具鏈與LLVM編譯器

?關(guān)注

2 人贊同了該回答

取整個(gè)前后端的最小寬度,因?yàn)闊o論你的fu的issueport有多少個(gè),整個(gè)cpu流水線能夠給到的ipc就是取決于這個(gè)最小寬度,一般是解碼寬度


發(fā)布于 2022-02-16 16:09

贊同 22 條評論

分享

收藏喜歡


風(fēng)風(fēng)


南卡羅萊納大學(xué)

?關(guān)注

5 人贊同了該回答

取最小寬度值,所以haswell 4-issue skylake 5-issue。

需要考慮設(shè)計(jì)制造成本,為了使利益最大化skylake也只是在細(xì)節(jié)上進(jìn)行改進(jìn),總體布局與haswell保持一致。

蘋果a9 6-issue。


發(fā)布于 2016-06-21 01:21


【知乎】如何判斷CPU發(fā)射寬度?的評論 (共 條)

分享到微博請遵守國家法律
璧山县| 呈贡县| 汶川县| 且末县| 伊春市| 长寿区| 门头沟区| 乐平市| 上林县| 正蓝旗| 延津县| 贞丰县| 丰宁| 军事| 卢龙县| 延寿县| 德清县| 马鞍山市| 荆门市| 内黄县| 云浮市| 日土县| 昌吉市| 北京市| 会宁县| 花莲市| 宣化县| 山东| 门头沟区| 河津市| 芜湖市| 江口县| 泾阳县| 榆树市| 五指山市| 历史| 海安县| 通山县| 周宁县| 湘潭市| 内乡县|