Intel prý chystá radikálně novou architekturu CPU. Odstraní staré instrukce?

28

Včera jsme tu měli únik
stránky z recenze procesoru Ryzen
, která maluje docela
nadějný výkon (pokud nedošlo k nějaké chybě nebo podfuku,
samozřejmě). Zdá se, že od základu nová architektura AMD hodně
posune. Pokud jste místo zelené/červené příznivci majoritního
Intelu, pak vás ale možná „revoluce“ čeká také.

Podle zpráv, publikovaných webem Bits
and Chips, se totiž i Intel chystá na radikálnější předěl
ve vývojové linii svých CPU a zřejmě by mohl vyprodukovat
architekturu výrazně odlišnou od těch dnešních. Mezi těmi
obvykle pozorujeme spíš dílčí změny odrážející se v růstu
IPC o několik procent (pokud pomineme nárůsty například
v softwaru plně využívajícím 256bitové instrukce SIMD),
novinka by však mohla mít charakteristiky výrazně jiné, i když
možná ne natolik, jako Zen ve srovnání s rodinou Bulldozeru
a potomků.

Podle Bits and Chips by prý takováto
zásadnější architektonická obměna měla přijít po čipu
Tiger Lake, cože je – pokud mi něco neuniklo – poslední
generace, jejíž jméno zatím proniklo na internet. Po ní by
údajně měla přijít nová jádra, a to jak na desktopu, tak
v serverech (počítal bych ale s tím, že se pak musí
objevit i v nízkospotřebových modelech pro notebooky
a tablety). Příchod by měl snad spadat někdy do let
2019–2020, kam by Tiger Lake měl mířit, pokud nebude mít
zpoždění.

Procesor Intel

Je ovšem poněkud netypické, že by
velká architektonická změna měla přijít zrovna po něm,
nezapadá to totiž do aktuálního
vývojového modelu Intelu
„Proces, architektura,
optimalizace“. Tiger Lake by totiž neměl být generací „proces“
(dříve „tick“, šlo o třeba o Penryn, Ivy Bridge,
Broadwell), která prověří nový výrobní proces před tím, než
nastoupí nová architektura CPU (dříve „tock“ – Conroe,
Sandy Bridge, Haswell). Tiger Lake by
měl být třetí 10nm generací typu „optimalizace“
, která
bude následovat po nové architektuře v Ice Lake. Půjde tedy
o takový 10nm Kaby Lake. Logicky by tedy nejdřív mělo
následovat nějaké další „jezero“, jež před novou
architekturou podnikne riskantní průzkum neznámých vod 7nm
výrobního procesu.

Tato zpráva není potvrzená a web
Bits and Chips ji sám označuje jako nejistou – musíme ji
tedy brát hodně s rezervou. Informace by však údajně měla
být od stejných zdrojů, které dříve (v roce 2014, ještě
před oficiálním oznámením) věděly o tom, že AMD chystá
zcela novou architekturu, později pojmenovanou Zen. Ani to nicméně
nemusí nic zaručovat a Bits and Chips není rozhodně neomylné
zpravodajské médium. Pokud by se však věci zakládaly na pravdě,
pak by mohly slibovat dynamičtější evoluci CPU Intel než dnes,
kdy sice nárůsty výkonu pravidelně přicházejí, ale jsou již
menšího rozsahu.

 

 

Konec MMX a dalších „legacy“
instrukcí?

Podle Bits and Chips by možná neznámá
nová architektura měla být podobně koncipovaná jako Zen, tedy
zaměřená na rovnováhu mezi výkonem, velikostí křemíku
a spotřebou, a jádro by mohlo být relativně menší.
Zajímavé je, že Intel se prý odhodlá spolu s touto změnou
odstranit něco z historické zátěže instrukční sady x86
a vypustit část starých instrukcí. Mezi nimi jsou jmenována
„legacy“ rozšíření SIMD, což by asi mělo být MMX
(a případně extended MMX, někdy označované MMX2). Tyto
instrukce kdysi znamenaly velký převrat hlavně v multimédiích
a například Ffmpeg, ale také ještě x264 v nich mají
mnoho kódu. Nicméně dnes by měly být plně nahraditelné
kombinací SSE, SSE2 a novějších přídavků, proto by
teoreticky mělo být možné se jich zbavit a zjednodušit
jádro.

