Sunteți pe pagina 1din 9

1 Explicai notiunea compilator.

Compilatorul este un program care realizeaz transformarea codului surs n cod-obiect,semnalnd erorile de
sintax.Compilatorul genereaz un program executabil,acesta fiind executat dup ce ntregul program a fost
compilat.Este integrat cu editorul,facilitnd corectarea erorilor depistate prin poziionarea n codul surs pe liniile
implicate.Programatorul are la dispoziie opiuni privind compilarea optimizat dup diferite criterii sau
platforme hardware,utilizarea unor versiuni standard ale limbajului de programare.

2 Explicai notiunea interpretor.


Interpretorul este un program translateaz fiecare instruciune n limbajul de nivel nalt ntr-o succesiune
de instruciuni main, acestea fiind executate imediat. n acest caz nu se genereaz un program
executabil. Viteza de execuie este ns redus, deoarece fiecare instruciune trebuie interpretat chiar
dac ea este executat n mod repetat.

3 Explicai notiunea main virtual.


Maina virtual este un calculator ipotetic,dotat cu un set de instruciuni ce constituie limbajul(codul) virtual. Un
asemenea calculator ar executa direct instruciunile limbajului de nivel nalt, fr a fi necesar utilizarea
unui translator (compilator) sau interpretor. Chiar dac implementarea unei maini virtuale care s
lucreze direct cu un limbaj de nivel nalt ar fi prea costisitoare, se pot scrie programe pentru aceast
main, deoarece aceste programe pot fi translatate sau interpretate cu un program care poate fi executat
direct de calculatorul existent.

4 Explicai diferena ntre compilare i interpretare.


-Compilare: codul surs este translatat de ctre compilator n cod main,dup care poate fi executat
-Interpretare: programul este executat direct din codul surs de ctre interpretor

5 Destinaia registrelor generali (AX, BX, CX, DX, SP, BP, SI, DI).
Toate registrele sunt de 16 bii. O serie de registre (AX, BX, CX, DX) sunt disponibile i la nivel de
octet, prile mai semnificative fiind AH, BH, CH i DH, iar cele mai puin semnificative, AL, BL, CL i
DL. Denumirile registrelor sunt:
AX - registru acumulator
BX - registru de baz general
CX - registru contor
DX - registru de date
BP - registru de baz pentru stiv
SP - registru indicator de stiv
SI - registru index surs
DI - registru index destinaie

Regitrii de date (AX, BX, CX, DX) pot fi folosite pentru memorarea datelor, ns unele din acestea
sunt folosite special pentru alte scopuri. De exemplu registrul CX este folosit ca contor n instruciunea
LOOP de ciclare, care l modific implicit i-i testeaz valoarea, registrul DX este folosit n
instruciunile de mprire si nmulire, iar registrul BX este folosit pentru adresarea datelor
(operanzilor).Regitrii pointer (SP si BP) se folosesc pentru calculul offsetului (distanei fa de
nceputul unui segment) din cadrul segmentului. Regitrii de index, de 16 biti sunt: SI (Source Index) si
DI (Destination Index). Regitrii de index sunt folosite pentru accesul la elementele unui tablou sau a
unei tabele. Aceti regitri sunt folosite ndeosebi in prelucrarea irurilor de caractere
6 Destinaia registrelor segment.
CS - registru de segment de cod (code segment);
DS - registru de segment de date (data segment);
SS - registru de segment de stiv (stack segment);
ES - registru de segment de date suplimentar (extra segment).

7 Destinaia registrului Flags.


Un registru pe 16 biti numit registru FLAG este utilizat pentru a controla executia instructiunilor.
Flag-urile reprezinta biti ce pot avea valoarea 1 (SET) sau 0 (NOT SET).
Registru de FLAG-uri
Abr. Nume Nr. bit
OF Overflow Flag 11
DF Direction Flag 10
IF Interrupt Flag 9
TF Trap Flag 8
SF Sign Flag 7
ZF Zero Flag 6
AF Auxiliary Carry 4
PF Parity Flag 2
CF Carry Flag 0
Semnificatia indicatorilor de conditie este urmatoarea:

