Selasa, 25 April 2017

Pengertian Branch Prediction

Dalam arsitektur komputer,sebuah prediktor cabang adalah sirkuit digital yang mencoba untuk menebak arah mana cabang (misalnya struktur if-then-else) akan pergi sebelum ini diketahui pasti. Tujuan dari prediktor cabang untuk meningkatkan aliran dalam pipa intruksi. rediktor cabang penting dalam mikroprosesor pipelined hari ini untuk  encapai kinerja tinggi.
      Dua arah percabangan biasanya diimplementasikan dengan instruksi lompat bersyarat. Sebuah lompat bersyarat dapat menjadi "tidak diambil" dan melanjutkan eksekusi dengan cabangpertama dari kode yang mengikuti segera setelah lompat bersyarat - atau dapat "diambil" dan melompat ke tempat yang berbeda di memori program dimana  cabang kedua  ode adalahdisimpan. Hal ini tidak diketahui secara pasti apakah lompat bersyarat akan diambil atau tidak diambil sampai kondisi telah dihitung dan lompat bersyarat telah lulus tahap eksekusi dalam pipa instruksi (lihat gambar. 1).
 
Tanpa prediksi cabang, prosesor harus menunggu sampai instruksi lompat bersyarat telah melewati tahap mengeksekusi sebelum instruksi berikutnya dapat memasuki tahap fetch dalam pipa. Prediktor cabang upaya untuk menghindari pemborosan waktu dengan mencoba untuk menebak apakah lompat bersyarat yang paling mungkin diambil atau tidak diambil. Cabang yang diduga sebagai yang paling mungkin adalah kemudian diambil dan spekulasi dieksekusi. Jika kemudian mendeteksi bahwa salah menebak maka instruksi dieksekusi spekulatif atau sebagian dieksekusi dibuang dan pipa dimulai atas dengan cabang yang benar.
             Waktu yang terbuang dalam kasus misprediction cabang sama dengan jumlah tahap dalam pipa dari tahap ke tahap fetch mengeksekusi. Mikroprosesor modern cenderung memiliki pipa yang cukup panjang sehingga penundaan misprediction adalah antara 10 dan 20 siklus clock. Semakin lama pipa tinggi kebutuhan untuk prediksi cabang yang baik. Pertama kali instruksi lompat bersyarat ditemui, tidak ada banyak informasi untuk dasar prediksi di. Tapi prediksi cabang menyimpan catatan dari apakah cabang diambil atau tidak diambil. Ketika bertemu dengan lompat bersyarat yang telah melihat beberapa kali sebelum kemudian dapat dasar prediksi pada sejarah masa lalu. Prediktor cabang mungkin, misalnya, mengakui bahwa lompat bersyarat diambil lebih sering daripada tidak, atau bahwa itu adalah diambil setiap kali kedua.
              Prediksi cabang tidak sama dengan prediksi cabang target.Prediksi cabang upaya untuk menebak apakah lompatan bersyarat akan diambil atau tidak. Cabang prediksi target yang mencoba untuk menebak target lompatan bersyarat atau tanpa syarat diambil sebelum dihitung oleh decoding dan mengeksekusi instruksi itu sendiri. Cabang cabang prediksi dan prediksi target sering dikombinasikan ke dalam sirkuit yang sama.
 
source : david-chromaticscale.blogspot.com/p/branch-prediction.html

Tidak ada komentar:

Posting Komentar