filehost_arhitectura sistemelor de calcul

96
5/12/2018 Filehost_ArhitecturaSistemelordeCalcul-slidepdf.com http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 1/96 Grigore ALBEANU ARHITECTURA SISTEMELOR DE CALCUL 

Upload: adrianviorel7

Post on 14-Jul-2015

154 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 1/96

Grigore ALBEANU

ARHITECTURA

SISTEMELOR DE CALCUL 

Page 2: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 2/96

 

Descrierea CIP a Bibliotecii Naţionale a României

ALBEANU, GRIGOREArhitectura sistemelor de calcul / Grigore Albeanu

 – Bucureşti, Editura Fundaţiei România de Mâine, 2007

96p.; 23,5 cm.Bibliogr.

ISBN 978-973-725-756-7

004.2(075.8) 

© Editura Fundaţiei România de Mâine, 2007 

Page 3: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 3/96

UNIVERSITATEA SPIRU HARET  

FACULTATEA DE MATEMATICĂ-INFORMATICĂ 

Grigore ALBEANU

ARHITECTURA

SISTEMELOR DE CALCUL

EDITURA FUNDAŢIEI ROMÂNIA DE MÂINE  Bucureşti, 2007

Page 4: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 4/96

 

Page 5: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 5/96

5

 

CUPRINS

Cuvânt înainte ………………………………………………………………. 7

1. Bazele aritmetice ale sistemelor de calcul ……………………………... 9

1.1. Sisteme de numeraţie ………………………………………………... 9

1.2. Coduri ……………………………………………………………….. 15

1.3. Reprezentarea numerelor întregi ……………………………………. 17

1.4. Reprezentarea IEEE 754 …………………………………………….. 19

1.5. Exerciţii ……………………………………………………………... 22

2. Bazele logice ale sistemelor de calcul ………………………………….. 25

2.1. Latici şi algebre Boole ………………………………………………. 25

2.2. Funcţii booleene. Forme normale …………………………………… 28

2.3. Aplicaţii ……………………………………………………………... 31

2.4. Exerciţii ……………………………………………………………... 33

3. Structura sistemelor de calcul …………………………………………. 35

3.1. Resursele fizice ale sistemelor de calcul ……………………………. 35

3.1.1. Generaţii de calculatoare ……………………………………... 353.1.2. Procesor. Caracteristici. Set de instrucţiuni …………………... 37

3.1.3. Memorii ………………………………………………………. 39

3.1.4. Dispozitive periferice ………………………………………… 41

3.1.5. Viteza de procesare …………………………………………… 48

3.1.6. Clasificarea sistemelor de calcul ……………………………... 50

3.1.7. Modelarea sistemelor digitale ………………………………… 54

3.2. Resursele logice ale sistemelor de calcul …………………………… 57

3.2.1. Introducere în sisteme de operare …………………………….. 57

3.2.2. Iniţiere în utilizarea sistemelor de calcul bazate pe UNIX …… 59

3.2.3.Iniţiere în utilizarea PC/Windows …………………………….. 653.2.4. Resurse logice privind programarea calculatoarelor …………. 68

3.3. Exerciţii ……………………………………………………………... 70

4. Calculatorul MMIX ……………………………………………………. 75

4.1. Instrucţiunile calculatorului MMIX …………………………………. 75

4.2. Programarea calculatorului MMIX …………………………………. 88

4.3. Exerciţii ……………………………………………………………... 93

 Bibliografie …………………………………………………………………. 95

Page 6: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 6/96

 

6

 

Page 7: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 7/96

7

 

CUVANT ÎNAINTE 

Sistemele de calcul au evoluat continuu, iar aceast ă evolu ţ ie continuă să neuimească . Aceast ă  lucrare încearcă să capteze atât bazele matematice ale sistemelor de calcul (utile orică rui programator), cât   şi să  prezinte o radiografie a prin-cipalelor concepte interesante atât pentru utilizatori cât  şi pentru programatori.

 Primele două capitole acord ă o importan ţă major ă bazelor de numera ţ ie  şi func ţ iilor booleene deoarece orice utilizator/programator, mai devreme sau maitârziu, are nevoie de acele concepte  şi tehnici din largul evantai al bazelor aritmetice şi logice ale sistemelor de calcul.

Capitolul întâi se ocupă  de modalit ăţ i de reprezentare a datelor în  sistemele de calcul. Atât pentru numere naturale, numere întregi cât  şi pentrunumere ra ţ ionale, sistemul binar se impune. Programatorii au nevoie, însă  ,  şi de

  sistemele hexazecimal sau octal. Complementul fa ţă  de doi, reprezentarea IEEE 754 nu trebuie să  lipsească  din preg ă tirea informaticienilor. Ele ne permit să  în ţ elegem tipurile de date cu care operează  limbajele de programare (inclusiv celecare manipulează obiecte) precum  şi opera ţ iile cu aceste date.

Sistemele de calcul au fost proiectate, ini ţ ial, pentru calcule  ştiin ţ ifice. Ori,

reprezentarea IEEE 754 este doar unul dintre modelele de reprezentare a numerelor reale. Prin urmare familiarizarea cu avantajele  şi dezavantajele acestei reprezent ă ri,

 precum  şi cunoa şterea implica ţ iilor utiliză rii unei reprezent ă ri discrete a numerelor reale în locul celei dense considerate de că tre matematicieni.

  De asemenea (în momentul actual), stabilirea culorilor în realizarea  paginilor HTML necesit ă  cunoa şterea sistemului hexazecimal, iar că utarea deinforma ţ ie folosind motorul Google necesit ă  utilizarea cuvintelor AND, OR etc.(deci a opera ţ iilor logice).

Capitolul al doilea, aparent teoretic, are aplica ţ ii majore în proiectarea

 sistemelor digitale  şi a optimiză rii calculului. Dacă  dorim să  programă m eficient trebuie să  simplifică m expresiile logice, să  în ţ elegem modul de func ţ ionare a unui sistem de calcul particular.

Capitolul al treilea este doar pentru utilizatori, dar un programator arenevoie să  cunoască mult mai mult decât ofer ă prezentul material. Unii cititori pot  spune că nu este nevoie de UNIX/Linux pentru că Windows (de la Microsoft) este  sistemul de operare la care au acces în acest moment. Nici o problemă ! Maidevreme sau mai târziu vor avea ocazia să utilizeze  şi alte sisteme de calcul decât calculatoarele personale.

  Acest capitol poate fi oricând extins în func ţ ie de noile tehnologii

informa ţ ionale. Au fost introduse modurile de utilizare UNIX/Windows pentru

Page 8: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 8/96

8

că  acestea domină  pia ţ a actual ă . Experien ţ a de utilizare / programare se poateîmbună t ăţ ii numai prin exerci ţ iu, prin experiment. Comenzile externe Windows pot fi

 studiate folosind Windows NT/2000/XP în mod text, iar comenzile UNIX prezentate  pot fi experimentate cu orice versiune de Linux.  Aceasta nu face ca cel care parcurge materialul să nu se poat ă descurca şi cu alte sisteme de calcul.

Calculatorul MMIX este, deocamdat ă  , unul virtual. Dar câte experimente se  pot face. Aici, cititorul va în ţ elege, că  înainte de a avea un calculator pentruasamblat, acesta este proiectat (func ţ ionarea acestuia fiind simulat ă pe alte sistemeexistente deja), simulat, fabricat, testat  şi apoi multiplicat (eventual în clone precumcalculatoarele IBM/PC). Experien ţ a cu MMIX permite cititorului să abordeze oricearhitectur ă de procesor, inclusiv arhitecturile MIPS/Intel/Motorola.

  Ianuarie 2007 Autorul 

Page 9: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 9/96

  9

 

1. BAZELE ARITMETICE ALE

SISTEMELOR DE CALCUL

1.1. Sisteme de numeraţie

Pentru prelucrarea datelor, omul lucrează în sistemul de numera ţ ie zecimal ,folosind cele 10 simboluri: 0, 1, 2, ..., 9, numite cifre (eng. digits).

Pentru domeniul sistemelor de calcul digitale1, cele mai importante sisteme

de numeraţie sunt: binar, octal şi hexazecimal.Sistemul binar foloseşte baza de numeraţie 2:

0 + 1 = 1 + 0 = 1; 0 + 0 = 0; 1 + 1 = (10)2  = 2 (în baza 10);0 x 0 = 1 x 0 = 0 x 1 = 0, 1 x 1 = 1).

Sistemul octal , cu baza opt, foloseşte simbolurile: 0, 1, ..., 7 .Baza de numeraţie a   sistemului hexazecimal este 16 , iar simbolurile

folosite sunt: 0, 1, ..., 9, a, b, c, d , e, f . Se pot utiliza – prin corespondenţă biunivocă - şi simbolurile A, B, C, D, E, F cu semnificaţia simbolurilor a, b, c, d, e, f .

Datorită modului poziţional, de lucru, indiferent de sistemul de numeraţie

utilizat, realizarea operaţiilor aritmetice urmează acelaşi algoritm2

.De exemplu, la adunare se face transport de la ordinul curent la ordinulimediat superior. Fie X = (xn-1 xn-2 … x1 x0) b şi Y = (yn-1 yn-2 … y1 y0) b, operaţia Z =X + Y produce n simboluri în baza b, Z = (zn-1 zn-2 … z1 z0) b şi un simbol T pentrutransport (transportul iniţial este 0). Algoritmul de calcul este:

Algoritmul A1:T:= 0;Pentru k de la 0 la n-1 (crescător cu pasul 1)se execută :

S = xk +yk +T;Zk  := S mod b (Restul împăr ţirii lui S la b);T := S / b (Câtul împăr ţirii lui S la b);

1 Un   sistem de calcul (calculator) este o structur ă destinată prelucr ării datelor. El estealcătuit din resurse fizice (hardware), resurse logice (software) şi resurse informaţionale(fişiere de configurare, registre de profil etc.) care cooperează pentru satisfacerea cerinţelor utilizatorilor privind introducerea, memorarea (stocarea), prelucrarea, transmiterea (către unalt sistem de calcul), precum şi regăsirea (prin interogare) datelor. Se face distincţie întresistemele de calcul digitale (numerice) şi sistemele de calcul analogice.2

Un algoritm este o reţetă care descrie un proces de calcul şi este asociat rezolvării problemelor decidabile.

Page 10: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 10/96

 Procesul privind transformarea reprezentărilor exprimate în sisteme de

numeraţie se numeşte conversie. Referitor la sistemele de numeraţie, descriemcâteva metode de conversie şi algoritmii de calcul corespunzători3.

Codificarea unui număr real într-o bază de numeraţie b (b ≥ 2), se bazează  pe operaţiile de împăr ţire şi înmulţire aplicate numerelor întregi.

Pentru a converti un număr real format din parte întreagă  şi partefracţionar ă (x = [x]+{x}), din scrierea zecimală, în baza b (b ≥ 2), se procedează astfel:

1. se împarte (conform teoremei împăr ţirii cu rest4) la b, partea întreagă şicâturile obţinute după fiecare împăr ţire, până se obţine câtul  zero.Rezultatul conversiei este constituit din resturile obţinute, luate înordine inversă apariţiei acestora.

Algoritmul A2. Fie y un număr natural căruia îi corespunde, în baza b,

secvenţa (an-1,an, …,a1,a0) b, conform relaţiei y = , Algoritmul

A2 descrie etapele prin care pornind cu y şi b se obţine lungimea n şisimbolurile codului.

∑−

=

1

0

n

k k ba

Date de intrare: y, b

Paşii:

k := 0;ak  := y mod b;y := y / b;Cât timp y ≠0 se execută 

i) k := k + 1;ii) ak  := y mod b;iii) y := y/b;

n:=k+1;

Ieşire: n, (an-1,an, …,a1,a0) b.

3 Bazele de numeraţie îşi vor dovedi utilitatea atât în contextul programă rii calculatoarelor  (limbaj de asamblare, limbajul C, limbajul C++ etc.), cât şi în contextul utiliză riicalculatoarelor (de exemplu, la specificarea culorii textului când se realizează pagini Web: pentru culoarea având structura 40% roşu, 20% verde şi 40% albastru, se obţine 40% din255 = 102 = #66; 20% din 255 = 51 = #33, iar codul final al culorii se ob ţine princoncatenare: #663366).

10

4 Teorema împă r  ţ irii cu rest : dacă  a (deîmpăr ţit) şi b (împăr ţitor) sunt numere întregi (b 

nenul), atunci există şi sunt unice numerele întregi q (câtul) şi r (restul), astfel încât a = b xq + r , 0 ≤ r < |b|, unde |b| reprezintă modulul (valoarea absolută) a numărului b.

Page 11: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 11/96

 2. se înmulţeşte cu b, partea fracţionar ă5  şi toate păr ţile fracţionare

obţinute din produsul anterior, până când partea fracţionar ă este nul ă  sau a fost obţinut numărul de cifre dorit. Rezultatul conversiei păr ţiifracţionare este constituit din păr ţile întregi6 ale produselor, luate înordinea apariţiei.

Fie y ∈ (0, 1) şi b (b ≥  2) baza de numeraţie astfel încât y =

, unde m este numărul poziţiilor rezervate pentru

codificarea păr ţii fracţionare. Trebuie specificat că nu orice număr fracţionar y are reprezentare pe m poziţii.

∑=

−−

m

k k ba

1

 Algoritmul A3. Se porneşte de la numărul fracţionar y, baza b şi un

număr m_MAX care indică numărul maxim de poziţii rezervate pentru  partea fracţionar ă. Numerele y care necesită mai mult de m_MAX poziţii vor fi aproximate prin numărul rezultat din considerarea celor m_MAX poziţii (folosind algoritmul A5).

Date de intrare: y, b, m_MAX

Paşii:m = 1; a-m = [y*b]; y = y*b-a-m;Cât timp (m < m_Max) şi (y ≠ 0) se execută:

m := m+1;a-m := [y*b];y = y*b - a-m;

Ieşire: m şi reprezentarea 0,(a-1,a-2, …,a-m) b.

Exemple. Conversia binar ă a numărului zecimal 24,25 este 11000,01. Numărul zecimal 2002,2003 este reprezentat în sistem octal cu 10 poziţii în parteafracţionar ă  (b = 8) prin şirul: 3722,1464011651. Numărul zecimal 1961,25 este

reprezentat în format hexazecimal (b = 16) prin şirul: 7A9,4.Pentru a transforma un şir de simboluri ale sistemului de numeraţie în baza

b (b ≥ 2), în zecimal, se va calcula suma produselor dintre cifra corespunzătoare

5   Partea frac ţ ionar ă  a unui număr real a, notată  {a}, este diferenţă dintre numărul a  şi partea sa întreagă, notată [a], adică {a} = a – [a].

11

6 Conform   principiului lui Arhimede, pentru orice număr real pozitiv  x  şi pentru oricenumăr real a, există un număr întreg n, unic, astfel încât (n-1)x ≤ a < nx. Pentru   x = 1,

numărul întreg n se numeşte partea întreag ă a numărului a şi se notează cu [a]. Deci, [a] este cel mai mic număr întreg mai mic sau egal cu a: [a] ≤ a < [a]+1.

Page 12: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 12/96

(din şir) şi baza7 ridicată la puterea specificată de poziţia acesteia (algoritmii A4 şiA5).

Trebuie observat că poziţiile sunt indicate:1. pentru partea întreagă, de la dreapta la stânga, prin numerele 0, 1, …ş.a.m.d.2. pentru partea fracţionar ă, de la stânga la dreapta, prin numerele: -1, -2,… ş.a.m.d.

Algoritmul A4. Se porneşte cu n, b şi secvenţa (an-1,an, …,a1,a0) b pentru a

obţine valoarea y = ∑ .−

=

1

0

n

k k ba

Date de intrare: n, b şi (an-1,an, …,a1,a0) b 

Paşii (conform schemei lui Horner):v := an-1;Pentru k de la n-2 până la 0, descrescător (cu pasul -1) se execută 

v := v * b + ak ;y = v;

Ieşire: y.

Algoritmul A5. Se porneşte cu m, b  şi reprezentarea (0,a-1,a-2, …,a-m) b 

 pentru a obţine valoarea y = .∑= −−

m

k k ba1

Date de intrare: m, b şi reprezentarea (0,a-1a-2 …a-m) b 

Paşii:

v : = a-m;Pentru k de la -m+1 crescător la -1 (cu pasul 1) se execută:

v := v/b+ak ;

y := v/b;Ieşire: y.

Exemple. Şirul binar 01100110101,10101 corespunde numărului zecimal:821,65625 (= 1x29 + 1x28 + 0x27 + 0x26  + 1x25 + 1x24 + 0x23 + 1x22 +0x21 +1x20 +1x2-1 +0x2-2 +1x2-3 +0x2-4 +1x2-5). Şirul octal 765,567  corespunde număruluizecimal: 501,732421875. Şirul hexazecimal 3A5,4 reprezintă numărul zecimal933,25.

12

7 Aici este vorba de numărul b (baza de numeraţie considerată; b ≥ 2)

Page 13: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 13/96

Conversia din binar în octal, hexazecimal şi invers se bazează peobservaţia conform căreia 8 = 23 şi 16 = 24, Astfel, folosind proprietăţile de calcul,se obţine o strategie de conversie automată între aceste sisteme. Conversia binar → octal, respectiv octal→ binar foloseşte corespondenţa:

Octal: 0 1 2 3 4 5 6 7  Binar: 000 001 010 011 100 101 110 111

Conversia binar  →  hexazecimal , respectic hexazecimal  →  binar , foloseştecorespondenţa:Hexazecimal: 0 1 2 3 4 5 6 7 Binar: 0000 0001 0010 0011 0100 0101 0110 0111 

Hexazecimal: 8 9 A B C D E F Binar: 1000 1001 1010 1011 1100 1101 1110 1111 

Exemple. Şirul cu 64de poziţii binare:0111.0110.1110.1101.1011.1011.1010.1010.1110.1011.0101.0101.0101.0101.0101.0111  

se va “traduce” în şirul octal: 0733555672535325252527 , respectiv în şirulhexazecimal: 76EDBBAAEB555557 . Se observă rolul sistemului binar ca sistemintermediar de conversie pentru sistemele de numeraţie în care baza este o putere anumărului doi.

Operaţiile aritmetice cu numere binare, octale, respectiv hexazecimale se

efectuează similar operaţiilor cu numere zecimale. La adunare va intervenitransportul către ordinul superior, la scădere va interveni împrumutul de la ordinulsuperior, iar înmulţirea se va desf ăşura prin totalizarea unor produse par ţiale,analog modului de calcul zecimal. Există şi algoritmi rapizi de efectuare a acestor operaţii, dar nu fac obiectul acestui material.

Pentru numere octale şi hexazecimale, operaţiile aritmetice sunt efectuateconform următoarelor reguli:

Tabla adunării octale:

13

Page 14: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 14/96

Tabla înmulţirii octale:

Tabla adunării hexazecimale:

Tabla înmulţirii hexazecimale:

14

Page 15: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 15/96

  15

Exemple: 10110011 + 111110 = 11110001 (baza 2); 34022,56-1234,11=32566,45 (baza 8); 5DA2 x  B8 = 434C70 (baza 16 ). Efectuaţi operaţiilear ătând modul de calcul (se va folosi algoritmul A1).

1.2. Coduri

Fie A şi B două mulţimi nevide şi B+

mulţimea (infinită a) şirurilor (numiteşi cuvinte  nevide peste B) formate cu elemente din B (în calitate de alfabet ).Practic, un cuvânt peste alfabetul B este o secvenţă finită de simboluri din B: w =a1a2...ak , k ≥ 1, ai ∈ B, 1 ≤ i ≤ k. Numărul k reprezintă  lungimea cuvântului w,notată şi prin |w|. Mulţimea tuturor cuvintelor peste B, la care se adaugă cuvântulde lungime zero (cuvântul vid ), identificat prin λ, se notează cu B*, adică B* = B+ ∪{λ}.

Prin codificare a elementelor mulţimii A cu ajutorul elementelor mulţimii

B înţelegem determinarea unei funcţii injective, ϕ, numită  cod , definită pemulţimea A cu valori în mulţimea B*. Uneori, se numeşte cod chiar imaginea

mulţimii A, notată ϕ(A), prin funcţia de codificare.Codurile în care sunt reprezentate numai numere se numesc coduri

numerice, iar cele care cuprind numere, literele şi celelalte semne se numesc codurialfanumerice. Altfel spus, un cod este un set de simboluri elementare împreună cuo serie de reguli potrivit că rora se formează  aceste simboluri. Codificareareprezint ă procesul de stabilire a unui cod .

Dacă mulţimea A are n elemente, ne interesează determinarea lungimiicodului, adică lungimea maximă a secvenţei din B* pentru a se putea codifica toatecele n obiecte. Dacă toate cuvintele din B* au aceeaşi lungime codul se numeşteuniform.

O codificare ϕ : A → B* în care toate cuvintele-cod   ϕ(x), x ∈ A, aulungimea constantă k se numeşte codificare – bloc de lungime k , iar ϕ(A) este uncod – bloc de lungime k .

Mulţimea codurilor – bloc conţine codul ASCII, codul Unicode, codulISBN etc. ). Codul  ASCII  (eng.   American Standard Code for Information

 Interchange) - în engleză pronunţat “as-key” - este cel mai popular cod utilizat întransmiterea datelor. Codul  ISBN (eng. International Standard Book Number ) este

un cod folosit de toate editurile din lume, fiecare carte având codul său unic(compus dintr-un prefix, codul ţării, codul editurii, codul publicaţiei şi cifra decontrol8).

Pentru cazul sistemelor de calcul, mulţimea B este formată din simbolurileunui sistem de numeraţie, iar lungimea codului depinde de natura obiectelor mulţimii A. Dacă B are numai două simboluri se obţine codificarea binar ă .

Un mesaj m este un element (şir) din A*: m = m1m2...m|m|. Codificareamesajului m se obţine prin concatearea şirurilor ϕ(m1), ϕ(m2), ..., ϕ(m|m|). Evidentmesajul vid se codifică prin cuvântul vid.

8 Codul ISBN are lungimea 13: http://www.niso.org/standards/resources/ISBN.html

Page 16: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 16/96

Codurile pot fi alfanumerice şi grafice (folosind imagini). Un exemplu decod nenumeric, foarte popular, este codul de bare (eng. bar code). Codurile de bare

  pot fi liniare, dar şi 2D (PDF417, DataMatrix,  MaxiCode etc.). Există coduri de bare cu lungime fixă, dar şi cu lungime variabilă9. 

În cazul transferului datelor între sisteme de calcul pot apărea erori. Deaceea se utilizează coduri de control cu posibilitatea detectării şi corectării erorilor.Mai precis, se ataşează cifre binare (de control) la emisia mesajului, recepţia fiindresponsabilă de controlul modului de respectare a corectitudinii mesajului.

Cele mai utilizate procedee pentru detectarea erorilor sunt: codurile pentru

controlul parit ăţ ii şi codurile polinomiale ciclice.Din cele de mai sus rezultă că datele sunt reprezentarea fizică (prinintermediul codului) a entităţilor din care este compusă informaţia (cifre, litere,semne speciale, imagini, sunete etc.) pentru ca aceasta să poată fi stocată, prelucrată sau transmisă.

Din punct de vedere logic, unei date i se asociază un identificator (simbolsau nume pentru diferenţierea de alte date şi pentru referirea acesteia). În vederea

 prelucr ării, datelor le sunt asociate atribute precum:• tipul datei (numeric: întreg sau real; logic;  şir de caractere; enumerare,

adresă etc.),•  precizia reprezentării interne şi• modul de vizualizare (poziţie, aliniere, corpul simbolului, dimensiunea

etc).În timpul prelucr ării unele date îşi păstrează valoarea iniţială (se numesc

constante), iar altele se modifică în timp (se numesc variabile).Constantele hexazecimale vor fi scrise cu ajutorul unuia dintre prefixele

0x, 0X, respectiv #, după care va urma secvenţa simbolurilor 0..9, a-f sau A-F.Constantele octale vor fi descrise prin utilizarea prefixului 0. În lipsa

acestor prefixe, constantele numerice vor fi considerate ca fiind de tip zecimal (în

 baza 10).Prin caracter se înţelege un element al codului ASCII (sau Unicode), iar 

un  şir de caractere, de obicei este încheiat cu un cod special.Mai multe detalii vor fi prezentate, în capitolul 4, în conexiune directă cu

 programarea procesoarelor.

16

9 http://www.itsc.org.sg/synthesis/2001/itsc-synthesis2001-jinsoon-bar-coding.pdf 

Page 17: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 17/96

  17

 1.3. Reprezentarea numerelor întregi

Primele maşini de calcul (în special mecanice) au folosit sistemul denumeraţie zecimal. La baza tehnicii calculului electronic au stat rezultatele obţinuteîn cadrul teoriei informa

ţiei

şi în domeniul circuitelor electronice active.

Cercetările întreprinse, au ar ătat că sistemul de numeraţie potrivit calculatoarelor digitale este cel binar, adică orice informaţie, oricât de complexă este, poate fiexprimată prin informaţii elementare.

Informaţia elementar ă este numită  bit  (eng. binary digit ). Un bit estedescris prin una din cifrele binare: 0, 1. Biţii se pot grupa formând un nyp (2 biţi;denumire10 dată de Gregor N. Purdy, conform D. Knuth (2005) ), niblle (patru biţi),octet (opt biţi; eng. byte; denumire stabilită în 1956 de Dr. Werner Buchholz de laIBM) etc. Următoarele secvenţe de mai mulţi octeţi sunt foarte importante: wyde (doi octeţi), tetrabytes (patru octeţi), octabytes (opt octeţi). Intern, ceea ce

 prelucrează un calculator numeric este un şir de cifre binare. Aceste şiruri f ăr ă aavea vreo semnificaţie se numesc date. Într-un calculator, informaţia reprezentată codificat formează mul  ţ imea datelor .

Pentru a modela sistemul de numeraţie binar, trebuie utilizat un mecanismcu două stări (un comutator). Prin urmare, calculatorul poate fi privit ca unansamblu de circuite electrice, electronice şi păr ţi mecanice, ansamblu numithardware11. Prelucrarea datelor este realizată de programe, compuse din comenzinumite instrucţiuni. Totalitatea programelor poartă numele de  software12. Se potefectua operaţii de evaluare sau de transfer (cazul reţelelor de calculatoare).

