Compute Express Link
See artikkel ootab keeletoimetamist. (Mai 2026) |
|
Fail:ComputeExpressLingLogo.png Compute Express Link logo | |
| Loomise aasta | 2019 |
|---|---|
| Looja | Intel, Alibaba, Cisco, Dell, Facebook, Google, HP, Huawei, Microsoft |
| Seadmete arv | 4096 |
| Stiil | jadasiin |
| Käigultvahetuse liides | jah |
| Väline liides | jah |
Compute Express Link (CXL) on avatud standardiga kiire ühendusprotokollide komplekt, mis ühendab protsessorit väilste kiirendite, mälupuhvrite, võrguliideste ja SSD-dega.[1] Mälusemantikat rakendades võimaldab CXL kasutada serial PCI Express (PCIe) liidest palju madalama viivisega, ohverdamata terve süsteemi skaleeritavust ning ühenduste koherentsusst. [2] CXL toega protsessorid on võimelised vastavalt vajadusele vahetama PCIe protokolli ja CXL protokollide vahel. [3] CXL koosneb kolmest protokollist: CXL.io, mis põhineb PCIe-l ja vastutab CXL võimekuse tagamise eest, CXL.cache, mis salvestab andmed süsteemi mällu ning CXL.mem, mis võimaldab protsessoril ja välistel seadmetel näha süsteemi mälu seadme enda mäluna. [1]
Arhitektuur
[muuda | muuda lähteteksti]Üldine ülesehitus
[muuda | muuda lähteteksti]CXL süsteem koosneb host-protsessorist, CXL-toega seadmetest ja PCIe standardil ühendusliidesest. Protsessor toimib terve süsteemi keskse juhina kontrollides väliseid seadmeid läbi CXL liidese. CXL võimaldab protsessoril juurde pääseda seadmete sisemisele mälule ning seadmetel pääseda juurde protsessori põhimälule. See moodustab koherentse mäluruumi, kus kõik seadmed saavad kasutada kõiki andmeid vähese latentsiga. [1]
Alamprotokollid
[muuda | muuda lähteteksti]CXL kasutab kolme alamprotokolli: CXL.io, CXL.cache ja CXL.mem. Need kõik töötavad sama füüsilise ühenduse peal samade seadmete vahel, kuid täidavad erinevaid ülesanded. Protokollid on iga ühenduse peal dünaamiliselt multipleksitud ehk iga ühendatud seade saab vastavalt vajadusele kasutada igat ühte kolmest protokollist. [4]
CXL.io sarnaneb väga PCIe 5.0 liidesega, millel see põhineb, kuid sellele on lisatud võimekus initsialiseerida uusi CXL ühendusi, avastada uusi seadmeid, seadistada CXL seadmeid, pääseda juurde ühendatud seadmete põhimälule, kutsuda esile katkestusi jms. CXL.io tagab mittekoherentse loe-salvesta liidese sisend/väljund seadmetele ning tagab eeldused CXL.cache ning CXL.mem seadistamiseks. [1][4] [5]
CXL.cache määrab ühendused host-protsessori ja välise seadme vahel, tagades seadmele juurdepääsu protsessori mälule tekitades koherentse süsteemi. Suhtlus toimib üle kolme kahesuunalise kanali: Request, Response ja Data. Suhtlust kontrollib peamiselt väline seade saates host-protsessorile päringuid andmete kohta (D2H Request, Device-To-Host), mille protsessor täidab. Protsessorilt saadab päringuid vaid andmete koherentsuse hoidmiseks (H2D Request, Host-To-Device). [1][4][5]

