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.
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
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
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
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.
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
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
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
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
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 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 in codul
semn-marime
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
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
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
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
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)
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 Harvard
Multiplicarea frecventei
Interconectarea microprocesorului,
memoriei si perifericelor
Placa de baza
Magistrala ISA
Magistrala EISA
Arhitectura microprocesoarelor
Schema bloc:
a unui microprocesor
simplu
Curs V
Microprocesorul 8086
Microprocesorul 8086
Arhitectura microprocesorului
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
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.
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
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
Tipuri de memorie
semiconductoare
Memorie nevolatila
ne-semiconductoare
Discul magnetic
Fix (Hard-disk)
Mobil (Floppy disk)
Banda magnetica
Discul Optic
CD-ROM
DVD
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
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 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
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
Curs VII
Adresarea protejata a memoriei
Microprocesorul 80286
Microprocesorul 80286
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
Moduri de operare
Modul real
Modul protejat
Modul 8086 virtual
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
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
Translatarea paginii
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
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
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
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.
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.
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
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
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
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
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.
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.
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
Conectare inlantuita a
dispozitivelor slave utilizand
o singura linie de selectie
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
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
Conceptul CPU
Executia Pipe-line
Organizarea Intreruperilor
Prioritatea intreruperilor
Operare timer T0 si T7
Operare Timer T1 si T8
Control timers
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
Unitate de PWM
Moduri PWM
PWM mod 0
PWM_PeriodMode0 = [PPx] + 1
PWM mod 1
PWM_PeriodMode1 = 2 * ([PPx] + 1)
Tren de impulsuri
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
Alierea frecventelor
Aplicatii cu microcontrolere
Sisteme cu cost redus
Curs 14
Utilizeaza:
-3 senzori Hall de pozitie,
-1 senzor de curent