CF (Carry Flag, indicator de transport) semnifica un transport sau un mprumut n, respectiv


din bitul cel mai semnificativ al rezultatului.
PF (Parity Flag, indicator de paritate) este pozitionat dupa cum bitii din cel mai putin
semnificativ octet al rezultatului sunt n numar par (pozitionare pe 1) sau impar (pozitionare pe
0).
AF (Adjust Flag, indicator de ajustare) este folosit n aritmetica zecimala si semnifica un
transport sau un mprumut n, respectiv din bitul 4 (cel mai semnificativ bit al jumatatii celei
mai putin semnificative) al rezultatului.
ZF (Zero Flag, indicator de zero) indica daca rezultatul unei operatii a fost sau nu zero.
SF (Sign Flag, indicator de semn) are aceeasi valoare ca bitul cel mai semnificativ al
rezultatului (bitul de semn): 0 pozitiv, 1 negativ.
TF (Trap Flag, indicator de urmarire a executiei) este folosit la depanarea programelor prin
executia lor pas cu pas daca este setat, procesorul forteaza automat o exceptie dupa executia
fiecarei instructiuni.
IF (Interrupt Flag, indicator de ntreruperi) precizeaza daca procesorul ia n considerare sau
nu ntreruperile externe.
DF (Direction Flag, indicator de directie) precizeaza sensul (0 crescator sau 1
-descrescator) n care este modificat contorul de adrese la operatiile cu siruri.
OF (Overflow Flag, indicator de depasire) semnifica depasirea domeniului admisibil la
reprezentarea rezultatului unei operatii aritmetice cu sau fara semn. Practic, este pozitionat pe
1 daca apare un transport nspre bitul cel mai semnificativ al rezultatului din bitul vecin, dar nu
si din bitul cel mai semnificativ spre CF sau invers, dinspre bitul cel mai semnificativ spre CF,
dar nu si spre bitul cel mai semnificativ din bitul vecin. Similar, la mprumut, este pozitionat pe
1 daca apare un transport de la bitul cel mai semnificativ la bitul vecin, dar nu si nspre bitul cel
mai semnificativ dinspre CF sau invers, dinspre CF spre b.c.m.s., dar nu si dinspre bitul cel mai
semnificativ spre bitul vecin.
Flagurile CF, PF, AF, ZF, SF i OF sunt numite flaguri de stare (aritmetice). Flagurile TF,
IF i DF sunt numite flaguri de control.

8 Destinaia registrului IP.


Registrul IP (instruction pointer) este registrul de instruciuni.

9 Ce indic perechea de registre (CS:IP)?


Adresa urmtoarei instruciuni care se va executa

10 Ce indic perechea de registre (SS:SP)?


Adresa vrfului stivei

11 Formarea adresei fizice.


