Sunteți pe pagina 1din 50

Principii si metodologii de testare pentru procesoare

(L1A)
 

1.       Definiti diferentele dintre procesoarele CISC (x86) si RISC.

Procesoarele RISC au inaugurat un nou set de principii arhitecturale: setul de


instructiuni sa fie simplu, instructiunile trebuie sa ruleze la cea mai mare viteza posibila,
notiunea de pipeline este mai importanta decat dimensiunea stului de instructiuni,
tehnologia compilatorului este un element critic intr-un procesor RISC. Punctele
relevante ale arhitecturii RISC reprezinta si diferentele dintre procesoarele CISC, insa
azi majoritatea procesoarelor au numar de intructiuni ca si cele CISC (numar mare de
instructiuni) .

2.       Explicati cum s-a transat rivalitatea dintre arhitecturile RISC si CISC.

Rezultatele cercetarilor privind punctele relevante ale filosofiei RISC au dat


nastere unei arhitecturi mai simple caracterizate de instructiuni mai putine ,mai multe
registre ,acces simplificat pentru incarcarea si depozitarea datelelor in memoria principala
si posibilitatea executiei intr-o singura perioada de ceas. Odata cu evolutia
microprocesoarelor RISC, s-a descoperit ca avantajul acestora nu consta numai in
micsorarea setului de instructiuni, ci si in simplitatea acestora. Azi majoritatea
microporcesoarelor RISC au cam acelasi numar de instructiuni ca si cele CISC , de aceea
vechea rivalitate CISC-RISC si a pierdut semnificatia.

3.       Definiti conceptele de benchmark si benchmarking.

Termenul de benchmark reprezinta rezultatul rularii unui set de programe sau de


alte aplicatii atunci cand se doreste evaluarea performantei unui obiect cu ajutorul
aplicarii mai multor teste standard sau incercari. Termenul mai este folosit si pentru a
denumi programe special construite in acest scop.

Benchmarking este de obicei asociat cu evaluarea performantelor carcateristice


componentelor hard ale unui PC ca de exemplu performanta unui procesor de a calcula in
virgula mobila dar de asemenea exista circumstante cand aceasta operatie se poate aplica
si componentelor soft. Benchmark-ul de sotware realizeaza evaluarea performantelor
compilatoarelor si ale managementului bazelor de date integrate in software ul evaluat.

4.       Care este diferenta dintre un benchmark „sintetic” si unul „aplicat”?

Sistemele de benchmark sunt create astfel incat sa poata sa reproduca un anumit


tip de incarcare pentru o anumita componenta sau pt un anume sistem.
Benchmark-urile sintetice realizeaza aceasta prin programe speciale care le impun
incarcarea pe componente.

Benchmark-urile aplicate insa ruleaza programe in timp real.In timp ce sistemele


benchmark aplicate ofera de obicei o buna masurare a performantelor in aplicatii reale
pentrut un sistem dat ,cele sintetice se folosesc inca pentru testarea componentelor
individuale cum ar fi hardiskul sau placa de retea.

5.       Ce reprezinta un sistem de benchmark de tip SPEC si cum este utilizat acesta?

Inainte de anull 2000 arhitectii de PC uri si microprocesoare foloseau pentru


imbunatatirea performantei indicii SPEC (Stadndard Performance Evaluation
Corporation) . Pt a folosi un sistem benchmark SPEC trebuie cumparata licenta de la
aceasta companie. Sistemul benchmark extrage algoritmul ciclic al unei aplicatii; el va
contine aspectele senzitive ale performantei acesteia. Ruland acest fragment mult mai mic
pe un simulator ciclic el va oferi indicii in ceea ce priveste imbunatatirea performantei.

6.       Care sunt considerentele pentru care se limiteaza dimensiunea sistemului de


ecuatii in cazul algoritmului Linpack?

Sistemul de benchmark Linpack masoara puterea de calcul in virgula mobila a


unui sistem de calcul prin rezolvarea unui sistem de ecuatii luneare de dimensiune n x
n,un tip de sistem des intalnit in inginerie.Scopul sau principal era de a fi rulat pe
supercalculatoarele dezvlotate in anii 1970 si1980. In functie de carcateristicile
sistemului si a performantelor lui, precum si a scopului aplicatiei, se alege o dimensiune
a sistemului linear de ecuatii.

7.       Cum se explica usurinta in implementare a algoritmului de integrare Monte


Carlo? Dar rezultatele slabe returnate de acesta?

Algoritmul de integrare Monte Carlo are ca scop determinarea numarului pi, prin
intermediului cercului unitar, prin masurarea raportului intre numarul de puncte din
interiorul cercului, respectiv numarul total de puncte. Este deosebit de usor de
implementat, deoarece se poate identifica foarte usor numarul de instructiuni in virgula
mobila efectuate de procesor pentru fiecare numar aleator, generat.Astfel procesorul
consuma trei operatii pentru generarea expresiei

8.       Cum se obtine valoarea MIPS in cazul algoritmului de generare a matricelor?

Inaninte de procedura de masurare a matricelor se extrage data sistemului la nivel


de milisecunda ,iar dupa terminarea procedurii se extrage data actuala a sistemului si se
compara cu prima valoare.

Odata obtinut numarul de milisecunde necesar pentru generarea aleatoare a


numarului de matrice predefinit se calculeaza numarul de instructiuni total efectuate si se
raporteaza la durata determinata anterior.
9. Explicati diferentele dintre cei trei algoritmi de benchmark implementati.

Altgoritmul Linpack este unul din altgoritmii standard de testare pentru


clasificarea unui calculator in cadrul TOP 500. Altgoritmul Monte Carlo, desi este usor
de implementat, dezavantajul sau provine din ineficacitatea sa, deoarece implementarea
Monte Carlo returneaza cele mai slabe valori de performanta. Altgoritmul de generare de
matrici este cel mai simplu tip de altgoritm implementat, insa si cel mai slab din punct de
vedere calitativ. Marele lui dezavantaj este ca nu poate faca o comparatie lineara exacta
intre calculatoare diferite.

10.   Cum se realizeaza comparatia intre performantele calculatorului curent si cele


ale unui calculator predefinit?

Comparatia se poate realiza utilizand indicii SPEC. Se ruleaza un altgoritm SPEC


pe calculatorul predefinit rezultand un set de indici SPEC, SPEC_1. Acelasi altgoritm se
ruleaza pe calculatorul curent rezultand un alt set de indici SPEC, SPEC_2. Pentru
evaloarea performantelor se vor compara indicii SPEC, SPEC_1 cu SPEC_2.

11.   Cum se modifica rezultatele produse prin rularea unui test de performanta
pentru procesoare daca se dubleaza memoria instalata a sistemului de calcul?

Marirea spatiului de memorie se realizeaza, bineinteles, in limita numarului


maxim de adrese pe care il poate accesa procesorul. Voi considera altgoritmul Linpack,
pentru o valoare n data, astfel incat dimensiunea memoriei sa fie suficienta pentru
stocarea datelor necesare. Prin dublarea capacitatii memoriei, se poate marii
dimensiunea n a sistemului liniar, si se pot testa performantele pentru diferite valori ale
lui n suficient de mari .

12.   Ce influenta are arhitectura interna a unui procesor asupra rezultatelor unui
test de tip benchmark?

Cu cat numarul de instructiuni pe secunda in cazul unui procesor este mai mare,
cu atat testul de benchmark se va incheia mai rapid ( durata testului va fi mai mica).

Cu cat dimensiunea memoriei interne este mai mare, cu atat putem creste
dimensiunea sistemului liniar (altgoritm Limpack) mai mult, si putem testa rezultatele
performantei pentru diferite valori ale lui n suficient de mari ( in limita capacitatii
memoriei interne) .

14.   Specificati diferentele de functionare dintre procesorul Pentium 4 si


procesorul Intel Core.

  In cazul arhitecturii IntelCore, pe acelasi cip se integreaza mai multe nuclee de


prelucrare. Asadar are loc o miniaturizare semnificativa a arhitecturii multi-nucleu.
Complexitatea creste , prin urmare densitatea de componente active va creste ducand in
cele din urma la o crestere a vitezei de prelucrare a instructiunilor.
Principii si metodologii de testare pentru magistrale
(L1B)

1.       Enumerati criteriile de clasificare ale magistralelor si categoriile in care se impart


aceste magistrale in functie de criterii.

In decursul timpului au fost dezvoltate diferite standarde de magistrala ,care au


urmarit evolutia procesoarelor si a necesitatilor de comutatie ale acestora( viteza mare de
tansfer, necesitati de sincronizare si control etc.) S-au dezvoltat de asemenea magistrale
specializate pentru anumite tipuri de echipamente periferice (SCSI si EIDE pentru unitati
de disc, console grafice ,interfete de masura si control). Din acest punct de vedere in
momentul actual se pot disitnge 2 clase de magistrale:

-magistrale de sistem: dezvoltate mai ales pentru conectarea unitatii centrale la


celelalte componente de baza ale sistemului (ISA ,MultiBus, EISA, PCI);

-magistrale specializate : care incearca sa optimizeze transferul de date cu un


anumit tip de echipamente periferice (VESA ,AGP,SCSI,GPIB)

Magistralele pot fi clasisficate in functie de mai multe criterii:

-modul de lucru:sincrone sau asincrone

-numarul de modul master: unimaster sau multimaster

-modul de realizare a transferului de date: transfer pe cicluri(secventiale),


magistrale tranzactionale

-numarul semnalelor utilizate in transferul de date: magistrale seriale ,magistrale


paralele

2.       Cum s-au dezvoltat in ultimii ani magistralele specializate? Dati exemple.

Caracteristicile constructive ale unei magistrale sunt infleuntate de cerintele si


particularitatile functionale ala procesorului pentru care a fost conceputa ( in cadrul unui
sistem de calcul pentru a coexista mai multe tipuri de standarde specializate pe transferul
de data intre anumite tipuri de componente de sistem) .Pentru a satisface o gama larga de
cerinte s-au dezvoltate familii de magistrale care cuprind mai multe variante ale unei
magistrale de baza si sunt compatibile intre ele intr-o oarecere masura.
In prezent exista mai multe astfel de familii de magistrale:

-magistrale dezvoltate pentru calculatoare DEC-Unibus,QBUS si VAXBI;

-magistrale dezvoltate pentru procesoarele Intel –MultiBus,Intel-Multibus2 si extensii ale


acestora

-magistrale inspirate de structura seriei de procesoare Motorola-magistalele VME;

-magistrale de instrumentatie –familia GPIB,IEE488 si Camac.

-magistrale de instrumentatie- familia GPIB,IEEE488 si Camac.

In domeniul Pc-urilor s-au dezvoltat mai multe magistrale care au devenit


standarde inainte ca acestea sa fie propuse :ISA,EISA,VESA,PCI,SCSI,AGP,USB,Pci
Express.

3.       Cum poate fi pusa in legatura evolutia magistralelor cu cea a procesoarelor?

Aparitia si evolutia ulterioara a microprocesoarelor a consacrat modelul calculelor


bazat pe magistrala .Configuratia semnelor unui microprocesor este astfel conceputa incat
sa permita conectarea usoara la o magistrala de sistem.

4.       Care sunt parametrii care masoara performanta unei magistrale?

Parametrii ce masoara performanta unei magistrale sunt: rata maxima de transfer


(debitul binar) , numarul liniilor de adresa, numarul liniilor de date, frecventa de lucru,
numarul ciclurilor de data transformate per perioada de ceas.

5.       Comparati magistralele secventiale cu cele tranzactionale. Dati exemple.

In cazul magistralelor secventiale regula de baza este: ciclurile de transfer se


desfasoara secvential, la un moment dat, cel mult un ciclu de transfer fiind in curs de
desfasurare; in timp ce la magistralele tranzactionale transferul de date se efectueaza prin
tranzactii. O tranzactie este divizata in mai multe faze. Mai mule tranzactii se pot
desfasura simltan cu conditia ca tranzactiile sa fie in faze diferite; aceasta restrictie
provine din faptul ca fiecare faza a unei tranzactii foloseste un subset din multimea
semnalelor magistralei. Teoretic la aceste magistrale factorul de crestere a vitezei este
egal cu numarul de faze in care se divide o tranzactie ( de ex: magistrale procesorului
Pentium).
6.       Enumerati criteriile de clasificare ale magistralelor prezentate in aplicatie.

Criteriile de clasificare ale magistralelor prezentate in aplicatie sunt:

1) Clasificare dupa modul de lucru – magistrale sincrone ,asincrone

