Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Minimikraven för maskinvara för .NET 11 har uppdaterats för att kräva modernare instruktionsuppsättningar för både x86/x64- och Arm64-arkitekturer. Dessutom har kompileringsmålen för ReadyToRun (R2R) uppdaterats för att dra nytta av nyare maskinvarufunktioner.
Arm64
För Apple sker ingen ändring av minimimaskinvaran ReadyToRun eller målet. Chipsen Apple M1 är ungefär likvärdiga armv8.5-a med och ger därför stöd för åtminstone AdvSimd (NEON), CRC, DOTPROD, LSE, RCPC, RCPC2och RDMA instruktionsuppsättningar.
För Linux sker ingen ändring av den minsta maskinvaran. .NET fortsätter att stödja enheter som Raspberry Pi som kanske endast stöder instruktionsuppsättningen AdvSimd . Målet ReadyToRun har uppdaterats för att inkludera instruktionsuppsättningen LSE, vilket kan leda till ytterligare jittingkostnader om du startar ett program.
För Windows uppdateras baslinjen för att kräva instruktionsuppsättningen LSE . Detta krävs av Windows 11 och av alla Arm64-processorer som officiellt stöds av Windows 10. Dessutom är den i linje med Arm SBSA (Server Base System Architecture) kraven. Målet ReadyToRun har uppdaterats till armv8.2-a + RCPC (detta ger stöd för minst AdvSimd, CRC, LSE, RCPC, och RDMA), vilket täcker majoriteten av maskinvaran som stöds officiellt.
| OS | Föregående JIT/AOT minimum | Ny JIT/AOT minimum | Föregående R2R-mål | Nytt R2R-mål |
|---|---|---|---|---|
| Äpple | Apple M1 | (Ingen ändring) | Apple M1 | (Ingen ändring) |
| Linux | armv8.0-a | (Ingen ändring) | armv8.0-a | armv8.0-a + LSE |
| Windows | armv8.0-a | armv8.0-a + LSE | armv8.0-a | armv8.2-a + RCPC |
x86/x64
För alla tre operativsystemen (Apple, Linux och Windows) uppdateras baslinjen från x86-64-v1 till x86-64-v2. Detta ändrar maskinvaran från att endast garantera CMOV, CX8, SSE och SSE2 till att även garantera CX16, POPCNT, SSE3, SSSE3, SSE4.1 och SSE4.2. Den här garantin krävs av Windows 11 och av alla x86/x64-processorer som stöds officiellt i Windows 10. Den innehåller alla chips som fortfarande stöds officiellt av Intel/AMD, där de sista äldre chipsen har gått ur support runt 2013.
Målet ReadyToRun har uppdaterats till x86-64-v3 för Windows och Linux, medan det förblir oförändrat för Apple, vilket dessutom innehåller instruktionsuppsättningarna AVX, AVX2, BMI1, BMI2, F16C, FMALZCNToch MOVBE .
| OS | Föregående minimum för JIT/AOT | Ny JIT/AOT minimum | Föregående R2R-mål | Nytt R2R-mål |
|---|---|---|---|---|
| Äpple | x86-64-v1 | x86-64-v2 | x86-64-v2 | (Ingen ändring) |
| 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 |
Version lanserad
.NET 11 Förhandsversion 1
Tidigare beteende
Som standard har .NET startats och körts på äldre maskinvara. Enskilda program kan ha valt högre baslinjer eller uttryckligen använt maskinvaruinbyggda objekt som höjde baslinjen för deras scenario.
Nytt beteende
Från och med .NET 11 kan .NET inte köras på äldre maskinvara och kan skriva ut ett meddelande som liknar följande. (I vissa scenarier kan ett mer beskrivande meddelande tillhandahållas som visar de konkreta maskinvarukraven för ett visst operativsystem och en viss arkitektur.)
Den aktuella processorn saknar en eller flera av baslinjeinstruktionsuppsättningarna.
För ReadyToRun-kompatibla sammansättningar kan det finnas ytterligare startkostnader för viss maskinvara som stöds och som inte uppfyller det förväntade stödet för en typisk enhet.
Typ av brytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändring
.NET har stöd för ett brett utbud av maskinvara, ofta utöver de minimikrav på maskinvara som det underliggande operativsystemet (OS) ställer. .NET har också inbyggt stöd för att dra nytta av den maskinvara som det aktivt körs på för JIT-scenarier. Det här stödet lägger dock till betydande komplexitet i kodbasen, särskilt för mycket äldre maskinvara som sannolikt inte fortfarande används. Dessutom definierar den en "minsta gemensamma nämnare" som AOT-mål måste vara standard för, vilket i vissa domänspecifika scenarier kan leda till lägre prestanda för program.
Uppdateringen av den minsta baslinjen gjordes för att minska underhållskomplexiteten för kodbasen och för att bättre anpassa till de dokumenterade (och ofta framtvingade) maskinvarukraven för det underliggande operativsystemet.
Rekommenderad åtgärd
Om du använder maskinvara som inte längre stöds kan du överväga att uppdatera. Sådan maskinvara saknar officiellt stöd och kanske inte startar på operativsystemversioner som stöds av .NET.
Berörda API:er
Den här ändringen påverkar hela .NET.