Sunteți pe pagina 1din 356

Bazele Tehnologiei Informaţiei

Curs 1

Facultatea de Cibernetică, Statistică şi Informatică Economică


(CSIE) – ASE Bucureşti

Prof. dr. Răzvan ZOTA


zota@ase.ro
http://zota.ase.ro/bti

23-Jan-18
Conţinut curs

1. Introducere. Scurt istoric al calculatoarelor. Arhitectura de bază


a unui PC.
2. Elemente de teoria transmisiei informaţiei
3. Bazele numerice ale calculatoarelor
4. Bazele logice ale calculatoarelor
5. Microprocesorul (+ ASM la seminar)
6. Memoria şi magistralele de sistem
7. Dispozitive periferice
8. Dispozitive de stocare a informaţiei
9. Reţele de calculatoare – noţiuni introductive
Bibliografie

1. Bazele Tehnologiei Informaţiei, Floarea Năstase,


Răzvan Zota, Ed. ASE, 2014.
2. Bazele Tehnologiei Informaţiei, Floarea Năstase,
Răzvan Zota, Ed. InfoMega, 2007.
3. Elemente de arhitectură a sistemelor de calcul şi
operare, Răzvan Zota, Ed. ASE, 2004.
Conţinut seminar

Seminarii 1-7. Aplicaţii la:


- Teoria transmisiei informaţiei
- Bazele numerice ale calculatoarelor
- Bazele logice ale calculatoarelor
Seminar 8 : Test
Seminarii 9-13 : Intel ASM (Assembler)
Seminar 14 : Prezentare proiect
Cerințe

Pentru a putea participa la examenul final trebuie


îndeplinite simultan următoarele două condiții:
1. Minim 70% prezență la curs și seminar
2. Prezență obligatorie la test și la prezentarea
proiectului de la seminar
Modalitate de notare

Nota de la examenul final se va compune din:


1. 70% din punctaj - la examenul scris din sesiune
2. 30% din punctaj - la seminar (15% la test și 15% la
prezentarea proiectului)
Scurt istoric al calculatoarelor

Abacul: Primul “Computer Automat”


 În forma cunoscută astăzi, apare (documentat) pentru prima oară
în jurul anului 1200 în China (suan-pan) din necesitatea de a
automatiza procesul de numărare

23-Jan-18
Pionieri - Blaise Pascal (1623-1662)

 Matematician francez care a inventat prima maşină de calcul


operaţională
 “Arithmetic Machine” – introdusă în 1642
 Adunare şi scădere

 Scăderea se făcea folosindu-se tehnici complementare

(similare cu cele utilizate în computerele moderne)


 Înmulţirea şi împărţirea erau implementate prin serii de

adunări sau scăderi

23-Jan-18
Pionieri - Charles Babbage (1791-1871)

 Matematician britanic care a inventat primul dispozitiv ce poate


fi considerat un computer în sensul modern al cuvântului
 Erau calculate tabele de funcţii logaritmice şi trigonometrice de
către oameni ce se numeau “computers”
 “Difference Engine” (1822) – construită parţial
 “Analytical Engine” (1830)
 “Difference Engine” a fost construită ulterior conform
desenelor originale de către o echipă la Muzeul Ştiinţei din
Londra.
 4000 componente
 Cântărea 3 tone, aprox. 3 metri lăţime, 2 ½ lungime
 Echipamentul a efectuat prima secvenţă de calcule la începutul
anilor 1990 obţinându-se rezultate cu o precizie de 31 de cifre
zecimale
23-Jan-18
“Difference Engine”

23-Jan-18
Claude Shannon

 În jurul anului 1850 matematicianul englez George Boole a


inventat Algebra booleană (Algebra Boole)
 Algebra Boole a rămas relativ necunoscută şi neutilizată până în
anul 1938
 Teza de masterat a lui C. Shannon din 1938 a demonstrat cum
conceptele lui Boole “TRUE” şi “FALSE” pot fi utilizate pentru a
reprezenta funcţionalitatea comutatoarelor din circuitele
electronice

23-Jan-18
Howard Aiken şi calculatorul
IBM Harvard Mark I

 Harvard Mark 1 (IBM Automatic Controlled Calculator) a fost


construit între anii 1939 şi 1944
 Era format din mai multe calculatoare ce lucrau asupra unor părţi
ale aceleiaşi probleme sub supravegherea unei singure unităţi de
control
 Construit din comutatoare, relee şi alte dispozitive mecanice
 Conţinea 750.000 de componente şi avea 16 m lungime, 2 ½
înălţime şi cântărea 5 tone
 Numerele erau de 23 de cifre
 O înmulţire dintre două numere dura 4 secunde

 O împărţire dura 10 secunde

23-Jan-18
William Mauchly, J. Presper Eckert -
ENIAC - Electronic Numerical Integrator
And Computer

 Construit la Universitatea din Pennsylvania (1943-1946)


 3 metri înălţime, 30 mp spaţiu, 30 tone
 18.000 tuburi cu vacuum
 150 kW putere (suficient pentru a ilumina un mic oraş)
 Problema cheie cu acest tip de calculator era fiabilitatea
 aprox. 50 tuburi erau înlocuite în fiecare zi

 1943 - Eckert şi Mauchly au iniţiat conceptul de creare a unui


program stocat în calculator pentru care era folosită o memorie
internă utilizată pentru a stoca atât instrucţiuni cât şi date

23-Jan-18
ENIAC - 1946

23-Jan-18
Generaţiile următoare

 EDVAC - Electronic Discrete Variable Automatic Computer


 4000 tuburi

 EDSAC - Electronic Delay Storage Automatic Calculator (1949)


 3000 tuburi

 UNIVAC I - Universal Automatic Computer (1951)


 Primul computer comercial

 ILLIAC I (1949)
 Construit la Universitatea Illinois, primul computer deţinut de
o instituţie academică

23-Jan-18
John Von Neumann

 Matematicianul Von Neumann a lucrat drept consultant pentru


proiectele ENIAC şi EDVAC
 Prima versiune a unui raport despre EDVAC – 1945
conţinea elementele de bază ale unui program stocat în computer
 O memorie ce conţinea atât date cât şi instrucţiuni

 O unitate de calcul ce putea efectua atât calcule aritmetice cât


şi logice asupra datelor
 O unitate de control ce putea interpreta o instrucţiune luată
din memorie şi selecta direcţii diferite de acţiune pe baza
rezultatelor operaţiilor anterioare

23-Jan-18
Primul tranzistor

 Bell Laboratories a început cercetarea în domeniul


semiconductorilor în 1945
 William Shockley, Walter Brattain şi John Bardeen au creat
primul tranzistor pe 23 decembrie 1947
 Au luat o pauză pentru sărbatorile de Crăciun înainte de a

publica evenimentul; de aceea cărţile de referinţă indică faptul


că primul tranzistor a fost creat în 1948

23-Jan-18
Primul circuit integrat

 Jack Kilby (Texas Instruments) în 1958 a reuşit să combine mai


multe componente pe o singură bucată de semiconductor
 În 1961 Fairchild şi Texas Instruments au realizat primele circuite
integrate comerciale ce conţineau funcţii logice de bază
 2 porţi logice (4 tranzistori bipolari şi 4 rezistoare)
 În 1970 Fairchild introducea pentru prima oară memoria de 256
biţi static RAM

23-Jan-18
Legea lui Moore

 În 1965 Gordon Moore a prevăzut că numărul de tranzistori de pe


un microprocesor se va dubla într-un interval de aprox. 18 luni

23-Jan-18
Drumul către primul calculator personal
(PC)

 Computerele încep să utilizeze tranzistoare (anii 1960)


 Anii “big iron”: mainframe-uri IBM
 În 1970 compania japoneză Busicom de calculatoare a cerut lui
Intel un set de 12 CI pentru a le utiliza într-un nou calculator
 T. Hoff, proiectant la Intel, inspirat de cerea făcută anterior a
creat primul microprocesor, denumit 4004
 2300 de tranzistoare; 60.000 operaţii pe secundă

 Primul microprocesor de uz general - 8080, a fost introdus de


Intel în 1974
 8-biţi, 4500 tranzistori, 200.000 operaţii pe secundă

 Alte procesoare: Motorola 6800, MOS Technology 6502, Zilog


Z80
23-Jan-18
Calculatoare personale

 Ed Roberts concepe Altair 8800


(1974)
 bazat pe 8080
 preţ 375$
 Fără tastatură, ecran, capacitate de
stocare
 4k memorie, programabil prin
intermediul unui panou frontal cu
comutatoare
 Bill Gates şi Paul Allen fondează
Microsoft (1975)
 BASIC 2.0 pe Altair 8800
 Primul limbaj de nivel înalt disponibil
pe un calculator personal

23-Jan-18
Calculatoare personale (cont.)

 S. Wozniak şi S. Jobs:
 Apple 1 - 1976

 Apple II - 1977

 16k ROM, 4k de RAM, tastatură şi display color

 preţ 1300$, în 1977 afacere de 700.000 $ iar în 1978 de 7 mil.

 TRS-80 (bazat pe Z80) de la Radio Shack - 1977


 4k ROM, 4k RAM, tastatură şi drive de tip casetă

 preţ 600$

 Primul PC (Personal Computer) de la IBM - 1981


 Microprocesor pe 16-biţi 8088, ROM BASIC, floppy-disc
360K, DOS 1.0
 preţ 1365 $

23-Jan-18
Calculatoare personale (cont.)

 1983 IBM XT are hard-disc (10Mb costa 3000$)


 1985 Intel introduce 80386
 Primul membru pe 32-biţi din familia 80x86

 1986 Compaq introduce primul sistem bazat pe 80386


 1989 Intel introduce 80486, ce includea coprocesor matematic
 1992 Intel Pentium (64-biţi) magistrala de memorie
 AMD, Cyrix 486 procesoare compatibile (clonă)

 1996 Intel Pentium Pro


 1998 Intel Pentium II
 2000 Intel Pentium IV la 1.5 GHz

23-Jan-18
Calculatoare personale (cont.)

 Pentium M, Celeron M – 2003


 Intel Core (65nm) Duo/Solo – Ian 2006
 Dual Core Xeon – 2006
 Intel Core 2 (65nm) Duo – Iulie 2006
 Intel Core i3, i5, i7 (45nm) – 2009 (Arhitectura Nehalem) cu
variante de 2,4,6,8,10,12 core (731 milioane de tranzistori
pentru varianta quad-core)
 2016 – Intel Core i3, i5, i5, 7th generation (tehnologie de 14
nm)

23-Jan-18
Calculatoare portabile (laptop, PDA,
ultrabook, etc.)

23-Jan-18
iPhone!

23-Jan-18
Moştenirea lui John von Neumann

Hardware
Software
 Sisteme de operare (oferă mediul de operare pentru aplicaţii –
utilizat de către acestea pentru a accesa resursele calculatorului)
Sunt specifice platformei pentru care sunt proiectate
 Aplicaţii (procesoare de text, programe pentru baze de date,
navigatoare web, etc.)

23-Jan-18
I/E, procesare, stocare

 Intrare (input)
 Procesare
 Ieşire (output)
 Stocarea informaţiilor

Input Procesare Output

Memorie

23-Jan-18
Taxonomia lui Flynn – calcul paralel

 SISD -Single Instruction (Stream), Single Data (Stream)


Toate computerele von Neumann.
Ex. IBM 370, DEC VAX, SUN, IBM PC, MacIntosh.
 SIMD - Single Instruction (Stream), Multiple Data (Stream)
Un singur flux de instrucţiuni se aplică pe mai multe seturi de date în paralel.
Ex. CRAY-1, DAP CM-1, WARP, CM-2, ILLIAC IV.
 MISD - Multiple Instruction (Stream), Single Data (Stream)
Mai multe instrucţiuni operează asupra aceluiaşi set de date
 MIMD - Multiple Instruction (Stream), Multiple Data (Stream)
Mai multe UCP independente ce operează ca părţi ale unui sistem mai mare.
Majoritatea procesoarelor paralele aparţin acestei categorii.
Ex. Transputere, Supernode, DADO, N-cube, Ultracomputer, Butterfly,
Alliant, Sequent Balance, CRAY X-MP.
23-Jan-18
SISD (Single Instruction, Single Data)

I
Input/Output UC UP
D

Memorie

23-Jan-18
SIMD (Single Instruction, Multiple Data)

D1
UP1 M1
I
MP UC
D2
UP2 M2

Obs. Asemănător: SPMD


23-Jan-18
MISD (Multiple Instruction, Single Data)

UC UC UC
I I I
MP UP UP UP
D D D D

23-Jan-18
MIMD (Multiple Instruction, Multiple
Data)

I1
UC1 UP1
I
I2
MP UC2 UP2

In
UCn UPn

23-Jan-18
Bazele Tehnologiei Informaţiei
Curs 2

Facultatea de Cibernetică, Statistică şi Informatică Economică


(CSIE) – ASE Bucureşti

Răzvan Daniel ZOTA


zota@ase.ro
http://zota.ase.ro/bti

23-Jan-18
Elemente de teoria transmisiei informaţiei

1. Entropia informaţională
Informaţia = mesaj care aduce o precizare într-o problemă cu un anumit
grad de incertitudine.
Incertitudinea (nedeterminarea) scade o data cu apariţia informaţiei
Fie experimentul X, cu repartiţia probabilistică:
 x x ... xn 
X   1 2 

 p1 p2 ... pn 

Sistemul de evenimente considerat este un sistem complet.


Formula lui Shannon

https://www.nyu.edu/pages/linguistics/courses/v610003/shan.html

Claude E. Shannon a considerat următoarea formulă ca măsură a


nedeterminării: n
H ( p1 , p2 ,..., pn )   pi log 2 pi
i 1

H se numeşte entropie informaţională.


Unitatea de măsură a informaţiei este bitul. Un bit (Binary digIT) este
definit ca fiind cantitatea de informaţie obţinută prin precizarea unei
variante din două egal probabile*.
Exemplu de codificare

Ce înseamnă faptul că un semnal codificat are 1,75 biţi/simbol?


= putem converti semnalul original într-un şir de 1 şi 0 astfel încât media
este 1,75 cifre binare pentru fiecare simbol din semnalul original.
Pp. că avem 4 simboluri: A, B, C, D cu probabilităţile:
PA=1/2; PB=1/4; PC=1/8; PD=1/8
-log2PA = 1 bit, -log2PB = 2 biţi, -log2PC = 3 biţi, -log2PD = 3 biţi
Conform formulei lui Shannon, nedeterminarea este:

1 1 1 1
H  1   2   3   3  1,75 biti
2 4 8 8
Exemplu de codificare (cont.)

Dacă folosim reprezentarea binară pentru simbolurile A,B,C,D:


A = 1; B = 01; C = 000; D = 001, atunci şirul ABADCAAB va fi
codificat astfel:
10110010001101
(14 cifre binare utilizate pentru codificarea celor 8 simboluri => media
este 14/8 = 1,75)

Obs. Ce se întâmplă dacă folosim o codificare de genul:


A = 00; B = 01; C = 10; D = 11 ?
Proprietăţile entropiei informaţionale

P1. H ( p1 , p2 ,..., pn )  0
P 2. H ( p1 , p2 ,..., pn )  0  k  1,2...n a.i. pk  1
1 1 1
P3. H ( p1 , p2 ,..., pn )  H ( , ,..., )
n n n
Proprietăţile entropiei informaţionale (cont.)

P 4. H ( p1 , p2 ,..., pn ,0)  H ( p1 , p2 ,..., pn )


P5. H ( X 1  X 2  ...  X n )  H ( X 1 )  H ( X 2 )  ...  H ( X n )
P6. H ( X  Y )  H ( X )  H (Y / X ), X , Y
n
unde : H (Y / X )   p( xk )  H (Y / xk )
k 1
m
H (Y / xk )   p( yi / xk ) log 2 p( yi / xk )
i 1
Proprietăţile entropiei informaţionale (cont.)

P7. H (Y / X )  H (Y ), X , Y
P8. H ( X  Y )  H ( X )  H (Y )
P9. H ( X / Y )  H (Y / X )  H ( X )  H (Y )
Bazele aritmetice ale calculatoarelor

Sistem de numeraţie = totalitatea regulilor de reprezentare a


numerelor cu ajutorul unor simboluri (cifre).
Numărul de simboluri permise s.n. baza (rădăcina) sistemului
de numeraţie

Sisteme de numeraţie
• poziţionale
• nepoziţionale
Sistemul roman
I X C M V L D
1 10 100 1000 5 50 500
Bazele aritmetice ale calculatoarelor

Atunci când un simbol cu o valoare mai mică este poziţionat după un simbol
cu o valoare mai mare, valorile simbolurilor se adună.
Bazele aritmetice ale calculatoarelor

Atunci când un simbol cu o valoare mai mică este poziţionat înainte de un


simbol cu o valoare mai mare, valoarea mai mică se scade din cealaltă.
Reprezentarea într-o bază oarecare a unui
număr întreg

 Reprezentarea unui număr întreg

N  an an1  a0
N  an  b n  an1  b n1    a0  b0

Este reprezentarea numărului întreg N în baza b. Cifrele


numărului N au următoarea proprietate:
0  ai  b  1, i  0, n

23-Jan-18
Reprezentarea într-o bază oarecare a unui
număr real

 Reprezentarea unui număr real R

R  an an1  a0 a1  am


R  an  bn  an1  bn1    a0  b0  a1  b1    am  b m

Este reprezentarea numărului real R în baza b. Cifrele numărului


R au următoarea proprietate:
0  ai  b  1, i   m, n
nu exist ă k astfel încât ak  ak 1  ak 2    b  1

23-Jan-18
Conversia bazei de numeratie

 Conversia bazei de numeraţie (partea întreagă, partea


fracţionară)
 Conversia rapidă între baze între care există relaţia:

b1  b2p , p 

23-Jan-18
Reprezentarea numerelor în virgula fixă

Reprezentarea în virgulă fixă


 cod direct (CD)
 cod invers (CI)
 cod complementar (CC)

23-Jan-18
Reprezentarea numerelor în cod direct (CD)

CD n 1
R  an  2 n   i
a 
i  m
2 i

0 , dacă R  0
an  
1, dacă R  0
an  bit de semn

23-Jan-18
Reprezentarea numerelor în cod invers (CI)

 n 1

CI 

0  2 n
 
i  m
a i  2 i
, dacă R  0
R  n 1
1  2 n 
 
i  m
a i  2i , dacă R  0

a i  1  ai , i   m, n  1, unde a i sunt cifrele binare ale lui R în


cod direct
M odalitate de calcul :
CI
R  2 n 1  R CD  2  m

23-Jan-18
Reprezentarea numerelor în cod complementar (CC)

 n 1

 0  2   ai  2i , dacă R  0
n
CC
 i  m
R  n 1
1  2 n 
 
i  m
a i  2i , dacă R  0
n 1 n 1