2) Clasificare dupa tipul semnalelor utilizate in transferul de date:seriale si paralele

3) Clasificare dupa modul de realizare a transferului de date: secventiale si tranzactionale

4) Clasificare dupa numarul de module master:magistrale unimaster si multimaster.

7. Clasificati magistralele prezentate in aplicatie in functie de rata de transfer.

In functie de rata de transfer in ordine crescatoare se prezinta urmatoarele


magistrale:

ISA- 16 bit

EISA,

FireWire

USB

PCI

SCSI

AGP.

8.  Gasiti un tip de magistrala care nu face parte din aplicatie si realizati o comparatie.

Magistrala VME ( versa module eurocard) este un exemplu de magistrala


asincrona, de inalta performanta, proiectata pentru utilizarea intensiva in mediul
industrial; ea contine 32 de linii de adresa si 32 de linii de date. Pe langa aplicatiile
industriale, este utilizata si in minicalculatoare. Magistrala VME a fost dezvoltata din
magistrala Versa Bus a firmei Motorola, iar specificatiile pentru magistrala VME sunt
continute in norma IEEE P1014. Spre deosebire de magistrala IBM PC, magistrala VME
a fost proiectata urmarind trei scopuri: interoperabilitatea, performanta si fiabilitatea.
Benchmark pentru arhitecturi multiprocesor si multinucleu
(L1-tema pentru acasa)

1. Prezentati caracteristicile procesoarelor RISC.

Procesoarele RISC au inaugurat un nou set de principii arhitecturale .Din aceasta


cauza notiunea de RISC a fost considerata mai degraba o filosofie decat o retea
arhitecturala diferita.Punctele relevante ale filosofie RISC sunt :
- setul de instructiuni trebuie sa fie simplu
- instructiunile trebuie sa ruleze la cea mai mare viteza posibila
- notiunea de pipeline este mai importanta decat dimensiunea steului de instructiuni
- tehnologia compilatorului este un element critic intr-un procesor RISC
optimizarea compilatoarelor trebuie sa translateze cat mai mult posibil din
complexitatea hardware-ului catre faza de complilare.

2.       Care sunt principalele diferenţe conceptuale între arhitecturile de tip CISC şi
RISC?

Rezultatele cercetarilor privind punctele relevante ale filosofiei RISC au dat


nastere unei arhitecturi mai simple caracterizate de instructiuni mai putine ,mai multe
registre ,acces simplificat pentru incarcarea si depozitarea datelelor in memoria principala
si posibilitatea executiei intr-o singura perioada de ceas. Odata cu evolutia
microprocesoarelor RISC, s-a descoperit ca avantajul acestora nu consta numai in
micsorarea setului de instructiuni, ci si in simplitatea acestora. Azi majoritatea
microporcesoarelor RISC au cam acelasi numar de instructiuni ca si cele CISC , de aceea
vechea rivalitate CISC-RISC si a pierdut semnificatia.

3. Definiti termenul de microprocesor nucleu.

Termenul de microprocesor nucleu se refere la integrarea mai multor nuclee de


executie pe aceeasi pastila de siliciu pentru a imbunatati performantele
microprocesorului.

4. Prezentati cateva dintre avantajele majore ale filosofiei calculului paralel

Prelucarea paralela la nivel de concept hardware aduce cateva imbunatatiri majore


a sistemelor de calcul printr-o crestere a capacitatii de calcul cu pastrarea dimensiunilor
exterioare.Se elimina de asemenea o intreaga gama de inconveniente care ar exista daca
ar exista mai multe procesoare discrete in acelasi sistem de calcul : raciri separate ,
consum de curent crescut , costuri mai mari ale sistemului ,aparitia problemelor in plus
performantele testat mai slabe comparativ cu un sistem care ar avea 2 unitati de calcul
foarte apropiate(viteza de comutatie intre cele doua creste ,timpu de raspuns scade).
5. Definiti comparativ conceptele de benchmark si benchmarking.

Conceptul de benchmark reprezinta rezultatul rularii unui set de programe sau de


alte operatii atunci cand se doreste evaluarea performantei unui obiect cu ajutorul
aplicarii mai multor teste standard si incercari . Prin conceptul de benchmarking se
intelege evaluare performantelor si compararea acestora pe baza unei scari de masura
prestabilite. Cel mai adesea insa benchmarking-ul este ascociat evaluarii performantelor
carcateristice ale componentelor hard ale unui calculator.

6. Care sunt considerentele pentru care se limiteaza dimensiunea sistemului de


ecuatii in cazul algoritmului Linpak?

Dimensiunea sistemului de ecuatii in cazul algoritmului Linpack este limitat de


performantele calculatoarelor si locul caruia programul ii este destinat.

7. Ce reprezinta algoritmul de integrare Monte Carlor ?

Algoritmul de integrare Monte Carlo reprezinta o clasa de algoritmi aleatori care


au scop determinarea solutiei unei probleme data prin intermediul scanarii spatiului de
cautare in diferite puncte alese aleator.In cazul de fata se foloseste metoda Monte Carlo
de determinare a numarului pi. Mai exact metoda de determinare se bazeaza pe
aproximarea unui sfert de disc, prin calculul raportului dintre numarul de puncte ce se
afla in interiorul cercului unitate, si numarul total de puncte generate aleator. Rezultatul
se va imparti la 4 ( existenta celor patru cadrane).

8. Cum se explica usurinta in implementare a algoritmului de integrare Monte


Carlo ?

Acest algoritm de integrare este usor de implementat pentru ca se poate identifica


foarte usor cu numarul de instructiuni in virgula mobila efectuate de procesor pentru
fiecare numar generat aleator. Pe de alta parte procesorul consuma 7 operatii pentru
generarea expresiei x*x+ y*y si o operatie pentru generarea setului (x,y) de numere
aleatoare si inca 0.7 operatii pe ciclu pentru incrementarea counterului.

9. Care este numărul de sondări ales pentru rularea algoritmului de integrare Monte
Carlo? Explicaţi această alegere.

Pentru algoritmul implementat in aplicatia prezentata in aceasta lucrare ,numarul


de sondari este 100 de miloane. S-a ales aceasta dimensiune pentru ca mai putine sondari
duc la rezultate pentru pi eronate. S-a testat experimental si doar pentru un numar foarte
mare de sondari precum cel considerat ,aproximarea lui pi cu 4 zecimale devine reala
( 3,1415…).
10. Care este dimensiunea de pornire a problemei în cazul algoritmului de generare
de matrice?

Experimental s-a constatat ca dimensiunea problemei ajunge de regula la 2048


pentru 2 secunde de rulare (pe un procesor uzual) ,motiv pentru care s-a setat pornirea de
la o dimensiune egala cu 1025. Daca programul ar incepe de la o dimensiune egala cu 1
chiar in conditiile in care incrementarea ar fi executata foarte rapid aceste calcule devin
practic inutile, pronirea de la 1024 fiind o decizie logica.

11.    Cum se realizeaza comparatia intre performantele calculatorului curent si cele ale
unui calculator predefinit?

Comparatia se poate realiza utilizand indicii SPEC. Se ruleaza un altgoritm SPEC


pe calculatorul predefinit rezultand un set de indici SPEC, SPEC_1. Acelasi altgoritm se
ruleaza pe calculatorul curent rezultand un alt set de indici SPEC, SPEC_2. Pentru
evaloarea performantelor se vor compara indicii SPEC, SPEC_1 cu SPEC_2.

12. Câte moduri de paralelizare ale unui program secvenţial pot exista?

Principalele moduri de paralelizare ale unui program sunt : paralelismul temporal


( pipeline), paralelism spatial sincron ( ALU- specializate), paralelism spatial asincron
(multiprocesarea).

13.    Care este creşterea procentuală a performanţei pentru un procesor dual-core obţinută
prin paralelizarea algoritmului Monte Carlo? Dar pentru un procesor quad-core?

Paralelizand altgoritmul Monte-Carlo, secventa de instructiuni a altgoritmului va


fi executata mult mai rapid ( viteza de executie se dubleaza in cazul unui procesor dual-
core, ambele nucleeu de prelucrare procesand instructiunile simultan). In cazul unui
procesor quad-core, viteza de prelucrare creste de patru ori, durata de executie a testului
de Benchmark reducandu-se semnificativ, fata de cazul uniprocesarii.

14.   Cum se poate modifica repartizarea pe procesoare a task-urilor?

In cazul programului din laborator, in cazul neselectarii atribuirii unui task unui
procesor, task-ul va fi lasat in seama planificatorului de procese pentru a fi distribuit catre
un anume nucleu. In cazul in care se va bifa repartizarea, respectivul task deschis,
corespondent unui anumit procesor/nucleu, va rula cu siguranta pe procesorul caruia ii
este destinat.

15.   Cum se comportă planificatorul de procese (scheduler) în cazul repartizării pe


procesoare a task-urilor?

In cazul in care taskuri-le au fost atribuite anumitor nuclee ( procesoare virtuale),


planificatorul de procese asociaza task-ul nucleului corespunzator setat de utilizator.
16.   Punctaţi diferenţele majore între aplicaţia de faţă şi aplicaţia de benchmarking
destinată arhitecturilor monoprocesor şi mononucleu.

O diferanta majora este ca, in cazul benchmarkingului arhitecturii cu mai multe


nuclee, altgoritmii Limpack, Monte Carlo, respectiv altgoritmul generarii de matrice sunt
paralelizati.

Solutii hardware si software de prelucrare paralela pentru


CPU(L2A)

1.      Care este conditia de eficienta in cazul multiplicarii si specializarii ALU?


Sistemul este eficient daca timpul de executie de catre ALU a unei operatii este
mult mai amre decat timpul de incarcare si de decodificare a unei instructiuni .Aceasta
conditie este in general indeplinita.Exprimarea algebrica a conditiei de eficienta este :

tEX (ALU) >> tIF + tID.

2.      In ce consta tehnica de citire in rafale (burst)?

Structura superscalara cu tehnica de burst sau citire in rafale este folosita incepand
cu microprocesorul 80486 si este corelata cu momentul introducerii in capsula
procesorului a memoriei cache de nivel 1 .

Tehnica burst foloseste aceasta memorie pentru a citi blocuri de instructiuni din
memoria cache ,instructiuni care au fost incarcate acolo din memoria principala in mod
secvential.In aceste mod se citesc dintr-o data fie doua fie patru cuvine in functie de
dimensiunea instructiunii( 32 sau 16 biti). S-a folosit initial o magistrala de 64 biti
ajungandu-se in prezent la 256,412 sau chiar 1024 biti.

3.      Care este dezavantajul prelucrarii pe loturi?

Prelucrarea pe loturi se mai numeste si batch processing si prespune formarea


unui fisier cu extensia .bat si lansarea acestuia. Dezavantajul este ca procesele au loc
succesiv iar CPU (care executa operatiile de calcul) nu este folosit eficient . Pentru a
executa un proces trebuie sa se astepte finalizarea celui anterior

4.      Cum se poate defini multiprogramarea?

Multiprogramarea se poate defini ca intercalarea operatiilor CPU cu operatii I/O


pentru mai multe programe.Intercalarea programelor permite utilizarea mai eficienta a
resurselor calculatorului prin suprapunerea aplicatiilor I/O cu operatiile CPU.Acest mod
de organizare este gestionat de sistemul de operare.

5.      In ce consta diviziunea in timp?

Diviziunea in timp reprezinta impartierea timpului de executie al CPU intre toate


procesele active ( task-urile active) din sitemul de calcul. Cuantele de timp alocate
fiecarui proces pot fi egale sau inegale de la un proces la altul ,viteza de prelucrare poate
creste astfel, mai mult decat in cazul multiprogramarii .Diviziunea in timp constituie o
atributie a sistmului de operare care are ca sarcina alocarea cuantelor de timp fiecarui
proces pe care il gestioneaza.

6.      Cum se poate calcula diferenta de timp (Δ) intre durata totala a unor procese
prelucrate pe loturi si prin multiprogramare? Dar intre multiprogramare si diviziune in
timp?
In cazul diferentei de timp intre durata toatala a unor procese prelucrate pe loturi
si microprogramare, aceasta este data de durata intrarilor si iesirilor fiecarui proces mai
putin o intrare si o iesire.

In cazul multiprogramarii si diviziunii in timp diferenta de timp este data de


numarul proceselor cu prioritate mare si a cuantei de timp alese.

7.      Calculati diferenta dintre prelucrarea pe loturi si multiprogramare pe un exemplu


cu trei procesoare, pentru un set de parametri la alegere.

3 procese

Proces 1: Intrare – 2 unitati de timp

