Kamis, 09 Juli 2009

4 tahapan Pipelining


Pipeline:
1.Fetch (mengambil)
2.Decode ( membaca sandi)
3.Execute ( menjalankan )
4.Write-back (menulis balik )
Abu-abu atas kotak daftar tunggu instruksi yang akan dilaksanakan; bagian bawah kotak abu-abu adalah daftar instruksi yang telah selesai, dan tengah kotak putih adalah pipa.

Referensi: www.wikipedia.org

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

Kelebihan dan Kekurangan Pipelining

:: Kelebihan dan Kekurangan Pipelining ::

- Kelebihan
1.siklus waktu dalam prosesor berkurang, sehingga secara umum menilai instruksi-isu
2.kombinasi beberapa sirkuit seperti adders atau multipliers dapat dibuat lebih cepat dengan menambahkan lebih circuitry. Jika pipelining digunakan sebagai gantinya,ia dapat menyimpan circuity melawan yang lebih kompleks atas kombinasi sirkuit.

-Kekurangan
1. Mencegah penundaan cabang ini (berlaku, setiap cabang yang tertunda) dan masalah dengan serial instruksi yang dijalankan secara bersamaan,akibatnya desain yang lebih sederhana dan murah untuk produksi.
2.Instruksi yang tersembunyi pada prosesor non pipelining tersebut sedikit lebih rendah daripada di pipelining yang setara. Hal ini disebabkan oleh kenyataan bahwa tiba-tiba harus ditambahkan ke jalur data dari prosesor pipelined
3.prosesor non pipelining akan ada instruksi bandwith yang stabil. Kinerja prosesor pipelined sangat sulit untuk memprediksi dan dapat bervariasi secara lebih luas di antara berbagai program.
Contoh:
instruksi khas untuk menambahkan dua nomor mungkin ADD A, B, C yang menambahkan nilai memori ditemukan di lokasi A dan B, dan kemudian menyerahkan hasil di lokasi memori C. sebuah prosesor pipelining yang akan merusak ini menjadi serangkaian tugas yang mirip dengan:
LOAD R1, A Load R1, A
LOAD R2, B Load R2, B
ADD R3, R1, R2 ADD R3, R1, R2
STORE C, R3 MALING C, R3
LOAD next instruction

Nilai-nilai yang disimpan dalam lokasi memori berlabel 'A' dan 'B' yang dimuat (disalin) ke dalam register R1 dan R2, kemudian ditambahkan, dan hasilnya (yang mendaftar di R3) yang disimpan dalam lokasi memori berlabel 'C'.
Dalam contoh ini adalah pipa yang panjang memliki tiga tahapan, memuat ,menjalankan, dan menyimpan. Setiap langkah-langkah itu yang disebut pipa tahap.(tahap pipeline)
Pada prosesor non pipeline, hanya satu tahap dapat bekerja pada suatu waktu sehingga seluruh instruksi yang lengkap sebelum instruksi berikutnya dapat dimulai.Jadi, saat ini adalah instruksi di jalankan tahap kedua instruksi akan berada pada tahap membaca sandi dan instruksi 3. Akan mengambil pada tahap.
Pipelining tidak mengurangi waktu yang diperlukan untuk menyelesaikan sebuah instruksi itu bukan kenaikan jumlah instruksi yang dapat diproses dan sekaligus mengurangi penundaan antara selesai petunjuk disebut 'throughput'.Semakin banyak pipa tahapan yang memiliki prosesor, semakin banyak instruksi yang dapat bekerja pada sekaligus dan kurang dari keterlambatan ada antara petunjuk selesai.Setiap hari ini menggunakan microprocessor diproduksi sekurang-kurangnya 2 tahapan pipa. setiap tahap memiliki 2 pipa. Prosesor Intel Pentium 4 ada 20 tahap Pipelines.
pseudo-kode assembly listing yang akan dilaksanakan:
LOAD A, #40 ; load 40 in A
MOVE B, A ; copy A in B
ADD B, #20 ; add 20 to B
STORE 0x300, B ; store B into memory cell 0x300