a
i  m
i 2 
i
a
i  m
i  2i  2  m , unde a i  a i - 1 şi a i sunt cifrele binare ale

lui R în cod direct

M odalitate de calcul :
CC
R  2 n 1  R CD

23-Jan-18
Adunarea/scăderea în virgulă fixă

 Adunarea în CD, CI şi CC (Ex. 93-27 în CI)


 Scăderea în CD, CI şi CC

23-Jan-18
Reprezentarea numerelor în format BCD

BCD (Binary Coded Decimal) – zecimal codificat binar


Format:
• împachetat (packed BCD)
• despachetat (unpacked BCD)
În format împachetat se reprezintă 2 cifre zecimale pe un octet (cifra
cmps pe biţii 0-3 şi cifra zecimală cms pe biţii 4-7):
96 = 1 0 0 1 0 1 1 0
7 43 0
În format despachetat se reprezintă o cifră zecimală pe un octet
memorată pe biţii 0-3, iar biţii 4-7 conţin informaţia Fh:
6= 11110110
7 43 0

23-Jan-18
Reprezentarea numerelor în format BCD la Intel

Tipul Lungime Precizie Domeniul de valori


(zecimal)

BCD 80 18 (cifre (-1018+1) – (1018-1)


împachetat zecimale)

S x D17 D16 D15 D1 D0

79 78 72 71 0

23-Jan-18
Adunarea numerelor în BCD

 Adunarea în BCD – adunare obişnuită în binar, pentru


fiecare grup de câte 4 cifre binare, avându-se în vedere
următoarele cazuri. Dacă a şi b sunt cele două cifre
zecimale codificate în binar, rezultatul c=a+b este:
 Corect, dacă 0000 < c <=1001

 Incorect, şi se adună 0110 astfel:

 1010 <= c <=1111 – nu corespunde unei cifre zecimale


(adunarea lui 0110 va determina transport la rangul
următor)
 0000 <= c < 1001, cu apariţia celei de-a 5-a cifre binare,
1, care reprezintă transport pentru tetrada superioară

23-Jan-18
Scăderea numerelor în BCD

 Scăderea în BCD – scădere obişnuită în binar, pentru fiecare


grup de câte 4 cifre binare, avându-se în vedere următoarele
cazuri:
 Dacă a şi b sunt cele două cifre zecimale codificate în binar,
rezultatul c = a - b este:
 corect, dacă c > 0

 Dacă c < 0 atunci se face împrumut de la tetrada

superioară, se face scăderea, apoi se scade valoarea de


corecţie 0110

23-Jan-18
Bazele Tehnologiei Informaţiei
Curs 3

Prof. dr. Răzvan Daniel Zota


Facultatea de Cibernetică, Statistică şi Informatică Economică
ASE Bucureşti
http://zota.ase.ro/bti

23-Jan-18
Lungimea, precizia şi domeniul datelor în virgulă fixă

Tipul Lungime Precizie Domeniul de Domeniul de valori (zecimal)


valori (binar)

Format 16 15 -215 – 215-1 -32768 ÷ 32767


word
Format 32 31 -231 – 231-1 -2.14*109 ÷ 2.14*109
scurt

Format 64 63 -263 – 263-1 -9.22*1018 ÷ 9.22*1018


lung

23-Jan-18
Reprezentarea în virgulă mobilă

În această reprezentare un număr are 3 părţi:


Bit de semn
Exponent (caracteristică)
Fracţie (mantisă)(significand=eng.)
Standardul internaţional IEEE (Institute of Electrical
and Electronics Engineers) 754 –1985
Numere normalizate

 În majoritatea cazurilor, numerele sunt reprezentate în formă


normalizată. Cu excepţia lui zero, numărul este reprezentat sub
forma:
1,fff…fff *2exp

S=0 sau S=1


CAR = exp + K (K=constantă pozitivă)
Fracţie = fff…fff

S CAR Fractie

23-Jan-18
Numere şi valori speciale

 Zerouri cu semn – valoarea 0 poate fi reprezentată ca +0 sau –0 în funcţie de


bitul de semn. Ambele reprezentări sunt egale ca valoare. Semnul unui rezultat
cu valoare 0 depinde de operaţia efectuată şi de modalitatea de rotunjire.
 Numere finite normalizate şi denormalizate.
 +, - reprezintă valoarea maximă pozitivă, respectiv negativă pentru numere
reale ce poate fi reprezentată în virgulă mobilă. Valoarea infinit este totdeauna
reprezentată de o fracţie 0 şi de exponentul maxim permis de formatul respectiv
(de ex. 255 în format simplă precizie). Sunt generate excepţii atunci când
utilizarea unei valori infinite ca operand sursă conduce la o operaţie invalidă.
 Valori NaN (Not a Number) – nu fac parte din mulţimea numerelor reale.
Reprezentarea lor se face prin intermediul unui exponent maxim acceptat şi a
unei fracţii non-zero. Bitul de semn este ignorat.

23-Jan-18
Numere normalizate si denormalizate

 Numerele diferite de zero finite. Numerele normalizate reprezintă


numerele ce pot fi codificate într-o formă normalizată între 0 şi . În
tabelul următor, acest grup include toate numerele cu exponenţi modificaţi
între 1 şi 254 (între –126 şi 127)
 Atunci când exponentul modificat este 0, numerele mai mici pot fi
reprezentate făcând bitul părţii întregi zero. Numerele din acest domeniu
se numesc numere denormalizate. Acest lucru duce la scăderea preciziei
(numărul de biţi semnificativi ai fracţiei este redus datorită apariţiei
zerourilor de la început).
 În momentul normalizării calculelor în virgulă mobilă, unitatea în virgulă
mobilă operează cu numere normalizate şi produce rezultate normalizate.
Numerele denormalizate reprezintă o condiţie de underflow. Un număr
denormalizat este calculat prin intermediul unei tehnici denumită gradual
underflow.
23-Jan-18
Valori reale şi NaN

-0 1 0 0
+0 0 0 0

- Denormalizat finit
1 0 0.fff
+ Denormalizat finit
0 0 0.fff

- Normalizat finit
1 1…254 Orice valoare
+ Normalizat finit
0 1…254 Orice valoare

23-Jan-18
Valori reale şi NaN (cont.)

- 1 255 0
+ 0 255 0

- SNaN x 255 1.0ff


+ SNaN x 255 1.0ff

- QNaN x 255 1.1ff


+ QNaN x 255 1.1ff

23-Jan-18
Procesul de denormalizare

Operatia Semn Exponent Fractie

Rezultat real 0 -129 1.010111000...000

Denormalizare 0 -128 0.1010111000...000

Denormalizare 0 -127 0.01010111000...000

Denormalizare 0 -126 0.001010111000...000

Rezultat in 0 -126 0.001010111000...000


forma
denormalizata

23-Jan-18
Valori NaN

 Standardul IEEE defineşte două clase de NaN:


 QNaN (quiet NaN) – are bitul CMS setat

 SNaN (signaling NaN) – are bitul CMS zero.

 Valorile QNaN se propagă prin operaţiile aritmetice fără a indica o


excepţie
 Valorile SNaN semnalizează în general o excepţie (operaţie invalidă)
atunci când apar ca operanzi în operaţii aritmetice

23-Jan-18
Operaţii speciale

Operaţia Rezultat

n / ± 0
±*± ±
±Val.nonzero / 0 ±
+ 
±0 / ±0 NaN
- NaN
±/± NaN

±*0 NaN

23-Jan-18
Tipuri de date reale

Simplă precizie

S CAR Fracţie
31 30 23 22 0
CAR = exp + 127

Dublă precizie

S CAR Fracţie
63 62 52 51 0
CAR = exp + 1023
23-Jan-18
Tipuri de date reale (cont.)

Format real extins


S CAR Fracţie
79 78 64 63 62 0
CAR = exp + 16383
întreg

Dacă notăm cu n numărul de biţi alocaţi caracteristicii, atunci


putem utiliza formula:

CAR = exp + 2n-1 - 1

23-Jan-18
Lungimea, precizia şi domeniul datelor reale

Tipul Lungime Precizie Domeniul de Domeniul de valori


valori (binar) (zecimal)
Simpla 32 24 2-126 - 2127 1.18*10-38 ÷ 3.40*1038
precizie
Dubla 64 53 2-1022 - 21023 2.23*10-308 ÷ 1.79*10308
precizie

Real 80 64 2-16382 - 216383 3.37*10-4932 ÷ 1.18*104932


extins

23-Jan-18
Exemple

1. Ce valoare are numărul (în format simplă precizie) reprezentat astfel:


1 10000001 01000000000000000000000

Caracteristica este 129, deci exponentul real este 129 – 127 = 2


Partea fracţionară este .012 = .25, deci vom avea valoarea 1,25.
Numărul este negativ (bitul de semn este 1)
Rezultatul: -1,25 x 22 = -5

23-Jan-18
Exemple

2. Care este reprezentarea numărului 16.625 în format simplă precizie?


Aducem numărul în forma normalizată:
16 = 100002
.625 = .1012
16,625 = 10000,101= 1,0000101 * 24

CAR = 4 + 127 = 131

În concluzie, reprezentarea este:


0 10000011 00001010000000000000000

23-Jan-18
Bazele Tehnologiei Informaţiei
Curs 4

Prof. dr. Răzvan Daniel Zota


Facultatea de Cibernetică, Statistică şi Informatică Economică
ASE Bucureşti
http://zota.ase.ro/bti

23-Jan-18
Codificarea informaţiei în calculatoarele numerice

X  x1 , x2 ,..., xn  multimea simboluril or primare emise de o sursa de informatie


A  a1 , a2 ,..., am  multimea simboluril or codului

Cu aceste simboluri se formează n cuvinte de cod: C ={c1,c2,…,cn}


Cuvintele de cod sunt succesiuni finite de simboluri ale mulţimii A.
Codificarea reprezintă operaţia de stabilire a unei corespondenţe biunivoce
între simbolurile xiX şi ciC. Totalitatea cuvintelor ci (i=1..k ) formează un
cod.
Pot exista:
•Cuvinte cu sens
•Cuvinte fără sens

23-Jan-18
Coduri alfanumerice

Exemple de coduri alfanumerice:


• EBCDIC (Extended Binary Coded Decimal Information Interchange)
• ASCII (American Standard Code for Information Interchange)
• Unicode – oferă suport schimburilor electronice de date, procesării şi
afişării textelor scrise în diverse limbi internaţionale. A fost adoptat de
mari companii internaţionale, printre care: Apple, HP, IBM, Microsoft,
Oracle, Sun, Unisys, ş.a.
Ultima versiune – 2016 – v9.0 (suport pentru > 128.000 caractere –
printre ultimile caractere introduse sunt cele emoji)
Coduri alfanumerice (cont.)

• http://www.jimprice.com/jim-asc.shtml (ASCII code)

• http://tronweb.super-nova.co.jp/characcodehist.html (A
Brief History of Character Codes)

23-Jan-18
Caracterul Codul ASCII Codul EBCDIC Codul
Unicode
0 0011 0000 1111 0000 (0030)H
Coduri alfanumerice 1 0011 0001 1111 0001 (0031)H
(cont.) 2 0011 0010 1111 0010 (0032)H

3 0011 0011 1111 0011 (0033)H

…….
9 0011 1001 1111 1011 (0039)H

a 0110 0001 1000 0001 (0061)H

b 0110 0010 1000 0010 (0062)H

…..
z 0111 1010 1010 1001 (007A)H

A 0100 0001 1100 0001 (0041)H

B 0100 0010 1100 0010 (0042)H

…..
Z 0101 1010 1110 1001 (005A)H

LF(linefeed) 0000 1010 0010 0101 (000A)H

23-Jan-18
Coduri numerice
 Ponderate
 Neponderate
 Codurile ponderate (zi sunt cifrele binare de la 0 la 9) sunt
codurile în care fiecărei cifre de cod îi este asociată o pondere, iar
valoarea cifrei zecimale se obţine prin înmulţirea cifrei de cod cu
ponderea asociată şi însumând valorile:

23-Jan-18
Coduri ponderate - exemple
Cifra Codul Codul Codul Codul
zecimală 8421 2421 8421 bichinar
50 43210
0 0000 0000 0000 01 00001
1 0001 0001 0111 01 00010
2 0010 0010 0110 01 00100
3 0011 0011 0101 01 01000
4 0100 0100 0100 01 10000
5 0101 1011 1011 10 00001
6 0110 1100 1010 10 00010
7 0111 1101 1001 10 00100
8 1000 1110 1000 10 01000
9 1001 1111 1111 10 10000
23-Jan-18
Coduri ponderate - exemple (cont.)
Cifra Codul Codul Codul Codul
zecimală 4221 5421 7421 6421
0 0000 0000 0000 0000
1 0001 0001 0001 0011
2 0010 0010 0010 0010
3 0011 0011 0011 0101
4 0110 0100 0100 0100
5 1001 1000 0101 0111
6 1100 1001 0110 1000
7 1101 1010 0111 1011
8 1110 1011 1001 1010
9 1111 1100 1010 1101
23-Jan-18
Coduri ponderate - exemple (cont.)

 Codul 8421codul binar-zecimal natural, cu


ponderi puteri ale lui 2
 Codul 2421 (Aiken) – cod autocomplementar
 Codul 8421 – ultimile două sunt ponderi
negative, cod autocomplementar
 Codul bichinar (50 43210)– secvenţe de câte
7 simboluri binare împărţite în două grupe
23-Jan-18
Coduri neponderate - exemple
Cifra Codul Codul Codul 2
zecimală Exces 3 Gray din 5
(74 210)
0 0011 0000 11 000
1 0100 0001 00 011
2 0101 0011 00 101
3 0110 0010 00 110
4 0111 0110 01 001
5 1000 0111 01 010
6 1001 0101 01 100
7 1010 0100 10 001
8 1011 1100 10 010
9 1100 1101 10 100
23-Jan-18
Coduri neponderate (cont.)

 Codul Exces 3 – autocomplementar


 Codul Gray – două secvenţe de cod consecutive diferă
printr-o singură poziţie binară
 Codul 2 din 5 – cod pseudo-ponderat; secvenţele de
cod pentru cifrele zecimale 19 au asociate ponderile
74210 cu excepţia cifrei 0. Dintre cele 5 cifre binare
doar două sunt semnificative.

23-Jan-18
Coduri de bare - exemplu

Codul de bare 2 din 5 – două linii late şi trei înguste. Raportul de


imprimare linie lată/îngustă este de 2:1 sau 3:1. Spaţiile nu conţin
informaţie (la “codul 2 din 5 intercalat” densitatea informaţiei
este mai mare deoarece şi spaţiile conţin informaţii în acelaşi mod
ca şi liniile)

23-Jan-18
Coduri de bare - exemplu

Caracter CMPSB CMSB Paritate


1 2 4 7 P
0 0 0 1 1 0
1 1 0 0 0 1
2 0 1 0 0 1
3 1 1 0 0 0
4 0 0 1 0 1
5 1 0 1 0 0
6 0 1 1 0 0
7 0 0 0 1 1
8 1 0 0 1 0
9 0 1 0 1 0
START 1 1 0
STOP 1 0 1

23-Jan-18
Coduri de bare - exemplu

 Exemplu: reprezentarea numărului 10 cu ajutorul codului de bare


2 din 5

START 1 0 STOP

23-Jan-18
Codul QR (Quick Response)

Cod de bare matricial (bi-dimensional)


Exemplu:

23-Jan-18
Bazele Tehnologiei Informaţiei
Curs 5

Prof. dr. Răzvan Daniel Zota


Facultatea de Cibernetică, Statistică şi Informatică Economică
ASE Bucureşti
http://zota.ase.ro/bti

23-Jan-18
Coduri detectoare şi corectoare de erori

Codificare Codificare Canal de


Sursă primară redundantă comunicaţie Decodificare Destinaţie

La sursă are loc codificarea; cea redundantă adaugă informația de


control.
La destinație are loc decodificarea + detecția/corecția erorilor.
Tipuri de coduri:
 Coduri bloc – pentru care prelucrările necesare obţinerii
proprietăţilor de detecţie sau de corecţie se fac în blocuri de n
simboluri.
 Coduri convoluţionale (recurente) – prelucrarea simbolurilor
generate de sursă se realizează în mod continuu.

23-Jan-18
Distanţa de cod

 Distanţa de cod (Hamming) este o funcţie definită de:


n
D(vi , v j )   (aik  akj ), unde vi  (ai1 , ai 2 ,..., ain ) si v j  (a j1 , a j 2 ,..., a jn )
k 1

Probabilitatea de detecţie şi corecţie a unui cod depinde de distanţa


minimă între două cuvinte de cod. Se poate demonstra că pentru un cod
ce poate detecta un număr de e erori existente într-una din secvenţele
sale, este necesar ca:
Dmin  e + 1
Pentru detectarea unui număr de e erori şi corectarea de c erori, formula
devine:
Dmin  e + c + 1

23-Jan-18
Coduri detectoare şi corectoare de erori

 Acţionează de regulă la nivelul data-link (corecţia erorilor şi controlul


fluxului) din modelul ISO-OSI (International Organization for
Standardization - Open System Interconnection)

23-Jan-18
Coduri detectoare şi corectoare de erori

Codul Hamming
 Corectează şi detectează o singură eroare.

Notăm cu n – numărul de simboluri ale cuvântului de cod


n = k + m, k = numărul simbolurilor de control,
m = numărul simbolurilor de informaţie
Pentru a se putea asigura detecţia şi corecţia unei erori,
2m  n + 1
(2m  m + k + 1)

23-Jan-18
Codul Hamming (cont.)

 Cifrele de control se află pe pozitiile 20, 21, 22, 23, etc.


 Pe restul poziţiilor se află cifrele de informaţie.
 Un cuvânt de cod v se va scrie: c1c2a3c4a5a6…an

23-Jan-18
Codul Hamming (cont.)

 La sursă are loc codificarea


 La destinaţie are loc verificarea mesajului (corecţia)

23-Jan-18
Coduri liniare cu control încrucişat

Simboluri Controlul
 Se transmit blocuri de informaţie liniei
 Paritate laterală (transversală) informaţionale
a11 a12 ....a1n l1

............ .

............ .

am1 am2 ....amn lm


Control c1 c2 .......cn
coloană

23-Jan-18
Coduri liniare cu control încrucişat

 Paritate longitudinală

23-Jan-18
Coduri liniare cu control încrucişat

Simboluri Controlul
 Corecţia la primire informaţionale liniei