Calcul- 4 unitati de timp

Iesire -2 unitati de timp

Procest 2: Intrare- 1 unitate de timp

Calcul – 2 unitati de timp

Iesire- 1 unitate de timp

Proces 3 : Intrare – 1 unitate de timp

Calcul- 2 unitati de timp

Iesire- 1 unitate de timp

Durata totala : 16 unitati de timp- prelucare pe loturi ;

11 unitati de timp –Multiprogramare

8.      Explicati in ce situatii este avantajos ca procesele paralele sa se termine


(aproximativ) in acelasi timp si in ce situatii se prefera existenta unui proces dominant.

In situatiile in care procesele au acelasi grad de prioritate ( acelasi grad de


egalitate) este de prefearat ca acestea sa se termine simultan. In situatia in care un proces
are un grad de prioritate superior fata de celelalte procese este de preferat ca sistemul de
operare sa aloce procesului o cuanta mai mare de timp, astfel incat procesul prioritar sa se
termine primul ( inaintea proceselor mai putin prioritare).
9. Care este diferenta intre cele doua variante de afisare in cadrul diviziunii in timp?
Ilustrati printr-un exemplu.

Intr-o prima afisare, observam ca procesele se termina in acelasi interval de timp


(inexistenta procesului dominant). In cazul celei de-a doua afisari, procesele nu se
termina simultan ( se remarca existenta unui proces dominant caruia sistemul de operare
ii aloca o cuanta mai mare de timp).

10.  Aratati care sunt resursele unei unitati centrale de calcul (CPU) implicate in
fiecare dintre etapele unui proces (intrare, calcul si iesire). Exista procese la poate lipsi
etapa de calcul?

Resursele unei unitati centrale de calcul ( CPU ) implicate in etapa de calcul sunt :
unitatile aritmetico-logice . In cazul operatiilor de intrare respectiv de iesire resursele pot
fi integrate in CPU, sau pot integrate in capsule diferite de cea CPU-ului. Componentele
ce se ocupa cu operatiile intrare/ iesire sunt controlere specializate in gestionarea
operatiilor de intrare/iesire.

11.  Care sunt operatiile posibile in cadrul multiplicarii si specializarii ALU?

Operatiile posibile in cadrul multiplicarii si specializarii ALU sunt: adunarea ,


scaderea, inmultirea, impartirea, respectiv operatiile logice la nivel de bit SI, SAU, NU.

12.  Dati trei exemple de procesoare cu arhitectura superscalara, mentionand si


numarul lor de pipeline-uri.

Intel Pentium -5 pipeline uri

AMD k6 - 24 pipeline uri

Intel Pentiun 3 - 40 pipeline uri

13.  Dati exemple de procesoare vectoriale cu opt componente ale vectorilor de


intrare.

Alliant FX/8 ,

Nec SX-6

14.  Dati cel putin doua exemple de controlere I/O. Exista si altele in afara de cele
prezentate in lucrare? Care sunt acestea?

I/O Controller Hub (ICH) – Intel 82801


15.  Care sunt considerentele pentru care s-au limitat valorile numarului unitatilor
fizice componente in cazul solutiilor hardware si al duratelor etapelor in cazul solutiilor
software?

Marind numarul de unitati fizice componente in cazul solutiilor hardware,


dimensiunea cipului ar creste. Prin urmare apare o limitare hardware. Marind durata unei
cuante foarte mult, in cazul solutiilor software, tehnica time- sharing se apropie de
tehnica de prelucrare pe loturi.

Notiunea de multithreading si performantele sale


(L2B)
1.       Care este conditia de aplicare a tehnicii pipe-line? In ce situatii se obtin rezultate
eficiente?

Tehnica pipeline reprezinta imaginea executiei unei instructiuni ca fiind alcatuita


din mai multe faze care se succed una dupa alta si care pot fi tratate de unitati
specializate.

Conditita de aplicare a tehnicii pipe-line este ca procesele la care se aplica sa se


afle intr-o faza diferita.Rezultatele eficiente se obtin atunci cand se evita fenomenul de
strangulare(mai multe instructiuni utile cu acces la memorie)

2.       De ce multiprogramarea este mai eficienta decat prelucrarea pe loturi?

Interpolarea programelor permite utilizarea mai eficienta a resurselor


calculatorului prin suprapunerea operatiile I/O cu operatiile CPU si se va salva timp fata
de prelucrarea pe loturi.

3.       Care este avantajul folosirii diviziunii in timp fata de celelalte metode?

Diviziunea in timp reprezinta impartirea timpului de executie al CPU intre toate


procesele active din sistemul de calcul.In functie de impartirea in intervale de timp se
poate face ca procesele de impartirea in intervale de timp se poate face ca procesele se se
termine aproximativ in acelasi interval de timp (nu exista proces dominant) .

4.       Cum se poate adapta tehnica diviziunii in timp pentru a face ca toate procesele
implicate in executie sa se incheie (aproximativ) in acelasi timp?

Alegerea unei cuante diferite de timp proceselor dominante fata de cuanta de


timp a celorlalte procese

5.       Explicati care este diferenta intre notiunile de thread si cea de multithread.

Fiecare aplicatie sau program care ruleaza pe sistemul de oprerare este un proces .

Fiecare proces este alcatuit din unul sau mai multe thread-uri .Un thread este un
set de instructiuni sau o parte anume a aplicatiei care se va executa independent in cadrul
programului sau sistemului.Thread-urile sunt entitati responsabile cu multitasking ul in
cadrul unei singure aplicatii.

Multithreading ul presupune executia in paralel a mai multor procese ,pentru a


imbunatatii eficienta sistemului.

6.       Care sunt avantajele procedeului de threading?

Avantajele threading ului sunt urmatoarele :


-sarcinile care necesita mai mult timp de executie pt a fi rulate in background

-interfata aplicatiei poate fi realizata mai atragator si mai simplu de utilizat

-viteza aplicatiei poate creste

-thread-urile pot fi folositoare in situatiile in care exista decalaj intre anumite


evenimente, putandu-se astfel elibera anumite resurse care nu sunt necesare la un moment
dat.

7.       Care sunt modelele de threading suportate de sistemele win32? Realizati o analiza
comparativa a acestora.

Modelele de threading suportate de sitemele win32 sunt :

a) Modelul thread ului unic (Single thread model)-presupune rularea unui singur
thread la un mom dat.

b) Modelul Apartament Thread(Single Thread Apartament Model-STA) .In acest


model pot exista mai multe thread uri care se executa in cadrul aplicatiei.Avantajul
acestui model fata de modelul thread ului unic este ca se pot procesa simultan mai multe
cereri ale utilizatorului.

c) Modelul Multithread Apartament( Free Thread Apartament Model –


FTA).Presupune existenta unui singur apartament.Nu este nevoie de ordonare deoarece
toate thread urile apartin aceluias apartament si pot partaja resursele.Aceste aplicatii se
executa mai repede decat cele care implementeaza modelul unic sau STA , deoarece
sistemul este mai putin solicitat si poate fi optimizat sa elimine timpii morti.

8.       Cum se explica faptul ca utilizand de n ori mai multe resurse in paralel, un
algoritm nu va rula de n ori mai repede?

Utilizand de n ori mai multe resurse in paralel un algoritm nu va rula de n ori mai
repede datorita fenomenului de timp suplimentar(overload) indus prin aplicarea
paralelismului. Acest timp suplimentar apare din urmatoarele cauze:

-interactiunea intre procese (transmiterea rezultatelor sau partiale) si sincronizarea


proceselor;

-inactivitatea temporala (idle) care inseamna ca exista procese inactive pe anumite


pertioade de timp datorita incarcarii inegale si a asteptarii sincronizarii;

-calculele suplimentare care nu apar in formularea seriala a algoritmului

9.       Cum influenteaza durata etapelor de intrare si iesire asupra diferentei () intre
timpii totali obtinuti prin prelucrarea pe loturi si multiprogramare?
Cu cat duratele etapelor de intrare si iesire sunt mai mici cu atat multiprogramarea
se apropie de prelucrarea pe loturi. Cu cat durata operatiilor de intrare este mai mare cu
atat se simpt mai mult avantajele multiprogramarii ( prelucrarea simultana a unei operatii
de calcul si o operatie de I/O).

10.   Dati exemple de instructiuni pipe-line care nu parcurg toate cele 5 etape ale
executiei unei instructiuni.

Etapele de fetch, respectiv decodare au loc pentru fiecare instructiune. Pot exista
instructiuni care nu solicita unitatea aritmetico- logica ( instructiunile de declarare a unei
variabile, instructiuni de afisare la consola, instructiuni de citire). Nu toate instructiunile
necesita accesul procesorului la memoria interna ( operanzii se pot afla in registrele
interne ale procesorului ).

11.   In cazul simularii pipe-line, identificati dupa schema arhitecturii von Neumann ce
resurse sunt implicate in fiecare din etapele de executie ale unei instructiuni.

Fetch- blocul de comanda si control ce furnizeaza semnal de citire catre memoria


interna pentru aducerea codului programului curent.

Decodarea instructiunii- unitatea de decodare a CPU

Extragerea operanzilor- blocul de comanda si control ce furnizeaza semnale de


comanda memoriei interne

Prelucrarea operanzilor – unitatea ALU

Afisarea rezultatelor- procesoare specializate I/O

12.   Care este parametrul esential in aprecierea eficientei unui sistem paralel?

Eficienta utilizarii calculatorului paralel este daca de formula E=S/P ,unde S


reprezinta raportul dintre timpul necesar rezolvarii unei probleme pe un procesor si
timpul necesar rezolvarii aceleiasi probleme in paralel pe „p” procesoare identice si p
este nr de procesoare

13.   Cum se manifesta avantajele multithreading in lucrul cu o baza de date?

Multithreading-ul in cazul de lucru cu o baza de date prezinta performante mai


bune decat in cazul unui sitem fara multithreading. In cazul unui single thread datele sunt
proocesate pe acelasi fir de executie, pe cand in cazul multithreadingului datele sunt
procesate „simultan” pe mai multe fire de executie.
14.    Cum poate fi pusa in evidenta prezenta unui proces dominant in aplicatia
referitoare la prioritatile multithreading?

Prezenta unui proces dominant se poate pune in evidenta prin setarea prioritatilor
threadurile in diverse trepte ( minima, subnormala, normala, peste normal si maxima).

Analiza tipurilor de memorie SRAM şi DRAM


(L3A)

1. Definiţi şi caracterizaţi memoria SRAM.


SRAM = Static Random Access Memory

Memoria SRAM este o memorie în care informaţia se memorează într-un mod


stabil, pe ambele niveluri logice, atât timp cât memoria este alimentată. Este realizată în
tehnologii rapide (bipolare sau CHMOS = Complementary High-density MOS), cu timpi
de acces foarte mici (câteva ns). Fiind o memorie care poate fi şi citită şi scrisă, SRAM
va avea magistrala bidirecţională de date şi două cicluri diferite de memorie: ciclul de
citire şi ciclul de scriere, identificate de semnalul , activ pe 0L. Atunci cand
semnalul WE este activ pe 0L are loc o operatie de scriere.

2. Discutaţi, comparativ, cele două tipuri de memorii SRAM. Care sunt domeniile
lor de aplicabilitate?

Memoria SRAM asincronă nu necesită semnal de ceas pentru sincronizarea cu


unitatea master. Memoria SRAM sincronă necesită un semnal de ceas pentru validarea
semnalelor de control. Ceasul primit din exterior permite operarea memoriei, sincron cu
unitatea master. Memoriile asincrone sunt mai lente decât cele sincrone, dar sunt mai
ieftine şi au un consum de energie mic. Memoriile sincrone sunt foarte rapide, cu timp
de acces sub 10 ns, pot funcţiona la tensiuni de alimentare mici, dar sunt
scumpe.Memoriile SRAM asincrone sunt realizate într-o gamă foarte diversă de
performanţe, cu timpi de acces ce variază de la 50–70 ns, până la 10–15 ns.

Memoriile SRAM asincrone sunt utilizate in sistemele de calcul simple, care


necesita memorie RAM de lucru cu capacităţi mici, de zeci-sute de KB, şi care
memorează cuvinte de 8 biţi.
Memoriile SRAM sincrone sunt utilizate in sistemele de calcul performante , care
necesită viteze şi capacităţi de memorare mari. Memoriile SRAM sincrone sunt utilizate
in sistemele performante pentru implementarea conceptului de memorie cache.

3. Explicaţi semnificaţia semnalelor de comandă ale memoriei SRAM.

