Formel M1: Warum der Apple-Chip so schnell ist

Seite 2: Caches, GPU, RAM und Unified Memory

Inhaltsverzeichnis

Hinter den für ARM-Chips riesigen Caches steckt eine bewusste Designentscheidung: Man baut so große Areale aus statischem Speicher (SRAM) nur, wenn man sie wirklich benötigt. Schließlich belegen sie viel Platz auf einem Chip. So umfasst beispielsweise bei den ebenfalls neuen SoCs von Xbox Series S/X der L3-Cache nur 4 MByte, bei den Spielmaschinen kommt einer großen GPU mehr Bedeutung zu als einer besonders hohen CPU-Leistung.

Gerade bei einem RISC-Prozessor mit weniger hinterlegten Befehlsroutinen wie dem M1 bieten sich große Caches aber an, um die Ausführungseinheiten ständig zu füttern. Zwar kann ARM-Code (RISC) bei einfachen Algorithmen wie kleinen Schleifen sehr viel kompakter sein als Intel-Code (CISC), bei komplexen Aufgaben verkehrt sich der Vorteil des reduzierten Befehlssatzes aber ins Gegenteil: Die Programme nehmen im Speicher oft recht viel Platz ein.

Dass Apple im M1 im Unterschied zum A14 die Caches so groß macht, liegt an deren Stromhunger, wenn dauernd gelesen und geschrieben wird. Das Energiebudget fällt bei MacBook und Mac mini viel höher aus als bei einem iPhone oder iPad. Die großen Caches bieten zudem einen Vorteil bei der Emulation durch Rosetta 2, bei der x86-Programme in nativen ARM-Code übersetzt werden. Das geschieht weitgehend schon bei der Installation oder beim ersten Start der Programme. Apple weist aber in seinen Entwicklerunterlagen darauf hin, dass Teile des Codes zur Laufzeit übersetzt werden müssen – ganz wie ein Just-in-Time-Compiler (JIT). Für solche Umsetzungen, die fortlaufend arbeiten, nützen große Caches sehr viel.

Dazu kommt noch der von Apple nicht näher beschriebene System Level Cache. In bisherigen Designs würde man ihn als L3-Cache ansehen, die Benennung als SLC und seine Platzierung in der Mitte des Dies legen aber eine erweiterte Funktionsweise nahe: Er dient höchstwahrscheinlich als Direktverbindung zwischen allen Funktionseinheiten einschließlich der Neural Engine. Wenn beispielsweise ein Grafikelement von der CPU geändert wird, kann die GPU die neuen Daten zur Anzeige direkt aus dem SLC holen, ohne den viel langsameren Weg über das RAM zu gehen.

Ähnliche Mechanismen wurden früher schon, etwa beim Alpha-Prozessor von DEC, unter dem Namen Crossbar verwendet, erwiesen sich aber mit damaligen Fertigungstechniken nur als schlecht realisierbar und stromhungrig. Apple hat das offenbar erstmals richtig hinbekommen, denn einen reinen L3-Cache haben die eigenen A-SoCs nicht zu bieten.

Die ganzen Caches kann man sich in Cupertino nur leisten, weil der M1 im 5-Nanometer-Prozess bei TSMC hergestellt wird – einem der aktuell modernsten Verfahren zur Halbleiterfertigung. Insgesamt befinden sich auf dem Die, ohne Einberechnung der RAM-Chips, ganze 16 Milliarden Transistoren. Selbst Nvidias aktuelle Oberklasse-GPU, die GA104-300 für die RTX 3070, besitzt mit 17,4 Milliarden kaum mehr. Apple hat hier also schon bei seinem ersten ARM-SoC für Macs sehr großen Aufwand betrieben.

Apple spricht bei seinen selbst entwickelten GPUs wie bei den CPUs von Cores. Das ist jedoch in der Branche unüblich. Besser vergleichbar wäre eine Angabe von Execution Units (EUs) oder der Zahl der Shader/ALUs als einzelne Rechenwerke. Immerhin existieren konkrete Angaben zur Zahl der Cores, die sich auf acht gegenüber den vieren des A14 verdoppelt hat. Die theoretische Rechenleistung gibt Apple mit 2,6 Teraflops an, was für eine der schnellsten integrierten GPUs in Mobilrechnern spricht. Unsere Benchmarks mit Spielen, selbst in der Rosetta-2-Emulation, belegen das.

Die GPUs des M1 von MacBook Pro und Mac mini sind identisch, bei der günstigeren der beiden MacBook-Air-Konfigurationen hat Apple nur sieben der physikalisch vorhandenen acht GPU-Cores aktiviert, was die Leistungsaufnahme und damit die Wärmeentwicklung in dem lüfterlosen System etwas reduziert.

Bei einem SoC mit integrierter Grafik hängt die Leistung stark vom RAM ab – und auch hier wurde geklotzt, nicht gekleckert: Die LPDDR4X-Chips von Hynix sind über acht Speicherkanäle auf dem M1-Die angebunden und arbeiten mit effektiv 4266 MHz. So hohe Takte sind abseits von gesteckten und sehr teuren Übertakter-Modulen nur mit extrem kurzen Anbindungen zu haben, wohl auch darum sitzen sie auf dem M1-Package. Die theoretische Bandbreite der Bausteine erreichen sie laut synthetischen Tests von Anandtech auch beinahe: Gelesen wird mit fast 60 GByte pro Sekunde, geschrieben mit bis zu 36 GByte/s. Kopien innerhalb des Speichers erfolgen mit bis zu 62 GByte/s. Solche Werte bieten vergleichbare x86-Chips wie AMDs Ryzen 4000 oder Intels Tiger Lake bisher nicht. Wie schon bei den Caches war hohe Bandbreite also Apples Designziel.

Das Unternehmen stellt für den M1 auch das Unified Memory heraus, ein gemeinsamer Speicher für CPU, GPU und alle Einheiten auf dem SoC. Das boten die Intel-Chips mit integrierter Grafik auch schon in ähnlicher Form, allein die wahrscheinliche Funktionsweise des SLC könnte hier etwas Neues bringen – das ist jedoch bisher noch nicht erforscht.

Möglicherweise hat Apple auch durch den System Level Cache einen gewissen Grad der Kohärenz des RAM – nicht nur der Caches – für verschiedene Speicherbereiche erzielt. Sichtbar werden solche Vorteile aber erst durch genau dafür optimierte Software. An der mangelt es noch, da ja auch das Entwicklerkit im Mac-mini-Gehäuse nur mit dem A12Z bestückt war, der diese Funktionen nicht bietet.

Das gilt auch für die in jedem M1 vorhandene Neural Engine aus 16 Kernen, die das Inferencing bei maschinellem Lernen alias KI beschleunigen soll. Bisher konnte man allenfalls die GPU für solche Aufgaben heranziehen, was aber bei vielen Anwendungen um Größenordnungen langsamer ist.