a'11 a'12 …………..a'1n l'1
a'21 a'22 …………..a'2n l'2
……………………… .
………………………. .
a'm1 a'm2 …………..a'mn l'm
Control c'1 c'2 ………………c'n l'm+1 (c'n+1)
coloană

23-Jan-18
Coduri polinomiale ciclice

Codurile ciclice sunt coduri bloc în care cele n+1 simboluri ce formează o
secvenţă de cod sunt considerate ca fiind coeficienţii unui polinom de grad n
şi anume:
M(x) = anxn +an-1xn-1 +……+a0
unde ai  {0, 1}, i = 1..n.

În cazul utilizării codurilor polinomiale ciclice, mesajului M ce se va transmite


i se asociază polinomul M(x).
În continuare, printr-un algoritm de codificare, M(x) se transformă într-un
polinom T(x), astfel încât T(x) să fie multiplu al polinomului G(x) - numit
polinom de generare.

23-Jan-18
Coduri polinomiale ciclice (cont.)

Pentru realizarea codificării se pot utiliza algoritmul de înmulţire


sau algoritmul de împărţire.

Folosind algoritmul de înmulţire: T(x)=M(x) G(x) (operaţiile de


înmulţire şi adunare ale coeficienţilor polinoamelor se fac modulo
2) nu se obţine o separare a simbolurilor redundante de cele
informaţionale, acesta fiind principalul motiv pentru care se
preferă algoritmul de împărţire, deşi este mai complicat.

23-Jan-18
Coduri polinomiale ciclice (cont.)

Algoritmul de codificare prin împărţire este:


• Fie mesajul M: (an,an-1,.....,a0), care cuprinde n+1 cifre binare informaţionale.
Acestuia i se asociază un polinom în nedeterminata x:
M(x) = anxn +an-1xn-1 +……+a0 ( ai  {0, 1});

• Se alege polinomul G(x) de grad r, acesta fiind polinomul de generare al


codului: G(x) = brxr + br-1xr-1 +…..+ b0 bj  {0, 1} ,
• Înmulţind M(x) cu xr se va obţine M'(x)=M(x) xr
• Se împarte M'(x) la G(x)

(1)

23-Jan-18
Coduri polinomiale ciclice (cont.)

Gradul polinomului R(x) va fi mai mic, cel mult egal cu r-1. Coeficienţii
polinomului R(x), de grad r-1, constituie simbolurile de control asociate
mesajului informaţional.
• Se adună R(x) cu M'(x) obţinâdu-se polinomul T(x) = M'(x)  R(x).
Coeficienţii polinomului T(x) constituie mesajul ce se va transmite:
T: (anan-1....a0cr-1.....c0) care conţine în poziţiile semnificative cele n+1
simboluri informaţionale iar în poziţiile mai puţin semnificative cele r
simboluri de control.
Polinomul ataşat mesajului transmis este un multiplu al polinomului de
generare. Avem:

23-Jan-18
Coduri polinomiale ciclice (cont.)

Înlocuind prin relaţia (1) se va obţine:

Conform relaţiei de mai sus, T(x) este divizibil prin G(x).

Această proprietate este folosită drept criteriu pentru detecţia erorilor.

23-Jan-18
Coduri polinomiale ciclice (cont.)

Fie mesajul recepţionat T', acestuia i se asociază polinomul T'(x). Putem scrie
că T'(x)=T(x)  E(x), unde E(x) este polinomul erorilor.

Aplicând criteriul de detecţie a erorilor, obţinem:

23-Jan-18
Coduri polinomiale ciclice (cont.)

Se observă că dacă E(x) este multiplu al lui G(x), mesajul recepţionat este
validat, deşi conţine erori.

Dacă E(x) nu este multiplu al lui G(x) atunci eroarea este sesizată.

Prin această metodă sunt determinate toate pachetele de erori de lungime mai
mică decît gradul lui G(x)+1.

Se numeşte pachet de erori o succesiune de simboluri, corecte sau eronate, în


care primul şi ultimul simbol sunt eronate.

23-Jan-18
Bazele Tehnologiei Informaţiei

Curs 6

Prof. dr. R zvan Daniel Zota


Facultatea de Cibernetic , Statistic şi Informatic Economic
ASE Bucureşti
http://zota.ase.ro/bti

23-Jan-18
Bazele logice ale calculatoarelor -
Introducere

VLSI (Very Large Scale Integration)


 Procesul de creare a CI prin combinarea a mii/sute de mii de porţi
logice (tranzistori) pe un singur cip de siliciu.
 Microprocesorul este un echipament VLSI
 Începuturile VLSI: anii ‘70

23-Jan-18
Bazele logice ale calculatoarelor -
Introducere

ULSI (Ultra Large Scale Integration) – cipuri cu peste 1


milion de componente
Spre exemplu, un Intel® Core™ i5-750 are integraţi 774
milioane tranzistori pe o suprafaţ de 296 mm2

23-Jan-18
Bazele logice ale calculatoarelor -
Introducere

23-Jan-18
Introducere

 Componente digitale
 Electronica digital (+5V, -5V), (0V, -5V),

(0V, +5V)

23-Jan-18
Introducere

Algebra Boole
Operaţii (legi de compoziţie) de bază:
 Disjuncţie (sau)
 Conjuncţie (şi)

 Negaţie

23-Jan-18
Tabele de adev r – disjuncţie, conjuncţie, negaţie

p q p AND q p q p OR q

T T T T T T
T F F T F T
F T F F T T
F F F F F F

p ~p

T F
F T

23-Jan-18
Teoremele fundamentale ale algebrei Boole

1. Teoremele reuniunii şi intersecţiei:


• Exist un element 0 numit prim element cu propriet ţile:
x0=0 si x0=x
• Exist un element 1 numit ultim element cu propriet ţile:
x1=x si x1=1

2. Teoremele de unicitate:
• Elementul 1 este unic
• Elementul 0 este unic

3. Teoremele complement rii:


• Principiul contradicţiei: x  x  0
• Principiul terţului exclus: x  x  1
23-Jan-18
Teoremele fundamentale ale algebrei Boole
(cont.)

4. Teorema dublei negaţii: xx

5. Teoremele absorbţiei:
• x (x  y)=x
• x (x  y)=x

6. Teoremele lui DeMorgan:

x y  x y

x y  x y

23-Jan-18
Teoremele fundamentale ale algebrei Boole
(cont.)

7. Teoremele de idempotenţ :
xx…x = x
xx…x = x

8. Teoremele de comutativitate, asociativitate şi distributivitate pentru


cele 2 legi de compoziţie:
• xy = y x
• x (y z)=(x y) z
• x (y  z)=(x y)  (x z)
• x  y=y  x
• x (y z)=(x  y) z
• x (y  z)=(x y) (x z)

23-Jan-18
Existenţa şi unicitatea funcţiilor booleene

B2  0 , 1
f : B2  B2
f : B2  B2  B2
f : B2  B2    B2  B2
     
n ori

23-Jan-18
Definiţii

S.n. produs elementar/suma elementară un


produs/suma de variabile şi/sau negaţiile lor
S.n. formă canonică disjunctivă (FCD) a unei
relaţii logice funcţionale, o relaţie echivalent
(cu aceeaşi valoare de adev r) care este o sumă
de produse elementare construite cu aceleaşi
variabile ca şi relaţia dat iniţial, fiecare produs
conţinând toate variabilele posibile (ele sau
complementarele lor)

23-Jan-18
Definiţii

S.n. formă canonică conjunctivă (FCC) a unei


relaţii logice funcţionale, o relaţie echivalent
(are aceeaşi valoare de adev r) care este un
produs de sume elementare construite cu
aceleaşi variabile ca şi relaţia dat iniţial, fiecare
sum conţinând toate variabilele posibile (ele sau
complementarele lor)

23-Jan-18
FCD pentru o funcţie cu o singur variabil

Fie f : B2  B2 o funcţie boolean de o singur variabil şi


a,b dou constante booleene
f ( x)  ax  b x - forma canonica disjunctiva
f ( x)  (a  x)(b  x) - forma canonica conjunctiva
Aceste functii sunt unic determinate.
Inlocuim x  1, x  0 in relatia lui f(x) :
 f (1)  a  1  b  1  a  1  b  0  a  0  a

 f (0)  a  0  b  0  a  0  b  1  0  b  b
FCD : f ( x)  f (1)  x  f (0)  x
23-Jan-18
FCC pentru o funcţie cu o singur variabil

f ( x)  (a  x)(b  x) - forma canonica conjunctiva


Inlocuim x  1, x  0 in relatia lui f(x) :
 f (1)  (a  1)  (b  1)  (a  1)  (b  0)  1  b  b

 f (0)  (a  0)  (b  0)  (a  0)  (b  1)  a  1  a
FCC : f ( x)  ( f (0)  x)  ( f (1)  x)

23-Jan-18
Demonstrarea existenţei (FCD)

Se considera relatia f ( x)  f (1)  x  f (0)  x in FCD si


se inlocuieste x pe rand cu valorile 0 si 1.
 f (1)  f (1)  1  f (0)  1  f (1)  1  f (0)  0  f (1)

 f (0)  f (1)  0  f (0)  0  f (1)  0  f (0)  1  f (0)

23-Jan-18
Demonstrarea existenţei (FCC)

Se considera relatia f ( x)  ( f (0)  x)  ( f (1)  x) in FCC si


se inlocuieste x pe rand cu valorile 0 si 1.
 f (1)  ( f (0)  1)  ( f (1)  1)  ( f (0)  1)( f (1)  0)  1  f (1)  f (1)

 f (0)  ( f (0)  0)  ( f (1)  0)  ( f (0)  0)( f (1)  1)  f (0)  1  f (0)

23-Jan-18
FCD pentru o funcţie cu dou variabile

Fie f : B2  B2  B2 o funcţie boolean de dou variabile


şi a,b,c,d constante booleene
f ( x, y )  axy  bx y  c x y  d xy - forma canonica disjunctiva
f ( x, y )  (a  x  y )(b  x  y )(c  x  y )(d  x  y ) - forma canonica conjunctiva
Consideram forma FCD si inlocuim x  1, x  0 in relatia lui f(x).Vom avea :
a  f (1,1)
b  f (1,0)


c  f (0,1)
d  f (0,0)
FCD : f ( x, y )  f (1,1) xy  f (1,0) x y  f (0,1) x y  f (0,0) x y

23-Jan-18
FCC pentru o funcţie cu dou variabile

f ( x, y )  (a  x  y )(b  x  y )(c  x  y )(d  x  y ) - forma canonica conjunctiva


Inlocuim in expresia de mai sus x  1, x  0 si obtinem :
a  f (0,0)
b  f (0,1)


c  f (1,0)
d  f (1,1)
FCC : f ( x, y )  ( f (0,0)  x  y )( f (0,1)  x  y )( f (1,0)  x  y )( f (1,1)  x  y )

23-Jan-18
Demonstrarea existenţei în cazul formei canonice
disjunctive

f ( x, y )  f (1,1) xy  f (1,0) x y  f (0,1) x y  f (0,0) x y - forma canonica disjunctiva


Consideram expresia de mai sus si inlocuim x  1, x  0, y  1, y  0 si obtinem :
 x  y  1  f (1,1)  f (1,1)  1  1  f (1,0)  1  1  f (0,1)  1  1  f (0,0)  1  1  f (1,1)

 x  1, y  0  f (1,0)  f (1,1)  1  0  f (1,0)  1  0  f (0,1)  1  0  f (0,0)  1  0  f (1,0)

 x  0, y  1  f (0,1)  f (1,1)  0  1  f (1,0)  0  1  f (0,1)  0  1  f (0,0)  0  1  f (0,1)

 x  y  0  f (0,0)  f (1,1)  0  0  f (1,0)  0  0  f (0,1)  0  0  f (0,0)  0  0  f (0,0)

23-Jan-18
Demonstrarea existenţei în cazul formei canonice
conjunctive

FCC : f ( x, y )  ( f (0,0)  x  y )( f (0,1)  x  y )( f (1,0)  x  y )( f (1,1)  x  y )


Consideram expresia de mai sus si inlocuim x  1, x  0, y  1, y  0 si obtinem :
 x  y  1  f (1,1)  ( f (0,0)  1  1)( f (0,1)  1  1)( f (1,0)  1  1)( f (1,1)  1  1)  f (1,1)

 x  1, y  0  f (1,0)  ( f (0,0)  1  0)( f (0,1)  1  0)( f (1,0)  1  0)( f (1,1)  1  0)  f (1,0)

 x  0, y  1  f (0,1)  ( f (0,0)  0  1)( f (0,1)  0  1)( f (1,0)  0  1)( f (1,1)  0  1)  f (0,1)

 x  y  0  f (0,0)  ( f (0,0)  0  0)( f (0,1)  0  0)( f (1,0)  0  0)( f (1,1)  0  0)  f (0,0)

23-Jan-18
Tabele de adevar

Oric rei funcţii logice i se poate asocia un tabel de adev r


f ( x, y)  x y  xy

x y x y x  y f ( x, y) f ( x, y )
0 0 1 0 1 0
0 1 0 0 0 1
1 0 0 0 0 1
1 1 0 1 1 0
23-Jan-18
Tabele de adev r (cont.)

Reciproc, dac avem un tabel de adev r se poate determina


expresia funcţiei
Din tabelul de adevar f  1 pentru urmatoarele valori ale lui x si y :
x  y  0

x  y  1
sau
 x  1, y  1

x  y  1
f1 ( x, y )  x  y  x  y

23-Jan-18
Tabele de adev r (cont.)

Consideram acum valorile lui x si y pentru care f  0 :


x  0, y  1

x  1, y  0
sau
 x  0, y  0

x  0, y  0
f 2 ( x, y )  ( x  y )( x  y )

23-Jan-18
Tabele de adev r (cont.)

Cele doua functii trebuie sa fie egale :


f 2 ( x, y )  ( x  y )( x  y )  x  x  x  y  y  x  y  y 
x  y  x  y  f 2 ( x, y )

23-Jan-18
Forme de reprezentare ale funcţiilor booleene

Forme canonice:
 Forma minterm (FCD – forma canonic disjunctiv ) – SUM de
produse – variabilele sau complementele lor în cadrul unui mintermen
sunt legate prin operaţia boolean ŞI, iar mintermenii sunt legaţi prin
operaţia boolean SAU.
 Forma maxterm (FCC – forma canonic conjunctiv ) – PRODUS de
sume – variabilele sau complementele lor în cadrul unui maxtermen sunt
legate prin operaţia boolean SAU, iar maxtermenii sunt legaţi prin
operaţia boolean ŞI.

O alt form de reprezentare a funcţiilor booleene este cea grafic cu


ajutorul diagramelor Venn

23-Jan-18
Mintermeni/maxtermeni pentru o funcţie de 2 variabile
booleene

Funcţie de 2 variabile

x y Mintermeni Maxtermeni
mi Mi
0 0 m0  x y M0  x  y

0 1 m1  x y M1  x  y

1 0 m2  x y M2  x  y

1 1 m3  xy M3  x  y

23-Jan-18 27
Mintermeni/maxtermeni pentru o funcţie de 3 variabile
booleene

Funcţie de 3 variabile

x y z Mintermeni Maxtermeni
mi Mi

0 0 0 m0  x y z M0  x  y  z
0 0 1 m1  x y z M1  x  y  z
0 1 0 m2  x y z M2  x  y  z
0 1 1 m3  x yz M3  x  y  z
1 0 0 m4  x y z M4  x  y  z
1 0 1 m5  x y z M5  x  y  z
1 1 0 m6  xy z M6  x  y  z
1 1 1 m7  xyz M7  x  y  z
23-Jan-18 28
Propriet ţi mintermeni/maxtermeni

Mintermenii sunt formaţi din combinaţia variabilelor sau a


complementelor lor pentru care funcţia are valoarea 1.
Maxtermenii sunt formaţi din combinaţia variabilelor sau a
complementelor lor pentru care funcţia are valoarea 0.

mi  M i
M i  m i , i

23-Jan-18 29
Propriet ţi mintermeni/maxtermeni (cont.)

P1. Produsul logic între doi termeni mi şi mj (i # j) ai unei funcţii


booleene de n variabile este egal cu 0:
mi  m j  0, i  j

P2. Suma logic dintre doi termeni Mi si Mj (i # j) ai unei funcţii


booleene de n variabile este egal cu 1:

M i  M j  1, i  j

23-Jan-18 30
Propriet ţi mintermeni/maxtermeni (cont.)

P3. O funcţie boolean de n variabile poate fi reprezentat printr-o sum


logic de mintermeni mi (respectiv un produs logic de maxtermeni Mi)
sub forma:
2 n 1
f ( x1 ,  , xn )   (
i 0
i  mi )

2 n 1
f ( x1 ,  , xn )   ( i  M i ),  i  0,1 - numere caracteristice
i 0

23-Jan-18 31
Propriet ţi mintermeni/maxtermeni (cont.)

P4. Complementul unei functii booleene de n variabile scrise în FCC


poate fi exprimat în mod unic prin relaţia:
2 n 1
f ( x1 , , xn )   (
i 0
i  mi )
iar complementul unei functii booleene de n variabil e
scrise in FCD poate fi exprimat in mod unic prin :
2 n 1
f ( x1 , , xn )   ( i  M i ), i  0,1
i 0

23-Jan-18 32
Propriet ţi mintermeni/maxtermeni (cont.)

P5. Dac o funcţie boolean de n variabile este scris în FCD şi conţine


2n termeni distincţi de n variabile atunci ea este egal cu 1.
În aceleaşi condiţii, dac funcţia este scris în FCC, atunci ea este egal
cu 0.
2 n 1
f ( x1 , , xn )  m
i 0
i  1 (FCD)

2 n 1
f ( x1 , , xn )  
i 0
M i  0 (FCC)

23-Jan-18 33
Propriet ţi mintermeni/maxtermeni (cont.)

P6. Orice mintermen mi al unei funcţii booleene de n variabile scrise în


FCD este egal cu produsul logic a 2n-1 termeni Mj, respectiv orice
maxtermen Mi al unei funcţii booleene de n variabile scris în FCC este
egal cu suma logic a 2n-1 termeni mj:

mi   M j , j  0 2 n  1
j i

M i   m j , j  0 2 n  1
j i

23-Jan-18 34
Funcţii booleene de 2 variabile

Pentru o funcţie de 2 variabile avem urm toarele forme canonice:

f ( x, y )   0 m0  1m1   2 m2   3m3 (FCD)

f ( x, y )  ( 0  M 0 )(1  M 1 )( 2  M 2 )( 3  M 3 )(FCC)

De aici rezult 16 funcţii de dou variabile, în forma cu


mintermeni/maxtermeni, din cele 16 combinaţii posibile pentru
( 0 ,1 , 2 , 3 )

23-Jan-18 35
Funcţiile booleene de 2 variabile

f 0  0  functia ZERO (FALSE)


f1  xy  functia SI
f 2  x y  functia INHIBARE
f 3  x  functia IDENTITATE
f 4  x y  functia INHIBARE
f 5  y  functia IDENTITATE
f 6  x y  x y  functia SAU - EXCLUSIV(X OR)
f 7  x  y  functia SAU (SAU - INCLUSIV)

23-Jan-18 36
Funcţiile booleene de 2 variabile (cont.)

f 8  x  y  x y  functia SAU - NU (NOR)


f 9  x y  xy  functia COINCIDENT A
f10  y  functia NU
f11  x  y  functia IMPLICARE
f12  x  functia NU
f13  x  y  functia IMPLICARE
f14  x  y  x  y  functia SI - NU (NAND)
f15  1  functia UNU (TRUE)

23-Jan-18 37
Dezvoltarea unei funcţii booleene

Fie functia : f(x, y, z)  x  y z


Sa se aduca la FCD.
f(x, y, z)  x (y  y)  y z(x  x )  xy  x y  xy z  xy z 
xy(z  z)  x y(z  z)  xy z  xy z  xyz  xy z  x yz  x y z  xy z  xy z 
m 0  m1  m 2  m 3  m 6

23-Jan-18 38
Algebra Logică
1

Circuite Logice Combinaţionale


Cuprins
 Logica binar şi porţi logice
 Algebra boolean
 Propriet ţi
 Calcule algebrice
 Forme Standard, Forme Canonice
 Mintermeni şi Maxtermeni (Forme canonice)
 Sum de Produse şi Produs de sume (Forme standard)
 Diagrame Karnaugh (K-Diagrame)
 Funcţii de 2, 3, 4, 5 variabile
 Simplificarea funcţiilor logice folosind diagramele Karnaugh

23-Jan-18 2
Logica binară
 VLSI (Very Large Scale Integration)
 Mii de porţi logice pe un singur cip de siliciu
 Componentele electronice din interiorul unui calculator –
componente D I G I T A L E
 Electronica digital opereaz cu 2 niveluri de voltaj: mai înalt sau
mai sc zut (+5V, -5V), (0V, -5V), (+5V, 0V)  logica binar
lucreaz cu variabile binare ce pot lua doar 2 valori distincte (0 şi
1 – fals şi adevărat) şi cu operaţii logice
 Exist trei operaţii logice de baz :
 ŞI (AND), SAU (OR), NU (NOT)
 Variabilele logice sunt reprezentate de regul prin litere:
a,b,c,…,X,Y,Z

23-Jan-18 3
Funcţii logice
F(variabile) = expresie

 Operatori ( +, •, ‘ )
Mulţime de variabile  Variabile

 Constante ( 0, 1 )
binare
 Grup ri în paranteze

Exemple:
 F(a,b) = a  b  b
 H(x,y,z) = x  (y  z)

23-Jan-18 4
Operatori logici de bază
 AND (  sau • )
Operatori binari
 OR (  sau + )
 NOT ( ) Operator unar

 F(x,y) = x•y,  F este 1 ddac x=y=1


 G(x,y) = x+y,  G este 1 dac fie x=1, fie y=1
 H(x) = x ,  H este 1 dac x=0

23-Jan-18 5
Operatori logici de bază (cont.)
 Operaţia ŞI logic (AND) este echivalent cu
înmulţirea binar :
0 • 0 = 0, 0 • 1 = 0,
1 • 0 = 0, 1•1 =1
 Operaţia SAU logic (OR) este echivalent cu
adunarea binar , cu excepţia unei operaţii:
0 + 0 = 0, 0 + 1 = 1,
1 + 0 = 1, 1 + 1 = 1 (≠ 102)

23-Jan-18 6
Tabele de adevăr
pentru operatorii logici
Tabelă de adevăr: form tabular ce reprezint în mod unic relaţia
dintre variabilele de intrare şi valoarea funcţiei

2-Intr ri AND 2-Intr ri OR


x y F=x•y x y F=x+y
0 0 0 0 0 0 NOT
0 1 0 0 1 1 x F=x
1 0 0 1 0 1 0 1
1 1 1 1 1 1 1 0

23-Jan-18 7
Tabele de adevăr (cont.)
 Î: Fie o funcţie boolean F() de n variabile. Câte
linii exist în tabela de adev r a funcţiei F() ?

 R: 2 linii, deoarece exist 2 combinaţii binare


n n

posibile pentru n variabile

23-Jan-18 8
Porţi logice
 Porţile logice sunt reprezent ri grafice ale
componentelor circuitelor electronice ce opereaz cu
unul sau mai multe semnale de intrare pentru a produce
un semnal de ieşire
2-Intr ri AND 2-Intr ri OR NOT (Invertor)
x x
F G x H
y y

F = x•y G = x+y H=x

23-Jan-18 9
Diagrame - funcţie de timp
t0 t1 t2 t3 t4 t5 t6
1
Semnale x 0
1
de intrare y Tranziţii
0

1
F=x•y 0
Semnale 1
“poart ” G=x+y 0
de ieşire 1
H=x 0

23-Jan-18 10
Circuite logice combinaţionale
 Un circuit logic al c rui ieşire nu depinde decât de intr ri s.n. circuit
combinaţional
 În cazul blocurilor (circuitelor) cu memorie, ieşirea poate depinde atât de
intr ri cât şi de valorile stocate în memorie – circuit secvenţial
 Fie funcţia F = x + y • z + x• y
 Se poate construi un circuit combinaţional logic pentru a implementa funcţia
F prin conectarea semnalelor de intrare pentru porţile logice corespunz toare:
 Semnale de intrare  Variabilele funcţiei (x, y, z)
 Semnale de ieşire  Valoarea de ieşire x funcţiei (F)
 Porţi logice  Operaţiile logice

x F

y
23-Jan-18 11
Circuite logice combinaţionale (cont.)
 Pentru a proiecta un circuit eficient
x y z F G
trebuie s minimiz m dimensiunea
acestuia (aria) şi latenţa de propagare 0 0 0 1 1
(timpul necesar ca semnalul sau 0 0 1 1 1
semnalele de intrare s produc
0 1 0 1 1
valoarea la ieşire)
0 1 1 1 1
 Tabela de adev r pentru
 F=x + y • z + x •y 1 0 0 0 0
 G=x + y • z 1 0 1 0 0
 Tabelele de adev r pentru funcţiile F şi 1 1 0 1 1
G sunt identice  avem de-a face cu 1 1 1 0 0
aceeaşi funcţie
 Vom utiliza forma G pentru a
implementa circuitul logic (avem
nevoie de mai puţine componente)
23-Jan-18 12
Circuite logice combinaţionale (cont.)

x F

z
y
x G

23-Jan-18 13
Algebra Boole (booleană)
 O alt modalitate folosit pentru a specifica
funcţiile logice; modalitate de a manevra (şi
simplifica) funcţiile booleene
 George Boole (1815-1864): “An investigation of
the laws of thought”
 Termeni utilizaţi:
 Literal: O variabil sau complementul acesteia
 Termen produs: literale conectate prin •
 Termen sumă: literale conectate prin +

23-Jan-18 14
Teoremele fundamentale ale algebrei
booleene
1. Teoremele reuniunii şi intersecţiei:
• Exist un element 0 numit prim element cu propriet ţile:
x0=0 şi x0=x
• Exist un element 1 numit ultim element cu propriet ţile:
x1=x şi x1=1

2. Teoremele de unicitate:
• Elementul 1 este unic
• Elementul 0 este unic

3. Teoremele complement rii:


• Principiul contradicţiei: x  x  0
• Principiul terţului exclus: x  x  1

23-Jan-18 15
Teoremele fundamentale ale algebrei
booleene (cont.)
4. Teorema dublei negaţii: x  x

5. Teoremele absorbţiei:
• x (x  y)=x
• x (x  y)=x

6. Teoremele lui DeMorgan: x  y  x  y

x y  x y

23-Jan-18 16
Teoremele fundamentale ale algebrei
booleene (cont.)
7. Teoremele de idempotenţ :
xx…x = x
xx…x = x

8. Teoremele de comutativitate, asociativitate şi distributivitate pentru cele 2 legi de


compoziţie:

• xy = y x
• x (y z)=(x y) z
• x (y  z)=(x y)  (x z)

• x  y=y  x
• x (y z)=(x  y) z
• x (y  z)=(x y) (x z)

23-Jan-18 17
Dualitate
 Duala unei expresii logice se obţine interschimbând
între ele operaţiile • şi + şi valorile 1 şi 0 în expresia
iniţial , respectând precedenţa iniţial a operaţiilor.
 Nu se interschimb x cu x
 Exemplu de expresie dual :
 G siţi H(x,y,z), duala funcţiei F(x,y,z) = x  y  z + x  y  z

 H = (x + y + z) (x + y + z)
 Duala nu are întotdeauna aceeaşi valoare de adev r cu
expresia iniţial
 În cazul unei egalităţi booleene, duala acesteia este, de
asemenea, valid .

23-Jan-18 18
Proprietăţi de dualitate
Conform regulilor dualit ţii putem rescrie
teoremele reuniunii şi intersecţiei:

1. X+0=X 2. X•1 =X (duala lui 1)


3. X+1 =1 4. X•0 =0 (duala lui 3)
5. X+X=X 6. X • X = X (duala lui 5)
7. X+X=1 8. X • X = 0 (duala lui 7)

23-Jan-18 19
Alte proprietăţi ale algebrei booleene
Absorbţia:
1. x+x•y=x
2. x • (x + y) = x (duala)
 Demonstraţie:
x+x•y=x•1+x•y
= x • (1+y)
=x•1
=x
Q.E.D.
Egalitatea 2 este adev rat conform principiului dualit ţii

23-Jan-18 20
Alte proprietăţi ale algebrei booleene (cont.)
Teorema consensului
1. xy + xz + yz = xy + xz
2. (x+y)•(x+z)•(y+z) = (x+y)•(x+z) -- (duala)
 Demonstraţie:
xy + xz + yz = xy + xz + (x+x)yz
= xy + xz + xyz + xyz
= (xy + xyz) + (xz + xzy)
= xy + xz
Q.E.D.
Egalitatea 2 este adev rat conform dualit ţii.

23-Jan-18 21
Tabele de adevăr
 Conţin toate combinaţiile posibile x y z F1 F2 F3
ale valorilor variabilelor funcţiei 0 0 0 0 0 0
 Fie funcţiile: 0 0 1 1 0 0
 F1(x,y,z) adev rat dac cel puţin una 0 1 0 1 0 0
dintre intr ri este adev rat
0 1 1 1 1 0
 F2(x,y,z) adev rat dac exact dou
dintre intr ri sunt adev rate 1 0 0 1 0 0
 F3(x,y,z) adev rat dac toate cele trei 1 0 1 1 1 0
intr ri sunt adev rate. 1 1 0 1 1 0
1 1 1 1 0 1
23-Jan-18 22
Tabele de adevăr
 Care sunt expresiile celor trei funcţii logice?
 F1(x,y,z) = x + y + z
 F3(x,y,z) = x • y • z

 F2(x,y,z) = (x • y • z) + (x • y • z) + (x • y • z) (1)

= (x • y + x • z + y • z)(x • y • z) (2)
Obs. x • y • z = x + y + z

23-Jan-18 23
Tabele de adevăr (cont.)
 Tabel de adev r: reprezentare unic a unei funcţii
booleene
 Dac dou funcţii au tabele de adev r identice, atunci
funcţiile sunt echivalente (şi reciproc).
 Tabelele de adev r pot fi utilizate pentru a demonstra
diverse egalit ţi.
 Tabelele de adev r cresc exponenţial (cu num rul
variabilelor) în m rime şi nu sunt foarte uşor de înţeles.
De aceea este utilizat algebra booleean .

23-Jan-18 24
Expresiile logice nu sunt unice

 Spre deosebire de tabelele de adev r, x y z F G


expresiile ce reprezint o funcţie 0 0 0 1 1
boolean nu sunt unice. 0 0 1 0 0
 Exemplu: 0 1 0 1 1
 F(x,y,z) = x • y • z + x •y•z + x•y•z 0 1 1 0 0
 G(x,y,z) = x • y • z + y • z
1 0 0 0 0
 Tabelele de adev r pentru F() şi G()
1 0 1 0 0
sunt identice.
1 1 0 1 1
 În concluzie, F()  G()
1 1 1 0 0
23-Jan-18 25
Calcul algebric
 Algebra booleean reprezint un instrument util pentru
simplificarea circuitelor digitale.
 Mai simplu  mai ieftin, mai mic, mai rapid.
 Exemplu: s se simplifice funcţia logic
F = xyz + xyz + xz.

Calcul direct:
F = xyz + xyz + xz
= xy(z+z) + xz
= xy•1 + xz
= xy + xz
23-Jan-18 26
Calcul algebric (cont.)
 Exemplu. Demonstraţi c :
xyz+xyz+xyz=xz+yz
 Demonstraţie:
xyz+xyz+xyz
=xyz +xyz+xyz+xyz
= x z (y + y) + y z (x + x)
= x z •1 + y z •1
=xz +yz
Q.E.D.

23-Jan-18 27
Funcţii complementare
 Complementara unei funcţii se obţine din
funcţia iniţial interschimbând între ele operaţiile
• şi +, valorile 1 şi 0 şi complementând fiecare
variabil .
 În tabela de adev r se face interschimbarea
valorilor 1 şi 0 în coloana ce reprezint valoarea
funcţiei.
 Complementara unei funcţii nu este acelaşi lucru
cu duala funcţiei !

23-Jan-18 28
Exemplu de complementare
 S se g seasc H(x,y,z), complementara funcţiei
F(x,y,z) = x y z + x y z
 H=F=(xyz+xyz)
=(xyz)•(xyz) DeMorgan
= ( x+y+z ) • ( x+y+z ) DeMorgan
Observaţie: Complementara unei funcţii poate fi obţinut
din funcţia dual în care se complementeaz toate
literalele
23-Jan-18 29
Existenţa şi unicitatea funcţiilor booleene

B2  0 , 1
f : B2  B2
f : B2  B2  B2
f : B2  B2    B2  B2
     
n ori

23-Jan-18 30
Definiţii – forma normală
S.n. produs elementar/sumă elementară un
produs/sumă de variabile şi/sau negaţiile lor

S.n. forma normală disjunctivă (FND) a unei


relaţii logice funcţionale, o relaţie echivalent (are
aceeaşi valoare de adev r) care este o sumă de
produse elementare construite cu aceleaşi variabile
ca şi relaţia dat iniţial, fiecare produs conţinând
toate variabilele posibile (ele sau complementarele
lor).

23-Jan-18 31
Definiţii - forma normală

S.n. formă normală conjunctivă (FNC) a unei


relaţii logice funcţionale, o relaţie echivalent (are
aceeaşi valoare de adev r) care este un produs de
sume elementare construite cu aceleaşi variabile ca
şi relaţia dat iniţial, fiecare sum conţinând toate
variabilele posibile (ele sau complementarele lor).

23-Jan-18 32
FND pentru o funcţie cu o singură variabilă

Fie f : B2  B2 o funcţie boolean de o singur variabil şi


a,b dou constante booleene
f ( x)  ax  b x - forma normala disjunctiva
f ( x)  (a  x)(b  x) - forma normala conjunctiv a
Aceste functii sunt unic determinat e.
Inlocuim x  1, x  0 in relatia lui f(x) :
 f (1)  a  1  b  1  a  1  b  0  a  0  a

 f (0)  a  0  b  0  a  0  b  1  0  b  b
FND : f ( x)  f (1)  x  f (0)  x
23-Jan-18 33
FNC pentru o funcţie cu o singură variabilă

f ( x)  (a  x)(b  x) - forma normala conjunctiva


Inlocuim x  1, x  0 in relatia lui f(x) :
 f (1)  (a  1)  (b  1)  (a  1)  (b  0)  1  b  b

 f (0)  (a  0)  (b  0)  (a  0)  (b  1)  a  1  a
FNC : f ( x)  ( f (0)  x)  ( f (1)  x)

23-Jan-18 34
Demonstrarea existenţei (FND)

Se considera relatia f ( x)  f (1)  x  f (0)  x in FND si


se inlocuiest e x pe rand cu valoril e 0 si 1.
 f (1)  f (1)  1  f (0)  1  f (1)  1  f (0)  0  f (1)

 f (0)  f (1)  0  f (0)  0  f (1)  0  f (0)  1  f (0)

23-Jan-18 35
Demonstrarea existenţei (FNC)

Se considera relatia f ( x)  ( f (0)  x)  ( f (1)  x) in FNC si


se inlocuiest e x pe rand cu valoril e 0 si 1.
 f (1)  ( f (0)  1)  ( f (1)  1)  ( f (0)  1)( f (1)  0)  1  f (1)  f (1)

 f (0)  ( f (0)  0)  ( f (1)  0)  ( f (0)  0)( f (1)  1)  f (0)  1  f (0)

23-Jan-18 36
FND pentru o funcţie de două variabile

Fie f : B2  B2  B2 o funcţie boolean de dou variabile şi


a,b,c,d constante booleene
f ( x, y )  axy  bx y  c x y  d xy - forma normala disjunctiva
f ( x, y )  (a  x  y )(b  x  y )(c  x  y )(d  x  y ) - forma normala conjunctiv a
Consideram forma FND si inlocuim x  1, x  0 in relatia lui f(x).Vom avea :
a  f (1,1)
b  f (1,0)


c  f (0,1)
d  f (0,0)
FND : f ( x, y )  f (1,1) xy  f (1,0) x y  f (0,1) x y  f (0,0) x y
23-Jan-18 37
FNC pentru o funcţie de două variabile

f ( x, y )  (a  x  y )(b  x  y )(c  x  y )(d  x  y ) - forma normala conjunctiv a


Inlocuim in expresia de mai sus x  1, x  0 si obtinem :
a  f (0,0)
b  f (0,1)


c  f (1,0)
d  f (1,1)
FNC : f ( x, y )  ( f (0,0)  x  y )( f (0,1)  x  y )( f (1,0)  x  y )( f (1,1)  x  y )

23-Jan-18 38
Demonstrarea existenţei în cazul FND

f ( x, y )  f (1,1) xy  f (1,0) x y  f (0,1) x y  f (0,0) x y - forma normala disjunctiva


Consideram expresia de mai sus si inlocuim x  1, x  0, y  1, y  0 si obtinem :
 x  y  1  f (1,1)  f (1,1)  1  1  f (1,0)  1  1  f (0,1)  1  1  f (0,0)  1  1  f (1,1)

 x  1, y  0  f (1,0)  f (1,1)  1  0  f (1,0)  1  0  f (0,1)  1  0  f (0,0)  1  0  f (1,0)

 x  0, y  1  f (0,1)  f (1,1)  0  1  f (1,0)  0  1  f (0,1)  0  1  f (0,0)  0  1  f (0,1)

 x  y  0  f (0,0)  f (1,1)  0  0  f (1,0)  0  0  f (0,1)  0  0  f (0,0)  0  0  f (0,0)

23-Jan-18 39
Demonstrarea existenţei în cazul FNC

FNC : f ( x, y )  ( f (0,0)  x  y )( f (0,1)  x  y )( f (1,0)  x  y )( f (1,1)  x  y )


Consideram expresia de mai sus si inlocuim x  1, x  0, y  1, y  0 si obtinem :
 x  y  1  f (1,1)  ( f (0,0)  1  1)( f (0,1)  1  1)( f (1,0)  1  1)( f (1,1)  1  1)  f (1,1)

 x  1, y  0  f (1,0)  ( f (0,0)  1  0)( f (0,1)  1  0)( f (1,0)  1  0)( f (1,1)  1  0)  f (1,0)

 x  0, y  1  f (0,1)  ( f (0,0)  0  1)( f (0,1)  0  1)( f (1,0)  0  1)( f (1,1)  0  1)  f (0,1)

 x  y  0  f (0,0)  ( f (0,0)  0  0)( f (0,1)  0  0)( f (1,0)  0  0)( f (1,1)  0  0)  f (0,0)

23-Jan-18 40
Definiţii – mintermen, maxtermen
 Literal: O variabil sau complementul acesteia
 Termen produs: literale legate prin operaţia •
 Termen sumă: literale legate prin operaţia +
 Mintermen: un termen produs în care toate variabilele
apar exact o singur dat , complementate sau nu.
 Maxtermen: un termen sum în care toate variabilele apar
o singur dat , complementate sau nu

23-Jan-18 41
Mintermeni
 Un mintermen reprezint o combinaţie unic în
tabela de adev r.
 Notaţi cu mj, unde j este echivalentul zecimal al
combinaţiei binare a mintermenului (bj).
 O variabil în mj este complementat dac
valoarea în bj este 0, altfel este necomplementat .
 Exemplu: Fie o funcţie de 3 variabile (x,y,z) şi
j=3. Atunci bj = 011 iar mintermenul
corespunz tor este mj = x y z

23-Jan-18 42
Maxtermeni
 Un maxtermen reprezint o combinaţie unic în
tabela de adev r.
 Notaţi cu Mj, unde j este echivalentul zecimal al
combinaţiei binare x mintermenului (bj).
 O variabil în Mj este complementat dac
valoarea în bj este 1, altfel este necomplementat .
 Exemplu: Fie o funcţie de 3 variabile (x,y,z) şi
j=3. Atunci bj = 011 iar maxtermenul
corespunz tor este Mj = x + y + z

23-Jan-18 43
Formele canonice de reprezentare ale funcţiilor
booleene

Forme canonice:
 Forma minterm (FCD – forma canonic disjunctiv ) – SUM de produse
– variabilele sau complementele lor în cadrul unui mintermen sunt legate
prin operaţia booleana ŞI, iar mintermenii sunt legaţi prin operaţia
boolean SAU. În sum apar mintermenii pentru care funcţia boolean are
valoarea 1.
 Forma maxterm (FCC – forma canonic conjunctiv ) – PRODUS de
sume – variabilele sau complementele lor în cadrul unui maxtermen sunt
legate prin operaţia booleana SAU, iar maxtermenii sunt legaţi prin operaţia
boolean ŞI. În produs apar maxtermenii pentru care funcţia boolean are
valoarea 0.
 Formele canonice sunt unice.

23-Jan-18 44
Mintermeni/maxtermeni pentru o funcţie
de 2 variabile booleene

Funcţie de 2 variabile

x y Mintermeni Maxtermeni
mi Mi
0 0 m0  x y M0  x  y

0 1 m1  x y M1  x  y

1 0 m2  x y M2  x  y

1 1 m3  xy M3  x  y

23-Jan-18 45
Mintermeni/maxtermeni pentru o funcţie
de 3 variabile booleene
Funcţie de 3 variabile

x y z Mintermeni Maxtermeni Mi
mi

0 0 0 m0  x y z M0  x  y  z
0 0 1 m1  x yz M1  x  y  z
0 1 0 m2  x y z M2  x  y  z
0 1 1 m3  x yz M3  x  y  z
1 0 0 m4  x y z M4  x  y  z
1 0 1 m5  x y z M5  x  y  z
1 1 0 m6  xy z M6  x  y  z
23-Jan-18 1 1 1 m7  xyz M7  x  y  z 46
Exemplu
 Fie tabela de adev r urm toare: x y z f1
 FCD pentru f1 este: 0 0 0 0
f1(x,y,z)= m1 + m2 + m4 + m6 0 0 1 1
=xyz+xyz+xyz +xyz
0 1 0 1
 FCC pentru f1 este:
0 1 1 0
f1(x,y,z) = M0 • M3 • M5 • M7
1 0 0 1
= (x+y+z)•(x+y + z )•
(x +y+z )•( x + y + z ). 1 0 1 0
 Observaţie: mj = Mj 1 1 0 1
1 1 1 0
23-Jan-18 47
Prescurtări: ∑ şi ∏
 f1(x,y,z) = ∑ m(1,2,4,6), unde ∑ indic faptul c este
vorba despre o sum -de-produse, iar m(1,2,4,6) indic
faptul c mintermenii din sum sunt m1, m2, m4 şi m6.
 f1(x,y,z) = ∏ M(0,3,5,7), unde ∏ indic faptul c este
vorba despre un produs-de-sume, iar M(0,3,5,7) indic
faptul c maxtermenii din produs sunt M0, M3, M5 şi
M7.
 Deoarece mj = Mj pentru orice j,
∑ m(1,2,4,6) = ∏ M(0,3,5,7) = f1(x,y,z)

23-Jan-18 48
Conversia între formele canonice

 Se înlocuieşte ∑ cu ∏ (sau invers) şi se înlocuiesc acei termeni


de rang j ce au ap rut în forma iniţial cu aceia care nu au ap rut.
 Exemplu:
f1(x,y,z) =xyz+xyz+xyz+xyz
= m1 + m2 + m4 + m6
= ∑(1,2,4,6)
= ∏(0,3,5,7)
= (x + y + z)•(x + y + z )•( x + y + z )•( x + y + z )

23-Jan-18 49
Forme standard

Formele standard sunt asem n toare cu formele


canonice, cu excepţia faptului c nu toate
variabilele trebuie s apar în termenii produs
(respectiv sum ).
Exemple:

 f1(x,y,z) =xyz+yz+xz
reprezint o form standard sum -de-produse
 f1(x,y,z) = (x + y + z)•(y + z )•( x + z )
reprezint o form standard produs-de-sume

23-Jan-18 50
Conversia unei sume-de-produse de la forma
standard la forma canonică

 Termenii ne-canonici se transform prin inserarea


valorii 1 pentru fiecare variabil x ce lipseşte:
(x+x)=1
 Se înl tur mintermenii duplicaţi
 f1(x,y,z) = x y z + y z + x z
= x y z + ( x + x ) y z + x(y+y)z
=xyz+xyz+xyz+xyz+xyz
=xyz+xyz+xyz+xyz

23-Jan-18 51
Conversia unui produs-de-sume de la forma
standard la forma canonică
 Termenii ne-canonici se transform prin inserarea valorii
0 pentru variabilele ce lipsesc (de exemplu, xx = 0) şi se
foloseşte proprietatea de distributivitate
 Se înl tur maxtermenii duplicaţi
 f1(x,y,z) = (x+y+z)•(y + z )•(x + z )
= (x+y+z)•(xx+y+z)•(x+yy+z )
= (x+y+z)•(x+y +z )•(x +y +z )•
(x +y+z)•(x +y +z )
= (x+y+z)•(x+y +z )•(x +y +z )•(x +y+z )

23-Jan-18 52
Diagrame Karnaugh
 Diagramele Karnaugh sunt reprezent ri grafice
ale funcţiilor booleene.
 O celul din diagram corespunde unei linii din
tabela de adev r.
 De asemenea, o celul din diagram corespunde
unui mintermen sau maxtermen al expresiei
booleene
 Zone ce conţin mai multe celule adiacente
corespund termenilor standard.

23-Jan-18 53
Diagrama Karnaugh pentru două variabile
x2 x1
x1 0 1 x2 0 1
0 1 0 2
0 m0 m1
SAU 0 m0 m2
2 3 1 3
1 m2 m3 1 m1 m3

Obs. Ordinea variabilelor este important - pentru


f(x1,x2), x1 este linia, x2 este coloana.
Celula 0 reprezint x1 x2 ; Celula 1 reprezint x1 x2;
etc. Dac avem un mintermen în expresia funcţiei,
atunci avem o valoare de 1 în celula respectiv din
tabel.
23-Jan-18 54
Diagrama Karnaugh pentru două variabile (cont.)

 Oricare dou celule adiacente din tabel difer


printr-o singur variabil , ce apare
complementat într-o celul şi necomplementat
în cealalt .
 Exemplu:
m0 (=x1 x2 ) este adiacent cu m1 (=x1 x2) şi cu
m2 (=x1x2 ) dar nu şi cu m3 (=x1x2)

23-Jan-18 55
Diagrame Karnaugh - exemple

 f(x1,x2) = x1 x2 + x1 x2 + x1x2
= m0 + m1 + m2
= x1 + x2
 În diagrama Karnaugh valorile de 1 x2
reprezint mintermenii m0, m1, m2 x1 0 1
 Gruparea celulelor cu valoarea 1
0 1
permite simplificarea
 Ce funcţii (mai simple) sunt 0
reprezentate de fiecare grupare? 1 1
 x1 = m0 + m1 2 3
 x2 = m0 + m2
1 1 0
 Obs. m0 este cuprins în ambele
grup ri

23-Jan-18 56
Minimizarea FND folosind diagrame Karnaugh

 Se completeaz cu 1 în diagrama Karnaugh pentru


fiecare termen produs din funcţie.
 Se grupeaz celulele adiacente ce conţin valoarea 1 pentru
a obţine un produs cu mai puţine variabile. Grup rile
astfel obţinute trebuie s conţin un num r de celule ce
reprezint o putere a lui 2 (2, 4, 8, …etc.).
 Se grupeaz şi termenii adiacenţi de pe margini pentru
diagramele Karnaugh de 3 sau mai multe variabile. Cele
patru colţuri ale tabelului se pot grupa împreun .
 Grup rile nu sunt neapărat unice.

23-Jan-18 57
Diagrama Karnaugh pentru trei variabile
yz
x 00 01 11 10
0 1 3 2
0 m0 m1 m3 m2
4 5 7 6
1 m4 m5 m7 m6

Obs.: ordinea variabilelor conteaz - pentru (x,y,z), yz este


coloana, x este linia.
Obs.: fiecare celul este adiacent cu trei alte celule (stânga,
dreapta, sus, jos sau cu cea de pe marginea corespunz toare din
partea cealalt )
23-Jan-18 58
Diagrama Karnaugh pentru trei variabile (cont.)
mintermen

În dreapta sunt prezentate tipurile


de structuri ce sunt fie
mintermeni, fie se obţin prin
regula de minimizare a grup rii în
grupuri de câte 2, 4 sau 8 celule.

grup de 2 termeni

grup de 4 termeni
23-Jan-18 59
Regulile de simplificare

 Se completeaz mintermenii funcţiei booleene în


diagram apoi se grupeaz termenii 1
 Exemplu: f(x,y,z) = xz + xyz + yz
 Rezultat: f(x,y,z)= x z + y
xyz
1 1 1
1 1
1 1 1
1 1

23-Jan-18 60
Exemple
yz
X 00 01 11 10

 f1(x, y, z) = ∑ m(2,3,5,7) 0 1 1
1 1 1
 f1(x, y, z) = x y + xz

 f2(x, y, z) = ∑ m (0,1,2,3,6)
1 1 1 1
f2(x, y, z) = x +y z
1

23-Jan-18 61
Diagrame cu patru variabile
YZ

WX 00 01 11 10

00 m0 m1 m3 m2

01 m4 m5 m7 m6

11 m12 m13 m15 m14

10 m8 m9 m11 m10

 Celule de sus sunt adiacente cu cele de jos.


 Celulele din dreapta sunt adiacente cu cele din
stânga.
23-Jan-18 62
Simplificarea diagramelor cu patru variabile
 O celul reprezint un mintermen de 4 literale.
 Un dreptunghi format din dou p trate adiacente
reprezint un termen produs de 3 literale.
 Un dreptunghi format din 4 celule reprezint un
termen produs de 2 literale.
 Un dreptunghi format din 8 celule reprezint un termen
produs dintr-un literal.
 Un dreptungi format din toate cele 16 celule reprezint
o funcţie logic egal cu 1.

23-Jan-18 63
Exemplu
 Simplicaţi funcţia boolean
 f (a,b,c,d) = ∑m(0,1,2,4,5,7,8,9,10,12,13).
 Se completeaz cu 1 diagrama Karnaugh a funcţiei f( )
şi apoi se grupeaz valorile de 1.
cd
ab
1 1 1 1 1 1

1 1 1 1 1 1

1 1 1 1

1 1 1 1 1 1

f(a,b,c,d) = c + b d + a b d
23-Jan-18 64
Simplificarea produselor de sume

 Simplificarea sumei-de-produse se utilizeaz


asupra zerourilor funcţiei din diagrama
Karnaugh pentru a obţine f.
 Complementara lui f, este (f) = f
 Complementara unei funcţii booleene se poate
obţine din dual , complementând fiecare literal.
sau
 Folosind Teorema lui DeMorgan.

23-Jan-18 65
Produs-de-sume
cd
ab
1 1 1 1
1 1 1 0
0 0 1 1
0 0 0 0

• f(a,b,c,d) = ab + ac + a b c d
• Duala lui f este: (a+b)(a+c )(a +b+c+d )
• Complementarea tuturor literalelor în duala lui (f ):
f = (a +b)(a +c)(a+b+c+d)

23-Jan-18 66
Termeni redundanţi
 Pot exista combinaţii de valori de intrare care
 Nu se vor întâmpla niciodat
 Dac se întâmpl , ieşirea nu conteaz .
 Valorile funcţiei pentru astfel de combinaţii se numesc valori
“ce nu conteaz ” (termeni redundanţi).
 Se noteaza cu R (sau x). Fiec ruia dintre termeni i se poate
atribui valoarea 0 sau 1 într-o implementare.
 Termenii redundanţi se pot utiliza pentru simplificarea
funcţiilor

23-Jan-18 67
cd
ab 00 01 11 10
Exemplu 00 0 1 0 1
01 1 1 0 1
 Simplificarea funcţiei f(a,b,c,d) 11 0 0 x x

a c rei diagram este: 10 1 1 x x

 f = a’c’d+ab’+cd’+a’bc’ 0 1 0 1
1 1 0 1
sau
0 0 x x
 f = a’c’d+ab’+cd’+a’bd’ 1 1 x x

A 3-a soluţie? 0 1 0 1
1 1 0 1
0 0 x x
1 1 x x
23-Jan-18 68
cd
Exemplu ab
x 1 0 0
1 x 0 x
 Simplificaţi funcţia 1 x x 1
g(a,b,c,d) 0 x x 0

 g = a’c’+ ab x 1 0 0
sau 1 x 0 x
1 x x 1
 g = a’c’+b’d 0 x x 0

x 1 0 0
1 x 0 x
1 x x 1
0 x x 0

23-Jan-18 69
Algebra Logică
2

Circuite Combinaţionale Logice


Cuprins

Noi tipuri de porţi logice


Porţile NAND şi NOR
Circuitele NAND şi NOR
Implementări pe 2 nivele
Implementări multi-nivel
Poarta SAU-Exclusiv(XOR)
Funcţia impară
Generarea şi verificarea parităţii

23-Jan-18 2
Alte tipuri de porţi logice
Se poate construi oricare circuit combinaţional logic cu
ajutorul porţilor de bază AND, OR şi NOT

În practică sunt folosite şi alte porţi logice derivate

23-Jan-18 3
Funcţiile BUFFER, NAND şi NOR

23-Jan-18 4
Funcţiile XOR şi XNOR
X Y F = X⊕Y
XOR: poarta “ne-egal” 0 0 0
0 1 1
X F 1 0 1
Y 1 1 0

X Y F = X⊕Y
XNOR: poarta “egal” 0 0 1
0 1 0
X F
1 0 0
Y 1 1 1

23-Jan-18 5
Poarta NAND

Cunoscută sub numele de “poartă universală”


deoarece orice circuit digital poate fi
implementat folosindu-se doar porţi logice
NAND.
Pentru a demonstra acest lucru, este suficient să
arătăm că porţile AND, OR şi NOT pot fi
implementate folosind doar porţi NAND.

23-Jan-18 6
Utilizări ale porţii NAND

X F=X
F = (X•X)
X
=X+X
=X
X F = X•Y
X F = ((X•Y) •(X•Y)) Y
Y = (X•Y) + (X•Y)
= (X•Y) = (X + Y)
= X •Y X
X
= X•Y F = X+Y
Y
Y
F = (X • Y)
=X+Y
=X+Y
23-Jan-18 7
Circuite NAND
Pentru a determina implementarea cu porţi NAND a
unei funcţii booleene:
Se găseşte forma simplificată suma-de-produse (FND)
FND este un circuit AND-OR
Se transformă circuitul AND-OR într-un circuit NAND
Se folosesc simbolurile alternative următoare:

23-Jan-18 8
Emularea AND-OR (Sumă-de-produse)
folosind porţi NAND

a) Forma iniţială sumă-de-produse


b) Implementarea cu porţi NAND

23-Jan-18 9
Emularea AND-OR (Sumă-de-produse)
folosind porţi NAND (cont.)

Verificare:
(a) G = WXY + YZ

(b) G = ( (WXY)’ • (YZ)’ )’


= (WXY)’’ + (YZ)’’ = WXY + YZ

23-Jan-18 10
FND folosind porţi NAND

(a) Forma iniţială FND


(b) Dubla negaţie şi gruparea AND-NOT
(c) Înlocuirea cu porţi NAND NOT-OR
23-Jan-18 11
Implementarea porţii NAND - Exemplu

F (X,Y,Z) = Σm(0,6)
1. Forma normală disjunctivă a funcţiei este:
F = X’Y’Z’ + XYZ’
2. Se obţine implementarea AND-OR pentru F.

3. Se transformă porţile AND-OR în porţi


NAND-NAND.

23-Jan-18 12
Exemplu (cont.)

Implementarea pe două nivele cu porţi NAND


F = X’Y’Z’ + XYZ’
23-Jan-18 13
Circuite NAND pe mai multe nivele
Paşii transformării unui circuit multi-nivel:
1. Se transformă toate porţile AND în porţi NAND cu
simboluri AND-NOT.
2. Se transformă toate porţile OR în porţi NAND cu
ajutorul simbolurilor NOT-OR.
3. Se verifică toate cerculeţele din diagramă. Pentru
fiecare cerculeţ care nu este contracarat (negat) de alt
cerculeţ pe aceeaşi linie, se inserează o poartă NOT sau
se complementează intrarea iniţială.

23-Jan-18 14
Exemplu

Folosirea porţilor NAND


şi NOT pentru a
implementa funcţia:
Z=E’F(AB+C’+D’)+GH
AB
AB+C’+D’
E’F(AB+C’+D’)
E’F(AB+C’+D’)+GH

23-Jan-18 15
Alt exemplu

23-Jan-18 16
Poarta NOR

Poarta NOR este, de asemenea, o “poartă


universală” deoarece orice circuit digital poate fi
implementat folosindu-se doar porţi NOR.

23-Jan-18 17
Circuite NOR
Pentru a obţine o implementare NOR a unei funcţii
booleene trebuie ca:
Să se găsească o formă simplificată de produs-de-sume
(FNC)
FNC este un circuit OR-AND
Se schimbă ciruitele OR-AND în circuite NOR
Se utilizează simbolurile alternative următoare:

23-Jan-18 18
O implementare pe două nivele - Exemplu

F(X,Y,Z) = Σm(0,6)
1. În FND F’ este:
1. F’ = Σm(1,2,3,4,5,7)
= X’Y’Z + X’YZ’ + X’YZ + XY’Z’ + XY’Z + XYZ
2. F’ = XY’ + X’Y + Z
2. Se foloseşte complementul lui F’ pentru a obţine F în
forma FNC: F = (F’)' = (X'+Y)(X+Y')Z'
3. Se obţine implementarea OR-AND a funcţiei F.
4. Se adaugă cerculeţe şi invertoare pentru transformarea
implementării OR-AND într-o implementare NOR-
NOR.
23-Jan-18 19
Exemplu (cont.)

Implementare pe două nivele cu porţi NOR


F = (F’)' = (X'+Y)(X+Y')Z'

23-Jan-18 20
Circuite NOR pe mai multe nivele
Paşii transformării unui circuit multi-nivel :
1. Se transformă toate porţile OR în porţi NOR
cu ajutorul simbolurilor OR-NOT.
2. Se transformă toate porţile OR în porţi NOR
cu ajutorul simbolurilor NOT-AND.
3. Se verifică toate cerculeţele din diagramă.
Pentru fiecare cerculeţ care nu este negat de
altul pe aceeaşi linie, se inserează o poartă
NOT sau se complementează intrarea iniţială.

23-Jan-18 21
Funcţia SAU-Exclusiv (XOR)

XOR (notată cu ⊕) : funcţia “ne-egal”


XOR(X,Y) = X ⊕ Y = X’Y + XY’
Identităţi:
X⊕0=X
X ⊕ 1 = X’
X⊕X=0
X ⊕ X’ = 1
Proprietăţi:
X⊕Y=Y⊕X
(X ⊕ Y) ⊕ W = X ⊕ ( Y ⊕ W)

23-Jan-18 22
Implementarea funcţiei XOR

XOR(a,b) = ab’ + a’b


Direct, se folosesc 5 porţi:
2 invertoare, două porţi AND şi o poartă OR
2 invertoare şi trei porţi NAND
Indirect:
4 porţi NAND

23-Jan-18 23
Circuitul XOR cu 4 porţi NAND

23-Jan-18 24
Funcţia NOR-Exclusiv (XNOR)

XNOR: Funcţia “egalitate”


XNOR(a,b) = ab + a’b’
Se observă că: XNOR(a,b) = ( XOR(a,b) )’
( a ⊕ b )’ = ( a’b + ab’)’
= (a’b)’ •(ab’)’
= (a + b’) • (a’ +b)
= ab + a’b’
a ⊕ b’ = ( a ⊕ b )’ = a’ ⊕ b

23-Jan-18 25
Funcţia impară
x⊕y = x’y + xy’ = m01 + m10
x⊕y⊕z = xy’z’ + x’yz’ + x’y’z +xyz = m100 + m010 + m001 +
m111
x⊕y⊕z⊕w = x’yzw + xy’zw + xyz’w + xyzw’ +
x’y’z’w + x’yz’w’ + x’y’zw’ +xy’z’w’= m0111 +
m1011 + m1101 + m1110 + m0001 + m0100 + m0010 + m1000
…?
Se observă că orice funcţie XOR cu n intrări are valoarea de
adevăr 1 pentru toţi mintermenii cu indici care conţin în
reprezentarea binară un număr impar de 1
Funcţia XOR mai este cunoscută sub denumirea de “funcţia
impară”
23-Jan-18 26
Funcţia impară (cont.)

În diagrama Karnaugh, mintermenii se află întotdeauna la distanţa 2


unul de altul (separaţi de un pătrat liber)
23-Jan-18 27
Funcţia impară (cont.)

23-Jan-18 28
Funcţia pară

Cum s-ar putea implementa o funcţie pară?

Prin complementarea funcţiei XOR XNOR

23-Jan-18 29
Generarea şi verificarea parităţii

Funcţiile de paritate (pară şi impară) pot fi


utilizate pentru a implementa circuite de
verificare a parităţii în cazul codurilor detectoare
şi corectoare de erori.
S.n. generator de paritate: un circuit ce generează un
bit de paritate înaintea transmisiei şirului de biţi.
S.n. verificator de paritate: un circuit care verifică
paritatea la recepţie.

23-Jan-18 30
Generarea parităţii - Exemplu

P(X,Y,Z) trebuie să aibă valoarea 1 pentru toate combinaţiile de


intrare ce conţin un număr impar de cifre 1.
În consecinţă, funcţia noastră va fi funcţia SAU-Exclusiv (funcţie
impară) cu trei intrări: P = X⊕Y⊕Z.

23-Jan-18 31
Verificarea parităţii - Exemplu

Cum s-ar putea implementa un verificator


de paritate pentru exemplul anterior ?

Se poate folosi un circuit XOR cu 4 intrări (o funcţie impară)


Cor = X⊕Y⊕Z⊕P 1 indică eroare la transmisie

sau
Se poate folosi un circuit XNOR cu 4 intrări (funcţie pară)
Cor = (X⊕Y⊕Z⊕P)’ 1 indică recepţie corectă

23-Jan-18 32
Aplicaţie – decodoare logice

Decodoarele logice – esenţiale pentru unitatea de


control a UCP şi memorii

Intrări Ieşiri

23-Jan-18 33
Decodoare logice (cont.)
Un decodor selectează o singură ieşire la un moment
dat în funcţie de intrare.
Exemplu (afişajul digital):
a a a a a
f b f bf bf bf b
g g g g g
e c e ce ce ce c

d d d d d
a a a a a
f b f bf bf bf b
g g g g g
e c e ce ce ce c

d
23-Jan-18 d d d d 34
Decodoare logice (cont.)

INTRĂRI LED-uri
x y z t a b c d e f g
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 0 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1
23-Jan-18 35
Decodoare logice (cont.)

a=xyzt+xyzt+xyzt
b=xyzt+xyzt
c=xyzt
d=xyzt+xyzt+xyzt
e=xyzt+xyzt+xyzt+xyzt
f =xyzt+xyzt+xyzt+xyzt
g=xyzt+xyzt+xyzt
23-Jan-18 36
Bazele Tehnologiei Informaţiei
Curs 10

Prof. dr. Răzvan Zota


ASE Bucureşti
Facultatea de Cibernetică, Statistică şi Informatică Economică
zota@ase.ro

http://zota.ase.ro/bti
Bazele Tehnologiei Informaţiei – partea a 2-a

• Noţiuni preliminarii, asambloare, compilatoare, interpretoare


• Microprocesorul
• Regiştrii microprocesorului Intel Pentium
• Noţiuni de ASM
• Memoria şi ierarhia de memorie
• Memoria - segmentare şi paginare
• Comunicaţii seriale şi paralele

2
Bibliografie

• Bazele tehnologiei informaţiei, F. Năstase, R. Zota – Ed. ASE, 2014


• Intel Architecture Users’ Manual – Intel

3
Conţinut

• Noţiuni preliminarii
• Cod-maşină
• Asambloare
• Interpretoare
• Compilatoare

4
Introducere

Date Date
de intrare PROCESARE de ieşire
(INPUT) (OUTPUT)

Figura 1. Modelul procesării datelor al lui John von Neumann

Datele:

• Programe (listă de instrucţiuni utilizate într-un anumit scop)


• Date

“Arhitectura HARVARD”

5
Limbaje de nivel înalt şi de nivel jos
• Microprocesorul – limbaj propriu – mulţimea de instrucţiuni maşină – cod-
maşină - LLL (Low Level Language)
• HLL (High Level Language) Limbaj de nivel înalt (BASIC, Pascal,
FORTRAN, C, C++, Java, Python)

6
Exemplu

HLL (C) i=j+k;

ASM MOV eax,[12011234]


ADD eax,[12011238]
MOV [1201123C], eax

Cod binar maşină 0010 0000 0011 1001


0001 0010 0000 0001
0001 0010 0011 0100
1101 0000 1011 1001
0001 0010 0000 0001
0001 0010 0011 1000
0010 0011 1100 0000
0001 0010 0000 0001
0001 0010 0011 1100

7
Instrucţiuni cod-maşină

Instrucţiunile maşină pot fi grupate în 4 mari categorii. Ele pot fi instrucţiuni


pentru:
1) Transferul şi manipularea datelor;
2) Operaţii de intrare/ieşire;
3) Transferul controlului programului;
4) Controlul maşinii (termină procesarea, resetează maşina, etc.)

