SIMULATORUL PCSPIM-CACHE

Size: px
Start display at page:

Download "SIMULATORUL PCSPIM-CACHE"

Transcription

1 SIMULATORUL PCSPIM-CACHE 1.1. SCOPUL LUCRĂRII Memoriile cache reprezintă un mecanism omniprezent în microprocesoarele curente, dedicat mascării latenţei ridicate a memoriei principale. Datorită importanţei lor, acestea sunt considerate elemente cheie (fundamentale) în programa specifică arhitecturii calculatoarelor. În acest sens, lucrarea de faţă urmăreşte evidenţierea conceptelor legate de cache-uri modul de organizare, regulile de mapare, algoritmii de înlocuire a blocurilor conflictuale, strategia de scriere din prisma unor aplicatii scrise in limbaj de asamblare MIPS. Lucrarea continuă cu descrierea detaliată a simulatorului PCspim-cache, instrument software care permite vizualizarea grafica in fiecare ciclu de executie a impactului unor algoritmi simpli atat asupra setului de registrii generali cat şi asupra arhitecturii cache-ului [Pet06]. Simulatorul, de tip execution-driven, a fost dezvoltat de colectivul de cercetători de la Departamentul Ştiinţa şi Ingineria Calculatoarelor din cadrul Universităţii Politehnica din Valencia condus de profesor Ana Pont şi extinde simulatorul SPIMSal scris pentru uz didactic de către James Larus [Lar93] şi care a fost prezentat detaliat în lucrarea [Flo03]. În finalul lucrării sunt explicate două aplicaţii de complexitate medie şi propuse alte două probleme pentru rezolvare având ca scop înţelegerea aspectelor arhitecturale specifice procesoarelor RISC, formarea deprinderilor practice privind programarea în asamblare MIPS dar şi vizualizarea efectului optimizărilor software de tip loop interchange asupra reducerii ratei de miss în cache-uri MEMENTO TEORETIC În acest subcapitol vor fi trecute în revistă doar câteva aspecte privitoare la memoriile cache (definiţie, arhitectură, metrici, strategii de scriere şi metode de îmbunătăţire a performanţei acestora), întrucât există suficientă documentaţie care tratează în detaliu acest subiect [Hill88, Jou90, Sti94, Hen07], inclusiv autorii acestei cărţi având astfel de contribuţii [Flo00, Vin00, Flo03]. Practic se vor prezenta acele noţiuni care intervin apoi în procesul de simulare a interfeţei microprocesor - cache. Conform dicţionarului american Webster s New World Dictionary of the American Language cache-ul reprezintă a safe place for hiding or storing things. Sintetic, despre memoria cache se poate spune ca este: situată din punct de vedere logic între CPU şi memoria principală (uzual DRAM) mai mică, mai rapidă şi mai scumpă (per byte de tip SRAM) decât aceasta gestionată prin hardware astfel încât să existe o cât mai mare probabilitate statistică de găsire a datei accesate de către CPU, în cache. In evaluarea performantei memoriilor cache si a întregului sistem de calcul sunt folosite următoarele metrici: Rata de Hit = raportul statistic între numărul acceselor cu hit (găsesc informaţia căutata) în cache respectiv numărul total al acceselor CPU la memorie. Rata de miss =1 Rata de Hit Timpul mediu de acces al CPU la sistemul ierarhic de memorie (MP) = T_acces_cache*R_hit + T_acces_ DRAM *(1-R_hit) Rata de procesare (viteza de execuţie) = Nr. Instrucţiuni executate / Timp total execuţie 1

2 Din punct de vedere arhitectural, există 3 tipuri distincte de memorii cache în conformitate cu gradul de asociativitate: 1. cache-urile cu mapare directă un bloc din memoria principala (MP) poate fi găsit în cache (hit) într-un bloc unic determinat. Regula de mapare a unui bloc in MP în cache (daca blocul contine un singur cuvant de date 1 byte) este: (Adresa bloc MP) modulo (Nr. blocuri din cache) % Daca insa dimensiunea blocului din cache este mai mare de 1 byte atunci indexul blocului din cache se determina dupa regula: (Adresa bloc MP / Dimensiunea_blocului in bytes) % Nr. blocuri din cache) Stricteţea regulii de mapare constituie atat un avantaj intrucat conduce la o simplitate constructivă a acestor memorii, o implementare hardware usoara (accesul la cache se face folosind ultimii biti de adresa) dar constituie totodata şi un dezavantaj datorita fenomenului de interferenţă al blocurilor din MP în cache. 2. la cache-urile N-way asociative (semiasociative) există mai multe seturi, fiecare set având N blocuri componente. Blocul dorit se poate mapa oriunde în setul respectiv (asociativitate maxima in set). Regula de mapare precizează strict doar setul în care se poate afla blocul dorit: (Adresa bloc MP) modulo (Nr. seturi din cache) Daca insa dimensiunea blocului din cache este mai mare de 1 byte atunci indexul blocului din cache se determina dupa regula: (Adresa bloc MP / Dimensiunea_blocului in bytes) modulo (Nr. seturi din cache) La un miss în cache, înainte de încărcarea noului bloc din MP, memoriile asociative implica evacuarea unui anumit bloc din setul respectiv. În principiu există implementate două-trei tipuri de algoritmi de evacuare: FIFO (primul bloc introdus in set este primul bloc care va fi evacuat la un miss in cache), PseudoRandom (cvasialeator) şi LRU ( Least Recently Used ). Algoritmul LRU evacuează blocul din cache cel mai demult neaccesat, în baza principiului de localitate temporală (aflat oarecum în contradicţie cu o probabilistică markoviană care ar sugera să fie păstrat!). Politica de înlocuire LRU este departe de a fi cea optimă pentru unele din programe. Această anomalie poate fi evitată prin folosirea algoritmului optim (OPT) în loc de LRU ca bază pentru clasificarea miss-urilor în cache. Algoritmul OPT, înlocuieşte întotdeauna blocul care va fi adresat cel mai târziu în viitor (eventual nu va mai fi adresat deloc). Un astfel de algoritm s-a dovedit a fi cvasioptimal pentru toate pattern-urile de program, ratele de miss fiind cele mai mici în acest caz, dintre mai toate politicile de înlocuire folosite. Politica se dovedeşte optimă doar pentru fluxuri de instrucţiuni readonly. Pentru cache-urile cu modalitate de scriere write-back algoritmul de înlocuire nu este întotdeauna optim (spre exemplu poate fi mai costisitor să se înlocuiască blocul cel mai târziu referit în viitor dacă blocul trebuie scris şi în memoria principală, fiind "murdar", faţă de un bloc "curat" referit în viitor puţin mai devreme decât blocul "murdar" anterior; în plus, blocul curat nu mai trebuie evacuat, ci doar suprascris). Este evident un algoritm speculativ, practic imposibil de implementat în practică. Totuşi el are două calităţi majore: (1) reprezintă o metrică de evaluare teoretică a eficenţei algoritmului de evacuare implementat în realitate, absolut necesară şi (2) induce ideea fecundă a predictibilităţii valorilor de folosinţă ale blocurilor din cache, conducând astfel la algoritmi predictivi rafinaţi de evacuare (memoria SVC implementează un astfel de algoritm). Intr-un astfel de cache rata de interferenţă se reduce odată cu creşterea gradului de asociativitate (N mare ), determinând îmbunătăţirea ratei de hit şi deci a performanţei globale (vezi paragraful de mai sus referitor la metrici). Pe de altă parte însă, asociativitatea impune căutarea după conţinut (se caută deci 2

3 într-un set dacă există memorat blocul respectiv) ceea ce conduce la complicaţii structurale şi deci la creşterea timpului de acces la cache şi implicit la diminuarea performanţei globale. Optimizarea gradului de asociativitate, a capacităţii cache, a lungimii blocului din cache etc., nu se poate face decât prin laborioase simulări software, variind toţi aceşti parametrii în vederea maximizării ratei globale de procesare a instrucţiunilor [instr./cicli]. 3. cache-urile complet asociative există un singur set permiţând maparea blocului practic oriunde în cache. Memoriile cache total asociative, implementează practic un singur set permiţând maparea blocului practic oriunde în cache. Ele nu se implementează deocamdată în siliciu datorită complexităţii deosebite şi a timpului prohibit de căutare. Reduc însă (practic) total interferenţele blocurilor la aceeaşi locaţie cache şi constituie o metrică superioară utilă în evaluarea ratei de hit pentru celelalte tipuri de cache-uri (prin comparaţie). Folosind CACTI 4.0 (instrument software de evaluare al unui model arhitectural de cache din punct de vedere al timpului de acces, perioadei de tact, al modului de organizare şi al ariei de integrare, precum şi al puterii consumate) cu o tehnologie de integrare de 90 nm, timpul de acces la un cache 2-way, 4-way, şi 8-way asociativ este de 1.32, 1.39 şi 1.43 mai mare decât timpul de acces la un cache mapat direct de aceeaşi capacitate. Memorii Harvard spaţii şi busuri separate pentru instrucţiuni şi date vs. Memorii Princeton (unificate). Avantaje Harvard (se reduc coliziunile în procesoarele pipeline IF/MEM). Dezavantaje Harvard (rata de hit mai mică). De regula cache-urile de nivel 1 (L1) sunt implementate on chip separat pe instrucţiuni şi date respectiv unificat, offchip, cache-urile de nivel 2 sau chiar 3 (L2; L3). Strategii de scriere write back (informaţia este scrisă numai în cache, blocul modificat fiind transferat în MP numai la evacuarea din cache). Bit Dirty marcheaza modificarea => minimizează evacuările de blocuri în MP. write through (informaţia este scrisă de către procesor atât în blocul aferent din cache cât şi în blocul corespunzător din memoria principală). Util pentru pastrarea coerenţei cache-urilor cu precădere în sistemele multimicroprocesor, Chip Multiprocessor Architecture. In general există doua opţiuni la o scriere cu miss: Write Allocate - the block is loaded on a write miss, followed by the write-hit action. No Write Allocate - the block is modified in the main memory and not loaded into the cache. Întrucât ambele opţiuni pot fi asociate cu strategia de scriere implementata (write back / write through), rezulta 4 scenarii posibile. Write Through with Write Allocate: on hits it writes to cache and main memory on misses it updates the block in main memory and brings the block to the cache Bringing the block to cache on a miss does not make a lot of sense in this combination because the next hit to this block will generate a write to main memory anyway (according to Write Through policy) Write Through with No Write Allocate: on hits it writes to cache and main memory; on misses it updates the block in main memory not bringing that block to the cache; 3