Sistemele de calcul utilizează cel mai frecvent coduri alfanumerice cu 7 , 8 şi 16  cifre binare care permit reprezentarea a 128 (ASCII), 256 (Latin-1 sau ISO8859-1), respectiv 65536 (Unicode sau   ISO/IEC 10646 UCS-2) obiecte (cifre,litere, caractere speciale.

Valorile din domeniul 0..31 ale codului ASCII descriu elemente de control,valorile din domeniul 32..126 descriu simboluri imprimabile (semne speciale,litere, cifre), iar valoarea 127 reprezintă codul elementului de control DEL. În

10 Alte denumiri sunt: crumb, quad, quarter, tayste, tydbit, conformhttp://www.fullbooks.com/The-New-Hacker-s-Dictionary-version-4-2.html,http://dictionary.reference.com/browse/crumb etc.

11 Cuvântul hardware descrie totalitatea resurselor fizice ale unui sistem de calcul. Conformdicţionarului de informatică [DINF1981], hardware (din limba engleză) reprezintă un"termen general desemnând circuitele, dispozitivele şi echipamentele componente ale unuisistem de calcul", adică "toate unităţile fizice existente, cu funcţii bine determinate, încadrul unui sistem de calcul; funcţiile sale, specificate de către fabricant, sunt la dispoziţiautilizatorului care le poate exploata cum doreşte."12 Cuvântul  software descrie atât programele de bază cât şi pe cele aplicative. Conform[DINF1981], software (din limba engleză) reprezintă un "termen utilizat pentru a desemna:a) totalitatea programelor cu care este echipat un sistem de calcul; b) preocupările

corespunzătoare realizării produselor program şi, în cel mai larg sens, analizei şicercetărilor efectuate în raport cu activităţile conexe realizării programelor."

Page 18: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 18/96

tabelul de mai jos este prezentat codul ASCII în exprimarea hexazecimală (deexemplu, #41 = 65, reprezintă caracterul 'A', iar #20 = 32 = SP este caracterul'spaţiu'.)

Codurile numerice ofer ă posibilitatea reprezentării numerelor folosindsistemul binar. Reprezentarea numerelor în acest sistem se face în mai multe forme,în funcţie de mulţimea căreia îi apar ţin numerele, operaţiile aritmetice fiind

efectuate de către dispozitive aritmetice specializate (sumatoare, multiplicatoareetc.).Reprezentarea numerelor naturale se realizează pe un număr fix de poziţii

  binare (de regulă  8, 16 , 32, sau 64) prin conversia numărului zecimal în baza 2.Pentru numărul natural x, această reprezentare este numită reprezentare aritmetică  şi furnizează aşa numitul cod direct cd (x).

Prin utilizarea a n poziţii binare (n ≥ 1) se pot reprezenta aritmetic toatenumerele naturale din plaja: 0 .. 2n-1. Se spune că aceste date sunt f ăr ă semn (eng.unsigned ). Domeniile de valori acoperite de reprezentarea aritmetică sunt:

unsigned  byte  0 .. 255unsigned  wyde  0 .. 65.535unsigned  tetra  0 .. 4.294.967.295unsigned  octa  0 .. 18.446.744.073.709.551.615

Reprezentarea numerelor întregi (eng.  signed )- numită  şi reprezentarealgebrică  - este asemănătoare reprezentării numerelor naturale, cu deosebirea că 

  prima poziţie este ocupată de semnul numărului întreg, iar celelalte simboluri seobţin în urma unei transformări bit cu bit . De obicei, reprezentarea unui număr 

întreg negativ  x utilizează  codul complementar   fa ţă  de doi c2(x) = c1(cd(|x|))+1,unde c1 asociază oricărei secvenţe binare, şirul obţinut prin schimbarea lui 0 în 1 şia lui 1 în 0 (aşa numitul cod invers sau complement fa ţă de unu). În plus13, c2(x) =2n +x, dacă primul bit din c2(x) este 1 (x < 0).

Cunoscând numărul n  (n ≥  1) de poziţii binare pe care se reprezintă unnumăr întreg în forma algebrică, plaja numerelor care admit o reprezentare în codcomplementar este -2n-1 .. 2n-1-1. Codul complementar este potrivit pentru aplicaţii

18

13 De asemenea, dacă b>1 este baza unui sistem de numeraţie, iar  x<0 este un număr a cărui

reprezentare în baza b are n simboluri pentru partea întregă a valorii absolute, atuncicomplementul fa ţă de b al numărului x, notat cb(x) este definit astfel încât c b(x) = bn + x.

Page 19: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 19/96

  19

deoarece operaţia de scădere este transformată în operaţie de adunare conformformulei: a - b = a + (-b), iar scăzătorul este reprezentat în cod complementar.Dacă rezultatul scăderii este un număr negativ, acesta este reprezentat tot în codcomplementar. Dacă apare transport de la poziţia alocată semnului, acesta seignor ă. Domeniile de valori14 acoperite de reprezentarea algebrică sunt:

 signed  byte  -128 .. 127 signed  wyde  -32.768 .. 32.767 signed  tetra  -2.147.483.648 .. 2.147.483.647 signed  octa -9.223.372.036.854.775.808 ..

9.223.372.036.854.775.807

1.4. Reprezentarea IEEE 754

  Numerele reale (mai precis numerele raţionale) se reprezintă sub formă 

fracţionar ă prin intermediul codificării în virgulă mobilă. Operaţiile aritmetice cunumere în virgulă mobilă sunt, fie realizate software (biblioteca metodelor decalcul numită  şi  API  (eng.   Application Programmer Interface)), fie prinintermediul unor dispozitive electronice specializate (procesoare de calcul învirgulă mobilă; FPU –  Floating Point Unit ).

Fie q şi b numere naturale nenule, iar  x ∈   R dat. Numim reprezentare cuvirgul ă  mobil ă  a numă rului x, cu excesul q, în baza b, perechea (e, f) cusemnificaţia: x = f ⋅ be-q şi ⏐  f ⏐ <1. Componenta e se numeşte parte exponen ţ ial ă , iar componenta f , parte frac ţ ionar ă . Dacă reprezentarea impune utilizarea a p ≥ 1(p ∈  

 N *

 ) cifre în baza b atunci -b p

≤ b p

 f < b p

. Notăm cu e(x) (respectiv  f(x)) cantitatea e (respectiv  f ) pentru a specificanumărul x luat în considerare.

Fie  x, y numere reale, q şi b ca mai sus, dar fixate. Relaţia de ordine ">"este definită astfel:  x > y ⇔ e(x) > e(y) sau ( e(x) = e(y) şi f(x) > f(y) ).

Despre un număr cu virgulă mobilă  (e, f) se spune că este reprezentatnormalizat dacă cifra cea mai semnificativă a reprezentării componentei  f  estenenulă, adică 

1/b ≤  ⏐  f ⏐ <1 pentru f ≠ 0 sau componenta e are cea mai mică valoare posibilă pentru f = 0.

Fie emin , emax  numere întregi fixate. Mul  ţ imea numerelor reale cu virgul ă  mobil ă reprezentabile exact, în baza b, cu excesul q, folosind exact p pozi ţ ii pentru

 partea frac ţ ionar ă este F  p,q={  x ∈ Q⏐ x = f ⋅ be-q , emin ≤ e-q ≤ emax , f = ± (c1b-1 + c2b

-

2+ ... + c pb-p ), ci ∈{ 0, 1, ..., b-1} , i =1, 2, ...,p}.  Fie x un numă r real. Spunem că x

este situat în domeniul de valori numai dacă x ∈ F  p,q. 

14 Trebuie subliniat că aceste domenii împreună cu operaţiile de adunare şi înmulţire nu

formează structurile algebrice cunoscute. De exemplu nu orice întreg cu semn reprezentabil pe 64 de biţi are un opus.

Page 20: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 20/96

Exponentul minim emin este un număr întreg negativ, iar exponentul maximemax este un număr întreg pozitiv. De obicei se memorează bt  f folosind una dintrereprezentările cu semn pentru numere întregi (cod invers sau cod complementar).

Observaţii:

1. Numerele şi sunt: cel mai mic numă r pozitivreprezentabil , respectiv cel mai mare numă r reprezentabil . -K  este cel mai micnumă r reprezentabil . Dacă în timpul operaţiilor aritmetice rezultă numere învaloare absolută mai mici decât k (resp. mai mari decât K ) se spune că s-au produsdepăşiri aritmetice inferioare (respectiv, superioare).

1min −

=

e

bk  )1(max  pe

bb K 

−=

2. Nu orice număr raţional x (x∈ Q ) poate fi reprezentat, chiar dacă k ≤  ⏐  x⏐≤ K . Deexemplu,   x = 0,1 număr reprezentabil exact în baza 10, nu se poate reprezentaexact în baza 2. Acesta face ca expresia: 3/5*5-3 să fie evaluată de către mediul de

 programare Turbo Pascal, la valoarea 2.1684043450E-19, adică 0,00000000000000000021684043450,

un număr foarte mic, dar nenul.3. Dacă  x ∈ F  p,q atunci –x ∈ F  p,q. Totuşi, pentru x ∈ F  p,q se poate întâmpla ca 1/x să nu fie reprezentabil sau să nu fie în domeniul de valori.4. Sistemele de calcul actuale utilizează reprezentarea normalizată. În acest caz

 pentru  f ≠ 0 avem c1 ≠ 0. Numărul 0 are o reprezentare specială care depinde detipul sistemului de calcul.

Fie x ∈ R, valoarea reprezentării lui x apar ţinând mulţimii F  p,q , se notează  prin fl(x) şi se defineşte astfel: numă rul reprezentabil exact, cel mai apropiat de x

(metoda rotunjirii) sau cel mai apropiat numă r reprezentabil, cu modul mai micdecât ⏐  x⏐ (metoda trunchierii). Rezultă:

Oricare x∈   R, x≠ 0,  pcb x

 x fl  x −≤− 1)(

  , unde c = 0.5 în cazul metodei

rotunjirii  şic =1 în cazul metodei

trunchierii.Membrul stâng al inegalităţii de mai sus se numeşte eroarea relativă  a

reprezentării numărului x. Acest rezultat este foarte important pentru interpretarearezultatelor obţinute prin prelucrarea numerică a datelor.

Observaţii:1. Sistemele de calcul bazate pe reprezentarea cu rotunjire sunt de preferat celor 

 bazate pe trunchiere, deoarece în cazul trunchierii, eroarea relativă poate fi de până la o cifr ă a bazei în ultima poziţie.2. Cu cât lungimea reprezentării păr ţii fracţionare (p) este mai mare, cu atât eroarearelativă a reprezentării este mai mică, adică precizia reprezentării este mai mare.De aceea, de multe ori, numărul p se mai numeşte (prin abuz de limbaj) şi preciziareprezent ă rii.

20

Page 21: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 21/96

  21

Fie p, b, e şi q fixate. Distanţa absolută dintre două numere consecutive din F  p,q este constantă şi egală cu be-q-p. Această distanţă creşte însă cu e-q şi b pentru p fixat. Distanţa relativă definită ca b-p /|f| scade o dată cu creşterea păr ţii fracţionare.Astfel se poate afirma, din nou, că   sistemele de calcul preferate sunt cele careutilizează baza 2.

Dacă   f = 1/batunci se obţine distanţa relativă maximă, ε M 

= b1-p. În cazulmultor sisteme de calcul ε M  = 2ε u unde ε u este cel mai mic număr pozitivreprezentabil pentru care fl(1+ε u )>1.

Pentru sistemele de calcul pentru care b = 2, în anul 1985, a fost elaboratstandardul   IEEE 754. Un număr în virgulă mobilă este reprezentat cu ajutorul ac+m+1 biţi (un bit pentru semn, m biţi pentru partea fracţionar ă  şi c biţi pentrureprezentarea lui e-q (numit şi caracteristică)) astfel încât numărul c+m+1 să fie unmultiplu al lungimii cuvântului sistemului de calcul.

Exemplificăm implementarea reprezentărilor în virgulă mobilă IEEE 754  pe 64 de biţi (tipul de date double al limbajului Java).  NaN , respectiv  Inf  sunt

coduri care descriu nederminarea, respectiv ∞ (infinit). Cei 64 de biţi suntrepartizaţi astfel: b63 - bit de semn, biţii b52-b62 - caracteristica, iar biţii b0-b51 pentrureprezentarea păr ţii fracţionare. Valoarea numărului reprezentat astfel, se obţinedupă cum urmează:

D1: Dacă 0 < c < 2047 atunci fl(x) = (-1) s.2(c-1023).(1.f). D2: Dacă c = 0 şi f  ≠ 0 atunci fl(x) = (-1) s.2(c-1022). (0.f).D3: Dacă c = 0 şi f = 0 atunci  fl(x) = (-1) s.0.D4: Dacă c = 2047  şi f = 0 atunci fl(x) = (-1) s Inf .D5: Dacă c = 2047  şi f ≠ 0 atunci fl(x) =(-1) s NaN.

Ilustr ăm aplicarea regulilor de mai sus pentru numărul 3.14. Folosindschema din §1.1.1 obţinem: 3 = (11)2; 0.14 = 0.0(01000111101011100001) adică un număr binar periodic mixt. Astfel şirul11,0010001111010111000010100011110101110000101000111101011100001...

este transformat în21 x

1,10010001111010111000010100011110101110000101000111101011100001 ...ceea ce duce la- bitul de semn: 0- caracteristica: x-1023=1⇒ x = 1024 = (1000000000)

- mantisa este:10010001111010111000010100011110101110000101000111101011100001...

cu păstrarea a exact 52 de poziţii în reprezentarea cu trunchiere, respectiv1001000111101011100001010001111010111000010100011111,

în reprezentarea cu rotunjire.Prin asamblarea celor 64 de biţi, pentru modelul cu rotunjire, se obţine

reprezentarea IEEE 754 a numărului 3.14, pe 64 de biţi, cu afişare în sistemul denumeraţie hexazecimal:

40091EB851EB851F.

Totuşi, transformarea inversă a şirului

Page 22: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 22/96

  22

11,00100011110101110000101000111101011100001010001111din baza 2 în baza 10 nu va duce la obţinerea cu exactitate a numărului 3.14, în niciuna din variantele posibile (cu rotunjire sau cu trunchiere), deoarece reprezentareaîn baza doi a numărului 3.14 este infinită, iar şirul de mai sus este unul finit.

Alte exemple de aproximări IEEE 754 sunt date în tabelul următor:

 Numărul zecimal Reprezentare hexazecimală (cu rotunjire)

-3.14 C0091EB851EB851F0.6 3FE33333333333330.1 3FB999999999999A-0.1 BFB999999999999A

De reţinut că deşi adunarea/înmulţirea sunt operaţii interne şi estesatisf ăcută proprietatea de comutativitate, acestea nu sunt asociative. Înmulţirea nu

este distributivă faţă de adunare, sunt probleme cu existenţa opusului (pentru NaN)şi cu relaţia de monotonie.

1.5. Exerciţii

1. Numărul zecimal 0,6 se reprezintă cu exactitate în memoria sistemelor de calcul binare. Această afirmaţie este:

a. adevărată întotdeauna c. adevărată pentru microprocesoare INTEL

  b. falsă întotdeauna d. adevărată pentru procesoarelesupercalculatoarelor  Ră  spuns: b) Numărul zecimal 0.6 are o reprezentare binar ă infintă. Lungimeareprezentării în sistemele de calcul este finită, deci se pierd o infinitate de poziţiinenule, astfel că diferenţa dintre 0.6 şi reprezentarea sa este nenulă.

2. Conversia binar ă a numãrului zecimal 24,25 este:a. 00100100,00100101 c. 00100101,00100100  b. 11000,01 d. 10,00011

 Ră  spuns: b) Se aplică algoritmul de conversie a unui număr real, scris în baza 10,

într-o bază de numeraţie b (b >1).

3. Numărul zecimal reprezentat binar prin 101011,101 este:a. 12,345 c. 43,625  b. 34,125 d. nici una dintre variantele anterioare

 Ră  spuns: c) Se aplică algoritmul de conversie în baza 10 a unui număr scris în baza b (b > 1).

4. În cazul reprezentării cu semn (complement faţă de doi) pe 16 biţi ( signed wyde), afirmaţia 32767 + 2 = -32767 este:

a. adevărată b. falsă 

Page 23: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 23/96

  23

 Ră  spuns: a) Complementul faţă de doi al unui număr negativ este succesorulcomplementului faţă de unu al valorii absolute a numărului. Pentru lungimea şitipul de reprezentare menţionate, 32767+1 = -32768, iar 32767 + 2 = -32767.

5. Rezultatul operaţiei 32 - 41 cu reprezentare în cod complementar (faţă de doi) pe8 cifre binare a scăzătorului este:

a. 11110111 c. 10001001  b. 00001001 d. 10010000

 Ră  spuns: a) Se efectuează operaţiile considerând lungima şi tipul reprezentăriimenţionate.

6. Şirul binar 11000000110011110000111100100001 reprezintă un număr real însimplă precizie (32 biţi: IEEE 754 - single, float ). Numărul este:

a. pozitiv b. negativ Ră  spuns: b) Primul bit al secvenţei este alocat semnului. Cum 1 este pentru număr 

negativ rezultă că r ăspunsul corect este b).

7. Care sunt principalele atribute ale datelor? Ră  spuns: Datelor le sunt asociate atribute precum: tipul datei (numeric: întreg saureal; logic; sir de caractere; enumerare, adresă etc.), precizia reprezentării interne şimodul de vizualizare (pozitie, aliniere, corpul simbolului, dimensiunea etc).

8. Repartizarea biţilor în reprezentarea IEEE 754 pe 32 de biţi ( single, float ) este: _________  ___________________________________________________________________ 

 ________  Ră  spuns: Reprezentarea IEEE 754 pentru  single, respectiv  float , utilizează 32 de biţi repartizaţi astfel: b[31] - bit de semn (notat în continuare cu s), biţii b[23]-b[30] pentru memorarea caracteristicii (c), iar biţii b[0]-b[22] pentru reprezentarea păr ţiifracţionare (f). Valoarea fl(x), se obţine conform regulilor (prin * este redată operaţia de înmulţire):S1: Dacă 0 < c < 255 atunci fl(x) = (-1) s*2(c-127)*(1,f).S2: Dacã c = 0 şi f ≠ 0 atunci fl(x) = (-1)s*2(c-126)*(0,f).S3: Dacã c = 0 şi f = 0 atunci fl(x) = (-1)s*0.S4: Dacã c = 255 şi f = 0 atunci fl(x) = (-1)sInf (∞).S5: Dacă c = 255 şi f ≠ 0 atunci fl(x) = NaN. ( Not a N umber - nedeterminare)9. [Controlul parităţii] La transmiterea unei succesiuni binare x1, x2, …, xn seataşează o cifr ă binar ă de control an+1, aleasă astfel încât numărul total de cifre

 binare 1 să fie par sau impar, în funcţie de convenţia stabilită. Să presupunem că seutilizează paritatea impar ă şi trebuie transmis, serial, şirul de opt biţi: 10100111.Care va fi al 9-lea bit ce trebuie transmis?

 Ră  spuns: Deoarece numărul biţilor 1 din şirul de transmis este 5, care este număr impar (f ăr ă soţ) şi se utilizează paritatea impar ă, bitul de control trebuie să fie 0(zero).

Page 24: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 24/96

  24

10. Să se specifice şirul binar final care rezultă la transmiterea cu paritate par ă asecvenţelor:

a) 10011100; b) 11001101;c) 00111010.

 Ră  spuns: a) 100111000; b) 110011011; c) 001110100.

11. Presupunem că s-a utilizat procedeul parităţii impare. Stabiliţi mesajeletransmise corect.

a) 100111001; b) 110011011;c) 001110100.

 Ră  spuns: Este potenţial corectă transmisia secvenţei a).

12. [Codul Gray] Se consider ă cifrele zecimale de la 0 la 9 şi secvenţele de patru

cifre binare pornind de la 0000 care se obţin prin modificarea unei singure cifre binare din secvenţa anterioar ă. Se obţine, astfel, codul Gray: (0, 0000), (1, 0001),(2, 0011), (3, 0010), (4, 0110), (5, 0111), (6, 0101), (7, 0100), (8, 1100), (9, 1101).Trebuie observat că acest cod nu se obţine prin algoritmi de conversie a bazelor denumeraţie. Reprezentaţi în codul Gray numerele:

a) 7; b) 14; c) 169; d) 4096. Ră  spuns: a) 0100; b) 00010110; c) 000101011101; d) 0110000011010101.

Page 25: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 25/96

  25

 

2. BAZELE LOGICE ALE SISTEMELOR DE CALCUL

2.1. Latici şi algebre Boole

Definiţia 2.1.1. Se nume şte latice Dedekind o mul  ţ ime nevid ă L înzestrat ă  cu două opera ţ ii binare notate “+”  şi “• ” astfel încât pentru oricare elemente x, y,

 z ∈ L să  fie valabile urmă toarele propriet ăţ i:comutativitate:

(1) x + y = y + x;(2) x • y = y • x;asociativitate:(3) (x + y) + z = x + (y + z);(4) (x • y) • z = x • (y • z);absorb ţ ie:(5) x • (x + y) = x;(6) x + (x • y) = x. 

Exemple1) Mulţimea păr ţilor (submulţimilor) unei mulţimi M notată  P(M) (sau 2M)înzestrată cu operaţiile “∪“ şi “∩“ formează o latice Dedekind.2) Mulţimea valorilor de adevăr {0, 1} înzestrată cu operaţiile “∨“ (disjuncţia logică)şi “∧“ (conjuncţia logică) formează de asemenea o latice Dedekind care, în plus, are şialte proprietăţi.

  Principiul dualit ăţ ii pentru latici: Dacă într-o propoziţie adevărată dinteoria laticilor Dedekind se înlocuieşte o operaţie prin cealaltă (şi invers) se obţine,de asemenea, o propoziţie adevărată. 

Propoziţia 2.1.1.  În orice latice Dedekind (L, +, •  ), pentru orice element x∈ L sunt adevă rate rela ţ iile:

(7) x + x = x;(8) x •  x = x.

 Demonstra ţ ie. x + x [rel (5)] = x + ( x • (x + y)) [rel (6)] = x. De asemenea, x • x [rel (6)] = x •  (x + (x • y)) [rel (5)] = x.

Propoziţia 2.1.2.   În orice latice (L, +, •   ) avem x + y = y dacă   şi numai

dacă x • y = x, oricare ar fi elementele x  şi y apar  ţ inând mul  ţ imii L.

Page 26: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 26/96

  26

 

 Demontra ţ ie. Presupunem că  x + y = y. Atunci x •  y = x •  (x+y) = x (folosind (5)). Reciproc, presupunem că  x •  y = x. Atunci x + y = x •  y + y = y +

 y •  x = y, după aplicarea comutativităţii şi a relaţiei (6).

Definiţia 2.1.2.  Fie x, y ∈ L, not ă m “x ≤ y” dacă   şi numai dacă x + y = y

(echivalent cu x • y = x).

Propoziţia 2.1.3. Rela ţ ia “≤ “ este o rela ţ ie de ordine par  ţ ial ă . 

 Demonstra ţ ie. Reflexivitatea rezultă din relaţiiele (7) ş (8). Din x ≤ y şi y ≤   x rezultă  x + y = y  şi y + x = x, dar x + y = y + x (relaţia (1)), deci x = y. Dacă  x ≤ y şi y ≤ z rezultă x + z = x + (y+z) = (x+y) + z = y + z = z, folosind definiţia 2.1.2 şirelaţia (3). Prin urmare x ≤ z.

Observaţie: În cazul laticei ( P(M),∪, ∩), ordinea corespunde relaţiei deincluziune definită pentru două mulţimi. 

Definiţia 2.1.3.   Fie (L, +, •   ) latice. Elementul π  ∈  L se nume şte primelement în L dacă  pentru oricare (ar fi) x ∈  L are loc rela ţ ia: π   ≤  x. Similar,elementul σ  ∈ L se nume şte ultim element în L dacă  pentru oricare (ar fi) x ∈ Lare loc rela ţ ia: x ≤  σ ..

Propoziţia 2.1.4.  Fie laticea (L, +, •  ) cu L = {a1 , a2 , ..., an } format ă  cu n

elemente (distincte), atunci L are atât prim element cât  şi ultim element în raport cu rela ţ ia de ordine definit ă mai sus, iar: π = a1 • a2 • ... • an  şi σ = a1 + a2 + ... +an.

 Demonstra ţ ie. Ar ătăm că pentru n = 2, x •  y = inf{x, y} şi x+y = sup {x, y}.Este evident că  x •  y este minoran15t pentru {x, y}, iar x + y este majoran16 t pentruaceeaşi mulţime {x, y}.

Fie t ≤ x şi t ≤ y, ar ătăm că t ≤ x •  y. Într-adevăr, egalităţile t •  x = t  şi t •   y = t conduc la t • (x •  y) = (t • x) •   y = t •  y = t, adică t ≤  x •  y. Deci x •  y estecel mai mare minorant, adică inf imum17.

De asemenea, dacă x ≤ t şi y ≤ t, ar ătăm că x+y ≤ t . Într-adevăr, egalităţilex + t = t şi y + t = t conduc la (x + y) + t = x + (y + t) = x + t = t, adică x + y este celmai mic majorant, deci supremum18.

15 Pentru (P, ≤) o mulţime par ţial ordonată şi A o submulţime, un element a ∈ A se numeşteminorant al mulţimii A dacă a ≤ x, oricare x ∈ A.16 Pentru (P, ≤) o mulţime par ţial ordonată şi A o submulţime, un element a ∈ A se numeştemajorant al mulţimii A dacă x ≤ a, oricare x ∈ A.17

Pentru (P, ≤) o mulţime par ţial ordonată şi A o submulţime, un element a ∈ A se numeşteinfimum al mulţimii A dacă este el mai mare dintre toţi minoranţii lui A.

Page 27: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 27/96

  27

 

Definiţia 2.1.4.   Laticea (L, +, •   ) se nume şte latice distributivă  dacă  oricare ar fi elementele x, y, z din L sunt satisf ă cute rela ţ iile:

( 9) x + (y • z) = (x + y) • (x + z);(10) x • (y + z) = (x • y) + (x • z).

Definiţia 2.1.5. Latice (L, +, •  ) se nume şte latice complementat ă dacă sunt îndeplinite condi ţ iile:

(11) Există elementul neutru pentru operaţia + (numit element nul ), notat cu 0, astfel încât x + 0 = x, oricare ar fi x ∈ L.(12) Există elementul neutru pentru operaţia • (numit element universal ), notat cu 1, astfel încât x • 1 = x, oricare ar fi x ∈ L.

  Pentru oricare x ∈  L exist ă  y x  ∈  L, numit complementul lui x, care satisfacerela ţ iile:

(13) x + y x = 1;(14) x • y x = 0.

 În cele ce urmează elementul y x va fi notat prin x’.

Propoziţia 2.1.4.    Într-o latice distributivă    şi complementat ă  ,complementul unui element este unic.

 Demonstra ţ ie. Fie x1  şi x2 complemente ale lui x (element arbitrar allaticei). Atunci x1 = x1 • 1 = x1 • (x +x2) = (x1 • x) + (x1 • x2) = 0 + (x1 • x2) = (x •  x2) + (x1 • x2) = (x + x1) • x2 = 1 • x2 = x2.

Definiţia 2.1.6. O l at ice distributivă   şi complementat ă  se nume şte algebr ă  booleană sau algebr ă Boole19.

Exemple

1. Structura ( P(M), ∪, ∩) este latice distributivă şi complementată, elementul nuleste ∅, elementul universal este M , iar dacă   A ∈  P(M), atunci   A’ = M-A (complementara mulţimii A).2. Structura ({0, 1}, ∨, ∧) este latice distributivă  şi complementată cu 0’=1  şi

1’=0.

În continuare vom considera că o algebr ă booleană sau, mai simplu, oalgebr ă Boole este dată prin ansamblul (B, +, •, ’, 0, 1), evidenţiind mulţimea

18 Pentru (P, ≤) o mulţime par ţial ordonată şi A o submulţime, un element a ∈ A se numeşte supremum al mulţimii A dacă este el mai mic dintre toţi majoranţii lui A.19 George Boole (1815-1864), matematician englez care a propus o nouă abordare a logicii

(prin introducerea algebrelor ce astăzi îi poartă numele). S-a mai ocupat de calculul cudiferenţe finite, ecuaţii diferenţiale şi metode specifice teoriei probabilităţilor.

Page 28: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 28/96

nevidă  B, operaţiile binare, operaţia unar ă (pentru obţinerea complementului) şielementele neutre. De asemenea pentru x•  y vom scrie, simplu, xy.

Se poate ar ăta că pentru a defini o algebr ă Boole este suficient ca, pentruoricare x, y, z elemente ale mulţimii B, să fie satisf ăcute relaţiile:

(15) x + y = y + x;(16) xy = yx;(17) x+yz = (x+y)(x+z);(18) x(y+z) = xy + xz;(19) x + yy’ = x;(20) x(y+y’) = x;

Atunci, pentru oricare x şi y din B, avem xx’ = yy’ (rezultat notat cu 0) şi x + x’ =y + y’ (rezultat notat cu 1).

2.2. Funcţii booleene. Forme normale

Fie (B, +, •, ’, 0, 1) o algebr ă Boole şi n ( ≥ 1) număr natural. Notăm cu F n(  B ) mulţimea funcţiilor de n variabile definite pe Bn cu valori în B. Este evidentă relaţia:

card( F n(B)) = .ncard(B)card(B)

Pentru n = 2 şi B = {0, 1}, se obţin 16 funcţii de 2 variabile, date prin tabelul:

 x1 X 2  0  1  2  3  4  5  6   7   8  9  10  11  12  13  14  15 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 11 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 11 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

sau prin formule (între ghilimele trecem denumirea funcţiei conform logicii propoziţiilor):

f 0(x1, x2) = 0; “contradicţia - funcţia identic falsă“ f 1(x1 , x2 ) = x1 x2; “conjunc ţ ia”

 f 2(x1 , x2 ) = x1 x2’ ; “negaţia implicaţiei” f 3(x1 , x2 ) = x1; “prima proiecţie” f 4(x1 , x2 ) = x1’x2; “negaţia implicaţiei inverse” f 5(x1 , x2 ) = x2; “a doua proiecţie” f 6 (x1 , x2 ) = f 2(x1 , x2 ) + f 4(x1 , x2 ) ; “sau exclusiv” f 7 (x1 , x2 ) = x1 + x2; “disjunc ţ ia, sau inclusiv” f 8(x1 , x2 ) = x1’x2’ ; “↓, nici x1 nici x2” f 9(x1 , x2 ) = x1 x2 + x’ 1 x’ 2; “echivalen ţ a” f 10(x1 , x2 ) = x2’ ; “nega ţ ia”variabilei x2  f 11(x1 , x2 ) = x1+x2’ ; “implicaţia inversă, x2→ x1”

 f 12(x1 , x2 ) = x1’ ; “nega ţ ia” variabilei x1 

28

Page 29: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 29/96

 f 13(x1 , x2 ) = x1’+x2; “implica ţ ia, x1→ x2” f 14(x1 , x2 ) = x1’+x2’ ; “/, x1 este incompatibil cu x2” f 15(x1 , x2 ) = 1; “lege logică sau tautologie“

Definiţia 2.2.1.  Numim termen prim atât o variabil ă  cât  şi complementul  să u. Numim conjunc ţ ie primă  orice termen prim  şi orice conjunc ţ ie de termeni  primi. Numim disjunc ţ ie primă  orice termen prim  şi orice disjunc ţ ie de termeni primi. Conjunc ţ iile de termeni primi se mai numesc  şi monoame prime. Monoamele  prime (respectiv, disjunc ţ iile prime) în care apar toate variabilele saucomplementul acestora, o singur ă dat ă  , dar nu simultan variabila  şi complementul 

 să u, se numesc monoame (respectiv, disjunc ţ ii ) perfecte.

Pentru n variabile, un monom perfect este de forma , unde ik  =

0, 1 ( k = 1, 2, ..., n) cu convenţia de notaţie:

 x x xi inin

1 21 2 ...

 x x x xk k k k  1 0= =, ' . În general, notăm,

 x1 = x şi x0 = x’ pentru oricare x ∈   B. Pentru n = 3, monoamele perfecte sunt: xyz,

 x’yz, xy’z, xyz’, x’y’z, x’yz’, xy’z’, x’y’z’ . Analog se pot descrie disjuncţiile perfecte.

Definiţia 2.2.2.  Se nume şte formă  normal ă  disjunctivă  (ND), disjunc ţ iaorică rei mul  ţ imi de conjunc ţ ii prime. Se nume şte formă normal ă conjunctivă  (NC),conjunc ţ ia orică rei mul  ţ imi de disjunc ţ ii prime. Se nume şte formă  normal ă  

 perfect ă  acea formă  normal ă  format ă  numai cu monoame perfecte (în cazul ND)respectiv sume perfecte (în cazul NC).

Propoziţia 2.2.1.  Fie B algebra booleană de mai sus, ( ) ,

elemente din  B  şi x1 , x2  , ..., xn ∈   B. Urmă toarele propriet ăţ i sunt adevă rate: 

, ,..., , ,..., {0, }ci i i i i in n1 2 1 2 1∈

( ), ,..., , ,..., {0, }d i i i i i in n1 2 1 2 1∈

(21) (i1, i2, ..., in) ≠ (j1, j2, ..., jn)⇒  x x   x x x xi ini j j

n jn n

1 2 1 21 2 1 2 0... ... ,• =

(i1, i2, ..., in, j1, j2, ..., jn ∈ {0, 1}),

(22)   x x xi ini

i i i

n

n

1 21

1 2

1 2

1... ,, ,..., {0, }

=∈∑  

(23) 

c x x x d x x x

c d x x x

i i ii i

ni

i i ii i i

i in

i

i i i

i i i i i i

i i

n

i

i i i

n

n

n

n

n

n

n n

n

n

1 2

1 2

1 2

1 2

1 2

1 2

1 2 1 2

1 2

1 2

1 21

1 21

1 21

..., ,..., {0, }

..., ,..., {0, }

... ..., ,..., {0, }

