Apple M1: Architektura, novinky a funkce

Od té doby jablko oznámil opuštění Intel CPU pro svůj Apple Macintosh používají procesory vlastního designu, takzvaný Apple Silicon, web byl naplněn apokalyptickými zprávami o konci architektury x86 a o tom, jak lepší jsou architektury s ISA ARM. Jak ale vypadá architektura M1 společnosti Apple a jaké je její srovnání s architekturou počítače PC?

Na tomto webu jsme diskutovali o všech typech procesorů, ale obvykle se jedná o ty, které jsou kompatibilní se sadou registrů a pokynů x86, ale kvůli kontroverzi v posledních měsících s Apple M1 jsme se rozhodli udělat článek o jeho architektuře.

Architektura Apple M1

Apple M1 není CPU, je to SoC

Apple M1

První věc, kterou je třeba mít na paměti, je, že Apple M1 není procesor jako Intel nebo AMD, ale jedná se o kompletní SoC, který kromě CPU obsahuje řadu specializovaných jednotek různých kategorií a užitečnosti, které jsou následující:

  • CPU, o kterém budeme hovořit dále v tomto článku.
  • GPU, který zpracovává grafiku.
  • Jednotka pro zpracování obrazu nebo ISP.
  • Procesor digitálního signálu nebo DSP, který se používá k dekompresi hudebních souborů i k velmi složitým matematickým operacím.
  • Neural Processing Unit, procesor věnovaný AI.
  • Kodér a dekodér videa pro přehrávání a ukládání filmů.
  • Jednotky šifrování dat pro zabezpečení.
  • I / O jednotky, které spravují externí periferní zařízení a také informace, které jsou jim zasílány.
  • Velká mezipaměť poslední úrovně, která je nezbytná pro sjednocenou paměť a nazývá se mezipaměť na úrovni systému

Pokud bychom měli mluvit o všech těchto jednotkách, potřebovali bychom knihu, proto budeme hovořit výhradně o CPU, abychom odpověděli na otázku o jeho výkonu, s ohledem na CPU, které jsou v PC.

Pokud hardware není různorodý, je snazší optimalizovat programy

Interiér PC

Jedna z věcí, která odlišuje PC od ostatních platforem, je to, že každá součást má tisíc různých produktů, a proto se nakonec vytvoří neuvěřitelné množství konfigurací, na druhé straně u počítačů Apple počínaje M1, veškerý hardware kromě RAM a úložiště jsou na Apple SoC.

Co to umožňuje? V zásadě umožňuje optimalizaci aplikací na jednu konfiguraci, která se neliší od toho, co se děje v konzole, která má na trhu životnost let a končí optimalizovaným kódem i pět let po jeho vydání. Na druhou stranu v PC univerzálnost při výběru znamená, že nelze optimalizovat vůbec nic.

V PC, když provádíme program, vše půjde na CPU, ale možná existuje část kódu, která by byla hezká, kdybychom ji mohli spustit v jednotkách mnohem specializovanějších než CPU, ale obrovská rozmanitost hardwaru v PC provádí optimalizaci kódu za účelem použití jiných hardwarových jednotek k urychlení programů v úloze Sisyfosu.

Jednotná paměť

Apple M1 + RAM

Jednou z tajných zbraní Apple proti PC je sjednocená paměť, ale nejprve si musíme ujasnit, že sjednocená paměť neodkazuje na skutečnost, že různé prvky sdílejí stejnou paměť na fyzické úrovni, ale tato sjednocená paměť znamená, že všechny SoC prvky chápou paměť stejným způsobem.

To znamená, že když GPU upraví adresu paměti, tato data se přímo upraví pro zbytek prvků Apple M1 na stejné adrese paměti. V počítačích a odvozených architekturách, které používají unifikovanou paměť, je dokonce nutné použít jednotky DMA, které kopírují data z prostoru RAM přiřazeného jedné jednotce do jiné jednotky, což při provádění kódu přidává latenci a snižuje možnost spolupráce mezi stranami .

Díky jednotné paměti M1 se tedy vývojáři macOS mohou rozhodnout spustit nějaký kód v jednotkách, které jej vyřeší rychleji než CPU.

Vysoce výkonný procesor Apple M1: Firestorm

Notebook ARM