4 Subsequent writes to the block will update main memory because Write Through policy is employed. So, some time is saved not bringing the block in the cache on a miss because it appears useless anyway. Write Back with Write Allocate: on hits it writes to cache setting dirty bit for the block, main memory is not updated; on misses it updates the block in main memory and brings the block to the cache; Subsequent writes to the same block, if the block originally caused a miss, will hit in the cache next time, setting dirty bit for the block. That will eliminate extra memory accesses and result in very efficient execution compared with Write Through with Write Allocate combination. Write Back with No Write Allocate: on hits it writes to cache setting dirty bit for the block, main memory is not updated; on misses it updates the block in main memory not bringing that block to the cache; Subsequent writes to the same block, if the block originally caused a miss, will generate misses all the way and result in very inefficient execution. La o scriere cu miss în cache se poate face scrierea în cache (alocarea blocului write allocate) sau realizarea scrierii direct în memorie (nealocând bloc în cache write no-allocate). În general, dar nu este obligatoriu: write allocate este asociată cu strategia de scriere în cache write-back. write no-allocate este asociată cu strategia de scriere în cache write-through. 3C caracterizarea acceselor cu miss Compulsory - sau de start rece. Apar la primul acces al unui anumit bloc în cache. De capacitate - apar în situaţia în care cache-ul nu poate reţine toate blocurile necesare iar cele care sunt evacuate la un moment dat vor fi necesare ulterior. Cache-ul este plin. De conflict - sau de interferenţă. Apar dacă strategia de plasare a blocurilor în cache este mapată direct sau semi-asociativă, situaţie în care mai multe blocuri din memoria principală pot interfera (accesa) acelaşi bloc din cache. Setul este plin dar cache-ul nu. Metode de îmbunătăţire a performanţei cache-urilor: 1. Reducerea ratei de miss în cache Creşterea dimensiunii blocurilor (din păcate cresc şi penalităţile de miss la evacuareîncărcare bloc) Creşterea capacităţii cache (creşte timpul de acces la hit şi costuri) Creşterea gradului de asociativitate a cache-ului (creşte timpul de acces la hit) Utilizarea mecanismelor de prefetch asupra instrucţiunilor (buffer de prefetch) şi datelor (data write buffer) Optimizarea de programe prin compilator - intrarea într-un basic-block să reprezinte începutul unui bloc în cache - exploatarea localităţilor spaţiale ale datelor din cache loop interchange, loop fusion, merging array etc. 2. Reducerea penalităţii în caz de miss în cache Niveluri multiple de cache-uri (multi-level inclusion, exclusion, hibrid); Utilizarea conceptului de victim cache respectiv selective victim cache (a se vedea capitolul 5 din lucrarea [Flo03]) 3. Reducerea timpului de execuţie în caz de hit în cache. Way prediction, Trace caches. 4

5 Alte consideraţii privind performanţa cache-urilor de instrucţiuni Cercetătorii au arătat ca performanta cache-urilor de instrucţiuni poate varia in funcţie de tipul aplicaţiilor: procedurale sau obiectuale. Din punct de vedere dinamic, funcţiile din limbajul C execută de aproximativ trei ori mai multe instrucţiuni decât funcţiile şi metodele din limbajul C++. Dimensiunea funcţiilor reprezintă un factor important atât în optimizări precum macroexpandarea, fiind direct proporţională cu spaţiul de overhead al fiecărei funcţii - destinat salvării regiştrilor (scrieri / citiri repetate din stivă), transmiterii parametrilor, păstrării rezultatului, precum şi în performanţa cache-ului de instrucţiuni. Caracteristica programelor obiectuale de a realiza multe apeluri de funcţii scurte (reduse ca număr de instrucţiuni) constituie unul din principalele motive pentru care acest tip de programe nu beneficiază de avantajele localităţii spaţiale oferite de blocurile mari de cache. În cercetările sale, Calder afirmă că programele obiectuale necesită un cache de instrucţiuni de două mai mare pentru a obţine rate de miss egale cu programele procedurale [Cal94]. Pornind de la limitările tehnicilor de optimizare tradiţionale bazate pe "eliminarea / adăugarea" unor instrucţiuni, doi cercetători angajaţi ai firmei Hewlett-Packard, Pettis şi Hansen, au propus o tehnică nouă de optimizare globală "procedure splitting", în vederea reducerii ratei de miss la cache-ul de instrucţiuni şi îmbunătăţirea performanţei arhitecturilor de calcul. Având la bază informaţii de profil culese în urma execuţiei anterioare a programelor, procedure splitting urmăreşte partajarea în zone fizice de memorie distincte a basic-block-urilor executate mai frecvent (codul util) şi separat basic-block-urile executate foarte rar sau deloc. Prin această separare se creează noi proceduri, mai scurte şi mai dense (executate în întregime mult mai des) şi care pot fi stocate împreună într-un număr mai mic de pagini de memorie decât iniţial, când codul util era dispersat. Basic-block-urile foarte rar executate sunt mutate la sfârşitul procedurii, pagina care le cuprinde nefiind necesar a fi încărcată în memorie decât foarte rar. De asemenea, în urma aplicării acestei tehnici, la implementarea mecanismului de memorie virtuală, dimensiunea paginii de memorie poate fi aleasă mai mică, de capacitate optimă însă, astfel încât să compenseze timpul mare de acces la disc. Procedure splitting a fost implementată cu succes în cadrul optimizatorului de cod realizat pentru procesorul PA-RISC al companiei Hewlett-Packard [Pett90] DESFĂŞURAREA LUCRĂRII GHID DE UTILIZARE AL SIMULATORULUI Simulatorul PCspim-cache a fost prezentat la workshopul internaţional dedicat educaţiei in arhitectura calculatoarelor (WCAE) realizat in conjuncţie cu cea mai prestigioasa conferinţa din domeniu (ISCA) ţinute in anul 2006 la Boston, SUA [WCAE06]. PCspim-cache reprezintă un simulator puternic parametrizabil care permite vizualizarea grafica in fiecare ciclu de execuţie a impactului unor algoritmi simpli atât asupra setului de registrii generali cat si asupra arhitecturii cache-ului. De exemplu, se poate determina rata de hit in cache-urile de instrucţiuni si date (I/D) variind dimensiunea blocului, gradul de asociativitate, algoritmii de înlocuire a blocurilor conflictuale sau strategia de scriere. Codul simulatorului (sursa şi executabil) poate fi descărcat în mod gratuit de la adresa: Având în vedere caracterul didactic al lucrării, pentru o vizualizare adecvată şi pentru o mai bună înţelegere a modului de lucru a interfeţei microprocesor cache, s-a optat pentru un cache cu o organizare mai simplă, pe un singur nivel, integrat în procesorul Intel Pentium II. Dupa lansarea in executie a aplicatiei spim-cache_ exe pe ecranul sistemului va aparea meniul simulatorului (File / Simulator / Window / Help / CacheSimulation), o fereastra principala cu 6 subferestre (frame-uri) asezate in maniera Tile (Registers / Instruction Main Memory / Data Main 5

6 Memory / Instruction Cache / Data Cache / Session sau Messages) precum si fereastra Console folosita in scopul introducerii informatiilor de la tastatura si afisarii rezultatelor programelor simulate vezi figura 1.1. Pasul următor ar fi încărcarea unui fişier care urmează a fi executat. Se selectează opţiunea Open din meniul File, care va declanşa apariţia ferestrei de selecţie a fişierelor. PCspim-cache acceptă fişiere cu extensia.s, care sunt fişiere în limbaj de asamblare MIPS. Fişierul selectat este analizat sintactic, iar tipurile de erori depistate sunt scrise în fereastra Sesiune. Încărcarea fişierelor se poate face totodată şi din linia de comandă. Pentru reluarea unui program sau încărcarea unui nou fişier e necesară reiniţializarea stărilor maşinii şi a regiştrilor. Reincarcarea aceluiasi program se realizeaza folosind optiunea Reload din meniul Simulator. Reiniţializarea stărilor maşinii (memoriei de instructiuni si date precum si a celor doua cacheuri aferente) şi a regiştrilor se obtine folosind optiunea Reinitialize din meniul Simulator. In general, pentru aceasta situatie se opteaza daca s-a corectat codul in urma gasirii unor erori si trebuie incarcat din nou in memorie si rulat. Daca se selectează opţiunea Clear Registers din meniul Simulator atunci se reinitializeaza doar continutul registrilor, memoria principala si cache-urile pastrandu-si continutul nemodificat. Pentru aceasta situatie se opteaza daca se urmareste simularea in diverse configuratii arhitecturale ale aceluiasi program sursa, de data aceasta, nemodificat. Execuţia programului poate fi realizată în mod continuu, mai multi pasi de executie simultan, sau pas cu pas. Pentru această ultima variantă, se selectează Single Step din meniul Simulator sau tasta F10. Daca se opteaza pentru un numar mai mare de pasi de executie se selecteaza Multiple Step din meniul Simulator sau tasta F11. Pe ecran apare o caseta de dialog care permite introducerea numărului de paşi (instructiunile care vor fi executate simultan). Instrucţiunile sunt executate de la adresa specificata prin intermediul registrului PC. In orice moment executia programului poate continua (spre finalizarea acestuia) prin simpla alegere a optiunii Continue din meniul Simulator. Daca se doreste executia in intregime a programului atunci se poate apasa tasta functionala F5 sau alege optiunea Go din meniul Simulator. Managementul operaţiilor de întrerupere execuţie program (breakpoint) se face prin selecţia opţiunii Breakpoint din meniul Simulator, sau apasand combinatia de taste (Ctrl+B) sau apasand butonul breakpoint din bara de instrumente. O cutie de dialog va apare pe ecran din care se va selecta operaţia (adaugare / stergere punct de intrerupere) şi adresa ţintă pentru operaţia de breakpoint. În cazul selecţiei unei adrese la care nu există instrucţiuni se generează un mesaj de eroare. Când este întâlnit un punct de întrerupere în execuţia programului, programul se opreşte iar la adresa specificata se insereaza in fereastra Text instructiunea break $1. Stabilirea unei date se face alegând opţiunea Set Value din meniul Simulator. O cutie de dialog va apărea pe ecran şi prin intermediul ei se va specifica adresa de memorie sau registrul in care vrem să scriem şi data pe care o setăm la adresa respectivă. Afişarea tabelei de simboluri globale (declarate folosind directiva de asamblare.globl) se face selectand optiunea Display symbol table din meniul Simulator. In fereastra Sesiune vor aparea toate simbolurile (numele variabilelor) din codul asamblare insotite de litera g (simbol global) si de valoarea adresei pe care o substituie. Modificarea fontului aferent textului scris in ferestrele simulatorului se poate face alegand optiunea Set Font din meniul Simulator. Din fereastra Setings care apare la selectarea optiunii cu acelasi nume din meniul Simulator se poate alege modul de lucru simplu al asamblorului MIPS - Bare şi Quiet pentru a nu afişa mesaje la excepţie (vezi figura 1.2). Fereastra principala (cea cu cele 6 frame-uri) a simulatorului PCspim-cache poate fi redimensionată, minimizată, maximizată şi închisă. In cadrul (frame-ul) Sesiune (Messages) sunt afişate mesaje sistem. Există un buffer de dimensiune fixă asociat ferestrei sesiune. Cele mai recent scrise mesaje din fereastră sunt pierdute la fel ca şi mesajele sosite după ce capacitatea buffer-ului s-a atins. In frame-ul 6

