SSE
Intel SSE adalah tambahan instruksi mikroprosesor yang dibuat oleh Intel Corporation, yang diperkenalkan pada bulan Februari 1999, saat Intel merilis Pentium III. SSE ini merupakan singkatan dari Streaming SIMD Extension. Pada saat diperkenalkan, SSE ini disebut dengan nama Intel Katmai New Instructions (KNI). Bahkan, banyak orang yang menamai SSE sebagai MMX-2.
Sekarang, hampir semua prosesor modern telah dilengkapi dengan instruksi ini, tidak cuma prosesor Intel saja, karena memang Intel melisensikan teknologi SSE kepada beberapa pabrikan prosesor lainnya, semacam AMD atau Cyrix/VIA.
SSE merupakan ekstensi terhadap instruksi MMX; SSE2 merupakan ekstensi terhadap instruksi SSE; dan SSE3 juga merupakan ekstensi terhadap instruksi SSE2. Oleh karena itulah, prosesor-prosesor yang mendukung SSE3 juga mendukung SSE2; prosesor yang mendukung SSE2 juga mendukung SSE, dan seterusnya. Ini berarti, aplikasi yang hanya mendukung MMX akan dapat berjalan seolah-olah aplikasi tersebut berjalan di atas prosesor dengan hanya MMX saja.
SSE
Instruksi SSE versi pertama (SSE) memperkenalkan 70 instruksi baru yang ditujukan untuk pemrosesan grafik dan suara yang lebih baik daripada yang ditawarkan oleh instruksi MMX. Selain menambahkan kemampuan kalkulasi pemrosesan MMX yang hanya dapat menangani bilangan integer, SSE juga menambahkan kemampuan kalkulasi terhadap bilangan floating-point dan menggunakan unit SSE terpisah daripada menggunakan floating-point unit yang sama seperti yang terjadi pada MMX.
Daftar instruksi SSE ini didapat dari situs http://www.cpuid.com/sse/ Diarsipkan 2007-09-27 di Wayback Machine.
Instruksi | Jenis | Keterangan |
---|---|---|
ADDPS | Aritmetika | Packed Single-FP Add |
ADDSS | Aritmetika | Scalar Single-FP Add |
ANDNPS | Logika | Bit-Wise Logical And Not (for single-FP) |
ANDPS | Logika | Bit-Wise Logical And (for single-FP) |
CMPPS | Perbandingan | Packed Single-FP Compare |
CMPSS | Perbandingan | Scalar Single-FP Compare |
COMISS | Perbandingan | Scalar Ordered single-FP Compare and set EFLAGS |
CVTPI2PS | Konversi | Packed Signed INT32 to Packed Single-FP Conversion |
CVTPS2PI | Konversi | Packed Single-FP to Packed INT32 Conversion |
CVTSI2SS | Konversi | Scalar Signed INT32 to Single-FP Conversion |
CVTSS2SI | Konversi | Scalar Single-FP to Signed INT32 Conversion |
CVTTPS2PI | Konversi | Packed Single-FP to Packed INT32 Conversion (truncate) |
CVTTSS2SI | Konversi | Scalar Single-FP to signed INT32 Conversion (truncate) |
DIVPS | Aritmetika | Packed Single-FP Divide |
DIVSS | Aritmetika | Scalar Single-FP Divide |
FXRSTOR | Keadaan (state) | Restore FP or MMX State and SSE State |
FXSAVE | Keadaan (state) | Store FP or MMX State and SSE State |
LDMXCSR | Keadaan (state) | Load SSE Control/Status Register |
MAXPS | Aritmetika | Packed Single-FP Maximum |
MAXSS | Aritmetika | Scalar Single-FP Maximum |
MINPS | Aritmetika | Packed Single-FP Minimum |
MINSS | Aritmetika | Scalar Single-FP Minimum |
MOVAPS | Perpindahan | Move Aligned Four Packed Single-FP |
MOVHLPS | Perpindahan | Move High To Low Packed Single-FP |
MOVHPS | Perpindahan | Move High Packed Single-FP |
MOVLHPS | Perpindahan | Move Low To High Packed Single-FP |
MOVLPS | Perpindahan | Move Low Packed Single-FP |
MOVMSKPS | Perpindahan | Move Mask To Integer |
MOVSS | Perpindahan | Move Scalar Single-FP |
MOVUPS | Perpindahan | Move Unaligned Four Packed Single-FP |
MULPS | Aritmetika | Packed Single-FP Multiply |
MULSS | Aritmetika | Scalar Single-FP Multiply |
ORPS | Logika | Bit-Wise Logical OR for single-FP Data |
PAVGB | Integer | Packed Unsigned Byte Average |
PAVGW | Integer | Packed Unsigned Word Average |
PSADBW | Integer | Packed Sum of Absolute Differences |
RCPPS | Aritmetika | Packed Single-FP Reciprocal |
RCPSS | Aritmetika | Scalar Single-FP Reciprocal |
RSQRTPS | Aritmetika | Packed Single-FP Square Root Reciprocal |
RSQRTSS | Aritmetika | Scalar Single-FP Square Root Reciprocal |
SHUFPS | Pengocokan (shuffle) | Shuffle Single-FP |
SQRTPS | Aritmetika | Packed Single-FP Square Root |
SQRTSS | Aritmetika | Scalar Single-FP Square Root |
STMXCSR | Keadaan (state) | Store SSE Control/Status Register |
SUBPS | Aritmetika | Packed Single-FP Substract |
SUBSS | Aritmetika | Scalar Single-FP Substract |
UCOMISS | Perbandingan | Unordered Scalar Single-FP Compare and set EFLAGS |
UNPCKHPS | Pengocokan (shuffle) | Unpack High Packed Single-FP Data |
UNPCKLPS | Pengocokan (shuffle) | Unpack Low Packed Single-FP Data |
XORPS | Logika | Bit-wise Logical XOR for Single-FP Data |
PEXTRW | Integer | Extract Word |
PINSRW | Integer | Insert Word |
PMAXSW | Integer | Packed Signed Integer Word Maximum |
PMAXUB | Integer | Packed Unsigned Integer Byte Maximum |
PMINSW | Integer | Packed Signed Integer Word Minimum |
PMINUB | Integer | Packed Unsigned Integer Byte Minimum |
PMOVMSKB | Integer | Move Byte Mask To Integer |
PMULHUW | Integer | Packed Multiply High Unsigned |
PSHUFW | Integer | Packed Shuffle Word |
MASKMOVQ | Kemampuan cache | Byte Mask Write |
MOVNTPS | Kemampuan cache | Move Aligned Four Packed Single-FP Non Temporal |
MOVNTQ | Kemampuan cache | Move 64 bits Non Temporal |
PREFETCH | Kemampuan cache | Prefetch |
SFENCE | Kemampuan cache | Store Fence |
SSE2
Pada saat Intel merilis Pentium 4 pada November 2000, Intel juga memperkenalkan versi baru dari SSE, yang dinamakan dengan SSE2. SSE2 terdiri atas 144 instruksi tambahan terhadap instruksi SSE dan MMX.
SSE3
SSE3 diperkenalkan pada bulan Februari 2004, bersamaan dengan diperkenalkannya Pentium 4 Prescott. SSE3 terdiri atas 13 instruksi SIMD baru yang digunakan untuk membantu pemrosesan matematika yang kompleks, grafik, proses pengodean video, serta sinkronisasi thread.