Gedeelde geheugenarchitectuur: waarom computers steeds vaker hun geheugen delen
Stel je een kantoor voor waar elke medewerker een eigen archiefkast heeft. Wil collega A een document van collega B inzien, dan moet die eerst gekopieerd en doorgestuurd worden. Dat kost tijd en er ontstaan al snel verschillende versies van hetzelfde document. Een gedeelde geheugenarchitectuur werkt als één centrale archiefkast waar iedereen dezelfde mappen uit pakt: geen kopieën, geen verwarring over welke versie de juiste is, en iedereen werkt met dezelfde actuele informatie.
In de computertechniek betekent dit dat meerdere rekeneenheden — bijvoorbeeld verschillende processorkernen, complete processoren, of zelfs gespecialiseerde chips zoals grafische processoren (GPU's) — toegang hebben tot hetzelfde stuk werkgeheugen, in plaats van elk hun eigen afgeschermde geheugen te hebben. Dat klinkt technisch, maar de kern is simpel: minder kopiëren van data betekent minder vertraging en minder energieverbruik. Nu computers steeds meer gespecialiseerde chips combineren om bijvoorbeeld AI-taken uit te voeren, wordt het delen van geheugen tussen al die onderdelen een van de belangrijkste uitdagingen in de chipindustrie.
Wat is het precies?
Een computer heeft altijd twee dingen nodig: rekenkracht (de processor) en een plek om gegevens tijdelijk op te slaan terwijl er mee gerekend wordt (het werkgeheugen, ook wel RAM genoemd). In de eenvoudigste opzet heeft elke processor zijn eigen geheugen. Willen twee processoren samenwerken, dan moeten ze data expliciet naar elkaar doorsturen — vergelijkbaar met het versturen van een e-mail met bijlage.
Bij een gedeelde geheugenarchitectuur (in het Engels shared memory architecture) is dat niet nodig. Alle rekeneenheden zien hetzelfde geheugenadres en kunnen er rechtstreeks bij. Er bestaan grofweg twee varianten. Bij UMA (Uniform Memory Access) heeft elke processor evenveel snelle toegang tot het gedeelde geheugen; dit is de klassieke opzet in een gewone pc met meerdere processorkernen. Bij NUMA (Non-Uniform Memory Access) is het geheugen verdeeld over meerdere fysieke blokken, waarbij een processor sneller bij 'zijn eigen' blok kan dan bij een blok dat fysiek verder weg zit — vergelijkbaar met een boekenkast naast je bureau versus eentje aan de andere kant van het gebouw. Grote servers met meerdere processorchips gebruiken vrijwel altijd NUMA, omdat het onmogelijk is om alle chips even snel met elk geheugenblok te verbinden.
Een lastig technisch probleem hierbij heet cachecoherentie. Processoren houden vaak een klein, razendsnel kopietje van veelgebruikte data bij in een zogeheten cache, dicht bij de rekenkern. Als twee processoren allebei een kopie van hetzelfde stukje data in hun cache hebben en de één past die aan, moet de ander daarvan op de hoogte gebracht worden — anders rekent hij met verouderde informatie. Speciale protocollen (met namen als MESI) zorgen ervoor dat alle kopieën synchroon blijven. Hoe meer rekeneenheden geheugen delen, hoe ingewikkelder en duurder dit coherentiemechanisme wordt.
De laatste jaren is er een nieuwe laag bijgekomen: chips van verschillende fabrikanten — een processor van de ene leverancier, een AI-versneller van de andere — moeten ook geheugen kunnen delen, terwijl ze via losse kabels of connectoren met elkaar verbonden zijn in plaats van op dezelfde siliciumplak. Daarvoor zijn nieuwe verbindingsstandaarden ontwikkeld, waarover verderop meer.
Wat wil men ermee bereiken?
Het belangrijkste doel is efficiëntie. Wanneer data niet gekopieerd hoeft te worden tussen aparte geheugenpotjes, verdwijnt een groot deel van de vertraging (latency) en het energieverbruik dat daarmee gepaard gaat. Voor datacenters, waar energiekosten een groot deel van de exploitatiekosten vormen, is dat direct relevant.
Een tweede doel is beter gebruik van dure hardware. Werkgeheugen — vooral het snelle type dat naast AI-chips gebruikt wordt — is duur en wordt vaak niet volledig benut: de ene server heeft geheugen over, de andere komt tekort. Met gedeelde geheugenarchitecturen kan geheugen worden 'gepoold': in plaats van dat elke server een vast blok geheugen heeft dat hij niet mag delen, ontstaat een gemeenschappelijke voorraad waaruit servers naar behoefte kunnen putten. Dat vermindert verspilling en kan de aanschafkosten van een datacenter verlagen.
Ten derde speelt schaalbaarheid mee. Moderne AI-modellen zijn zo groot dat ze niet meer in het geheugen van één enkele chip passen. Door het geheugen van meerdere GPU's of AI-versnellers als één groot, gedeeld geheel te laten functioneren, kunnen grotere modellen getraind en gebruikt worden zonder dat programmeurs zelf ingewikkelde code moeten schrijven om data handmatig tussen chips te verplaatsen.
Voorbeelden uit de praktijk
Een van de bekendste recente ontwikkelingen is CXL (Compute Express Link), een open verbindingsstandaard die in 2019 werd gelanceerd door onder meer Intel, samen met partners als Alibaba, Cisco, Dell EMC, Facebook, Google, HPE, Huawei en Microsoft. CXL maakt het mogelijk dat processoren, geheugenmodules en versnellers van verschillende fabrikanten via een gedeeld, coherent geheugenmodel met elkaar praten, ook al zitten ze niet op dezelfde chip. In 2022 verscheen CXL 3.0, dat onder meer geheugenpooling tussen meerdere servers mogelijk maakt.
Nvidia gebruikt met zijn NVLink-technologie (sinds 2016 in ontwikkeling, met steeds nieuwere generaties) een vergelijkbaar principe om meerdere GPU's razendsnel geheugen te laten delen binnen AI-servers zoals de DGX- en HGX-systemen, essentieel voor het trainen van grote taalmodellen.
AMD's Infinity Fabric-technologie verbindt op vergelijkbare wijze de processorkernen, GPU's en geheugen in zijn Instinct-versnellers en Epyc-serverprocessoren.
Ook oudere supercomputertechniek illustreert het principe: SGI (later onderdeel van HPE) bouwde al in de jaren negentig systemen met de NUMAlink-verbinding, waarmee honderden processoren één enkel, gedeeld geheugenbeeld kregen — een voorloper van wat nu in datacenters gebeurt.
Tot slot werken geheugenfabrikanten als Samsung en SK Hynix aan zogeheten CXL-geheugenmodules: losse geheugenkaarten die via CXL aan servers gekoppeld kunnen worden, zodat geheugencapaciteit net zo flexibel wordt als opslagcapaciteit nu al is.
Hoe ver is de techniek?
De basisprincipes van gedeeld geheugen binnen één chip of server (UMA, NUMA) zijn decennia oud en volledig volwassen; vrijwel elke moderne pc, laptop en server gebruikt ze al. De innovatie zit momenteel vooral in het delen van geheugen tussen losse chips en zelfs tussen losse servers.
CXL is de standaard om in de gaten te houden. CXL 1.0/1.1 (2019) richtte zich vooral op het koppelen van versnellers aan één processor; CXL 2.0 (2020) voegde geheugenpooling binnen één server toe; CXL 3.0/3.1 (2022-2023) maakt pooling over meerdere servers heen mogelijk via een schakel-achtige structuur. Eerste commerciële CXL-producten — met name geheugenuitbreidingskaarten — zijn sinds 2023 op de markt, maar grootschalige adoptie in datacenters staat nog in de kinderschoenen. Belangrijke obstakels zijn de extra vertraging die ontstaat wanneer geheugen niet direct naast de processor zit, de noodzaak om software en besturingssystemen aan te passen zodat ze slim omgaan met 'ver' versus 'dichtbij' geheugen, en de hoge kosten van de benodigde schakelhardware.
Op het niveau van AI-versnellers (NVLink, Infinity Fabric) is de techniek al operationeel in commerciële producten, maar fabrikanten blijven de bandbreedte en het aantal chips dat gelijktijdig geheugen kan delen vergroten; hier is vooral sprake van continue verbetering dan van een doorbraak die nog moet komen.
Wie werken eraan?
De ontwikkeling van CXL wordt gecoördineerd door het CXL Consortium, een samenwerkingsverband van chipfabrikanten (Intel, AMD, Arm, Nvidia), clouddienstverleners (Google, Microsoft, Meta, Alibaba) en hardwarebouwers (Dell, HPE, Cisco, Samsung, SK Hynix, Micron). Intel heeft van meet af aan een leidende rol gespeeld.
Nvidia en AMD ontwikkelen daarnaast hun eigen, deels concurrerende technologieën (NVLink respectievelijk Infinity Fabric) voor geheugendeling tussen hun eigen chips, vaak sneller dan wat open standaarden op dat moment bieden.
Geheugenfabrikanten als Samsung, SK Hynix en Micron (allen Zuid-Koreaans/Amerikaans) investeren in fysieke CXL-geheugenmodules. Op onderzoeksgebied dragen universiteiten en instituten met sterke computerarchitectuurgroepen bij, waaronder in de Verenigde Staten (onder meer via publicaties in IEEE- en ACM-verband) en in Zuid-Korea, dat vanwege zijn geheugenindustrie een grote rol speelt in CXL-onderzoek. Ook Chinese techbedrijven als Alibaba en Huawei zijn actief lid van het CXL Consortium.