8
Compilatoare şi asambloare
– Compilatoarele translatează instrucţiunile HLL în binar cod maşină
pentru a fi direct executate de către computer.
– Asambloarele şi limbajele de asamblare au fost utilizate înainte de
apariţia compilatoarelor
– Limbajul de asamblare posedă instrucţiuni cod-maşină ce poartă
denumirea de mnemonice (provin de la cuvintele în engleză ce specifică
acţiunea lor) precum ADD, MOV, SUB, CMP sau JMP.
– Translatarea unui program HLL se poate face fie prin intermediul
unui compilator, fie prin intermediul unui interpretor.

9
EDIT – COMPILE – LINK - LOAD

Editare Fişier Compilare Fişier Editare Fişier Încărcare


(EDIT) sursă (COMPILE) obiect de legături executabil în memorie Rulează
(binar) (LINK) (LOAD)

Figura 2. Schema generală EDIT-COMPILE-LINK-LOAD

10
Editarea de legături

• Dimensiunile mari ale programelor de astăzi a condus la împărţirea


acestora în mai multe părţi, denumite module.
• Pentru obţinerea unui program executabil, fiecare modul trebuie
proiectat, scris şi compilat iar apoi toate componentele rezultate trebuie
combinate împreună de un editor de legături (linker sau link editor).
• Acest proces nu implică doar punerea împreună a componentelor, ci
presupune rezolvarea referinţelor externe. Atunci când un program este
partiţionat în module, sunt frecvente cazurile în care codul dintr-un
modul trebuie să facă referire la date sau sub-rutine dintr-un alt modul
pereche.

