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

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

處理器的大腦!小編帶您讀懂CPU指令集

    泡泡網(wǎng)CPU頻道4月26日 在我們對(duì)一款CPU進(jìn)行全面的了解的時(shí)候,我們看看大多數(shù)人都遺漏了什么。很多人一般先從處理器的架構(gòu)開始,看看該處理器采用了什么架構(gòu),相比上一代或者競(jìng)爭(zhēng)對(duì)手的CPU在架構(gòu)上都有什么改進(jìn)或者優(yōu)勢(shì)。

    其次,再看這款CPU與同檔次的處理器的主頻孰高孰低,默認(rèn)高主頻的處理器一般是采用較好的晶圓來制造的,穩(wěn)定性更好,再次是看該處理器的緩存容量有多少(尤其是Intel的處理器非常依賴緩存),緩存充當(dāng)處理器與緩存之間的橋梁,起到一定的數(shù)據(jù)緩沖作用。

你知道處理器指令集嗎?指令集有何用

全面了解處理器

    最后我們要看該處理器采用的制程,一般制程越先進(jìn),發(fā)熱量越低,而相對(duì)越好超,而比較關(guān)注節(jié)能性能的網(wǎng)友,還會(huì)著重看該處理器的功耗為多少。那么我們看完這些參數(shù)是不是漏了些什么呢?

    其實(shí)仔細(xì)想想,我們會(huì)恍然大悟,還有該處理器支持的指令集。處理器單靠里面的硬件電路是不會(huì)計(jì)算的,必須依靠指令來計(jì)算和控制系統(tǒng)。

CPU指令集至關(guān)重要

    每款CPU設(shè)計(jì)的時(shí)候就制定了一套與內(nèi)部電路配合的指令系統(tǒng),從具體運(yùn)用看,我們可以在很多CPU身上看到的就有MMX(Multi Media Extended)、SSE(Streaming SIMD Extensions)、SSE2、SSE3、SSSE3、SSE4(分為SSE4.1與SSE4.2兩代,AMD的SSE4A包含在SSE4里面,這個(gè)后面會(huì)提到),另外還有AMD的3D NOW!系列。

    這些指令集可謂大大增強(qiáng)了CPU的多媒體、圖形圖象和Internet等的處理能力,下面就讓我們逐個(gè)了解下。

MMX增強(qiáng)多媒體表現(xiàn)

    MMX(Multi Media eXtension,多媒體擴(kuò)展指令集)指令集是英特爾于1996年推出,主要用于多媒體指令增強(qiáng)。

你知道處理器指令集嗎?指令集有何用

支持MMX指令集的奔騰處理器

    MMX指令集中包括有57條多媒體指令,通過這些指令可以一次處理多個(gè)數(shù)據(jù),在處理結(jié)果超過實(shí)際處理能力的時(shí)候也能進(jìn)行正常處理。MMX的益處在于,當(dāng)時(shí)存在的操作系統(tǒng)不必為此而做出任何修改便可以輕松地執(zhí)行MMX程序。

    支持MMX的處理器擁有8個(gè)MMX寄存器,每個(gè)有64-bit(8byte)的容量。MMX僅支持整數(shù)操作,支持1/2/4/8-bytes數(shù)據(jù)。那即是說,一個(gè)MMX寄存器能夠儲(chǔ)存8/4/2/1個(gè)操作。這造成了MMX指令集與x87浮點(diǎn)運(yùn)算指令不能夠同時(shí)執(zhí)行,必須做密集式的交錯(cuò)切換才可以正常執(zhí)行,這種情況就勢(shì)必造成整個(gè)系統(tǒng)運(yùn)行質(zhì)量的下降。目前AMD和和英特爾處理器都支持這一指令集。

3D NOW!加速三維渲染

    3DNow!指令集是由AMD提出的,廣泛應(yīng)用于其K6-2 、K6-3以及Athlon(K7)處理器上。3DNow!跟后面提到的SSE非常類似,但也有一些不同。它擁有 8個(gè)新的寄存器,卻是64-bit的,并非128-bit。這樣,它只能存儲(chǔ)兩個(gè)浮點(diǎn)數(shù)據(jù),而非四個(gè)。

你知道處理器指令集嗎?指令集有何用

K6處理器開始具有3D NOW!指令集

    3DNow!可以執(zhí)行操作:相加/相乘 /相除運(yùn)算,精確或者近似平分根。3DNow!指令集技術(shù)其實(shí)就是21條機(jī)器碼的擴(kuò)展指令集。3DNow!指令集主要針對(duì)三維建模、坐標(biāo)變換 和效果渲染等三維應(yīng)用場(chǎng)合,在軟件的配合下,可以大幅度提高3D處理性能。后來在Athlon上開發(fā)了Enhanced 3DNow!。

