Pipeline
   Pipeline adalah suatu cara yang 
digunakan untuk melakukan sejumlah kerja secara bersama tetapi dalam 
tahap berbeda yang dialirkan secara kontinu pada unit pemrosesan. Dengan
 Pipeline, unit pemrosesan akan selalu bekerja sehingga memaksimalkan 
kerja microprocessor. Pada microprocessor yang tidak menggunakan 
pipeline, satu instruksi dilakukan sampai selesai, setelah selesai baru 
instruksi berikutnya dilakukan. Sedangkan microprocessor yang 
menggunakan teknik pipeline, ketika satu instruksi diproses, maka 
instruksi berikutnya dapat dikerjakan dan diproses dalam waktu yang 
bersamaan. Tetapi, instruksi yang diproses secara bersamaan ini, ada 
dalam tahap proses yang berbeda. Jadi, ada  sejumlah tahap yang akan 
dilewati oleh sebuah instruksi.
   Dengan penerapan pipeline ini pada 
microprocessor akan didapatkan peningkatan dalam untuk kerja 
microprocessor. Hal ini terjadi karena beberapa instruksi dapat 
dilakukan secara parallel dalm waktu yang bersamaan. Namun, 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. 
Sedangkan ketergantungan terhadap data bias muncul, misalnya instruksi 
yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus 
jump juga perlu diperhatikan. Karena ketika sebuah instruksi meminta 
untuk mrelompat ke suatu memori tertentu akan terjadi perubahan program 
counter, sedangkan instruksi yang sedang berada dalam salah satu tahap 
tidak mendukung dan mengharapkan terjadinya perubahan program counter.
Klasifikasi Pipeline
   Pipeline dapat kita klasifikasikan 
menurut fungsi dan konfigurasinya. Secara fungsional, pipeline dapat 
diklasifikasikan menjadi tiga kelompok pokok : pipelining aritmatika, 
instruksi, dan prosesor. Ramamoorthy dan Li (1977) mengajukan tiga skema
 untuk mengklasifikasikan pipeline menurut konfigurasi dan strategi 
kendalinya : unifungsi atau multifungsi dan skalar atau vector.
            1    Klasifikasi Berdasarkan Fungsi- Pipelining Aritmatika
 
       Proses segmentasi fungsi dari ALU dari sistem yang muncul dalam kategori ini.
a. Pipelining Instruksi
   Dalam suatu komputer non-pipeline, CPU
 bekerja melalui suatu siklus yang berkesinambungan dari 
fetch-decode-eksekusi untuk semua instruksinya. Proses fetch suatu 
instruksi tidak akan dimulai sampai eksekusi instruksi sebelumnya 
selesai. Untuk mem-pipeline fungsi ini, instruksi-instruksi yang 
berdampingan di-fetch dari memori ketika instruksi yang sebelumnya 
di-decode dan dijalankan. Proses pipelining instruksi instruction look 
ahead, mem-fetch instruksi secara berurutan. Dengan demikian, jika suatu
 instruksi menyebabkan percabangan keluar dari urutan itu maka pipe akan
 dikosongkan dari seluruh instruksi yang telah di-fetch sebelumnya dan 
instruksi percabangan tersebut di-fetch. Proses pipelining instruksi 
dikerjakan pada hampir semua komputer berkemampuan tinggi.
b. Pipelining Processor
   Sewaktu stage dari suatu pipeline, 
prosesor aktual dan latch-latch saling berbagi memori di  antara 
prosesor-prosesor tersebut, sehingga pipeline tersebut disebut sebagai 
pipeline prosesor. Dalam pipeline ini, setiap prosesor mempunyai suatu 
tugas tertentu yang akan dijalankan pada aliran data. Pipelining banyak 
prosesor(multiple prosesor) merupakan konsep yang relatif baru dan belum
 umum.
            2    Klasifikasi Berdasarkan Konfigurasi- Unifungsi dan Multifungsi
 
   Kemampuan suatu pipeline menjalankan 
hanya satu jenis pokok operasi disebut sebagai pipeline unifungsi. 
Misalnya, perkalian floating-point mensyaratkan pipeline agar juga 
menjalankan operasi yang sama pada setiap kelompok input. Jika pipeline 
dapat menjalankan fungsi-fungsi yang berbeda maka disebut sebagai 
pipeline multifungsi. Fungsi-fungsi yang berbeda itu bisa dijalankan 
baik pada waktu yang bersamaan ataupun berbeda, dengan menghubungkan 
subkelompok-subkelompok stage yang berbeda dalam pipeline. Pipeline 
disusun seperlunya sesuai dengan nilai input kendali tambahan.
- Static atau Dynamic
 
   Ketika instruksi-instruksi yang 
berjenis sama akan dijalankan secara bersamaan waktunya, maka digunakan 
pipeline statis. Pipeline ini dapat berupa pipeline fungsional maupun 
multifungsional tetapi mungkin mengasumsikan hanya satu konfigurasi 
fungsional pada suatu waktu. Suatu pipeline multifungsi statis dapat 
bekerja paling baik jika fungsi yang akan dijalankan tidak sering 
berubah. Antara perubahan, pipeline terlihat sebagai pipeline unifungsi 
dan mengulangi operasi yang sama berulang-ulang. Sebelum mengganti 
fungsi tersebut, kelompok input terakhir dari fungsi sebelumnya harus 
benar-benar telah melewati pipeline. Kemudian pipeline dikonfigurasikan 
untuk fungsi yang baru dan input yang baru boleh masuk ke dalam pipe. 
Dengan pipeline dinamis, beberapa konfigurasi fungsional dapat muncul 
sekaligus. Hal ini berarti harus digunakan sebuah pipeline 
multifungsional. Dalam kasus ini, konfigurasi pipe berubah-ubah secara 
konstan, tergantung pada data mana untuk fungsi yang mana pada stage 
yang mana untuk setiap penangguhan clock. Pipeline dinamis memerlukan 
kendali yang sangat kompleks dan mekanisme perangkat untuk 
mengkonfigurasikan pipe bagi input-input tertentu. Untuk alasan ini, 
pipelining aktual tidak berada di bawah kendali programmer melainkan 
dibangun kedalam arsitektur mesin tersebut.
- Skalar atau Vector
 
   Suatu pipeline skalar memproses 
serangkaian operasi skalar pada operand skalar. Salah satu  contoh 
berupa operasi ADD dalam loop FOR. Pipeline vector dirancang untuk 
memproses instruksi vektor dengan menggunakan operand vektor.Komputer 
yang mempunyai instruksi-instruksi vektor disebut sebagai prosesor 
vektor.
sumber : 
https://www.google.co.id/search?q=klasifikasi+pipeline&oq=klasifikasi+pipeline&aqs=chrome..69i57.10565j0j8&sourceid=chrome&ie=UTF-8# 