11
Editarea de legături –cont.

• Compilatoarele translatează un singur modul la un moment dat. Atunci


când un compilator încearcă să determine echivalentul numeric al acestor
referinţe simbolice, va descoperi că nu există valori valide în cadrul
modului curent.
• Aceste simboluri nerezolvate sunt denumite referinţe externe şi rămân
simbolice (fără o valoare numerică) până în momentul în care editorul de
legături rezolvă aceste referinţe.

Interpretoarele oferă o alternativă pentru a rula programe scrise într-un


limbaj înalt de programare.

12
Interpretoare

În loc de a translata instrucţiunile de nivel înalt în cod maşină şi de a


crea un program executabil, interpretorul citeşte instrucţiunile de nivel
înalt una câte una şi le execută folosind o bibliotecă proprie de rutine.

În acest mod, codul executabil nu este generat din codul sursă ci este
conţinut (integrat) în cadrul interpretorului.

Interpretorul "vede" codul sursă HLL ca date de intrare care trebuie


analizate şi apoi trebuie procesate conform semnificaţiei lor.
Avantajele folosirii unui interpretor sunt: pornirea rapidă şi aparenta
lipsă a complexităţii legate de compilare şi editare de legături.

13
Interpretoare

Dezavantajul este că operează mai lent; programele compilate au fost


