
Ahoj, čtenáři Habr. Chceme se podělit o velmi příjemnou zprávu. Konečně jsme se dočkali sériové výroby nové generace ruských procesorů Elbrus 8C. Oficiální sériová výroba měla začít již v roce 2016, ale ve skutečnosti bylo hromadné výrobě zahájeno až v roce 2019 a do současnosti bylo již vyrobeno přibližně 4000 procesorů.
Téměř okamžitě po zahájení sériové výroby se tyto procesory objevily také u nás v Aerodisku, za což bychom chtěli zvlášť poděkovat firmě NORSI-TRANS, která nám laskavě poskytla svou hardwarovou platformu Jakhont UVM, podporující procesory Elbrus 8C, pro provedení portace softwarové části SDD. Tato moderní univerzální platforma splňuje všechny požadavky MCST. V současnosti je platforma využívána speciálními zákazníky a operátory pro zajištění provádění stanovených činností při operativně-pátracích akcích.
V současnosti byla portace úspěšně dokončena, a již nyní je SDD AERODISK dostupná v variantě s domácími procesory Elbrus.
V tomto článku se podíváme na samotné procesory, jejich historii, architekturu a samozřejmě na naši realizaci SDD na Elbrusu.
Historie
Historie procesorů Elbrus sahá až do dob Sovětského svazu. V roce 1973 na Institutu přesné mechaniky a výpočetní techniky. S.A. Lebeděva (toho samého Sergeje Lebeděva, který předtím vedl vývoj prvního sovětského počítače МЭСМ, a později БЭСМ) začala vývoj vícepokojových výpočetních komplexů pod názvem „Elbrus“. Vývoji předsedal Vsevolod Sergejevič Burcev, na vývoji se také aktivně podílel Boris Artashevič Babayan, který byl jedním z náměstků hlavního konstruktéra.

Vsevolod Sergejevič Burcev

Boris Artashevič Babayan
Hlavním objednatelem projektu byly samozřejmě ozbrojené síly SSSR, a tato série počítačů byla nakonec úspěšně používána při vytváření operačních výpočetních center a střeleckých komplexů systémů protiraketové obrany, stejně jako dalších systémů speciálního určení.