... ...

( ) ...

∈ ∈

∑ ∑

+ =

= + 

(24) 

c x x x d x x x

c d x x x

i i ii i

ni

i i ii i i

i in

i

i i i

i i i i i ii i

ni

i i i

n

n

n

n

n

n

n n

n

n

1 2

1 2

1 2

1 2

1 2

1 2

1 2 1 2

1 2

1 2

1 21

1 21

1 21

..., ,..., {0, }

..., ,..., {0, }

... ..., ,..., {0, }

... ...

( ) ...

∈ ∈

∑ ∑

• =

= • 

(25)  c x x x c x x xi i ii i

ni

i i ii i i

i in

i

i i in

n

n

n

n

n

1 2

1 2

1 2

1 2

1 2

1 2

1 21

1 21

..., ,..., {0, }

'

...'

, ,..., {0, }

... ( ) ...∈ ∈∑ ∑

⎛ 

⎝ ⎜

 ⎞

 ⎠⎟ =  

29

Page 30: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 30/96

 Demonstra ţ ie. Dacă (i1, i2, ..., in) ≠ (j1, j2, ..., jn) atunci există, cel puţin, un

indice k astfel încât ik  ≠ jk .Deci = 0, adică relaţia (21). Pentru

n = 1, relaţia (22) se reduce la x + x’= 1 (definiţia 2.1.5). Pasul inductiv necesită următoarea schemă de calcul şi aplicarea ipotezei inductive.

'k k  jk 

ik   x x x x k k  •=•

.1'11

}1,0{,,, }1,0{,,,2

'121

}1,0{,,, }1,0{,,,2121

}1,0{,,,21

21 21

22

21 21

22

21

21

=+=

+=

+=

=

∑ ∑

∑ ∑∑

∈ ∈

∈ ∈

 x x

 x x x x x x

 x x x x x x

 x x x

n n

nn

n n

nn

n

n

iii iii

in

iin

iiii iii

in

iin

iiii

in

ii

L L

L L

L

LL

LL

L

 

Relaţia (23) se obţine prin aplicarea proprietăţilor de asociativitate, comutativitateşi distributivitate. Pentru a obţine (24) trebuie să folosim relaţia (21) şi propoziţia2.1.1. Relaţia (25) se obţine din faptul că x = a’este unica soluţie a sistemului

{x+a=1, x•a = 0} (unicitatea complementului).

Definiţia 2.2.3.  Func ţ iile booleene simple ale algebrei B sunt acele func ţ iibooleene a că ror expresie se ob ţ ine plecând de la proiec ţ ii  şi aplicând opera ţ iilealgebrei booleene asupra unor elemente constituite anterior. Func ţ iile booleene (lamodul general) ale algebrei booleene se ob ţ in ca  şi cele simple, dar luând elementede plecare atât proiec ţ iile cât  şi constantele algebrei Boole B.

Teorema 2.2.1.[10]. O func ţ ie f:  Bn →   B este booleană  dacă   şi numai

dacă exist ă constantele c i i ii i i nn1 2 1 2 0 1... ( , ,..., { , })∈ ∈B, astfel încât (26)   f x x c x x x x x Bn i i i

i in

i

i i inn

n

n

( ,..., ) ... , ,..., ...., ,..., {0, }

1 1 21

11 2

1 2

1 2

= ∀∈

∈∑  

Când (26) are loc, constantele c sunt unic determinate dei i in1 2 ...

(27)  c i i i i i ii i i n nn1 2 1 2 1 2 0 1... ( , ,..., ),( , ,..., { , }).= f  ∀ ∈  

Propoziţia 2.2.2.[10] O func ţ ie booleană de n variabile este simpl ă dacă   şi numai dacă  

(28)   f(i1 , i2 , ..., in ) ∈ {0, 1}, pentru oricare i1 , i2 , ..., in ∈ {0,1}. Evident că o expresie de forma (26) transfomată astfel încât suma booleană serealizează numai pentru constantele egale cu 1 este o funcţie booleană simplă.

Propoziţia 2.2.3.[10] O func ţ ie booleană  este func ţ ie booleană  simpl ă  dacă   şi numai dacă satisface:

(29)   f x x x x x x x Bni i

ni

i i i

 f i i i

nn

n

n

( ,..., ) ... , ,..., ., ,..., {0, }

( , ,..., )

1 1 21

1

11 2

1 2

1 2

= ∀∈

=

∈∑  

30

Page 31: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 31/96

Comentariu: Din cele de mai sus rezultă că mulţimea funcţiilor booleene pe B coincide cu mulţimea funcţiilor booleene simple (cu acelaşi număr devariabile) dacă şi numai dacă B = {0, 1}.

Exemplu: Pentru n=3, funcţia f 73 (definită în tabelul de mai jos, undenumărul 73 este convertit în baza doi) se poate scrie sub formă ND perfectă astfel:f 73(x, y, z) = x’y’z + xy’z’ + xyz.

Teorema 2.2.2. O func ţ ie booleană  f este booleană  simpl ă dacă   şi numaidacă se scrie astfel:

 f x x x f i i i x x xn ni i

nin( , ,. .. , ) ( , , ... , ) ...

'

1 2 1 2 1 210

20 0

= + + +∏  ,

luând în considerare nota ţ iile  şi conven ţ ia de mai sus.

 Demonstra ţ ie. Se aplică propoziţia 2.2.3 pentru funcţia f ’, iar apoi se

utilizează regulile de calcul (x+y)’= x’• y’ şi (x•y)’= x’+ y’.Exemplu: Funcţia f 73 poate fi exprimată în formă NC perfectă astfel: f 73(x,

y, z) = (x + y + z) (x + y’ + z) (x + y’ + z’) (x’ + y + z’) (x’ + y’ + z).

2.3. Aplicaţii

O problemă importantă legată de reprezentarea20 funcţiilor booleene oconstituie reducerea la minimum a expresiei analitice a funcţiei booleene (mai

 puţini termeni şi cât mai puţini factori). O funcţie booleană poate avea mai multe

forme disjunctive nesimplificabile. O metodă pentru aflarea unei forme normaledisjunctive minime constă în construirea tuturor formelor normale disjunctive alefuncţiei şi alegerea uneia dintre cele mai scurte. Pentru un număr mare de variabileaceastă metodă este ineficientă.

Din punct de vedere algoritmic,  problema g ă   sirii unei forme minimale aunei funcţii booleene este decidabilă. Algoritmul Quine-McCluskey este destinat

31

20 Principalele aplicaţii ale funcţiilor booleene sunt în analiza şi sinteza sistemelor de calcul(de tip numeric). De asemenea, reducerea complexităţii expresiilor booleene influenţează 

timpul de evaluare a condiţiilor precizate în cadrul instrucţiunilor if , while..do, for, cond,do...while, repeat...until, etc. şi deci viteza de executare a programelor.

Page 32: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 32/96

obţinerii formei ND a unei funcţii booleene prin utilizarea sistematică a regulilor decalcul într-o algebr ă Boole. Pentru expr esii booleene cu până la 6 variabile se potutiliza cu succes diagramele Karnaugh21.

Tabelul 2.3.1. Tabelul 2.3.2.

Aplicaţia 2.3.1. Fie B algebra Boole de mai sus şi funcţia f dată prin legea:f(x1, x2, x3) = x1x2+x1x2’x3+x1’x2’+x1’x2x3’.

Forma ND perfectă este: f(x1, x2, x3) = x1x2x3+x1x2x3’+x1x2’x3+x1’x2’x3+x1’x2’x3’+x1’x2x3’şi corespunde tabelului 2.3.1. Forma NC perfectă este f(x1, x2, x3) = (x1+x2’+x3’)(x1’+x2+x3) a cărei evaluare necesită 3 operaţii de negare (NOT), 4 disjuncţii (OR )şi o conjuncţie (AND). După aplicarea regulilor de calcul asupra formei ND

 perfecte se pot obţine următoarele exprimări posibile:( *) f(x1, x2, x3) = x1x2+x2’x3+x1’x3’ şi(**) f(x1, x2, x3) = x1x3+x2x3’+x1’x3’

ambele necesitând 3 operaţii NOT, 2 operaţii OR  şi 3 operaţii AND.

Aplicaţia 2.3.2. Operaţia de adunare a doi biţi se realizează conformtabelului 2.3.2. Cum z şi tout sunt funcţii booleene (folosind t în loc de tin),obţinem:

z = xy’t’+x’yt’+x’y’t+xyt; şitout = xyz’+xy’t+x’yt+xyt = xy + xt + yt (după simplificare).

Circuitul sumator are trei intr ări (cei doi biţi x şi y şi bitul de transport anterior tin)şi două ieşiri (bitul rezultat z şi bitul de transport următor tout). Pentru adunarea adouă cuvinte a n biţi fiecare este necesar să se înserieze n astfel de sumatoare. Dacă consider ăm că cele două cuvinte care se adună sunt situate iniţial în două registre(registrul X şi Y), iar rezultatul se va obţine în registrul Z (registrele X, Y şi Z deaceeaşi capacitate) şi are loc transport la sumatorul asociat cifrei cu rangul maxim

32

21 Diagrama Karnaugh se construieşte cu ajutorul codului Gray, codul în care doi termenisuccesivi difer ă printr-un singur bit, astfel că doi termeni vecini sunt cei între care există odiferenţă de un bit, putându-se astfel extinde diagramele Karnaugh pentru oricât de multevariabile. Simplificarea expresiilor booleene folosind diagramele Karnaugh se bazează pe

gruparea termenilor  şi utilizarea identităţii x+x’ = 1 (care conduce la unificareamintermenilor şi generarea unor termeni cu mai puţine variabile).

Page 33: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 33/96

atunci se va activa (trece în poziţia on) bitul de transport din registrul de stare al procesorului. Acest bit se numeşte Carry.

Aplicaţia 2.3.3. Consider ăm două numere binare a câte doi biţi fiecare (x1,x2 biţii primului număr; x3, x4 biţii numărului al doilea). Funcţia booleană va fievaluată la 1 dacă primul număr este cel mai mare şi va avea valoarea 0, în cazcontrar. Tabelul asociat funcţiei booleene de comparare este:

x1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1x2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1x3 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1x4 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1f c 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0

Cea mai simplă formă ND este: f c (x1, x2, x3, x4) = x1x3’+x1x2x4’+x2x3’x4’, iar circuitul poate fi reprezentat grafic ca mai jos.

2.4. Exerciţii

1. Să se simplifice expresiile booleene:a) x’ y’ z’ + x’ y’ z + x’ y z  b) (x’+ y + z’) (x + y’+ z) (x’+ y’+ z’)c) x y + x’z + xy z.

 Ră  spuns: Folosind regulile de calcul specifice unei algebre Boole, se obţinurmătoarele rezultate: a) x’(y’+ yz), b) x z’ + x’y’+ x’z, c) xy + x’z.

2. Să se determine forma normală disjunctivă a funcţiei f 83 (x, y, z).

 Ră  spuns: Tabelul funcţiei f 83 este:x Y z f 83(x, y,z)0 0 0 00 0 1 10 1 0 00 1 1 11 0 0 01 0 1 01 1 0 1

1 1 1 1

33

Page 34: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 34/96

 Conform teoremei de reprezentare sub forma normală disjunctivă rezultă că f 83(x,y,z) = x’ y’z + x’ y z + x y z’ + x y z (= x y + x’ z + y z).

3. Să se determine forma normală conjunctivă a funcţiei f(x, y, z, w) = x’ y’ + y zw + x w.

 Ră  spuns: Tabelul valorilor funcţiei f este:x 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1y 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1z 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1w 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1f(x,y,z,w) 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1

Rezultă că f(x, y, z, w) = (x + y’ + z + w) (x + y’ + z + w’)(x + y’ + z’ +w) (x’ + y

+ z + w) (x’ + y + z’ +w) (x’ + y’ + z + w) (x’ + y’ +z’ +w).

4. Să se simplifice funcţia de 4 variabile f(x, y, z, w) = x’ y’ z’ w’ + x’ y’ z’ w + x’y’ z w’ + x’ y’ z w + x’ y z’ w’ + x y’ z w.

 Ră  spuns: f(x, y, z, w ) = x’ y’ + x’ z’ w’ + y’ z w.

5. Să se reprezinte grafic circuitul combinaţional descris de funcţia f care apare înexerciţiul 4.

 Ră  spuns: Folosind notaţiile grafice de mai sus, rezultă:

6. Să se demonstreze că în orice algebr ă Boole (B, +, •, ', 0, 1) au loc regulile decalcul:a) Din x+y = 1 şi x•y = 0 rezultă y = x’. b) x + 0 = x, x•1 = x.c) x + 1 = 1, x•0 = 0.d) x + y = 0 dacă şi numai dacă x = y = 0; x•y = 1 dacă şi numai dacă x = y = 1.e) (x + y)’=x’•y’şi (x•y)’=x’ + y’(legile lui De Morgan.)

34

Page 35: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 35/96

  35

 

3. STRUCTURA SISTEMELOR DE CALCUL

3.1. Resursele fizice ale sistemelor de calcul

3.1.1. Genera ţ ii de calculatoare

Tehnica de calcul a evoluat de la abac până la supercalculatoarel e actuale (sisteme hipercub ş.a.). În această evoluţie se disting următoarele etape22: etapa

dispozitivelor mecanice şi electromecanice şi etapa calculatoarelor electronice.Primul calculator electronic comercial a fost sistemul ENIAC (1942-1945).Aproximativ în acea perioadă, John von Neumann (1944) a stabilit că un sistem decalcul trebuie să asigure următoarele funcţii: memorare, comand ă  si control,

 prelucrare, intrare-iesire. Primul calculator românesc a fost CIFA-1 (1957) realizat la Institutul de

Fizică Atomică de către un colectiv condus de inginerul Victor Toma23. Un sistemde calcul MECIPT24-1, din prim generaţie, a fost realizat şi la Timişoara în anul196125. Trebuie remarcate şi sistemele de tip DACICC realizate la Cluj sub

conducerea savantului român T. Popoviciu

26

. Nu trebuie uitat faptul că au fostdezvoltate şi alte sisteme de calcul în perioada 1960-198927.Etapele de dezvoltare a calculatoarelor electronice sunt cunoscute sub

numele de  genera ţ ii de calculatoare. Până în prezent au fost parcurse cincigeneraţii:  genera ţ ia tuburilor electronice (programe binare sau cablate, suportinformaţional: cartela perforată sau banda de hârtie perforată),  genera ţ iatranzistorilor   şi diodelor  (apar suporturile magnetice, apar limbajele de

  programare: FORTRAN: eng.  FORmula TRANslation, COBOL: eng. COmmon  Business-Oriented Language, ALGOL: eng.   ALGOrithmic Language  ş.a., apar 

22 Pentru detalii istorice şi vizite virtuale puteţi accesa:http://archive.computerhistory.org/search/ 

23 Alte sisteme de calcul românesti au fost CET (IFA Bucureşti), DACICC (Cluj), MECIPT(Timişoara) etc. pentru a menţiona numai sistemele proiectate şi instalate înainte de 1970.Pentru mai multe detalii se poate consulta: Mihai Dr ăgănescu, Realizarea de calculatoare şiretele de calculatoare în România, http://www.atic.org.ro/anexe/MD.htm, ATIC, 2001.24 http://ro.wikipedia.org/wiki/MECIPT.25 MECIPT-1, http://www.infotim.ro/mbt/tic/mecipt1.htm, Maşină Electronică de Calcul aInstitutului Politehnic din Timişoara.26 http://www.cs.ubbcluj.ro/www/index.php?module=pagemaster&PAGE_user_op =

view_page & PAGE_id=10727 http://www.racai.ro/MD75/CarteMD75/art09Guran.pdf 

Page 36: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 36/96

  36

  primele sisteme de operare), genera ţ ia circuitelor integrate (apare conceptul de firmware, apar sisteme de operare evoluate rezidente pe disc (DOS: eng.  Disk Operating System), apar noi limbaje de programare: PL/1, Pascal, LISP: eng.  LISt 

 Processing , BASIC),  genera ţ ia VLSI : eng. Very Large Scale Integration (apar microprocesoarele, noi tipuri de arhitecturi: microcalculatoarele (de exemplu celecompatible IBM PC – eng.   Personal Computer , staţiile MAC etc.), sisteme deoperare precum CP/M, DOS (de la IBM sau Microsoft); se dezvoltă reţelele decalculatoare; apar limbajele de programare orientată spre obiecte) şi  genera ţ iainteligen ţ ei artificiale (în continuă dezvoltare) cu trimitere către viitoarele sistemeneurale, sisteme cuantice, calcul ADN etc.

Cele mai populare sisteme de calcul ale momentului sunt cele dezvoltate în  jurul proiectului IBM PC (aşa numitul   personal computer ). Un microcalculator IBM sau o clonă PC este formată din trei păr ţi: unitatea sistem (eng.  system unit ),tastatura (eng. keyboard ) şi ecranul (eng. display screen).

Unitatea sistem este construită modular. Partea cea mai importantă este

  placa de bază (eng. mother board  sau main board ). Ea conţine circuiteleelectronice cele mai importante: microprocesorul, ceasul (eng. clock ), coprocesorulmatematic (la generaţiile mai vechi), memoria RAM (eng.   Random AccessMemory) şi memoria ROM (eng. Read Only Memory). În plus, unitatea sistem maiconţine: sursa de alimentare, ventilatoare şi unităţile de discuri. Diferitele plachete

 pentru cuplarea unor dispozitive de intrare-ieşire (imprimantă, disc, modem etc.) secuplează la placa de bază folosind conectorii la magistrală. Magistrala (eng. bus)este un canal comun de comunicaţie între plachetele calculatorului prin care circulă semnalele de dialog între componente. Plachetele pot fi introduse opţional în sloturi(conectori), în funcţie de dorinţa utilizatorului. Cele mai importante plachete sunt:adaptorul video (eng. display screen adapter ), adaptorul sau cuplorul de disc,

  plachetele de memorie, plachetele de comunicaţie (pentru imprimantă, modemetc.).

Pentru microcalculatoare compatibile IBM-PC se utilizează mai multetronsoane de magistrală: ISA (eng.  Industry Standard Architecture) , MCA (eng.Micro Channel Architecture), EISA (eng.   Extended Industry Standard 

 Architecture), PCI (eng. Peripheral Component Interconnect ), etc.Prin intermediul magistralei se asigur ă o arhitectur ă deschisă, astfel că 

utilizatorii pot extinde sistemul prin inserarea de plachete, cum a fost precizat mai

sus. Totuşi numărul sloturilor este limitat. Conectarea unui număr suplimentar dedispozitive se poate realiza prin intermediul unui adaptor SCSI (eng. Small Computer S   ystem Interface – se pronunţă “scazzy”). Se pot conecta până la 7dispozitive: imprimante, discuri rigide, unităţi CD-ROM / CD-RW, etc.

Minicalculatoarele sunt sisteme de calcul cu dimensiune şi performanţe de prelucrare situate între cele ale microcalculatoarelor şi sistemelor mainframe28. Elesunt utilizate de companiile medii sau departamentele companiilor mari pentrumonitorizarea proceselor de fabricaţie, gestiunea economică sau cercetare.

28 Wiki, Mainframe computer, http://en.wikipedia.org/wiki/Mainframe_computer .

Page 37: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 37/96

  37

Sistemele mainframe sunt calculatoare de dimensiune mare care necesită condiţii speciale de funcţionare (de exemplu, aer condiţionat), dar au putere marede calcul şi pot stoca cantităţi “uriaşe” de date. Sunt utilizate de organizaţiile mari

 – companii multinaţionale, agenţii guvernamentale, bănci, universităţi etc. – pentrua prelucra un număr foarte mare de tranzacţii pe unitatea de timp.

Su percalculatoarele (eng. supercomputers) sunt cele mai puternice sistemede calcul29. Ele sunt utilizate în cercetare de organizaţii puternice pentru explorarearesurselor, simulări, predicţii etc.

3.1.2. Procesor. Caracteristici. Set de instruc ţ iuni 

Una dintre componentele principale ale oricărui sistem de calcul oreprezintă procesorul. Procesorul actualelor sisteme poate fi de tip special, unmicroprocesor sau un ansamblu integrat de (micro)procesoare.

Orice procesor conţine patru blocuri funcţionale de bază: unitatea de

comandă  şi control (UCC), unitatea aritmetico-logică (UAL), registrele procesorului30, unitatea de interfaţă cu celelalte componente (UI). Procesoarele performante utilizează structuri de date avansate precum stivele. Acestea sunt utile pentru salvarea contextului unei activităţi înainte de întreruperea acesteia.

Primele trei componente formează unitatea de executare. UCC  comandă,coordonează  şi controlează întreaga activitate de prelucrare la nivelulcomponentelor calculatorului. Ea va executa instrucţiunile unui program. UAL realizează prelucrarea datelor cerută prin instrucţiuni: operaţii aritmetice, logice, decomparare etc.

 Registrele reprezintă o memorie foarte rapidă a procesorului în care se păstrează codul instrucţiunilor, datele de prelucrat, rezultatele prelucr ărilor etc.Cele mai importante registre ale unui procesor sunt: registrul acumulator ,

registrul numă r ă tor de adrese al programului, registrul indicatorilor de condi ţ ii (valoare negativă, pozitivă sau nulă, transport în urma executării operaţiilor decalcul etc.), registrul de instruc ţ iuni şi registrul de adresare a memoriei.

În general, registrul acumulator păstrează unul dintre operanzii uneiinstrucţiuni de calcul, fiind totodată şi destinaţia rezultatului operaţiei.

Registrul număr ător de adrese al programului sau registrul contor-program,arată adresa, în memoria internă, unde se află stocată următoarea instrucţiune de

executat. Indicatorii de condiţie sunt poziţionaţi automat în urma efectuărianumitor operaţii.

Registrul de instrucţiuni memorează instrucţiunea ce se execută.Conţinutul acestui registru este analizat pentru a se determina operaţia de executat,locul unde se află stocaţi operanzii precum şi locul unde va fi stocat rezultatul, dacă instrucţiunea este una de calcul, respectiv adresa unde se va face un salt în programsau adresa unei zone de memorie unde/de unde se va stoca/citi o anumită dată, înalte situaţii.

29

Wiki, Supercomputer, http://en.wikipedia.org/wiki/Supercomputer .30 Wiki, Processor register, http://en.wikipedia.org/wiki/Processor_register .

Page 38: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 38/96

  38

 

Registrul de adresare a memoriei păstrează adresa curentă folosită pentruefectuarea accesului la memorie. De obicei, adresa efectivă se obţine în urma unuicalcul de adresă.

UI  asigur ă legătura dintre procesor  şi celelalte componente alecalculatorului îndeplinind funcţia de transfer de date de la/spre procesor.Comunicarea procesorului cu celelalte componente: adaptorul video, adaptorul dedisc etc. se face prin intermediul porturilor (puncte de intrare în procesor). Acestea

  pot fi porturi de intrare (vin date de la componente) respectiv porturi de ieşire(pornesc date spre componente). În practică, un port este identificat printr-unnumăr (unic).

Deoarece un sistem de calcul execută mai multe activităţi, acestea pot aveanevoie de controlul procesorului. Rezultă necesitatea întreruperii unei activităţi

  pentru a trece la o altă activitate. Aceste comutări sunt determinate fie prinhardware, fie prin software. Întreruperea hardware este declanşată la apariţia unuisemnal de întrerupere prin care procesorului i se cere să analizeze un anumit

eveniment. După ce au fost iniţiate de către procesor, unele activităţi se potdesf ăşura f ăr ă controlul procesorului, de exemplu modul de prelucrare DMA31 (eng. Direct Memory Accesss.)

Performanţele procesorului pot fi exprimate prin: durata ciclului procesorului, lungimea cuvântului, repertoriul de instruc ţ iuni, numă rul adreselor dintr-o instruc ţ iune, durata execut ă rii instruc ţ iunilor etc.

Durata ciclului procesorului reprezintă intervalul de timp în care seefectuează un transfer între două registre ale procesorului.

Lungimea cuvântului poate fi de 8 biţi, 16  biţi, 32 biţi, 64 biţi etc. înfuncţie de tipul procesorului.

Repertoriul de instrucţiuni conţine cel puţin următoarele grupe de operaţii(mnemonicele instrucţiunilor au caracter orientativ):

- instruc ţ iuni generale (MOV - mutare de informaţie (încărcare înregistre – LD; stocare în memorie – ST, atribuire condiţionată (CS,ZS)), PUSH - punere de informaţii în memoria organizată ca o stivă,POP - aducerea informaţiei din memoria stivă etc.);

- instruc ţ iuni de intrare/ie şire (IN - depunerea în registrul acumulator ainformaţiei stocate în registrul de intrare/ieşire (portul de date), OUT -scrierea în portul de date a informaţiei aflate în registrul acumulator);

- instruc ţ iuni aritmetice: adunare (ADD, ADC, INC etc.), scădere (SUB,DEC, NEG, CMP etc.), înmulţire (MUL, IMUL etc.), împăr ţire (DIV,IDIV etc.);

- instruc ţ iuni de calcul în virgul ă mobil ă  (FADD, FSUB, FMUL, FDIV,FSQRT, FEQLE, FEQL etc.);

- instruc ţ iuni de manipulare a  şirurilor de bi ţ i: operaţii logice (NOT,AND, OR, XOR, TEST), deplasare (SHL, SAL, SHR, SAR), rotire(ROL, ROR, RCL, RCR);

- opera ţ ii la nivel de octet (DIF, MOR, MXOR)

31 Wiki, Direct memory access, http://en.wikipedia.org/wiki/Direct_memory_access .

Page 39: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 39/96

  39

- instruc ţ iuni de transfer în regim de anticipare a salturilor (PBN, PBZ,PBP etc ) sau de transfer f ă r ă  anticipare : salt necondiţionat (CALL,RET, JMP, GO), salt condiţionat - prin testarea indicatorilor de condiţii(JC, JNC, JE, JG, JL, BN, BZ, BP etc.), cicluri (LOOP etc.),întreruperi (INT, IRET, TRIP/TRAP etc.);

- instruc ţ iuni de sincronizare externă (HLT, WAIT, NOP etc.)Durata executării unei instrucţiuni reprezintă timpul necesar desf ăşur ării fazei decitire-interpretare şi a fazei de execuţie a acelei instrucţiuni.

Pentru microcalculatoare, procesorul este reprezentat de un singur circuitintegrat (eng.   silicon chip), numit microprocesor (eng. microprocessor -“microscopic processor”). Microcalculatoarele prelucrează (procesează) date şiinstrucţiuni în milionimi de secundă, sau microsecunde, supercalculatoarelerealizează prelucr ări în nanosecunde şi chiar picosecunde, ele fiind de peste unmilion de ori mai rapide decât microcalculatoarele.

În acest moment, există două categorii de microprocesoare: CISC32 (eng.

Complex Instruction Set Computer ) şi RISC33

(eng.   Reduced Instruction Set Computer ). Cele mai r ăspândite microprocesoare sunt cele CISC (având careprezentaţi microprocesoarele INTEL :  X86 ,  Pentium). Microprocesoarele RISCimplementează mai puţine instrucţiuni, sunt mai simplu de proiectat şi mai ieftine.Câteva exemple de microprocesoare RISC sunt: PowerPC – dezvoltat de Motorola,IBM şi Apple;  Alpha  şi MIPS R400 – dezvoltate de Digital EquipmentCorporation. O abordare specială o reprezintă arhitectura CISC bazată pe tehnicide tip RISC care duce la o viteză de executare a aplicaţiilor CISC comparabilă cucea a sistemelor RISC.

Un exemplu interesant de procesor a fost propus de D. Knuth pentruimplementarea calculatorului MMIX. Caracteristicile acestuia vor fi descrise încapitolul 4. Unelte software pentru experimentare pot fi obţinute de la:http://www.cs.fhm.edu/~mmix/tools/tools.html (de exemplu).

3.1.3. Memorii 

Stocarea informaţiilor în sistemul de calcul se realizează prin intermediulmemoriei. Memoria este spaţiul de lucru primar al oricărui sistem de calcul. Înfuncţie de locul ocupat, distingem: memoria central ă  (numită  şi memoria

 principal ă  sau internă ) şi memoria secundar ă  (numită şi auxiliar ă sau secundar ă ).În memoria centrală sunt stocate programele şi informaţiile utilizate de ele întimpul execuţiei lor de către procesor. Memoria secundar ă păstrează cantităţi maride date şi programe folosite frecvent şi încărcabile rapid în memoria centrală.Memoria unui sistem de calcul este caracterizată prin: capacitate, timp de acces,viteză de transfer , cost , mod de accesare a informa ţ iei stocate etc.

32

Wiki, Complex instruction set computer, http://en.wikipedia.org/wiki/CISC .33 Wiki, Reduced instruction set computer, http://en.wikipedia.org/wiki/RISC .

Page 40: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 40/96

  40

Capacitatea memoriei este definită prin numărul de unităţi de informaţie(caractere, cuvinte) disponibile pentru stocarea informaţiei. În general34,capacitatea memoriei se exprimă în   sistemul binar prin MB (mega octe ţ i, eng.mega bytes): 1 MB = 1024 KB = 1024*1024*8 biţi). Localizarea zonelor dememorie (internă sau externă) se realizează prin intermediul adresei. Prima locaţiea memoriei centrale are adresa 0 (zero). Dacă unitatea de stocare este octetul,atunci adresa 10 (scrisă zecimal) reprezintă locaţia a unsprezecea.

Timpul de acces exprimă durata intervalului în care poate fi obţinută informaţia stocată în memorie. Viteza de transfer se exprimă prin numărul deunităţi de informaţie transferate de memorie în unitatea de timp.

În funcţie de natura accesului la informaţia ce o înmagazinează, memoriacentrală a unui calculator poate fi cu acces numai în citire şi respectiv, cu acces înscriere şi citire. Memoria de tip "numai citirea este permisă" (ROM- eng. " Read Only Memory") se mai numeşte şi memorie permanent ă  sau nevolatil ă , deoarece

 programele şi datele ce au fost înscrise în ea sunt fixate o dată pentru totdeauna. În

general, în această memorie este depozitat firmware-ul35

