Sunteți pe pagina 1din 222

Curs II

Circuite digitale

Porti logice
O poarta logica realizeaza operatii logice cu una sau
mai multe intrari logice si produce o singura iesire
logica. Functionarea unei porti logice este descrisa de
logica Booleana.
Portile logice sunt implementate electronic utilizand
diode sau tranzistoare dar se pot realiza implementari
cu relee, implementari hidraulice sau pneumatice,
optrice sau chiar mecanice.

4 porti logice SI integrate

Valori semnificative ale tensiunii de


intrare i ieire

VILmin - nivelul de tensiune minim pentru 0 logic la intrare


VILmax - nivelul de tensiune maxim pentru 0 logic la intrare
VIHmin - nivelul de tensiune minim pentru 1 logic la intrare
VIHmax - nivelul de tensiune maxim pentru 1 logic la intrare
VOLmin - nivelul de tensiune minim pentru 0 logic la ieire
VOLmax - nivelul de tensiune maxim pentru 0 logic la ieire
VOHmin - nivelul de tensiune minim pentru 1 logic la ieire
VOHmax - nivelul de tensiune maxim pentru 1 logic la ieire
Semnificatia indicilor
I - (input) intrare
O (output), ieire
L (low), nivel logic 0
H - (high), nivel logic 1

Marginile de imunitate la
perturbaiile statice

margine de zgomot
valoarea maxim a tensiunii perturbatoare, care nsumat cu
semnalul util aplicat la intrare, n cazul cel mai defavorabil, nu
influeneaz negativ nivelul de tensiune de la ieire
(comportarea circuitului)
marginea tipic (garantat) de imunitate la perturbaii pentru o
stare logic este diferena dintre nivelul de tensiune tipic
(garantat) la ieirea circuitului de comand i nivelul cel mai
defavorabil al tensiunii pe care circuitul comandat l mai
accept la intrare, pentru meninerea la ieire a strii dorite

Pentru starea logica 0:


ML=VILmax-VOLmax
Pentru starea logica 1:
M =V
-V

Comutaia porilor logice

Porti logice pentru magistrale


Portile logice pentru magistrale permit
conectarea mai multor iesiri impreuna.
Exista doua modalitati de implementare:
- Iesire cu Colector in gol (Open
Colector)
- Iesire de tip Trei stari (Three States)

Portile logice de tip trei stari


Portile logice de tip trei stari ( three-state, tri-state sau 3state) permit 3 stari de iesire: 0 logic, 1 logic si Z. Starea
Z se numeste stare de inalta impendanta si semnifica
deconectarea interna a iesirii. Astfel devine posibila
conectarea impreuna la o magistrala a mai multor iesiri,
fara a afecta buna functionare a circuitului.
Circuite de tip 3-state outputs sunt implementate in
numeroase familli de circuite integrate ( 7400 series
TTL). Magistralele de adrese si date din sistemele cu
microprocesoare sunt implementate cu circuite de tip 3
stari.
Circuitele te tip 3-stari nu trebuie confundata cu logica
trivalenta sau multivalenta

Magistrala
In domeniul microprocesoarelor prin magistrala se
intelege un subsistem pentru transferul de date in
interiorul sistemului. Spre deosebire de conexiunile
point-to-point, o magistrala conecteaza logic mai multe
dispozitive utilizand acelas set de fire.
Pentru fiecare tip de magistrala se definesc semnalele
transmise, nivelul acestora si conectorii.
La inceput termenul de magistrala s-a utilizat pentru a
defini conexiunile paralele existente intre diferite
dispozitive (unitate centrala, memorie, periferice).
In prezent termenul de magistrala a fost extins la orice
tip de conexiune care realizeaza aceiasi functie logica de
transfer de date. (Ex. USB)

Comunicaia pe magistrala

Linii bidirecionale linii la care dou sau mai multe dispozitive


fizice se conecteaz prin etaje de ieire.
Unele dispozitive fizice se pot conecta numai prin etaje de ieire
sau deintrare, iar altele att prin etaje de ieire, ct i de intrare.

Magistrala de adrese
Magistrala de adrese, address bus este utilizata de
microprocesor sau de controlerul de acces direct la memorie (DMA)
pentru a comunica adresa fizica a elementului de memorie (locatia
de memorie ) accesat pentru operatii de citire/scriere.
Latime magistralei de adrese impreuna cu dimeniunea unei locatii
de memorie determina volumul de memorie care poate fi accesat.
De exemplu, cu o magistrala de adrese de 16-bit (comuna pt.
procesoarele pe 8-bit) se poat accesa 216 = 65,536 octeti =
64Kbytes (ani 1970, inceputul anilor 1980)
Pe o magistrala de adrese de 32-bit (communa actualelor PC) se
poate adresa 232 = 4,294,967,296 locatii = 4Gi locatii.
Pentru majoritate microcalculatoarelor elementul adresabil este de:
8-bit= 1 bytes

Clasificare circuite digitale


Circuite Combinationale
- Iesirile depind direct de intrari la momentul t.
Circuite Secventiale
- Isirile depind de intrarile la momentul t cat si de
intrarile la momente anterioare
Microprocesoare
Circuite complexe capabile sa proceseze date pe
baza unui program descris cu ajutorul unui set de
instructiuni

Circuitul Registru
Registrul este o unitate ( o locatie) de memorare foarte
rapida in interiorul procesorului destinata stocarii
variabilelor la un moment dat. Majoritatea calculatoarelor
moderne opereaza pe principiul aducerii datelor din
memorie in registrii interni, operarea asupra datelor si
transmiterea datelor prelucrate inapoi in memorie: (loadstore architecture).
Registrii procesorului se situeaza in varful ierarhiei
memoriei avand cel mai scurt timp de acces.
In general termenul de registru este utilizat numai pentru
grupul de registri care pot fi accesati direct prin
intermediul setului de instructiuni. Pentru procesoarele
compatibile x86 (moderne) exista 8 astfel de registre de
32 biti. Numarul total de registre este mult mai mare.

Tipuri de registre

Registrii de date sunt utilizati pt. a memora date (numere) de tip intreg sau in
virgula mobila. Un registru de date special este registrul acumulator, registru implicat
in numeroase operatii.
Registri de adrese sunt destinati accesarii memoriei fizice. In unele tipuri de
microprocesoare exista Registri index utilizati mai degraba pt. a calcula adresa
decat pt. a memora adreasa fizica.
Registrii de conditii memoreaza valori de adevar care adesea determina cand se
executa sau nu se executa o instructiune.
Registri de uz general,General purpose registers, (GPRs) pot stoca atat date
cat si adrese.
Floating point registers (FPRs) sunt utilizati pt. a stoca numerele in virgula mobila
in multe tipuri de arhitecturi.
Constant registers registri utilizati pt. a se citi valori constante ( zero, one, pi, ...).
Vector registers stocheaza date pentru procesarea vectoriala in cazul instructiunilor
SIMD (Single Instruction, Multiple Data).
Registri Speciali memoreaza starea programului; de obicei ei sunt: program
counter ( pointerul de instructiunui), stack pointer (pointerul de stiva), and status
register (registrul sau cuvantul de stare).
Instruction registers contine instructiune curenta (instructiunea care se executa).
Index registers este utilizat pt a modifica operandul adresa.

Numarul Registrelor Interne


accesibile prin setul de instructiuni

Structura unui registru


O colectie de bistabile de tip D
Registru de tip paralel

Registru serie registru de


deplasare

Registrul serie - paralel


Registrul se incarca serie,
Registru se poate citi in paralel
Aplicatie: receptia seriala

Registru cu intrare paralel si iesire


serie
Aplicatie: Transmisia seriala

Unitate Aritmetico Logica


ALU
Unitate aritmetica Logica efectueaza
operatii aritmetice ( adunare, scadere,
etc. ) sau logice ( si sau exclusiv, etc).
Sunt structuri fundamentale in
componenta procesoarelor.
Procesoarele moderne pot avea mai
multe nuclee si fiecare nucleu contine
mai multe unitati logico aritmetice.

Implementare ALU pe 2bit

Unitate aritmetico
logica capabila sa
realizeze operatiile: SI,
SAU, SAU EXCLUSIV
si adunare pe 2biti.

Operatii complexe
Se pot proiecta ALU care sa execute
operatii ori cat de complexe intr-un singur
pas
Daca operatia este foarte complexa
unitatea va contine multe elemente, va fi
foarte scumpa si va disipa multa energie
Exemple operatii complexe: extragere radacina patrata, functii
trigonometrice, exponentiala, etc.