Memoria unui sistem cu procesor 8086 este divizat n segmente. Un segment este o zon
continu de memorie, de lungime maxim de 64 KO, care ncepe la o adres fizic
multiplu de 4. Acest fapt nseamn c ultima cifr hexa a adresei de nceput a unui
segment este totdeauna 0. Ca atare, aceast cifr se poate omite i adresa de segment se
poate reprezenta tot pe 16 bii. Adresele de nceput ale segmentelor se vor gsi
ntotdeauna ntr-unui din cele 4 registre de segment.
Adresarea n interiorul unui segment se realizeaz printr-un deplasament (offset) relativ la
nceputul segmentului. Deoarece un segment nu poate depi 64 KO, deplasamentul se
poate memora tot pe 16 bii. Deplasamentul poate fi o constant sau coninutul unui
registru care permite adresarea memoriei.
n concluzie, pentru adresarea unui octet de memorie, se folosesc dou entiti pe 16 bii:
o adres de segment (coninut obligatoriu ntr-un registru de segment) i un
deplasament. Deoarece ambele entiti sunt pe 16 bii, se vorbete de adrese (sau pointeri)
de 32 de bii, dei adresa fizic este doar pe 20 de bii.
Formarea adresei fizice (pe 20 de bii) este realizat automat (prin hardware) de ctre o
component a procesorului.
Concret, adresa fizic se obine prin deplasarea adresei de segment cu 4 bii la stnga i
prin adunarea deplasamentului. Pentru specificarea unei adrese complete (de 32 de bii),
se folosete notaia (segment:offset) sau (registru_segment:offset). De exemplu, putem
specifica o adres prin (18A3:5B27) sau prin (DS:5B27).
12 Scriei un program ce definete date pe 16, 64 i 80 bii.
INCLUDE Irvine32.inc
.data
variabila0 WORD 0ffffh ;se declara un word(2byte = 16biti = 4tetrade) cu valoarea 0ffffh si offsetul variabila0.
variabila01 SWORD 0ffffh ;se declara un sign word(2byte = 16biti = 4tetrade) cu valoarea 0ffffh si offsetul variabila01.
variabila02 DW 0ffffh ;se declara un difine word(2byte = 16biti = 4tetrade) cu valoarea 0ffffh si offsetul variabila02.
variabila1 QWORD 0123456789abcdefh ;se declara un quad word(8byte = 64biti = 16tetrade = 4word = 2dword)
cu valoarea 0123456789abcdefh si offsetul variabila1.
variabila11 DQ 0123456789abcdefh ;se declara un difine quad word(8byte = 64biti = 16tetrade = 4word = 2dword)
cu valoarea 0123456789abcdefh si offsetul variabila11.
variabila2 TBYTE 0123456789abcdef01234h ;se declara un ten byte(10byte = 80biti = 20tetrade) cu valoarea
0123456789abcdef01234h si offsetul variabila2.
variabila21 DT 0123456789abcdef01234h ;se declara un difine ten byte(10byte = 80biti = 20tetrade) cu valoarea
0123456789abcdef01234h si offsetul variabila21.
.code
start : mov ax,@data
mov ds,ax
mov ax,4C00h
int 21h
exit
main ENDP
END main

13 Scriei un program ce definete date pe 8, 32 bii i n format BCD (mpachetat,


despachetat).

14 Numii componentele funcionale ale unui calculator (hardware).


Din punct de vedere hardware, calculatorul are trei componente funcionale legate ntr-un
mod specific.
Blocurile funcionale sunt:
1. Unitatea central de prelucrare (UCP) are dou funcii eseniale:
prelucrarea datelor;
controlul activitii ntregului calculator.
O unitate central de prelucrarea informaiei, avnd funciile enunate mai sus, care
coordoneaz un sistem structurat funcional i care, fizic, se prezint sub forma unui singur cip
(circuit integrat) se numete microprocesor. Aceast accepiune standard a noiunii va fi folosit
n continuare pentru detalierea conceptelor care stau la baza funcionrii ntregului calculator.
2. MEMORIA este, din punctul de vedere al sistemului pe care l definim, o secven de locaii
pentru stocarea informaiei.
Fiecare locaie este definit prin dou entiti informaionale:
Coninutul, reprezentat de o niruie de cifre binare 0 sau 1 ("bii"); se va observa c
nu am folosit noiunea de "numr binar", pentru c informaia stocat ntr-o locaie de
memorie poate avea diverse semnificaii. Numrul de cifre binare coninute ntr-o
locaie depinde de modul n care microprocesorul organizeaz informaia n memorie;
mrimea unei locaii va fi denumit formatul memoriei, exprimat n numr de bii (8
bii). Formatul memoriei nu are nici-o legtur cu organizarea fizica a cipurilor de
memorie.
Adres, reprezentnd numrul de ordine al locaiei, care permite identificarea sa n
cadrul secvenei de locaii (exist o coresponden biunivoc ntre fiecare locaie de
memorie i adresa sa).
n privina memoriei unui calculator vom folosi cteva noiuni:
"Harta memoriei", definit ca fiind totalitatea locaiilor de memorie pe care le poate
adresa un microprocesor.
"Pagini" i/sau "segmente" sunt subdiviziuni logice ale hrii memoriei, ale cror
dimensiuni, fixe sau dinamice, sunt specifice modului n care un microprocesor anume
organizeaz memoria. Subliniem din nou c aceste moduri de organizare nu au nici-o
legtur cu structura fizic a memoriei unui calculator.
3. Dispozitivele de intrare/ ieire (I/O) sunt constituite din circuitele prin care se realizeaz
legtura ntre calculator i lumea exterioar. O unitate elementar de conversaie cu exteriorul
poart numele de "port de intrare/ieire". ntre porturi i locaiile din memorie exist nite
similitudini:
Porturile sunt n esen tot locaii de memorare a informaiei, adresabile; desigur,
informaia care se folosete uzual aici este alctuit din operanzi/rezultate (date).
Exist o "hart a porturilor" care, aa cum vom arta n capitolele urmtoare, poate sau
nu s fac parte din harta memoriei.