7 DATA se afişeaza conţinutul memoriei de date. In frame-ul TEXT se afişeaza conţinutul memoriei de instructiuni. In subfereastra Registru sunt ilustrate valorile registrilor microprocesorului. Spre deosebire de simulatorul SpimSAL la care fereastra Console era de dimensiune fixă, in cadrul simulatorului PCspim-cache fereastra de recepţionare a ieşirilor programului şi care asigură intrarea pentru programe, poate fi minimizată, ascunsă, maximizată, redimensionată sau derulată. Programele interacţionează cu fereastra Console prin apeluri sistem. Figura 1.1. PCspim-cache: Interfaţa cu utilizatorul Pentru a starta o simulare cu studiul cache-ului incorporat utilizatorul trebuie sa selecteze mai intai optiunea <CacheSimulation> din fereastra <Setings> care apare dupa un simplu click pe optiunea cu acelasi nume din meniul <Simulator>. Trebuie specificat ca, in situatia in care nu se opteaza pentru simularea cache-urilor (I/D) atunci functionarea simulatorului PCspim-cache este identica cu cea a mai vechiului SpimSAL implementat de catre James Larus [Lar93]. In acest caz toate instructiunile si datele se scriu / citesc in / din memoria principala (cu zonele Text, Data si Stack). 7

8 Figura 1.2. PCspim-cache: simulare cu studiul cache-ului incorporat Dupa cum se poate observa in figura 1.3, cu ajutorul optiunii <CacheConfiguration> din meniul <CacheSimulation> utilizatorul poate alege sa simuleze doar cache-ul de date, sau doar cel de instructiuni, sau ambele intr-o arhitectura Harvard (bus-uri si cache-uri separate pentru instructiuni si date). Daca se opteaza doar pentru un anumit tip de cache (instructiuni sau date) atunci in fereastra principala a simulatorului nu vor apare informatii referitoare la structura cache-ului nedorit. Totusi, pentru o mai buna intelegere a modului de lucru a intefetei procesor cache in aplicatiile propuse se va exemplifica pe o arhitectura Harvard de memorii cache, care reprezinta de fapt configuratia implicita implementata in simulatorul PCspim-cache. 8

9 Figura 1.3. PCspim-cache: Configurarea cache-ului simulatorului Cu ajutorul optiunii <CacheSetings> din meniul <CacheSimulation> utilizatorul poate stabili geometria cache-ului anterior selectat prin <CacheConfiguration> (vezi figura 1.4). Pentru a putea configura independent cele doua tipuri de memorii cache (instructiuni si date) se va selecta corespunzator din controlul de tip combo box, din dreapta ferestrei de configurare <CacheSetings>. Principalii parametri aferenti cache-ului care pot fi setati prin intermediul interfetei sunt: Capacitatea, care variaza intre 128 bytes si 1 Kbyte. Dimensiunea blocului (4, 8 sau 16 bytes). Gradul de asociativitate (mapat direct, 2-way, 4-way sau complet asociativ). Politica de scriere in cache (la hit sau miss) write through sau write back cu alocare de bloc (write allocate) sau nealocare (write noallocate). Algoritmul de inlocuire a blocurilor conflictuale in caz de miss in cache-urile asociative (LRU sau FIFO). 9

10 Figura 1.4. PCspim-cache: Stabilirea configuratiei cache-urilor Intrucat cache-ul de instructiuni nu poate fi modificat de catre programele utilizator, politica de scriere la hit sau miss este disponibila doar pentru cache-ul de date. Daca este selectata optiunea <<ShowRate>> vor fi afisate statistici referitoare la numarul de accese cu miss, numarul total de accese corespondent fiecarui tip de cache (I/D), daca exista. Ferestrele specifice memoriilor cache de instructiuni si date vor ilustra continutul acestora. Configuratia implicita o reprezinta arhitectura mapata direct si este organizata sub forma unei matrici. Fiecare rand in matrice constituie o linie din cache (in cazul cacheurilor mapate direct o linie este echivalenta cu un singur bloc iar in cazul cache-urilor semiasociative o linie este echivalenta cu un numar de blocuri egal cu gradul de asociativitate). Prima coloana contine identificatorul liniei (sau al setului), in timp ce celelalte coloane contin informatii de date respectiv de control. In cazul cache-ului de instructiuni informatia de date o constituie codificarea fiecarei instructiuni in parte (in hexazecimal). In cazul cache-ului de date, informatia de date o reprezinta data propriu-zisa folosita de programul sursa. Informatia de control aferenta fiecarei linii din cache o reprezinta bitul de validare si campul de tag (in hexazecimal). Din scop pur didactic a fost adaugat campul <<Acc>> care indica rezultatul accesului la cache (hit sau miss). Odata cu cresterea gradului de asociativitate layout-ul cache-ului se modifica. Numarul coloanelor utilizate in cazul cache-urilor mapate direct sunt multiplicate cu gradul de asociativitate specificat in momentul configurarii. Procedand astfel, fiecare rand din fereastra reprezinta un singur set (linia apartinatoare setului), iar prima coloana indica identificatorul setului. In vederea implementarii politicii de evacuare a fost adaugata coloana (LRU/FIFO), pentru fiecare grad de asociativitate, care contine valoarea contorului corespondent algoritmului de inlocuire. In plus, daca utilizatorul specifica politica de scriere write back, este adaugata coloana M pentru fiecare grad de asociativitate (bloc din set) in parte, pentru a arata daca blocul respectiv a fost modificat (este Dirty) si nu reprezinta copia fidela a celui stocat in nivelul inferior de memorie. Pentru o mai buna afisare, in cazul unui cache complet asociativ nu se mai aplica politica de replicare a coloanelor corespunzatoare fiecarui bloc din set. In acest caz, fiecare linie corespunde unui bloc. Pentru cei familiarizati anterior cu simulatorul SpimSAL [Lar93], se impune in continuare precizarea unor detalii de simulare care il diferentiaza pe PCspim-cache de instrumentul propus de James Larus. Astfel: La versiunea anterioara de simulator de procesor MIPS (SPIMSal) un pas de executie (single step) presupunea executia intregii instructiuni (indiferent de cati ciclii ar presupune in realitate un load sau un branch). In versiunea actuala (PCspim-cache), daca este utilizata optiunea de memorii cache, instructiunile load / store sunt executate in mai mult de 1 ciclu. Executia unei instructiuni cu referire la memorie implica 2 accese la cache: unul pentru extragerea instructiunii din ICache si unul pentru aducerea sau scrierea datei din / in DCache. In cazul unui Hit in cache-ul de date, executia instructiunii se face intrun ciclu. In caz de Miss, numarul de pasi de executie difera in functie de strategia de scriere. Se disting urmatoarele cazuri: o I Load cu miss 3 pasi I1. Detectia si marcarea ca miss a accesului I2. Aducerea blocului din MP in DCache I3. Incarcarea informatiei (blocului din DCache) in registrul destinatie. o II Store cu miss 2 sau 3 pasi o IIa. Folosind strategia write no-allocate IIa1. Detectia si marcarea ca miss a accesului Iia2. Stocheaza registrul sursa in memoria principala (nu mai aduce blocul si in cache). Este eficient in cazul in care s-a optat pentru Write Trough. o IIb. Folosind strategia write allocate IIb1. Detectia si marcarea ca miss a accesului IIib2. Extrage blocul din MP in DCache 10

