nechapu, proc sklizite tolik palcu dolu, kdyz je to pravda. Asi proto, ze je to pravda a to se nelibi :-D Vypnete HT, vypnete prediktory a mate cpu na par desitkach procent vykonu, tak to proste je ... A cisty risc bez vsech techto features na drsne pocitani je fakt strasne drahy.
Aký nesúhlas. Intel odporúčal inštrukciu LFENCE pred každou inštrukciou, ktorá pristupuje do pamäte a nie je len registrová. A to zruší predikciu a vytvorí bubliny v celej veľkosti Pipeline (19-21 stages) a tým sa spomalí kód 1/19 až 1/22, tam kde je potrebné predikovať, momentálne to je však skoro všade...
23 Jul 2018 at 20:30
Only two weeks ago, researchers Vladimir Kiriansky and Carl Waldspurger disclosed new data-stealing exploits, dubbed Spectre 1.1 and 1.2
Now there's another called SpectreRSB that exploits the return stack buffer (RSB), a system in modern CPUs used to help predict return addresses, instead of the branch predictor unit.
Last week, researchers at Dartmouth suggested a defense against Spectre variant one, to which Intel previously proposed adding the LFENCE instruction to code as a defense against speculative execution.
Effectively, a program's ELF executable tells the operating system how to ring-fence particular areas of memory to hopefully thwart Spectre side-channel attacks.
https://www.theregister.co.uk/2018/07/23/spectre_return_stack_buffer/
Vy ste nepochopili Spectre.
Pomocou Spectre viete zistiť údaje z iného procesu , bez toho, aby ste ho prečítali.
Pomocou zblnutia prediktora spôsobíte, že iná úloha pristúpi k želaným dátum a na základe nich pristúpi k iným dátam (do poľa). Pôvodné dáta nie sú dostupné, ale podľa pozície v tom druhom poli je ovplyvnené rýchlosť čítanie dát na rovná jej logickej adrese v druhom procese. A keď viem, kde (na ktorej adrese) to druhé pole začína a ktorá adresa sa číta rýchlejšie alebo pomalšie ako by sa mala, tak rozdiel medzi začiatkom poľa a inak dlho načítanou adresou je priamo úmerný hodnote ktorú sme chceli načítať, pričom konštantou úmernosti je veľkosť položky toho poľa.
Ak chcem vedieť presne hodnotu musí ten typ mať presne veľkosť riadku cache daného CPU. Inak by sme vedeli len hranice želanej hodnoty od-do...