Semnale de comanda ale memoriei SRAM sunt urmatoarele: CE, OE respectiv


WE.Toate cele trei semnale de comanda prezentate sunt active pe 0L( zero logic).
Semnificatia semnalelor de comanda este urmatoarea:

OE- semnalul de validare a iesirilor memorie


CE- semnalul de comanda pentru validarea circuitului
WE- semnalul de comanda in ciclul de scriere

4. Utilizând schema bloc a memoriei SRAM, să se descrie modul de selectare a


unei celule de memorie.

Selectarea celulei de memorie se realizeaza pe baza adresei reprezentate de cei n


biti (A0, A1,...,An) plasati pe magistrala de adrese a sistemului. Primii n/2 biti mai
semnificativi sunt aplicati la intrarea unui decodor. In urma operatiei de decodare, va fi
activata intreaga linie de celule de memorie corespunzatoare configuratiei binare
A0A1.....An/2 . Cei n/2 biti mai putin semnificativi vor constitui biti de selectie intr-un
multiplexor. In functie de configuratia binara a acestora, multiplexorul va selecta din
linia activata de decodor, celula de memorie corespunzatoare. In acest mod are loc
selectarea unei celule de memorie.

5. Descrieţi funcţionarea logicii de comandă a circuitului I/O al memoriei SRAM.

Conform schemei bloc a memoriei SRAM, Circuitul I/O se comporta atat ca intrare de
date( atunci cand dorim sa stocam o data in memorie) cat si ca iesire de date atunci cand citim
o data din memorie. In functie de starea semnalelor CE, WE, OE ce se aplica blocului logic de
control, acesta (blocul logic de control ) seteaza Circuitul I/O fie ca intrare de date fie ca iesire
de date. Spre exemplu daca adresa de pe magistrala de adrese este validata ( CE activ pe 0 ),
semnalul de comanda WE este inactiv (WE=1), iar OE este activ (OE=0), atunci are loc o
citire din memorie, deci Circuitul I/O se va comparta ca un circuit de iesire ( acesta va furniza
pe magistrala de date, data corespunzatoare adresei de pe magistrala de adrese). Daca adresa
de pe magistrala de adrese este validata ( CE activ pe 0 ), semnalul de comanda WE este activ
(WE=0), iar pe magistrala de date este plasata o data, atunci are loc o scriere in memorie, deci
circuitul I/O se va comporta ca un circuit de intrare ( acesta va furniza o data care se doreste a
fi stocata in memorie la adresa existenta pe magistrala de adrese ) .

6.         Cum se modifică logica de comandă la memoriile fără semnalul OE?

In cazul in care semnalul OE lipseste, raman valabile semnalele WE si CE. In


cazul unei operatii de citire, semnalul WE este inactiv ( WE=1) adresa de pe magistrala
de adrese fiind validata de semnalul CE (CE=0).In acest caz circuitul I/O se comporta ca
un circuit de iesire, ce va furniza pe magistrala de date, data corespunzatoare adresei de
pe magistrala de adrese. In cazul unei operatii de scriere, dupa ce adresa de pe magistrala
de adrese este validata (CE=0), iar data ce se doreste a fi stocata in memorie la adresa
respectiva este pe magistrala de date, semnalul WE devine activ (WE=0). In acest caz
circuitul I/O se comporta ca un circuit de intrare, ce va furniza data ce se doreste a fi
stocata in memorie la adresa corespunzatoare.

7.         Explicaţi modul de execuţie al ciclului de citire din memoria SRAM.

Dispozitivul master care are acces la magistralele sistemului, furnizeaza adresa


datei solicitate pe magistrala de adrese. Dupa furnizarea adresei, semnalul de comanda
pentru validarea circuitului, CE, devine activ (CE = 0L). Deoarece, are loc o operatie de
citire (si nu de scriere), semnalul WE este inactiv (WE=0) pe toata durata ciclului de
citire. Semnalul OE devine activ ( OE=0) dupa un interval de timp dupa ce (CE=0L). O
data cu activarea semnalui OE, pe magistrala de date a sistemului va fi plasata data de la
adresa corespunzatoare (existenta pe magistrala de adrese). Astfel se incheie ciclul de
citire din memoria SRAM.

8. Discutaţi, comparativ, cele două diagrame ale ciclului de scriere,


corespunzătoare memoriilor SRAM, cu şi fără semnalul OE.
In ambele cazuri, primii doi pasi ai ciclului de scriere sunt comuni: furnizarea
adresei la care se doreste a fi stocata data, pe magistrala de adrese, respectiv activarea
semnalului CE (CE=OL) dupa furnizarea adresei. In cazul memoriei SRAM cu semnal
OE, acesta este inactiv pe toata durata ciclului de scriere (OE=1). In cazul memoriei
SRAM fara semnal OE, data care se doreste a fi stocata in memorie, este plasata pe
magistrala de date inainte de activarea semnalului WE (WE = 0L). In cazul memoriei
SRAM cu semnal OE, data pare a fi plasata pe magistrala de date, dupa validarea
semnalului WE. In ambele cazuri dupa activarea semnalului WE, data care se doreste a fi
stocata in memorie, este mentinuta pe magistrala de date pe toata durata activarii
semnalului WE (WE=OL).

9.         Explicaţi care sunt modurile de realizare a împrospătării conţinutului memoriilor


DRAM.

In funcţie de tipul memoriei DRAM, ciclurile de împrospătare pot fi realizate în


trei moduri:
ROR (RAS Only Refresh) este o metodă de împrospătare din exterior, prin care se
transmit memoriei adresa de rând (AR) şi semnalul , fără a se activa semnalul .
Unitatea master externă este anunţată periodic să facă refresh de către un ceas de timp
real, care este programat software de către sistemul de operare.

CBR (CAS Before RAS) este tot o metodă de împrospătare din exterior, prin care
se transmit semnalele  şi , activate în această ordine. În acest caz, memoria
dispune de un numărător de adrese intern, pentru indicarea liniei care trebuie
împrospătată, fără a fi nevoie de transmiterea adresei din exterior. De asemenea, perioada
de repetiţie a ciclurilor de refresh este determinată de un ceas de timp real extern.

Auto-împrospătare cu ajutorul circuitelor interne memoriei DRAM. În


interior,memoria conţine un numărător de adrese de rând, un ceas de timp real şi o logică
de control pentru generarea semnalelor  şi , conform metodei CBR.

10.     Analizaţi comparativ memoriile DRAM sincrone şi asincrone.

Memoria DRAM asincronă nu necesită semnal de ceas pentru sincronizarea cu


unitatea master apelantă. Memoria DRAM sincronă necesită un semnal de ceas pentru
validarea semnalelor de control. Ceasul primit din exterior permite operarea memoriei,
sincron cu unitatea master. Memoriile DRAM asincrone sunt mai lente decât cele
sincrone, dar sunt mai ieftine şi au un consum de energie mai mic. Prin implementarea
unei interfeţe sincrone, s-au eliminat perioadele de aşteptare de către procesor,
obţinându-se de asemenea unele avantaje suplimentare. În cazul funcţionării sincrone, se
memorează anumite informaţii de la procesor în circuitele latch ale memoriei DRAM sub
controlul ceasului sistem. Aceste circuite păstrează adresele, datele şi semnalele de
control, ceea ce permite procesorului să execute alte operaţii. După un număr specific de
cicluri de ceas, datele devin disponibile şi procesorul le poate citi de pe liniile de ieşire.
Un alt avantaj al unei interfeţe sincrone este că ceasul sistemului este singurul semnal de
sincronizare care trebuie furnizat memoriei DRAM. Aceasta elimină necesitatea
propagării semnalelor multiple de sincronizare. Intrările sunt de asemenea simplificate,
deoarece semnalele de control, adresele şi datele pot fi memorate fără temporizările de
setare şi menţinere monitorizate de procesor. Avantaje similare se obţin şi pentru
operaţiile de ieşire. Accesul aleator in cazul memoriilor DRAM sincrone este de
asemenea lent, fiind puţin mai rapid decât la memoriile asincrone, datorită tehnologiei
(memoriile sincrone au apărut ulterior). În acces aleator, tRAC este de 40–60 ns, iar tC este
de 80–110 ns, fata de memoriile asincrone unde (tRAC) este de 50–70 ns, iar timpul de
ciclu (tC) este de 90–120 ns. Accesul în mod pagină la memoriile DRAM sincrone este
mult mai rapid decât la memoriile asincrone şi depinde de frecvenţa semnalului de ceas
de sincronizare.

11. Cum acţionează semnalele RAS şi CAS pentru împrospătarea memoriei?

Modul de actionare al semnalelor RAS si CAS difera in functie de tipul de


improspatare utilizat. In cazul ROR (RAS only refresh), adresa de linie este furnizata din
exterior de catre dispozitivul master. O data ce adresa liniei este stabila pe magistrala de
adrese, semnalul RAS devine activ (RAS=0), avand astfel loc improspatarea liniei
corespunzatoare. In cazul CBR( CAS before RAR), adresa celulei de memorie care se
doreste a fi improspatata este furnizata de un numarator intern al memoriei. O data ce
adresa este stabila, va fi validata mai intai coloana din care face parte celula de memorie
(semnalul CAS activ), dupa care linia ( semnalul RAS activ), de unde si numele (CAS
before RAS). Astfel celula de memorie este improspatata.

12.     Să de definească parametrii de timp de care trebuie să se ţină seama la


proiectarea unei memorii şi să se explice relaţiile de condiţionare între aceste valori.

Principalii parametrii de timp ce caracterizeaza o memorie sunt:

Timpul de acces la o unitate de memorie (tA) este timpul necesar localizării unei
celule de memorie, pentru transferul de informaţii la/de la locaţia de memorie respectivă.
Acesta reprezintă intervalul de timp calculat din momentul în care o unitate master
lansează o comandă către o unitate de memorie şi până în momentul în care informaţia
este transferată în sensul dorit.

Rata de acces (rA) este inversa timpului de acces, fiind exprimată în cuvinte pe
secundă:

rA =  [cuv/s].                                                                       

Timpul de ciclu la o unitate de memorie (tC) este timpul minim între două
accese succesive şi reprezintă timpul din momentul în care o unitate master lansează o
comandă (COM 1) spre unitatea de memorie şi până când poate lansa o nouă comandă
(COM 2) la aceeaşi unitate de memorie.

Rata de transfer (rT) este inversa timpului de ciclu şi reprezintă cantitatea


maximă de informaţie (exprimată în cuvinte pe secundă), care poate fi transferată la/de la
memorie într-o secundă:

rT =  [cuv/s].                                                                                   

Intotdeauna este valabila relatia tC > tA, diferenţa lor numindu-se timp de revenire (tR =
tC – tA). Acesta reprezintă timpul minim necesar pentru inactivarea primei comenzi, până
la activarea celei de-a doua. Asadar cu cat timpul de acces este mai mare, conform
inegalitatii tC > tA , timpul de ciclu va fi si el mai mare.

13.     Comparaţi metodologiile de proiectare pentru memoriile statice şi dinamice.

Proiectarea unui modul de memorie se face pe baza unor parametrilor de


proiectare impuşi:

        capacitatea memoriei;

        modul de organizare (unitatea elementară de acces la memorie: octet,


cuvânt, cuvânt dublu);

        tipul de magistrală pe care se conectează (numărul semnalelor de date şi


de adrese, tipurile semnalelor de comandă, parametrii de timp pentru ciclurile
de transfer);

        amplasarea modulului de memorie în spaţiul de adresare al procesorului,


exprimată prin adresa sa de început (trebuie să fie un multiplu al capacităţii
modulului);

        tipul de circuit de memorie disponibil (poate fi un parametru impus sau


unul ales de proiectant);

        alte cerinţe speciale (de exemplu: accesul dual de pe două magistrale,
reîmprospătarea controlată centralizat, implementarea unor mecanisme de
detecţie a erorilor etc.)

Proiectarea memoriilor dinamice este în principiu similară proiectării memoriilor


statice, cu următoarele amendamente:

        trebuie să se adauge un mecanism de reîmprospătare periodică a memoriei


(refresh);
        adresele trebuie multiplexate (generarea secvenţială pe aceleaşi semnale a
adresei de linie şi a adresei de coloană);

        trebuie să se genereze semnalul de validare a adresei de linie (RAS – Row


Address Select) şi semnalul de validare a adresei de coloană (CAS – Column
Address Select);

        selecţia circuitelor se face cu semnalele RAS şi CAS (excepţie fac


circuitele de tip EDO-DRAM, care au semnal separat pentru selecţia
circuitului).

