Lanjutkan ke konten

BMI2

Referensi arsitekturFeex

BMI2 menambahkan operasi bit dan bilangan bulat x86 skalar seperti deposit/ekstraksi bit paralel, pergeseran variabel, dan perkalian independen-flag. Ekstensi ini terpisah dari BMI1.

Yang perlu Anda ketahui

BMI2 menambahkan operasi bit dan bilangan bulat x86 skalar seperti deposit/ekstraksi bit paralel, pergeseran variabel, dan perkalian independen-flag. Ekstensi ini terpisah dari BMI1.

Cara kerjanya

PEXT mengumpulkan bit input yang dipilih ke dalam hasil low-order yang rapat; PDEP menyebarkan bit input low-order ke posisi yang dipilih oleh mask. Instruksi BMI2 lainnya mencakup BZHI, MULX, RORX, SHLX, SHRX, dan SARX. Semuanya beroperasi pada register bilangan bulat skalar meskipun menggunakan pengodean VEX.

Manfaat penggunaan

Representasi board yang ringkas atau codec bitfield dapat menggunakan PEXT/PDEP untuk memetakan antara tata letak bit yang rapat dan jarang (sparse). Biaya eksekusinya sangat bervariasi antar implementasi, sehingga algoritma harus melakukan benchmark pada input representatif alih-alih mengasumsikan urutan instruksi pendek selalu cepat.

Cara memeriksa dukungan dan pengaktifan

CPUID.07H.00H:EBX bit 8 mengenumerasi BMI2. Periksa performa spesifik-target dari instruksi yang benar-benar digunakan dan simpan dispatch di luar kode yang dikompilasi dengan persyaratan fitur yang tidak didukung.

Periksa bentuk instruksi dan operan yang tepat daripada menyimpulkan dukungan dari ekstensi yang berdekatan. Fitur integer skalar umumnya menggunakan register tujuan umum; pengodean yang berkaitan dengan vektor tidak otomatis berarti adanya persyaratan status vektor.

Hal yang tidak dipastikan oleh fitur ini

BMI2 bukan ekstensi vektor AVX dan tidak memerlukan status YMM hanya karena pengodeannya adalah VEX. Ekstensi ini tidak menetapkan ADX atau BMI1. MULX dan perkalian konvensional berbeda dalam perilaku register dan flag.

Kompatibilitas dan performa dalam praktik

Kebenaran bergantung pada kasus batas (edge cases) maupun kecepatan. Masukan nol, luapan (overflow), tanda bawaan (carry flag), lebar operan, perataan, dan pengurutan memori dapat mengubah semantik. Utamakan antarmuka kompilator atau pustaka yang mendokumentasikan detail ini dan menyediakan alternatif cadangan yang didukung.

Daftar periksa verifikasi praktis

  1. Catat model prosesor atau platform yang tepat serta versi aplikasi, OS, dan runtime yang terlibat. Pertahankan kata-kata dari kesalahan atau persyaratan sebenarnya.
  2. Periksa referensi produsen untuk model persis tersebut, lalu periksa kemampuan efektif dan status aktif di lingkungan tempat program berjalan.
  3. Bandingkan setiap persyaratan dari biner atau backend yang dipilih. Fitur dengan nama serupa, alias, atau label teknologi umum tidaklah cukup.
  4. Pastikan aplikasi memilih implementasi yang dimaksudkan. Gunakan diagnostik terdokumentasi miliknya dan alternatif cadangan yang didukung ketika persyaratan tidak terpenuhi.
  5. Lakukan satu perubahan yang didukung pada satu waktu dan ulangi beban kerja yang sama. Pertahankan konfigurasi asli dan jalur pemulihan tetap tersedia.

Jika fitur terdaftar tetapi perangkat lunak tidak dapat menggunakannya

Mulailah dari komponen persis yang mengalami kegagalan. Basis data perangkat keras menjelaskan kemampuan yang tercatat; sistem operasi atau hipervisor dapat mengekspos lingkungan efektif yang berbeda. Kesalahan instruksi ilegal juga memerlukan penyelidikan terhadap instruksi bermasalah yang sebenarnya dan build biner, karena korupsi data atau instruksi tidak didukung yang tidak terkait dapat menghasilkan gejala serupa.

Pasang versi aplikasi, driver, atau runtime yang didukung untuk platform persis tersebut, dan gunakan build standar atau cadangan yang terdokumentasi dari vendor jika diperlukan. Pembaruan perangkat lunak tidak dapat menciptakan instruksi yang tidak dimiliki prosesor. Perubahan firmware dan kebijakan keamanan harus mengikuti prosedur produsen sistem serta rencana pemulihan, bukan resep optimasi umum.

Sumber dan cakupan penjelasan ini

Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: tingkat arsitektur dan mikroarsitektur prosesor

Referensi ini menetapkan perilaku arsitektur dan persyaratan perangkat lunak. Referensi tersebut tidak memverifikasi secara independen setiap nilai fitur pada halaman model perangkat keras yang ditautkan. Untuk dukungan model, gunakan bukti produsen pada halaman tersebut dan periksa konfigurasi sistem efektif. Artikel ini tidak menyediakan tolok ukur, sertifikasi, atau tanggal tinjauan independen.

Sumber dan verifikasi

Kepemilikan editorial: Feex. Tidak ada tanggal peninjauan independen yang dicatat. Cara kami meneliti.

Apakah artikel ini bermanfaat?

Cukup jawab ya atau tidak. Pilih alasan jika Anda mau, atau tambahkan catatan singkat.

Apakah artikel ini bermanfaat?