Sumber :
SIMD
Yang merupakan singkatan dari Single Instruction, Multiple
Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun
setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari
angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5
processor. Pada setiap processor kita menggunakan algoritma atau perintah yang
sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari
deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari
urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain.
SIMD merupakan
sebuah istilah dalam komputasi yang merujuk kepada sekumpulan operasi yang digunakan untuk menangani jumlah data
yang sangat banyak dalam paralel secara efisien, seperti yang terjadi dalam prosesor vektor
atau prosesor larik.
SIMD pertama kali dipopulerkan pada superkomputer skala besar, meski sekarang telah ditemukan pada
komputer pribadi.
Beberapa contoh komputer yang menggunakan model SIMD adalah
ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell
Processor (GPU).
Contoh aplikasi yang dapat 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 berisi tiga buah nilai berukuran 8-bit brightness
dari porsi warna merah (red), hijau (green), dan biru (blue).
Untuk melakukan perubahan brightness, nilai R, G, dan B
akan dibaca dari memori, dan sebuah nilai baru ditambahkan (atau dikurangkan)
terhadap nilai-nilai R, G, B tersebut dan nilai akhirnya akan dikembalikan
(ditulis kembali) ke memori.
Komputer yang mempunyai beberapa unit prosesor di bawah satu supervisi
satu unit common control. Setiap prosesor menerima instruksi yang sama dari
unit kontrol, tetapi beroperasi pada data yang berbeda.
Prosesor yang
memiliki SIMD menawarkan dua keunggulan, yakni:
-
Data
langsung dapat dipahami dalam bentuk blok data, dibandingkan dengan beberapa
data yang terpisah secara sendiri-sendiri. Dengan menggunakan blok data,
prosesor dapat memuat data secara keseluruhan pada waktu yang sama. Daripada
melakukan beberapa instruksi "ambil pixel ini, lalu ambil pixel itu,
dst", sebuah prosesor SIMD akan melakukannya dalam sebuah instruksi saja,
yaitu "ambil semua pixel itu!" (istilah "semua"
adalah nilai yang berbeda dari satu desain ke desain lainnya). Jelas, hal ini
dapat mengurangi banyak waktu pemrosesan (akibat instruksi yang dikeluarkan
hanya satu untuk sekumpulan data), jika 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 dapat diaplikasikan
terhadap semua data dalam satu operasi. Dengan kata lain, sistem SIMD dapat
bekerja dengan memuat beberapa titik data secara sekaligus, dan melakukan
operasi terhadap titik data secara sekaligus.
SISD
Yang merupakan singkatan dari Single Instruction, Single Data
adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan
pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa
dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya
merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa
contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600,
Cray 1 dan PDP 1.
Perbedaan antara SISD dan SIMD
Table 1. perbedaan SISD dan SIMD
Single
Intruction Single Data Stream (SISD)
|
Single Instruction Multiple Data
Stream (SIMD)
|
Instruksi
dikerjakan terurut satu demi satu
|
Instruksi
dapat dikerjakan tanpa terurut
|
Terdiri
dari satu pemrosesan
|
Terdiri
lebih dari satu pemrosesan
|
Operasi
terhadap satu elemen
|
Operasi
terhadap berbagai elemen yang berbeda
|
Peningkatan
kecepatan kurang karena instruksi dilakukan satu demi satu
|
Peningkatan
kecepatan dengan jumlah hardware
|
Flowchart
SISD dan SIMD
Sebagai perbandingan, pada gambar 3,
untuk sistem SISD (a), X1, X2, X3, dan X4 merepresentasikan blok instruksi,
setelah mengeksekusi X1, tergantung dari nilai X, X3 atau X2 dieksekusi
kemudian X4. Pada sistem SIMD, beberapa aliran data ada yang memenuhi X=? dan ada
yang tidak, maka beberapa elemen akan melakukan X3 dan yang lain akan melakukan
X2 setelah itu semua elemen akan melakukan X4 .
Gambar 3. Flowchart SISD dan SIMD
Storyboard
SISD dan SIMD
Pada gambar 4 memperlihatkan
storyboardarsitektur SIMD computer.
Gambar 4. Storyboard SIMD
Pada gambar 5 memperlihatkan
storyboardarsitektur SISD computer.
Gambar 5. Storyboard SISD