První počítač „Elbrus“ byl dokončen v roce 1978. Měl modulární architekturu a mohl obsahovat od 1 do 10 procesorů na bázi střední integrace. Rychlost tohoto stroje dosahovala 15 milionů operací za sekundu. Objem operační paměti, která byla společná pro všech 10 procesorů, činil až 2 na 20. mocnin strojových slov, což odpovídalo 64 MB.
Později se ukázalo, že mnohé technologie použité při vývoji „Elbrusa“ byly v té době zkoumány i ve světě a zabývala se jimi společnost International Business Machine (IBM), ale práce na těchto projektech, na rozdíl od prací na „Elbrusu“, nebyly dokončeny a nevedly k vytvoření hotového produktu.
Podle Vsevoloda Burtseva se sovětští inženýři snažili aplikovat nejmodernější zkušenosti jak domácích, tak zahraničních vývojářů. Na architekturu počítačů „Elbrus“ měly vliv také počítače společnosti Burroughs, vývoj Hewlett-Packard a zkušenosti vývojářů BESM-6.
Mnohé z těchto vývojů však byly originální. Nejdůležitější na „Elbrus-1“ byla právě jeho architektura.
Vytvořený superpočítač se stal prvním v SSSR počítačem, který používal superskalární architekturu. Hromadné použití superskalárních procesorů v zahraničí začalo teprve v 90. letech minulého století s příchodem dostupných procesorů Intel Pentium na trh.
Kromě toho pro organizaci přenosu datových toků mezi periferními zařízeními a operační pamětí mohly být v počítači použity speciální procesory vstupu/výstupu. Takových procesorů mohl být v systému až čtyři kusy, pracovaly paralelně s centrálním procesorem a měly vlastní vyhrazenou paměť.
Elbrus-2
V roce 1985 získal „Elbrus“ své logické pokračování, byl vytvořen a poslán do sériové výroby počítač „Elbrus-2“. Co se architektury týče, lišil se jen málo od svého předchůdce, ale používal novou elementární základnu, což umožnilo téměř desetinásobně zvýšit celkový výkon – z 15 milionů operací za sekundu na 125 milionů. Objem operační paměti počítače vzrostl na 16 milionů 72bitových slov, či 144 MB. Maximální propustnost kanálů vstupu/výstupu „Elbrus-2“ činila 120 MB/s.
„Elbrus-2“ se aktivně používal v jaderných výzkumných centrech v Čeljabinsku-70 a v Arzamas-16 v řídicím centru, v systému PRO A-135, a také na dalších vojenských objektech.
Vytvoření „Elbrusa“ bylo řádně oceněno vedoucími představiteli Sovětského svazu. Mnoho inženýrů bylo oceněno řády a medailemi. Hlavní konstruktér Vsevolod Burcev a řada dalších specialistů dostali státní ceny. A Boris Babayan byl vyznamenán Řádem Říjnové revoluce.
Tyto odměny byly více než zasloužené, Boris Babayan později říkal:
„V roce 1978 jsme vytvořili první superskalární stroj, Elbrus-1. Teď na Západě dělají superskaláry jen této architektury. První superskalární procesor na Západě se objevil v roce 1992, náš v roce 1978. A ten variant superskaláru, který jsme udělali, je analogický Pentium Pro, který Intel vyrobil v roce 1995.“
Tato slova o historickém prvenství potvrzuje také v USA, Kit Diefendorff, vývojář Motorola 88110, jednoho z prvních západních superskalárních procesorů, psal:
„V roce 1978, skoro o 15 let dříve než se objevily první západní superskalární procesory, byl v Elbrus-1 použit procesor, který vydával dvě instrukce za takt, měnil pořadí provádění instrukcí, přejmenovával registry a vykonával dle předpokladu.“
Elbrus-3
Rok 1986, a téměř ihned po dokončení prací na druhém „Elbrusu“ začali v ITMiVT vyvíjet novou soustavu „Elbrus-3“, využívající zásadně novou procesorovou architekturu. Tento přístup Boris Babayan nazval „předsuperskalárním“. Právě tato architektura, později nazvaná VLIW/EPIC, byla v budoucnu (v polovině 90. let) použita v procesorech Intel Itanium (a v SSSR byly tyto vývojové práce zahájeny v roce 1986 a dokončeny v roce 1991).
V tomto výpočetním komplexu byly poprvé realizovány myšlenky explicitního řízení paralelismu operací prostřednictvím kompilátoru.
V roce 1991 byl vydán první a bohužel jediný počítač „Elbrus-3“, který se podařilo do konce nevyrobit, a po rozpadnutí Sovětského svazu se stal nikomu nepotřebným, a vývoje a plány zůstaly na papíře.
Předpoklady pro novou architekturu
Tým, který pracoval v ITMIVT na vytváření sovětských superpočítačů, se nerozpadl, ale pokračoval jako samostatná společnost pod názvem MCST (Moskevské centrum SPARC-technologií). A na počátku 90. let začalo aktivní spolupráce MCST se Sun Microsystems, kde se tým MCST podílel na vývoji mikroprocesoru UltraSPARC.
Právě v této době vznikl projekt architektury E2K, který byl původně financován společností Sun. Později se projekt stal zcela nezávislým a veškerá duševní vlastnictví zůstala týmu MCST.
"Kdybychom i nadále spolupracovali se Sun v této oblasti, všechno by patřilo Sun. I když 90 % práce bylo vykonáno ještě před příchodem Sun." (Boris Babayan)
Architektura E2K
Když diskutujeme o architektuře procesorů "Elbrus", velmi často od našich kolegů z IT průmyslu slyšíme následující prohlášení:
"Elbrus je přece RISC-architektura"
"Elbrus je přece EPIC-architektura"
"Elbrus je přece SPARC-architektura"
Ve skutečnosti žádné z těchto prohlášení není zcela správné, a pokud ano, je to pouze částečně.
Architektura E2K je samostatná originální procesorová architektura, hlavními vlastnostmi E2K jsou energetická účinnost a vynikající škálovatelnost, dosažená pomocí explicitního paralelismu operací. Architektura E2K byla vyvinuta týmem MCST a jejím základem je post-superskalární architektura (podobná EPIC) s určitým vlivem architektury SPARC (s minulostí RISC). Při vytváření tří ze čtyř základních architektur (superskalární, post-superskalární a SPARC) se MCST přímo podílelo. Svět je opravdu malý.
Abychom v budoucnu předešli zmatení, nakreslili jsme jednoduchý diagram, který, ač zjednodušeně, ale velmi jasně ukazuje kořeny architektury E2K.

