您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>主機(jī)配件>cpu>

什么是cpu多媒體指令集

2010年02月04日 08:39 www.ttokpm.com 作者:佚名 用戶評(píng)論(0

什么是cpu多媒體指令集

CPU依靠指令來(lái)計(jì)算和控制系統(tǒng),每款CPU在設(shè)計(jì)時(shí)就規(guī)定了一系列與其硬件電路相配合的指令系統(tǒng)。指令的強(qiáng)弱也是CPU的重要指標(biāo),指令集是提高微處理器效率的最有效工具之一。從現(xiàn)階段的主流體系結(jié)構(gòu)講,指令集可分為復(fù)雜指令集和精簡(jiǎn)指令集兩部分,而從具體運(yùn)用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的擴(kuò)展指令集,分別增強(qiáng)了CPU的多媒體、圖形圖象和Internet等的處理能力。我們通常會(huì)把CPU的擴(kuò)展指令集稱為"CPU的指令集"。

精簡(jiǎn)指令集的運(yùn)用

  在最初發(fā)明計(jì)算機(jī)的數(shù)十年里,隨著計(jì)算機(jī)功能日趨增大,性能日趨變強(qiáng),內(nèi)部元器件也越來(lái)越多,指令集日趨復(fù)雜,過(guò)于冗雜的指令嚴(yán)重的影響了計(jì)算機(jī)的工作效率。后來(lái)經(jīng)過(guò)研究發(fā)現(xiàn),在計(jì)算機(jī)中,80%程序只用到了20%的指令集,基于這一發(fā)現(xiàn),RISC精簡(jiǎn)指令集被提了出來(lái),這是計(jì)算機(jī)系統(tǒng)架構(gòu)的一次深刻革命。RISC體系結(jié)構(gòu)的基本思路是:抓住CISC指令系統(tǒng)指令種類(lèi)太多、指令格式不規(guī)范、尋址方式太多的缺點(diǎn),通過(guò)減少指令種類(lèi)、規(guī)范指令格式和簡(jiǎn)化尋址方式,方便處理器內(nèi)部的并行處理,提高VLSI器件的使用效率,從而大幅度地提高處理器的性能。

  RISC指令集有許多特征,其中最重要的有:

  1. 指令種類(lèi)少,指令格式規(guī)范:RISC指令集通常只使用一種或少數(shù)幾種格式。指令長(zhǎng)度單一(一般4個(gè)字節(jié)),并且在字邊界上對(duì)齊。字段位置、特別是操作碼的位置是固定的。
  2. 尋址方式簡(jiǎn)化:幾乎所有指令都使用寄存器尋址方式,尋址方式總數(shù)一般不超過(guò)5個(gè)。其他更為復(fù)雜的尋址方式,如間接尋址等則由軟件利用簡(jiǎn)單的尋址方式來(lái)合成。
  3. 大量利用寄存器間操作:RISC指令集中大多數(shù)操作都是寄存器到寄存器操作,只以簡(jiǎn)單的Load和Store操作訪問(wèn)內(nèi)存。因此,每條指令中訪問(wèn)的內(nèi)存地址不會(huì)超過(guò)1個(gè),訪問(wèn)內(nèi)存的操作不會(huì)與算術(shù)操作混在一起。
  4. 簡(jiǎn)化處理器結(jié)構(gòu):使用RISC指令集,可以大大簡(jiǎn)化處理器的控制器和其他功能單元的設(shè)計(jì),不必使用大量專用寄存器,特別是允許以硬件線路來(lái)實(shí)現(xiàn)指令操作,而不必像CISC處理器那樣使用微程序來(lái)實(shí)現(xiàn)指令操作。因此RISC處理器不必像CISC處理器那樣設(shè)置微程序控制存儲(chǔ)器,就能夠快速地直接執(zhí)行指令。
  5. 便于使用VLSI技術(shù):隨著LSI和VLSI技術(shù)的發(fā)展,整個(gè)處理器(甚至多個(gè)處理器)都可以放在一個(gè)芯片上。RISC體系結(jié)構(gòu)可以給設(shè)計(jì)單芯片處理器帶來(lái)很多好處,有利于提高性能,簡(jiǎn)化VLSI芯片的設(shè)計(jì)和實(shí)現(xiàn)。基于VLSI技術(shù),制造RISC處理器要比CISC處理器工作量小得多,成本也低得多。
  6. 加強(qiáng)了處理器并行能力:RISC指令集能夠非常有效地適合于采用流水線、超流水線和超標(biāo)量技術(shù),從而實(shí)現(xiàn)指令級(jí)并行操作,提高處理器的性能。目前常用的處理器內(nèi)部并行操作技術(shù)基本上是基于RISC體系結(jié)構(gòu)發(fā)展和走向成熟的。


  正由于RISC體系所具有的優(yōu)勢(shì),它在高端系統(tǒng)得到了廣泛的應(yīng)用,而CISC體系則在桌面系統(tǒng)中占據(jù)統(tǒng)治地位。而在如今,在桌面領(lǐng)域,RISC也不斷滲透,預(yù)計(jì)未來(lái),RISC將要一統(tǒng)江湖。

CPU的擴(kuò)展指令集

  對(duì)于CPU來(lái)說(shuō),在基本功能方面,它們的差別并不太大,基本的指令集也都差不多,但是許多廠家為了提升某一方面性能,又開(kāi)發(fā)了擴(kuò)展指令集,擴(kuò)展指令集定義了新的數(shù)據(jù)和指令,能夠大大提高某方面數(shù)據(jù)處理能力,但必需要有軟件支持。

MMX 指令集
??? MMX(Multi Media eXtension,多媒體擴(kuò)展指令集)指令集是Intel公司于1996年推出的一項(xiàng)多媒體指令增強(qiáng)技術(shù)。MMX指令集中包括有57條多媒體指令,通過(guò)這些指令可以一次處理多個(gè)數(shù)據(jù),在處理結(jié)果超過(guò)實(shí)際處理能力的時(shí)候也能進(jìn)行正常處理,這樣在軟件的配合下,就可以得到更高的性能。MMX的益處在于,當(dāng)時(shí)存在的操作系統(tǒng)不必為此而做出任何修改便可以輕松地執(zhí)行MMX程序。但是,問(wèn)題也比較明顯,那就是MMX指令集與x87浮點(diǎn)運(yùn)算指令不能夠同時(shí)執(zhí)行,必須做密集式的交錯(cuò)切換才可以正常執(zhí)行,這種情況就勢(shì)必造成整個(gè)系統(tǒng)運(yùn)行質(zhì)量的下降。

SSE指令集
??? SSE(Streaming SIMD Extensions,單指令多數(shù)據(jù)流擴(kuò)展)指令集是Intel在Pentium III處理器中率先推出的。其實(shí),早在PIII正式推出之前,Intel公司就曾經(jīng)通過(guò)各種渠道公布過(guò)所謂的KNI(Katmai New Instruction)指令集,這個(gè)指令集也就是SSE指令集的前身,并一度被很多傳媒稱之為MMX指令集的下一個(gè)版本,即MMX2指令集。究其背景,原來(lái)"KNI"指令集是Intel公司最早為其下一代芯片命名的指令集名稱,而所謂的"MMX2"則完全是硬件評(píng)論家們和媒體憑感覺(jué)和印象對(duì)"KNI"的 評(píng)價(jià),Intel公司從未正式發(fā)布過(guò)關(guān)于MMX2的消息。

  而最終推出的SSE指令集也就是所謂勝出的"互聯(lián)網(wǎng)SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運(yùn)算效率的50條SIMD(單指令多數(shù)據(jù)技術(shù))浮點(diǎn)運(yùn)算指令、12條MMX 整數(shù)運(yùn)算增強(qiáng)指令、8條優(yōu)化內(nèi)存中連續(xù)數(shù)據(jù)塊傳輸指令。理論上這些指令對(duì)目前流行的圖像處理、浮點(diǎn)運(yùn)算、3D運(yùn)算、視頻處理、音頻處理等諸多多媒體應(yīng)用起到全面強(qiáng)化的作用。S SE指令與3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術(shù)的絕大部分功能,只是實(shí)現(xiàn)的方法不同。SSE兼容MMX指令,它可以通過(guò)SIMD和單時(shí)鐘周期并行處理多個(gè)浮點(diǎn)數(shù)據(jù)來(lái)有效地提高浮點(diǎn)運(yùn)算速度。

SSE2指令集
??? SSE2(Streaming SIMD Extensions 2,Intel官方稱為SIMD 流技術(shù)擴(kuò)展 2或數(shù)據(jù)流單指令多數(shù)據(jù)擴(kuò)展指令集 2)指令集是Intel公司在SSE指令集的基礎(chǔ)上發(fā)展起來(lái)的。相比于SSE,SSE2使用了144個(gè)新增指令,擴(kuò)展了MMX技術(shù)和SSE技術(shù),這些指令提高了廣大應(yīng)用程序的運(yùn)行性能。隨MMX技術(shù)引進(jìn)的SIMD整數(shù)指令從64位擴(kuò)展到了128 位,使SIMD整數(shù)類(lèi)型操作的有效執(zhí)行率成倍提高。雙倍精度浮點(diǎn)SIMD指令允許以 SIMD格式同時(shí)執(zhí)行兩個(gè)浮點(diǎn)操作,提供雙倍精度操作支持有助于加速內(nèi)容創(chuàng)建、財(cái)務(wù)、工程和科學(xué)應(yīng)用。除SSE2指令之外,最初的SSE指令也得到增強(qiáng),通過(guò)支持多種數(shù)據(jù)類(lèi)型(例如,雙字和四字)的算術(shù)運(yùn)算,支持靈活并且動(dòng)態(tài)范圍更廣的計(jì)算功能。SSE2指令可讓軟件開(kāi)發(fā)員極其靈活的實(shí)施算法,并在運(yùn)行諸如MPEG-2、MP3、3D圖形等之類(lèi)的軟件時(shí)增強(qiáng)性能。Intel是從Willamette核心的Pentium 4開(kāi)始支持SSE2指令集的,而AMD則是從K8架構(gòu)的SledgeHammer核心的Opteron開(kāi)始才支持SSE2指令集的。

SSE3指令集
??? SSE3(Streaming SIMD Extensions 3,Intel官方稱為SIMD 流技術(shù)擴(kuò)展 3或數(shù)據(jù)流單指令多數(shù)據(jù)擴(kuò)展指令集 3)指令集是Intel公司在SSE2指令集的基礎(chǔ)上發(fā)展起來(lái)的。相比于SSE2,SSE3在SSE2的基礎(chǔ)上又增加了13個(gè)額外的SIMD指令。SSE3 中13個(gè)新指令的主要目的是改進(jìn)線程同步和特定應(yīng)用程序領(lǐng)域,例如媒體和游戲。這些新增指令強(qiáng)化了處理器在浮點(diǎn)轉(zhuǎn)換至整數(shù)、復(fù)雜算法、視頻編碼、SIMD浮點(diǎn)寄存器操作以及線程同步等五個(gè)方面的表現(xiàn),最終達(dá)到提升多媒體和游戲性能的目的。Intel是從Prescott核心的Pentium 4開(kāi)始支持SSE3指令集的,而AMD則是從2005年下半年Troy核心的Opteron開(kāi)始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3與Intel的SSE3并不完全相同,主要是刪除了針對(duì)Intel超線程技術(shù)優(yōu)化的部分指令。

3D Now !指令集
??? 由AMD公司提出的3DNow!指令集應(yīng)該說(shuō)出現(xiàn)在SSE指令集之前,并被AMD廣泛應(yīng)用于其K6-2 、K6-3以及Athlon(K7)處理器上。3DNow!指令集技術(shù)其實(shí)就是21條機(jī)器碼的擴(kuò)展指令集。

  與Intel公司的MMX技術(shù)側(cè)重于整數(shù)運(yùn)算有所不同,3DNow!指令集主要針對(duì)三維建模、坐標(biāo)變換 和效果渲染等三維應(yīng)用場(chǎng)合,在軟件的配合下,可以大幅度提高3D處理性能。后來(lái)在Athlon上開(kāi)發(fā)了Enhanced 3DNow!。這些AMD標(biāo)準(zhǔn)的SIMD指令和Intel的SSE具有相同效能。因?yàn)槭艿絀ntel在商業(yè)上以及Pentium III成功的影響,軟件在支持SSE上比起3DNow!更為普遍。Enhanced 3DNow!AMD公司繼續(xù)增加至52個(gè)指令,包含了一些SSE碼,因而在針對(duì)SSE做最佳化的軟件中能獲得更好的效能。

??? 目前最新的Intel CPU可以支持SSE、SSE2、SSE3指令集。早期的AMD CPU僅支持3DNow!指令集,隨著Intel的逐步授權(quán),從Venice核心的Athlon 64開(kāi)始,AMD的CPU不僅進(jìn)一步發(fā)展了3DNow!指令集,并且可以支持Inel的SSE、SSE2、SSE3指令集。不過(guò)目前業(yè)界接受比較廣泛的還是Intel的SSE系列指令集,AMD的3DNow!指令集應(yīng)用比較少。

非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?