11 IIib3. Scrie datele noi in cache (valoarea registrului sursa) si in paralel in memoria principala (aduce blocul si in cache). Este eficient in cazul in care s-a optat pentru Write Back. o III Miss in ICache Load cu miss doar ca al 3-lea pas (I3) reprezinta executia instructiunii (aducerea instructiunii din MP in registrul instructiunii) 1.4. PROBLEME DE LABORATOR PROPUSE SPRE REZOLVARE EXECUTIA UNOR PROBLEME REZOLVATE FOLOSIND SIMULATORUL PCSPIM-CACHE In acest subcapitol sunt propuse doua aplicaţii: prima (g_cache.s) are un caracter explicativ cu rolul de a evidenţia eficienta memoriilor cache din prisma celor două principii de localitate: temporală şi spaţială. De asemenea, sunt ilustrate interferentele produse de accesul în aceeaşi zona a cache-ului de date din partea a doua tablouri (aflate evident la adrese diferite in memoria principala). A doua aplicaţie se referă la implementarea unei metode software de optimizare care sa determine creşterea ratei de hit, şi anume interschimbarea buclelor. Problema 1. Se consideră următorul programul de test g_cache.s care realizează suma a 8 elemente întregi pe 4 octeţi fiecare 1,1,1,1,2,2,2,2 stocate în memorie la adresa 0x Aceasta operaţie este intercalată cu citirea a cate unui element dintr-un al doilea tablou de 8 elemente 3,3,3,3,4,4,4,4 stocat la adresa 0x Să se ruleze pas cu pas secvenţa de cod şi să se vizualizeze dinamic modificările de stare ale memorie cache. Observaţi respectarea principiului de localitate temporala în cache-ul de instrucţiuni, respectiv a celui de localitate spaţială în cache-ul de date. Realizaţi o statistică privind impactul asupra ratei de hit în cache-uri a următorilor parametri: dimensiunea blocului de date, gradul de asociativitate, algoritmul de înlocuire, strategia de scriere. Secventa C aferenta problemei 1 int j; long suma=0; long Array_A={1,1,1,1,2,2,2,2}; long Array_B={3,3,3,3,4,4,4,4}; int main(){ for (j=8; j>0; j--){ suma+=array_a[j]; /* instructiune ce presupune citirea elementului Array_B[j], poate fi chiar si o afisare cout<< Array_B[j]; */ } } Secventa MIPS aferenta problemei 1.data 0x # adresa de memorie a primului tablou (Array_A) Array_A:.word 1,1,1,1,2,2,2,2 11

12 .data 0x # adresa de memorie a celui de-al doilea tablou (Array_B) Array_B:.word 3,3,3,3,4,4,4,4.text.globl start start: la $2, Array_A # incarcare in registrul $2 a adresei primului element al tabloului Array_A la $3, Array_B # incarcare in registrul $3 a adresei primului element al tabloului Array_B li $6, 0 # $6 suma li $4, 8 # $4 contorul j loop: lw $5, 0($2) # se citeşte elementul curent din tabloul Array_A lw $7, 0($3) # se citeşte elementul curent din tabloul Array_B add $6, $6, $5 # suma+= Array_A[j] add $2, $2, 4 # elementele tabloului Array_A sunt de tip word, pe 4 octeti add $3, $3, 4 # elementele tabloului Array_B sunt de tip word, pe 4 octeti addi $4, $4, -1 # decrementare contor: j-- bgt $4, $0, loop # test continuare bucla: j>0 li $v0, 10 syscall # apel sisistem de incheiere program si cedare control catre sistemul de # operare La încărcarea codului sursa in memoria simulatorului apar modificări in trei dintre ferestrele acestuia (vezi figura 1.5). Astfel, in fereastra registru, PC-ul se va actualiza cu valoarea 0x , adresa de început a segmentului de cod specific ISA procesoarelor MIPS. De asemenea, registrul SP indicatorul de stivă, care pointează la primul cuvânt liber pe stivă, va lua valoarea 0x7FFFEFFC, adresa primei zone libere din stiva. In fereastra de cod (TextSegment), apar instrucţiunile programului. Se disting 4 coloane (de la stânga spre dreapta): adresa instrucţiunilor, codificarea pe 4 octeţi a acestora, exprimarea instrucţiunilor in mnemonica asamblare MIPS aşa cum se procesează si codificarea in mnemonica pseudo-asamblare (aşa cum a scris utilizatorul codul). 12

13 Figura 1.5. PCspim-cache: Ferestrele Registru, Text si Data dupa incarcarea unui program de test De exemplu, prima instrucţiune din codul sursa la $2, Array_A, este in realitate o pseudoinstrucţiune, care se executa din doua instrucţiuni reale MIPS: lui $1, 4096 [Array_A] si ori $2, $1, Prima dintre cele doua instrucţiuni este stocata in memoria la adresa 0x Practic, registrul $1 este folosit de către asamblorul MIPS pentru stocarea adreselor de baza in cazul instrucţiunilor de încărcare a adreselor. Astfel, instrucţiunea lui $1, 4096 [Array_A] încarcă in partea superioara (high) a registrului $1 valoarea =0x1001 rezultând valoarea 0x adresa de început a segmentului de date dinamice. A doua instrucţiune finalizează operaţia propusa prin pseudo-instrucţiunea la $2, Array_A, si anume, adaugă deplasamentul =0x0480 (pe 16 biti) la registrul $1, printr-o operaţie de SAU logic cu ultimii (mai puţin semnificativi) 16 biţi ai acestuia, depunând rezultatul in registrul destinaţie $2 (ori $2, $1, 1152 [Array_A]), obţinându-se in acest fel adresa primului element al tabloului Array_A. In fereastra Data, vor fi stocate pe cate 4 octeţi (datorita directivei de asamblare.word) elementele celor doua tablouri începând cu adresele 0x respectiv 0x Înainte de a prezenta detalii privind execuţia pas cu pas a programului se considera o arhitectura Harvard implicita, cu următoarele caracteristici: cache-uri de instrucţiuni si date mapate direct, de 128 bytes fiecare, cu blocuri de 4 bytes. Astfel, rezulta 32 de seturi (intrări/linii) in cache. Ţinând cont de regula de mapare a unui bloc din memoria principala in cache (vezi capitolul 2) si ştiind parametrii cacheurilor si adresa primei instrucţiuni din memoria principala care este 0x se poate trece la calculul Tagului emis prin adresa si a indexului de bloc din cache. Evident ca primul acces la cache va fi cu miss (de start rece), biţii de validare aferenţi fiecărui bloc din cache fiind resetaţi (vezi in figura 1.6 la cache-ul de instrucţiuni pentru toate blocurile exceptându-l pe primul, cel de Set=0). 13