MMX totiž poněkud komplikuje věci
tím, že používá registry původní FPU s instrukční sadou
x87. Je otázka, zda třeba nebude odstraněna i tato
kompatibilita, což by znamenalo ztrátu schopnosti počítat
s 80bitovou rozšířenou přesností, ovšem matematické
operace se dnes kvůli výkonu obvykle budou počítat přes
rozšíření SSE, AVX a FMA, nikoliv původními skalárními
instrukcemi.

Procesor Intel, pouzdro s více čipy

Čeho by se odstranění dotklo?
U softwaru, který korektně detekuje rozšíření v CPU,
by mělo dojít k využití novějších sad SIMD, jen bude
třeba zkontrolovat, zda se někde MMX nepoužívá implicitně bez
kontroly a případně program znovu přeložit. Problém by
mohl nastat u hodně starých aplikací či třeba
multimédiálních filtrů (řada pluginů v Avisynth), pokud
nepodporují manuální deaktivaci asambléru v MMX. Nicméně
změna nastane až za čtyři roky, takže většinou asi půjde
spíše o historické kuriozity, pro něž bude v případě
potřeby stačit emulace, nebo je budete moci provozovat bez
výkonnostních problémů na starém CPU. Lze asi také čekat, že
pokud Intel dané instrukce skutečně zruší, bude o tom
informovat předem, aby se vývojáři připravili.

Zdroj: Bits
and Chips

Intel prý chystá radikálně novou architekturu CPU. Odstraní staré instrukce?
Ohodnoťte tento článek!
5 (100%) 1 hlas/ů

