i.
Pengertian Pipeline
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 sistemkomputer.
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.
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.
Intruksi Pipeline
Instruction pipeline adalah teknik yang digunakan pada komputer untuk
meningkatkan throughput eksekusi instruksi pada Central Processing
Unit (CPU). Pipeline adalah sekumpulan tahapan proses yang terhubung
secara berurutan.Output dari sebuah tahap proses menjadi input untuk tahap
berikutnya. Pipeline tidak mengurangi waktu eksekusi sebuah instruksi
tetapi meningkatkan jumlah instruksi yang dapat diproses secara bersamaan.
Dibawah ini akan dibahas tentang Instruction Pipeline
pada CPU. Hal-hal yang dicakup antara lain adalah konsep mengenai pipeline,
permasalahan, dan hambatan yang ada pada pipeline khususnya mengenai
dependensi data, penanganan percabangan instruksi, dan penjelasan mengenai
contoh implementasi pipeline pada beberapa prosesor komputer.
Siklus Instruksi
- Fetch : Siklus pengambilan data kememori atau register
- Execute : menginterpretasikan opcode dan melakukan operasi yang di indikasikan
- Interrupt : apabila interrupt diaktifkan dan interrupt telah terjadi, simpan status proses saat itu dan layani interupsi
Pengolahan Instruksi
- Pengambilan instruksi
- Pengeksekusian instruksi
- Terdapat waktu yang dibutuhkan selama proses eksekusi sebuah instruksi pada saat memori sedang tidak diakses
- Waktu ini dapat digunakan untuk mengambil instruksi berikutnya secara paralel (bersamaaan) dengan eksekusi instruksi saat itu
*
Tahapannya independen, karena tiap tahapan bekerja sendiri dalam waktu yang
bersamaan. Ada 2 tahap:
- Tahap
pertama mengambil instruksi dan mem-buffer- kannya
- Ketika tahapan kedua bebas, tahapan pertama mengirimkan instruksi yang di-buffer-kan tersebut
- Pada saat tahapan kedua sedang mengeksekusi instruksi, tahapan pertama memanfaatkan siklus memori yang tidak dipakai untuk mengambil dan mem-buffer-kan instruksi berikutnya.
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).
Contoh pengerjaan
instruksi tanpa pipeline
t =
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
ADD AX,AX
|
IF
|
DE
|
IF
|
DE
|
EX
|
|||||
ADD BX,CX
|
IF
|
DE
|
IF
|
DE
|
EX
|
Disini instruksi baru
akan
dijemput jika instruksi sebelumnya telah
selesai dilaksanakan.
Contoh pengerjaan
instruksi dengan pipeline
t =
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
ADD AX,AX
|
IF
|
DE
|
IF
|
DE
|
EX
|
|||||
ADD BX,CX
|
IF
|
DE
|
IF
|
DE
|
EX
|
|||||
ADD DX,DX
|
IF
|
DE
|
IF
|
DE
|
EX
|
Disini instruksi
baru akan dijemput setelah tahap IF menganggur (t2).
Dengan
adanya pipeline dua instruksi selesai dilaksanakan padadetik keenam (sedangkan
pada kasus tanpa pipeline baru selesai pada detik kesepuluh). Dengan demikian
telah terjadi percepatan sebanyak 1,67x dari 10T menjadi hanya 6T. Sedangkan
untuk pengerjaan 3 buah instruksi terjadi percepatan sebanyak 2, 14 dari 15T
menjadi hanya 7T.
Untuk
kasus pipeline sendiri, 2 instruksi dapat dikerjakan dalam 6T(CPI = 3) dan
instruksi dapat dikerjakan dalam 7T (CPT = 2,3) dan untuk 4 instruksi dapat
dikerjakan dalam 8T (CPI =2). Ini
berarti utnuk 100 instruksi akan dapat dikerjakan dalam 104T (CPI = 1,04). Pada
kondisi ideal CPI akan harga 1.
Efek Pipeline
Mempercepat
eksekusi instruksi, apabila tahapan pengembalian tahapan dan eksekusi instruksi
memerlukan waktu yang sama, maka siklus instruksinya akan berkurang menjadi
separuhnya
Kesimpulan
Pipelining
Instruction merupakan metode pengambilan dan decode instruksi (pra-pengolahan)
dimana pada waktu tertentu beberapa instruksi program ada pada berbagai tahap untuk
diam bila tau di dekode.
Sumber :
Sumber :
0 komentar:
Posting Komentar