arkitektur, nyheter och funktioner –

På den här webbplatsen har vi diskuterat alla typer av processorer, men vanligtvis de som är kompatibla med x86-registret och instruktionsuppsättningen, men på grund av oenighet de senaste månaderna med Apple M1, bestämde vi oss för att skriva en artikel om dess arkitektur.

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

Det första att tänka på är att Apple M1 inte är en CPU som Intel eller AMD, utan det är en fullfjädrad SoC, som förutom CPU:n innehåller ett antal specialiserade moduler av olika kategorier och verktyg, nämligen:

  • CPU, som vi kommer att prata om senare i den här artikeln.
  • GPU som bearbetar grafik.
  • Bildenhet eller internetleverantör.
  • En digital signalprocessor eller DSP som används för att dekomprimera musikfiler såväl som för mycket komplexa matematiska operationer.
  • Neural Processing Unit, en processor dedikerad till AI.
  • Videokodare och avkodare för uppspelning och lagring av filmer.
  • Datakrypteringsblock för säkerhet.
  • I/O-block som styr extern kringutrustning och informationen som skickas till dem.
  • Den stora cache på sista nivån som krävs för ett enhetligt minne kallas systemnivåcachen.

Om vi ​​pratade om alla dessa moduler skulle vi behöva en bok, så vi kommer bara att prata om processorn för att svara på frågan om dess prestanda i förhållande till processorerna som finns i datorn.

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

En av skillnaderna mellan en PC och andra plattformar är att varje komponent har tusen olika produkter, och därför skapas en otrolig mängd konfigurationer, å andra sidan, med Apple-datorer som börjar med M1, all hårdvara utom RAM och lagring finns på Apple SoC.

Vad tillåter detta? Nåväl, detta låter dig i princip optimera appar för en enda konfiguration som inte är annorlunda än vad som händer i en konsol som har funnits på marknaden i flera år och i slutändan optimerar koden även fem år efter att den släppts. Å andra sidan, i en PC innebär mångsidighet i urvalet att ingenting kan optimeras.

På en PC, när vi kör ett program, kommer allt att skjutas till CPU:n, men det kanske finns någon bit kod som skulle vara trevligt att kunna exekvera den i enheter som är mycket mer specialiserade än CPU:n, men den enorma variationen av hårdvara i datorer kommer att optimera koden för att använda andra hårdvarublock för att snabba upp program i Sisyfos-uppgiften.

Enkelt minne

Ett av Apples hemliga vapen mot PC är enhetligt minne, men först och främst måste vi förtydliga att enhetligt minne inte syftar på att olika element använder samma minne på fysisk nivå, utan detta enhetliga minne gör att alla SoCs element förstår minne på samma sätt.

Det vill säga när GPU / GRAFISK PROCESSOR ändrar minnesadressen, ändras denna data direkt för resten av Apple M1-elementen på samma minnesadress. I PC-datorer och härledda arkitekturer som använder enhetligt minne är det till och med nödvändigt att använda DMA-block som kopierar data från RAM-utrymmet som är tilldelat ett block till ett annat block, vilket ökar fördröjningen av kodexekvering och minskar möjligheten till samarbete mellan parterna. …

Så tack vare det förenade M1-minnet kan macOS-utvecklare köra en del kod i enheter som löser det snabbare än processorn.

Högpresterande Apple M1-processor: Firestorm

Apple M1, trots att den är en flerkärnig processor, använder faktiskt två olika typer av processorer. Å ena sidan finns det en högpresterande, men sämre kärna som heter Icestorm, och å andra sidan finns det högpresterande, men mindre energieffektiva kärnor som heter Firestorm, som vi ska ta itu med, eftersom de är Apples egen mot x86. hög prestanda.