SSE加快處理多媒體應(yīng)用

    SSE全拼是Streaming SIMD Extension,中文名稱為SIMD擴(kuò)展流。SIMD英文全稱為 Single  Istruction Multiple Data(單指令多數(shù)據(jù)),即一條指令可以完成多個(gè)操作。SSE是為提供處理器浮點(diǎn)性能而開發(fā)的擴(kuò)展指令集。

    SSE指令集包括了70條指令,其中包含單指令多數(shù)據(jù)浮點(diǎn)計(jì)算、以及額外的SIMD整數(shù)和高速緩存控制指令。其優(yōu)勢(shì)包括:更高分辨率的圖像瀏覽和處理、高質(zhì)量音頻、MPEG2視頻、同時(shí)MPEG2加解密;語音識(shí)別占用更少CPU資源;更高精度和更快響應(yīng)速度。

你知道處理器指令集嗎?指令集有何用

SSE與MMX指令集

    SSE指令與3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術(shù)的絕大部分功能,只是實(shí)現(xiàn)的方法不同。SSE兼容MMX指令,它可以通過SIMD和單時(shí)鐘周期并行處理多個(gè)浮點(diǎn)數(shù)據(jù)來有效地提高浮點(diǎn)運(yùn)算速度。

    SSE(Streaming SIMD Extensions)是英特爾在AMD的3D Now!發(fā)布一年之后,在其計(jì)算機(jī)芯片Pentium III中引入的指令集,是MMX的超集。AMD后來在Athlon XP中加入了對(duì)這個(gè)指令集的支持。這個(gè)指令集增加了對(duì)8個(gè)128位寄存器XMM0-XMM7的支持,每個(gè)寄存器可以存儲(chǔ)4個(gè)單精度浮點(diǎn)數(shù)。使用這些寄存器的程序必須使用FXSAVE和FXRSTR指令來保持和恢復(fù)狀態(tài)。但是在Pentium III對(duì)SSE的實(shí)現(xiàn)中,浮點(diǎn)數(shù)寄存器又一次被新的指令集占用了,但是這一次切換運(yùn)算模式不是必要的了,只是SSE和浮點(diǎn)數(shù)指令不能同時(shí)進(jìn)入CPU的處理線而已。

SSE2 更精確處理浮點(diǎn)數(shù)

    SSE2是英特爾為了應(yīng)對(duì)AMD的3Dnow!+指令集,在SSE的基礎(chǔ)上開發(fā)了SSE2,增加了一些指令,使得其處理器性能有大幅度提高。

你知道處理器指令集嗎?指令集有何用

SSE2最早在奔4引入

    最早在Pentium 4處理器的最初版本中引入,AMD后來在Opteron 和Athlon 64處理器中也加入了SSE2的支持。到P4設(shè)計(jì)結(jié)束為止,Intel增加了一套包括144條新建指令的SSE2指令集。SSE2涉及了多重的數(shù)據(jù)目標(biāo)上立刻執(zhí)行一單個(gè)的指令(即SIMD)。最重要的是SSE2能處理128位和兩倍精密浮點(diǎn)數(shù)學(xué)運(yùn)算。

    處理更精確浮點(diǎn)數(shù)的能力使SSE2成為加速多媒體程序、3D處理工程以及工作站類型任務(wù)的基礎(chǔ)配置。

    SSE2指令集添加了對(duì)64位雙精度浮點(diǎn)數(shù)的支持,以及對(duì)整型數(shù)據(jù)的支持,也就是說這個(gè)指令集中所有的MMX指令都是多余的了,同時(shí)也避免了占用浮點(diǎn)數(shù)寄存器。這個(gè)指令集還增加了對(duì)CPU快取的控制指令。AMD對(duì)它的擴(kuò)展增加了8個(gè)XMM寄存器,但是需要切換到64位模式(AMD64)才可以使用這些寄存器。Intel后來在其EM64T架構(gòu)中也增加了對(duì)AMD64的支持。

SSE3促進(jìn)五個(gè)應(yīng)用

    SSE3指令集是規(guī)模最小的指令集,此前MMX包含有57條命令,SSE包含有50條命令,SSE2包含有144條命令,SSE3包含有13條命令。此外Intel害針對(duì)SSE3指令集作了一次額外擴(kuò)充,那就是SSSE3是,最早內(nèi)建于Core 2 Duo處理器中。

你知道處理器指令集嗎?指令集有何用

