Delen via


Minimale hardwarevereisten bijgewerkt

De minimale hardwarevereisten voor .NET 11 zijn bijgewerkt om modernere instructiesets te vereisen voor zowel x86/x64- als Arm64-architecturen. Daarnaast zijn de ReadyToRun -compilatiedoelen (R2R) bijgewerkt om te profiteren van nieuwere hardwaremogelijkheden.

Arm64

Voor Apple is er geen wijziging in de minimale hardware of het ReadyToRun doel. De Apple M1 chips zijn ongeveer gelijk aan armv8.5-a en bieden dus ondersteuning voor ten minste de AdvSimd (NEON), CRC, DOTPRODLSE, , RCPC, , en RCPC2RDMAinstructiesets.

Voor Linux is er geen wijziging in de minimale hardware. .NET blijft ondersteuning bieden voor apparaten zoals Raspberry Pi die mogelijk alleen ondersteuning bieden voor de AdvSimd instructieset. Het ReadyToRun doel is bijgewerkt om de LSE instructieset op te nemen, wat kan leiden tot extra jitting-overhead als u een toepassing start.

Voor Windows wordt de basislijn bijgewerkt, waarbij de LSE instructieset wordt voorgeschreven. Dit is vereist voor Windows 11 en door alle Arm64 CPU's officieel ondersteund door Windows 10. Daarnaast is het in lijn met de Arm SBSA vereisten (Server Base System Architecture). Het ReadyToRun doel is bijgewerkt (armv8.2-a + RCPCdit biedt ondersteuning voor ten minste AdvSimd, CRCLSE, , RCPCen RDMA), die betrekking heeft op het merendeel van de hardware die officieel wordt ondersteund.

OS Vorige JIT/AOT-minimum Nieuwe minimum JIT/AOT Vorige R2R-doel Nieuw R2R-doel
Appel Apple M1 (Geen wijziging) Apple M1 (Geen wijziging)
Linux armv8.0-a (Geen wijziging) armv8.0-a armv8.0-a + LSE
Windows armv8.0-a armv8.0-a + LSE armv8.0-a armv8.2-a + RCPC

x86/x64

Voor alle drie de besturingssystemen (Apple, Linux en Windows) wordt de basislijn bijgewerkt van x86-64-v1 naar x86-64-v2. Hierdoor garandeert de hardware niet alleen CMOV, CX8, SSE, en SSE2, maar ook CX16, POPCNT, SSE3, SSSE3, SSE4.1, en SSE4.2. Deze garantie is vereist voor Windows 11 en door alle x86/x64 CPU's officieel ondersteund in Windows 10. Het omvat alle chips die nog steeds officieel worden ondersteund door Intel/AMD, met de laatste oudere chips die rond 2013 uit de ondersteuning zijn gegaan.

Het ReadyToRun doel is bijgewerkt naar x86-64-v3 voor Windows en Linux, terwijl het ongewijzigd blijft voor Apple, waaronder ook de AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT en MOVBE instructiesets.

OS Vorige JIT/AOT-minimum Nieuw JIT/AOT-minimum Vorige R2R-target Nieuw R2R-doel
Appel x86-64-v1 x86-64-v2 x86-64-v2 (Geen wijziging)
Linux x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3
Windows x86-64-v1 x86-64-v2 x86-64-v2 x86-64-v3

Geïntroduceerde versie

.NET 11 Preview 1

Vorig gedrag

.NET is standaard gestart en uitgevoerd op oudere hardware. Afzonderlijke toepassingen hebben zich mogelijk aangemeld voor hogere basislijnen of expliciet gebruikte hardwareintrinsieke kenmerken die de basislijn voor hun scenario hebben verhoogd.

Nieuw gedrag

Vanaf .NET 11 kan .NET niet worden uitgevoerd op oudere hardware en kan er een bericht worden afgedrukt dat er ongeveer als volgt uitziet. (In sommige scenario's kan een meer beschrijvend bericht worden opgegeven waarin de concrete hardwarevereisten voor een bepaald besturingssysteem en een bepaalde architectuur worden vermeld.)

De huidige CPU ontbreekt een of meer van de basislijninstructiesets.

Voor ReadyToRun-compatibele assemblages kan er extra opstartoverhead zijn bij sommige ondersteunde hardware die niet helemaal aan de verwachte ondersteuning voor een typisch apparaat voldoet.

Type van brekende verandering

Deze wijziging is een gedragswijziging.

Reden voor wijziging

.NET ondersteunt een breed scala aan hardware, vaak boven en buiten de minimale hardwarevereisten die worden ingevoerd door het onderliggende besturingssysteem (OS). .NET biedt ook ingebouwde ondersteuning voor het profiteren van de hardware waarop deze actief wordt uitgevoerd voor JIT-scenario's. Deze ondersteuning voegt echter een aanzienlijke complexiteit toe aan de codebasis, met name voor veel oudere hardware die waarschijnlijk niet meer in gebruik is. Daarnaast definieert het een 'laagste algemene noemer' die AOT-doelen standaard moeten gebruiken, wat in sommige domeinspecifieke scenario's kan leiden tot verminderde prestaties voor toepassingen.

De update naar de minimale basislijn is gemaakt om de onderhoudscomplexiteit van de codebasis te verminderen en om beter af te stemmen op de gedocumenteerde (en vaak afgedwongen) hardwarevereisten van het onderliggende besturingssysteem.

Als u hardware gebruikt die niet meer wordt ondersteund, kunt u overwegen bij te werken. Dergelijke hardware wordt officieel niet ondersteund en kan niet worden opgestart op besturingssysteemversies die worden ondersteund door .NET.

Betreffende API's

Deze wijziging is van invloed op alle .NET-bestanden.

Zie ook