(secvenţă de instrucţiunicu destinaţie specială). Memoria ce permite acces de tip "citire-scriere" se mainumeşte memorie cu acces aleator (RAM- eng. Random Access Memory) - deşi, totcu acces aleator este şi memoria ROM - şi este de tip volatil  (trebuie să fiealimentată electric pentru a reţine date). Din punct de vedere tehnologic au fostrealizate două clase de memorii RAM (SRAM: Static RAM   şi DRAM:  Dynamic

 RAM ). Atributul dinamic specifică necesitatea unui interval de timp foarte mic întremomentele de reîmprospătare (eng. refresh), reîmprospătarea realizându-se de sutede ori pe secundă pentru a se reţine datele stocate în celulele de memorie. DRAM-

 34 De fapt, trebuie să facem diferenţă între denumirile adoptate în sistem decimal (folosit înafaceri) şi cele caracteristice sistemului binar (folosit în programare). Astfel, sunt în uzurmătoarele prefixe:

  prefix zecimal binar kilo (K) 1000 = 103 1024 = 210 = 1.024mega (M) 10002 = 106 10242 = 220 = 1.048.576

 giga (G) 10003 = 109 10243 = 230 = 1.073.741.824tera (T) 10004 = 1012 10244 = 240 = 1.099.511.627.776

 peta (P) 10005 = 1015 10245 = 250 = 1.125.899.906.842.624exa (E) 10006 = 1018 10246 = 260 = 1.152.921.504.606.846.976

 zetta (Z) 10007 = 1021 10247 = 270 = 1.180.591.620.717.411.303.424 yotta (Y) 10008 = 1024 10248 = 280 =1.208.925.819.614.629.174.706.176

Ultima actualizare a acestui sistem a fost realizată în 1991. A se vedeahttp://www.bipm.fr/fr/CGPM/db/19/4/ şi http://www.techno-science.net/?onglet=glossaire&definition=1653.35  Firmware este un cuvânt care iniţial a fost folosit pentru a desemna microprogramele cuajutorul cărora se realiza unitatea de comandă  şi control a unui procesor. Astăzidesemnează şi secvenţele de cod (în limbajul procesorului) ce implementează interpretoare,nuclee de intrare-ieşire etc. De asemenea, această componentă este utilă în implementarea

stardardului PnP (eng.  P lug and Play) util în reconfigurarea automată a sistemelor decalcul.

Page 41: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 41/96

  41

ul este preferat pentru memoria principală a sistemelor, în timp ce SRAM-ul, carenu necesită reîmprospătare este utilizat în primul rând la implementarea memorieicache36 . Rolul memoriei cache constă în memorarea datelor  şi instrucţiunilor solicitate frecvent de către procesor. Memoria cache este primul loc unde

  procesorul caută datele de care are nevoie. Numai dacă acestea nu se află înmemoria cache ele vor fi căutate în memoria principală (fiind transferate blocuri dedate/instrucţiuni în memoria cache).

Există mai multe tipuri de module DRAM utilizate în sistemele de calculmoderne: SDRAM (eng. Synchronous DRAM ), RDRAM (eng.   Rambus DRAM ),DDR şi DDR2 ( Double-Data-Rate Synchronous DRAM ) ş.a.

Circuitele de stocare nevolatile se încadrează în următoarele clase:- PROM (eng.   Programmable Read-Only Memory) – pentru

înregistrarea codului cu ajutorul unui echipament special, odată ce estescris nu se mai poate schimba;

- EPROM (eng.  Erasable Programmable Read-Only Memory) – circuit

de stocare de tip ROM care poate fi şters cu ajutorul unui mediu înultraviolet, iar apoi poate fi rescris,

- Flash (un tip de memorie înrudit cu EPROM).

3.1.4. Dispozitive periferice

Totalitatea echipamentelor unui sistem de calcul diferite de unitatea centrală  şimemoria internă formează mulţimea echipamentelor periferice. Din această categorie fac parte unităţile de memorie externă, echipamentele de intrare,

echipamentele de ieşire şi echipamentele de intrare/ieşire. Discurile magnetice: Una dintre cele mai importante unităţi de memorareexternă este unitatea de disc magnetic. Memorarea informaţiei pe discul magneticurmează acelaşi principiu fizic cu cel utilizat în înregistrarea casetelor  şi benzilor audio-video. Deosebirea principală între cele două sisteme de memorare estedatorată naturii semnalului de înregistrare folosit: analogic, în cazul audio-video şinumeric (eng. digital ), în cazul discurilor sistemelor de calcul. Diferenţa faţă de

 benzile magnetice (înregistrate totr numeric) constă în modul de acces. Pe bandă accesul este secvenţială, pe disc accesul este direct, după cum se va vedea mai jos.

Din punct de vedere fizic, o unitate de disc magnetic are în compunere

unul sau mai multe platane, fiecare platan cu una sau două suprafeţe deînregistrare, atâtea capete de citire/scriere câte suprafeţe de înregistrare există, un

 braţ ce permite accesul de la exterior spre centrul platanului al capetelor decitire/scriere, motoare pentru rotirea platanelor şi deplasarea braţului, precum şi unset de circuite specializate (numit controler, cuplor sau adaptor) pentru comandaîntregului mecanism.

36 Memoria de tip cache poate apar ţine atât procesorului (fiind integrată acestuia), dar  şi

spaţiului RAM. De aceea, recent, se utilizează organizarea stratificată – pe niveluri - amemoriei cache.

Page 42: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 42/96

  42

Discurile magnetice care conţin un singur platan se numesc discuri floppy,iar platanul propriu-zis se numeşte dischet ă  sau disc flexibil . Discurile conţinândmai multe platane se numesc discuri rigide sau discuri dure (eng. harddisk ). Atât

 pentru dischete, cât şi pentru discul rigid, întreaga colecţie de date formează aşa-numitul volum. Suprafeţele de înregistrare ale unui disc magnetic sunt împăr ţiteîntr-un număr fix de cercuri concentrice, fiecare cerc numindu-se  pist ă . Adresaunei piste este definită de o pereche de numere întregi reprezentând numărul curental suprafeţei de înregistrare, respectiv numărul curent al pistei. Suprafeţele deînregistrare se numerotează începând de la zero, de sus în jos. Pistele senumerotează crescător de la pista de rază maximă (indice 0) spre pista de rază minimă. Această numerotare se reia pentru fiecare suprafaţă de înregistrare.

Mulţimea pistelor de pe toate suprafeţele de înregistrare identificate prinacelaşi număr formează un cilindru. Cilindrii se numerotează de la zero, crescător,începând cu cel cu diametrul maxim spre cel cu diametrul minim. Fiecare pistă esteîmpăr ţită în sectoare, de lungime fixă, de regulă  512 octeţi. Fiecare sector este

adresat fizic de un triplet de numere întregi reprezentând numărul cilindrului,numărul suprafeţei şi numărul sectorului. Numerotarea sectoarelor pe cilindruîncepe de la unu. Pe fiecare cilindru, numărul de sectoare este acelaşi.

Din punct de vedere logic, pistele sunt numerotate începând de la zero pesuprafaţa de înregistrare zero şi continuând crescător până la epuizarea suprafeţelor şi pistelor. De asemenea, sectoarele sunt numerotate începând de la zero (cilindrulzero, suprafaţa zero), crescător până la epuizarea sectoarelor suprafeţelor cilindrilor. Adresa fiecărui sector este înscrisă la începutul acestuia într-un antet cemai conţine şi o secvenţă de octeţi de sincronizare utilizaţi de adaptor (cuplor)

  pentru identificarea unei adrese disc. Operaţia de scriere a adresei şi a celorlalteelemente ale antetului sectoarelor se numeşte   formatare fizică  a discului. Pentrusisteme de calcul care folosesc sisteme de operare de la Microsoft, in cazulmodului de operare text (comanda cmd), formatarea fizică a dischetelor esterealizată de comanda FORMAT. Pentru discul rigid, formatarea fizică esterealizată, în majoritatea cazurilor, de către fabricantul acestuia.

Cele de mai sus arată că discul magnetic este o memorie accesabilă prinadresă, deci datele se obţin prin acces direct. Performanţele unui disc magneticdepind de următorii factori: timpul de poziţionare, numărul de rotaţii pe minut, ratade transfer a discului etc.

Discurile flexibile au două suprafeţe pe care se poate scrie informaţia şi potfi protejate la scriere prin fanta de protecţie (în poziţia liber). Cuplarea unităţilor dedisc se poate realiza intern (prin intermediul unei interfeţe standard:  IDE , SCSI  etc.) sau extern (prin intermediul interfeţei paralele).

Din punct de vedere constructiv, discurile rigide sunt de tip intern (capacitate fixă, suportul de memorare nu poate fi demontat din unitatea de disc),cartridge (capacitate variabilă – suportul poate fi evacuat precum o casetă dincititorul/înregistratorul de casete (casetofon sau videocasetofon), respectiv  pachet  de discuri (care se montează în unităţile speciale de citire-scriere ale mini şi

supercalculatoarelor).

Page 43: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 43/96

  43

 Discurile optice: Cele mai recente unităţi de memorie externă sunt unităţilede disc optic sau magneto-optic. Înscrierea optică a informaţiei este un proces carefoloseşte un fascicul de lumină (o rază laser) fie pentru citirea şi/sau înregistrareadatelor, fie pentru a ajuta la realizarea acestor operaţii pe un suport sensibil optic.Citirea datelor se bazează pe evidenţierea unor modificări survenite în fasciculul delumină reflectată de suport. Operaţia de scriere foloseşte un fascicul laser pentrumodificarea (sau pentru a facilita modificarea) unui material sensibil la lumină amplasat pe suport. Din punct de vedere tehnologic distingem următoarele tipuri dediscuri optice:

- discurile CD-ROM  (eng. C ompact Disc – Read-Only Memory): Suntdiscuri compacte preînregistrate pe care informaţia nu poate fiactualizată. Conţinutul unui astfel de disc este înscris de către producătorul său şi poate fi doar citit de către utilizator.

- discurile CD-R (eng. C D-Recordable): Sunt discuri compacte ce pot fiînregistrate de către posesor, dacă acesta dispune de un dispozitiv

  periferic special şi programele de bază aferente. După înregistrare,fostul CD-R devine un CD-ROM pe care îl poate citi orice unitate decitire CD-ROM. Discurile CD-R se mai numesc discuri WORM (eng.Write Once, Read Many).

- discurile CD-E : sunt discuri compacte de pe care informaţia poate fiştearsă. Aceste discuri suportă un număr limitat de cicluri decitire/scriere.

- discuri MO (magneto-optice): Sunt discuri la care scrierea serealizează magnetic, iar citirea optic. Aceste discuri pot fi scrise decâte ori este necesar, atâta vreme cât suportul nu este deteriorat. Ele fac

 parte din clasa, mai largă, a discurilor RW (eng.  ReWriteable optical discs).

Caracteristicile principale ale unui disc optic sunt: dimensiunea (5,25" sau 3,5"),capacitatea de stocare, numărul de cicluri de citire/scriere (pentru CD-E) etc.

Discurile compacte înregistrabile tind să devină cel mai convenabil suport pentru salvarea şi transportul datelor. Ele pot stoca un volum mare de date (sute deMB), iar costul este din ce în ce mai mic. Astfel, ele tind să înlocuiască dischetele,

 benzile şi casetele magnetice în multe aplicaţii de transport şi arhivare a datelor. Noua generaţie a discurilor optice o reprezintă suportul DVD (eng. Digital 

Video/Versatile Disc.) cu caractersitici superioare suportului CD. Componentele  principale al unei unităţi DVD sunt următoarele: a) mecanismul pentru citireadiscului; b) procesorul de semnal DVD-DSP (eng.  Digital Signal Processing ); c)decodorul digital audio/video şi d) modulul de control. Există mai multe tipuri desuporturi (deci şi de unităţi de citire/scriere) DVD: a) DVD-R (DVD Recordable)înregistrabile o singur ă dată; b) DVD RW ( Read/Write), DVD RAM ( Random

  Access Memory) şi DVD+RW (bazate pe o tehnologie cu schimbare de fază: Phase-Change Rewritable).

Terminalul: Deoarece unităţile de memorare externă, de obicei, permit atât

scrierea cât şi citirea informaţiei, aceste dispozitive periferice pot fi considerate şica dispozitive de intrare-ieşire. Un alt dispozitiv periferic de intrare-ieşire este

Page 44: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 44/96

  44

terminalul. Prin intermediul acestuia se asigur ă comunicaţia utilizator - sistem decalcul. Prin intermediul acestuia utilizatorul poate conversa cu calculatorul.

La un sistem de calcul pot fi cuplate unul sau mai multe terminale. Din punct de vedere al modului de cuplare la sistemul de calcul distingem două tipuride terminale: terminale seriale, terminal e "memorie" . Din punct de vedere softwareun rol important îl are terminalul virtual 37.

Terminalul serial este cuplat la calculator prin intermediul interfeţei decomunicaţie standard RS-232 (conector RS-232C). El este compus din tastatur ă  (ca dispozitiv de intrare) şi un monitor (ca dispozitiv de ieşire). Pentru a transmiteun caracter unui astfel de terminal, calculatorul (prin circuitele sale de interfaţă)transmite: un bit de start, bi ţ ii ce compun caracterul  şi unul sau doi bi ţ i de stop.Atât terminalul cât şi calculatorul dispun de circuite hardware specializate înconversia şir de caractere - şir de biţi şi invers.

Interfaţa unui terminal "memorie" cu calculatorul este asigurată prinintermediul unei memorii RAM cu destinaţie specială numită  memorie video.

Această memorie este adresabilă ca şi memoria principală. Controlul memorieivideo şi generarea semnalului video pentru monitor sunt realizate de un set decircuite care formează adaptorul video. La aceste terminale, tastatura este separată de monitor. Ea este cuplată printr-o interfaţă paralelă (mai mulţi biţi simultan), dar există şi tastaturi cuplate serial. Pentru sistemele de calcul ce utilizează terminale"memorie", tastatura este considerată un dispozitiv periferic separat, din clasadispozitivelor periferice de intrare.

Tastatura/Claviatura: Prin intermediul tastaturii utilizatorul poatetransmite comenzi calculatorului. Comenzile se introduc sub forma unui şir decaractere (litere, cifre, semne speciale, caractere de control). Fiecare caracter segenerează prin acţionarea uneia sau mai multor taste (butoane; eng. keys).Acţionarea unei taste sau combinaţii de taste are ca efect închiderea unui circuitelectronic prin care se generează un cod unic, care este codul ASCII (sau Unicode)al caracterului respectiv. Orice tastatur ă modernă are patru blocuri de taste:

1. Tastatura ma şinii de scris. Sunt disponibile butoane pentru introducereaurmătoarelor date simple: cifre, literele mari şi mici, semne speciale, barade spaţiu, retur de car (CR - Carriage Return), salt la linie nouă (LF - Line

 Feed ), saltul cursorului cu un număr de coloane (Tab), întreruperea uneiactivităţi (Esc-  Escape), tipărirea imaginii ecranului sau memorarea

acesteia ( Print Screen), suspendarea temporar ă a executării unui program( Pause/Break ).2. Tastatura de editare. Editarea unui text constă în scrierea textului şicorectarea acestuia. Textul este afişat pe ecran. Acolo apare şi o bar ă luminoasă sau un indicator special (cursor 38) care arată poziţia în care va fi

37 Terminalul (Consola) virtual(ă) poate fi vazut(ă) ca o aplicaţie de serviciu care permite a)terminalelor unei reţele multiuser să interacţioneze cu alte sisteme pe baza tipului şicaracteristicilor terminalului; b) accesul la distanţă pentru managementul resurselor logice

ale unui sistem de calcul; c) crearea mai multor instanţe terminal etc.38 A nu se confunda cu sensul precizat în DEX’1996.

Page 45: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 45/96

  45

inserat următorul caracter. Sunt disponibile următoarele butoane: tastelesăgeţi (pentru deplasarea cursorului), tastele  Page Up şi  Page Down carecomandă deplasarea cursorului în sus / jos cu un anumit număr de rânduri,tastele  Home  şi  End  care comandă deplasarea cursorului la începutul /sfâr şitul textului, tasta  Insert  pentru alegerea tipului de corectur ă (cusuprascriere sau cu inserare), tastele pentru ştergere ( Delete  ştergecaracterul din poziţia cursorului,  Backspace şterge caracterul de la stângacursorului).3. Tastatura numerică conţine tastele pentru cifre şi operaţiile aritmetice: +(adunare), - (scădere), * (înmulţire) , / (împăr ţire) şi . (punct) ca separator între partea întreagă şi partea zecimală a unui număr (conform sistemuluienglezesc de scriere).4. Tastele func ţ ionale: cele 12 butoane F1, F2, …, F12 cărora li se pot asociadiferite acţiuni de către programatorul de aplicaţii. Un utilizator, înainte deutilizarea tastelor funcţionale, în cadrul unei noi aplicaţii, trebuie să 

inventarieze lista asocierilor. Aplicaţii diferite fac asocieri diferite, pentruaceeaşi tastă. Chiar, în cadrul aceleiaşi aplicaţii, asocierea se poate schimbade la un nivel funcţional la altul.

Unele taste sunt de tip "cald" (eng. hotkeys), iar altele de tip "rece" (eng. coldkeys).Tastele reci nu generează cod către calculator ci se folosesc împreună cu tastelecalde pentru a realiza combinaţii. Tastele reci sunt: Shift, Ctrl, Alt . De exemplu,majoritatea programelor aplicative folosesc combinaţiile: Ctrl+N (pentru lansareaunui nou proiect: program, document, imagine, desen tehnic etc;eng. New), Ctrl+O(încarcă un proiect existent pentru actualizare, tipărire etc; eng. O pen), Ctrl+S(înregistrează pe un suport de memorare externă proiectul curent; eng. Save),Ctrl+P (imprimă “imaginea” proiectului curent folosind o imprimantă sau trimite

 proiectul prin intermediul unui adaptor de tip fax; eng. Print ), Ctrl+X (mută o partea unui proiect într-o zonă a memoriei RAM, numită clipboard ; eng. Cut ), Ctrl+C(copiază o parte a unui proiect în clipboard ; eng. Copy), Ctrl+V (copiază conţinutulzonei clipboard în proiectul curent, în locul specificat de utilizator; eng. Paste) etc.

O tastatur ă are şi taste comutator (cu două stări): CapsLock  (asigur ă comutarea între starea care generează litere mici şi starea care generează literemari),  NumLock  (comută între starea numerică  şi starea de editare pentru blocultastelor numerice),  Insert  (comută între corectura prin inserare şi corectura cu

suprascriere).Monitorul : Monitorul oricărui terminal (compus din ecran şi circuite de

generarea imaginii) poate lucra în două moduri: modul text  şi modul grafic.În modul text ecranul este împăr ţit în rânduri (eng. rows) şi coloane (eng.

columns). Numărul de rânduri şi numărul de coloane este dat de modul de lucru  permis de monitor. De obicei sunt 25 de rânduri şi 80 de coloane. La intersecţiaunei linii cu o coloană se generează un caracter printr-o matrice de puncteluminoase. Pentru fiecare poziţie de afişare, se vor păstra (din motive dereîmprospătare a imaginii) codul ASCII (Unicode) al caracterului şi atributul

caracterului (cel care controlează aspectul caracterului afişat şi depinde deadaptorul folosit). De exemplu, pentru calculatoare personale, codul caracterului

Page 46: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 46/96

  46

este stocat folosind 8 biţi, iar atributul folosind alţi 8 biţi. Atributul pentru afişareacolor este format din trei elemente: culoarea peniţei (eng.  foreground ), culoarehârtiei (eng. background ) şi elementul de control al clipirii (eng. blink ). Culoareaeste specificată cu ajutorul a trei componente fundamentale: R-roşu (eng. Red ), G-verde (eng. Green) şi B-albastru (eng. Blue).

În modul grafic ecranul este o suprafaţă de puncte luminoase numite pixeli (elemente de imagine; eng.   picture element ). Fiecare pixel este caracterizat princodul culorii. Următoarele elemente caracterizează un anumit mod grafic:

•  Rezolu ţ ia - numărul de puncte de pe ecran;•  Defini ţ ia - distanţa dintre două puncte pe ecran;•  Numă rul de culori.

Toate aceste elemente depind de modul grafic suportat de monitor. Deexemplu modul VGA (eng. Video Graphics Array) asigur ă o rezoluţie de 640 x 480 

 puncte şi 16 culori, iar modul SVGA (eng. Super VGA) standard asigur ă rezoluţiade 800 x 600 pixeli în 256  culori. Modul XGA (eng. eXtended Graphic Array)

afişează mai mult de 18 milioane de culori pentru o rezoluţie de până la 1024 x 768 de pixeli. Rezoluţia sistemelor de afişare este în continuă îmbunătăţire.

Generarea unor imagini complexe, la o viteză de prelucrare mare, f ăr ă aportul procesorului sistemului de calcul, este asigurată astăzi de coprocesoarelegrafice (numite şi acceleratoare) care realizează în mod independent: trasarealiniilor, generarea suprafeţelor definite prin contur, desenarea umbrelor, deplasareatextului, deplasarea blocurilor de imagine etc.

Monitoarele sunt de tip desktop (la locul de muncă sau acasă) şi portabile.Monitoarele desktop, numite şi sisteme CRT (eng. Cathode-Ray Tubes) sunt

similare ca dimensiune şi tehnologie cu receptoarele emisiunilor de televiziune.Sunt de tip întreţesut (eng. interlaced ) – cu realizarea imaginii pe rândurile impareşi apoi pe cele pare şi, de tip neîntreţesut (eng. noninterlaced ). Întreţeserea

 provoacă pâlpâirea, şi deci oboseala ochilor. Monitoarele portabile echipează sistemele de tip laptop, notebook, subnotebook  şi PDA. În ultimul timp acesteaechipează şi sisteme desktop.

  Dispozitive pentru introducerea informa ţ iei grafice: În categoriadispozitivelor periferice de intrare sunt incluse şi echipamentele: mouse39, joystick ,trackball , tabletă grafică sau digitizor (eng. digitizer ), creion optic (eng. light pen)etc. Primele trei dispozitive de interacţiune controlează deplasarea unui cursor pe

ecranul unui sistem de calcul. Ele difer ă numai constructiv. Mausul  dispune de  butoane a căror apăsare este interpretată de programele sistemului de calcul caregenerează o secvenţă de operaţii specifică locului cursorului, butonului apăsat şifuncţiilor programului în executare. Creionul optic este un dispozitiv de selecţie şise utilizează numai în combinaţie cu terminale speciale, pentru aplicaţii speciale(ex. proiectare grafică, pictur ă asistată de calculator etc.). Tableta grafică este undigitizor ce poate fi folosit fie pentru selecţie, fie pentru introducere de date în

39 Acest dispozitiv este denumit maus (plural: mausuri) în DEX’1996: "dispozitiv acţionat

manual, conectat la un computer, a cărui deplasare pe o suprafaţă antrenează deplasareacursorului pe ecran."

Page 47: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 47/96

  47

aplicaţii de proiectare înclusiv pentru arhitectur ă, sisteme informatice geograficeetc.

Mausul se poate deplasa pe o masă reală (eng.  pad ) şi va antrenadeplasarea unui cursor pe ecran. Mausul are mai multe butoane utile în efectuareaurmătoarelor operaţii:

1. indicare (eng. point ) - cursorul mausului este deplasat pentru a indica unanumit punct de pe ecran (deci reprezentarea unui anumit obiect);2. clic (eng. click ) - se acţionează, foarte scurt, un buton al mausului. Codulce controlează funcţionarea mausului va trata evenimentul apărut;3. clic dublu (eng. double click ) - se acţionează, foarte scurt, de două ori,un buton al mausului;4. tragere (eng. drag ) - se asigur ă deplasarea mausului pe masa reală,acesta având un buton apăsat continuu.Tabletele grafice se pot clasifica pe baza a două criterii: a) după 

dimensiunea suprafeţei active: A4, A3, A0; b) după precizie şi acurateţe: pentru

digitizare de planuri şi pentru meniuri. Ele pot fi echipate cu un  stylus sau un puck  cu 4-16 butoane programabile.

Un alt periferic de intrare, cu aplicaţii în introducerea imaginilor, estescanerul (eng.  scanner ). După citirea imaginii, aceasta poate fi prelucrată: mărită,micşorată, rotită, colorată, suprapusă cu alte imagini şi analizată folosind diferitemetode. Principiul fundamental al funcţionării scanerului îl reprezintă modificareaintensităţii unui fascicul luminos la întâlnirea unei suprafeţe de o culare oarecare.Scanarea unui document se desf ăşoar ă în două faze. Un fascicul luminos, în primafază, baleiază (scanează) documentul linie cu linie, iar fascicolul luminos care sereflectă este direcţionat (cu ajutorul unui sistem de oglinzi şi lentile) spre omulţime de celule fotosensibile CCD (eng. Charge-Coupled Device). În etapaurmătoare, CCD-ul transformă semnalele luminoase recepţionate în semnaleelectrice care după o conversie analog-digital sunt trimise programului care vasalva imaginea. Scanerele color obţin trei versiuni ale documentului de scanat: unade culoare roşie (eng. red ), una de culoare verde (eng.  green) şi una de culoarealbastr ă (eng. blue) care contribuie la imaginea finală. Observăm că ceea ce seintroduce nu este un punct ci o suprafaţă de puncte. Caracteristicile unui scaner sunt: a) rezoluţia optică- numărul de puncte pe unitatea de suprafaţă pe care le

  poate citi (eng. dots per inch); b) numărul de culori şi c) viteza de scanare

(explorare).Alte scanere sunt specializate: cititorul de bare (eng.   Bar Code Reader ),

cititorul de taloane (eng.  Badge Reader ), cititorul de text (eng.  Document Scanner  sau OCR Scanner ), cititoare cu cerneală magnetică a înscrisurilor bancare (eng.Magnetic Character Ink Reader ) etc.

Transmiterea/Recepţionarea documentelor la/de la distanţă se poate realiza, pe linie telefonică, folosind un adaptor special (modem) şi un fax (eng.  facsimiletransmission machines). În prezent cele două componente sunt integrate pe o

 plachetă numită internal fax-modem sau într-un dispozitiv extern care se cuplează 

la un sistem de calcul prin portul serial.

Page 48: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 48/96

  48

  Echipamente de ie şire: Din categoria echipamentelor de ieşire ne vomreferi la următoarele: imprimanta, plotterul şi fotoplotterul. Plotterele au fost

 primele dispozitive periferice care au oferit sistemelor de calcul posibilitatea de a produce ieşiri în formă grafică. Plotterele pot fi cu peniţă, cu jet de cerneală, de tiptermic şi de tip electrostatic.

Plotterele au în componenţă procesoare grafice proprii. De exemplu, plotterele cu peniţă recunosc primitive grafice precum: linie, poligon, arc de cerc,text etc. Dacă suportul de informaţie este filmul fotografic atunci dispozitivulasemănător plotterului, dar instalat în codiţii specifice se numeşte fotoplotter.

Imprimantele sunt dispozitive de afişare alfanumerică sau grafică. Ele potfi: cu ace, cu jet de cerneală, cu transfer termic sau pe bază de laser.

Sistemele multimedia acceptă  şi intrare/ieşire sonor ă dispunând dedispozitive specializate pentru analiza/sinteza vocii. Conversia vocii unei persoaneîn code numeric se realizează în scopul recunoaşterii vorbirii. Sunt disponibilesisteme integrate pentru recunoaşterea vorbirii (la nivel discret şi la nivel continuu).

Acestea sunt sisteme speciale care realizează şi traducerea dintr-o limbă în alta, amesajului vorbit.Alte echipamente, a căror prezentare nu este realizată aici, sunt destinate

redării unor aspecte ale realit ăţ ii virtuale: mănuşa de date (eng: data glove), cascaVR (HMD: H ead Mounted Display), camera VR (CAVE: Cave Automatic Virtual 

 Environment ) etc.

3.1.5. Viteza de procesare

Un sistem de calcul este un dispozitiv automat în care datele reprezentateîn binar sunt prelucrate pe baza unui program ce indică o succesiune determinată de operaţii. Datele iniţiale de prelucrat şi programul constituit din instrucţiuni seintroduc în sistemul de calcul prin intermediul unor dispozitive periferice deintrare. Prin intermediul unor canale de comunicaţie, datele şi instrucţiunile sunttransferate în memoria internă sub formă binar ă, în locaţii identificabile prinadresele la care au fost memorate (şi nu prin conţinutul acestora). Apoi fiecareinstrucţiune este trimisă la UCC care interpretează conţinutul acesteia şi trimitecomenzi către:

1. memorie - prin care se solicită ca anumite date, localizate prin adresele

la care sunt memorate, să fie transferate către UAL pentru execuţiaanumitor operaţii; după realizarea operaţiei se va indica adresa dinmemorie unde se va depune rezultatul operaţiei efectuate de UAL;2. UAL - i se va solicita execuţia operaţiei indicate de instrucţiune;3. canalele de intrare-ie şire - pentru preluarea altor date şi instrucţiuni dela dispozitivele de intrare-ieşire, respectiv pentru începerea transferuluirezultatelor din memorie către dispozitivele periferice de ieşire.

După terminarea execuţiei operaţiilor solicitate, rezultatele memorate la anumiteadrese din memorie sunt transferate către dispozitivele de ieşire pentru vizualizarea

acestora.

Page 49: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 49/96

Creşterea vitezei de procesare a fost posibilă prin accelerarea executăriiinstrucţiunilor (de exemplu prin tehnica pipeline – bandă de asamblare), dar şi prinutilizarea unor tehnici de organizare a memoriei (de exemplu prin utilizareamemoriei cache). Memoria cache este reprezentată de un bloc de memorie dedimensiune mai mică, dar cu timp de r ăspuns forte scurt, care funcţionează ca untampon (eng. buffer ) între procesor (sau diferite componente ale procesorului) şimemoria principală. Ideea principală care stă la baza tehnicii bazate pe memoriecache este:  Dacă  o instruc ţ iune accesează  o anumit ă  loca ţ ie de memorie atunci  probabilitatea ca instruc ţ iunile urmă toare să  acceseze loca ţ ii vecine este foartemare. Această idee induce şi o disciplină de programare bazată pe evitareasalturilor la distanţă (eng.  jump) realizată în manier ă înlănţuită  şi utilizareainstrucţiunilor în secvenţă, eventual doar cu salturi locale (eng. branch).

