You are on page 1of 6

Folosirea eficienta a spatiului de memorie integrat in cipul procesorului (on-chip) este extrem de importanta in aplicatiile moderne ale sistemelor

dedicate (embedded systems), bazate pe nucleele procesoarelor. In completarea memoriei cache de date, care realizeaza interfata cu memoria mai lenta din afara cipului procesorului (off-chip), in diverse aplicatii se foloseste adesea o memorie SRAM rapida, de tip on-chip, numita memorie scratch-pad. Termenul de memorie scrach-pad (SPM) se refera la o memorie dedicata on-cip, folosita pentru stocarea de instructinuni sau date. Spre deosebire de memoria cache, memoria scrach-pad e controlata de software. Aceasta este situata in spatiul de memorie al procesorului , accesarea ei fiind controlata de o aplicatie a userului. In principiu, se poate spune ca memoria scratchpad (SPM), cunoscuta si sub denumirea de scratchpad RAM sau local store in terminologia IT, este o memorie interna de mare viteza folosita pentru stocarea temporara a datelor. Cache-ul pentru instructiuni si date este o memorie locala rapida folosita ca o interfata intre procesor si memoria off-cip. Memoria SRAM on-cip denumita SPM este o memorie de date, mica si rapida, situata intr-un spatiu de adresa separat de memoria of-cip dar conectata la aceeasi adresa si bus de date. Principalele avantaje ale SPM fata de memoria cache sunt: Arie redusa a cipului, nefiind necesar un spatiu aditional pentru selectarea matricei de memorie; Consum de putere redus, fiind folosit numai o simpla adresare logica a SPRAM; Flexibilitate, userul avand control total asupra accesului la SPRAM; Performanta, accesul la memoria scrachpad fiind mai rapid decat la cea cache.

Dezavantajul consta in efortul suplimentar solicitat de programarea sistemelor bazate pe SPRAM. In cazul unei aplicatii ce depaseste semnificativ spatiul SPRAM disponibil, performanta globala e afectata de abilitatea compilatorului de a utiliza eficient acest spatiu. Neavand suportul compilatorului, este in sarcina utilizatorului sa decida care parte a programului va fi stocata in SPRAM si daca si cum aceast poate fi schimbata in timpul executiei. Nucleele moderne RISC pot combina SPM si cache sa lucreze concomitent. In acest caz utilizatorul selecteaza configuratia optima pentru a realiza cerintele sistemului dorit.

INTEGRAREA SPM

Integrarea SPRAM intr-un sistem depinde in principal de arhitectura sistemului si de aplicatia tinta. In prezent, sunt disponibile multe nuclee RISC CPU care au optiunea de a include SPRAM. De exemplu, configuratia uzuala pentru 803x/805x compatibila cu microcontrolerele pe 8 biti permit integrarea memoriilor interne SPRAM de maximum

256 biti si pana la memorii interne ROM de 64 KB. Microcontrolerele avansate 68HC11 compatibile cu microcontrolerele pe 8 biti permit integrarea memoriilor DSPRAM de maxim 1024 biti si a memoriilor ROM de pana la 64 KB. In cazul procesoarelor RISC performante pe 32 biti sunt suportate atat SPM de date si instructiuni (ISPRAM) cat si memorii cache integrate. Sunt multi producatori de CPU-uri dedicate care ofera o multitudine de arhitecturi a nucleelor cu suport scratchpad, care pot raspunde la aproape orice cerinte ale utilizatorilor. Nucleele RISC avansate deobicei utilizeaza porturi SPRAM customizabile care se comporta ca interfete de memorii simple. Deobicei sunt interfete separate pentru date si instructuni in cadrul SPRAM pe care utilizatorul trebuie sa le personalizeze ca sa se potriveasca cu memoria.

INTERFATA SCRATCHPAD

