Senin, 01 Oktober 2018

Arsitektur Komputer


Teknik yang dikembangkan untuk meningkatkan kinerja komputer...



Branch Prediction


Dalam arsitektur komputer, sebuah Branch Prediction adalah sirkuit digital yang mencoba untuk menebak arah mana cabang (misalnya struktur if-then-else) akan pergi sebelum keadaannya diketahui pasti. Tujuan dari Branch Predictor untuk meningkatkan aliran dalam pipa instruksi. Branch Prediction penting dalam mikroprosesor pipelined untuk mencapai kinerja tinggi.


Dua arah percabangan biasanya diimplementasikan dengan instruksi lompat bersyarat. Melonjaknya bersyarat dapat menjadi "tidak diambil" dan melanjutkan eksekusi dengan cabang pertama dari kode yang mengikuti segera setelah lompat bersyarat - atau dapat "diambil" dan melompat ke tempat yang berbeda di memori program dimana cabang kedua kode itu disimpan.

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 yang diambil dan spekulasi kemudian dieksekusi. Jika kemudian mendeteksi bahwa ada kesalahan menebak maka instruksi dieksekusi spekulatif atau sebagian dieksekusi dibuang dan pipa dimulai dari 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 makin baik.

Pertama kali instruksi lompat bersyarat ditemui, tidak ada banyak informasi untuk dasar prediksi ini. 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 kejadian yang lalu. Branch prediction mungkin, misalnya, mengakui bahwa lompat bersyarat diambil lebih sering daripada tidak, atau bahwa itu diambil setiap dua kali.

branch prediction 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.



Data-Flow Analysis


Data-Flow Analysis adalah teknik untuk mengumpulkan informasi tentang kemungkinan himpunan nilai-nilai dihitung di berbagai titik di sebuah program komputer. Kontrol aliran Sebuah program grafik (CFG) digunakan untuk menentukan bagian-bagian dari program dimana nilai tertentu ditugaskan ke variabel yang mungkin merambat. Informasi yang dikumpulkan sering digunakan oleh compiler ketika mengoptimalkan program. Sebuah contoh kanonik dari analisis data-aliran mencapai definisi.

Sebuah cara sederhana untuk melakukan Data-Flow Analysis program adalah untuk mengatur aliran data persamaan untuk setiap node dari grafik kontrol aliran dan menyelesaikannya dengan berulang kali menghitung output dari input lokal di setiap node sampai seluruh sistem stabil,sampai mencapai sebuah fixpoint. Pendekatan umum ini dikembangkan oleh Gary Kildall saat mengajar di Naval Postgraduate School. 



Speculative Execution


Eksekusi spekulatif dalam sistem komputer adalah melakukan pekerjaan, yang hasilnya mungkin tidak diperlukan. Teknik optimasi kinerja digunakan dalam prosesor pipelined dan systems.

Eksekusi spekulatif adalah optimasi kinerja. Ide utama adalah untuk melakukan pekerjaan yang mungkin tidak diperlukan. Targetnya adalah untuk menyediakan konkurensi lebih jika sumber daya tambahan yang tersedia.

Tidak ada komentar:

Posting Komentar

Sistem Operasi

Pengertian Harddisk Harddisk adalah salah satu perangkat keras komputer yang menyediakan ruang penyimpanan yang digunakan untuk...