CXL.mem tagab host-protsessorile juurdepääsu välise seadme mälule, toetab nii muut- kui püsimäluga seadmeid. CXL.mem kasutab kuute ühesuunalist kanalit, kolm protsessorilt mällu ning kolm mälust protsessorisse, kuid välises seadmel võib P2P võimaldamiseks olla veel kuus kanalit lisaks. CXL.mem võimaldab kolme erinevat koherentsusmudelit HDM (Host-managed Device Memory) aadressiväljas:
- HDM-H (Host-only Coherent)
- HDM-D (Device Coherent)
- HDM-DB (Device Coherent using Back-Invalidate)
Andmevahetused jagatakse kaheks: Master-to-Subordinate (M2S) ja Subordinate-to-Master (S2M).
M2S vahetustes on kolm sõnumitüüpi:
- Req - Request without data
- RwD - Request with Data
- BIRsp - Back-Invalidate Response
S2M vahetuses on samuti kolm sõnumitüüpi:

Versioonid ja areng
[muuda | muuda lähteteksti]CXL 1.x
[muuda | muuda lähteteksti]Compute Express Link Consortium avaldas esimese CXL-i versiooni aastal 2019, versioon põhines PCIe 5.0 liidesel ning võimaldas koherentsete protokollide abil host-protsessoril juurde pääseda väliste seadmete vahemälule. [6] Kohe algusest peale võeti kasutusele kõik kolm alamprotokolli: CXL.io, CXL.cache ja CXL.mem. Versioon 1.0 toetas ainult Type 2 ühendusi, aga hilisem 1.1 versioon lisas ka toe Type 3 ja Type 1 ühendustele. Kuna CXL 1.x kasutab PCIe 5.0 füüsilist kihti on andmeedastuskiirused piiratud 32 GT/s, mõlemas suunas. [1][7]
CXL 2.0
[muuda | muuda lähteteksti]2020. Aasta novembris tuldi välja CXL 2.0 versiooniga. Olulisim täiendus oli kommuteerimine (switching), mis tekitas toe memory poolingule. Memory pool võimaldas kuni 16 protsessoril oma väliste seadmetega olla korraga ühte mäluvälja ühendatud. Memory poolingu eelduseks olid protsessorid, millel oli CXL 2.0 tugi, välistel seadmetel võis ka olla kuni 1.0 tugi, kuna versioon on tagasiühilduv. Igale hostile määratakse eraldiseisev mäluruum ja väliseid CXL 2.0 toega seadmeid võis jagada mitmeks väiksemaks loogiliseks seadmeks, et muuta nenga suhtlemine efektiivsemaks. Lisaks lisandus ka kuumühenduse tugi, võimekus töötada samaaegselt DDR seadmetega ning võimekus töötada persistent memory seadmetega. Kiirused jäid samaks, 32 GT/s mõlemas suunas.[1][7]
CXL 3.x
[muuda | muuda lähteteksti]2022. Aasta augustis avladati CXL 3.0. See põhineb uuemal PCIe 6.0 füüsilisel kihil, mis tõstis andmeedastuskiiruseid 64 GT/s kasutades PAM-4 kodeeringut. Lisati tugi kangapõhisele kommuteerimisele (switch-based fabric) mis kasutab mitmeid omavahel võrgus ühendatud kommutaatoreid et suurendada kogu süsteemi andmeedastusvõimekust, luues kommutaatoritest suuremahulise (mitmed sajad hostid) mittelineaarse koherentse võrgustiku. Samuti toetab CXL 3.0 otsest seadmetevahelist suhtlust (Peer-to-peer, P2P), ehk seadmed võivad üksteisega suhelda ilma protsessori vahenduseta. Kõik CXL 3.x seadmed on tagasiühilduvad vanemate seadmetega. CXL 3.1 standard avaldati 2023 novembris ning lisas täiendusi peamiselt halduse ja turvalisuse osas. Suurendati kontrolli mäluseadmete loetavuse, saadavuse ja hooldatavuse (Reliability, Availability and Serviceability, RAS) osas. Turvalisuse suurendamiseks võeti kasutusele TSP (Trusted Security Protocol), mis toetas konfidentsiaalsete arvutusülesannete täitmist. Lisaks suurendati seadmetõrgete nähtavust paremate veateadete kaudu ning suurendati administratiivsete metaandmete hulka andmeliinidel. CXL 3.2 standard avaldati 2024 detsembris. Standard optimeerib mäluhaldust ning üldiselt kogu süsteemi turvalisust.[1][7][8][9]
CXL 4.0
[muuda | muuda lähteteksti]2025 novembris tuli välja CXL 4.0. Standard ehitati PCIe 7.0 füüsilisele kihile, mis tõstis andmeedastuskiirused 128 GT/s säilitades eelnevate versioonide madala latentsi ja täieliku tagasiühilduvuse. Uue võimekusena lisandus bundled ports tugi, mis võimaldab ühendada mitu välist seadet üheks loogiliseks seadmeks, suurendades nendevahelist andmeedastuskiirust. Parandati ka mäluseadmete RAS võimekust tehes tõrked nähtavamaks, muutes hooldus efektiivsemaks ning suurendades süsteemi töökindlust.[1][7][10]
Seadmetüübid
[muuda | muuda lähteteksti]
CXL-seadmed jagunevad kolmeks põhiklassiks, mis kirjeldavad hosti ja seadme vahelist koherentsusmudelit.
Type 1
[muuda | muuda lähteteksti]Type 1 seadmed (CXL.io ja CXL.cache) on kiirendid (NIC-kaardid, krüptograafilised kiirendid), mille puudub kohalik mälu, millele host otseselt juurde pääseks. Need seadmed ei paku CXL.mem võimekust.[1][11][2]
Type 2
[muuda | muuda lähteteksti]
Type 2 seadmed (CXL.io, CXL.cacke, CXL.mem) omavad lisaks täielikult koherentsele vahemälule ka muutmälu (DDR, HMB, jne.) näiteks GPU-d vüi FPGA-d. Selliste seadmete puhul on oluline, et host saaks kiirelt sööta ja lugeda andmeid seadmega ühendatud muutmällu või mälust, kuna need sedamed on kiired just tänu ülikiirele ühendusele mälu ja seadme vahel. Kuna kasutuses on kõik kolm protokolli on Type 2 seadmel ja hostil võimalik vastastikuselt andmeid vahetada, mis suurendab andmevahetuse efektiivsust ja vähendab latentsi, mis esineks traditsioonilise PCIe protokolli kasutaval seadmel.[1][11][2]
Type 3
[muuda | muuda lähteteksti]Type 3 seadmed (CXL.io ja CXL.mem) on mälulaiendid (memory expander), mis pakuvad süsteemile täiendavat mälu, ilma vajaduseta keerulise arvutusloogika jaoks. Seade teeb oma sisemise DRAM või NVS mälu hostile kättesaadavaks väga madala latentsiga.[1][11][2]