Moduri de implementare a
operatiilor complexe
1 - executia intr-un singur pas
2 executia iterativa in mai multi pasi (divizare op.
complexe in micro-coduri)
3 utilizarea unor ALU simple de cost redus si pt.
operatii complece utilizarea de co-procesoare
specializate cu ALU de tip 1 sau 2.
4 emulare co-procesor se testeaza existenta
coprocesorului, daca exista acesta executa operatiile
complexe, daca nu exista se genereaza o intrerupere
(exceptie) si operatia complexa se rezolva soft prin
apelarea unor rutine ale sistemului de operare
5 nu exista co-procesor, operatiile complexe se rezolva
soft prin apelarea unor rutine din biblioteca aplicatiei

Consecinte
Primele obtiuni sunt cele mai rapide si
scumpe, ultimele sunt lente dar ieftine
Microprocesoarele ieftine pot executa
operatti complexe dar necesita un timp
indelungat

Unitate de adunare pe 1 bit

Unitate de adunare de tip


ripple carry pe 4 bit

Avantaj: Circuite simple


Dezavantaj: Pt a realiza un sumator pe 32 biti vor exista 31 unitati pt
calculul transportului a cate 2 porti fiecare, in total intervenind
31*2+1=63 porti in cascada. Frecventa maxima este limitata de timpul
de propagare prin 63 porti.

Unitate de adunare de tip


Carry Look Ahed
Avantaj: Timpul de
propagare scade
semnificativ
Dezavantaj: Numarul de
porti necesare creste cu
patratul numarului de
biti, O(n2), numarul de
intrari pe o porta
depinde de numarul de
biti deci numarul total de
tranzistoare depinde de
cubul numarului de biti,
O(n3), deci aria
necesara creste rapid
cu numarul de biti

Unitati de adunare complexe


Pt. a limita cresterea excesiva a nunarului
de tranzistoare in general se construiesc
unitati de adunare de 4 biti
Unitati de 16 biti pot fi obtinute prin
conectarea a 4 celule de adunare pe 4 bit
(cresterea numarului de tranzistoare este
liniara)
Unitati de 64 biti se obtin prin conectarea
celulelor de 16 biti

Reprezentarea numerelor in
calculator
Curs III

Reprezentarea numerelor
pozitive
Reprezentarea numerelor ntregi pozitive n baza 2 este
bine cunoscut. Reprezentarea unui numar K in baza 2
se poate simboliza sub forma unui ir de 'n' cifre binare
'ci= 0' sau 'ci= 1' unde indexul 'i' are valori cuprinse ntre
0 si n-1.

K cn1cn2 c1c0
Calculul numarului K reprezentat printr-o succesiune de cifre binare:

K cn 1 2

n 1

cn 2 2

n2

c1 2 c0

Pentru transformarea numrului K n binar se realizeaz imprtirii numarului


K la 2 respectiv a cturilor rezultate din impririle anterioara la 2 pana cnd
ultimul ct devine 0. Codul binar este reprezentat de resturile mparirilor
luate n succesiune invers apariiei acestora.

Exemplu: Determinarea reprezentarii


binare a numarului K=42

42 : 2 = 21 rest 0
21 : 2 = 10 rest 1
10 : 2 = 5 rest 0
5 : 2 = 2 rest 1
2 : 2 = 1 rest 0
1 : 2 = 0 rest 1

42 = 1010102
Pentru reprezentarea lui 42 in binar
este nevoie de 6 cifre binare. n
general n calculator se folosesc
reprezentarile pe 8, 16, 32 sau 64
bii. Rangurile superioare se vor
completa cu 0.
Pentru reprezentarea numarului 42
pe 8 bii rezult codul: 00101010

Un ntreg pozitiv k poate fi reprezentat pe n cifre binare dac este satisfcut


relatia:

n log 2 k

Reprezentarea numerelor
fractionare virgula fixa
Reprezentarea in binar a numerelor fractionare se realizeaza dup
modelul zecimal.
Pentru nceput vom considera un numr zecimal a crui parte ntreag
este 0.
Reprezentare in binar se va simboliza:

K 0. c1c 2 c m 1c m
In calculator nu se reprezint cifra '0' din faa punctului zecimal i de
asemenea nu este reprezentat punctul zecimal. Acestea se subneleg.
Calculul unui numr fracionar pornind de la reprezentarea sa binar
este:
1
2
m 1
m

K c1 2 c2 2 cm1 2

c m 2

Partea fractionar este utilizat pentru generarea urmatorelor cifre binare

repetand procedura prezentat anterior.


Prima cifra a reprezentrii binare a unui numr pozitiv fracionar subunitar
este partea ntreg a produsului dintre numarului dat si 2.

Exemplu: numarul 0.7

0 .7 2 1 0 .4
0 .4 2 0 0 .8
0 .8 2 1 0 .6
0 .6 2 1 0 .2
0 .2 2 0 0 .4

Reprezentarea n binar a
numarului 0.7 este:
0.10110....
Dac reprezentarea
binar se trunchiaz la 5
cifre binare dup punctul
valoarea exact
reprezentat este
k'=0.6875

Reprezentarea in binar a unui numr zecimal cu numr finit de cifre nu se


poate realiza intodeauna pe un numr finit de cifre binare. Reprezentarea
se trunchiaza la un numr finit de cifre binare n funcie de rezoluia de
reprerzentare.

Rezolutia reprezentarii in virgula


fixa
Reprezentarea in binar a unui numr zecimal cu
numr finit de cifre nu se poate realiza
intodeauna pe un numr finit de cifre binare.
Reprezentarea se trunchiaza la un numr finit
de cifre binare n funcie de rezoluia de
reprezentare.
Dac reprezentarea se face pe 'm' cifre binare
se poate calcula rezoluia reprezentarii r=2-m.
Pentru 5 cifre binare rezoluia r=2-5=0.03125.

Reprezentarea numerelor
fractionare cu parte intreaga
diferita de zero
Reprezentarea numerelor pozitive in virgula fix aloca un
numar determinat de cifre binare pentru reprezentarea
pri zecimale. Se rerprezint partea ntreaga pe un
numar de bii alocai pri ntregi si partea zecimal pe
cei m bii alocai prii zecimale.
Eexemplu reprezentarea numrului K = 42.7 pe un cod
binar de 8 bii cu 2 bii partea zecimal este
K=101010.10. In calculator nu se reprezinta punctul
zecimal deci reprezentarea va fi 10101010. Potrivit
conveniei adoptate acest cod are semnificaia de 42.5.
Se observ c de fapt s-a realizat reprezentarea unei
aproximri a numrului k datorit erorilor de trunchiere

Reprezentarea numerelor cu semn


(pozitive si negative)
Mai multe metode de reprezentare:
Semn marime
Complement de 1
Complement de 2
Utilizarea unui bias (in cazul reprezentarii
exponentului numerelor in virgula mobila)

Reprezentarea in codul
semn-marime

Reprezentare prin semn-marime este identic cu reprezentarea numerelor


pozitive, dar primul bit este utilizat ca bit de semn (0 pentru numere
pozitive si 1 pentru numere negative).
Lungimea minim a codului binar 'lc' pentru reprezentarea numerelor ntr-un
domeniu (-M, M) cu o rezolutie 'r' este data de relaia:

lc log 2

2M
r

Considernd lungimea codului format din 'n' bii pentru partea ntreag i 'm' bii
pentru partea zecimal rezult expresia numrului k reprezentat in binar prin irul
"cn-1 cn-2 ... c1 c0 c-1 c-2...c-m"

K (1) cn 1 (cn2 2 n2 c1 2 c0 c1 2 1 c2 2 2 cm 2 m )
Pentru a putea reprezenta numarul maxim M si
respectiv numarul r, numarul minim pozitiv diferit
de zero n si m trebuie sa satisfaca conditiile:

n log 2 (2 M )
1
m log 2
r

Reprezentarea in codul
semn-marime
Cea mai semnificativa cifra binara:
0 daca k 0
cn 1
1 daca k 0

Urmatoarele cifre binare


"cn-2 ... c1 c0 c-1 c-2...c-m"
sunt o reprezentare a lui |K| n cod binar fr
semn

Avantajele si dejavantajele
reprezentarii in cod semn-marime
Avantaje :
- efectuarea fr complicaii a operaiei de
nmulire i mprire.
Dezavantaje:
- Necesit tratarea diferit a biilor de
semn pentru efectuarea adunrii si scderii,
- Dou reprezentri a numarului 0 (0000
si 1000),
- Intervalul reprezentrii pentru un cod de
n biti este (-M, M) cu M=2n-1.

