LZCNT
LZCNT broji vodeće nulte bitove u cjelobrojnom operandu. Razlikuje se od BSR-a, uključujući njegov rezultat za nulu, te zahtijeva eksplicitnu provjeru mogućnosti.
Što trebate znati
LZCNT broji vodeće nulte bitove u cjelobrojnom operandu. Razlikuje se od BSR-a, uključujući njegov rezultat za nulu, te zahtijeva eksplicitnu provjeru mogućnosti.
Kako funkcionira
Rezultat je broj nultih bitova koji prethode najvišem postavljenom bitu u odabranoj širini operanda. Za operand sa svim nulama, LZCNT vraća širinu operanda. Njegove zastavice i ponašanje za nulu definirani su drugačije od starije operacije bit-scan-reverse s povezanim kodiranjem.
Gdje je korisno
Rutina za kompresiju ili numeričke formate može koristiti ovaj broj kako bi odredila koliko značajnih bitova vrijednost treba. Ispravno rukovanje nulom nužno je za izračune veličine i pomake, jer pogrešna zamjena operacijom pretraživanja bitova može proizvesti nevažeći rezultat.
Kako provjeriti podršku i omogućavanje
CPUID.80000001H:ECX bit 5 nabraja LZCNT prema definiciji relevantnog proizvođača. Najprije provjerite postoji li prošireni list. Koristite podržani upit mogućnosti prevoditelja/izvođenja i zamjensko rješenje čija semantika za nulu odgovara.
Provjerite točan oblik instrukcije i operanda umjesto da zaključujete o podršci iz susjednog proširenja. Skalarne cjelobrojne značajke uglavnom koriste registre opće namjene; kodiranje povezano s vektorima ne znači automatski zahtjev za vektorskim stanjem.
Što ova značajka ne utvrđuje
LZCNT ne broji sve postavljene bitove i nije TZCNT. Nepodržani procesor može protumačiti kodiranje kao BSR, pa je jednostavno isprobavanje instrukcije nesiguran test mogućnosti. BMI1 i BMI2 zasebne su mogućnosti.
Kompatibilnost i performanse u praksi
Ispravnost ovisi o graničnim slučajevima, kao i o brzini. Nulti unos, preljev, zastavice prijenosa, širina operanda, poravnanje i redoslijed memorije mogu promijeniti semantiku. Dajte prednost sučeljima prevoditelja ili biblioteka koja dokumentiraju te pojedinosti i pružaju podržanu zamjensku opciju.
Praktičan kontrolni popis za provjeru
- Zabilježite točan model procesora ili platforme te verzije aplikacije, OS-a i izvršnog okruženja. Sačuvajte formulaciju stvarne pogreške ili zahtjeva.
- Provjerite proizvođačevu referencu za taj točan model, a zatim pregledajte stvarnu sposobnost i omogućeno stanje u okruženju u kojem se program izvodi.
- Usporedite svaki zahtjev odabrane binarne datoteke ili pozadinskog sustava. Slično nazvana značajka, pseudonim ili široka tehnološka oznaka nisu dovoljni.
- Potvrdite da je aplikacija odabrala predviđenu implementaciju. Koristite njezinu dokumentiranu dijagnostiku i podržanu zamjensku opciju kada zahtjevi nisu ispunjeni.
- Napravite jednu po jednu podržanu promjenu i ponovite isto radno opterećenje. Zadržite izvornu konfiguraciju i put oporavka dostupnima.
Ako je značajka navedena, ali je softver ne može koristiti
Počnite s točnom komponentom koja zakazuje. Hardverska baza podataka opisuje zabilježenu sposobnost; operacijski sustav ili hipervizor mogu izložiti drukčije stvarno okruženje. Pogreška nedopuštene instrukcije također zahtijeva istragu stvarne instrukcije koja uzrokuje pogrešku i binarne građe, jer oštećenje ili nepovezana nepodržana instrukcija mogu proizvesti sličan simptom.
Instalirajte verziju aplikacije, upravljačkog programa ili izvršnog okruženja podržanu za točnu platformu i upotrijebite proizvođačevu dokumentiranu osnovnu ili zamjensku građu ako je potrebno. Softversko ažuriranje ne može stvoriti instrukciju koja procesoru nedostaje. Promjene u firmwareu i sigurnosnim pravilima trebaju slijediti postupak proizvođača sustava i plan oporavka, a ne generički recept za optimizaciju.
Izvori i opseg ovog objašnjenja
Intel 64 and IA-32 Architectures Software Developer's Manual · AMD CPUID Specification, publikacija 25481 · x86-64 psABI: razine arhitekture i mikroarhitekture procesora
Ove reference utvrđuju arhitekturno ponašanje i softverske zahtjeve. One ne verificiraju neovisno svaku vrijednost značajke na povezanoj stranici hardverskog modela. Za podršku modela upotrijebite proizvođačeve dokaze s te stranice i provjerite stvarnu konfiguraciju sustava. Ovaj članak ne pruža mjerilo performansi, certifikaciju ili datum neovisnog pregleda.
Izvori i provjera
Uredničko vlasništvo: Feex. Nije zabilježen datum neovisnog pregleda. Kako istražujemo.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Svesci 1 i 2 opisuju imenovane obitelji instrukcija i CPUID; Svezak 3 opisuje stanje, straničenje, VMX i kontrole zaštite. Dokumentacija arhitekture ne utvrđuje podršku za određeni model.
- AMD CPUID Specification, publikacija 25481 · Arhivirana arhitekturna referenca za utvrđene AMD CPUID funkcije i definicije bitova. Za kasnija proširenja specifična za generaciju upotrijebite trenutnu referencu za programiranje procesora.
- x86-64 psABI: razine arhitekture i mikroarhitekture procesora · Strojno sučelje, arhitektura procesora: osnovna i kumulativna tablica značajki za v2/v3/v4, provjere stanja OS-a i preporuke za implementaciju.
Je li ovaj članak bio koristan?
Dovoljno je odgovoriti s da ili ne. Odaberite razlog ako želite ili dodajte kratku bilješku.
Hvala. To nam pomaže poboljšati ovu stranicu.