Tehnica pipeline constă în divizarea fiecărei instrucţiuni într-un număr deetape. fiecare etapă fiind executată de o unitate funcţională a procesorului. Deobicei, etapele de executare a unei instrucţiuni (în 4 paşi) sunt: extragerea (F – 

 fetch), decodificarea (D – decode), executarea (E – execute) şi scrierea rezultatului(W –  write). În figura 3.1 se ilustrează diferenţa (ca timp de procesare) ainstrucţiunilor cu şi f ăr ă pipeline.

Fig. 3.1. Procesarea instrucţiunilor f ăr ă pipeline (sus) / cu pipeline (jos)

Observaţii-  Prelucrarea instruc ţ iunilor f ă r ă  pipeline: Dacă fiecare etapă consumă 

o unitate de timp, de-a lungul a patru unităţi de timp se procesează osingur ă instrucţiune.

-  Prelucrarea instruc ţ iunilor în regim pipeline: Începând cu unitatea detimp 4, în fiecare unitate de timp se lucrează simultan asupra a patruinstrucţiuni. La fiecare nouă unitate de timp se va încheia procesareacompletă a unei instrucţiuni. Acesta este motivul pentru care

  prelucrarea pipeline este numită    prelucrare în regim band ă  de

asamblare.

49 

Page 50: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 50/96

  50

O altă modalitate de creştere a vitezei de procesare o constituie utilizareaarhitecturilor paralele, a arhitecturilor distribuite precum şi a unor arhitecturineconvenţionale (de exemplu a sistemelor de tip cuantic).

3.1.6. Clasificarea sistemelor de calcul 

Sistemele de calcul pot fi de tip numeric (digitale), analogic şi de tiphibrid. Calculatoarele numerice, sunt cele care primesc, prelucrează  şi transmitdate/informaţii codificate binar. Ele fac obiectul acestei lucr ări. Sistemele de calculanalogice sunt echipamente alcătuite din amplificatoare operaţionale şi circuitenumerice independente, interconectate în vederea realizării unor operaţii de tipcontinuu: integratoare, multiplicatoare etc. Mărimile corespunzătoare condiţiilor iniţiale se introduc sub forma unor tensiuni electrice. Acestea sunt prelucrate şi seobţin noi tensiuni electrice ce vor fi vizualizate cu ajutorul unor dispozitivespeciale. Sistemele hibride sunt rezultatul cuplării unor sisteme numerice cu

sisteme analogice. Comunicarea între cele două tipuri de sisteme se realizează prinintermediul unor dispozitive de conversie: analogic-digital; digital-analogic.Sistemele analogice nu fac obiectul acestei lucr ări.

O clasificare interesantă a sistemelor digitale a fost propusă de Flynn(1972) şi cuprinde atât sistemele de calcul cu o singur ă unitate centrală, cât şi pecele cu mai multe unităţi centrale (figura 3.2). Clasificarea lui Flynn consider ă caesenţiale două caracteristici: mărimea fluxului instrucţiunilor  şi mărimea fluxuluidatelor.

Un sistem de calcul cu flux unic de instrucţiuni şi flux unic de date este

numit sistem de calcul SISD (eng. Single Instruction Single Data Stream). Toatesistemele de calcul tradiţionale (cu o singur ă unitate centrală) sunt maşini SISD.Această categorie include sisteme de calcul, de la microcalculatoarele personale

 până la calculatoarele multiutilizator de mare putere (eng. mainframe): IBM/704,IBM/7040, IBM 360/40, IBM 370/135, PDP, FELIX C, microcalculatoarele IBMPC etc. Următoarea categorie o reprezintă sistemele de calcul cu flux simplu deinstrucţiuni, dar cu flux multiplu de date, numite sisteme SIMD (eng. Single

  Instruction Multiple Data Stream). Aceste sisteme se bazează tot pe o singur ă unitate centrală cu o singur ă unitate de comandă, dar cu N elemente de prelucrare(UAL) şi  N  module de memorie ataşate acestora, toate interconectate (N≥2).

Unitatea de comandă emite instrucţiuni sub formă de flux unic spre toateelementele de prelucrare, în mod simultan. La un moment dat, toate elementele de

  prelucrare active execută aceeaşi instrucţiune, numai asupra datelor situate în propriul modul de memorie, deci flux multiplu de date. Din această clasă fac parteunele  supercalculatoare (de exemplu, ILLIAC-IV cu 64 UAL şi pentru fiecareUAL fiind disponibili 8KB de memorie).

Page 51: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 51/96

 Fig. 3.2. Tipuri de sisteme de calcul (Flynn)

Sistemele SIMD sunt, la rândul lor, de mai multe categorii: a) matriceale - prelucrează datele în mod paralel şi le accesează prin adrese în loc de index  şivaloare; b) cu memorie asociativă - operează asupra datelor accesate asociativ (prin conţinut). În loc de adresă, specificarea datelor se face prin valoare, cum ar fi:"mai mare decât", "mai mic decât", "între limitele", "egal cu" etc.; c) matriceal-asociative - sunt sisteme de tip asociativ ce operează asupra tablourilor multidimensionale (matrice şi masive de date); d) ortogonale - fiecare element

  procesor corespunde la un cuvânt (32 biţi) de memorie şi, astfel, biţii de acelaşirang ai tuturor cuvintelor pot fi prelucraţi în paralel. Acest procedeu mai este numit procesare serial ă pe bit  şi paralel ă pe cuvânt .

Clasa sistemelor cu flux multiplu de instrucţiuni şi flux unic de date MISD(eng. Multiple Instructions Single Data Stream) include acele structuri specializatece folosesc mai multe fluxuri de instrucţiuni executate pe acelaşi flux de date.Ultima categorie o reprezintă sistemele MIMD (eng. Multiple Instructions,Multiple Data Stream), ce reprezintă un grup de calculatoare independente, fiecarecu propriul context (program, date etc.). Multe dintre  supercalculatoare  şi toate

 sistemele distribuite intr ă în această clasă. Sistemele MIMD pot fi divizate în două categorii: sistemele multiprocesor (cu memorie comună) şi sisteme multicalculator .Pe de altă parte, fiecare din aceste clase se poate împăr ţi în funcţie de modul deinterconectare. Există două posibilităţi de interconectare: magistral ă  (similar televiziunii prin cablu) şi comuta ţ ie (similar reţelei telefonice). Se obţin astfel patruclase de sisteme MIMD (figura 3.3): sisteme multiprocesor cu magistrală, sistememultiprocesor comutate, sisteme multicalculator cu magistrală (re ţ ele decalculatoare) şi sisteme multicalculator comutate ( sisteme distribuite generale).

Fig. 3.3. Tipuri de sisteme MIMD

51

Page 52: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 52/96

  52

Calculatoarele dintr-o reţea pot fi de acelaşi tip (re ţ ele omogene) sau detipuri diferite (re ţ ele eterogene). Reţelele de calculatoare permit folosirea în comuna unor resurse fizice scumpe (imprimante, discuri fixe de mare capacitate etc.) şifolosirea în comun a unor date. Datele care se schimbă între sisteme de calcul senumesc documente electronice.

În funcţie de aria de r ăspândire a calculatoarelor dintr-o reţea, se distingurmătoarele tipuri de reţele:

1.  Re ţ ele locale - LAN (eng.  Local Area Network ): În aceste reţele, aria der ăspândire nu depăşeşte 2 km şi deservesc o societate comercială. Reţelelelocale sunt formate de regulă din calculatoarele aflate într-o clădire sau ungrup de clădiri.

2.  Re ţ ele metropolitane - MAN (eng. M etropolitan Area Network ): Acestereţele acoper ă suprafaţa unui oraş.

3.  Re ţ ele globale - WAN (eng. Wide Area Network ): Calculatoarele acestor reţele au o arie geografică de r ăspândire foarte mare (reţele internaţionale,

"Internet" etc.)În această lucrarene vom referi numai la reţelele locale. Reţelele locale, în special bazate pe staţii de lucru sau calculatoare personale (PC) prezintă avantaje ce pot figrupate în trei categorii: a) avantaje strategice în mediul de afaceri/educaţional; b)avantaje operaţionale şi/sau tactice; c) avantaje ale utilizatorului.

Avantajele strategice în mediul de afaceri/educaţional includ: facilitareacomunicaţiilor în cadrul unei firme/şcoli, creşterea competitivităţiifirmei/instituţiei, posibilitatea organizării resurselor în grupuri de lucru cu efectasupra reducerii bugetelor afectate prelucr ării datelor. Din punct de vedereoperaţional şi/sau tactic se remarcă: reducerea costurilor per utilizator, creştereasiguranţei serviciilor de calcul (prin posibilitatea includerii serverelor “în oglindă“(eng. mirror )), îmbunătăţirea administr ării software-ului, îmbunătăţirea integrităţiidatelor (datele de pe server vor fi salvate în mod regulat), îmbunătăţirea timpului der ăspuns (într-o reţea necongestionată). Un utilizator al unei reţele locale poate aveaurmătoarele avantaje: mediul de calcul poate fi ales de către utilizator, creşterepertoriul de aplicaţii, creşte securitatea informaţiei (sistemul de operare în reţeafiind cel care restricţionează/permite accesul la datele reţelei), există posibilitateainstruirii on-line (prin intermediul bazelor de date pentru instruire) etc.

Componentele hardware specifice unei reţele locale (în afara staţiilor sau

PC-urilor) sunt:1. Cabluri - pot fi coaxiale, fire torsadate (10Base-T), fibre optice etc. Acestea

sunt utile pentru realizarea legăturii fizice. Caracteristicile principale ale unuicablu sunt: impedanţa, capacitatea, factorul de atenuare, viteza semnalului,caracteristicile de zgomot. Spre deosebire de mediile prin cablu, mediile oferitede telefonia celular ă, undele radio terestre, undele radio prin satelit, undelelaser, microundele şi undele meteorice permit transmiterea informaţiilor f ăr ă cablu.

2. Module de interfa ţă cu re ţ eaua - accesul fizic al unei staţii (sau PC) la LAN se

face cu ajutorul unui modul de interfaţă (NIC - eng.  N etwork Interface Card ),

Page 53: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 53/96

  53

mai precis o plachetă instalată în PC ce suportă atât funcţii de partajare aspaţiului fizic cât şi funcţii de sincronizare.

3. Tranceivere - Acestea sunt receptoare-transmiţătoare pentru conectare la LAN.Tranceiverul este un echipament ce transmite şi recepţionează semnal între

 NIC-ul din PC şi mediul fizic utilizat. Dacă sunt utilizate conectoare Ethernetîn T ataşate direct la conectorul BNC al unui NIC, atunci nu este necesar unastfel de echipament.

4.  Huburi pentru cablaje - Sunt echipamente utilizate pentru extinderea zonei deacoperire a reţelei. De exemplu, într-un LAN pe fire torsadate, toateechipamentele sunt conectate într-o configuraţie de tip stea într-un hub, careeste de obicei localizat într-un dulap închis. Un hub suportă de la 8 la câtevasute de staţii. Deoarece distanţa limită între huburi este de approximativ 100 demetri, proiectanţii utilizează deseori cabluri de interconectare de tip superior (celor 10Base-T) pentru a mări distanţa între huburi.

5.  Repetitoare - Acestea sunt echipamente ce amplifică semnalele pentru a mări

distanţa fizică pe care poate acţiona un LAN.6.  Pun ţ i (eng. bridge) - conectează 2 sau mai multe LAN-uri la nivelultransmiterii pachetelor de date. Ele prelucrează datele în funcţie de adresadestinatarului şi adresa expeditorului.

7.  Rutere (eng. router )  - sunt echipamente de dirijare a traficului de date. Eleînţeleg protocolul folosit în transmisia datelor şi pot traduce protocoale, putândfi folosite la conectarea a două reţele de calculatoare.

8.  Por  ţ i (eng. gateway) - sunt echipamente utilizate pentru conectarea unor reţelede calculatoare care folosesc protocoale diferite.

Din punct de vedere software, accesul la blocurile de instrucţiunispecializate în comanda şi controlul unităţilor de disc, imprimantelor  şi a altor 

 periferice este asigurat de către sistemul de operare al reţelei (NOS- eng.  Network Operating System). Un NOS este un software de reţea ce permite reţelei să suportecapabilităţi multiproces (eng. multitasking ) şi multiutilizator (vezi capitolul 2). Deasemenea un NOS ofer ă posibilităţi deosebite pentru partajarea resurselor şi pentrucomunicare. Cele mai cunoscute NOS-uri sunt: Microsoft LAN Manager, Novell

 Netware, IBM LAN Server etc.În afar ă de NOS-urile tradiţionale, recent s-au evidenţiat modelul "client-

server" şi modelul "de la egal la egal" (eng.   peer - to - peer ). Aceste soluţiiutilizează atât sistemul de operare local al staţiei cât şi NOS-ul.

O arhitectur ă client-server este un model de calcul în care aplicaţiilesoftware sunt distribuite între entităţile din LAN. Clienţii solicită informaţia de laserverul (serverele) din reţea ce stochează datele şi/sau programele, partajareaacestora fiind asigurată de NOS. În acest model, un sistem de calcul din reţea estefie server, fie client. Realizarea unor prelucr ări cu ajutorul serverului (de ladistanţă) este realizată prin utilizarea apelurilor RPC (eng.   Remote ProcedureCall ). Alte metode pentru realizarea aplicaţiilor client-server sunt: interfaţa de

 programare a aplicaţiilor: API (eng.  Application Programming Interface), serverulde baze de date (eng. data base), utilizarea ferestrelor la distanţă.

Page 54: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 54/96

  54

Reţelele bazate pe modelul "de la egal la egal" suportă comunicaţiiledirecte între utilizatori şi sunt de dimensiune mică. Fiecare calculator din reţea

 poate fi, în acelaşi timp, şi client şi server. Cele mai cunoscute sisteme de operareîn reţele "de la egal la egal" sunt: Microsoft Windows, Lantastic etc.

3.1.7. Modelarea sistemelor digitale Aplicaţiile 2.3.2 şi 2.3.3 au considerat adunarea bit cu bit, respectiv

compararea numerelor binare de câte două cifre. Circuitul care implementează evaluarea unei funcţii booleene (în formă simplificată; a se vedea aplicaţia 2.3.1)este unul de tip combinaţional: ieşirea la momentul t depinde numai de intr ările lamomentul t. Această secţiune va prezenta mai multe modele, in general de tip

 boolean, pentru unele componente hardware ale sistemelor de calcul numeric. Seconsider ă a fi circuite combinaţionale primare – numite şi  por  ţ i, următoarelecircuite: AND (⊗), OR (⊕), NOT (∇), NAND = NOT AND şi XOR (Ξ). Circuitele

AND, OR, NAND pot avea două sau mai multe intr ări, circuitul NOT are o singur ă intrare, iar circuitul XOR are două intr ări. Pentru aplicaţii sunt utile şi circuitelecare reprezintă constantele 0 (circuit inactiv) şi 1 (circuit activ). Practic, un circuitcombinaţional este reprezentat de o structur ă arborescentă de por ţi (ieşirile unei

 por ţi la momentul t+k, k ≥1 nu pot fi intr ări pentru o poartă la momentul t). Intr ărileunei por ţi, in general, îşi schimbă valoarea de-a lungul timpului de funcţionare acircuitului, în funcţie de semnalul de intrare. Totuşi unele intr ări pot fi constante.Complexitatea unui circuit este dată de numărul de por ţi (a se revedea aplicaţia2.3.1). Funcţia booleană care implementează funcţionarea circuitului combinaţional

o vom numi func ţ ie de transfer . Consider ăm că un circuit cu mulţimea intr ărilor X,mulţimea ieşirilor Y şi funcţia de transfer f, f: X → Y, este un sistem digital.Evident, pentru sistemele de calcul, X, respectiv Y sunt mulţimi de secvenţe binare. 

Cu notaţiile din secţiunea 2.3, dacă a şi b sunt variabile booleene atuncifuncţiile de transfer ale circuitelor AND, OR, NAND, XOR  şi NOT acţionează astfel: AND(a,b)= ab, OR(a,b) = a+b, NAND (a,b) = (ab)', XOR(a,b)= a'b+ab';

 NOT(a)=a', NOT(b)=b'.Sistemele digitale complexe sunt fie circuite combinaţionale, fie

ansambluri de sisteme digitale conectate în serie sau paralel. Fie S1 = (X1, Y, f), Y⊆ Y1 şi S2 = (Y1, Z, g) două sisteme digitale conectate în serie. Rezultatul obţinuteste sistemul digital S = (X1, Z, h = g ° f) unde prin ° am notat compunereafuncţiilor. Fie S1 = (X1, Y1, f 1) şi S2 = (X2, Y2, f 2) sisteme digitale. Prin conectareaîn paralel a sistemelor S1  şi S2 obţinem sistemul S = (X1xX2, Y1xY2, f), unde xdesemnează produsul cartezian, iar f(x,y)=(f 1(x), f 2(y)) este funcţia de transfer asistemului digital S. În general, complexitatea sistemelor digitale creşte prinutilizarea operaţiior conectare în serie, respectiv paralel. De exemplu o arhitectur ă serie-paralel a patru sisteme Si = (Xi, Yi, f i), i = 1,...,4, o constituie sistemul S =(X1xX2, Y3xY4 f) unde f = h2  ° h1, unde h1 este funcţia de transfer a sistemului

  paralel (S1, S2), iar h2 este funcţia de transfer a sistemului paralel (S3, S4). Se

 presupune că mulţimile care intervin în construcţiile de mai sus sunt bine formate.

Page 55: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 55/96

σ 

Fig. 3.4. Recursia

Sistemele digitale devin şi mai complexe ca funcţionalitate, dacă adăugămo nouă operaţie, numită recursie: Fie circuitul S =(XxZ, YxZ, (f 1, f 2)), cu f 1 : X x Z → Y, f 2 : X x Z → Z. Prin recursie se obţine sistemul R = (X, Y, h), undeh(x) = f 1 (x, f 2(x, z)), iar f 2 verifică condiţia z = f 2(x,f 

2(x, z)). Trebuie observat că pentru o intrare x

constantă, circuitul poate produce mai multe ieşiri, înfuncţie de starea internă (modelată prin elementelemulţimii Z) şi funcţia f 2. Se spune că autonomia unuisistem S creşte prin includerea acestuia într-o recursieR.

55

Fig. 3.5. Subciclu 

Într-o reprezentare grafică, se remarcă prezenţa unui ciclu σ (figura 3.4). Orecursie A (deci un ciclu σ1) poate fi sub-recursie a recursiei B (cu ciclul σ2). Sespune că ciclul σ1 este subciclu al ciclului

σ2. Figura 3.5 ilustrează o astfel desituaţie.

Cadrul cel mai general este cel alsistemelor digitale de ordinul n, definitecu ajutorul următoarelor reguli:

(R1) Orice circuit combinaţional(f ăr ă cicluri) este este un sistem digital deordinul 0;

(R2) Un sistem digital A deordinul n+1 se obţine dintr-un sistemdigital B de ordinul n prin adăugarea unuiciclu care include toate cele n cicluri alesistemului B.

(R3) Orice sistem digital deordinul n (n ≥ 0) se obţine numai prinaplicarea regulilor R1 şi R2.

Există o puternică corespondenţă între componentele unui sistem de calculşi sistemele digitale de ordinul n: Circuitele combinaţionale (f ăr ă autonomie) suntsisteme digitale de ordin 0 [decodoare, codificatoare simple/cu prioritate,multiplexoare şi demultiplexoare, sumatoare, circuite de deplasare, multiplicatoare,UAL, etc.]; circuitele de memorie (cu autonomie pe stări) sunt sisteme digitale deordinul 1 [registre, RAM etc.]; automatele finite (cu autonomie comportamentală)sunt sisteme digitale de tipul 2; procesoarele (cu autonomie pe interpretarea stărilor interne) sunt sisteme digitale de ordinul 3, iar un calculator (ca ansamblu) este unsistem digital de ordinul 4.

Page 56: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 56/96

  56

Alte modele teoretice ale sistemelor de calcul sunt: RAM (eng.  Random  Access Machine) pentru sisteme de calcul secvenţiale şi PRAM (eng.  Parallel  Random Access Machine).

Modelul RAM constă dintr-o unitate de memorie, o unitate de bandă deintrare cu tipul de acces numai citire (eng. read only), o bandă de ieşire cu accesnumai în scriere (eng. write only) şi un program care nu poate fi modificat. Lafiecare citire/scriere se avansează cu o singur ă poziţie.

Modelul PRAM este utilizat pentru a descrie sistemele de calcul paralele.Presupunem că se utilizează p procesoare care partajează o memorie ce poate ficentalizată sau distribuită. Procesoarele lucrează sincron pe baza ciclurilor IPO(eng. input-processing-output ), dar pe baza unei opţiuni de acces dintre: ER (eng.exclusive read ) - cel mult un processor poate citi de la o anumită adresă dememorie. EW (eng. exclusive write) - cel mult un processor poate scrie la o adresă de memorie, CR (eng. concurrent read ) - mai multe procesoare pot citi simultan dela aceeaşi adresă în acelaşi ciclu IPO şi CW (eng. concurrent write) care permite ca

mai multe procesoare să scrie la aceeaşi locaţie de memorie, în acelaşi ciclu IPO.Se obţin, astfel, mai multe variante de modele: EREW-PRAM (cutire şi scriereexclusivă), CREW-PRAM (citire concurentă  şi scriere exclusivă), ERCW-PRAM(citire exclusivă  şi scriere concurentă) şi CRCW-PRAM (citire şi scriereconcurentă). Conflictele generate de scrierea concurentă se pot rezolva prin regulide tipul: comun (eng. common) - se memorează acceaşi valoare la locaţia accesată simultan; arbitrar (eng. arbitrary) - se memorează una dintre valori, iar celelaltesunt ignorate; minimal (eng. minimum) - se stochează valoarea scrisă de procesorulcu cel mai mic indice, şi prioritar (eng. priority) - se memorează o valoare obţinută  prin aplicarea unei funcţii associative de prelucrare a tuturor valorilor produse de procesoarele ce funcţionează concurrent.

Din punct de vedere software se remarcă paralelismul de date (în cazulstructurilor de date degulate) şi paralelismul de control (baza pe taskuri în cazulstructurilor de date neregulate, de exemplu: procesarea pipeline).

În general, proiectarea calculatoarelor paralele porneşte de la problema particular ă care trebuie rezolvată  şi de limitarea numărului de conexiuni posibileale elementelor de procesare. Sunt trei categorii de reţele de conectare: fiecareelement este conectat direct cu oricare altul; fiecare element este conectat printr-o

  punte de legătur ă (eng.  switchboard ) cu oricare altul şi, fiecare element este

conectat doar cu anumite unităţi de procesare în funcţie de algoritmul de rezolvarea problemei.

Un model cu totul spectaculos este cel bazat pe reţele neurale artificiale(eng. artificial neural networks) care învaţă să resolve anumite probleme în urmaunui process de instruire de tip supervizat sau nesupervizat. Astfel de sisteme suntsimulate folosind calculatoare paralele de uz general pentru a rezolva probleme dincele mai diferite domenii: recunoaşterea şi clasificarea formelor (eng.  patternrecognition and classifcation), recunoaşterea şi sinteza vorbirii (eng.  speech

 processing ), analiza imaginilor medicale (eng. medical image processing) etc.

Page 57: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 57/96

  57

 3.2. Resursele logice ale sistemelor de calcul

3.2.1 Introducere în sisteme de operare

Un sistem de operare este "o colecţie organizată de programe de control şiserviciu, stocate permanent într-o memorie principală sau auxiliar ă, specificetipurilor de echipamente din componenţa unui sistem de calcul, având ca sarcini:optimizarea utilizării resurselor, minimizarea efortului uman de programare şiautomatizarea operaţiilor manuale în cât mai mare măsur ă, în toate fazele de

 pregătire şi execuţie a programelor".Sistemul de operare pune la dispoziţia utilizatorilor (operatori,

  programatori etc.) şi o interfaţă concretizată într-un interpretor al comenzilor utilizatorului exprimate cu ajutorul unui limbaj de comand ă . Toate sistemele de

operare moderne (UNIX, System, Windows etc.) ofer ă  şi o interfaţă grafică,comenzile fiind selectate din meniuri ierarhice folosind dispozitive de interacţiunegrafică sau tastatura. Totuşi, puterea limbajului de comandă nu poate fi atinsă numai cu ajutorul elementelor grafice.

Interfaţa dintre sistemul de operare şi programele utilizatorului (numite şilucr ări - eng.  jobs) este asigurată de o colecţie de "instrucţiuni extinse" alesistemului de operare numite apeluri sistem. Folosind apeluri sistem (organizate în

 biblioteci statice (.lib) sau dinamice (.dll)), un program utilizator poate crea, utilizaşi şterge diverse obiecte gestionate de către sistemul de operare. Cele maiimportante obiecte gestionate de un sistem de operare modern sunt  procesele  şi

 fi şierele. De asemenea, firele de executare (eng. threads) sunt obiecte specifice programării concurente (de exemplu folosind limbajul Java), dar  şi ca modalitatede implementare a proceselor Windows prin programare multi-fir (eng. multi-thread programming ).

Procesul (eng. task ) reprezintă conceptul cheie al oricărui sistem deoperare. Un proces este o entitate dinamică  care corespunde unui program înexecu ţ ie. Procesele sunt fie procese sistem, fie procese utilizator. Procesele sistemsunt asociate unor module ale sistemului de operare, iar procesele utilizator suntasociate unor programe utilizator care pot să creeze alte procese utilizator sau să 

lanseze pentru executare procese sistem. Un proces (numit  proces tat ă ) poate creeaunul sau mai multe procese (numite   procese fiu sau descenden ţ i). În sistemelemultiutilizator fiecare proces este caracterizat de identificatorul proprietarului(utilizatorului).

Un fişier (eng.  file) este un şir de caractere terminat printr-o marcă desfâr şit de fişier (EOF - eng.  E nd O  f File). Fişierul poate fi stocat pe disc, înmemorie etc. Una din funcţiile importante ale unui sistem de operare este aceea dea “ascunde” dificultatea lucrului cu echipamentele periferice. Astfel, sistemul deoperare ofer ă apeluri sistem pentru lucrul cu fişiere: creare, ştergere, citire, scriereetc. Fişierele pot fi grupate într-un catalog (eng. directory, folder ) şi pot fi

Page 58: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 58/96

  58

caracterizate de anumite atribute (proprietar, dimensiune, data ultimului acces înscriere, coduri de protecţie etc.).

Modulele software pentru tratarea cererilor de intrare/ieşire de cătresistemul de operare se numesc drivere. Fiecare dispozitiv periferic are asociat undriver. În general, orice driver menţine o coadă a cererilor de intrare/ieşire lansatede unul sau mai multe procese şi pe care le prelucrează într-o anumită ordine (înfuncţie de momentul lansării cererii sau conform unei liste a priorităţilor). Undriver este r ăspunzător de satisfacerea cererilor de transfer de informaţie, detratarea erorilor ce pot apărea la realizarea unei operaţii fizice, ş.a. Un programutilizator poate efectua operaţii de intrare/ieşire la nivelul unui driver, totuşi

 programul său nu mai este independent de dispozitiv. De aceea, pentru operaţiile deintrare-ieşire se utilizează apelurile sistem sau diferitele proceduri specializate pusela dispoziţie de mediile de programare.

Primele sisteme de operare realizau prelucrarea pe loturi de programe (eng.batch mode). Utilizatorul nu comunica direct cu sistemul de calcul; acesta

funcţiona sub controlul unui operator uman specializat. Operatorul avea sarcina dea asigura resursele externe necesare unei lucr ări (montarea benzilor magnetice, pornirea şi oprirea diverselor echipamente periferice). De asemenea, operatorulasigura şi introducerea lucr ărilor în sistem. Comunicarea operaţiilor de executat, serealiza prin intermediul unei interfeţe de tip alfanumeric ce utiliza un limbaj decomandă pentru descrierea ordinelor adresate sistemului, precum şi pentruspecificarea acţiunilor necesare tratării erorilor.

Primele sisteme de acest tip funcţionau în regim de monoprogramare, unsingur program fiind încărcat în memorie la un moment dat. Caracteristica de bază a acestui mod de prelucrare o reprezintă imposibilitatea intervenţiei utilizatorului

 pentru a interacţiona cu programul său.Dintre conceptele implementate pentru creşterea performanţelor şi mărirea

eficienţei utilizării resurselor sistemelor de calcul, un rol important l-a avutmultiprogramarea. În sistemele cu multiprogramare, la un moment dat, în memoriese află încărcate, pentru executare, mai multe procese (programe în executare), ceconcurează, pe baza unei scheme de priorităţi, pentru accesul la anumite resurse alesistemului. Când o resursă este retrasă unui proces (la încheierea acestuia sau laapariţia unui proces cu prioritate mai mare), aceasta poate fi imediat alocată unui

 proces solicitant.

Sistemele cu multiprogramare sunt din ce în ce mai complexe. Ele au derezolvat probleme dificile privind: alocarea optimă a resurselor, evitareainterblocărilor, protecţia utilizatorilor (între ei) şi protecţia sistemului (în raport cuutilizatorii).

În sistemele uniprocesor, execuţia mai multor programe în regim demultiprogramare pare simultană din punctul de vedere al utilizatorului, dar la unmoment dat, există doar un singur proces activ în sistem. Totuşi, în sistemelemultiprocesor sau multicalculator, două sau mai multe procese pot fi activesimultan, ele fiind prelucrate de procesoare diferite.

Un alt mecanism important este multiprocesarea. Acesta constă înmultiprogramarea a două sau mai multe procese având un obiectiv comun. Într-un

Page 59: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 59/96

  59

 sistem de operare multiproces (eng. multitasking ) procesele pot comunica între eleşi îşi pot sincroniza activităţile. Sistemele Microsoft bazate pe tehnologia NT,sistemele UNIX şi Linux sunt sisteme de operare multiproces. Conceptul dememorie virtual ă  este, de asemenea, foarte important în contextul sistemelor deoperare moderne.