Reprezentarea n complement de 1
Prin reprezentarea numerelor negative n complement de 1 se
eliminarea trataratarea diferit a biilor de semn de a celorlali bii n
operaiile de adunare scdere, principalul dezavantaj al reprezentrii
n cod semn-mrime.
Considernd irul "an-1an-2 ... a1 a0 a-1 a-2...a-m" o reprezentare n
complement de 1 a numrului k, se pot determina elementele irului
dupa cum urmeaz:

0 daca k 0
an 1
1 daca k 0

an 2 a1a0 a1a 2 a m

cn 2 c1c0c1c 2 c m

cn 2 c1 c0 c1 c 2 c m

daca k 0
daca k 0

Proprietati, Avantajele Dezavantajele


Reprezentarii in complement de 1
Se poate demonstra c adunarea numerelor n complement de 1 se
poate realiza n doi pai fr tratarea discriminatorie a bitului de
semn. n primul pas se realizeaz adunarea celor doi operanzi fra
a se tine cont c acestia sunt numere cu semn reprezentate n
complement de 1. In cel de al doilea pas la rezultat se aduna
transportul generat n primul pas.
Avantaje:
- Tratatarea nediscriminatorie a tutur biilor i n plus operatia de
scadere se poate nlocui cu adunarea la desazut a complementului
de 1 al scztorului.
Dezavantaje:
Operaia de adunare se efectueaz n doi pai cea ce duce la
scderea vitezei de execuie,
nmultirea este foarte greu de realizat,
Dou reprezentri a numarului 0 (0000 si 1111),
Intervalul reprezentrii pentru un cod de n biti este (-M, M) cu
n-1
M=2 .

Reprezentarea n complement de 2
Este cel mai rspndit mod de reprezentare a
numerelor intregi i elimin efectuarea adunarii n doi
pai. Reprezentarea se face dup un algoritm similar
reprezentrii n complement de 1 dar pentru numerele
negative se aduna cifra 1 la codul obinut n cazul
reprezentrii n complement de 1
0 daca k 0
an 1
1 daca k 0
cn2 c1c0c1c2 cm
daca k 0

an2 a1a0 a1a2 am


cn2 c1 c0 c1 c2 cm 1 daca k 0

Avantajele si dezavantajele
Reprezentarii in complement de 2
Avantaje:
efectuarera adunarii prin tratatrea nediscriminatorie
a bitilor de semn,
permite efectuarea scderii prin adunarea la
desczut a complementului de doi al scztorului,
numarul 0 are dedicat un singur cod (toti bii sunt 0
cea ce permite o detectare simpl a numrului 0)
intervalul de reprezentare este [-M, M)
Dezavantaje:
Operatiile de nmulire si mprire mai dificil dect
pentru prezentarea n cod semn-mrime.

Reprezentarea numerelor
in virgula mobila
Este un sistem de interpretare a sirurilor de numere
digitale astfel incat acestea reprezinta numere reale
Ofera o dinamica mult mai larga decat reprezentarea in
virgula fixa, dinamica necesarara in calcule stiintifice si
ingineresti
Nu toate microprocesoarele au capacitatea de a opera
direct cu numere in virgula mobila.
Capacitatea micro-procesoarelor de a opera cu numere
in virgula fixa se masoara in MFloaps (miliane de operati
in virgula mobila pe secunda)
Cele mai puternice supercomputere pot atinge viteze de
ordinul Tfloaps

Formatul numerelor in virgula


mobila
Bitul de semn (0 numere pozitive, 1 numere
negative)
Exponentul (e bits)
Mantisa (f bits)

Precizia reprezentarii
Standardul IEEE 754
Precizie simpla, "float" in limbajul C ; real" sau "real*4" in Fortran.
- Ocupa 32 bits (4 bytes), oferind o precizie de 7 cifre zecimale (24 biti pt
mantisa si bitul de semn)

Dubla precizie, "double" in limbajul C;


"doubleprecision" sau "real*8" in Fortran.
- Ocupa 64 biti (8 bytes) si ofera o precizie de 16 cifre
zecimale ( 53 bits mantisa si semn).
Formate in virgula mobila de ordin redus pe 16 si chiar 8 bits

Numere reprezentate

Rotunjirea numerelor
Numerele scrise cu un numar finit de zecimale in
sistemul zecimal nu pot fi reprezentate in binar
pe un numar finit de biti
Ex. 0.1 din zecimal nu se poate reprezenta exact
in binar
e=-4; s=1100110011001100110011001100110011...,
s va fi rotunjit la 24 bits devenind
e=-4; s=110011001100110011001101 care inseamna
0.100000001490116119384765625 in zecimal.

Rotunjirea numerelor
Rotunjire la cel mai apropiat numar
reprezentabil
Rutunjire catre 0
Rotunjire catre infinit
Rotunjire catre + infinit

Curs IV
Arhitectura sistemelor cu
microprocesoare

Arhitectura von Neumann

Arhitectura Harvard

Arhitectura von Neumann originala

Prima divizare a magistralei

Introdusa se Compaq 1987


Caracteristica sistemelor echipate cu 80386

Dublarea frecventei la procesor

Caracteristica procesoarelor 80486

Multiplicarea frecventei

Doua nivele de memorie cache


(caracteristica Procesoarelor
PENTIUM)

Modelul von Neuman actual

Interconectarea microprocesorului,
memoriei si perifericelor
Placa de baza

Exemplu placa de baza

Magistrala ISA

Magistrala EISA

Arhitectura microprocesoarelor
Schema bloc:
a unui microprocesor
simplu

Curs V
Microprocesorul 8086

Microprocesorul 8086

Primul microproceosr pe 16 bit


Adresarea directa a 1Moctet de memorie
Adresarea segmentata a memoriei
Organizat din doua unitati distincte:
- EU unitate de executie
- BIU Unitatea de interfata cu magistrala

Arhitectura microprocesorului

Aducerea instructiunilor in avans

Modelul soft registri


microprocesorului

Flags is a 16-bit register


containing 9 1-bit flags:

Overflow Flag (OF) - set if the result is too large positive number, or is too
small negative number to fit into destination operand.
Direction Flag (DF) - if set then string manipulation instructions will autodecrement index registers. If cleared then the index registers will be autoincremented.
Interrupt-enable Flag (IF) - setting this bit enables maskable interrupts.
Single-step Flag (TF) - if set then single-step interrupt will occur after the
next instruction.
Sign Flag (SF) - set if the most significant bit of the result is set.
Zero Flag (ZF) - set if the result is zero.
Auxiliary carry Flag (AF) - set if there was a carry from or borrow to bits 0-3
in the AL register.
Parity Flag (PF) - set if parity (the number of "1" bits) in the low-order byte of
the result is even.
Carry Flag (CF) - set if there was a carry from or borrow to the most
significant bit during last result calculation.

Organizarea memoriei
(Harta memoriei)
0000h - 03FFh Rezervat
pt. vectorul de intrerupere,
fiecare vector de
intrerupere este un pointer
in format de 32-bit pointer
in format segment:offset.
FFFF0h - FFFFFh dupa
RESET procesorul
intodeauna executa
instructiunea de la adresa
FFFF0h

Adresarea segmentata a memoriei

Generarea adresei fizice

Avantajele segmentarii memoriei


Existenta separata a segmentelor de cod,
stiva si doua segmente de date

Setul de instructiuni
Data moving instructions.
Arithmetic - add, subtract, increment, decrement, convert
byte/word and compare.
Logic - AND, OR, exclusive OR, shift/rotate and test.
String manipulation - load, store, move, compare and
scan for byte/word.
Control transfer - conditional, unconditional, call
subroutine and return from subroutine.
Input/Output instructions.
Other - setting/clearing flag bits, stack operations,
software interrupts, etc.

Moduri de adresare

Implied - the data value/data address is implicitly associated with the instruction.
Register - references the data in a register or in a register pair.
Immediate - the data is provided in the instruction.
Direct - the instruction operand specifies the memory address where data is located.
Register indirect - instruction specifies a register containing an address, where data
is located. This addressing mode works with SI, DI, BX and BP registers.
Based - 8-bit or 16-bit instruction operand is added to the contents of a base register
(BX or BP), the resulting value is a pointer to location where data resides.
Indexed - 8-bit or 16-bit instruction operand is added to the contents of an index
register (SI or DI), the resulting value is a pointer to location where data resides.
Based Indexed - the contents of a base register (BX or BP) is added to the contents
of an index register (SI or DI), the resulting value is a pointer to location where data
resides.
Based Indexed with displacement - 8-bit or 16-bit instruction operand is added to
the contents of a base register (BX or BP) and index register (SI or DI), the resulting
value is a pointer to location where data resides.

Organizarea spatiului de intrare


iesire