14 Figura 1.6. PCspim-cache: Modificări in cache-ul de instrucţiuni la execuţia programului Astfel, Index_bloc_in cache = (Adresa bloc MP / Dimensiunea_blocului in bytes) % Nr. blocuri din cache => Index_bloc_in cache = (0x / 4) % 0x20 = 0x % 0x20 = 0. De asemenea, Tag_Emis = (Adresa bloc MP / Dimensiunea_blocului in bytes) / Nr. blocuri din cache sau Tag_Emis = (Adresa bloc MP / Dimensiunea cache-ului => Tag_Emis = (0x / 4) / 0x20 = 0x8000. Primul acces la indexul 0 (setul 0) emis prin adresa, va determina miss in campul Acc, dupa care bitul de validare (V) va fi setat pe 1, marcand blocul valid in cache. Tagul din cache este inlocuit cu Tagul blocului reprezentat de prima instructiune din program (0x8000). Urmeaza apoi aducerea instructiunii in campul cu informatii de date a cache-ului de instructiuni (0x3c codificarea instructiunii lui $1, 4096). Odata adusa instructiunea in cache, ea este excutata intr-un singur pas, practic rezultatul operatiei se va regasi in registrul destinatie. Astfel, in registrul $1 se va incarca valoarea 0x In acelasi fel se procedeaza pentru aducerea si executia urmatoarelor instructiuni. Diferenta este data de faptul ca acestea vor fi inscrise in cache la alte adrese (indexi) si continutul va fi dat de instructiunile respective. Spre exemplu, instructiunea urmatoare este stocata in memorie la adresa 0x Astfel, indexul si tagul vor fi cele de mai jos iar continutul este: ori $2, $1, Index_bloc_in cache = (Adresa bloc MP / Dimensiunea_blocului in bytes) % Nr. blocuri din cache => Index_bloc_in cache = (0x / 4) %0x20 = 0x10001 % 0x20 = 1. De asemenea, Tag_Emis = (Adresa bloc MP / Dimensiunea_blocului in bytes) / Nr. blocuri din cache sau Tag_Emis = (Adresa bloc MP / Dimensiunea cache-ului => Tag_Emis = (0x / 4) / 0x20 = 0x8000. Continuand in acest mod, cele 14 instructiuni reale ale codului sursa sunt aduse in cache-ul de instructiuni la adrese distincte. La aducerea instructiunii cu referire la memorie lw $5, 0($2), dupa tratarea accesului la cache-ul de instructiuni (cu miss la prima executie a acesteia) se va accesa si cache-ul de date. Valoarea adresei specificata prin registrul $2 (0x ) va determina tagul si indexul din cacheul de date, dupa aceeasi regula de mapare, avand in vedere setarile stabilite initial. Astfel, indexul si tagul 14

15 vor fi cele de mai jos iar continutul este 1 (primul element al tabloului Array_A, stocat pe 4 octeti) vezi figura 1.7. Index_bloc_in cache = (Adresa bloc MP / Dimensiunea_blocului in bytes) % Nr. blocuri din cache => Index_bloc_in cache = (0x / 4) % 0x20 = 0x % 0x20 = 0. De asemenea, Tag_Emis = (Adresa bloc MP / Dimensiunea_blocului in bytes) / Nr. blocuri din cache sau Tag_Emis = (Adresa bloc MP / Dimensiunea cache-ului => Tag_Emis = (0x / 4) / 0x20 = 0x Toate aceste accese cu miss au fost de tip compulsory intrucat au reprezentat primele accese la cache (atat pentru instructiuni cat si pentru date). Urmează execuţia celei de-a doua instrucţiuni cu referire la memorie lw $7, 0($3). Se va accesa cache-ul de date cu adresa specificata prin registrul $3 (0x ) obţinându-se tagul (0x20000A) si indexul (0). Din cate se observa, accesul este cu miss, insa de conflict de aceasta data deoarece la indexul 0 in cache se găseşte alt tag decât cel emis, si anume 0x Conţinutul locaţiei 0 din cache se va modifica cu valoarea 3, (primul element al tabloului Array_B, stocat pe acelaşi număr de octeţi, si anume 4). Figura 1.7. PCspim-cache: Primul acces la cache-ul de date 15

16 A 15-a instrucţiune dinamica (al 15 acces la cache-ul de instructiuni) presupune reluarea primei instrucţiuni din bucla loop si anume: lw $5, 0($2), ceea ce conduce la aparitia primului acces cu hit la cache-ul de instrucţiuni. Continuând execuţia practic se vor obţine accese cu hit la cache-ul de instrucţiuni pana când se parcurg ambele tablouri. Ultimele doua instrucţiuni (apelul sistem de încheiere a execuţiei si cedare a controlului către sistemul de operare) sunt aduse abia la final după repetarea instrucţiunilor din bucla. Din punct de vedere statistic cache-ul de instrucţiuni este caracterizat de următoarele rezultate: 56 accese cu hit dintr-un total de 72 accese. Practic sunt 4 pseudo-instrucţiuni in afara buclei (6 instrucţiuni reale MIPS), 2 după bucla, iar aceasta conţine 7 pseudo-instrucţiuni care în realitate sunt 8 instrucţiuni reale MIPS si care se reiau de 8 ori (6+8*8+2). Din cele 8 iteratii ale buclei doar prima va fi cu miss => 7*8 accese cu hit. In ce priveşte cache-ul de date, la aceasta configuraţie (cache mapat direct) sunt 0 accese cu hit din 16 accese (atâtea elemente sunt in cele doua tablouri). Creştem dimensiunea blocului. Creştem asociativitatea, reluam execuţia, determinam statisticile. Problema 2 (atenţie variabile declarate să coincidă în C cu MIPS de finisat, eventual tratat şi subliniat câştigul prin interschimbare dar cu creştere a dimensiunii blocului). Se consideră următorul programul de test cache_loop.s care realizează în paralel suma elementelor întregi (pe un octet) ale unei matrice Array_A[10,20] mai întâi toate elementele unei coloane. Se aplică metoda loop interchange (însumarea întâi a tuturor elementelor de pe o linie cod sursa cache_loop_i.s) şi se vizualizează comparativ rata de hit in cache. Să se studieze localitatea temporală, variind numărul de iteraţii (1, 5, 10 şi 20) ale buclei exterioare (numărul de coloane ale matricei). Secvenţa C aferenta problemei 2, buclele in configuraţia iniţială s=0; for(j=0;j<20;j++) for(i=0;i<10;i++) s+=a[i][j]; # s=a[0][j]+a[1][j]+...+a[9][j] Secventa MIPS aferenta problemei 2, buclele in configuratia initiala.data 0x Array_A:.byte 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.byte 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.byte 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.byte 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4.byte 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5.byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6.byte 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7.byte 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9.byte 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10.text.globl start start: la $2, Array_A li $6, 0 # s - suma 16

17 li $4, 10 # m - nr. linii din matrice li $5, 20 # n - nr. coloane din matrice li $10,0 # j - indexul pe coloane loop_j: # addi $10, $10, 1 li $8, 0 # i - indexul pe linie loop_i: # addi $8, $8, 1 multu $5,$8 # $11 <- n * i mflo $11 # mulou $11,$5,$8 add $9,$11,$10 # $9 <- n * i + j add $9, $2, $9 # calculez adresa el. a[i][j] lb $7, 0($9) add $6, $6, $7 addi $8, $8, 1 blt $8, $4, loop_i addi $10, $10, 1 blt $10, $5, loop_j li $v0, 10 syscall Secvenţa C aferenta problemei 2, buclele interschimbate s=0; for(i=0;i<10;i++) for(j=0;j<20;j++) s+=a[i][j]; # s=a[i][0]+a[i][1]+...+a[i][19] Secvenţa MIPS aferenta problemei 2, buclele interschimbate.data 0x Array_A:.byte 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.byte 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.byte 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3.byte 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4.byte 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5.byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6.byte 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7.byte 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9.byte 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10.text.globl start 17

18 start: la $2, Array_A li $6, 0 # s - suma li $4, 10 # m - nr. linii din matrice li $5, 20 # n - nr. coloane din matrice li $8,-1 # i - indexul pe coloane loop_i: addi $8, $8, 1 li $10, 0 # j - indexul pe linie loop_j: multu $5,$8 # $11 <- n * i mflo $11 add $9,$11,$10 # $9 <- n * i + j add $9, $2, $9 # calculez adresa el. a[i][j] lb $7, 0($9) add $6, $6, $7 addi $10, $10, 1 blt $10, $5, loop_j blt $8, $4, loop_i li $v0, 10 syscall PROBLEME PROPUSE SPRE REZOLVARE a) Să se verifice execuţia tuturor programelor implementate în limbaj de asamblare MIPS pe parcursul lucrărilor L2 L4. Adaptaţi codul sursă pentru buna funcţionare pe noul simulator. b) Analizaţi influenţa unor opţiuni de simulare de tipul (Delayed Branches, Delayed Load şi Cache Setings) asupra execuţiei programelor anterioare. BIBLIOGRAFIE [Cal94] Calder B., Grunwald D., Zorn B. Quantifying Behavioral Differences Between C and C++ Programs, Journal of Programming Languages, pages , Vol. 2, Num. 4, [Flo00] Florea A., Egan C. Reducing the Technological Gap Between an Advanced Processor and the Memory Hierarchy System the 4 th International Conference on Technical Informatics (CONTI 00) Timişoara, [Flo03] Florea, A., Vinţan N. L. Simularea şi optimizarea arhitecturilor de calcul în aplicaţii practice, Editura Matrix ROM, Bucureşti, ISBN , 2003 (443 pg. + CD atasat). Cartea a obtinut Premiul Tudor Tanasescu al Academiei Romane pe anul 2003, decernat in 23 decembrie [Hen07] Hennessy J. L., Patterson D. A. Computer Architecture: A Quantitative Approach, Morgan Kaufmann, 2007 (4th edition). 18

19 [Hill88] Hill, M. A Case for Direct-Mapped Caches, IEEE Computer, December [Jou90] Jouppi, N. Improving Direct-Mapped Cache Performance by the addition of a Small Fully Associative Cache and Prefetch Buffers, Proc. 17 th International Symposium On Computer Architecture, [Lar93] Larus J. - SPIM S20: A MIPS R2000 Simulator, Morgan Kaufmann Publishers, [Pett90] Pettis K., Hansen R.C. Profile guided code positioning. In Proceedings of the ACM SIGPLAN'90 Conference on Programming Language Design and Implementation, pages 16-27, June [Pet06] Petit S., Tomás N., Sahuquillo J., Pont A. - An Execution-Driven Simulation Tool for Teaching Cache Memories in Introductory Computer Organization Courses, Proceedings of the 2006 workshop on Computer architecture education, Boston, MA Saturday, June, [Sti94] Stiliadis, D., Varma, A. Selective Victim Caching: A Method to Improve the Performance of Direct-Mapped Caches, TR UCSC-CRL-93-41, University of California, 1994 (republished in a shorter version in IEEE Trans. on Computers, May 1997). [Vin00] Vinţan N. L., Florea A. Microarhitecturi de procesare a informaţiei, Editura Tehnică, Bucureşti, ISBN , 2000 (312 pg.) [Yi06] Yi J.J., Lilja D.J. Simulation of Computer Architectures: Simulators, Benchmarks, Methodologies, and Recommendations, IEEE Transactions on Computers, vol. 55, No. 3, March [WCAE06] Workshop on Computer Architecture Education held in conjunction with 33 rd International Symposium on Computer Architecture, Boston, USA, 19

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice "Îmbunătăţirea proceselor şi activităţilor educaţionale în cadrul programelor de licenţă şi masterat în domeniul

More information

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila MS POWER POINT s.l.dr.ing.ciprian-bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Pornire PowerPoint Pentru accesarea programului PowerPoint se parcurg următorii paşi: Clic pe butonul de

More information

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple Memoria cache Memoria virtuală 1 Memorii RAM: datele sunt identificate cu ajutorul unor adrese unice Memorii asociative:

More information

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin Structura și Organizarea Calculatoarelor Titular: BĂRBULESCU Lucian-Florentin Chapter 3 ADUNAREA ȘI SCĂDEREA NUMERELOR BINARE CU SEMN CONȚINUT Adunarea FXP în cod direct Sumator FXP în cod direct Scăderea

More information

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. 9. Memoria Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. Primul nivel conține memorie de program cache (L1P) și memorie de date cache (L1D). Al doilea

More information

Metrici LPR interfatare cu Barix Barionet 50 -

Metrici LPR interfatare cu Barix Barionet 50 - Metrici LPR interfatare cu Barix Barionet 50 - Barionet 50 este un lan controller produs de Barix, care poate fi folosit in combinatie cu Metrici LPR, pentru a deschide bariera atunci cand un numar de

More information

Versionare - GIT ALIN ZAMFIROIU

Versionare - GIT ALIN ZAMFIROIU Versionare - GIT ALIN ZAMFIROIU Controlul versiunilor - necesitate Caracterul colaborativ al proiectelor; Backup pentru codul scris Istoricul modificarilor Terminologie și concepte VCS Version Control

More information

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N Pentru a putea vizualiza imaginile unei camere web IP conectată într-un router ZTE H218N sau H298N, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

Procesarea Imaginilor

Procesarea Imaginilor Procesarea Imaginilor Curs 11 Extragerea informańiei 3D prin stereoviziune Principiile Stereoviziunii Pentru observarea lumii reale avem nevoie de informańie 3D Într-o imagine avem doar două dimensiuni

More information

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document

More information

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL PCSPIM UAL DPE. Fig.1. Structura unui sistem de calcul

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL PCSPIM UAL DPE. Fig.1. Structura unui sistem de calcul SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL PCSPIM I. Sisteme de calcul 1. Arhitectura generală a unui sistem de calcul DPI UCC MEM Canale I/E DPI/E, MEM externe UAL DPE UCP UC Fig.1. Structura

More information

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows Ghid identificare versiune AWP, instalare AWP 4.5.4 şi verificare importare certificat în Store-ul de Windows Data: 28.11.14 Versiune: V1.1 Nume fişiser: Ghid identificare versiune AWP, instalare AWP 4-5-4

More information

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962) ARBORI AVL (denumiti dupa Adelson-Velskii si Landis, 1962) Georgy Maximovich Adelson-Velsky (Russian: Гео ргий Макси мович Адельсо н- Ве льский; name is sometimes transliterated as Georgii Adelson-Velskii)

More information

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL QTSPIM UAL DPE. Fig.1. Structura unui sistem de calcul

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL QTSPIM UAL DPE. Fig.1. Structura unui sistem de calcul SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL QTSPIM I. Sisteme de calcul 1. Arhitectura generală a unui sistem de calcul DPI UCC MEM Canale I/E DPI/E, MEM externe UAL DPE UCP UC Fig.1. Structura

More information

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban Reflexia şi refracţia luminii. Aplicaţii. Sumar 1. Indicele de refracţie al unui mediu 2. Reflexia şi refracţia luminii. Legi. 3. Reflexia totală 4. Oglinda plană 5. Reflexia şi refracţia luminii în natură

More information

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: 9, La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - (ex: "9", "125", 1573" - se va scrie fara ghilimele) Parola: -

More information

Documentaţie Tehnică

Documentaţie Tehnică Documentaţie Tehnică Verificare TVA API Ultima actualizare: 27 Aprilie 2018 www.verificaretva.ro 021-310.67.91 / 92 info@verificaretva.ro Cuprins 1. Cum funcţionează?... 3 2. Fluxul de date... 3 3. Metoda

More information

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) Semnale şi sisteme Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) http://shannon.etc.upt.ro/teaching/ssist/ 1 OBIECTIVELE CURSULUI Disciplina îşi propune să familiarizeze

More information

Subiecte Clasa a VI-a

Subiecte Clasa a VI-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

More information

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER 3.2 Arhitectura setului de instrucţiuni ISA Copyright Paul GASNER Programarea CPU Programele scrise în limbaje de nivel înalt trebuie compilate pentru a obţine un program executabil Din punctul de vedere

More information

Modalitǎţi de clasificare a datelor cantitative

Modalitǎţi de clasificare a datelor cantitative Modalitǎţi de clasificare a datelor cantitative Modul de stabilire a claselor determinarea pragurilor minime şi maxime ale fiecǎrei clase - determinǎ modul în care sunt atribuite valorile fiecǎrei clase

More information

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; } Arbori Arborii, ca şi listele, sunt structuri dinamice. Elementele structurale ale unui arbore sunt noduri şi arce orientate care unesc nodurile. Deci, în fond, un arbore este un graf orientat degenerat.