15.     Caracterizaţi memoria DRAM şi explicaţi diferenţele faţă de memoria SRAM


care apar la conectarea cu exteriorul.

Memoria DRAM (Dynamic RAM) este o memorie volatilă cu acces aleator, care
memorează informaţia în mod dinamic. Este realizată în tehnologie CMOS
(Complementary MOS), cu consum de energie foarte mic. Datorită particularităţilor
constructive ale celulelor de memorie, informaţia 0L este memorată stabil, dar informaţia
1L se pierde în timp şi necesită împrospătarea periodică a memoriei, de unde şi
denumirea acesteia.

Indiferent de modul de realizare, memoria DRAM este mult mai lentă decât
memoria SRAM, din cauza mecanismului specific de memorare a informaţiilor. Timpul
de acces la DRAM este de 2–10 ori mai mare decât la SRAM, şi variază în funcţie de
tipul accesului la memorie.

Astfel, în acces aleator, timpul de acces este mare (zeci de ns), însă scade foarte
mult (în funcţie de tipul memoriei DRAM), dacă se restricţionează accesul în mod
pagină, putând ajunge doar de două ori mai mare decât al memoriei SRAM.

Celula de memorie este mult mai mică decât la memoria SRAM, ceea ce permite
realizarea unor densităţi mari de integrare. Circuitele de memorie DRAM au, prin
urmare, capacităţi de memorare mari, şi implicit un număr mare de linii de adresă.

Memorarea informaţiilor se bazează pe stocarea şi transferul de sarcini electrice,


şi nu pe mecanisme de comutare, ca în cazul memoriilor SRAM. Fiecare bit de informaţie
este memorat prin încărcarea sau descărcarea unui condensator. Când condensatorul
este încărcat, se spune că se memorează valoarea 1L, iar când acesta este descărcat,
valoarea memorată este 0L. Faţă de celula SRAM, mecanismul de memorare nu
presupune consum de curent de la sursa de alimentare.

16.     Cum intervine semnalul de comandă WE în modul de transfer al memoriilor


dinamice, comparativ cu cele statice?

In cazul memoriilor dinamice, conform diagramei din cadrul laboratorului,


semnalul WE devine activ dupa ce are loc validarea semnalului RAS (RAS= OL).Se
observa ca, data care se doreste a fi stocata in memorie, trebuie sa fie stabila pe
magistrala de date, inaintea validarea semnalului de CAS (CAS=0L).

In cazul memoriilor statice, semnalul WE devine activ dupa validarea semnalului CE


(CE=0L), iar semnalul CE devine activ dupa ce adresa la care se doreste a fi stocata data
respectiva, este stabila pe magistrala de adrese. De asemenea pentru evitarea unei scrieri
eronate, data care se doreste a fi stocata in memorie trebuie sa fie stabile pe magistrala de
date.

17. Ordonaţi tipurile de memorii descrise în lucrare după criteriul vitezei de lucru.

In cazul memoriilor dinamice asincrone, in functie de viteza de lucru, cele mai rapide
sunt memoriile tip BEDO DRAM, apoi EDO DRAM, dupa care memoriile tip FPM.

In cazul memoriilor dinamice sincrone, memoriile tip DDR SDRAM sunt mai rapide
din punct de vedere al vitezei de lucru fata de memoriile tip RDRAM.

In cazul memoriilor dinamice sincrone, in functie de viteza de lucru, cele mai rapide
memorii de tip DRDRAM sunt memoriile PC 800, apoi memoriile PC700, dupa care
memoriile PC600.

Studiul memoriei cache


(L3B)
1.       Care sunt caracteristicile memoriei cache?

Memoria cache este realizata din celule SRAM rapide. Aceasta este interpusa intre
microprocesor si memoria RAM, jucand rolul de memorie tampon. Memoria cache trebuie
sa fie suficient de rapida ( timpul de acces sa devina comparabil cu timpul de lucru al
microprocesorului), astfel incat, numarul de stari de asteptare pe care procesorul le
introducea pentru sincronizarea cu memoria RAM, sa scada. Memoriile rapide sunt
realizabile din punct de vedere tehnologic, dar costul lor este ridicat. Sunt cunoscute însă
tehnici pentru combinarea unei memorii rapide de dimensiuni mici cu o memorie mai
lentă de dimensiuni mai mari, pentru a se obţine aproximativ viteza memoriei rapide şi
capacitatea memoriei lente, la un preţ moderat.

2.       Explicaţi principiul de funcţionare al memoriei cache.

In figura 1 a platformei de laborator se pune in evidenta existenta a doua interfete:


o interfata este utilizata pentru comunicarea dintre procesor si memoria cache, iar cealalta
interfata este folosita pentru comunicarea dintre memoria cache si memoria RAM (lenta).
Asadar operatiile de citire/scriere initiate de procesor au ca prima destinatie memoria
cache, dupa care, in urma unor analize realizate aici , se vor emite sau nu comenzi catre
memoria principala. Transferul de date intre memoria cache si memoria principala se
realizeaza pe blocuri de date ( un bloc de date, spre exemplu, poate avea o dimensiune de
8B).

3.       Cum se alege dimensiunea (mărimea) memoriei cache? Cum variază


performanţele unui sistem odată cu creşterea dimensiunii memoriei cache?

Dimensiunea memoriei cache trebuie să fie suficient de mică, astfel încât costul
mediu pe bit al întregului sistem de memorie să fie apropiat de cel al memoriei principale,
şi suficient de mare, astfel încât timpul mediu de acces al întregului sistem de memorie să
fie apropiat de cel al memoriei cache.

Cu cat dimensiunea memoriei cache este mai mare, cu atat probabilitatea de a


localiza o data in aceasta memorie va fi mai mare. Prin urmare numarul de interactiuni cu
memoria RAM ( memorie lenta ) va fi mai mic, deci viteza de executie a programelor va
creste. Pe de alta parte, crescand foarte mult dimensiunea memoriei cache, deci a
numarului de celule SRAM, costul mediu pe bit al intregului sistem de memorie va creste
semnificativ si va depasi costul mediu pe bit al memoriei principale.

4.       Cum se realizează operaţia de citire a memoriei cache?

Procesorul furnizeaza memoriei cache adresa A a datei solicitate. Controlerul care


se ocupa cu gestionarea memoria cache, cerceteaza daca blocul care contine adresa A se
afla in memoria cache. In caz afirmativ, se citeste cuvantul cu adresa A, din memoria
cache, si se transmite microprocesorului, iar operatia de citire ia sfarsit. In cazul in care
blocul corespunzator nu se gaseste in memoria cache, se acceseaza memoria principala
pentru blocul care contine A. Se aloca o linie in memoria cache pentru blocul din
memoria principala ( se pregateste transferul blocului ce contine data, din memoria
principala in memoria cache). Urmatorul pas il constituie transmiterea cuvantului cu
adresa A catre microprocesor. In final, se incarca blocul din memoria principala in linia
memoriei cache, dupa care operatia de citire se incheie.

5. Definiţi biţii tag, index şi offset, care ajută la formarea adresei de memorie în
cazul mapării directe.

Cei 3 biţi mai puţin semnificativi (offset) identifică un cuvânt (octet) unic în
cadrul unui bloc al memoriei principale ( se presepune ca un bloc de memorie contine 8
octeti).

Câmpul de 7 biţi, numit linie (index), indică numărul blocului, modulo128. Astfel,
blocurile 0, 128, 256, …, 8064 vor fi amplasate în linia 0; blocurile 1, 129, …, 8065 vor
fi amplasate în linia 1, şi aşa mai departe, până la blocurile 127, 255, …, 8191, care vor
fi amplasate în linia 127.

Câmpul de 6 biţi, numit marcaj sau etichetă (tag), are rolul de a identifica în mod
unic blocul din linie. Astfel, blocurile 0, 128, 256, …, 8064 au numerele de marcaje 0, 1,
2, …, respectiv 63.

6. Cum se interpretează parametrii I, J, K şi L, în cazul memoriei cache cu mapare


asociativă pe seturi?

I- reprezinta numarul de seturi din memoria cache

J- reprezinta numarul de linii corespunzatoare unui set

L- numarul total de linii intr-o memorie cache ( L=I*J)

K= A mod I , unde A este o adresa pe magistrala de adrese. K reprezinta numarul


setului.

7. Care sunt cazurile particulare în care maparea asociativă pe seturi se reduce la


maparea directă, respectiv, la maparea asociativă?
Maparea asociativa pe seturi se reduce la maparea directa in cazul in care J=1,
deci I=L. Maparea asociativa pe seturi se reduce la maparea asociativa in cazul in care
I=1, deci L=J.

8.       Care dintre metodele de mapare (directă, asociativă, asociativă pe seturi) este mai
eficientă? Argumentaţi.

Maparea directă este o tehnică care se poate implementa simplu. Principalul


dezavantaj al acesteia este că există o locaţie fixă în memoria cache pentru oricare bloc
dat. Deci, dacă un program face referire în mod repetat la cuvinte din două blocuri
diferite care se mapează în aceeaşi linie, blocurile vor fi interschimbate în mod continuu
în memoria cache şi rata de succes va fi redusă.

Maparea asociativa elimina dezavantajul precizat mai sus. Un bloc din memoria
principală se poate încărca în oricare linie, iar marcajul său de 13 biţi se memorează
împreună cu blocul. Pentru a determina dacă un bloc se află în memoria cache, sunt
necesare circuite pentru a compara simultan marcajul său cu marcajele fiecărei linii. În
cazul mapării asociative, există o flexibilitate în privinţa înlocuirii unui bloc atunci când
un nou bloc este încărcat în memoria cache.Principalul dezavantaj al acestei metode îl
reprezintă circuitele complexe necesare pentru a examina marcajele tuturor liniilor din
memoria cache.

Maparea asociativa pe seturi reprezintă un compromis care reţine avantajele


mapării directe şi a celei asociative. Utilizarea a două linii pe set este cea mai utilizată
organizare asociativă pe seturi, care îmbunătăţeşte semnificativ rata de succes faţă de
maparea directă.

9.       Cum se calculează numărul de seturi aflat în memoria cache?

Pentru determinarea numarului de seturi dintr-o memorie cache se realizeaza


raportul dintre numarul total de linii existente in memoria cache si numarul de linii
asociate unui singur set.

10. Care sunt componentele principiului localizării şi în ce situaţii se aplică?

Componentele pricipiului localizarii sunt:

localizare spaţială: dacă este nevoie de unele date, în curând va fi nevoie


probabil de date aflate în apropierea lor în memorie.
Localizare temporală: când s-au găsit anumite date, foarte adesea acestea
vor fi folosite de mai multe ori.

11. De ce este important să existe o rată mare de succese (hit rate)?


Daca rata de succes (H-hit rate) este mare atunci procentajul de ratari (M-miss rate)
este mic. Atunci cand, H=1 ( cazul limita), M=0. Prin urmare, data este localizata in
memoria cache, iar durata timpului de acces la memorie coincide cu TH. In cazul in care
H=0, data este localizata in memoria lenta. Prin urmare, durata timpului de citire va
coincide cu suma dintre TM ( timpul de cautare a datei in memoria cache) si TI (timpul de
acces la memoria lenta). Bine inteles, in cazul al doilea timpul de citire este mult mai mare
fata de cazul 1. Asadar cu cat H este mai mare cu atat durata timpului de citire a unei date
va fi mai mic.

12.   Cum se defineşte noţiunea de dirty data şi în ce context se foloseşte?

Bitul ( dirty data ) este pus pe 0 la incarcarea initiala a blocului in cache. La prima
scriere a acestui bloc, bitul se pune pe 1. Evacuarea propriu-zisa a blocului se face doar
daca bitul de dirty este 1.Practic, prin acest bit se minimizeaza evacuarile de blocuri in
memorie principala, pe baza principiului ca un bloc trebuie evacuat numai daca a fost scris
in cache.

13.   Care dintre metodele de înlocuire a blocurilor în memoria cache este mai eficientă?
Argumentaţi.

Pentru ştergerea datelor curente şi aducerea altora noi se aplică o politică de


înlocuire (replacement policy) a blocurilor din memoria cache, care are numeroase
variante: politica aleatoare (random), politica circulară (round robin), politica celui mai rar
folosit (least frequently used), politica primul intrat – primul ieşit (first in, first out),
politica celui mai demult folosit (least recently used), politica setului de lucru (working
set), politica optimă (optimal), politica ceasului, politica celei de-a doua şanse (second
chance) etc. În practică, sunt aplicate cu preponderenţă patru metode:

        metoda RW (Random Write) sau de rescriere aleatorie: datele conţinute sunt
