Kamis, 09 Juli 2009

Kesulitan pada Pipelining

:: Kesulitan ::

Banyak desain termasuk Pipelines selama 7, 10 dan 20 tahapan (seperti pada Intel Pentium 4) yang kemudian "Prescott" dan "Cedar Mill" core Pentium 4 (dan Pentium D derivatif) memiliki 31-tahap pipa, maka lama di konsumen utama komputasi.Xelerator X10q yang memiliki pipa lebih dari seribu tahapan panjang The downside dari panjang pipa adalah bahwa ketika sebuah program cabang, prosesor tidak bisa tahu di mana untuk mengambil instruksi berikutnya dari dan harus menunggu sampai cabang instruksi untuk menyelesaikan, meninggalkan pipa belakangnya kosong .Dalam kasus yang ekstrim, performa dari prosesor pipelined pendekatan yang dapat secara teoritis yang un-pipelined prosesor, atau bahkan sedikit lebih buruk jika semua kecuali satu pipa tahapan yang menganggur dan kecil overhead yang hadir antara tahap. Cabang prediksi mencoba untuk meringankan masalah ini oleh guessing apakah cabang akan diambil atau tidak, dan eksekusi spekulatif kode jalur yang memprediksi akan diambil .Jika prediksi ini betul, cabang prediksi untuk menghindari hukuman yang terkait dengan percabangan.Namun, cabang prediksi itu sendiri bisa jadi masalah exacerbating jika cabang prediksi buruk, sebagai salah kode jalur yang telah mulai eksekusi harus bersemangat dari pipa sebelum melanjutkan eksekusi di lokasi yang benar.

Dalam beberapa aplikasi, seperti supercomputing, program-program yang ditulis secara khusus untuk cabang jarang dan sangat panjang Pipelines dapat mempercepat penghitungan dengan mengurangi siklus waktu. Percabangan jika terus terjadi, kembali memesan cabang yang seperti itu yang lebih mungkin diperlukan petunjuk yang ditempatkan ke dalam pipa secara signifikan dapat mengurangi kerugian yang berhubungan dengan kecepatan yang gagal untuk flush cabang. Program seperti gcov dapat digunakan untuk meneliti seberapa sering cabang-cabang tertentu yang benar-benar dijalankan dengan menggunakan teknik yang dikenal sebagai cakupan analisis, namun seperti analisis yang sering jalan terakhir untuk optimasi. Karena adanya instruksi pipa, kode prosesor beban yang tidak akan segera dijalankan.Karena ini, dalam pembaruan kode sangat dekat dengan lokasi pelaksanaan sekarang mungkin tidak akan berpengaruh karena mereka sudah dimuat ke dalam Prefetch Input Antrian. instruksi tersembunyi membuat fenomena ini bahkan lebih parah lagi. Ini hanya relevan untuk cukup memodifikasi kode.

Referensi: www.wikipedia.org

Tidak ada komentar:

Posting Komentar