More information

Update firmware aparat foto

Update firmware aparat foto Update firmware aparat foto Mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să efectuaţi acest update de firmware. Dacă nu aveţi încredere că puteţi realiza acest update cu succes, acesta

More information

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router Pentru a putea vizualiza imaginile unei camere web IP conectată într-un echipament Huawei HG8121H, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

Itemi Sisteme de Operare

Itemi Sisteme de Operare Itemi Sisteme de Operare 1. Pentru a muta un dosar (folder) de pe partiţia C: pe partiţia D: folosim: a. New Folder b. Ctrl + C din bara de instrumente şi Copy; c. Ctrl + X şi Ctrl + V; d. Edit Paste;

More information

Mecanismul de decontare a cererilor de plata

Mecanismul de decontare a cererilor de plata Mecanismul de decontare a cererilor de plata Autoritatea de Management pentru Programul Operaţional Sectorial Creşterea Competitivităţii Economice (POS CCE) Ministerul Fondurilor Europene - Iunie - iulie

More information

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Nume şi Apelativ prenume Adresa Număr telefon  Tip cont Dobânda Monetar iniţial final Enunt si descriere aplicatie. Se presupune ca o organizatie (firma, banca, etc.) trebuie sa trimita scrisori prin posta unui numar (n=500, 900,...) foarte mare de clienti pe care sa -i informeze cu diverse

More information

Reţele Neuronale Artificiale în MATLAB

Reţele Neuronale Artificiale în MATLAB Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale Artificiale, grupate sub numele de Neural Network Toolbox.

More information

Auditul financiar la IMM-uri: de la limitare la oportunitate

Auditul financiar la IMM-uri: de la limitare la oportunitate Auditul financiar la IMM-uri: de la limitare la oportunitate 3 noiembrie 2017 Clemente Kiss KPMG in Romania Agenda Ce este un audit la un IMM? Comparatie: audit/revizuire/compilare Diferente: audit/revizuire/compilare

More information

Ghid pentru configurarea şi utilizarea aplicaţiei clicksign Demo

Ghid pentru configurarea şi utilizarea aplicaţiei clicksign Demo Ghid pentru configurarea şi utilizarea aplicaţiei clicksign Demo 2.6.9.223 Cuprins 1 Cadru general...2 2 Obţinerea unui certificat digital...3 3 Configurarea aplicaţiei clicksign...5 4 Utilizarea aplicaţiei

More information

Managementul referinţelor cu

Managementul referinţelor cu TUTORIALE DE CULTURA INFORMAŢIEI Citarea surselor de informare cu instrumente software Managementul referinţelor cu Bibliotecar Lenuţa Ursachi PE SCURT Este gratuit Poţi adăuga fişiere PDF Poţi organiza,

More information

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4 Metode merice - Lucrarea de laborator 4 Lucrarea de laborator nr. 4 I. Scopul lucrării Elemente de programare în MAPLE II. III. Conţinutul lucrării 1. Atribuirea. Decizia. Structuri repetitive. 2. Proceduri

More information

GHID DE TERMENI MEDIA

GHID DE TERMENI MEDIA GHID DE TERMENI MEDIA Definitii si explicatii 1. Target Group si Universe Target Group - grupul demografic care a fost identificat ca fiind grupul cheie de consumatori ai unui brand. Toate activitatile

More information

Propuneri pentru teme de licență

Propuneri pentru teme de licență Propuneri pentru teme de licență Departament Automatizări Eaton România Instalație de pompare cu rotire în funcție de timpul de funcționare Tablou electric cu 1 pompă pilot + 3 pompe mari, cu rotirea lor

More information

X-Fit S Manual de utilizare

X-Fit S Manual de utilizare X-Fit S Manual de utilizare Compatibilitate Acest produs este compatibil doar cu dispozitivele ce au următoarele specificații: ios: Versiune 7.0 sau mai nouă, Bluetooth 4.0 Android: Versiune 4.3 sau mai

More information

Metoda BACKTRACKING. prof. Jiduc Gabriel

Metoda BACKTRACKING. prof. Jiduc Gabriel Metoda BACKTRACKING prof. Jiduc Gabriel Un algoritm backtracking este un algoritm de căutare sistematică și exhausivă a tuturor soluțiilor posibile, dintre care se poate alege apoi soluția optimă. Problemele

More information

Figura x.1 Ecranul de pornire al mediului de dezvoltare

Figura x.1 Ecranul de pornire al mediului de dezvoltare x. Mediul de dezvoltare MICROSOFT VISUAL C++ În cadrul acestui capitol vom prezenta Microsoft Visual C++, din cadrul suitei Microsoft Visual Studio 2012, care este un mediu de programare care suportă dezvoltarea

More information

SIMULAREA SISTEMULUI IERARHIC DE MEMORIE ÎN ARHITECTURI DE TIP MULTIPROCESOR CU MEMORIE PARTAJATĂ