Det är i Firestorm-kärnorna som vi anser att det bara finns fyra kärnor i Apple M1, och det är med dem som Apple bestämde sig för att motsätta sig de högpresterande processorerna på PC:n och gjorde det med den högpresterande kärnan, som , för att förstå orsaken till dess prestanda, innan vi kommenterar ämnet som är gemensamt för alla processorer.

Avkodare på processorer är ur funktion

Det första steget i den andra fasen av instruktionsslingan omvandlar instruktionerna till mikroinstruktioner, som är mycket enklare men lätta att implementera på kisel. En mikroinstruktion i sig är inte en fullständig instruktion på grund av att den inte representerar en handling, men några av dem kombineras för att bilda mer komplexa instruktioner.

Därför, internt, exekverar inga CPU:er programmet binärt som det är, utan varje CPU har en process för att omvandla instruktioner till mikroinstruktionsuppsättningar. Men saken slutar inte där, i en modern processor är exekveringen ur funktion, vilket innebär att programmet exekveras inte i ordningsföljden, utan i den ordning som exekveringsenheterna är tillgängliga.

Det första en avkodare gör efter att ha konverterat en instruktion till mikroinstruktioner är alltså att placera dem i vad vi kallar en omordningsbuffert, där de listas som en lista i den ordning som de olika exekveringsenheterna kommer att exekveras. vara. finns tillgängliga bredvid positionen, som är i rätt programordning. Således kommer programmet att fungera mer effektivt, och instruktionerna behöver inte vänta tills exekveringsenheten släpps, då kommer resultatet att skrivas i rätt ordning i programmet.

Apple M1 Firestorm Cores Secret Weapon: Dess avkodare

Instruktionsavkodningsfasen är den andra fasen av instruktionscykeln. I vilken processor som helst som arbetar parallellt måste avkodaren kunna behandla flera instruktioner samtidigt och skicka dem till lämpliga exekveringsenheter för lösning.

M1 fördelen? Faktumet att ha en avkodare som kan hantera 8 samtidiga instruktioner gör den till den bredaste processorn i detta avseende, eftersom den gör att den kan behandla fler instruktioner parallellt och även tillåter Apple att ta emot fler instruktioner. Men anledningen till att Apple kunde göra detta har att göra med arten av ARM-instruktionsuppsättningen kontra x86, särskilt när det kommer till avkodning.

ARM-instruktioner har fördelen av att vara fixerade i storlek, vilket innebär att i binärt är varje antal bitar en instruktion. Å andra sidan är x86 varierande i storlek. Det betyder att koden måste gå igenom flera avkodare innan den blir en mikroinstruktion. Konsekvenserna av detta? Tja, det faktum att hårdvaran som är dedikerad till avkodning av instruktioner inte bara tar mycket mer utrymme och förbrukar mer, utan färre samtidiga instruktioner kan avkodas i samma storlek.

Och här ser vi den stora fördelen med M1. Hur många kompletta avkodare har Intel- och AMD-processorer? Tja, i genomsnitt fyra, bara hälften. Detta ger M1 Firestorms möjligheten att exekvera dubbelt så många instruktioner samtidigt som Intel- och AMD-processorer.

Apple M1 vs. Intel och AMD

Att köra dubbelt så många instruktioner betyder inte att lösa dubbelt så många instruktioner, analogen med ARM-baserade kärnor är att de kräver fler enkla instruktionscykler och därför klockcykler för att exekvera ett program. En x86 med samma bredd kommer alltså att vara mycket kraftfullare än ARM, men den kommer att kräva fler transistorer och en mycket komplex processor storleksmässigt.

Med tiden kommer både AMD och Intel att öka IPC för sina processorer, men de begränsas av komplexiteten hos x86-instruktionsuppsättningen och dess avkodare. Det är inte så att de inte kan göra en x86-processor med åtta avkodare, utan att om den fanns skulle den vara för stor för att vara kommersiellt gångbar och de skulle behöva vänta på att nya noder dyker upp innan de ökar IPC per kärna.

Relaterade artiklar

Back to top button