Pemproses RISC-V semakin melihat kepada gabungan arahan sebagai cara untuk merapatkan jurang yang ditinggalkan oleh kekurangan arahan pemindahan bersyarat tradisional dalam seni bina tersebut. Walau bagaimanapun, isu teknikal kritikal telah muncul yang boleh melemahkan usaha pengoptimuman ini, berpotensi memaksa pereka bentuk perkakasan untuk memikirkan semula pendekatan mereka dalam meningkatkan prestasi RISC-V .
Tidak seperti keluarga arahan csel
yang berkuasa dalam ARM yang boleh mengendalikan operasi bersyarat yang kompleks dalam satu arahan, RISC-V bergantung kepada sambungan yang lebih mudah seperti Zicond dan mengharapkan teras pemproses menggunakan gabungan arahan untuk menggabungkan beberapa arahan asas menjadi operasi yang lebih cekap. Pendekatan ini kelihatan menjanjikan sehingga pembangun menemui konflik asas dengan model konsistensi memori RISC-V .
Susunan Memori Mencipta Halangan Gabungan
Masalah teras terletak pada cara RISC-V mengendalikan kebergantungan kawalan dan operasi memori. Apabila pemproses cuba menggabungkan cawangan bersyarat dengan arahan lain untuk mencipta operasi tanpa cawangan, ia secara tidak sengaja mengubah jaminan susunan memori yang dijangka dilihat oleh teras pemproses lain. Dalam model memori RISC-V , setiap arahan cawangan mencipta kebergantungan kawalan yang mempengaruhi semua operasi penyimpanan berikutnya, walaupun apabila cawangan tidak benar-benar mengubah aliran program.
Perbincangan komuniti mendedahkan bahawa ini bukan sekadar kebimbangan teori. Seperti yang dinyatakan oleh seorang pakar teknikal, arahan gabungan perlu mengekalkan sifat seperti cawangan untuk mengelakkan pelanggaran model memori. Ini bermakna pendekatan gabungan mudah yang digunakan dengan jayanya dalam pemproses x86 dan ARM mungkin tidak berfungsi secara langsung dalam sistem RISC-V .
Kebergantungan kawalan: Hubungan di mana pelaksanaan satu arahan bergantung kepada hasil operasi bersyarat, mempengaruhi cara operasi memori boleh disusun semula.
Kesan Model Memori pada Penggabungan Arahan
Transformasi Bermasalah:
- Sebelum penggabungan: Cawangan mencipta kebergantungan kawalan yang mempengaruhi semua operasi simpan seterusnya
- Selepas penggabungan: Hanya kebergantungan data/alamat yang kekal, jaminan susunan yang lebih lemah
- Hasil: Kemungkinan pelanggaran model memori yang boleh dilihat oleh teras pemproses lain
Penyelesaian Diperlukan:
- Arahan yang digabungkan mesti mengekalkan sifat susunan memori seperti cawangan
- Operasi pagar tambahan mungkin diperlukan
- Seni bina mikro yang lebih kompleks untuk mengendalikan keperluan susunan
Sambungan Vendor Mengisi Jurang
Sementara spesifikasi rasmi RISC-V bergelut dengan cabaran ini, vendor perkakasan telah mengambil tindakan sendiri. Syarikat-syarikat melaksanakan sambungan pemindahan bersyarat mereka sendiri, termasuk xtheadcondmov
dan xmipscmove
, yang menyediakan fungsi yang dijangka oleh ramai pembangun dalam seni bina asas.
Respons komuniti bercampur-campur, dengan sesetengah pembangun mempersoalkan sama ada prinsip reka bentuk RISC-V terlalu terhad. Komitmen seni bina untuk mengehadkan arahan kepada dua daftar sumber telah mencipta komplikasi yang dielakkan oleh seni bina pesaing dengan menyokong operasi tiga daftar.
Perbandingan Sambungan Pemindahan Bersyarat RISC-V
Sambungan | Jenis | Penerangan |
---|---|---|
Zicond | Rasmi | Operasi sifar bersyarat terhad, memerlukan pelbagai arahan |
xtheadcondmov | Khusus vendor | Sokongan pemindahan bersyarat penuh ( T-Head ) |
xmipscmove | Khusus vendor | Sokongan pemindahan bersyarat penuh (syarikat MIPS ) |
P extension | Rasmi yang sedang berkembang | Termasuk arahan MVM , MVMN , MERGE untuk operasi berpakej |
Kesan Prestasi pada Jenis Teras Berbeza
Cabaran gabungan mempengaruhi reka bentuk pemproses yang berbeza dalam cara yang berbeza-beza. Teras RISC-V yang lebih kecil dan mudah yang tidak menyusun semula operasi memori mungkin tidak menghadapi isu yang ketara. Walau bagaimanapun, teras yang lebih besar dan kompleks yang bergantung kepada teknik pengoptimuman canggih mendapati diri mereka memerlukan kerumitan perkakasan tambahan untuk mengendalikan keperluan model memori.
Sesetengah pengilang meneroka pendekatan alternatif, seperti memisahkan unit pelaksanaan untuk menyediakan konfigurasi port daftar yang fleksibel. Ini membolehkan teras mengendalikan operasi dua daftar yang mudah dengan cekap sambil masih menyokong operasi tiga daftar yang lebih kompleks apabila diperlukan, walaupun dengan kos kerumitan penjadualan tambahan.
Memandang ke Hadapan
Komuniti RISC-V sedang giat bekerja pada penyelesaian, dengan sambungan yang lebih baharu seperti sambungan P (packed integer SIMD) mula memasukkan arahan pilihan tiga daftar yang betul. Walau bagaimanapun, penyelesaian ini kekal tersebar merentasi dokumen spesifikasi yang berbeza dan belum dilaksanakan secara meluas lagi.
Situasi ini menyerlahkan cabaran yang lebih luas yang dihadapi RISC-V semasa ia matang daripada projek akademik kepada seni bina komersial. Walaupun falsafah reka bentuk untuk memastikan perkara mudah mempunyai faedah, ia kadangkala mencipta komplikasi yang tidak dijangka apabila cuba mencapai prestasi yang kompetitif dengan seni bina yang telah mantap.
Buat masa ini, pelaksana RISC-V mesti menyeimbangkan dengan teliti keinginan untuk pengoptimuman prestasi terhadap kekangan yang dikenakan oleh model memori dan prinsip reka bentuk seni bina. Penyelesaian muktamad mungkin memerlukan sama ada melonggarkan beberapa kekangan reka bentuk atau membangunkan teknik gabungan yang lebih canggih yang mengendalikan keperluan susunan memori dengan betul.
Rujukan: RISC-V Conditional Moves