Академический Документы
Профессиональный Документы
Культура Документы
Oleh :
Kelompok 12
Muh. Ghazali Andi Irham
Zatrya Yudhiztira
Nicodemus
Fakultas Teknik Informatika
UNIVERSITAS COKROAMINOTO PALOPO
PIPELINE
Pipeline adalah suatu cara yang digunakan untuk melakukan sejumlah
kerja secara bersamaan tapi dalam tahap yang berbeda yang dialirkan
secara continue / berkelanjutan pada unit pemrosesan.pipeline sebagai
serangkaian pipa yang harus dilewati oleh instruksi program. Setiap
instruksi harus masuk di Prefetch/Fetch dan keluar di Write-back.
Pipelining
adalah suatu teknik implementasi dengan mana berbagai instruksi dapat
dilaksanakan secara tumpang tindih (overlapped; hal ini mengambil keuntungan
paralelisme yang ada di antara tindakan yang diperlukan untuk mengeksekusi suatu
instruksi.
Teknik pipeline ini dapat diterapkan pada berbagai tingkatan dalam sistem komputer.
Bisa pada level yang tinggi, misalnya program aplikasi, sampai pada tingkat yang
rendah, seperti pada instruksi yang dijalankan oleh microprocessor.
Kategori Pipeline:
1.Pipeline Unit Arithmetic : berguna untuk operasi vector
2.Pipeline Unit Instruction : berguna untuk komputer yang mempunyai set instruksi yang
sederhana
Proses Pipeline:
Instruksi-instruksi dari program yang sudah berurutan kemudian satu-persatu memasuki
pipeline prosesor untuk diproses. Setiap tingkat pipeline memerlukan satu clock cycle
untuk menyelesaikan satu instruksi dan meneruskan hasilnya ke pipeline berikutnya.
3 kesulitan pada metode Pipeline :
Karena beberapa instruksi diproses secara bersamaan ada kemungkinan instruksi
tersebut sama-sama memerlukan resource yang sama, sehingga diperlukan adanya
pengaturan yang tepat agar proses tetap berjalan dengan benar.
Ketergantungan terhadap data, bisa muncul, misalnya instruksi yang berurutan
memerlukan data dari instruksi yang sebelumnya.
Kasus Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk
melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program counter,
sedangkan instruksi yang sedang berada dalam salah satu tahap proses yang berikutnya
mungkin tidak mengharapkan terjadinya perubahan program counter.
Generic Pipeline
ADA 2 TAHAP
Tahapan pertama mengambil instruksi dan mem-bufferkannya.
Ketika tahapan kedua bebas, tahapan pertama mengirimkan
instruksi yang di-buffer-kan tersebut. Pada saat tahapan kedua
sedang mengeksekusi instruksi, tahapan pertama
memanfaatkan siklus memori yang tidak dipakai untuk
mengambil dan membufferkan instruksi berikutnya.
Proses
Penanganan Percabangan:
1. Multiple Streams
2. Prefetch Target percabangan
3. Loop buffer
4. Memprediksi percabangan
5. Delay percabangan
Pipeline Hazard:
1. Data hazards
- satu perintahan mempergunakan hasil dari satu Instruksi sebelumnya
ADD R1, R2, R3 or SW R1, 3(R2)
ADD R4, R1, R5 LW R3, 3(R2)
2.Control hazards
- lokasi dari satu perintahan bergantung kepada satu instruksi
sebelumnya
JMP LOOP
LOOP: ADD R1, R2, R3
3. Structural hazards
- dua perintahkan akses kebutuhan ke sumber daya yang sama
= misalnya, memori tunggal berbagi untuk menginstruksikan
mengambil dan isi / simpan
= bentrokan di tabel pesanan tempat
awal tulis
Pipeline
Keuntungan
1.Waktu siklus prosesor berkurang, sehingga meningkatkan tingkat instruksiisu dalam kebanyakan kasus.
2.Jika pipelining digunakan sebagai pengganti, hal itu dapat menghemat
sirkuit yang digunakan.
3.Secara keseluruhan dapat meningkatkan kinerja computer.
Kerugian
1.Non-pipelined prosesor hanya menjalankan satu instruksi pada satu waktu.
2.Instruksi latency di non-pipelined prosesor sedikit lebih rendah daripada
dalam pipelined setara.
3.Non-pipelined prosesor akan memiliki instruksi yang stabil bandwidth.
Kinerja prosesor yang pipelined jauh lebih sulit untuk meramalkan dan dapat
bervariasi lebih luas di antara program yang berbeda.