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

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

AMD Athlon 64系列終極報告(上):

● 流水線級數(shù)增加

    總體上看,整數(shù)流水線部分,Athlon64(FX)具備12級流水線,相比K7的10級流水線增加了2級;浮點(diǎn)流水線部分,流水線深度則增加到17級,相比K7核心的15級增加了2級。

  

 K8和K7的流水線(點(diǎn)擊放大)

    增加的流水線級數(shù),顯然有利于提升處理器的頻率。然而相對P4的超長20級管線對提升處理器頻率的貢獻(xiàn)來說,Athlon64(FX)仍然較小,這也暗示了Athlon64(FX)處理器頻率仍然將落下風(fēng)的結(jié)局。不過幸好大家都已經(jīng)清楚對于不同的處理器架構(gòu)來說,處理器運(yùn)行頻率與實際性能之間并不存在簡單的正比關(guān)系。

    另外,還有一點(diǎn)要提的是:從許多資料上,大家可能會看到諸如K8流水線深度增加到32級之類的說法,這是由于加入了內(nèi)部整合的內(nèi)存控制器執(zhí)行階段。至于傳統(tǒng)意義上的核心部分,流水線深度則應(yīng)為12級和17級。
  
    以下,我們順著流水線的走向,來看看K8的核心部分與K7的異同之處。

● 指令取和分支預(yù)測部分

    這部分的變化,主要在于分支預(yù)測單元部分所作出的改變。此部分許多媒體已經(jīng)作了介紹,因此我們不再重復(fù),只作簡要說明。

    由于流水線長度的增加,為了減小分支預(yù)測失敗給處理器性能造成危害的可能性,K8相對于K7在其分支預(yù)測部分作出了一些改進(jìn),其中包括使用新的分支預(yù)測算法,將Global History Counter的條數(shù)增加到16K,為原來K7的4倍之多,加入可快速、準(zhǔn)確地計算出下一條分支指令地址的Branch target address calculator等。通過這種改進(jìn),AMD宣稱其分支預(yù)測精準(zhǔn)度將比K7提高18%。
  
● 解碼部分

    接下來,進(jìn)入到解碼部分。
  
    解碼部分的出口保持與K7一致,仍然為3個。不過,在K8的解碼部分中,更多的指令將籍由硬件解碼器(AMD稱之為Fastpath或Directpath)而不是送往速度相對較慢的Mircocode單元中執(zhí)行解碼,比如原來需要借助Mircocode單元解碼的SSE矢量數(shù)據(jù)處理指令,現(xiàn)在則完全由Fastpath單元擔(dān)任解碼工作,加強(qiáng)了執(zhí)行SSE指令的處理效率。此外,由于K8處理器加入了對SSE2指令集的支持,很顯然K8解碼部分也因此相應(yīng)作出了一些變化。

    考慮到讀者可能對Fastpath和Mircocode的概念比較陌生,這里我們對此進(jìn)行一些解說:

    我們都知道,要對一條X86指令進(jìn)行解碼,必須使用一些翻譯機(jī)構(gòu)。目前來看,使用的翻譯機(jī)構(gòu)不外乎兩種:

    一種是純硬件的處理單元直接翻譯,K8中的Fastpath指的就是這類單元;

    另一種則是使用微編程(Microprogaming)的辦法,將μOp(微指令)預(yù)先存儲在MicroROM(MROM)內(nèi)部,然后根據(jù)外部輸入的指令來判定需要到MROM中選取那些μOp輸出,K8中的Mircocode指的就是這類單元。

    下面的圖能幫助大家更好地理解這兩種解碼方式:

 Fastpath和Mircocode解碼原理圖

    兩種辦法互有優(yōu)劣,純硬件的解碼器由于沒有MROM的延遲問題,因此執(zhí)行速度快,F(xiàn)astpath也是因此而得名;但是,這需要相對復(fù)雜的硬件機(jī)構(gòu)實現(xiàn)。特別對于X86這種復(fù)雜指令集而言,如果全部使用硬件處理單元直接翻譯,勢必導(dǎo)致解碼處理單元數(shù)量的劇增;而Mircocode單元雖然從硬件上實施起來相對簡單,同時很適合復(fù)雜指令集的口味,但是相對純硬件的解碼單元,存在延遲較大的缺點(diǎn)。

    由于兩者互有優(yōu)劣,因此目前執(zhí)行X86指令集的處理器解碼單元中,通常都設(shè)置了這兩種結(jié)構(gòu)同時進(jìn)行指令的解碼翻譯工作,通常由硬件解碼器(Fastpath)負(fù)責(zé)包含μOp數(shù)目較少的短指令的解碼,而由Microcode解碼器負(fù)責(zé)包含μOp數(shù)目較多的長指令的解碼。
   