Teď ještě něco o názvu architektury, ohledně kterého rovněž panuje nepochopení.
V různých zdrojích můžete nalézt následující názvy této architektury: „E2K“, „Elbrus“, „Elbrus 2000“, ELBRUS („ExpLicit Basic Resources Utilization Scheduling“, tedy explicitní plánování využití základních zdrojů). Všechny tyto názvy označují totéž – architekturu, ale v oficiální technické dokumentaci a také na technických fórech se pro označení architektury používá název E2K, a proto dále, pokud mluvíme o procesorové architektuře, používáme termín „E2K“, a pokud o konkrétním procesoru, použijeme název „Elbrus“.
Technické specifikace architektury E2K
V tradičních architekturách typu RISC nebo CISC (x86, PowerPC, SPARC, MIPS, ARM) do procesoru vstupuje proud instrukcí, které jsou navrženy pro sekvenční vykonání. Procesor může odhalit nezávislé operace a spouštět je paralelně (superskalární architektura) a dokonce měnit jejich pořadí (out-of-order execution). Nicméně dynamická analýza závislostí a podpora vykonávání mimo pořadí mají svá omezení v počtu spuštění a analýzy příkazů na jeden takt. Kromě toho příslušné bloky uvnitř procesoru spotřebovávají značné množství energie a složitá implementace často vede k problémům s stabilitou nebo bezpečností.
V architektuře E2K nese hlavní zodpovědnost za analýzu závislostí a optimalizaci pořadí operací kompilátor. Procesoru na vstupu přicházejí tzv. široké příkazy, v nichž jsou zakódovány instrukce pro všechna výkonná zařízení procesoru, která by měla být na tomto taktu spuštěna. Od procesoru se nevyžaduje, aby analyzoval závislosti mezi operandy nebo přeskupoval operace mezi širokými příkazy: to vše provádí kompilátor na základě analýzy zdrojového kódu a plánování zdrojů procesoru. Výsledkem je, že hardwarová složka procesoru může být jednodušší a úspornější.
Kompilátor je schopen analyzovat zdrojový kód mnohem podrobněji než hardware procesoru RISC/CISC a najít více nezávislých operací. Proto je v architektuře E2K více paralelně pracujících výkonných zařízení než v tradičních architekturách.
Aktuální možnosti architektury E2K:
- 6 paralelních aritmeticko-logických jednotek (ALU).
- Registr s 256 84-bitovými registry.
- Hardwarová podpora cyklů, včetně pipeliningu. Zvyšuje efektivitu využití procesorových zdrojů.
- Programovatelné asynchronní zařízení pro prefetching dat s oddělenými čtecími kanály. Umožňuje skrýt zpoždění při přístupu k paměti a plněji využít ALU.
- Podpora spekulativního výpočtu a jednoprvkových predikátů. Umožňuje snížit počet přechodů a paralelně vykonávat několik větví programu.
- Široká instrukční sada schopná provést až 23 operací v jednom cyklu (více než 33 operací při balení operandů do vektorových instrukcí).