15 Explicai noiunea magistral.


Un set de conexiuni fizice ntre blocuri prin care informaia care circul are o
semnificaie prestabilit. Sistemele la care ne referim au o magistral unic, ce le
caracterizeaz; din punct de vedere funcional, exist trei componente ale acestei
magistrale:
1. Magistrala de date, bidirecional, permite circulaia datelor (operanzi/rezultate), a
instruciunilor i chiar a adreselor.
2. Magistrala de adrese, unidirecional, permite microprocesorului s localizeze
informaia n Memorie sau n Dispozitivele de intrare/ieire; deci pe aceast magistral
circul numai adrese.
3. Magistrala de control permite circulaia, bidirecional, a semnalelor de comand i
control de la/la microprocesor, n calitatea sa de Unitate central.

16 Caracterizai circuitele RFID.


Circuitele RFID (Radio Frequency Identification Tehnologia identificrii prin
radiofrecven). Aceast tehnologie presupune stocarea informaiilor nu prin codurile de
bare, ci prin intermediul unor cipuri electronice integrate, de ex. n etichete, ecusoane,
ambalaje de marfetc. Aceste informaii, ce reprezint un cod unic din 128 bii, pot fi
citite de la distan de civa metri prin unde radio. Dimensiunea acestor circuite este mai
mic de 0,5mm, costul fiind de civa ceni. Circuitele nu utilizeaz surse de alimentare i
pot stoca informaia mult timp.

17 Caracterizai grupa de calculatoare servere.


Un server este o un calculator, care opereaz continuu n reeaua sa i ateapt solicitri
din partea altor calculatoare din reea, pentru a asigura accesul la toat paleta de forme de
conectare i servicii. Multe componente de hardware sunt identice cu cele ce le gsim
ntr-un calculator personal. Totui serverele ruleaz sisteme de operare i programe
specializate care sunt diferite fa de cele folosite pe calculatoare personale.
Serverele deservesc resurse hardware care sunt partajate i pot uneori fi comandate de
ctre calculatoarele-client, cum ar fi imprimante (atunci serverul se numete print server)
sau sisteme de fiiere (atunci el se numete file server). Aceast partajare permite un
acces i o securitate mai bune. Cu toate c serverele pot fi construite, din comoditate, din
componente obinuite de calculatoare, este necesar ca, pentru operaii rapide i de mare
amploare, serverele s foloseasc configuraii hardware optimizate pentru aceste cerine,
Intel produce microprocesoare specializate pentru servere i staii de lucru - Intel Xeon.
Cu toate c serverele ofer mult spaiu pe disc, pentru mrirea siguranei n funcionare
sunt folosite hard-discuri de capacitate redus, numeroase, interconectate n mod special.

18 Caracterizai grupa de calculatoare mainframe.


Calculatoarele mainframe sunt calculatoare ce pot exploata volume imense de date i pot
suporta lucrul a mii de utilizatori simultan. Un calculator mainframe se distinge mai ales
prin capacitatea de stocare i memoria intern. El poate rula ani ntregi fr ntrerupere,
Unele calculatoare pot rula mai multe sisteme de operare simultan, opernd astfel ca o
mulime de maini virtuale. Preul unui astfel de calculator este de ordinul sutelor de
mii de dolari. Este solicitat de companiile care vehiculeaz i prelucreaz un volum foarte
mare de informaie. Principala diferen ntre supercalculatoare i mainframe este c
primele se folosesc pentru operaii ce necesit calcule intense, n timp ce mainframe
efectueaz operaii de complexitate redus asupra unor volume mari de date.