Accesul direct la memorie


Este o facilitate care permite perifericelor
de a accesa direct memoria fara
interventia unitatii centrale
Controlerul de disc (hard disk, floppy disk,
CD, DVD), placa grafica, placa de retea,
placa de sunet au acces DMA
Procesorul initiaza transferul si primeste o
intrerupere cand sa terminat transferul

Intreruperi
Intreruperea este un semnal asincron prin
care un dispozitiv solicita executia unei
subrutine specifice.
La acceptarea unei intreruperi hard
procesorul salveaza starea si executa
subrutina specifica

Intreruperi hard

IRQ 0 - System timer. Reserved for the system. Cannot be changed by a user.
IRQ 1 - Keyboard. Reserved for the system. Cannot be altered even if no keyboard is
present or needed.
IRQ 2 - Second IRQ controller. See below for explanation.
IRQ 3 - COM 2(Default) COM 4(User)
IRQ 4 - COM 1(Default) COM 3(User)
IRQ 5 - Sound card (Sound Blaster Pro or later) or LPT2(User)
IRQ 6 - Floppy disk controller
IRQ 7 - LPT1(Parallel port) or sound card (8-bit Sound Blaster and compatibles)
IRQ 8 - Real time clock
IRQ 9 - ACPI SCI or ISA MPU-401
IRQ 10 - Free / Open interrupt / Available / SCSI
IRQ 11 - Free / Open interrupt / Available / SCSI
IRQ 12 - PS/2 connector Mouse / If no PS/2 connector mouse is used, this can be
used for other peripherals
IRQ 13 - Math co-processor. Cannot be changed
IRQ 14 - Primary IDE. If no Primary IDE this can be changed
IRQ 15 - Secondary IDE

Tabelul (vectorul de intreruperi)

Curs VI
Memoria si sistemul periferic

Memoria
Memoria unui computer sau a unui sistem
cu microprocesor este o componenta, un
dispozitiv sau un mediu de stocare
destinat retinerii informatiei (date si
program) pentru o perioada de timp in
vederea prelucrarii.
Este o componenta importanta a oricarui
computer si este strans legata de unitatea
centrala de prelucrare

Organizarea ierarhica a memoriei


Nivelul primar de stocare: conectare directa la
unitatea centrala de prelucrare. Este prezenta in
orice sistem cu microprocesor.
- Registri procesorului sunt interni unitatii
centrale de prelucrare, contin date in curs de
prelucrare
- Memoria Cache este interna la
procesoarele performate, informatia din memoria
principala este duplicata in memoria cache
pentru un aces mai rapid. Memoria cache poate
fi organizata pe mai multe nivele: nivelul 1 find
mai stans cumplat cu unitatea centrala mult mai
rapid dar de capacitate mai mica decat nivelul 2.
Niveleul 2 este mai rapid decat memoria
principala dar de capacitate mult mai mica decat
aceasta.
- Memoria principala: contine instructiunile si
datele
Timpul de acces este de ordinul ns

Nivelul secundar de stocare si


stocare off-line
Nivelul secundar de stocare
- Necesita utilizarea sistemului de intrare iesire pentru acces la informatia
stocata
- Este utilizata pentru stocarea informatiei persistente pe termen lung.
- Unele sisteme de operare utilizeaza nivelul doi de stocare ca memorie
virtuala pentru cresterea artificiala, aparenta a memoriei principale
(fisiere de tip swap sau cache).
- Nivelul secundar de stocare este reprezetat de hard disk-uri.
- Timpul de acces la memoria secundara este de ordinul ms, Rezulta o
degradare semnificativa a performantelor oricarui computer atunci cand
programele utilizeaza memoria virtuala
Stocarea off-line
- Este un sistem de stocare unde mediul de stocare poate fi scos si introdus
in sistem cu usurinta. Este utilizat pentru transferul si arhivarea datelor.
- In calculatoarele moderne este reprezentat de CD, DVD, carduri de
memorie, memorie flesh, discul flexibil (floppy disk), Zip disk, banda
magnetica, inclusiv medii care se conecteaza pe portul USB

Nivelul de stocare tertiara


si bazele de date
Nivelul trei de stocare este similar stocarii offline dar mediile de stocare sunt depozitate si pot
fi introduse automat prin intermediul unor brate
robotizate.
Timpul de acces este de ordinul secundelor
Este intalnit la super-computere, (nu apare la
computerele personale)
O alta posibilitate este stocarea informatiei in
retea pe alte computere.
Informatiile importante sunt stocate redundand
existand mai multe copii.

Criterii de clasificare a memoriei


Dupa persistenta informatiei in lipsa alimentarii
cu energie:
- memorie nevolatila
- memorie volatila
Dupa tehnologia de realizare
- memorie semiconductoare
- discuri magnetice, benzi magnetice, discuri
optice,
- alte tipuri (microfilme, banda perforata, cartele
perforate

Tipuri de memorie
semiconductoare

Nevolatila are capacitatea de a pastra informatia si


cand nu este alimentata cu energie)

ROM (Read Only Memory)


