擴(kuò)展指令集概述
MMX(Multimedia Extensions,多媒體擴(kuò)展指令集)是Intel在1996年推出的一項多媒體指令增強(qiáng)技術(shù),是 Intel公司第一次對x86 指令集進(jìn)行的多媒體指令擴(kuò)展,它增加了4個新的數(shù)據(jù)類型、8個64位寄存器和57條指令,并且采用了SIMD技術(shù),同時保持了與現(xiàn)有軟件的兼容。MMX指令集使CPU處理圖像、動畫、多媒體通信、語音識別以及音頻解壓縮等方面的能力有了顯著提高。浮點運(yùn)算能力是關(guān)系到CPU對多媒體、3D圖形處理能力的一個重要指標(biāo),而MMX指令集沒有大力加強(qiáng)浮點運(yùn)算能力。在3D圖形、Internet 3D網(wǎng)頁應(yīng)用日趨增多的情況下,MMX指令集難以完全滿足需要。
SIMD 技術(shù)SIMD(Single Instruction Multiple-Data,單指令多數(shù)據(jù)流)是Intel 為MMX技術(shù)設(shè)計的一組基本的、通用的指令集,以滿足各種多媒體和通信應(yīng)用的需要。該技術(shù)允許利用任何新增加的單個指令處理多組數(shù)據(jù),以并行方式處理多個數(shù)據(jù)元素,從而提高了多媒體和通信軟件的運(yùn)行速率。3D Now!是AMD公司開發(fā)的多媒體擴(kuò)展指令集,共有 27條指令。與MMX技術(shù)側(cè)重的整數(shù)運(yùn)算不同,3DNow!主要針對三維建模、坐標(biāo)變換、效果渲染等三維應(yīng)用場合而設(shè)計,在軟件的配合下,可以大幅度提高3D處理性能。但由于指令有限,該指令集主要應(yīng)用于3D游戲,而對其他商業(yè)圖形的應(yīng)用處理支持不足。SSE(Internet Streaming SIMD Extension)被 Intel公司首次應(yīng)用于Pentium Ⅲ中。SSE共有近70條指令,其中包含50條SIMD浮點運(yùn)算指令、12條MMX整數(shù)運(yùn)算增強(qiáng)指令、8條優(yōu)化內(nèi)存連續(xù)數(shù)據(jù)塊傳輸指令。它包括了原MMX和3D Now!指令集中的所有功能,特別加強(qiáng)了SIMD浮點處理能力,并針對Internet的發(fā)展,加強(qiáng)了處理3D網(wǎng)頁的能力。SSE指令集與3D Now!指令集互不兼容,但SSE包含了3D Now!技術(shù)的絕大部分功能,只是實現(xiàn)的方法不同。SSE兼容MMX指令。SSE2是Intel在Pentium 4處理器中推出的擴(kuò)展指令集。和SSE指令集相比,SSE2指令集總共有144條指令,其中包括原有的68個SSE指令和新增加的76個SSE2指令。SSE2指令將傳統(tǒng)整數(shù)MMX寄存器擴(kuò)展成128位,還提供了128 位SIMD整數(shù)運(yùn)算操作和128位雙精密度浮點運(yùn)算操作。
MMX指令集實質(zhì)是一種SIMD數(shù)據(jù)處理方式(單指令流,多數(shù)據(jù)流)。由Intel公司開發(fā),它允許CPU同時對2-4個甚至8個數(shù)據(jù)進(jìn)行并行處理。
它有效的提高了CPU對視頻、音頻等多媒體方面的處理速度,但3D運(yùn)算多為浮點運(yùn)算,而MMX指令集對CPU的浮點運(yùn)算能力沒有什么貢獻(xiàn),因此MMX指令集在制作3D上沒有實際意義。
擴(kuò)展指令集是指CPU增加的多媒體或3D處理指令,這些擴(kuò)展指令可以提高CPU處理多媒體和3D圖形的能力,著名的有MMX(多媒體擴(kuò)展指令)、SSE(因特網(wǎng)數(shù)據(jù)流單指令擴(kuò)展)和3D Now!指令集。
它也是一種SIMD數(shù)據(jù)處理方式,但它的加速對象卻是CPU浮點運(yùn)算。它是一個時鐘周期內(nèi)可以同時處理4個浮點運(yùn)算指令或兩條MMX指令。
究其背景,原來"KNI"指令集是Intel公司最早為其下一代芯片命名的指令集名稱,而所謂的"MMX2"則完全是硬件評論家們和媒體憑感覺和印象對"KNI"的 評價,Intel公司從未正式發(fā)布過關(guān)于MMX2的消息。而最終推出的SSE指令集也就是所謂勝出的"互聯(lián)網(wǎng)SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運(yùn)算效率的50條SIMD(單指令多數(shù)據(jù)技術(shù))浮點運(yùn)算指令、12條MMX 整數(shù)運(yùn)算增強(qiáng)指令、8條優(yōu)化內(nèi)存中連續(xù)數(shù)據(jù)塊傳輸指令。理論上這些指令對流行的圖像處理、浮點運(yùn)算、3D運(yùn)算、視頻處理、音頻處理等諸多多媒體應(yīng)用起到全面強(qiáng)化的作用。S SE指令與3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術(shù)的絕大部分功能,只是實現(xiàn)的方法不同。SSE兼容MMX指令,它可以通過SIMD和單時鐘周期并行處理多個浮點數(shù)據(jù)來有效地提高浮點運(yùn)算速度。