rescrise aleator, fără a folosi un anumit criteriu sau algoritm care să determine
care bloc de date va fi rescris;

        metoda FIFO (First In – First Out): primul intrat – primul ieşit, adică
primele blocuri de date scrise în memorie sunt rescrise primele;

        metoda LRU (Least Recently Used): datele folosite cel mai puţin recent;
blocurile de date care, static, au fost folosite cel mai rar sunt rescrise primele,
cele folosite recent fiind păstrate;

        metoda LFU (Least Frequently Used): se înlocuieşte blocul care a fost
utilizat cel mai puţin , adică cel mai rar din punct de vedere statistic.

Metoda cea mai folosită este LRU. Cipul de memorie cache numit TAG RAM va
juca rol de contor static al frecvenţei de apelare a datelor din memoria cache,
determinându-se datele care vor fi rescrise.
14.   Care metodă de scriere (depunere în memorie a rezultatelor) modifică informaţiile
din ambele memorii (cache şi RAM)?

Metoda Write Through care utilizeaza traseul invers al citirii datelor, blocurile
fiind depuse mai intai in memoria cache interna, apoi in cache-ul extern si in final in
memoria RAM.

15.   Prezentaţi avantajele şi dezavantajele fiecărei metode de depunere în memorie a


rezultatelor.

In cazul metodei Write –Thorough toate cele trei memorii vor fi accesate, in cazul
unei operatii de scriere. In cazul metodei Write Back, in cazul in care blocul in care se
realizeaza scrierea se afla in cache, scrierea se face in cache, si nu va mai fii accesata si
memoria RAM. Metoda Post Write utilizeaza un buffer din memoria cache in care se vor
depune blocurile care se doresc a fi scrise , atata timp cat magistrala memoriei nu este
disponibila.

16.   Cum se foloseşte tabela asociativă, TA, în cazul metodei Write Through?

Există o tabelă asociativă TA (bazată pe o memorie cu căutare asociativă, după


conţinut), asociată memoriei cache, care păstrează pentru fiecare bloc de memorie cache
o etichetă reprezentând adresa blocului din memoria principală (ABLP) stocat în blocul
de memorie cache.

Astfel, la fiecare acces la memorie, se va căuta în TA adresa cerută şi, dacă există
o etichetă cu valoarea ABLP, se va furniza adresa blocului de memorie cache care rezultă
din poziţia etichetei respective în TA. Dacă nu există, atunci se va înlocui un bloc din
memoria cache, conform unui algoritm de înlocuire. În cazul de faţă este vorba de
algoritmul LRU (Least Recently Used).

Căutarea unui bloc în TA se poate face eficient în hardware, având în vedere că se


pot realiza în paralel comparările care sunt independente.

18. Cum se calculează timpul mediu de acces la memoria cache?

T = TH  H + TM  M.

TH (hit time)
TM (miss time)
H (hit rate)
M(miss rate)
H = 1 – M.
Gestionarea tranzactiilor in sisteme I/O
(L4A)

1.      Care sunt etapele unui transfer DMA?

Un transfer DMA consta din urmatoarele faze:

        initializarea transferului;

        transferul efectiv de date;

        verificarea terminarii si a corectitudinii transferului.

2.      Care sunt componentele unui controler DMA?

Un controler DMA trebuie sa contina urmatoarele componente:

        registre pentru generarea adreselor de memorie;

        numaratoare pentru evidenta cuvintelor de date transferate pe fiecare canal;

        un registru de stare pentru marcarea configuratiei curente;

        registre de comanda pentru programarea modului de transfer;

        un circuit de arbitrare pentru solutionarea cererilor multiple de acces;

        circuite de control al magistralei (amplificatoare de adrese, date si comenzi);

        un dispozitiv de comanda secvential pentru derularea ciclurilor DMA si


pentru preluarea/cedarea magistralei.

3.      Care sunt utilizarile tipice ale unui transfer DMA?

In cazul PC-urilor, transferul DMA se utilizeaza pentru interfata de floppy disk si


pentru transferul serial pe bloc. Un canal DMA (canalul 0) este utilizat pentru operatia de
refresh a memoriei dinamice.
In functie de numarul de ordine al DMA-ului, un transfer DMA este utilizat
pentru interfete precum : DMA-1 (Placa de sunet, low DMA), DMA-2 ( floppy disk),
DMA-3 ( liber), DMA-5 (placa de sunet, high DMA), etc.
4. Descrieti functionarea IRQ.

Functionarea este urmatoarea:

I. placa periferica instalata lanseaza catre procesor un semnal de tipul Interrupt


Request (o cerere de intrerupere, desemnata de un anumit numar-cod);

II. procesorul asteapta terminarea instructiunii in curs de executie, inregistreaza


intreruperea si transmite la periferic un mesaj de receptie, numit Interrupt Acknowledge,
in cazul in care nivelul de prioritate al procesului cerut este superior celui in curs de
desfasurare;

III. dupa terminarea executiei instructiunii curente, sistemul de operare va executa


o rutina speciala, care are ca sarcina salvarea starii procesorului (salvarea registrelor
curente);

IV. urmeaza citirea din tabela vectorilor de intrerupere (TVI) a unei adrese la
care se afla numarul canalului de intrerupere cerut;

V. in continuare, prin citirea adresei din TVI, se poate da controlul rutinei-driver


aflate la adresa citita, rutina care raspunde de activitatea dispozitivului care a emis
semnalul IRQ;

VI. rolul final al rutinei sistemului de operare este sa refaca starea procesorului,
incarcand registrele salvate anterior, moment din care sistemul revine la starea si la
procesul care aveau loc inainte de lansarea semnalului IRQ.

5.      Care nivele IRQ nu pot fi definite de utilizator?

Urmatoarele nivele IRQ nu pot fi definite de utilizator: IRQ-0 ( ceas de sistem),


IRQ-6 (floppy-disk) si IRQ-8 (ceasul de timp real).

6.      Care nivel IRQ are prioritatea cea mai mica?

Nivelele IRQ cu prioriatatea cea mai mica sunt :IRQ3–IRQ8 ( porturi seriale,
porturi paralele, floppy, ceas de timp real ).

7.      Care nivel IRQ are prioritatea mai mare: IRQ3 sau IRQ10? Dar IRQ2 fata de
IRQ9?

IRQ10 este prioritar IRQ3. IRQ2 respectiv IRQ9 apartin aceluiasi nivel de
prioritate, insa cel cu IRQ mai mic este prioritar.
8.      La ce folosesc nivelele IRQ? Dati exemple de dispozitive I/O si indicati ce nivel
IRQ poate folosi fiecare.

O posibila utilizare a niveleor IRQ este urmatoarea situatie: in cazul in care doua
dispozitive periferice solicita simultan accesul la microprocesor, microprocesorul va servi
dispozitivul care are un nivel IRQ mai prioritar.

Exemple de periferice :

Tastatura – IRQ1, IRQ4- conectarea seriala a unui mouse, IRQ-14 controler IDE1 pentru
HDD si CDROM.

9.      Care este modalitatea de utilizare a tabelei vectorilor de intreruperi (TVI)?

Tabele vectorilor de intrerupere, furnizeaza adresa la care se afla numarul


canalului de intrerupere cerut. In continuare, prin citirea adresei din TVI, se poate da
controlul rutinei-driver aflate la adresa citita, rutina care raspunde de activitatea
dispozitivului care a emis semnalul IRQ;

10.  Cum se realizeaza configurarea adreselor de intrare-iesire la calculatoarele


moderne?

O solutie deosebit de avantajoasa si rapida o constituie folosirea arhitecturii PCI,


care, prin intermediul setului de cipuri inteligente, permite sistemului sa se
autoconfigureze, instalarea noii placi decurgand fara probleme (standardul Plug'N'Play –
PNP).

Practic, dupa cuplarea fizica in slotul PCI liber, urmeaza instalarea driver-ului
placii respective (o actiune software), cu aceasta incheindu-se dotarea sistemului.
Sistemul va recunoaste automat la pornire placa nou instalata, configurand totodata si
canalele DMA, IRQ si adresele I/O necesare.

11.  Care sunt cerintele de baza de la care se porneste in proiectarea unui sistem I/O?

Arta proiectarii unui sistem I/O este de a gasi proiectul care sa indeplineasca
obiectivele de cost, dependente si varietate a dispozitivelor, si, in acelasi timp, sa se evite
scaderea performantei I/O. Pentru a evita scaderea performantei, componentele trebuie sa
fie echilibrate intre memoria principala si dispozitivele I/O.

Arhitectul trebuie sa planuiasca o extindere, atat in ceea ce priveste numarul, cat


si tipurile dispozitivelor I/O, astfel incat clientii sa poata proiecta reteaua I/O conform
necesitatilor aplicatiilor lor. De exemplu, discurile de stocare trebuie sa fie dependente de
limitarile care se pot impune proiectului.
12.  Care sunt etapele care trebuie parcurse in proiectarea unui sistem I/O? Cum pot
varia acestea in functie de aplicatia specifica?

Principalele etape sunt urmatoarele:

I.      enumerarea diferitelor tipuri de dispozitive I/O care se vor conecta la sistem
sau enumerarea magistralelor standard pe care le suporta sistemul;

II.      enumerarea cerintelor fizice pentru fiecare dispozitiv I/O, cerintele incluzand
dimensiunea, puterea, conectorii, sloturile disponibile pe magistrala etc.;

III.      luarea in calcul a costului fiecarui dispozitiv I/O, incluzand costul


controlerului necesar pentru acest dispozitiv;

IV.      luarea in calcul a fiabilitatii fiecarui dispozitiv I/O si luarea in calcul a


cerintelor de memorie si de ocupare a magistralei I/O de catre fiecare dispozitiv I/O in
parte. Atentie! Si atunci cand CPU nu foloseste memoria, dimensiunea memoriei
principale si a magistralei I/O este limitata;

V.      estimarea performantei si disponibilitatii diferitelor modalitati de organizare a


dispozitivelor I/O, pentru ca in final sa se aleaga cea mai buna organizare;

VI.      inregistrarea cererii fiecarui dispozitiv I/O de acces la resursele CPU:

        numarul necesar de cicluri de ceas pentru instructiunile de initializare a


dispozitivului I/O;

        suportarea operatiilor unui dispozitiv I/O, cum sunt intreruperile;

        evitarea blocarii CPU cauzata de asteptarea eliberarii memoriei,


magistralei sau memoriei cache, care sunt folosite de dispozitivele I/O.

13. Care sunt limitarile uzuale in utilizarea resurselor unui calculator?

Limitarile uzuale sunt:

        niciun disc nu trebuie folosit mai mult de 80% din timp;

        niciun brat al discului nu trebuie sa caute mai mult de 60% din timp;

        nicio magistrala SCSI nu trebuie utilizata mai mult de 40%;

        nicio magistrala I/O nu trebuie utilizata mai mult de 75%.


14.  Cum influenteaza numarul de mips asupra performantelor sistemului? Ce
inseamna mips?

Performanta CPU pentru I/O este determinata de viteza procesorului (mips-mega


instructions per second) si de numarul de instructiuni pentru o operatie I/O (cpuiops-
CPU-io- per second):

.                                                 

15.  Cum influenteaza rata de transfer a discului sau a magistralei I/O asupra
performantelor sistemului?

Cu cat rata de transfer ( debitul binar) a discului sau a magistralei I/O este mai
mare cu atat starea de asteptare a procesorului ( care functioneaza cu o viteza mult
superioara dispozitivelor periferice) va avea o durata mai mica. Prin urmare
performantele sisitemului vor creste.
Studiul tehnicilor de transmisiune seriala
(L4B)
1.        Care este diferenta dintre transmisiunea sincrona cu caracter de sincronizare si cea
cu semnal de sincronizare?

In cazul transmisiunii sincrone cu caractere de sincronizare se transmit coduri


speciale la inceput (de la dispozitivul care transmite catre cel care receptioneaza) pentru a
stabili sincronizarea, dupa care informatia este transmisa intr-un flux continuu. Blocurile de
date sunt grupate si separate dupa intervale fixe. Acestea sunt in plus precedate de caractere
speciale denumite syn sau synchronous idle characters. Dupa ce caracterele syn sunt
receptionate de dispozitivul catre care se face transmisiunea, ele sunt decodate si folosite
pentru sincronizarea transmisiunii. Abia dupa ce dispozitivele sunt corect sincronizate
transmisiunea de date poate incepe.

Transmisiunea sincrona cu semnal de sincronizare (vezi figura 2) presupune ca


