Hvad er Scratchpad Memory?

Dataadgang er en kritisk del af CPU-design. CPU'er arbejder ved ekstremt høje hastigheder, behandler flere instruktioner hver clock-cyklus og har derfor brug for adgang til en masse data. Langt størstedelen af ​​disse data er lagret på lagringsmediet. Lagerenheder er dog umuligt langsomme sammenlignet med en CPU. Lagerenheder er også betydeligt bedre til sekventielle læsninger, end de er ved tilfældige læsninger, selvom SSD'er tilbyder en markant forbedring i denne henseende (og mange andre) i forhold til HDD'er.

System RAM er designet til at blive indlæst med alle de data, CPU'en kan have brug for til den aktuelt kørende software. RAM har en væsentlig lavere latenstid end lager, den er også specielt skræddersyet til at have høj tilfældig læseydeevne. Alligevel, så meget som moderne RAM er hurtig, er det stadig ingenting sammenlignet med CPU'en med latenser i størrelsesordenen 400 clock-cyklusser.

For yderligere at reducere latensen inkluderer de fleste moderne CPU'er niveauer af cachehukommelse. Disse omtales typisk som L1-, L2- og L3-cachen. L1 er virkelig høj hastighed, typisk tager på størrelsesordenen 5 clock-cyklusser for at få adgang. L2 er en smule langsommere, i størrelsesordenen 20 cyklusser. L3 er endnu langsommere med omkring 200 cyklusser. Selvom L1 er utrolig hurtig, er den også lille. Meget af dens hastighed kommer fra det faktum, at mindre caches tager kortere tid at søge. L2 er større end L1, men mindre end L3, som stadig er mindre end system-RAM. At balancere størrelsen af ​​disse caches godt er afgørende for at få en højtydende CPU. Cache hit-forhold er vigtige, men du skal balancere antallet af hits med, hvor lang tid det tager at få det hit, deraf niveauerne.

Scratchpad hukommelse

Bemærk, at scratchpad-hukommelse ikke passer ind i det traditionelle hukommelseshierarki. Det er fordi det ikke bruges i de fleste forbruger-CPU'er. Scratchpad-hukommelse er designet til at blive brugt, som en scratchpad ville være i det virkelige liv. Du noterer midlertidige oplysninger, som du skal huske, men som faktisk ikke skal arkiveres. Meget af tiden behandler en CPU data og har derefter brug for det resultat igen med det samme. Den kan kopiere den til hukommelsen, men for at kunne få hurtig adgang til den bør den også holde den i cachen.

Scratchpad-hukommelse fylder stort set det samme hul som L1-cachen. Det er tilgængeligt så hurtigt som muligt, ofte i encifrede cyklustællinger. For at klare dette er det også relativt lille. Der er dog to vigtige forskelle mellem L1 og scratchpad-hukommelse. For det første er scratchpad-hukommelse direkte adresserbar. For det andet er det delt mellem alle kerner og processorer.

Forskelle mellem cache og scratchpad

CPU-cachen er i det væsentlige gennemsigtig for CPU'en, den kan ikke bevidst placere data der, og dens indhold kan ikke programmeres. I stedet anmoder CPU'en bare om data fra RAM og får dem tilfældigvis tilbage hurtigere, nogle gange betydeligt hurtigere, end den kunne forvente. At tillade, at scratchpad'en kan adresseres, betyder, at koden kan specificere præcis, hvilke data der skal være i scratchpad'en. Dette kan være nyttigt, selvom moderne caching-algoritmer er fremragende med hitrater på 95-97%, der forventes i standardarbejdsbelastninger.

L1-cache er altid låst til en individuel behandlingskerne. Ingen anden behandlingskerne kan få adgang til den. Dette betyder, at hvis flere kerner har brug for de samme data, kan de duplikere dem i deres respektive L1-caches. I nogle CPU-arkitekturer er L2 per kerne, i andre deles det af et lille antal eller endda alle kernerne. L3 har tendens til at blive delt af alle kerner. Deling af cache mellem kerner giver to eller flere kerner adgang til de samme data uden at duplikere dem. Det giver også en kerne mulighed for at bruge mere end sin rimelige andel, når den har behovet, og cachen har pladsen.

Scratchpad fungerer på samme måde som L1 med hensyn til hastighed og kapacitet, men den er delt mellem alle kerner. Dette giver meget hurtig adgang til specifikke data, der bliver handlet på i en flertrådet arbejdsbelastning. Scratchpad-hukommelse kan endda deles mellem forskellige CPU'er på multi-socket bundkort.

