Breker Attacks System Coherency Verification

Kildeknude: 1598466

Det fantastiske ved arkitektoniske løsninger til at øge gennemløbet er, at de tilbyder store forbedringer. Flere CPU'er på en chip med (delvist) delte cachehierarkier er nu almindelige i serverprocessorer af denne grund. Men den store gevinst kommer med betydelig ekstra kompleksitet i at verificere korrekt adfærd. I en delt hukommelsesmodel vises værdien, der er lagret i en logisk hukommelsesadresse, ikke kun i hovedhukommelsen (DRAM), men også potentielt i flere on-chip caches og endda muligvis i buffere i kohærensstrukturen. Hvilket rejser et konsistensproblem – for en given logisk hukommelsesadresse bør disse alle indeholde den samme værdi under alle omstændigheder, men gør de det? Breker angriber dette sammenhængsverifikationsproblem gennem deres testsynteseteknologi og ser på fuld systemkohærens i heterogene systemer.

Breker Attacks System Coherency Verification

Udfordringerne i sammenhæng

Den logiske hukommelsesvisning kan blive inkonsekvent, når to eller flere processorer arbejder med deres egen lokale kopi af en værdi på en delt adresse, og den ene opdaterer dens lokale værdi, ukendt for den anden. Kaos opstår, da CPU'er hver arbejder med deres eget syn på virkeligheden. Selve det sammenhængende stof har struktur, der understøtter data under flyvningen, såsom tilbageskrivningsbuffere. Sammenhængsverifikation skal også omhandle disse. Og så kan periferiudstyr selvfølgelig skrive direkte til hovedhukommelsen gennem DMA, ukendt for interne caches.

Det er klart, at en eller anden mekanisme er nødvendig for at holde delte værdier synkroniseret, når det er nødvendigt. Men det skal være lethændet. Synkronisering kommer med en latensstraf, som kan reducere ydeevnefordelen ved caching betydeligt, medmindre den kun bruges, når det er absolut nødvendigt. Latensproblemet forværres yderligere, når du overvejer multi-socket-processorkort med delt hukommelse forbundet via CXL. Tilføjelse af mere kompleksitet til løsninger.

Smarte teknikker bruges til at udspionere cacheindhold og ændringer for at afgøre, hvornår en synkroniseringsopdatering er nødvendig. Disse omfatter snooping og biblioteksbaserede sammenhængssystemer, som mærker cache-adresser (mere præcist cache-linjer) som værende rene (sammenhængende) eller ugyldige med en række justeringer. Disse metoder skal gå en fin linje mellem at minimere nettoeffekten af ​​ydeevnen og samtidig sikre, at der ikke kan undslippes. Undslipper at være mulige tilfælde, hvor en ikke-sammenhængende tilstand kan overleve.

Breker System Coherency TrekApp

For at kontrollere, at designet ikke krydser den fine linje, skal verifikationsingeniører uafhængigt konstruere test, som de mener vil dække alle mulige tilfælde. Cache-, stof- og IO-sammenhæng på tværs af alle kontrolvariationer (strøm, interrupt, clocking osv.), som designet kan cykle igennem. Det er her, Breker Trek System Coherency-appen kommer ind.

Adnan Hamid, grundlægger af Breker, startede for mange år siden i sammenhængsverifikation hos AMD. De ideer, han udviklede der omkring cachekohærensverifikation og systemverifikationsmetoder generelt, indbyggede han i Breker. Kohærensløsningen blev over tid udvidet til også at omfatte stof- og IO-kohærens og interaktion med power switching osv. Efter at have bevist denne evne hos et par ledende kunder, annoncerede Breker produktet ved den nylige DAC 2021 i San Francisco.

Adnan giver en indsigt: For at vide, hvordan man opnår meningsfuld sammenhængsverifikation, skal du først vide, hvordan man måler dækning. Som med ethvert dækningsmål på systemniveau er RTL-dækningsmålinger ikke nyttige. Mere nyttig er dækning først af coherency manager-tilstandsmaskinen pr. cache, med varianter i cacheværdier og adresseskridt, derefter en lignende dækning for cross-cache-interaktioner, derefter dækning på tværs af et syntetisk sæt softwarebaserede torturtest, krydset med kraft og andre overgange, der kører på en emulator. System Coherency TrekApp understøtter alt dette.

Hvad med flugt?

Tal med alle, der arbejder med sammenhængende designs, og de vil alle fortælle dig, at de finder sammenhængsproblemer efter silicium. At komme tæt på den fine linje uden at krydse den er virkelig ret svært. Når alt kommer til alt, prøver du i præ-siliciumverifikation at modellere et stort tilstandsrum med til sammenligning et lille sæt tests, selvom du kører titusindvis af tests. I betragtning af at udtømmende test ikke engang er muligt, er tricket at finde det bedste praktiske sæt af tests at køre. Da dette uundgåeligt vil være ufuldstændigt, strækker System Coherency TrekApp sig selv til post-silicium og hjælper med at diagnosticere siliciumfejl. Måske en magtovergang midt i synkroniseringen. Eller en afbrydelse, der desværre er timet mod en tagopdatering. Efter Adnans opfattelse vil denne læring efter silicium hjælpe med at forfine dækningsplanen for præ-siliciumverifikation. For at reducere om ikke eliminere post-siliciumudslip.

Interessante ting, i øvrigt understøttet for både Arm-baserede og RISC-V-baserede systemer, godkendt for nylig i en pressemeddelelse med Nuclei System Technology. Du kan lære mere HER.

Læs også:

WEBINAR: Adnan om udfordringer i sikkerhedsverifikation

Breker tipper en hat til formelle grafer i PSS-sikkerhedsverifikation

Verifikation, RISC-V og udvidelsesmuligheder

Del dette opslag via: Kilde: https://semiwiki.com/eda/306824-breker-attacks-system-coherency-verification/

Tidsstempel:

Mere fra Semiwiki