Interfata SPRAM pe un nucleu MIPS 4Kep este proiectata sa furnizeze timp de acces scurt la memoria on-cip. Portul SPRAM este accesat in paralel cu cache-ul. Aceast fapt salveaza un numar de cicluri care ar fi necesar in mod normal pentru a trece prin interfata de bus si prin interfata EC. Daca memoria cache ste prezenta in combinatie cu SPRAM, atunci asociativitatea maxima a cache-ului este 3.

Nucleul 4Kep ofera interfete separate pentru ISPRAM si DSPRAM care pot fi configurate independent. O matrice SPRAM poate avea o dimensiune de pana la 1MB. Portul SPRAM poate opri nucleul daca SPRAM este ocupat cu ciclul anterior dau daca datele nu sunt gata. Acesta poate porni alte surse pentru a accesa SPRAM-ul fara a fi nevoie de porturi duble. Acesta poate fi folositor daca, de exemplu, intr-un sistem DMA este nevoie de a utiliza SPRAM-ul sau daca se doreste unificarea memoriei SPRAM de date si instructiuni. Interfata SPRAM este proiectata sa fie suficiet de flexibila ca sa lucreze cu o varietate de sisteme. Mai multe tipuri de memorie pot fi conectate la interfata SPRAM: SRAM, ROM, flash, etc. Daca este necesar, functiile de mapare a memoriei pot fi conectate atata timp cat protocolul interfetei permite. Dispozitivele multi-port pot fi de asemenea folosite. In acest caz interfata ISPRAM sau DSPRAM este conectata la unul

dintre porturi, celelalte sisteme logice ce nu fac parte din nucleul 4Kep, utilizand celelalte porturi. Aplicatii IHP microelectronics dezvolta sisteme dedicate pentru aplicatii wireless care deobicei constau intr-un numar de nuclee optimizat pentru procesarea anumitor aplicatii. Sistemele sunt dezvoltate in jurul IHP wireless engine platform, in cadrul careia principalele parti ale sistemului de comunicatie wireless este integrat pe un singur cip. Platforma prezinta un sistem multiprocesor care contine un protocol si o aplicatie interconectate cu o unitate de procesare in banda. Platforma specifica un mecanism de optimizare a puterii care beneficiaza de optimizare. Protocolul decicat deobicei include un procesor embedded care executa o parte a functionalitatii protocolului, protocolul fiind stocat pe o memorie on-cip dedicata. Multe din nucleele CPU dedicate disponibile pe piata, ofera suport pentru memoriile scratchpad dedicate. SPRAM sunt controlate prin software si au o eficienta mai buna a consumului decat memoriile cache.

Integrarea nucleelor procesorului si a memoriei in acelasi cip are ca efect reducerea numarului de cipuri, conducand la solutii cu un cost mai bun. Exemple tipice de module optionale integrate cu procesorul pe acelasi cip : cache pentru instructiuni, date si on-cip SRAM. Atat memoria cache cat si scrach-pad SRAM au durata de acces de un singur ciclu procesor, pe cand accesul la memoria off-cip(de obicei DRAM) dureaza cateva cicluri de procesor ( 10-20). Principala diferenta intre memoria cache si SPM este aceea ca Scrach-pad SRAM garanteaza un timp de acces de un singur ciclu in timp ce accesul la memoria cache poate avea hit-rate mic.

Schema bloc pentru un procesor dedicat (embedded) Poate fi de tip static atunci cand locatia SPM nu se schimba in timpul rularii sau de tip dinamic cand locatia se schimba. Aceasta poate fi considerata similara memoriei cache L1 care este cea mai apropiata memorie de ULA dupa registrii interni, cu instructiuni explicite pentru mutarea datelor in si din memoria principala, folosind deobicei transferul DMA. In contrast cu un sistem care foloseste memorii cache, un sistem cu memorie scratchpad este unul NUMA (Non-Uniform Memory Access), pentru ca durata accesulului intre memoria principala si SPM variaza. O alta diferenta este ca o memoria scratchpad de obicei nu contine o copie a datelor care sunt stocate in memoria principala.

