Pengertian Intruction Pipelining
Pipeline adalah suatu cara yang digunakan untuk
melakukan sejumlah kerja secara bersama tetapi dalam tahap yang berbeda yang
dialirkan secara kontinou pada unit pemrosesor. Dengan ccara ini, maka unit
pemrosesan selalu bekerja.
Teknik pipeline ini dapat diterapkan pada berbagai
tingkatan dalam system komputer. Bisa pada level yang tinggi, misalnya program
aplikasi, sampai pada tingkat yang rendah, seperti pada instruksi yang
dijaankan oleh microprocessor.
Pada microprocessor yang tidak menggunakan
pipeline, satu instruksi dilakukan sampai selesai, baru instruksi berikutnya
dapat dilaksanakan. Sedangkan dalam microprocessor yang menggunakan teknik
pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang
berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi
yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda. Jadi,
ada sejumlah tahapan yang akan dilewati oleh sebuah instruksi.
Dengan penerapan pipeline ini pada microprocessor
akan didapatkan peningkatan dalam unjuk kerja microprocessor. Hal ini terjadi
karena beberapa instruksi dapat dilakukan secara parallel dalam waktu yang
bersamaan. Secara kasarnya diharapkan akan didapatkan peningkatan sebesar K
kali dibandingkan dengan microprocessor yang tidak menggunakan pipeline,
apabila tahapan yang ada dalam satu kali pemrosesan instruksi adalah K tahap.
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, bisa muncul, misalnya
instruksi yang berurutan memerlukan data dari instruksi yang sebelumnya. Kasus
Jump, juga perlu perhatian, karena ketika sebuah instruksi meminta untuk
melompat ke suatu lokasi memori tertentu, akan terjadi perubahan program
counter, sedangkan instruksi yang sedang berada dalam salah satu tahap proses
yang berikutnya mungkin tidak mengharapkan terjadinya perubahan program
counter.
Teknik pipeline yang diterapkan pada
microprocessor, dapat dikatakan sebuah arsitektur khusus. Ada perbedaan
khusus antara model microprocessor yang tidak menggunakan arsitektur pipeline
dengan microprocessor yang menerapkan teknik ini. Pada microprocessor yang
tidak menggunakan pipeline, satu instruksi dilakukan sampai selesai, baru instruksi
berikutnya dapat dilaksanakan. Sedangkan dalam microprocessoryang menggunakan
teknik pipeline, ketika satu instruksi sedangkan diproses, maka instruksi yang
berikutnya juga dapat diproses dalam waktu yang bersamaan. Tetapi, instruksi
yang diproses secara bersamaan ini, ada dalam tahap proses yang berbeda.
Jadi, ada sejumlah tahapan yang akan dilewati oleh
sebuah instruksi.
Misalnya sebuah microprocessor menyelesaikan sebuah
instruksi dalam 4 langkah. Ketika instruksi pertama masuk ke langkah 2, maka
instruksi berikutnya diambil untuk diproses pada langkah 1 instruksi tersebut.
Begitu seterusnya, ketika instruksi pertama masuk ke langkah 3, instruksi kedua
masuk ke langkah 2 dan instruksi ketiga masuk ke langkah 1.
Teknik pipeline ini menyebabkan ada sejumlah hal
yang harus diperhatikan sehingga ketika diterapkan dapat berjalan dengan baik.
Tiga kesulitan yang sering dihadapi ketika menggunakan teknik pipeline ini
adalah :
Terjadinya penggunaan resource yang bersamaan,
Ketergantungan terhadap data, Pengaturan Jump ke suatu lokasi memori. 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, bisa muncul, misalnya instruksi yang berurutan memerlukan data
dari instruksi yang sebelumnya.
Pipelining Instruksi
Dalam suatu komputer nonpipeline, 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, disebut juga
instruction lihat-ke-muka (look-ahead), mem-fecth instruksi secara berurutan.
Dengan demikian, jika suatu instruksi menyebabkan percabangan keluar dari
urutan itu maka pipelining akan dikosongkan dari seluruh instruksi yang telah
di-fetch sebelumnya dan instruksi percabangan (branched-to instruction)
tersebut di-fecth. Proses pipelining instruksi dikerjakan pada hampir semua
berkemampuan tinggi (high-performance) dewasa ini.
No comments:
Post a Comment