Apple M1: Arkitektur, nyheter och funktioner

Alltsedan Apple tillkännagav övergivandet av Intel Processorer för sin Apple Macintosh för att använda processorer av sin egen design, det så kallade Apple Silicon, webben har fyllts med apokalyptiska meddelanden om slutet på x86-arkitekturen och hur överlägsna arkitekturerna med ISA ARM. Men hur ser Apples M1-arkitektur ut och hur jämförs den med en PC?

På den här webbplatsen har vi diskuterat alla typer av processorer, men vanligtvis är de de som är kompatibla med x86-uppsättningen register och instruktioner, men på grund av kontroversen de senaste månaderna med Apples M1 har vi beslutat att göra en artikel om dess arkitektur.

Apple M1 -arkitektur

Apple M1 är inte en CPU, det är en SoC

Apple M1

Det första du måste tänka på är att Apple M1 inte är en CPU som Intel eller AMD, men det är en komplett SoC som förutom CPU: n innehåller en serie specialiserade enheter av olika kategorier och verktyg, som är följande:

  • CPU, som kommer att vara den som vi kommer att diskutera senare i den här artikeln.
  • GPU, som bearbetar grafik.
  • Bildbehandlingsenhet eller ISP.
  • Digital signalprocessor eller DSP, som används för att dekomprimera musikfiler samt för mycket komplexa matematiska operationer.
  • Neural Processing Unit, en processor dedikerad till AI.
  • Video Encoder och Decoder för att spela och lagra filmer.
  • Datakrypteringsenheter för säkerhet.
  • I / O-enheter som hanterar externa kringutrustning samt informationen som skickas till dem.
  • Ett stort cache på sista nivå, vilket är viktigt för enhetligt minne och kallas System Level Cache

Om vi ​​skulle prata om alla dessa enheter skulle vi behöva en bok, det är därför vi kommer att prata om CPU exklusivt för att svara på frågan om dess prestanda, med avseende på de processorer som finns i PC.

När det inte finns någon variation i hårdvara är det lättare att optimera program

Interiör PC

En av de saker som skiljer datorn från andra plattformar är att varje komponent har tusen olika produkter och därför skapas otroligt många konfigurationer, å andra sidan, med Apple-datorer som börjar med M1, all hårdvara utom RAM och lagringen finns på Apple SoC.

Vad tillåter detta? Nåväl, det gör det i princip möjligt att applikationer optimeras till en enda konfiguration, vilket inte skiljer sig från vad som händer i en konsol som har en livslängd på marknaden och slutar ha en optimerad kod även fem år efter lanseringen. Å andra sidan, på PC, betyder mångsidigheten när du väljer att ingenting alls kan optimeras.

På en PC när vi kör ett program går allt till CPU, men möjligen finns det en del av koden som skulle vara trevligt att kunna köra den i enheter som är mycket mer specialiserade än CPU, men det enorma utbudet av hårdvara i PC gör optimering av koden för att använda andra hårdvaruenheter för att påskynda programmen i en uppgift från Sisyphus.

Enat minne

Apple M1 + RAM

Ett av Apples hemliga vapen mot datorn är enhetligt minne, men först och främst måste vi klargöra att enhetligt minne inte hänvisar till det faktum att de olika elementen delar samma minne på en fysisk nivå, men att enhetligt minne betyder att alla SoC element förstår minnet på samma sätt.

Det vill säga när GPU ändrar en minnesadress, dessa data modifieras direkt för resten av Apple M1-elementen på samma minnesadress. I datorer och härledda arkitekturer som använder enhetligt minne är det till och med nödvändigt att använda DMA-enheter som kopierar data från RAM-utrymmet som tilldelats en enhet till en annan enhet, vilket lägger till latens vid körning av koden och minskar möjligheten till samarbete mellan parterna .

Så tack vare M1: s enhetliga minne kan macOS-utvecklare välja att köra lite kod i enheter som löser det snabbare än CPU.

Högpresterande CPU för Apple M1: Firestorm

ARM-bärbar dator

Apple M1 trots att det är en flerkärnig CPU använder faktiskt två olika typer av CPU. Å ena sidan, en högpresterande men sämre prestanda kärna som heter Icestorm och å andra sidan högpresterande men sämre energieffektiva kärnor som heter Firestorm, vilket är de vi ska hantera, eftersom det är de som Apple står upp till x86. hög prestanda.

