SSE4.2
SSE4.2 mette dinto istruzzioni x86 pe cunfruntà 'e stringhe, 'nu cunfronto intero packed e istruzzioni CRC32. Ll'istruzzione soja CRC ausa 'o pulinomio CRC-32C e nun è n'hash crittugrafico.
Chello ca t'hê 'a sapé
SSE4.2 mette dinto istruzzioni x86 pe cunfruntà 'e stringhe, 'nu cunfronto intero packed e istruzzioni CRC32. Ll'istruzzione soja CRC ausa 'o pulinomio CRC-32C e nun è n'hash crittugrafico.
Comme fonsiona
'A famiglia d'istruzzioni PCMPxSTRx fuisce cunfrunti cunfigurabbili 'ncopp'a elementi byte o word cu lunghezze esprecite o 'mprecite. Ll'istruzzioni scalari CRC32 agliurnano 'nu checksum ausanno 'o pulinomio 'e Castagnoli. Ll'estenziona include pure 'nu cunfronto quadword packed cu segno. Chiste songo operazzioni diverze raggruppate sott'a 'nu sulo flag 'e funzione.
Addò serve
'Na libbreria 'e stoccaggio o 'e rete pò accellerà CRC-32C, e 'na routine 'e testo pò ausà cunfrunti 'e stringhe packed. 'Nu furmato 'e file ca richiede 'nu pulinomio CRC diverzo nun pò scagnà ll'istruzzione CRC32 senza 'na curretta trasfurmazzione algoritmeca. L'integrità crittugrafica addimanna 'na custruzzione a parte.
Comme se cuntrolla 'o supporto e ll'abbilitazzione
CPUID.01H:ECX bit 20 enumera SSE4.2. Cuntrolla ll'istruzzione specifica addumannata e 'o modo d'operazzione suojo, e faje 'o test pe POPCNT a parte. N'apprecazzione ca cerca SSE4.2 tene besuogno 'e 'na build cumpatibbele e supportata quanno stu flag nun c'sta.
Na carattarìstica SIMD descrive istruzzioni, nun core 'e cchiù. 'A forma 'e ll'istruzzione decide 'a larghezza 'e ll'elemento, 'o segno, ll'arrutunnamento, ll'allineamento e quale corsie s'azzìccano. 'O software ha da astipà 'o stato d' 'e reggistre 'e ll'ABI e ausà n'ambiente 'e secuzzione suppurtato.
Chello ca 'a funzionalita nun stabbilisce
SSE4.2 nun stabbilisce POPCNT manco quanno cumpajono 'nzèmula quase sempe. Nun c'entra niente cu ll'etichetta separata AMD SSE4a. 'O supporto nun assicura ca 'na routine 'e stringa o 'nu checksum sia cchiù debbito 'e ogne alternativa 'ncopp'a chillu prucessore.
Cumpatibbilita e prestazziune dint' 'a prateca
Nomme cchiù nuove d' 'a famiglia SSE tènono bit 'e carattarìstica a parte. Pe nu binario distribuito, verificate tutt' 'o 'nzieme minimo 'e carattarìstiche, 'nzieme a llibrarìe e codece d'avvìo. Na soluzzione 'e fallback serve sulo si nisciuna istruzzione nun suppurtata gèra primma d' 'o passo 'e scelta.
Na lista 'e verifeca prateca
- Riggistra 'o mudello esatto d' 'o prucessore o d' 'a piattaforma e 'e vversione 'e ll'applicazzione, d' 'o sistema operativo e d' 'o runtime cumbulute. Mantien' 'e pparole esatte 'e ll'errore o d' 'o requisito overo.
- Cuntrolla 'o riferimento d' 'o costruttore pe chillu mudello esatto, po verifeca 'a capacita effettiva e 'o stato abbilitato dint'a ll'ambiente addò gira 'o prugramma.
- Cunfrunta ogne requisito d' 'o binario o backend sciveto. Na funzionalita cu nu nomme sumigliante, n'alias o n'etichetta tecnologgeca generale nun abbasta.
- Cunferma ca ll'applicazzione ha sciveto ll'implementazzione vuluta. Ausa 'a diagnosteca documentata soja e n'alternativa supportata quanno 'e requisite nun songo rispettate.
- Fa nu sulo cagnamento supportato a ll'avota e ripete 'o stesso carico 'e fatica. Mantien' 'a cunfigurazzione origginale e 'a via 'e recuppero a portata 'e mana.
Si 'a funzionalita sta scritta ma 'o software nun 'a po ausà
Pparti d' 'o cumponente esatto ca falla. Nu database hardware descrive 'a capacita riggistrata; 'o sistema operativo o ll'hypervisor po mustrà n'ambiente effettivo diverzo. N'errore 'e struzzione illegale addimanna pure 'e verificà 'a struzzione ca sgarra overamente e 'a build d' 'o binario, pecché na corruzzione o n'ata struzzione nun supportata po dà nu sintomo simile.
Stalla 'a vversione 'e ll'applicazzione, d' 'o driver o d' 'o runtime supportata p' 'a piattaforma esatta, e ausa 'a baseline documentata d' 'o costruttore o na build 'e fallback si serve. N'aggiurnamento software nun po crià na struzzione ca 'o prucessore nun tene. 'E cagnamiente a 'o firmware e 'e puliteche 'e sicurezza hann' 'a siguità 'a prucedura d' 'o costruttore d' 'o sistema e nu pピアノ 'e recuppero mméce 'e na ricetta generale 'e uttimizzazzione.
Funte e ambito 'e sta spiegazzione
Intel 64 and IA-32 Architectures Software Developer's Manual · x86-64 psABI: levielle d'architettura e microarchitettura d'o prucessore
Sti riferimente stabbilisceno 'o cumpurtamento 'e ll'architettura e 'e requisite d' 'o software. Nun verificano 'e manera 'ndipennente ogne valore 'e funzionalita ngopp'a na paggena 'e nu mudello hardware culegato. P' 'o supporto d' 'o mudello, ausa ll'evidenze d' 'o costruttore 'e chella paggena e verifeca 'a cunfigurazzione effettiva d' 'o sistema. St'articulo nun furnesce benchmark, certificazzione o data 'e revisone 'ndipennente.
Funte e verìfeca
Prupietà editoriale: Feex. Nisciuna data 'e revisizzione 'ndipennente è riggistrata. Comme facimmo 'e recerche.
- Intel 64 and IA-32 Architectures Software Developer's Manual · 'E Vulume 1 e 2 descrivono 'e ffamiglie 'e struzzione cu nomme e 'o CPUID; 'o Vulume 3 descrive 'o stato, 'a pagginazzione, VMX e 'e cuntrolle 'e prutezzione. 'A documentazzione 'e ll'architettura nun stabbilisce 'o supporto pe nu mudello particulare.
- x86-64 psABI: levielle d'architettura e microarchitettura d'o prucessore · Machine Interface, Processor Architecture: tabbella d'e cundizzione 'e base e cumulative v2/v3/v4, cuntrolle d'o stato d'o SO e cunsiglie p'o sveluppo.
È servuto chist'articulo?
Basta nu sì o nu no. Si vuó, sciglie na mutivazzione o miett' na nota corta.
Grazie. Chisto nce dà 'na mano a fa mèglio 'sta paggena.