SIMULAREA SISTEMULUI IERARHIC DE MEMORIE ÎN ARHITECTURI DE TIP MULTIPROCESOR CU MEMORIE PARTAJATĂ SIMULAREA SISTEMULUI IERARHIC DE MEMORIE ÎN ARHITECTURI DE TIP MULTIPROCESOR CU MEMORIE PARTAJATĂ 1.1. INTRODUCERE. SCOPUL LUCRĂRII Limitările majore în cresterea performanței sistemelor monoprocesor (așa

More information

Managementul Proiectelor Software Metode de dezvoltare

Managementul Proiectelor Software Metode de dezvoltare Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Managementul Proiectelor Software Metode de dezvoltare 2 Metode structurate (inclusiv metodele OO) O mulțime de pași și

More information

ISBN-13:

ISBN-13: Regresii liniare 2.Liniarizarea expresiilor neliniare (Steven C. Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, 3rd ed, ISBN-13:978-0-07-340110-2 ) Există cazuri în care aproximarea

More information

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC Anul II Nr. 7 aprilie 2013 ISSN 2285 6560 Referent ştiinţific Lector univ. dr. Claudiu Ionuţ Popîrlan Facultatea de Ştiinţe Exacte Universitatea din

More information

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare).

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Formatul instrucţiunilor

More information

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A. Excel Advanced Curriculum Școala Informală de IT Tel: +4.0744.679.530 Web: www.scoalainformala.ro / www.informalschool.com E-mail: info@scoalainformala.ro Cuprins 1. Funcții Excel pentru avansați 2. Alte

More information

Sisteme de operare 19. Gestiunea memoriei

Sisteme de operare 19. Gestiunea memoriei Platformăde e-learning și curriculăe-content pentru Sisteme de operare 19. Gestiunea memoriei Ierarhia memoriei 2 Memoria principală De obicei RAM (Random Access Memory) Menținerea mai multor procese Ce

More information

Mai bine. Pentru c putem.

Mai bine. Pentru c putem. 1 CUPRINS: 1. SUMAR APLICAŢIE...... 3 1.1 Introducere... 3 1.2 Tipul de aplicaţie... 3 2. SPECIFICAŢII FUNCŢIONALE... 3 3. INSTALARE... 3 3.1 Introducere... 3 3.2 Ce trebuie să verificaţi înainte de a

More information

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm Preparatory Problems 1Se dau punctele coliniare A, B, C, D în această ordine aî AB 4 cm, AC cm, BD 15cm a) calculați lungimile segmentelor BC, CD, AD b) determinați distanța dintre mijloacele segmentelor

More information

1.1. SCHEMA BLOC A UNUI MICROSISTEM. ROLUL BLOCURILOR COMPONENTE, FUNCŢIONARE DE ANSAMBLU.

1.1. SCHEMA BLOC A UNUI MICROSISTEM. ROLUL BLOCURILOR COMPONENTE, FUNCŢIONARE DE ANSAMBLU. Lucian N. VINŢAN - Organizarea si proiectarea microarhitecturilor de calcul (pentru uzul studenţilor), Universitatea L. Blaga din Sibiu, 2010, http://webspace.ulbsibiu.ro/lucian.vintan/ 1. O INTRODUCERE

More information

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii www.pwc.com/ro Aspecte controversate în Procedura Insolvenţei şi posibile soluţii 1 Perioada de observaţie - Vânzarea de stocuri aduse în garanţie, în cursul normal al activității - Tratamentul leasingului

More information

Lucrarea Nr.1. Sisteme de operare. Generalitati

Lucrarea Nr.1. Sisteme de operare. Generalitati Lucrarea Nr.1 Sisteme de operare. Generalitati Scopul lucrarii Lucrarea îsi propune familiarizarea studentilor cu sistemele de operare disponibile în laborator, respectiv acele sisteme de operare cu ajutorul

More information

Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect-

Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect- Universitatea Politehnica Bucureşti Facultatea de Automaticăşi Calculatoare Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect-

More information

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog Laborator 1 Programare declarativă O paradigmă de programare în care controlul fluxului de execuție este lăsat la latitudinea implementării limbajului, spre deosebire de programarea imperativă în care

More information

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive. . egimul de curent continuu de funcţionare al sistemelor electronice În acest regim de funcţionare, valorile mărimilor electrice ale sistemului electronic sunt constante în timp. Aşadar, funcţionarea sistemului

More information

Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice

Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice Arhitecturi cu fire de execuție multiple 1 Arhitecturi cu memorie partajată

More information

Actualizarea firmware-ului pentru aparatul foto digital SLR

Actualizarea firmware-ului pentru aparatul foto digital SLR Actualizarea firmware-ului pentru aparatul foto digital SLR Vă mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să realizaţi actualizarea firmwareului. Dacă nu sunteţi sigur că puteţi realiza

More information

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M ) FLEXIMARK FCC din oțel inoxidabil este un sistem de marcare personalizată în relief pentru cabluri și componente, pentru medii dure, fiind rezistent la acizi și la coroziune. Informații Included in FLEXIMARK

More information

CERERI SELECT PE O TABELA

CERERI SELECT PE O TABELA SQL - 1 CERERI SELECT PE O TABELA 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325

More information

Semnare digitală configurări și proceduri de lucru Manual de utilizare

Semnare digitală configurări și proceduri de lucru Manual de utilizare Semnare digitală configurări și proceduri de lucru Manual de utilizare Servicii informatice privind activităţi ale comunităţii portuare Acest document şi informaţiile conţinute în el sunt în proprietatea

More information

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home

Ce pot face pe hi5? Organizare si facilitati. Pagina de Home Ce este Hi5!? hi5 este un website social care, în decursul anului 2007, a fost unul din cele 25 cele mai vizitate site-uri de pe Internet. Compania a fost fondată în 2003 iar pana in anul 2007 a ajuns

More information

ALGORITMI DE GESTIUNE A PAGINILOR DE MEMORIE

ALGORITMI DE GESTIUNE A PAGINILOR DE MEMORIE ALGORITMI DE GESTIUNE A PAGINILOR DE MEMORIE Ceausu Nicolae Bogdan Aparitia erorii de pagina Operatia de inlocuire a paginilor este necesara atunci cand apare o asa-numita eroare de pagina (in engleza

More information

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs Acta Technica Napocensis: Civil Engineering & Architecture Vol. 57, No. 1 (2014) Journal homepage: http://constructii.utcluj.ro/actacivileng Updating the Nomographical Diagrams for Dimensioning the Concrete

More information

6. Bucle. 6.1 Instrucţiunea while

6. Bucle. 6.1 Instrucţiunea while 6. Bucle În capitolul trecut am văzut cum putem selecta diferite instrucţiuni pentru execuţie folosind instrucţiunea if. O buclă este o structură de control care provoacă executarea unei instrucţiuni sau

More information

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET CAIETUL DE SARCINI Organizare evenimente VS/2014/0442 Euro network supporting innovation for green jobs GREENET Str. Dem. I. Dobrescu, nr. 2-4, Sector 1, CAIET DE SARCINI Obiectul licitaţiei: Kick off,

More information

Lucrarea nr.1. Crearea unui document Word

Lucrarea nr.1. Crearea unui document Word Lucrarea nr.1 Crearea unui document Word Scopul lucrării Lucrarea are drept scop inițiere și familiarizarea studenților cu interfața editorului de text Microsoft Word 2007. Modul de lucru Word este un

More information

Multicore Multiprocesoare Cluster-e

Multicore Multiprocesoare Cluster-e Multicore Multiprocesoare Cluster-e O mare perioadă de timp, creearea de calculatoare puternice conectarea mai multor calculatoare de putere mică. Trebuie creat software care să știe să lucreze cu un număr

More information

Olimpiad«Estonia, 2003

Olimpiad«Estonia, 2003 Problema s«pt«m nii 128 a) Dintr-o tabl«p«trat«(2n + 1) (2n + 1) se ndep«rteaz«p«tr«telul din centru. Pentru ce valori ale lui n se poate pava suprafata r«mas«cu dale L precum cele din figura de mai jos?

More information

Metoda de programare BACKTRACKING

Metoda de programare BACKTRACKING Metoda de programare BACKTRACKING Sumar 1. Competenţe............................................ 3 2. Descrierea generală a metodei............................. 4 3......................... 7 4. Probleme..............................................

More information

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip Mods euro truck simulator 2 harta romaniei by elyxir Mods euro truck simulator 2 harta romaniei by elyxir.zip 26/07/2015 Download mods euro truck simulator 2 harta Harta Romaniei pentru Euro Truck Simulator

More information

Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell

Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell Termen de trimitere a temei: Luni, 31 martie 2008, ora 23:55 1. Specificatii functionale O arhitectura de tip Cell consta din urmatoarele

More information

Laborator 07. Procesorul MIPS versiune pe 16 biți, cu un ciclu de ceas pe instrucțiune

Laborator 07. Procesorul MIPS versiune pe 16 biți, cu un ciclu de ceas pe instrucțiune Laborator 07 Procesorul MIPS versiune pe 16 biți, cu un ciclu de ceas pe instrucțiune Unitatea de Instruction Execute EX / Unitatea de Memorie MEM / Unitatea Write-Back WB 0. Resurse minimale necesare!

More information

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales MANAGEMENTUL CALITĂȚII - MC Proiect 5 Procedura documentată pentru procesul ales CUPRINS Procedura documentată Generalități Exemple de proceduri documentate Alegerea procesului pentru realizarea procedurii

More information

.. REGISTRE Registrele sunt circuite logice secvenţiale care primesc, stochează şi transferă informaţii sub formă binară. Un registru este format din mai multe celule bistabile de tip RS, JK sau D şi permite