atat expeditorul cat si destinatarul mesajelor impart acelasi ceas de sincronizare sau ca
expeditorul pune la dispozitie un semnal de sincronizare pentru ca destinatarul sa stie
cand sa „citeasca” urmatorul bit de date. Sincronizarea perfecta intre dispozitivul
transmitator si cel receptor (si faptul ca receptorul stie intotdeauna ce primeste, caractere
de sincronizare sau informatie) face ca ratele de transfer sa fie foarte mari. De asemenea,
receptorul poate sesiza orice abatere pe care ar putea sa o sufere transmitatorul in ceea ce
priveste semnalul de sincronizare, cauzata de exemplu de variatia temperaturii.

2.        Explicati modul de formare al cadrului de biti la transmisiunea asincrona.

In transmisiunea asincrona seriala, bitii individuali care compun octetul sunt


transmisi unul dupa altul pe o singura linie. In acest context, asincron inseamna ca
informatia de sincronizare nu este inclusa in transmisiune, asa ca sunt necesare
resincronizari frecvente folosind biti de start si stop. Un format de date pe 8 biti, fara bit
de paritate si un bit de stop, necesita de exemplu 20% din timpul transmisiunii pentru
resincronizare. In cazul transmisiunii sincrone, relatia dintre timpul in care se transmite
informatia si timpul necesar pentru resincronizare este mult mai favorabila, dat fiind
faptul ca aici informatia de sincronizare se trimite pe propria ei linie sau impreuna cu
informatia utila.
Transmisiunea unui octet incepe intotdeauna cu un bit de start, care este transmis
ca 0 logic (0L). Urmatorii biti (de la 2 pana la 9) sunt transmisi in secventa unul dupa
altul, incepandu-se de la LSB (Least Significant Bit). Un bit de paritate poate urma dupa
ultimul bit de date si foloseste la detectarea erorilor de transmisiune. Bitul de paritate este
par pentru un numar de biti 1 par si impar pentru un numar de biti 1 impar. Sfarsitul
caracterului poate fi compus din unul sau maximum doi biti de stop.
3.        Definiti parametrii unei transmisiuni seriale si unitatile lor de masura.

Parametrii folositi pe durata unei comunicatii seriale (RS-232) includ urmatoarele


valori: bits-per-character (bpc, biti per caracter), bits-per-second (bps, biti per secunda),
baud rate (rata de baud), informatie de paritate, biti de start, stop si Mark.

Bitii pe secunda reprezinta numarul de biti de informatie (0 sau 1) care sunt


transmisi intr-o secunda pe linia de comunicatie.

Viteza maxima de transmisiune. Cunoscand structura unui cadru si semnificatia


ratei de baud asa cum rezulta ea din comunicatia seriala, se poate calcula rata maxima de
transfer, in caractere pe secunda, pentru o conexiune data. Aceasta rata nu este altceva
decat rata de baud impartita la numarul de biti pe cadru.

Un bit de start semnaleaza inceputul fiecarui cadru al unui caracter. Bitul de start
are mereu valoarea 0 (Space), facand de fapt o tranzitie de la semnalul negativ (Mark) la
cel pozitiv (Space) la inceputul fiecarui octet. Durata sa in secunde este reciproca ratei de
baud.
Bitii per caracter (bpc) indica numarul de biti utilizati pentru a reprezenta un
singur caracter. Acest numar nu contine si informatia de sincronizare si paritate.
Un bit de paritate optional urmeaza bitii de date in cadru. Bitul de paritate, daca
este prezent, urmeaza de asemenea logica inversa: 1 pentru voltaje negative si 0 pentru
voltaje pozitive. Acest bit a fost inclus ca o metoda de detectie a erorilor.

4.        Explicati semnificatia starilor Space si Mark folosite in standardul RS-232.

Mark este voltajul negativ, iar Space este voltajul pozitiv. Semnalele mai mari de
3 V semnifica transmiterea unui bit de 0, in timp ce semnalele mai mici de –3 V
semnifica transmiterea unui bit de 1. Semnalul „baleiaza” intre +12 V si –12 V, „zona
moarta” dintre +3 V si –3 V avand rolul de a absorbi zgomotul liniei.

Bitii sunt transmisi in logica inversata: adica 1 pentru voltaj negativ si 0 pentru
voltaj pozitiv, si in ordine inversa. Ordinea de transmisiune este de la LSB (Least
Significant Bit) catre MSB (Most Significant Bit). Pentru a interpreta bitii de date dintr-un
cadru, acestia trebuie cititi de la dreapta la stanga si trebuie considerat 1 pentru voltaj
negativ si 0 pentru voltaj pozitiv.

5.        Explicati modul de alocare dinamica al frecventelor de aparitie pentru caracterele


ASCII in compresia MNP5.

La initierea compresiei, frecventele de aparitie pentru toate cele 256 de caractere


ale setului ASCII sunt zero. Totusi, caracterul cu valoare zecimala 0 se considera cel mai
frecvent, beneficiind de cea mai scurta marca. Caracterele cu valori zecimale crescatoare
sunt reprezentate prin marci succesive, astfel incat caracterul 11111111 (valoare zecimala
255) se presupune a fi cel mai putin frecvent.

La parcurgerea textului pentru compresie, fiecare caracter va fi inlocuit mai intai


prin marca aferenta, dupa care frecventa lui de aparitie va fi incrementata cu o unitate.
Daca in felul acesta caracterul respectiv depaseste in frecventa de aparitie caracterul cu
cea mai scurta marca, atunci cele doua caractere vor face schimb de marci. Procedura
decurge similar pentru caracterele urmatoare, care in functie de o aparitie mai frecventa
vor primi marci mai scurte. Procesul se repeta pana cand nu mai este necesara nicio
schimbare de marci. In acest moment, corespondenta dintre caractere si marci este corect
adaptata frecventelor relative de aparitie ale caracterelor.

6.        Comparati tipurile de codare NRZ, RZ si NRZI dupa criteriul sincronizarii.

Non Return to Zero (NRZ) reprezinta un tip de codare in care biti de 0 si de 1


sunt codati fiecare cu niveluri diferite de tensiune (vezi figura 5). Durata de transmitere a
unui bit este mereu aceeasi. Nivelul ridicat de tensiune reprezinta un 1, in timp ce nivelul
scazut reprezinta un 0. Exista posibilitatea pierderii sincronizarii pentru siruri lungi de 0
sau de 1.
Codarea Return to Zero (RZ) foloseste doar jumatate din durata transmiterii unui
bit pentru a marca bitii de 1 (vezi figura 6). Dupa aceasta perioada egala cu jumatatea
transmiterii unui bit, semnalul „se intoarce” la nivelul de 0. Pierderi ale sincronizarii pot
aparea atunci cand se transmit siruri lungi de 0.
Codarea Non Return to Zero Invert (NRZI) aloca o tranzitie de un anumit sens
bitilor de 1 si lipsa tranzitiei in cazul bitilor de 0. Pentru secvente lungi de biti de 0, exista
riscul pierderii sincronizarii.

7.        Care sunt avantajele tipurilor de modulatie numerica fata de cele analogice?

Informatia poate fi analogica (situatie in care semnalul are o forma continua,


adica poate lua orice valoare intre un minim si un maxim al semnalului) sau digitala (in
care un semnal numeric moduleaza o purtatoare continua). In cazul unei modulatii
digitale semnalul informational este digital (numeric), iar semnalul purtator este un
semnal armonic. Modulatia semnalului purtator se realizeaza in functie de amplitudinile
valorilor discrete ale semnalului informational numeric.In cazul modulatiei analogice,
semnalul informational este analogic (contine o gama continua de elongatii intre o
valoare minima si una maxima), acesta moduland un purtator armonic. Modulatia digitala
sau numerica poate fi considerata ca o conversie analog-digitala a unui semnal.
Studiul tipurilor de magistrale
(L5A)

1. Cum este influentata durata procesului de transfer al datelor pe magistrala de catre


viteza de raspuns a memoriei, in cazul magistralei sincrone? Dar in cazul magistralei
asincrone?

Rata de transfer este limitata de frecventa tactului. Datorita vitezei de propagare a


semnalului, cresterea ratei ar duce la diferente de faza la capetele magistralei.

2. Cum reactioneaza procesorul in cazul in care datele nu sunt furnizate de memorie in


timp util?

Daca memoria nu este capabila sa furnizeze datele in timp util procesorului,


aceasta va emite un semnal “wait” cerand prelungirea timpului de citire, iar procesorul va
astepta datele solicitate. Per total aceasta circumstanta incetineste viteza sistemului de
calcul.

4. In ce raport se afla durata frontului semnalului de ceas fata de perioada acestuia ?

TC (perioada ceasului) = 1 / FC (frecventa ceasului)

Tf (timpul de front) = 4 % din TC

6. La care dintre cele doua tipuri de magistrale efectul progresului tehnologic se


resimte mai puternic in imbunatatirea prformantelor?

Imbunatatirea performantelor se resimte cel mai puternic in cazul magistralelor


specializate.

8. Prezentati comparativ avantajele si dezavantajele celor doua tipuri de magistrala.

Principalul avantaj al magistralei sincrone fata de magistrala asincrona este


functionarea relativ simpla (si datorita lipsei semnalelor MSYN si SSYN). Ca
dezavantaje putem enumera operatiile care corespund unui numar intreg de perioade de
ceas , fapt care conduce la o functionare suboptima din punct de vedere al vitezei de lucru
precum si evolutia dificila odata cu procesul tehnologic.In cazul magistralei asincrone nu
este necesara existenta unui semnal de ceas ceea ce duce la o durata a operatiunii
variabila.
9. In ce situatii este preferat un anume tip de magistrala dintre cele doua studiate si
de ce ?

Pentru a conecta in mod optim un ansamblu de circuite la magistrala , este


preferata arhitectura asincrona iar pentru o configuratie simpla se utilizeaza magistrala
sincrona (memoria sau circuitele I/O nu fac decat sa raspunda la solicitarile UC).

10. Care credeti ca este tipul de magistrala cel mai raspandit in cazul procesoarelor
actuale ? Justificati .

Cel mai raspandit tip in cazul procesoarelor actuale este magistrala asincrona
deoarece aceasta este independenta de timp iar dispozitivele conectate la o astfel de
magistrala pot fi usor inlocuite cu alte dispozitive mai performante pe masura ce
tehnologia avanseaza.
Scheme de arbitrare a magistralei
(L5B)

1. Care este dezavantajul major al algoritmului FCFS?

Este greu de implementat, deoarece mecanismele necesare pentru inregistrarea


ordinii cererilor pot da gres daca cererile vin indeajuns de apropiate in timp.

2. De ce nu sunt introduse mai multe valori la un moment dat pentru algoritmul


FCFS?

Nu pot fi introduse mai multe valori la un moment dat deoarece algoritmul FCFS
nu prefera nici o cerere anume, prima solicitare sosita este acceptata si servita.

3. De ce prioritatile sunt fixe pentru algoritmul daisy chain?

Linia de cerere a accesului la magistrala a fiecarui dispozitiv este cablata printr-un


acelasi SAU, in orice moment in care se fac cereri catre accesul la magistrala arbitrul nu
sesizeaza decat una dintre aceste cereri si acorda magistrala dispozitivului emitent.

4. De ce prioritatile sunt fixe pentru algoritmul cu comparare in-out?

Logica folosita este cablata, ordinea prioritatilor tine de ordinea in care sunt
conectate dipozitivele la magistrala.

5. Descrieti evolutia in timp a prioritatilor perifericelor pentru Exemplul 1.

Momentul 0:

• Perifericul 0 – 1

• Perifericul 1 – 0

• Perifericul 2 – 3

• Perifericul 3 – 2
Momentul 3:

• Perifericul 0 – 2

• Perifericul 1 – 1

• Perifericul 2 – 0

• Perifericul 3 – 3

Momentul 5:

• Perifericul 0 – 3

• Perifericul 1 – 2

• Perifericul 2 – 1

• Perifericul 3 – 0

Momentul 7:

• Perifericul 0 – 0

• Perifericul 1 – 3

• Perifericul 2 – 2

• Perifericul 3 – 1

Momentul 10:

• Perifericul 0 – 1

• Perifericul 1 – 0

• Perifericul 2 – 3

• Perifericul 3 – 2

Momentul 21:

• Perifericul 0 – 1

• Perifericul 1 – 0
• Perifericul 2 – 3

• Perifericul 3 – 2

Momentul 24:

• Perifericul 0 – 2

• Perifericul 1 – 1