Emulace x86.
Už ve fázi návrhu architektury měli vývojáři potřebu podporovat software napsaný pro architekturu Intel x86. Pro tento účel byla implementována systém dynamické (tj. za běhu programu, neboli 'on-the-fly') translace binárních kódů x86 na kódy procesoru architektury E2K. Tento systém může fungovat buď v aplikačním režimu (podobně jako WINE), nebo v režimu obdobném hypervizoru (v tomto případě je možné spustit celou hostitelskou operační systém pro architekturu x86).
Díky několika úrovním optimalizace se podařilo dosáhnout vysoké rychlosti provádění přeloženého kódu. Kvalita emulace architektury x86 je potvrzena úspěšným spuštěním více než 20 operačních systémů (včetně několika verzí Windows) a stovek aplikací běžících na výpočetních komplexích 'Elbrus'.
Ochranný režim provádění programů.
Jedním z nejzajímavějších konceptů zděděných z architektur Elbrus-1 a Elbrus-2 je tzv. zabezpečené provádění programů. Jeho podstata spočívá ve zajištění, že program pracuje pouze s inicializovanými daty, kontrole všech přístupů do paměti na příslušnost k povolenému rozsahu adres a zajištění mezimodulární ochrany (například chránit volající program před chybou v knihovně). Všechny tyto kontroly se provádějí hardwarově. Pro zabezpečený režim je k dispozici plnohodnotný kompilátor a knihovna runtime podpory. Je třeba si uvědomit, že uplatněná omezení vedou k nemožnosti realizace například kódu napsaného v C++.
I v běžném, „nezabezpečeném“ režimu provozu procesorů „Elbrus“ existují rysy, které zvyšují spolehlivost systému. Například zásobník spojených informací (řetězec adres návratu při procedurálních voláních) je oddělen od zásobníku uživatelských dat a je nedostupný pro útoky, které viry využívají, jako je podvržení adresy návratu.
Vyvinuté technologie během let umožňují nejen dohnat, ale v budoucnu i překonat konkurenční architektury, pokud jde o výkon a škálovatelnost, ale i zajistit ochranu před chybami, kterými trpí x86/amd64. Například slabiny typu Meltdown (CVE-2017-5754), Spectre (CVE-2017-5753, CVE-2017-5715), RIDL (CVE-2018-12126, CVE-2018-12130), Fallout (CVE-2018-12127), ZombieLoad (CVE-2019-11091) a podobně.
Moderní ochrana proti nalezeným zranitelnostem v architektuře x86/amd64 spočívá na úrovni operačních systémů. Právě proto je pokles výkonu u současných a předchozích generací procesorů těchto architektur tak výrazný a činí od 30 % do 80 %. Jako aktivní uživatelé procesorů x86 to víme, trpíme tím a nadále "jíme kaktus", přičemž přítomnost řešení těchto problémů u nás (a nakonec pro naše zákazníky) je nepochybně výhodou, zvlášť pokud je řešení ruské.
Technické specifikace
Níže jsou uvedeny oficiální technické specifikace procesorů „Elbrus“ minulých (4C), aktuálních (8C), nových (8CV) a budoucích (16C) generací v porovnání s obdobnými procesory Intel x86.

Ihned viditelný pohled na tuto tabulku ukazuje (a to nás velmi těší), že technologické zaostávání domácích procesorů, které se před 10 lety zdálo nepřekonatelné, nyní vypadá jako nepatrné, a v roce 2021, s uvedením "Elbrus-16S" (který mimochodem bude podporovat virtualizaci), se sníží na minimální vzdálenosti.
Systém AERODISK na procesorech Elbrus 8S
Od teorie přecházíme k praxi. V rámci strategického aliance firem MCST, AERODISK, Bazalt SPU (dříve Alt Linux) a NORSI-TRANS byla vyvinuta a připravena k použití datová úložiště, která v současnosti co do parametrů bezpečnosti, funkčnosti, ceny a výkonu je, pokud ne nejlepším, tak bezpochyby velmi důstojným řešením, které může zajistit odpovídající úroveň technologické nezávislosti naší vlasti.
Nyní detaily…
Hardwarová část
Hardwarová část systému úložiště je realizována na základě univerzální platformy Jahont UVM společnosti NORSI-TRANS. Platforma Jahont UVM získala status telekomunikačního zařízení ruského původu a byla zařazena do jednotného rejstříku ruských rádiových elektronických produktů. Systém se skládá ze dvou samostatných řadičů systému úložiště (každý 2U), které jsou propojeny interconnectem 1G nebo 10G Ethernet a také se společnými diskovými skříněmi pomocí SAS připojení.
Samozřejmě, že to nevypadá tak hezky, jako formát "Cluster in a box" (kdy jsou řadiče a disky se společným backplane umístěny v jednom šasi 2U), které obvykle používáme, ale v nejbližší budoucnosti bude také dostupný. Hlavní je, aby to dobře fungovalo, a na "mašličky" pomyslíme později.


