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