Anda di halaman 1dari 4

NAMA : Yudi Ari Widodo Setyawan

NPM : 0934015031

ARTI & PENGERTIAN


BRANCH PREDICTION, DATA FLOW ANALYSIS, SPECULATIVE
EXECUTION

 BRANCH PREDICTION

Dalam arsitektur komputer , sebuah prediktor cabang adalah rangkaian digital


yang mencoba menebak mana cara cabang (misalnya -maka-lain struktur jika ) akan pergi
sebelum ini dikenal pasti. Tujuan dari prediktor cabang ini adalah untuk meningkatkan
aliran dalam pipa instruksi (instruction pipeline). Branch predictors are crucial in today's
pipelined microprocessors for achieving high performance . Cabang prediktor penting
dalam pipelined mikroprosesor kini untuk mencapai kinerja yang tinggi.

Sebuah dua arah percabangan biasanya diimplementasikan dengan instruksi jump


bersyarat (condition jump). Sebuah jump bersyarat dapat menjadi "tidak diambil" dan
melanjutkan eksekusi dengan kode cabang pertama yang mengikuti segera setelah jump
bersyarat - atau dapat "diambil" dan melompat ke tempat yang berbeda di memori
program di mana cabang kedua kode disimpan.

Hal ini tidak diketahui secara pasti apakah suatu jump bersyarat akan diambil atau
tidak diambil sampai kondisi telah dihitung dan lompatan bersyarat telah melewati tahap
eksekusi dalam pipa instruksi (lihat gambar 1.).

Gambar 1: Contoh pipa 4-panggung. Kotak berwarna merupakan instruksi independen satu sama lain
Tanpa prediksi cabang, kita harus menunggu sampai instruksi jump bersyarat
telah lulus tahap sebelum mengeksekusi instruksi berikutnya bisa masuk ke tahap fetch
dalam pipa. Prediktor cabang mencoba untuk menghindari pemborosan waktu dengan
mencoba untuk menebak apakah melompat bersyarat paling mungkin diambil atau tidak
diambil. Cabang yang diduga menjadi yang paling mungkin adalah kemudian diambil
dan spekulasi dieksekusi (speculatively executed). Jika kemudian mendeteksi bahwa
salah menebak maka spekulatif dieksekusi atau sebagian instruksi dieksekusi dibuang dan
pipa dimulai atas dengan cabang yang benar.

Waktu yang terbuang dalam kasus misprediction cabang sama dengan jumlah
tahap dalam pipa dari fetch panggung ke panggung mengeksekusi. mikroprosesor modern
cenderung memiliki cukup pipa panjang sehingga penundaan misprediction adalah antara
10 dan 20 siklus clock . Semakin panjang pipa semakin tinggi kebutuhan akan prediksi
cabang yang baik.

Pertama kali sebuah instruksi jump bersyarat ditemui, tidak ada banyak informasi
untuk dasar prediksi. Tapi prediktor cabang menyimpan catatan tentang apakah cabang
diambil atau tidak diambil. Ketika ia menemukan sebuah lompatan bersyarat yang telah
melihat beberapa kali sebelum kemudian dapat mendasari prediksi pada sejarah masa
lalu. Prediktor cabang mungkin, misalnya, mengakui bahwa lompatan bersyarat diambil
lebih sering daripada tidak, atau yang diambil setiap kali kedua.

Cabang prediksi tidak sama dengan target prediksi cabang (branch target
prediction). Prediksi Cabang mencoba untuk menebak apakah lompatan bersyarat akan
diambil atau tidak. Prediksi target Cabang mencoba untuk menebak target lompatan yang
diambil tanpa syarat bersyarat sebelum dihitung oleh decoding dan melaksanakan
instruksi itu sendiri. Cabang prediksi dan prediksi target cabang sering digabungkan ke
dalam sirkuit yang sama.

 DATA FLOW ANALYSIS

Data-flow analisis adalah sebuah teknik untuk mengumpulkan informasi tentang


kemungkinan set nilai-nilai dihitung pada berbagai titik dalam sebuah program komputer.
Sebuah program flow control grafik (CFG) digunakan untuk menentukan bagian-bagian
dari sebuah program untuk mana suatu nilai tertentu yang diberikan ke variabel mungkin
merambat. Informasi yang dikumpulkan sering digunakan oleh kompiler ketika
mengoptimalkan program. Contoh kanonik dari analisis aliran data mencapai definisi .

Sebuah cara sederhana untuk melakukan analisis dataflow program adalah untuk
mengatur persamaan dataflow untuk setiap node dari grafik kontrol aliran dan
menyelesaikannya dengan berulang kali menghitung output dari input secara lokal pada
setiap node sampai seluruh sistem stabil, yaitu mencapai sebuah fixpoint . Pendekatan
umum yang dikembangkan oleh Gary Kildall saat mengajar di Naval Postgraduate
School .
Ini adalah proses pengumpulan informasi tentang cara variabel yang digunakan,
didefinisikan dalam program ini. analisis aliran data upaya untuk memperoleh informasi
tertentu di setiap titik dalam sebuah prosedur. Biasanya, itu sudah cukup untuk
memperoleh informasi ini pada batas blok dasar, karena dari yang mudah untuk
menghitung informasi pada titik-titik di blok dasar. Dalam analisis aliran ke depan,
negara keluar dari blok adalah fungsi dari negara masuk blok. Fungsi ini adalah
komposisi efek laporan di blok tersebut. Keadaan masuknya blok adalah fungsi dari
negara keluar dari pendahulunya.

 SPECULATIVE EXECUTION