Apple M1, přestože je vícejádrovým CPU, ve skutečnosti používá dva různé typy CPU. Na jedné straně vysoce výkonné, ale horší jádro zvané Icestorm a na druhé straně vysoce výkonné, ale horší energeticky efektivní jádra zvané Firestorm, s kterými se budeme zabývat, protože jsou to právě ty, které Apple stojí až do x86. vysoká výkonnost.

Podíváme se na jádra Firestorm, že v Apple M1 jsou celkem čtyři jádra a jsou to ta, s nimiž se Apple rozhodl postavit se vysoce výkonným procesorům v PC, a udělal to s vysoce výkonné jádro, které pochopí důvod jeho výkonu, než budeme muset komentovat téma, které je obecné pro všechny CPU.

Dekodéry na procesorech mimo provoz

Vykreslení CPU NPU

V první fázi druhé fáze instruktážního cyklu se provádí převod instrukcí na mikroinstrukce, které jsou mnohem jednodušší, ale snadno implementovatelné v křemíku. Mikroinstrukce není sama o sobě úplnou instrukcí vzhledem k tomu, že nepředstavuje akci, ale několik z nich v kombinaci tvoří složitější instrukce.

Interně tedy žádný procesor neprovádí binární program tak, jak je, ale každý z nich má proces transformace instrukcí na sady mikroinstrukcí. Tím to ale nekončí, v současném procesoru je provádění mimo pořadí, což znamená, že program se neprovádí v pořadí podle sekvence, ale v pořadí, ve kterém jsou k dispozici prováděcí jednotky.

Takže první věcí, kterou dekodér provede, jakmile převede instrukci na mikroinstrukce, je umístit je do toho, čemu říkáme přeskupovací vyrovnávací paměť, ve které jsou umístěny ve formě seznamu v pořadí, v jakém se různé prováděcí jednotky chystají být. k dispozici vedle pozice, která je ve správném pořadí programu. Program tedy poběží efektivněji a instrukce nebudou muset čekat na uvolnění exekuční jednotky, pak je výsledek zapsán ve správném pořadí programu.

Tajná zbraň jader Apple M1 Firestorm: jeho dekodér

Velocidad reloj

Fáze dekódování instrukce je druhou fází cyklu instrukcí. V jakémkoli procesoru, který pracuje paralelně, musí být dekodér schopen zpracovat několik instrukcí současně a odeslat je do příslušných prováděcích jednotek, které mají být vyřešeny.

Výhoda M1? Skutečnost, že má dekodér schopný zpracovávat 8 simultánních instrukcí, což z něj činí nejširší procesor v tomto ohledu, protože to mu umožňuje zpracovávat větší počet instrukcí paralelně, takže také umožňuje Apple umístit více instrukcí. Ale důvod, proč to Apple dokázal, je kvůli povaze sady instrukcí ARM ve srovnání s x86, zejména pokud jde o dekódování.

ARM x86

ARM instrukce mají tu výhodu, že mají pevnou velikost, to znamená, že v binárním kódu je každý počet bitů instrukcí. Na druhou stranu mají x86 proměnnou velikost. Což znamená, že kód musí projít několika dekodéry, než se stane mikroinstrukcí. Důsledky toho? Skutečnost, že část hardwaru věnovaná dekódování instrukcí nejen že zabírá mnohem více místa a spotřebovává více, ale méně simultánních instrukcí, lze dekódovat pod stejnou velikostí.

A zde vstupujeme do velké výhody M1. Kolik plných dekodérů mají procesory Intel a AMD? Průměr je čtyři, jen polovina. Což dává Firestorms M1 schopnost provádět dvakrát tolik instrukcí současně než CPU Intel a AMD.

Apple M1 vs Intel a AMD

Apple M1 vs Intel vs AMD

Provádět dvakrát tolik instrukcí neznamená řešit dvakrát tolik instrukcí, protějškem jader založených na ARM je to, že vyžadují větší počet jednotlivých instrukčních cyklů, a proto k provedení programu taktovací cykly. Takže x86 se stejnou šířkou by byl mnohem výkonnější než ARM, ale vyžadoval by větší počet tranzistorů a velmi složitý procesor z hlediska velikosti.

Postupem času AMD i Intel zvýší IPC svých procesorů, ale jsou omezeny složitostí instrukční sady x86 a jejího dekodéru. Nejde o to, že nemohou vyrobit procesor x86 s osmi dekodéry, ale o to, že pokud by existoval, byl by příliš velký na to, aby byl komerčně životaschopný, a před zvýšením IPC na jádro musí počkat, až se objeví nové uzly.