Mulţimea funcţiilor  şi modul de realizare a acestora definesccaracteristicile unui sistem de operare. Aceste caracteristici pot fi utilizate pentru aclasifica şi compara sistemele de operare. Cele mai importante caracteristici sunt: i)modul de introducere a programelor în sistem [introducere serială, paralelă,respectiv la distanţă]; ii) modul de planificare a proceselor [orientare pe lucr ări;orientare pe proces]; iii) numărul de programe prezente simultan în memorie[monoprogramare; multiprogramare]; iv) modul de utilizare a resurselor [alocarecompletă; timp real; partajare]; v) numărul de utilizatori ce pot folosi sistemul înacelaşi timp [monoutilizator; multiutilizator]. 

Referitor la modul de utilizae a resurselor, când resursa partajată este

timpul unităţii centrale, sistemul de operare devine cu timp partajat  (eng. time sharing ). În general, sistemele de operare din această clasă asigur ă utilizareaeficientă a resurselor sistemelor de calcul conversaţionale în care accesul laresursele sistemului poate fi:

a) direct  - pentru asigurarea unui control direct şi permanent asupra unuiset de terminale pe baza unui program utilizator; un caz particular al acestor sisteme îl reprezintă sistemele interactive în timp real, în cadrul cărora se cere ovaloare maximă prestabilită a timpului de r ăspuns;

 b) multiplu - pentru accesul simultan, al unui număr mare de utilizatori, laresursele hardware şi software ale sistemului; acest tip de acces apare când sunt cel

 puţin două terminale în sistem, iar fiecare utilizator lucrează cu programul său într-o regiune de memorie (partiţie) diferită de regiunile celorlalţi utilizatori, protejată 

 printr-un mecanism software sau hardware;c) în timp partajat (time-sharing ) - în care alocarea timpului de acces se

realizează pe baza unor cuante de timp fixe sau variabile, de ordinulmilisecundelor, utilizatorii având impresia că lucrează simultan cu sistemul;

d) la distanţă - în care prelucrarea se produce de către mai multecalculatoare asupra datelor care sunt distribuite în mai multe colecţii de datedispersate geografic (eng. distributed data bases).

3.2.2. Ini  ţ iere în utilizarea sistemelor de calcul bazate pe UNIX 

Un sistem de operare, în forma cea mai simplă, apare ca o colecţie de proceduri cu funcţii precise şi cu o interfaţă bine precizată între acestea. Serviciile(apelurile sistem) furnizate de sistemul de operare, sunt solicitate prin încărcareaanumitor registre (ale UCC) cu informaţia necesar ă sau depunerea acesteiinformaţii în memoria stivă  şi apoi “provocarea” unei întreruperi cunoscută subnumele apel supervizor sau apel nucleu. Acest apel determină trecerea sistemului

de calcul din mod utilizator  în mod nucleu (supervizor) şi transfer ă controlulsistemului de operare. Sistemul de operare analizează parametrii apelului pentru a-l

Page 60: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 60/96

  60

identifica, iar apoi apelează procedura de serviciu necesar ă. Această descrieresugerează scheletul unui sistem de operare: i) un program ce invocă o procedur ă deserviciu; ii) o bibliotecă de proceduri de serviciu ce corespund apelurilor sistem şiiii) o bibliotecă de proceduri utilitare pentru procedurile de serviciu.

Tendinţa în realizarea sistemelor de operare moderne este de a implementacea mai mare parte a funcţiilor sistemului de operare sub formă de proceseutilizator. Pentru a solicita un serviciu, un proces utilizator (numit şi proces client )emite o cerere unui proces de serviciu, care rezolvă solicitarea şi transmiteclientului r ăspunsul. Această comunicaţie între clienţi şi procesele de serviciu esteasigurată de nucleul sistemului de operare.

Sistemul de operare UNIX a fost elaborat în anul 1969 (autori: KenThompson şi Dennis Ritchie - Laboratoarele Bell din New Jersey, SUA) şi până în

 prezent a cunoscut mai multe extensii. Pentru microcalculatoare personale, cea maicunoscută implementare este cunoscută sub numele de Linux. Cele mai importantecaracteristici ale sistemului de operare UNIX sunt:

• este un sistem de operare cu divizarea timpului, multiproces şimultiutilizator;

• asigur ă protecţia fişierelor  şi a modului de executare a programelor  prin existenţa unor parole şi drepturi (coduri) de acces;

•  promovează modularitatea aplicaţiilor;• operaţiile de intrare/ieşire sunt integrate în sistemul de fişiere, prin

realizarea aşa-numitelor intr ări/ieşiri generalizate;• unitatea de planificare este procesul;• gestiunea memoriei se face printr-un mecanism care permite schimbul

de pagini (migraţia sau eng.  swapping ) între memoria RAM şi ceaexternă, gestionându-se spaţiul afectat executării proceselor  şicontrolându-se timpul de acces al proceselor în aşteptare;

•   prin intermediul componentei SHELL, asigur ă o interfată simplă  şiinteractivă. Componenta SHELL nu este integrată în nucleul sistemuluide operare;

• este un sistem de operare portabil (fiind scris în limbajul C) activ pefoarte multe tipuri de sisteme de calcul, de la calculatoare personale

 până la calculatoare MIMD.Sistemul de operare UNIX este alc

ătuit din trei p

ăr ţi majore: nucleul, sistemul de

fişiere (ce cuprinde programele utilitare, programele aplicative şi programele degestiune a intr ărilor  şi ieşirilor) şi interfaţa cu utilizatorul (componenta SHELL).Relaţiile între cele trei componente ale sistemului se realizează prin:

• apeluri sistem;•  programe utilitare;• funcţii standard folosite de limbajul C;• subprograme de gestiune a intr ărilor/ieşirilor, furnizate odată cu

sistemul şi diferite de la un sistem de calcul la altul.

Page 61: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 61/96

  61

Sistemul de operare UNIX ofer ă utilizatorului interfeţe organizate pe trei nivele:nivelul exterior nucleului (prin programe utilitare); nivelul intermediar oferit defuncţiile din biblioteca standard C şi nivelul interior oferit de apelurile sistem.

Sistemul de operare UNIX fiind un sistem multiutilizator  şi cu divizareatimpului, impune existenţa unui utilizator special numit administrator de sistem,care ţine evidenţa utilizatorilor, stabileşte parolele şi drepturile de acces şi creează cataloagele asociate utilizatorilor.

Pentru fiecare utilizator, administratorul de sistem creează câte un catalog  propriu (eng. directory), care poate conţine atât fişiere ordinare (programe saudate), cât şi subcataloage.

Sistemul UNIX face deosebire între litere mari şi litere mici. Toate fişierelesunt structurate în cataloage, organizate arborescent, în vârful ierarhiei (la r ădăcinaarborelui) aflându-se catalogul r ădăcină (eng. root ) notat prin ‘/’.

Specificarea numelui fişierului se poate face în două moduri: absolut - pornind de la r ădăcină sau relativ - pornind de la poziţia curentă. Numele complet

al fişierului conţine şi calea de acces (catalogul din care face parte acesta).Deschiderea unei sesiuni de lucru se realizează folosind comanda login.Sistemul va solicita numele utilizatorului (eng. username) precum şi parola sa (eng.

 password ). Un utilizator poate să-şi schimbe parola folosind comanda passwd. Pentru terminarea sesiunii de lucru se utilizează combinaţia de taste CTRL+d.Pentru documentare se poate utiliza comanda man care prezintă informaţii despreanumite entităţi ale sistemului de operare. De exemplu, comanda $man man,descrie structura manualelor UNIX precum şi modul lor de consultare.

După deschiderea sesiunii de lucru, utilizatorul are acces la două grupe defişiere: fişierele create de el însuşi şi fişierele furnizate de sistem drept comenzisistem.

Executarea unei comenzi

În general, o comandă UNIX poate fi privită ca o succesiune de zoneseparate prin spaţii, de forma

comandă  op ţ iuni  expresii   fi şiere unde: "comandă" este numele propriu-zis al comenzii, "op ţ iuni" reprezintă osecventă de opţiuni (o opţiune UNIX este reprezentată printr-o liter ă precedată sau

nu de semnele "+" sau "-"), "expresii" reprezintă unul sau mai multe şiruri decaractere cerute ca argumente pentru comanda respectivă, iar " fi şiere" specifică unul sau mai multe fişiere.

Delimitarea anumitor argumente se poate face prin apostrofuri şi ghilimele.În acest sens, trebuie să se respecte următoarele patru reguli de delimitare:

1. dacă în şirul de caractere nu apare nici unul din caracterele ' sau ",atunci se poate delimita fie prin ', fie prin ";

2. dacă în şirul de caractere apare apostroful, dar nu apare caracterul " ,atunci delimitarea se poate realiza folosind caracterul ";

3. dacă în şirul de caractere apare caracterul ", dar nu apare apostroful,atunci delimitarea se realizează folosind apostrofuri;

Page 62: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 62/96

  62

4. dacă în şirul de caractere apar ambele caractere (' şi ") atunci se vautiliza caracterul de evitare “\”. Pentru prezenţa caracterului “\“ în şir,acesta se dublează.

Interpretorul de comenzi UNIX acceptă cel puţin o comandă pe linie. Dacă sedoreşte specificarea mai multor comenzi pe acelaşi rând, acestea trebuiesc separate

 prin caracterul ";".

Comenzi pentru lucrul cu procese

Sistemul UNIX permite lansarea spre executare a unei comenzi (program)la un anumit moment de timp. Comanda UNIX ce face posibil acest lucru estedisponibilă numai administratorului de sistem. Numele comenzii este at şi primeşteca argumente timpul, data, factorul de repetare a lansării, precum şi numele unuifişier care conţine comanda sau comenzile ce se vor executa. De asemenea,

folosind comenzile nice, kill şi sleep, utilizatorul poate interveni asupra proceselor din sistem pentru a le modifica starea.Comanda UNIX ce permite afişarea stărilor unor procese este ps. Cele mai

uzuale opţiuni ale acestei comenzi sunt:-e : listează toate procesele;-f  : produce o listare completă;-l : produce o listare în format lung;-p  lista : afişează date doar despre procesele specificate în listă;-t  lista : afişează date doar despre procesele terminalelor din listă;-u  list ă  : afişează date doar despre procesele utilizatorilor din listă.

Informaţiile despre fiecare proces, în formatul lung, sunt prezentate pe o linie subforma unui tabel cu următoarele coloane:

F : tipul procesului (00 - proces terminat, 01 - proces sistem, 04 - proces suspendat de părintele său, 10 - proces încărcat în memorie, dar blocat);

S :   starea procesului (R - proces în coada de aşteptare(ÎNTRERUPT), S - proces inactiv (sleep - mai puţin de 20 de secunde), I - procesinactiv (idle - peste 20 de secunde), T - proces terminat, D - proces evacuattemporar pe disc, O - proces ACTIV).

UID :  proprietarul  procesului;

PID : identificatorul  procesului;PPID : identificatorul procesului pă rinte al acestui proces;PRI :  prioritatea procesului (valoare mică înseamnă prioritate mare);TTY : terminalul de la care a fost lansat procesul (chiar dacă este lansat

de la distanţă, în urma unei sesiuni de tip telnet sau ssh.);TIME : timpul total cât a fost ACTIV;NICE : dacă  prioritatea a fost stabilită folosind comanda nice;ADDR  : adresa din memorie la care se află încărcat procesul;SZ : dimensiunea procesului;

STIME: momentul de start al procesului;CMD : comanda care a lansat procesul.

Page 63: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 63/96

  63

Comanda kill emite un semnal de tip întrerupere către un proces. Deobicei, acest semnal solicită terminarea procesului. Comanda are ca argumente unnumăr de semnal (precedat de -) şi identificatorul procesului căruia i se adresează semnalul. Semnalul este un număr între 1 şi 31 prin care este codificat tipulsemnalului de întrerupere. Cele mai importante semnale sunt:

-2 : întrerupere la apăsarea tastei DEL;-9 : oprire necondiţionată;-15 : semnal software de oprire;-16-31 : semnale definite de utilizator.

În absenţa specificării unui semnal (ci numai a identificatorului procesului),implicit este considerat semnalul 15.

O altă facilitate a sistemului de operare UNIX privind execuţia comenzilor o constituie lansarea în fundal (eng. background ) a proceselor care nu suntconversaţionale. Pentru a lansa un astfel de proces, linia de comandă trebuie să seîncheie cu simbolul "&".

Comanda sleep aşteaptă un număr de secunde înainte de a executa o altă comandă. De exemplu comanda ls poate fi lansată peste 40 de secunde folosindapelul:

$ sleep 40; ls &

Comenzi informaţionale

O mare parte din comenzile sistemului UNIX afişează şi modifică anumiteentităţi. Unele comenzi sunt numai informaţionale. Printre acestea se pot enumera:

I.1. ps  afişează starea proceselor (descrisă mai sus);I.2. who  afişează utilizatorii din sistem;I.3. logname  afişează utilizatorul curent;I.4. whodo  afişează informaţile despre utilizatori şi procese;I.5. pwd  afişează numele catalogului curent;I.6. ls  afişează conţinutul unui catalog;I.7. cal  tipăreşte calendarul pentru anul specificat;I.8. du afişează numărul de blocuri conţinute în fiecare fişier 

şi catalog specificat ca argument;I.9. ipcs  tipăreşte informaţii despre structurile active de

comunicare evoluată între procese (cozi de mesaje,semafoare, zone de memorie partajată);

I.10. df  afişează numărul de blocuri disc libere şi numărul I-nodurilor libere pentru un anumit sistem de fişiere, sau

 pentru toate sistemele de fişiere montate;I.11. file  afişează tipul unui fişier specificat (text, executabil,

catalog).

Page 64: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 64/96

  64

  Comenzi relative la fişiere şi cataloage

Comenzile UNIX ce acţionează asupra fişierelor  şi cataloagelor permitnavigarea în sistemul de fişiere (explorarea), copierea, ştergerea, fixareaatributelor, afişarea şi tipărirea fişierelor precum şi o serie de operaţii de căutare,comparare etc. Cele mai importante comenzi din această categorie sunt:

F.1. cat  afişează un fişier la ieşirea standard. Dacă suntspecificate mai multe fişiere, acestea vor fi afişateunul după altul.

F.2. pg  afişează paginat un fişier. Afişarea este întreruptă laapăsarea tastei "q".

F.3. more  afişează ecran cu ecran fişierele specificate (vezi şi pg);

F.4.  cd  schimbă catalogul curent;F.5.  mkdir  creează un nou catalog;F.6. rmdir  şterge cataloagele specificate. Acestea trebuie să fie

vide.F.7. rm  şterge unul sau mai multe fişiere. Folosind opţiunea -

r se pot şterge şi cataloage ce nu sunt vide.F.8. mv  mută sau redenumeşte fişierele şi cataloagele.

Comanda mv acţionează conform următoarelor reguli:

- Dacă sursa este un fişier existent, iar 

destinaţia este nume de fişier, atunci are locoperaţia de redenumire.- Dacă sursa este un fişier, iar destinaţia este

tot un fişier (existent), atunci fişierul existenteste înlocuit cu fişierul sursă.

- Dacă sursa este un catalog, iar destinaţia esteun nume, atunci catalogul este redenumit.

- Dacă sursa este un catalog, iar destinaţia esteun catalog existent, atunci mută catalogulsursă astfel încât să devină un subcatalog alcatalogului existent.

- Dacă sunt specificate unul sau mai multefişiere în sursă, iar destinaţia este un catalogexistent, atunci fişierele sunt mutate în acestcatalog.

F.9. cp  copiază unul sau mai multe fişiere sursă într-un fişier destinaţie. Dacă destinaţia este numele unui catalog,atunci fişierele sunt copiate în catalogul specificat.

F.10. mount/umount  creează o intrare în tabela dispozitivelor (operaţia de

montare) sau şterge intrarea din această tabelă 

Page 65: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 65/96

  65

(demontare). Montarea unui dispozitiv într-uncatalog nevid, face inaccesibil (pe durata montării)conţinutul acestuia.

F.11. chmod  schimbă modul de acces al unuia sau mai multor fişiere. Numai proprietarul unui fişier sau unutilizator privilegiat poate schimba modul de acces.

F.12. chown  schimbă proprietarul unuia sau mai multor fişiere. Numai proprietarul curent sau un utilizator privilegiat poate modifica proprietarul unui fişier.

F.13. cmp  compar ă două fişiere;F.14. diff   compar ă două fişiere şi arată modificările care trebuie

efectuate pentru a avea aceeaşi formă;F.15. diffdir  afişează diferenţele dintre două cataloage;F.16. find  caută unul sau mai multe fişiere care satisfac anumite

criterii

Comenzi relative la volume 

V.1. diskformat  iniţializează un disc (disc rigid sau dischetă) şi îlformatează conform specificaţiilor precizate în linia decomandă;

V.2. badtrk   cercetează suprafaţa discului pentru depistarea pistelor defecte;

V.3. divvy  divizează o partiţie a discului în mai multe diviziuni;

Alte comenzi 

C.1. clear  şterge ecranul (fereastra terminal);C.2. date  tipăreşte şi modifică data curentă;C.3. stty  fixează/afişează anumiţi parametri pentru terminalul

curent;C.4. fsck   verifică şi repar ă sistemul de fişiere (catalog /etc).

3.2.3. Ini  ţ iere în utilizarea PC/Windows

În ultimii ani, firma Microsoft a dezvoltat pentru calculatoare personaleinterfeţe grafice similare sistemului de operare System - MacOS (sisteme de calculApple-Macintosh) respectiv interfeţei grafice X-Window System a sistemele deoperare UNIX. Spre deosebire de interfeţele: Windows 3.1 şi Windows for Workgroups care asigur ă funcţii superioare sistemului de operare MSDOS, dar seexecută sub sistemul MSDOS, interfeţele Windows dezvoltate după 1995, pot ficonsiderate sisteme de operare pentru calculatoare personale care ofer ă însă  şi

  posibiltatea conectării în reţea a acestor calculatoare. WINDOWS NT/2000/XP

Page 66: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 66/96

  66

sunt sisteme de operare adecvate atât serverelor cât şi staţiilor de lucru dintr-oreţea.

Următoarele noţiuni sunt importante pentru operarea unui software cuinterfaţă grafică:

•  Pictogramă  (eng. icon) - un simbol utilizat pentru a reprezenta graficscopul şi/sau funcţia unei aplicaţii, catalog sau fişier.

•  Fereastr ă  (eng. window)- zonă dreptunghiular ă distinctă pe ecran,delimitată de un chenar. O fereastr ă reprezintă un obiect deschis şi estefolosită pentru a afişa informaţii (text, grafică, meniuri etc.). Pot fideschise mai multe ferestre simultan. O fereastr ă poate fi închisă (corespunde terminării aplicaţiei care a deschis fereastra),redimensionată sau mutată pe suprafaţa de lucru.

• Suprafa ţă de lucru (eng. desktop) - întregul ecran reprezentând zona delucru. Pictogramele, ferestrele şi bara de operaţii sunt afişate pesuprafaţa de lucru. A se observa că există şi un subcatalog DESKTOP

al catalogului WINDOWS.•  Bara de meniuri (eng. menu bar ) – bara orizontală conţinând numele

meniurilor disponibile.•  Bara de opera ţ ii – bara situată la baza suprafeţei de lucru prestabilite a

mediilor de tip Windows. Conţine butonul Start precum şi butoane pentru toate programele şi documentele deschise.

•  Bara cu instrumente (eng. toolbar ) – bara situată sub bara de meniuri a  programelor din Windows, care afişează un set de butoane pentruexecutarea celor mai uzuale comenzi de meniu. Barele cu instrumente

 pot fi mutate sau ancorate pe orice latur ă a ferestrei program.•  Dosar (eng. folder ) – container în care sunt stocate pe disc documente,fişiere program şi alte dosare. Sinonim pentru catalog (eng. directory).

• Subdosar – Dosar inclus într-un alt dosar; sinonim pentru subcatalog.Toate dosarele sunt subdosare ale dosarului r ădăcină.

• Scurt ă tur ă  (eng. shortcut ) - legătur ă rapidă către un obiect (fişier, discetc.). Are asociată o pictogramă specială (o mică săgeată în colţul dinstânga-jos).

• Calculatorul meu (eng. My Computer ) - program de navigare prin

resursele locale ale sistemului de calcul (discuri, imprimante, programede configurare şi de programare a lansării proceselor).• Co şul de gunoi (eng.  Recycle Bin) - un dosar special care stochează 

temporar obiectele şterse de utilizator. Dacă obiectele nu au fost şterse permanent atunci se pot reface (eng. restore).

•  Re ţ eaua local ă  (eng. Network neighborhood sau My Network places) - program ce permite explorarea nodurilor reţelei locale (LAN) din careface parte sistemul.

• Memoria Clipboard - Folosind o parte din memoria RAM, obiectele(fişiere, dosare, text, desene etc.) pot fi mutate dintr-o structur ă în alta,

  pot fi multiplicate în cadrul sistemului sau pot fi înlăturate prin

Page 67: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 67/96

  67

suprascrierea memoriei RAM. Mecanismul este disponibil în oricare  program pentru care meniul de editare ofer ă funcţiile cut (mută conţinutul în memoria clipboard), copy (copiază conţinutul în memoriaclipboard) şi paste (copiază conţinutul memoriei clipboard în loculspecificat).

Lansarea spre executare a programelor este posibilă prin intermediul comenziiRUN din meniul START, prin activarea aplicaţiei înregistrate în oricare submeniual meniului START sau prin activarea pictogramei corespunzătoare.

Sistemul de operare Windows 2000/XP dispune de o colecţie bogată decomenzi executabile în mod text. Comenzile interne MS-DOS sunt, în continuare,utilizabile. În plus sunt prezente comenzi precum cele din tabelul următor.

ASSOC afişează / modifică asocierea extensiilor fişierelor AT planifică comenzi şi programe pentru a fi executate mai

târziuCACLS afişează / modifică listele de control privind accesul la

fişiereCHKNTFS afişează / modifică verificarea discului în momentul

încărcării sistemului de operareCMD lansează o nouă instanţă a interpretorului de comenziCOLOR stabileşte culorile implicite ale consoleiCOMPACT afişează / modifică compresia fişierelor din partiţiile NTFSCONVERT converteşte volume FAT în NTFS. Nu se poate converti

discul curent.SETLOCAL iniţiază localizarea variabilelor de mediu într-un fişier batchENDLOCAL încheie localizarea variabilelor de mediu dint-un fişier 

 batchFIND caută un şir de caractere într-un fişier sau o listă de fişiereFINDSTR caută şiruri în fişiereFTYPE afişează / modifică tipurile de fişiere utilizate în lista de

asociere.GRAFTABL permite sistemului de operare să afişeze setul de caractere

extins în mod grafic.PUSHD salvează dosarul curent şi apoi îl modifică POPD reface valoarea anterioar ă acţiunii PUSHDRECOVER recuperează informaţia text de pe discuri cu defecteREPLACE înlocuieşte fişiereSTART deschide o nouă fereastr ă pentru executarea unui program

sau a unei comenziTITLE stabileşte titlul ferestrei unei sesiuni cmd.exe VERIFY solicită verificarea scrierii corecte a datelor pe disc

Page 68: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 68/96

  68

 

3.2.4. Resurse logice privind programarea calculatoarelor 

Pentru activitatea de programare sunt utile generatoarele de programe.Acestea transformă programul sursă într-un nou format. Din această categorie fac

  parte: macrogeneratorul, asamblorul (relocabil, absolut), compilatoarele,interpretoarele, editorul de legături, bibliotecarul, editoarele de texte etc.

Macrogeneratorul analizează un text sursă conţinând descrieri într-unlimbaj special şi prezintă la ieşire un fişier cu text scris în limbaj de asamblare, care

 poate fi prelucrat ulterior de asamblorul relocabil sau cel absolut.De exemplu, folosind TASM (al firmei Borland) se pot asambla programe

în format (cod) Intel. Pentru a putea avea portabilitate între sistemele de tipMicrosoft şi Linux, pentru procesoare Intel şi compatibile se poate utiliza NASM.Pentru testarea programelor scrise în limbajul MMIXAL, pentru procesorulMMIX, se poate utiliza un simulator 40 MMIX.

Programul sursă, scris de utilizator în limbaj de (macro)asamblare, esteconstituit dintr-un număr de linii. Fiecare linie conţine o instrucţiune a limbajuluide asamblare sau o directivă de macrogenerare. Rolul macrogeneratorului este de aexpanda macroinstrucţiunile existente şi a rezolva, pe cât posibil, blocurilecondiţionale.

Macrogeneratorul recunoaşte şi analizează:• directivele de control numeric (tipul bazei de numeraţie),• directivele de terminare (.END),• directivele de asamblare condiţională (.IF, .IFF, .IFT etc.),

• directivele de definire a macroinstrucţiunilor (.MACRO, .ENDM),• directivele de control (mesaje de eroare),• directivele de generare şi substituire,• directivele de apelare a macrodefiniţiilor dintr-o bibliotecă etc.Asamblorul relocabil transformă modulele sursă scrise în limbaj de

asamblare într-un modul obiect relocabil, o tabelă de simboluri şi un listing  deasamblare. Asamblorul relocabil acceptă la intrare unul sau mai multe fişiere sursă în limbaj de asamblare obţinute folosind macrogeneratorul sau scrise de utilizator.Ieşirile asamblorului constau dintr-un fişier obiect (.obj, .o, .mmo etc.), un fişier de

listare (.lst) şi o tabelă de simboluri (.map).Asamblorul absolut transformă modulele scrise în limbaj de asamblare(ieşire a macrogeneratorului sau scrise de utilizatori) într-un program executabil(.tsk, .cmd, .out, etc.)

Compilatoarele efectuează translatarea programului sursă în programobiect relocabil.

Pentru ca un astfel de modul să devină program executabil este necesar ă editarea leg ă turilor . Funcţia principală a editorului de legături (eng. Link ) este de a

40

Pentru testarea programelor se pot folosi uneltele puse la dispozitie pe pagina grupului delucru de la FHM: http://www.cs.fhm.edu/~mmix/tools/tools.html 

Page 69: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 69/96

  69

transforma şi înlănţui modulele obiect relocabile rezultate în procesul de asamblareşi/sau compilare pentru a obţine un program executabil acceptabil de programulîncărcător al sistemului de operare. În faza de editare a legăturilor pot fi incorporateşi module obiect situate în biblioteci relocabile.

Un compilator este structurat în patru componente principale: analizor lexical, analizor sintactic şi semantic, generator de cod şi optimizator. Toate acestecomponente gestionează un tabel de simboluri.

Analizorul lexical realizează o primă translatare a textului programuluisursă într-un şir de entităţi lexicale ce constituie reprezentări interne ale unor categorii sintactice precum: cuvinte cheie, identificatori, constante, delimitatori,operatori etc. Astfel, în fazele următoare se poate lucra cu simboluri de lungimefixă şi cu un număr mai mic de categorii sintactice. Analizorul lexical va completatabelul de simboluri.

Analizorul sintactic şi semantic verifică corectitudinea sintactică ainstrucţiunilor  şi colectează atributele semantice ale categoriilor sintactice din

  program. Ieşirea analizorului sintactic şi semantic o constituie o reprezentarecodificată a structurii sintactice şi un set de tabele ce conţin atributele semantice alediferitelor categorii sintactice (simboluri, constante etc.) Generatorul de cod vatraduce ieşirea analizorului sintactic şi semantic în format binar relocabil sau înlimbaj de asamblare. Optimizatorul are rolul de a prelucra ieşirea generatorului decod cu scopul de a minimiza memoria necesar ă la execuţie şi a eliminaredundanţele din corpul programului. Unele compilatoare efectuează anumiteoptimizări înainte de generarea codului.

O funcţie importantă a compilatorului constă în detectarea erorilor din programul sursă şi corectarea sau acoperirea lor.

Spre deosebire de compilatoare, interpretoarele şi execută programul odată cu traducerea programului sursă, furnizând la ieşire rezultatele programului. Mai

  precis, diferenţa faţă de un compilator este aceea că interpretorul nu produce un program obiect ce urmează a fi executat după interpreatare, ci chiar execută acest  program. Din punct de vedere structural, un interpretor se aseamănă cu uncompilator, dar forma intermediar ă obţinută nu e folosită la generarea de cod, ci pentru a uşura decodificarea instrucţiunii sursă în vederea executării ei. Este cazulinterpretorului sistemului AUTOCAD care analizează linia de comandă  şi, dacă comanda este corectă, realizează funcţia solicitată.

Un editor de texte este un program on-line (r ăspunsul imediat la comenzi),ce acceptă comenzi introduse de la terminal pentru a scrie şi/sau şterge caractere,linii sau grupuri de linii din programul sursă sau din orice fişier text.

Editoarele de texte pot lucra în mod linie şi/sau mod ecran. Ele pun ladispoziţie comenzi privind deplasarea cursorului în text (pe linie, în cadrul unui

  bloc sau în cadrul întregului fişier), manipularea blocurilor de text (marcare,deplasare, copiere, ştergere), comenzi de formatare a ieşirii etc. Exemplificăm prin

 Edit (Ms-DOS, Windows 2000), Notepad (Windows), vi sau emacs (UNIX) etc.

Page 70: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 70/96

  70

 3.3. Exerciţii

1. Se consider ă comenzile UNIX (Linux):a. ps e. df 

  b. who f. filec. pwd g. dud. ls h. cal

Alegeţi comanda UNIX (LINUX) potrivită pentru:1. afişarea numărului de blocuri conţinute în fiecare fişier / director specificat ca

argument.2. afişarea informaţiei despre spaţiul liber de pe disc3. afişarea directorului (folderului, catalogului) curent4. afişarea stărilor proceselor 5. afişarea utilizatorilor din sistem

6. afişarea conţinutului unui director (folder, catalog)7. afişarea tipului de fişier specificat (text, aplicaţie, director)8. afişarea calendarului pentru anul curent.

 Ră  spuns: (1, g), (2, e), (3, c), (4, a), (5, b), (6, d), (7, f), (8, h).

2.: Fie comenzile UNIX (Linux):a. cat i. mv

  b. pg j. mount/unmountc. more k. chmod

d. cd l. chowne. mkdir m. cmpf. rmdir n. diff g. rm o. diffdir h. cp p. find

Alegeţi comanda UNIX (Linux) potrivită pentru a realiza următoarea acţiune:9. Caută unul sau mai multe fişiere care satisfac anumite criterii10. Compar ă două fişiere11. Afişează unul sau mai multe fisiere la iesirea standard12. Copiaza unul sau mai multe fişiere sursă într-un fişier destinaţie

13. Mută sau redenumeşte fişierele şi directoarele (folderele, cataloagele)14. Şterge unul sau mai multe fişiere15. Creează un nou director (folder, catalog)16. Afişează un fişier pagină cu pagină 17. Afişează un fişier ecran cu ecran18. Schimbă modul de acces al unuia sau mai multor fişiere19. Creează / Eliberează o intrare în/din tabela dispozitivelor.20. Şterge directoarele specificate21. Schimbaă directorul (folderul, catalogul) curent

22. Afişează diferenţele dintre două cataloage23. Schimbă proprietarul unuia sau mai multor fişiere

Page 71: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 71/96

  71

24. Compar ă două fişiere şi arată modificările care trebuie efectuate pentru aavea aceeaşi formă.

 Ră  spuns: (9, p), (10, m), (11, a), (12, h), (13, I), (14, g), (15, e), (16, b), (17, c), (18,k), (19, j), (20, f), (21, d), (22, o), (23, l), (24, n).

3. Fie comenzile:a. ASSOC k. FIND

  b. AT l. FINDSTR c. CACLS m. FTYPEd. CHKNTFS n. GRAFTABLe. CMD o. PUSHDf. COLOR p. POPDg. COMPACT q. RECOVER h. CONVERT r. REPLACEi. SETLOCAL s. START

  j. ENDLOCAL t. VERIFYAlegeţi comanda Microsoft Windows 2000/XP potrivita care:25. Solicită verificarea scrierii corecte a datelor pe disc26. Deschide o fereastr ă pentru executarea unui program sau a unei comenzi27. Afişează / Modifică asocierea extensiilor fişierelor 28. Lansează o noua instanţă a interpretorului de comenzi29. Initiază localizarea variabilelor de mediu într-un fişier batch30. Recuperează informaţia de pe discuri cu defecte31. Planifică comenzi şi programe pentru a fi executate mai tarziu32. Afişează / Modifică verificarea discului în momentul incărcării sistemului

de operare33. Afişează / Modifică compresia fişierelor din partiţiile NTFS34. Salvează dosarul curent şi apoi îl modifică 35. Afişează / Modifică listele de control privind accesul la fişiere36. Stabileşte culorile implicite ale consolei37. Încheie localizarea variabilelor de mediu dintr-un fişier batch38. Caută şiruri de caractere (ASCII / UNICODE) în fişiere39. Reface valoarea anterioara acţiunii PUSHD40. Înlocuieşte fişiere

41. Afişează / Modifică tipurile de fişiere utilizate în lista de asociere42. Caută un şir de caractere într-un fişier sau o listă de fişiere43. Permite sistemului de operare să afişeze setul de caractere extins în mod

grafic44. Converteşte volumele FAT în NTFS.

 Ră  spuns: (25, t), (26, s), (27, a), (28, e), (29, i), (30, q), (31, b), (32, d), (33, g), (34,o), (35, c), (36, f), (37, j), (38, l), (39, p), (40, r), (41, m), (42, k), (43, n), (44, h).

4. Calitatea imaginii unui display este dată de: a) memorie, b) rezoluţie, c) firma

 producătoare.