• Perifericul 2 – 0

• Perifericul 3 – 3

Momentul 25:

• Perifericul 0 – 3

• Perifericul 1 – 2

• Perifericul 2 – 1

• Perifericul 3 – 0

6. In cazul Exemplului 1, de ce butonul radio corespunzator perifericului 0, care a


formulat o cerere la momentul 0 cu durata 2, este inactiv la momentul 5?

Deoarece magistrala inca nu este libera, dupa ce aceasta a fost ocupata 3 unitati de
timp de catre perifericul 2 (care a solicitat magistrala in acelasi moment cu perifericul 0 si
a avut prioritate mai mare), a urmat randul perifericului 3 care a facut solicitarea sa inainte
ca perifericul 2 sa isi termine cele 3 unitati de timp, si avand prioritate mai mare fata de
perifericul 0 i-a fost alocata acestuia magistrala.

7. De ce se considera ca algoritmul cu comparare in-out este mai rapid decat


variantele cu arbitru?

Arbitrul implica un dispozitiv separat de monitorizare si decizie care parcurge un


set de etape decizionale dupa primirea cererii din partea unui dispozitiv.

Eliminarea arbitrului implica faptul ca verificarile se fac in momentul in care


dispozitivul decide ca are nevoie de magistrala, iar verificarile sunt mai simple deoarece
nu implica interogarile altor dispozitive.

8. Care sunt conditiile care trebuie verificate de algoritmul cu comparare in-out?

Conditiile care trebuie verificate de algoritmul cu comparare in-out sunt:


• Daca magistrala este libera;

• Daca semnalul BUS BUSY este dezactivat;

• Daca linia de arbitrare prezenta la iesirea sa este libera.

9. Cum se pune in evidenta unui periferic faptul ca momentan are acces la


magistrala?

In cazul structurilor centralizate, dispozitivul de arbitrare trimite semnale de ACK


ca raspuns unui BUS REQUEST.

In cazul structurilor descentralizate fiecare periferic verifica daca poate avea acces
si decide singur.

10. Cum se calculeaza timpul mediu de asteptare pentru un dispozitiv I/O pana la
obtinerea accesului la magistrala?

Se considera o durata de timp in care se desfasoara cereri de acces la magistrala din


partea tuturor perifericelor. Se elimina timpii in care nu s-au facut cereri si nici transmisii.

Se imparte durata obtinuta la nr de cereri satisfacute.


Studiul nivelului microprogramat
(L6A)

1. Care este locul nivelului microprogramat in structura stratificata a nivelurilor unui


calculator?

Nivelul imediat superior nivelului fizic (exceptie facand daca exista nivelul
nanoprogramat) este locul nivelului microprogramat in structura stratificata a nivelurilor
unui calculator.

2. Enumerati blocurile functionale ale masinii microprogramate in format orizontal.

Blocurile functionale ale masinii microprogramate in format orizontal sunt:registrele


generale de tip latch (16 a cate 16 biti), ALU(unitatea aritmetico-logica), registrul shift,
registrele tampon de tip latch RTA si RTB (prin care sunt legate la ALU magistralele A si
B), registrele RDA si RAD.

3. Care este rolul registrelor RTA si RTB din schema masinii microprogramate in
format orizontal? Dar al perechii de registre RDA si RAD?

Aceasta pereche de registre contine operanzii necesari pentru efectuarea unei operatii in
ALU, si isi primesc valoarea din registrele R1-R16.

Perechea RDA si RAD, reprezinta registrul de date (citite din memorie sau ce urmeaza a fi
scrise in memorie) respectiv registrul de adrese.

4. Care este semnificatia campurilor COND si ADDR din structura unei


microinstructiuni?

COND executa salturile conditionate sau neconditionate;

ADDR indica adresa microinstructiunii;

6. Care sunt subciclurile din componenta executiei unei microinstructiuni?


• Incarcarea microinstructiunii care trebuie executata intr-un registru particular
denumit registru microinstructiune RMI;

• Transferul continutului registrelor selectionate pe magistralele A, B si incarcarea


datelor in RTA si RTB;

• Realizarea operatiunilor ALU si ale registrului shift; daca este necesar RAD este
incarcat cu valoarea RTB;

• Incarcarea datelor de la iesirea registrului shift in registrul selectionat si/sau in


RDA;

7. Care sunt diferentele dinre memoria de program si memoria de microprogram?

Memoria de microprogram este de obicei o memorie read-only foarte rapida care contine
instructiunile microprogramate.

8. Care este rolul secventiatorului din structura masinii microprogramate in format


mixt?

Acesta are rolul de a adresa urmatoarea microinstructiune in functie de starea caii de date
si de bitii de control ai adresei urmatoare.

9. Care sunt blocurile specifice din structura masinii microprogramate in format


vertical? Ce rol au acestea?

Blocul SI: contine 16 porti SI, care permit campului R1 dupa traversarea decodorului R1
sa comande golirea unui registru pe magistrala A si incarcarea sa pe magistrala C.

Blocul NZ: registru de 2 biti care inregistreaza semnalele N si Z la iesirea ALU, cand
aceasta inregistrare este ordonata de decodor.

Decodorul COP: decodorul codului operatiei, pentru fiecare dintre cele 16 coduri de
operatie acesta determina care dintre cele 13 microcomenzi sunt active si care sunt in
repaos.

10. Care sunt criteriile dupa care se decide daca pentru un sistem anume se aplica
formatul orizontal sau formatul vertical al microprogramarii?

Micromasinile verticale au viteza redusa datorita numarului mare de instructiuni ce


trebuiesc rulate, insca costul de productie este mai mic si implicit mai convenabil pentru
masinile mai modeste.

Micromasinile orizontale sunt folosite in calculatoarele mari si rapide.

11. In ce conditii este eficienta nanoprogramarea? Care e dezavantajul acesteia?


Eficienta este data atunci cand un numar mic de microinstructiuni sunt mai frecvent
utilizate decat celelalte.

Dezavantajul acesteia este ca implica o citire aditionala in memorie, ceea ce incetineste


viteza fata de masinile microprogramate.

12. Care sunt mesajele afisate de microsecventiator in linia referitoare la semnificatia


campului COND, daca pentru N si Z sunt alese urmatoarele perechi de valori: N=0, Z=0;
N=0, Z=1; N=1, Z=0; N=1, Z=1 ?

Pentru N=0 , Z=0 microsecventiatorul va afisa in linia referitoare la semnificatia campului


COND “se executa urmatoarea microinstructiune”, pentru N=0, Z=1 si N=1, Z=0 se va
afisa “salt la adresa specificată de ADDR”, iar pentru N=1, Z=1 se va afisa “salt
necondiţionat la ADDR”.

13. In ce registru se scrie rezultatul adunarii , in cazul microprogramului de adunare


folosind micromasina verticala ?

In cazul microprogramului de adunare folosind micromasina verticala rezultatul adunarii


se scrie in registrul shift

16. In ce relatie se afla datele de intrare, in situatia in care este mai avantajos sa se
foloseasca nanoprogramarea in detrimentul microprogramarii ? Dar in situatia in care
nanoprogramarea este mai dezavantajoasa ?

Este mai avantajos sa se foloseasca nanoprogramarea in detrimentul microprogramarii


atunci cand avem un numar mic de instructiuni frecvent folosite dar un numar mare de
microinstructiuni si de biti al microinstructiunii. Un numar mare de microinstructiuni
frecvent folosite va duce la un castig de memorie in cazul nanoprogramarii fata de
microprogramare negativ.

17. Sa se precizeze care este castigul de memorie obtinut prin folosirea


nanoprogramarii, pentru parametrii de intrare n=32.768, w=130 si m=32.

Castigul de memorie obtinut prin folosirea nanoprogramarii, pentru parametrii de intrare


n=32.768, w=130 si m=32 este de 4091840 biti.
Gestiunea memoriei virtuale
(L6B)

1. Specificati diferenta dintre memoria fizica si memoria virtuala.

Memoria fizica:

• Linii fizice de adresare pe care le are procesorul in exterior;

• Spatiu de memorie fizica instalata (existenta) in sistemul de calcul;

Memoria virtuala:

• Linii fizice de adresare pe care le are procesorul in exterior;

• Spatiu de memorie pe care il creeaza sistemul de operare si care contne un model


al memoriei si al adreselor de memorie pe care le are programul la dispozitie;

• Suportul fizic (de obicei HDD), pe care sistemul de operare salveaza zone din
memoria totala disponibila programului pentru a asigura spatii libere in zona de memorie
fizica, destinate zonelor de cod sau de date cu care programul lucreaza in momentul
respectiv;

2. Ce operatii efetueaza sistemul de gestiune al memoriei virtuale atunci cand


programul trebuie sa execute o instructiune din pagina urmatoare?

• Salveaza continutul memoriei periferice in memoria secundara;

• Localizeaza pagina respectiva in memoria secundara;

• Incarca aceasta pagina in memoria princiala;

• Asociaza adreselor absolute adresa de memorie fizica de la 0 la 4095;

• Continua executia programului;

3. Care sunt avantajele folosirii sistemului de paginare?


• Marimea fixa a paginilor intra corect intr-un sector al unui disc;

• Un obiect in memorie nu trebuie sa fie continuu: pagina poate constituii o noua


cuanta de informatie;

• Mecanismul paginarii si tehnica de a schimba continuu blocuri fixe de informatii


intre memoria interna si cea externa nu sunt vizibile utilizatorului;

4. Care este conditionarea impusa in aplicatia de paginare intre dimensiunea


memoriei fizice si dimensiunea memoriei virtuale?

Dimensiunile memoriei virtuale trebuie sa fie de cel putin doua ori mai mari decat
memoria fizica.

5. In ce mod depinde alegerea dimensiunii paginii fata de alegerea dimensiunii


memoriei fizice?

Alegerea dimensiunii paginii fata de alegerea dimensiunii memoriei fizice depinde de


dimensiunile blocurilor de memorie cu care se lucreaza.

6. Precizati tipurile de operatii care pot fi efectuate asupra paginilor la implementarea


algoritmilor de inlocuire a paginilor.

• Eliminare din setul de lucru;

• Incarcare in setul de lucru;

• Incrementarea contoarelor (pentru FIFO contorul de ordine, pentru LRU, contorul


de utilizari);

8. Definiti fenomenul de fragmentare externa.

Fenomenul se manifesta la inlocuirea unor segmente initiale cu segmente mai mici decat
cele initiale, fapt care produce gauri in memoria principala, gauri care delimiteaza portiuni
cu segmente

9. Specificati nivelurile de protectie ale segmentelor precum si localizarea folosirii


acestei informatii.

Nivelurile de protectie se gasesc in registrul selector.

10. Care sunt nivelurile de prioritate in executie ale programelor care opereaza cu
segmente? Unde se regaseste aceasta informatie in cadrul aplicatiei?

• Nucleu SO
• Apeluri ale SO

• Biblioteci dinamice

• Program utilizator

11. Care este diferenta dintre algoritmii LRU si FIFO de inlocuire a paginilor?

LRU contorizeaza numarul de utilizare ale fiecarei pagini eliminand la nevoie cea mai
putin utilizata pagina.

FIFO contorizeaza ordinea in care paginile au fost incarcate si la nevoie elimina prima
pagina incarcata.

12. Considerati ca algoritmul LFU (Least Frequently Used)far putea fi olosit cu succes
in politica de inlocuire a paginilor?

Atat ca si implementare cat si ca si efect LFU ar fi compatibil cu necesitatile unei politici


de paginare. Posibil ca beneficiul adus fata de LRU sa fie totusi nesemnificativ prin
comparatie cu costurile aduse.

13. Enumerati variantele de algoritmi de inlocuire a segmentelor precum si diferentele


dintre acestea. Care considerati ca este mai eficient din punctul de vedere al timpului de
lucru? Dar din punctul de vedere al eficientei spatiului de memorie?

Best fit: Un algoritm care verifica marimile tuturor gaurilor si foloseste gaura cea mai
potrivita pentru marimea segmentului curent. Acest algoritm este mai lent dar combate in
buna parte fragmentarea. – cel mai eficient din punctul de vedere al spatiului de memorie.

First fit: Un algoritm rapid dar mai putin eficient in privinta fragmentarii. Principiul sau
este de a cauta prima gaura indeajuns de mare pentru a incapea segmentul curent. – cel
mai eficient din punctul de vedere al timpului de lucru.

16. In ce conditii este eficienta aplicarea compactarii la segmentare?

Cand timpul necesar compactarii este mai mic decat pierderile din cauza fragmentarii.