Det är i Firestorm-kärnorna som vi kommer att titta på, att det i Apple M1 finns fyra kärnor totalt och det är de som Apple har bestämt sig för att stå emot högpresterande processorer på PC, och har gjort det med en högpresterande kärna, för att förstå orsaken till dess prestanda innan vi måste kommentera ett ämne som är allmänt för alla processorer.

Avkodare på processorer ur drift

CPU NPU-rendering

I den första fasen av det andra steget i instruktionscykeln är vad som görs att omvandla instruktionerna till mikroinstruktioner, som är mycket enklare men enkla att implementera i kisel. En mikroinstruktion är inte en fullständig instruktion i sig på grund av att den inte representerar en åtgärd, men flera av dessa i kombination bildar mer komplexa instruktioner.

Därför kör ingen CPU internt programmet binärt som det är, men var och en av dem har en process för att omvandla instruktioner till uppsättningar av mikroinstruktioner. Men saken slutar inte här, i en samtida processor är exekveringen ur funktion, vilket innebär att programmet inte körs i ordningsföljd, utan i den ordning i vilken exekveringsenheterna är tillgängliga.

Så det första som avkodaren gör när den har omvandlat instruktionen till mikroinstruktioner är att placera dem i vad vi kallar omordningsbufferten, där de placeras i form av en lista i den ordning i vilken de olika exekveringsenheterna ska vara. tillgängliga bredvid den position som är i rätt ordning på programmet. Så programmet kommer att köras mer effektivt och instruktionerna behöver inte vänta på att exekveringsenheten är ledig, då skrivs resultatet i rätt ordning på programmet.

Det hemliga vapnet i Apple M1s Firestorm-kärnor: dess avkodare

Velocidad Reloj

Instruktionsavkodningssteget är det andra steget i instruktionscykeln. I vilken processor som helst som arbetar parallellt måste avkodaren kunna bearbeta flera instruktioner samtidigt och skicka dem till lämpliga exekveringsenheter som ska lösas.

M1-fördelen? Att ha en avkodare som kan hantera åtta samtidiga instruktioner, vilket gör den till den bredaste processorn i detta avseende, eftersom detta gör det möjligt att bearbeta ett större antal instruktioner parallellt, så det gör det också möjligt för Apple att placera fler instruktioner. Men anledningen till att Apple har kunnat göra detta beror på armen av ARM-instruktionsuppsättningen jämfört med x8, särskilt när det gäller avkodning.

ARM x86

ARM-instruktioner har fördelen att de har en fast storlek, detta innebär att i binär kod är varje antal bitar en instruktion. Å andra sidan har x86 en variabel storlek. Vilket innebär att koden måste gå igenom flera avkodare innan den blir en mikroinstruktion. Konsekvenserna av det? Det faktum att den del av hårdvaran som är avsedd att avkoda instruktionerna inte bara tar upp mycket mer utrymme och förbrukar mer, men mindre samtidiga instruktioner kan avkodas under samma storlek.

Och här går vi in ​​i den stora fördelen med M1. Hur många fulla avkodare har Intel- och AMD-processorer? Tja, genomsnittet är fyra, bara hälften. Vilket ger M1: s Firestorms möjligheten att utföra dubbelt så många instruktioner samtidigt som Intel- och AMD-processorer.

Apple M1 vs Intel och AMD

Apple M1 vs Intel vs AMD

Att utföra dubbelt så många instruktioner betyder inte att lösa dubbelt så många instruktioner, motsvarigheten till ARM-baserade kärnor är att de kräver ett större antal enstaka instruktionscykler och därför klockcykler för att utföra ett program. Så en x86 med samma bredd skulle vara mycket kraftfullare än en ARM, men det skulle kräva ett större antal transistorer och en mycket komplex processor när det gäller storlek.

Med tiden kommer både AMD och Intel att öka IPC: n för sina processorer, men begränsas av komplexiteten i instruktionsuppsättningen x86 och dess avkodare. Det är inte så att de inte kan skapa en x86-processor med åtta avkodare, det är att om den fanns, skulle den vara för stor för att vara kommersiellt bärkraftig och de måste vänta på att de nya noderna ska visas innan de ökar IPC per kärna.