Pod kapotou má každý řadič jednoprocesorovou základní desku se čtyřmi sloty pro operační paměť (DDR3 pro procesor 8S). Dále má každý řadič 4 porty 1G Ethernet (z nichž dva jsou použity softwarem AERODISK ENGINE jako služební) a tři PCIe sloty pro Back-end (SAS) a Front-end (Ethernet nebo FibreChannel) adaptéry.
Jako spouštěcí disky jsou používány ruské SATA SSD disky firmy GS Nanotech, které jsme již několikrát testovali a používali v projektech.

Při prvním seznámení s platformou jsme ji důkladně prozkoumali. Kvalitě zpracování a pájení jsme neměli žádné výhrady, vše bylo provedeno pečlivě a spolehlivě.
Operační systém
Jako operační systém se používá verze OS Alt 8SP pro certifikaci. V brzké době plánujeme vytvoření připojitelného a neustále aktualizovaného repozitáře pro OS Alt s softwarem Sklad Aéródisk.
Tato verze distribuce je postavena na aktuální stabilní verzi jádra Linux 4.9 pro E2K (větev s dlouhodobou podporou byla portována specialisty MCST), doplněná o patche pro funkčnost a bezpečnost. Všechny balíčky v OS Alt byly sestaveny přímo na „Elbrusích“ s využitím originální transakční sestavovací systému projektu ALT Linux Team, což umožnilo snížit pracnost při samotném přenosu a soustředit se více na kvalitu produktu.
Jakékoli vydání OS Alt pro Elbrus lze výrazně rozšířit co do funkčnosti využitím dostupného repozitáře (od zhruba 6 tisíc zdrojových balíčků pro osmou verzi až k přibližně 12 – pro devátou).
Výběr byl učiněn také proto, že společnost Bazalt SPO, vývojář OS Alt – aktivně spolupracuje s jinými vývojáři softwaru a zařízení na různých platformách, čímž zajišťuje bezproblémovou interakci v rámci hardwarově-softwarových komplexů.
Software Systémy pro ukládání dat
Při portování jsme ihned odmítli myšlenku používat v E2K emulaci x86, a začali jsme pracovat s procesory přímo (naštěstí Alt již má potřebné prostředky).
Mezi jinými nativní režim vykonávání poskytuje lepší bezpečnost (ty tři hardwarové zásobníky místo jednoho) a zvýšený výkon (není potřeba uvolnit jedno nebo dvě jádra z osmi pro práci binárního překladače, zatímco kompilátor odvádí svou práci lépe než JIT).
Ve skutečnosti v implementaci AERODISK ENGINE na E2K podporuje většinu existující funkčnosti Skladů, které jsou k dispozici v x86. Jako software systému ukládání se používá aktuální verze AERODISK ENGINE (A-CORE verze 2.30)
Bez zvláštních problémů byly na E2K zavedeny a otestovány pro použití v produkci následující funkce:
- Odolnost vůči chybám až do dvou řadičů a vícestopý vstup-výstup (mpio)
- Blokový a souborový přístup s tenkými svazky (RDG pooly, DDP; protokoly FC, iSCSI, NFS, SMB včetně integrace s Active Directory)
- Různé úrovně RAID až s trojí paritou (včetně možnosti použití RAID konstruktora)
- Hybridní úložiště (kombinace SSD a HDD v rámci jednoho poolu, t.j. cache a tiering)
- Možnosti úspory místa pomocí deduplikace a komprese
- ROW snímky, klony a různé varianty replikace
- A další malé, ale užitečné funkce, jako QoS, global hotspare, VLAN, BOND a další.
Ve skutečnosti se nám na E2K podařilo zprovoznit všechny naše funkce kromě vícero řadičů (více než dva) a plánovač vícestopého vstupu-výstupu, který umožňuje zvýšit výkon all-flash poolů o 20-30%.
Ale tyto užitečné funkce samozřejmě také přidáme, jde jen o otázku času.
Trochu o výkonu
Po úspěšném absolvování testů základní funkčnosti úložiště jsme se samozřejmě vrhli na zátěžové testy.
Například, na dvouřadičovém úložišti (2xCPU E8C 1.3 Ghz, 32 GB RAM + 4 SAS SSD 800GB 3DWD), kde byl vypnut RAM cache, jsme vytvořili dva DDP pooly s hlavní úrovní RAID-10 a dvě LUNy po 500G a připojili tyto LUNy přes iSCSI (10G Ethernet) k Linux hostu. A provedli jsme jeden z základních hodinových testů na malé bloky sekvenční zátěže pomocí programu FIO.
První výsledky se ukázaly jako docela pozitivní.

Zatížení procesorů bylo v průměru na úrovni 60 %, t.j. je to základní úroveň, na které může úložiště bez problémů pracovat.
Ano, to rozhodně není vysoké zatížení a pro vysoce výkonné DBMS nějakého billingového systému to zjevně nestačí, ale jak ukazuje naše praxe, tyto charakteristiky stačí pro 80 % běžných úloh, pro které se úložiště používá.
O něco později plánujeme vrátit se s podrobnou zprávou o zátěžových testech Elbrusu jako platformy pro úložiště.
Světlá budoucnost
Jak jsme psali výše, hromadná výroba Elbrusu 8C začala vlastně teprve nedávno – na začátku roku 2019 a do prosince bylo již vyrobeno přibližně 4000 procesorů. Pro srovnání, procesorů předchozí generace Elbrus 4C bylo za celou dobu jejich výroby vyrobeno pouze 5000, takže pokrok je evidentní.
Je samozřejmé, že je to kapka v moři, dokonce i pro ruský trh, ale kdo jde, ten cestu udělá.
Na rok 2020 je naplánováno vydání několika desítek tisíc procesorů Elbrus 8S, což už je vážné číslo. Kromě toho má být během roku 2020 procesor Elbrus-8SV dovršen týmem MCST do sériové výroby.
Takové výrobní plány jsou výzvou na velký podíl celého domácího trhu serverových procesorů.
Výsledkem je, že již nyní máme dobrý a moderní ruský procesor s jasnou a podle našeho názoru správnou strategií rozvoje, na jehož základě existuje maximálně chráněný a certifikovaný systém ukládání dat ruské výroby (a v budoucnu i systém virtualizace na Elbrus-16S). Systém je ruský, jak to nyní fyzicky umožňuje současná situace.
Často vidíme v novinkách další epické pády společností, které se hrdě nazývají ruskými výrobci, a ve skutečnosti se zabývají přelepováním štítků, aniž by přidali k produktům zahraničního výrobce jakoukoli vlastní hodnotu, kromě své marže. Takové společnosti bohužel vrhají stín na všechny skutečné ruské vývojáře a výrobce.
Touto článkem chceme názorně ukázat, že v naší zemi byly, jsou a budou společnosti, které skutečně a kvalitně vyrábějí moderní složité IT systémy a aktivně se vyvíjejí, a že importní substituce v IT není fraškou, ale realitou, v níž všichni žijeme. Tuto realitu lze nemít rádi, lze ji kritizovat, ale také je možné pracovat a zlepšovat ji.

Rozpad SSSR jednou znemožnil týmu tvůrců Elbrusu stát se významným hráčem ve světě procesorů a donutil tým hledat financování svých vývojů v zahraničí. Bylo nalezeno, práce byla splněna a duševní vlastnictví bylo uchováno, za což těmto lidem chceme opravdu poděkovat!
Na tomto zatím vše, prosím, pište vaše komentáře, otázky a samozřejmě kritiku. Vždycky nás to potěší.
Také jménem celé společnosti Aerodisс bych chtěl poblahopřát celé ruské IT komunitě k nadcházejícímu Novému roku a Vánocům, přát 100% uptime - a aby zálohy byly v novém roce nikomu potřeba))).
Používané materiály
Článek se všeobecným popisem technologií, architektur a osobností:
Krátká historie počítačů pod názvem „Elbrus“:
Obecný článek o architektuře e2k:
Článek přímo o 4. generaci (Elbrus-8C) a 5. generaci (Elbrus-8CV, 2020):
Specifikace následující 6. generace procesorů (Elbrus-16CV, 2021):
Oficiální popis architektury Elbrus:
Plány vývojářů hardwarově-softwarové platformy „Elbrus“ na vytvoření superpočítače s exaflopsovým výkonem:
Ruské technologie „Elbrus“ pro osobní počítače, servery a superpočítače:
Starý článek Borise Babayana, ale stále aktuální:
Starý článek Michaila Kuzminského:
Prezentace MCST, obecné informace:
Informace o OS Alt pro platformu Elbrus:
Zdroj: habr.com
