Documente Academic
Documente Profesional
Documente Cultură
1
Sisteme de intrare iesire pentru calculatoarele de bord
- tastatura, mouse
- touch-screen, joystick
- camera video, microfon
- display-uri (CRT, LED),
afisoare cu LED
- afisaje HUD (Head Up
Display);
- afisaje DASH
- difuzoare
2
HUD - Head Up Display
3
PZL TS-11 Iskra (Polish
jet trainer) - HUD
5
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.
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)
7
Structura generală a unei interfeţe de proces
8
Structura sistemului ieşirilor analogice
9
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ă.
10
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);
11
• 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;
12
• 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.
13
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).
14
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
15
A350 XWB Slat Flap Control Computer
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.
17
Porţi logice şi circuite basculante bistabile Definiție
18
Porţi logice şi circuite basculante bistabile scheme
19
Circuit basculant bistabil simplu
20
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.
21
Setarea ieşirii circuitului basculant bistabil la valoarea 1
22
Valoarea 1 de la ieşirea porţii
AND menţine poarta OR în
starea precedentă, după ce
intrarea de sus revine la 0
23
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.
24
Sistemul de notaţie hexazecimal
25
• şirul de 16 biţi 1010010011001000 poate fi redus la mult mai acceptabila
formă A4C8
26
Î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).
27
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.
28
Octet ordonat
29
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.
30
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.
31
Reprezentarea caracterelor alfanumerice
32
Reprezentarea caracterelor alfanumerice - ASCII
33
Reprezentarea valoriilor numerice
Stocarea valorii reprezentate în baza doi (binar).
34
Decodificarea reprezentării binare 100101
35
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.
36
Calculatoare de bord
Notiuni de Arhitectura Calculatoarelor
37
Reprezentarea Numerelor cu Semn
N –număr binar
N bn1bn2 ...b1b0 , b1 ...b m
bi 0,1
39
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
40
Sistem de notaţie
în complement faţă
de doi utilizând
cuvinte binare de
lungime 4
41
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.
E 10000000 10000000
N 00000101 11111011
10000101 01111011
42
Sistem de notaţie în exces care utilizează cuvinte cu lungimea de trei biţi
43
Tabelul de
conversie pentru
sistemul de notaţie
în exces cu opt
44
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].
45
Adunarea numerelor reprezentate în complement faţă de doi
Exemple:
x = 9, y = 5
00001001+ 9 + 5 = 14
00000101
00001110
46
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
47
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
48
Problema depăşirii superioare
49
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)
50
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
51
52
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).
53
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ă:
Î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.
55
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.
56
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.
57
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.
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.
59
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.
60
61
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.
62
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ă.
63
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.
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.
64
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.
65
Calculatoare de bord
Notiuni de Arhitectura Calculatoarelor
66
Arhitectura elementară a calculatorului
Se numește sistem de calcul orice sistem care este capabil să 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ă furnizeze la ieșire informațiile (date de ieșire sau rezultate) într- o
formă accesibilă omului sau altui calculator.
67
Schema celor 5 unitati
68
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.
69
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
care regiştrii anume 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;
70
Dispozitivele de stocare de masă sunt utilizate pentru stocarea pe
termen lung a datelor.
71
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 și anume:
•Capacitate–cantitatea maximă de informație ce poate fi păstrată în memorie 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 din memorie.
•Prețul de cost pe unitatea de informație –prețul de cost al unui bloc de memorie /capacitatea blocului.
72
•Tendința a fost mereu de creștere a capacității și de scădere a timpului de acces și a prețului de
cost pe unitatea informațională. Un timp de acces mai mic presupune însă o creștere a prețului
de cost pe unitatea informațională, deci cerințele impuse celor trei mărimi nu pot fi 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. •Din această cauză soluția realistă s-a dovedit un compromis, 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 și o capacitate mică iar nivelele mai îndepărtate
să ofere un timp 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
73
74
75
•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), fiind plasate în interiorul procesorului. Majoritatea
instrucțiunilor procesorului pot accesa direct un registru.
•Memoria cache – este un nivel intermediar între procesor și memoria principală cu un timp de acces
bun dar și o capacitate relativ mică. La ora 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 să aibe un singur nivel. Nivelul L1 poate fi plasat în procesor. Memoria
cache este realizată cu circuite integrate RAM static (SRAM).
76
•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).
77
Regisbe Memccia
bzrds‹ate
<1KB <16kfB
78
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.
79
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.
80
Instrucţiuni în cod maşină, Instrucţiuni de tranfer de date, Instrucţiuni
aritmetice şi logice, Instrucţiuni 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
81
(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
82
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
83
Stocarea programelor, Instrucţiunile ca şiruri de biţi
84
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.
85
Fazele executarii unei instructiuni si Executia programelor. Ciclul mașinii. Programe si
Date.
86
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.
87
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ă din trei 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 fi executată. 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.
88
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.
89
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.
90
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 în general executată pe perioada unui impuls de tact.
91
Se consideră că o instrucțiune este complexă dacă nu poate fi executată pe perioada unui impuls
de tact, implică mai multe resuse diferite (procesor+memorie) și poate fi înlocuită printr-o serie
de instrucțiuni simple.
Pentru instrucțiunile complexe acest lucru este mai rar întâlnit. Aceste instrucțiuni sunt inițial
transformate în microinstrucțiuni executate de un procesor microprogramat.
92
93
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
94
Micșorarea memoriei ocupată de cod (foarte utilă în anii 60-70).
95
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 64 biți);
96
Facilitarea paralelismului în activitatea procesorului (procesoare
pipeline);
Reducerea consumului de energie pe procesor.
97
Arhitectura von Neuman vs. Harvard PRINCIPIILE ARHITECTURII
VON NEUMANN
98
FUNCȚIONAREA UNUI CALCULATOR VON NEUMANN
99
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 plasată în memorie la adrese
consecutive.
Conținutul numărătorului de program se poate modifica și prin instrucțiuni speciale numite
instrucțiuni de salt
100
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 performate pentru stocarea
instrucțiunilor(reprezentate pe 24 de biți) și blocuri de relee pentru date (23 digiți)
Cele două blocuri de memorie comunică cu Procesorul prin magistrale separate – îmbunătățire a
vitezei de calcul.
Memoria de instrucțiuni poate fi numai citită în timp de memorie de date 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
101
ARHITECTURA HARVARD
102
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/în memorie.
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
103
Arhitectura Harvard permite o extensie simplă pentru prelucrări SIMD(Single Instruction,
Multiple Data), folosind o singură memorie de instrucțiuni și mai multe memorii de date
104
HARVARD VS VON NEUMANN
Într-o arhitectură von Neumann instrucțiunile pot fi prelucrate ca și orice 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și sub forma unui pachet 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ă
arhitecturi pure prezentate anterior și în același timp să elimine neajunsurile specifice.
105
ARHITECTURA HARVARD MODIFICATĂ
Arhitectura Harvard modificată este orice variantă a arhitecturii Harvard care permite accesarea
conținutului memoriei de instrucțiuni ca ș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 date specific
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țiul î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 un conținut aleator.
La ora actuală calculatoarele cu arhitectură Harvard folosesc din ce mai mult memorii flash pe
post de memorie de instrucțiuni ceea ce permite citirea și scrierea instrucțiunilor ca într-o memorie
RAM, dar cu viteză mai mică.
106
Calculatoare de bord
Noțiuni de Arhitectura Calculatoarelor
107
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ă.
În primul caz paralelismul este exploatat cu instrucțiuni individuale pentru a obține un raport
instrucțiuni / secundă cât mai mare.
În a doua variantă paralelismul se referă la mai multe procesoare care lucrează în paralel la
aceeași problemă.
108
S-a știut de mult că preîncărcarea instrucțiunilor din memorie este un element important pentru
viteză de execuție a instrucț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ă se aștepte completarea unui ciclu de citire din memorie.
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
109
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
metoda secvențială.
110
Controlere
111
Structura ierarhizată a unui sistem de calcul
112
Circuite aritmetice. Registre de deplasare. Sumatoare. ALU
Primul circuit aritmetic prezentat este un registru de deplasare cu 8 intrări și 8 ieșiri, ca în figura
următoare.
113
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.
114
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ți 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
dreapta sa, se va realiza o deplasare spre dreapta a bitului.
115
Când C=0 membrul stâng al porții AND se va activa realizând o deplasare spre stânga.
116
Sumatoare
117
Pentru a construi un sumator, să zicem pentru două cuvinte pe 16 biți, trebuie să
construim 16 replici ale circuitului din figura de mai sus.
118
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.
119
https://sites.google.com/site/sjsucmpe120/slides-2/micro-architecture/alu
120
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 poarta OR pentru ieșire.
Partea din stânga sus conține logica de calcul pentru A AND B, A OR B și B negat, dar cel mult
unul din aceste rezultate este transferat la poarta OR finală în funcție de liniile de validare ce
provin din decodor.
Deoarece exact una din linii va fi 1, numai una din cele 4 porți AND ce conduc 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 sau ENB.
INV A – inversează A
121
În condiții normale, ENA și ENB sunt ambele 1 și INV A va fi (.Î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 este posibil ca astfel de circuite să fie
conectate împreună pentru a realiza operații la nivelul 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.
122
Tehnici de intrare-ieșire – Porturi, Polling, Întreruperi, DMA
Transmisia datelor dinspre și spre exterior se face prin locații speciale de memorie denumite
porturi.
Fiind niște locații de memorie, porturile comunica cu microprocesorul prin magistrala de date,
magistrala de adrese si magistrala de control.
123
Tehnica întreruperilor
Aceasta tehnica permite transferuri mai rapide de date de la porturi si este frecvent utilizata in
operațiile de intrare-ieșire pentru volume relativ mici de date. Î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.
124
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.
125
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ări a datelor, există posibilitatea ca șirul de biți primiți, înapoi să 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 apărea 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.
126
Una din modalitățile practice cel mai frecvent utilizate în detectarea erorilor este reprezentată 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:
· în cazul parității pare, numărul pozițiilor binare din șir care au valoarea 1 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.
127
Deși ne închipuim aceste sisteme ca având celule de memorie de opt biți, în realitate ele pot
utiliza celule de nouă biți, dintre care unul este folosit ca bit de paritate.
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ântul de 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-o eroare, 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.
128
Ș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ți de-a lungul șirului de biți.
129
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 cu fiecare 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 de biți inițial,
deoarece ele survin în domeniile de verificare ale mai multor biți de paritate.
În anumite situații, simpla detectare a erorilor este ineficientă. În vederea eliminării, fie și numai
parțiale, a acestui neajuns, au fost proiectate coduri care, 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ă și codul HAMMING
130
· codurile de paritate încrucișată
· codul HAMMING
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ă.
131
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.
132
Codul Hamming : este un cod autocorector bazat pe teste de paritate.
Dacă se numerotează biţii de la dreapta spre stânga pornind de la 1, biţii de control (sau de
paritate) sunt plasați pe poziția puterilor lui 2 (biţii cu numărul 1 ,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.
133
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;
134
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.
135
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.
136
7 6 5 4 3 2 1
m4 m3 m2 k3 m1 k2 k1
1 0 1 1 1 0 0
137
Calculatoare de bord
CONVERSII NUMERIC-ANALOGICE
ŞI
ANALOG-NUMERICE
138
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.
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
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.
141
CONVERTOARE NUMERIC-ANALOGICE (CNA)
142
CONVERTOARE NUMERIC-ANALOGICE (CNA)
143
CONVERTOARE NUMERIC-ANALOGICE (CNA)
Forma semnalului de ieşire din CNA (răspunsul unui extrapolator de ordin zero).
144
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ă.
145
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
146
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
147
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:
148
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
149
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:
150
Structura unui CNA pe 4 biţi cu rezistenţe ponderate
151
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(n ).
Elementul S/H este un circuit analogic care masoara semnalul de intrare în ritmul
unui tact (multiplu de ) si mentine acest semnal fixat pentru un interval de timp
suficient de mare pentru ca operatiunea de conversie analog-numerica sa se poata
realiza.
152
153
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.
154
CAN cu aproximări succesive
155
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.
156
CAN cu aproximări succesive
157
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.
158
Indicatori de performanţă ai CAN
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.
159
Indicatori de performanţă ai CAN
Î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).
160
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.
161
Indicatori de performanţă ai CAN
Î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.
162
Indicatori de performanţă ai CAN
163
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.
164
Indicatori de performanţă ai CAN
165
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ă
166
Indicatori de performanţă ai CAN
167
Indicatori de performanţă ai CAN
168
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.
169
Magistrale de date
170
Structura unui sistem de comunicaț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.
171
In cazul in care , fie distanta este foarte mare , fie nivelul perturbațiilor este crescut,
structura de mai sus se modifica astfel:
172
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
173
Topologia magistrală Topologia inel Topologie de tip stea
174
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.
175
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).
176
Modelul de referinţă OSI
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).
177
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.
178
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.
179
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:end points). 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 un nod devine nefunctional.
180
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ă.
181
Topologia magistralei CAN
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).
182
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.
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.
183
Topologia magistralei CAN
184
Magistrala ARINC 429
ARINC 429 este un standard de transfer de date pentru avionica.
Firele de conectare fizica sunt perechi răsucite care poarta un semnal diferențial;
Cuvintele de date sunt de 32 de biți. Mesajele sunt transmise fie la 12 kbit/s fie la 100
kbit/s la alte elemente de sistem care monitorizează mesajele din magistrala.
Transmițătorul transmite in mod constant fie cuvinte de date pe 32 biți fie starea NULL
(0 V). Fiecare cuvânt ARINC 429 este o secvența de 32 biți care conține 5 câmpuri:
- bitul 32 este bitul de paritate; folosit pentru a verifica daca cuvântul a fost deteriorate in
timpul transmisiei;
- biți 30 si 31 , sunt matricea de Semnătura/Status (SSM - Sign/Status Matrix) acești biți
pot avea diferite codificări in funcție de reprezentarea particulara a datelor aplicata unui
cuvânt dat.
- biți 29..11, conțin datele
- biți 9 si 10 sunt Identificatori de sursa/destinație SDI si pot indica receptorul dorit sau
mai frecvent indica subsistemul de transmitere.
-biți de la 1 la 8 conțin o eticheta , identificând tipul de date
185
În această imagine, eticheta (tabel) apare în roșu, datele în albastru-ocean și bitul de paritatee în albastru.
186