19 Clasificarea lui Flynn. Arhitectura SISD.


SISD (Single Instruction Single Data):
Din aceast categorie fac parte calculatoarele convenionale care execut un singur flux
de instruciuni asupra unui singur flux de date. Aceste siteme de calcul se mai numesc i
calculatoare von Neumann.Instruciunile sunt executate secvenial, ns pot exista
suprapuneri ntre acestea dac este implementat conceptul de band de asamblare
(pipeline) majoritatea sistemelor SISD actuale utilizeaz conceptul de band de
asamblare. Calculatoarele SISD pot avea mai multe uniti funcionale (ex: coprocesor
matematic, procesor grafic, procesor de intrare/ieire, etc.), ns acestea sunt vzute ca o
singur unitate de execuie.
Exemple de calculatoare SISD: CDC 6600, CDC 7600, Amdhal 470/6, Cray-1.

20 Clasificarea lui Flynn. Arhitectura SIMD.


Aceast categorie de arhitecturi cuprinde sistemele de calcul compuse din mai multe
uniti de execuie identice aflate sub comanda unei singure uniti de control. Unitatea
de control transmite acelai flux de instruciuni, simultan, tuturor unitilor de execuie.
Toate unitile de execuie execut simultan aceeai instruciune asupra datelor din
memoria proprie (exist sisteme ce au i o memorie partajat pentru comunicaii).
Unitatea de control trebuie s permit tuturor elementelor de procesare s-i termine
instruciunea curent nainte de iniierea unei noi instruciuni, astfel c execuia
instruciunilor trebuie sincronizat ntre toate unitile de execuie. Ca i ordin de mrime
numrul procesoarelor implicate ntr-o structur SIMD este de cteva mii.
Aplicabilitate: calculatoarele SIMD sunt folosite n cazul aplicaiilor paralele ce necesit
un control fin asupra datelor. Exemplu: reele neuronale.
Exemple de implementri SIMD: ILLIAC-IV, PEPE, BSP, STARAN, MPP, DAP,
Connection Machine CM-1, CM-2 (de la Thinking Machines Corporation), MassPar MP-
1, MP-2.

21 Clasificarea lui Flynn. Arhitectura MISD.


MISD (Multiple Instruction Single Data)
Arhitecturile MISD au mai multe elemente de procesare, fiecare executnd un set diferit
de instruciuni asupra unui singur flux de date. Acest lucru este realizabil n dou moduri:
acelai element din fluxul de date este prelucrat de toate procesoarele, fiecare executnd
propriile operaii asupra respectivei date;
un element din fluxul de date este prelucrat de primul procesor, rezultatul obinut este
pasat mai departe celui de-al doilea procesor .a.m.d., formndu-se astfel o macro-band
de asamblare.
Singurul exemplu de implementare pentru acest tip de arhitecturi este C.mmp (calculator
multimicroprocesor) construit la Carnegie-Mellon University. Acest calculator este
reconfigurabil i poate opera n modurile SIMD, MISD i MIMD.

22 Clasificarea lui Flynn. Arhitectura MIMD.


Majoritatea sistemelor multiprocesor se pot ncadra n aceast categorie. Un sistem de
calcul MIMD are mai multe elemente de procesare interconectate, fiecare avnd propria
unitate de control. Procesoarele lucreaz fiecare asupra propriilor date executnd asupra
lor propriile instruciuni. Sistemele MIMD pot avea i memorie partajat. Operaiile
executate de fiecare procesor sunt independente intre ele, deci modul lor de operare este
asincron.
Acest tip de arhitecturi sunt aplicabile n cazul aplicaiilor paralele (calcul paralel).
Exemple de implementare: C.mmp, Burroughs D825, Cray-2, S1, Cray X-MP, SGI/Cray
Power Challenge Array, SGI/Cray Origin-2000, HP/Convex SPP-2000, Pluribus, IBM
370/168 MP, Univac 1100/80, Tandem/16, IBM 3081/3084, BBN Butterfly, Meiko
Computing Surface (CS-1), FPS T/40000, iPSC.

