Saturday, 22 December 2012

Pipelining (part 2) by Eliza Joanne

Solution : Forwarding (aka Bypassing)
Menggunakan hasil apabila dikira. 
- Jangan menunggu untuk disimpan dalam register. 
- Memerlukan lebih sambungan dalam datapath.

Gambar rajah menunjukkan perwakilan grafik penghantaran.
Sambungan menunjukkan laluan penghantaran dari output peringkat EX "add" untuk input peringkat EX untuk "sub", menggantikan nilai daripada daftar "$ s0" membaca di peringkat kedua "sub".

Load-Use Data Hazard

Gambar rajah menunjukkan keperluan untuk stall even dengan forwarding apabila arahan R-format cuba menggunakan data.
Tanpa stall, laluan peringkat output  memory access kepada peringkat execution input akan mundur dalam masa, dan ini adalah mustahil.

Solution 1 : Stall on Branch 


Gambar rajah di atas menunjukkan pipeline stalling dalam setiap pada setiap cawangan bersyarat sebagai penyelesaian untuk mengawal bahaya. Contoh ini menganggap cabang bersyarat diambil, dan arahan di destinasi cawangan atau arahan.
Terdapat satu-peringkat pipeline stall, atau bubble, selepas cawangan tersebut. Proses ini mewujudkan stall yang lebih rumit. Jika bubble dimasukkan, kesan pada prestasi adalah sama.

Solution 2: Branch Prediction

Pipeline lebih panjang tidak boleh mudah menentukan cawangan awal.
- Stall penalty tidak boleh diterima.

Ramalan hasil cawangan.
- Hanya stall jika ramalan adalah salah.

Dalam MIPS pipeline.
- Boleh meramalkan cawangan tidak diambil.
- Mengambil arahan selepas cawangan, dengan tiada kelewatan.

No comments:

Post a Comment