KONSEP
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.
Dalam komputer,
pipeline adalah satu set dari elemen pemrosesan
data dihubungkan secara seri, sehingga hasil keluaran dari satu
elemen adalah masukkan bagi elemen berikutnya. Elemen - elemen dari sebuah
pipeline sering dijalankan secara paralel.
Contoh pipeline dalam komputer adalah:
- pipeline instruksi. Biasanya digunakan di unit pemroses sentral agar instruksi - instruksi dapat dijalankan dalam satu waktu dalam satu sirkuit digital. Biasanya sirkuitnya dibagi dalam beberapa tahap, termasuk decode instruksi, aritmetika 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 pemroses 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.
Instruksi pipeline
Tahapan
pipeline antara lain :
1.
Mengambil instruksi dan membuffferkannya
2.
Ketika tahapan kedua bebas tahapan pertama mengirimkan instruksi yang
dibufferkan tersebut .
3.
Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama
memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan membuffferkan
instruksi berikutnya .
Instuksi
pipeline:
Karena untuk setiap tahap pengerjaan instruksi, komponen yang bekerja
berbeda, maka dimungkinkan untuk mengisi kekosongan kerja di komponen
tersebut.Sebagai contoh :
Instruksi 1:
ADD AX, AX
Instruksi 2:
ADD EX, CX
Setelah CU menjemput instruksi 1 dari memori (IF), CU akan menerjemahkan
instruksi tersebut(ID). Pada menerjemahkan instruksi 1 tersebut, komponen IF tidak bekerja. Adanya
teknologi pipeline menyebabkan IF akan menjemput instruksi 2 pada saat ID
menerjemahkan instruksi 1. Demikian seterusnya pada saat CU menjalankan
instruksi 1 (EX), instruksi 2 diterjemahkan (ID).
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 :
http://andi-granderist.blogspot.co.id/2013/01/pipelining-risc-dan-prosesor-paralel.html
https://www.google.co.id/search?q=klasifikasi+pipeline&oq=klasifikasi+pipeline&aqs=chrome..69i57.10565j0j8&sourceid=chrome&ie=UTF-8#
https://id.wikipedia.org/wiki/Pipeline
0 komentar:
Posting Komentar