SIMD ( Single Intruction,Multiple Data )

Nama  : Ahmad Rafiu Najwa Janahta

NPM   : 21312118

Kelas  : IF 21 C


SIMD ( Single Intruction,Multiple Data ) 


SIMD adalah singkatan dari Single Instruction, Multiple Data, merupakan sebuah istilah dalam komputasi yang merujuk untuk sekumpulan operasi yang dipakai untuk menangani banyak data yang sangat banyak dalam paralel secara efisien, seperti yang terjadi dalam prosesor vektor atau prosesor larik. SIMD pertama kali dipopulerkan pada superkomputer skala agung, meski sekarang telah ditemukan pada komputer pribadi.




Contoh aplikasi yang mampu mengambil keuntungan dari SIMD adalah aplikasi yang memiliki nilai yang sama yang ditambahkan ke banyak titik data (data point), yang umum terjadi dalam aplikasi multimedia. Salah satu contoh operasinya adalah mengubah brightness dari sebuah gambar. Setiap pixel dari sebuah gambar 24-bit benar isinya tiga buah nilai berukuran 8-bit brightness dari porsi warna merah (red), hijau (green), dan biru (blue). Untuk melaksanakan perubahan brightness, nilai RG, dan B hendak dibaca dari memori, dan sebuah nilai baru ditambahkan (atau dikurangkan) terhadap nilai-nilai R, G, B tersebut dan nilai kesudahannya hendak dikembalikan (ditulis kembali) ke memori.

Prosesor yang memiliki SIMD menawarkan dua keunggulan, yakni:

  • Data langsung mampu dipahami dalam wujud blok data, dibandingkan dengan beberapa data yang terpisah secara sendiri-sendiri. Dengan menggunakan blok data, prosesor mampu memuat data secara keseluruhan pada waktu yang sama. Daripada melaksanakan beberapa instruksi "ambil pixel ini, lalu ambil pixel itu, dst", sebuah prosesor SIMD hendak melaksanakannya dalam sebuah instruksi saja, yaitu "ambil semua pixel itu!" (istilah "semua" adalah nilai yang berlainan dari satu desain ke desain lainnya). Jelas, hal ini mampu mengurangi banyak waktu pemrosesan (akibat instruksi yang dikeluarkan hanya satu untuk sekumpulan data), bila dibandingkan dengan desain prosesor tradisional yang tidak memiliki SIMD (yang memberikan satu instruksi untuk satu data saja).
  • Sistem SIMD umumnya hanya mencakup instruksi-instruksi yang mampu diaplikasikan terhadap semua data dalam satu operasi. Dengan kata lain, sistem SIMD mampu memperagakan pekerjaan dengan memuat beberapa titik data secara sekaligus, dan melaksanakan operasi terhadap titik data secara sekaligus.

Sayangnya, beberapa desainer SIMD terbentur dengan beberapa pertimbangan desain yang berada di luar kontrol mereka. Salah satu pertimbangan tersebut adalah harus menambahkan banyak register untuk menampung data yang hendak diproses. Idealnya, hal ini mampu dilaksanakan dengan menambahkan unit SIMD ke dalam prosesor agar memiliki registernya sendiri, tetapi beberapa desainer terpaksa menggunakan register yang telah benar, umumnya yang dipakai adalah register floating-point. Register floating-point umumnya memiliki ukuran 64-bit, yang lebih kecil daripada yang diperlukan oleh SIMD agar memperagakan pekerjaan secara optimal, meskipun hal ini mampu mendatangkan masalah bila kode berhasrat mencoba untuk menggunakan instruksi floating-point dan SIMD secara bersamaan.

Pada pendesainan awal SIMD, terdapat beberapa prosesor yang khusus dipersiapkan untuk melaksanakan tugas ini, yang seringnya dinamakan sebagai Digital Signal Processor (DSP). Perbedaan utama sela SIMD dan DSP adalah DSP merupakan prosesor yang lengkap dengan set instruksinya sendiri (yang meskipun lebih sulit digunakan), sementara SIMD hanya bergantung pada register general-purpose untuk menangani detail program, dan instruksi SIMD hanya menangani manipulasi data.

Penggunaan instruksi SIMD pertama kali dilaksanakan dalam superkomputer vektor dan dipopulerkan oleh Cray pada tahun 1970-an. Akhir-akhir ini, SIMD skala kecil (64-bit atau 128-bit) telah menjadi populer dalam CPU yang bersifat general purpose, yang dimulai pada tahun 1994 dengan set instruks MAX yang diaplikasikan pada Hewlett-Packard PA-RISC. Instruksi SIMD, masa ini mampu ditemukan dalam kebanyakan prosesor, seperti halnya AltiVec dalam prosesor PowerPC; Intel MMX, SSE, SSE2, SSE3, SSE4, AMD 3DNow! dalam prosesor Intel x86; VIS dalam prosesor prosesor SPARC; MAX dalam Hewlett-Packard PA-RISC; MDMX serta MIPS-3D dalam MIPS serta MVI dalam prosesor DEC Alpha. Meskipun demikian, perangkat lunak pada umumnya tidak mengeksploitasi instruksi, dan bahkan instruksi ini hanya dipakai dalam aplikasi yang khusus, seperti pengolahan grafik.




Meskipun hal ini secara umum telah membuktikan bahwa sulitnya mencari aplikasi komersial yang dikhususkan untuk prosesor SIMD, benar beberapa kesuksesan yang terjadi seperti halnya aplikasi GAPP yang dikembangkan oleh Lockheed Martin. Versi yang lebih baru dari GAPP bahkan menjadi aplikasi yang mampu memproses video secara waktu-nyata (real-time) seperti halnya konversi antar bermacam-macam standar video yang (seperti konversi NTSC ke PAL atau sebaliknya, NTSC ke HDTV atau sebaliknya dan lain-lain), melaksanakan deinterlacing, pengurangan noise (noise reduction), kompresi video, dan perbaikan citra gambar (image enhancement).


Komentar

Postingan populer dari blog ini

SISTEM BILANGAN REAL " Mengenal Bilangan Real & Interval "

Sejarah Penemuan & Perkembangan Speaker