Sunteți pe pagina 1din 54

Facultatea de

Informatic - Iai
Arhitectura
Calculatoarelor
Curs pentru anul I Informatic

Prof. dr. Henri Luchian


Lect. dr. Vlad Rdulescu

examinare
dou teste scrise din materia de curs
cte unul pentru fiecare jumtate de semestru

un test practic la laborator


limbaj de asamblare

condiia pentru susinerea testelor scrise


prezena la laborator
cel mult 2 absene permise n fiecare jumtate de
semestru
2

Autori ale cror


prezentri publice au fost folosite pentru
pregtirea acestei forme a cursului

Sivarama Dandamundi
Jerry Breecher
Randy Katz
Michel Allemand
Daniel Amyot
John Morris
3

CUPRINS
prima jumtate a semestrului
I. Introducere
II. Circuite combinaionale i funcii booleene
III. Circuite secveniale i automate
IV. Reprezentri interne
V. Arhitectura i organizarea calculatorului
4

Capitolul I
Introducere

I.1. EVOLUIE

Cnd au aprut mainile de calcul?


Dup fiecare redefinire a noiunii de calcul
abac: adunri
roi dinate: Leibniz (2) i Pascal (10): adunri,
nmuliri
Babbage: instruciuni din exterior, calcul ramificat
von Neumann: program memorat; execuie n
secven de instruciuni; ierarhii de memorii
calculatoare "paralele" (de fapt, calcul paralel)
calcul(atoare) probabilist(e), neuronal(e),
evolutiv(e), cuantic(e)

ncearc automatizarea calculului n nelesul


respectiv
7

Maini de calcul universale


O main de calcul universal se poate
comporta ca oricare main de calcul
particular
Exemple:
Introducnd n calculator un program corect de
lucru cu
matrici, calculatorul se va comporta ca o main de
calcul cu matrici
linii, unghiuri, forme main de proiectare grafic
cuvinte, paragrafe, texte main de tehnoredactat
8

Scurt istorie
a ideilor

inventarea scrierii poziionale a numerelor


indieni, arabi

inventarea logaritmilor
John Napier of Edinburgh

algebra boolean
George Boole, 1854

teorema de incompletitudine
Kurt Gdel, 1935

conceptul de calculator neumannian

John von Neumann, 1946


Toate sunt legate de calcul(ator) n nelesul de astzi
9

Scurt istorie
invenii abstracte i concrete
~1850: George Boole inventeaz algebra boolean
propoziii logice sunt transformate n simboli
calcule cu propoziii logice, folosind reguli de tip matematic
1938: Claude Shannon leag algebra boolean de circuite (comutatoare)
n teza sa de dizertaie
1945: John von Neumann proiecteaz primul calculator cu program memorat
comutatoarele erau lmpi
1946: ENIAC primul calculator electronic
18000 de lmpi
5000 de adunri, sute de nmuliri pe secund
1947: Shockley, Brittain i Bardeen inventeaz tranzistorul
permite integrarea mai multor circuite ntr-un modul
deschide drumul electronicii moderne
10

Scurt istorie
a calculatoarelor
1642-1945: Calculatoare mecanice
Leibniz, Pascal, Babbage; Z1, Mark I

1945-1955: Lmpi
ENIAC, EDSAC, UNIVAC, IBM 70x
1952: primul succes comercial 19 calculatoare IBM vdute

1955-1965: Tranzistori
PDP-1, IBM 7094, CDC 6600

1965-1980: Circuite integrate


IBM 360, PDP-11, 4004, 8008, VAX
VLSI, ULSI
11

Scurt istorie
a microprocesoarelor

IBM-PC (8086): 1980


Mac Plus (68000): 1984
80486: 1990
Pentium: 1994
Pentium II: 1997
Pentium III: 1999
Pentium IV: 2001
12

I.2. LEGI EMPIRICE

13

Legi empirice
Legi ale oricrei tiine depind ntr-un fel sau altul
de experiment sau de observaii n lumea concret
unele tiine sunt sau au capitole preponderent
empirice (medicina)

Repetabilitatea, inerent noiunii de experiment,


duce la ideea de legi empirice: adevruri valabile de
cele mai multe ori, conform observaiilor
Formulate n Informatic nc de la nceputuri
inginerie
14

Legi empirice n informatic