More information

APLICAŢIE INFORMATICĂ PENTRU PREGĂTIREA MISIUNILOR DE NIVEL TACTIC

APLICAŢIE INFORMATICĂ PENTRU PREGĂTIREA MISIUNILOR DE NIVEL TACTIC APLICAŢIE INFORMATICĂ PENTRU PREGĂTIREA MISIUNILOR DE NIVEL TACTIC Asist.univ.drd. Romana OANCEA Conf.univ.dr.ing. Ghiţă BÂRSAN Academia Forţelor Terestre Nicolae Bălcescu Sibiu Abstract The paper describes

More information

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe Candlesticks 14 Martie 2013 Lector : Alexandru Preda, CFTe Istorie Munehisa Homma - (1724-1803) Ojima Rice Market in Osaka 1710 devine si piata futures Parintele candlesticks Samurai In 1755 a scris The

More information

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

INSTRUMENTE DE MARKETING ÎN PRACTICĂ: INSTRUMENTE DE MARKETING ÎN PRACTICĂ: Marketing prin Google CUM VĂ AJUTĂ ACEST CURS? Este un curs util tuturor celor implicați în coordonarea sau dezvoltarea de campanii de marketingși comunicare online.

More information

KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT

KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT România CONTINE URMATOARELE JOCURI: AFRICAN WILD DIAMONDS CHERRY KISS WILD LADY JOKER BAR REELS OF RA RETRO WHEELS ROUTE 81 SIMPLY GOLD XXL SIMPLY 6

More information

LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE

LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE BOBST EXPERTFOLD 80 ACCUBRAILLE GT Utilajul ACCUBRAILLE GT Bobst Expertfold 80 Aplicarea codului Braille pe cutii a devenit mai rapidă, ușoară și mai eficientă

More information

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig.

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig. Proceduri stocate Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig. 1 Odată cu deschiderea editorului SQL, apare și bara de instrumente

More information

INTEROGĂRI ÎN SQL SERVER

INTEROGĂRI ÎN SQL SERVER INTEROGĂRI ÎN SQL SERVER Principala operaţie efectuată într-o bază de date este operaţia de extragere a datelor, care se realizează cu ajutorul unei clauze SELECT. SELECT Clauza SELECT are o sintaxă foarte

More information

PROIECTAREA ALGORITMILOR

PROIECTAREA ALGORITMILOR Universitatea Constantin Brâncuşi Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu 3 PROIECTAREA ALGORITMILOR Lect. univ. dr. Adrian Runceanu 1 Curs 3 Alocarea dinamică de

More information

Memorii în Sisteme Embedded. Tipuri de memorii. Arhitectura memoriilor.

Memorii în Sisteme Embedded. Tipuri de memorii. Arhitectura memoriilor. Memorii în Sisteme Embedded Tipuri de memorii. Arhitectura memoriilor. De ce avem nevoie de memorii în sisteme embedded? Stocarea datelor Temporar Pe termen lung Comunicare între componentele programelor

More information

Curs 1 17 Februarie Adrian Iftene

Curs 1 17 Februarie Adrian Iftene Curs 1 17 Februarie 2011 Adrian Iftene adiftene@info.uaic.ro 1 Limbajele calculatorului Compilate Interpretate Scripting P-cod Orientate pe aspect Orientate spre date 2 Cum lucrează? Orice program trebuie

More information

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII Adrian Mugur SIMIONESCU MODEL OF A STATIC SWITCH FOR ELECTRICAL SOURCES WITHOUT INTERRUPTIONS IN LOAD

More information

Ghid de utilizare Modul CI+

Ghid de utilizare Modul CI+ Ghid de utilizare Modul CI+ www.orange.md Introducere Vă mulțumim că aţi ales modulul CI+. Acesta funcționează împreună cu televizorul Dvs. și vă ajută să vedeți conținutul oferit în cadrul pachetului

More information

Ghid de utilizare a Calculatorului valorii U

Ghid de utilizare a Calculatorului valorii U Ghid de utilizare a Calculatorului valorii U la Apelul de Propuneri de Proiecte Nr.3 pentru Instituțiile din Sectorul Public pentru investiții în Eficiență Energetică și Surse de Energie Regenerabilă Versiunea

More information

R O M Â N I A CURTEA CONSTITUŢIONALĂ

R O M Â N I A CURTEA CONSTITUŢIONALĂ R O M Â N I A CURTEA CONSTITUŢIONALĂ Palatul Parlamentului Calea 13 Septembrie nr. 2, Intrarea B1, Sectorul 5, 050725 Bucureşti, România Telefon: (+40-21) 312 34 84; 335 62 09 Fax: (+40-21) 312 43 59;

More information

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE WebQuest O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE Cuvinte cheie Internet WebQuest constructivism suport educational elemente motivationale activitati de grup investigatii individuale Introducere Impactul tehnologiilor

More information

Implementarea paralelismului la nivel de instructiune în microprocesoarele superscalare

Implementarea paralelismului la nivel de instructiune în microprocesoarele superscalare Revista Informatica Economica, nr. 8/1998 67 Implementarea paralelismului la nivel de instructiune în microprocesoarele superscalare Prof.dr.ing. Gheorghe DODESCU Catedra de Informatica Economica, A.S.E.

More information

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE)

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE) ANTICOLLISION ALGORITHM FOR VV AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP VV (VEHICLE-TO-VEHICLE) 457 Florin MARIAŞIU*, T. EAC* *The Technical University

More information

CURS 2. Reprezentarea numerelor intregi si reale. Sistem de numeraţie

CURS 2. Reprezentarea numerelor intregi si reale. Sistem de numeraţie Sistem de numeraţie CURS 2 Reprezentarea numerelor intregi si reale F.Boian, Bazele matematice ale calculatoarelor, UBB Cluj-Napoca, 2002 How computers see numbers and letters http://faculty.etsu.edu/lutter/courses/phys4007/p4007append_f.pdf

More information

DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului produselor pentru construcții UE 305/2011/UE

DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului produselor pentru construcții UE 305/2011/UE S.C. SWING TRADE S.R.L. Sediu social: Sovata, str. Principala, nr. 72, judetul Mures C.U.I. RO 9866443 Nr.Reg.Com.: J 26/690/1997 Capital social: 460,200 lei DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

4. Asignarea adreselor IP

4. Asignarea adreselor IP 4. Asignarea adreselor IP Scopul acestei lucrări este să familiarizeze studenţii cu noțiunea de adresă IP, clase de adrese IP, mască de reţea, adresă IP de rețea, adresă IP de broadcast, metode de alocare

More information

Laboratorul 1 1. Introducere

Laboratorul 1 1. Introducere Laboratorul 1 1. Introducere Mediul LabWindows/CVI (C for Virtual Instruments) este un mediu de dezvoltare integrat utilizat în crearea de produse software bazate pe o interfaţă grafică Windows, toate

More information

Principalele blocuri interne ale microprocesorului 8085 sunt prezentate în Figura 1: Comandă întreruperi și I/O seriale. Bistabile condiții (5 biți)

Principalele blocuri interne ale microprocesorului 8085 sunt prezentate în Figura 1: Comandă întreruperi și I/O seriale. Bistabile condiții (5 biți) L6. ARHITECTURA MICROPROCESORULUI 8085. MODUL DE EXECUȚIE A INSTRUCȚIUNILOR. APLICAȚII DE VIZUALIZARE/EDITARE A CONȚINUTULUI UNOR REGISTRE ȘI LOCAȚII DE MEMORIE PE PLACA DE DEZVOLTARE. 1. Obiective Prin

More information

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU UNIVERSITATEA POLITEHNICA BUCUREŞTI FACULTATEA ENERGETICA Catedra de Producerea şi Utilizarea Energiei Master: DEZVOLTAREA DURABILĂ A SISTEMELOR DE ENERGIE Titular curs: Prof. dr. ing Tiberiu APOSTOL Fond

More information

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE.

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. Baze de date-anul 2 Laborator 4 SQL Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. I. [Funcţii grup şi clauza GROUP BY] Clauza GROUP BY este utilizată pentru a diviza liniile unui

More information

HEAPSORT I. CONSIDERAŢII TEORETICE

HEAPSORT I. CONSIDERAŢII TEORETICE I. CONSIDERAŢII TEORETICE HEAPSORT Algoritm de sortare care combină calităţile sortării prin inserţie cu cele ale sortării prin interclasare. A fost inventat de Williams 1964. Prin heapsort se ordonează

More information

Universitatea Politehnica București. Facultatea de Electronică, Telecomunicații și Tehnologia Informației

Universitatea Politehnica București. Facultatea de Electronică, Telecomunicații și Tehnologia Informației Universitatea Politehnica București Facultatea de Electronică, Telecomunicații și Tehnologia Informației Proiect Sisteme de Operare Avansate Mașini Virtuale Procesul de virtualizare și accesul la resurse

More information

Cuprins Neculoiu Paul

Cuprins Neculoiu Paul GESTIUNEA MEMORIEI Gestiunea resurselor memoriei este un aspect complex al unui sistem de operare.iată câţiva paşi parcurşi înspre o organizare eficientă şi performantă. 1 Cuprins 1. Elemente de baza in

More information

The First TST for the JBMO Satu Mare, April 6, 2018

The First TST for the JBMO Satu Mare, April 6, 2018 The First TST for the JBMO Satu Mare, April 6, 08 Problem. Prove that the equation x +y +z = x+y +z + has no rational solutions. Solution. The equation can be written equivalently (x ) + (y ) + (z ) =

More information