Sunteți pe pagina 1din 153

ARHITECTURA

SISTEMELOR DE CALCUL
Curs 1
Cuprins

 Sistem de calcul
 Evoluţia sistemelor de calcul
 Componente SW
3
 Dispozitiv care efectuează calcule, în special o maşină
electronică programabilă care execută operaţii aritmetice,
logice sau care asamblează, stochează, corelează sau
efectuează un alt tip de procesare a informaţiei, cu viteză
ridicată (The American Heritage Dictionary of the English
Language, 2000).
Bit:
 unitate elementara de informatie

 poate avea valoarea “0” sau “1”.


Aceste valori corespund fizic unor
nivele de tensiune, în funcţie de
circuitele electronice cu care este
construit calculatorul.

 starea unui bistabil, sau a unei


celule elementare de memorie
Cap. 2. Evoluţia
sistemelor de
calcul
Fondatori ai ştiinţei calculatoarelor : Blaise Pascal, Gotfried Wilhelm Leibniz,
Charles Babbage, George Boole şi Claude Shannon

 Blaise Pascal (1623-1662), a inventat în anul 1642 prima maşină de calcul


operaţională, denumită „Maşina Aritmetică”, ce realiza operaţiile de adunare şi
de scădere
 Leibniz in 1694construieste o masina de adunat si inmultit.
 Matematicianul britanic Charles Babbage (1791-1871) a inventat primul
dispozitiv ce poate fi considerat un computer în sensul modern al cuvântului,
prin proiectarea primul calculator cu executie automata a programului.
Proiectul prevedea principalele elemente ale calculatoarelor moderne -
unitatile de: memorie, calcul, intrare, iesire si comanda.
 A construit două maşini (funcţionau cu aburi) de calcul: "Difference Engine" şi
"Analytical Engine"; Sistemul de calcul era analogic, nu avea sistem de operare;
software pentru calculatorul său - nume limbajul de programare ADA.
 Maşina de calcul „Difference Engine” - caracteristici: 4000 componente ; cântărea 3 tone;
aproximativ 3 metri lăţime şi 2 metri şi jumătate lungime.
 În jurul anului 1850 matematicianul englez George
Boole a inventat Algebra booleană care a rămas relativ
necunoscută şi neutilizată până în anul 1938, când
teza de masterat a lui Claude Elwood Shannon a
demonstrat cum conceptele lui Boole „TRUE” şi
„FALSE” pot fi utilizate pentru a reprezenta
funcţionalitatea comutatoarelor din circuitele
electronice.
 1872 E. Barbour realizeaza prima masina de calcul cu
imprimanta.

 1892. W. Burroughs construieste o masina de calcul de birou


perfectionata.

 1912. F. Baldwin si J. Monroe incep productia de masa a masinilor


mecanice de calcul, cu patru operatii aritmetice.

 1930. Productia de masa a masinilor electromecanice de calculat


prevazute cu operatiile: adunare, scadere, inmultire, impartire,
radacina patrata, subtotal etc.
11
Prima generaţie in evoluţia calculatoarelor(1938-1953)

- caracterizată de utilizarea tuburilor electronice;


- calculatoarele erau destinate calculelor ştiinţifice şi comerciale;
- in această perioadă se încadrează calculatoarele Harvard Mark 1
şi ENIAC;

Calculatorul ENIAC
 Harvard Mark 1 (IBM Automatic Controlled Calculator) (1938 – 1944), fiind
format din mai multe calculatoare ce lucrau asupra unor părţi ale aceleiaşi
probleme sub supravegherea unei singure unităţi de control.

 maşina era construită din comutatoare, dispozitive mecanice, relee


electromagnetice al caror contacte lor joaca rolul elementelor bistabile .
Astfel, se puteau codifica cifrele sistemului de numeratie binar.

 conţinea 750.000 de componente, având 16 metri lungime, 2,5 metri


înălţime şi cântărind 5 tone.

 numerele folosite în calcule erau de 23 de cifre, o înmulţire dintre două


numere dura 4 secunde iar o împărţire dura 10 secunde.
Primele calculatoare realizate cu tuburi electronice:

 ENIAC - Electronic Numerical Integrator And Computer a fost realizat prin


contribuţia inginerilor William Mauchly , J. Presper Eckert si J. von Neumann
de la Universitatea din Pennsylvania între anii 1943 şi 1946. Cu aceasta
ocazie s-a folosit ideea de a stoca in aceeasi memorie, atat datele, cat si
programul, ceea ce a permis modificarea relativ usoara a programului;

 calculatorul avea 3 metri înălţime, ocupa un spaţiu de 30 mp şi cântarea


30 tone.

 in construcţia sa erau folosite 18.000 tuburi cu vacuum, având nevoie de


o putere de 150 kW (suficient pentru a ilumina un mic oraş).

 Principala problemă cu acest tip de calculator era fiabilitatea: în fiecare zi


trebuiau să fie înlocuite aproximativ 50 de tuburi cu vacuum.
 1945: a inceput constructia unui alt calculator electronic
EDVAC (Electronic Discrete Variable Automatic Computer) pe
baza lucrarii lui J.von Neumann. Dupa elaborarea structurii
logice de baza a calculatorului cu program memorat, au fost
stabilite entitatile functionale care concurau la realizarea
acestuia:
 un mediu de intrare care sa permita introducerea unui numar nelimitat
de operanzi si instructiuni;
 o memorie din care se citesc operanzi sau instructiuni si in care se pot
introduce, in ordinea dorita, rezultatele;
 o sectiune de calcul, capabila sa efectueze operatii aritmetice sau logice
asupra operanzilor cititi din memorie;
 un mediu de iesire, care sa permita livrarea unui numar nelimitat de
rezultate catre utilizator;
 o unitate de comanda, capabila sa interpreteze instructiunile citite din
memorie si sa selecteze diverse variante de desfasurare a operatiilor, in
functie de rezultatele obtinute pe parcurs.
Generaţia a doua in evoluţia calculatoarelor (1954 - 1963)
 caracterizată prin folosirea tranzistorului pentru realizarea circuitelor logice
 aveau în jur de 100 de instrucţiuni complexe,
 memorie de tip magnetic
 includea dispozitive periferice
 prelucrarea se făcea secvenţial prin intermediul unui sistem de operare simplu (FMS şi
IBSYS pentru maşina de calcul IBM 7094), folosindu-se atât limbajul de asamblare cât şi
limbaje evoluate.

 În anul 1956 a apărut Limbajul de programare Fortan


 După anul 1960 au apărut limbajele Algol (ALGOrithmic Language) şi Cobol (COmmon
Business-Oriented Language - limbaj orientat spre aplicaţiile de afaceri).

 Calculatoarele erau folosite în mare parte pentru calcule ştiinţifice, rezolvarea


sistemelor de ecuaţii liniare şi neliniare, ecuaţii diferenţiale etc.
 În anul 1955 a devenit operaţional primul calculator cu tranzistori, denumit TRADIC
(Transistor Digital Computer).

Calculatorul Altair 8800


 caracterizată prin utilizarea circuitelor integrate pe scară mică
(SSI - Small Scale Integration) şi medie (MSI - Medium Scale
Integration)
 în anul 1958 inginerul Jack Kilby a reuşit să combine mai multe
componente pe o singură bucată de semiconductor, realizând
astfel primul circuit integrat.
 în anul 1961, Fairchild (cercetător la Texas Instruments) şi
Texas Instruments au realizat primele circuite integrate
comerciale ce conţineau funcţii logice de bază, două porţi logice
fiind implementate prin intermediul a 4 tranzistori bipolari şi 4
rezistoare.
 T. Hoff, proiectant la Intel, a creat primul microprocesor,
