Ua hōʻoia ʻo AMD i ka nāwaliwali o ka AMD Zen 3 CPUs i ka hoʻouka ʻana o Specter-STL

Ua hoʻopuka ʻo AMD i kahi hōʻike e nānā ana i ka palekana o ka ʻenehana optimization PSF (Prdictive Store Forwarding) i hoʻokō ʻia i nā kaʻina hana ʻo Zen 3. ʻO ka ʻenehana PSF, akā i ka hoʻomaʻamaʻa ʻana, ʻaʻole i ʻike ʻia nā ʻōkuhi code e hiki ke alakaʻi i kahi hoʻouka kaua a ʻike ʻia ka pōʻino holoʻokoʻa he mea ʻole.

E hoʻomanaʻo kākou ua hoʻokumu ʻia ka hoʻouka kaua Specter-v4 (Speculative Store Bypass) i ka hoʻihoʻi ʻana i ka ʻikepili i hoʻopaʻa ʻia i loko o ka cache processor ma hope o ka haʻalele ʻana i ka hopena o ka hoʻokō speculative o nā hana i ka wā e hoʻoponopono ai i nā hana kākau a heluhelu ʻana me ka hoʻohana ʻana i ka leka uila. Ke hahai ʻia kahi hana heluhelu i kahi hana kākau (e laʻa, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), ua ʻike mua ʻia ka offset o ka helu helu heluhelu ma muli o nā hana like e hana ʻia nei (nā hana heluhelu. hana pinepine a hiki ke heluhelu ʻia mai ka cache) a hiki i ka mea hana ke hana i ka heluhelu ma mua o ke kākau ʻana me ke kali ʻole i ka helu ʻana o ka indirection offset.

Hāʻawi kēia hiʻohiʻona i kahi ʻōlelo aʻo heluhelu e komo i kahi waiwai kahiko ma kekahi helu wahi ʻoiai ʻaʻole i pau ka hana hale kūʻai. Inā loaʻa ka hewa wānana, e hoʻolei ʻia ka hana kuhi hewa ʻole, akā mau nā ʻāpana o kāna hoʻokō ʻana i ka cache processor a hiki ke kiʻi ʻia e kekahi o nā ʻano no ka hoʻoholo ʻana i nā ʻike o ka cache e pili ana i ka nānā ʻana i nā loli i ke komo. manawa i ka ʻikepili i hūnā ʻia a i hoʻopaʻa ʻole ʻia.

Hoʻohui ʻia i nā kaʻina hana AMD Zen 3, hoʻomaikaʻi ʻo PSF iā STLF (Store-To-Load-Forwarding), e hana ana i nā hana heluhelu me ka wānana ʻana i ka pilina ma waena o nā hana heluhelu a kākau. Ke hoʻohana nei i ka STLF maʻamau, hana ka mea hana i kahi hana "hoʻouka" ma ka ʻikepili i hoʻouna pololei ʻia mai ke kauoha "hale kūʻai" mua, me ke kali ʻole i ka hopena e kākau maoli ʻia i ka hoʻomanaʻo, akā e hōʻoia i nā helu i hoʻohana ʻia i ka "hoʻouka". a me nā kauoha "kūʻai". Hana ka PSF optimization i ka nānā ʻana i ka helu wahi i kuhi ʻia a hana i kahi hana "kaumaha" ma mua o ka helu ʻana o ka ʻike helu wahi inā ua hoʻokō mua ʻia kahi paʻa kūʻai / ukana e hoʻopunipuni ana i kahi helu hoʻokahi. Inā hāʻule ka wānana, ua ʻōwili ʻia ka mokuʻāina, akā mau ka ʻikepili i loko o ka cache.

Hiki ke hoʻouka ʻia ma PSF i loko o ka hoʻolālā o hoʻokahi pae o nā pono, uhi wale i ka pōʻaiapili kaʻina hana o kēia manawa a ua ālai ʻia e nā ala kaʻawale kaʻawale a i ʻole nā ​​mīkini sandbox. I kēia hihia, hiki ke hoʻopili ʻia nā ala sandboxing lako polokalamu i nā kaʻina hana i ka pilikia. Hoʻoweliweli ka hoʻouka ʻana i nā ʻōnaehana e like me nā mākaʻikaʻi, nā mīkini virtual execution code, a me nā JIT e hoʻokō i nā code ʻaoʻao ʻekolu i loko o kahi kaʻina hana hoʻokahi (hiki i ka hoʻouka ʻana ke ʻae i ka code sandboxed hilinaʻi ʻole e loaʻa i ka ʻikepili kaʻina hana ʻē aʻe).

Ua hāʻawi ʻo AMD i nā ʻano hana no ka hoʻopau ʻana a i ʻole ke koho ʻana i ka PSF, akā hāʻawi ʻia i ka pōʻino haʻahaʻa no ka hapa nui o nā noi, ua ʻōlelo ʻo ia ʻaʻole e hoʻopau ʻia kēia loiloi ma ka paʻamau. No ka pale ʻana i nā kaʻina hana e hoʻokaʻawale i ka poʻe e hoʻokō nei i nā code hilinaʻi ʻole, ua manaʻo ʻia e hoʻopau i ka PSF ma ka hoʻonohonoho ʻana i nā bits "SSBD" a me "PSFD" MSR, me nā kaula hoʻokahi. Ua hoʻomākaukau ʻia nā ʻāpana no ka Linux kernel me ka hoʻokō ʻana i nā koho laina kauoha "psfd" a me "nopsfd" e hoʻomalu i ka hoʻohuli ʻana a me ka hoʻopau ʻana o PSF.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka