Refresh the page

Co to jsou procesorové architektury?

Třetí velká procesorová architektura přichází • • Autor: Michal Rybka

Vítejte u prvního dílu desetidílného seriálu o procesorové architektuře RISC-V, která představuje otevřenou a flexibilní alternativu k dominujícím architekturám x86 a ARM. Než se však zaměříme na specifika RISC-V, je důležité pochopit, co jsou procesorové architektury, jak fungují a proč jsou klíčové pro moderní výpočetní techniku. V tomto úvodním díle se proto zaměříme na základy procesorových architektur, jejich vývoj, principy a důvody, proč se některé staly dominantními a jiné zanikly. Tento kontext nám pomůže lépe pochopit jedinečnost RISC-V.

XXX

RISC-V architektura?

Současnému technologickému světu dominují dvě hlavní rodiny procesorových architektur: x86, se kterou se setkáváme hlavně v oblasti osobních počítačů a kde drtivou většinu procesorů vyrábí firmy Intel a AMD, a ARM, která dominuje zbytku světa, od procesorů pro mobilní telefony (SoC, System-on-a-Chip) až po procesory určené pro osazování po tisících do datacenter. Tato rovnováha, která byla na počátku léta 2024 narušena příchodem výkonných notebooků s procesory Snapdragon se systémem Windows on ARM, bude brzy znovu porušena příchodem třetí architektury: RISC-V. Tato architektura je zcela nová – a protože spadá pod Open Architecture, je otevřená a pro výrobce hardwaru dostupná zcela zdarma.

Projekt RISC-V je poměrně mladý, ale již postoupil ze stádia návrhu do prvních generací reálného hardwaru, který se používá pro vývoj a prototypování budoucích výrobků. O rozvoj produktů s procesory RISC-V se vzhledem k mezinárodní politické situaci zajímá i Čína, která investuje nemalé prostředky jak do vývoje procesorů s touto architekturou, tak do vývoje operačních systémů a nástrojů pro vývoj aplikací pro nový hardware. V této minisérii si vysvětlíme, co je vlastně RISC-V, jak si stojí vedle současných architektur a proč je pro čínské výrobce tak atraktivní.

Srovnání architektur
Tři dominantní procesorové architektury se výrazně liší svým přístupem k návrhu: RISC-V sází na jednoduchost a modularitu s možností přidávat pouze potřebná rozšíření, ARM představuje vyvážený kompromis mezi jednoduchostí a výkonem (proto dominuje v mobilních zařízeních), zatímco x86 je nejkomplexnější kvůli nutnosti zachovat zpětnou kompatibilitu až k původnímu procesoru 8086 z roku 1978. Každá z architektur má své výhody - RISC-V nabízí svobodu návrhu, ARM vyniká v energetické účinnosti a x86 poskytuje nejvyšší výkon pro náročné aplikace.

Více informací k diagramu

Diagram znázorňuje tři hlavní procesorové architektury a jejich klíčové charakteristiky:

RISC-V je nejnovější architektura postavená na principu modularity. Základem je jednoduché jádro (RV32I/RV64I), které obsahuje pouze nezbytné instrukce. Podle potřeby lze přidávat standardizovaná rozšíření:

  • M: Rozšíření pro náročnější celočíselnou matematiku (násobení, dělení)
  • F: Podpora výpočtů s plovoucí desetinnou čárkou
  • D: Výpočty s dvojitou přesností
  • C: Komprimované instrukce pro úsporu paměti

Výrobci mohou přidat i vlastní rozšíření pro specifické účely.

ARM představuje kompromis mezi jednoduchostí a výkonem. Nad základním jádrem nabízí důležitá rozšíření:

  • NEON SIMD: Vektorové výpočty pro rychlé zpracování multimédií
  • Thumb: Komprimované instrukce pro úsporu paměti
  • VFP: Koprocesory pro výpočty s plovoucí desetinnou čárkou
  • TrustZone: Bezpečnostní prvky pro oddělení kritického kódu

Díky vyváženému návrhu dominuje ARM v mobilních zařízeních a vestavěných systémech.

x86 je nejstarší a nejkomplexnější architektura. Její složitost vyplývá z nutnosti zachovat zpětnou kompatibilitu - nové procesory musí umět spustit i programy napsané pro původní 8086 z roku 1978. Postupně přibyla podpora pro:

  • 32bitové programy (IA-32)
  • 64bitové programy (x86-64)
  • MMX: První rozšíření pro multimediální operace
  • SSE a AVX: Pokročilé vektorové instrukce pro náročné výpočty

Každá architektura má své výhody: RISC-V nabízí svobodu návrhu a optimalizace, ARM exceluje v energetické účinnosti, x86 poskytuje nejvyšší výkon a nejširší softwarovou kompatibilitu.

Co to jsou procesorové architektury?