Memoriile scratchpad sunt folosite pentru simplificarea logicii cache si pentru a garanta ca o unitate poate functiona fara datele din memoria principala intr-un sistem cu procesoare multiple, in special in sistemele multiprocessor de tip SOC (system-on-chip) pentru sistemele embedded. Ele sunt potrivite pentru stocarea rezultatelor temporare (asa cum ar fi putut fi gasite in stiva CPU) care de obicei nu ar trebui sa fie intotdeauna stocate in memoria principala. Cu toate acestea, atunci cand datele sunt transmise prin DMA, ele pot fi utilizate in locul unui cache pentru a copia starea memoriei principale care e mai lenta. O alta diferenta este ca memoria scratchpad este manipulata explicit de aplicatii.

SPM nu sunt folosite in sistemele cu procesoare mainstream, unde in general software-ul este refolosit de la o generatie de processor la alta si in care dimensiunea memoriei disponibila poate varia. Ele sunt mai bine implementate in sistemele embedded, in procesoarele specializate si in consolele de jocuri, unde cipurile sunt adesea MPSoC (multiprocessor System-on-Chip) iar software-ul este adesea specializat pentru o anumita configuratie hardware.

Exemple de folosire

Procesorul din Sony PS1, R3000, are memorie scratchpad in locul unei memorii cache L1. Se poate plasa stiva UCP in memoria SPM - acesta fiind un exemplu de folosire temporara a spatiului de lucru. Procesorul din Sony PS2 utilizeaza o memorie scratchpad de 16KiB The Cell's SPEs are restricted purely to working in their "local-store", relying on DMA for transfers from/to main memory and between local stores, much like a scratchpad. In this regard, additional benefit is derived from the lack of hardware to check and update coherence between multiple caches: the design takes advantage of the assumption that each processor's workspace is separate and private. It is expected this benefit will become more noticeable as the number of processors scales into the "many-core" future. Multe alte procesoare permit blocarea liniilor cache L1 Cele mai multe procesoare de semnal digital utilizeaza memorii scrachpad. Multe acceleratoare 3D si console de jocuri (inclusiv PS2) au folosit DSP pentru transformari vertex. Acestea difera de abordarea unitatilor de procesare grafica (GPU) moderne care au mai multe in comun cu functiile memoriilor de tip cache. Procesorul placii video NVIDIA 8800 ruland sub CUDA asigura o memorie SPM de16KiB (NVIDIA numeste scrachpadul- Shared Memory) per thread atunci cand e folosita pentru GPU. Memoria scrachpad a fost folosita si la ultimele tipuri de GPU Fermi (seriile GeForce 400). Cip-ul Ageia's PhysX utilizeaza SPM intr-un mod similar cu Cell; teoria ei afirma ca ierarhia cache e mai putin folositoare decat gestionarea software-ului. Aceste date sunt stocate si un comutator permite transferul intre ele.

Cache control vs Scratchpads

Multe arhitecturi cum ar fi PowerPC incearca sa evite nevoia de blocare a SPM sau a cache-ului folosind instructiunile de control a cache-ului. Marcarea unei arii din memorie cu Data Cache Block: Zero (alocarea unei linii dar setarea continutului la zero in locul incarcarii din memoria principala) si renuntarea la ea dupa folosire (Data Cache Block: Invalidate, semnaleaza ca memoria principala nu a primit nicio data) cache-ul se comporta ca un SPM.

DE LA HONEYWELL

O memorie SPM este acea portiune ce permite accesul rapid al unei date din procesor sau un calculator in care informatiile care pot fi modificate sunt stocate temporar. Functiile generale indeplinite de SPM sunt: 1) Stocare manipulativa pentru procesele overhead 2) Accesul rapid la o portiune limitata (nu neaparat si invecinata) a memoriei principale 3)

You might also like