Definisi Pipeline
Pipeline adalah teknik yang
mengoverlapkan eksekusi beberapa sub proses. atau suatu cara yang
digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam
tahap yang berbeda yang dialirkan secara kontinu pada unit pemrosesor.
Dengan cara ini, maka unit pemrosesan selalu bekerja.
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 dijaankan oleh microprocessor.
Pada microprocessoryang tidak menggunakan pipeline , satu instruksi dilakukan sampai selesai, baru instruksi berikutnya dapat dilaksanakan.
Jadi, ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi. Misalnya sebuah microprocessor menyelesaikan sebuah instruksi dalam 4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka instruksi berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut. Begitu pun seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
Contoh pipeline dalam komputer adalah:
- pipeline instruksi. Biasanya digunakan di unit pemrosesan central agar istruksi - instruksi dapat dijalankan dalam satu waktu dalam satu sirkuit digital. Biasany asirkuitnya dibagi dalam beberapa tahap, termasuk decode instruksi, aritmatika dan tahap - tahap penjemputan data dari register , dimana setiap tahap melakukan satu instruksi dalam satu waktu.
- pipeline grafis. sering ditemukan dalam sebagian besar unit pemrosesan grafis, yang terdiri dari berbagai unit aritmatik atau unit pemrosesan sentral lengkap, yang menerapkan berbagai macam tahap dari operasi render yang umum (seperti proyeksi perspektif, kalkulasi warna dan pencahayaan , primitif gambar, dan sebagainya).
- pipeline perangkat lunak. Dimana keluaran dari suatu program langsung dipakai oleh program lain sebagai masukkan sehingga dapat langsung diproses.
Kesulitan yang sering dihadapi ketika menggunakan teknik pipeline ini adalah :
- [] Terjadinya penggunaan resource yang bersamaan
- [] Ketergantungan terhadap data, dan
- [] Pengaturan Jump ke suatu lokasi memori.
Konsep Pipeline :
Pipeline adalah konsep alami di kehidupan sehari-hari. Umpamakan sebuah
perakitan mobil, asumsikan beberapa langkah di jalur perakitan adalah
untuk memasang mesin, memasang kap, dan memasang roda (dalam urutan
tersebut, dengan berbagai macam kemungkinan langkah - langkah lain di
antara langkah - langkah tersebut). Sebuah mobil di jalur perakitan
hanya satu dari tiga langkah diatas dapat selesai dalam suatu waktu.
Setelah sebuah mobil telah terpasang mesinnya, mobil tersebut pindah ke
pemasangan kap, dan mobil kedua sedang dalam tahap pemasangan mesin.
Setelah mobil pertama selesai memasang kap, mobil kedua dalam tahap
pemasangan kap, mobil pertama dalam tahap pemasangan roda, dan mobil
ketiga yang baru masuk dalam tahap pemasangan mesin. Dan begitu
seterusnya. Jika seumpama pemasangan mesin butuh 20 menit, pemasangan
kap butuh 5 menit dan pemasangan roda butuh 10 menit, maka menyelesaikan
ketiga mobil tersebut jika satu mobil dirakit dalam satu waktu akan
membutuhkan waktu 105 menit. Sedangkan jika menggunakan jalur perakitan
seperti yang disebutkan diatas, waktu yang diperlukan untuk
menyelesaikan ketiganya hanya 75 menit.
Masalah-masalah pada Pipeline
Dengan adanya persyaratan bahwa
setiap instuksi yang berdekatan harus tidak saling bergantung, maka ada
kemungkinan terjadinya situasi dimana pipeline gagal dilaksanakan atou
instruksi berikutnya tidak bisa dilaksanakan. Situasi ini disebut
Hazards. Hazards akan berdampak pada pengurangan performans dari CPU
dimana percepatan ideal tidak dapat dicapai. Hazards juga menyebabkan
pipeline terhambat. Tidak ada instruksi baru yang dijemput sampai
hambatan itu selesai. Ini berarti instruksi-instruksi selanjutnya akan
ditunda pula penjemputannya.
Ada 3 kelompok Hazards :
- [] Structural Hazard diakibatkan oleh konflik penggunaan hardware yaitu ketika hardware tidak dapat mensuport semua kemungkinan kombinasi pelaksanaan instruksi.
- [] Data Hazards muncul ketika data untuk suatu instruksi tergantung pada hasil instruksi sebelumnya.
- [] Control Hazards muncul pada pelaksanaan instruksi yang mengubah PC (contoh : branch).
Keuntungan dari Pipeline
- [] Meningkatkan tingkat instruksi-isu dalam kebanyakan kasus.
- [] Pemrosesan dapat dilakukan lebih cepat, dikarenakan beberapa proses dilakukan secara bersamaan dalam satu waktu.
- [] Beberapa combinational sirkuit seperti penambah atau pengganda dapat dibuat lebih cepat dengan menambahkan lebih banyak sirkuit.
Kerugian dari Pipeline
- [] Kinerja prosesor pipelined sangat sulit untuk memprediksi dan dapat bervariasi secara lebih luas di antara berbagai program.
- [] Instruksi latency di prossesor pipeline sedikit lebih tinggi daripada dalam non-pipeline. Hal ini disebabkan oleh kenyataan bahwa tiba-tiba harus ditambahkan ke jalur data dari prosesor pipelined
- [] Prossesor pipeline akan memiliki instruksi bandwidth yang tidak stabil.
terimakasih atas infonya
BalasHapusPower supply hp