23 Explicai diferena ntre microprocesoarele CISC i RISC.


Printre diferentele intre microprocesoarele CISC si RISC putem nota: formatul pentru instructiuni
( CISC format de lungime variabila, RISC format de lungime fixa, care contribuie la
simplificarea structurii unitii de control ); numarul de registre din interiorul UCP (CISC
nr. relativ mic de registre, RISC nr. relativ mare de registre ); Tehnica de tip pipeline
este utilizat i la arhitecturile CISC, dar la RISC tehnica este mai eficient i mai uor de
implementat, datorit lungimii constante a instruciunilor; CISC : set complex (extins) de
instruciuni i o mare varietate de moduri de adresare; RISC : Relativ puine tipuri de
instruciuni (tipic sub 100 de instruciuni) i puine moduri de adresare (din nou aceast
caracteristic contribuie i la simplificarea structurii unitii de control);

24 Definii noiunile arhitectura scalar, superscalar.


Pentru a explica aceast noiune, urmrim utilizarea microinstruciunilor executate n
paralel (tehnica "pipeline") folosite de microprocesoarele moderne. ncepnd cu
microprocesorul i486, Intel a introdus o band de asamblare, numit tehnica pipeline,
care const din 5 segmente:
Ciclul main fetch(Citirea instruciunii din cache sau din memoria intern);
Decodificarea instruciunii decodific n microinstruciuni;
Generarea adresei pentru localizarea operanzilor n memorie;
Prelucrarea instruciunii n UAL;
nscrierea rezultatului ( unde va fi nscris rezultatul depinde de formatul instuciunii).
Microprocesoarele ce includ o Band de asamblare se numesc microprocesoare cu
arhitectura scalar, cele ce includ dou i mai multe - microprocesoare cu arhitectura
suprascalar.

25 Explicai funcionarea unei benzi de asamblare cu 5 segmente.


Figura 3.8 ilustreaz o band de asamblare cu 5 uniti numite i stages (segmente,
etape). Segmentul 1 extrage instruciunea din memorie i o plaseaz ntr-un registru
tampon. Segmentul 2 o decodific, determinndu-i tipul i operanzii. Segmentul 3
localizeaz i extrage operanzii, fie din regitri, fie din memorie. Segmentul 4 execut
instruciunea, de obicei rulnd operanzii prin calea de date, iar segmentul 5 scrie
rezultatul n regitri.

Figura 3.8 - O banda de asamblare de 5 segmente (a)


Starea fiecrui segment n funcie de timp (b).

26 Explicai funcionarea unei benzi de asamblare duale cu 5 segmente.


n figura 3.9 este prezentat o posibil proiectare a unui UCP n band de asamblare
dual. Pentru a putea lucra n paralel, cele 2 instruciuni nu trebuie s-i dispute resursele
(de exemplu Regitrii) i nici una nu trebuie s depind de rezultatul celeilalte. Fie
compilatorul trebuie s garanteze c ipoteza anterioara e respectat, fie conflictele sunt
detectate i eliminate pe parcursul execuiei, cu ajutorul unui hardware suplimentar.

Figura 3.9 Banda de asamblare dual cu 5 segmente

27 Explicai funcionarea unei benzi de asamblare cu 5 uniti funcionale.


Idea de baz este de a avea o singur band de asamblare, dar cu mai multe uniti
funcionale, aa
cum se observ n figura 3.10.

Figura 3.10 - Un procesor superscalar cu 5 uniti funcionale

Unitile funcionale UAL din segmentul S4 pot executa instruciuni timp de un ciclu de
ceas, iar cele care acceseaz memoria sau care lucreaz n virgul mobil (mai lente), au
nevoie de mai mult timp dect un ciclu de ceas pentru a-i executa funcia. Dup cum se
poate observa, pot exista mai multe uniti funcionale n segmentul S4.