AMD เป„เบ”เป‰เบขเบทเบ™เบขเบฑเบ™เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡ CPU AMD Zen 3 เบ•เปเปˆเบเบฑเบšเบเบฒเบ™เป‚เบˆเบกเบ•เบต Spectre-STL

AMD เป„เบ”เป‰เป€เบœเบตเบเปเบœเปˆเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš PSF (Predictive Store Forwarding) เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Zen 3 series. เบเบฒเบ™เบชเบถเบเบชเบฒเป„เบ”เป‰เบขเบทเบ™เบขเบฑเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบตเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป‚เบˆเบกเบ•เบต Spectre-STL (Spectre-v4), เบเปเบฒเบ™เบปเบ”เปƒเบ™เป€เบ”เบทเบญเบ™เบžเบถเบ”เบชเบฐเบžเบฒ 2018, เป€เบžเบทเปˆเบญ เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต PSF, เปเบ•เปˆเปƒเบ™เบ—เบฒเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”, เบšเปเปˆเบกเบตเปเบกเปˆเปเบšเบšเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เป‚เบˆเบกเบ•เบตเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เปเบฅเบฐเบญเบฑเบ™เบ•เบฐเบฅเบฒเบเป‚เบ”เบเบฅเบงเบกเปเบกเปˆเบ™เบ–เบทเบเบ›เบฐเป€เบกเบตเบ™เบงเปˆเบฒเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™.

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบเบฒเบ™เป‚เบˆเบกเบ•เบต Spectre-v4 (Speculative Store Bypass) เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบ•เบปเบเบฅเบปเบ‡เปƒเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบซเบผเบฑเบ‡เบˆเบฒเบเบเบปเบเป€เบฅเบตเบเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฝเบ™เปเบฅเบฐเบญเปˆเบฒเบ™เบชเบฐเบฅเบฑเบšเบเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆเบ—เบฒเบ‡เบญเป‰เบญเบก. เป€เบกเบทเปˆเบญเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™ (เป€เบŠเบฑเปˆเบ™: mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), เบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบเบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆเบญเปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบฎเบนเป‰เปเบฅเป‰เบงเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ (เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เปเบกเปˆเบ™. เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบฅเบทเป‰เบญเบเป†เป€เบฅเบทเป‰เบญเบเป†เปเบฅเบฐเบเบฒเบ™เบญเปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป„เบ”เป‰เบˆเบฒเบ cache) เปเบฅเบฐเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เบ„เบฐเป€เบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบฒเบ‡เบญเป‰เบญเบกเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบญเปˆเบฒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เปˆเบฒเป€เบเบปเปˆเบฒเบขเบนเปˆเปƒเบ™เบšเบฒเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบฎเป‰เบฒเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เบ–เป‰เบฒเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเบ—เบตเปˆเบšเปเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบˆเบฐเบ–เบทเบเบเบปเบเป€เบฅเบตเบ, เปเบ•เปˆเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™ cache เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เป‚เบ”เบเบซเบ™เบถเปˆเบ‡เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ cache เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบเบฑเบšโ€‹เบเปเบฒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹.

เป€เบžเบตเปˆเบกเปƒเบชเปˆเป‚เบ›เป€เบŠเบ”เป€เบŠเบต AMD Zen 3, PSF เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš STLF (Store-To-Load-Forwarding), เป€เบŠเบดเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเปˆเบฒเบ™เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเป‚เบ”เบเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ‚เบฝเบ™. เป€เบกเบทเปˆเบญเปƒเบŠเป‰ STLF เบ„เบฅเบฒเบชเบชเบดเบ, เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ "เป‚เบซเบผเบ”" เบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเปˆเบ‡เป‚เบ”เบเบเบปเบ‡เบˆเบฒเบเบ„เปเบฒเบชเบฑเปˆเบ‡ "เบฎเป‰เบฒเบ™" เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบฅเปเบ–เป‰เบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบฅเบปเบ‡เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบ•เปˆเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เบตเปˆเบขเบนเปˆเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ "เป‚เบซเบผเบ”" เปเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡ "เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ" เบเบปเบ‡เบเบฑเบ™. เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡ PSF เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบขเบนเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ "เป‚เบซเบผเบ”" เบเปˆเบญเบ™เบ—เบตเปˆเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบขเบนเปˆเบˆเบฐเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ„เบนเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒ / เป‚เบซเบผเบ”เบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบขเบนเปˆเบ”เบฝเบงเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰. เบ–เป‰เบฒเบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบฅเบฑเบ”เบˆเบฐเบ–เบทเบเบกเป‰เบงเบ™เบ„เบทเบ™, เปเบ•เปˆเบ‚เปเป‰เบกเบนเบ™เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เปเบ„เบ”.

เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบเปˆเบฝเบงเบเบฑเบš PSF เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบ‚เบญเบšเบ‚เบญเบ‡เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบฅเบฐเบ”เบฑเบšเบซเบ™เบถเปˆเบ‡, เบเบงเบกเป€เบญเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบฅเบฐเบ–เบทเบเบชเบฐเบเบฑเบ”เป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™เปเบเบเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบซเบผเบทเบเบปเบ™เป„เบ sandbox เบฎเบฒเบ”เปเบง. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบงเบดเบ—เบตเบเบฒเบ™ sandboxing เบŠเบญเบšเปเบงเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเบšเบฑเบ™เบซเบฒ. เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เป„เบžเบ‚เบปเปˆเบกเบ‚เบนเปˆเบ•เปเปˆเบฅเบฐเบšเบปเบšเบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™: เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš, เป€เบ„เบทเปˆเบญเบ‡ virtual execution code, เปเบฅเบฐ JITs เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเบžเบฒเบเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฝเบง (เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบชเบฒเบกเบฒเบ”เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ” sandboxed เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™เป†).

AMD เป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ PSF เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบซเบผเบทเป€เบฅเบทเบญเบ, เปเบ•เปˆเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆ, เป„เบ”เป‰เปเบ™เบฐเบ™เปเบฒเบงเปˆเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ™เบตเป‰เบšเปเปˆเบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเปเบเบเบญเบญเบเบˆเบฒเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ PSF เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ "SSBD" เปเบฅเบฐ "PSFD" MSR bits, เบฅเบงเบกเบ—เบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบซเบปเบงเบ‚เปเป‰เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™. Patches เป„เบ”เป‰เบ–เบทเบเบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบš Linux kernel เบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” "psfd" เปเบฅเบฐ "nopsfd" เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบ–เบงเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเบงเบดเบ—เบตเบเบฒเบ™เป€เบ›เบตเบ”เปเบฅเบฐเบ›เบดเบ” PSF.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™