denumit Intel 4004, ce avea 2300 de tranzistoare şi putea
executa 60.000 operaţii pe secundă.
 in 1974, apare primul microprocesor de uz general -> 8080
 procesor pe 8-biţi, cu 4500 tranzistori
 efectua 200.000 operaţii pe secundă.
Alte procesoare din această vreme au fost: Motorola 6800, MOS Technology 6502,
Zilog Z80.
 în 1974 Ed Roberts lansează pe piaţă calculatorul Altrair 8080,
cu următoarele caracteristici:
 bazat pe microprocesorul 8080.
 preţ de 375$.
 memorie 4KB, programabil prin intermediul unui panou frontal cu comutatoare.

 În 1975 Bill Gates si Paul Allen fondează firma Microsoft şi


implementează limbajul de programare BASIC 2.0 pe Altair 8800
- primul limbaj de nivel înalt disponibil pe un calculator personal
 Alte exemple de calculatoare din această perioadă sunt: Apple I
în 1976 , Apple II în 1977, TRS-80 (bazat pe microprocesorul
Z80)
 caracterizată prin construcţia de calculatoare ce
utilizează circuite integrate pe scară mare (LSI -Large Scale
Integration) şi foarte mare (VLSI - Very Large Scale Integration)
 exemple de calculatoare: IBM-43xx, VAX-11/7xx, IBM-
308x, RIAD3, Coral 4021, Independent 106, Felix 5000,
Coral 8730.
 în anul 1981 a fost scos pe piaţă primul calculator
personal (PC - Personal Computer) avea următoarele
caracteristici:
 microprocesor pe 16-biţi 8088
 memorie ROM BASIC
 floppy-disc de 360KB capacitate
 sistem de operare DOS 1.0
 preţ 1365 $
 Hardware : tehnici evoluate de impachetare si interconectare, proiectare circuite
integrate 3D, componente optice, arhitecturi paralele pentru prelucrarea
inferentelor, retele neuronale.

 Software : sisteme de operare cu interfata evoluata cu utilizatorul, limbaje


concurente, programare punctionala, prelucrare simbolica (limbaje naturale,
recunoasterea formelor, recunoaşterea vorbirii ), Prolog, baze de cunostinte,
sisteme expert evoluate, CAD, multimedia, realitate virtuala, web.

 Exemple de calculatoare: statii de lucru, super-calculatoare, retele de


supercalculatoare.

 Tehnologia telecomunicatiilor: dezvoltarea extensiva a sistemelor distribuite,


retele locale, retele din fibra optica de mare capacitate retele de transmisii radio
la frecvente de ordinul GHz cu spectru imprastiat, telefonie digitala mobila,
fuzionarea tehnologiilor comunicatiilor si calculatoarelor.
noiembrie 2012: Titan Cray XK7 (SUA) Fabricat de Cray Inc.

Instalat la Oak Ridge National Laboratory (U.S. Department of Energy)

 Performanţa (în Nov. 2012): 17,59 PFLOPS  Nodurile de calcul sunt amplasate în 200 de
 În configuraţia finală, performanţa va fi de peste 20 PFLOPS dulapuri
 Numărul nodurilor de calcul: 18.688  Nr. total de nuclee Opteron: 299.008
 Nod de calcul:  Memorie totală: 710.144 GB
 Un procesor AMD Opteron 6274 (2,2 GHz, 16 nuclee)  Interconexiune: Gemini, 100 Gbiţi/s
 Un accelerator grafic (GPU) NVIDIA Kepler K20  Sistem de fişiere: Spider, 240 GB/s, capacitate
 Memorie: DDR3, 32 GB + 6 GB de peste 10 PB
 Sistem de operare: Cray Linux Environment
 Consum de putere: 8,2 MW

21
 încă în dezvoltare

 se bazează pe utilizarea inteligenţei artificiale, a


circuitelor integrate specializate şi a procesării paralele

 Folosirea procesarii paralele şi superconductoarele fac


viabilă inteligenţa artificială

 Procesarea moleculară şi cuantică precum şi


nanotehnologiile vor duce la schimbari importante în
următorii ani
Arhitectura unui sistem de calcul defineşte:
CE trebuie să facă maşina din punct de vedere logic
ISA (Instruction Set Architecture) Arhitectura Setului de Instrucţiuni
CUM se implementează ISA, implementare fizică
MO (Machine Organization) Organizarea Maşinii

Aplicaţii
(ex. Netscape, Matlab, Word)

Sisteme de operare
(ex. Unix, Windows)

Compilatoare

Asambloare
Elemente influenţate de
arhitectura setului de
instrucţiuni
Procesor Memorie Dispozitive I/O

Magistrale de date şi control

Proiectare digitală

Proiectarea circuitelor

Tranzistoare, Layout-ul IC
Împărţirea ierarhică pe componente, porneste de la nivelul de jos (apropiat de
structura hardware-fizică a calculatorului)
şi continua cu cel apropiate de utilizator prin considerarea elementelor
nivelului înalt (apropiat de componenta software-programe).
 Nivelurile inferioare sunt constituite de componentele hardware
(tranzistori, circuite integrate, porţi logice) ce stau la baza construcţiei
calculatorului

 Urmează unităţile funcţionale ale microprocesorului (unitatea de control


ce administrează întreaga funcţionare, unitatea aritmetico-logică ce execută
operaţiile aritmetice şi logice, memoria, magistralele etc.)

 Nivelul superior al programelor de aplicaţii (cel mai apropiat de


utilizator) - nivelul microprogramat, nivelul limbajului de asamblare şi
nivelul limbajelor de programare de nivel înalt.
 Componenta hardware - totalitatea resurselor fizice de care dispune
calculatorul :
 Unitatea Centrală de Procesare (Central Processing Unit – CPU), este componenta care controlează
modalitatea de funcţionare a calculatorului şi execută şi operaţiile de procesare a datelor; µPUG,
coprocesoare aritmetice, procesoare digitale de semnal, CISC(Complex Instruction Set Computer ),
RISC (Reduced Instruction Set Computer)
 Memorii - formatul memoriei, conţinut / adresă, harta memoriei, “pagini“, "segmente“, memorie de
date, memorie de program.
 Dispozitivele Periferice - necesare pentru asigurarea interacţiunii calculatorului cu mediul extern
(introducere de date/oferirea rezultatelor) Porturi de intrare/ieşire (I/O);
 Magistrale de conexiune între componente – magistrala de sistem este mecanismul ce oferă
modalitatea de comunicare între componentele sistemului. Magistrală – date, adrese, control

 Componenta software cuprinde categorii


distincte de programe:
 Sisteme de operare , programele de aplicaţii -
instrucţiunea, setul de instrucţiuni, program;
 Nivele de abstractizare – limbaje de nivel înalt,
limbaj de asamblare, cod maşină.
(firmware - partea de microprograme)
Limbaje de programare de
nivel înalt (ex. C )

Compilare

Limbaj de asamblare

Asamblare

Cod maşină

Interpretarea codurilor

Desfăşurarea unor
acţiuni specifice
ARHITECTURA
SISTEMELOR DE CALCUL
Curs 1+2
Cuprins

 Concepte de logica digitala


 Reprezentarea informatiilor numerice
Recapitulare

Arhitectura unui sistem de calcul defineşte:


CE trebuie să facă maşina din punct de vedere logic
ISA (Instruction Set Architecture) Arhitectura Setului de Instrucţiuni
CUM se implementează ISA, implementare fizică
MO (Machine Organization) Organizarea Maşinii

Aplicaţii
(ex. Netscape, Matlab, Word)

Sisteme de operare
(ex. Unix, Windows)

Compilatoare

Asambloare
Elemente influenţate de
arhitectura setului de
instrucţiuni
Procesor Memorie Dispozitive I/O

Magistrale de date şi control

Proiectare digitală

Proiectarea circuitelor

