Table of Contents
Parallelisme tingkat-Instruction (ILP) adalah faktor kunci dalam meningkatkan kinerja CPU modern. Ini melibatkan pelaksanaan instruksi multiple secara bersamaan untuk memaksimalkan throughput. Menganalisa dan meningkatkan ILP memerlukan pemahaman arsitektur prosesor dan mengidentifikasi bottneck yang membatasi eksekusi paralel.
Menganalisa Parallelisme Aras Instruksi
ifford Untuk menganalisis ILP, alat seperti penghitung kinerja dan perangkat lunak profiling digunakan. Alat-alat ini mengukur metrik seperti instruksi throughput, kios pipa, dan cache misses. Mengidentifikasi pola dalam metrik ini membantu menentukan tahap di mana paralelisme terbatas.
Ketergantungan instruksi yang diperiksa sangat penting bahaya data, seperti baca-setelah-tulis (RAW), dapat mencegah instruksi untuk melakukan proses yang paralel kontrol bahaya, berasal dari instruksi cabang, juga berdampak ILP dengan memperkenalkan kios.
Strategi untuk Meningkatkan ILP
Beberapa teknik dapat meningkatkan ILP dalam CPU modern. Pelaksanaan Out-of-order memungkinkan instruksi untuk diproses sebagai sumber daya menjadi tersedia, mengurangi gerai yang disebabkan oleh ketergantungan. Eksekusi eksekusi spekulatif memprediksi hasil cabang untuk menjaga saluran pipa tetap terisi.
Pengoptimalkan Kompiler kompilator juga berperan.Mengurut ulang instruksi, meminimalkan dependensi, dan unrolling loop dapat meningkatkan paralelisme.Fuit perangkat keras seperti register mengubah nama bantuan menghilangkan dependensi palsu, meningkatkan ILP lebih lanjut.
Teknik Kunci Otimasi
- [5] HANFALAST:0]]Instruction Reordering: Perintah kembali untuk mengurangi bahaya.
- [[GALALT:0]]Loop Unrolling: Memperluas loop untuk mengekspos lebih banyak instruksi paralel.
- Register Mengganti nama: Menggunakan tambahan register untuk menghindari dependensi palsu.
- Branch Prediction: Mengantisipasi hasil cabang untuk meminimalkan gerai.
- [[Efleksif:0]]Out-of-Order Eksekusi:] Menjalankan instruksi sebagai sumber daya tersedia.