întotdeauna superioare ca viteză programelor interpretate.

Este ceva obişnuit ca interpretoarele să convertească instrucţiunile de intrare


într-o formă intermediară alcătuită din anumite simboluri, înainte de a se lua
o decizie asupra acţiunilor ce vor fi executate (figura 3).

Simbolurile generate sunt apoi trecute unui decodificator care va selecta


rutina corespunzătoare ce va fi executată.

Uneori interpretorul este văzut ca o "maşină virtuală" deoarece se comportă


într-un fel ca o componentă hardware: citeşte instrucţiuni pe rând şi se
supune lor. Interpretoarele apropie nivelul execuţiei instrucţiunilor de nivelul
programului conceput în limbajul de nivel înalt.
14
Interpretoare
Rutine
de comenzi

Fişier
Editare sursă Analiză
Decodifică,
selectează
şi execută

Erori

Figura 3. Modul de lucru al unui interpretor

15
Interpretor Java

Fişier Java
Editare sursă Compilator Byte Interpretor
Java Java codes Java

Applet Java

Fişier Browser
HTML Web

Figura 4. Compilarea şi interpretarea Java

Limbajul de programare Java posedă o modalitate interesantă de


compilare şi interpretare ilustrată în figura 4.

16
Bazele Tehnologiei Informaţiei
Curs 10

Prof. dr. Răzvan Zota


ASE Bucureşti
Facultatea de Cibernetică, Statistică şi Informatică Economică
zota@ase.ro

http://zota.ase.ro/bti
Conţinut

• Microprocesoare
– Ciclul fetch-execute
– Timpi de acces
– Performanţe

2
Ciclul fetch-execute

Memoria

AX

UCP Magistrala de sistem


0000 1001
IP 1000 1011

3
Etapa fetch - a

AX Memoria
Adresa instrucţiunii
UCP RAM

IP Magistrala de adrese

1000:0001 0000 1001


RAM = Registru de Adresare a Memoriei
1000:0010 1000 1011

Adresa
segmentată de
memorie 4
Etapa fetch - b

AX Memoria

UCP Codul instrucţiunii


RAM
RI

IP++ Magistrala de date

1000:0001 0000 1001


R A M = Registru de Adresare a Memoriei
1000:0010 1000 1011
R I = Registru de Instrucţiune

Adresa
segmentată de
memorie
5
Etapa execute - a

AX Memoria
Adresa datelor
UCP RAM

IP Magistrala de adrese

1000:0001 0000 1001


RAM = Registru de Adresare a Memoriei
1000:0010 1000 1011

Adresa
segmentată de
memorie 6
Etapa execute - b

AX Memoria

UCP Date: 1234h


RAM
RI

IP++ Magistrala de date

1000:0001 1000 1011


R A M = Registru de Adresare a Memoriei
1000:0010 0011 0100
R I = Registru de Instrucţiune
1000:0011 0001 0010

Adresa
segmentată de
7
memorie
Ciclu maşină - fetch - execute

Timp - F Timp - E

Unitatea de control Unitatea aritmetico/logică

Fetch Execute

8
Componentele de bază ale unui microprocesor

Registrele

Unitatea de control Unitatea aritmetico/logică

Ceasul
UCP

9
Procesor, date, memorie

Procesorul acţionează asupra datelor stocate în memorie sub controlul unui


program stocat, de asemenea, în memorie.

Programe

UCP Memoria
Date

10
Majoritatea instrucţiunilor au un cod al operaţiei precum şi unul sau mai mulţi
operanzi

Instrucţiunea

MOV AX, 1234

Operanzi
Codul operaţiei

11
Adrese de memorie si valori

MEMORIA

1000 : 3002 6723

1000 : 3004 12 34

1000 : 3006 7896 Valoarea lui


var
Adresa de
deplasament
(OFFSET) a lui var

12
Adresare segmentata

MEMORIA

1000 : 3002 6723

1000 : 3004 12 34

1000 : 3006 7896


Adresa de segment

Adresa de
deplasament (offset)

13
Construirea adresei efective din adresa segmentată

1000 : 3006
Adresa de segment

Adresa de
deplasament (offset)

10000+ - adresa de segment se deplasează


la stânga cu 4 biţi - o cifră hexa
3006 - se adună adresa de deplasament
- se obţine adresa efectivă pe 20
13006 de biţi (5 cifre hexa)

14
Ierarhia memoriei

15
Bazele Tehnologiei Informaţiei
Microprocesorul şi ASM

Prof. dr. Răzvan Daniel Zota


ASE Bucureşti
Facultatea de Cibernetică, Statistică şi Informatică Economică
zota@ase.ro

http://zota.ase.ro/bti
Conţinut

• Componentele arhitecturale de bază ale microprocesorului


• Regiştrii microprocesorului Intel
• Instrucţiuni - componente şi format
• Moduri de adresare
• Exemple de moduri de adresare

2
Componentele de bază ale arhitecturii
microprocesorului

• Regiştrii CPU
– Locaţii de memorie speciale direct pe cip
– Exemple: acumulator, numărător, registrul indicatorilor de stare
• Unitatea aritmetico-logică (ALU)
– Acolo unde au loc cele mai multe activităţi în cadrul CPU
• Unitatea de interfaţă cu magistrala (BIU)
– Controlează magistralele de date şi de adrese atunci când se accesează
memoria principală şi datele din memoria cache
• Unitatea de control şi mulţimea de instrucţiuni
– CPU are o mulţime fixă de instrucţiuni cu care lucrează (exemple: MOV,
CMP, JMP)

3
Procesarea instrucţiunilor

• Procesarea unei instrucţiuni constă din parcurgere a 3 paşi de bază:


1. Aducerea instrucţiunii din memorie (fetch)
2. Decodificarea instrucţiunii (decode)
3. Execuţia instrucţiunii (execute) care de regulă implică accesarea memoriei
pentru operanzi şi stocarea rezultatului
• Modul de operare al unui procesor “antic” Intel 8086

Fetch Decode Execute Fetch Decode Execute …... Microprocessor


1 1 1 2 2 2

Busy Idle Busy Busy Idle Busy …... Bus

4
Procesarea instrucţiunilor
• Microprocesoarele moderne pot procesa mai multe instrucţiuni simultan
aflate în diverse stadii de execuţie (pipelining)
• Modalitatea de operare a unui microprocesor pipeline (Intel 80486)

Fetch Fetch Fetch Fetch Store Fetch Fetch Read Fetch


1 2 3 4 1 5 6 2 7 Bus Unit

Decode Decode Decode Decode Decode Decode


1 2 3 4 Idle 5 6 Idle Instruction Unit

Execute Execute Execute Execute Execute Execute


1 2 3 4 Idle 5 6 Execution Unit

Generate Generate
Address Address Address Unit
1 2

5
Arhitectura sistemului x86

A19
Magistrala de adrese (Address Bus) Address Bus
oferă o adresă de memorie sistemului şi o
adresă I/O echipamentelor I/O de sistem A0

Magistrala de date (Data Bus) 8086 D15 Către memorie


transferă datele între microprocesor şi System Data Bus
şi I/O
memorie şi I/O ataşate sistemului (16 bit)
D0
Magistrala de control (Control Bus)
generează semnale de control ce au ca
rezultat o operaţie de citire sau de scriere Control Bus RD/WR
Memory
I/O

