国产成人福利在线视频播放下载,成人无码www免费视频在线看,放荡的美妇在线播放,大地资源网最新更新,国产成人精品日本亚洲网站

泡泡網(wǎng)CPU頻道 PCPOP首頁      /      CPU     /      評(píng)測(cè)    /    正文

Conroe強(qiáng)在哪兒?Core vs K8架構(gòu)解析

  與 K8 處理器類似,Core 微架構(gòu)會(huì)對(duì)取出的指令進(jìn)行預(yù)解碼。預(yù)解碼信息包括指令長度和解碼邊界。

  Core 微架構(gòu)裝備了4組解碼單元,這是X86處理器世界的第一次。這4組解碼單元包括3組簡(jiǎn)單解碼單元和1組復(fù)雜解碼單元。實(shí)際上,這種把簡(jiǎn)單指令與復(fù)雜指令分而治之的做法,并非是 P6 微架構(gòu)的專利。從全世界靠前個(gè)流水線化的X86處理器——80486開始,為了加速簡(jiǎn)單指令的執(zhí)行,這原則就已經(jīng)開始主導(dǎo)所有高速X86處理器的微架構(gòu)。就算是號(hào)稱提供三組“完整解碼單元”的 AMD K7、K8 處理器,實(shí)際上也有類似的限制。

  在介紹下面的內(nèi)容之前,首先讓我們解釋一下什么是微指令(Micro-Op)。由于X86指令集的指令長度、格式與定址模式都相當(dāng)復(fù)雜,為了簡(jiǎn)化數(shù)據(jù)通路(Data Path)的設(shè)計(jì),從很久以前開始,X86處理器就采用了將X86指令解碼成1個(gè)或多個(gè)長度相同、格式固定、類似RISC指令形式的微指令的設(shè)計(jì)方法,尤其是涉及存儲(chǔ)器訪問的 load 及 store 指令。所以,現(xiàn)在的X86處理器的執(zhí)行單元真正執(zhí)行的指令是解碼后的微指令,而不是X86指令。

  所以,對(duì)X86處理器來說,解碼單元的任務(wù)不僅僅是解碼出操作碼和操作數(shù)的地址,還要把長度從1字節(jié)到15字節(jié)不等的X86指令轉(zhuǎn)化成容易調(diào)度和執(zhí)行的固定長度的類似RISC指令的微指令(Micro-Op)。

  常見的普通X86指令可以由3組簡(jiǎn)單解碼單元中的任何一組翻譯成1條微指令。另外1組復(fù)雜解碼單元負(fù)責(zé)解碼一些復(fù)雜的、需要翻譯成4條微指令的X86指令。還有一些更長、更復(fù)雜的X86指令,需要微碼序列器配合復(fù)雜解碼單元來翻譯成微指令。這種簡(jiǎn)單解碼單元與復(fù)雜解碼單元相配合的解碼方式被現(xiàn)代的X86處理器所普遍采用,包括 P6 微架構(gòu)、K7 處理器、K8處理器和 Pentium 4 處理器。

  Core 微架構(gòu)中的解碼單元還擁有更多新特性。首先是宏指令融合技術(shù)(Macro-Op Fusion)。該技術(shù)可以把2條相關(guān)的X86指令融合為1條微指令。例如,X86比較指令cmp可以與跳轉(zhuǎn)指令jne融合。這類情況一般發(fā)生在程序中的if-then-else分支語句中。

