Vad är Scratchpad Memory?

Dataåtkomst är en kritisk del av CPU-design. CPU:er arbetar med extremt höga hastigheter, bearbetar flera instruktioner varje klockcykel och behöver därför tillgång till mycket data. Den stora majoriteten av denna data lagras på lagringsmediet. Lagringsenheter är dock omöjligt långsamma jämfört med en CPU. Lagringsenheter är också betydligt bättre vid sekventiell läsning än de är vid slumpmässiga läsningar, även om SSD-enheter erbjuder en markant förbättring i detta avseende (och många andra) jämfört med hårddiskar.

System-RAM är utformat för att laddas med all data som CPU kan behöva för den programvara som körs för närvarande. RAM har en betydligt lägre latens än lagring, det är också speciellt anpassat för att ha hög slumpmässig läsprestanda. Ändå, så mycket som modernt RAM är snabbt, är det fortfarande ingenting jämfört med CPU:n med latenser i storleksordningen 400 klockcykler.

För att ytterligare minska latensen inkluderar de flesta moderna processorer nivåer av cacheminne. Vanligtvis hänvisas dessa till som L1-, L2- och L3-cachen. L1 är riktigt hög hastighet, vanligtvis tar det i storleksordningen 5 klockcykler att komma åt. L2 är lite långsammare, i storleksordningen 20 cykler. L3 är ännu långsammare med cirka 200 cykler. Även om L1 är otroligt snabb, är den också liten. Mycket av dess hastighet kommer från det faktum att mindre cacher tar kortare tid att söka. L2 är större än L1 men mindre än L3 som fortfarande är mindre än system-RAM. Att balansera storleken på dessa cachar väl är avgörande för att få en högpresterande CPU. Cacheträffförhållanden är viktiga, men du måste balansera antalet träffar med hur lång tid det tar att få den träffen, därav nivåerna.

Scratchpad minne

Observera att skraplotterminne inte passar i den traditionella minneshierarkin. Det beror på att det inte används i de flesta konsumentprocessorer. Scratchpad-minne är designat för att användas som en scratchpad skulle vara i verkligheten. Du antecknar temporär information som du behöver komma ihåg men som faktiskt inte behöver arkivera. Mycket av tiden bearbetar en CPU data och behöver sedan det resultatet igen direkt. Den kan kopiera den till minnet, men för att kunna komma åt den snabbt bör den också behålla den i cachen.

Scratchpad-minne fyller i princip samma lucka som L1-cachen. Det är tillgängligt så snabbt som möjligt, ofta i ensiffrig cykelräkning. För att klara detta är den också relativt liten. Det finns dock två viktiga skillnader mellan L1 och scratchpad-minne. För det första är scratchpad-minnet direkt adresserbart. För det andra delas det mellan alla kärnor och processorer.

Skillnader mellan cache och scratchpad

CPU-cachen är i huvudsak transparent för CPU:n, den kan inte medvetet lägga data där och dess innehåll kan inte programmeras. Istället begär processorn bara data från RAM och råkar få tillbaka den snabbare, ibland betydligt snabbare än den kan förvänta sig. Att tillåta att scratchpad är adresserbar innebär att koden kan specificera exakt vilken data som ska finnas i scratchpad. Detta kan vara användbart, även om moderna cachningsalgoritmer är utmärkta med träfffrekvenser på 95-97 % som förväntas i standardarbetsbelastningar.

L1-cache är alltid låst till en individuell bearbetningskärna. Ingen annan bearbetningskärna kan komma åt den. Detta innebär att om flera kärnor behöver samma data kan de duplicera det i sina respektive L1-cacher. I vissa CPU-arkitekturer är L2 per kärna, i andra delas den av ett litet antal eller till och med alla kärnor. L3 tenderar att delas av alla kärnor. Genom att dela cache mellan kärnor kan två eller flera kärnor komma åt samma data utan att duplicera den. Det tillåter också en kärna att använda mer än sin beskärda andel när den har behov och cachen har utrymmet.

Scratchpad fungerar på samma sätt som L1 när det gäller hastighet och kapacitet, men den delas mellan alla kärnor. Detta ger mycket snabb åtkomst till specifik data som åtgärdas i en flertrådad arbetsbelastning. Scratchpad-minne kan till och med delas mellan olika processorer på moderkort med flera uttag.