PROM (Programmable Read Only Memory)
EPROM (Erase Programmable Read Only Memory)
EEPROM (Electric Erase Programable Read Only Memory
Flesh memory

Volatila informatia se pastreaza numai pe durata


alimentarii cu energie
RAM (Random Access Memory)
- Static
- Dinamic

Memorie nevolatila
ne-semiconductoare
Discul magnetic
Fix (Hard-disk)
Mobil (Floppy disk)

Banda magnetica
Discul Optic
CD-ROM
DVD

Cartela perforata (nu se mai utilizeaza)


Banda perforata (nu se mai utilizeaza)
Microfilm

Memoria ROM
Read only memory
Este o memorie care poate fi doar citita.
Ea este inscrisa in momentul realizarii prin intermediul
mastilor de realizare a circuitelor integrate.
Celula de memorie consta in existenta, (1 logic), sau
absenta, (zero logic), unei diode
Fabricarea memoriei ROM nu se justifica decat pentru un
numar foarte mare de circuite care contin acelas
program.
A fost utilizata pentru stocarea BIOS la primele computere.

Memoria PROM
Programmable read only memory
- In mod uzual acest tip de memoria poate fi doar citita.
- Memoria poate fi scrisa o singura data.
- Spre deosebire de memoria ROM care este programata la
proiectarea mastilor de executie a circuitului integrat, memoria
PROM contine in fiecare celula un element echivalent unei sigurante
fuzibile care la programare se arde pentru inscrierea bitului 0.
Distrugerea sigurantei fuzibile este ireversibila deci memoria poate fi
scrisa o singura data. Programarea se realizeaza cu ajutorul unui
dispozitiv special numit programator de PROM-uri.
- Memoria PROM se utilizeaza acolo unde numarul de exemplare in
care este reprodus un program este mai scazut si nu se justifica
economic inscrierea sa in memorii de tip ROM.
- Atat memoriile ROM cat si PROM sunt utilizate pentru stocarea unor
programe utilizate la pornirea sistemului.
- A fost utilizata la stocarea BIOS-ului la primele computere.

Memoria EPROM

Erasable Programmable Read Only Memory


- Este un tip special de memorie programabila la
care informatia este memorata sub forma
uneor sarcini stocate in poarta flotanta a
unui tranzistor.
- Memoria este nevolatila, timpul de injumatatire
al sarcinilor stocate in conditii normale este
de ordinul zecilor de ani.
- Memoria poate fi stearsa prin expunerea la
raze ultraviolete. Prin efect fotoelectric,
sarcinile stocate sunt eliberate. Memoriile
EPROM se disting printr-un gemulet de
sticla de regula acoperit cu o eticheta.
Dupa stergere memoria poate fi rescrisa,
intr-un programator de EPROM necesitand
o tensiune ridicata in comparatie cu
tensiunea de lucru la citire.
Pentru stergere si reprogramare memoria
trebuie extrasa din soclu.
Acest tip de memorie a fost utilizat pentru
stocarea BIOS la comuterele mai vechi.

Memoria EEPROM
Electric Erasable Programmable Read Only
Memory
- Stergerea memoriei se realizeaza electric.
Rescrierea se realizeaza de asemenea electric.
Ciclul de de scriere octet cu octet este mult mai
lunng decat in cazul citirii memoriei.
- Acest tip de memorie poate echipa placi de baza
cat si placi de extensie. Prin reprogramarea
memoriei EEPROM se pot realiza setari care
altfel ar necesita repozitionarea unor jumper.

Memoria FLASH ROM

Este un tip special de EEPROM la


care stergerea si scrierea se poate
face pe blocuri de memorie. Nivelul de
tensiune pentru stergere si scriere este
mai redus decat la memoria EEPROM.
De asemenea timpul de stergere si
scriere este mai redus.
La ora actuala memoria FLESH ROM
este comuna pentru a stoca BIOS ul
sistemului (Basic Input Output
System). Oferind posibilitatea de a fi
actualizata (update) cu versiuni noi
disponibile pe internet de la firma
producatoare. Nu se recomanda
actualizare numai daca este absolut
necesara. O cadere a tensiunii in
timpul actualizarii sau o eroare in
dentificarea versiuni poate fi
catastrofala.

Memoria SRAM
Static Random Access memory
Memorie cu acces aleator locatiile de memorie pot fi
accesate in mod aleator spre deosebire de memoria
secventiala (banda magnetica, banda de hartie).
Termenul de acces aleator nu inseamna neaparat memorie
volatila, exemplu memoria pe miez de ferita este cu
acces aleator si nevolatila. De asemenea memoria ROM
este nevolatila si asigura acces aleator. In mod uzual
prin memorie RAM se intelege memorie
semiconductoare care poate fi scrisa si citita si care este
volatila.
Memoria RAM static (SRAM) are propietatea de a pastra
informatia inscrisa atat timp cat memoria este
alimentata.

Structura SRAM

Fiecare bit este memorat pe patru tranzistoare


care formeaza doua ramuri inversoare cuplate
incrucisat
Celula de stocare are doua stari stabile (0 si 1
logic)
Inca doua tranzistoare sunt necesare pentru
accesul la celula de memorie
Functionarea are stari:
- in asteptare linia de selectie nu este
activata, tranzistoarele M5 si M6 deconecteaza
celula de memorie de la liniile de iesire /BL si
BL
- Citire potentialul liniilor BL, /BL nu este fixat
din ezterior. Prin selectarea celulei, linile de
iesire sunt aduse la potentialul iesirilor C,
respectiv/Q.
- Scriere - potentialul liniilor BL, /BL este fixat
din exterior, prin selectiea celuli aceasta este
fortata sa basculeze in starea fixata de BL, /BL
Existenta a doua linii de iesire BL, /BL nu este
obligatorie, totusi dacase dispune de ambele
linii, imunitate la zgomot este mai mare
Celula are nevoie de 6 tranzistoare, ocupa mult
spatiu si deci nu se pot integra un volum mare
de memorie pe un singur circuit.
Memoria este organizata cu m linii de adrese si
n linii de date., in total vor exista 2m x n celule
(biti).
Este mai rapida decat memoria DRAM
La frecvnete mici consuma mai putina energie
decat DRAM

Prezentare:
Cu interfata asincrona 28 pini 32k x8 bit,
si poate ajunge la 16Mbit/cip
Cu interfata sincrona (256x72) ajunge la
18Mbit/cip

Utilizare SRAM
Memorie cache in computere deoarece este mai
rapida decat DRAM
In sistemele cu microcontrolere si procesoare de
semnal
Echipamente care necesita reducerea
consumului de energie (camere digitale,
telefoane celulare, sintetizatoare, jucarii, etc)
Se intalneste sub forma de dual port access in
sistemele de prelucrare in timp real.
Hobbyists intrarile de adresa nu sunt
multiplexate, nu necesita reinprospatatre deci
este mai usor de folosit.

DRAM
Dynamic Random Access Memory
Este un tip de memorie cu acces aleator in care informatia
este stacata intr-un set de condesatoare integrate (cate
unul pt. fiecare bit)
Cum condesatoarele reale sunt cu pierderi informatia
trebuie sa fie reinprospatata periodic.
Celula este mult mai simpla, un tranzistor si un condesator
fata de 6 tranzistori la SRAM si deci poate fi integrata cu
densitati foarte mari
DRAM a fost inventata de Dr. Robert Dennard la IBM
Thomas J. Watson Research Center 1966 si patentata in
1968.
In 1973 s-a introdus principiul multiplexarii adreselor pe linii
si colane

Principiul citirii DRAM


Celula 4X4
Circuitele DRAM pot avea
mii de linii si coloane

Principiul Scrierii DRAM

Curs VII
Adresarea protejata a memoriei
Microprocesorul 80286

Microprocesorul 80286

Lansat in 1 februarie 1982


Contine 134 000 tranzistori
Tehnologie 1,5microni
64 pini
Procesor pe 16 bit
Frecventa 6 si 8MHz (versiuni pana la 25MHz)
Modul de adresare protejata permite adresarea
directa a 16MOcteti de memorie
Proiectat pentru multitasking si multi-user

Multitasking
Multitaskingul este o metoda prin care mai multe task-uri
cunoscute si sub denumirea de procese impart aceleasi
resurse cum ar fi de exemplul procesorul
In sistemele cu un singur procesor un singur task (proces)
ruleaza la un moment dat.
Prin multitasking se realizeaza o programare a proceselor
astfel incat resursele sistemului sa fie utilizate eficient in
fiecare moment.
Procesul de reasignare a CPU unui tasc sau altuia poarta
denumirea de cumutarea contextului
Daca comutarea contextului se realizeaza frecvent, se
obtine iluzia paralelismului
Si in cazul sistemelor multiprocesor, procesoarele sunt
atribuite pe rand mai multor task-uri

Implementari multitasking
Multiprogramare un task ruleaza pana cand operatia
pe care o executa trebuie sa astepte dupa un eveniment
extern (citire disk magnetic, etc); are rolul de a maximiza
utilizarea CPU
Partitionarea in timp (time sharing) procesul
elibereaza procesorul voluntar cand termina actiunea
sau involuntar ca urmare a unui eveniment extern (
intrerupere hard); Procedeul a fost gandit pentru
executia aparent simultana a mai multor programe
Sisteme in timp real - garanteaza ca task-urile in
asteptare sunt executate atuncui cand are loc un
eveniment extern; Sunt utilizate pentru controlul unor
dispozitive externe, ex. Roboti industriali

Protejarea memoriei
In cazul mutitaskingului mai multe programe se
afla simultan in memorie
Din greseala sau deliberat un program poate
scrie in memoria alocata altui program sau a
sistemului de operare, bocand astfel sistemul
sau producand rezultate eronate.
Se inpune evitarea acestei situatii prin
restrictionarea accesului la memorie, fiecare
program avand acces doar la memoria alocata
si orice tentativa de a scrie in alta zona duce la
oprirea procesului respectiv inainte se a efectua
operatia

Niveluri de privilegiu
In modul protejat exista 4 niveluri de privilegiu
notate de la 0 la 3.
In mod uzual nucleul sistemului de operare
ruleaza pe nevelul 0, serviciile sistemului de
operare pe nivelul 1 sau 2 iar aplicatiile pe
nivelul 3.
Unele instructiuni pt. a fi executate necesita
nivelul 0 de privilegiu:
-LGDT (load global descriptor table),
-POPF se poate executa si de pe alt nivel dar
necesita nivelul 0 daca schimba campul IOPL

Incompatibilitati
Programele scrise pt modul real puteau rula teoretic in mod
protejat daca respectau urmatoarele conditii:
no segment arithmetic
no use of privileged instructions
no direct hardware access
no writing to code segment (which means that selfmodifying code is never allowed)
no executing data (that, together with segmentation,
provides some buffer overflow protection)
no assumption that segments overlap
In general nici un proram DOS nu respectata toate
conditiile enumerate anterior.

Curs VIII
Microprocesoare pe 32 biti
Microprocesorul 80386

Microprocesorul 80386
Procesor pe 32 biti derivat din 8086
a treia generatie de microprocesoare
Fabricat intre anii 1986 (lansat septembrie
1986 ) si 1994
Frecventa 16 40 MHz
Tehnologie 1,5 microni
Soket - 68 pini

Facilitati
Registri de uz general pe 32 biti
Adresare segmentata si protejata
Adresare paginata: impartirea memoriei in
pagini de lungime fixa de 4 kocteti, a fost
necesara deoarece prin utilizarea registrilor pe
32 biti lungimea maxima a unuiu segment poate
ajunge la 4Gocteti
Poate adresa direct 4 Gocteti de memorie 4
fizica
Poate adresa 64 Toctet memorie virtuala

Arhitectura procesorului 386

Moduri de operare
Modul real
Modul protejat
Modul 8086 virtual

Tipuri fundamentale de date

Adresarea segmentata a memoriei

Registrii microprocesorului
Registrii de uz general (32 biti), index,
baza si pointer
Registrii de segment (16 biti)
Registri de stare si instructiuni
Registri cache pt. descriptorul tabelei de
adresare
Registrii de comanda
Registri de test si depanare

Registrii de uz general
si registrii de index si pointer

Registrii de segment,
registrul de instructiuni si registrul de stare

Structura registrului de stare

Registrii de control

PE protected Enable
MP Coprocesor matematic prezent
EM Emulare coprocesor
TS Schimbare task
ET tip extensie coprocesor matematic (287 saun 387)
PG Page enable

Adresare complexa
bazat indexata cu factor de scala

Translatarea adresei

Translatarea segmentelor

Stuctura descriptorului de segment

Tabela descriptorilor de segment

Formatul unui selector

Indexul selecteaza una din cele 8192 din tabela


descriptorilor de segment

Translatarea paginii

Formatul intrarii in tabela de pagina

Mecanismul de adresare

Curs IX
Microprocesorul 80486

Microprocesorul 486
Al doilea microprocesor pe 32 biti din familia
Intel
Lansat in 1989
Tehnologie 0.8 microni, 1,2 milioane tranzistoare
Frecventa 16 la 100MHz
FSB 16-50MHZ
Arhitectura de tip pipeline
Cache unificat de date si instructiuni
Co-procesor matematic in virgula mobila inclus

Executia pipeline a instructionilor

Pipeline cu 5 faze clasic in procesoarele RISC


IF = Instruction Fetch, ID = Instruction Decode,
EX = Execute, MEM = Memory access, WB =
Register write back)

