Paměť zápisníku - Scratchpad memory

Paměť Scratchpad ( SPM ), známá také jako scratchpad , scratchpad RAM nebo místní úložiště v počítačové terminologii, je vysokorychlostní interní paměť používaná k dočasnému ukládání výpočtů, dat a dalších probíhajících prací. V odkazu na mikroprocesor (nebo CPU ), scratchpad odkazuje na speciální vysokorychlostní paměťový obvod používaný k uchovávání malých položek dat pro rychlé načítání. Je to podobné použití a velikosti scratchpadu v životě: blok papíru pro předběžné poznámky nebo náčrtky nebo spisy atd.

V některých systémech to může být považováno za podobné mezipaměti L1 v tom, že je to další nejbližší paměť k ALU po registraci procesoru , s výslovnými pokyny pro přesun dat do az hlavní paměti , často pomocí přenosu dat založeného na DMA . Na rozdíl od systému, který používá mezipaměti, je systém s scratchpady systém s latencemi nerovnoměrného přístupu k paměti (NUMA), protože latence přístupu k paměti pro různé scratchpady a hlavní paměť se liší. Dalším rozdílem od systému, který používá mezipaměti, je to, že zápisník obvykle neobsahuje kopii dat, která jsou také uložena v hlavní paměti.

Scratchpady se používají ke zjednodušení logiky ukládání do mezipaměti a k ​​zajištění, aby jednotka mohla fungovat bez sporu o hlavní paměť v systému využívajícím více procesorů, zejména v multiprocesorovém systému na čipu pro vestavěné systémy . Většinou jsou vhodné pro ukládání dočasných výsledků (jak by se nacházelo v zásobníku CPU), které by se obvykle nemusely vždy zavázat do hlavní paměti; když jsou však napájeny DMA , mohou být také použity místo mezipaměti pro zrcadlení stavu pomalejší hlavní paměti. Stejné problémy referenční lokality platí i ve vztahu k účinnosti využívání; ačkoli některé systémy umožňují postupnému DMA přístup k obdélníkovým datovým sadám. Dalším rozdílem je, že aplikace scratchpad jsou výslovně manipulovány aplikacemi. Mohou být užitečné pro aplikace v reálném čase , kde předvídatelnému načasování brání chování mezipaměti.

Scratchpady se nepoužívají v běžných desktopových procesorech, kde je obecná potřeba, aby starší software běžel z generace na generaci, ve kterých se může velikost dostupné paměti na čipu změnit. Jsou lépe implementovány do vestavěných systémů, speciálních procesorů a herních konzolí , kde jsou čipy často vyráběny jako MPSoC a kde je software často vyladěn na jednu hardwarovou konfiguraci.

Příklady použití

  • Fairchild F8 z roku 1975 obsahoval 64 bytů scratchpadu.
  • Cyrix 6x86 je jediným stolním procesorem kompatibilním s x86, který obsahuje vyhrazený scratchpad.
  • SuperH , používaný v konzolách Sega, mohl uzamknout cachelines na adresu mimo hlavní paměť pro použití jako scratchpad.
  • Sony PS1 ‚s R3000 měl zápisník namísto cache L1. Zde bylo možné umístit zásobník CPU, příklad dočasného využití pracovního prostoru.
  • Adapteva je Epiphany paralelní koprocesor dispozici místní obchody pro každý vzorek, který je spojen prostřednictvím sítě na čipu , s DMA možné mezi nimi a off-chip odkazy (případně DRAM). Architektura je podobná buňce Sony, kromě toho, že všechna jádra se mohou navzájem přímo adresovat na scratchpadech a generovat síťové zprávy podle standardních pokynů pro načítání/ukládání.
  • Sony PS2 Emotion Engine obsahuje 16  kB scratchpad, do kterého a ze kterého lze přenášet přenosy DMA do jeho GS, a hlavní paměť.
  • Buněčné SPE jsou omezeny čistě na práci ve svém „místním obchodě“ a při přenosech z/do hlavní paměti a mezi místními obchody se spoléhají na DMA, podobně jako scratchpad. V tomto ohledu je další výhoda odvozena z nedostatku hardwaru ke kontrole a aktualizaci soudržnosti mezi více mezipaměti: návrh využívá předpokladu, že pracovní prostor každého procesoru je oddělený a soukromý. Očekává se, že tato výhoda bude znatelnější, když se počet procesorů rozšíří do budoucnosti „mnoha jader“. Přesto z důvodu odstranění některých hardwarových logik musí být data a pokyny aplikací na SPE spravovány prostřednictvím softwaru, pokud se celý úkol na SPE nevejde do místního úložiště.
  • Mnoho dalších procesorů umožňuje uzamčení řádků mezipaměti L1.
  • Většina procesorů digitálního signálu používá scratchpad. Mnoho minulých 3D akcelerátorů a herních konzolí (včetně PS2) používalo DSP pro transformace vrcholů . To se liší od přístupu založeného na proudu moderních GPU, které mají více společného s funkcemi mezipaměti CPU.
  • Při použití pro úlohy GPGPU poskytuje procesor NVIDIA 8800 GPU běžící pod CUDA 16 bitů scratchpadu (NVIDIA tomu říká sdílená paměť) na balíček vláken . Scratchpad byl také použit v pozdějším Fermi GPU ( GeForce 400 Series ).
  • Čip AgeX společnosti PhysX obsahuje stírací paměť RAM podobným způsobem jako buňka; její teorie uvádí, že hierarchie mezipaměti má menší využití než fyzika řízená softwarem a kolizní výpočty. Tyto paměti jsou také uloženy a přepínač spravuje přenosy mezi nimi.
  • Procesor Intel Knights Landing má 16 GB MCDRAM, který lze konfigurovat buď jako mezipaměť, nebo jako paměť pro stírací losy, nebo pro rozdělení do některé mezipaměti a některé paměti zápisníku.
  • Movidius Myriad 2 , jednotka zpracování obrazu , organizovaná jako vícejádrová architektura s velkým víceportovým sdíleným scratchpadem.
  • Graphcore navrhl akcelerátor AI založený na vzpomínkách na scratchpad

