AMD qelsiya potansiyela CPU-yên AMD Zen 3 ji êrîşa Specter-STL re piştrast kir.

AMD raporek weşand ku ewlehiya teknolojiya xweşbîniyê ya PSF (Pêşvebirina Firoşgeha Pêşbînîkirî) ya ku di pêvajoyên rêza Zen 3 de hatî bicîh kirin, analîz dike. Lêkolîn bi teorîkî sepandina rêbaza êrîşa Specter-STL (Spectre-v4), ku di Gulana 2018-an de hatî nas kirin, piştrast kir. Teknolojiya PSF, lê di pratîkê de, hîn şablonên kodê ku bikaribe bibe sedema êrîşê nehatiye dîtin û xetera giştî wekî ne girîng tê nirxandin.

Werin em bînin bîra xwe ku êrîşa Specter-v4 (Spekulatîf Store Bypass) li ser vegerandina daneyên ku di cache-ya pêvajoyê de cîh girtiye piştî hilweşandina encama darvekirina spekulatîf a operasyonan dema ku operasyonên nivîsandin û xwendinê yên alternatîf bi karanîna navnîşana nerasterast hildiweşîne. Dema ku xebatek xwendinê li dû operasyonek nivîsandinê tê (mînak, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), dibe ku ji berê veqetandina navnîşana xwendinê were zanîn ji ber ku operasyonên bi heman rengî têne kirin (operasyonên xwendinê ne pir caran pirtir tê kirin û xwendin dikare ji cache-ê were kirin) û pêvajokar dikare bi spekulatîf xwendina berî nivîsandinê pêk bîne bêyî ku li bendê bimîne ku guheztina nerasterê ya nivîsandinê were hesibandin.

Ev taybetmendî dihêle ku rêwerzek xwendinê bigihîje nirxek kevn li hin navnîşanan dema ku operasyona dikanê hîn neqediyaye. Ger xeletiyek pêşbîniyê hebe, operasyona spekulatîf a neserkeftî dê were avêtin, lê şopên pêkanîna wê dê di cache-ya pêvajoyê de bimîne û dikare bi yek ji awayên destnîşankirina naveroka cache-yê li ser bingeha analîzek guheztinên gihîştinê were peyda kirin. dem ji bo daneyên cached û uncached.

Li pêvajoyên AMD Zen 3 hatî zêdekirin, PSF STLF (Store-To-Load-Forwarding) xweşbîn dike, ku bi pêşbînkirina têkiliya di navbera operasyonên xwendin û nivîsandinê de bi spekulatîf operasyonên xwendinê pêk tîne. Dema ku STLF-ya klasîk bikar tîne, pêvajo li ser daneya ku rasterast ji fermana berê ya "store" hatî şandin, operasyonek "barkirinê" dike, bêyî ku li bendê bimîne ku encam bi rastî li bîranînê were nivîsandin, lê piştrast bike ku navnîşanên ku di "barkirinê" de hatine bikar anîn. û emrên "dikan" li hev dikin. Optimîzasyona PSF-ê kontrolkirina navnîşan spekulatîf dike û berî ku agahdariya navnîşan were hesab kirin operasyonek "barkirinê" pêk tîne heke berê dikanek / cotek barkirinê ku yek navnîşanek manîpule dike hatibe darve kirin. Ger pêşbînî têk biçe, dewlet paşde tê gêr kirin, lê data di cache de dimîne.

Êrîşek li ser PSF tenê di çarçoveya yek astek îmtiyazan de gengaz e, tenê çarçoweya pêvajoyê ya heyî vedigire û ji hêla rêbazên veqetandina cîhê navnîşan an mekanîzmayên sandboxê yên hişk ve tê asteng kirin. Di vê rewşê de, rêbazên sandboxkirina nermalavê yên di pêvajoyan de bi potansiyel dikarin ji pirsgirêkê bandor bibin. Êrîş li ser pergalên wekî gerok, makîneyên virtual yên darvekirina kodê, û JIT-ên ku di nav pêvajoyek yekane de koda sêyemîn pêk tînin xeterek çêdike (êrîş dikare rê bide ku koda sandboxê ya nebawer bigihîje daneyên pêvajoyê yên din).

AMD ji bo neçalakkirina bi tevahî an bijartî ya PSF-ê gelek awayan peyda kiriye, lê ji ber xetereya neguhêz a ji bo pir serlêdanan, pêşniyar kiriye ku ev xweşbînkirin ji hêla xwerû ve neyê asteng kirin. Ji bo parastina bijartî pêvajoyên ku yên ku koda nebawer bicîh dikin veqetînin, tê pêşniyar kirin ku PSF-ê bi danîna bitên MSR-ê "SSBD" û "PSFD" neçalak bike, di nav de ji bo mijarên kesane. Bi pêkanîna vebijarkên rêzika fermanê yên "psfd" û "nopsfd" yên ku kontrol dikin ka PSF çawa tê vemirandin û girtin, ji bo kernel Linux hatine amadekirin.

Source: opennet.ru

Add a comment