Page 72: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 72/96

  72

5. Ce reprezintă rezoluţia display-ului? A) numărul de pixeli pe orizontală xnumărul de pixeli pe verticală, b) numărul de culori.

6. Unitatea de măsur ă a ecranului este:a) MB,

 b) inch,c) Hz

7. Asociaţi tatele speciale cu funcţia pe care o îndeplinesc:a) ESC (Escape) g) Print screen (PrtSc) m) Internet

  b) Tab h) Scroll Lock (ScrLk) n)E-mailc) Ctrl (Control), Alt i) Paused) Caps Lock j) Num Lock (NumLk)e) Backspace k) Winf) Enter l) Application

Lista funcţiilor este:45. Salt la următoarea zonă de tabulare46. Foloseşte / Comută spre tastaura numerică sau specială 47. Oprirea execuţiei unui program48. Oprirea defilării ecranului49. Execută o operaţie50. Întrerupe acţiunea51. Sterge caracterul aflat înaintea poziţiei curente52. Preluarea imaginii ecranului53. Se folosesc în combinaţie cu alte taste54. Blocarea tastaturii pe litere mari55. Simulează butonul drept al mausului56. Deschide meniul Start57. Accesează rapid E-mail58. Accesează rapid Internetul.

 Ră  spuns: A se vedea textul.

8. Procesorul are rolul de a: a) stoca informaţiile pe termen lung, b) controlaactivitatea altor echipamente şi de a prelucra informaţiile, c) executa programele.

9. Memoria ROM este folosită pentru: a) citire, b) scriere, c) citire-scriere.

10. Memoria RAM este folosită pentru: a) citire, b) scriere, c) citire-scriere.

11. Care memorie este mai rapidă: RAM sau ROM?

12. Determinaţi capacitatea de memorie internă a sistemului de calcul pe carelucraţi.

13. La ce se refer ă termenul de partajare cănd ne creferim la discuri şi imprimante?

Page 73: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 73/96

  73

14. Cum creaţi o dichetă sistem? În ce cazuri este aceasta utilă?

15.Enumeraţi avantajele şi dezavantajele utilizării CD/DVD-ROM-urilor.

16. Enumeraţi şi descrieţi principalele tipuri de imprimante. Evidenţiaţi principalele avantaje şi dezavantaje ale fiecărui tip.

17. Ce este un modem? Tipuri de modemuri, avantaje şi dezavantaje.

18. Ce principiu are la bază funcţionarea unui scanner? Tipuri de scanner-e,avantaje şi dezavantaje.

19. Deschideţi o fereastr ă  şi identificaţi butoanele pentru: a) închiderea uneiferestre, b) redimensionarea unei ferestre, c) minimizarea unei ferestre.

20. Aflaţi r ăspunsul la următoarele întrebări:a) Ce este o fereastr ă grup de aplicaţii?

 b) Ce sunt ferestrele de dialog?c) Cum se activează o fereastr ă de dialog?d) Cum se poate activa meniul Start?e) Ce opţiuni avem pentru crearea unui director (folder, catalog)?f) Ce opţiuni avem pentru copierea unui folder sau fişier?g) Ce opţiuni avem pentru mutarea unui folder sau fişier?h) Ce opţiuni avem pentru redenumirea unui folder sau fişier?i) Ce opţiuni avem pentru ştergerea unui folder sau fişier?

 j) La ce foloseşte o aplicaţie Explorer?

21. Se consider ă lista extensiilor:a) EXE b) TXT c) COM d) WAVe) MP3 f) MID g) BMP h) AVIi) XLS j) DBF k) PAS l) CPPm) SYS n) HLP o) GIF p) PPT

Alegeţi tipul de fişier corespunzător:59. fişier text

60. fişier aplicaţie (executabil)61. fişieri magine bitmap (hartă de pixeli)62. fişier audio63. fişier video64. fişier prezentare realizat folosind Microsoft PowerPoint65. Fişier sursă C++66. Fişier imagine, posibil animată.67. fişier bază de date68. fişier registru realizat folosind Microsoft EXCEL

69. fişier sursă Pascal70. fişier Help

Page 74: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 74/96

  74

71. fişier cu informaţii pentru sistemul de operare. Ră  spuns: Consultaţi lista de asocieri implicite: Tools/Folder Options/ File types

22. Care este diferenţa dintre formatarea fizică şi cea logică a discutrilor?23. Explicaţi necesitata existenţei registrelor procesorului?24. Asemănări şi diferenţe între componentele unui procesor SISD.25. Care este legătura între instrucţiunile aritmetice ale unui procesor  şi noţiunileteoretice prezentate în primul capitol?26. Care este diferenţă dintre un terminal serial şi un terminal memorie?27. Prin ce difer ă arhitecturile SISD şi SIMD?28. Care sunt principalele tipuri de reţele? Explicaţi difereţele dintre acestea.29. Ce asemănări şi deosebiri există între componentele hardware ale reţelelor locale?30. Care este diferenţă dintre multiprogramare şi multitasking?31. Care este diferenţa dintre un driver şi un controler (card sau cuplor)?

32. Asemănări şi diferenţe între sistemele de operare Windows de la Microsoft şidistribuţiile de Linux?33. Asemănări şi deosebiri relative la arhitecturile MIMD.34. Asemănări şi deosebiri între arhitecturile RISC şi CISC.35. Asemănări şi deosebiri între un interpretor şi un compilator.36. Comparaţie între analizorul lexical şi analizorul sintactic.37. Descrieţi principalele funcţii ale unui editor de text pentru programatori.

38. Asociaţi tastele speciale de deplasare şi prelucrare a unui text conform funcţieiîndeplinite:

a) Insert b) Delete c) Homed) End e) PageUp f) Page Downg) Left Arrow h) Right Arrow i) Up Arrow

 j) Down ArrowLista funcţiilor îndeplinite este:

72. deplasare în sus cu un rând73. deplasare în jos cu un rând74. deplasare spre stânga cu un caracter 75. deplasare spre dreapta cu un caracter 

76. mută cursorul la începutul paginii anterioare77. mută cursorul la începutul paginii următoare78. şterge caracterul indicat de către cursor 79. trece în modul de suprascriere şi invers80. mută cursorul la sfâr şitul rândului81. mută cursorul la inceputul rândului

39. Care este rolul preprocesorului mediilor de programare bazate pe C?40. Care este diferenţa dintre un limbaj de asamblare şi un limbaj de nivel mediu

sau înalt?

Page 75: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 75/96

  75

 

4. Calculatorul MMIX41

 

4.1. Instrucţiunile calculatorului MMIX

Procesorul MMIX (arhitecur ă RISC) a fost propus de D. Knuth42 (1999).Are 264 celule de memorie (a câte un octet), 28 (= 256) registre cu rol general şi 25 (= 32) registre speciale. Fiecare registru stochează 64 de biţi de date.

Celule de memorie sunt notate cu M[0], M[1], ..., M[264-1], registrele

generale sunt notate $0, $1, ..., $255, iar registrele speciale (tabelul 4.1) se numescrA, rB, ..., rZ, rBB, rTT, rWW, rXX, rYY şi rZZ.Accesul la memorie poate fi realizat la nivel de byte, wyde, tetrabyte şi

octabyte (a se revedea secţiunea 1.3), folosind notaţiile M, M2, M4 şi M8: M2[2k] =M2[2k+1] = M[2k]M[2k+1]; M4[4k] = M4[4k+1] = M4[4k+2] =M4[4k+3] =M[4k]M[4k+1]M[4k+2]M[4k+3], respectiv M8[8k] = M8[8k+1] = ... M8[8k+7] =M[8k]M[8k+1] ... M[8k+7], unde k parcurge intervalul discret de la 0 la cea maimare valoare admisă impusă de indicele folosit (exerciţiu).

Pentru uniformitate convenim să notăm M1[k] = M[k], oricare k îndomeniul permis. Dacă k ≥ 264 atunci consider ăm M[k] ≡M[k mod 264].

Fie x o secvenţă de biţi. Notăm prin s(x) întregul cu semn corespunzător secvenţei x, în reprezentarea cu complement faţă de doi. Pentru întregi f ăr ă semn,se notează cu u(x) numărul natural corespunzător secvenţei x. Consider ăm ca oadresă de memorie A este un întreg f ăr ă semn şi se evaluează întotdeauna modula264. Vom face distincţie între notaţia $k (registrul general cu indexul k) şi numărulnatural k.

O instrucţiune MMIX este stocată pe 32 de biţi interpretaţi (un tetrabyte),fiecare dintre cei patru bytes având semnificaţie separat sau pe baza uneitransformări, în funcţie de operaţia la care se refer ă. Cei patru bytes sunt denumiţi

convenţional: OP (codul operaţiei sau opcode), X, Y, Z (operanzi consideraţiîntregi f ăr ă semn). Când instrucţiunea are numai doi operanzi, unul este X, iar celălalt este valoarea desemnată de YZ. Când este un singur operand atunci acestaeste valoarea desemnată de XYZ.

Calculatorul MMIX dispune de următoarele seturi de instrucţiuni:

41 Pentru resurse şi informaţii actualizate verificaţi în mod regulat pagina web a autoruluiacestui proiect deosebit: http://www-cs-faculty.stanford.edu/~knuth/mmix.html42

D. Knuth (1999), MMIXware. Lecture Notes in Computer Science, 1750, Springer Verlag.

Page 76: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 76/96

  76

încărcare şi stocare (tabelul 4.2) operaţii aritmetice (tabelul 4.3)instrucţiuni condiţionale (tabelul 4.4) operaţii la nivel de bit/octet (tabelul

4.5)instrucţiuni imediate (tabelul 4.6) instrucţiuni de salt (tabelul 4.7)operaţii în virgulă mobilă/fixă (tabelul

4.8)

instrucţiuni avansate (tabelul 4.9)

Instrucţiunile de încărcare folosesc mnemonice LoaD cu sau f ăr ă semn pentru bytes, wydes, tetrabytes and octabytes. Când un byte, wyde sau tetrabyte cusemn este convertit într-un octabyte cu semn atunci bitul de semn este extins latoate poziţiile din stânga. Similar, instrucţiunile de stocare folosesc mnemoniceStore (tabelul 4.2). Dacă $Y şi $Z sunt utilizaţi în formarea adresei atunci A ← (u($Y) + u($Z)) mod 264.

Tabelul 4.1. Registre MMIX speciale

Cod

  Nume Descriere Salvabil? Permitescriere?

0 rB Registru  Bootstrap pentru devieri (trip:deviere - redirectare către codulutilizatorului)

Da Da

1 rD Registrul de deîmpă r  ţ it  (folosit deinstrucţiunea DIVU, pentru ca deîmpăr ţitulsă fie pe 16 bytes şi împăr ţitorul pe 8

 bytes.)

Da Da

2 rE Registrul epsilon folosit în legătur ă cuanumite operaţii în virgulă mobilă.

Da Da

3 rH Registrul pentru instrucţiunea MULU: jumătatea superioar ă a produsului a două valori pe câte 8 bytes este stocată în rH(himult ).

Da Da

4 rJ Registrul de revenire (return-jump) utilizatîn programarea procedurală.

Da Da

5 rM Registrul Multiplex Mask   Da Da6 rR  Registrul Rest (pentru instrucţiunea DIVcare formează atât câtul cât şi restul)

Da Da

7 rBB Registrul  Bootstrap pentru întreruperi(trap: întrerupere – controlul redirectatcătre codul sistemului de operare)

Da

8 rC Contor de cicluri (registru ceas) : seincrementează continuu.

9 rN  Număr serial (fiecare calculator MMIX areun număr unic)

10 rO Deplasamentul stivei de registre (stack 

Page 77: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 77/96

  77

offset)11 rS Indicatorul stivei de registre (stack pointer)12 rI Contor de interval (descreşte şi provoacă 

întrerupere când ajunge la zero)13 rT Registrul de adresă Trap: Trap Address 

14 rTT Registrul Dynamic Trap Address 15 rK  Registrul Interrupt Mask  16 rQ Registrul Interrupt Request  17 rU Contor de utilizare (se incrementează la

întâlnirea unor coduri specificate)18 rV Registru de translatare virtual ă  (utilizat

 pentru conversia celor 264 adrese virtuale, laadresele locaţiilor fizice ale memorieiinstalate).

19 rG Registrul de  prag   global : Registrul $k este global  dacă k  ≥ rG. Valoara lui rG esteîntotdeauna între 32 şi 255 (inclusiv).

Da

20 rL Registrul de   prag local (precizează câteregistre locale sunt active la un momentdat): Registrul $k este local  dacă k < rG.Dacă rL ≤ k < rG atunci registrul $k senumeşte marginal .

Da

21 rA Registrul de stare aritmetică ce evidenţiază următoarele condiţii excepţionale: integer 

divide check  (D), integer overflow (V),  float to fix overflow (W), invalid floating operation (I),   floating overflow (O), floating underflow (U),  floating division by zero (Z) şi   floating inexact (X). rA estecompus din biţi de eveniment şi biţi deactivare.

Da Da

22 rF Registrul Failure Location  Da23 rP Registrul de predicţie Da Da

24 rW registrul Where-Interrupted (trip) Da Da25 rX Registrul de executare (trip) Da Da26 rY Registrul operandului Y (trip) Da Da27 rZ Registrul operandului Z (trip) Da Da28 rWW Registrul Where Interrupted (trap) Da29 rXX Registrul de executare (trap) Da30 rYY Registrul operandului Y (trap) Da31 rZZ Registrul operandului Z (trap) Da

Page 78: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 78/96

  78

 Tabelul 4.2. Instrucţiuni de încărcare şi stocare

Cod Sintaxa Descriere Registrespecialeutilizate

#80 LDB $X, $Y,$Z

s($X) ← s(M1[A]); cu conversie de labyte la octabyte şi păstrarea valorii.

 NU

#84 LDW $X, $Y,$Z

s($X) ← s(M2[A]); cu conversie de lawyde la octabyte şi păstrarea valorii.

 NU

#88 LDT $X, $Y, $Z s($X) ← s(M4[A]); cu conversie de latetra la octabyte şi păstrarea valorii.

 NU

#8C LDO $X, $Y,$Z

s($X)← s(M8[A]); transfer de octabyte.  NU

#82 LDBU $X, $Y,$Z

u($X) ← u(M1[A]); cu conversie de launsigned  byte la unsigned  octabyte  şi

 păstrarea valorii.

 NU

#86 LDWU $X, $Y,$Z

u($X) ← u(M2[A]); cu conversie de launsigned wyde la unsigned octabyte  şi

 păstrarea valorii.

 NU

#8A LDTU $X, $Y,$Z

u($X) ← u(M4[A]); cu conversie de launsigned  tetrabyte la unsigned octabyte şi păstrarea valorii.

 NU

#8E LDOU $X, $Y,

$Zu($X) ← u(M8[A]); transfer de unsigned

octabyte.

 NU

#92 LDHT $X, $Y,$Z

u($X) ← u(M4[A])x232; încarcă tetrabyte-ul superior în jumătatea stângă a lui $X, iar jumătatea dreaptă esteocupată cu zerouri.

 NU

#22 LDA $X, $Y,$Z

u($X) ← A; încarcă adresa specificată (ase vedea şi ADDU)

 NU

#A0 STB $X, $Y, $Z s(M1[A]) ← s($X); memorează byte.#A4 STW $X, $Y,

$Z

s(M2[A]) ← s($X); memorează wyde.

#A8 STT $X, $Y, $Z s(M4[A]) ← s($X); memorează tetrabyte.

#AC STO $X, $Y, $Z s(M8[A]) ← s($X); memorează octabyte.

 NU,

Posibildepăşiresuperioar ă 

#A2 STBU $X, $Y,$Z

u(M1[A]) ← u($X) mod 28; memorează unsigned byte.

 NU

#A6 STWU $X, $Y,$Z

u(M2[A]) ← u($X) mod 216; memorează unsigned wyde.

 NU

#AA STTU $X, $Y,

$Z

u(M4[A]) ← u($X) mod 232; memorează unsigned tetrabyte.

 NU

Page 79: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 79/96

  79

#AE STOU $X, $Y,$Z

u(M8[A]) ← u($X); memorează unsigned octabyte.

 NU

#B2 STHT $X, $Y,$Z

u(M4[A]) ← [u($X) / 232]; stochează tetrabyte-ul superior.

 NU

#B4 STCO X, $Y,

$Z

u(M8[A]) ← X; stochează o constantă 

unsigned byte ca octabyte.

 NU

Pentru fiecare instrucţiune din tabelele 4.2, 4.3, 4.4 şi 4.5 există şi variantaimediat .

Dacă sintaxa instrucţiuni, utilizează Z în loc de $Z (adică se specifică valoare constantă  şi nu un registru) atunci se generează instrucţiunea cu codulincrementat (de exemplu: STBI/STTI $X, $Y, Z are asociat codul #A1, respectiv#A9). Instrucţiunea cu codul #22 poate fi decodificată fie ca LDA, fie ca ADDU.

Tabelul 4.3. Operaţii aritmetice

Cod Sintaxa Descriere Registrespecialeutilizate43

#20 ADD $X, $Y, $Z s($X) ← s($Y) + s($Z); adunare cusemn

 NU

#24 SUB $X, $Y, $Z s($X) ← s($Y) - s($Z); scădere cusemn

 NU

#18 MUL $X, $Y, $Z s($X) ← s($Y) * s($Z); înmulţire cu

semn

 NU

#1C DIV $X, $Y, $Z [s($Z) ≠ 0] - Efectul este: s($X) ← [s($Y) / s($Z)], s(rR) ← s($Y) mods($Z).[s($Z) = 0] - Efectul este: s($X) ← 0;s(rR)← s($Y).

rR; rA: poziţionareindicator D, dacă este cazul.

#22 ADDU $X, $Y, $Z u($X) ← (u($Y) + u($Z)) mod 264;adunare f ăr ă semn

 NU

#26 SUBU $X, $Y, $Z u($X) ← (u($Y) - u($Z)) mod 264;

scădere f ăr ă semn

 NU

#1A MULU $X, $Y, $Z u(rH$X) ← (u($Y) * u($Z));înmulţire f ăr ă semn

rH

#1E DIVU $X, $Y, $Z [u($Z) > u(rD)] – Efectul este: u($X) ← [u(rD$Y) / u($Z)], u(rR) ← u(rD$Y)mod u($Z).

rD, rR 

43 Conţinutul registrelor speciale poate fi examinat folosind instrucţiunea GET. Iniţializarea

unor registre speciale (cele care permit scrierea) se poate realiza folosind instrucţiuneaPUT.

Page 80: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 80/96

  80

[u($Z) ≤ u(rD)] – Efectul este: u($X) ← u(rD), u(rR) ← u($Y). La începutuloricărui program u(rD) ≡ 0.

#28 2ADDU $X, $Y, $Z u($X) ← (u($Y) x 2 + u($Z)) mod264; înmulţeşte cu 2 şi adună, f ăr ă 

semn

 NU

#2A 4ADDU $X, $Y, $Z u($X) ← (u($Y) x 4 + u($Z)) mod264; înmulţeşte cu 4 şi adună, f ăr ă semn

 NU

#2C 8ADDU $X, $Y, $Z u($X) ← (u($Y) x 8 + u($Z)) mod264; înmulţeşte cu 8 şi adună, f ăr ă semn

 NU

#2E 16ADDU $X, $Y,$Z

u($X) ← (u($Y) x 16 + u($Z)) mod264; înmulţeşte cu 16 şi adună, f ăr ă 

semn

 NU

#34 NEG $X, Y, $Z s($X) ← Y – s($Z); complementarecu semn

 NU

#36 NEGU $X, $Y, $Z u($X) ← (Y – u($Z)) mod 264;complementare f ăr ă semn. Dacă Yeste zero atunci se scrie prescurtat

  NEG $X, $Z (respectiv NEGU $X,$Z)

 NU

#38 SL $X, $Y, $Z s($X) ← s($Y) x 2u($Z); deplasare lastânga44

 NU

#3A SLU $X, $Y, $Z u($X) ← (u($Y) x 2u($Z)) mod 264;deplasare la stânga, f ăr ă semn

 NU

#3C SR $X, $Y, $Z s($X) ← [s($Y) / 2u($Z)]; deplasare ladreapta45

 NU

#3E SRU $X, $Y, $Z u($X) ← [u($Y) / 2u($Z)]; deplasare ladreapta, f ăr ă semn.

 NU

#30 CMP $X, $Y, $Z s($X) ← [s($Y) > s($Z)] – [s($Y) <s($Z)]; comparare

 NU

#32 CMPU $X, $Y, $Z s($X) ← [u($Y) > u($Z)] – [u($Y) <u($Z)]; comparare, f ăr ă semn.

 NU

44 Notaţia x << n (în limbajele C, C++, Java, etc.) descrie deplasarea valori binare x cu n poziţiila stânga.45

Notaţia x >> n (în limbajele C, C++, Java, etc.) descrie deplasarea valori binare x cu n poziţiila dreapta.

Page 81: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 81/96

  81

Tabelul 4.4. Instrucţiuni condiţionale

Cod Sintaxa Descriere Registrespecialeutilizate

#60 CSN $X, $Y, $ZDacă s($Y) < 0 atunci $X ← $Z(copiere condiţionată – strict negativ);altfel efect nul.

 NU

#62 CSZ $X, $Y, $Z Dacă s($Y) = 0 atunci $X ← $Z(copiere condiţionată – conţinut nul);altfel efect nul.

 NU

#64 CSP $X, $Y, $Z Dacă s($Y) > 0 atunci $X ← $Z(copiere condiţionată – strict pozitiv);altfel efect nul.

 NU

#66 CSOD $X, $Y, $Z Dacă s($Y) mod 2 = 1 atunci $X ← $Z (copiere condiţionată – număr impar); altfel efect nul.

 NU

#68 CSNN $X, $Y, $Z Dacă s($Y) ≥ 0 atunci $X ← $Z(copiere condiţionată – nenegativ);altfel efect nul.

 NU

#6A CSNZ $X, $Y, $Z Dacă s($Y) ≠ 0 atunci $X ← $Z(copiere condiţionată – conţinutnenul); altfel efect nul.

 NU

#6C CSNP $X, $Y, $Z Dacă s($Y) ≤ 0 atunci $X ← $Z

(copiere condiţionată – negativ sauzero); altfel efect nul.

 NU

#6E CSEV $X, $Y, $Z Dacă s($Y) mod 2 = 0 atunci $X ← $Z (copiere condiţionată – număr 

 par); altfel efect nul.

 Nu

#70 ZSN $X, $Y, $Z Dacă s($Y) < 0 atunci $X ← $Z(copiere condiţionată – strict negativ);altfel $X← 0.

 NU

#72 ZSZ $X, $Y, $Z Dacă s($Y) = 0 atunci $X ← $Z

(copiere condiţionată – conţinut nul);altfel $X← 0.

 NU

#74 ZSP $X, $Y, $Z Dacă s($Y) > 0 atunci $X ← $Z(copiere condiţionată – strict pozitiv);altfel $X← 0.

 NU

#76 ZSOD $X, $Y, $Z Dacă s($Y) mod 2 = 1 atunci $X ← $Z (copiere condiţionată – număr impar); altfel $X← 0.

 NU

#78 ZSNN $X, $Y, $Z Dacă s($Y) ≥ 0 atunci $X ← $Z

(copiere condiţionată – nenegativ);

 NU

Page 82: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 82/96

  82

#7A ZSNZ $X, $Y, $Z Dacă s($Y) ≠ 0 atunci $X ← $Z(copiere condiţionată – conţinutnenul); altfel $X← 0.

 NU

#7C ZSNP $X, $Y, $Z Dacă s($Y) ≤ 0 atunci $X ← $Z(copiere condiţionată – negativ sau

zero);

 NU

#7E ZSEV $X, $Y, $Z Dacă s($Y) mod 2 = 0 atunci $X ← $Z (copiere condiţionată – număr 

 par); altfel $X← 0.

 NU

Conţinutul unui registru este negativ dacă bitul său cel mai din stânga este1 (bitul de semn) şi este impar dacă bitul său cel mai din dreapta este 1.

Mnemonicele care au C ca prim caracter modifică conţinutul registrului $X  prin copiere numai dacă este îndeplinită condiţia, iar cel care au Z ca prefixmodifică întotdeauna conţinutul (fie prin copiere, fie prin iniţializare cu zero).

Operaţiile la nivel de bit/octet au numeroase aplicaţii şi presupunorganizarea şirului de biţi ca un tablou liniar/bidimensional a câte 64 decomponente. În cazul bidimensional este vorba de o matrice booleana 8x8, culiniile de sus în jos reprezentând octeţii şirului de biţi de la stânga la dreapta.

Dacă operaţiile la nivel de bit sunt utile în analiza semnalelor, realizareasistemelor de operare etc., operaţiile la nivel de octet pot fi întâlnite în procesareatextelor şi grafica pe calculator, pentru a menţiona doar câteva domenii.

Dacă x şi y sunt valori de tip byte/wyde/tetrabyte sau octabyte, notăm prinxTy = max(0, x-y)

diferenţa saturată dintre x şi y. La nivel de bit vor fi folosite notaţiile and, or, xor şi not utilizate asupra algebrei Boole B = ({0, 1}, or, and, not).

Dacă x este un octabyte atunci v(x) reprezintă tabloul unidimensional cu biţii lui x, b(x) tabloul unidimensional cu datele de tip byte, w(x) tabloulunidimensional cu datele de tip wyde, t(x) tabloul unidimensional cu datele de tiptetrabyte, o(x) valoarea de tip octabyte, m(x) reprezintă matricea formată cu biţiilui x, iar mT(x) este transpusa matricei m(x).

Operaţiile mor  şi mxor între matricele booleene A = (aij)1≤i≤m,1≤ j≤n şi B =(b jk )1≤ j≤n,1≤k ≤ p conduc la matricele C = A mor B şi D = A mxor B, cu elemente

cik = (ai1 and b1k ) or (ai2 and b2k ) or ... or ( ain and bnk ),respectivdik = (ai1 and b1k ) xor (ai2 and b2k ) xor ... xor ( ain and bnk ),

unde 1 ≤ i ≤ m şi 1 ≤ k ≤ p.Toate instrucţiunile descrise mai jos admit şi forma simplificată în care în

loc de $Z se foloseşte Z.Tabelul 4.6 prezintă instrucţiunile ce utilizează constante imediate, dar 

 pentru care unul dintre operanzi este de forma YZ.

Page 83: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 83/96

  83

Tabelul 4.5. Operaţii la nivel de bit/octet/wyde/tetrabyte/octabyte/matrice

Cod Sintaxa Descriere Registrespecialeutilizate

#C8 AND $X, $Y, $Zv($X) ← v($Y) and v($Z); Ş  I bit cu bit

 NU

#C0 OR $X, $Y, $Z v($X) ← v($Y) or v($Z); SAU bit cu bit

 NU

#C6 XOR $X, $Y, $Z v($X) ← v($Y) xor v($Z); SAU exclusiv bit cu bit

 NU

#CA ANDN $X, $Y, $Z v($X) ← v($Y) and not v($Z); Ş  I cunega ţ ie bit cu bit

 NU

