Sumber :
http://mamuteritorial.blogspot.com/2014/06/gambar-dari-arsitektur-simd-single.html
http://soulofmine.wordpress.com/2011/04/01/parallel-processing/
http://ketiketiku.blogspot.com/
Perbedaan SISD dan SIMD
Pemrosesan paralel (parallel processing) adalah
penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara
simultan. Idealnya, parallel processing membuat program berjalan lebih cepat
karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali
sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa
berkaitan di antaranya.
Komputasi paralel adalah salah satu teknik
melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer
secara bersamaan. Biasanyadiperlukan saat kapasitas yang diperlukan sangat
besar, baik karena harus mengolah data dalam jumlah besar ataupun karena
tuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi
paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak
komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel
untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak
pendukung yang biasa disebut sebagai middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya
pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Aristektur Komputer
Parallel
Sesuai taksonomi Flynn, seorang Designer Processor,
Organisasi Prosesor dibagi menjadi 4, dua diantaranya yaitu SISD dan SIMD.
a.
SISD
(Single Instruction stream-Single Data stream)
SISD merupakan arsitektur komputer di
mana prosesor tunggal, sebuah uniprocessor, mengeksekusi aliran instruksi
tunggal, untuk beroperasi pada data yang tersimpan dalam memori tunggal. Ini
sesuai dengan arsitektur von Neumann . SISD adalah salah satu dari empat
klasifikasi utama sebagaimana didefinisikan dalam taksonomi Flynn . Dalam
sistem ini klasifikasi didasarkan pada jumlah instruksi bersamaan dan data
stream hadir dalam arsitektur komputer. Menurut Michael J. Flynn , SISD dapat
memiliki karakteristik pemrosesan konkuren. Instruksi fetching dan eksekusi
pipelined instruksi adalah contoh umum ditemukan di komputer SISD paling
modern.
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
SISD (Single Instruction stream-Single Data stream)
b.
SIMD
(Single Instruction stream-Multiple Data stream)
Pada komputer SIMD terdapat lebih
dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang
sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama
yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data
yang berbeda yang berasal dari aliran data yang berbeda pula.
Keuntungan SIMD antara lain sebuah
aplikasi yang dapat mengambil keuntungan dari SIMD adalah salah satu di mana
nilai yang sama sedang ditambahkan ke (atau dikurangkan dari) sejumlah besar
titik data, operasi umum di banyak multimedia aplikasi. Salah satu contoh akan
mengubah kecerahan gambar. Setiap pixel dari suatu gambar terdiri dari tiga
nilai untuk kecerahan warna merah (R), hijau (G) dan biru (B) bagian warna.
Untuk mengubah kecerahan, nilai-nilai R, G dan B yang dibaca dari memori, nilai
yang ditambahkan dengan (atau dikurangi dari) mereka, dan nilai-nilai yang
dihasilkan ditulis kembali ke memori.
Dengan prosesor SIMD ada dua
perbaikan proses ini. Untuk satu data dipahami dalam bentuk balok, dan sejumlah
nilai-nilai dapat dimuat sekaligus. Alih-alih serangkaian instruksi mengatakan
“mendapatkan pixel ini, sekarang mendapatkan pixel berikutnya”, prosesor SIMD
akan memiliki instruksi tunggal yang efektif mengatakan “mendapatkan n piksel”
(dimana n adalah angka yang bervariasi dari desain untuk desain). Untuk
berbagai alasan, ini bisa memakan waktu lebih sedikit daripada “mendapatkan”
setiap pixel secara individual, seperti desain CPU tradisional.
Keuntungan lain adalah bahwa sistem
SIMD biasanya hanya menyertakan instruksi yang dapat diterapkan pada semua data
dalam satu operasi. Dengan kata lain, jika sistem SIMD bekerja dengan memuat
delapan titik data sekaligus, add operasi yang diterapkan pada data akan
terjadi pada semua delapan nilai pada waktu yang sama. Meskipun sama berlaku
untuk setiap desain prosesor super-skalar, tingkat paralelisme dalam sistem
SIMD biasanya jauh lebih tinggi.
Kekurangannya adalah : Tidak semua
algoritma dapat vectorized. Misalnya, tugas aliran-kontrol-berat seperti kode
parsing tidak akan mendapat manfaat dari SIMD. Ia juga memiliki file-file
register besar yang meningkatkan konsumsi daya dan area chip. Saat ini, menerapkan
algoritma dengan instruksi SIMD biasanya membutuhkan tenaga manusia, sebagian
besar kompiler tidak menghasilkan instruksi SIMD dari khas C Program, misalnya.
vektorisasi dalam kompiler merupakan daerah aktif penelitian ilmu komputer.
(Bandingkan pengolahan vektor .)
SIMD dibagi menjadi beberapa bentuk
lagi yaitu :
§ Exclusive-Read, Exclusive-Write
(EREW) SM SIMD
§ Concurent-Read, Exclusive-Write
(CREW) SM SIMD
§ Exclusive-Read, Concurrent-Write
(ERCW) SM SIMD
§ Concurrent-Read, Concurrent-Write
(CRCW) SM SIMD
SIMD (Single Instruction stream-Multiple Data stream)
Perbedaan antara 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 .
Storyboard SISD dan
SIMD
Storyboard SIMD
Storyboard SISD