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#