Konsep dan Teori Pipeline

Pipeline


Pipeline adalah cara yang digunakan unutuk melakukan sejumlah kerja secara bersamaan namun dengan tahap yang berbeda yang dialirkan secara terus menerus pada unit pemrosesor. Teknik pipeline dapat digunakan di berbagai tingkatan dalam sistem komputer, baik itu level tertenggi seperti aplikasi, ataupun level terendah seperti instruksi yang dijalankan oleh microprocessor.

Konsep pemrosesan pipeline dapat digunakan dalam sebuah komputer untuk memperbaiki throughput sistem tersebut dalam berbagai variasi cara. Berikut merupakan 3 jenis pokok dalam pipelining:

Aritmatika
Suatu operasi aritmatika yang digunakan untuk melakukan penjumlahan, perkalian, pembagian, dan sebagainya. Dalam melakukan operasi aritmatika, beberapa unit logika disusun secara paralel untuk melakukan komputasi dalam berbagai format data.

Instruksi
Suatu instruksi yang digunakan untuk melakukan beberapa komputasi instruksi secara sekaligus.

Processor
Dalam pipeline ini, setiap prosesor mempunyai suatu tugas tertentu yang akan dijalankan pada aliran data.


Faktor Penghambat Pipeline

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.

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.

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.

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.

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.


Kelebihan Menggunakan Pipeline

  1. Banyak instruksi yang dapat diproses secara bersamaan.
  2. Siklus waktu CPU berkurang dan meningkatkan kinerja CPU.
  3. Meningkatkan kecepatan throughput.

Kekurangan Menggunakan 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.



Resources:

Komentar

Postingan populer dari blog ini

Pengertian serta jenis-jenis dari Instruction Set, CISC, dan RISC

Konsep Toksomoni Flyn , Multiprocessing , dan Multikomputer