6
7
Dimensiunile magistralelor de date şi de
adrese ale procesorului

Procesor Data Bus Address Bus Memoria maximă adresabilă

8088 8 20 1,048,576 (1MB)

8086 16 20 1,048,576 (1MB)

80286 16 24 16,777,21 (16MB)

80386dx 32 32 4,294,976,296 (4GB)

80486 32 32 4,294,976,296 (4GB)

80586/Pentium (Pro) 64 32 4,294,976,296 (4GB)

Intel/AMD 64 bit 64 40 1,099,511,627,776 (1TB)

http://www.tomshardware.com/reviews/processor-cpu-apu-specifications-
upgrade,3566-2.html 8
Regiştrii microprocesorului

Notă:
Regiştrii pe 32 de biţi nu
apar la 8086, 8088, 80286

9
Regiştrii de uz general

32 biţi
AX

EAX AH AL Acumulator
BX

EBX BH BL Index de Bază

16 biţi
CX

ECX CH CL Contor
DX

EDX DH DL Registrul de Date

Notă:
Regiştrii pe 32 de biţi nu apar la 8086, 8088, 80286

10
Regiştrii de uz general - continuare

16 biţi
SP

ESP Pointerul de stivă


BP

EBP Pointerul de bază


DI

EDI Index destinaţie


SI

ESI Index sursă

Notă:
Regiştrii pe 32 de biţi nu apar la 8086, 8088, 80286

11
Regiştrii de uz general
• AX (accumulator) Registrul AX (acumulator) conţine, de regulă, rezultatul obţinut în
urma unei operaţii aritmetice sau logice (vezi şi EAX, AH, sau AL)
• BX (base) Registrul BX (bază) conţine, de regulă adresa de bază (offset-ul) a datelor
din memorie (vezi şi EBX, BH, BL)
• CX (count) Specialitatea registrului CX (numărător) este numărarea. El joacă rolul de
contor pentru câteva instrucţiuni specifice. În cazul deplasărilor pe biţi este folosit
CL iar în cazul instrucţiunii LOOP este folosit CX sau ECX.
• DX (data) Registrul DX (de date) are câteva proprietăţi specifice referitoare la
înmulţire şi împărţire, dintre care:
– conţine partea cea mai semnificativă a rezultatului înmulţirii a două numere pe 16 sau 32 de
biţi;
– partea cea mai semnificativă a deîmpărţitului înainte de împărţire;
– conţine portul de I/E pentru o serie de instrucţiuni de I/E (vezi şi EDX, DH, DL)

12
Regiştrii pointer şi index
• SP (stack pointer) Este cel mai puţin “general”, folosit pentru a adresa date într-o
regiune de memorie de tip LIFO (last-in, first-out): stiva (stack). Modificat în urma:
– instrucţiunilor PUSH şi POP;
– apelul (CALL) unei subrutine sau întoarcerea (RET) dintr-o subrutină în cadrul unui program;
– unele resurse de sistem (tastatura sau ceasul sistem) folosesc stiva atunci când întrerup microprocesorul
în scopul execuţiei unor funcţii.

• BP (base pointer) Este folosit pentru adresarea unui vector de date în stivă (face
referire la SS-segmentul de stivă)
• SI (source index) poate fi folosit pentru a adresa indirect date în scopul utilizării
instrucţiunilor pentru string sau poate fi folosit ca pointer de memorie ca şi BX
• DI (destination index) asemănător cu SI
• IP (instruction pointer) Pointerul de instrucţiuni este folosit întotdeauna pentru a
stoca adresa următoarei instrucţiuni ce va fi executată de către microprocesor

13
Stiva

Segmentul de stivă
Baza stivei (valoarea
iniţială SP sau ESP)
Instrucţiunea POP
determină poziţionarea
Variabile locale pentru vârfului stivei la o adresă
procedura apelată mai mare

Parametrii transmişi
procedurii apelate
Instrucţiunea PUSH determină
poziţionarea vârfului stivei la o
Registrul BP (EBP) Return Instruction Pointer adresă mai mică

Registrul SP (ESP) Vârful stivei


Registrul BP este setat să facă referire
către adresa de întoarcere din
procedură

14
Funcţionarea stivei
La început:
BX ? 996 ?
CX ? 998 ?
1000 ?
SP 1000

După MOV BX, 9 şi PUSH BX:


BX 9 996 ?
CX ? 998 9
1000 ?
SP 998
După MOV CX, 10 şi PUSH CX:
BX 9 996 10
CX 10 998 9
1000 ?
SP 996

15
Funcţionarea stivei

După POP BX:


BX 10 996 ?
CX 10 998 9
1000 ?
SP 998
După POP CX:
BX 10 996 ?
CX 9 998 ?
1000 ?
SP 1000

16
Registrul indicatorilor de stare

Registrul indicatorilor de stare - FLAGS

O D I T S Z A P C

O - Overflow Flag
D - Direction Flag
I - Interrupt Flag
T - Trap Flag
S - Sign Flag
Z - Zero Flag
A - Auxiliary Carry
Flag
P - Parity Flag
C - Carry Flag

17
Registrul indicatorilor de stare
• Un indicator de stare (flag) este un bit ce indică starea curentă a
microprocesorului şi modalitatea sa de operare
• Indicatorii de stare se modifică după execuţia unor instrucţiuni
aritmetice sau logice
• Exemple de indicatori de stare:
– C(carry) indică apariţia unei cifre binare de transport în cazul
unei adunări sau un împrumut în cazul unei scăderi
– O(overflow) apare în urma unei operaţii aritmetice. Dacă este
setat, înseamnă că rezultatul nu încape în operandul destinaţie
– Z(zero) indică faptul că rezultatul unei operaţii aritmetice sau
logice este zero

18
Registrul indicatorilor de stare
– S(sign) indică semnul rezultatului unei operaţii aritmetice
– D(direction) când este zero, procesarea elementelor şirului se
face de la adresa mai mică la cea mai mare; în caz contrar este
invers
– I(interrupt) controlează posibilitatea microprocesorului de a
răspunde la evenimente externe (apeluri de întreruperi)
– T(trap, trace) este folosit de programele de depanare
(debugger), activând sau nu posibilitatea execuţiei programului
pas cu pas. Dacă este setat, CPU întrerupe fiecare instrucţiune,
lăsând programul debugger să execute programul pas cu pas.

19
Registrul indicatorilor de stare (cont.)
– A(auxiliary carry) suportă operaţii în BCD. Majoritatea
programelor nu suportă numere în acest format, de aceea se
utilizează foarte rar.
– P(parity) este setat în conformitate cu paritatea biţilor cei mai
puţin semnificativi ai unei operaţii cu date. Astfel, dacă
rezultatul unei operaţii conţine un număr par de biţi 1, acest
flag este setat. Dacă numărul de biţi 1 din rezultat este impar,
atunci PF este zero. Este folosit în programe de comunicaţii,
dar Intel a introdus acest flag pentru a asigura compatibilitatea
cu vechile microprocesoare.

20
Regiştrii de segment, pointerul de instrucţiuni şi registrul
indicatorilor de stare
32 biţi
IP

EIP Pointerul de instrucţiuni


Flags

EFlags Registrul indicatorilor de stare

16 biţi

CS Reg. segmentului de cod

DS Reg. segmentului de date

SS Reg. segmentului de stivă

ES Reg. extrasegment

FS Reg. suplimentar (80386, 80486+)

GS Reg. suplimentar (80386, 80486+)

21
Regiştrii de segment
• CS(code) Registrul de cod conţine adresa de început a părţii de
memorie ce conţine codul (programul şi proceduri utilizate de
program)
• DS(data) Registrul de date conţine adresa de început a segmentului
de date din memorie
• ES(extra) Registru de segment adiţional
• SS(stack) Defineşte zona de memorie folosită de stivă.
– Registrul pointer de stivă (stack pointer) conţine adresa
vârfului stivei
– Registrul BP conţine adresa datelor în cadrul stivei
• FS şi GS disponibili începând cu 80386 şi 80486 - regiştri
suplimentari pentru accesarea segmentelor de memorie
22
Limbajul cod-maşină

• Limbajul maşină reprezintă codul nativ binar pe care


microprocesorul îl “înţelege”, reprezentând instrucţiuni ce
controlează operarea sa.
• Din programul de asamblare se generează codul maşină
• Instrucţiunile cod-maşină la 8086-80486 variază de la 1 la 13 octeţi
– există peste 20.000 de variaţii de instrucţiuni cod-maşină
• Modul real foloseşte instrucţiuni pe 16 biţi
– Se folosesc adrese offset pe 16 biţi şi regiştri pe 16 biţi
– Instrucţiunile nu au 16 biţi lungime

23
Limbajul cod-maşină (cont.)
• Modul protejat poate folosi instrucţiuni pe 16 sau 32 de biţi
– Bitul D din descriptor (în cadrul unei tabele de prezentare a
descriptorilor) arată modul în care instrucţiunile 80386/80486
accesează regiştrii şi datele din memorie în modul protejat
– D = 0 înseamnă instrucţiuni 80386/80486 pe 16 biţi
– D = 1 înseamnă instrucţiuni 80386/80486 pe 32 biţi
– modul de lucru cu instrucţiuni pe 32 de biţi că atât adresele
offset cât şi regiştrii sunt pe 32 de biţi.

24
Moduri de adresare a memoriei

• Folosind regiştri - copiază un byte sau un word din registrul sursă în registrul
destinaţie
MOV BX, CX
• Efectiv - copiază o valoare efectivă de tip byte sau word într-o locaţie de memorie
sau un registru destinaţie
MOV AX, 3456h
• Direct - copiază un byte sau word de la o locaţie de memorie specificată într-un
registru
MOV AL, [1234h] (1234h reprezintă deplasamentul în
cadrul segmentului de date)

25
Moduri de adresare a memoriei (cont.)

• Indirectă prin regiştri (relativ la bază sau indexat) - copiază un byte sau word
dintr-o locaţie de memorie adresată de un registru index (DI sau SI) sau un
registru de bază (BP sau BX) într-un registru:
MOV AX, [BX]
• Bază plus index (relativ la bază indexat) - copiază un byte sau un word dintr-o
locaţie de memorie specificată de un registru de bază (BP sau BX) plus un
registru index (DI sau SI) într-un registru:
MOV DX, [BX + DI]

26
Moduri de adresare a memoriei (cont.)

• Relativ la registru - transferă un byte sau word dintr-o locaţie de memorie


adresată de un registru index (DI sau SI) sau de bază (BP or BX) plus un
deplasament într-un registru:
MOV AX, [BX + 1000h]

• Relativ la bază plus index (base relative indexed) - transferă un byte sau word dintr-
o locaţie de memorie adresată de un registru de bază (BP sau BX) plus un registru
index (DI sau SI) plus un deplasament într-un registru:
MOV AX, [BX + SI + 100h]

27
Moduri de adresare a memoriei (cont.)
• Fiecare instrucţiune poate accesa memoria o singură dată:
– MOV var1,var2 este o instrucţiune invalidă
– MOV AX,var2 urmată de MOV var1,AX este corect.
• Pentru instrucţiuni ce au doi operanzi, dimensiunea acestora trebuie să
coincidă:
– Putem compara un număr pe 8 biţi cu un număr pe 8 biţi
– Putem compara un număr pe 16 biţi cu un număr pe 16 biţi
– CMP AH,AX este o instrucţiune invalidă
• Operandul destinaţie (de regulă cel din stânga) trebuie să semnifice un
registru sau o locaţie de memorie:
– MOV 1234,AX este o instrucţiune invalidă
• Octetul Mode semnifică ce regiştri vor fi folosiţi de către o instrucţiune
28
Exemple de adresări

29
Exemple de adresări (cont.)

30
Exemple de adresări (cont.)

31
Componenţa şi formatul instrucţiunilor

Opcode Mode Deplasament Data/


Valoare efectivă

Componentele unei instrucţiuni:

32
Componentele unei instrucţiuni

Opcode Mode Deplasament Data/


Valoare efectivă

• Octetul Opcode reprezintă codul operaţiei, direcţia


D W (D) şi dimensiunea (W)
• Octetul Mode apare doar la instrucţiunile ce
folosesc regiştri
OPCODE
• Octetul Mode codifică destinaţia şi sursa în cazul
instrucţiunilor cu 2 operanzi
• Destinaţia şi sursa sunt specificate în câmpurile
MOD REG R/M
REG şi R/M

33
Opcode

• Opcode (1 sau 2 octeţi) selectează operaţia (adunare, scădere, move, etc.)


ce va fi efectuată de către microprocesor

D (direction) - semnifică sensul operaţiei


D W D = 0 - de la câmpul REG la câmpul R/M
D = 1 - de la câmpul R/M la câmpul REG

W - dimensiunea datelor
OPCODE W = 0 - octet
W = 1 - word sau double word

34
Mode
• Octetul Mode are 3 componente
• Câmpul Mod specifică tipul de adresare pentru
respectiva instrucţiune şi dacă avem MOD REG R/M

deplasament sau nu
Mod Funcţie

00 Fără deplasament
01 Deplasament pe 8 biţi
10 Deplasament pe 16 biţi
11 R/M este un registru

• În cazul în care câmpul Mod conţine una din valorile 00, 01 sau 10, câmpul R/M selectează
unul din modurile de adresare a memoriei, astfel:
– MOV AL, [DI] (fără deplasament)
– MOV AL, [DI + 2] (deplasament pe 8 biţi)

35
Atribuirea pentru REG şi R/M
Atribuirea regiştrilor pentru câmpurile REG şi R/M

Code W = 0 (Byte) W = 1(Word) W =1 (Double Word)

000 AL AX EAX
001 CL CX ECX
010 DL DX EDX
011 BL BX EBX
100 AH SP ESP
101 CH BP EBP
110 DH SI ESI
111 BH DI EDI

36
Exemplu de atribuire a regiştrilor
• Considerăm instrucţiunea 8BECh pe 2 octeţi în limbajul cod maşină (lucrăm
pe 16 biţi)

Reprezentarea binară: 1000 1011 1110 1100 Rezultă:


OPCODE: 100010 => MOV
D=W 1 => Un word se copiază în
registrul specificat în câmpul REG
MOD 11 => Câmpul R/M indică registrul
REG 101 => Se indică registrul BP
R/M 100 => Se indică registrul SP
în concluzie, instrucţiunea este: MOV BP, SP

37
Folosirea câmpului R/M pentru
determinarea modului de adresare
• În cazul în care câmpul Mod conţine una dintre valorile 00, 01 sau 10, câmpul R/M
are o nouă semnificaţie
• Exemple:
1. Dacă Mod = 00 şi R/M = 101
modul de adresare este [DI]
2. Dacă Mod = 01 sau 10 şi R/M = 101
modul de adresare este
[DI + 33h] sau [DI + 2222H],unde 33h şi 2222h sunt valori arbitrare ale
deplasamentelor
Cod Funcţie

000 DS:[BX+SI]
001 DS:[BX+DI] Bază plus
010 SS:[BP+SI] index
011 SS:[BP+DI]
100 DS:[SI]
101 DS:[DI] Registru
110 SS:[BP] indirect
111 DS:[BX]
38
Exemplu
Fie instrucţiunea 8A15h în cod-maşină

Reprezentarea binară este: 1000 1010 0001 0101


OPCODE: 100010 => MOV
D 1 => Un word se copiază în registrul
specificat de câmpul REG
W 0 => Byte
MOD 00 => Memorie fără deplasament
REG 010 => Se indică registrul DL
R/M 101 => Se indică modul de adresare [DI]

În concluzie, instrucţiune este: MOV DL, [DI]

39
Modul de adresare directă
• Modul de adresare directă (la instrucţiuni pe 16 biţi) însemnă că memoria
este referită doar de un deplasament
MOV [1000h], DL copiază conţinutul lui DL în
segmentul de date de la adresa 1000h
MOV [NUMB], DL copiază conţinutul lui DL în segmentul de
date de la adresa simbolică NUMB

OPCODE D W MOD REG R/M MOV [1000h], DL


1 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0
Atunci când instrucţiunea are doar un
Byte 1 Byte 2 deplasament:
Displacement-low Displacement-high
MOD este totdeauna 00
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
R/M este totdeauna 110
Byte 3 Byte 4

40
Instrucţiunea “imediată”
• Fie instrucţiunea: MOV word [BX + 1000h], 1234h
OPCODE W MOD R/M Se copiază valoarea 1234h în locaţia de
1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 memorie word adresată de
suma dintre 1000h, BX, şi DS x 10h
Byte 1 Byte 2
Displacement-low Displacement-high Directiva WORD indică asamblorului că instrucţiunea
foloseşte un pointer de memorie de dimensiune
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
WORD (se poate folosi şi BYTE)
Byte 3 Byte 4
Directivele anterioare sunt necesare doar dacă nu este
Data-low Data-high clar dacă operaţia este byte sau word.
0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0
MOV [BX], AL în mod clar este byte
Byte 5 Byte 6 MOV [BX], 1 nu este clar, poate fi byte,
word sau double word
ar trebui să se specifice:
MOV BYTE [BX], 1

41
Instrucţiunea MOV cu regiştri de segment
• Conţinutul unui registru de segment este copiat de instrucţiunile MOV,
PUSH, POP
• Regiştrii de segment sunt selectaţi de setările corespunzătoare de regiştri
(câmpul REG)

Cod Registru de segment Exemplu: MOV BX, CS


OPCODE MOD REG R/M
000 ES
1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1
001 CS
010 SS
011 DS REG este 001 => se selectează CS
100 FS R/M este 011 => se selectează BX
101 GS
Observăm că OPCODE pentru această instrucţiune
este diferit faţă de instrucţiunile MOV anterioare
42
Little Endian vs. Big Endian
(Intel vs. Motorola)
LITTLE ENDIAN vs. BIG
ENDIAN
Fie următoarele declaraţii în C:

• unsigned char r1[ ]={1,2,3,4,5,6,7,8,9,10,100,101,102,103,255}


• unsigned short r2[ ]={1,2,3,4,5,100,65533,65534,65535}
• unsigned int r3[ ]={1,2,3,100,255,4096,12500000}
MOTOROLA 68030
r1[0] r2[0] r3[0]
Adresa

0AB012 0102 0304 0506 0708 090A 6465 6667 FF00

0AB022 0001 0002 0003 0004 0005 0064 FFFD FFFE

0AB032 FFFF 0000 0000 0001 0000 0002 0000 0003

0AB042 0000 0064 0000 00FF 0000 1000 00BE BC20

0AB052 0000 0000 00FF 0000 0000 0000 0000 0000

0AB062 0064 0000 00FF 0000 0000 0000 0000 0000

r3[6]
INTEL Pentium
r1[0] r2[0] r3[0]

Adresa

0012012 0102 0304 0506 0708 090A 6465 6667 FF00