En ulempe, som scratchpad-hukommelse har, er, at den kan stoles for meget på. Ved at være i stand til at få direkte adgang til det, kan software stole på dets tilstedeværelse i visse mængder. I dette tilfælde ville det så være ude af stand til at køre på CPU'er uden så meget scratchpad-hukommelse. Cache-lag lider simpelthen ikke af dette problem og er derfor bedre egnet til generel brug.

Brug cases

Scratchpad-hukommelse findes oftest i multi-socket serversystemer designet til HPC (High-Performance Computing). Der gør dens kombination af hastighed og delt adgang den nyttig til meget parallelle arbejdsbelastninger.

Scratchpad-hukommelse kan også bruges i meget mindre processorer. Indlejrede processorer, ofte MPSoC'er. En indlejret processor har ofte relativt lav effekt og er specialiseret til en bestemt opgave. Denne specialisering er ofte repræsenteret i hardwareoptimeringer. Især i et multiprocessorsystem på en chip kan delt højhastighedshukommelse give betydelige latenstidsforbedringer til flere forskellige processorer. Disse slags CPU'er er ofte meget faste i designet. Spilkonsoller ser for eksempel allerede en masse optimeringer til hardwaredesign og kan derfor gøre god brug af sådanne funktioner uden at skulle bekymre dig om baglæns eller fremad kompatibilitet.

Konklusion

Scratchpad-hukommelse ligner L1-cache, men har en række forskelle, der ændrer dens anvendelsestilfælde. I stedet for at være en cache, kan den direkte adresseres, hvilket gør det muligt at tildele data specifikt til særlig højhastighedshukommelse. Det er også delt mellem alle processorkerner og processorer, hvilket gør det særligt nyttigt i stærkt flertrådede arbejdsbelastninger.


Sådan klones en harddisk

Sådan klones en harddisk

I den moderne digitale tidsalder, hvor data er et værdifuldt aktiv, kan kloning af en harddisk på Windows være en afgørende proces for mange. Denne omfattende guide

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Sådan repareres driveren WUDFRd kunne ikke indlæses på Windows 10?

Står du over for fejlmeddelelsen, mens du starter din computer, som siger, at driveren WUDFRd ikke kunne indlæses på din computer?

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Sådan rettes NVIDIA GeForce Experience-fejlkode 0x0003

Oplever du NVIDIA GeForce-oplevelsesfejlkode 0x0003 på dit skrivebord? Hvis ja, læs bloggen for at finde ud af, hvordan du løser denne fejl hurtigt og nemt.

Hvad er SMPS?

Hvad er SMPS?

Lær, hvad SMPS er og betydningen af ​​forskellige effektivitetsvurderinger, før du vælger en SMPS til din computer.

Hvorfor tænder min Chromebook ikke

Hvorfor tænder min Chromebook ikke

Få svar på spørgsmålet: Hvorfor tænder min Chromebook ikke? I denne nyttige vejledning til Chromebook-brugere.

Sådan rapporteres phishing-svindel til Google

Sådan rapporteres phishing-svindel til Google

Lær, hvordan du rapporterer en svindler til Google for at forhindre dem i at snyde andre med denne vejledning.

Roomba stopper, stikker og drejer rundt – Fix

Roomba stopper, stikker og drejer rundt – Fix

Løs et problem, hvor din Roomba robotstøvsuger stopper, sætter sig fast og bliver ved med at dreje rundt.

Sådan ændres grafikindstillinger på Steam Deck

Sådan ændres grafikindstillinger på Steam Deck

Steam Deck tilbyder en robust og alsidig spiloplevelse lige ved hånden. Dog for at optimere dit spil og sikre det bedst mulige

Hvad er isolationsbaseret sikkerhed?

Hvad er isolationsbaseret sikkerhed?

Ville dykke ned i et emne, der bliver stadig vigtigere i cybersikkerhedens verden: isolationsbaseret sikkerhed. Denne tilgang til

Sådan bruger du Auto Clicker til Chromebook

Sådan bruger du Auto Clicker til Chromebook

I dag skulle du dykke ned i et værktøj, der kan automatisere gentagne klikopgaver på din Chromebook: Auto Clicker. Dette værktøj kan spare dig tid og