Publicité

Cursuri. Calculatoare de bord.pdf

12 Oct 2022
Publicité

Contenu connexe

Publicité

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)
  34. 33 Reprezentarea caracterelor alfanumerice - ASCII
  35. 34 Reprezentarea valoriilor numerice Stocarea valorii reprezentate în baza doi (binar).
  36. 35 Decodificarea reprezentării binare 100101
  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).
  79. 78 Regisbe Memccia 0.25-0.Szs <1KB bzrds‹ate 0.S—2Sas <16kfB d0-2S0rs Szns
  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.
  100. 99 FUNCȚIONAREA UNUI CALCULATOR VON NEUMANN
  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
  103. 102 ARHITECTURA HARVARD
  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.
  121. 120 https://sites.google.com/site/sjsucmpe120/slides-2/micro-architecture/alu
  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
  171. 170 Magistrale de date
  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.
Publicité