28 KOMENTÁŘE

  1. Keby bola pravda že dôjde k odstraneniu MMX instrukcii tak by sme stratili čast procesorovej historie z v tej dobe aktuálnych procesorov čo v konečnom dôsledku nemusi byt tragédia pre novodobý softvér lebo ten už pravdepodobne na MMX nie je závislý.
    Na PC platforme Wintel sa mi pacila a cenim si hlavne tu spätnu kompatibilitu vzdy ked prisla nova verzia Windows alebo nova generacia x86 CPU vzdy to bolo tak nejako uspokojivo spätne kompatibilne a clovek mal tie “istoty”. 😀 Toto mam na PC rád, teraz mi odstranovanie starých instrukcii troska tuto nostalgiu rúca.

    Zaujima ma aj problematika stareho softu, konkretne starých hier, pokial viem tak vecsina starých hier aj celkom “aktualnych” ako napriklad Mafia 1 vyuziva najskor nieco z MMX, X87 instrukcii a rad si tieto stare hry zahram aj dnes na novom PC. Takze pokial dôjde k odstraneniu MMX nebude mozne tento softver spustit?

    • Pokud program intrukční rozšíření CPU nedetekuje a nemá víc cest (a místo toho používá MMX natvrdo všude), tak pak by skutečně nefungoval. Respektive se spustí, ale pak při prvním výskytu spadne na chybě “program zavolal neplatnou instrukci” (nebo jak přesně je to řečeno).

      U těch her je problém, že je člověk většinou nepřeloží znovu, kód není nebo není dostupný, často i grafika a další původní “assets” jsou ztracené.

      • Tak zrovna patche pro kód používající instrukce MMX by mohlo být možné řešit (polo)automatickou binární rekompilací. Stačí přeložit do analogických sekvencí instrukcí SSE2 s tím, že člověk bude používat pouze poloviny registrů.

      • Ako naznačil gngl, väčšina inštrukcií je realizovaná aj vrámci SSE/AVX. Problémom môžu byť len inštrukcie na réžiu FPU (vtedy sa správala ako koprocesor, dnes je rovnocenná s ALU).

        Ale vlastne, dá sa to riešiť aj bez prekompilovania. ARM funguje tak, že keď narazí na neznámu inštrukciu tak vygeneruje prerušenie (x86 bude podporovať určite niečo podobné). A vrámci assemblerovskej rutiny na najnižšej úrovni by to bolo riešiteľné vrámci pár strojových cyklom, čo myslím vzhľadom nato že dnešné počítače sú niekoľko krát rýchlejšie nemusí byť problém. A na úrovni hardvéru alebo mikrokódu by to bolo ešte rýchlejšie.

        Mimochodom, AMD sa zbavilo 3dnow. Boli s tým nejaké problémy?

        No a ďalšia vec je, že vypustenie pár inštrukcií im určite nepomôže k razantnému zvýšeniu výkonu. To nedáva zmysel. Skôr tipujem buď HSA, alebo presun plánovača vlákien z OS do hardvéru (alebo obe).

        • K razantnímu zvýšení výkonu to asi nepovede, ale podle mě se potvrzuje to, co říkám už roky (a co mi mnozí vymlouvali), totiž že ten akumulovaný starý sajrajt, který nikdo nepoužívá, musí nakonec pryč. Tedy asi podpora tech legacy fíčur jako instrukcí, které se už nepoužívají (a nakonec možná i samotného složitého kódování instrukcí s dlouhou evoluční historií) asi nebude tak zanedbatelná, jak mi všichni tvrdili. 😉 Kdyby ne, asi by o tom Intel neuvažoval.

        • 3DNow! byla jiná situace. Vývojář u něj nikdy nemohl prsotě říct, že je požadované a že to bez něj nepojede, takže tam vždycky musela být nějaká runtime detekce, nebo třeba dvě různé různé binárky, jedna pro Intel, jedna pro K6-2/3 a K7.

          Naproti tomu MMX měly kromě Intelu i všechny srovnatelná konkurenční CPU (Cyrix, AMD, IDT, Rise, pak VIA), takže tam se vývojáři klidně mohli spolehnout, že MMX je všude a může být zakompilované napevno (a že starší CPU prostě nebudou podporovaná). Někdy třeba nějaké programy ani nemusí mít skalární/céčkovou verzi některého toho kódu.

    • Odstranění MMX bych se nebál. IMHO nepůjde o nekompatibilitu s touto instrukční sadou, jen už to nebude v hardwaru, ale v softwaru (microcode CPU). Podobně je na tom x87 už nějakou dobu, pokud si dobře pamatuji.

      • Docela by mě zajímalo, jak 80b aritmetiku doplníte mikrokódem. 😉 Spíš je pravděpodobné, že to tam nechali v minimální přijatelné podobě (prostě ta jednotka je zjednodušená, s předpokladem, že díky jejímu nízkému využití ty zhoršené parametry tolik vadit nebudou).

        • Stejně, jako jde na osmibitu počítat 32-bitová čísla, nebo jak vám nejeden programovací jazyk umožní počítat s libovolnou přesností. Vícenásobným průchodem/iteračně. Jediná podmínka je mít to kam uložit (tzn adekvátní registry).

          • Ale to je přeci ta zjednodušená jednotka, o které hovořím. Stejně jako když třeba paralelní jednotku nahradíte sériovou. Trade-off mezi prostorem, spotřebou a rychlostí se dá dělat právě takhle. Ale jenom mikrokódem to jen těžko spravíte, protože zrovna ty “hlavní” jednotky jako SSE a AVX určitě budou natvrdo zadrátované. Záleží na nich příliš mnoho, než abyste si mohl dovolit je kompromitovat nějakou mikroprogramovatelností kvůli nějakému marginálnímu využití. Vždyť z téhož důvodu do nich ani nedali transcendentní funkce (*), které by člověk dnes využil mnohem častěji, než kód x87, tak proč by do nich měli dát ještě méně používanou funkčnost FPU typu x87?

            ((*) Bude platit pouze do příchodu VEXP2PD a VEXP2PS v procesorech Skylake-EX a Cannonlake, a i pak budou stále ještě chybět logaritmy a goniometrické funkce.)

            • Sám sis dal odpověď, jak se to dá vypočítat a přitom to asi nevidíš. Pořád mluvíš o tom, že je něco třeba přidat do vektorových jednotek, já říkám, že všechno potřebné je na místě. Jakákoliv transcendentím funkce jde udělat iterativně pomocí sčítání a podmíněného skoku (samozřejmě násobení, dělení urychlí výpočet).
              SSE/AVX můžou být “black box”, ale to znamená, že je můžeme použít jako celek. Nebo se na ně úplně vykašleme a ALU to taky zvládne (i když asi ukrutně pomalu). Možností aproximací je kopa a některé z nich jsme určitě oba počítali ve škole.

            • A vy zase asi nevidíte, že když takhle začnete štourat v jednotkách SSE/AVX v dostatečné míře na to, abyste mohl volitelně rozšířit přesnost na 80 bitů a přidat schopnost počítat transcendentní funkce, tak zkompromitujete jejich “normální” provoz takovým způsobem, že se to téměř jistě nevyplatí. Intel i těm “nezkompromitovaným” jednotkám musí v současnosti snižovat frekcenci, protože už tak moc žerou, a vy tam chtete přidat nějaká extra hradla (a prodlevy), jež drtivou většinu času nebudou dělat nic užitečného. V dnešní době je mnohem lepší mít trochu “temného křemíku” navíc pro samostatnou FPU jednotku a použít power gating.

      • x87 není v mikrokódu. (časování neodpovídá) Ani by to dobře nešlo, protože hodně i současných aplikací stále primárně používá jenom x87. (Pouze překladače od Microsoftu defaultně použijí SSEx pokud se cílí na Windows 7 a novější)
        Jde to dobře ověřit pomocí starého (a kontroverzního benchmarku) ScienceMark 2.0 – podtest DGEMM.

        • IMHO už od doby cca Pentia IV se všechno překládá na vnitřní instrukční sadu CPU právě pomocí něj. Jediná otázka je, jestli k tomu má nebo nemá specializovaný hardware. Tzn. jestli se to namapuje blíže 1:1 nebo naopak se bude muset použít 50 instrukcí na vykonání té jedné.
          Teď se mi nedaří dohledat, ale dávněji jsem četl, že došlo k poklesu výkonu v x87 operacích při přechodu na novou architekturu a zdůvodnění padlo právě ve směru, že už to není 1:1, protože jsou to vlastně legacy instrukce, které se skoro nepoužívají.
          Nutno říct, že jste mě ale dost nahlodali. Zvláště když se mi to nedaří dohledat.

          • Ale ta “vnitřní instrukční sada” nemá nic společného s chováním jednotky FPU. I pokud ta je stále ještě navržena jako stavový automat (kvůli transcendentním funkcím pravdepodobně musí), tak to přesto bude černá skříňka, do které rozhodně nebudete chtít sahat. Jinými slovy, v té “vnitřní instrukční sadě” budou výkonné operace FPU z hlediska zbytku procesoru (a hlavně dekodéru instrukcí) s největší pravděpodobností stále atomické. Pokud moderní čipy mají relativně nižší výkon v x86 FPU, tak to bude spíš právě tím, že kvůli lepšímu vyvážení procesoru asi prošla odtučňovací kúrou.

  2. tak architektura Core už je hodně vousatá a přežívá jen díky problémům AMD – nahrabali se na ní opravdu hodně, zvedání výkonu ani přes novější výrobní proces moc nejde takže je na čase postoupit dál.

    • Vubec bych se nedivil, kdyby mel Intel uz nejakou dobu v zaloze novou architekturu a jen cekal, co AMD. Aby to nedopadlo tak, ze AMD ted s velkou slavou “skoro dotahne Intel” a za rok se to vrati zas do puvodnich koleji (jako kdyz prisla arch. Core).

      • Minimálně na papíře toho mají určitě ještě víc, jde jen o to, nakolik jsou to schopni přatavit v nějaký produkt a za jak dlouho. Je jasné, že pokud je AMD dotáhne, tak to je motivace, proč tomu věnovat čas a peníze. Na druhou stranu, je také potřeba vydojit současné technologie. I kdyby AMD dotáhla, tak ke změně na trhu hned tak nedojde, takže času mají dost.

    • Tak zase je na to sám a evidentně priorita EHW u CNEWS je nízká. Ale někdy je ta touha po táháku v titulku až moc křečovitá a laciná. Jenže to je zase nevýhoda omezené redakce, korekční mechanismy nefungují. Nevím, jestli to vůbec někdo rediguje. Nicméně tomu by se nevyhl zřejmě sebelepší novinář. Prostě nejsou finance na řádnou redakční práci.

      EDIT: zapomněl jsem zdůraznit že z většiny je práce odváděna víceméně na úrovni a v rámci podmínek kvalitně.

    • No teda zrovna u tohohle jsem neměl pocit, že by to byla bulvární věc. Jestli se to stane, tak to bude pro ekosystém x86 docela zásadní věc.

      Ono je teda jinak vůbec legrace, jak se ty reakce rozchází s očekáváním. Někdy se člověk celkem trefí v odhadu, že se něco bude číst víc než běžně, ale kolikrát je to úplný překvapení (směrem nahoru i dolů). A tady to je podobný, že mi to lidi zkritizujou většinou čekám u některejch jinejch věcí, a tam se to nestane 🙂