對於CPU來說,在基本功能方面,它們的差別並不太大,基本的指令集也都差不多,但是許多廠家為了提升某一方面效能,又開發了擴充套件指令集,擴充套件指令集定義了新的資料和指令,能夠大大提高某方面資料處理能力,但必需要有軟體支援。MMX 指令集 MMX(Multi Media eXtension,多媒體擴充套件指令集)指令集是Intel公司於1996年推出的一項多媒體指令增強技術。MMX指令集中包括有57條多媒體指令,透過這些指令可以一次處理多個數據,在處理結果超過實際處理能力的時候也能進行正常處理,這樣在軟體的配合下,就可以得到更高的效能。MMX的益處在於,當時存在的作業系統不必為此而做出任何修改便可以輕鬆地執行MMX程式。但是,問題也比較明顯,那就是MMX指令集與x87浮點運算指令不能夠同時執行,必須做密集式的交錯切換才可以正常執行,這種情況就勢必造成整個系統執行質量的下降。SSE指令集 SSE(Streaming SIMD Extensions,單指令多資料流擴充套件)指令集是Intel在Pentium III處理器中率先推出的。其實,早在PIII正式推出之前,Intel公司就曾經透過各種渠道公佈過所謂的KNI(Katmai New Instruction)指令集,這個指令集也就是SSE指令集的前身,並一度被很多傳媒稱之為MMX指令集的下一個版本,即MMX2指令集。究其背景,原來"KNI"指令集是Intel公司最早為其下一代晶片命名的指令集名稱,而所謂的"MMX2"則完全是硬體評論家們和媒體憑感覺和印象對"KNI"的 評價,Intel公司從未正式釋出過關於MMX2的訊息。 而最終推出的SSE指令集也就是所謂勝出的"網際網路SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運算效率的50條SIMD(單指令多資料技術)浮點運算指令、12條MMX 整數運算增強指令、8條最佳化記憶體中連續資料塊傳輸指令。理論上這些指令對目前流行的影象處理、浮點運算、3D運算、影片處理、音訊處理等諸多多媒體應用起到全面強化的作用。S SE指令與3DNow!指令彼此互不相容,但SSE包含了3DNow!技術的絕大部分功能,只是實現的方法不同。SSE相容MMX指令,它可以透過SIMD和單時鐘週期並行處理多個浮點資料來有效地提高浮點運算速度。SSE2指令集 SSE2(Streaming SIMD Extensions 2,Intel官方稱為SIMD 流技術擴充套件 2或資料流單指令多資料擴充套件指令集 2)指令集是Intel公司在SSE指令集的基礎上發展起來的。相比於SSE,SSE2使用了144個新增指令,擴充套件了MMX技術和SSE技術,這些指令提高了廣大應用程式的執行效能。隨MMX技術引進的SIMD整數指令從64位擴充套件到了128 位,使SIMD整數型別操作的有效執行率成倍提高。雙倍精度浮點SIMD指令允許以 SIMD格式同時執行兩個浮點操作,提供雙倍精度操作支援有助於加速內容建立、財務、工程和科學應用。除SSE2指令之外,最初的SSE指令也得到增強,透過支援多種資料型別(例如,雙字和四字)的算術運算,支援靈活並且動態範圍更廣的計算功能。SSE2指令可讓軟體開發員極其靈活的實施演算法,並在執行諸如MPEG-2、MP3、3D圖形等之類的軟體時增強效能。Intel是從Willamette核心的Pentium 4開始支援SSE2指令集的,而AMD則是從K8架構的SledgeHammer核心的Opteron開始才支援SSE2指令集的。SSE3指令集 SSE3(Streaming SIMD Extensions 3,Intel官方稱為SIMD 流技術擴充套件 3或資料流單指令多資料擴充套件指令集 3)指令集是Intel公司在SSE2指令集的基礎上發展起來的。相比於SSE2,SSE3在SSE2的基礎上又增加了13個額外的SIMD指令。SSE3 中13個新指令的主要目的是改進執行緒同步和特定應用程式領域,例如媒體和遊戲。這些新增指令強化了處理器在浮點轉換至整數、複雜演算法、影片編碼、SIMD浮點暫存器操作以及執行緒同步等五個方面的表現,最終達到提升多媒體和遊戲效能的目的。Intel是從Prescott核心的Pentium 4開始支援SSE3指令集的,而AMD則是從2005年下半年Troy核心的Opteron開始才支援SSE3的。但是需要注意的是,AMD所支援的SSE3與Intel的SSE3並不完全相同,主要是刪除了針對Intel超執行緒技術最佳化的部分指令。3D Now !指令集 由AMD公司提出的3DNow!指令集應該說出現在SSE指令集之前,並被AMD廣泛應用於其K6-2 、K6-3以及Athlon(K7)處理器上。3DNow!指令集技術其實就是21條機器碼的擴充套件指令集。 與Intel公司的MMX技術側重於整數運算有所不同,3DNow!指令集主要針對三維建模、座標變換 和效果渲染等三維應用場合,在軟體的配合下,可以大幅度提高3D處理效能。後來在Athlon上開發了Enhanced 3DNow!。這些AMD標準的SIMD指令和Intel的SSE具有相同效能。因為受到Intel在商業上以及Pentium III成功的影響,軟體在支援SSE上比起3DNow!更為普遍。Enhanced 3DNow!AMD公司繼續增加至52個指令,包含了一些SSE碼,因而在針對SSE做最佳化的軟體中能獲得更好的效能。 目前最新的Intel CPU可以支援SSE、SSE2、SSE3指令集。早期的AMD CPU僅支援3DNow!指令集,隨著Intel的逐步授權,從Venice核心的Athlon 64開始,AMD的CPU不僅進一步發展了3DNow!指令集,並且可以支援Inel的SSE、SSE2、SSE3指令集。不過目前業界接受比較廣泛的還是Intel的SSE系列指令集,AMD的3DNow!指令集應用比較少。
對於CPU來說,在基本功能方面,它們的差別並不太大,基本的指令集也都差不多,但是許多廠家為了提升某一方面效能,又開發了擴充套件指令集,擴充套件指令集定義了新的資料和指令,能夠大大提高某方面資料處理能力,但必需要有軟體支援。MMX 指令集 MMX(Multi Media eXtension,多媒體擴充套件指令集)指令集是Intel公司於1996年推出的一項多媒體指令增強技術。MMX指令集中包括有57條多媒體指令,透過這些指令可以一次處理多個數據,在處理結果超過實際處理能力的時候也能進行正常處理,這樣在軟體的配合下,就可以得到更高的效能。MMX的益處在於,當時存在的作業系統不必為此而做出任何修改便可以輕鬆地執行MMX程式。但是,問題也比較明顯,那就是MMX指令集與x87浮點運算指令不能夠同時執行,必須做密集式的交錯切換才可以正常執行,這種情況就勢必造成整個系統執行質量的下降。SSE指令集 SSE(Streaming SIMD Extensions,單指令多資料流擴充套件)指令集是Intel在Pentium III處理器中率先推出的。其實,早在PIII正式推出之前,Intel公司就曾經透過各種渠道公佈過所謂的KNI(Katmai New Instruction)指令集,這個指令集也就是SSE指令集的前身,並一度被很多傳媒稱之為MMX指令集的下一個版本,即MMX2指令集。究其背景,原來"KNI"指令集是Intel公司最早為其下一代晶片命名的指令集名稱,而所謂的"MMX2"則完全是硬體評論家們和媒體憑感覺和印象對"KNI"的 評價,Intel公司從未正式釋出過關於MMX2的訊息。 而最終推出的SSE指令集也就是所謂勝出的"網際網路SSE"指令集。SSE指令集包括了70條指令,其中包含提高3D圖形運算效率的50條SIMD(單指令多資料技術)浮點運算指令、12條MMX 整數運算增強指令、8條最佳化記憶體中連續資料塊傳輸指令。理論上這些指令對目前流行的影象處理、浮點運算、3D運算、影片處理、音訊處理等諸多多媒體應用起到全面強化的作用。S SE指令與3DNow!指令彼此互不相容,但SSE包含了3DNow!技術的絕大部分功能,只是實現的方法不同。SSE相容MMX指令,它可以透過SIMD和單時鐘週期並行處理多個浮點資料來有效地提高浮點運算速度。SSE2指令集 SSE2(Streaming SIMD Extensions 2,Intel官方稱為SIMD 流技術擴充套件 2或資料流單指令多資料擴充套件指令集 2)指令集是Intel公司在SSE指令集的基礎上發展起來的。相比於SSE,SSE2使用了144個新增指令,擴充套件了MMX技術和SSE技術,這些指令提高了廣大應用程式的執行效能。隨MMX技術引進的SIMD整數指令從64位擴充套件到了128 位,使SIMD整數型別操作的有效執行率成倍提高。雙倍精度浮點SIMD指令允許以 SIMD格式同時執行兩個浮點操作,提供雙倍精度操作支援有助於加速內容建立、財務、工程和科學應用。除SSE2指令之外,最初的SSE指令也得到增強,透過支援多種資料型別(例如,雙字和四字)的算術運算,支援靈活並且動態範圍更廣的計算功能。SSE2指令可讓軟體開發員極其靈活的實施演算法,並在執行諸如MPEG-2、MP3、3D圖形等之類的軟體時增強效能。Intel是從Willamette核心的Pentium 4開始支援SSE2指令集的,而AMD則是從K8架構的SledgeHammer核心的Opteron開始才支援SSE2指令集的。SSE3指令集 SSE3(Streaming SIMD Extensions 3,Intel官方稱為SIMD 流技術擴充套件 3或資料流單指令多資料擴充套件指令集 3)指令集是Intel公司在SSE2指令集的基礎上發展起來的。相比於SSE2,SSE3在SSE2的基礎上又增加了13個額外的SIMD指令。SSE3 中13個新指令的主要目的是改進執行緒同步和特定應用程式領域,例如媒體和遊戲。這些新增指令強化了處理器在浮點轉換至整數、複雜演算法、影片編碼、SIMD浮點暫存器操作以及執行緒同步等五個方面的表現,最終達到提升多媒體和遊戲效能的目的。Intel是從Prescott核心的Pentium 4開始支援SSE3指令集的,而AMD則是從2005年下半年Troy核心的Opteron開始才支援SSE3的。但是需要注意的是,AMD所支援的SSE3與Intel的SSE3並不完全相同,主要是刪除了針對Intel超執行緒技術最佳化的部分指令。3D Now !指令集 由AMD公司提出的3DNow!指令集應該說出現在SSE指令集之前,並被AMD廣泛應用於其K6-2 、K6-3以及Athlon(K7)處理器上。3DNow!指令集技術其實就是21條機器碼的擴充套件指令集。 與Intel公司的MMX技術側重於整數運算有所不同,3DNow!指令集主要針對三維建模、座標變換 和效果渲染等三維應用場合,在軟體的配合下,可以大幅度提高3D處理效能。後來在Athlon上開發了Enhanced 3DNow!。這些AMD標準的SIMD指令和Intel的SSE具有相同效能。因為受到Intel在商業上以及Pentium III成功的影響,軟體在支援SSE上比起3DNow!更為普遍。Enhanced 3DNow!AMD公司繼續增加至52個指令,包含了一些SSE碼,因而在針對SSE做最佳化的軟體中能獲得更好的效能。 目前最新的Intel CPU可以支援SSE、SSE2、SSE3指令集。早期的AMD CPU僅支援3DNow!指令集,隨著Intel的逐步授權,從Venice核心的Athlon 64開始,AMD的CPU不僅進一步發展了3DNow!指令集,並且可以支援Inel的SSE、SSE2、SSE3指令集。不過目前業界接受比較廣泛的還是Intel的SSE系列指令集,AMD的3DNow!指令集應用比較少。