Tranzistoare, Layout-ul IC
Recapitulare

 Bit:
 unitate elementara de informatie
 poate avea valoarea 0 sau 1.
Aceste valori corespund fizic unor nivele
de tensiune, în funcţie de circuitele
electronice cu care este construit
calculatorul.
 starea unui bistabil, sau a unei celule
elementare de memorie
 Modul în care se reprezintă datele numerice într-un calculator are
legătură directă cu structura UCP, având influenţă asupra dimensiunii
registrelor de uz general locale, al dimensiunii magistralei interne şi al
complexităţii unităţii de execuţie.
Cap. 1. Concepte de
logica digitala
Simboluri
Operatorul NOT in algebra booleana se poate
reprezenta prin simbolul:
Operatorul binar AND in algebra booleana - efect produsul logic (multiplicare) intre A “si” B; se
poate reprezenta: AB, A*B

A
B F=ABC
C

Fig. 1 Iesirea este la nivel logic 1 numai daca


TOATE intrarile sunt la nivel logic 1

A A
B F=AB
Fig.2 Exemplu efect poarta AND, cu
B diagrama temporala ce ilustreaza
relatia intre intrare si iesire

F
OR
Operatorul binar OR – suma logica intre A “sau” B se poate
reprezenta: A+B

Fig. 1 Iesirea este la nivel logic 0 daca


oricare intrare este la nivel logic 0
Operatorul “sau exclusiv”: A B
Poarta Tri-State / Buffer / Circuit Tampon
- permite transferul informatiei pe o cale comuna mai multor circuite,
prin posibilitatea de izolare / transfer controlat a semnalului logic de
intrare de / la cel de iesire

A1 A2 A3 A4

E E
1 0 0 0
EA1 EA2 EA3 EA4 A Out A Out
A E Out A E Out
x 0 High z x 0 High z
0 0 1 0
0 1 0 0 1 1
EB1 EB2 EB3 EB4
1 1 1 1 1 0
B1 B2 B4 (a) (b)
B3 = A1
A B AND OR NAND NOR XOR NXOR
0 0 0 0 1 1 0 1
0 1 0 1 1 0 1 0
1 0 0 1 1 0 1 0
1 1 1 1 0 0 0 1

A A A
B f=AB B f=A+B B f=A + B
AND OR XOR

A A A
B
f=AB
B
f=A+B f=A . B
B
NAND NOR Ex-NOR
Intrari Intermediar Iesiri
B A A.B A+B Q
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1
Intrari Iesiri

A B C D Q
0 0 1 0 0
0 1 1 1 1
1 0 1 1 1
1 1 0 0 1
Intrari Intermediar Iesiri
C B A A.B.C B C B+C A.(B+C) Q
0 0 0 0 1 1 1 0 0
0 0 1 0 1 1 1 1 1
0 1 0 0 0 1 1 0 0
0 1 1 0 0 1 1 1 1
1 0 0 0 1 0 1 0 0
1 0 1 0 1 0 1 1 1
1 1 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 1
 Implementarea unei functii booleene folosind porti logice

 Solutie posibila
Cap. 2. Reprezentarea
informatiilor
numerice
 Sisteme de numeratie:
 set de simboluri
 set de reguli de reprezentare
 baza = numarul de simboluri folosite
 sisteme ponderale/neponderale
 Un sistem de numeraţie este constituit din ansamblul
regulilor de reprezentare a numerelor folosind cifre.
Cifrele sunt simbolurile utilizate pentru reprezentarea
numerelor

Sistemele de numeraţie pot fi poziţionale sau


nepoziţionale.
 Sistemul de scriere roman este un sistem
nepoziţional care reprezintă numerele prin
compunerea cifrelor în mod repetat începând cu
cele mari şi obţinând valoarea numărului prin
însumarea lor.
 Sistemele poziţionale au asociată o bază care
reprezintă numărul total de cifre utilizate.
 Bit:
 unitate elementara de informatie
 poate avea valoarea 0 sau 1.
Aceste valori corespund fizic unor nivele de tensiune, în
funcţie de circuitele electronice cu care este construit
calculatorul.
 starea unui bistabil, sau a unei celule elementare de
memorie
 Modul în care se reprezintă datele numerice într-un
calculator are legătură directă cu structura CPU, având
influenţă asupra dimensiunii registrelor de uz general
locale, al dimensiunii magistralei interne şi al
complexităţii unităţii de execuţie.
 "Cuvintele" pe care le înţelege calculatorul formate
din 8 biţi se numesc octeţi (în engl. bytes).

Octet (byte):
 grup de 8 biti
 unitatea elementara de adresare la cele mai multe
calculatoare actuale (inclusiv Intel x86)
 poate reprezenta: o valoare numerica, un caracter (cod
ASCII), un set de variabile (semnale) logice

7 6 5 4 3 2 1 0

D7 - bitul cel mai semnificativ


D0 - bitul cel mai putin semnificativ
 Cuvant (word)
D15-D8 - octetul superior (High)
D7-D0 - octetul inferior (Low)
- folosit pt. reprezentarea intregilor, simpla precizie
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

 Dublu-cuvant (double word):


 32 biti, 4 octeti, 2 cuvinte
 D31-D16 cuvantul superior
 D15-D0 cuvantul inferior
 folosit pentru reprezentarea numerelor in virgula fixa (dubla
precizie la sistemele pe 16 biti) sau in virgula flotanta
31 ...... 24 23 ...... 16 15 ...... 8 7 ...... 0
 Cuadruplu-cuvant (quad-word)
63 0
 64 de biti, 8 octeti, 4 cuvinte, 2 dublucuvinte
 folosit pentru reprezentarea numerelor in virgula fixa
(dubla precizie pt. sist. pe 32 biti) si in virgula flotanta
(mobila)
 Formate extinse:
 80 de biti - pt. reprezentarea numerelor in virgula
flotanta (formate interne/intermediare)
 1 K sau 1 Kilo octet (1 Kilo byte) = 1024 bytes (210)

 1 M sau 1 Mega octet (1 Mega byte) = 1024 K (220)

 1G sau 1 Giga octet (1 Giga byte) = 1024 M (230)


baza sistemul simboluri/cifre
2 Binar 0, 1

8 Octal 0,1,2,3,4,5,6,7

10 Zecimal 0,1,2,3,4,5,6,7,8,9

16 Hexazecimal 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

 Sisteme de numeratie:
 sistemul binar: putine reguli, multe cifre
 sistemul zecimal: multe reguli, mai putine cifre
 sistemul hexazecimal: sistem intermediar intre binar si zecimal
( 110 001 011 100 )2 ( 4 3 2 7 )8
( 6 1 3 4 )8 ( 100 011 010 111 )2

( 1011 1010 0011 0010 )2 ( B A 3 2 )16


( 4 F C 2 )16 ( 0100 1111 1100 0010)2

8 biti = octet / byte

cuvinte de: 8 / 16/ 32 / 64/128 biti

 Numere: - intregi – fara semn / cu semn


- fractionare
- virgula mobila
Reprezentarea numerelor, comparativ, în zecimal, binar, octal şi hexazecimal

ZECIMAL BINAR HEXAZECIMAL


1 00000001 01
2 00000010 02
3 00000011 03
4 00000100 04
5 00000101 05
6 00000110 06
7 00000111 07
8 00001000 08
9 00001001 09
10 00001010 0A
11 00001011 0B
12 00001100 0C
13 00001101 0D
14 00001110 0E
15 00001111 0F
16 00010000 10
17 00010001 11
… … …
255 11111111 FF
2.8. Conversia unui numar real
intr-o baza de numeratie
procedeu:
 Partea intreaga

 se imparte la baza respectiva, partea intreaga si caturile obtinute dupa fiecare