Avantaje si dezavantaje
Advantages of pipelining:
The cycle time of the processor is reduced, thus increasing
instruction bandwidth in most cases.
Advantages of not pipelining:
The processor executes only a single instruction at a time. This
prevents branch delays (in effect, every branch is delayed) and
problems with serial instructions being executed concurrently.
Consequently the design is simpler and cheaper to manufacture.
The instruction latency in a non-pipelined processor is slightly lower
than in a pipelined equivalent. This is due to the fact that extra flip
flops must be added to the data path of a pipelined processor.
A non-pipelined processor will have a stable instruction bandwidth.
The performance of a pipelined processor is much harder to predict
and may vary more widely between different programs.

Pipe-line cu 4 faze

Instructiune injectata pentru evitare hazard


LOAD A, R1
LOAD B, R2
ADD R1, R2, R3
STORE R3, C

LOAD next instruction

Memoria Cache
Este utilizata copierea unor locatii din
memoria principala (mare si lenta) intr-o
memorie rapida dar mica.
La 486 s-a introdus memoria cache
interna

Functionarea memoriei cache

Organizarea memoriei Cache

Rata de nelocalizare a informatiei in


cache in functie de marimea memoriei

Interfatarea procesorului cu
sistemul (FSB)
front side bus (FSB) sau system bus este o magistrala
bidirectionala fizica prin care se realizeaza transferul de informatii
intre unitatea centrala si dispozitivele externe cum sunt memoria
RAM, video, magistralele de extensie PCI sau ISA, hard disk,
Unele computere au nivelul 2 si 3 de memorie extern
The maximum theoretical bandwidth of the front side bus is
determined by the product of its width, its frequency and the number
of data transfers it performs per clock tick. For example, a 32-bit (4byte) wide FSB with a frequency of 100 MHz that performs 4
transfers/tick has a maximum bandwidth of 1600 MB/second. The
number of transfers per tick is dependent on the technology used,
with (for example) GTL+ offering 2 transfers/tick, EV6 4
transfers/tick, and AGTL+ 8 transfers/tick.

Arhitectura interna 80486

Structura interna a unui 80486DX2

Curs X
Tendinte actuale in sistemele cu
microprocesoare

Procesorele Pentium
Pentium lansat in 22 martie 1993, face parte din generatia a 5 de
microprocesoare, contine 3,1 miliaoane de tranzistoare, aproximativ
de 3 ori mai mult decat predentul 486
Tehnologie pe 0.8 microni, frecventa de 60 si 66MHz,
L1 cache intern 8kocteti pentru date si 8kocteti pentru program
Facilitatile MMX au fost adaugate in 1997
Procesor superscalar compatibil cu cu seria x86, ofera
performante superioare in comparatie cu precedentele procesoare
x86, dar modeste in comparatie cu procesoarele actuale si chiar cu
procesoarele RISC din perioada respectiva. (30% din tranzistoare
au fost utilizate pentru al face compatibil cu seriax 86)
Datorita performantelor modeste (calcule in virgula mobila) nu s-a
utilizat in computerele stintifice si statiile de lucru
Pentium III generatia a 6 de microprocesoare
Pentium 4 generatia a 7 de microprocesoare
http://arstechnica.com/articles/paedia/cpu/pentium-1.ars/4

Arhitectura interna
Arhitectura de tip pipeline cu 5 faze
O unitate de procesare intregi cu doua
canale (U si V)
Numai unitatea U este complet.

Cele doua canale nu sunt total


independente, existand numeroare
restrictii
Unitatea de virgula mobila - este
simpla oferind performante reduse in
comparatie cu procesoarele RISC
existente la vremea respectiva
Functionarea in paralel a unitatii de
virgula mobila si a celei de intregi este
supusa unor numeroase restrictii.

Fazele Pipe line


Extragerea instructiunilor
Decodare faza 1
Decodare faza 2
Executie
Stocare rezultate
Fata de procesoarele RISC si DSP din
perioada respectiva necesita doua stagii
de decodificare datorita instructiunilor
complexe.

Generatia a 6 de procesoare
Performante ridicate, sistemele cu procesoare din generatia a 6
devin competitive cu sistemele cu procesoare RISC
Procesoare din generatia a 6:
- Pentium Pro, 0.6/0.35microni, 5,5milioane tranzistori, 150-200MHz,
8kocteti date si 8kocteti instructiuni - L1 cache, 256/512kocteti L2
cache,1995.
- Pentium II: 0,35 microni, 7,5 milioane tranzistori, 233-300MHz,
16kocteti date si 16kocteti instructiuni - L1 cache, 512kocteti L2
cache in aceiasi capsula pe un cip suplimentar, facilitati MMX 1997
Pentium III: 0,25 microni, 9,5 milioane tranzistori, 450-500MHz,
16kocteti date si 16kocteti instructiuni - L1 cache, 512kocteti L2
cache, facilitati MMX si SSE, 1997
K5 de la AMD

Arhitectura procesoare de generatia a 6


Unitatea de executie cu arhitectura de tip
RISC
Unitatea de decodare si translatare a
instructiunilor x86 in microinstructiuni interne
decupleaza aducerea instructiunilor de
executie.
Unitatile de executie sunt alocate dinamic de
catre statia de rezervare. O microinstructiune
se executa atunci cand toate conditiile
pentru executie sunt indeplinite. Ordinea de
executie poate fi alta decat cea in care
sosesc instructiunile. Alocare dinamica
contribuie la incarcarea optima a unitatiilor
de executie spre deosebire de alocarea
statica realizata de unitatea de control de la
procesoarele din generatia a 5-a.
Bufferul de reordonare este utilizat pentru a
transmitera la iesire rezultatele in ordinea in
care au sosit instructiunile

Arhitectura procesoare de generatia a 6


Unitatea ROB poate urmarii 40 instructiuni in
diferite faze de executie. De asemenea are un
rol important in redenumirea registrilor.
Procesoarele x86 utilizeaza numai 8 registri
pentru intregi si 8 registri pentru virgula mobila
cea ce este mult prea putin pt. un procesor de
generatia a 6.
Statia de rezervare poate examina 20
instructiuni simultan

Caracteristici Pentium 4
Generatia a 7 de microprocesoare
4 transferuri pe ciclu de ceas pe magistrala externa
transfer pe 256 biti intre nivelul L2 si Data L1 cache
( la generatiile anterioare transferul era pe 64biti)
Nivelul L1 de cache de instructiuni a fost relocat dupa decodorul de
instructiuni, se regaseste sub denumirea de Trace Cache si contine 12
k micro-instructiuni ( 1 microinstructiune este pe 100 biti, deci 150k biti)
128 registrii interni (numai 40 registri pe Pentium II si III)
5 unitati de executie interne

Real Clock

Performance

Transfer Rate

100 MHz
133 MHz
200 MHz
266 MHz

400 MHz
533 MHz
800 MHz
1,066 MHz

3.2 GB/s
4.2 GB/s
6.4 GB/s
8.5 GB/s

http://www.hardwaresecrets.com/article/235/7
Inside Pentium 4 Architecture, Author: Gabriel Torres, October 18, 2005

Arhitectura Pentium 4

Organizare Pipeline la Pentium 4