Intel Core 2 Duo處理器

    SSE3指令集共分為5個(gè)應(yīng)用層: 第一層是“數(shù)據(jù)傳輸”,只有一條指令:FISTTP,它有利于x87浮點(diǎn)轉(zhuǎn)換成整數(shù),并可以大大提高優(yōu)化的效率。 第二層是“數(shù)據(jù)處理”,指令共有五條,分別是ADDSUBPS,ADDSUBPD,MOVSHDUP,MOVSLDUP,MOVDDUP。這些指令可以簡(jiǎn)化復(fù)雜數(shù)據(jù)的處理過程,由于未來數(shù)據(jù)處理流量將會(huì)越來越大,因此Intel在這里應(yīng)用的指令集最多、達(dá)到了五條。 第三層是“特殊處理”,也只有一條:LDDQU。在這條指令主要針對(duì)視頻解碼,用來提高處理器對(duì)處理媒體數(shù)據(jù)結(jié)果的精確性。 第四層是“優(yōu)化”,共有四條指令,分別是HADDPS,HSUBPS,HADDPD,HSUBPD,它們可以對(duì)程序起到自動(dòng)優(yōu)化的作用,對(duì)處理3D圖形相當(dāng)有用。 第五層是“超線程性能增強(qiáng)”,共有兩條針對(duì)線程處理的指令:MONITOR, MWAIT,這有助于增加Intel超線程的處理能力、大大簡(jiǎn)化了超線程的數(shù)據(jù)處理過程。

SSE4.1改進(jìn)視頻處理

    SSE4.1是Intel在Penryn核心的Core 2 Duo與Core 2 Solo處理器時(shí),新增的47條新多媒體指令集,用來加強(qiáng)視頻編輯等方面的應(yīng)用。另外,AMD也開發(fā)了屬于自己的SSE4a多媒體指令集,并內(nèi)建在Phenom與Opteron等K10架構(gòu)處理器中,不過相關(guān)應(yīng)用都差不多,并且無法與Intel的SSE4系列指令集相容。

你知道處理器指令集嗎?指令集有何用

緩慢的視頻處理

    據(jù)了解,在進(jìn)行視頻編碼時(shí)需要進(jìn)行動(dòng)態(tài)預(yù)測(cè)(Motion Estimation)及差分編碼方式去除相鄰2張影像之相關(guān)性,這是一個(gè)非常復(fù)雜的運(yùn)算動(dòng)作。在沒有SSE4指令集時(shí),完成一個(gè)步驟需要以下指令語句:

  for (int moveblock=0;moveblock<16;moveblock++)

  for(int line=0; line<16; line++) // Does the 16 pixels large in 4 iteration

  {

  int i=0;

  sum0+=abs( pBlock1[j]-pBlock2)+abs(pBlock1[j+1]-pBlock2[i+1])+abs(pBlock1[j+2]-pBlock2[i+2])+abs(pBlock1[j+3]-pBlock2[i+3]); // Compare with 0 pixel offset

  sum1+=abs(pBlock1[j+1]-pBlock2)+abs(pBlock1[j+2]-pBlock2[i+1])+abs(pBlock1[j+3]-pBlock2[i+2])+abs(pBlock1[j+4]-pBlock2[i+3]); // Compare with 1 pixel offset

  sum2+=abs(pBlock1[j+2]-pBlock2)+abs(pBlock1[j+3]-pBlock2[i+1])+abs(pBlock1[j+4]-pBlock2[i+2])+abs(pBlock1[j+5]-pBlock2[i+3]); // Compare with 2 pixel offset

  sum3+=abs(pBlock1[j+3]-pBlock2)+abs(pBlock1[j+4]-pBlock2[i+1])+abs(pBlock1[j+5]-pBlock2[i+2])+abs(pBlock1[j+6]-pBlock2[i+3]); // Compare with 3 pixel offset

  sum4+=abs(pBlock1[j+4]-pBlock2)+abs(pBlock1[j+5]-pBlock2[i+1])+abs(pBlock1[j+6]-pBlock2[i+2])+abs(pBlock1[j+7]-pBlock2[i+3]); // Compare with 4 pixel offset

    sum5+=abs(pBlock1[j+5]-pBlock2)+abs(pBlock1[j+6]-pBlock2[i+1])+abs(pBlock1[j+7]-pBlock2[i+2])+abs(pBlock1[j+8]-pBlock2[i+3]); // Compare with 5 pixel offset

    sum6+=abs(pBlock1[j+6]-pBlock2)+abs(pBlock1[j+7]-pBlock2[i+1])+abs(pBlock1[j+8]-pBlock2[i+2])+abs(pBlock1[j+9]-pBlock2[i+3]); // Compare with 6 pixel offset

    sum7+=abs(pBlock1[j+7]-pBlock2)+abs(pBlock1[j+8]-pBlock2[i+1])+abs(pBlock1[j+9]-pBlock2[i+2])+abs(pBlock1[j+10]-pBlock2[i+3]); // Compare with 7 pixel offset

  i=4;

  j=moveblock+4;

  …

  … }

  }

  一大串的指令極度浪費(fèi)處理器資源,而在支持SSE4指令集的處理器上,只需要采用4 SAD運(yùn)算指令:

  MPSADBW xmm0,xmm1,0

  便完全代替了以上繁復(fù)的指令串,大幅提升動(dòng)態(tài)預(yù)測(cè)(Motion Estimation)及差分編碼的運(yùn)算速度。