{imageTitle}
 
 宏指令融合技術(shù)

  宏指令融合技術(shù)帶來的效果是非常明顯的。在一個(gè)傳統(tǒng)的X86程序中,每10條指令就有2條指令可以被融合。也就是說,宏指令融合技術(shù)的引入可以減少10%的指令數(shù)量。而當(dāng)2條X86指令被融合的時(shí)候,4組解碼單元在單周期內(nèi)一共可以解碼5條X86指令。被融合的指令在后面的操作中完全是一個(gè)整體,這帶來幾個(gè)優(yōu)勢(shì):更大的解碼帶寬,更少的空間占用,和更低的調(diào)度負(fù)載。如果 Intel 宣稱的“每10條指令可以融合1次”的說法屬實(shí),那么宏指令融合技術(shù)本身就將帶來巨大的性能提升。

  另外一項(xiàng)技術(shù)即微指令融合技術(shù),是從之前的 Pentium M 處理器繼承而來的。介紹這項(xiàng)技術(shù)之前,我們先來了解一下相關(guān)的問題和早期的解決辦法。有一小部分X86指令處理起來非常困難,但是同時(shí)又是十分典型和常見的X86指令。一般來說,存儲(chǔ)器尋址的算術(shù)操作就屬于這一類指令,例如,ADD [mem], EAX。這表示把寄存器EAX的內(nèi)容與地址為mem的內(nèi)存單元的內(nèi)容相加,并把計(jì)算結(jié)果寫回該內(nèi)存單元。

  在早期的處理器設(shè)計(jì)中,包括采用 P6 微架構(gòu)的Pentium Pro、Pentium II 和 Pentium III 處理器,如果遇到這種類型的指令,那么解碼單元將把它解碼成2條甚至3條微指令。記住,從 P6 微架構(gòu)之后的現(xiàn)代X86處理器的設(shè)計(jì)思想是把X86指令解碼成類似RISC指令的微指令,然后再把這些微指令送往越來越RISC化的后端,而后端以類似RISC處理器的處理方式進(jìn)行調(diào)度、發(fā)射、執(zhí)行和退出。

  對(duì)于類似ADD [mem], EAX這樣的指令,你沒有辦法送往RISC化的執(zhí)行單元,因?yàn)樗`反了 RISC 架構(gòu)的根本規(guī)則——RISC 架構(gòu)的處理器會(huì)把所有的數(shù)據(jù) load 到寄存器,然后針對(duì)寄存器進(jìn)行操作、計(jì)算等。

  因此,ADD [mem], EAX這條指令會(huì)被解碼成多條微指令,簡(jiǎn)單示意如下:
  MOV EBX, [mem]:讀取[mem]的內(nèi)容到寄存器
  ADD EBX, EAX:對(duì)2個(gè)寄存器作ALU操作
  MOV [mem], EBX:保存計(jì)算結(jié)果到[mem]

  自從 Banias 處理器之后,上面的load操作和ALU操作就可以用一條微指令來完成了。Intel 把該技術(shù)稱為微指令融合技術(shù)(Micro-Op Fusion)。這項(xiàng)技術(shù)不是一件容易的事情:在舊的設(shè)計(jì)中,把load操作與ALU操作一起進(jìn)行會(huì)導(dǎo)致對(duì)應(yīng)的那一級(jí)流水線延遲加大,從而降低處理器所能達(dá)到的最高頻率。(在處理器設(shè)計(jì)中,可能達(dá)到的最高頻率取決于最慢的那一級(jí)流水線的延遲時(shí)間,即所謂的木桶效應(yīng)。)只有可以并行執(zhí)行、設(shè)計(jì)優(yōu)秀的電路才使得在引入微指令融合技術(shù)的同時(shí)不顯著降低處理器的頻率。

  在預(yù)解碼的階段,處理器會(huì)識(shí)別可以應(yīng)用微指令融合技術(shù)的指令。在解碼階段,類似 ADD [mem], EAX 的復(fù)雜指令就可以生成比舊架構(gòu)數(shù)量更少的微指令。與宏指令融合技術(shù)帶來的效果類似,這可以帶來更大的解碼帶寬,更少的空間占用,更低的調(diào)度負(fù)載和更高的效率。

  微指令融合技術(shù)的目的就在于減少微指令的數(shù)目。處理器內(nèi)部執(zhí)行單元的資源有限,如果可以減少微指令的數(shù)目,就代表實(shí)際執(zhí)行的X86指令增加了,可以顯著提升執(zhí)行效能。而且,微指令的數(shù)目減少還有助于降低處理器功耗,可謂有益無害。

  微指令融合技術(shù)所支持的范圍,包括了整數(shù)運(yùn)算、浮點(diǎn)運(yùn)算和SSE2指令集等各種擴(kuò)展指令集。根據(jù) Intel 的官方說法,通過微指令融合技術(shù),整數(shù)運(yùn)算大約可以提升5%的性能,浮點(diǎn)運(yùn)算大約可以提升9%的性能。

  Core 微架構(gòu)前端的改進(jìn)還包括分支預(yù)測(cè)單元。分支預(yù)測(cè)行為發(fā)生在取指單元部分。首先,它使用了很多人們已經(jīng)熟知的預(yù)測(cè)單元,包括傳統(tǒng)的 NetBurst 微架構(gòu)上的分支目標(biāo)緩沖區(qū)(Branch Target Buffer,簡(jiǎn)稱BTB)、分支地址計(jì)算器(Branch Address Calculator,簡(jiǎn)稱BAC)和返回地址棧(Return Address Stack,RAS)。然后,它還引入了2個(gè)新的預(yù)測(cè)單元——循環(huán)回路探測(cè)器(Loop Detector,簡(jiǎn)稱LD)和間接分支預(yù)測(cè)器(Indirect Branch Predictor,簡(jiǎn)稱IBP),其中循環(huán)回路探測(cè)器可以正確預(yù)測(cè)循環(huán)的結(jié)束,而間接分支預(yù)測(cè)器可以基于全局的歷史信息做出預(yù)測(cè)。Core 微架構(gòu)在分支預(yù)測(cè)方面不僅可以利用所有這些預(yù)測(cè)單元,還增加了新的特性:在之前的設(shè)計(jì)中,分支轉(zhuǎn)移總是會(huì)浪費(fèi)流水線的一個(gè)周期;Core 微架構(gòu)在分支目標(biāo)預(yù)測(cè)器和取指單元之間增加了一個(gè)隊(duì)列,在大部分的情況下可以避免這一個(gè)周期的浪費(fèi)。

0人已贊

關(guān)注我們

泡泡網(wǎng)

手機(jī)掃碼關(guān)注