20 faze pipeline prima versiune, 31 faze la ultima versiune (pentium
III doar 11 faze).
Aceasta a permis cresterea frecventei la valori foarte mari, totusi
executia unei instructiuni trece prin 20 sau 31 faze ( la ceias
frecventa Pentium III este mai rapid decat pentium IV)

TC Nxt IP: Trace cache next instruction pointer. Detecteaza urmatoarea


microinstructiune care trebuie executata din BTB (branch target buffer) (2
faze).
TC Fetch: Trace cache fetch. Incarca din TC microinstructiunea. (2 faze)
Drive: trimite microinstructiunea sprea a fi procesata alocatorului de resurse
si circuitelor de redenumirea registrilor.
Alloc: Allocate. Verifica ce resurse CPU vor fi necesare pentru procesare
(date din memorie si locatii de stocare).
Rename: Daca programul foloseste unul din registri standard x86, acesta va
fi redefinit in unul din cei 128 de registri interni existenti in Pentium 4.

Faze Pipe-line la Pentium 4

Que: Queue. Microinstructiunile sunt depuse in coada de instructiuni dupa


timpul instructiunii (intregi sau virgula mobila) They are held in the queue
until there is an open slot of the same type in the scheduler.
Sch: Schedule. Microinstructiunile sunt programate pentru executie in
functie de tip. Pana in aceasta faza microinstructiunile sunt in ordinea in
care apar in program. In aceasta etapa unitatea de planificare reordoneaza
executia instructuctiunilor astfel incat unitatile de executie sa fie incarcate la
capacitatea maxima. De exemplu daca o unitatea de virgula mobila este
libera, planificatorul va cauta o instructiune pentru a fi trimisa acesteia chiar
daca urmatoarea instructiune este cu intregi. Unitatea de planificare este
inima mecanismului in afara ordinii (out-of-order) al generatiei 7 de
microprocesoare Intel. (3 faze)
Disp: Dispatch. Trimite microinstructiunile unitatii corespunzatoare de
executie. (2 faze).
RF: Register file. Se incarca registri specificati de micro-instructiune. (2
faze)
Ex: Execute.Se executa microinstructiunea.
Flgs: Flags. Se actualizeaza registrul de indicatori (flags).
Br Ck: Branch check. Se verifica daca ramificatia urmata de program este
cea estimata de circuitul de predictie a ramificatiilor.
Drive: Trimite rezultatul verificarii spre BTB (branch target buffer) prezent
la intrarea in procesor

Memoria cache si Unitatea de


extragerea instructiunilor
Nivelul L2 de memorie cache poate fi de 256kB, 512kB,
1MB sau 2 MB in functie de model.
Nivelul L1 de memorie cache de date este de 8KB sau 16kB
la versiunile in tehnologie pe 90nm
Decodorul de instructiuni este plasat inaintea nivelului L1
cache de instructiuni (Trace cache) evitandu-se decodarea
repetata a instructiunilor dintr-o bucla; contine 12 k-microinstructiuni.
Memoria Trace Cache are propria unitate BTB cu 512
intrari. BTB este o memorie unde sunt listate toate
ramificatiile identificate in program
Unitatea de extragere a intructiunilor din memoeia L2 cache
are o unitate BTB cu 4096 intrari in timp ce la procesoarele
din generatia a 6-a aceasta avea 512 intrari si 256 intrari la
procesoarele din generatia a 5-a

Memoria cache si Unitate de


extragerea instructiunilor

Decodorul
Procesoarele din generatia 7 ca si cele din generatia 6
utilizeaza o arhitectura hibrida CISC/RISC
Procesoare pentru PC numai cu arhitectura RISC nu pot
fi create deoarece toate programele sunt scrise utilizand
instructiuni CISC compatibile x86
Micro-instructiunile RISC nu pot fi accesate direct de
catre programe.
Setul de micro-instructiuni RISC difera de la un procesor
la altul (sunt diferite de la pentium III la pentium 4 si fata
de Atlon)
Decodorul are rolul de a translata instructiunile CISC in
microinstructiuni RISC.
Se poate decoda o instructiune pe ciclu de ceas. Daca
instructiunea complexa se translateaza in mai mult de 4
microinstructiuni se utilizeaza o memorie ROM interna
care contine corespondenta dintre instructiunile
complexe si microinstructiuni

Alocatorul si redenumirea registrilor


Rezerva unul din cele 126 buffere de reordonare (ROB) Aceasta
permite executia microinstructiunilor in afara ordinii in timp ce
unitatea centrala va fi capabila sa le puna din nou in ordine utilizand
acest tabel.
Rezerva unul din cele 128 registri (RF) pentru stocarea rezultatului.
Daca microinstructiunea este de incarcare sau stocare se va incarca
unul din cele 48 buffere din memoria RAM sau se va rezerva unul
din cele 24 buffere de stocare.
Rezerva o intrare in memorie sau coada generala in functie de
microinstructiune.
Cei 8 registri pe 32 biti (EAX,EBX,ECX,EDX, EBP, ESI,EDI, ESP)
sunt redenumiti utilizand unul din cei 128 registri disponibili
permitand instructiunilor care se refera la ceias registri standard sa
ruleze in paralel. In plus se permite rularea microinstructiunilor in
afara ordinii.
Procesorul Pentium 4 contine in total 256 registrii, (128 pentru
intregi si 128 pentru virgula mobila)

Alocatorul / Redenumirea registrilor


Poate executa 3 micro-instructiuni pe o periada de ceas

Planificatorul
Sorteaza instructiunile dupa tipul lor si le
expediaza spre unitatile de executie
corespunzatoare prin 4 porturi.
Contine 4 subunitati: operatii cu memoria,
operatii simple, operatii simple in virgula
mobila, operatii lente in virgula mobila
Este partea centrala a mecanismului de
executie a instructiunilor in afara ordinii la
Pentium 4

Proramatorul schema bloc

Unitate de expediere si Executie

Portul 0 si 1 pot expedia 2 instructiuni pe ciclu in timp ce portul 2 si 3 o


instructiune pe ciclu

Facilitati MMX
Facilitati multimedia (MMX la procesoarele
Intel, 3Dnow la AMD) introdus in 1997
Reutilizeaza cei 8 registrii ai
coprocesorului matematic pentru operatii
vectoriale cu intregi pe 64, 32, 16 sau 8
biti (4 tipuri de date)
57 de instructiuni noi
Operatii aritmetice cu saturatie.

Asocierea dintre registrii FPU si MMX

Tipuri de date MMX


