FAKTOR PENGHAMBAT PENINGKATAN KINERJA
Keenam tahapan memiliki durasi
waktu yang tidak sama, terjadi waktu
tunggu pada beberapa tahapan
pipeline.
Instruksi percabangan bersyarat yang
dapat menggagalkan beberapa
pengambilan instruksi
Instruksi 3 adalah percabangan bersyarat
instruksi 15
Sampai saat instruksi selesai dieksekusi,
tidak ada cara untuk mengetahui instruksi
mana yang akan terjadi kemudian.
Instruksi 4 sampai 14 tidak dilakukan
eksekusi sehingga data harus dibersihkan
dari jalurnya
Eksekusi dilanjutkan saat percabangan
instruksi 15 sudah dilakukan.
Penanganan Percabangan
Untuk apa?
Menjamin terjadinya aliran instruksi
yang stabil.
Kestabilan akan tergangggu saat
instruksi mengalami percabangan
karena belum bisa ditentukan tujuan
percabangan tersebut
Beberapa metode dirancang untuk
mengatasi hal tersebut.
Teknik pendekatan
1. Multiple Streams
2. Prefetch branch target
3. Loop buffer
4. Branch prediction
5. Delayed branch
Multiple Streams
Kedua instruksi percabangan diambil dengan dua
buah streams.
Kelemahan:
Adanya persaingan dalam mengakses register
dan memori untuk dimasukkan dalam pipeline.
Bila dalam percabangan tersebut terdapat
percabangan lagi, tidak mampu ditangani oleh
dua stream.
Walaupun terdapat kelemahan tapi terbukti
meningkatkan kinerja pipelining
Teknik ini diterapkan pada IBM 370/168 dan IBM 3033
Prefetch branch target
Apabila percabangan bersyarat telah
diketahui
Prosesnya:
Dilakukan pengambilan awal (prefetch)
terhadap instruksi setelah percabangan
dan target percabangan
Diterapkan pada IBM 360/91
Masalah:
Diperlukan buffer dan register untuk
Prefetch
LOOP buffer
Apabila terdapat percabangan maka perangkat
keras memeriksa apakah target percabangan
telah ada dalam buffer, bila telah ada maka
instruksi berikutnya diambil dari buffer.
Perbedaan dengan prefetch adalah pada loop
buffer akan membuffer instruksi ke depan dalam
jumlah yang banyak, sehingga bila target tidak
berjauhan lokasinya maka secara otomatis telah
terbuffer.
Terkesan teknik ini seperti cache memori, namun
terdapat perbedaan karena loop buffer masih
mempertahankan urutan instruksi yang
diambilnya.
BRANCH PREDICTION
Penganalisaan sejarah instruksi, kenapa?
Instruksi komputer seringkali terjadi berulang
Sehingga:
Teknik prediksi ini juga diterapkan dalam
pengambilan instruksi pada cache memory.
Diperlukan algoritma khusus untuk melakukan
prediksi tersebut.
Patokan memprediksi target percabangan
Penganalisaan eksekusi-eksekusi yang telah terjadi dan
aspek lokalitas
Aspek lokalitas memori adalah kecenderungan
penyimpanan instruksi yang berhubungan dalam tempat
yang berdekatan
DELAYED BRANCH
Eksekusi pada tahapan pipeline yang
melibatkan percabangan akan dilakukan
penundaan proses beberapa saat sampai
didapatkan hasil percabangan.
Namun tahapan pipelining lainnya dapat
berjalan seiring penundaan tersebut
Teknik penundaan ini disebut dengan
menggunakan instruksi NOOP
Tidak ada komentar:
Posting Komentar