Procesor je základní jednotkou počítače, která ho řídí. Procesor se ovládá pomocí programů, které dnes dokáže generovat i umělá inteligence, ale typicky je píší programátoři ve vyšších programovacích jazycích. Tyto programy se překládají do jediného jazyka, kterému „rozumí“ samotný procesor: strojového kódu. Strojový kód procesoru je tvořen instrukcemi, které tvoří instrukční sadu (ISA, Instruction Set Architecture) – ta je pevně spjata s řídicími strukturami procesoru a jeho architekturou obecně.

Existuje velké množství procesorových architektur, které mají různou filozofii. V minulosti byly programátory velmi oblíbené tzv. paměťově orientované architektury, kdy procesor měl jen minimální vlastní paměť pro ukládání mezivýsledků (registrů) a místo toho pracoval přímo s obsahem paměti. Procesor například přečetl vstupní údaje na adresách, které mu programátor zadal, a výsledek zapsal na místo dané první adresou. Tento přístup umožňoval psát velmi elegantní kód, ale jak šel vývoj dál, rychlost procesorů oproti pamětem výrazně vzrostla a tento přístup se stal velmi pomalým.

Load-store architektura a moderní přístup

Dnes se používá tzv. load-store architektura, kdy procesor pracuje s celou sadou vnitřních registrů, do kterých z hlavní paměti načítá údaje instrukcí pro čtení (load) a ukládá je tam instrukcemi pro zápis (store). Tato zdánlivá komplikace má zásadní výhodu v tom, že jde o instrukce pro nezávislý paměťový subsystém procesoru. Ten ví, že se bude údaj číst nebo zapisovat, a může tyto operace optimalizovat. Například může čtení provádět s předstihem a také řešit konzistenci údajů ve vyrovnávací paměti (cache).

Zatímco dříve se za elegantní považovaly procesory s minimálním návrhem, dnes se preferuje celkový výkon – a tedy i poměrně složitý systém optimalizace řazení instrukcí a jejich rozkládání na jednotlivé procesorové jednotky. To, jak procesor tyto operace provádí, je právě věcí jeho architektury. Procesorové architektury jsou plné kompromisů a jejich optimalizace a výběr instrukcí není zrovna jednoduchá záležitost. Kromě toho, aby byly procesory efektivní, musí podporovat i starší instrukce z důvodu zpětné kompatibility.

Moderní procesory musí podporovat nejen klasické instrukce, ale také specializované instrukce, které například pomáhají se zpracováním videa, audia nebo nově i umělé inteligence. Tyto instrukce řídí specializované jednotky uvnitř procesoru, ale tím to nekončí. Moderní procesory musí také řešit zabezpečení, tedy práva jednotlivých programů pro přístup pouze do té části paměti, která jim byla povolena, ochranu jádra operačního systému nebo akceleraci kryptografie. Kryptografie umožňuje ukládat data na disk nebo do paměti počítače v kryptograficky chráněné podobě.

Vývoj významných rodin procesorových architektur se po většinu času týkal experimentování s novými instrukcemi a jejich významem pro operační systémy. Zkoumalo se, jak instrukce dekódovat a optimalizovat jejich provádění – a často se používala metoda pokus-omyl. S přidáváním nových funkcí a instrukcí se také stávalo, že některé se ukázaly jako zbytečné a byly odstraněny (depreciated, discontinued instructions). Jejich seznam najdete například na Wikipedii. Pokud procesor dostane za úkol zpracovat jemu neznámou instrukci, aktivuje výjimku UD (UnDefined instruction), která typicky vede k ukončení běžícího programu.

Skryté instrukce a mikrokód

Mimo zastaralé instrukce existují také „tajné“ či spíše nedokumentované instrukce. Ty se objevovaly už u starých procesorů jako Zilog Z80A (1977). Někdy šlo o nedokončené instrukce, experimentální instrukce nebo instrukce, které neplnily svou plánovanou funkci správně, takže nebyly zahrnuty do oficiální instrukční sady.

Dnes existují i nedokumentované instrukce, které někdy slouží k obsluze samotného procesoru, například k manipulaci s jeho vlastním vnitřním mikrokódem, jak objevili hackeři u procesorů Intel v roce 2020. Tyto instrukce nejsou veřejně popsány, protože nejsou určeny pro programátory aplikací. Hackeři však mají z jejich objevení pochopitelnou radost. Výrobci procesorů si tato tajemství pochopitelně chrání, protože možnost upravovat mikrokód procesorů je klíčová pro opravy chyb v procesorech na dálku.

Michal Rybka

Michal Rybka

Michal Rybka je publicista a nadšenec s 20 lety zkušeností v IT a gamingu. Je kurátorem AlzaMuzea a YouTube kanálu AlzaTech. Napsal několik fantasy a sci-fi povídek, které vyšly v knižní podobě, a pravidelně pokrývá páteční obsah na internetovém magazínu PCTuning.

Try our cookies

Alza.cz a. s., Company identification number 27082440, uses cookies to ensure the functionality of the website and with your consent also to personalisage the content of our website. By clicking on the “I understand“ button, you agree to the use of cookies and the transfer of data regarding the behavior on the website for displaying targeted advertising on social networks and advertising networks on other websites.

More information
I understand Detailed settings Reject everything
P-DC1-WEB22