Exist legi empirice aplicabile hard-ului sau softului:
legea "90:10" (Donald Knuth): 90% din timpul de
execuie al unui program este utilizat pentru 10% din
instruciuni
legea lui Amdahl: eficiena maxim n mbuntirea
unui sistem (concret sau abstract) se atinge dac se
optimizeaz subsistemul cel mai folosit
legile localizrii spaial, temporal
15

Legea lui Amdahl


mbuntirea unui sistem trebuie fcut n partea
cel mai frecvent folosit

A(a, f a )

1
fa
(1 f a )
a

Pentru creteri semnificative, trebuie ca a i fa s fie


ct mai mari
Exemplu: Dac procesorul lucreaz 50% din timp i
devine de dou ori mai rapid, atunci A = 4/3
Observaie: Sumatorul va fi cel mai intens mbuntit
16

Legile localizrii
(pentru instruciuni)
Localizare spaial
dac la un moment dat se execut o instruciune
i, atunci este probabil ca la momente apropiate
s se execute instruciuni din apropierea lui i (n
ordine fizic)
spaiul de memorie, n care se afl instruciunile

Localizare temporal
dac la un moment dat se execut instruciunea i,
atunci este probabil ca instruciunea i s se
execute din nou la momente apropiate n timp
17

Ordine fizic i ordine logic


Instruciunile de executat se afl n memorie ntr-o
anumit ordine: ordinea fizic
Ele se citesc din memorie i se execut
regula: n ordinea n care sunt memorate
excepia: srind peste un numr de instruciuni

Rezult ordinea logic a instruciunilor


n ordinea logic la o anumit rulare, fiecare instruciune poate s
apar de 0, 1, 2, ori

Legile localizrii indic un tip esenial de relaie ntre


ordinea fizic i ordinea logic:
Secvena de instruciuni din ordinea logic este alctuit n
general din sub-secvene construite din poriuni restrnse ale
secvenei de instruciuni din ordinea fizic
18

Legile localizrii: n fiecare interval "mic" de


timp, programul utilizeaz o mic poriune din
spaiul de adrese
Valabil pentru instruciuni ca i pentru date
Temporal: iteraii (program), reutilizri
Spaial: ordinea fizic; tablouri de date

De mai mult de 30 de ani, soluiile hardware se


bazeaz pe legile localitii pentru a ctiga
vitez
Un exemplu: ierarhia de memorii
19

I.3. IERARHIA DE MEMORII

20

Ierarhia de memorii
Soluioneaz dou probleme:
1. Programele foarte mari nu ncap n
memoria principal
Nivelul inferior al ierarhiei (memoria
secundar)

2. Necesitatea creterii vitezei de execuie a


programelor
Nivel superior al ierarhiei (memoria cache)
21

Ierarhia de memorii

Niveluri:
1.
2.
3.
4.

Timp de comunicare i capacitate de


memorare foarte mici pe primele dou niveluri

regitrii-generali procesor ( 1/4 Ko)


memoria cache ( 1 Mo)
memoria RAM ( 4 Go)
memoria secundar disc (1 To)
Preul pe bit scade pe msura deprtrii de procesor

corespunznd "ferestrelor" din legile localizrii

Dar comparativ foarte mari pe ultimul

permind memorarea programelor foarte mari


22

Ierarhia de memorii - niveluri

23

Ierarhia de memorii
Programul ntreg se afl n memoria secundar
Cu fiecare nivel urcat n ierarhie, sunt aduse de pe
nivelul inferior "ferestre" din ce n ce mai mici ale
programului
Execuia direct din cache
succes: instruciunea urmtoare este gsit n cache
eec: instruciunea urmtoare trebuie adus de pe un nivel
inferior
eecuri dese ar cauza o execuie mai lent dect dac
instruciunile ar fi aduse direct din memoria secundar

Legile localizrii fac ca ierarhiile de memorii s


accelereze execuia programelor
pe poriuni
o valoare uzual a ratei de succes poate fi de ordinul a 95%
24

Capitolul al II-lea
Circuite combinaionale
i funcii booleene

II.1. INTRODUCERE

26

Semnal analogic i semnal digital


Semnal analogic
continuu
dac a luat valorile a i b, atunci a luat i "toate" valorile din
[a,b]

Semnal digital
are cteva niveluri valori distincte i stabile
discontinuu
nu ia alte valori

Calculator: semnal digital cu 2 niveluri


"0" i "1"

Modem: comunicare digital-analogic


Conducerea proceselor industriale
Folosirea reelelor telefonice analogice
27