0012022 0100 0200 0300 0400 0500 6400 FDFF FEFF

0012032 FFFF 0000 0100 0000 0200 0000 0300 0000

0012042 6400 0000 FF00 0000 0010 0000 20BC BE00

0012052 0000 0000 00FF 0000 0000 0000 0000 0000

0012062 0064 0000 00FF 0000 0000 0000 0000 0000

r3[6]
Exemplu de reprezentare pe 64 de biti

B1 B2 B3 B4 B5 B6 B7 B8

a) Reprezentarea în memorie la Motorola

B8 B7 B6 B5 B4 B3 B2 B1

b) Reprezentarea în memorie la Intel


Bazele Tehnologiei Informaţiei
Curs 13 – Memoria secundară

Prof. dr. Răzvan Daniel ZOTA


Facultatea de Cibernetică, Statistică şi Informatică
Economică
zota@ase.ro
http://zota.ase.ro/bti
Conţinut

• Memoria secundară
• Standarde de comunicaţie PAN - Personal Area Network

2
• Memoria secundară:
– Hard-disc
– SSD, flash disk
– CD-ROM
– DVD-ROM
– Blue Ray Disk

3
Hard disk

Cap de citire Ax de Pistă


Braţ /scriere rotaţie
Sector Platan

Cilindru

IBM – disc “Winchester”


4
Hard disk

Capacitatea maxima de stocare a unui HD se


poate calcula astfel:

C = Npl * Np * Ns * Ds, unde:

Npl = numărul de platane ale hard/discului;


Np = numărul de piste de pe un platan;
Ns = numărul de sectoare de pe o pistă;
Ds = dimensiunea unui sector.

Ex. 17 sectoare pe pista, 980 de piste

5
SSD (Solid State Drive)
Discurile SSD nu conţin, de fapt, nici un disc şi nici componente aflate în
mişcare precum în cazul hard discurilor clasice. Fiind denumite şi „discuri
electronice”, discurile SSD folosesc circuite integrate pentru stocarea
informaţiei.

În momentul actual există mai multe tehnologii ce realizează acest lucru,


printre care cele mai importante sunt cea bazată pe tehnologia DRAM şi cea
bazată pe memoria de tip NAND flash.

6
SSD (Solid State Drive)
În comparaţie cu hard discurile magnetice clasice, discurile de tip SSD rulează
mult mai silenţios, sunt mai rezistente la şocuri fizice, au timpi de latenţă mai
mici şi viteze de acces mai mari.

Singurul dezavantaj este, momentan, preţul, de aproximativ 8 ori mai mare


per GB de stocare în comparaţie cu un hard disc clasic. În viitor însă aceste
discuri se preconizează că vor înlocui vechile hard discuri, odată cu
îmbunătăţirea tehnologiei şi scăderea preţului.

http://www.pcmag.com/article2/0,2817,2404258,00.asp

7
CD-ROM
• CD-ROM
• Compact Disk, Read Only Memory
• Reprezinta un tip foarte popular de mediu de stocare movibil
ce a fost conceput iniţial pentru înmagazinare de date audio
dar care s-a extins rapid în lumea calculatoarelor personale ca
suport pentru stocarea datelor.
• Succesul CD-ROM-ului poate fi atribuit capacităţii de
stocare, durităţii şi, nu în ultimul rând, preţului redus.
Datorită răspândirii acestui format de stocare, unităţile de
CD-ROM reprezintă echipamente standard prezente pe
majoritatea calculatoarelor personale.

8
CD-ROM
• CD-urile au un diametru de 120 mm, 1,2 mm grosime şi pot stoca până la 800
MB de informaţie. Ele sunt construite dintr-un strat de plastic, un strat de metal
reflectiv şi un înveliş de lac. CD-urile reprezintă un mediu optic de stocare diferit
de mediile magnetice de genul floppy disk, hard disk sau discuri Zip.
• O unitate CD-ROM este alcătuită dintr-un motor, ansamblu laser, mecanism de
rotaţie şi circuite electronice.
– Motorul unităţii învârte motorul CD-ROM-ului la viteza necesară astfel încât
ansamblul laser să poată citi informaţia.
– Ansamblul laser constă dintr-un laser şi lentile optice; acest ansamblu
citeşte CD-ROM-ul în timp ce acesta se roteşte.
– Mecanismul de rotaţie este un motor ce deplasează lentilele în poziţia
corectă pentru a accesa o zonă anume a CD-ROM-ului.
– Circuitele electronice asigură transferul informaţiei citite de pe CD-ROM
către calculator prin intermediul unei magistrale.

9
CD-ROM
• Viteze de citire
• Viteza de citire a unei unităţi CD-ROM determină rata de transfer a
informaţiei de la CD-ROM la calculator. În principiu, cu cât viteza de
citire este mai mare, cu atât transferul datelor este mai rapid. Viteza de
citire a unei unităţi CD-ROM este multiplu de 150 kb şi este succedată de
un “x”.
• O unitate CD-ROM cotată cu viteza de citire 1x înseamnă că citeşte
datele cu o viteză de 150 kb pe secundă. Astfel, un CD-ROM 10x citeşte
1500 kb pe secundă. Fluxurile de date de pe un CD (video) pot necesita
viteze de minim 12x. De asemenea, rata de citire a unui CD-ROM nu este
totdeauna uniformă. O unitate CD-ROM 100x poate ajunge la această
viteză în apropiere de centrul CD-ROM şi doar la viteza 40x pe pistele
exterioare.

10
Inscripţionarea CD-urilor
Există două tipuri de CD recordere:
• CD-R – Compact Disc - Recordable reprezintă prima tehnologie
apărută. CD-urile comerciale produse în cantităţi mari sunt realizate prin
presare. Această tehnică produce adâncituri pe CD ce sunt citite de rezele
laser.
• Tehnologia CD-R foloseşte altă strategie pentru scrierea informaţiei pe
CD. Mediul CD-R adaugă un strat de colorant între stratul de aluminiu şi
cel de plastic. Acest strat de colorant este translucent şi permite luminii să
ajungă la stratul de aluminiu de unde se relectă înapoi.
• Atunci când o unitate CD-ROM scrie informaţii pe un mediu CD-R se
foloseşte un laser pentru a arde zone în stratul colorant pentru a crea pete
opace, care nu reflectă lumina.
• Atunci când CD-ul este citit, ansamblul laser recepţionează reflecţiile
doar din zonele translucente. Această suprafaţă transformă reflecţia/non-
reflecţia în biţi de date. Sunt folosite două lasere: unul de citire şi unul de
scriere. O unitate CD-R cu caracteristicile 24x/40x are o viteză de scriere
de 24x şi una de citire de 40x. 11
Inscripţionarea CD-urilor
• CD-RW – Compact Disc - ReWritable. Ca şi unităţile CD-R, unităţile
CD-RW necesită utilizarea unui tip special de disc.
• Mediul CD-RW este diferit în sensul că include un strat modificator de
stare între stratul de plastic şi cel de aluminiu. Acesta este compus din
anumite elemente chimice care îşi modifică starea fizică la anumite
temperaturi.
• Când raza laser de scriere este folosită pentru a scrie informaţii pe disc,
zone ale amestecului sunt topite prin supra-încălzire şi menţinute în
această stare printr-o răcire rapidă. Aceste zone topite sunt opace şi non-
reflective.
• La unităţile CD-RW apare cea de-a treia rază laser: aceea de ştergere.
Raza de ştergere este utilizată pentru a aduce înapoi în stare cristalină
amestecul. O unitate CD-RW cu caracteristicile 24x/12x/40x are o viteză
de scriere de 24x, de rescriere de 12x şi de citire de 40x.

12
Extragerea digital audio
• DAE - Digital Audio Extraction (DAE) – este procesul de copiere a unui
CD audio pe un alt mediu menţinând calitatea originală. Acest procedeu
se este cunoscut şi sub denumirea de "ripping“.
• Urmare a procesului DAE se creează un fişier de tip .WAV pe hard-disc-
ul calculatorului ce are o dimensiune considerabilă (zeci de MB). Alte
formate precum MP3 sau Ogg Vorbis utilizează algoritmi de compresie
ale acestor fişiere de unde rezultă fişiere mult mai mici cu pierderi minime
de calitate.

13
DVD
• DVD (Digital Versatile Disc) reprezintă noua tehnologie bazată pe
tehnologia de tip CD-ROM. Discurile DVD au aceeaşi dimensiune fizică
ca şi CD-ROM-ul dar pot stoca o cantitate mult mai mare de informaţie.
• Capacitatea de a stoca mai multă informaţie provine de la faptul că oferă
mai mult spaţiu de stocare printr-o tehnică de înregistrare de mai mare
densitate şi accesul la mai multe straturi fizice pe acelaşi mediu.
• Unităţile DVD sunt asemănătoare cu cele CD-ROM. În plus, acestea
conţin decodoare. Toate player-ele DVD şi unele unităţi pentru
computer au un decodor MPEG-2 pentru decompresia datelor video
într-un format ce poate fi afişat pe ecranul televizorului sau pe monitor.
• Unele playere DVD au decodoare audio pentru Dolby Digital 5.1 sau
DTS.
• Laserul utilizat într-un DVD player este diferit de cel folosit într-o unitate
CD-ROM.
14
DVD
• DVD - viteza

Timpul de scriere pentru un


Viteza Rata de transfer
DVD Single Layer

1X 10.55 Mbit/s 1.32 MB/s 61 min.

2X 21.09 Mbit/s 2.64 MB/s 30 min.

4X 42.19 Mbit/s 5.27 MB/s 15 min.

8X 84.38 Mbit/s 10.55 MB/s 8 min.

16X 168.75 Mbit/s 21.09 MB/s 4 min.

15
Înregistrarea DVD-urilor
• DVD-R – DVD-R (Recordable) - similar cu tehnologia CD-R în sensul
că discul poate fi scris o singură dată.
• DVD-RAM – Utilizează tehnologia “Random Access Memory” (RAM)
ce permite scrierea şi rescrierea unui disc de 100.000 ori. DVD-RAM
utilizează o tehnologie similară cu cea CD-RW şi stochează 4.7GB de
date pe fiecare faţă a discului. Compatibilitatea este o problemă.
• DVD-RW – Tehnologia DVD-RW (Re-Writable) este concepută pentru
a rezolva problema compatibilităţii. Permite rescrierea de aproximativ
1000 de ori. Discurile sunt compatibile cu majoritatea unităţilor DVD-
ROM de pe piaţă.
• DVD+RW – Tehnologie mai nouă (HP+). Asemănătoare cu DVD-RW.
Posibil standard viitor pentru înregistrarea DVD.

16
CD vs. DVD

Tabel comparativ între caracteristicile discurilor CD şi DVD

Caracteristica CD DVD

Diametru 120 mm 120 mm

Grosime 1,2 mm 0,6 mm

Distanţa între piste 1,6 mm 0,74 mm

Lungimea minimă a cavităţilor 0,834 mm 0,4 mm

Lungimea de undă a razei laser 780 nm 640 nm

Capacitate (pe strat) 0,64 GB 4,7 GB

Număr de straturi 1 1,2,3 sau 4

17
Discuri Blue Ray – comparaţie cu CD şi DVD
În 2002, Blue-ray Disk Founders au anunţat specificatiile BD, un format de disc optic de
mare capacitate. În 2006 a fost publicată specificaţia BD 2.0 ce poate stoca până la 25 GB
sau 11.5 ore de video (standard definition) pe un disc de un diametru de 12 cm (la fel ca şi
CD-ul şi DVD-ul).

18
Formate de scriere a CD-urilor
• Firmele Phillips şi Sony au conceput formatul standard pentru CD-urile
audio la începutul anilor 1980.
• Există două tipuri principale de formate pentru CD:
• Standarde Logice
– Un standard logic defineşte modalitatea de stocare a informaţiei pe disc. CD-
urile şi alte discuri utilizează o serie de piste şi sectoare pentru a stoca date pe
disc. Din punct de vedere logic, standardul reprezintă structura sistemului de
fişiere. În prezent standardul ISO 9660 (High Sierra) este standardul
unanim acceptat. CD-urile create cu acest format pot fi accesate pe
majoritatea platformelor şi sistemelor de operare existente astăzi în lume.
– Alte formate sunt: Rock Ridge (UNIX), HFS (Macintosh) şi hibrid
HFS/ISO. Două standarde care îmbunătăţesc standardul ISO 9660 sunt
JOLIET şi UDF. JOLIET este varianta Microsoft pentru ISO 9660 ce
extinde mărimea maximă a numărului de caractere ale unui nume de fişier de
la 8 la 64. Universal Disc Format (UDF) reprezintă un standard mai nou
special conceput pentru înmagazinare de date.
19
Formate de scriere a CD-urilor
• Standarde fizice
Definesc modul de scriere a informaţiei pe CD (locul). Majoritatea
formatelor cad în categoria "Cărţilor colorate". Atunci când Phillips şi
Sony au adus formatul pentru CD-ul audio, primele caracteristici ale
acestuia au fost publicate într-o carte cu o copertă roşie => Red Book.
• Red Book – Compact Disc - Digital Audio (CD-DA), formatul pentru
CD-uri audio. Specifică modul de aranjare a cântecelor în piste pe disc.
• Yellow Book – Dezvoltat iniţial ca format pentru date. Permite scrierea
datelor ca fişiere pe disc.
• Green Book – Phillips a creat în 1986 acest format pentru noile CD-I
(Interactive). Acest format a fost special conceput pentru sincronizarea
datelor audio şi video pentru aplicaţii multimedia.

20
Formate de scriere a CD-urilor
• Orange Book – Acest standard (1990) defineşte formatul fizic pentru
discurile inscriptibile. Are trei părţi: 1 pentru discuri Magneto-optice
(MO), 2 pentru discuri de tip Write Once (WO) şi 3 pentru discuri re-
inscriptibile.
• White Book – Metoda de înregistrare MPEG1 audio-video pe un video
CD (VCD). Aceste discuri necesită un player specializat sau o aplicaţie
software pentru accesare datorită compresiei înalte a informaţiei.
• Blue Book – Standardul Blue Book este pentru formatul discurilor E-
CD (Enhanced-CD).

21
Diverse caracteristici ale discurilor DVD

Straturi/faţă N r fe ţe C a pa cita te (G B ) L u n gim e (în o re )


1 1 4.7 2
2 1 8.5 4
1 2 8.7 4.5
2 2 17 8

22
Codificarea datelor şi controlul erorilor
• Paritate, coduri Hamming şi CRC

• În momentul unei transmisiuni pot apărea erori datorită interferenţelor


electrice sau electromecanice. Probabilitatea de apariţie a unei erori este
estimată la aproximativ 10-18. În cazul unui Pentium ce lucrează cu date la
109 bps, acest lucru înseamnă că ar trebui să aşteptăm 109 secunde pentru
producerea unei erori, care înseamnă 31,7 ani.
• Aplicarea tehnicilor de detecţie şi corecţie a erorilor au fost revitalizate în
momentul apariţiei CD-ROM-ului şi DVD-ului. Suprafeţele acestora se
deteriorează în timp şi ar deveni inutilizabile dacă nu ar exista tehnici de
corecţie a datelor.

23
USB – Universal Serial Bus

• La începutul anilor 1990 a apărut necesitatea dezvoltării unui nou


standard pentru interfeţe seriale. Era nevoie de un dispozitiv de conectare
fără o reconfigurare manuală, fără repornirea calculatorului, fără placă PCI
pentru fiecare dispozitiv în parte, un singur conector universal si cablaj, fara
alimentare externă suplimentară.
• Lăţimea de bandă a portului USB este de 12 Mbs/sec, partajată pentru
toate dispozitivele ataşate, limita fiind de 127 echipamente (datorită lăţimii
spaţiului de adrese). Cablul cu patru fire foloseşte 2 fire pentru transmisia
de date şi două pentru alimentarea cu curent electric (5V şi 0V).
•Varianta USB 2.0 permite următoarele viteze de transfer:
• Low-Speed – 1,5 Mbps
• Full-Speed – 12 Mbps
• Hi-Speed - 480 Mbps

(USB 3.0 – viteze până la 5 Gbit/s - 625 MB/s)

24
IEEE 1394 (Firewire)
• IEEE(Institute of Electrical and Electronics Engineers) (Eye-
triple-E)
• Standard de interfaţă externă ce asigură transferuri rapide de
date (până la 400 Mbps în varianta 1394a şi 800 Mbps în
varianta 1394b). Interfeţele fizice ce suportă standardul IEEE
1394 au diferite denumiri, în funcţie de compania producătoare.
Apple (cea care a dezvoltat pentru prima oară această
tehnologie) foloseşte denumirea de FireWire. Alte denumiri
utilizate sunt i.link (Sony) şi Lynx (Texas Instruments).
• Un port IEEE 1394 poate fi utilizat pentru a conecta până la 63 de dispozitive
periferice. Suportă, de asemenea, transferuri izocrone de date, asigurând rate
de transfer garantate. Acest lucru face ca interfaţa IEEE 1394 să fie ideală
pentru echipamente ce trebuie să asigure rate ridicate de transfer în timp real
(de regulă echipamente video).
• Extrem de rapidă şi flexibilă, IEEE 1394 este şi scumpă. Ca şi interfaţa USB,
IEEE 1394 asigură suport atât pentru Plug-n-Play cât şi pentru conectarea
imediată de tip „hot-plugging”.
25
Bluetooth

Bluetooth – standard industrial pentru retele wireless de tip PAN (Personal Area
Network). Bluetooth ofera modalitatea de conectare si schimb de informatii (pe baza
de unde radio) pentru: telefoane mobile, laptop-uri, PC-uri, camere digitale, console
video, echipamente audio. Specificatiile Bluetooth sunt dezvoltate sub patronajul
Bluetooth Special Interest Group.

Clasa Distanta (aprox.)

1 ~100 metri

2 ~10 metri

3 ~1 metru

26
Bluetooth

Versiunea Rata de transfer

1.2 723.1 Kbit/s

2.0 + EDR, 2.1 2.1 Mbit/s

3.0 53 - 480 Mbit/s

27
Interfaţa paralelă
• Portul paralel la PC utilizează un conector DB-25.
• Se mai numeşte şi interfaţă Centronics (interfaţa paralelă modernă - Epson).
• SPP 100 KBs (O) Controlată software
Tipuri noi de porturi paralele:
• EPP (Enhanced Parallel Port) 1MBs (I/O) Controlată prin circuite hardware de
tip “handshake”
• ECP (Extended Capabilities Port) - 5 MBs (I/O) - Control DMA cu FIFO
• Au aceeaşi conectori dar viteze de transfer de până la 50 ori mai rapide.

28
Conectori paraleli

29
Conectori HDMI
• HDMI – (High Definition Multimedia Interface)
• Interfaţă audio-video pentru transferul datelor digitale video şi audio
• Este interfaţa ce înlocuieşte standardele video analoage.

30

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