pipeline dan prosesor paralel

Download Report

Transcript pipeline dan prosesor paralel

Pengertian pipeline
• Pipeline adalah suatu cara yang digunakan
untuk melakukan sejumlah kerja secara
bersama tetapi dalam tahap yang berbeda
yang dialirkan secara kontinou pada unit
pemrosesor. Dengan cara ini, maka unit
pemrosesan selalu bekerja.
Intruksi pipeline
Urutan Pengolahan Instruksi
• Fetch Intrukasi (FI)
• Decode Instruction (DI)
• Calculate Operand (CO)
• Fetch Operand (FO)
• Execute Instruction (EI)
• Write Operand (WO)
Contoh pengerjaan instruksi tanpa
pipeline
t=
ADD AX,AX
ADD BX,CX
1
2
FI
DI
3
4
5
6
CO
FO
EI
WO
7
8
FI
DI
9
10
CO
FO
Waktu proses = 6 x jml Instruksi
Contoh diatas dengan 2 instruksi berarti
butuh waktu proses = 12 satuan waktu.
EI
WO
Contoh pengerjaan instruksi dengan
pipeline
t=
ADD AX,AX
ADD BX,CX
ADD DX,DX
1
2 3 4 5 6 7 8 9 10 11 12 13 14
15
16
FI DI C F EIW
O O
O
FI DI C F EIW
O O
O
FI DI C F EIW
O O
O
Waktu proses = 6 + (jml instruksi-1)
Contoh diatas jika dengan 3 intruksi
maka waktu proses = 6 + (3-1) = 8
Masalah-masalah pada Pipeline
• Ada 3 macam resiko2 dengan pipeline :
1.
Resiko pada Struktur harware muncul dari konflik
resource sistem yaitu ketika hardware tidak dapat
mendukung semua kemungkinan kombinasi instruksi.
2.
Resiko pada Data muncul ketika data untuk suatu instruksi
tergantung pada hasil instruksi sebelumnya.
3.
Resiko pada kontrol program muncul pada pelaksanaan
instruksi yang mengubah nilai pada Program Counter (PC)
(contoh :branch/ percabangan).
Keuntungan dari Pipelining:
1. Waktu siklus prosesor berkurang, sehingga
meningkatkan kecepatan proses.
2. Beberapa rangkaian digital seperti ADDER
dapat dibuat lebih cepat dengan
menambahkan lebih banyak rangkaian.
3. Jika pipelining digunakan sebagai
pengganti, hal itu dapat menghemat
rangkaian yang kompleks.
Kekurangan Pipelining:
1. Non-pipelined prosesor hanya menjalankan satu instruksi
pada satu waktu. Hal ini untuk mencegah penundaan cabang
(yang berlaku, setiap cabang tertunda) dan masalah dengan
serial instruksi dieksekusi secara bersamaan. Akibatnya
desain lebih sederhana dan lebih murah untuk diproduksi.
2. Instruksi yang bersifat laten (terpendam) di non-pipelined
prosesor sedikit lebih rendah daripada dalam pipelined
setara.
3. Non-pipelined prosesor akan memiliki bandwidth yang stabil.
Kinerja prosesor yang pipelined jauh lebih sulit untuk
diprediksi karena harus memiliki kecepatan proses yang
bervariasi di antara program yang berbeda.
Apa itu Prosesor Paralel
• Sebuah komputer yang memiliki lebih
dari satu central processing unit,
komputer ini digunakan untuk paralel
processing.
• Suatu sistem prosesor dengan banyak
perhitungan yang dilakukan secara
bersamaan
agar
prosesor
dapat
mempunyai kinerja tinggi
Klasifikasi Pada Arsitektur Komputer
Paralel
• Paralelisme dalam suatu komputer dapat diaplikasikan pada
beberapa tingkatan, seperti berikut:
1. Tingkat pekerjaan: antara pekerjaan-pekerjaan atau fasefase suatu pekerjaan. Hal ini menjadi prinsip dasar dari
multiprograming.
2. Tingkat prosedur: antara prosedur-prosedur dan di dalam
loop. Hal ini harus tercakup sebagai hal yang penting
bagi suatu bahasa.
3. Tingkat instruksi: antara fase-fase sebuah siklus instruksi,
yaitu fetch, decode dan eksekusi suatu instruksi.
4. Tingkat aritmatika dan bit: antara bit-bit dalam sirkuit
aritmatika. Salah satu contohnya adalah adder paralel.
Paradigma Pengolahan Paralel
• Berdasarkan struktur prosesor-nya, Flynn
mengklasifikasikan komputer menjadi
empat kelas yaitu :
1.
2.
3.
4.
SISD (single instruction and single data)
MISD (multiple instruction and single data)
SIMD (single instruction and multiple data)
MIMD (multiple instruction and multiple data)
Taksonomi Arsitektur Prosesor Paralel
SIMD (Single Instruction stream, Multiple
Data stream)
DS1
CU
CU
IS
CU
CU
DS2
CU
SM
CU
DSn
CU
IS
Ket :
CU : Control Unit
SM : Shared Memory
DS : Data Stream
IS : Instruction Stream
SIMD (Single Instruction stream, Multiple
Data stream)
•
•
•
•
Instruksi mesin tunggal
Eksekusi dikendalikan secara simultan
Terdapat sejumlah elemen proses
Setiap instruksi dieksekusi dalam set data yang
berbeda oleh proses yang berbeda
• Yang termasuk SIMD adalah Array Processor dan
Vector Processor
• Sifat komputer SIMD adalah
1.
2.
3.
Mendistribusikan pemrosesan ke sejumlah hardware.
Beroperasi secara bersama-sama pada beberapa elemen data
yang berbeda.
Menjalankan komputasi yang sama pada semua elemen data.
MIMD (Multiple Instruction stream, Multiple
Data stream)
CU1
CU2
CUn
IS
IS
IS
PU1
DS
MM1
DS
PU2
PUn
MM2
DS
MM3
Ket : -CU : Control Unit
-PU : Processor Unit
-MM : Memory Modul
-IS : Instruction Stream
-DS : Data Stream
MIMD (Multiple Instruction stream, Multiple
Data stream)
•
•
•
•
Terdiri dari sejumlah set prosesor
Terdiri dari sejumlah set data yang berbeda
Secara simultan mengeksekusi urutan instruksi yang berbeda
Sifat komputer MIMD :
1. Mendistribusikan pemrosesan ke sejumlah prosesor
independen.
2. Membagikan sumber termasuk memori utama ke prosesor
independen.
3. Setiap prosesor menjalankan programnya sendiri.
4. Setiap prosesor berfungsi secara independen dan bersamasama.
• Yang termasuk MIMD
1. Multikomputer (Loosely Coupled)
2. Multiprosesor (Tightly Coupled)
MULTIPROSESOR
• Sebuah sistem komputer paralel yang didasarkan pada
pemakaian memori tunggal secara bersama-sama
• Model multiprosesor berkembang menjadi software
• Menggunakan bersama sebuah ruang alamat virtual
tunggal yang dipetakan pada memori bersama
• Untuk membaca atau menulis sebuah word memori
dengan menjalankan instruksi LOAD dan STORE
• Multiprosesor sulit untuk dikembangkan tapi mudah
diprogram
• Contoh : Sun Enterprise 10000, Sequent NUMA-Q, SGI
Origin 2000 dan HP/ Convex Exemplar
Sistem Multiprosesor
1. SMP (Symmetric Multiprocessor)
Merupakan sistem multiprosesor dengan masing-masing prosesor
bekerja secara sendiri-sendiri (tidak saling tergantung). Pada sistem ini sebuah
CPU bisa jadi sedang menangani suatu proses, misalnya sedang mengolah
lembar kerja dan CPU sedang melakukan proses grafis.
2. Prosesor Vektor
Menyatakan suatu sistem multiprosesor dengan masing-masing
prosesor dapat bekerja secara serentak dalam menangani proses perhitungan
vector.
Sistem Multiprosesor
3. Prosesor Paralel
Menyatakan sistem yang memiliki sejumlah prosesor dan memiliki
karakteristik sebagai berikut :
1. Tak ada prosesor yang bertindak sebagai prosesor utama.
2. Sejumlah prosesor tidak selalu mengerjakan operasi yang sama dalam
waktu yang sama.
Prosesor jenis ini biasa digunakan pada super komputer.
4. Prosesor Parallel Massif (Massively Parallel Prosesor atau MPP)
Adalah sistem yang mengandung ratusan bahkan ribuan prosesor
yang dapat saling berinteraksi dengan penedekatan jaringan saraf. Prosesor
seperti ini sudah diterapkan dalam bisnis. Salah satu penggunanya adalah WalMart (Laudon,1998).
Perbedaan Prosesor Paralel dan Prosesor
Paralel Massif
Multikomputer
• MIMD dengan memori terdistribusi, setiap prosesornya memiliki
memori khusus sendiri.
• Motivasi pembuatan organisasi multikomputer adalah untuk
mengatasi keterbatasan skala multiprosesor.
• Karena prosesor-prosesor multikomputer harus berkomunikasi,
maka elemen penting perancangan multikomputer adalah jaringan
interkoneksi yang harus dapat beroperasi seefisien mungkin.
• Setiap CPU memori lokal sendiri yang bisa diakses dengan hanya
menjalankan instruksi LOAD dan STORE, tetapi tidak bisa diakses
oleh CPU lain.
• Multikomputer memiliki satu ruang alamat fisik per CPU.
• Multikomputer mudah untuk dikembangkan tapi sulit diprogram.
• Contoh : SP2 IBM, Option Red Intel/ Sandina dan COW
Wisconsin.
KOMBINASI MULTIPROSESOR DENGAN
MULTIKOMPUTER
1. Rancangan yang dapat diskalakan
Rancangankomputer paralel yang dapat terus
beroperasi dengan baik sebanyak apapun CPU
diparalelkan
2. Distributed Shared Memory (DSM)
Memori bersama yang menyediakan satu ruang
alamat virtual bersama dengan penghalaman pada
sistem seluruhnya
3. Sistem Runtime Bahasa
Bahasa pemrograman menyediakan abstraksi
memori bersama, yang diimplementasikan oleh
kompiler dan sistem runtime
KINERJA
• Masalah Kinerja yang berkaitan dengan komputer
paralel :
1. Metrik Hardware
Kecepatan CPU dan I/O
2. Metrik Software :
Mengetahui seberapa cepat sebuah program
beroperasi pada sebuah komputer paralel
dibanding sebuah prosesor tunggal