Permit implementarea
concepului SIMD (o
singura instructiune
multiple date

Facilitati SSE
Streaming SIMD Extensions
Aduga 8 registrii noi de 128 bits,permitand operatii
paralele asupra numerelor in virgula mobila in simpla
precizie 32 bits
Este similar facilitatilor MMx dar pentru virgula mobila
A fost introdus pe Pentium III
SSE2 introdus pe Pentium 4 adouga instructiuni
vectoriale in dubla precizie (64biti) si pentru intregi
8/16/32 bits
SSE3 adauga facilitati matematice orientate pe
procesarea digitala a semnalelor (DSP)
SSEE3 adauga operatii se inmultire in virgula fixa pe
16bits
SSE4 se adauga noi instructiuni printre care produs
scalar - prescrierile SSE4 vor fi implementate pe noile
procesoare dual core (Penryn' )

Generatia a 8 de procesoare
Athlon 64 primul procesor pe 64 bit compatibil
cu x86
Lansat in septembrie 2003, tehnologie pe
130nm
Athlon64x2 procesor dual core (lansat april
2005)
Prevazut cu capacitatea de a reduce tensiunea
de alimentare si frecventa cand nu este intens
utilizat ( se reduce astfel consumul de la 89 W
pana la 32W sau chiar 22W)

Sisteme cu microcontrolere
Curs XI

Microcontrolerul
Un microcontroller (MCU) este un minicomputer integrat
intr-un singur chip
Microcontrollerul integreaza toate periferice necesare
functionarii.
Majoritatea microcontrolerelor utilizate in prezent sunt
inglobate (embedded) in alte sisteme sau produse cum
sunt: telefoanele mobile, ceasuri, automobile,
infracstructura, echipamente industriale, masini de spalat,
cuptoare cu microunde.
Sistemele cu microcontrolere in general nu dispun de
sistemul de intrare iesire caracteristic computerelor
(tastatura, monitor, imprimanta, disc). In schimb
microcontrolerele pot controla motoare, relee, si pot citi
starea unor contacte sau pozitia unor potentiametere.
Uneori singurile iesiri destinate operatorilor umani pot fi
simple leduri care pot lipsii si ele ca urmare a unor
consrangeri restrictive de pret sau consum de energie.

Integrare pe scara larga


Unele microcontrolere au integrata intreaga
memoria RAM si EPROM sau Flesh si nu au
magistrale de date si adresa. In acest caz este
posibila reducerea numarului de pini, reducand
asfel dimensiunile capsulei si costul. (PIC,
Athmel)
Iesirile/Intrarile microcontrolerelor pot fi
organizate pe porturi. Acestea pot fi configurate
in magistale de date si adrese pentru accesarea
unei memorii externe (Familia 8051, 80C166,
C167).

Unitati componente
Unitatea de procesare centrala (central processing unit)
de la unitati foarte simple pe 4 sau 8 biti pana la unitati
complexe pe 32 sau 64 biti.
Memorie RAM pentru stocare date
Memorie ROM, EPROM, EEPROM or Flash memory
pentru stocare profram si date constante
Dispozitive periferice ca: timers si watchdog , unitati
de comparare capturare, unitati de PWM
Interfata de intrare-iesire
Port serial universal (UART)
Alte comunicatii seriale ca: IC, Serial Peripheral
Interface and Controller Area Network pentru
interconectarea
Oscilator de tact pilotat cu cristal de cuartz.
Convertor analog digital
Convertor digital analog

UART universal asynchronous


receiver/transmitter
Comunicatie seriala asincrona universal se caracterizeaza
prin transmiterea bitilor de start si stop.
Standarde utilizate in comunicatia seriala: RS-232 ( contine
minim trei semnale: emisie, receptie, masa); RS-422
(transmiterea diferentiala a semnalelor) RS-485 ( permite
conectare si transferul de date intre mai multe dispozitive
utilizand doua conductoare
Unele dispozitive au capacitatea de a transmite/receptiona
sincrn (USART)
Nivelul semnalului pentru
standardul RS-485

Serial Peripheral Interface Bus


Interfata seriala
sincrona pentru
periferice permite
un master si mai
multe periferice

Conectare inlantuita a
dispozitivelor slave utilizand
o singura linie de selectie

Controller Area Network (CAN)

Este o transmisie seriala difuzata spre toate nodurile din retea.


Toate nodurile din retea pot asculta transmisia
Numai nodurile caraora le-a fost destinata informatio o vor utiliza
La nivel de semnal fizic este similara transmisiei RS 485 transmisie diferentiala pe doua conductoare. Imunitatea la zgomot
poate fi crescuta prin rasucirea celor doua conductoare.
Pachetele de date sunt scurte (0 la 8 octeti) si sunt protejate printrun cod redundant de 15 bit (CRC-15).
A fost dezvoltat in 1980 de firma BOSCH pentru interconectarea
microcontrolerelor si perifericelor in industria automobileleor.
Viteza de transfer de 1Mbit/s pt. o lungime totala a retelei de 40m si
125kbits/s pt. 500m.
Mecanism avansat pentru detectia coliziunilor.

Microcontrollerul 8051
Lansat de Intel in 1980 (MCS 51)
Foarte popular in anii 1980-1990, peste 20 de
producatori independenti
Arhitectura de tip Harvard
Frecventa initiala 12 MHz cu 12 cicli/ciclu masina rezulta
1milion cicli masina/s
Majoritatea instructiunilor se executa intr-un ciclu masina
La ora actuala sunt disponibile versiuni la 100 -150MHz
Procesoare derivate: 8048 controlerul de tastatura

Caracteristicile MCS 51
It provides many functions (CPU, RAM, ROM, I/O, interrupt logic,
timer, etc.) in a single package
8-bit data bus - It can access 8 bits of data in one operation (hence it
is an 8-bit microprocessor)
16-bit address bus - It can access 216 memory locations - 64 kB
each of RAM and ROM
On-chip RAM - 128 bytes ("Data Memory")
On-chip ROM - 4 kB ("Program Memory")
Four byte bi-directional input/output port
UART (serial port)
Two 16-bit timers
Two-level interrupt priority
Power saving mode

Microcontrolere pe 16bit
Famialia 80C166 si succesorul C167
Au fost derivate din familia 80C51

C167CS - Schema bloc

Conceptul CPU

Curs XII
Microcontrolere pe 16 bit
C167

C167CS Derivatives
16-Bit Single-Chip Microcontroller
Users Manual, V2.0, July 2000
Infineon Technologies AG 2000.

Microcontrolere pe 16bit
Famialia 80C166 si succesorul C167
Au fost derivate din familia 80C51

C167CS - Schema bloc

Conceptul CPU

Executia Pipe-line

Organizarea Intreruperilor

Prioritatea intreruperilor

Timpul de raspuns la intreruperi

Timpul scurs de la setarea Ir-flag si momendul aducerii


primei instructiuni din rutina de tratarea intreruperii

Timpul de raspuns la intreruperi


PEC

Unitatea de comparare capturare

Registri utilizati de unitatea de


comparare capturare

Operare timer T0 si T7

Operare Timer T1 si T8

Control timers

Calculul frecventei de intrare si a


perioadei

Rezolutia si periada maxima

Modul capturare

Moduri de comparare
Modul 0 genereaza numai intrerupere
Daca acest mod este programat pt. Reg 8-15
sau 24-31 atunci se va utiliza modul de
comparare dublu registru
Modul 1 modifica starea pinului de iesire daca
acesta este asociat unitati ca pin de iesire.
Mod 2 genereaza o singura intrerupere pe o
periada
Mod 3 modifica starea unui sinngur pin de
iesire pe periada.

Comparare in mod 0 si 1

Semnalele generate in mod 0 si 1


de comparare

Semnale generate in mod 2 si 3 de


comparare

Compararea dublu registru

Semnale comparare dublu registru

Unitate de PWM

Registri utilizati de unitatea PWM

Moduri PWM

Mod 0 aliniere PWM pe fronturi


Mod 1 centrare PWM
Modul tren de impulsuri
Modul un singur impuls

PWM mod 0
PWM_PeriodMode0 = [PPx] + 1

PWM mod 1
PWM_PeriodMode1 = 2 * ([PPx] + 1)

Tren de impulsuri

Modul un singur impuls

Asignarea pinilor de iesire pt.


unitatea PWM

Analog digital converter


Curs XIII

Definitie
An analog-to-digital converter
(abbreviated ADC, A/D or A to D) is an
electronic circuit that converts continuous
signals to discrete digital numbers. The
reverse operation is performed by a
digital-to-analog converter (DAC).

Rezolutia
The resolution of the converter indicates the number of discrete
values it can produce over the range of voltage values. The values
are usually stored electronically in binary form, so the resolution is
usually expressed in bits. In consequence, the number of discrete
values available, or "levels", is usually a power of two. For example,
an ADC with a resolution of 8 bits can encode an analog input to
one in 256 different levels, since 28 = 256. The values are usually a
range of from 0 to 255 or from -128 to 127, for example, depending
on the application.
Resolution can also be defined electrically, and expressed in volts.
The voltage resolution of an ADC is equal to its overall voltage
measurement range divided by the number of discrete intervals as in
the formula:

Rezolutia
Example 1
Full scale measurement range = 0 to 10 volts
ADC resolution is 12 bits: 212 = 4096 quantization levels
ADC voltage resolution is: (10-0)/(4096-1) = 0.00244 volts = 2.44 mV

Example 2
Full scale measurement range = -10 to +10 volts
ADC resolution is 14 bits: 214 = 16384 quantization levels
ADC voltage resolution is: (10-(-10))/(16384-1) = 20/16383 = 0.00122
volts = 1.22 mV

In practice, the resolution of the converter is limited by the signal-tonoise ratio of the signal in question. If there is too much noise
present in the analog input, it will be impossible to accurately
resolve beyond a certain number of bits of resolution, the "effective
number of bits" (ENOB). While the ADC will produce a result, the
result is not accurate, since its lower bits are simply measuring
noise. The signal-to-noise ratio should be around 6 dB per bit of
resolution required.

Precizia
Erori de quantizare

Erori de neliniaritate
-integrale
-diferentiale

Erori de apertura

NyquistShannon sampling
theorem

Spectru semnalului esantionat

Alierea frecventelor

Aplicatii cu microcontrolere
Sisteme cu cost redus
Curs 14

Sisteme cu cost redus


Microcontrolere sau DSP la care intreaga
memorie disponibila este integrata
Limitarea numarului de pini (nu exista
magistrala externa de date si adrese)
reduce costul total.
Producatori: Microchip, Atmel Texas
Instruments, etc

Controlul unui motor de curent


continuu

Controlul unui motor BLDC

Utilizeaza:
-3 senzori Hall de pozitie,
-1 senzor de curent

Controlul unui motor pas cu pas

Contor digital de energie electrica

Contor digital de energie termica