Dalam ilmu komputer , eksekusi spekulatif adalah pelaksanaan kode, hasil yang
mungkin tidak diperlukan. Dalam konteks pemrograman fungsional, istilah "spekulatif"
evaluasi digunakan sebagai gantinya.

Pada CPU, speculative executive ini digunakan untuk mempertinggi kecepatan


pemrosesan pada CPU. CPU akan menggunakan melakukan perhitungan pada pipeline
yang berbeda berdasarkan kemungkinan yang diperkirakan oleh komputer. Jika
kemungkinan yang dilakukan oleh komputer tepat, maka hasilnya sudah bisa diambil
langsung dan tinggal melanjutkan perintah berikutnya, sedangkan jika kemungkinan yang
diperkirakan oleh komputer tidak tepat, maka akan dilaksanakan kemungkinan lain sesuai
dengan logika instruksi tersebut.

Teknik yang digunakan untuk pipeline dan superscalar ini bisa melaksanakan
branch prediction dan speculative execution tentunya membutuhkan ekstra transistor
yang tidak sedikit untuk hal tersebut.

Sebagai perbandingan, komputer yang membangkitkan pemrosesan pada PC


pertama yang dikeluarkan oleh IBM pada mesin 8088 memiliki sekitar 29.000 transistor.
Sedangkan pada mesin Pentium III, dean teknologi superscalar dan superpipeline,
mendukung branch prediction, speculative execution serta berbagai kemampuan lainnya
memiliki sekitar 7,5 juta transistor. Beberapa CPU terkini lainnya seperti HP 8500
memiliki sekitar 140 juta transistor.

Secara umum, pernyataan dan definisi dalam sebuah program dapat dibagi menjadi
tiga jenis:

• hal-hal yang harus dijalankan dan wajib


• hal-hal yang tidak perlu dijalankan karena mereka tidak relevan
• pernyataan yang tidak dapat dibuktikan berada di salah satu dari dua kelompok
pertama

Kelompok pertama tidak mendapat manfaat dari eksekusi spekulatif karena


anggotanya perlu menjalankan saja.
Kelompok kedua bisa tenang dibuang seperti evaluasi malas akan membuang
anggotanya.

Kelompok ketiga adalah target evaluasi spekulatif, karena anggotanya dapat


dijalankan bersamaan dengan penghitungan wajib sampai mereka dibutuhkan atau
terbukti menjadi kelompok kedua; concurrency ini berarti bahwa eksekusi spekulatif bisa
diparalelkan .

Fungsi eksekusi spekulatif adalah kinerja optimasi . Ini hanya berguna ketika
eksekusi awal mengkonsumsi sedikit waktu dan ruang dari eksekusi kemudian, dan
tabungan cukup untuk mengkompensasi, dalam jangka panjang, agar upaya kemungkinan
terbuang komputasi nilai yang tidak pernah digunakan.

Modern pipelined mikroprosesor menggunakan eksekusi spekulatif untuk


mengurangi biaya cabang kondisional instruksi. Ketika sebuah instruksi cabang
kondisional ditemui, prosesor menebak arah mana cabang yang paling mungkin untuk
pergi (ini disebut prediksi cabang ), dan segera mulai melaksanakan instruksi dari titik
itu. Jika menebak kemudian terbukti tidak benar, semua perhitungan melewati titik
cabang akan dibuang. Eksekusi awal relatif murah karena tahap pipa yang terlibat kalau
tidak akan tertidur sampai instruksi berikutnya dikenal. Namun, instruksi terbuang
mengkonsumsi siklus CPU yang bisa menghasilkan kinerja yang lain, dan pada laptop,
mereka siklus mengkonsumsi baterai. Selalu ada hukuman untuk cabang mispredicted.
Banyak mikroprosesor (seperti Intel Pentium II dan penerusnya) memiliki instruksi
langkah bersyarat. Ini adalah operasi untuk memindahkan data, biasanya, antara
mendaftar dan memori, jika kondisi terpenuhi. Tidak ada percabangan lagi, dan hukuman
misprediction kurang.

Ref :
http://translate.google.co.id/translate?
hl=id&sl=en&u=http://en.wikipedia.org/wiki/Branch_predictor&ei=x2yTL2TCoiavAPrl
d3ABg&sa=X&oi=translate&ct=result&resnum=4&ved=0CCQQ7gEwAw&prev=/searc
h%3Fq%3Dpengertian%2Bbranch%2Bprediction%26hl%3Did%26sa%3DN

http://translate.google.co.id/translate?hl=id&sl=en&u=http://en.wikipedia.org/wiki/Data-
flow_analysis&ei=WoCyTKbnG4OsvgOrzMXvDg&sa=X&oi=translate&ct=result&resn
um=1&ved=0CB0Q7gEwAA&prev=/search%3Fq%3Ddata%2Bflow%2Banalysis%26hl
%3Did%26prmd%3Db

http://translate.google.co.id/translate?
hl=id&sl=en&u=http://en.wikipedia.org/wiki/Speculative_execution&ei=b4KyTM7iIoK
mvQPO6eSyBg&sa=X&oi=translate&ct=result&resnum=1&ved=0CB4Q7gEwAA&pre
v=/search%3Fq%3DSPECULATIVE%2BEXECUTION%26hl%3Did%26sa%3DG

Anda mungkin juga menyukai