Beban instruksi yang ada di tahap menyimpan, di mana hasil-nya (nomor 40) akan disimpan dalam register A. Sementara itu, MOVE instruksi yang sedang dijalankan. Karena harus memindahkan isi dari A ke B, harus menunggu sampai yang memuat instruksi.

instruksi menyimpan adalah yang diambil, sementara MOVE adalah instruksi finishing off dan ADD adalah menghitung
Perlu diketahui bahwa, kadang-kadang, suatu instruksi akan tergantung pada hasil yang lain (seperti contoh kami MOVE)
Bila lebih dari satu instruksi referensi lokasi tertentu untuk operand, baik membacanya (sebagai masukan) atau menulis itu (sebagai output), yang menjalankan instruksi di dalam urutan yang berbeda dari program yang asli agar dapat mengakibatkan bahaya (yang disebutkan di atas)
Ada beberapa teknik yang didirikan untuk mencegah bahaya baik dari terjadi, atau bekerja di sekitar mereka jika mereka melakukan.

Referensi: www.wikipedia.org

Konsep Pipelining

:: Konsep Pipeline ::

Dalam bentuk konsep yang sederhana sirkulasi pipeline rotary dari seluruh register prosesor mengitari cincin. Data register mengalir disekitar cincin ini, nilai-nilai yang memeriksa berbagai fungsi dan dimasukkan hasil unit. Registers tidak disimpan dalam langkah kunci walaupun mereka dicegah putaran dari satu sama lain. Hal ini memungkinkan register tak berguna akan diteruskan ke ALUs setelah operasi sehingga dapat terjadi secara paralel. Jika ada data dependensi, namun fungsi unit akan menunggu nilai baru. Oleh karena itu fungsi unit menjadi terpenting dengan instruksi yang akan mulai dijalankan segera setelah data yang diterima.

Referensi: www.cmpe.boun.edu

Pipelining

::Pengertian Pipelining::

Metoda pengambilan dan dekode instruksi (pra-pengolahan) dimana pada waktu tertentu beberapa instruksi program ada pada berbagai tahap untuk diambil atau didekode.

::Pengenalan::

Prosesor Pipeline yang berputar adalah prosesor baru untuk arsitektur superscalar komputasi. Ini didasarkan pada cara yang mudah dan pipeline yang biasa, struktur yang dapat mendukung beberapa ALU untuk lebih efisien dalam pengiriman dari bagian beberapa instruksi. Daftar nilai arus yang berputar di sekitar pipa, dibuat oleh dependensi data lokal. Selama operasi normal, kontrol sirkuit tidak berada pada jalur yang kritis dan kinerja hanya dibatasi oleh data harga. Operasi mengalir dengan interval waktu sendiri. Ide utama dari Pipeline Prosesor yang berputar adalah circular uni-arah mengalir dari memori register oleh pusat waktu logika dan proses secara parallel dari operasi ALU.

Struktur lain yang menggunakan penyelesaian deteksi atau selain penundaan yang tepat dari pengaturan waktu pusat tetapi karena masalah waktu yang Syncronization, Pipelines memaksakan sebuah penurunan kinerja. Misalnya counterflow pipeline prosesor yang dirancang sekitar dua arah, pipa membawa petunjuk dan argumen dalam satu arah dan hasil yang lainnya b ini dapat menyebabkan Syncronization masalah antara prosesor.

Pipeline yang berputar menghindari masalah yang hanya melewati data dalam satu arah. Pada prinsipnya, prosesor dari register terus beredar di sekitar cincin yang berhubungan dengan berbagai fungsi ALU,-akses memori dan sebagainya .ada tiap tahap, nilai-nilai yang memeriksa dan disampaikan, kemungkinan setelah perubahan, tidak signifikan dengan pengeluaran tambahan untuk sinkronisasi. Dispatched adalah instruksi dari pusat ke fungsi unit yang memungkinkan beberapa masalah instruksi .

referensi: www.total.or.id, www.cmpe.boun.edu