A. Pengertian Pipeline
Pipeline adalah suatu teknik yang digunakan untuk melaksanakan beberapa komputasi yang berbeda dalam waktu yang sama, namun pada saat itu setiap komputasi akan berada pada tahapan eksekusi yang berbeda. Teknik ini tidak mengurangi waktu eksekusi sebuah instruksi, tetapi meningkatkan jumlah instruksi yang dapat dikomputasi. Pipeline ditujukan untuk meningkatkan kecepatan eksekusi suatu instruksi atau disebut throughput eksekusi instruksi pada Central Processing Unit (CPU).
B. Kategori Pipeline
1. Arithmetic Pipeline
Arithmetic pipeline adalah suatu operasi aritmatika yang digunakan untuk melakukan penjumlahan, perkalian, pembagian, dan sebagainya. Dalam melakukan operasi aritmatika, beberapa unit logika disusun secara pararel untuk melakukan komputasi dalam berbagai format data.
2. Instruction Pipeline
Instruction pipeline adalah suatu instruksi yang digunakan untuk melakukan beberapa komputasi instruksi secara sekaligus. Instruksi ini berguna bagi komputer yang mempunyai set instruksi sederhana.
C. Faktor Penghambat Pipeline
1. Variasi Waktu (Timing Variations)
Variasi waktu adalah masalah perbedaan penggunaan instruksi pada waktu yang berbeda. Misalnya, ketika beberapa instruksi dikomputasi secara bersamaan, umumnya ada sebuah instruksi yang memerlukan instruksi yang berbeda dalam waktu yang sama. Hal ini akan mengakibatkan terjadinya penghentian proses komputasi.
2. Bahaya Data (Data Hazards)
Bahaya data adalah masalah penggunaan resource data yang sama. Misalnya, ketika sebuah instruksi dikomputasi dan instrkusi tersebut memerlukan data yang belum dikomputasi, maka hasil komputasinya akan bernilai salah atau error.
3. Percabangan (Branching)
Percabangan adalah masalah instruksi percabangan yang harus mengambil instruksi berikutnya untuk dikomputasi. Misalnya, ketika ada sebuah instruksi bercabang yang dikomputasi maka setelah dikomputasi instruksi tersebut akan mengarahkan untuk mengambil instruksi berikutnya. Namun, pengarahan pengambilan instruksi tersebut kemungkinan tidak diketahui sampai kapan. Hal tersebut akan mengakibatkan terhambatnya proses komputasi.
4. Interupsi (Interrupts)
Interupsi adalah masalah ketika instruksi meminta untuk menghentikan komputasi terhadap aliran atau bagian instruksinya. Misalnya, ketika suatu instruksi dikomputasi dan instruksi tersebut meminta untuk melakukan proses interupsi maka proses komputasi akan dihentikan. Hal tersebut akan mempengaruhi proses eksekusi instruksi tersebut.
5. Ketergantungan Data (Data Dependency)
Ketergantungan data adalah masalah ketika instruksi meminta data dari instruksi sebelumnya yang sudah di proses. Misalnya, ketika suatu instruksi dikomputasi dan instruksi tersebut memerlukan data dari instruksi sebelumnya maka akan terjadi proses pengambilan data dari instruksi sebelumnya atau dikenal dengan istilah JUMP Memori. Hal tersebut mengakibatkan terjadinya perubahan Program Counter yang menghambat proses komputasi.
D. Kelebihan Dari Penggunaan Pipeline
1. Banyak instruksi yang dapat diproses secara bersamaan.
2. Siklus waktu CPU berkurang dan meningkatkan kinerja CPU.
3. Meningkatkan kecepatan throughput.
E. Kekurangan Dari Penggunaan Pipeline
1. Desain pipeline untuk CPU sangat rumit dan mahal untuk diproduksi.
2. Latensi instruksi meningkat.
3. Semakin lama penggunaan pipeline maka semakin ada kemungkinan terjadinya Data Hazards untuk Branching.
Tags:
teknologi