En nackdel med skraplotterminnet är att det kan litas för hårt på det. Genom att kunna komma åt den direkt kan programvaran förlita sig på dess närvaro i vissa kvantiteter. I det här fallet skulle det då vara oförmöget att köras på processorer utan så mycket minne. Cache-nivåer lider helt enkelt inte av detta problem och är därför bättre lämpade för allmän användning.

Användningsfall

Scratchpad-minne finns oftast i multi-socket serversystem designade för HPC (High-Performance Computing). Där gör dess kombination av hastighet och delad åtkomst det användbart för mycket parallella arbetsbelastningar.

Scratchpad-minne kan också användas i mycket mindre processorer. Inbyggda processorer, ofta MPSoC. En inbyggd processor är ofta relativt låg effekt och specialiserad för en specifik uppgift. Denna specialisering är ofta representerad i hårdvaruoptimeringar. Speciellt i ett multiprocessorsystem på ett chip kan delat höghastighetsminne ge betydande latensförbättringar för flera olika processorer. Dessa typer av processorer är ofta väldigt fixerade i design. Spelkonsoler till exempel ser redan många optimeringar för hårdvarudesign och kan därför dra nytta av sådana funktioner utan att behöva oroa sig för bakåt- eller framåtkompatibilitet.

Slutsats

Scratchpad-minne liknar L1-cache men har ett antal skillnader som ändrar dess användningsfall. Istället för att vara en cache är den direkt adresserbar vilket gör att data specifikt kan tilldelas till särskilt höghastighetsminne. Den delas också mellan alla processorkärnor och processorer, vilket gör den särskilt användbar i tungt flertrådade arbetsbelastningar.


Hur man klona en hårddisk

Hur man klona en hårddisk

I den moderna digitala tidsåldern, där data är en värdefull tillgång, kan kloning av en hårddisk på Windows vara en avgörande process för många. Denna omfattande guide

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Hur fixar jag drivrutinen WUDFRd kunde inte laddas på Windows 10?

Står du inför felmeddelandet när du startar din dator som säger att drivrutinen WUDFRd inte kunde laddas på din dator?

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Så här åtgärdar du NVIDIA GeForce Experience Error Code 0x0003

Upplever du NVIDIA GeForce-felkod 0x0003 på ditt skrivbord? Om ja, läs bloggen för att hitta hur du åtgärdar det här felet snabbt och enkelt.

Vad är SMPS?

Vad är SMPS?

Lär dig vad som är SMPS och innebörden av olika effektivitetsklasser innan du väljer en SMPS för din dator.

Varför slås inte min Chromebook på

Varför slås inte min Chromebook på

Få svar på frågan Varför slås inte min Chromebook på? I den här användbara guiden för Chromebook-användare.

Hur man rapporterar nätfiskebedrägerier till Google

Hur man rapporterar nätfiskebedrägerier till Google

Lär dig hur du rapporterar en bedragare till Google för att hindra dem från att lura andra med den här guiden.

Roomba stannar, sticker och vänder sig om – fixa

Roomba stannar, sticker och vänder sig om – fixa

Åtgärda ett problem där din Roomba robotdammsugare stannar, fastnar och fortsätter att vända sig om.

Hur man ändrar grafikinställningar på Steam Deck

Hur man ändrar grafikinställningar på Steam Deck

Steam Deck erbjuder en robust och mångsidig spelupplevelse precis vid dina fingertoppar. Dock för att optimera ditt spelande och säkerställa bästa möjliga

Vad är isoleringsbaserad säkerhet?

Vad är isoleringsbaserad säkerhet?

Vi skulle fördjupa oss i ett ämne som blir allt viktigare i världen av cybersäkerhet: isoleringsbaserad säkerhet. Detta förhållningssätt till

Hur man använder Auto Clicker för Chromebook

Hur man använder Auto Clicker för Chromebook

Idag skulle jag fördjupa dig i ett verktyg som kan automatisera repetitiva klickuppgifter på din Chromebook: Auto Clicker. Detta verktyg kan spara tid och