Rabu, 28 September 2011

Branch Prediction

Peregangan IBM, dirancang pada 1950-an, pra-dieksekusi semua cabang bersyarat dan setiap cabang kondisional yang tergantung pada register indeks. Untuk cabang kondisional lainnya, model produksi pertama dua diimplementasikan memprediksi untaken; model selanjutnya diubah untuk menerapkan prediksi yang didasarkan pada nilai-nilai saat ini dari bit indikator (sesuai dengan kode kondisi saat ini) Para desainer Peregangan telah dianggap bit sedikit statis dalam. instruksi cabang pada awal proyek tetapi memutuskan melawan mereka. Pemulihan Misprediction disediakan oleh unit lookahead pada Stretch, dan bagian dari reputasi Peregangan untuk yang kurang-bintang kinerja disalahkan pada waktu yang dibutuhkan untuk pemulihan misprediction. Selanjutnya IBM desain komputer yang besar tidak menggunakan prediksi cabang dengan eksekusi spekulatif sampai IBM 3090 pada tahun 1985.
Prediktor Dua-bit diperkenalkan oleh Tom McWilliams dan Curt Widdoes pada tahun 1977 untuk Lawrence Livermore National Lab S-1 superkomputer dan mandiri oleh Jim Smith pada tahun 1979 di CDC .
Prosesor Microprogrammed, populer dari tahun 1960 ke tahun 1980-an dan seterusnya, mengambil beberapa siklus per instruksi, dan umumnya tidak memerlukan prediksi cabang. Namun, bersama dengan IBM 3090, ada beberapa contoh desain microprogrammed prediksi cabang yang dimasukkan.
Burroughs B4900, mesin COBOL microprogrammed dirilis pada ~ 1982 adalah pipelined dan digunakan prediksi cabang. Para B4900 cabang prediksi sejarah negara disimpan kembali ke dalam memori instruksi selama pelaksanaan program. Para B4900 dilaksanakan 4-negara cabang prediksi dengan menggunakan 4 opkode cabang semantik setara untuk mewakili setiap jenis operator yang cabang. Opcode digunakan menunjukkan sejarah yang instruksi cabang tertentu. Jika perangkat keras ditentukan bahwa keadaan prediksi cabang cabang tertentu harus diperbarui, itu akan menulis ulang opcode dengan opcode semantik setara yang mengisyaratkan sejarah yang tepat. Skema ini memperoleh hit rate 93%. US patent 4.435.756 dan yang lainnya diberikan pada skema ini.
VAX 9000, diumumkan pada tahun 1989, adalah baik microprogrammed dan pipelined, dan melakukan prediksi cabang. [14]
Komersial pertama prosesor RISC, MIPS R2000 dan R3000 dan prosesor SPARC sebelumnya, tidak hanya sepele "tidak-diambil" prediksi cabang. Karena mereka menggunakan slot cabang keterlambatan, mengambil hanya satu instruksi per siklus, dan dieksekusi di-order, tidak ada kerugian kinerja. Kemudian, R4000 menggunakan sepele yang sama "tidak-diambil" prediksi cabang, dan kehilangan dua siklus untuk setiap cabang diambil karena kekambuhan resolusi cabang empat siklus panjang.
Prediksi cabang menjadi lebih penting dengan pengenalan prosesor superscalar pipelined seperti Intel Pentium, DEC Alpha 21064, MIPS R8000, dan seri IBM POWER. Prosesor ini semua bergantung pada satu bit atau prediktor bimodal sederhana.
Alpha DEC 21264 (EV6) menggunakan prediktor berikutnya garis diganti oleh prediktor lokal gabungan dan prediktor global, di mana pilihan menggabungkan dibuat oleh prediksi bimodal. 
Para K8 AMD memiliki prediktor bimodal dan global gabungan, di mana pilihan menggabungkan lain prediktor bimodal. Cache prosesor ini dasar dan counter bimodal pilihan prediktor dalam bit dari L2 cache ECC lain digunakan untuk. Akibatnya, ia memiliki basis yang sangat luas efektif dan tabel pilihan prediktor, dan paritas daripada ECC pada instruksi dalam cache L2. Paritas baik-baik saja, karena setiap instruksi menderita kesalahan paritas dapat diremehkan dan refetched dari memori.
Alpha 21464 [15] (EV8, dibatalkan akhir dalam desain) memiliki cabang misprediction hukuman minimal 14 siklus. Ini adalah untuk menggunakan prediktor garis kompleks tapi cepat selanjutnya diganti oleh bimodal gabungan dan suara mayoritas-prediktor. Suara mayoritas adalah antara bimodal dan dua prediktor gskew.

0 komentar:

Posting Komentar