Kasutusvaldkonnad
[muuda | muuda lähteteksti]CXL leiab laialdast kasutust valdkondades, kus on tegu suurte andmehulkade ja suurte töötlemiskiirustega ning on oluline, et ühendused oleksid madala latentsiga ning süsteem paindliku mälukasutusega. Sellisteks on näiteks andmekeskused, tehisintellekt, masinõpe ja pilvandmetöötlus. Seni on CXL püsinud pigem eemal PC tüüpi arvutitest, CXL-i boonused PCIe ees on tavaarvutis märkamatud, ning CXL-i toe saavutamiseks tuleb soetada väga kallist riistvara. Üks näide tavakasutajale kättesaadavast CXL-toega seadmest on Gygabyte AI TOP CXL R5X4 laienduskaart, mis võimaldab osadel Intel Xeon ja AMD Threadripper süsteemil kasutada CXL-i.[12]
Andmekeskustes võimaldab CXL ressursse disagregeerida, eraldades mälu ja kiirendi füüsilisest serverist ning jagades neid dünaamiliselt mitme süsteemi vahel. Praktikas kasutatakse selleks CXL-põhiseid mälulaiendusseadmeid, näiteks Samsung[13] ja SK Hynix[14] CXL mälumoodulid, mis võimaldavad serverite DRAM-i mahtu laiendada ilma protsessorit või emaplaati muutmata. Lisaks kasutatakse CXL kontrollerlahendusi, näiteks Astera Labs seadmeid, mis võimaldavad memory pooling'ut ja ressursside jaotamist andmekeskuse tasandil.[15]
Tehisintellekti ja masinõppe rakendustes vähendab CXL andmete liigutamise vajadust protsessori ja kiirendite vahel, võimaldades koherentset mälukasutust[16]. NVIDIA GPU-põhistes süsteemides ja Intel Xeon platvormides võimaldab CXL jagatud mäluruumi kasutamist, mis parandab suurte mudelite treenimise tõhusust.[17][18] Samuti on AMD serveriprotsessorid osa CXL-toega platvormidest, mis toetavad kiirendite otsest juurdepääsu mälule. [19]
Pilvandmetöötluses toetab CXL ressursside paindlikku jaotamist, võimaldades mälu ja kiirendite dünaamilist ümberkonfigureerimist vastavalt töökoormisele.[20] Microsoft Azure kasutab CXL-põhiseid lahendusi suure mälumahuga virtuaalmasinates, et toetada andmemahukaid rakendusi ja tehisintellekti töökoormusi.[21]
Memory disaggregation and pooling
[muuda | muuda lähteteksti]Memory disaggregation on arhitektuur, mis eraldab seadme mälu seadme protsessorist. Need eraldatud mäluressursid kogutakse kokku üheks suureks mälualaks (memory pool) mida süsteemi erinevad komponendid saavad ühiselt kasutada. Selline süsteem on juba iseenesest kiirem ja efektiivsem standardsest süsteemist, kus iga seade haldab oma isiklikku mälu ning host-protsessor vahendab seadmete vahel andmeid. Sellisesse süsteemi on väga kerge sisse viia muudatusi, näiteks suurendada mälumahtu ühele serverile mingi teise, hetkel kasutamata, serveri arvelt.
Mälu disagregatsioon jagub üldiselt kaheks: loogiline ja füüsiline.
- Loogilise disagregatsiooni korral on standardsed eraldiseisvad serverid omavahel võrgustikku ühendatud, mis ühendab vastavalt serverite arvutusvõimekuse ja mälud omavahel.
- Füüsilise disagregatsiooni korral on mälu ja arvutuselemendid eraldi ning ei moodusta eraldiseisvaid süsteeme.
Leidub ka hübriidlahendusi, kus on ühendatud mitmed iseseisvad serverid ning veel lisaks ka arvutus ja mälumoodulid. Need ühendatakse läbi kangapõhiste kommutaatorite (fabric-based switching) ning tänu CXL-ile on võimelised samamoodi oma ressursse jagama.[22]
Võrdlus teiste tehnoloogiatega
[muuda | muuda lähteteksti]PCIe on laialdaselt kasutatav andmeedastusstandard, kuid see võimaldab ainult suhtlust protsessori ja välise seadme vahel. Kui väline seade vajab protsessorilt andmeid peab need protsessorilt seadmesse üle kopeerima. CXL muudab kogu andmevälja koherentseks, mis vähendab vajadust andmeid ringi liigutada. PCIe eeliseks on väga lai levik ning võrdlemisi odav hind, praktiliselt iga moodsam arvutiseade kasutab PCIe liidest ning PCIe on võrreldes CXL-iga lihtsam.[1] Ühendustehnoloogiad nagu NVIDIA NVLink ja AMD Infinity Fabric on sarnaselt CXL protokolliga väga suure jõudlusega arhitektuurid, kuid on ehitatud kitsamate ülesannete täitmiseks. NVLink on mõeldud eelkõige GPU-GPU ja GPU-CPU vahelisteks ühendusteks ning nõuab erilist liidest. Infinity Fabric seevastu on mõeldud just protsessorite ja SoC siseste ühenduste jaoks ühendades CPU tuumasid, mälu kontrollereid ja I/O mooduleid.[23][24]
Tarkvaratugi ja Operatsioonisüsteemid
[muuda | muuda lähteteksti]CXL-i efektiivne kasutamine eeldab lisaks riistvarale ka sobivat tarkvaratuge. Kaasaegsed operatsioonisüsteemid, näiteks Linuxi kernel, sisaldavad mehhanisme CXL-seadmete tuvastamiseks ja haldamiseks alates versioonist 5.12, kus lisati esmane tugi CXL 2.0 mäluseadmetele.[25]
Hilisemates versioonides (nt 6.x seeria) on tuge laiendatud, hõlmates mälupoolimist, seadmete haldust ning vigade käsitlemist.[26] Operatsioonisüsteem vastutab mäluhalduse eest, sealhulgas kohaliku ja kaugmälu eristamise ning optimaalse kasutamise eest, kasutades NUMA-laadseid mudeleid.
CXL-i puhul võib süsteemi füüsiline mälu koosneda mitmest allikast, näiteks protsessori lokaalsest DRAM-ist ja CXL kaudu ühendatud mäluseadmetest. Operatsioonisüsteem või rakenduskeskkond otsustab, millised andmed paigutatakse kiiremasse lokaalsesse mällu ja millised aeglasemasse, kuid mahukamasse kaugmällu.[1]
Turvalisus
[muuda | muuda lähteteksti]CXL-i kasutamine jagatud mälukeskkondades esitab olulisi turvalisuse nõudeid, kuna mitu hosti ja CXL-seadet võivad pääseda ligi samadele mäluresurssidele, spetsifikatsioon sisaldab mitmeid turvamehhanisme nagu IDE ja TSP.[1]
Üks põhilisi mehhanisme on Integrity and Data Encryption (IDE), mis rakendab AES-GCM krüptograafiat kogu CXL-liikluse kaitsmiseks. IDE töötab riistvaratasemel, lisades minimaalse latentsuse ning tagades andmete terviklikkuse ja konfidentsiaalsuse, takistades nende muutmist või pealtkuulamist.[1]
Hilisemates CXL-versioonides tutvustati ka Trusted Security Protocol (TSP), mis võimaldab seadmete autentimist, võtmehaldust ning konfidentsiaalset andmetöötlust. TSP on oluline eelkõige olukordades, kus erinevad organisatsioonid jagavad sama füüsilist infrastruktuuri.[1][27]
Need turvamehhanismid tagavad, et mälule pääsevad ligi ainult volitatud seadmed ning et andmete muutmine või pealtkuulamine ei ole võimalik. Omadused on suure tähtsusega pilve- ja andmekeskuste keskkondades, kus sama riistvara võib teenindada sadu või tuhandeid virtuaalseid töökoormusi.
Viited
[muuda | muuda lähteteksti]- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (13. august 2025). "Compute Express Link Specification". Compute Express Link (inglise). Vaadatud 3. mail 2026.
- 1 2 3 4 Sharma, Debendra Das; Blankenship, Robert; Berger Daniel. (8. juuli 2024)."An introduction to the Compute Express Link (CXL) Interconneect". ACM Digital Library (inglise). Vaadatud 3. mail 2026.
- ↑ Yu, Guo. (28. august 2025).An Overview Of CXL Mode Alternate Protocol Negotiation. Semiconductor Engineering (inglise). Vaadatud 3. mail 2026.
- 1 2 3 4 Knowlton, Scott. (23. september 2019). "Introduction to Compute Express Link (CXL): The CPU-To-Device Interconnect Breakthrough". Compute Express Link (inglise). Vaadatud 3. mail 2026.
- 1 2 3 Mota, Manuel. (22. juuli 2019). Introduction to the Compute Express Link Standard: A Comprehensive Overview. Synopsys (inglise). Vaadatud 3. mail 2026.
- ↑ Cutress, Ian. (11. märts 2019). CXL Specification 1.0 Released: New Industry High-Speed Interconnect From Intel. AnandTech (inglise). Vaadatud 3. mail 2026.
- 1 2 3 4 CXL-The Key to Memory Innovation and System Performance. Aewin (inglise). Vaadatud 3. mail 2026.
- ↑ Dr. Sharma, Debendra Das; Moore, Danny. (6. oktoober 2022). Introducing CXL 3.0: Enabling composable systems with expanded fabric capabilities. Compute Express Link (inglise). Vaadatud 3. mail 2026.
- ↑ Neustadter, Dana; Ruggles, Gary; Solomon, Richard. (1. juuli 2024). CXL 3.1: How Evolving CXL Standards are Pushing Interconnects to Even Higher Performance. Synopsys (inglise). Vaadatud 3. mail 2026.
- ↑ (4. detsember 2025). Introducing the CXL 4.0 Specification. Compute Express Link (inglise). Vaadatud 3. mail 2026.
- 1 2 3 The Linux Kernel Documentation. Linux Kernel Docs (inglise). Vaadatud 2. mail 2026.
- ↑ Gygabyte AI TOP CXL R5X4. Gygabyte (inglise). Vaadatud 3. mail 2026.
- ↑ Empowering scalable and shareable memory architecture with CXL. Samsung Semiconductor (inglise). Vaadatud 3. mail 2026.
- ↑ Lee, Kyungsoo. (26. jaanuar 2024). Improving Key-Value Cache Performance With Heterogeneous Memory Tiering: A Case Study of Compute-Express-Link-Based Memory Expansion. Skhynix (inglise). Vaadatud 3. mail 2026.
- ↑ Astera Labs Leo CXL Smart Memory Controllers. AsteraLabs (inglise). Vaadatud 3. mail 2026.
- ↑ Do, Vanessa. (9. aprill 2025). Boosting AI Performance with CXL. Compute Express Link (inglise). Vaadatud 3. mail 2026.
- ↑ Medhioub, Ahmed. (märts 2025). No Memory Left Behind: How CXL Unlocks the Full Potential of AI (Presented by Astera Labs). nvidia (inglise). Vaadatud 2. mail 2026.
- ↑ Sehgal, R.; Tanna, V.; Petrucci, V.; Godbole A. (11. detsember 2024). Optimizing System Memory Bandwidth with Micron CXL™ Memory Expansion Modules on Intel® Xeon® 6 Processors. Intel (inglise). Vaadatud 2. mail 2026.
- ↑ AMD EPYC™ Processors: Introducing the Next Generation of Server Processors. AMD (inglise). Vaadatud 3. mail 2026.
- ↑ (17. aprill 2026). How CXL Research at TUM is Reshaping the Future of Cloud Computing. Techical University of Munich (inglise). Vaadatud 3. mail 2026.
- ↑ Elyze-Ge_Hylander. (18. november 2025). Azure delivers the first cloud VM with Intel Xeon 6 and CXL memory - now in Private Preview. Microsoft (inglise). Vaadatud 3. mail 2026.
- ↑ Al Maruf, Hasan; Chowdhury, Mosharaf. (6. mai 2023). Memory Disaggregation: Advances and Open Challenges. Arxiv (inglise). Vaadatud 2. mail 2026.
- ↑ NVIDIA NVLink. nvidia (inglise). Vaadatud 3. mail 2026.
- ↑ Singh, Tanveer. (18. jaanuar 2025). What exactly is AMD's Infinity Fabric?. XDA developers (inglise). Vaadatud 3. mail 2026.
- ↑ (9. august 2021). Linux 5.12 release notes. Kernelnewbies (inglise). Vaadatud 2. mail 2026.
- ↑ Larabel, Michael. (29. juuli 2024). The Current State Of CXL Support On Linux. Phoronix (inglise). Vaadatud 3. mail 2026.
- ↑ Blankenship, Rob; Wagh, Mahesh. (veebruar 2024). Introducing the CXL 3.1 Specification. Compute Express Link (inglise). Vaadatud 2. mail 2026.