Aplicaii ale circuitelor digitale


Calculatoare
CPU, memorie, bus, periferice,

Reele, comunicaii
telefoane, modemuri, routere

Bunuri diverse
automobile, audio-video, jucrii,

Echipament pentru (alte) activiti tiinifice


Testare, msurare etc.

Lumea calculului se extinde mult dincolo de PC


embedded systems
definiii restrnse ale calculului
28

Circuite
Combinaionale

Secveniale
parte
combinaional

meorie

29

Metoda cutiei negre


Pentru un circuit combinaional a crui structur /
funcionare nu este cunoscut:
se aplic fiecare combinaie posibil de valori ale
intrrilor
se observ valorile ieirilor pentru fiecare astfel de
combinaie
se obine astfel un tabel de adevr

Cum unui tabel de adevr i corespunde o funcie


boolean, rezult c fiecrui circuit combinaional i
corespunde o funcie boolean
30

De la circuite la funcii booleene


Circuit combinaional tabel de adevr

I1
0

.
0.0

In
0

O1
?

.
?.?

Om
?

0.0

?.?

1.1

?.?

n fixat: partea de intrare e ntotdeauna aceeai


ntotdeauna aceeai coresponden pentru un circuit
(determinist)
31

II.2. FUNCII BOOLEENE

32

Structura algebric

Mulimea nevid B
Mulimea de operaii binare { + , }
O operaie unar { }
B conine cel puin dou elemente,
a, b, a b
nchidere: a + b este n B
a b este n B
a
este n B
33

Funcii booleene
B = {0,1}
f : Bn Bm
funcie: n variabile, m valori
circuit: n intrri, m ieiri
m 2n

Exist (2 ) astfel de funcii


n=1, m=1: 4 funcii unare cu o valoare
x

f0(x) = 0

f1(x) = x

0
1

0
0

0
1

f2(x)= x f3(x) = 1
1
0

1
1
34

Funcii booleene de dou variabile


16 funcii booleene complet definite de 2 variabile
X
i cu o valoare
F
Y

x y F0 F1 F2 F3 F4 F5 F6 F7 F8 F9

F10 F11 F12 F13 F14 F15

0
0
1
1

1
0
1
0

0
1
0
1

0
0
0
0

0
0
0
1

0
0
1
0

0 X and Y

0
0
1
1

0
1
0
0
Y

0
1
0
1

0
1
1
0

0
1
1
1

1
0
0
0

1
0
0
1

1
0
1
1

1
1
0
0

1
1
0
1

1
1
1
0

1
1
1
1

X xor Y
X=Y
not X
1
35 Y
X or Y X nor Y not Y
X nand

Axiome i teoreme n algebra boolean

Identitate
Constante
Idempoten
Involuie
Complementaritate
Comutativitate
Associativitate

1. X 0 X

1D. X 1 X

2. X 1 1

2D. X 0 0

3. X X X

3D. X X X

4. X X

5. X X 1

5D. X X 0

6. X Y Y X

6D. X Y Y X

7. X Y Z X Y Z

7D. X Y Z X Y Z

Distributivitate

Unificare
Absorbie

8. X Y Z X Y X Z
8D. X Y Z X Y X Z
9D. X Y X Y X
9. X Y X Y X
10. X X Y X
10D. X X Y X
11. X Y Y X Y
11D. X Y Y X Y

36

Legile lui De Morgan


12.

X Y ... X Y ...

12D.

X Y ... X Y ...

Generalizare:
13.

f X1 ,, X n ,0,1,, f X1 ,, X n ,1,0,,

Dualitate
37

Forme normale
Plecnd de la tabelul de adevr al unei funcii, se pot
obine dou expresii diferite pentru acea funcie
Forma normal disjunctiv
Pentru fiecare 1 din ultima coloan, se scrie un termen ce
conine doar conjuncii
Termenii se leag prin disjuncie
Fiecare termen conine fiecare variabil a funciei
negat, dac n linia acelui 1 variabila apare cu valoarea 0
nenegat pentru 1
Exemplu: F9 x, y x y x y

Forma normal conjunctiv: dual

Exemplu: F9 x, y x y x y

38

Operaiile calculatorului
la nivel logic elementar
Pentru calculatoarele actuale, operaiile
elementare la nivelul circuitelor de baz sunt
operaiile logicii booleene
care simuleaz i operaiile aritmetice elementare
n baza 2

Un circuit combinaional poate fi vzut ca