impartire, pana se obtine catul 0;

 Rezultatul conversiei partii intregi este constituit din resturile obtinute,


considerate in ordine inversa de aparitie
 Partea fractionara

 se inmulteste partea fractionara cu baza, apoi toate partile fractionare obtinute


prin produsul anterior, pana cand partea fractionara a unui produs este zero
sau pana la obtinerea unui numar de cifre fractionare dorit;
 Rezultatul conversiei partii fractionare este constituit din partile intregi ale
produselor, considerate in ordinea aparitiei
 Conversia partii intregi: prin divizare
succesiva cu noua baza

Exemplu: Conversia numarului zecimal 45 in binar

 Conversia partii fractionare: prin inmultire succesiva cu noua baza


 atentie!!!, conversia nu este univoca (precisa)

Exemplu: Conversia numarului zecimal 41,828125 in binar

Stop atunci cand catul este 0.


Solutie:
 Un număr poate fi scris din baza 10 în binar descompunând prin împărţiri
repetate la doi şi scriindu-l după puterile lui 2.

 Un număr poate fi scris din baza 10 în binar descompunând prin împărţiri repetate
la doi numărul zecimal şi scriindu-l după puterile lui 2.

 Exemplu:
77 = 64 + 8 + 4 + 1 = 26 + 23 +22 + 1 = 1*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20
Deci, 77 se scrie în binar 100 1101.

> Exemplu: Conversia numarului zecimal 9 in binar


Solutie : 9 = 8 + 1 “se aleg numere puteri ale lui 2 ”

Exemple:
 Conversia numarului 23,25 din zecimal in 23 | 2
binar 23,2510 = 10111,012 22 | 11 | 2
1  10 | 5 |2
1  4 |2 |2
 Conversia numarului zecimal 933,25 in 1  2 |1 | 2
hexazecimal 0  0
933,2510 = 3A5,416
1 
933 | 16
Stop atunci cand catul este 0.
928 | 58 | 16
5  48 | 3 | 16
10  |0 0,25 x 2  0 , 5
3  0,25 x 16  4 , 0
0,5 x 2  1, 0
Conversii

 Folosind insumare  Prin multiplicare repetata

0.5 0.25 0.125 0.0625

(0.625)10 = 0.5 + 0.125 = (0.101)2


 Exemple: 1101101
Solutie
 Exemple:
Conversia numarului 0.1011 in zecimal
 Solutie
 3 cifre binare = o cifra octala
 4 cifre binare = o cifra hexazecimala
 Regula de conversie:
 se grupeaza cate 3 respectiv cate 4 biti
incepand de la semnul zecimal spre stanga si
spredreapta
 se complecteaza cu biti de 0
 Exemple
 0011.1011.1110,0111.11002=3BE,7C16
 001.110.111.110,011.111.2 =1676,378
 4 cifre binare = 1 cifra hexa(zecimala)

0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0

2 B A C
conversie la baza10
conversie baza 16->10
Conversie octal – in – zecimal  Conversie Octal – in – Binary

Conversie zecimal – in – octal  Conversie Binary – in – Octal


Reprezentare baza 8

conversie baza 8->10

~ 11592.24
 Ex. verificare: Reprezentare baza 2, conversie la baza10

egal cu
Fixare cunostinte
 Ex.1:Se consideră numărul 1915.40625; se cere conversia acestuia în binar.

 partea întreagă (N1) se reprezintă în binar cu ajutorul împărţirii repetate la baza (2), reţinând în mod sistematic
resturile obţinute. Numărul în binar reprezintă concatenarea resturilor parţiale generale, în ordinea inversă
obţinerii lor (Condiţia de terminare a algoritmului este obţinerea unui deîmpărţit parţial mai mic decât
baza 2).

 conversia lui N2 se obţine prin înmulţirea repetată cu baza (2), reţinând în mod sistematic partea întreagă a
rezultatelor parţiale obţinute, în ordinea obţinerii acestora (Condiţia de terminare a algoritmului este
obţinerea unui rezultat fără parte întreagă (sau un număr suficient de iteraţii)).
Fixare cunostinte

Ex.2: Se cere conversia din binar în zecimal a numărului 0,10111.

Ex.3: Conversia din zecimal în binar a numărului


Fixare cunostinte

 Ex.4: Să se transforme numărul zecimal


627,625 în format binar.
ASC
Curs 3
Cuprins

 Reprezentarea numerelor în virgulă fixă si


mobile
Tip de reprezentare
Se evalueaza:

 tipul reprezentarii matematice


 virgula fixa

 virgula mobile
Virgula (punctul zecimal sau binar, în notaţia engleza) nu se reprezintă fizic în
registrele calculatorului, dar poziţia sa este cunoscută (stabilită) pentru
fiecare dintre modurile de reprezentare

 precizia reprezentarii matematice


numarul de biti utilizati pentru memorarea variabilelor si pentru efecturarea calculelor
Reprezentarea numerelor in virgula mobila

 Folosita pentru stocarea şi prelucrarea numerelor reale în calculator.

 Denumirea provine de la faptul că “virgula” nu are o poziţie fixă faţă de şirul


de biţi ce reprezintă valoarea numărului.
 Poziţia virgulei se poate modifica fie ca să permită efectuarea de operaţii
aritmetice şi logice cu numere reale, fie pentru reprezentarea standardizată, în
virgulă mobilă, a numerelor reale.

 Nu toate calculatoarele conţin însă suportul hardware necesar pentru aritmetica în virgulă mobilă,

 Se pot efectua operaţiile cu numere în virgulă mobilă prin emulare (interpretare) cu ajutorul unor
programe de emulare.
Reprezentarea numerelor în virgulă fixă

 Se lucrează cu numere întregi în virgulă fixă, datorită avantajelor în ceea ce priveşte


structura hardware a circuitelor pentru operaţii aritmetice şi logice.

 Prin comparaţie cu reprezentarea în virgulă mobilă, reprezentarea în virgulă fixă are


avantajul că:
 este uşor de pus în aplicare într-un spaţiu de memorie mic,

 operaţiile sunt executate rapid de procesoarele în virgulă fixă, care sunt mai ieftine şi au
consum semnificativ mai redus decât cele în virgulă mobilă.

 Aceste caracteristici sunt deosebit de importante pentru: aplicaţii de timp real,


sisteme integrate (embeded systems), procesare de semnale.

 Domeniul de aplicabilitate foarte larg: controlere industriale, telefoane mobile,


echipamente medicale portabile, etc.
Reprezentarea numerelor în virgulă fixă

 Unitatea aritmetico-logică a unui procesor în virgulă fixă lucrează doar cu


numere întregi, (de ex. pe 8, 16, 32 biţi).

 Reprezentarea numerelor în virgulă fixă -> sub formă de numere întregi cu


semn sau fără semn. Pozitia “virgulei” este fixă faţă de şirul de biţi prin care
se reprezintă data numerică.

 Inconvenientul acestor procesoare:


 un volum mai mare de muncă şi o atenţie sporită din partea programatorului care trebuie să
manipuleze numerele în aşa fel încât procesorul să poată face operaţii cu numere preluate
din lumea reală, în gama proprie de reprezentare .
 Există de asemenea posibilitatea de a reprezenta datele în virgulă fixă sub
forma de numere subunitare. Reprezentarea în virgulă fixă cu numere
subunitare are avantaje din punct de vedere al operaţiilor de înmulţire,
pentru că această operaţie nu va duce la depăşirea capacităţii de
reprezentare.

 Daca procesorul calculatorului lucrează în virgulă fixă cu numere


subunitare, la introducerea datelor, fiecărui număr i se ataşează un factor
de scară, care să-l transforme într-un număr subunitar.

 La unele compilatoarele scrise pentru virgulă fixă, factorul de scară este


