SlideShare a Scribd company logo
1 of 188
Download to read offline
CURSURI LA DISCIPLINA CALCULATOARE DE BORD
1
Sistem de automatizare cu microprocesoare
Sistemul de calcul este un echipament care transformă datele de intrare în
rezultate de ieşire pe baza unui algoritm - program de calcul numeric.
2
Sisteme de intrare iesire pentru calculatoarele de bord
Subsistemul de intrare-ieşire este destinat realizării interfeţei om-maşină
sau proces-maşină.
- tastatura, mouse
- touch-screen, joystick
- camera video, microfon
- display-uri (CRT, LED),
afisoare cu LED
- afisaje HUD (Head Up
Display);
- afisaje DASH
- difuzoare
3
HUD - Head Up Display
un ecran din sticlă
transparentă dispus în
partea superioară a
panoului frontal al
cabinei, prin care
pilotul poate vedea şi
spaţiul exterior din
faţa avionului şi pe
care se proiectează
informaţiile
considerate
importante într-o
anumită etapă a
zborului
McDonnell Douglas F/A-18 Hornet - HUD
4
DISPLAYAND SIGHT HELMET – CASCA DE
AFIŞARE SI OCHIRE (DASH)
Sistemul DASH este un sistem de ochire, montat
pe casca pilotului, asigurând posibilitatea ochirii
bazate pe linia de vedere (LOS - Line of Sight) a
piloţilor
PZL TS-11 Iskra (Polish
jet trainer) - HUD
5
Sistem de achiziţie şi conducere
În domeniul automaticii, interfeţele de proces se mai numesc generic
plăci de achiziţie, nume datorat faptului că prin intermediul interfeţei de
proces se realizează şi achiziţia de date. Trebuie precizat faptul că
interfaţa de proces are nu numai funcţia de achiziţie ci şi funcţia de
prelucrare şi transmitere către exterior a semnalelor generate de
calculator.
Plăcile de achiziţie fac parte din categoria generală a plăcilor de extensie
(denumite şi plăci utilizator). Prin completarea configuraţiei unui
calculator cu elemente din categoria interfeţelor de proces (plăci de
achiziţie) şi cu software specializat se obţine un sistem de achiziţie a
datelor. Datorită existenţei funcţiilor de conducere, o denumire mai
apropiată de realitate este cea de sistem de achiziţie şi conducere.
6
O interfaţă de proces este alcătuită din trei componente de bază: conectorul,
care asigură legătura mecanică/electrică între cablajul calculatorului şi
cablajul exterior, dispozitivul de cuplare care joacă rolul de interfaţă
electrică cu senzorii şi elementele de execuţie şi adaptorul de interfaţă care
asigură conectarea la magistrala calculatorului.
Calculator cu unitate integrată de interfaţă de proces
7
Structura generală a unei interfeţe de proces definiție
O unitate de interfaţă este alcătuită din plăci şi module detaşabile care pot
realiza diferite tipuri de cuplare la proces. În principiu, fiecare dintre aceste
plăci sau module asigură funcţii care permit adaptarea sistemului de calcul la
proces.
Prin alegerea corespunzătoare a acestor module se realizează aplicaţia
concretă de achiziţie şi conducere. Aceste module flexibile asigură
funcţionalitatea interfeţei prin implementarea următoarelor subsisteme:
- intrări analogice
- ieşiri analogice
- intrări/ieşiri numerice
- numărare, temporizare (generator de intervale de timp)
8
Structura generală a unei interfeţe de proces
Structura generală a unei interfeţe de proces
9
Structura sistemului ieşirilor analogice
Sistemul de ieşiri analogice este o componentă a interfeţelor de proces
destinată transmiterii spre proces a comenzilor în formă analogică, elaborate
în urma rulării unor programe care implementează algoritmii de conducere.
Sistemul de ieşiri analogice conţine în mod necesar convertoare numeric-
analogice (CNA sau DAC – Digital to Analog Converter).
Zonele tampon T (buffere) păstrează valoarea numerică a comenzii. În unele
cazuri ieşirea CNA (semnal de tip tensiune) este convertită în semnal de
curent prin convertoare tensiune/curent U/I.
10
Sistemul de interfaţă ieşiri numerice
Acest sistem este o componentă a interfeţei de proces care este destinată
transmiterii spre proces a comenzilor numerice. Comenzile sunt de obicei în
formă binară, de tip tren de impulsuri, frecvenţă de impulsuri, durată de
impuls. Sistemul ieşirilor numerice conţine şi amplificatoare de putere şi
circuite de separare galvanică.
Sistemul de interfaţă intrări analogice
Este o componentă a interfeţei de proces destinată interfaţării sistemului
de conducere cu semnalele analogice din proces. Acestea se prezintă de
regulă sub formă de semnale de curent continuu: intensitate (0-20 mA, 2-
10 mA, 4-20 mA etc.) sau tensiune (de nivel mic: 10-20 mV, -10 – +10
mV, de nivel mediu: 0 – 10 V, 2 – 10 V, 0 – 20 V, de nivel mare 0–100 V).
11
Componentele sistemului analogic sunt:
• elementul de conectare (EC) care are rolul de a conecta la sistem
conductoarele care transportă semnalul analogic de la proces;
• elementele de tratare primară a informaţiei (ETP) destinate unor prelucrări
care nu necesită amplificare (conversii curent/tensiune, filtrare);
12
• multiplexorul (MUX) care permite selectarea unuia din cele n canale
analogice;
• amplificatorul (A) care adaptează nivelul semnalului de intrare selectat de
multiplexor şi impedanţa canalului la elementul următor;
• elementul de eşantionare şi reţinere (EER) (sau circuit Sample/Hold) care
are rolul de a păstra constantă valoarea eşantionului de tensiune pe durata
conversiei analog-numerice;
13
• convertorul analogic-numeric (CAN sau ADC – Analog to Digital
Converter) care converteşte în formă numerică valoarea analogică a
informaţiei pe canalul selectat;
• bufferul T care este necesar conectării ieşirii CAN la magistrala sistemului
de conducere;
• blocul de comandă BC care asigură coordonarea operaţiilor care se
desfăşoară în sistem.
14
Sistemul de interfaţă intrări numerice
Sistemul intrărilor numerice este un subsistem al interfeţelor de proces care
are rolul de a colecta din proces informaţiile de formă numerică (semnale
binare, tren de impulsuri) sau cvasinumerică (durată de impuls, frecvenţa
impulsurilor).
15
Principalele elemente componente ale sistemului sunt:
• elementul de conectare (EC);
• elementele de tratare primară a informaţiei (ETP) - izolare galvanică, filtrări
şi protecţii
• multiplexorul (MUX) cu ajutorul căruia se selectează un semnal sau un grup
de semnale
• bufferul de conectare la magistrală (T);
• blocul de comandă BC care asigură secvenţializarea corectă a operaţiilor din
sistemul de intrări numerice
16
A350 XWB Slat Flap Control Computer
PU-3000 series of Avionics Computers
17
Noțiuni de Arhitectura Calculatoarelor
Stocarea datelor
Calculatoarele utilizate în prezent reprezintă informaţiile ca şiruri de biţi.
Un bit (binary unit - cifră binară) reprezintă una din cifrele 0 sau 1, pe care
în acest context le vom considera mai degrabă simboluri decât numere.
Stocarea unui bit într-un calculator necesită un dispozitiv care să poată să se
afle într-una din cele două stări, ca de exemplu un întrerupător (pornit sau
oprit), un releu (deschis sau închis) sau un steag de start (ridicat sau
coborât). Una dintre cele două stări este utilizată pentru reprezentarea
simbolului 0, iar cealaltă pentru reprezentarea simbolului 1.
18
Porţi logice şi circuite basculante bistabile Definiție
Operaţiile care lucrează cu valorile adevărat/fals sunt denumite operaţii
booleene (Boolean operations), după numele matematicianului George
Boole.
Un dispozitiv care produce rezultatul unei operaţii booleene atunci când i se
aplică intrările operaţiei este denumit poartă logică (gate). Porţile logice pot
fi realizate utilizându-se o largă varietate de tehnologii, cum ar fi dispozitive
mecanice, relee sau dispozitive optice. Calculatoarele de astăzi
implementează de obicei porţile logice prin intermediul unor circuite
electronice de mici dimensiuni în care valorile 0 şi 1 sunt reprezentate prin
niveluri diferite de tensiune electrică.
19
Porţi logice şi circuite basculante bistabile scheme
20
Circuit basculant bistabil simplu
Un circuit basculant bistabil (flip-flop) este un circuit care are la
ieşire una din două valori posibile; ieşirea lui rămâne stabilă până când
un impuls temporar de la alt circuit are ca efect comutarea lui la
cealaltă valoare.
21
Circuit basculant bistabil simplu
Atâta timp cât ambele intrări ale circuitului rămân la valoarea 0, ieşirea
(fie 0 sau 1) nu se va modifica. În schimb plasarea temporară a unui 1 pe
intrarea de sus va forţa ieşirea să treacă în 1, în timp ce plasarea unui 1 pe
intrarea de jos va forţa ieşirea în 0.
22
Setarea ieşirii circuitului basculant bistabil la valoarea 1
Intrarea de sus este trecută în 1
Aceasta provoacă trecerea
ieşirii porţii OR în 1 şi astfel
ieşirea porţii AND devine 1
23
Valoarea 1 de la ieşirea porţii
AND menţine poarta OR în
starea precedentă, după ce
intrarea de sus revine la 0
Ieşirea circuitului basculant bistabil devine 1 şi această valoare va fi
menţinută şi după ce intrarea de sus revine la 0. Similar, plasarea temporară a
valorii 1 pe intrarea de jos va forţa ieşirea circuitului basculant bistabil la
valoarea 0, ieşirea rămânând în această stare şi după ce intrarea revine la
valoarea 0.
24
Importanţa unui circuit basculant bistabil : constă în faptul că acesta este
ideal pentru stocarea unui bit în calculator. Valoarea stocată într-un circuit
basculant bistabil poate fi citită şi modificată cu uşurinţă prin intermediul
altor circuite electronice.
Altă metodă de realizare a unui circuit basculant bistabil
25
Sistemul de notaţie hexazecimal
Atunci când ne referim la activităţile din interiorul unui calculator, trebuie să
lucrăm cu şiruri de biţi, care pot fi uneori foarte lungi. Din nefericire mintea
umană întâmpină dificultăţi la manevrarea unor asemenea lucruri. Chiar şi
numai transcrierea şirului 101100101100011 este propice erorilor. De aceea,
pentru a simplifica reprezentarea şirurilor de biţi, vom utiliza o notaţie
prescurtată denumită notaţie hexazecimală (hexadecimal notation).
Notaţia hexazecimală utilizează un singur simbol pentru a reprezenta patru
biţi, ceea ce înseamnă că, de exemplu un şir de doisprezece biţi poate fi scris
utilizând numai trei simboluri.
26
• şirul de 16 biţi 1010010011001000 poate fi redus la mult mai acceptabila
formă A4C8
27
În scopul stocării datelor, un calculator conţine un mare număr de circuite,
fiecare dintre ele fiind capabil să stocheze un bit. Acest rezervor de biţi este
cunoscut sub numele de memorie principală a calculatorului (main
memory).
Circuitele de stocare din memoria principală a calculatorului sunt organizate
în unităţi denumite celule (sau cuvinte), dimensiunea uzuală a unei celule
fiind de opt biţi. De fapt, şirul de biţi de lungime opt a devenit atât de
popular încât pe de o parte a dus la apariţia termenului octet, iar pe de altă a
impus pentru cuvântul byte sensul de şir de biţi de această lungime.
Pentru identificarea celulelor individuale din memoria principală a unui
calculator, fiecare are atribuit un nume unic, denumit adresă.
28
Semnificatia celulei este aceea că este cea mai mică unitate adresabilă. În
ultimii ani, producatorii de calculatoare au standardizat locaţia la 8 biţi şi
au denumit-o byte. Bytes sunt grupaţi în words.
Un calculator cu 32 bit/word are 4 bytes/ word, iar un calculator cu 64
bit/word are 8 bytes/word. Semnificaţia unui cuvant (word) este aceea că
majoritatea instrucţiunilor operează pe un numar întreg de cuvinte (words),
de exemplu grupând două cuvinte împreună.
Deci o maşină pe 32 biţi va avea regiştrii de 32 biţi şi instrucţiuni pentru
manipularea cuvintelor de 32 biţi, iar una pe 64 biţi va avea regiştrii pe 64
biţi şi instrucţiuni pentru mutarea, adunarea, scăderea şi alte manipulari pe
cuvinte de 64 biţi.
29
Octet ordonat
Un octet într-un cuvânt poate fi numărat de la stânga la dreapta sau de
la dreapta la stânga.
Sistemele în care număratoarea începe cu 'big', adică cu ponderea mare, este
denumit generic big endian, iar celelalte little endian. Se face trimitere la
gluma din Gulliver legată de disputa “la care cap trebuie spart oul?”!
30
Vom considera biţii dintr-o celulă de memorie ca fiind aranjaţi pe un rând.
Vom denumi un capăt al acestui rând marginea superioară şi celălalt capăt
marginea inferioară. Cu toate că într-un calculator nu există stânga sau
dreapta, ne vom imagina biţii aranjaţi într-un rând orientat de la stânga la
dreapta cu marginea superioară plasată la stânga. Bitul de la acest capăt este
adesea denumit cel mai semnificant bit; similar, bitul de la celălalt capăt este
denumit bitul de la marginea inferioară sau cel mai puţin semnificativ bit.
31
O consecinţă importantă a ordonării celulelor în memoria principală,
precum şi a biţilor în interiorul fiecărei celule este aceea că toţi biţii din
principală a unui calculator sunt ordonaţi într-un unic şir lung. Astfel, părţi
din acest şir pot fi utilizate pentru stocarea de şiruri de biţi care pot fi mai
mari decât lungimea unei singure celule. În particular, dacă memoria este
împărţită în celule de dimensiunea unui octet, putem stoca un şir de 16 biţi
utilizând pur şi simplu două celule de memorie consecutive.
32
Reprezentarea caracterelor alfanumerice
Reprezentarea caracterelor alfanumerice in calculatoarelor a evoluat de-a
lungul timpului si pe masura ce aplicatiile s-au diversificat s-a realizat si o
standardizare a acesteia.
Institutul American Naţional pentru Standarde (American National Standards
Institute - ANSI) a adoptat codul American Standard Code for Information
Interchange (ASCII)
Codul Unicode - A fost creat de consortiul Unicode in scopul de a extinde
numarul de caractere, astfel incat sa fie standardizate si caracterele altor
limbi decat cele latine.(https://en.wikipedia.org/wiki/Unicode)
33
Reprezentarea caracterelor alfanumerice - ASCII
34
Reprezentarea valoriilor numerice
Stocarea valorii reprezentate în baza doi (binar).
35
Decodificarea reprezentării binare 100101
36
Algoritm pentru aflarea reprezentării în binar a unui număr întreg pozitiv
Pasul 1: Se împarte valoarea la doi şi se memorează restul împărţirii.
Pasul 2: Cât timp câtul obţinut este diferit de zero, se continuă împărţirea
noului
cât la doi memorându-se restul.
Pasul 3: Când s-a obţinut un cât egal cu zero, reprezentarea în binar a valorii
iniţiale constă din resturile împărţirilor, afişate de la stânga în care au fost
memorate.
37
Calculatoare de bord
Notiuni de Arhitectura Calculatoarelor
38
Reprezentarea Numerelor cu Semn
N –număr binar
N  bn1bn2...b1b0 ,b1...bm
bi 0,1

Reprezentare codificată a numerelor cu semn:
1.Codificarea semnului:
bs=0 dacă N>0
bs=1 dacă N<0
2.Codificarea valorii numărului:
Codificare directă
Reprezentare în complement față de 2
Reprezentare în complement față de 1
39
codul direct
Numerele întregi se reprezintă prin mărime (valoare absolută) şi semn.
Pentru numerele negative, bitul cel mai semnificativ (de semn) este 1,
iar celalţi n-1 biţi servesc pentru reprezentarea valorii absolute a
numărului.
Ex.:N = -5 pe 8 biţi => 10000101
codul invers (complement faţă de 1)
Pentru numerele negative, bitul de semn este 1, ceilalţi n-1 biţi servind
pentru reprezentarea valorii absolute negate a numărului. Negarea se
realizează la nivel de bit: biţii 0 devin 1 şi biţii 1 devin 0.
Ex.:N = -5 pe 8 biţi => 11111010
40
codul complementar (complement faţă de 2)
Pentru reprezentarea numerelor negative se aplică următoarea regulă de
complementare: se reprezintă numărul în valoare absolută, apoi se
inversează bit cu bit, inclusiv bitul de semn (care devine 1) şi se adună 1 la
rezultatul obţinut. Deci, complementul faţă de 2 se obţine din complementul
faţă de 1, la care se adaugă 1.
Ex.:N = -5 pe 8 biţi se reprezintă astfel:
|N| = 5, adică 00000101
prin inversare devine
11111010+
1
11111011
41
Sistem de notaţie
în complement faţă
de doi utilizând
cuvinte binare de
lungime 4
42
cod în exces
Această codificare constă în adunarea unei valori constante la fiecare număr
întreg (pozitiv sau negativ) care se reprezintă. Valoarea constantă notată E
care se adună, este de regulă 2^(n-1), cu n numărul de biţi ai reprezentării.
Matematic, un număr întreg N se reprezintă în cod exces E prin: E + N.
Ex.: Numerele N1 = 5 şi N2 = -5 se reprezintă pe n = 8 biţi, în exces 2^7 =
128, prin:
128 + 5 = 133 respectiv 128 + (-5) = 123
E 10000000 10000000
N 00000101 11111011
10000101 01111011
43
Sistem de notaţie în exces care utilizează cuvinte cu lungimea de trei biţi
44
Tabelul de
conversie pentru
sistemul de notaţie
în exces cu opt
45
Fie D domeniul de numere întregi ce se pot reprezenta pe n biţi:
D = [-2^(n-1), 2^(n-1)-1].
Utilizând codul exces 2^(n-1), domeniul D se transformă în domeniul
de valori pozitive D’ = [0, 2^n-1].
Deci, codul în exces poate transforma un domeniu de numere algebrice
într-un domeniu de numere aritmetice. Avantajul este că operaţiile cu
numere aritmetice se implementează mai simplu (în hardware sau în
software) decât operaţiile cu numere algebrice.
46
Adunarea numerelor reprezentate în complement faţă de doi
Operaţiile de adunare şi scădere se reduc la operaţia de adunare a
numerelor reprezentate în cod complementar. Se adună cei doi operanzi bit
cu bit, inclusiv biţii de semn, iar eventualul transport care rezultă de la
bitul de semn se va neglija. Rezultatul este obţinut în cod complementar.
Exemple:
x = 9, y = 5
00001001+ 9 + 5 = 14
00000101
00001110
47
x = 9, y = -5
Mai întâi vom reprezenta -5 în complement faţă de doi:
-5 => 11111011
După care realizăm adunarea:
00001001+ 9 - 5 = 4
11111011
00000100
x = 5, y = -9
y = -9 în complement faţă de 2 va fi: -9 => 11110111
00000101+ 5 – 9 = -4
11110111
11111100
48
Rezultatul obţinut este negativ (bitul de semn are valoarea 1),
reprezentat în complement faţă de 2. Pentru a afla valoarea absolută a
rezultatului va trebui să îl complementăm din nou faţă de 2.
Prin inversare se obţine:
00000011+
1
00000100 = 4
49
Problema depăşirii superioare
O problemă pe care am evitat-o în problemele precedente este aceea că în oricare
dintre sistemele de numeraţie pe care le-am prezentat există o limită privind
mărimea pe care pot s-o reprezinte valorile.
Atunci când utilizăm notaţia în complement faţă de doi cu cuvinte de patru biţi,
valoarea 9 nu are asociată nici un şablon, aşa că nu este nici o şansă să obţinem
un răspuns corect la efectuarea adunării 5 + 4. De fapt, rezultatul vafi –7.
Atunci când utilizăm notaţia în complement faţă de doi, eroarea de depăşire
superioară poate apărea la adunarea a două valori pozitive sau la adunarea a două
valori negative.
În fiecare dintre cazuri, depăşirea poate fi detectată prin verificarea bitului de
semn a răspunsului.
Aceasta înseamnă că este semnalată depăşirea superioară dacă adunarea a două
valori pozitive produce ca rezultat un şablon ce corespunde unei valori negative
sau dacă rezultatul adunării a două valori negative apare ca fiind pozitiv.
50
Virgulă fixă (Fixed Point - FXP) – separatorul între partea întreagă și
partea zecimală are o poziție fixă.
Virgulă mobila (Floating Point - FLP) – când numărul este compus din
mantisă și exponent (𝑚 ∙ 𝑟𝑒).
r = baza de numerație (de obicei 2),
m = mantisa (fractie)
e = exponent (întreg)
51
In virgulă fixă (radix point): reprezentarea binară conţine un punct
care are acelaşi rol ca şi virgula utilizată în notaţia zecimală.
Decodificarea reprezentării binare 101.101
Tehnicile aplicate la sistemul de numeraţie în baza zece se pot folosi de
asemenea şi în binar.
52
53
Notaţia în virgulă mobilă
Numerele care intervin în calcule sunt numere nu neapărat întregi, unele sunt
foarte mari, altele foarte mici, şi eventual cu multe cifre semnificative.
De aceea este necesară o reprezentare a lor în care să se facă distincţie între
ordinul de mărime şi precizie (numărul de cifre semnificative).
În notaţia ştiinţifică, un număr este reprezentat astfel:
N = M * 10E, unde E este exponentul, un număr întreg pozitiv sau negativ, ce
determină ordinul de mărime al numărului, iar M este mantisa, un număr
fracţionar, ce determină precizia numărului.
Echivalentul în calculator al acestei notaţii este formatul cu virgulă mobilă,
folosit pentru reprezentarea numerelor reale din matematică.
54
Nu există o corespondenţă biunivocă între numerele reale şi numerele în
virgulă mobilă.
Cele mai importante diferenţe între numerele reale din matematică şi
numerele reprezentate în virgulă mobilă sunt domeniul finit şi mulţimea
discretă de valori.
Domeniul finit şi discret este determinat de capacitatea fizică limitată a
memoriei calculatorului.
Numerele se reprezintă în formatul cu virgulă mobilă prin bitul de semn al
numărului, exponent şi mantisă:
De remarcat faptul că informaţia care nu se modifică nu se reprezintă. Astfel
avem baza de numeraţie şi virgula, a cărei poziţie a fost stabilită prin
convenţie
55
Exemplu care utilizează numai un octet pentru efectuarea
stocării.
Vom considera cel mai semnificativ bit din cadrul octetului ca fiind bitul de
semn. Din nou, bitul de semn egal cu 0 înseamnă că valoarea stocată este
pozitivă, iar 1 înseamnă că valoarea este strict negativă.
Împărţim apoi cei şapte biţi rămaşi în două grupuri dau câmpuri, câmpul
exponentului (exponent field) şi câmpul mantisei (mantissa field). Să
considerăm cei trei biţi care urmează după bitul de semn ca fiind câmpul
exponentului, iar cei patru biţi rămaşi ca fiind câmpul mantisei.
56
Să presupunem că un octet conţine şirul de biţi 01101011.
Analizând acest cuvânt conform formatului precedent, putem vedea că bitul
de semn este 0, exponentul este 110, iar mantisa este 1011.
Pentru a decodifica octetul, extragem mai întâi mantisa şi plasăm o virgulă
(punct) zecimală la stânga ei, obţinând .1011
Apoi, extragem conţinutul câmpului exponentului (110) şi-l interpretăm ca
pe un întreg stocat utilizând metoda în exces pe trei biţi
În acest caz, cuvântul binar din câmpul exponentului reprezintă valoarea
pozitivă 2.
Acest fapt ne precizează că trebuie să mutăm virgula la dreapta cu doi biţi.
(Un exponent negativ înseamnă că virgula trebuie deplasată la stânga.)
În consecinţă, obţinem 10.11 care înseamnă 2 3/4.
Observăm apoi că bitul de semn din exemplul considerat este 0; valoarea
reprezentată este pozitivă.
Vom trage concluzia că 01101011 reprezintă valoarea 2 3/4.
57
Să luăm alt exemplu, anume octetul 10111100.
Extragem mantisa, obţinem .1100 şi mutăm virgula cu un bit la stânga,
deoarece câmpul exponentului (011) reprezintă valoarea –1.
Acum avem .01100 care reprezintă 3/8.
Deoarece bitul de semn din cuvântul iniţial este 1, valoarea stocată este
negativă.
Tragem concluzia că 10111100 reprezintă valoarea – 3/8.
58
Pentru a stoca o valoare utilizând notaţia în virgulă mobilă, vom inversa
procesul prezentat anterior.
De exemplu, pentru a codifica valoarea 1 1/8 o vom exprima mai întâi în
notaţie binară, obţinând 1.001.
Vom copia apoi cuvântul binar în câmpul rezervat mantisei de la stânga la
dreapta, începând cu primul bit diferit de zero din reprezentarea binară.
În acest moment octetul arată astfel: _ _ _ _ 1 0 0 1
Câmpul exponentului: ne vom imagina conţinutul câmpului mantisei având o
virgulă zecimală la stânga şi vom determina numărul de biţi şi direcţia în care
trebuie să fie deplasată virgula pentru a se obţine numărul binar iniţial.
În exemplul nostru, observăm că virgula din .1001 trebuie deplasată cu un bit
la dreapta pentru a se obţine 1.001.
Deoarece din această cauză exponentul trebuie să aibă valoarea pozitivă 1,
vom plasa combinaţia 101 (care este reprezentarea valorii pozitive 1 în
notaţia în exces cu patru) în câmpul exponentului. În final vom scrie 0 în
bitul de semn, deoarece valoarea stocată este zero.
La sfârşit octetul arată astfel: 0 1 0 1 1 0 0 1
59
Utilizarea notaţiei în exces reduce operaţia de comparare a mărimii relative a
două valori la simpla parcurgere a reprezentărilor de la stânga la dreapta,
până la întâlnirea primului bit care diferă.
De exemplu, dacă ambii biţi de semn sunt zero, cea mai mare dintre cele
două valori este aceea care are 1 pe poziţia primului bit care diferă la
parcurgerea de la stânga la dreapta celor două cuvinte.
Astfel, dacă 00101010 şi 00011001 sunt reprezentări în virgulă mobilă, vom
putea afirma că prima reprezentare corespunde unei valori mai mari, fără a
trebui să determinăm mai întâi valorile care corespund efectiv celor două
reprezentări.
60
Erori de rotunjire
Să studiem acum ce se întâmplă dacă încercăm să stocăm valoarea 2 5/8
utilizând sistemul în virgulă mobilă pe un octet (prezentat anterior).
Scriem mai întâi valoarea 2 5/8 în binar, cea ce conduce la 11.101.
Însă atunci când vom copia acest rezultat în câmpul mantisei, vom
descoperi că nu avem suficient spaţiu şi ca urmare ultimul 1 (cel care
corespunde ultimului 1/8) se va pierde.
61
62
Dacă ignorăm această problemă şi continuăm cu completarea câmpului
exponentului şi a bitului de semn, vom obţine cuvântul 01101010,
care reprezintă valoarea 2 1/2, în loc de 2 5/8.
Ceea ce s-a întâmplat poartă numele de eroare de rotunjire (round-off
error), cauzată în acest caz de faptul că lungimea câmpului mantisei este
de patru biţi, în timp ce pentru păstrarea preciziei de reprezentare este
necesar un câmp de cinci biţi.
Soluţia evidentă pentru evitarea acestei probleme constă în creşterea
dimensiunii câmpului mantisei, adică exact cea ce se face în cazul
calculatoarelor reale.
63
O altă sursă de erori de rotunjire este problema valorilor cu număr infinit de
zecimale (periodice), cum ar fi de exemplu situaţia în care încercăm să
exprimăm fracţia 1/3 în formă zecimală.
Diferenţa dintre notaţia zecimală utilizată de noi în mod curent şi notaţia
binară este aceea că în binar există mai multe valori care au reprezentări cu
o infinitate de cifre. De exemplu, valoarea de o zecime este periodică atunci
când este exprimată în binar (.0001100110011...).
Să presupunem că ni se cere să adunăm următoarele trei valori utilizând
notaţia în virgulă mobilă pe un bit (definită anterior): 2 1/2 + 1/8 + 1/8.
64
Dacă adunăm valorile în ordinea afişată, vom aduna mai întâi 2 1/2 şi 1/8 şi
vom obţine 2 5/8, care în binar este 10.101.
Din nefericire, deoarece această valoare nu poate fi stocată cu acurateţe (după
cum am văzut mai înainte), rezultatul primei operaţii va fi memorarea valorii 2
½ (care coincide cu primul termen al adunării). Următorul pas este să adunăm
acest rezultat cu ultimul 1/8. Va apărea din nou o eroare de rotunjire, iar
rezultatul final devine greşit 2 1/2.
Să efectuăm acum operaţiile în ordine inversă. Adunăm mai întâi 1/8 cu 1/8 şi
obţinem 1/4. În notaţia binară aceasta reprezintă .01; astfel încât rezultatul
primei adunări va fi stocat pe un octet ca 00111000, memorarea făcându-se fără
erori. Adunăm acum 1/4 cu ultima valoare rămasă, respectiv 2 1/2, şi obţinem 2
3/4, rezultat ce poate fi stocat exact pe un octet sub forma 01101011. De data
aceasta am obţinut rezultatul corect.
65
Atunci când sunt adunate valori reprezentate în notaţia în virgulă mobilă, ordinea în care se
fac operaţiile poate fi extrem de importantă.
Regula generală este ca întotdeauna să fie adunate mai întâi valorile cele mai mici; totuşi,
nici măcar acest mod de lucru nu garantează corectitudinearezultatului.
66
Calculatoare de bord
Notiuni de Arhitectura Calculatoarelor
67
Arhitectura elementară a calculatorului
Senumeștesistemdecalculoricesistemcareestecapabilsărealizeze următoarele obiective:
1.să accepte intrări care reprezintă o formă codificată de
informație(date de intrare sau operanzi);
2.să prelucreze datele conform unui algoritm;
3.săfurnizezelaieșireinformațiile(datedeieșiresaurezultate)într-o
formă accesibilă omului sau altui calculator.
68
Schema celor 5 unitati
69
Manipularea datelor. Unitatea centrală de prelucrare. Regiştri. Interfaţa CPU/Memorie
Unitate centrală de prelucrare (Central Processing Unit - CPU). Această unitate constă din două
părţi: unitatea aritmetico – logică (Arithmetic/Logic Unit), care conţine circuitele care realizează
manipularea datelor, şi unitatea de comandă (Control Unit), care conţine circuitele utilizate
pentru coordonarea activităţilor maşinii.
Pentru stocarea temporară a informaţiilor, unitatea centrală de prelucrare conţine celule,
denumite regiştri (registers)/registre, care sunt similare cu celulele memoriei principale a
calculatorului.
70
Aceşti regiştri pot fi clasificaţi ca fiind regiştri de uz general(general
- purpose registers) şi regiştri speciali (special - purpose registers). Regiştrii de uz general
servesc la stocarea temporară a datelor care sunt manipulate de CPU. Ei memorează intrările
circuitelor unităţii aritmetico-logice şi furnizează spaţiu pentru memorarea rezultatelor produse
de aceasta. Pentru a putea efectua o operaţie cu nişte date stocate în memoria
principală, unitatea de comandă trebuie să transfere datele din
memorie în regiştrii de uz general, să informeze apoi unitatea aritmetico-logică în
careregiştriianume sunt stocate datele, să activeze circuitele adecvate din
unitatea aritmetico-logică şi să-i indice acesteia în ce registru să depună rezultatul operaţiei.
Regiştrii sunt folosiţi pentru stocarea datelor imediat necesare pentru
realizarea unei operaţii;
Memoria principală este destinată stocării datelor care vor fi
necesare în scurt timp;
71
Dispozitivele de stocare de masă sunt utilizate pentru stocarea pe
termen lung a datelor.
În multe calculatoare, la această ierarhie se adaugă un nivel suplimentar, denumit memorie
cache (cache memory). Memoria cache este o memorie de mare viteză, cu timpi de răspuns
similari celor ai regiştrilor unităţii centrale de prelucrare, situată adesea în interiorul CPU.
Calculatorul stochează în această memorie o copie a acelei porţiuni din memoria pe care o
utilizează în momentul respectiv. Astfel, transferurile de date care în mod normal s-ar fi făcut
între regiştri şi memoria principală se fac de fapt între regiştri şi memoria cache. Modificările
sunt apoi transferate în bloc în memoria principală în momente libere.
72
Ierarhia Memoriei
Memoria unui calculator este acea unitate a unui calculator care permite înscrierea, păstrarea şi
redarea unor date sau programe codificate binar.
Indiferent de tehnologia în care este realizată, orice memorie prezintă câteva proprietăți
specifice șianume:
•Capacitate–cantitatea maximă de informație ce poate fi păstrată înmemorie la un moment dat.
Se măsoară de obicei în biți.
•Timp de acces –timpul scurs între momentul activării comenzii de citire și momentul în care
informația este disponibilă la ieșirea d
i
nmemorie.
•Prețuldecostpeunitateadeinformație–prețuldecostalunuiblocde memorie /capacitatea blocului.
73
•Tendința a fost mereu de creștere a capacității și de scădere a
timpuluideaccesșiaprețuluidecost
pe unitatea informațională. U
n
timp de acces mai mic presupune însă o creștere a prețului de cost p
e
unitateainformațională,decicerințeleimpusecelortreimăriminupotfi satisfăcute simultan.
•Idealul ar fi o memorie cu un timp de acces care să permita citirea informației pe un singur
impuls de tact al procesorului și cu o capacitate foarte mare dar aceasta ar însemna un preț
de cost prohibitiv și probleme de disipare a căldurii foarte greu sau chiar imposibil de rezolvat.
•Dinaceastăcauzăsoluțiarealistăs-adovedituncompromis,obținut prin implementarea blocului de
memorie sub forma unei ierarhii de nivele astfel încât nivelele apropiate de procesor să aibă un
timp de accesșiocapacitatemicăiarnivelelemaiîndepărtatesăofereuntimp de acces mai mare dar
și o capacitate din ce în ce mai mare.
•Ierarhia memoriei este o structură cu mai multe nivele organizată
astfel încât datele de la un nivel să poată fi copiate la un moment dat numai într-un nivel adiacen
74
75
76
•Registrele – sunt elementele de memorie cu cel mai mic timp de acces dar și cu cea mai mică
capacitate (sute sau mii de biți), fiindplasate în interiorul procesorului. Majoritatea instrucțiunilor
procesorului pot accesa direct un registru.
•Memoriacache– esteunnivelintermediarîntreprocesorșimemoria principală cu un timp de acces
bun dar și o capacitate relativ mică. Laora actuală este divizată în trei nivele notate L1, L2, L3. L1
are cel mai bun timp de acces și capacitatea cea mai mică iar L3 cea mai mare capacitate dar și
cel mai mare timp de acces. La unele procesoare folosite în aplicații dedicate, memoria cache
poate sălipsească sau are un singur nivel. Nivelul L1 poate fi plasat în procesor. Memoria cache
este realizată cu circuite integrate RAM static (SRAM).
77
•Memoria principală –Este cel mai important bloc deoarece are o capacitate foarte mare (până la
zeci de Gbiţi) și păstrează toate programele în curs de execuție și datele aferente. Timpul de acces
este mediu (zeci sau sute nanosecunde). La ora actuală se utilizează în special memorii DRAM
dar în anumite situații, dacă nu este necesară o capacitate mare se pot utiliza și memorii RAM
statice (SRAM).
Memoria cache și memoria principală sunt memorii volatile (informația se pierde dacă
memoria nu mai este alimentată cu energie).
•Memoria secundară –memorie permanentă cu acces aleator, sub formă de circuite integrate
(ROM sau flash), discuri magnetice, discuri optice, SSM (Solid State Memory), memorie în rețea
etc. Are capacitate practic nelimitată și un timp de acces foarte mare (până la ordinul
milisecundelor).
78
Regisbe Memccia
0.25-0.Szs
<1KB
bzrds‹ate
0.S—2Sas
<16kfB
d0-2S0rs Szns
79
Pentru transferarea cuvintelor binare între unitatea centrală a unui calculator şi memoria
principală, acestea sunt conectate printr-o magistrală (bus).
Prin intermediul magistralei, unitatea centrală de prelucrare poate să extragă (să citească) date
din memoria principală, furnizând adresa celulei de memorie dorite, împreună cu un semnal de
citire. Similar, CPU poate plasa (scrie) date în memorie indicând adresa celulei de memorie
destinaţie şi datele care trebuie stocate, împreună cu un semnal de scriere.
80
Dacă analizăm acest mecanism, constatăm că efectuarea unei operaţii cum ar fi adunarea datelor
stocate în memoria principală înseamnă mai mult decât execuţia unei simple operaţii de adunare.
Procesul presupune atât implicarea unităţii de comandă, care coordonează transferul
informaţiilor către regiştri şi memoria principală, cât şi a unităţii aritmetico-logice, care
efectueazăoperaţia de adunare atunci când unitatea de comandă îi cere acest lucru.
81
Instrucţiuni în cod maşină, Instrucţiuni de tranfer de date, Instrucţiuni
aritmetice şi logice, Instrucţiuni de control
Instrucţiuni pe care o unitate centrală de prelucrare uzuală trebuie să le poate executa -
asemenea instrucţiuni sunt denumite instrucţiuni
în cod maşină (machine instructions).
Atunci când ne referim la instrucţiunile cunoscute de un calculator, este util ca să observăm că
ele pot fi clasificate în trei
categorii:grupul instrucţiunilor de transfer, grupul instrucţiunilor aritmetico-logice şi
grupul instrucţiunilor de control.
Primul grup de instrucţiuni conţine instrucţiunile necesare pentru deplasarea datelor dintr-un loc
în altul. Ca şi în cazul memoriei principale, nu se obişnuieşte ca datele care sunt transferate într-o
locaţie oarecare din calculator să fie şterse din locaţia iniţială. Din acest punct de vedere,
termenul de transfer (tranfer) sau mutare
82
(move), deşi utilizat frecvent, este inadecvat, mai degrabă fiind
potriviţi termeni, cum ar fi copiere (copy) sau clonare (clone). Legat de terminologie, trebuie să
menţionăm că atunci când ne referim la
transferul datelor între CPU şi memoria principală a calculatorului se utilizează termeni speciali.
Cererea de încărcare a unui registru de uz general nu conţinutul unei celule de memorie este
desemnată ca o instrucţiune LOAD; invers, transferul conţinutului unui registru într- o celulă de
memorie se face prin intermediul unei instrucţiuni STORE.
Grupul instrucţiunilor aritmetice şi logice constă din instrucţiunile care indica unităţi de
comandă să solicite unităţii aritmetico-logice efectuarea unei anumite operaţii. Aşa cum
sugerează şi numele, unitatea aritmetico-logică este capabilă să efectueze şi alte operaţii în afara
operaţiilor aritmetice elementare. Unele dintre aceste operaţii sunt operaţiile logice AND, OR şi
XOR. Un alt grup de operaţii care se pot efectua în cadrul unităţii aritmetico-logice permite
deplasarea
83
la dreapta sau la stânga a conţinutului regiştrilor. Aceste operaţii sunt denumite SHIFT sau
ROTATE, după cum sunt trataţi biţii care ies din registru prin deplasarea conţinutului:biţii sunt
pur şi simplu eliminaţi (SHIFT) sau sunt folosiţi pentru completarea golului care apare la
celălalt capăt al registrului (ROTATE).
Grupul instrucţiunilor de control conţine acele instrucţiuni care nu manipulează date, ci dirijează
modul de execuţie al programului. Această categorie de instrucţiuni conţine multe dintre cele
mai interesante instrucţiuni din limbajul calculatorului, cum ar fi familia de instrucţiuni de salt
JUMP (sau BRANCH), care sunt utilizate pentru a face ca unitatea de comandă să execute altă
instrucţiune decât cea care urmează. Există două variante de instrucţinui JUMP : salturi
necondiţionate şi salturi condiţionate. Diferenţa este aceea că o instrucţiune de salt condiţionat
efectuează saltul numai dacă este îndeplinită o anumită condiţie
84
Stocarea programelor, Instrucţiunile ca şiruri de biţi
In mod similar datelor, un program poate fi codificat şi stocat în memoria principală a
calculatorului. Dacă unitatea de comandă este proiectată astfel încât să extragă programul din
memorie, să decodifice instrucţiunile şi apoi să le execute, programul unui calculator poate fi
schimbat pur şi simplu prin modificarea conţinutului memorie Conceptul de program stocat în
memorie a devenit în prezent soluţia standard de lucru. Pentru a-l putea aplica, calculatorul este
proiectat astfel încât să recunoască anumite modele de biţi ca reprezentând diferite
instrucţiuni.Această colecţie de instrucţiuni, împreună cu sistemul de codificare, poartă numele
de limbaj maşină (machine-language) – deoarce defineşte modul în care comunicăm
calculatorului algoritmii pe care trebuie să-i execute.
Versiunea codificată a unei instrucţiuni maşină constă de obicei din două părţi: câmpul codului
de operaţie (operation code – prescurtat
85
op-code) şi câmpul operandului (operand). Şirul de biţi care apare în câmpul opcodului specifică
operaţia elementară, ce de exemplu STORE, SHIFT, XOR sau JUMP, a cărei execuţie este
solicitată de instrucţiune. Modelul de biţi din câmpul operandului oferă informaţii detaliate
asupra operaţiei respective. De exemplu, în cazul unei operaţii de tip STORE, informaţia din
câmpul operandului precizează registrul care conţine datele care trebuie stocate, precum şi care
este celula din memorie în care se vor stoca ele.
86
Fazele executarii unei instructiuni si Executia programelor. Ciclul mașinii. Programe si
Date.
Calculatorul urmăreşte un program stocat în memorie copiind instrucţiunile din memorie în
unitatea de comandă pe măsură ce are nevoie de ele. O dată ajunsă în unitatea de comandă,
fiecare instrucţiune este decodificată şi executată. Ordinea în care sunt extrase instrucţiunile din
memorie corespunde ordinii în care acestea sunt stocate, cu excepţia cazului în care o
instrucţiune JUMP specifică altceva. Pentru a înţelege cum se desfăşoară procesul de execuţie a
unui program trebuie să studiem mai amănunţit unitatea de comandă din interiorul CPU. Ea
conţine doi regiştri cu destinaţie specială: contorul programului (program counter) şi registrul de
instrucţiuni (instruction register).
87
Registrul contorului programului conţine adresa următoarei instrucţiuni care trebuie executată,
permiţând astfel calculatorului să urmărească locul în care se află în program.
88
Registrul de instrucţiuni este utilizat pentru stocarea instrucţiunii în curs de execuţie.
Unitatea de comandă îşi realizează sarcinile repetând continuu un algoritm, denumit ciclul
maşinii (machine cycle), care constă dintrei paşi: extragere (fetch), decodificare şi execuţie.
În timpul pasului de extragere, unitatea de comandă solicită memoriei principale să-i furnizeze
următoarea instrucţiune care va fiexecutată. Unitatea ştie unde se află următoarea instrucţiune în
memorie deoarece adresa acesteia se află în registrul contorului programului. Unitatea de
comandă plasează instrucţiunea recepţionată din memorie în registrul său de instrucţiuni şi
incrementează apoi contorul programului astfel încât acesta să conţină adresa următoarei
instrucţiuni.
89
Având acum instrucţiunea în registrul de instrucţiuni, unitatea de comandă începe faza de
decodificare din ciclul maşinii. În acest punct, ea analizează câmpurile codului de operaţie şi
operanzilor pentru a determina ce acţiuni trebuie efectuate.
90
După decodificarea instrucţiunii, unitatea de comandă intră în faza de execuţie, în timpul căreia
activează circuitele adecvate pentru realizarea acţiunilor solicitate. De exemplu, dacă
instrucţiunea se referă la încărcarea datelor din memorie, unitatea de comandă face să se
efectueze operaţia de încărcare; dacă instrucţiunea se referă la o operaţie aritmetico-logică,
unitatea de comandă activează circuitele adecvate din unitatea aritmetico-logică, având ca intrări
regiştrii corespunzători.
91
Arhitecturi CISC si RISC
Proiectarea unui limbaj maşină implică luarea multor decizii, una din ele fiind dacă să construim
o structură complexă, care sa poată decodifica şi executa o largă varietate de instrucţiuni, sau o
maşină mai simplă, care să dispună de un set limitat de instrucţiuni. Ceea ce se obţine in primul
caz poarta numele de calculator cu set de complex de instrucţiuni (complex instruction set
computer CISC); a doua opţiune conduce la realizarea unui calculator cu un set restrâns de
instrucţiuni (reduced instruction set computer RISC).
Se consideră că o instrucțiune este simplă dacă realizează o operație relativ simplă, care implică un
număr mic de resurse și poate fi îngeneral executată pe perioada unui impuls de tact.
92
Se consideră că o instrucțiune este complexă dacă nu poate fiexecutată pe perioada unui impuls
de tact, implică mai multe resuse diferite (procesor+memorie) și poate fi înlocuită printr-o serie
deinstrucțiuni simple.
O instrucțiune simplă poate fi executată direct de către procesor folosind o unitate
specializată(ALU)
Pentru instrucțiunile complexe acest lucru este mai rar întâlnit. Aceste instrucțiuni sunt inițial
transformate în microinstrucțiuni executatedeun procesor microprogramat.
93
94
Avantajele procesoarelor CISC
Micșoraea lungimii programelor;
Simplificarea compilatoarelor;
Posibilitatea de a modifica limbajul cod mașină doar prin modificarea microprogramului,fără a
modifica structura hardware a procesorului
95
Micșorarea memoriei ocupată de cod (foarte utilă în anii 60-70).
Dezavantajele procesoarelor CISC
Diferențe foarte mari în lungimea diferitelor instrucțiuni, ceea ce impune procesorului operații
logice suplimentare (numărarea octețiilor pentru citirea unei instrucțiuni, execuția secvențială a unui
număr diferit de microinstrucțiuni pe instrucțiune etc.);
Diferențe foarte mari între timpii de execuție iar viteza de execuție trebuie corelată cu timpul de
execuție al celei mai complexe instrucțiuni;
Realizarea unității microcodate ocupă mult spațiu pe pastila d
e
siliciu;
Studiile statistice au arătat că, în aplicații, instrucțiunile complexe sunt mult mai puțin frecvente
decât cele simple (sub 10%) dar elepenalizează întregul sistem;
96
Avantajele procesoarelor RISC
Utilizarea a unui set cu mai puține instrucțiuni simple;
Eliminarea microcodului și implicit creșterea vitezei de lucru; Posibilitatea executării unei
instrucțiuni pe un singur ciclu de tact;Instrucțiuni cu aceiași lungime;
Accesarea memoriei principale prin doar două instrucțiuni simple
LOAD și STORE;
Simplificarea modurilor de adresare a memoriei prin arhitectura internă;
Creșterea numărului de registre interne, ceea ce reduce numărul acceselor la memoria
principală;
Utilizarea unui format de instrucțiune care elimină aproape complet decodificatorul de
instrucțiuni, simplificând mult structura procesorului (la procesoare pe 32 sau 64biți);
97
Facilitarea paralelismului în activitatea procesorului (procesoare
pipeline);
Reducerea consumului de energie pe procesor.
Dezavantajele procesoarelor RISC
Sunt necesare compilatoare complexe pentru optimizarea codului; Codul obținut prin compilare
este mai mare.
98
Arhitectura von Neuman vs. Harvard PRINCIPIILE ARHITECTURII
VON NEUMANN
P1.Informațiileîncalculatorsuntcodificatebinar.
P2. Regulile de codificare binară sunt aceleași indiferent de natura informației.
P3. Pentru păstrarea datelor și programelor codificate binar calculatorul dispune de un bloc
specializat numit memorie.
P4. Comenzile codificate binar au o structură relativ rigidă, formată în principiu din douăzone
numite câmpuri (câmpul codului operației (OPCODE) și câmpul de adresă) - instrucțiune cod
mașină.
P5. Toate operațiile din calculator se execute secvențial, adicăunadupă alta. Nu se acceptă nici un
fel de paralelism în executarea diverselor tipuri de operații.
99
FUNCȚIONAREA UNUI CALCULATOR VON NEUMANN
100
Pentru a putea executa un program este necesar să fie rezolvate două probleme, și anume:
1. precizarea adresei de început a programului;
2. precizarea adresei următoarei instrucțiuni.
Se utilizeazăo component special a procesorului, numită numărător de program (program
counter-PC) sau indicator de instrucțiuni (instruction pointer-IP).
Instrucțiunile care se execute una după alta trebuie sa fie plasate în memorie la adrese
consecutive.
Conținutul numărătorului de program se poate modifica și prin instrucțiuni speciale numite
instrucțiuni desalt
101
ARHITECTURA HARVARD
Arhitectura Harvard presupune existența unor blocuri de memorie separate pentru date și pentru
instrucțiuni.
Numele provine de la calculatorul Harvard Mark I ce folosea cartele performatepentrustocarea
instrucțiunilor(reprezentatepe24debiți)și blocuri de relee pentru date (23digiți)
Cele două blocuri de memorie comunică cu Procesorul prin magistrale separate – îmbunătățire a
vitezei decalcul.
Memoria de instrucțiuni poate fi numai citită în timp de memoria dedate poate fi și citită, și scrisă, în
funcție de instrucțiunea executată Fiecare bloc de memorie are propriul spațiu de
adrese, ambele începând de la valoarea 0
102
ARHITECTURA HARVARD
103
HARVARD VS VON NEUMANN
În cazul arhitecturii Von Neumann pură, procesorul se află fie in faza FETCH și citește codul
instrucțiunii, fie în faza EXECUTE și procesează sau citește/scrie date din/înmemorie.
Orice paralelism între cele două faze este exclus deoarece memoria și procesorul sunt conectate
printr-o singură magistrală.
Performanța Procesorului este afectată deoarece timpul de procesare este mult mai mic decât
timpul de accesare a memoriei
La ora actuală există și memorii cu timp de acces mult mai mic decât cele uzuale dar datorită
consumului și prețului de cost nu pot fi utilizate decât la capacități foarte mici.
De aceea în aplicațiile unde viteza este o prioritate este utilizată arhitectura Harvard
104
Arhitectura Harvard permite o extensie simplă pentru prelucrări SIMD(Single Instruction,
MultipleData), folosind o singură memorie de instrucțiuni și mai multe memorii dedate
105
HARVARD VS VON NEUMANN
Într-o arhitecturăvon Neumann instrucțiunile pot fi prelucrate ca ș
iorice alt operand (principiul
P2) ceea ce mărește flexibilitatea utilizării.
Păstrarea în aceeași memorie a datelor și codului executabil simplifică implantarea unor viruși
introdușisubformaunuipachet de date, deși în realitate este vorba de instrucțiuni executabile.
Din această cauză au fost create diferite arhitecturi care să combine avantajele celor două
arhitecturipureprezentateanteriorșiînacelașitimp să elimine neajunsurile specifice.
106
ARHITECTURA HARVARD MODIFICATĂ
Arhitectura Harvard modificată este orice variantă a arhitecturii Harvard care permite accesarea
conținutului memoriei de instrucțiunica și cum ar reprezenta date.
Modificările pot fi realizate în diverse variante, scopul fiind de fiecare dată înlăturarea barierei
stricte între cod și date, fără a pierde totuși avantajul accesului paralel la instrucțiuni și datespecific
arhitecturii Harvard pure.
Unele variante păstrează spațiile de adrese separate dar oferă instrucțiuni cod mașină speciale
pentru a accesa memoria de instrucțiuni ca și cum ar conține date. Această abordare permite
păstrarea unor constante în memoria de instrucțiuni eliberând spațiu în memoria de date. De
asemenea datele inițiale pot fi transferate direct din memoria de instrucțiuni în memoria de date
care la pornirea calculatorului are unconținut aleator.
La ora actuală calculatoarele cu arhitectură Harvard folosesc din ce mai mult memorii flash pe
post de memorie de instrucțiuni ceea cepermitecitireașiscriereainstrucțiunilorcaîntr-omemorie
RAM, darcuviteză mai mică.
107
Calculatoare de bord
Noțiuni de ArhitecturaCalculatoarelor
108
Pipelining, Prelucrare paralelă.
Creșterea frecvenței de ceas este o cale de a îmbunătăți performanțele mașinii de calcul, dar pentru
orice proiect nou există o limită în ceea ce reprezintă această posibilitate în acel moment
tehnologic.
Frecvent, majoritatea proiectanților iau în considerare paralelismul pentru aîmbunătăți și mai
mult performanta pentru o frecvență de ceas dată.
Paralelismul se manifestă în două forme generale: paralelism la nivelul instrucțiunilor și
paralelism la nivelul procesorului.
În primul caz paralelismul este exploatat cu instrucțiuni individuale pentru aobține un raport
instrucțiuni / secundă cât maimare.
În a doua variantă paralelismul se referă la mai multe procesoare care lucrează în paralel la
aceeași problemă.
109
S-a știut de mult că preîncărcarea instrucțiunilor din memorie este un element important pentru
viteză de execuție ainstrucțiunilor.
Pentru a evidenția această problemă ne întoarcem în istorie la IBM Stretch (1959) care avea
capacitate de a preîncărcat din memorie în avans instrucțiunile, așaîncât ele să fie acolo când este
nevoie de ele. Instrucțiunile erau încărcate într-un set de registre denumiți 'prefect buffer'.
În acest fel când era nevoie de o instrucțiune, aceasta era luată din această memorie tampon decât
săseașteptecompletareaunuicicludecitiredinmemorie.
De fapt preîncărcarea împarte execuția instrucțiunilor în două faze: preîncărcarea și executarea lor.
Conceptul de pipeline oferă o strategie mult mai avantajoasă.
Decât să împartă execuția în două părți, o împarte în multiple părți, fiecărei părți fiindu-i dedicată o
componentă hardware, acestea executându-se în paralel
110
Pipeline este o metodă de implementare în care mai multe instrucțiuni se suprapun în timpul
execuției - se folosește pentru a crește viteza de procesare. Metoda pipeline este mai rapidă decât
metodasecvențială.
Blocuri implicate în execuție: IM –
Memoria de instrucțiuni Reg –
Registre
ALU –Unitatea Aritmetică și Logică DM –
Memoria de Date
111
Controlere
Comunicația dintre unitatea centrala de prelucrare a unui calculator și undispozitiv periferic
oarecare este controlată de obicei de către un dispozitiv intermediar, denumit controler
(controller).
Fiecare controler gestionează comunicația cu un anumit tip de dispozitiv periferic.
Controlerul convertește mesajele și datele la forme compatibile cu caracteristicile interne ale
calculatorului, respectiv la cele ale dispozitivului sau dispozitivelor periferice atașate
controlerului.
Controlere sunt adesea ele însuși mici calculatoare, fiecare având propriile circuite de memorie și
unități centrale de prelucrare care execută un program ceîi gestionează activitatea.
112
Structura ierarhizată a unui sistem de calcul
113
Circuite aritmetice. Registre de deplasare. Sumatoare. ALU
Primul circuit aritmetic prezentat este un registru de deplasare cu 8 intrări și 8ieșiri, ca în figura
următoare.
114
8 biţi de intrare sunt prezenţi pe liniile D0 ,......, D7.
Ieşirea, care este intrarea deplasată cu un bit, este disponibilă pe liniile S0 ,. ,S7.
115
Linia de control C determină direcția de deplasare, 0 pentru stânga, 1 pentru dreapta. Pentru a
vedea cum funcționează circuitul trebuie să remarcați perechile de porți AND pentru toți biții cu
excepția porților de la capete.
Când C=1, membrul drept al fiecărei perechi este activat, transferând bitul de intrare
corespunzător la ieșire. Deoarece poarta AND din dreapta este conectată la intrarea porții OR din
dreaptasa,sevarealizaodeplasarespredreaptaabitului.
116
Când C=0 membrul stâng al porții AND se va activa realizând o deplasaresprestânga.
117
Sumatoare
Tabela de adevăr a unui sumator întreg
118
Pentrua construiunsumator,să zicempentrudouăcuvintepe 16 biți, trebuie să
construim 16 replici ale circuitului din figura de mai sus.
119
Unităţi logice aritmetice
Majoritatea computerelor conțin un singur circuit pentru realizarea operațiilor AND, OR, NOT și
SUM (însumare) a două cuvinte mașină.
De obicei un astfel de circuit pentru cuvinte pe n biți este construit din n circuite identice pentru
fiecare bit individual.
Figura de mai jos este un exemplu simplu de astfel de circuit denumit ALU.
Acesta poate calcula oricare din următoarele 4 funcții:
A AND B, A OR B, A+B, not B , în funcție de combinația liniilor de intrare F0,F1: 00, 01, 10 sau
11.
De remarcat că A+B înseamnă suma aritmetică a lui A și B, nu OR boolean.
120
https://sites.google.com/site/sjsucmpe120/slides-2/micro-architecture/alu
121
Partea din stânga jos a ALU conține un decodificator pe 2 biți pentru a genera semnalele de
control F0 și F1.
În funcție de valorile lui F0 și F1 numai una din cele 4 linii este selectată.
Setarea acestei linii permite ca ieșirea din funcția selectată să ajungă la poartaOR pentru ieșire.
Partea din stânga sus conține logica de calcul pentru A AND B, A OR B și Bnegat, dar cel mult
unul din aceste rezultate este transferat la poarta OR finală în funcție de liniile de validare ce
provin dindecodor.
Deoarece exact una din linii va fi 1, numai una din cele 4 porți AND ceconduc la poarta OR va fi
validată, celelalte trei vor fi 0, independent de A și B.
În plus pentru a putea utiliza A și B ca intrări pentru operații logice și aritmetice, este de asemenea
posibil să se forțeze la zero oricare din ele negând ENA sauENB.
INV A – inversează A
122
Încondițiinormale,ENAșiENBsuntambele1șiINVAvafi0
.
În acest caz A și B
sunt introduse în ALU fără modificări.
Colțul din dreapta jos al ALU conține un sumator complet pentru calcularea sumei dintre A și B
inclusiv manipularea biților de transport, deoarece esteposibil ca astfel de circuite să fie conectate
împreună pentru a realiza operații lanivelul de cuvânt.
Circuite ca în figura de mai sus sunt cunoscute sub numele de “bit slices”. Acestea permit
proiectantului de calculatoare să construiască un ALU de orice mărime dorește.
123
Tehnici de intrare-ieșire – Porturi, Polling, Întreruperi,DMA
Transmisia datelor dinspre și spre exterior se face prin locații speciale dememorie denumite
porturi.
Fiind niște locații de memorie, porturile comunica cu microprocesorul prin magistrala de date,
magistrala de adrese si magistrala de control.
Tehnica de interogare continua (polling)
Atunci când microprocesorul are nevoie de citirea unei date de la portul de intrare trimite adresa
acestuia pe magistrala de adrese și așteaptă activarea semnalului READY de la portul respectiv.
În intervalul de timp de la lansarea operației de citire de la porturi și pana cândesteactivatsemnalul
READY microprocesorul așteaptă, neputând sa desfășoare nici o alta acțiune. In cazul in care
portul de intrare este lent aceasta înseamnă foarte mult timp pierdut pentru microprocesor.
124
Ca urmare aceasta metoda este utilizata foarte rar si pentru porturi accesate cu frecventa foarte
redusa. Nu se utilizează in aplicațiile care necesita viteza marede lucru.
Tehnica întreruperilor
Marea majoritate a procesoarelor sunt prevăzute cu terminale de întrerupere. In cazul apariției
unui 1 logic pe un astfel de terminal este activata o “întrerupere”. Aceasta înseamnă ca procesorul
va încheia execuția instrucțiunii in curs, dupăcare va lansa in execuție o procedura de deservire a
întreruperii.
Aceasta tehnica permite transferuri mai rapide de date de la porturi si este frecvent utilizata in
operațiiledeintrare-ieșirepentruvolumerelativmicidedate.Întreruperile sunt de mai multe tipuri si
pot fi clasificate in întreruperi hardware si întreruperi software.
Întreruperile sunt ierarhizate într-o anumita ordine de prioritate. In cazul in care apar simultan
doua semnale de întrerupere, atunci este deservita întreruperea cu prioritatea cea mai mare.
125
Tehnica de acces direct la memorie (DMA)
Aceasta tehnica de intrare-ieșire este foarte frecvent utilizata pentru volume mari de date, de
exemplu trimiterea datelor către o imprimanta sau citirea datelor de la o unitate optica, etc.
Utilizarea sa mai presupune prezenta in schema alături de microprocesor a unui controller de
DMA. Acesta va coordona transferul DMA al datelor.
126
Erori de comunicație. Biți de paritate. Coduri corectoare de erori.
La transferarea informațiilor între diverse componente ale calculatorului sau în cazul simplei
stocăriadatelor,existăposibilitateacașiruldebițiprimiți,înapoisă nu fie identic cu cel original.
În fluxul prelucrării automate a datelor, operația de transfer a informațiilor prin intermediul unui
canal de comunicație este extrem de frecventă. Cu ocazia acestui transfer de informație, la
nivelul canalului de comunicație pot apare perturbații. Pentru a nu se altera conținutul
informațional este necesară protejarea informațiilor împotriva acestor perturbații. Procedura
presupune adăugarea unor informații suplimentare, necesare în primul rând detectării erorilor și
ulterior corectării acestora.
Pentru a rezolva asemene probleme au fost dezvoltate diferite tehnici de codificare care permit
detectarea și chiar corectarea erorilor. În prezent datorită faptului că sunt implementate pe scară
largă în componentele interne ale sistemelor de calcul, ele sunt invizibile pentru cei care
utilizează calculatoarele.
127
Una din modalitățile practice cel mai frecvent utilizate în detectarea erorilor estereprezentată de
codurile pentru controlul parității.
La emisia unei secvențe binare de n biți se atașează o cifră binară suplimentară(parity bit), numită
cifră de control, astfel încât:
· încazulparitățiipare,numărulpozițiilorbinaredinșircareauvaloarea1 să fie
par (inclusiv cifra de control)
· în cazul parității impare, numărul pozițiilor binare din șir (inclusiv cifra de
control) care au valoarea 1 să fie impar
La recepția unui caracter se efectuează suma cifrelor binare care au fost primite. Dacă această
sumă respectă convenția de paritate stabilită, mesajul este considerat corect recepționat. În caz
contrar se semnalează eroarea, solicitându- se reluarea transmisiei.
Acest tip de cod este implementat de regulă hardware la nivelul dispozitivelor fizice ale
sistemului de calcul.
128
Deși ne închipuim aceste sisteme ca având celule de memorie de opt biți, î
nrealitate ele pot utiliza
celule de nouă biți, dintre care unul este folosit ca bit deparitate.
Ori de câte ori se furnizează circuitelor de memorie un cuvânt de opt biți pentru a fi stocat acestea îi
adaugă un bit de paritate și memorează apoi cuvântulde nouă biți rezultat.
Mai târziu, când se solicită acel cuvânt, circuitele de memorie verifică paritatea cuvântului de
nouă biți. În cazul în care controlul de paritate nu indică nici oeroare, memoria elimină bitul de
paritate și furnizează în deplină siguranță cuvântul de opt biți rămas.
Astfel, memoria returnează cei opt biți de date împreună cu un semnal de avertizare care
precizează că șablonul binar rezultat s-ar putea să nu coincidă cu cuvântul stocat la început în
memorie.
129
Șirurile lungi de biți sunt adesea însoțite de un grup de biți de paritate dispuși într-un octet de
control (checkbyte). Fiecare bit din acest grup este un bit de paritate asociat unui grup de biți
împrăștiațide-alungulșiruluidebiți.
130
De exemplu, un bit de paritate poate fi asociat cu fiecare al optulea bit din șir începând cu primul
bit din șir, în timp ce un alt bit de paritate poate fi asociat cufiecare al optulea bit începând de la al
doilea bit dinșir.
Procedând astfel se detectează mai ușor pachete de erori ce pot apărea în șirul debiți inițial, deoarece
ele survin în domeniile de verificare ale mai multor biți de paritate.
Printre variantele principiului de verificare cu octet de control se numără schemele de detecție a
erorilor cunoscute sub numele de sume de control (checkbyte sums) și controlul cu coduri ciclice
(cyclicredundancycheck -CRC).
În anumite situații, simpla detectare a erorilor este ineficientă. În vederea eliminării, fie șinumai
parțiale, aacestui neajuns, au fostproiectate coduricare,pe lângă detectarea
erorilor, oferă și posibilitatea corectării cifrelor binare
eronate.
Cele mai semnificative sisteme de coduri din această categorie sunt:
· codurile de paritate încrucișată
· codul HAMMING
131
La codurile de paritate încrucișată succesiunea de cifre binare carese
transmit se divide într-un număr de secvențe binare de aceeași lungime n, astfelîncât succesiunea va
fi formată dintr-un număr variabil de linii și un număr fix de coloane.
La emisie fiecărei linii și fiecărei coloane i se va atașa o cifră de control de paritate.
Practic se aplică LRC (control de paritate orizontal (longitudinal) pentru liniiși VRC (control de
paritate vertical) pentru coloane.
La recepție, prin controlul parității, pe fiecare linie și coloană se detectează eventualele erori,
având posibilitatea de a corecta o singură eroare detectată la intersecția liniei și a coloanei care
nu respectă paritatea stabilită.
132
Desigur, nici un sistem de tratare a erorilor nu este complet sigur.
Sistemele cu paritate nu pot detecta apariția unui număr par de erori, iar apariția prea multor erori
într-un singur cuvânt al unui cod corector de erori poate avea ca rezultat decodificarea unui alt
cuvânt de cod, valid dar totuși incorect.
133
Codul Hamming : este un cod autocorector bazat pe teste de paritate.
Versiunea cea mai simplă permite corectarea unui bit eronat.
Celor m biţi de informaţie li se adaugă k biţi de control al parităţii. Deci avem n
= m + k biţi necesari pentru transmiterea informaţiei.
Deoarece trebuie indicate n + 1 posibilităţi de eroare (inclusiv absenţa erorii) prin cei k biţi
de control, trebuie ca 2k
≥ n + 1.
Cele 2k
posibilităţi de codificare pe k biţi servesc la determinarea poziţiei erorii, apoi se poate
corecta bitul eronat.
Dacă se numerotează biţii de la dreapta spre stânga pornind de la 1, biţii de control(saude
paritate)suntplasațipepozițiaputerilorlui2(biţiicunumărul1,2, 4, 8, 16, ...).
Fiecare bit de control efectuează control de paritate (pară sau impară) asupra unui anumit număr
de biţi de date. Se determină astfel cei n biţi de transmis sau de stocat.
134
Exemplu – Codul Hamming
Dacă m = 4 se poate construi un cod Hamming pe 7 biţi (n = 7), adăugând 3 biţi de control
(k = 3).
7 6 5 4 3 2 1
m4 m3 m2 k3 m1 k2 k1
Cei trei biţi de control sunt plasaţi pe poziţia puterilor lui 2:
k1 → 1;
k2 → 2;
k3 → 4.
Vom vedea acum, pentru fiecare bit al mesajului care sunt biţii de control care permit
verificarea parităţii sale:
7 = (0111)2 = 4 + 2 + 1 → 7 este controlat de k3, k2, k1;
6 = (0110)2 = 4 + 2 → 6 este controlat de k3, k2;
5 = (0101)2 = 4 + 1 → 5 este controlat de k3, k1;
4 = (0100)2 = 4 →4 este controlat de k3;
3 = (0011)2 = 2 + 1 → 3 este controlat de k2, k1;
2 = (0010)2 = 2 →2 este controlat de k2;
1 = (0001)2 = 1 →1 este controlat de k1;
135
Problema se pune şi invers: care sunt poziţiile binare controlate de către fiecare cod?
k1 controlează biţii cu numerele 1, 3, 5, 7;
k2 controlează biţii cu numerele 2, 3, 6, 7;
k3 controlează biţii cu numerele 4, 5, 6, 7.
Când se recepţionează informaţia, se efectuează controlul de paritate.
Pentru fiecare bit de control se compară valoarea transmisă cu cea recalculată. Dacă cele două
valori sunt identice, se atribuie valoarea 0 unei variabile binare Ai asociată bitului de control ki,
altfel, Ai primeşte valoarea 1.
Valoarea zecimală a configuraţiei binare formată din variabilele Ak, Ak-1, ..., A1 furnizează poziţia
bitului eronat, care se poate corecta.
136
Presupunem că pentru k1, A1 = 1, pentru k2, A2 = 1, iar pentru
k3, A3 = 0. Eroarea se găseşte în poziţia (A3A2A1)2 = (011)2 =
3.
Într-adevăr, k1 poate detecta o eroare în poziţiile 1, 3, 5, 7, k2 poate
detecta o eroare pe poziţiile 2, 3, 6, 7, iar k3 poate specifica o eroare pe
poziţiile 4, 5, 6, 7. O eroare detectată de k1 şi k2 dar nu şi de k3 nu
poate proveni decât din bitul 3. de exemplu:
(A3A2A1)2 = (000)2 → indică
absenţa unei erori; (A3A2A1)2 =
(001)2 → indică eroare pe bitul
1; (A3A2A1)2 = (110)2 → indică
eroare pe bitul 6
Exemplu de recepţionare a unui mesaj: (1011100)2.
Ştiind că s-a utilizat un CH cu paritate pară, să se reconstituie
mesajul iniţial. n = 7, deci k = 3, m = 4.
137
7 6 5 4 3 2 1
m4 m3 m2 k3 m1 k2 k1
1 0 1 1 1 0 0
k1 = 0 controlează poziţiile 1, 3, 5, 7, nu se verifică, deci A1 = 1;
k2 = 0 controlează poziţiile 2, 3, 6, 7, se verifică, deci A2 = 0;
k3 = 0 controlează poziţiile 4, 5, 6, 7, nu se verifică, deci A3 = 1;
Adresa binară a erorii (A3A2A1)2
= (101)2 = 5. Bitul cu numărul 5,
care este egal cu 1 este eronat.
Mesajul iniţial corectat şi fără biţii de control este: (1001)2
138
Calculatoare de bord
CONVERSII NUMERIC-ANALOGICE
ŞI
ANALOG-NUMERICE
139
Informaţiile provenite din lumea fizică reală trebuie convertite într-o formă
compatibilă pentru prelucrarea lor în calculator.
De asemenea, semnalele provenite de la calculator (comenzi în cazul sistemelor de
conducere) trebuie convertite într-o formă corespunzătoare echipamentelor cuplate
la calculator.
140
Informaţiile provenite din lumea fizică reală trebuie convertite într-o formă
compatibilă pentru prelucrarea lor în calculator.
De asemenea, semnalele provenite de la calculator (comenzi în cazul sistemelor de
conducere) trebuie convertite într-o formă corespunzătoare echipamentelor cuplate
la calculator.
Conditionarea semnalului, "signal conditioning", include functii ca amplificarea
semnalului, filtrare, izolare galvanica si multiplexare.
141
Prin condiţionarea semnalelor se înţelege în sens larg adaptarea dintre
traductoare şi circuitele de conversie analog-numerică. Tipul de condiţionare
depinde evident de senzorii care sunt utilizaţi.
De exemplu, un semnal poate avea nivel mic şi necesită o amplificare, sau poate
conţine componente parazite care cer realizarea unei filtrări.
Anumite operaţii de condiţionare de semnal se realizează între circuitele de
conversie numeric-analogică şi elementele de execuţie, precum şi pe partea de
intrări/ieşiri numerice.
Condiţionarea semnalelor se realizează prin operaţii cum ar fi:
- conversii de semnal (cum ar fi conversia curent/tensiune)
- izolare galvanică
- amplificare
- filtrare
- liniarizare
- multiplexare
- alimentarea senzorilor pasivi
142
CONVERTOARE NUMERIC-ANALOGICE (CNA)
Reconstituirea (reconstructia) fizica a semnalelor este operatia utilizata atunci când
se doreste ca un semnal esantionat si eventual prelucrat numeric de catre un sistem
de calcul sa fie reconstituit din esantioanele sale si furnizat în forma analogica la
iesirea sistemului.
Într-un sistem de achizitie si conducere, reconstituirea si generarea semnalelor
analogice se realizeaza prin intermediul circuitelor de iesiri analogice.
Reconstituirea fizica se realizeaza prin intermediul unui grup de dispozitive, dintre
care rolul esential îl are convertorul numeric analogic (CNA).
Schema bloc a reconstituirii fizice a semnalelor (organizarea ieşirilor analogice)
143
CONVERTOARE NUMERIC-ANALOGICE (CNA)
CNA-ul acceptă la intrarea sa semnalul în formă numerică, registrul tampon (bufferul)
fiind utilizat pentru păstrarea datelor (numerelor binare) pentru un interval de timp egal
cu perioada de eşantionare (Te).
CNA-ul converteşte numărul binar într-o tensiune aproximativ egală cu valoarea actuală
a semnalului numeric şi o menţine constantă pentru Te secunde. Atunci când următorul
număr apare la ieşirea bufferului, CNA-ul va schimba tensiunea de ieşire conform noii
valori de la intrare.
Schema bloc a reconstituirii fizice a semnalelor (organizarea ieşirilor analogice)
144
CONVERTOARE NUMERIC-ANALOGICE (CNA)
Convertorul numeric-analogic realizeaza o aproximare a operatiei de extrapolare de
ordin zero.
Principial, forma semnalului la iesirea CNA este similara iesirii extrapolatorului de
ordin zero.
Forma semnalului de ieşire din CNA (răspunsul unui extrapolator de ordin zero).
Extrapolatorul de ordin zero (numit şi extrapolator cardinal), menţine ultima valoare
primită (blochează această valoare) în timpul perioadei de eşantionare care urmează,
Te.
145
CONVERTOARE NUMERIC-ANALOGICE (CNA)
La ieşirea CNA se utilizează un filtru de tip trece jos care are rolul de a netezi
semnalul provenit de la convertor, apoi un amplificator de putere care are rolul
adaptării de nivel şi de putere cu circuitele spre care este transmis semnalul analogic.
În unele cazuri, la ieşirea CNA se dispune un circuit de izolare galvanică.
Schema bloc a reconstituirii fizice a semnalelor (organizarea ieşirilor
analogice)
146
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
Se observă că registrul care conţine biţii de intrare controlează cele 4 comutatoare,
astfel încât sunt posibile 16 configuraţii în funcţie de poziţia comutatoarelor.
Amplificatorul operaţional este conectat ca un circuit de însumare.
147
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
Pentru o anumită configuraţie a comutatoarelor, tensiunea de ieşire este determinată
de produsul dintre tensiunea de referinţă şi raportul dintre rezistenţa de pe reacţie şi
rezistenţa introdusă în circuit de comutatoare.
148
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
De exemplu, dacă doar MSB este 1 şi ceilalţi biţi sunt 0 vom avea:
149
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
Dacă bitul 2 este 1 şi ceilalţi sunt 0 tensiunea de ieşire va fi:
150
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
Dacă avem MSB egal cu 1, bitul 2 şi bitul 1 sunt 0 iar LSB este 1 atunci tensiunea de
ieşire va fi o sumă a efectelor combinate ale comutatoarelor:
151
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
Cu această structură de CNA se pot obţine 16 nivele de tensiune la ieşire. Pentru
asigurarea unei dependenţe liniare intrare-ieşire este necesar ca rezistenţele să fie
precise şi stabile.
152
CONVERTOARE ANALOG-NUMERICE
Un convertor analog-numeric accepta la intrare un semnal continuu în timp x(t) sub
forma unei tensiuni electrice si furnizeaza la iesire o secventa de numere binare x(n),
care aproximeaza esantioanele corespunzatoare x(nTe).
Pentru majoritatea aplicatiilor, tensiunea electrica de intrare nu este furnizata direct
CAN-ului, ci printr-un dispozitiv numit element de esantionare si retinere
(memorare) – sample-hold (S/H).
Elementul S/H este un circuit analogic care masoara semnalul de intrare în ritmul
unui tact (multiplu de Te) si mentine acest semnal fixat pentru un interval de timp
suficient de mare pentru ca operatiunea de conversie analog-numerica sa se poata
realiza.
Deoarece operatiunea de conversie analog-numerica este relativ lenta, este important
ca o eventuala variatie a tensiunii de intrare sa nu perturbe procesul de conversie, si
prin urmare circuitul S/H previne aceste perturbatii prin mentinerea constanta a
tensiunii de intrare pe durata desfasurarii unei conversii.
153
154
CAN cu aproximări succesive
Este unul din cele mai utilizate CAN pentru rezoluţii medii şi mari. Acest CAN se
bazează pe aproximarea semnalului de intrare analogic cu un cod binar, convertirea
acestui cod binar cu un CNA într-un semnal analogic care este comparat cu semnalul
de intrare şi apoi revizuirea succesivă a aproximării pentru fiecare bit din cod până
când se obţine cea mai bună aproximare.
La fiecare pas din acest proces, valoarea binară curentă a aproximării este stocată într-un
registru numit registru de aproximări succesive RAS.
155
CAN cu aproximări succesive
BC este un bloc de comandă, care controlează conversia şi mărimea de intrare în CNA.
Schema de conversie se bazează pe principiul de înjumătăţire a intervalului şi poate fi prin
adăugare sau scădere.
156
CAN cu aproximări succesive
Un ciclu de conversie începe de la valoarea 000 a mărimii de intrare în CNA, apoi bitul
MSB este făcut 1.
Urmează un algoritm de testare care va verifica efectul modificării câte unui bit. Prin
urmare, la primul pas convertorul numeric-analogic va converti valoarea 100 (care
corespunde unei estimări iniţiale de jumătate din domeniul de intrare) într-o tensiune uc
care este comparată cu tensiunea de intrare.
În funcţie de rezultatul comparaţiei, bitul MSB este lăsat 1 sau este făcut 0.
La pasul al doilea (la următorul tact sau perioadă de ceas), al doilea bit este făcut 1,
urmează conversia în uc şi compararea cu tensiunea de intrare.
Se decide dacă cel de-al doilea bit este 1 sau 0 şi urmează al treilea pas.
În cazul exemplului nostru este vorba de LSB care este făcut 1, se realizează conversia şi
comparaţia şi se stabileşte valoarea finală a LSB şi prin urmare a codului de ieşire care va
aproxima cel mai bine semnalul de intrare.
157
CAN cu aproximări succesive
Schema logică a algoritmului (cu adăugare) cu toate opţiunile posibile.
158
CAN cu aproximări succesive
Deoarece deciziile pentru fiecare bit sunt luate serial, poate fi furnizată o ieşire
numerică serială la ieşirea din comparator.
Ca performanţe, aceste CAN au timpul de conversie independent de mărimea de
intrare (este o sumă dintre timpul de iniţializare şi n ⋅ Tbit −test ) şi este de ordinul 100 nsec
– 5μ sec pentru CAN pe 8 biţi şi mai mare pentru CAN pe mai mulţi biţi.
Rezoluţia este de 6 – 16biţi.
159
Indicatori de performanţă ai CAN
Convertoarele analog-numerice sunt dispozitive utilizate la conversia semnalelor din
formă analogică în formă numerică, în scopul prelucrării ulterioare prin mijloace
numerice.
Semnalele analogice de intrare în CAN sunt în mod obişnuit tensiuni continue în
gama 0 – 10 V sau -10 – +10 V.
Semnalele de ieşire din CAN sunt cuvinte care au de regulă un număr de biţi între 6
şi 22.
Cele mai des utilizate tipuri de CAN funcţionează pe baza principiului compensării
automate. Tensiunii de la intrare i se asociază o valoare numerică, care este după aceea
convertită din nou în formă analogică. Valoarea numerică este ajustată în mod automat,
astfel încât să compenseze eroarea dintre tensiunea de intrare în CAN şi corespondentul
analogic al mărimii numerice de la ieşire. Există mai multe tipuri de CAN, în funcţie de
modul de generare a valorii numerice. Printre tipurile mai des folosite se numără: CAN
cu comparare multiplă, cu aproximări succesive, cu integrare (cu pantă simplă sau cu
pantă dublă), cu conversie intermediară în frecvenţă, CAN cu filtrare digitală etc.
160
Indicatori de performanţă ai CAN
Principalele performanţe ale CAN sunt liniaritatea, precizia, rezoluţia, timpul şi
rata de conversie, domeniul (gama) tensiunii de intrare.
Conversia analog-numerică constă în convertirea unui semnal de intrare continuu
într-o fracţie y prin compararea cu un semnal de referinţă. Mărimea de ieşire
numerică din CAN este o reprezentare codificată a acestei fracţii y. Dacă ieşirea
CAN este pe n biţi, atunci numărul nivelelor de valori discrete de ieşire este de 2^n.
Prin urmare, pentru a respecta o corespondenţă, domeniul analogic de intrare
trebuie cuantificat în acelaşi număr de nivele.
Fiecare astfel de nivel sau cuantă este o valoare analogică pentru care două
coduri adiacente de ieşire diferă, şi mai este numită dimensiune a bitului LSB:
În relaţia de mai sus notaţia LSB este uşor improprie şi reprezintă valoarea analogică a
celui mai puţin semnificativ bit, iar D este domeniul mărimii de intrare (full scale).
161
Indicatori de performanţă ai CAN
Toate valorile analogice de intrare din interiorul unui nivel de dimensiune D /
(2^n) sunt reprezentate de acelaşi cod numeric de ieşire.
Deoarece semnalul de intrare poate să difere de valoarea medie a unui astfel de
subinterval analogic cu cel mult ± LSB / 2 şi să fie totuşi reprezentat de acelaşi cod de
ieşire, rezultă că există o incertitudine sau eroare de cuantificare de ± LSB / 2 în orice
CAN. Efectul acestei erori poate fi redus doar prin creşterea numărului de biţi
ai ieşirii CAN.
Aspectele prezentate mai sus pot fi analizate cu ajutorul caracteristicii statice
ideale a unui CAN pe 3 biţi.
162
Indicatori de performanţă ai CAN
Caracteristica statică a unui CAN pe trei biţi
În acest caz, dimensiunea unui nivel de cuantificare din mărimea de intrare este de D /
2^3 = D / 8 şi prin urmare domeniul de intrare este împărţit în 8 subintervale distincte
de la 0 la (7 /8) * D.
Trebuie observat faptul că ieşirea maximă, adică numărul binar 111, corespunde nu
domeniului maxim de intrare ci lui (7 /8) * D.
163
Indicatori de performanţă ai CAN
CAN-urile au caracteristici statice reale, care diferă de caracteristica ideală
prezentată anterior. Pe aceste caracteristici reale pot fi evidenţiate tipurile de erori
care pot apare la un CAN. Una dintre erori este eroarea de offset (sau eroarea de
zero) care poate fi definită ca valoarea analogică egală cu intervalul de la origine la
intersecţia caracteristicii reale cu abscisa.
164
Indicatori de performanţă ai CAN
O altă eroare este eroarea de câştig sau de pantă care apare datorită unei abateri de
pantă a caracteristicii. Aceste două erori sunt în general mici şi pot fi eliminate prin
tehnici de ajustare.
165
Indicatori de performanţă ai CAN
Erorile de liniaritate pot fi de două tipuri: eroare totală de liniaritate (deviaţia
maximă a caracteristicii reale de la caracteristica ideală, atunci când erorile de offset
şi de câştig sunt nule) sau eroare diferenţială (deviaţia unui nivel de la valoarea
analogică ideală). În cazul în care o neliniaritate de tip diferenţial este mai mare de 1
LSB, atunci ieşirea are coduri lipsă.
166
Indicatori de performanţă ai CAN
Rezoluţia poate fi definită ca cea mai mică schimbare a intrării analogice care
determină schimbarea codului de ieşire al CAN cu un nivel.
Rezoluţia este definită de regulă pe caracteristica ideală şi prin urmare defineşte
mai degrabă posibilităţile CAN decât performanţa reală. Rezoluţia se poate defini
procentual, în milivolţi pentru un domeniu de intrare dat sau pur şi simplu ca
numărul de biţi ai CAN. De exemplu, dacă avem un CAN pe 12 biţi, rezoluţia
acestuia se spune că este de 12 biţi, iar rezoluţia procentuală
Dacă avem un domeniu de intrare de 10 V, se poate defini rezoluţia în milivolţi
aceasta fiind de fapt tensiunea minimă de intrare ce poate fi reprezentată.
167
Indicatori de performanţă ai CAN
Un alt indicator de performanţă al CAN este precizia. Trebuie să remarcăm aici că
în specificaţiile tehnice şi în literatura de specialitate în limba engleză se utilizează
uneori termenul de precision pentru rezoluţie şi termenul accuracy pentru precizie.
Precizia se defineşte ca fiind diferenţa dintre tensiunea de intrare reală şi
echivalentul analogic al codului binar de ieşire din CAN. Atunci când este
exprimată în volţi se numeşte precizie absolută, dar de multe ori se exprimă relativ
la semnalul analogic, se exprimă în LSB şi se numeşte precizie relativă. Precizia
este dată de suma maximă a tuturor erorilor de conversie, inclusiv a erorii
(incertitudinii) de cuantificare.
168
Indicatori de performanţă ai CAN
Pentru regimul dinamic al CAN se defineşte timpul de conversie tc ca fiind
intervalul de timp dintre startarea operaţiei de conversie şi momentul în care
convertorul furnizează mărimea de ieşire finală.
Inversa timpului de conversie este rata de conversie care se măsoară în
conversii/secundă.
Utilizarea circuitelor de tip Sample/Hold între intrarea analogică şi CAN conduce
la apariţia unui timp de întârziere suplimentar numit timp de deschidere (aperture
time), de care trebuie să se ţină seama în aprecierea performanţelor.
169
Selectarea unui CAN
Pentru a selecta un CAN conform aplicaţiei date trebuie cunoscute mai întâi
performanţele care se cer, cum ar fi rezoluţia, timpul de conversie, erori
permise etc.
Acestea sunt determinate de specificaţiile de proiectare ale sistemului respectiv,
cum ar fi:
- numărul canalelor analogice
- rata minimă de conversie
- localizarea traductoarelor
- precizia de conversie
- condiţiile de interfaţă (serie/paralel) şi protocoale
- mediul de lucru (interesează zgomotele electrice şi domeniul de
temperatură al mediului)
- preţul sistemului
170
Magistrale de date
171
Structura unui sistem de comunicații
Orice sistem de comunicații este alcătuit in principal din trei elemente :
S = Sursa de informații
U = Utilizatorul de informații
Informația transmisa se regăsește sub forma unui semnal, semnalul fiind suportul
material pentru informație .
Semnalele pot fi electrice, optice, acustice, pneumatice, hidraulice etc. In funcție de
natura semnalului utilizat se alege si canalul de comunicații. Canalul reprezintă
mediul de legătura intre sursa si utilizator prin care se propaga semnalul purtător de
informații.
La nivelul canalului acționează perturbațiile din mediul extern. Perturbațiile sunt
tot semnale de aceeași natura cu semnalul util dar care acționează in sensul scăderii
cantității de informație transmisa.
172
In cazul in care , fie distanta este foarte mare , fie nivelul perturbațiilor este crescut,
structura de mai sus se modifica astfel:
Prin modulare se înțelege procedeul tehnic in urma căruia informația conținuta in
semnalul de baza (semnal modulator) este transpusa la nivelul unui semnal purtător
ce are capacitatea de a proteja informația si de a se propaga eficient printr-un canal
dat.
Demodularea este procedeul invers modularii si prin intermediul sau se reconstituie
semnalul de baza .
In cazul in care se dorește ca informația sa fie sigura si sa se poată detecta erorile
structura unui sistem de comunicație devine:
Prin codificare se înțelege transpunerea informației numerice sub o forma care
sa permită receptorului detecția si eventual corecția erorilor.
173
Protocoale de comunicație: - un set de reguli care definesc înțelesul unei structuri de
cuvinte binare.
Un protocol reprezintă un set de reguli și convenții ce se stabilesc între participanții la
o comunicație în rețea în vederea asigurării bunei desfășurări a comunicației
respective. Este de fapt o înțelegere între parțile care comunică, asupra modului de
realizare a comunicării.
Topologii de reţele
Topologia magistrală: folosește un cablu de conexiune principal, la care sunt conectate toate
sistemele de calcul.
Topologia inel: Într-o topologie inel (ring), fiecare dispozitiv este conectat la următorul, de la
primul până la ultimul, ca într-un lanţ.
Topologia stea Are un punct de conectare central, care este de obicei un echipament de reţea,
precum un hub, switch sau router
Topologia plasă (mesh) Într-o topologie mesh, fiecare echipament are conexiune directă cu toate
celelalte. Dacă unul din cabluri este defect, acest defect nu afectează toată rețeaua ci doar
conexiunea dintre cele două stații pe care le conectează. Altfel spus, dacă o parte a infrastructurii
de comunicație sau a nodurilor devine nefuncțională, se găsește oricând o noua cale de
comunicare.
Topologia arbore (tree) Combină caracteristicile topologiilor magistrală și stea. Nodurile sunt
grupate în mai multe topologii stea, care, la rândul lor, sunt legate la un cablu central
174
Topologia magistrală Topologia inel Topologie de tip stea
Topologie de tip arbore
175
Toate transferurile de informaţii şi date între diverse componente ale sistemului de
calcul, care se realizează prin magistrale, se desfăşoară la nivel de bit, octet, cuvânt sau
bloc de octeţi.
Aceste transferuri de biţi se pot efectua în două feluri: prin transmisie serială sau
prin transmisie paralelă.
Transmisia paralelă este o transmisie eficientă deoarece se desfăşoară concomitent
pentru cei 8 biţi ai unui octet de exemplu, pe 8 căi distincte. Prin urmare, transferul
unui grup de octeţi are loc cu o viteză foarte mare, dar are dezavantajul unui cost
ridicat datorat interfeţei paralele şi cablului de conectare cu 8 fire (sau mai multe).
Transmisia paralelă se utilizează la echipamentele care vehiculează un volum mare de
date într-un timp scurt.
Transmisia serială este mai simplă pentru că nu necesită decât o cale de transmisie, un
octet transmiţându-se bit cu bit. Costurile sunt mici, dar dezavantajul este legat de
viteza de transmisie mică.
Deoarece trebuie introdus un mecanism de separare a logică a octeţilor transmişi, la
construcţia interfeţelor se foloseşte o altă clasificare a transmisiilor:
- transmisia sincronă, în care octeţii se transmit fără biţi fanion şi fără pauze de
transmisie între octeţi;
- transmisia asincronă, la care între octeţii transmişi sunt intercalate pauze sau se
folosesc flag-uri de indicare a începutului sau sfârşitului unui octet.
Transmisia sincronă utilizează ceasuri sincronizate pentru a transmite date, în timp ce
transmisia asincronă utilizează controlul fluxului în loc să utilizeze un ceas sincronizat
pentru a transmite date.
176
O altă clasificare a transmisiilor de date se poate face după modul în care este folosită
linia de transmisie:
Ø Simplex - întâlnit și sub numele de transmisie unidirecțională, constă în transmisia
datelor într-un singur sens.
Ø Half-duplex – constă în transmiterea datelor în ambele direcții alternativ. Datele
circulă în acest caz pe rând într-o anumită direcție. Un exemplu de transmisie half-
duplex este transmisia datelor între stațiile radio de emisie-recepţie. Sistemele sunt
formate din două sau mai multe staţii de emisie-recepţie dintre care una singură joacă
rol de emițător, în timp ce celelalte joacă rol de receptor;
Ø Full-duplex – constă în transmisia datelor simultan în ambele sensuri. Lățimea de
bandă este măsurată numai într-o singură direcție (un cablu de rețea care funcționează
în full-duplex la o viteză de 100 Mbps are o lățime de bandă de 100 Mbps).
177
Modelul de referinţă OSI
Modelul de referinţă OSI (Open System Interconection) descrie şapte nivele
funcţionale, care, împreună cu mediul fizic, asigură un set complet de servicii de
comunicaţie.
Această arhitectură poate fi concepută ca fiind compusă din două parţi diferite:
-partea de suport(1,2,3);
-partea de utilizator(5,6,7).
Cele două parţi sunt separate de nivelul de
transport, care are rolul de a ascunde detaliile
constructive ale comunicaţiei.
178
Nivelul fizic (Physical Layer) asigură mijloacele mecanice, electrice, funcţionale şi
procedurale pentru accesul la mediul fizic.
Nivelul fizic se rezumă la cabluri şi semnale electrice. Datele sunt transmise între
dispozitive prin cabluri sau sub formă de unde radio.
Nivelul Legătura de date (Data Link Layer) reprezintă partea care asigură
interconectarea fizică. La acest nivel putem vorbi despre cea mai mare grupare de biţi
care se transmite prin mediul fizic: frame-ul.
Nivelul reţea (Network Layer) se ocupă de dirijarea maselor între două noduri
intermediare folosind blocuri speciale de control, care conţin adresa destinatarului.
Acest nivel va alege ruta pe care informaţia va ajunge la destinaţie şi va adăuga
adresele nodurilor intermediare.
Nivelul transport (Transportation Layer) realizează transferul datelor de la sursă la
destinaţie pe ruta stabilită de nivelul precedent cu o integritate ridicată.
Se utilizează protocoale bazate pe confirmare, care implică transmisia, retransmisia şi
recuperarea datelor eronate. Programul de pe calculatorul sursă conversând cu un
program similar de pe calculatorul destinaţie. La acest nivel canalelor logice li se
asociază adrese fizice.
179
Nivelul sesiune (Session Layer) permite legarea utilizatorului la un calculator
central care lucrează cu divizarea timpului (time sharing) şi transmiterea fişierelor
prin funcţiile de stabilire şi eliberare de conexiuni, sincronizare, raportare,
întrerupere.Pentru a evita repetarea întregului transfer în caz de eroare, inserează
periodic puncte de control de la care poate fi reluată transmisia.
Nivelul prezentare (Presentation Layer) are rolul de a elibera aplicaţiile de
diferenţele existente în reprezentarea datelor.Asigură totodată codificarea datelor
îintr-un standard corespunzător aplicaţiei.În cazul în care la transmisie se folosesc
date comprimate pentru a reduce timpul de transfer, acest nivel rezolvă
comprimarea şi decomprimarea datelor.
Nivelul aplicaţie (Application Layer) permite funcţionarea concurentă a proceselor
în vederea realizării unui obiectiv definit de utilizator, fără ca acesta să cunoască
locul unde se află procesele. Funcţiile asigurate de acest nivel sunt:lansarea
programelor, vizualizarea şi transferul fişierelor de pe întregul system,
poşta electronică.
180
Topologia magistralei CAN
CAN foloseşte topologia liniară sau magistrală (Bus Topology). În acest caz există un
singur canal de comunicaţie la care sunt conectate toate nodurile reţelei. Cablul de
legătură formează o linie de legătură de la un capăt la altul al reţelei. Acest mediu
comun de transmisie are exact două terminaţii (EN:endpoints). Fiecare nod este
conectat la canalul de comunicaţie si transmite mesaje în reţea.
Această topologie are avantajul că magistrala este încă operaţionala pentru toate
celelalte noduri, chiar şi atunci când o nod devine nefunctional.
181
Topologia magistralei CAN
În cazul în care linia principală este întreruptă , întregul segment este deconectat de
restul reţelei. Segmentele rămase rămân operaţionale, iar comunicarea dincolo de locaţia
întreruperii este imposibilă.
Din cele 7 nivele ale OSI , numai cele de
culoare albastră (1, 2, şi 7) sunt implementate
in magistrala CAN
182
Topologia magistralei CAN
Mediul de transmisie (Nivelul 1 OSI)
În general doar un singur fir este necesar pentru transferul de date (single-wire cable).
Dar cu un astfel de mediu de transmisie viteza este relative scăzută. În afară de
aceasta, toate staţiile conectate la un bus single-wire trebuie să aibă parte de conectare
la masă. Prin urmare, bus-ul single-wire este mai sensibil la bruiajele electrice
exterioare.
Mediul de transmisie folosit mai des constă în doua fire (twin - wire) torsadate pe care
se transmite semnal diferenţial. Un cablu torsadat este alcătuit din două fire înfăşurate
elicoidal , fiecare fir izolat în parte. Cablul torsadat poartă numele de twisted pair în
literatura de specialitate . Prin înfăşurarea celor două fire se elimină prin diferenţiere
zgomotul .
Ecranarea (ca de exemplu în cazul cablului coaxial), nu este necesară. Din păcate, nu
există o culoare de codificare. Prin urmare, cele două tipuri de fire pot avea culori
diferite, în funcţie de producător. Cele două fire se numesc CAN high (CAN-H) şi
CAN low (CAN-L).
183
Topologia magistralei CAN
Legătura de date (Nivelul 2 OSI)
Protocolul de comunicare care stă la baza magistralei CAN este CSMA/CD (Carrier
Sense Multiple Access with Collision Detection).
Carrier Sense Multiple Access (CSMA) este un protocol Media Access Control
(MAC) în care un nod înainte de a transmite informaţia pe magistrala comună verifică
prezenţa altui trafic de pe mediul comun de transmisie.
Dispozitivele ataşate la cablul de reţea ascultă (carrier sense), înainte de a transmite. În
cazul în care canalul este în uz, nodul aşteaptă înainte de a transmite. MA (multiple
acces) indică faptul că mai multe dispozitive pot fi conectate şi împart aceeaşi reţea.
Toate nodurile reţelei au acces egal la utilizarea reţelei, atunci când aceasta este
neutilizată. Chiar dacă dispozitivele încearcă să verifice dacă reţeaua este în uz, există o
bună şansă ca două noduri să încerce să o acceseze în acelaşi timp. În reţele mari ,
timpul de transmisie între un capăt al cablului şi celălalt este suficient cât o staţie să
încerce să acceseze reţeaua, chiar dacă deja este folosită de alt nod.
Cursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdf
Cursuri. Calculatoare de bord.pdf

More Related Content

What's hot

Misterije neobjasnjivi fenomeni_1.knjiga
Misterije neobjasnjivi fenomeni_1.knjigaMisterije neobjasnjivi fenomeni_1.knjiga
Misterije neobjasnjivi fenomeni_1.knjigazoran radovic
 
Factorial Program in C
Factorial Program in CFactorial Program in C
Factorial Program in CHitesh Kumar
 
3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本bc_rikko
 
Power point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPsPower point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPsAdrizaBera
 
Nested loop in C language
Nested loop in C languageNested loop in C language
Nested loop in C languageErumShammim
 
Operators in c language
Operators in c languageOperators in c language
Operators in c languageAmit Singh
 
2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea Calculatorului2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea CalculatoruluiVasile Filat
 
Visual Basic Programming
Visual Basic ProgrammingVisual Basic Programming
Visual Basic ProgrammingOsama Yaseen
 
Constructor and Types of Constructors
Constructor and Types of ConstructorsConstructor and Types of Constructors
Constructor and Types of ConstructorsDhrumil Panchal
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggettiLorena Rojas
 
Function template
Function templateFunction template
Function templateKousalya M
 
Exception handling in c programming
Exception handling in c programmingException handling in c programming
Exception handling in c programmingRaza Najam
 

What's hot (20)

Dictionaries in Python
Dictionaries in PythonDictionaries in Python
Dictionaries in Python
 
Misterije neobjasnjivi fenomeni_1.knjiga
Misterije neobjasnjivi fenomeni_1.knjigaMisterije neobjasnjivi fenomeni_1.knjiga
Misterije neobjasnjivi fenomeni_1.knjiga
 
Factorial Program in C
Factorial Program in CFactorial Program in C
Factorial Program in C
 
3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本3_C言語入門 - C言語の基本
3_C言語入門 - C言語の基本
 
Power point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPsPower point presentation on access specifier in OOPs
Power point presentation on access specifier in OOPs
 
Nested loop in C language
Nested loop in C languageNested loop in C language
Nested loop in C language
 
Operators in c language
Operators in c languageOperators in c language
Operators in c language
 
2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea Calculatorului2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea Calculatorului
 
Visual Basic Programming
Visual Basic ProgrammingVisual Basic Programming
Visual Basic Programming
 
Constructor and Types of Constructors
Constructor and Types of ConstructorsConstructor and Types of Constructors
Constructor and Types of Constructors
 
Data structure
 Data structure Data structure
Data structure
 
Break and continue
Break and continueBreak and continue
Break and continue
 
Programmazione ad oggetti
Programmazione ad oggettiProgrammazione ad oggetti
Programmazione ad oggetti
 
Gui programming
Gui programmingGui programming
Gui programming
 
Introduction to Input/Output Functions in C
Introduction to Input/Output Functions in CIntroduction to Input/Output Functions in C
Introduction to Input/Output Functions in C
 
Function template
Function templateFunction template
Function template
 
Operators in python
Operators in pythonOperators in python
Operators in python
 
Nested loops
Nested loopsNested loops
Nested loops
 
Exception handling in c programming
Exception handling in c programmingException handling in c programming
Exception handling in c programming
 
JAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
JAVA PROGRAMMING- GUI Programming with Swing - The Swing ButtonsJAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
JAVA PROGRAMMING- GUI Programming with Swing - The Swing Buttons
 

Similar to Cursuri. Calculatoare de bord.pdf

Despre automate programabile
Despre automate programabileDespre automate programabile
Despre automate programabileRomica Dilimot
 
Introducere
IntroducereIntroducere
Introduceregelu2001
 
curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2dertify455
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul internIulius Bors
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu paskramactar
 
Componente calculator
Componente calculatorComponente calculator
Componente calculatorLaura Vicol
 
Componentele unui-calculator-partea-i
Componentele unui-calculator-partea-iComponentele unui-calculator-partea-i
Componentele unui-calculator-partea-iBalanTatiana1
 
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electricePrincipii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electriceneculaitarabuta
 
C mpuridecomuta ie
C mpuridecomuta ieC mpuridecomuta ie
C mpuridecomuta ievre
 
Eap 203 numarator_4.0
Eap 203 numarator_4.0Eap 203 numarator_4.0
Eap 203 numarator_4.0Daniel Rosner
 
Eap 202 astabil_555_4.0
Eap 202 astabil_555_4.0Eap 202 astabil_555_4.0
Eap 202 astabil_555_4.0Daniel Rosner
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilorIulius Bors
 
Arduino capacitive sensor-robofun
Arduino capacitive sensor-robofunArduino capacitive sensor-robofun
Arduino capacitive sensor-robofunIulius Bors
 

Similar to Cursuri. Calculatoare de bord.pdf (20)

Despre automate programabile
Despre automate programabileDespre automate programabile
Despre automate programabile
 
Introducere
IntroducereIntroducere
Introducere
 
curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2curs porti logice si circuite digitale lectie curs 2
curs porti logice si circuite digitale lectie curs 2
 
236700985 ret521
236700985 ret521236700985 ret521
236700985 ret521
 
Proiect PP
Proiect PPProiect PP
Proiect PP
 
Cap01
Cap01Cap01
Cap01
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul intern
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu pas
 
Componente calculator
Componente calculatorComponente calculator
Componente calculator
 
Al meu
Al meuAl meu
Al meu
 
Aiesec University 2012-arduino
Aiesec University 2012-arduinoAiesec University 2012-arduino
Aiesec University 2012-arduino
 
Componentele unui-calculator-partea-i
Componentele unui-calculator-partea-iComponentele unui-calculator-partea-i
Componentele unui-calculator-partea-i
 
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electricePrincipii de alcătuire a schemelor de comandă a acţionărilor electrice
Principii de alcătuire a schemelor de comandă a acţionărilor electrice
 
C mpuridecomuta ie
C mpuridecomuta ieC mpuridecomuta ie
C mpuridecomuta ie
 
Bachelor thesis
Bachelor thesisBachelor thesis
Bachelor thesis
 
Eap 203 numarator_4.0
Eap 203 numarator_4.0Eap 203 numarator_4.0
Eap 203 numarator_4.0
 
Eap 202 astabil_555_4.0
Eap 202 astabil_555_4.0Eap 202 astabil_555_4.0
Eap 202 astabil_555_4.0
 
Curs calcul
Curs calculCurs calcul
Curs calcul
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilor
 
Arduino capacitive sensor-robofun
Arduino capacitive sensor-robofunArduino capacitive sensor-robofun
Arduino capacitive sensor-robofun
 

Cursuri. Calculatoare de bord.pdf

  • 1. CURSURI LA DISCIPLINA CALCULATOARE DE BORD
  • 2. 1 Sistem de automatizare cu microprocesoare Sistemul de calcul este un echipament care transformă datele de intrare în rezultate de ieşire pe baza unui algoritm - program de calcul numeric.
  • 3. 2 Sisteme de intrare iesire pentru calculatoarele de bord Subsistemul de intrare-ieşire este destinat realizării interfeţei om-maşină sau proces-maşină. - tastatura, mouse - touch-screen, joystick - camera video, microfon - display-uri (CRT, LED), afisoare cu LED - afisaje HUD (Head Up Display); - afisaje DASH - difuzoare
  • 4. 3 HUD - Head Up Display un ecran din sticlă transparentă dispus în partea superioară a panoului frontal al cabinei, prin care pilotul poate vedea şi spaţiul exterior din faţa avionului şi pe care se proiectează informaţiile considerate importante într-o anumită etapă a zborului McDonnell Douglas F/A-18 Hornet - HUD
  • 5. 4 DISPLAYAND SIGHT HELMET – CASCA DE AFIŞARE SI OCHIRE (DASH) Sistemul DASH este un sistem de ochire, montat pe casca pilotului, asigurând posibilitatea ochirii bazate pe linia de vedere (LOS - Line of Sight) a piloţilor PZL TS-11 Iskra (Polish jet trainer) - HUD
  • 6. 5 Sistem de achiziţie şi conducere În domeniul automaticii, interfeţele de proces se mai numesc generic plăci de achiziţie, nume datorat faptului că prin intermediul interfeţei de proces se realizează şi achiziţia de date. Trebuie precizat faptul că interfaţa de proces are nu numai funcţia de achiziţie ci şi funcţia de prelucrare şi transmitere către exterior a semnalelor generate de calculator. Plăcile de achiziţie fac parte din categoria generală a plăcilor de extensie (denumite şi plăci utilizator). Prin completarea configuraţiei unui calculator cu elemente din categoria interfeţelor de proces (plăci de achiziţie) şi cu software specializat se obţine un sistem de achiziţie a datelor. Datorită existenţei funcţiilor de conducere, o denumire mai apropiată de realitate este cea de sistem de achiziţie şi conducere.
  • 7. 6 O interfaţă de proces este alcătuită din trei componente de bază: conectorul, care asigură legătura mecanică/electrică între cablajul calculatorului şi cablajul exterior, dispozitivul de cuplare care joacă rolul de interfaţă electrică cu senzorii şi elementele de execuţie şi adaptorul de interfaţă care asigură conectarea la magistrala calculatorului. Calculator cu unitate integrată de interfaţă de proces
  • 8. 7 Structura generală a unei interfeţe de proces definiție O unitate de interfaţă este alcătuită din plăci şi module detaşabile care pot realiza diferite tipuri de cuplare la proces. În principiu, fiecare dintre aceste plăci sau module asigură funcţii care permit adaptarea sistemului de calcul la proces. Prin alegerea corespunzătoare a acestor module se realizează aplicaţia concretă de achiziţie şi conducere. Aceste module flexibile asigură funcţionalitatea interfeţei prin implementarea următoarelor subsisteme: - intrări analogice - ieşiri analogice - intrări/ieşiri numerice - numărare, temporizare (generator de intervale de timp)
  • 9. 8 Structura generală a unei interfeţe de proces Structura generală a unei interfeţe de proces
  • 10. 9 Structura sistemului ieşirilor analogice Sistemul de ieşiri analogice este o componentă a interfeţelor de proces destinată transmiterii spre proces a comenzilor în formă analogică, elaborate în urma rulării unor programe care implementează algoritmii de conducere. Sistemul de ieşiri analogice conţine în mod necesar convertoare numeric- analogice (CNA sau DAC – Digital to Analog Converter). Zonele tampon T (buffere) păstrează valoarea numerică a comenzii. În unele cazuri ieşirea CNA (semnal de tip tensiune) este convertită în semnal de curent prin convertoare tensiune/curent U/I.
  • 11. 10 Sistemul de interfaţă ieşiri numerice Acest sistem este o componentă a interfeţei de proces care este destinată transmiterii spre proces a comenzilor numerice. Comenzile sunt de obicei în formă binară, de tip tren de impulsuri, frecvenţă de impulsuri, durată de impuls. Sistemul ieşirilor numerice conţine şi amplificatoare de putere şi circuite de separare galvanică. Sistemul de interfaţă intrări analogice Este o componentă a interfeţei de proces destinată interfaţării sistemului de conducere cu semnalele analogice din proces. Acestea se prezintă de regulă sub formă de semnale de curent continuu: intensitate (0-20 mA, 2- 10 mA, 4-20 mA etc.) sau tensiune (de nivel mic: 10-20 mV, -10 – +10 mV, de nivel mediu: 0 – 10 V, 2 – 10 V, 0 – 20 V, de nivel mare 0–100 V).
  • 12. 11 Componentele sistemului analogic sunt: • elementul de conectare (EC) care are rolul de a conecta la sistem conductoarele care transportă semnalul analogic de la proces; • elementele de tratare primară a informaţiei (ETP) destinate unor prelucrări care nu necesită amplificare (conversii curent/tensiune, filtrare);
  • 13. 12 • multiplexorul (MUX) care permite selectarea unuia din cele n canale analogice; • amplificatorul (A) care adaptează nivelul semnalului de intrare selectat de multiplexor şi impedanţa canalului la elementul următor; • elementul de eşantionare şi reţinere (EER) (sau circuit Sample/Hold) care are rolul de a păstra constantă valoarea eşantionului de tensiune pe durata conversiei analog-numerice;
  • 14. 13 • convertorul analogic-numeric (CAN sau ADC – Analog to Digital Converter) care converteşte în formă numerică valoarea analogică a informaţiei pe canalul selectat; • bufferul T care este necesar conectării ieşirii CAN la magistrala sistemului de conducere; • blocul de comandă BC care asigură coordonarea operaţiilor care se desfăşoară în sistem.
  • 15. 14 Sistemul de interfaţă intrări numerice Sistemul intrărilor numerice este un subsistem al interfeţelor de proces care are rolul de a colecta din proces informaţiile de formă numerică (semnale binare, tren de impulsuri) sau cvasinumerică (durată de impuls, frecvenţa impulsurilor).
  • 16. 15 Principalele elemente componente ale sistemului sunt: • elementul de conectare (EC); • elementele de tratare primară a informaţiei (ETP) - izolare galvanică, filtrări şi protecţii • multiplexorul (MUX) cu ajutorul căruia se selectează un semnal sau un grup de semnale • bufferul de conectare la magistrală (T); • blocul de comandă BC care asigură secvenţializarea corectă a operaţiilor din sistemul de intrări numerice
  • 17. 16 A350 XWB Slat Flap Control Computer PU-3000 series of Avionics Computers
  • 18. 17 Noțiuni de Arhitectura Calculatoarelor Stocarea datelor Calculatoarele utilizate în prezent reprezintă informaţiile ca şiruri de biţi. Un bit (binary unit - cifră binară) reprezintă una din cifrele 0 sau 1, pe care în acest context le vom considera mai degrabă simboluri decât numere. Stocarea unui bit într-un calculator necesită un dispozitiv care să poată să se afle într-una din cele două stări, ca de exemplu un întrerupător (pornit sau oprit), un releu (deschis sau închis) sau un steag de start (ridicat sau coborât). Una dintre cele două stări este utilizată pentru reprezentarea simbolului 0, iar cealaltă pentru reprezentarea simbolului 1.
  • 19. 18 Porţi logice şi circuite basculante bistabile Definiție Operaţiile care lucrează cu valorile adevărat/fals sunt denumite operaţii booleene (Boolean operations), după numele matematicianului George Boole. Un dispozitiv care produce rezultatul unei operaţii booleene atunci când i se aplică intrările operaţiei este denumit poartă logică (gate). Porţile logice pot fi realizate utilizându-se o largă varietate de tehnologii, cum ar fi dispozitive mecanice, relee sau dispozitive optice. Calculatoarele de astăzi implementează de obicei porţile logice prin intermediul unor circuite electronice de mici dimensiuni în care valorile 0 şi 1 sunt reprezentate prin niveluri diferite de tensiune electrică.
  • 20. 19 Porţi logice şi circuite basculante bistabile scheme
  • 21. 20 Circuit basculant bistabil simplu Un circuit basculant bistabil (flip-flop) este un circuit care are la ieşire una din două valori posibile; ieşirea lui rămâne stabilă până când un impuls temporar de la alt circuit are ca efect comutarea lui la cealaltă valoare.
  • 22. 21 Circuit basculant bistabil simplu Atâta timp cât ambele intrări ale circuitului rămân la valoarea 0, ieşirea (fie 0 sau 1) nu se va modifica. În schimb plasarea temporară a unui 1 pe intrarea de sus va forţa ieşirea să treacă în 1, în timp ce plasarea unui 1 pe intrarea de jos va forţa ieşirea în 0.
  • 23. 22 Setarea ieşirii circuitului basculant bistabil la valoarea 1 Intrarea de sus este trecută în 1 Aceasta provoacă trecerea ieşirii porţii OR în 1 şi astfel ieşirea porţii AND devine 1
  • 24. 23 Valoarea 1 de la ieşirea porţii AND menţine poarta OR în starea precedentă, după ce intrarea de sus revine la 0 Ieşirea circuitului basculant bistabil devine 1 şi această valoare va fi menţinută şi după ce intrarea de sus revine la 0. Similar, plasarea temporară a valorii 1 pe intrarea de jos va forţa ieşirea circuitului basculant bistabil la valoarea 0, ieşirea rămânând în această stare şi după ce intrarea revine la valoarea 0.
  • 25. 24 Importanţa unui circuit basculant bistabil : constă în faptul că acesta este ideal pentru stocarea unui bit în calculator. Valoarea stocată într-un circuit basculant bistabil poate fi citită şi modificată cu uşurinţă prin intermediul altor circuite electronice. Altă metodă de realizare a unui circuit basculant bistabil
  • 26. 25 Sistemul de notaţie hexazecimal Atunci când ne referim la activităţile din interiorul unui calculator, trebuie să lucrăm cu şiruri de biţi, care pot fi uneori foarte lungi. Din nefericire mintea umană întâmpină dificultăţi la manevrarea unor asemenea lucruri. Chiar şi numai transcrierea şirului 101100101100011 este propice erorilor. De aceea, pentru a simplifica reprezentarea şirurilor de biţi, vom utiliza o notaţie prescurtată denumită notaţie hexazecimală (hexadecimal notation). Notaţia hexazecimală utilizează un singur simbol pentru a reprezenta patru biţi, ceea ce înseamnă că, de exemplu un şir de doisprezece biţi poate fi scris utilizând numai trei simboluri.
  • 27. 26 • şirul de 16 biţi 1010010011001000 poate fi redus la mult mai acceptabila formă A4C8
  • 28. 27 În scopul stocării datelor, un calculator conţine un mare număr de circuite, fiecare dintre ele fiind capabil să stocheze un bit. Acest rezervor de biţi este cunoscut sub numele de memorie principală a calculatorului (main memory). Circuitele de stocare din memoria principală a calculatorului sunt organizate în unităţi denumite celule (sau cuvinte), dimensiunea uzuală a unei celule fiind de opt biţi. De fapt, şirul de biţi de lungime opt a devenit atât de popular încât pe de o parte a dus la apariţia termenului octet, iar pe de altă a impus pentru cuvântul byte sensul de şir de biţi de această lungime. Pentru identificarea celulelor individuale din memoria principală a unui calculator, fiecare are atribuit un nume unic, denumit adresă.
  • 29. 28 Semnificatia celulei este aceea că este cea mai mică unitate adresabilă. În ultimii ani, producatorii de calculatoare au standardizat locaţia la 8 biţi şi au denumit-o byte. Bytes sunt grupaţi în words. Un calculator cu 32 bit/word are 4 bytes/ word, iar un calculator cu 64 bit/word are 8 bytes/word. Semnificaţia unui cuvant (word) este aceea că majoritatea instrucţiunilor operează pe un numar întreg de cuvinte (words), de exemplu grupând două cuvinte împreună. Deci o maşină pe 32 biţi va avea regiştrii de 32 biţi şi instrucţiuni pentru manipularea cuvintelor de 32 biţi, iar una pe 64 biţi va avea regiştrii pe 64 biţi şi instrucţiuni pentru mutarea, adunarea, scăderea şi alte manipulari pe cuvinte de 64 biţi.
  • 30. 29 Octet ordonat Un octet într-un cuvânt poate fi numărat de la stânga la dreapta sau de la dreapta la stânga. Sistemele în care număratoarea începe cu 'big', adică cu ponderea mare, este denumit generic big endian, iar celelalte little endian. Se face trimitere la gluma din Gulliver legată de disputa “la care cap trebuie spart oul?”!
  • 31. 30 Vom considera biţii dintr-o celulă de memorie ca fiind aranjaţi pe un rând. Vom denumi un capăt al acestui rând marginea superioară şi celălalt capăt marginea inferioară. Cu toate că într-un calculator nu există stânga sau dreapta, ne vom imagina biţii aranjaţi într-un rând orientat de la stânga la dreapta cu marginea superioară plasată la stânga. Bitul de la acest capăt este adesea denumit cel mai semnificant bit; similar, bitul de la celălalt capăt este denumit bitul de la marginea inferioară sau cel mai puţin semnificativ bit.
  • 32. 31 O consecinţă importantă a ordonării celulelor în memoria principală, precum şi a biţilor în interiorul fiecărei celule este aceea că toţi biţii din principală a unui calculator sunt ordonaţi într-un unic şir lung. Astfel, părţi din acest şir pot fi utilizate pentru stocarea de şiruri de biţi care pot fi mai mari decât lungimea unei singure celule. În particular, dacă memoria este împărţită în celule de dimensiunea unui octet, putem stoca un şir de 16 biţi utilizând pur şi simplu două celule de memorie consecutive.
  • 33. 32 Reprezentarea caracterelor alfanumerice Reprezentarea caracterelor alfanumerice in calculatoarelor a evoluat de-a lungul timpului si pe masura ce aplicatiile s-au diversificat s-a realizat si o standardizare a acesteia. Institutul American Naţional pentru Standarde (American National Standards Institute - ANSI) a adoptat codul American Standard Code for Information Interchange (ASCII) Codul Unicode - A fost creat de consortiul Unicode in scopul de a extinde numarul de caractere, astfel incat sa fie standardizate si caracterele altor limbi decat cele latine.(https://en.wikipedia.org/wiki/Unicode)
  • 35. 34 Reprezentarea valoriilor numerice Stocarea valorii reprezentate în baza doi (binar).
  • 37. 36 Algoritm pentru aflarea reprezentării în binar a unui număr întreg pozitiv Pasul 1: Se împarte valoarea la doi şi se memorează restul împărţirii. Pasul 2: Cât timp câtul obţinut este diferit de zero, se continuă împărţirea noului cât la doi memorându-se restul. Pasul 3: Când s-a obţinut un cât egal cu zero, reprezentarea în binar a valorii iniţiale constă din resturile împărţirilor, afişate de la stânga în care au fost memorate.
  • 38. 37 Calculatoare de bord Notiuni de Arhitectura Calculatoarelor
  • 39. 38 Reprezentarea Numerelor cu Semn N –număr binar N  bn1bn2...b1b0 ,b1...bm bi 0,1  Reprezentare codificată a numerelor cu semn: 1.Codificarea semnului: bs=0 dacă N>0 bs=1 dacă N<0 2.Codificarea valorii numărului: Codificare directă Reprezentare în complement față de 2 Reprezentare în complement față de 1
  • 40. 39 codul direct Numerele întregi se reprezintă prin mărime (valoare absolută) şi semn. Pentru numerele negative, bitul cel mai semnificativ (de semn) este 1, iar celalţi n-1 biţi servesc pentru reprezentarea valorii absolute a numărului. Ex.:N = -5 pe 8 biţi => 10000101 codul invers (complement faţă de 1) Pentru numerele negative, bitul de semn este 1, ceilalţi n-1 biţi servind pentru reprezentarea valorii absolute negate a numărului. Negarea se realizează la nivel de bit: biţii 0 devin 1 şi biţii 1 devin 0. Ex.:N = -5 pe 8 biţi => 11111010
  • 41. 40 codul complementar (complement faţă de 2) Pentru reprezentarea numerelor negative se aplică următoarea regulă de complementare: se reprezintă numărul în valoare absolută, apoi se inversează bit cu bit, inclusiv bitul de semn (care devine 1) şi se adună 1 la rezultatul obţinut. Deci, complementul faţă de 2 se obţine din complementul faţă de 1, la care se adaugă 1. Ex.:N = -5 pe 8 biţi se reprezintă astfel: |N| = 5, adică 00000101 prin inversare devine 11111010+ 1 11111011
  • 42. 41 Sistem de notaţie în complement faţă de doi utilizând cuvinte binare de lungime 4
  • 43. 42 cod în exces Această codificare constă în adunarea unei valori constante la fiecare număr întreg (pozitiv sau negativ) care se reprezintă. Valoarea constantă notată E care se adună, este de regulă 2^(n-1), cu n numărul de biţi ai reprezentării. Matematic, un număr întreg N se reprezintă în cod exces E prin: E + N. Ex.: Numerele N1 = 5 şi N2 = -5 se reprezintă pe n = 8 biţi, în exces 2^7 = 128, prin: 128 + 5 = 133 respectiv 128 + (-5) = 123 E 10000000 10000000 N 00000101 11111011 10000101 01111011
  • 44. 43 Sistem de notaţie în exces care utilizează cuvinte cu lungimea de trei biţi
  • 45. 44 Tabelul de conversie pentru sistemul de notaţie în exces cu opt
  • 46. 45 Fie D domeniul de numere întregi ce se pot reprezenta pe n biţi: D = [-2^(n-1), 2^(n-1)-1]. Utilizând codul exces 2^(n-1), domeniul D se transformă în domeniul de valori pozitive D’ = [0, 2^n-1]. Deci, codul în exces poate transforma un domeniu de numere algebrice într-un domeniu de numere aritmetice. Avantajul este că operaţiile cu numere aritmetice se implementează mai simplu (în hardware sau în software) decât operaţiile cu numere algebrice.
  • 47. 46 Adunarea numerelor reprezentate în complement faţă de doi Operaţiile de adunare şi scădere se reduc la operaţia de adunare a numerelor reprezentate în cod complementar. Se adună cei doi operanzi bit cu bit, inclusiv biţii de semn, iar eventualul transport care rezultă de la bitul de semn se va neglija. Rezultatul este obţinut în cod complementar. Exemple: x = 9, y = 5 00001001+ 9 + 5 = 14 00000101 00001110
  • 48. 47 x = 9, y = -5 Mai întâi vom reprezenta -5 în complement faţă de doi: -5 => 11111011 După care realizăm adunarea: 00001001+ 9 - 5 = 4 11111011 00000100 x = 5, y = -9 y = -9 în complement faţă de 2 va fi: -9 => 11110111 00000101+ 5 – 9 = -4 11110111 11111100
  • 49. 48 Rezultatul obţinut este negativ (bitul de semn are valoarea 1), reprezentat în complement faţă de 2. Pentru a afla valoarea absolută a rezultatului va trebui să îl complementăm din nou faţă de 2. Prin inversare se obţine: 00000011+ 1 00000100 = 4
  • 50. 49 Problema depăşirii superioare O problemă pe care am evitat-o în problemele precedente este aceea că în oricare dintre sistemele de numeraţie pe care le-am prezentat există o limită privind mărimea pe care pot s-o reprezinte valorile. Atunci când utilizăm notaţia în complement faţă de doi cu cuvinte de patru biţi, valoarea 9 nu are asociată nici un şablon, aşa că nu este nici o şansă să obţinem un răspuns corect la efectuarea adunării 5 + 4. De fapt, rezultatul vafi –7. Atunci când utilizăm notaţia în complement faţă de doi, eroarea de depăşire superioară poate apărea la adunarea a două valori pozitive sau la adunarea a două valori negative. În fiecare dintre cazuri, depăşirea poate fi detectată prin verificarea bitului de semn a răspunsului. Aceasta înseamnă că este semnalată depăşirea superioară dacă adunarea a două valori pozitive produce ca rezultat un şablon ce corespunde unei valori negative sau dacă rezultatul adunării a două valori negative apare ca fiind pozitiv.
  • 51. 50 Virgulă fixă (Fixed Point - FXP) – separatorul între partea întreagă și partea zecimală are o poziție fixă. Virgulă mobila (Floating Point - FLP) – când numărul este compus din mantisă și exponent (𝑚 ∙ 𝑟𝑒). r = baza de numerație (de obicei 2), m = mantisa (fractie) e = exponent (întreg)
  • 52. 51 In virgulă fixă (radix point): reprezentarea binară conţine un punct care are acelaşi rol ca şi virgula utilizată în notaţia zecimală. Decodificarea reprezentării binare 101.101 Tehnicile aplicate la sistemul de numeraţie în baza zece se pot folosi de asemenea şi în binar.
  • 53. 52
  • 54. 53 Notaţia în virgulă mobilă Numerele care intervin în calcule sunt numere nu neapărat întregi, unele sunt foarte mari, altele foarte mici, şi eventual cu multe cifre semnificative. De aceea este necesară o reprezentare a lor în care să se facă distincţie între ordinul de mărime şi precizie (numărul de cifre semnificative). În notaţia ştiinţifică, un număr este reprezentat astfel: N = M * 10E, unde E este exponentul, un număr întreg pozitiv sau negativ, ce determină ordinul de mărime al numărului, iar M este mantisa, un număr fracţionar, ce determină precizia numărului. Echivalentul în calculator al acestei notaţii este formatul cu virgulă mobilă, folosit pentru reprezentarea numerelor reale din matematică.
  • 55. 54 Nu există o corespondenţă biunivocă între numerele reale şi numerele în virgulă mobilă. Cele mai importante diferenţe între numerele reale din matematică şi numerele reprezentate în virgulă mobilă sunt domeniul finit şi mulţimea discretă de valori. Domeniul finit şi discret este determinat de capacitatea fizică limitată a memoriei calculatorului. Numerele se reprezintă în formatul cu virgulă mobilă prin bitul de semn al numărului, exponent şi mantisă: De remarcat faptul că informaţia care nu se modifică nu se reprezintă. Astfel avem baza de numeraţie şi virgula, a cărei poziţie a fost stabilită prin convenţie
  • 56. 55 Exemplu care utilizează numai un octet pentru efectuarea stocării. Vom considera cel mai semnificativ bit din cadrul octetului ca fiind bitul de semn. Din nou, bitul de semn egal cu 0 înseamnă că valoarea stocată este pozitivă, iar 1 înseamnă că valoarea este strict negativă. Împărţim apoi cei şapte biţi rămaşi în două grupuri dau câmpuri, câmpul exponentului (exponent field) şi câmpul mantisei (mantissa field). Să considerăm cei trei biţi care urmează după bitul de semn ca fiind câmpul exponentului, iar cei patru biţi rămaşi ca fiind câmpul mantisei.
  • 57. 56 Să presupunem că un octet conţine şirul de biţi 01101011. Analizând acest cuvânt conform formatului precedent, putem vedea că bitul de semn este 0, exponentul este 110, iar mantisa este 1011. Pentru a decodifica octetul, extragem mai întâi mantisa şi plasăm o virgulă (punct) zecimală la stânga ei, obţinând .1011 Apoi, extragem conţinutul câmpului exponentului (110) şi-l interpretăm ca pe un întreg stocat utilizând metoda în exces pe trei biţi În acest caz, cuvântul binar din câmpul exponentului reprezintă valoarea pozitivă 2. Acest fapt ne precizează că trebuie să mutăm virgula la dreapta cu doi biţi. (Un exponent negativ înseamnă că virgula trebuie deplasată la stânga.) În consecinţă, obţinem 10.11 care înseamnă 2 3/4. Observăm apoi că bitul de semn din exemplul considerat este 0; valoarea reprezentată este pozitivă. Vom trage concluzia că 01101011 reprezintă valoarea 2 3/4.
  • 58. 57 Să luăm alt exemplu, anume octetul 10111100. Extragem mantisa, obţinem .1100 şi mutăm virgula cu un bit la stânga, deoarece câmpul exponentului (011) reprezintă valoarea –1. Acum avem .01100 care reprezintă 3/8. Deoarece bitul de semn din cuvântul iniţial este 1, valoarea stocată este negativă. Tragem concluzia că 10111100 reprezintă valoarea – 3/8.
  • 59. 58 Pentru a stoca o valoare utilizând notaţia în virgulă mobilă, vom inversa procesul prezentat anterior. De exemplu, pentru a codifica valoarea 1 1/8 o vom exprima mai întâi în notaţie binară, obţinând 1.001. Vom copia apoi cuvântul binar în câmpul rezervat mantisei de la stânga la dreapta, începând cu primul bit diferit de zero din reprezentarea binară. În acest moment octetul arată astfel: _ _ _ _ 1 0 0 1 Câmpul exponentului: ne vom imagina conţinutul câmpului mantisei având o virgulă zecimală la stânga şi vom determina numărul de biţi şi direcţia în care trebuie să fie deplasată virgula pentru a se obţine numărul binar iniţial. În exemplul nostru, observăm că virgula din .1001 trebuie deplasată cu un bit la dreapta pentru a se obţine 1.001. Deoarece din această cauză exponentul trebuie să aibă valoarea pozitivă 1, vom plasa combinaţia 101 (care este reprezentarea valorii pozitive 1 în notaţia în exces cu patru) în câmpul exponentului. În final vom scrie 0 în bitul de semn, deoarece valoarea stocată este zero. La sfârşit octetul arată astfel: 0 1 0 1 1 0 0 1
  • 60. 59 Utilizarea notaţiei în exces reduce operaţia de comparare a mărimii relative a două valori la simpla parcurgere a reprezentărilor de la stânga la dreapta, până la întâlnirea primului bit care diferă. De exemplu, dacă ambii biţi de semn sunt zero, cea mai mare dintre cele două valori este aceea care are 1 pe poziţia primului bit care diferă la parcurgerea de la stânga la dreapta celor două cuvinte. Astfel, dacă 00101010 şi 00011001 sunt reprezentări în virgulă mobilă, vom putea afirma că prima reprezentare corespunde unei valori mai mari, fără a trebui să determinăm mai întâi valorile care corespund efectiv celor două reprezentări.
  • 61. 60 Erori de rotunjire Să studiem acum ce se întâmplă dacă încercăm să stocăm valoarea 2 5/8 utilizând sistemul în virgulă mobilă pe un octet (prezentat anterior). Scriem mai întâi valoarea 2 5/8 în binar, cea ce conduce la 11.101. Însă atunci când vom copia acest rezultat în câmpul mantisei, vom descoperi că nu avem suficient spaţiu şi ca urmare ultimul 1 (cel care corespunde ultimului 1/8) se va pierde.
  • 62. 61
  • 63. 62 Dacă ignorăm această problemă şi continuăm cu completarea câmpului exponentului şi a bitului de semn, vom obţine cuvântul 01101010, care reprezintă valoarea 2 1/2, în loc de 2 5/8. Ceea ce s-a întâmplat poartă numele de eroare de rotunjire (round-off error), cauzată în acest caz de faptul că lungimea câmpului mantisei este de patru biţi, în timp ce pentru păstrarea preciziei de reprezentare este necesar un câmp de cinci biţi. Soluţia evidentă pentru evitarea acestei probleme constă în creşterea dimensiunii câmpului mantisei, adică exact cea ce se face în cazul calculatoarelor reale.
  • 64. 63 O altă sursă de erori de rotunjire este problema valorilor cu număr infinit de zecimale (periodice), cum ar fi de exemplu situaţia în care încercăm să exprimăm fracţia 1/3 în formă zecimală. Diferenţa dintre notaţia zecimală utilizată de noi în mod curent şi notaţia binară este aceea că în binar există mai multe valori care au reprezentări cu o infinitate de cifre. De exemplu, valoarea de o zecime este periodică atunci când este exprimată în binar (.0001100110011...). Să presupunem că ni se cere să adunăm următoarele trei valori utilizând notaţia în virgulă mobilă pe un bit (definită anterior): 2 1/2 + 1/8 + 1/8.
  • 65. 64 Dacă adunăm valorile în ordinea afişată, vom aduna mai întâi 2 1/2 şi 1/8 şi vom obţine 2 5/8, care în binar este 10.101. Din nefericire, deoarece această valoare nu poate fi stocată cu acurateţe (după cum am văzut mai înainte), rezultatul primei operaţii va fi memorarea valorii 2 ½ (care coincide cu primul termen al adunării). Următorul pas este să adunăm acest rezultat cu ultimul 1/8. Va apărea din nou o eroare de rotunjire, iar rezultatul final devine greşit 2 1/2. Să efectuăm acum operaţiile în ordine inversă. Adunăm mai întâi 1/8 cu 1/8 şi obţinem 1/4. În notaţia binară aceasta reprezintă .01; astfel încât rezultatul primei adunări va fi stocat pe un octet ca 00111000, memorarea făcându-se fără erori. Adunăm acum 1/4 cu ultima valoare rămasă, respectiv 2 1/2, şi obţinem 2 3/4, rezultat ce poate fi stocat exact pe un octet sub forma 01101011. De data aceasta am obţinut rezultatul corect.
  • 66. 65 Atunci când sunt adunate valori reprezentate în notaţia în virgulă mobilă, ordinea în care se fac operaţiile poate fi extrem de importantă. Regula generală este ca întotdeauna să fie adunate mai întâi valorile cele mai mici; totuşi, nici măcar acest mod de lucru nu garantează corectitudinearezultatului.
  • 67. 66 Calculatoare de bord Notiuni de Arhitectura Calculatoarelor
  • 68. 67 Arhitectura elementară a calculatorului Senumeștesistemdecalculoricesistemcareestecapabilsărealizeze următoarele obiective: 1.să accepte intrări care reprezintă o formă codificată de informație(date de intrare sau operanzi); 2.să prelucreze datele conform unui algoritm; 3.săfurnizezelaieșireinformațiile(datedeieșiresaurezultate)într-o formă accesibilă omului sau altui calculator.
  • 69. 68 Schema celor 5 unitati
  • 70. 69 Manipularea datelor. Unitatea centrală de prelucrare. Regiştri. Interfaţa CPU/Memorie Unitate centrală de prelucrare (Central Processing Unit - CPU). Această unitate constă din două părţi: unitatea aritmetico – logică (Arithmetic/Logic Unit), care conţine circuitele care realizează manipularea datelor, şi unitatea de comandă (Control Unit), care conţine circuitele utilizate pentru coordonarea activităţilor maşinii. Pentru stocarea temporară a informaţiilor, unitatea centrală de prelucrare conţine celule, denumite regiştri (registers)/registre, care sunt similare cu celulele memoriei principale a calculatorului.
  • 71. 70 Aceşti regiştri pot fi clasificaţi ca fiind regiştri de uz general(general - purpose registers) şi regiştri speciali (special - purpose registers). Regiştrii de uz general servesc la stocarea temporară a datelor care sunt manipulate de CPU. Ei memorează intrările circuitelor unităţii aritmetico-logice şi furnizează spaţiu pentru memorarea rezultatelor produse de aceasta. Pentru a putea efectua o operaţie cu nişte date stocate în memoria principală, unitatea de comandă trebuie să transfere datele din memorie în regiştrii de uz general, să informeze apoi unitatea aritmetico-logică în careregiştriianume sunt stocate datele, să activeze circuitele adecvate din unitatea aritmetico-logică şi să-i indice acesteia în ce registru să depună rezultatul operaţiei. Regiştrii sunt folosiţi pentru stocarea datelor imediat necesare pentru realizarea unei operaţii; Memoria principală este destinată stocării datelor care vor fi necesare în scurt timp;
  • 72. 71 Dispozitivele de stocare de masă sunt utilizate pentru stocarea pe termen lung a datelor. În multe calculatoare, la această ierarhie se adaugă un nivel suplimentar, denumit memorie cache (cache memory). Memoria cache este o memorie de mare viteză, cu timpi de răspuns similari celor ai regiştrilor unităţii centrale de prelucrare, situată adesea în interiorul CPU. Calculatorul stochează în această memorie o copie a acelei porţiuni din memoria pe care o utilizează în momentul respectiv. Astfel, transferurile de date care în mod normal s-ar fi făcut între regiştri şi memoria principală se fac de fapt între regiştri şi memoria cache. Modificările sunt apoi transferate în bloc în memoria principală în momente libere.
  • 73. 72 Ierarhia Memoriei Memoria unui calculator este acea unitate a unui calculator care permite înscrierea, păstrarea şi redarea unor date sau programe codificate binar. Indiferent de tehnologia în care este realizată, orice memorie prezintă câteva proprietăți specifice șianume: •Capacitate–cantitatea maximă de informație ce poate fi păstrată înmemorie la un moment dat. Se măsoară de obicei în biți. •Timp de acces –timpul scurs între momentul activării comenzii de citire și momentul în care informația este disponibilă la ieșirea d i nmemorie. •Prețuldecostpeunitateadeinformație–prețuldecostalunuiblocde memorie /capacitatea blocului.
  • 74. 73 •Tendința a fost mereu de creștere a capacității și de scădere a timpuluideaccesșiaprețuluidecost pe unitatea informațională. U n timp de acces mai mic presupune însă o creștere a prețului de cost p e unitateainformațională,decicerințeleimpusecelortreimăriminupotfi satisfăcute simultan. •Idealul ar fi o memorie cu un timp de acces care să permita citirea informației pe un singur impuls de tact al procesorului și cu o capacitate foarte mare dar aceasta ar însemna un preț de cost prohibitiv și probleme de disipare a căldurii foarte greu sau chiar imposibil de rezolvat. •Dinaceastăcauzăsoluțiarealistăs-adovedituncompromis,obținut prin implementarea blocului de memorie sub forma unei ierarhii de nivele astfel încât nivelele apropiate de procesor să aibă un timp de accesșiocapacitatemicăiarnivelelemaiîndepărtatesăofereuntimp de acces mai mare dar și o capacitate din ce în ce mai mare. •Ierarhia memoriei este o structură cu mai multe nivele organizată astfel încât datele de la un nivel să poată fi copiate la un moment dat numai într-un nivel adiacen
  • 75. 74
  • 76. 75
  • 77. 76 •Registrele – sunt elementele de memorie cu cel mai mic timp de acces dar și cu cea mai mică capacitate (sute sau mii de biți), fiindplasate în interiorul procesorului. Majoritatea instrucțiunilor procesorului pot accesa direct un registru. •Memoriacache– esteunnivelintermediarîntreprocesorșimemoria principală cu un timp de acces bun dar și o capacitate relativ mică. Laora actuală este divizată în trei nivele notate L1, L2, L3. L1 are cel mai bun timp de acces și capacitatea cea mai mică iar L3 cea mai mare capacitate dar și cel mai mare timp de acces. La unele procesoare folosite în aplicații dedicate, memoria cache poate sălipsească sau are un singur nivel. Nivelul L1 poate fi plasat în procesor. Memoria cache este realizată cu circuite integrate RAM static (SRAM).
  • 78. 77 •Memoria principală –Este cel mai important bloc deoarece are o capacitate foarte mare (până la zeci de Gbiţi) și păstrează toate programele în curs de execuție și datele aferente. Timpul de acces este mediu (zeci sau sute nanosecunde). La ora actuală se utilizează în special memorii DRAM dar în anumite situații, dacă nu este necesară o capacitate mare se pot utiliza și memorii RAM statice (SRAM). Memoria cache și memoria principală sunt memorii volatile (informația se pierde dacă memoria nu mai este alimentată cu energie). •Memoria secundară –memorie permanentă cu acces aleator, sub formă de circuite integrate (ROM sau flash), discuri magnetice, discuri optice, SSM (Solid State Memory), memorie în rețea etc. Are capacitate practic nelimitată și un timp de acces foarte mare (până la ordinul milisecundelor).
  • 80. 79 Pentru transferarea cuvintelor binare între unitatea centrală a unui calculator şi memoria principală, acestea sunt conectate printr-o magistrală (bus). Prin intermediul magistralei, unitatea centrală de prelucrare poate să extragă (să citească) date din memoria principală, furnizând adresa celulei de memorie dorite, împreună cu un semnal de citire. Similar, CPU poate plasa (scrie) date în memorie indicând adresa celulei de memorie destinaţie şi datele care trebuie stocate, împreună cu un semnal de scriere.
  • 81. 80 Dacă analizăm acest mecanism, constatăm că efectuarea unei operaţii cum ar fi adunarea datelor stocate în memoria principală înseamnă mai mult decât execuţia unei simple operaţii de adunare. Procesul presupune atât implicarea unităţii de comandă, care coordonează transferul informaţiilor către regiştri şi memoria principală, cât şi a unităţii aritmetico-logice, care efectueazăoperaţia de adunare atunci când unitatea de comandă îi cere acest lucru.
  • 82. 81 Instrucţiuni în cod maşină, Instrucţiuni de tranfer de date, Instrucţiuni aritmetice şi logice, Instrucţiuni de control Instrucţiuni pe care o unitate centrală de prelucrare uzuală trebuie să le poate executa - asemenea instrucţiuni sunt denumite instrucţiuni în cod maşină (machine instructions). Atunci când ne referim la instrucţiunile cunoscute de un calculator, este util ca să observăm că ele pot fi clasificate în trei categorii:grupul instrucţiunilor de transfer, grupul instrucţiunilor aritmetico-logice şi grupul instrucţiunilor de control. Primul grup de instrucţiuni conţine instrucţiunile necesare pentru deplasarea datelor dintr-un loc în altul. Ca şi în cazul memoriei principale, nu se obişnuieşte ca datele care sunt transferate într-o locaţie oarecare din calculator să fie şterse din locaţia iniţială. Din acest punct de vedere, termenul de transfer (tranfer) sau mutare
  • 83. 82 (move), deşi utilizat frecvent, este inadecvat, mai degrabă fiind potriviţi termeni, cum ar fi copiere (copy) sau clonare (clone). Legat de terminologie, trebuie să menţionăm că atunci când ne referim la transferul datelor între CPU şi memoria principală a calculatorului se utilizează termeni speciali. Cererea de încărcare a unui registru de uz general nu conţinutul unei celule de memorie este desemnată ca o instrucţiune LOAD; invers, transferul conţinutului unui registru într- o celulă de memorie se face prin intermediul unei instrucţiuni STORE. Grupul instrucţiunilor aritmetice şi logice constă din instrucţiunile care indica unităţi de comandă să solicite unităţii aritmetico-logice efectuarea unei anumite operaţii. Aşa cum sugerează şi numele, unitatea aritmetico-logică este capabilă să efectueze şi alte operaţii în afara operaţiilor aritmetice elementare. Unele dintre aceste operaţii sunt operaţiile logice AND, OR şi XOR. Un alt grup de operaţii care se pot efectua în cadrul unităţii aritmetico-logice permite deplasarea
  • 84. 83 la dreapta sau la stânga a conţinutului regiştrilor. Aceste operaţii sunt denumite SHIFT sau ROTATE, după cum sunt trataţi biţii care ies din registru prin deplasarea conţinutului:biţii sunt pur şi simplu eliminaţi (SHIFT) sau sunt folosiţi pentru completarea golului care apare la celălalt capăt al registrului (ROTATE). Grupul instrucţiunilor de control conţine acele instrucţiuni care nu manipulează date, ci dirijează modul de execuţie al programului. Această categorie de instrucţiuni conţine multe dintre cele mai interesante instrucţiuni din limbajul calculatorului, cum ar fi familia de instrucţiuni de salt JUMP (sau BRANCH), care sunt utilizate pentru a face ca unitatea de comandă să execute altă instrucţiune decât cea care urmează. Există două variante de instrucţinui JUMP : salturi necondiţionate şi salturi condiţionate. Diferenţa este aceea că o instrucţiune de salt condiţionat efectuează saltul numai dacă este îndeplinită o anumită condiţie
  • 85. 84 Stocarea programelor, Instrucţiunile ca şiruri de biţi In mod similar datelor, un program poate fi codificat şi stocat în memoria principală a calculatorului. Dacă unitatea de comandă este proiectată astfel încât să extragă programul din memorie, să decodifice instrucţiunile şi apoi să le execute, programul unui calculator poate fi schimbat pur şi simplu prin modificarea conţinutului memorie Conceptul de program stocat în memorie a devenit în prezent soluţia standard de lucru. Pentru a-l putea aplica, calculatorul este proiectat astfel încât să recunoască anumite modele de biţi ca reprezentând diferite instrucţiuni.Această colecţie de instrucţiuni, împreună cu sistemul de codificare, poartă numele de limbaj maşină (machine-language) – deoarce defineşte modul în care comunicăm calculatorului algoritmii pe care trebuie să-i execute. Versiunea codificată a unei instrucţiuni maşină constă de obicei din două părţi: câmpul codului de operaţie (operation code – prescurtat
  • 86. 85 op-code) şi câmpul operandului (operand). Şirul de biţi care apare în câmpul opcodului specifică operaţia elementară, ce de exemplu STORE, SHIFT, XOR sau JUMP, a cărei execuţie este solicitată de instrucţiune. Modelul de biţi din câmpul operandului oferă informaţii detaliate asupra operaţiei respective. De exemplu, în cazul unei operaţii de tip STORE, informaţia din câmpul operandului precizează registrul care conţine datele care trebuie stocate, precum şi care este celula din memorie în care se vor stoca ele.
  • 87. 86 Fazele executarii unei instructiuni si Executia programelor. Ciclul mașinii. Programe si Date. Calculatorul urmăreşte un program stocat în memorie copiind instrucţiunile din memorie în unitatea de comandă pe măsură ce are nevoie de ele. O dată ajunsă în unitatea de comandă, fiecare instrucţiune este decodificată şi executată. Ordinea în care sunt extrase instrucţiunile din memorie corespunde ordinii în care acestea sunt stocate, cu excepţia cazului în care o instrucţiune JUMP specifică altceva. Pentru a înţelege cum se desfăşoară procesul de execuţie a unui program trebuie să studiem mai amănunţit unitatea de comandă din interiorul CPU. Ea conţine doi regiştri cu destinaţie specială: contorul programului (program counter) şi registrul de instrucţiuni (instruction register).
  • 88. 87 Registrul contorului programului conţine adresa următoarei instrucţiuni care trebuie executată, permiţând astfel calculatorului să urmărească locul în care se află în program.
  • 89. 88 Registrul de instrucţiuni este utilizat pentru stocarea instrucţiunii în curs de execuţie. Unitatea de comandă îşi realizează sarcinile repetând continuu un algoritm, denumit ciclul maşinii (machine cycle), care constă dintrei paşi: extragere (fetch), decodificare şi execuţie. În timpul pasului de extragere, unitatea de comandă solicită memoriei principale să-i furnizeze următoarea instrucţiune care va fiexecutată. Unitatea ştie unde se află următoarea instrucţiune în memorie deoarece adresa acesteia se află în registrul contorului programului. Unitatea de comandă plasează instrucţiunea recepţionată din memorie în registrul său de instrucţiuni şi incrementează apoi contorul programului astfel încât acesta să conţină adresa următoarei instrucţiuni.
  • 90. 89 Având acum instrucţiunea în registrul de instrucţiuni, unitatea de comandă începe faza de decodificare din ciclul maşinii. În acest punct, ea analizează câmpurile codului de operaţie şi operanzilor pentru a determina ce acţiuni trebuie efectuate.
  • 91. 90 După decodificarea instrucţiunii, unitatea de comandă intră în faza de execuţie, în timpul căreia activează circuitele adecvate pentru realizarea acţiunilor solicitate. De exemplu, dacă instrucţiunea se referă la încărcarea datelor din memorie, unitatea de comandă face să se efectueze operaţia de încărcare; dacă instrucţiunea se referă la o operaţie aritmetico-logică, unitatea de comandă activează circuitele adecvate din unitatea aritmetico-logică, având ca intrări regiştrii corespunzători.
  • 92. 91 Arhitecturi CISC si RISC Proiectarea unui limbaj maşină implică luarea multor decizii, una din ele fiind dacă să construim o structură complexă, care sa poată decodifica şi executa o largă varietate de instrucţiuni, sau o maşină mai simplă, care să dispună de un set limitat de instrucţiuni. Ceea ce se obţine in primul caz poarta numele de calculator cu set de complex de instrucţiuni (complex instruction set computer CISC); a doua opţiune conduce la realizarea unui calculator cu un set restrâns de instrucţiuni (reduced instruction set computer RISC). Se consideră că o instrucțiune este simplă dacă realizează o operație relativ simplă, care implică un număr mic de resurse și poate fi îngeneral executată pe perioada unui impuls de tact.
  • 93. 92 Se consideră că o instrucțiune este complexă dacă nu poate fiexecutată pe perioada unui impuls de tact, implică mai multe resuse diferite (procesor+memorie) și poate fi înlocuită printr-o serie deinstrucțiuni simple. O instrucțiune simplă poate fi executată direct de către procesor folosind o unitate specializată(ALU) Pentru instrucțiunile complexe acest lucru este mai rar întâlnit. Aceste instrucțiuni sunt inițial transformate în microinstrucțiuni executatedeun procesor microprogramat.
  • 94. 93
  • 95. 94 Avantajele procesoarelor CISC Micșoraea lungimii programelor; Simplificarea compilatoarelor; Posibilitatea de a modifica limbajul cod mașină doar prin modificarea microprogramului,fără a modifica structura hardware a procesorului
  • 96. 95 Micșorarea memoriei ocupată de cod (foarte utilă în anii 60-70). Dezavantajele procesoarelor CISC Diferențe foarte mari în lungimea diferitelor instrucțiuni, ceea ce impune procesorului operații logice suplimentare (numărarea octețiilor pentru citirea unei instrucțiuni, execuția secvențială a unui număr diferit de microinstrucțiuni pe instrucțiune etc.); Diferențe foarte mari între timpii de execuție iar viteza de execuție trebuie corelată cu timpul de execuție al celei mai complexe instrucțiuni; Realizarea unității microcodate ocupă mult spațiu pe pastila d e siliciu; Studiile statistice au arătat că, în aplicații, instrucțiunile complexe sunt mult mai puțin frecvente decât cele simple (sub 10%) dar elepenalizează întregul sistem;
  • 97. 96 Avantajele procesoarelor RISC Utilizarea a unui set cu mai puține instrucțiuni simple; Eliminarea microcodului și implicit creșterea vitezei de lucru; Posibilitatea executării unei instrucțiuni pe un singur ciclu de tact;Instrucțiuni cu aceiași lungime; Accesarea memoriei principale prin doar două instrucțiuni simple LOAD și STORE; Simplificarea modurilor de adresare a memoriei prin arhitectura internă; Creșterea numărului de registre interne, ceea ce reduce numărul acceselor la memoria principală; Utilizarea unui format de instrucțiune care elimină aproape complet decodificatorul de instrucțiuni, simplificând mult structura procesorului (la procesoare pe 32 sau 64biți);
  • 98. 97 Facilitarea paralelismului în activitatea procesorului (procesoare pipeline); Reducerea consumului de energie pe procesor. Dezavantajele procesoarelor RISC Sunt necesare compilatoare complexe pentru optimizarea codului; Codul obținut prin compilare este mai mare.
  • 99. 98 Arhitectura von Neuman vs. Harvard PRINCIPIILE ARHITECTURII VON NEUMANN P1.Informațiileîncalculatorsuntcodificatebinar. P2. Regulile de codificare binară sunt aceleași indiferent de natura informației. P3. Pentru păstrarea datelor și programelor codificate binar calculatorul dispune de un bloc specializat numit memorie. P4. Comenzile codificate binar au o structură relativ rigidă, formată în principiu din douăzone numite câmpuri (câmpul codului operației (OPCODE) și câmpul de adresă) - instrucțiune cod mașină. P5. Toate operațiile din calculator se execute secvențial, adicăunadupă alta. Nu se acceptă nici un fel de paralelism în executarea diverselor tipuri de operații.
  • 101. 100 Pentru a putea executa un program este necesar să fie rezolvate două probleme, și anume: 1. precizarea adresei de început a programului; 2. precizarea adresei următoarei instrucțiuni. Se utilizeazăo component special a procesorului, numită numărător de program (program counter-PC) sau indicator de instrucțiuni (instruction pointer-IP). Instrucțiunile care se execute una după alta trebuie sa fie plasate în memorie la adrese consecutive. Conținutul numărătorului de program se poate modifica și prin instrucțiuni speciale numite instrucțiuni desalt
  • 102. 101 ARHITECTURA HARVARD Arhitectura Harvard presupune existența unor blocuri de memorie separate pentru date și pentru instrucțiuni. Numele provine de la calculatorul Harvard Mark I ce folosea cartele performatepentrustocarea instrucțiunilor(reprezentatepe24debiți)și blocuri de relee pentru date (23digiți) Cele două blocuri de memorie comunică cu Procesorul prin magistrale separate – îmbunătățire a vitezei decalcul. Memoria de instrucțiuni poate fi numai citită în timp de memoria dedate poate fi și citită, și scrisă, în funcție de instrucțiunea executată Fiecare bloc de memorie are propriul spațiu de adrese, ambele începând de la valoarea 0
  • 104. 103 HARVARD VS VON NEUMANN În cazul arhitecturii Von Neumann pură, procesorul se află fie in faza FETCH și citește codul instrucțiunii, fie în faza EXECUTE și procesează sau citește/scrie date din/înmemorie. Orice paralelism între cele două faze este exclus deoarece memoria și procesorul sunt conectate printr-o singură magistrală. Performanța Procesorului este afectată deoarece timpul de procesare este mult mai mic decât timpul de accesare a memoriei La ora actuală există și memorii cu timp de acces mult mai mic decât cele uzuale dar datorită consumului și prețului de cost nu pot fi utilizate decât la capacități foarte mici. De aceea în aplicațiile unde viteza este o prioritate este utilizată arhitectura Harvard
  • 105. 104 Arhitectura Harvard permite o extensie simplă pentru prelucrări SIMD(Single Instruction, MultipleData), folosind o singură memorie de instrucțiuni și mai multe memorii dedate
  • 106. 105 HARVARD VS VON NEUMANN Într-o arhitecturăvon Neumann instrucțiunile pot fi prelucrate ca ș iorice alt operand (principiul P2) ceea ce mărește flexibilitatea utilizării. Păstrarea în aceeași memorie a datelor și codului executabil simplifică implantarea unor viruși introdușisubformaunuipachet de date, deși în realitate este vorba de instrucțiuni executabile. Din această cauză au fost create diferite arhitecturi care să combine avantajele celor două arhitecturipureprezentateanteriorșiînacelașitimp să elimine neajunsurile specifice.
  • 107. 106 ARHITECTURA HARVARD MODIFICATĂ Arhitectura Harvard modificată este orice variantă a arhitecturii Harvard care permite accesarea conținutului memoriei de instrucțiunica și cum ar reprezenta date. Modificările pot fi realizate în diverse variante, scopul fiind de fiecare dată înlăturarea barierei stricte între cod și date, fără a pierde totuși avantajul accesului paralel la instrucțiuni și datespecific arhitecturii Harvard pure. Unele variante păstrează spațiile de adrese separate dar oferă instrucțiuni cod mașină speciale pentru a accesa memoria de instrucțiuni ca și cum ar conține date. Această abordare permite păstrarea unor constante în memoria de instrucțiuni eliberând spațiu în memoria de date. De asemenea datele inițiale pot fi transferate direct din memoria de instrucțiuni în memoria de date care la pornirea calculatorului are unconținut aleator. La ora actuală calculatoarele cu arhitectură Harvard folosesc din ce mai mult memorii flash pe post de memorie de instrucțiuni ceea cepermitecitireașiscriereainstrucțiunilorcaîntr-omemorie RAM, darcuviteză mai mică.
  • 108. 107 Calculatoare de bord Noțiuni de ArhitecturaCalculatoarelor
  • 109. 108 Pipelining, Prelucrare paralelă. Creșterea frecvenței de ceas este o cale de a îmbunătăți performanțele mașinii de calcul, dar pentru orice proiect nou există o limită în ceea ce reprezintă această posibilitate în acel moment tehnologic. Frecvent, majoritatea proiectanților iau în considerare paralelismul pentru aîmbunătăți și mai mult performanta pentru o frecvență de ceas dată. Paralelismul se manifestă în două forme generale: paralelism la nivelul instrucțiunilor și paralelism la nivelul procesorului. În primul caz paralelismul este exploatat cu instrucțiuni individuale pentru aobține un raport instrucțiuni / secundă cât maimare. În a doua variantă paralelismul se referă la mai multe procesoare care lucrează în paralel la aceeași problemă.
  • 110. 109 S-a știut de mult că preîncărcarea instrucțiunilor din memorie este un element important pentru viteză de execuție ainstrucțiunilor. Pentru a evidenția această problemă ne întoarcem în istorie la IBM Stretch (1959) care avea capacitate de a preîncărcat din memorie în avans instrucțiunile, așaîncât ele să fie acolo când este nevoie de ele. Instrucțiunile erau încărcate într-un set de registre denumiți 'prefect buffer'. În acest fel când era nevoie de o instrucțiune, aceasta era luată din această memorie tampon decât săseașteptecompletareaunuicicludecitiredinmemorie. De fapt preîncărcarea împarte execuția instrucțiunilor în două faze: preîncărcarea și executarea lor. Conceptul de pipeline oferă o strategie mult mai avantajoasă. Decât să împartă execuția în două părți, o împarte în multiple părți, fiecărei părți fiindu-i dedicată o componentă hardware, acestea executându-se în paralel
  • 111. 110 Pipeline este o metodă de implementare în care mai multe instrucțiuni se suprapun în timpul execuției - se folosește pentru a crește viteza de procesare. Metoda pipeline este mai rapidă decât metodasecvențială. Blocuri implicate în execuție: IM – Memoria de instrucțiuni Reg – Registre ALU –Unitatea Aritmetică și Logică DM – Memoria de Date
  • 112. 111 Controlere Comunicația dintre unitatea centrala de prelucrare a unui calculator și undispozitiv periferic oarecare este controlată de obicei de către un dispozitiv intermediar, denumit controler (controller). Fiecare controler gestionează comunicația cu un anumit tip de dispozitiv periferic. Controlerul convertește mesajele și datele la forme compatibile cu caracteristicile interne ale calculatorului, respectiv la cele ale dispozitivului sau dispozitivelor periferice atașate controlerului. Controlere sunt adesea ele însuși mici calculatoare, fiecare având propriile circuite de memorie și unități centrale de prelucrare care execută un program ceîi gestionează activitatea.
  • 113. 112 Structura ierarhizată a unui sistem de calcul
  • 114. 113 Circuite aritmetice. Registre de deplasare. Sumatoare. ALU Primul circuit aritmetic prezentat este un registru de deplasare cu 8 intrări și 8ieșiri, ca în figura următoare.
  • 115. 114 8 biţi de intrare sunt prezenţi pe liniile D0 ,......, D7. Ieşirea, care este intrarea deplasată cu un bit, este disponibilă pe liniile S0 ,. ,S7.
  • 116. 115 Linia de control C determină direcția de deplasare, 0 pentru stânga, 1 pentru dreapta. Pentru a vedea cum funcționează circuitul trebuie să remarcați perechile de porți AND pentru toți biții cu excepția porților de la capete. Când C=1, membrul drept al fiecărei perechi este activat, transferând bitul de intrare corespunzător la ieșire. Deoarece poarta AND din dreapta este conectată la intrarea porții OR din dreaptasa,sevarealizaodeplasarespredreaptaabitului.
  • 117. 116 Când C=0 membrul stâng al porții AND se va activa realizând o deplasaresprestânga.
  • 118. 117 Sumatoare Tabela de adevăr a unui sumator întreg
  • 119. 118 Pentrua construiunsumator,să zicempentrudouăcuvintepe 16 biți, trebuie să construim 16 replici ale circuitului din figura de mai sus.
  • 120. 119 Unităţi logice aritmetice Majoritatea computerelor conțin un singur circuit pentru realizarea operațiilor AND, OR, NOT și SUM (însumare) a două cuvinte mașină. De obicei un astfel de circuit pentru cuvinte pe n biți este construit din n circuite identice pentru fiecare bit individual. Figura de mai jos este un exemplu simplu de astfel de circuit denumit ALU. Acesta poate calcula oricare din următoarele 4 funcții: A AND B, A OR B, A+B, not B , în funcție de combinația liniilor de intrare F0,F1: 00, 01, 10 sau 11. De remarcat că A+B înseamnă suma aritmetică a lui A și B, nu OR boolean.
  • 122. 121 Partea din stânga jos a ALU conține un decodificator pe 2 biți pentru a genera semnalele de control F0 și F1. În funcție de valorile lui F0 și F1 numai una din cele 4 linii este selectată. Setarea acestei linii permite ca ieșirea din funcția selectată să ajungă la poartaOR pentru ieșire. Partea din stânga sus conține logica de calcul pentru A AND B, A OR B și Bnegat, dar cel mult unul din aceste rezultate este transferat la poarta OR finală în funcție de liniile de validare ce provin dindecodor. Deoarece exact una din linii va fi 1, numai una din cele 4 porți AND ceconduc la poarta OR va fi validată, celelalte trei vor fi 0, independent de A și B. În plus pentru a putea utiliza A și B ca intrări pentru operații logice și aritmetice, este de asemenea posibil să se forțeze la zero oricare din ele negând ENA sauENB. INV A – inversează A
  • 123. 122 Încondițiinormale,ENAșiENBsuntambele1șiINVAvafi0 . În acest caz A și B sunt introduse în ALU fără modificări. Colțul din dreapta jos al ALU conține un sumator complet pentru calcularea sumei dintre A și B inclusiv manipularea biților de transport, deoarece esteposibil ca astfel de circuite să fie conectate împreună pentru a realiza operații lanivelul de cuvânt. Circuite ca în figura de mai sus sunt cunoscute sub numele de “bit slices”. Acestea permit proiectantului de calculatoare să construiască un ALU de orice mărime dorește.
  • 124. 123 Tehnici de intrare-ieșire – Porturi, Polling, Întreruperi,DMA Transmisia datelor dinspre și spre exterior se face prin locații speciale dememorie denumite porturi. Fiind niște locații de memorie, porturile comunica cu microprocesorul prin magistrala de date, magistrala de adrese si magistrala de control. Tehnica de interogare continua (polling) Atunci când microprocesorul are nevoie de citirea unei date de la portul de intrare trimite adresa acestuia pe magistrala de adrese și așteaptă activarea semnalului READY de la portul respectiv. În intervalul de timp de la lansarea operației de citire de la porturi și pana cândesteactivatsemnalul READY microprocesorul așteaptă, neputând sa desfășoare nici o alta acțiune. In cazul in care portul de intrare este lent aceasta înseamnă foarte mult timp pierdut pentru microprocesor.
  • 125. 124 Ca urmare aceasta metoda este utilizata foarte rar si pentru porturi accesate cu frecventa foarte redusa. Nu se utilizează in aplicațiile care necesita viteza marede lucru. Tehnica întreruperilor Marea majoritate a procesoarelor sunt prevăzute cu terminale de întrerupere. In cazul apariției unui 1 logic pe un astfel de terminal este activata o “întrerupere”. Aceasta înseamnă ca procesorul va încheia execuția instrucțiunii in curs, dupăcare va lansa in execuție o procedura de deservire a întreruperii. Aceasta tehnica permite transferuri mai rapide de date de la porturi si este frecvent utilizata in operațiiledeintrare-ieșirepentruvolumerelativmicidedate.Întreruperile sunt de mai multe tipuri si pot fi clasificate in întreruperi hardware si întreruperi software. Întreruperile sunt ierarhizate într-o anumita ordine de prioritate. In cazul in care apar simultan doua semnale de întrerupere, atunci este deservita întreruperea cu prioritatea cea mai mare.
  • 126. 125 Tehnica de acces direct la memorie (DMA) Aceasta tehnica de intrare-ieșire este foarte frecvent utilizata pentru volume mari de date, de exemplu trimiterea datelor către o imprimanta sau citirea datelor de la o unitate optica, etc. Utilizarea sa mai presupune prezenta in schema alături de microprocesor a unui controller de DMA. Acesta va coordona transferul DMA al datelor.
  • 127. 126 Erori de comunicație. Biți de paritate. Coduri corectoare de erori. La transferarea informațiilor între diverse componente ale calculatorului sau în cazul simplei stocăriadatelor,existăposibilitateacașiruldebițiprimiți,înapoisă nu fie identic cu cel original. În fluxul prelucrării automate a datelor, operația de transfer a informațiilor prin intermediul unui canal de comunicație este extrem de frecventă. Cu ocazia acestui transfer de informație, la nivelul canalului de comunicație pot apare perturbații. Pentru a nu se altera conținutul informațional este necesară protejarea informațiilor împotriva acestor perturbații. Procedura presupune adăugarea unor informații suplimentare, necesare în primul rând detectării erorilor și ulterior corectării acestora. Pentru a rezolva asemene probleme au fost dezvoltate diferite tehnici de codificare care permit detectarea și chiar corectarea erorilor. În prezent datorită faptului că sunt implementate pe scară largă în componentele interne ale sistemelor de calcul, ele sunt invizibile pentru cei care utilizează calculatoarele.
  • 128. 127 Una din modalitățile practice cel mai frecvent utilizate în detectarea erorilor estereprezentată de codurile pentru controlul parității. La emisia unei secvențe binare de n biți se atașează o cifră binară suplimentară(parity bit), numită cifră de control, astfel încât: · încazulparitățiipare,numărulpozițiilorbinaredinșircareauvaloarea1 să fie par (inclusiv cifra de control) · în cazul parității impare, numărul pozițiilor binare din șir (inclusiv cifra de control) care au valoarea 1 să fie impar La recepția unui caracter se efectuează suma cifrelor binare care au fost primite. Dacă această sumă respectă convenția de paritate stabilită, mesajul este considerat corect recepționat. În caz contrar se semnalează eroarea, solicitându- se reluarea transmisiei. Acest tip de cod este implementat de regulă hardware la nivelul dispozitivelor fizice ale sistemului de calcul.
  • 129. 128 Deși ne închipuim aceste sisteme ca având celule de memorie de opt biți, î nrealitate ele pot utiliza celule de nouă biți, dintre care unul este folosit ca bit deparitate. Ori de câte ori se furnizează circuitelor de memorie un cuvânt de opt biți pentru a fi stocat acestea îi adaugă un bit de paritate și memorează apoi cuvântulde nouă biți rezultat. Mai târziu, când se solicită acel cuvânt, circuitele de memorie verifică paritatea cuvântului de nouă biți. În cazul în care controlul de paritate nu indică nici oeroare, memoria elimină bitul de paritate și furnizează în deplină siguranță cuvântul de opt biți rămas. Astfel, memoria returnează cei opt biți de date împreună cu un semnal de avertizare care precizează că șablonul binar rezultat s-ar putea să nu coincidă cu cuvântul stocat la început în memorie.
  • 130. 129 Șirurile lungi de biți sunt adesea însoțite de un grup de biți de paritate dispuși într-un octet de control (checkbyte). Fiecare bit din acest grup este un bit de paritate asociat unui grup de biți împrăștiațide-alungulșiruluidebiți.
  • 131. 130 De exemplu, un bit de paritate poate fi asociat cu fiecare al optulea bit din șir începând cu primul bit din șir, în timp ce un alt bit de paritate poate fi asociat cufiecare al optulea bit începând de la al doilea bit dinșir. Procedând astfel se detectează mai ușor pachete de erori ce pot apărea în șirul debiți inițial, deoarece ele survin în domeniile de verificare ale mai multor biți de paritate. Printre variantele principiului de verificare cu octet de control se numără schemele de detecție a erorilor cunoscute sub numele de sume de control (checkbyte sums) și controlul cu coduri ciclice (cyclicredundancycheck -CRC). În anumite situații, simpla detectare a erorilor este ineficientă. În vederea eliminării, fie șinumai parțiale, aacestui neajuns, au fostproiectate coduricare,pe lângă detectarea erorilor, oferă și posibilitatea corectării cifrelor binare eronate. Cele mai semnificative sisteme de coduri din această categorie sunt: · codurile de paritate încrucișată · codul HAMMING
  • 132. 131 La codurile de paritate încrucișată succesiunea de cifre binare carese transmit se divide într-un număr de secvențe binare de aceeași lungime n, astfelîncât succesiunea va fi formată dintr-un număr variabil de linii și un număr fix de coloane. La emisie fiecărei linii și fiecărei coloane i se va atașa o cifră de control de paritate. Practic se aplică LRC (control de paritate orizontal (longitudinal) pentru liniiși VRC (control de paritate vertical) pentru coloane. La recepție, prin controlul parității, pe fiecare linie și coloană se detectează eventualele erori, având posibilitatea de a corecta o singură eroare detectată la intersecția liniei și a coloanei care nu respectă paritatea stabilită.
  • 133. 132 Desigur, nici un sistem de tratare a erorilor nu este complet sigur. Sistemele cu paritate nu pot detecta apariția unui număr par de erori, iar apariția prea multor erori într-un singur cuvânt al unui cod corector de erori poate avea ca rezultat decodificarea unui alt cuvânt de cod, valid dar totuși incorect.
  • 134. 133 Codul Hamming : este un cod autocorector bazat pe teste de paritate. Versiunea cea mai simplă permite corectarea unui bit eronat. Celor m biţi de informaţie li se adaugă k biţi de control al parităţii. Deci avem n = m + k biţi necesari pentru transmiterea informaţiei. Deoarece trebuie indicate n + 1 posibilităţi de eroare (inclusiv absenţa erorii) prin cei k biţi de control, trebuie ca 2k ≥ n + 1. Cele 2k posibilităţi de codificare pe k biţi servesc la determinarea poziţiei erorii, apoi se poate corecta bitul eronat. Dacă se numerotează biţii de la dreapta spre stânga pornind de la 1, biţii de control(saude paritate)suntplasațipepozițiaputerilorlui2(biţiicunumărul1,2, 4, 8, 16, ...). Fiecare bit de control efectuează control de paritate (pară sau impară) asupra unui anumit număr de biţi de date. Se determină astfel cei n biţi de transmis sau de stocat.
  • 135. 134 Exemplu – Codul Hamming Dacă m = 4 se poate construi un cod Hamming pe 7 biţi (n = 7), adăugând 3 biţi de control (k = 3). 7 6 5 4 3 2 1 m4 m3 m2 k3 m1 k2 k1 Cei trei biţi de control sunt plasaţi pe poziţia puterilor lui 2: k1 → 1; k2 → 2; k3 → 4. Vom vedea acum, pentru fiecare bit al mesajului care sunt biţii de control care permit verificarea parităţii sale: 7 = (0111)2 = 4 + 2 + 1 → 7 este controlat de k3, k2, k1; 6 = (0110)2 = 4 + 2 → 6 este controlat de k3, k2; 5 = (0101)2 = 4 + 1 → 5 este controlat de k3, k1; 4 = (0100)2 = 4 →4 este controlat de k3; 3 = (0011)2 = 2 + 1 → 3 este controlat de k2, k1; 2 = (0010)2 = 2 →2 este controlat de k2; 1 = (0001)2 = 1 →1 este controlat de k1;
  • 136. 135 Problema se pune şi invers: care sunt poziţiile binare controlate de către fiecare cod? k1 controlează biţii cu numerele 1, 3, 5, 7; k2 controlează biţii cu numerele 2, 3, 6, 7; k3 controlează biţii cu numerele 4, 5, 6, 7. Când se recepţionează informaţia, se efectuează controlul de paritate. Pentru fiecare bit de control se compară valoarea transmisă cu cea recalculată. Dacă cele două valori sunt identice, se atribuie valoarea 0 unei variabile binare Ai asociată bitului de control ki, altfel, Ai primeşte valoarea 1. Valoarea zecimală a configuraţiei binare formată din variabilele Ak, Ak-1, ..., A1 furnizează poziţia bitului eronat, care se poate corecta.
  • 137. 136 Presupunem că pentru k1, A1 = 1, pentru k2, A2 = 1, iar pentru k3, A3 = 0. Eroarea se găseşte în poziţia (A3A2A1)2 = (011)2 = 3. Într-adevăr, k1 poate detecta o eroare în poziţiile 1, 3, 5, 7, k2 poate detecta o eroare pe poziţiile 2, 3, 6, 7, iar k3 poate specifica o eroare pe poziţiile 4, 5, 6, 7. O eroare detectată de k1 şi k2 dar nu şi de k3 nu poate proveni decât din bitul 3. de exemplu: (A3A2A1)2 = (000)2 → indică absenţa unei erori; (A3A2A1)2 = (001)2 → indică eroare pe bitul 1; (A3A2A1)2 = (110)2 → indică eroare pe bitul 6 Exemplu de recepţionare a unui mesaj: (1011100)2. Ştiind că s-a utilizat un CH cu paritate pară, să se reconstituie mesajul iniţial. n = 7, deci k = 3, m = 4.
  • 138. 137 7 6 5 4 3 2 1 m4 m3 m2 k3 m1 k2 k1 1 0 1 1 1 0 0 k1 = 0 controlează poziţiile 1, 3, 5, 7, nu se verifică, deci A1 = 1; k2 = 0 controlează poziţiile 2, 3, 6, 7, se verifică, deci A2 = 0; k3 = 0 controlează poziţiile 4, 5, 6, 7, nu se verifică, deci A3 = 1; Adresa binară a erorii (A3A2A1)2 = (101)2 = 5. Bitul cu numărul 5, care este egal cu 1 este eronat. Mesajul iniţial corectat şi fără biţii de control este: (1001)2
  • 139. 138 Calculatoare de bord CONVERSII NUMERIC-ANALOGICE ŞI ANALOG-NUMERICE
  • 140. 139 Informaţiile provenite din lumea fizică reală trebuie convertite într-o formă compatibilă pentru prelucrarea lor în calculator. De asemenea, semnalele provenite de la calculator (comenzi în cazul sistemelor de conducere) trebuie convertite într-o formă corespunzătoare echipamentelor cuplate la calculator.
  • 141. 140 Informaţiile provenite din lumea fizică reală trebuie convertite într-o formă compatibilă pentru prelucrarea lor în calculator. De asemenea, semnalele provenite de la calculator (comenzi în cazul sistemelor de conducere) trebuie convertite într-o formă corespunzătoare echipamentelor cuplate la calculator. Conditionarea semnalului, "signal conditioning", include functii ca amplificarea semnalului, filtrare, izolare galvanica si multiplexare.
  • 142. 141 Prin condiţionarea semnalelor se înţelege în sens larg adaptarea dintre traductoare şi circuitele de conversie analog-numerică. Tipul de condiţionare depinde evident de senzorii care sunt utilizaţi. De exemplu, un semnal poate avea nivel mic şi necesită o amplificare, sau poate conţine componente parazite care cer realizarea unei filtrări. Anumite operaţii de condiţionare de semnal se realizează între circuitele de conversie numeric-analogică şi elementele de execuţie, precum şi pe partea de intrări/ieşiri numerice. Condiţionarea semnalelor se realizează prin operaţii cum ar fi: - conversii de semnal (cum ar fi conversia curent/tensiune) - izolare galvanică - amplificare - filtrare - liniarizare - multiplexare - alimentarea senzorilor pasivi
  • 143. 142 CONVERTOARE NUMERIC-ANALOGICE (CNA) Reconstituirea (reconstructia) fizica a semnalelor este operatia utilizata atunci când se doreste ca un semnal esantionat si eventual prelucrat numeric de catre un sistem de calcul sa fie reconstituit din esantioanele sale si furnizat în forma analogica la iesirea sistemului. Într-un sistem de achizitie si conducere, reconstituirea si generarea semnalelor analogice se realizeaza prin intermediul circuitelor de iesiri analogice. Reconstituirea fizica se realizeaza prin intermediul unui grup de dispozitive, dintre care rolul esential îl are convertorul numeric analogic (CNA). Schema bloc a reconstituirii fizice a semnalelor (organizarea ieşirilor analogice)
  • 144. 143 CONVERTOARE NUMERIC-ANALOGICE (CNA) CNA-ul acceptă la intrarea sa semnalul în formă numerică, registrul tampon (bufferul) fiind utilizat pentru păstrarea datelor (numerelor binare) pentru un interval de timp egal cu perioada de eşantionare (Te). CNA-ul converteşte numărul binar într-o tensiune aproximativ egală cu valoarea actuală a semnalului numeric şi o menţine constantă pentru Te secunde. Atunci când următorul număr apare la ieşirea bufferului, CNA-ul va schimba tensiunea de ieşire conform noii valori de la intrare. Schema bloc a reconstituirii fizice a semnalelor (organizarea ieşirilor analogice)
  • 145. 144 CONVERTOARE NUMERIC-ANALOGICE (CNA) Convertorul numeric-analogic realizeaza o aproximare a operatiei de extrapolare de ordin zero. Principial, forma semnalului la iesirea CNA este similara iesirii extrapolatorului de ordin zero. Forma semnalului de ieşire din CNA (răspunsul unui extrapolator de ordin zero). Extrapolatorul de ordin zero (numit şi extrapolator cardinal), menţine ultima valoare primită (blochează această valoare) în timpul perioadei de eşantionare care urmează, Te.
  • 146. 145 CONVERTOARE NUMERIC-ANALOGICE (CNA) La ieşirea CNA se utilizează un filtru de tip trece jos care are rolul de a netezi semnalul provenit de la convertor, apoi un amplificator de putere care are rolul adaptării de nivel şi de putere cu circuitele spre care este transmis semnalul analogic. În unele cazuri, la ieşirea CNA se dispune un circuit de izolare galvanică. Schema bloc a reconstituirii fizice a semnalelor (organizarea ieşirilor analogice)
  • 147. 146 Structura unui CNA pe 4 biţi cu rezistenţe ponderate Se observă că registrul care conţine biţii de intrare controlează cele 4 comutatoare, astfel încât sunt posibile 16 configuraţii în funcţie de poziţia comutatoarelor. Amplificatorul operaţional este conectat ca un circuit de însumare.
  • 148. 147 Structura unui CNA pe 4 biţi cu rezistenţe ponderate Pentru o anumită configuraţie a comutatoarelor, tensiunea de ieşire este determinată de produsul dintre tensiunea de referinţă şi raportul dintre rezistenţa de pe reacţie şi rezistenţa introdusă în circuit de comutatoare.
  • 149. 148 Structura unui CNA pe 4 biţi cu rezistenţe ponderate De exemplu, dacă doar MSB este 1 şi ceilalţi biţi sunt 0 vom avea:
  • 150. 149 Structura unui CNA pe 4 biţi cu rezistenţe ponderate Dacă bitul 2 este 1 şi ceilalţi sunt 0 tensiunea de ieşire va fi:
  • 151. 150 Structura unui CNA pe 4 biţi cu rezistenţe ponderate Dacă avem MSB egal cu 1, bitul 2 şi bitul 1 sunt 0 iar LSB este 1 atunci tensiunea de ieşire va fi o sumă a efectelor combinate ale comutatoarelor:
  • 152. 151 Structura unui CNA pe 4 biţi cu rezistenţe ponderate Cu această structură de CNA se pot obţine 16 nivele de tensiune la ieşire. Pentru asigurarea unei dependenţe liniare intrare-ieşire este necesar ca rezistenţele să fie precise şi stabile.
  • 153. 152 CONVERTOARE ANALOG-NUMERICE Un convertor analog-numeric accepta la intrare un semnal continuu în timp x(t) sub forma unei tensiuni electrice si furnizeaza la iesire o secventa de numere binare x(n), care aproximeaza esantioanele corespunzatoare x(nTe). Pentru majoritatea aplicatiilor, tensiunea electrica de intrare nu este furnizata direct CAN-ului, ci printr-un dispozitiv numit element de esantionare si retinere (memorare) – sample-hold (S/H). Elementul S/H este un circuit analogic care masoara semnalul de intrare în ritmul unui tact (multiplu de Te) si mentine acest semnal fixat pentru un interval de timp suficient de mare pentru ca operatiunea de conversie analog-numerica sa se poata realiza. Deoarece operatiunea de conversie analog-numerica este relativ lenta, este important ca o eventuala variatie a tensiunii de intrare sa nu perturbe procesul de conversie, si prin urmare circuitul S/H previne aceste perturbatii prin mentinerea constanta a tensiunii de intrare pe durata desfasurarii unei conversii.
  • 154. 153
  • 155. 154 CAN cu aproximări succesive Este unul din cele mai utilizate CAN pentru rezoluţii medii şi mari. Acest CAN se bazează pe aproximarea semnalului de intrare analogic cu un cod binar, convertirea acestui cod binar cu un CNA într-un semnal analogic care este comparat cu semnalul de intrare şi apoi revizuirea succesivă a aproximării pentru fiecare bit din cod până când se obţine cea mai bună aproximare. La fiecare pas din acest proces, valoarea binară curentă a aproximării este stocată într-un registru numit registru de aproximări succesive RAS.
  • 156. 155 CAN cu aproximări succesive BC este un bloc de comandă, care controlează conversia şi mărimea de intrare în CNA. Schema de conversie se bazează pe principiul de înjumătăţire a intervalului şi poate fi prin adăugare sau scădere.
  • 157. 156 CAN cu aproximări succesive Un ciclu de conversie începe de la valoarea 000 a mărimii de intrare în CNA, apoi bitul MSB este făcut 1. Urmează un algoritm de testare care va verifica efectul modificării câte unui bit. Prin urmare, la primul pas convertorul numeric-analogic va converti valoarea 100 (care corespunde unei estimări iniţiale de jumătate din domeniul de intrare) într-o tensiune uc care este comparată cu tensiunea de intrare. În funcţie de rezultatul comparaţiei, bitul MSB este lăsat 1 sau este făcut 0. La pasul al doilea (la următorul tact sau perioadă de ceas), al doilea bit este făcut 1, urmează conversia în uc şi compararea cu tensiunea de intrare. Se decide dacă cel de-al doilea bit este 1 sau 0 şi urmează al treilea pas. În cazul exemplului nostru este vorba de LSB care este făcut 1, se realizează conversia şi comparaţia şi se stabileşte valoarea finală a LSB şi prin urmare a codului de ieşire care va aproxima cel mai bine semnalul de intrare.
  • 158. 157 CAN cu aproximări succesive Schema logică a algoritmului (cu adăugare) cu toate opţiunile posibile.
  • 159. 158 CAN cu aproximări succesive Deoarece deciziile pentru fiecare bit sunt luate serial, poate fi furnizată o ieşire numerică serială la ieşirea din comparator. Ca performanţe, aceste CAN au timpul de conversie independent de mărimea de intrare (este o sumă dintre timpul de iniţializare şi n ⋅ Tbit −test ) şi este de ordinul 100 nsec – 5μ sec pentru CAN pe 8 biţi şi mai mare pentru CAN pe mai mulţi biţi. Rezoluţia este de 6 – 16biţi.
  • 160. 159 Indicatori de performanţă ai CAN Convertoarele analog-numerice sunt dispozitive utilizate la conversia semnalelor din formă analogică în formă numerică, în scopul prelucrării ulterioare prin mijloace numerice. Semnalele analogice de intrare în CAN sunt în mod obişnuit tensiuni continue în gama 0 – 10 V sau -10 – +10 V. Semnalele de ieşire din CAN sunt cuvinte care au de regulă un număr de biţi între 6 şi 22. Cele mai des utilizate tipuri de CAN funcţionează pe baza principiului compensării automate. Tensiunii de la intrare i se asociază o valoare numerică, care este după aceea convertită din nou în formă analogică. Valoarea numerică este ajustată în mod automat, astfel încât să compenseze eroarea dintre tensiunea de intrare în CAN şi corespondentul analogic al mărimii numerice de la ieşire. Există mai multe tipuri de CAN, în funcţie de modul de generare a valorii numerice. Printre tipurile mai des folosite se numără: CAN cu comparare multiplă, cu aproximări succesive, cu integrare (cu pantă simplă sau cu pantă dublă), cu conversie intermediară în frecvenţă, CAN cu filtrare digitală etc.
  • 161. 160 Indicatori de performanţă ai CAN Principalele performanţe ale CAN sunt liniaritatea, precizia, rezoluţia, timpul şi rata de conversie, domeniul (gama) tensiunii de intrare. Conversia analog-numerică constă în convertirea unui semnal de intrare continuu într-o fracţie y prin compararea cu un semnal de referinţă. Mărimea de ieşire numerică din CAN este o reprezentare codificată a acestei fracţii y. Dacă ieşirea CAN este pe n biţi, atunci numărul nivelelor de valori discrete de ieşire este de 2^n. Prin urmare, pentru a respecta o corespondenţă, domeniul analogic de intrare trebuie cuantificat în acelaşi număr de nivele. Fiecare astfel de nivel sau cuantă este o valoare analogică pentru care două coduri adiacente de ieşire diferă, şi mai este numită dimensiune a bitului LSB: În relaţia de mai sus notaţia LSB este uşor improprie şi reprezintă valoarea analogică a celui mai puţin semnificativ bit, iar D este domeniul mărimii de intrare (full scale).
  • 162. 161 Indicatori de performanţă ai CAN Toate valorile analogice de intrare din interiorul unui nivel de dimensiune D / (2^n) sunt reprezentate de acelaşi cod numeric de ieşire. Deoarece semnalul de intrare poate să difere de valoarea medie a unui astfel de subinterval analogic cu cel mult ± LSB / 2 şi să fie totuşi reprezentat de acelaşi cod de ieşire, rezultă că există o incertitudine sau eroare de cuantificare de ± LSB / 2 în orice CAN. Efectul acestei erori poate fi redus doar prin creşterea numărului de biţi ai ieşirii CAN. Aspectele prezentate mai sus pot fi analizate cu ajutorul caracteristicii statice ideale a unui CAN pe 3 biţi.
  • 163. 162 Indicatori de performanţă ai CAN Caracteristica statică a unui CAN pe trei biţi În acest caz, dimensiunea unui nivel de cuantificare din mărimea de intrare este de D / 2^3 = D / 8 şi prin urmare domeniul de intrare este împărţit în 8 subintervale distincte de la 0 la (7 /8) * D. Trebuie observat faptul că ieşirea maximă, adică numărul binar 111, corespunde nu domeniului maxim de intrare ci lui (7 /8) * D.
  • 164. 163 Indicatori de performanţă ai CAN CAN-urile au caracteristici statice reale, care diferă de caracteristica ideală prezentată anterior. Pe aceste caracteristici reale pot fi evidenţiate tipurile de erori care pot apare la un CAN. Una dintre erori este eroarea de offset (sau eroarea de zero) care poate fi definită ca valoarea analogică egală cu intervalul de la origine la intersecţia caracteristicii reale cu abscisa.
  • 165. 164 Indicatori de performanţă ai CAN O altă eroare este eroarea de câştig sau de pantă care apare datorită unei abateri de pantă a caracteristicii. Aceste două erori sunt în general mici şi pot fi eliminate prin tehnici de ajustare.
  • 166. 165 Indicatori de performanţă ai CAN Erorile de liniaritate pot fi de două tipuri: eroare totală de liniaritate (deviaţia maximă a caracteristicii reale de la caracteristica ideală, atunci când erorile de offset şi de câştig sunt nule) sau eroare diferenţială (deviaţia unui nivel de la valoarea analogică ideală). În cazul în care o neliniaritate de tip diferenţial este mai mare de 1 LSB, atunci ieşirea are coduri lipsă.
  • 167. 166 Indicatori de performanţă ai CAN Rezoluţia poate fi definită ca cea mai mică schimbare a intrării analogice care determină schimbarea codului de ieşire al CAN cu un nivel. Rezoluţia este definită de regulă pe caracteristica ideală şi prin urmare defineşte mai degrabă posibilităţile CAN decât performanţa reală. Rezoluţia se poate defini procentual, în milivolţi pentru un domeniu de intrare dat sau pur şi simplu ca numărul de biţi ai CAN. De exemplu, dacă avem un CAN pe 12 biţi, rezoluţia acestuia se spune că este de 12 biţi, iar rezoluţia procentuală Dacă avem un domeniu de intrare de 10 V, se poate defini rezoluţia în milivolţi aceasta fiind de fapt tensiunea minimă de intrare ce poate fi reprezentată.
  • 168. 167 Indicatori de performanţă ai CAN Un alt indicator de performanţă al CAN este precizia. Trebuie să remarcăm aici că în specificaţiile tehnice şi în literatura de specialitate în limba engleză se utilizează uneori termenul de precision pentru rezoluţie şi termenul accuracy pentru precizie. Precizia se defineşte ca fiind diferenţa dintre tensiunea de intrare reală şi echivalentul analogic al codului binar de ieşire din CAN. Atunci când este exprimată în volţi se numeşte precizie absolută, dar de multe ori se exprimă relativ la semnalul analogic, se exprimă în LSB şi se numeşte precizie relativă. Precizia este dată de suma maximă a tuturor erorilor de conversie, inclusiv a erorii (incertitudinii) de cuantificare.
  • 169. 168 Indicatori de performanţă ai CAN Pentru regimul dinamic al CAN se defineşte timpul de conversie tc ca fiind intervalul de timp dintre startarea operaţiei de conversie şi momentul în care convertorul furnizează mărimea de ieşire finală. Inversa timpului de conversie este rata de conversie care se măsoară în conversii/secundă. Utilizarea circuitelor de tip Sample/Hold între intrarea analogică şi CAN conduce la apariţia unui timp de întârziere suplimentar numit timp de deschidere (aperture time), de care trebuie să se ţină seama în aprecierea performanţelor.
  • 170. 169 Selectarea unui CAN Pentru a selecta un CAN conform aplicaţiei date trebuie cunoscute mai întâi performanţele care se cer, cum ar fi rezoluţia, timpul de conversie, erori permise etc. Acestea sunt determinate de specificaţiile de proiectare ale sistemului respectiv, cum ar fi: - numărul canalelor analogice - rata minimă de conversie - localizarea traductoarelor - precizia de conversie - condiţiile de interfaţă (serie/paralel) şi protocoale - mediul de lucru (interesează zgomotele electrice şi domeniul de temperatură al mediului) - preţul sistemului
  • 172. 171 Structura unui sistem de comunicații Orice sistem de comunicații este alcătuit in principal din trei elemente : S = Sursa de informații U = Utilizatorul de informații Informația transmisa se regăsește sub forma unui semnal, semnalul fiind suportul material pentru informație . Semnalele pot fi electrice, optice, acustice, pneumatice, hidraulice etc. In funcție de natura semnalului utilizat se alege si canalul de comunicații. Canalul reprezintă mediul de legătura intre sursa si utilizator prin care se propaga semnalul purtător de informații. La nivelul canalului acționează perturbațiile din mediul extern. Perturbațiile sunt tot semnale de aceeași natura cu semnalul util dar care acționează in sensul scăderii cantității de informație transmisa.
  • 173. 172 In cazul in care , fie distanta este foarte mare , fie nivelul perturbațiilor este crescut, structura de mai sus se modifica astfel: Prin modulare se înțelege procedeul tehnic in urma căruia informația conținuta in semnalul de baza (semnal modulator) este transpusa la nivelul unui semnal purtător ce are capacitatea de a proteja informația si de a se propaga eficient printr-un canal dat. Demodularea este procedeul invers modularii si prin intermediul sau se reconstituie semnalul de baza . In cazul in care se dorește ca informația sa fie sigura si sa se poată detecta erorile structura unui sistem de comunicație devine: Prin codificare se înțelege transpunerea informației numerice sub o forma care sa permită receptorului detecția si eventual corecția erorilor.
  • 174. 173 Protocoale de comunicație: - un set de reguli care definesc înțelesul unei structuri de cuvinte binare. Un protocol reprezintă un set de reguli și convenții ce se stabilesc între participanții la o comunicație în rețea în vederea asigurării bunei desfășurări a comunicației respective. Este de fapt o înțelegere între parțile care comunică, asupra modului de realizare a comunicării. Topologii de reţele Topologia magistrală: folosește un cablu de conexiune principal, la care sunt conectate toate sistemele de calcul. Topologia inel: Într-o topologie inel (ring), fiecare dispozitiv este conectat la următorul, de la primul până la ultimul, ca într-un lanţ. Topologia stea Are un punct de conectare central, care este de obicei un echipament de reţea, precum un hub, switch sau router Topologia plasă (mesh) Într-o topologie mesh, fiecare echipament are conexiune directă cu toate celelalte. Dacă unul din cabluri este defect, acest defect nu afectează toată rețeaua ci doar conexiunea dintre cele două stații pe care le conectează. Altfel spus, dacă o parte a infrastructurii de comunicație sau a nodurilor devine nefuncțională, se găsește oricând o noua cale de comunicare. Topologia arbore (tree) Combină caracteristicile topologiilor magistrală și stea. Nodurile sunt grupate în mai multe topologii stea, care, la rândul lor, sunt legate la un cablu central
  • 175. 174 Topologia magistrală Topologia inel Topologie de tip stea Topologie de tip arbore
  • 176. 175 Toate transferurile de informaţii şi date între diverse componente ale sistemului de calcul, care se realizează prin magistrale, se desfăşoară la nivel de bit, octet, cuvânt sau bloc de octeţi. Aceste transferuri de biţi se pot efectua în două feluri: prin transmisie serială sau prin transmisie paralelă. Transmisia paralelă este o transmisie eficientă deoarece se desfăşoară concomitent pentru cei 8 biţi ai unui octet de exemplu, pe 8 căi distincte. Prin urmare, transferul unui grup de octeţi are loc cu o viteză foarte mare, dar are dezavantajul unui cost ridicat datorat interfeţei paralele şi cablului de conectare cu 8 fire (sau mai multe). Transmisia paralelă se utilizează la echipamentele care vehiculează un volum mare de date într-un timp scurt. Transmisia serială este mai simplă pentru că nu necesită decât o cale de transmisie, un octet transmiţându-se bit cu bit. Costurile sunt mici, dar dezavantajul este legat de viteza de transmisie mică. Deoarece trebuie introdus un mecanism de separare a logică a octeţilor transmişi, la construcţia interfeţelor se foloseşte o altă clasificare a transmisiilor: - transmisia sincronă, în care octeţii se transmit fără biţi fanion şi fără pauze de transmisie între octeţi; - transmisia asincronă, la care între octeţii transmişi sunt intercalate pauze sau se folosesc flag-uri de indicare a începutului sau sfârşitului unui octet. Transmisia sincronă utilizează ceasuri sincronizate pentru a transmite date, în timp ce transmisia asincronă utilizează controlul fluxului în loc să utilizeze un ceas sincronizat pentru a transmite date.
  • 177. 176 O altă clasificare a transmisiilor de date se poate face după modul în care este folosită linia de transmisie: Ø Simplex - întâlnit și sub numele de transmisie unidirecțională, constă în transmisia datelor într-un singur sens. Ø Half-duplex – constă în transmiterea datelor în ambele direcții alternativ. Datele circulă în acest caz pe rând într-o anumită direcție. Un exemplu de transmisie half- duplex este transmisia datelor între stațiile radio de emisie-recepţie. Sistemele sunt formate din două sau mai multe staţii de emisie-recepţie dintre care una singură joacă rol de emițător, în timp ce celelalte joacă rol de receptor; Ø Full-duplex – constă în transmisia datelor simultan în ambele sensuri. Lățimea de bandă este măsurată numai într-o singură direcție (un cablu de rețea care funcționează în full-duplex la o viteză de 100 Mbps are o lățime de bandă de 100 Mbps).
  • 178. 177 Modelul de referinţă OSI Modelul de referinţă OSI (Open System Interconection) descrie şapte nivele funcţionale, care, împreună cu mediul fizic, asigură un set complet de servicii de comunicaţie. Această arhitectură poate fi concepută ca fiind compusă din două parţi diferite: -partea de suport(1,2,3); -partea de utilizator(5,6,7). Cele două parţi sunt separate de nivelul de transport, care are rolul de a ascunde detaliile constructive ale comunicaţiei.
  • 179. 178 Nivelul fizic (Physical Layer) asigură mijloacele mecanice, electrice, funcţionale şi procedurale pentru accesul la mediul fizic. Nivelul fizic se rezumă la cabluri şi semnale electrice. Datele sunt transmise între dispozitive prin cabluri sau sub formă de unde radio. Nivelul Legătura de date (Data Link Layer) reprezintă partea care asigură interconectarea fizică. La acest nivel putem vorbi despre cea mai mare grupare de biţi care se transmite prin mediul fizic: frame-ul. Nivelul reţea (Network Layer) se ocupă de dirijarea maselor între două noduri intermediare folosind blocuri speciale de control, care conţin adresa destinatarului. Acest nivel va alege ruta pe care informaţia va ajunge la destinaţie şi va adăuga adresele nodurilor intermediare. Nivelul transport (Transportation Layer) realizează transferul datelor de la sursă la destinaţie pe ruta stabilită de nivelul precedent cu o integritate ridicată. Se utilizează protocoale bazate pe confirmare, care implică transmisia, retransmisia şi recuperarea datelor eronate. Programul de pe calculatorul sursă conversând cu un program similar de pe calculatorul destinaţie. La acest nivel canalelor logice li se asociază adrese fizice.
  • 180. 179 Nivelul sesiune (Session Layer) permite legarea utilizatorului la un calculator central care lucrează cu divizarea timpului (time sharing) şi transmiterea fişierelor prin funcţiile de stabilire şi eliberare de conexiuni, sincronizare, raportare, întrerupere.Pentru a evita repetarea întregului transfer în caz de eroare, inserează periodic puncte de control de la care poate fi reluată transmisia. Nivelul prezentare (Presentation Layer) are rolul de a elibera aplicaţiile de diferenţele existente în reprezentarea datelor.Asigură totodată codificarea datelor îintr-un standard corespunzător aplicaţiei.În cazul în care la transmisie se folosesc date comprimate pentru a reduce timpul de transfer, acest nivel rezolvă comprimarea şi decomprimarea datelor. Nivelul aplicaţie (Application Layer) permite funcţionarea concurentă a proceselor în vederea realizării unui obiectiv definit de utilizator, fără ca acesta să cunoască locul unde se află procesele. Funcţiile asigurate de acest nivel sunt:lansarea programelor, vizualizarea şi transferul fişierelor de pe întregul system, poşta electronică.
  • 181. 180 Topologia magistralei CAN CAN foloseşte topologia liniară sau magistrală (Bus Topology). În acest caz există un singur canal de comunicaţie la care sunt conectate toate nodurile reţelei. Cablul de legătură formează o linie de legătură de la un capăt la altul al reţelei. Acest mediu comun de transmisie are exact două terminaţii (EN:endpoints). Fiecare nod este conectat la canalul de comunicaţie si transmite mesaje în reţea. Această topologie are avantajul că magistrala este încă operaţionala pentru toate celelalte noduri, chiar şi atunci când o nod devine nefunctional.
  • 182. 181 Topologia magistralei CAN În cazul în care linia principală este întreruptă , întregul segment este deconectat de restul reţelei. Segmentele rămase rămân operaţionale, iar comunicarea dincolo de locaţia întreruperii este imposibilă. Din cele 7 nivele ale OSI , numai cele de culoare albastră (1, 2, şi 7) sunt implementate in magistrala CAN
  • 183. 182 Topologia magistralei CAN Mediul de transmisie (Nivelul 1 OSI) În general doar un singur fir este necesar pentru transferul de date (single-wire cable). Dar cu un astfel de mediu de transmisie viteza este relative scăzută. În afară de aceasta, toate staţiile conectate la un bus single-wire trebuie să aibă parte de conectare la masă. Prin urmare, bus-ul single-wire este mai sensibil la bruiajele electrice exterioare. Mediul de transmisie folosit mai des constă în doua fire (twin - wire) torsadate pe care se transmite semnal diferenţial. Un cablu torsadat este alcătuit din două fire înfăşurate elicoidal , fiecare fir izolat în parte. Cablul torsadat poartă numele de twisted pair în literatura de specialitate . Prin înfăşurarea celor două fire se elimină prin diferenţiere zgomotul . Ecranarea (ca de exemplu în cazul cablului coaxial), nu este necesară. Din păcate, nu există o culoare de codificare. Prin urmare, cele două tipuri de fire pot avea culori diferite, în funcţie de producător. Cele două fire se numesc CAN high (CAN-H) şi CAN low (CAN-L).
  • 184. 183 Topologia magistralei CAN Legătura de date (Nivelul 2 OSI) Protocolul de comunicare care stă la baza magistralei CAN este CSMA/CD (Carrier Sense Multiple Access with Collision Detection). Carrier Sense Multiple Access (CSMA) este un protocol Media Access Control (MAC) în care un nod înainte de a transmite informaţia pe magistrala comună verifică prezenţa altui trafic de pe mediul comun de transmisie. Dispozitivele ataşate la cablul de reţea ascultă (carrier sense), înainte de a transmite. În cazul în care canalul este în uz, nodul aşteaptă înainte de a transmite. MA (multiple acces) indică faptul că mai multe dispozitive pot fi conectate şi împart aceeaşi reţea. Toate nodurile reţelei au acces egal la utilizarea reţelei, atunci când aceasta este neutilizată. Chiar dacă dispozitivele încearcă să verifice dacă reţeaua este în uz, există o bună şansă ca două noduri să încerce să o acceseze în acelaşi timp. În reţele mari , timpul de transmisie între un capăt al cablului şi celălalt este suficient cât o staţie să încerce să acceseze reţeaua, chiar dacă deja este folosită de alt nod.