Alternativy

Ovládání mezipaměti vs scratchpady

Některé architektury, jako například PowerPC, se pokoušejí vyhnout potřebě zamykání cacheline nebo scratchpadů pomocí pokynů pro ovládání mezipaměti . Označení oblasti paměti pomocí „Data Cache Block: Zero“ (přidělení řádku, ale nastavení obsahu na nulu místo načítání z hlavní paměti) a jeho vyřazení po použití („Block Data Cache Block: Invalidate“, což signalizuje, že hlavní paměť ne t přijímat aktualizovaná data) mezipaměť se chová jako scratchpad. Obecnost je zachována v tom, že se jedná o rady a základní hardware bude fungovat správně bez ohledu na skutečnou velikost mezipaměti.

Místní obchody sdílené L2 vs Cell

Pokud jde o komunikaci mezi procesory ve vícejádrovém nastavení, existují podobnosti mezi inter-localstore DMA buňky a nastavením sdílené mezipaměti L2 jako u Intel Core 2 Duo nebo vlastního powerPC pro Xbox 360: mezipaměť L2 umožňuje procesorům sdílet výsledky, aniž by tyto výsledky měly být oddán hlavní paměti. To může být výhoda tam, kde pracovní sada pro algoritmus zahrnuje celou mezipaměť L2. Když je však program napsán tak, aby využíval výhody DMA mezi místními obchody, buňka má výhodu vzájemné spolupráce mezi místním úložištěm, která slouží účelu OBĚ soukromého pracovního prostoru pro jeden procesor A bodu sdílení mezi procesory; tj. ostatní Local Stores jsou na podobné úrovni z jednoho procesoru jako sdílená mezipaměť L2 v konvenčním čipu. Kompromisem je paměť ztracená v ukládání do vyrovnávací paměti a složitosti programování pro synchronizaci, i když by to bylo podobné předběžným stránkám v konvenčním čipu. Mezi domény, kde je efektivní využití této schopnosti, patří:

  • Zpracování potrubí (kde jeden dosáhne stejného efektu jako zvětšení velikosti mezipaměti L1 rozdělením jedné úlohy na menší kusy)
  • Rozšíření pracovní sady, např. Sweet spot pro slučovací třídění, kde se data vejdou do 8 × 256 KB
  • Nahrávání sdíleného kódu, jako je načtení části kódu do jednoho SPU, poté jej zkopírujte do ostatních, abyste se vyhnuli opětovnému zasažení hlavní paměti

Bylo by možné, aby konvenční procesor získal podobné výhody s instrukcemi pro řízení mezipaměti, například umožněním předběžného načtení na L1 obejitím L2, nebo náznakem vystěhování, který signalizoval přenos z L1 do L2, ale nezavázal se do hlavní paměti; v současné době však žádné systémy nenabízejí tuto schopnost v použitelné formě a takové instrukce by měly zrcadlit explicitní přenos dat mezi oblastmi mezipaměti používanými každým jádrem.

Viz také

Poznámky

Reference

externí odkazy