tratat de compilator, astfel încât utilizatorul limbajelor de nivel înalt nu
trebuie să ia în considerare acest aspect la efectuarea operaţiilor.
 Interpretarea numerelor în virgulă fixă ca numere
fracţionare
 Programatorul plasează o virgulă imaginară, care-l separă într-o
componentă întreagă şi una fracţionară

 Este fix atât numărul de poziţii ale părţii întregi cât şi numărul de
poziţii ale părţii fracţionare

 Virgula nu se reprezintă fizic în registrele procesorului, dar poziţia


sa este cunoscută şi fixată de către programator pentru a putea
interpreta numerele într-un mod mult mai intuitiv şi mai apropiat de
lumea reală.
 Pentru reprezentarea numerelor pozitive şi negative se alocă
un bit suplimentar, care indică semnul.

(a) (b)

Număr cu semn reprezentat în virgulă fixă (a) interpretat fracţionar,


(b) interpretat intreg

bitul de semn – S
partea întreagă – I
partea fracţionară, formată din Q biţi
 Notaţia utilizata în mod curent pentru reprezentarea în virgulă fixă în
reprezentarea unui număr semn

Qi.q,

unde:

i - numărul de biţi al componentei întregi a numărului,

q - numărul de biţi al componentei fracţionare.

Suma i + q + 1 este numărul total de biţi disponibil pentru a reprezinta valoarea


a lungimii cuvântului.

 Pentru reprezentarea unui număr întreg, pe n biţi fără semn se utilizează


notaţia UQi.q, unde U indică o reprezentare fără bit de semn
Formate în virgulă fixă

Exemplificarea reprezentării unui format care include atât parte întreagă cât şi
fracţionară, Q3.12, pentru numerele cu semn
Exemplu de înmulţirire a două numere pe 16 biţi cu semn, in format
Q.15

a  nr . 16 biti b  nr . 16 biti

*
32 biti

 1

 16
rezultat 

nr. 16 biti
Probleme specifice programării în virgulă fixă şi soluţii

 1. Posibilitatea de depăşire a limitelor de reprezentare în timpul


execuţiei programului
1 0

 

 32768 32767

 2. Necesitatea transpunerii numerelor din lumea reală în formatul


specific („nativ”) al procesorului – numere întregi pe 8, 16 sau 32 de biţi,
utilizând cât mai bine puterea de reprezentare a formatului existent.
Soluţia este scalarea mărimilor
 Reprezentarea în virgulă fixă cu numere subunitare are avantajul
important că prin operaţia de înmulţire nu se depăşeşte capacitatea de
reprezentare (produsul a două numere subunitare este tot subunitar).
Limitele de reprezentare pentru numere pe 16 biţi, cu semn

Intervalul de reprezentare la nivelul Intervalul de reprezentare în interpretarea


procesorului, ca numere intregi fracţionară de către programator
[-32768…32767] [-1, 1) (mai precis [-1...0.9999695])

>> 1/32767-1
ans =
-0.999969481490524

0 0

() ( ) () ( )
 16384 16384  0.5 0.5

 32768 32767 1 1

Reprezentarea numerelor întregi cu semn pe 16 biţi: (a) cu numere întregi şi (b)formatul


echivalent Q.15, în interpretare fracţionară
Coduri binare folosite pentru reprezentarea numerelor
intregi cu semn

 cod direct (numit şi cod mărime şi semn, notat pe scurt MS)

 cod invers (numit şi cod complement faţă de 1, notat pe scurt C1)

 cod complementar (numit şi cod complement faţă de 2, notat C2)

Important! - precizarea lungimii de reprezentare

Pentru numere pozitive toate cele trei moduri de


reprezentare sunt identice
 Numere pozitive:
 intervalul de reprezentare: [0.. 2n-1], unde n - nr. de biti

 Numere negative:
 mai multe metode de reprezentare (codificare):

 intervalul de reprezentare: [-(2n-1-1) ... (2n-1-1)]

 bitul cel mai semnificativ (MSB) - bit de semn:


 Pentru numerele cu semn, întotdeauna pe prima poziţie binară din
partea stânga se reprezintă semnul, folosindu-se convenţia:
 S= 0, semn pozitiv (N ≥ 0)

 S= 1, semn negativ (N < 0)


Reprezentarea numerelor cu semn în cod direct

 Modulul numărului are aceeaşi reprezentare atât pentru numere pozitive cât
şi pentru cele negative,

 Marime si semn:

 bitul cel mai semnificativ

 restul bitilor - valoarea absoluta a numarului

 dezavantaj: probleme la implementarea operatiilor aritmetice

 exemplu: -7 1000.0111
Numere întregi cu semn, reprezentate
pe n biţi

 Bitul bn-1 este bitul de semn, bitul bn-2 este cel mai
semnificativ bit (MSB, cu ponderea 2n2), iar b0 este
bitul cel mai puţin semnificativ (LSB). Virgula are
poziţia fixă imediat în dreapta LSB (b0).
Numerele subunitare cu semn,
reprezentate pe n biţi

 unde b0 este bitul de semn, b-1 este bitul cel mai


1
semnificativ (MSb, cu ponderea 2 ), iar b-(n-1 este bitul
cel mai puţin semnificativ (LSB cu ponderea2  ( n1)). Se
consideră că virgula se află între bitul de semn şi MSB
Domeniul de reprezentare al MS

 Domeniul de reprezentare:

 Calculul valorii zecimale pentru numărul


reprezentat în binar în MS:
Avantaje ale codului MS

 Codificarea în MS prezintă avantaje din punctul de


vedere al:
 operaţiilor de înmulţire şi împărţire,

 algoritmiilor de calcul

 rutinelor sau circuitele de implementare cablată, rezultând cu o structură


simplă.

Codificarea în MS se face foarte simplu pentru numerele negative,


doar prin modificarea bitului de semn.
Dezavantaje ale codului MS

 Codul prezintă dezavantaje din punctul de vedere al operaţiilor de adunare


şi scădere.

 Numerele pozitive şi negative trebuie tratate diferit în operaţii şi ca urmare


rezultă algoritmi de adunare şi scădere mai complecşi decât în alte moduri
de codificare.

 Un alt dezavantaj îl reprezintă faptul ca există două reprezentări pentru


numărul zero:
Reprezentarea numerelor cu semn în
cod invers (C1)
 Mod de reprezentare:
 Pentru numere pozitive reprezentarea este identică cu cea făcută
în MS.

 Pentru numere negative


 regula: se complementeaza fiecare pozitie binara a reprezentarii
valorii absolute (altfel spus: biţii ce reprezintă valoarea absolută a
numărului sunt formaţi prin complementarea bit cu bit a reprezentării
în cod direct)

 bitul cel mai semnificativ - bit de semn, ia valoarea 1


 exemplu: -7 7=0000.0111
-7=1111.1000
 Reprezentarea în cod invers a unui număr N, binar negativ, se
poate face în două moduri:

a) prin complementarea tuturor biţilor reprezentării modulului


numărului (|N|) inclusiv bitul de semn;

b) prin calcul folosind relaţiile generale urmatoare:


Domeniul de reprezentare al C1

Calculul valorii zecimale pentru numărul reprezentat în


binar în C1:
Avantaje şi dezavantaje ale codului C1

 Reprezentarea este foarte uşor de realizat în hardware, dar algoritmii de


înmulţire şi împărţire pentru numere în C1 sunt mai complecşi decât la MS.

 Codul prezintă unele avantaje pentru adunare şi scădere, dar la aceste


operaţii se preferă codul complementar.

 Dezavantajos este faptul că există două reprezentări pentru zero (plus şi


minus zero):
Reprezentarea numerelor cu semn în cod
complementar (C2)

 Mod de reprezentare:
 Pentru numere pozitive reprezentarea este
