Vlákno názorů k článku Chyba PortSmash umožňuje krást klíče přes Hyper-Threading od Petr M - x86 je prostě děravý šrot. Ono to ani,...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 11. 2018 7:39

    Petr M (neregistrovaný)

    x86 je prostě děravý šrot. Ono to ani, vzhledem k jeho vývoji, jinak být nemůže.

    To se takhle vezme CISC s různě dlouhýma a pomalýma instrukcema, a začne se zrychlovat. Až se narazí na nějaký limit a dál to nejde. No a co uděláme? Rychlý RISC a instrukce je vlastně různě dlouhý podprogram.

    Jenomže ono to nejde jako u klasickýho RISCu udělat tak, že stejná ALU mimo svou práci inkrementuje PC a připočítává offsety. Nene. My tady máme oddělený program counter od registrů (ze základní architektury) a chceme zrychlit, tak mu dáme vlastní ALU. A takhle to nasekáme, aby se to nehádalo. A pak najednou zjistíme, že se hlavní ALU 2/3 času fláká. No a co s tím? Sdílet ji budeme, ušetří to plochu čipu a dovolí vyšší rychlost.

    No a že se tam na fyzické úrovni míchají data, který se nemají potkat, že se sdílí i překlad adres, prediktor skoků a další věci okolo? Že se potkává cache? Že je vidět, kolik která instrukce vykoná instrukcí v mikrokódu? Že někde zůstane nějaký flag nebo mezivýsledek mikrokódu ve skrytým registru? Že je tam plno dalších podobných průšvihů? Who cares?

    Spíš než do HT měli jít do vyhození prediktoru skoků a ten výkon použít na to, že se vykonávají spekulativně instrukce z obou větví jednoho vlákna a po podmíněným skoku se polovina práce, vykonaná od načtení instrukce, zahodí. Sice to nezvýší výkon tak razantně, ale bezpečnost to zvýší drasticky.

    Anebo hodit bobek na x86, ušetřit si paměti mikrokódu a infrastrukturu kolem, místo toho tam nasekat víc čistě RISCových jader s vyšším výkonem a hotovo. Každej svou L1 cache, aby nebylo podle přístupu ke sběrnicím vidět, čím se aktuálně zabývá a je to vyřešeno.

  • 6. 11. 2018 9:56

    unicode (neregistrovaný)

    1. To vůbec není CISC vs RISC problém.
    2. I v RISC architektuře můžou mít instrukce různou délku a časování (např. Thumb, RISC-V).
    3. Oddělěný PC (program counter) je výhoda a např. ARM64 i RISC-V to má taky tak. U ARM32 je dnes vidět, že považovat PC za obyčejný registr byla chyba v návrhu.
    4. Jednotku pro počítání adres (AGU) mají snad všechny procesory a není to problém.

    Zbytek nestojí za komentář. Takže pár mýtů jsem dnes vyvrátil a můžu jít pracovat :)