● 執(zhí)行部分

    接下來,經(jīng)過解碼的μOp,通過解碼單元的3個出口順著指令路徑進(jìn)入到處理器的發(fā)動機(jī)——執(zhí)行部分。

    首先進(jìn)入執(zhí)行部分的ICU(指令控制單元),Intel又稱ROB(微指令池)部分。此部分的任務(wù)是負(fù)責(zé)緩存由解碼單元而來的μOp,協(xié)調(diào)它們輸出到具體執(zhí)行單元的順序,負(fù)責(zé)處理執(zhí)行過程中出現(xiàn)的異常情況等。在執(zhí)行單元中擔(dān)任十分重要的角色。不過,在K8中此部分參數(shù)基本沒有變化,其所能容納的μOp數(shù)目仍然保持為原來K7的72條。出口方面,顯然也還是相同的3條出口。
  
    由ICU出口處送出(Dispatch)的μOp(微操作),將視其類型分別送往浮點(diǎn)/多媒體指令執(zhí)行部分或是整數(shù)/地址指令處理部分。

● 指令調(diào)度部分

    在執(zhí)行部分中,MacroOp從ICU送出后,還要先送往浮點(diǎn)/多媒體指令執(zhí)行單元或是整數(shù)/地址指令處理單元各自的指令調(diào)度器(Integer/FPU Scheduler)中進(jìn)行進(jìn)一步處理。

    指令調(diào)度器對超標(biāo)量處理器的執(zhí)行效率意義重大,我們以整數(shù)/地址指令調(diào)度器(Integer Scheduler)—又稱Reservation station(Res)為例,介紹指令調(diào)度器。它的工作大致可分以下三部分:

    其一是負(fù)責(zé)在指令執(zhí)行相對較慢的整數(shù)單元和指令送出(Dispatch)速度相對較快的ICU單元之間負(fù)責(zé)緩沖作用。其緩沖能力與指令調(diào)度器內(nèi)部所能存放的μOp條目數(shù)(entries)成正比——單從這一點(diǎn)上看,與一、二級緩存的容量和其在處理器與內(nèi)存之間所能起的緩沖作用的關(guān)系十分類似;

    其二是負(fù)責(zé)將ICU送來的μOp,根據(jù)μOp的類型,將其分別送往(issue)AGU或ALU;

    其三是根據(jù)存放操作數(shù)的寄存器以及AGU/ALU的空閑狀況,負(fù)責(zé)安排好μOp送往AGU/ALU單元的次序。對于超標(biāo)量處理器而言,指令的正確調(diào)度,對于避免出現(xiàn)流水線危機(jī)(Pipeline Hazard)的作用十分重大。

    在K8中,為了加強(qiáng)整數(shù)部分的性能,該部分所用的指令調(diào)度器所能緩沖的μOp條目數(shù)由原來的18條增加到了24條。增加整數(shù)指令調(diào)度器的μOp條目數(shù),顯然是當(dāng)心較慢的整數(shù)執(zhí)行單元或是頻繁使用的寄存器會使前面發(fā)布μOp的ICU陷入等待狀態(tài)。

● 整數(shù)執(zhí)行單元和浮點(diǎn)/多媒體指令執(zhí)行單元
  
    接下來,指令進(jìn)入整數(shù)執(zhí)行單元或浮點(diǎn)/多媒體指令執(zhí)行單元。

    整數(shù)處理單元仍然由3個AGU、3個ALU組成。不過,在執(zhí)行整數(shù)乘法時,K8核心的整數(shù)乘法單元(MULT)在處理32位整數(shù)數(shù)據(jù)乘法操作時,延遲由K7的4個周期減小為3個周期,具體如下表:

 改進(jìn)的整數(shù)乘法執(zhí)行效率

    浮點(diǎn)/多媒體指令執(zhí)行單元部分則基本沒有變化,仍然是原來的FADD、FMUL以及FMISC三個部分。強(qiáng)大的浮點(diǎn)單元應(yīng)該令A(yù)MD感到十分放心。

    不過對于多媒體指令特別是新增的SSE2指令處理方面,在執(zhí)行階段,可以說基本同K7不會有什么太大的區(qū)別,這方面唯一的改進(jìn),應(yīng)該在我們剛才提及的解碼部分,加快了這類指令的解碼速度。

    以上,我們粗略為大家介紹了K8處理器核心部分的改進(jìn)。希望對大家理解新的K8核心能起到一定的參考作用。<

0人已贊

關(guān)注我們

泡泡網(wǎng)

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