identică cu cea făcută în MS.

 Pentru reprezentarea în cod complementar a


unui număr N, binar negativ, se pot folosi
variantele urmatoare:
Exemplificare
 Complement fata de 2 (C2)

 regula1: se aduna 1 la complement fata de 1

 regula2: se copiaza bitii de 0 incepand din dreapta,


inclusiv primul bit de 1, dupa care se complementeaza
fiecare bit

 exemplu: -22 22=0001.0110

-22=1110.1001 C1+

1110.1010 C2
Calculul complementului fata de doi, pentru un anumit numar X, reprezentat pe n biti, va fi:

Astfel, prin reprezentarea complementului fata de doi al unui numar, se obtine reprezentarea binara a
opusului acestui numar (deci [X]2 = - X). De exemplu, fie
X = 6(10) = (0110)2, n=4. Calculand complementul fata de doi al acestui numar, se obtine reprezentarea

pentru -X = -6(10), data de

Reguli:
Domeniul de reprezentare al C2

 Calculul valorii zecimale pentru numărul reprezentat


în binar în cod C2:

 (relaţii valabile şi pentru numere pozitive)


Exemplu de conversie în C2, (pentru n=8):
Avantaje şi dezavantaje ale reprezentării în cod C2

Reprezentarea în cod C2 a numerelor negative s-a generalizat la


procesoarele actuale, datorită avantajelor precum:
 Scăderea unui număr din alt număr este echivalentă matematic cu adunarea complementului de doi
a scăzătorului la descăzut. Se implementează doar operaţia de adunare a numerelor reprezentate în
cod complementar (sumare algebrică).

 Codificarea în C2 printr-un circuit electronic este foarte uşor de realizat

 Codul are o singură reprezentare pentru zero (00...0).

 Un întreg în reprezentarea complement faţă de doi poate fi uşor extins la un format mai mare (un
număr mai mare de biţi) fără schimbarea valorii sale. Pentru aceasta este necesar doar ca bitul de
semn sa fie repetat în toate poziţiile binare de ordin superior apărute. - > operaţie de extensie de
semn.
 Exemplu pentru un întreg pe 16 biţi extins apoi la 32 de biţi:

Principalul dezavantaj al codului complementar îl constituie algoritmii pentru înmulţire şi împărţire


mai complecşi decât cei corespunzători codului MS.
Exercitiu: Reprezentarea numerelor întregi cu semn pe 16 biţi, în complement
faţă de 2

Valoare zecimală Reprezentare C2 pe 16 biţi, binar , hexa


32767 0111…111 = 7FFF16
32766 0111…110 = 7FFE16
….................... …......................
5 0000 0000 0000 0101
…................... …..............................
1 0000…001 = 000116
0 0000…000 = 000016
-1 1111…111 = FFFF16
….............. …...........................
-5 1111 1111 1111 1011
.............. .......................
-32766 1000…010 = 800216
-32767 1000…001 = 800116
-32768=-216 1000…000 = 800016
Exerciţii
 Pentru următoarele numere reprezentate pe 3 biţi date prin
valoarea binară s-au evidenţiat cele trei reprezentării:: semn şi
valoare absolută - MS, complement faţă de 1 - C1 şi complement
faţă de 2 - C2.

 Valoare binară
 000 001 010 011 100 101 110 111
 MS +0 +1 +2 +3 -0 -1 -2 -3
 C1 +0 +1 +2 +3 -3 -2 -1 -0
 C2 +0 +1 +2 +3 -4 -3 -2 -1
Exercitii
 semn-mărime

 complement de 1 – C1

 complement de 2 – C2
 Diferite reprezentări ale numerelor fracţionare pentru o lungime de 3 biţi
a cuvintelor.

 Aşa cum s-a mai specificat, există două reprezentări pentru zero în
format mărime cu semn şi complement fată de 1 şi nici o reprezentare
pentru –1.
 Formatul complement faţă de 2 are o singură reprezentare pentru 0
 Reprezentarea în complement faţă de 2 este adesea utilizată în
implementarea filtrelor digitale datorită uşurinţei efectuării operaţiilor de
adunare şi scădere, caz în care descăzutul se adună cu complementul
faţă de doi al scăzătorului.
Aritmetica numerelor întregi, pozitive (fara semn)

Adunarea / scaderea.
2 7 26 25 2 4 2 3 2 2 2 1 2 0
1 1 0 1 1 0 1 1 +
0 1 0 0 0 1 1 0
1 0 0 1 0 0 0 0 1
Depasire (overflow / borrow)

Inmultirea: [n] biti x [m] biti -> [n+m]biti

Impartirea: [n] biti : [m] biti -> [n-m]biti

8 biti -> [0, 255] (28-1)


16 biti -> [0, 65535] (216-1)
Fenomenul de depasire (Overflow)
 Depasire (Overflow): apare atunci cand rezultatul este prea mare (mic)
pentru a fi reprezentat corect pe numarul dat de biti
 La adunare de operanzi cu semne diferite nu poate aparea depasire
 Depasirea apare atunci cand, adunand doua numere de acelasi
semn, rezultatul este de semn contrar:
Shiftarea numerelor în complement de 1 şi de 2
 Shiftarea la dreapta sau la stânga este folosită pentru a dubla/înjumătăţi mărimea întregilor
binari fără semn.

Figura 1 Shiftarea în
complement de 1.

 La complementul de 1 avem shiftarea la stânga/dreapta din figura 1, unde se explică şi


modul de shiftare: bitul care vine pe poziţia lăsată liberă este identic cu cel de dinainte de
shiftare (shiftarea la dreapta – right), sau este ‘1’ (shiftarea la stânga).

Figura 2 Shiftarea în
complement de 2.

 La complementul de 2, figura 2 ne prezintă maniera în care se shiftează la stânga/dreapta:


bitul de pe poziţia rămasă liberă va fi identic cu cel de dinainte de shiftare (right shift), sau
are valoarea ‘0’ (left shift).
Reprezentarea
numerelor in virgula
mobila (flotanta)
Reprezentarea numerelor in virgula mobila
(flotanta)
 Folosita pentru stocarea şi prelucrarea numerelor reale în
calculator.

 Denumirea provine de la faptul că virgula nu are o poziţie fixă


faţă de şirul de biţi ce reprezintă valoarea numărului.

 Poziţia virgulei se poate modifica fie ca să permită efectuarea


de operaţii aritmetice şi logice cu numere reale, fie pentru
reprezentarea standardizată, în virgulă mobilă, a numerelor
reale.
Reprezentarea numerelor reale sub formă normalizată
 Pentru fiecare număr real N trebuie reprezentate fiecare din componentele
următoarei relaţii:

 1s x M x BE

 s= semn (0 sau 1)
 M = semnificant (mantisa),
◦ reprezentată în calculatorul numeric ca un număr binar subunitar cu semn, cu
prima cifră după virgulă diferită de zero;
◦ 0 - 9999999 - forma standardizata
◦ indică mărimea exactă a numărului într-un anumit domeniu
 E = exponentul, reprezentat ca un număr întreg cu semn;
◦ indică ordinul de mărime a numărului, fiind puterea la care se ridică baza
mantisei. Exponentul indică deci implicit poziţia virgulei binare.
 B = baza, este 2 (rar 10), sau o putere a lui 2,
 nu este reprezentată în calculatorul numeric, dar se ţine cont de valoarea bazei atunci
când se efectuează operaţii aritmetice.
 La un anumit calculator numeric valoarea bazei este aceeaşi pentru toate
numerele reale reprezentate.
Reprezentarea in virgula flotanta

 limite de reprezentare:

-∞ +∞
0
-0,999*1099 -0,1*10-99 0,1*10-99 0,999*1099

 plaja foarte mare de valori


 rezolutia absoluta -> variabila
 rezolutia relativa ->constanta

 reprezentarea in flotant este discreta,