implementnd o funcie boolean
39

II.3. DIAGRAME LOGICE

40

Alfabetul diagramelor logice


Pori elementare
AND
OR
NOT

Funcionarea unei
pori se poate
descrie printr-un
tabel de adevr
(funcia boolean
ataat)
41

Alfabetul diagramelor logice


Alte pori utile
NAND
NOR
XOR

NAND = NOT AND


NOR = NOT OR
XOR implementeaz
funcia sau-exclusiv
Porile NAND i NOR
necesit doar 2
tranzistori
pentru AND i OR e
nevoie de cte 3
tranzistori
42

n diagrame logice apar i pori


"elementare" cu mai multe intrri
Operaiile binare asociative pot fi extinse la
operaii cu orice numr finit de operanzi

43

Set minimal de generatori


Care este numrul minim de tipuri de pori ce
ar trebui produse pentru a putea obine din ele
circuite care implementeaz orice funcie
boolean?
3 anume {NOT, OR, AND} este un
rspuns parial
forme normale (disjunctiv, conjunctiv)

i dou ajung: NOT i una din celelalte dou


Rspunsul corect este 1, cu dou soluii:
{NAND} i {NOR}
44

Tem
Artai c {NAND} i {NOR} sunt mulimi de
generatori pentru funciile booleene
Indicaie: se folosete FND sau FNC
n particular:
A
A
B

1
A+B

A+B
B
1

45

II.4. IMPLEMENTAREA
CIRCUITELOR
PRIN FUNCII BOOLEENE

46

Definirea funciilor booleene


Funciile logice booleene pot fi definite n mai
multe moduri:

prin tabel de adevr


prin expresii coninnd variabile i operaii logice
n form grafic
n sigma-notaie ()

Exemplu: funcia "majoritatea dintre k"


are k variabile i o valoare
valoarea funciei este 1 dac majoritatea variabilelor au
valoarea 1
vom studia funcia pentru k=3
47

-notaia
f=(3,5,6,7)
Fiecare numr din parantez reprezint un
termen
denot disjuncia termenilor
Numrul de variabile n este cea mai mic putere
a lui 2 strict mai mare dect cel mai mare numr
ce apare n parantez
n = 3:

4 = 22 < 7 < 23 = 8

f(x1,x2,x3) = (3,5,6,7)
48

-notaia
Fiecare numr din parantez se scrie n baza
2 pe n poziii
3 011

Termenul corespunznd unui numr conine


toate variabilele,
fiecare negat dac i corespunde un 0 i
nenegat pentru 1,
legate prin conjuncie
3 011 x1 x 2 x3

49

-notaia
f(A, B, C) A B C A B C A B C A B C
11 aplicri ale funciilor elementare OR / AND
Gsirea unei expresii echivalente (aceeai funcie
boolean) cu mai puine aplicri de operatori ar
face respectivul circuit
mai rapid
mai ieftin
mai fiabil
50

Funcia "imparitate" cu 3 intrri

IMP

0
0
0
1
1
1
1

0
1
1
0
0
1
1

1
0
1
0
1
0
1

1
1
0
1
0
0
1

Implementarea formei normale disjunctive

A BC

IMP

51

Implementarea funciei "majoritate din 3"


A
0
0
0
0
1
1
1
1

B
0
0
1
1
0
0
1
1

C
0
1
0
1
0
1
0
1

F
0
0
0
1
0
1
1
1

Forma normal disjunctiv: patru


termeni, fiecare coninnd doar
conjuncii
corespund celor 4 linii cu ieirea 1

n fiecare termen, o variabil apare


negat numai dac valoarea sa pe
acea linie este 0
F A B C A B C A B C A B C

Se poate implementa o expresie


echivalent mai simpl?

52

Minimizare
Nu doar set minimal de operatori, ci i pentru o
funcie dat numr minimal de aplicri ale acestora
(AND / OR)
FND un numr de apariii ale operatorilor
11 OR / AND n exemplu

Proceduri de minimizare reduc expresia

Rescriere echivalent
Inducie perfect
Metoda Veitch-Karnaugh
Metoda Quine-McCluskey

Hibridizare (ex: V-K urmat de distributivitate)


53

Minimizare prin rescriere algebric


Funcia "majoritate din 3"
A B C A B C A B C A B C

Idempoten

A B C A B C A B C A B C A B C A B C

Expresia devine:
BC+AC+AB

Metod dificil pentru expresii complexe


54