#C2 ORN $X, $Y, $Z v($X) ← v($Y) or not v($Z); SAU cu

nega ţ ie

bit cu bit NU

#CC NAND $X, $Y, $Z v($X) ←  not (v($Y) and v($Z)); Nega ţ ie - Ş  I bit cu bit

 NU

#C4 NOR $X, $Y, $Z v($X) ←  not (v($Y) or v($Z)); Nega ţ ie -SAU bit cu bit

 NU

#CE NXOR $X, $Y, $Z v($X) ← not (v($Y) xor v($Z)); Nega ţ ie – SAU exclusiv bit cu bit

 NU

#D8 MUX $X, $Y, $Z v($X) ← (v($Y) and v(rM)) or (v($Z)and not v(rM)); multiplexare – se aleg

 biţii din $Y sau din $Z în funcţie devaloarea 1 sau 0 a bituluicorespunzător din rM.

rM

#DA SADD $X, $Y, $Z s($X) ← s(Σ(v($Y) and not v($Z)));numărul de poziţii pe care $Y arevaloarea 1 în timp ce $Z are valoarea0.

 NU

#D0 BDIF $X, $Y, $Z  b($X) ← b($Y) T b($Z); diferenţasaturată la nivel de byte

 NU

#D2 WDIF $X, $Y, $Z w($X) ← w($Y) T w($Z); diferenţasaturată la nivel de wyde

 NU

#D4 TDIF $X, $Y, $Z t($X) ← t($Y) T t($Z); diferenţasaturată la nivel de tetrabyte

 NU

#D6 ODIF $X, $Y, $Z o($X) ← o($Y) T o($Z); diferenţasaturată la nivel de octabyte

 NU

#DC MOR $X, $Y, $Z m($X)← m($Y) mor m($Z)  NU#DE MXOR $X, $Y, $Z m($X)← m($Y) mxor m($Z)  NU

Page 84: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 84/96

  84

Tabelul 4.6. Instrucţiuni imediate YZ

Cod Sintaxa Descriere Registrespecialeutilizate

#E0 SETH $X, YZu($X)← YZ x 2

48  NU#E1 SETMH $X, YZ u($X)← YZ x 232   NU#E2 SETML $X, YZ u($X)← YZ x 216   NU#E3 SETL $X, YZ u($X)← YZ  NU#E4 INCH $X, YZ u($X)← (u($X) + YZ x 248) mod 264   NU#E5 INCMH $X, YZ u($X)← (u($X) + YZ x 232) mod 264   NU#E6 INCML $X, YZ u($X)← (u($X) + YZ x 216) mod 264   NU#E7 INCL $X, YZ u($X)← (u($X) + YZ) mod 264   NU#E9 ORH $X, YZ v($X)← v($X) or v(YZ << 48)  NU

#E9 ORMH $X, YZ v($X)← v($X) or v(YZ << 32)  NU#EA ORML $X, YZ v($X)← v($X) or v(YZ << 16)  NU#EB ORL $X, YZ v($X)← v($X) or v(YZ)  NU#EC ANDNH $X, YZ v($X) ← v($X) and not v(YZ <<

48) NU

#ED ANDNMH $X, YZ v($X) ← v($X) and not v(YZ <<32)

 NU

#EE ANDNML $X, YZ v($X) ← v($X) and not v(YZ <<16)

 NU

#EF ANDNL $X, YZ v($X)← v($X) and not v(YZ )  NU

Tabelul 4.7. Instrucţiuni de salt / ramificare

Cod Sintaxa Descriere Registrespecialeutilizate

#F0 JMP AR Salt la adresa @ + 4XYZ; aici adresarelativă se formează cu 3 octeţi: @ ← 

AR 

 NU

#9E GO $X, $Y, $Z A = (u($Y) + u($Z)) mod 264; u($X) ← @ + 4; @←A

 NU

#40 BN $X, AR  Dacă s($X) < 0 atunci @ ← AR   NU#42 BZ $X, AR  Dacă s($X) = 0 atunci @ ← AR   NU#44 BP $X, AR  Dacă s($X) > 0 atunci @ ← AR   NU#46 BOD $X, AR  Dacă s($X) mod 2 = 1 atunci @ ← 

AR  NU

#48 BNN $X, AR  Dacă s($X) ≥ 0 atunci @← AR   NU

#4A BNZ $X, AR  Dacă s($X) ≠ 0 atunci @← AR   NU

Page 85: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 85/96

  85

#4C BNP $X, AR  Dacă s($X) ≤ 0 atunci @← AR   NU#4E BEV $X, AR  Dacă s($X) mod 2 = 0 atunci @ ← 

AR  NU

#50 PBN $X, AR  Dacă s($X) < 0 atunci @ ← AR   NU#52 PBZ $X, AR  Dacă s($X) = 0 atunci @ ← AR   NU

#54 PBP $X, AR  Dacă s($X) > 0 atunci @ ← AR   NU#56 PBOD $X, AR  Dacă s($X) mod 2 = 1 atunci @ ← 

AR  NU

#58 PBNN $X, AR  Dacă s($X) ≥ 0 atunci @← AR   NU#5A PBNZ $X, AR  Dacă s($X) ≠ 0 atunci @← AR   NU#5C PBNP $X, AR  Dacă s($X) ≤ 0 atunci @← AR   NU#5E PBEV $X, AR  Dacă s($X) mod 2 = 0 atunci @ ← 

AR  NU

Deoarece pentru a rezolva probleme cu ajutorul calculatorului este nevoiede înlănţuirea etapelor de rezolvare, de ramificarea fluxului în funcţie de anumiteevenimente şi de repetarea unor secvenţe de operaţii, orice procesor trebuie să dispună de mecanisme de direcţionare a controlului.

Tabelul 4.7 descrie instrucţiunile de salt şi ramificare puse la dispoziţie de procesorul MMIX. Acestea constituie baza oricărei structuri de nivel înalt de tip if ,while, etc.

Pentru instrucţiunile BN, BZ, BP, BOD, BNN, BNZ, BNP, BEV şivariantele de tip probabilist (prefixate prin P), adresa relativă AR se formează 

numai cu doi octeţi. Spunem că astfel de salturi sunt la mică distanţă de punctulcurent, spre deoebire de JMP a cărui adresă relativă de salt este formată cu ajutorula trei octeţi.

Se recomandă  utilizarea ramifică rilor de tip probabilist ori de câte ori programatorul   ştie că  probabilitatea apari ţ iei unei ramifică ri depăşeste 0.5. Aceasta corespunde tendinţei actuale de proiectare a procesoarelor care pot anticipasalturile. Instrucţiunea GO are şi varianta de tip imediat, iar celelalte instrucţiuni

 pot executa saltul şi înapoi (având sufixul B şi codul incrementat).Operaţiile în virgulă mobilă se bazează pe principiile prezentate în

secţiunea 1.4.

MMIX permite şi reprezentarea în virgulă mobilă, în format scurt, cu 32 de biţi, dintre care 8 pentru obţinerea exponentului şi 23 de biţi pentru mantisă.Reprezentarea numerelor cu virgulă fixă presupune o poziţie fixă a virgulei. MMIXdispune de instrucţiuni de conversie între reprezentările "virgulă fixă" şi "virgulă mobilă scurtă."

Page 86: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 86/96

  86

Tabelul 4.8. Instrucţiuni MMIX folosind reprezentarea IEEE 754

Cod Sintaxa Descriere Registrespecialeutilizate

#04 FADD $X, $Y, $Zf($X) ← f($Y) + f($Z)

 NU#06 FSUB $X, $Y, $Z f($X) ← f($Y) - f($Z)  NU#10 FMUL $X, $Y, $Z f($X) ← f($Y) * f($Z)  NU#14 FDIV $X, $Y, $Z f($X) ← f($Y) / f($Z)  NU#16 FREM $X, $Y, $Z f($X)← f($Y) rem f($Z); y rem z = y-nz,

n fiind cel mai apropiat întreg de y/z. NU

#01 FCMP $X, $Y, $Z s($X) ← [f($Y)>f($Z)] – [f($Y)<f($Z)];comparare în virgulămobilă 

 NU

#11 FCMPE $X, $Y, $Z s($X)←[f($Y)>f($Z)(f(rE))]– 

[f($Y)<f($Z)(f(rE))]; comparare în virgulă mobilă în raport cu epsilon

rE

#03 FEQL $X, $Y, $Z s($X)← [f($Y) = f($Z)]  NU#13 FEQLE $X, $Y, $Z s($X) ← [f($Y) = f($Z)(f(rE))];

egalitate în virgulă mobilă în raport cuepsilon

rE

#02 FUN $X, $Y, $Z s($X) ← [f($Y) || f($Z)]; neordonareîn virgulă mobilă; este adevărat cândunul dintre operanzi este NaN.

 NU

#12 FUNE $X, $Y, $Z s($X) ← [f($Y) || f($Z)(f(rE))];neordonare în virgulă mobilă în raportcu epsilon

rE

#15 FSQRT $X, Y, $Z f($X) ← f($Z)1/2   NU#17 FINT $X, Y, $Z f($X) ← int(f($Z))  NU#05 FIX $X, Y, $Z s($X)← int(f($Z));  NU#07 FIXU $X, Y, $Z u($X)← (int(f($Z))) mod 264;  NU#08 FLOT [I]$X, Y, $Z f($X)← s($Z);  NU#0A FLOTU[I] $X, Y,

$Z

f($X) ← u($Z);  NU

#0C SFLOT[I] $X, Y,$Z

f($X)← f(T)← s($Z); T este un tetrabyteextra

 NU

#0E SFLOTU[I] $X, Y,$Z

f($X) ← f(T)← u($Z);  NU

#90 LDSF[I] $X, $Y,$Z

f($X) ← f(M4[A]); încarcă virgulă mobilă scurtă 

 NU

#B0 STSF[I] $X, $Y, $Z f(M4[A])← f($X); memoreazăvirgulămobilă scurtă 

 NU

Page 87: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 87/96

  87

Tabelul 4.9. Instrucţiuni avansate

Cod Sintaxa Descriere Registrespecialeutilizate

#F2 PUSHJ[B] $X, AR  push(X); rJ←@ +4; @← AR 

rJ, rO, rS#BE PUSHGO[I] $X, $Y,

$Z push(X); rJ←@ +4; @← A rJ, rO, rS

#F8 POP X, YZ  pop(X); @← rJ + 4*YZ rJ, rO, rS#FB SAVE $X, 0 u($X) ← context (salvarea

registrelor curente în stiva deregistre) Contextul este compus dinregistrele locale, registrele globale şiregistrele speciale. $X este unregistru global.

Suntsalvate;rL← 0.

#FA UNSAVE $Z context← u($Z); refacere contex Suntcitite

#FF TRIP X, Y, ZTRIP X, YZTRIP XYZ

Conform algoritmului de tratare adevierilor 

rB, rW,rX, rY,rZ, rJ

#00 TRAP X, Y, ZTRAP X, YZTRAP XYZ

Conform algoritmului de tratare aîntreruperilor 

rBB,rWW,rXX,rYY,

rZZ, rT,rK, rQ

#F9 RESUME 0 Reluare după întrerupere rW, rX#FE GET $X, Z u($X) ← u(g[Z]); 0 ≤ Z < 32 (codul

registrului special); g[Z] este registrulavând codul Z

g[Z]

#F6 PUT[I] X, $Z u(g[X]) ← u($Z); depunere înregistrul special g[X]

g[X]

#F4 GETA[B] $X, AR  u($X)← AR; încarcă adresă relativă   NU

#96 LDUNC[I] $X, $Y,$Z s($X) ← s(M8[A]); încarcă octabytef ăr ă depunere în memoria cache

 NU

#B6 STUNC[I] $X, $Y,$Z

s(M8[A]) ← s($X); stocare octabytef ăr ă depunere în memoria cache

 NU

#9A PRELD[I] X, $Y, $Z Probabil, octeţii de la M[A] laM[A+X] vor fi încărcaţi sau stocaţiîn viitorul apropiat

 NU

#BA PREST[I] X, $Y, $Z Sigur, octeţii de la M[A] la M[A+X]vor fi încărcaţi (scrişi) înainte de

citirea următoare

 NU

#9C PREGO[I] X, $Y, $Z Probabil, octeţii de la M[A] la NU

Page 88: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 88/96

  88

M[A+X] vor fi utilizaţi cainstrucţiuni în viitorul apropiat

#BC SYNCID[I] X, $Y,$Z

Octeţii de la M[A] la M[A+X] trebuieregăsiţi înainte de a fi interpretaţi cainstrucţiuni

 NU

#B8 SYNCD[I] X, $Y, $Z Octeţii de la M[A] la M[A+X]trebuie să fie actualizaţi în RAMînainte de a fi citiţi de altecalculatoare sau dispozitive

 periferice

 NU

#FC SYNC XYZ Sincronizare în vederea cooper ăriifiabile în procesarea paralelă 

 NU

#94 CSWAP[I] $X, $Y,$Z

Dacă u(M8[A]) = u(rP) atunciu(M8[A]) ← u($X) şi u($X) ← 1,altfel u(M8[A]) ← u(rP) şi u($X) ← 0; operaţie indivizibilă 

rP

#98 LDVTS[I] $X, $Y,$Z

încarcă starea translatării virtuale (seaplică doar sistemului de operare)

rV

#FD SWYM X, Y, ZSWYM X, YZSWYM XYZ

 Nu efectuează nici o operaţie (NOP);octeţii X, Y, Z sunt ignoraţi

 NU

În categoria instrucţiunilor avansate includem instrucţiunile pentru apel desubrutine (proceduri / funcţii), instrucţiunile pentru tratarea întreruperilor (eng.

traps) şi devierilor (eng. trips), instrucţiunile relative la registrele speciale precumşi instrucţiunile pentru procesare ultrarapidă. Instrucţiunile din tabelele de mai susavând sufixul [I] admit şi modul imediat , iar cele cu sufixul [B] specifică modul deoperare back .

4.2. Programarea calculatorului MMIX

Programele sursă MMIX (fişier text cu extensia .mms) constituite dindeclaraţii şi instrucţiuni, trebuie asamblate folosind programul mmixal care

  produce un fişier obiect (cu extensia .mmo). Interpretarea codului obiect se varealiza folosind simulatorul MMIX.

Programul poate admite argumente în linia de comandă (similar limbajelor C, C++, Java), numărul argumentelor se va stoca în $0, iar adresa de început aşirului de argumente (primul fiind numele programlui) este plasată în $1.

Instrucţiunile unui program MMIX încep întotdeauna de la locaţiasimbolică Main.

Programele MMIX conţin  simboluri (secvenţe de litere şi cifre care începobligatoriu cu liter ă), constante (zecimale – baza 10, hexazecimale – baza 16 – încep cu #), caracter (între apostrofuri), şiruri de caractere încadrate de ghilimele),

expresii şi instruc ţ iuni. Unele simboluri sunt predefinite. Există elemente primare

Page 89: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 89/96

  89

(simboluri, constante, @, expresie încadrată de paranteze, operator unar urmat deelement primar) şi termeni (unul sau mai multe elemente primare separate prinoperatori binari puternici: *, /, //, %, <<m >>, &).

Expresiile sunt formate cu operatori binari slabi: +, -, |, ^.O instrucţiune are trei câmpuri:   zona etichetei (spaţiu sau simbol),  zona

opera ţ iei OP (conform tabelelor de mai sus, sau o pseudo-operaţie MMIXAL), zona expresilor (separate prin virgulă) şi eventual  zona comentariu. Comentariilede tip linie încep cu %, ; sau //, iar cele de tip bloc sunt delimitate de /* şi */. 

Exemplul 4.1. Programul de mai jos afişează la mediul de ieşire (StdOut)mesajul compus dintr-un şir introdus în linia de comandă, spaţiu, şi BRAVO.Observaţi că #a este caracterul ASCII de trecere la linie nouă, iar #0 esteterminatorul de şir.

argv IS $1LOC #100

Main LDOU $255,argv, 0 //Incarcă octaTRAP 0, Fputs, StdOut //fara semn si TRAP

GETA $255, StringTRAP 0, Fputs, StdOutTRAP 0, Halt,0

String BYTE " BRAVO", #a, 0 

Procesul de asamblare decurge în trei paşi astfel: locaţia curentă estealiniată la multiplu de 8 (OP = OCTA), 4 (OP = TETRA sau operaţie MMIX), 2(OP =WYDE); se defineşte simbolul @ ca fiind eticheta, în afara cazului în careOP = IS sau OP = GREG. Dacă OP este o operaţie MMIX atunci zona operaţie şizona expresie definesc un tetrabyte, iar @ este incrementat cu 4. Daca OP este o

 pseudo-operaţie MMIXAL atunci se analizează operaţia şi se realizează următoarele acţiuni:a) Dacă OP = IS atunci simbolul din zona etichetei devine echivalent cu

valoarea unicei expresii prezente în zona expresiilor.  b) Daca OP = LOC atunci locaţia curentă @ devine valoarea unicei

expresii, care trebuie să aibă o valoare pur ă.c) Dacă OP = BYTE, WYDE, TETRA sau OCTA, atunci în zona

expresiilor sunt prezente mai multe expresii stocabile pe 1, 2, 4 sau 8 octeţiîncepând cu adresa indicată simbolic în zona etichetei.

d) Daca OP = GREG, atunci unica expresie evaluată la o valoare pur ă x seatribuie acelui registru global (în mod read only) al cărui cel mai mare număr nealocat încă este asociat simbolului din zona etichetă.

Un comportament important al oricărui asamblor este cel relativ laoperaţiile de intrare-ieşire. Dacă consider ăm stilul limbajului C pentru operaţiileFopen, Fclose, Fread, Fgets (extins şi la Fgetws), Fwrite, Fputs (extins şi laFputws), Fseek, şi Ftell, aceste pot fi simulate conform tabelului 4.10. Relativ laoperaţiile de intrare-ieşire, următoarele simboluri sunt predefinite în MMIXAL:Fopen = 1, Fclose = 2, Fread = 3, Fgets = 4, Fgetws = 5, Fwrite = 6, Fputs = 7,Fputws = 8, Fseek = 9, Ftell = 10, TextRead = 0, TextWrite = 1, BinaryRead = 2,

BinaryWrite = 3, BinaryReadWrite = 4. 

Page 90: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 90/96

  90

Tabelul 4.10. Operaţii de intrare-ieşire

Funcţia Mod de simulare (efect)Fopen (pointer, nume, mod) LDA $255, Arg; Trap 0, Fopen,

<pointer>, unde ARG este o secvenţă 

de doi octabytes: Arg OCTA <nume>,<mod>Fclose (pointer) TRAP 0, Fclose, <pointer>Fread (pointer, buffer, dimensiune) LDA $255, Arg; TRAP 0, Fread,

<pointer> cu doi octabytes pentrucelelalte argumente: Arg OCTA<buffer>, <dimensiune>

Fgets (pointer, buffer, dimensiune) Pointer-ul de fişier trebuie deschis cuunul din modurile TextRead,BinaryRead, BinaryReadWrite. LDA$255, Arg; TRAP 0, Fgets, <pointer>cu doi octabytes pentru celelalteargumente: Arg OCTA <buffer>,<dimensiune>

Fgetws (pointer, buffer, dimensiune) Se aplică pentru tipul wyde: LDA$255, Arg; TRAP 0, Fgetws, <pointer>cu doi octabytes pentru celelalteargumente: Arg OCTA <buffer>,<dimensiune>

Fwrite (pointer, buffer, dimensiune) Pointer-ul de fişier trebuie deschis cuunul din modurile TextWrite,BinaryWrite, BinaryReadWrite. LDA$255, Arg; TRAP 0, Fwrite, <pointer>cu doi octabytes pentru celelalteargumente: Arg OCTA <buffer>,<dimensiune>

Fputs (pointer, şir) LDA $255, şir; TRAP 0, Fputs,<pointer>

Fputws (pointer, şir) LDA $255, şir; TRAP 0, Fputws,<pointer> (se aplică pentru tipul wyde)Fseek (pointer, deplasament) Pointer-ul de fişier trebuie deschis cu

unul din modurile BinaryRead,BinaryWrite, BinaryReadWrite. Areloc poziţionarea indicatorului dearticol. LDA $255, <deplasament>;TRAP 0, Fseek, <pointer>

Ftell (pointer) Returnează poziţia curentă în fişier.TRAP 0, Ftell, <pointer>

Page 91: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 91/96

 Exemplul 4.2. Un experiment asupra şirului Fibonacci poate fi realizat folosind

 programul:Termenii şiruluiFibonacci sunt:

sp GREGfp GREGn GREG

0, 1, 1, 2, 3, 5, 8, 13, 21,34, 55, 89 etc.fn IS nLOC #100

GREG @Fib CMP $1,n,2 Termenul de rang n este

suma termenilor de rangn-1 şi n-2.

PBN $1,1FSTO fp,sp,0SET fp,spINCL sp,8*4STO $0,fp,8 f 0 = 0; f 1 = 1;STO n,fp,16 f n = f n-1 + f n-2.SUB n,n,1GO $0,Fib

STO fn,fp,24 // F[n-1]LDO n,fp,16SUB n,n,2GO $0,FibLDO $0,fp,24ADDU fn,fn,$0LDO $0,fp,8SET sp,fpLDO fp,sp,0

1H GO $0,$0,0Main SETH sp,Data_Segment>>48

SET n,5

GO $0,Fib

Presupunem că textul de mai sus este introdus folosind un editor de texte(de exemplu Edit sau NotePad) şi este salvat sub forma fibo.mms. Prin comanda:

mmixal -l fibo.lst -o fibo.mmo fibo.mmsse vor crea fişierele: fibo.lst (list -ing) şi fibo.mmo (fişierul obiect).

Fişierul fibo.lst are următorul conţinut (cititorul este invitat să observecodurile instrucţiunilor şi modul cum este asamblat programul):($254) sp GREG($253) fp GREG

($252) n GREG($252) fn IS n

LOC #100($251=#00000000 GREG @

00000100)...100: 3101fc02 Fib CMP $1,n,2...104: 5001xxxx PBN $1,1F...108: adfdfe00 STO fp,sp,0...10c: c1fdfe00 SET fp,sp...110: e7fe0020 INCL sp,8*4...114: ad00fd08 STO $0,fp,8...118: adfcfd10 STO n,fp,16...11c: 25fcfc01 SUB n,n,1

91

Page 92: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 92/96

  92

...120: 9f00fb00 GO $0,Fib

...124: adfcfd18 STO fn,fp,24 // F[n-1]

...128: 8dfcfd10 LDO n,fp,16

...12c: 25fcfc02 SUB n,n,2

...130: 9f00fb00 GO $0,Fib

...134: 8d00fd18 LDO $0,fp,24

...138: 22fcfc00 ADDU fn,fn,$0

...13c: 8d00fd08 LDO $0,fp,8

...140: c1fefd00 SET sp,fp

...144: 8dfdfe00 LDO fp,sp,0

...148: 9f000000 1H GO $0,$0,0

...14c: e0fe2000 Main SETH sp,Data_Segment>>48

...150: e3fc0005 SET n,5

...154: 9f00fb00 GO $0,Fib

Symbol table:Fib = #0000000000000100 (6)Main = #000000000000014c (1)fn = $252 (5)

fp = $253 (3)n = $252 (4)sp = $254 (2)

Fişierul fibo.mmo va fi transmis simulatorului mmix prin comanda:mmix <opţiuni> fibo

unde opţiunile descriu modul delucru permis. Câteva opţiuni sunt: -t, respective -e   pentru executarea instrucţiunii de un număr de ori sau întâlnirea unei excepţii, -l  pentru listarea liniilor sursă în timpul executării instrucţiunilor, -s pentru furnizareade statistici, -q pentru oprire, -i pentru a intra în mod interactiv, -f  pentru a

specifica fişierul utilizat pentru a simula introducerea datelor  şi -D pentru a produce un fişier utilizabil de către alte simulatoare.

Lansarea în mod interactiv a simulatorului asupra fişierului fibo.mmo(extensia nu este obligatorie) şi executarea pas cu pas a câtorva instrucţiuni

 produce ieşirea:>mmix -i fibommix>

(0000000000000148: fb0000ff (UNSAVE)) #60000000000000a0:rG=251, ..., rL=20 instructions, 0 mems, 0 oops; 0 good guesses, 0 bad

(now at location #000000000000014c)mmix>1. 000000000000014c: e0fe2000 (SETH) $254=g[254] =

#20000000000000001 instruction, 0 mems, 1 oop; 0 good guesses, 0 bad(now at location #0000000000000150)

mmix>1. 0000000000000150: e3fc0005 (SETL) $252=g[252] = #5

2 instructions, 0 mems, 2 oops; 0 good guesses, 0 bad(now at location #0000000000000154)

mmix>1. 0000000000000154: 9f00fb00 (GOI) $0=l[0] = #158, -> #100

3 instructions, 0 mems, 5 oops; 0 good guesses, 0 bad(now at location #0000000000000100) 

Page 93: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 93/96

  93

 

4.3. Exerciţii

1. Scrieţi programe MMIX pentru:• Calculul sumei primelor 100 de numere naturale.

• Calculul sumei a n numere întregi, stocate începând cu adresa ST.• Ordonarea crescătoare a unui şir de numere întregi stocate începând cuadresa ST..

• Stabilirea celui mai mare element dintr-un şir de numere întregi stocatîncepând cu adresa ST.

• Calculul produsului primelor N numere naturale nenule, N fiind dat.• Cautarea unui număr întreg într-un şir ordonat/neordonat folosind

algoritmul căutării binare/liniare.

2. Folosind descrierile de mai sus, prin analiza pas cu pas, stabiliţi ce realizeaz

ă 

următorul program MMIX46? A IS $0B IS $1n IS $2C IS $3i IS $4tt IS $5j IS $6ax IS $7bx IS $8cx IS $9

t IS $255LOC #200

Main SRU n,n,6SET tt,nSLU tt,tt,3ADDU tt,C,ttSET t,1SET i,0

S CMP t,i,nBZ t,1FSLU j,i,3LDO ax,A,j

LDO bx,B,jAND cx,ax,bxSTO cx,C,jXOR cx,ax,bxSTO cx,tt,jINCL i,1JMP S

1H TRAP 0,Halt,0

46

Ivonne Mehlfeld, S. Mehlfeld, FAUXPAS 3000,http://www.fauxpas3000.de/Kontakt.html

Page 94: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 94/96

  94

 3. Să se verifice dacă un şir de caractere este palindrom (se citeşte la fel prin

 parcurgerea de la stânga spre dreapta şi retur.)

 Ră  spuns: Programul de mai jos verifică dacă la adresa String se află, sau nu, stocatun palindrom.

s IS $0t IS $255poz IS $2test IS $5R IS $3Q IS $4

LOC Data_SegmentGREG @

String BYTE "COJOC",0%String BYTE "ELENESEDUCCUDESENELE", 0

%String BYTE "ROTITOR", 0%String BYTE "AUONAVANOUA", 0%String BYTE "PUPUPUP", 0%String BYTE "ETALATE", 0%String BYTE "ENEPURTAPATRUPENE", 0

LOC #200LDA s,String

Main LDBU t,sBZ t,sf2SET poz,s

1H LDBU t,poz

BZ t,2FINCL poz,1JMP 1B

2H SUB poz,poz,13H CMP t,s,poz

BNN t,sf2LDBU R,sLDBU Q,pozCMP test,Q,RBNZ test,sfADD s,s,1SUB poz,poz,1JMP 3B

sf SET $0,0JMP fin

sf2 SET $0,1JMP fin

Fin TRAP 0,Halt,0 

Page 95: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 95/96

  95

 

Bibliografie

1. G. Albeanu, Sisteme de operare, Editura Petrion, Bucureşti, 1996.2. G. Albeanu,  Algoritmi  şi limbaje de programare, Editura Fundaţiei  România

de Mâine, Bucureşti, 2000 (capitolul 2).3. G. Albeanu,  Programarea  şi utilizarea calculatoarelor , Editura Universităţii

din Oradea, Oradea, 2003 (capitolul 1).4. DEX’1996,  Dic ţ ionarul explicativ al limbii române, Editura UniversEnciclopedic, Bucureşti, 1996.

5. DINF’1981,  Dic ţ ionar de informatică , Editura Ştiinţifică  şi Enciclopedică,Bucureşti, 1981.

6. J. Henessy & D. Patterson, Computer Architecture: A Quantative Approach,Morgan Kaufman, 2002.

7. D. Knuth, Arta programă rii calculatoarelor , Vol. I, Editura Teora, 1999.8. D. Knuth,   Arta programă rii calculatoarelor: MMIX – un calculator RISC 

  pentru noul mileniu, Editura Teora, 2005. Se recomandă versiunea în limba

engleză: D. E. Knuth: The art of Computer programming. Fascicle 1: MMIX,Addison-Wesley, Zeroth printing (revision 15), 2004.

9. D. Knuth, MMIXware. Lecture Notes in Computer Science, Vol. 1750,Springer Verlag, 1999.

10. C.P. Popovici, S. Rudeanu, H. Georgescu,   Bazele informaticii, Vol. II,Bucureşti, 1991.

11. A.S.Tanenbaum, Organizarea structural ă  a calculatoarelor , Computer PressAgora, 1999.

12. Web1, ISBN, http://www.niso.org/standards/resources/ISBN.html

13. Web2, Ivonne Mehlfeld, S. Mehlfeld, http://www.fauxpas3000.de/Kontakt.html.14. Web3, Bar Code, http://www.itsc.org.sg/synthesis/2001/itsc-synthesis2001-jinsoon- bar-coding.pdf 

15. Web4, Wiki, http://en.wikipedia.org/wiki/.

Page 96: Filehost_Arhitectura Sistemelor de Calcul

5/12/2018 Filehost_Arhitectura Sistemelor de Calcul - slidepdf.com

http://slidepdf.com/reader/full/filehostarhitectura-sistemelor-de-calcul 96/96

 

Tehnoredactor: Grigore ALBEANUCoperta: Cornelia PRODAN

Bun de tipar: 05.02.2007; Coli tipar: 6Format: 16/70×100

Editura Fundaţiei România de Mâine Bulevardul Timişoara nr. 58, Bucureşti, Sector 6

Tel./Fax 021/444.20.91; www.spiruharet.roe-mail: [email protected]

96