NU modeleaza pe deplin numerele reale!
În vederea efectuării de operaţii şi a obţinerii rezultatelor în virgulă flotantă
se apelează la o formă normală de reprezentare a numerelor (altfel spus, se
apelează la operaţia de normalizare a numerelor în felul următor):

 dacă numărul de virgulă flotantă este reprezentat în MS, atunci se consideră un număr
normalizat dacă prima cifră binară normală succesivă virgulei este ‘1’ şi nu ‘0’, adică se
elimină zerourile nesemnificative (leading 0's);

 dacă numărul în virgulă flotantă este reprezentat în C2 atunci se spune că este normalizat
dacă bitul de semn şi bitul cel mai semnificativ al mantisei diferă valoric;

 operaţia de normalizare implică deplasări ale vigulei la dreapta, cu incrementarea


exponentului, şi la stânga, cu decrementarea exponentului;

 prin normalizare, mantisa obţine valori în câmpul restrâns 1/2 ≤ |M| < 1;
Reprezentarea normalizată are următoarele

avantaje:

 reprezentarea fiecărui număr este unică

 nu se pierd cifre pentru reprezentarea primelor

zerourilor de la dreapta virgulei


Standardul IEEE-754 pentru reprezentarea Numerelor în Virgulă
Flotantă (The IEEE Standard for Floating-Point Arithmetic)

 IEEE - acronim pentru Institute of Electrical and Electronics Engineers -


organizaţie ce are drept principal scop elaborarea standardelor pentru
produsele hardware şi software.

 precizează formatul de reprezentare în memorie în simplă şi dublă


precizie a unui număr real.
 Standardul IEEE-754 defineşte valori speciale
pentru situaţii excepţionale:
 Inf, pe post de "infinit" ("infinity"), pentru rezultatul împărţirii unui număr finit la zero.

 Reprezentarea lui ‘0’ în virgulă flotantă IEEE 754, E=0 şi M=0,

 Format care indică situaţia de overflow ±∞, E=255(2047) şi M=0

 Format - situaţia de denormalizare

 NaN, pe post de "non-număr" ("not a number"), conventia E=255(2047) şi M ≠0,


pentru rezultatul următoarelor operaţii:
 adunare : Inf + (-Inf)

 inmulţire: 0⋅Inf

 impărţire: 0/0 sau Inf/Inf

 Calculul restului împărţirii unui număr x la 0 sau a lui Inf la x

 Calculul rădăcinii pătrate pentru x < 0.


Formatele de reprezentare a numerelor în virgulă mobilă
(conform standardului IEEE 754)
S Exponent decalat Semnificant (mantisa)
 simplă precizie (single-precission) pe 32 de biţi:
 1 bit pentru semn
 8 biţi pentru exponentul decalat
 23 biţi pentru semnificant

 dublă precizie (double-precission) pe 64 de biţi


 1 bit pentru semn
 11 biţi pentru exponentul decalat
 52 biţi pentru semnificant

 precizie extinsă se utilizează în interiorul unităţilor aritmetice de virgulă


mobilă, la care programatorii nu au acces
Standardul IBM S/360, S/370
 Standardul prezintă trei formate:
 precizie simplă (32 de biţi),
 precizie dublă (64 de biţi)
 precizie extinsă (80 de biţi).
Normalizarea în binar

 uşor de realizat, prin deplasarea mantisei către


dreapta sau stânga şi incrementarea, respectiv
decrementarea corespunzătoare a
exponentului.

 Să se normalizeze următoarele numere:
542,36; 4527; 0,0002617; –42,15; –0,012.
Exemplu
 Se considera numărul 1915.40625. Se cere reprezentarea sa în
standardele IEEE 754 şi IBM S360/370
 conversia numarului în binar
 partea întreagă (N1) se reprezintă în binar cu ajutorul împărţirii repetate la baza (2), reţinând în
mod sistematic resturile obţinute. Numărul în binar reprezintă concatenarea resturilor parţiale
generale, în ordinea inversă obţinerii lor (Condiţia de terminare a algoritmului este obţinerea unui
deîmpărţit parţial mai mic decât baza 2).

 conversia lui N2 se obţine prin înmulţirea repetată cu baza (2), reţinând în mod sistematic partea
întreagă a rezultatelor parţiale obţinute, în ordinea obţinerii acestora (Condiţia de terminare a
algoritmului este obţinerea unui rezultat fără parte întreagă (sau un număr suficient de iteraţii)).
 Reprezentarea conform IEEE 754 rezultă:

 Cei 32 de biţi ai reprezentării pot fi consideraţi într-o formă compactă ca şi


un cod hex pe 8 simboluri: N=44EF6D00
 Standardul IBM S360/370 codifică un număr sub formatul general

 Deoarece baza reprezentării este 16, mutarea virgulei pentru a obţine


pentru N formatul IBM se va face în grupuri de câte 4 cifre binare.

 Reprezentarea conform IBM S360/370 rezultă:


Coduri de reprezentare a datelor

 având în vedere că utilizatorii operează în sistemul


zecimal, iar calculatorul lucrează în sistem binar =>
sistem de conversie care face posibilă comunicarea
facilă între utilizator şi calculator. Acesta se
realizează prin utilizarea codurilor numerice şi alfa
numerice.
Codificarea Alfanumerica
 Standardul ASCII:
 se codifica: litere, cifre, semne de punctuatie, semne grafice, comenzi de
formatare, comenzi de control al transmisiei
 se folosesc 7 biti/cod (+1 bit paritate) sau 8 biti/cod (pt. standardul extins)

 Coduri alfanumerice sunt:


 ASCII extins, ASCII - American Standard Code for Information Interchange.

 Unicode – foloseşte modele pe 16 biţi pentru reprezentarea fiecărui simbol (65 536
şabloane diferite)
 ISO – pe 32 de biţi (17 x 106 simboluri)

 Exemple:
 litere mari: A- 41H, B- 42H, C - 43H ...... literele mari sunt cuprinse între 65 (Alt 65 pe
tastatura calculatorului va determina afişarea literei A) şi 90 (codul pentru litera Z).
 litere mici: a - 61H, b - 62H, c - 63H, .. literele mici au codurile cuprinse între 95 şi 122
 cifre: 0 - 30H, 1 - 31H, ..... 9 - 39H au codurile între 48 şi 57
 altele: spatiu - 20H, CR - 0DH, LF - 0AH..... de exemplu, & are codul 38
Alte metode de codificare

 Coduri ponderale
 8421, BCD (Binary Coded Decimal),
 Coduri neponderale
 Gray
 Coduri detectoare si corectoare de erori
 Se bazeaza pe redundanta codurilor
 BCD+paritate, paritate matriciala,
 coduri Hamming
ASC
Curs 4
Cuprins

 Sistem numeric
 Porturi digitale de I/O
Recapitulare

 Bit:
 unitate elementara de informatie
 poate avea valoarea 0 sau 1.
 Aceste valori corespund fizic unor nivele de
tensiune, în funcţie de circuitele electronice
cu care este construit calculatorul.
 starea unui bistabil, sau a unei celule
elementare de memorie

 Modul în care se reprezintă datele numerice într-un calculator are


legătură directă cu structura UCP, având influenţă asupra dimensiunii
registrelor de uz general locale, al dimensiunii magistralei interne şi al
complexităţii unităţii de execuţie.
- Sistem numeric
- Porturi digitale de I/O
Sistem numeric
sistem/
proces
Sistem numeric
senzori
sistem/
proces
Ex. - Interfata CAD
Start Indicator de Bitii de date de
conversiei A/D stare a iesire ai Circuit
conversiei A/D convertorului A/D
tampon

Pinul AnCom al convertorului se va conecta la masa


partii analogice de masura a schemei.
Pinul DigCom se conecteaza la masa partii digitale a
schemei. Pinul B&C trebuie utilizat pentru a genera
inceperea unei noi conversii (start conversie), la
aparitia unui puls pozitiv pe acest pin. Dupa cum se
remarca din figura, acest puls va fi generat, in schema
propusa, la efectuarea unei operatii de output la portul
P1 al sistemului. Semnalul de selectie a portului, P1,
impreuna cu semnalul de scriere, WR, genereaza Magistrala
semnalul ITGWR aplicat pe pinul B&C al convertorului
A/D. Bitii de date de iesire ai convertorului (BIT1 la
de date
BIT10) vor fi conectati la intrarile unor circuite tampon
de tip 8286 prin care vor putea fi preluate, la o operatie
de citire de la portul P1 pe magistrala de date, si
transferate in microprocesor. Portul este configurat ca
un port de 16 biti, la o citire transferandu-se informatie
pe toti cei 16 biti ai magistralei de date a sistemului. De
remarcat utilizarea bitului D15 de date ca bit indicator
de stare a conversiei, prin conectarea acestui bit la
iesirea DATA_READY a convertorului A/D. Pe durata pinul T la nivel 1 logic
unei conversii A/D, acest semnal are valoare logica 1, transferare a datelor A ->B
iar dupa incheierea conversiei, valoarea logica 0.

Prin program, utilizatorul va putea efectua operatii de citire de la portul P1 si, prin testarea bitului D15 de date, va putea determina starea conversiei A/D.
Ceilalti biti de date (D10¸D14) nu sunt utilizati si ar putea, in principiu, sa fie folositi ca biti de intrare de uz general. De remarcat faptul ca circuitele 8286 au
selectat doar sensul de transferare a datelor de la pinii A catre pinii B, prin conectarea pinului T la nivel 1 logic (la +5 V). Activarea circuitelor tampon este
facuta la aparitia semnalului de selectie P1, simultan cu semnalul de citire, RD (generand semnalul ITGRD aplicat intrarilor OE ale circuitelor 8286).

 Circuitele de interfață au rolul de a converti semnalele de intrare de diferite forme în semnale logice
adaptate unității centrale și de a transforma semnalele logice ale unității centrale în semnale de ieșire
corespunzătoare.
Utilizare porturi digitale de I/O
Citiri de la porturi de I/O
- Cuvinte de stare – citire informatii despre functionarea interfetei (viteza de
lucru, citire stare parametri, etc.)
- Cuvinte de date – citire date de la interfata (stare biti port digital, valori specific
conversiei A/D, etc.)
Scrieri catre porturi de I/O
- Cuvinte de comanda – setare parametri de functionare pentru interfata
(stare/resetare stare parametri, comenzi ON/OFFpentru elemente de iesire
digitale, etc.)
- Cuvinte de date – trimitere date spre interfata (valori conversie D/A,
stare/resetare biti port iesire digital, etc.)
Pentru oricare cuvant de date al portului exista un element exterior de tip inchis/deschis
(ON/OFF sau 1/0)
Input – citeste stare elementului de tip contact – are doua stari -> buton/tasta/contact
Output – seteaza starea unui element de executie de tip binary -> releu, LED,
contactor, bec, etc.
Utilizare porturi digitale de I/E
Echipament 0
1
2

n-1
n

Echipament 0
1
2

n-1
n
Identificarea starii unui echipament - INPUT
Identificarea starii echipamentului conectat la un port de intrare se face prin testare, astfel:
- Se izoleaza bitul corespunzator din cuvantul de date citit de la portul de intrare
- Se construieste o constanta numita masca de testare, pentru a izola bitul de identificat. Aceasta va avea
valoarea “1” pe pozitia bitului de testat si “0” in rest
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date cittit de la port si masca construita.
Cuvant de date citit
de la port de intrare bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_INPUT
(INPUT):
Operatia logica:
AND
Mască de testare,
0 ………....0 1 0 …….…0 Masca_bit_k
pentru izolare bit_k:

Rezultat 0 ………....0 bit_k 0 …….…0 Rez_bit_k

Rez_bit_k = Data_INPUT & Masca_bit_k;


If (Rez_bit_k)
{ // bitul k = 1, se completeaza cod corespunzator }
Else
{ // bitul k = 0, se completeaza cod corespunzator }
Setarea starii unuia sau mai multor echipamente - OUTPUT

- Se seteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin punerea valorii “1” pe bitul/bitii
de setat.
- Se construieste o constanta numita masca pentru setarea bitului/bitilor de setat, care va avea valoarea “1”
pe pozitia bitului/bitilor pentru setat, iar restul de biti vor fi “0”
- Se efectueaza operatia logica “SAU” (OR) intre cuvantul de date anterior scris la portul de lucru (pentru a nu
modifica stare altor echipamente conectate la port) si masca.

Cuvant de date scris


anterior la port deiesire bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_OUTPUTt-1
(OUTPUT):
Operatia logica:
OR
Mască pentru setare
bit_k: 0 ………....0 1 0 …….…0 Masca_setare_bit_k

Rezultat Rez_OUTPUT_bit_kt
bit_n .…bit_k+1 1 bit_k-1 .…bit_0

Setarea bitului k:
Masca_bit_k = 10000b; // valoarea 1 trebuie pozitionata pe pozitia k
Data_OUTPUTt-1 |= Masca_setare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_kt
Resetarea starii unuia sau mai multor echipamente - OUTPUT

- Se reseteaza bitul/biti corespunzator(i) din cuvantul de date scris carte port, prin fortarea pe valoarea “0” a
bitului/bitilor de resetat.
- Se construieste o constanta numita masca pentru resetarea bitului/bitilor de resetat, care va avea valoarea “0
pe pozitia bitului/bitilor pentru resetat, iar restul de biti vor fi “1”
- Se efectueaza operatia logica “SI” (AND) intre cuvantul de date anterior scris la portul de lucru si masca. Astfel,
nu se modifica starea altor echipamente conectate la portul respective.

Cuvant de date scris


anterior la port de iesire bit_n .…bit_k+1 bit_k bit_k-1 .…bit_0 Data_OUTPUTt-1
(OUTPUT):
Operatia logica:
AND
Mască pentru resetare
bit_k: 1 ………....1 0 1 …….…1 Masca_resetare_bit_k

Rezultat bit_n .…bit_k+1 0 bit_k-1 .…bit_0 Rez_OUTPUT_bit_kt

Resetare echipament k

Resetare bit k:
Masca_bit_k = 1111111110111111b; // valoarea 0 trebuie
pozitionata pe pozitia k
Data_OUTPUT &= Masca_resetare_bit_k;
// OUTPUT la port Rez_OUPTUT_bit_k
Ex. : Schema interfata porturi de I/E de uz general
port intrare; citire in port iesire; inscriere pe bitii
Circuit tampon registrul uP (bitii D0 - de comanda CMD0¸CMD15 Circuit Latch
D15)

Circuite de tip 8286 pentru portul de intrare (circuite tampon Circuite de tip 8282 pentru portul de iesire, pentru memorarea unor
izoland semnalele de intrare de magistrala de date a comenzi date de microprocesor spre exterior. Iesirile acestor circuite
sistemului). Sensul transferului de date prin aceste circuite sunt in permanenta activate (pinul OE este conectat la masa), iar
fiind de la intrarile A catre iesirile B, pinul de control al impulsul de memorare a datelor de pe magistrala de date este sintetizat
sensului transferului de date, T, este conectat permanent la pe baza semnalului de selectie a portului P2 (adresa 310h), utilizat ca
nivel logic “1”. Activarea circuitelor tampon se face prin pinul port de
OE, iesire — impreuna cu semnalul WR .

S-ar putea să vă placă și