cpu指令集是怎么意思
cpu指令集是怎么意思
有些網(wǎng)友可能第一次接觸cpu指令集,不太清楚意思,那么下面就由學(xué)習(xí)啦小編來給你們說說cpu指令集是怎么意思吧,希望可以幫到你們哦!
cpu指令集的分析分析如下:
以下是對一些指令集進行的基本介紹:
CPU的擴展指令集
對于CPU來說,在基本功能方面,它們的差別并不太大,基本的指令集也都差不多,但是許多廠家為了提升某一方面性能,又開發(fā)了擴展指令集,擴展指令集定義了新的數(shù)據(jù)和指令,能夠大大提高某方面數(shù)據(jù)處理能力,但必需要有軟件支持。
MMX 指令集
MMX(Multi Media eXtension,多媒體擴展指令集)指令集是Intel公司于1996年推出的一項多媒體指令增強技術(shù)。MMX指令集中包括有57條多媒體指令,通過這些指令可以一次處理多個數(shù)據(jù),在處理結(jié)果超過實際處理能力的時候也能進行正常處理,這樣在軟件的配合下,就可以得到更高的性能。
MMX的益處在于,當時存在的操作系統(tǒng)不必為此而做出任何修改便可以輕松地執(zhí)行MMX程序。但是,問題也比較明顯,那就是MMX指令集與x87浮點運算指令不能夠同時執(zhí)行,必須做密集式的交錯切換才可以正常執(zhí)行,這種情況就勢必造成整個系統(tǒng)運行質(zhì)量的下降。
SSE指令集
SSE(Streaming SIMD Extensions,單指令多數(shù)據(jù)流擴展)指令集是Intel在Pentium III處理器中率先推出的。其實,早在PIII正式推出之前,Intel公司就曾經(jīng)通過各種渠道公布過所謂的KNI(Katmai New Instruction)指令集,這個指令集也就是SSE指令集的前身,并一度被很多傳媒稱之為MMX指令集的下一個版本,即MMX2指令集。究其背景,原來"KNI"指令集是Intel公司最早為其下一代芯片命名的指令集名稱,而所謂的"MMX2"則完全是硬件評論家們和媒體憑感覺和印象對"KNI"的 評價,Intel公司從未正式發(fā)布過關(guān)于MMX2的消息。
而最終推出的SSE指令集也就是所謂勝出的"互聯(lián)網(wǎng)SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運算效率的50條SIMD(單指令多數(shù)據(jù)技術(shù))浮點運算指令、12條MMX 整數(shù)運算增強指令、8條優(yōu)化內(nèi)存中連續(xù)數(shù)據(jù)塊傳輸指令。理論上這些指令對目前流行的圖像處理、浮點運算、3D運算、視頻處理、音頻處理等諸多多媒體應(yīng)用起到全面強化的作用。S SE指令與3DNow!指令彼此互不兼容,但SSE包含了3DNow!技術(shù)的絕大部分功能,只是實現(xiàn)的方法不同。SSE兼容MMX指令,它可以通過SIMD和單時鐘周期并行處理多個浮點數(shù)據(jù)來有效地提高浮點運算速度。
SSE2指令集
SSE2(Streaming SIMD Extensions 2,Intel官方稱為SIMD 流技術(shù)擴展 2或數(shù)據(jù)流單指令多數(shù)據(jù)擴展指令集 2)指令集是Intel公司在SSE指令集的基礎(chǔ)上發(fā)展起來的。相比于SSE,SSE2使用了144個新增指令,擴展了MMX技術(shù)和SSE技術(shù),這些指令提高了廣大應(yīng)用程序的運行性能。隨MMX技術(shù)引進的SIMD整數(shù)指令從64位擴展到了128 位,使SIMD整數(shù)類型操作的有效執(zhí)行率成倍提高。
雙倍精度浮點SIMD指令允許以 SIMD格式同時執(zhí)行兩個浮點操作,提供雙倍精度操作支持有助于加速內(nèi)容創(chuàng)建、財務(wù)、工程和科學(xué)應(yīng)用。除SSE2指令之外,最初的SSE指令也得到增強,通過支持多種數(shù)據(jù)類型(例如,雙字和四字)的算術(shù)運算,支持靈活并且動態(tài)范圍更廣的計算功能。SSE2指令可讓軟件開發(fā)員極其靈活的實施算法,并在運行諸如MPEG-2、MP3、3D圖形等之類的軟件時增強性能。Intel是從Willamette核心的Pentium 4開始支持SSE2指令集的,而AMD則是從K8架構(gòu)的SledgeHammer核心的Opteron開始才支持SSE2指令集的。
SSE3指令集
SSE3(Streaming SIMD Extensions 3,Intel官方稱為SIMD 流技術(shù)擴展 3或數(shù)據(jù)流單指令多數(shù)據(jù)擴展指令集 3)指令集是Intel公司在SSE2指令集的基礎(chǔ)上發(fā)展起來的。相比于SSE2,SSE3在SSE2的基礎(chǔ)上又增加了13個額外的SIMD指令。SSE3 中13個新指令的主要目的是改進線程同步和特定應(yīng)用程序領(lǐng)域,例如媒體和游戲。這些新增指令強化了處理器在浮點轉(zhuǎn)換至整數(shù)、復(fù)雜算法、視頻編碼、SIMD浮點寄存器操作以及線程同步等五個方面的表現(xiàn),最終達到提升多媒體和游戲性能的目的。
Intel是從Prescott核心的Pentium 4開始支持SSE3指令集的,而AMD則是從2005年下半年Troy核心的Opteron開始才支持SSE3的。但是需要注意的是,AMD所支持的SSE3與Intel的SSE3并不完全相同,主要是刪除了針對Intel超線程技術(shù)優(yōu)化的部分指令。
SSE4指令集
Intel公司真正嚴格意義上的第五代多媒體指令集?D?DStreaming SIMD Extension 4(SSE4)被視為是繼2001年的SSE2之后最為重要的多媒體指令集改進。除擴展Intel 64位指令外,還新增對于影像編輯、視訊編碼、三維渲染以及游戲應(yīng)用等方面的指令,使得處理器的效能受益性更為廣泛.
第五代SSE4多媒體指令集將分為SSE4.1以及SSE4.2兩個版本,其中SSE4.1版本將首度于45納米Penryn家族處理器中出現(xiàn),共增加了47條新的指令。全新的SSE4多媒體指令集將增加兩組不同的32-bit向量整數(shù)乘法運算單元,并引入八位無符號最大值/最小值運算支持,以及16-bit/32-bit有符號和無符號運算支持,從而有效改善編譯器執(zhí)行效率并提升向量整數(shù)以及單精度代碼的運算能力。
與此同時,SSE4多媒體指令集進一步改善插入、提取、尋找、離散、跨步負載以及存儲等動作模式,使得向量運算趨于專門化。第五代SSE4多媒體指令集新增六條浮點點積運算指令,支持單精度、雙精度浮點運算以及浮點生成操作,這對于3D游戲以及三維內(nèi)容生成將產(chǎn)生積極影響。
3D Now !指令集
由AMD公司提出的3DNow!指令集應(yīng)該說出現(xiàn)在SSE指令集之前,并被AMD廣泛應(yīng)用于其K6-2 、K6-3以及Athlon(K7)處理器上。3DNow!指令集技術(shù)其實就是21條機器碼的擴展指令集。
與Intel公司的MMX技術(shù)側(cè)重于整數(shù)運算有所不同,3DNow!指令集主要針對三維建模、坐標變換 和效果渲染等三維應(yīng)用場合,在軟件的配合下,可以大幅度提高3D處理性能。后來在Athlon上開發(fā)了Enhanced 3DNow!。
這些AMD標準的SIMD指令和Intel的SSE具有相同效能。因為受到Intel在商業(yè)上以及Pentium III成功的影響,軟件在支持SSE上比起3DNow!更為普遍。Enhanced 3DNow!AMD公司繼續(xù)增加至52個指令,包含了一些SSE碼,因而在針對SSE做最佳化的軟件中能獲得更好的效能。
目前最新的Intel CPU可以支持SSE、SSE2、SSE3指令集。早期的AMD CPU僅支持3DNow!指令集,隨著Intel的逐步授權(quán),從Venice核心的Athlon 64開始,AMD的CPU不僅進一步發(fā)展了3DNow!指令集,并且可以支持Inel的SSE、SSE2、SSE3指令集。不過目前業(yè)界接受比較廣泛的還是Intel的SSE系列指令集,AMD的3DNow!指令集應(yīng)用比較少。