SSE4.2優(yōu)化文本處理

    SSE4.2指令集相比SSE4.1新增了STTNI(STring & Text New Instructions)和ATA(Application Targeted Accelerators)兩個(gè)部分。此次的改進(jìn)不是針對(duì)多媒體而是加速對(duì)XML文本的字符串操作、存儲(chǔ)校驗(yàn)等。

你知道處理器指令集嗎?指令集有何用

漂亮的藝術(shù)字

    SSE4.2加入了七個(gè)新指令:CRC32、PCMPESTRI、PCMPESTRM、PCMPISTRI、PCMPISTRM、PCMPGTQ 與 POPCNT這樣一來,采用SSE4.2指令集的處理器,XML的解析速度最高是原來的3.8倍,而指令周期節(jié)省可以達(dá)到2.7倍。

    在ATA領(lǐng)域,SSE 4.2指令集對(duì)于大規(guī)模數(shù)據(jù)集中處理和提高通信效率也都會(huì)發(fā)揮應(yīng)有的作用,這些對(duì)于企業(yè)IT應(yīng)用是有幫助大有裨益的。

SSE5融匯多條指令

    長(zhǎng)久以來,Intel一直在處理器指令集方面具有霸主地位,而SSE5得出現(xiàn)就是AMD試圖改變這一切。SSE5初期規(guī)劃將加入超過100條新指令,其中最引人注目的就是三算子指令(3-Operand Instructions)及熔合乘法累積(Fused Multiply Accumulate)。

    三算子指令讓處理器可將一個(gè)數(shù)學(xué)或邏輯函式庫,套用到算子或輸入資料。借由增加算子的數(shù)量,一個(gè) x86 指令能處理二至三筆資料, SSE5允許將多個(gè)簡(jiǎn)單指令匯整成一個(gè)指令,達(dá)到更有效率的指令處理模式。提升為三運(yùn)算指令的運(yùn)算能力,是少數(shù) RISC 架構(gòu)的水平。

你知道處理器指令集嗎?指令集有何用

AMD對(duì)“推土機(jī)”處理器抱厚望

    熔合乘法累積讓允許建立新的指令,有效率地執(zhí)行各種復(fù)雜的運(yùn)算。熔合乘法累積可結(jié)合乘法與加法運(yùn)算,透過單一指令執(zhí)行多筆重復(fù)計(jì)算。透過簡(jiǎn)化程式碼,讓系統(tǒng)能迅速執(zhí)行繪圖著色、快速相片著色、音場(chǎng)音效,以及復(fù)雜向量演算等效能密集的應(yīng)用作業(yè)。SSE5將很可能內(nèi)建于AMD下一代Bulldozer(推土機(jī))核心。

    除了以上幾個(gè)常見到的指令集,還有兩個(gè)“非主流”指令集:AVX與FMA。

    AVX是Intel的SSE延伸架構(gòu),如IA16至IA32般的把暫存器XMM 128bit提升至YMM 256bit,以增加一倍的運(yùn)算效率。此架構(gòu)支持了三運(yùn)算指令(3-Operand Instructions),減少在編碼上需要先復(fù)制才能運(yùn)算的動(dòng)作。在微碼部分使用了LES LDS這兩少用的指令作為延伸指令Prefix。

    FMA是Intel的AVX擴(kuò)充指令集,是Fused Multiply Accumulate的簡(jiǎn)寫,翻譯過來就是熔合乘法累積。

你知道處理器指令集嗎?指令集有何用

Intel Core i3-540

    Intel Core i3-540默認(rèn)主頻高達(dá)3.06GHz,基于雙核心四線程設(shè)計(jì),采用最新32nm設(shè)計(jì)。功耗僅73W,并集成733MHz的顯示核心。支持MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, EM64T指令集。

● 總結(jié)

    現(xiàn)在我們算是對(duì)CPU中的指令集有了一番了解,在我們?nèi)蘸筇暨x處理器時(shí),可不要忘了這個(gè)重要的參數(shù)?!?

0人已贊

關(guān)注我們

泡泡網(wǎng)

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