agsandrew - stock.adobe.com
Warum Memory Tagging für Rechenzentren wichtig ist
CPUs sind ein wichtiger Bestandteil in Rechenzentren und sollen hohe Leistung bieten. Allerdings haben sie auch eine Schwachstelle, die mit Memory Tagging adressiert werden kann.
Die steigende Komplexität moderner Softwareanwendungen bringt auch höhere Anforderungen an die Speicherverwaltung mit sich. Fehler wie Pufferüberläufe (Buffer Overflow), Use-after-Free-Bugs oder fehlerhafte Pointer-Zuweisungen können kritische Sicherheitslücken öffnen und die Systemstabilität gefährden. Memory Tagging gilt als ein vielversprechender Ansatz, um diese Probleme frühzeitig zu erkennen und die Sicherheit von Programmen auf Hardware-Ebene zu erhöhen.
Was ist Memory Tagging?
Memory Tagging bezeichnet eine Technik, bei der jeder Speicherblock eines Systems mit einem sogenannten Tag versehen wird. Dieser Tag ist ein kleiner Code, der sowohl im Speicher selbst als auch in den dazugehörigen Zeigern (Pointer) abgelegt wird. Beim Zugriff auf den Speicher überprüft die Hardware, ob der Tag des Pointers mit dem Tag des Speicherblocks übereinstimmt. Stimmen die Tags nicht überein, erkennt das System einen potenziellen Speicherfehler, wie etwa einen Zugriff auf bereits freigegebenen Speicher oder einen Out-of-Bounds-Zugriff.
Laut Jeff Wittich, Chief Product Officer bei Ampere, ist Memory Tagging nicht neu, aber sehr effektiv, weil es hardwarebasiert ist und Entwickler es leicht nutzen können. Während ältere Sparc-Prozessoren die Technik unterstützten, war sie in Standardserver-CPUs wie Xeon oder AMD EPYC über die letzten Jahrzehnte kaum verbreitet. Heute gewinnt die Methode wieder an Bedeutung, vor allem für KI-Workloads, die probabilistisch arbeiten und bei denen Speicherfehler besonders schwer zu erkennen sind.
Beispiel für die Umsetzung von Memory Tagging
Prozessorhersteller Ampere hat Memory Tagging in seinen Ampere One Prozessoren implementiert, nicht jedoch in der älteren Ampere Ultra-Serie. „Alle Ampere One Prozessoren unterstützen Memory Tagging, und es kann im Compiler und im Betriebssystem aktiviert werden“, erklärt Jeff Wittich. Die ISA-Instruktionen sind bereits in den Linux-Kernel integriert, sodass Entwickler die Funktion ohne tiefergehende Anpassungen nutzen können. Standardmäßig ist sie jedoch deaktiviert, um zu verhindern, dass bestehender fehlerhafter Code massenhaft Fehlermeldungen erzeugt. Ampere empfiehlt, Memory Tagging zunächst in einer Debug-Umgebung zu aktivieren, Fehler zu beheben und die Funktion dann im produktiven Betrieb zu nutzen.
Die Implementierung reduziert den Performance-Overhead auf typischerweise einstellige Prozentwerte. Gleichzeitig wurde der Speicherverbrauch der Ampere-Produkte effizient gestaltet, sodass KI-Workloads mit großen KV-Caches und umfangreichen Modellparametern nicht eingeschränkt werden. Wittich hebt hervor, dass Memory Tagging für KI-Anwendungen besonders relevant ist: „Memory Safety ist in AI-Workloads möglicherweise noch wichtiger, weil fehlerhafte Speicherzugriffe schwer zu erkennen sind und zu besonders schwerwiegenden Fehlern führen können.“
Auch andere Hersteller arbeiten inzwischen mit Memory Tagging, insbesondere dort, wo ARMv8.5-A oder ARMv9 implementiert sind – denn beide Architekturen enthalten die ARM Memory Tagging Extension (MTE).
Einige Beispiele aus dem Markt sind im Folgenden aufgeführt.
Qualcomm unterstützt MTE in mehreren aktuellen Smartphone- und Embedded-Plattformen, die auf ARMv9-Kernen basieren. Dazu gehören unter anderem Snapdragon-SoCs wie der Snapdragon 8 Gen 1 und neuere Generationen, die Cortex-X2, Cortex-A710 oder Cortex-A510 einsetzen – allesamt CPU-Kerne, die ARM MTE hardwareseitig bereitstellen. Damit zählt Qualcomm zu den großen SoC-Anbietern, die MTE im Massenmarkt verfügbar gemacht haben.
MediaTek bietet MTE-Unterstützung in High-End-Plattformen wie dem Dimensity 9000, 9000+ und darauffolgenden Generationen. Auch diese SoCs basieren auf ARMv9-CPU-Kernen und können somit die Memory Tagging Extension nutzen. Diese Implementierungen sind vor allem im Android-Ökosystem bedeutsam, wo MTE bereits in AOSP integriert ist und von Google für Sicherheitsprüfungen genutzt wird.
ARM Neoverse-Designs wie Neoverse N2 und Neoverse V2 implementieren ebenfalls ARMv9 und damit MTE. Diese Kerndesigns bilden die Grundlage für verschiedene neue Server-CPUs im ARM-Ökosystem. Auch wenn derzeit noch nicht alle am Markt verfügbaren Rechenzentrums-CPUs die entsprechenden Kerne nutzen, lässt sich absehen, dass kommende Generationen von Neoverse-basierten Serverprozessoren MTE unterstützen werden. Damit zeichnet sich ab, dass Memory Tagging langfristig auch jenseits einzelner Anbieter zum Standard in ARM-Serverarchitekturen wird.
Während Ampere derzeit zu den wenigen Herstellern zählt, die Memory Tagging bereits in produktiven Rechenzentrums-CPUs anbieten, existiert im Mobil- und Embedded-Segment bereits ein breiteres Ökosystem an MTE-fähiger Hardware. Mit der Verfügbarkeit der Neoverse-Plattformen auf ARMv9 werden wahrscheinlich in den kommenden Servergenerationen weitere Anbieter folgen.
Funktionsweise des Memory Tagging
Memory Tagging arbeitet mit einem speziellen Speicherlayout und Tag-Management in der CPU. Jedem Speicherblock von wenigen Bytes wird ein Tag zugewiesen, der gleiche Tag wird im Pointer gespeichert. Bei Speicherzugriffen überprüft die Hardware automatisch die Übereinstimmung der Tags. So können Use-after-Free-Bugs und Speicherüberläufe erkannt werden. Memory Tagging kann sowohl in der Entwicklung als auch im produktiven Betrieb eingesetzt werden, wenn die Implementierung effizient genug ist, um den Overhead gering zu halten.
Ampere-Experte Wittich betont, dass eine gute Implementierung entscheidend ist: „Die Komplexität liegt darin, Memory Tagging so einzubauen, dass der Overhead minimal ist und es in Produktionsumgebungen eingesetzt werden kann, nicht nur in Debug-Umgebungen.“
Vorteile von Memory Tagging
Die Vorteile liegen in erhöhter Sicherheit, frühzeitiger Fehlererkennung und niedrigem Performance-Overhead. Entwickler können Zugriffe auf invaliden Speicher sofort erkennen und korrigieren. Besonders KI-Workloads profitieren, da probabilistische Berechnungen und große Modelle Memory-Sicherheitsprobleme schwer sichtbar machen.
Ampere weist zudem auf die Skalierbarkeit hin: Effiziente, hochskalierende Prozessoren wie die Ampere One lassen sich nicht nur in Rechenzentren, sondern auch in Edge-Umgebungen einsetzen. „Ein Prozessor, der für extrem dichte Cloud-Server entwickelt wurde, skaliert auch in Edge-Systemen wie Hochleistungs-Routern sehr gut“, betont Wittich. „Diese Edge-Systeme haben oft bereits KI-Anwendungen integriert, die bedient werden müssen.“
Nachteile und Einschränkungen
Memory Tagging ist hardwareabhängig: Nur bestimmte CPUs unterstützen die Funktion, und sie muss im Compiler und Betriebssystem aktiviert werden. Ohne vorherige Prüfung können bestehende Softwarefehler massenhaft Fehlermeldungen erzeugen. Entwickler müssen sicherstellen, dass Compiler, Betriebssystem und Toolchains die Funktion korrekt unterstützen. Logische Programmierfehler werden nicht erkannt.
Für KI-Workloads ist zudem der Speicherverbrauch kritisch. Ampere hat die Implementierung in seinen Prozessoren so optimiert, dass keine signifikanten Kapazitäten für Tags reserviert werden müssen, was gerade in KI-Umgebungen entscheidend ist: „Wenn IT-Verantwortliche in einer KI-Umgebung 10 bis 15 Prozent des Speichers für Memory Tagging reservieren müssen, ist das kostenmäßig kaum tragbar“, sagt Jeff Wittich.
Warum eine Funktion aus der mobilen Welt auch im Rechenzentrum zählt
Dass Memory Tagging heute häufig mit Mobilgeräten assoziiert wird, liegt daran, dass die ARM Memory Tagging Extension (MTE) zunächst vor allem in der Smartphone‑Welt populär gemacht wurde, zum Beispiel von Google in Android. Laut ARM kann MTE zur Laufzeit Pointer und Speicherblöcke taggen („Lock and Key“-Mechanismus) und so Use‑after‑Free- oder Buffer‑Overflow-Fehler erkennen.
In Android‑Geräten existieren verschiedene Betriebsmodi: Ein synchroner Modus (SYNC) eignet sich für präzisere Fehlerberichte, ein asynchroner Modus (ASYNC) für den produktiven Betrieb mit geringerem Overhead.
Aber gerade diese ursprünglich mobilen Sicherheitsmechanismen sind auch für Rechenzentren hochrelevant. Erstens steigt in Cloud- und KI-Umgebungen der Druck auf Speicherqualität und Speichersicherheit, weil fehlerhafte Speicherzugriffe zu ernsthaften Sicherheitslücken führen können. Laut Google trägt MTE dazu bei, Still Data Corruption zu vermeiden – also stille Datenbeschädigungen, die schwer erkennbar sind.
Zweitens sind moderne Server‑ und KI-Workloads nicht mehr rein sequenziell oder deterministisch: Große Modelle, Key‑Value-Caches oder probabilistische Inferenzprozesse erzeugen massive Speicherbeanspruchung. In solchen Umgebungen ist Memory Safety besonders wichtig, da klassische Sicherheitslücken (etwa Pufferüberläufe) auch bei sehr hohen Datenmengen zu Ausfällen, Datenkorruption oder gar Angriffsflächen führen können.
Drittens war der historische Grund, warum Memory Tagging lange kaum in Rechenzentren eingesetzt wurde, technischer Natur: Frühere Implementierungen erzeugten zu viel Overhead – sei es in der Performance oder in der Speicherauslastung.
In heutigen Rechenzentrums‑CPUs, wie etwa bei Ampere, wird Memory Tagging heute so realisiert, dass diese Nachteile minimiert werden, sodass die Technologie produktionsreif ist. Eine Hardwaresicherheitstechnik, die ursprünglich für mobile Sicherheit entwickelt wurde, schützt nun auch Hochleistungs‑Cloud- und KI‑Infrastrukturen mit hohem Speicherbedarf.
Worauf IT-Entscheider achten sollten
IT-Entscheider sollten prüfen, welche Hardware ein Memory Tagging unterstützt, und die Funktion bewusst aktivieren. Ampere One Prozessoren sind vorbereitet, müssen aber konfiguriert werden. Tests in Debug-Umgebungen helfen, bestehende Fehler zu erkennen und zu beheben.
Darüber hinaus ist der Einsatzbereich entscheidend: KI-Workloads, große Datenbanken oder Java-Anwendungen profitieren besonders von Memory Tagging. Für Standardanwendungen kann der Aufwand zunächst höher erscheinen, der langfristige Nutzen in Systemsicherheit und Stabilität ist jedoch erheblich. Laut Jeff Wittich ist Memory Tagging in heutigen KI-Workloads besonders relevant, weil Speicherfehler schwer zu erkennen sind und neue Angriffsflächen eröffnen.
Auf einen Blick: Memory Tagging
Memory Tagging ist eine leistungsfähige Methode, Speicherfehler auf Hardware-Ebene zu erkennen und die Systemsicherheit zu erhöhen. Hersteller wie Ampere zeigen, dass die Funktion effizient umgesetzt werden kann, mit minimalem Performance-Overhead und effizientem Speicherverbrauch. Insbesondere in KI-Workloads, großen Datenbanken und Edge-Umgebungen bietet Memory Tagging erheblichen Mehrwert. Gleichzeitig erfordert der Einsatz ein genaues Verständnis der Hardware- und Softwareumgebung sowie sorgfältige Aktivierung und Tests, um die Vorteile voll auszuschöpfen.