Sunteți pe pagina 1din 205

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.

com

SISTEME CU
MICROPROCESOARE

Profesor dr.ing. Liliana Dobrica


Universitatea POLITEHNICA Bucuresti
Facultatea Automatica si Calculatoare

Sisteme cu Microprocesoare, 2015-2016, sem. II


1

Contact

Curs: Profesor dr.ing. : Liliana DOBRICA


liliana.dobrica@aii.pub.ro
Birou: ED415

Laborator: ED312

Sisteme cu Microprocesoare, 2015-2016, sem. II


2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Obiectivele cursului

Obiective generale:

Obinerea de experien n abordarea subiectelor tehnice complexe i


capacitatea de a asimila informaii tehnice detaliate ntr-un interval de timp
rezonabil de scurt;

Dezvoltarea abilitii de a combina creativitatea cu abordarea metodic a


proiectrii hardware i software pentru a minimiza numrul de erori;

Dezvoltarea ateniei ctre detalii la proiectare;

Obinerea de experien n aplicarea metodelor de rezolvare a problemelor


pentru a gsi soluii ce satisfac un set de constrngeri, debugging
hardware/software.

Sisteme cu Microprocesoare, 2015-2016, sem. II


3

Obiectivele cursului

Obiective specifice:

Prezentarea arhitecturii generale a unui sistem bazat pe un circuit de tip


microprocesor.

Prezentarea familiei de microprocesoare Intel x86 din punct de vedere


hardware i al programrii n limbaj de asamblare.

Prezentarea circuitelor suport pentru familia Intel x86.

Prezentarea modalitii de interfaare cu exteriorul a sistemelor bazate


pe circuite Intel x86.

Sisteme cu Microprocesoare, 2015-2016, sem. II


4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Obiective aplicatii

Obiective laborator:

nelegerea funcionrii interne a unui microprocesor din familia Intel


x86.

nelegerea modului de programare n limbaj de asamblare a unui


microprocesor din familia Intel x86 (16/32 bii).

Proiectarea i realizarea unui periferic USB pentru un sistem Intel x86.

Sisteme cu Microprocesoare, 2015-2016, sem. II


5

Evaluarea cunotinelor
Structura cursului:
14 spt. x 3 ore/spt. = 42 ore curs
14 spt. x 2 ore/spt. = 28 ore aplicaii

Metoda de evaluare a cunotinelor: evaluarea continu

Evaluarea activitii la curs: 1 examen scris (sesiunea de var) +


prezenta la curs

Evaluarea activitii aplicative: activitati de laborator + 1 proiect de


semestru

Sisteme cu Microprocesoare, 2015-2016, sem. II


6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Evaluarea cunotinelor
Examen:
Sesiunea de var:
pondere 50 % din nota final,
condiie de promovare: minimum 5

Aplicaii: sala ED312


pondere 50 % din nota final
Laborator: tema de laborator predare saptamana 8
pondere 20% (prezenta la laborator: 25%; penalizare pentru
intarziere la predare)

Proiect: tema de proiect predare in saptamana 14.


pondere 30%
condiie de intrare in examen: minimum 50% din fiecare componenta

Sisteme cu Microprocesoare, 2015-2016, sem. II


7

Cuprins curs

1. Introducere. Evoluia microprocesoarelor.


2. Elemente de baza privind sistemele cu microprocesoare: arhitectura interna
a microprocesoarelor; arhitectura sistemelor cu microprocesoare; memoria
si microprocesorul; elemente ale arhitecturii I/O; modelul de programare.
3. Moduri de operare ale microprocesoarelor: modul real si modul protejat
descriere, translatarea adreselor, setul de instructiuni.
4. Gestiunea memoriei: segmentare si paginare; memorie fizica si memorie
virtuala; procesul de translatare a adreselor.
5. Multitasking si protectia memoriei: modelul de protectie; accesul la cod si
date prin modelul de protectie; task; segmentul de stare a taskului;
comutarea taskurilor;
6. Sistemul de intreruperi. Controlerul de intreruperi 8259A
7. Sistemul de memorie. Ierarhizarea memoriei. Memoria cache.
8. Sistemul de intrari/iesiri. Circuite suport 8255, 8279, 8254.
9. Pentium si tendinte de dezvoltare in domeniu

Sisteme cu Microprocesoare, 2015-2016, sem. II


8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Bibliografie curs

Barry B. Brey - Intel microprocessors: 8086/8088, 80186/80188, 80286,


80386, 80486, Pentium, Pentium Pro Processors, Pentium II, Pentium 4, and
Core2 with 64-bit Extensions: Architecture, Programming, and Interfacing;
Eighth Edition, Pearson Education International

Sisteme cu Microprocesoare, 2015-2016, sem. II


9

Bibliografie curs

Walter Triebel, The 80386DX Microprocessor - Hardware, Software and


Interfacing ;

David Patterson, John Hennessy, Computer Organization and Design The


Hardware/Software Interface, Ed. Morgan Kaufmann;

www.intel.com

Alte materiale vor fi recomandate pe parcurs.

Sisteme cu Microprocesoare, 2015-2016, sem. II


10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

INTRODUCERE

Legea lui Moore


Gordon Moore (INTEL) 1965:
numrul de tranzistoare de pe un chip se va dubla la
fiecare doi ani

Legea lui Moore a alimentat o revoluie tehnologic, pe


msur ce Intel a crescut exponenial numrul de tranzistoare
integrate n procesoarele sale pentru a spori performanele i a
eficientiza consumul de energie.

Sisteme cu Microprocesoare, 2015-2016, sem. II


11

INTRODUCERE
Legea lui Moore
Gordon Moore (INTEL) 1965:
numrul de tranzistoare de pe
un chip se va dubla la fiecare
doi ani
Legea lui Moore a alimentat o
revoluie tehnologic Intel a
crescut aproape exponenial
numrul de tranzistoare
integrate n procesoarele sale
pentru a spori performanele
i a eficientiza consumul de
energie.

Sisteme cu Microprocesoare, 2015-2016, sem. II


12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

INTRODUCERE

Evolutia procesoarelor Intel


Intel Mehalem-EX, 2009
Intel 8088, 1978 8 cores, 24MB cache
Intel 4004, 1971 1 core, no cache 2.3miliarde transistori
1 core, no cache 29mii transistori
23mii transistori

Sisteme cu Microprocesoare, 2015-2016, sem. II


13

INTRODUCERE

Evolutia procesoarelor Intel

In ultimii 20 de ani s-au imbunatatit de 1000 de ori


performantele microprocesoarelor

Densitatea de tranzistori, viteza de executie,


energia consumata;
Arhitectura interna;
Tehnicile de ierarhizare a memoriei.

Sisteme cu Microprocesoare, 2015-2016, sem. II


14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

INTRODUCERE

Evolutia microprocesoarelor Intel


Microprocesoare pe 4 biti
Microprocesoare pe 8 biti
Microprocesoare pe 16 biti
Microprocesoare pe 32 de biti
Generatia Pentium
Microprocesoare Multiple Core

Sisteme cu Microprocesoare, 2015-2016, sem. II


15

Evolutia microprocesoarelor Intel

4004 Microprocesor pe 4 biti.


Primul microprocesor a fost introdus in 1971.
Latimea magistralei de date: 4 biti; Memorie adresabila: 4096 x 4 biti.
Setul de instructiuni: 45 instructiuni - operatii aritmetice.
Aplicatii: jocuri video si sisteme de control.
Probleme: viteza, dimensiunea datelor, capacitatea memoriei.

8008 Microprocesor pe 8 biti.


Primul microprocesor pe 8 biti, (1972).
Latimea magistralei de date: 8 biti; Memoria adresabila: 16K x 8 biti.
Setul de instructiuni: 48 instructiuni.
Aplicatiile: manipulari de date.
Limitari: viteza redusa, capacitatea mica a memoriei, set de instructiuni limitat.

Sisteme cu Microprocesoare, 2015-2016, sem. II


16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Evolutia microprocesoarelor Intel

8080 - al doilea microprocesor pe 8 biti (1974)


Latimea magistralei de date: 8 biti; Memoria adresabila: 64K x 8 biti.
Setul de instructiuni a crescut in numar si performanta. Instructiunile
erau executate de 10 ori mai rapid decat 8008 (e.g. 2 microsecs pentru
o adunare).
Aplicatiile: similare microprocesoarelor precedente.

8085
Apare in 1977 si contine un generator de ceas, un controler intern al
sistemului.
Latimea magistralei de date: 8 biti;
Setul de instructiuni a crescut in performanta (e.g. adunarea in 1.3
microsecs.).
Aplicatiile: similare microprocesoarelor precedente.

Sisteme cu Microprocesoare, 2015-2016, sem. II


17

Evolutia microprocesoarelor Intel


8086 Primul microprocesor pe 16 biti (1978).

Latimea magistralei de date: 16 biti;


Memoria adresabila: 1MByte;
Setul de instructiuni : se extinde cu instructiuni de inmultire si impartire;
Numarul si complexitatea instructiunilor reprezinta elementele care incadreaza acest
microprocesor in categoria CISC - complex instruction set computers.
Intel extinde familia 8086 cu introducerea 80186 si 80188, si adauga coprocesorul
8087 (procesorul matematic pentru operatii in virgula mobila).
8088 a fost utilizat de IBM Corporation in PC-uri (calculatoare personale). Primele
aplicatii ale PC-urilor erau masini de procesare a cuvintelor sau mini-calculatoare.

Limitari pentru bazele mari de date.

Sisteme cu Microprocesoare, 2015-2016, sem. II


18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Evolutia microprocesoarelor Intel

80286
Apare in 1982.
Memoria adresabila: 16 Mbyte.
Intel 80287 coprocesorul matematic.
Operare in modul protejat

Sisteme cu Microprocesoare, 2015-2016, sem. II


19

Evolutia microprocesoarelor Intel

80386 (SX/DX)- Primul microprocesor pe 32-biti.


Procesorul opera la frecvente de 16-33 MHz pe magistrala sistemului si
putea fi acompaniat de 80387 FPU.

80486 (SX/DX2/DX4)
Unitatea Centrala de Prelucrare (UCP) pe 32 biti.
8KB de L1 cache si FPU integrat in chip.

80486DX

Co-Processor
8K L1 33MHz
memory
CPU cache

Sisteme cu Microprocesoare, 2015-2016, sem. II


20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Generatia Pentium

Modificari mai importante:

Procesul de decodificare si de executie a instructiunilor;


Suport pentru memorie mai mare de 4 GB;
Cresterea in performanta si marime pentru memoria cache
L1 si L2;
Adaugarea unui nou nivel de memorie cache;
Cresterea vitezei de operare interna sau externa.

Sisteme cu Microprocesoare, 2015-2016, sem. II


21

Generatia Pentium
Pentium: (1993)
Initial numit P5 sau 586
Microprocesor pe 32-biti, latimea magistralei de date de 64-biti
32-biti magistrala de adrese - memorie adresabila: 4GB.
Frecvente de ceas de 60, 66, 90 MHz.
Tehnologie superscalara.
Aplicatii: realitate virtuala; video comparabile cu televiziunea comerciala

Pentium

Co-Processor
16K L1 66MHz
memory
Int CPU1 cache

Int CPU2

Sisteme cu Microprocesoare, 2015-2016, sem. II


22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

64 bit Data Bus 32 bit Address Bus Control Bus

Introduction Bus Interface Unit


Diagrama Block a Pentium

Principalele caracteristici I-Cache (8KB) TLB D-Cache (8KB) TLB


- Arhitectura superscalara
-U,V pipelines 5 etape (five stages)
Brach Target Buffer Clock
-FPU 8 etape (eight stages) Multiplier
-2 x 32-bytes prefetch buffer permite suprapunerea
executiilor instructiunilor in pipelines Prefetch Buffer
-predictia dinamica a ramnificatiilor (Branch target buffer)
creste viteza de executie a programelor prin
anticiparea ramurilor si garanteaza disponibilitatea Fetch and Decode Unit Microcode
acelor instructiuni in cache. ROM
- Cache pentru instructiuni (write-through SRAM), cache
pentru date (write-back SRAM) de 8 Kbyte capacitate
fiecare.
- 64 bit magistrala de date; 32 bit magistrala de adrese Dual Pipeline
Execution Unit
- Capacitate de procesare duala
- APIC (controlerul de intreruperi) in chip.
Control Unit
U-Pipeline V-Pipeline
Floating Point
1997 Pentium MMX Unit
- Include o unitate MMX (extensie multi-media): 8 noi ALU ALU
registre 64-biti + 57 instructiuni MMX cu 4 noi tipuri de
date.
Limitarea utilizarii lipsa unui limbaj de nivel inalt ca Advanced
suport pentru aceste instructiuni. Registers Programmable
Interrupt
Controller

Sisteme cu Microprocesoare, 2015-2016, sem. II


23

Generatia Pentium

Pentium Pro (1995)


Microprocesor optimizat pentru instructiuni pe 32-biti; 64-biti
magistrala de date; configurabil la 36-biti magistrala de adrese.
Memorie principala configurabila: 4GB sau 64GB.
Aplicatii: servere de date

Pentium Pro

Co-Processor
66MHz
memory
Int CPU1
16K 256K
Int CPU2 L1 L2
cache cache
Int CPU3

Sisteme cu Microprocesoare, 2015-2016, sem. II


24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Generatia Pentium
Pentium PRO

Diagrama bloc
functionala a
Pentium PRO

Sisteme cu Microprocesoare, 2015-2016, sem. II


25

Generatia Pentium

Pentium PRO
Executia out-of-order a instructiunilor Executie dinamica ce
realizeaza urmatoarele concepte:

predictia ramurilor de program,


analiza dinamica a fluxului de date,
executie speculativa

Sisteme cu Microprocesoare, 2015-2016, sem. II


26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Generatia Pentium
Pentium PRO

Predictia ramurilor de program.

Permite procesorului sa decodifice instructiunile anticipat


inaintea ramurilor de program astfel incat pipeline-ul de
instructiuni sa se mentina plin.
Unitatea de extragere/decodificare a instructiunilor
foloseste un algoritm optimizat de predictie. Astfel directia
fluxului de instructiuni este anticipata prin nivelurile
multiple ale ramurilor sau apelurile de proceduri si
reveniri.

Sisteme cu Microprocesoare, 2015-2016, sem. II


27

Generatia Pentium
Pentium PRO

Analiza dinamica a fluxului de date implica o analiza in timp real a


fluxului de date din procesor pentru a determina dependente dintre
date si registre si pentru a detecta oportunitati pentru executia out-of
order.
Unitatea de executie planificator monitorizeaza simultan mai
multe instructiuni si coordoneaza executia acelor instructiuni
intr-o ordine astfel incat sa utilizeze in mod optim multiplele
unitati specifice de executie ale procesorului. In acelasi timp se
pastreaza integritatea datelor asupra carora se opereaza.
Aceasta executie mentine ocupate unitatile de executie chiar si
atunci cand apar evenimente de tipul lipsa din cache sau
dependente de date intre instructiuni.

Sisteme cu Microprocesoare, 2015-2016, sem. II


28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Generatia Pentium
Pentium PRO

Executie Speculativa
Se refera la abilitatea procesorului de a executa instructiunile anticipat,
inaintea contorului program.
Totusi rezultatele sunt oferite/predate in ordinea originala a fluxului de
instructiuni.

Sisteme cu Microprocesoare, 2015-2016, sem. II


29

Generatia Pentium

Pentium II (1997)
O noua directie pentru Intel - small circuit board;
Microprocesor pe 32-biti (Pentium PRO cu extensie MMX); magistrala de date de
64-biti si magistrala de adrese de 36-biti.
Memoria adresabila 64GB.

Pentium II

Int CPU1
133MHz
Int CPU2 66MHz
32K 512K memory
Int CPU3 L1 L2
cache cache
Co-Processor

Module (small PCB)

Sisteme cu Microprocesoare, 2015-2016, sem. II


30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Generatia Pentium

Pentium III: (1999)


Microprocesor pe 32-biti; magistrala de date de 64-biti si magistrala de
adrese de 36-biti.
Memorie principala de 64GB.
Memorie cache nivel L1, separat pentru date si instructiuni 32KB (16KB
fiecare).
Pentium III

Co-Processor
133MHz
memory
Int CPU1
16K 256K
Int CPU2 L1 L2
cache cache
Int CPU3

Sisteme cu Microprocesoare, 2015-2016, sem. II


31

Pentium
III

Sisteme cu Microprocesoare, 2015-2016, sem. II


32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Generatia Pentium

Pentium IV si Core2: (2002)

2MB L3 cache (editie speciala) pentru seturi mari de date ce pot fi memorate in aceasta
memorie a procesorului.
512KB L2 cache;
L1 data cache (8 KB); L1 instruction cache insotit de Execution Trace Cache
400 MHz system bus (quad pumping a 100MHz bus) (3.2 GB/sec).
Specializat pentru aplicatii: de streaming video, jocuri and DVD apps (144 noi instructiuni
SIMD).
Support for 200/266MHz DDR (Double Data Rate) SDRAM (Synchronous DRAM).

Sisteme cu Microprocesoare, 2015-2016, sem. II


33

Introduction

Sisteme cu Microprocesoare, 2015-2016, sem. II


34

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesoare 64-biti si multiple Core

Noi versiuni de microprocesoare:


Abilitatea de a adresa mai multa memorie - Microprocesoare cu 40 pini
de adrese ce pot adresa 1 T (terabyte)
Efectuarea operatiilor arimetice cu intregi pe 64-biti;
Itanium microprocesor cu o arhitectura interna EPIC (Explicitly
Parallel Instruction Computing) pe 64 biti cu un nivel ridicat de
paralelism.

Sisteme cu Microprocesoare, 2015-2016, sem. II


35

Viitorul microprocesoarelor!

Paralelism pe scara-larga prelucrare paralela fara a necesita


scrierea vreunui program special. Core-uri multiple si eterogene
specifice aplicatiilor.
Eficienta in orchestrarea datelor pentru minimizarea mutarii
acestora bazata pe ierarhizarea memoriei si aplicarea principiului
localitatii datelor.
Noi arhitecturi de microprocesoare
Memorii rapide si de capacitati mai mari (memorii SRAM)
Memorii flash cu viteza de scriere comparabila ce cea a hard-
diskului.

Articol: S. Borkar, A. Chien, The future of microprocessors, CACM,


vol. 54, no.5, 2011.

Sisteme cu Microprocesoare, 2015-2016, sem. II


36

18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Sisteme cu microprocesoare elemente de baza


Arhitectura microprocesorului
Arhitectura sistemului
Memoria si microprocesorul
Arhitectura subsistemului de Intrari/Iesiri

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 1

Caracteristici de baza ale microprocesorului

Intelegerea caracteristicilor de baza ale microprocesorului


este necesara pentru a-l utiliza in mod eficient prin:
programare
interfatare hardware.
Microprocesoarele extrag instructiunile din memorie.
Au o structura interna formata din mai multe unitati de
procesare (UP). Fiecare unitate efectueaza un anumit
task.
Microprocesoarele moderne proceseaza simultan mai
multe instructiuni in etape de executie diferite. Aceasta
abilitate se numeste pipelining.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Caracteristici de baza ale microprocesorului

Operarea tipica a unui microprocesor pe 8 biti (ex. 8080) este


urmatoarea:

Problema: Starea magistralei este Idle in timpul decodificarii.

Solutie: Accelerarea executiei globale a unui program prin: Pre-extragerea urmatoarei


instructiuni in timp ce se executa instructiunea curenta.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 3

Structura interna a microprocesorului 80486

80486 contine mai multe unitati interne.


Fiecare unitate este proiectata sa lucreze ca
intr-o conducta cu instructiuni in diferite etape
de executie.
Unitatea de interfata cu magistrala (Bus
interface unit (BIU)) este responsabila cu
extragerea instructiunilor si cu citirea/ scrierea AU
datelor intre procesor si memorie.
8KB memorie cache pastreaza cele mai
recente date si instructiuni.
Coada de instructiuni cu 32 octeti de
instructiuni neexecutate este numita
prefetcher (queue).
Decodificatorul de instructiuni (Instruction
decoder (IU) ) decodifica instructiunile pentru
a fi utilizate de EUs .
Unitatile de executie (execution unit (EU))
sunt: floating point unit (FPU), control and
protection test unit, paging unit, segmentation
unit, arithmetic and logic unit (ALU).
Unitatea de adrese (Address Unit (AU))
genereaza adresele fizice.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Structura interna a microprocesorului 80486

Secventa de evenimente pentru 80486 este:

De remarcat starea magistralei.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 5

Arhitectura sistemului

Comunicatia dintre sistem si


microprocesor are loc prin
trei magistrale: de adrese,
de date si de control.
Magistrala este o colectie de
semnale (fire) care
interconecteaza
componentele.
Orice sistem cu
microprocesor are intrari
pentru alimentarea cu
tensiune si pentru semnalul
de ceas (clock).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Arhitectura Sistemului

Alimentarea cu tensiune si semnalul de ceas (intrari).


Alimentarea cu tensiune este necesara tuturor echipamentelor active
(i.e. tranzistoare, porti logice, bistabili, microprocesoare, etc.).
De obicei, microprocesorul are nevoie de 0 Volti (legatura la masa)
si 5 Volti. Unele microprocesoare recente pot lucra cu surse de 3.3
V (Pentium Pro 1997); 1.75V (Pentium 4 Willamette 2001); 1.25V
(Pentium 4 Prescott 2004); 1.1V (Core 2 Ketsfield 2007) realizand
astfel economie de energie si reducerea pierderilor de caldura.
Semnalul de ceas (clock) este cel care guverneaza viteza de operare a
microprocesorului si este semnalul de ceas al tuturor circuitelor
secventiale din sistem. Acest semnal determina cand au loc evenimente
in hardware. Ciclurile de ceas sunt intervale de timp discrete. In
proiectare se foloseste, fie lungimea unei perioade de ceas (ex. 250
picosecunde), fie frecventa de ceas (ex. 4GHz) care este inversul unei
perioade de ceas.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 7

Arhitectura Sistemului

Magistrala de adrese (iesiri din microprocesor).


Transmite o adresa catre sistem, adresa de memorie catre
memorie sau adresa portului de intrare/iesire catre sistemul de
intrari/iesiri.
Specifica o locatie de memorie sau un port I/O.
Latimea magistralei de adrese determina ct memorie poate fi
adresata de un microprocesor.
N linii de adresa pot adresa pana la 2N locatii fizice. ex.
adresa pe 16-biti: 216= 64 KBytes, adresa pe 32-biti: 232= 4
GBytes. O adresa I/O poate avea o valoare intre 0000H si
FFFFH.
Adresa de memorie depinde de microprocesor astfel:20-biti
(8086/8088); 24-biti (80286/80386SX); 25-biti (80386SL/SLC/EX);
32-biti (80386DX/80486/Pentium); 36-biti (Pentium Pro/II/III)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Arhitectura Sistemului

Magistrala de adrese (iesiri din microprocesor)


Lungimea adresei logice a unui microprocesor
poate fi mai mare decat cea a adresei fizice.
Unele microprocesoare folosesc aceleasi linii de
adresa pentru operatii cu memoria sau I/O, altele
au un pin M/IO\ pentru a distinge intre operatiile
cu memoria sau I/O.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 9

Arhitectura Sistemului

Magistrala de date
Transfera date intre microprocesor si memorie sau sistemul I/O.
Latimea magistralei de date determina ci octeti sunt transferati la
un moment dat intre microprocesor si memorie.
8-biti (8088); 16-biti (8086/80286/80386SX/SL/SLC/EX); 32-biti
(80386DX/80486/Pentium); 64-biti (Pentium/Pro/II/III)
Latimea magistralei de date defineste numarul de biti pentru un
microprocesor. Magistala de date cu latimea de 8-biti este data de
un microprocesor pe 8-biti, iar magistala de date cu latimea de 32-
biti este data de un microprocesor pe 32-biti.
Multiplexarea in timp se poate folosi pentru a reduce numarul de pini
ai unui microprocesor.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Arhitectura Sistemului

Magistrala de control
Ofera semnalele de control ce pot cauza efectuarea unei
operatii de citire sau scriere in memorie sau I/O.
Majoritatea sistemelor au cel putin 4 semnale de control in
aceasta magistrala (active pe 0).
MRDC\ (Memory ReaD Control)
MWRC\,
IORC\ (I/O Read Control),
IOWC\.
Latimile magistralelor de date si adrese variaza de la o versiune la
alta de microprocesor. In general, cu ct este mai lat magistrala de
date, cu att microprocesorul este mai rapid.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 11

Arhitectura Sistemului

Configuratie de baza sistem 8086 Configuratie de baza sistem 8088

Se observa variatii ale latimii magistralei de date si ale magistralei de adrese.


Variatie si a frecventei semnalului de ceas.
Cu fiecare nou microprocesor lansat in familia Intel a crescut si frecventa semnalului de ceas

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086

Descriere general:
Lansat n 1978, aflat n producie pn n anii 90
Primul circuit al familiei x86
Frecven de funcionare ntre 5 MHz i 10 MHz
Procesor pe 16 bii (cuvnt de date)
Magistral extern de adrese de 20 de bii, putea accesa un
spaiu de memorie de 1M (220)
Urmat un an mai trziu de 8088 variant cu magistral extern
de date pe 8 bii primul circuit care a echipat IBM PC .

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 13

Microprocesorul 8086

Configuratia pinilor:
Mod minim
Mod maxim

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086

Semnificatia pinilor:
RESET pin de RESET, trebuie
inut timp de 4 cicluri main pe 1.
Adresa de reset este FFFF0h; la
reset este ters bitul de stare a
intreruperilor (IF) sunt dezactivate
ntreruperile.
CLK ofer semnalul de baz de
ceas pentru microprocesor.
Vcc 5V
GND mas
READY pin de intrare care
permite existenta strilor de WAIT
n funcionarea microprocesorului.
Cnd este 0 microprocesorul intr
n stare de ateptare (WAIT) i nu
efectueaz alte operaii.
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 15

Microprocesorul 8086

Circuitul suport 8284:

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086

Semnificatia pinilor:
INTR Interrupt Request linie de
ntrerupere extern hardware, dac
IF=1 UCP intr n ciclul de tratare a
ntreruperii dup finalizarea
instruciunii curente.
INTA\ Interrupt acknowledge
rspuns la INTR.
NMI Non-maskable interrupt
similar cu INTR, dar nu testeaz IF.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 17

Microprocesorul 8086

Semnificatia pinilor:
TEST\ este testat de instruciunea
WAIT. Dac este 0 instruciunea
WAIT funcioneaz ca o operaie
NOP. Dac este 1 instruciunea
WAIT ateapt pn la tranziia n
0. Utilizat n conjuncie cu
coprocesorul matematic.
HOLD pin de intrare care indic
solicitarea unui ciclul DMA. Dac
este 1 microprocesorul oprete
execuia programului i trece liniile
de magistral n stare de impedan
ridicata.
HLDA Hold acknowledge,
confirmarea procesorului c a intrat
n starea de HOLD.
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086

Semnificatia pinilor:
AD15-AD0 linii multiplexate de date i adrese (la
8088 liniile A15-A8 conin doar partea high a adresei)
ALE semnal de control pentru memorarea adresei
RD\, WR\ semnale ce indic un ciclu magistral
de citire, scriere. Atta timp ct sunt 0 datele sunt
valide pe magistral.
M/IO\ difereniaz ciclurile magistral cu referire la
memorie sau la porturile I/O (IO/M\ la 8088)
DT/R\ Data transmit/receive microprocesorul
transmite (1) sau recepioneaz (0) date pe
magistral. Utilizat pentru a comanda buferele de pe
magistrala extern de date.
DEN Data bus enable activarea buferelor de pe
magistrala extern de date.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 19

Microprocesorul 8086

Cicluri magistrala:

Ciclul magistrala de citire


Ciclul magistrala de scriere

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086
Diagrama de timp a operatiei de citire

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 21

Microprocesorul 8086

Semnificatia pinilor:
A19/S6 A16/S3 Linii de adres / status
multiplexate; S6 este ntotdeauna 0, S5 indic starea
lui IF, S4 i S3 arat segmentul care este accesat n
ciclul magistral curent (00-ES, 01-SS, 10-CS sau
nici un segment, 11-DS) i sunt adesea utilizate prin
decodificare pentru a accesa patru bank-uri de
memorie de 1M (rezultnd nc dou linii de adres
A21, A20).
MN/MX\ Mod minim / maxim pin de intrare /
selecie, pentru modul minim pinul trebuie conectat
la +5V.
BHE\/S7 Bus High Enable indic utilizarea prii
superioare a magistralei de date (D15-D8) n cadrul
unui ciclu magistral. S7 e ntotdeauna 1.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086

Demultiplexare magistrala
(partiala -mod minim):

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 23

Microprocesorul 8086

Demultiplexare magistrala
(completa -mod minim):

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086

Semnificatia pinilor (mod maxim):


S2, S1, S0 indic tipul ciclului magistral curent,
decodificate de controlerul de magistral 8288: 000
interrupt acknowledge, 001 I/O read, 010 I/O
write, 011 halt, 100 opcode fetch, 101 memory
read, 110 memory write, 111 passive
RQ\/GT0\, RQ\/GT1\ request / grant pin
bidirecional pentru operaiile DMA
LOCK\ lock output utilizat pentru blocarea
perifericelor.
QS1, QS0 arat starea cozii interne de instruciuni
pentru coprocesorul matematic (00 idle, 01
first byte of opcode, 10 empty, 11 subsequent
byte of opcode).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 25

Microprocesorul 8086

Circuit suport 8288 (controler de magistral):

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 8086

Circuit suport 8288 (controler de magistral) -


Semnificaie pini de ieire

MRDC\ Memory Read Command


MWTC\ Memory Write Command
AMWC\ Advanced Memory Write Command
IORC\ I/O Read Command
IOWC\ I/O Write Command
AIOWC\ Advanced I/O Write Command
INTA\ Interrupt Acknowledge

+ DT/R\, DEN, MCE/PDEN\, ALE

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 27

Microprocesorul 8086
Configuratie magistrala mod maxim

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memoria si microprocesorul

Spatiul de adrese pentru un sistem cu microprocesor


este referit fie ca memorie logica, fie ca memorie
fizica.
Memoria logica este memoria sistemului asa
cum o vede un programator.
Memoria fizica este structura hardware a
sistemului de memorie.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 29

Memoria si microprocesorul

Spatiul de memorie logica:


Este acelasi pentru toate microprocesoarele Intel.
Este numarat prin octeti.
Diferenta este ca unele microprocesoare contin mai
multa memorie decat altele:

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memoria si microprocesorul
Memoria logica
Pentru adresarea unui cuvant de memorie (16-bit word) sunt accesati
doi octeti consecutivi.
Exemplu: Un cuvant (word) la locatia 00122H este memorat in doi
octeti la adresele 00122H si 00123H. Un 32-bit double word (patru
octeti consecutivi) la locatia 00120H este memorat in octetii de la
adresele 00120H, , 00123H.
Pentru o utilizare eficienta a memoriei, datele reprezentate prin
cuvinte si cuvinte duble pot fi stocate cu aliniere la limitele double-
word sau fara aliniere la aceste limite. Limitele de aliniere pentru
double-word corespund adreselor care sunt multiplu de 4, adica:
00000H, 00004H, 00008H, etc.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 31

Memoria logica

Octetii datelor se afla in acelasi double word.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memoria logica
De exemplu: valoarea 7BA0H este stocata in memorie aliniat la double-word pentru
adresa 03000H.
Adresa mai mica, 03000H, contine valoarea 10100000B=A0H. Continutul urmatoarei
adrese, 03001H, este 01111011B = 7BH. Acesti 2 octeti reprezinta
0111101110100000B = 7BA0H.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 33

Memorii fizice
Memoriile fizice pentru sistemele cu microprocesoare Intel x86 difera:
Pentru 8088 latime de 8 biti;
Pentru 8086, 80186, 80286, 80386SX memoriile au pana la 16 biti;
Pentru 80386DX, 80486 memoriile au pana la 32 biti
Pentru Pentium memoriile au 64 biti.
Pentru programare nu exista nici o diferenta deoarece memoria logica
este intotdeauna organizata pe 8 biti. Pentru proiectare hardware exista
diferenta. Memoria este organizata in bancuri de memorie. Un banc de
memorie este o sectiune de memorie pe 8 biti.

8-bit microprocessor: 1 banc de memorie; (ex. 8088)


16-bit microprocessors: 2 bancuri de memorie: bytes, words (ex. 8086)
32-bit microprocessors: 4 bancuri de memorie: bytes, words, double
words
64-bit microprocessors: 8 bancuri de memorie: bytes, words, double
words, quad words.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 34

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memorii fizice

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 35

Memorii fizice

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 36

18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memorii fizice

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 37

Memorii fizice

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 38

19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Arhitectura de baza I/O

Echipamentele de intrari/iesiri (I/O devices) au porturi de intrari/iesiri


(I/O ports) care sunt organizate in spatiul adreselor de intrari/iesiri
(I/O address space).
I/O address space contine 64Kocteti de adrese consecutive in
domeniul 0000- FFFF.
Controllerul de intreruperi primeste cereri de intrerupere (IRQs) de la
I/O Devices. I/O Device genereaza un semnal IRQ. Controllerul de
intreruperi trebuie sa identifice care dintre intreruperile in asteptare
are cea mai mare prioritate. Apoi se efectueaza protocolul
cerere/confirmare a intreruperii cu microprocesorul. In final, pe
magistrala se transmite numarul tipului de intrerupere.
Fiecare numar asociat tipului de intrerupere are un vector de
intrerupere in spatiul adreselor de memorie. Vectorul de intrerupere
indica rutina care serveste intreruperea (interrupt service routine
(ISR)). ISR are rolul de a gestiona evenimentul extern.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 39

Basic I/O architecture

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 40

20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Sisteme cu microprocesoare elemente de baza

Modelul de programare
Adresarea memoriei in modul real

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 1

Modelul de programare

Programarea sistemelor cu microprocesoare necesita


intelegerea

Structurii de registre interne ale microprocesoarelor


(Intel).
Adresarea memoriei prin registrele de segment si
adresele de offset.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modelul de programare

Trei grupuri de registre:

Registre de uz general,
Registre de uz special si
Registre de segment.

Registrul de indicatori (flags) care arata conditiile speciale


ale operarii unitatii aritmetice si logice a microprocesorului
(ALU).

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 3

Modelul de programare

Extensii 64-biti
(Pentium 4 si Core2)
RAX
RBX
RCX
RDX
RSP
RBP
RDI
RSI
RIP
RFLAGS

R8
R9
R10
R11
R12
R13
R14
R15

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registre de uz general

Sunt utilizate in orice scop dorit de programator.


Fiecare registru este adresabil fie ca:
64-biti (RAX,RBX, R8,..,R15) - Pentium4 si Core2
32-biti (EAX, EBX, etc.) doar de la 80386 in sus
16-bit (AX,BX, etc.) sau
8-bit (AH, AL, BH, BL, etc.).

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 5

Registre de uz general

RAX, EAX: Accumulator:


Se foloseste ca 64-biti RAX, 32- biti (EAX), 16 biti (AX) sau 8-biti (AL sau AH).
Instructiuni: inmultire, impartire, alte operatii aritmetice sau logice.
EAX poate tine offset-ul de memorie.

RBX, EBX: Base Index:


In general pastreaza offset-ul locatiei de memorie.
RBX, EBX, BX, BH sau BL.

ECX: Count:
In general: este contorul pentru instructiunile care se repeta: deplasari sau
rotiri de biti ; operatii cu string-uri care se repeta, contorul instructiunii LOOP.
RCX, ECX, CX CH, sau CL.
ECX poate tine offset-ul de memorie.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registre de uz general

RDX, EDX: Data:

RDX, EDX, DX, DH sau DL


Registru de uz general care

Pastreaza cea mai semnificativa parte a produsului dupa o


inmultire pe 16 sau 32-biti,
Pastreaza cea mai semnificativa parte a deimpartitului inainte de
impartire.
Numarul portului I/O pentru instructiunile I/O

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 7

Registre de uz general

RBP, EBP: Base Pointer:


Pointer in adresarea array-urilor de date in stiva de memorie.
Denumiri: RBP, EBP, BP.
RDI, EDI: Destination Index:
Instructiuni cu string-uri adreseaza datele din string-ul destinatie al
transferului.
Denumiri: RDI, EDI sau DI.
ESI: Source Index:
Instructiunile cu string-uri adreseaza datele din string-ul sursa al
transferului.
Denumiri: RSI, ESI sau SI.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registre de uz general

R8-R15:
Pentium 4 sau Core2 in cazul modului 64-bit.
Datele din aceste registre sunt adresate pe: 64-, 32-, 16-, or 8-bit.
Pentru octet se foloseste doar partea cea mai din dreapta a
registrului.

; Copiaza c.m.p.s octet din R10 in R9


; Copiaza AX in partea c.m.p.s de word a R10
;
; Copiaza intreg registrul R12 in R13

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 9

Registre de uz special

RIP, EIP: Instruction Pointer:


Arata urmatoarea instructiune din segmentul de cod.
16-bit (IP) in modul real si 32-bit in modul protejat.
Se poate modifica printr-o instructiune jump sau call.
In modul 64-bit contine o adresa pe 40-biti.

RSP, ESP: Stack Pointer:


Adreseaza stiva de memorie LIFO (last input first output).
La executia instructiunilor PUSH si POP;
La apelul de subrutina si revenirea din subrutina: CALL sau
RET .
SP 16 biti.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registre de uz special

RFLAGS, EFLAG, FLAG: pastreaza starea conditiilor din microprocesor si


controleaza operarea acestuia. Compatibilitate cu toate versiunile microprocesorului.

Instructiunile aritmetice si logice pot modifica c.m.d.d 5 flag-uri si Overflow.


Flag-urile nu se modifica la instructiuni de transfer de date sau de control.
Cele mai recente flag-uri controleaza I/O, intreruperile hardware maskabile,
debugging, task switching, etc.

Detalii la discutia despre setul de instructiuni!

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 11

EFLAGS

Flag de Transport: C (Carry):


Indica transportul dupa o adunare sau imprumutul dupa o scadere.
Indica unele conditii de eroare in programe sau proceduri.
Flag de Paritate: P (Parity):
0 pentru numere impare de biti si 1 pentru numere pare de biti.
Paritatea reprezinta numarul cifrelor de 1 exprimat prin par sau impar..
Ex.
Daca un numar binar contine trei cifre 1 - paritate impara, P=0.
Numerele cu 0 cifre 1 se considera de paritate para.
Flag Auxiliar: A (Auxiliary Carry):
Indica transportul dupa o adunare sau imprumutul dupa o scadere intre bitii 3 si 4 ai rezultatului.
Este testat cu instructiunile DAA si DAS;
Flag de Zero: Z (Zero):
Indica rezultatul 0 dupa o operatie aritmetica sau logica.
=1 daca rezultatul este 0.
Flag de Semn: S (Sign):
Indica semnul rezultatului dupa o operatie de adunare sau scadere.
=1 daca semnul rezultatului este negativ.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

EFLAGS

Flag Capcana: T (Trap): Activeaza capcana.

=1 activeaza capcana.
Ofera posibilitatea depanarii on-chip (debugging)
Microprocesorul intrerupe fluxul normal de instructiuni in functie de
conditiile indicate de registrele de depanare si control. (debug and
control registers).
=1 permite depanare pas-cu-pas a programului; =0 dezactiveaza acest
mod pas-cu-pas.
In modul pas-cu-pas, microprocesorul genereaza o exceptie de
depanare dupa fiecare instructiune; se inspecteaza starea de executie
a programului dupa fiecare instructiune.
Setarea acestiu flag T este posibila cu instructiunea POPF.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 13

EFLAGS

Flag de Intrerupere: I (Interrupt):

Controleaza operarea pinului INTR (Interrupt request);


=1; activeaza intreruperile.
Instructiunea STI seteaza flagul I; I=1
Instructiunea CLI reseteaza flagul I; I=0
Controleaza raspunsul procesorului la cererile de intreruperi
mascabile hardware. Cand este setat raspunde unei astfel de
cereri; cand este resetat inhiba intreruperile.
Nu afecteaza generarea de exceptii sau intreruperi nemascabile.
Modificarea acestui flag se poate face doar la indeplinirea
anumitor conditii de privilegiu.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

EFLAGS

Flag de directie: D (Direction):


Pentru instructiunile cu string-uri selecteaza modul de incrementare sau
decrementare pentru registrele DI si/sau SI.
=1 registrele sunt decrementate automat.
Instructiunile STD si CLD modifica acest flag.

Flag de depasire: O (Overflow):


Setat de instructiunile de adunare sau scadere.
Conditia de depasire este indeplinita doar in cazul numerelor cu semn.
Indica daca rezultatul depaseste capacitatea masinii.
Ex. Daca la 7FH (=127) se aduna 01H(+1) rezultatul este 80H (-128).
Conditie de depasire in cazul adunarii numerelor cu semn.
Operatiile numerelor fara semn ignora acest flag.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 15

EFLAGS 80286 and up

Flag nivel de privilegii: IOPL (I/O privilege level):

Indica nivelul de privilegii la care trebuie executat codul pentru a


putea executa instructiuni I/O.
00 cel mai inalt nivel de incredere;
11 - cel mai scazut nivel de incredere;
Nivelul de privilegii al programului care se executa trebuie sa fie
mai de incredere decat IOPL pentru a putea accesa spatiul de
adrese I/O.
Poate fi modificat prin instructiunea POPF de un program cu
nivel de privilegii 0 (cel mai inalt nivel).
IOPL realizeaza si mecanismul de control al flagului de
intreruperi IF si tratarea intreruperilor in modul virtual-8086 -
daca acest mod este activat (CR4.VME = 1).

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

EFLAGS 80286 and up

Flag de mod virtual: VM (Virtual Mode):

=1, selecteaza modul virtual de operare pentru un sistem in modul


protejat. Sistemul permite sa coexiste in memorie mai multe partitii
DOS de memorie de 1MB fiecare.
Simuleaza DOS in mediul Windows.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 17

EFLAGS 80386 and up

Flag de repornire: RF (Resume):

Permite repornirea unei instructiuni care urmeaza dupa tratarea unei exceptii de
depanare (cauzate de conditiile de breakpoint);
=1 dezactiveaza temporar generarea exceptiilor de depanare (prin breakpoint).
=0 breakpoint-urile pot genera exceptii de depanare.

Software-ul de depanare trebuie sa seteze acest flag inaintea revenirii din


programul intrerupt cu instructiunea IRETD ( previne ca instructiunea de
breakpoint sa nu mai cauzeze o alta exceptie de depanare).
Procesorul sterge automat acest flag dupa ce s-a executat cu succes revenirea
din exceptie. Poate trata din nou exceptii de tip breakpoint.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

EFLAGS 80486 and up

Flag de verificare aliniere: AC (Alignment Check):

Doar la 80486SX pentru sincronizare cu coprocesorul 80487SX.


=1 in conditiile in care un word sau double word este adresat la o
adresa care nu corespunde limitei specifice de aliniere pentru
word (multiplu de 2) sau doubleword (multiplu de 4).
se genereaza o exceptie (alignment-check exception) daca
operandul nu este aliniat. Exceptia:

Verifica alinierea datelor. In cazul unui schimb de date co


procesoare care au nevoie ca toate datele sa fie aliniate.
Este utilizata de interpretoare pentru a indica anumiti
pointeri speciali (care omit alinierea). Se elimina astfel
overhead-ul de verificare a fiecarui pointer si se trateaza
doar pointerii speciali.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 19

EFLAGS Pentium and up

Flag de intrerupere virtuala: VIF (Virtual Interrupt Flag):

Reprezinta copie a bitului flagului de intreruperi.


Contine imaginea virtuala a IF.
Este utilizat in conjunctie cu flagul VIP.
Disponibil la Pentium- Pentium 4.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

EFLAGS Pentium and up

Flag Intrerupere Virtuala in asteptare: VIP (Virtual Interrupt Pending):

Disponibil la Pentium- Pentium 4


=1 indica o intrerupere in asteptare;
=0 nu exista intreruperi in asteptare;
Este utilizat in conjunctie cu flagul VIF.

Flag de identificare: ID (Identification):

Disponibil la Pentium- Pentium 4


Pentru instructiunea CPUID, care ofera informatii despre
microprocesor: numarul versiunii si producatorul.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 21

Registre de Segment

Genereaza adresa de memorie in


combinatie cu alte registre.
4-6 registre.
Opereaza diferit in modul real fata de
modul protejat al microprocesorului.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registre de Segment

CS (Segment de Cod):
Segmentul de cod este o sectiune din
memorie care pastreaza programele si
procedurile folosite de acestea.
Acest registru defineste adresa de
inceput a sectiunii de memorie cu cod.
Mod real specifica inceputul unui
segment de 64KB.
Mod protejat selecteaza un descriptor
de segment ce include adresa de
inceput si lungimea sectiunii de
memorie cu cod.
Segmentul de cod este limitat la 64KB
pentru 8086-80286 si 4 GB pentru 386
si urmatoarele.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 23

Registre de Segment

DS (Segment de Date):
Similar CS, cu exceptia ca acest
segment pastreaza date.
Datele sunt accesate in
segmentul de date prin:
Adresa de offset sau
Continutul altor registre
care au adresa de offset.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registre de Segment

ES (Extra Segment):
Segment de date utilizat de unele
instructiuni pentru manipularea
string-urilor.
Este destinatia datelor.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 25

Registre de Segment

SS (Stack Segment):

Similar CS, exceptie acest segment


pastreaza stiva.
Locatia intrarii curente in stiva este
stabilita de continutul registrului SP.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registre de Segment

FS si GS:

Disponibile de la 80386 si
urmatoarele.
Registre segment suplimentare
pentru doua segmente de
memorie suplimentare care pot fi
accesate de programe.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 27

Operarea in mod real

Modul real - Reprezinta un mediu de programare


compatibil procesorului 8086 cu unele extensii, (ex.
abilitatea de a comuta in modul protejat)
Microprocesorul lucreaza in mod real la pornire sau
dupa reset.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Translatarea adresei in modul real

Procesorul deplaseaza continutul


registrului segment 4 biti la stanga
pentru a forma adresa de baza pe 20
de biti.
Offsetul este adunat adresei de
baza, iar rezultatul reprezinta adresa
liniara ce se mapeaza direct in
spatiul adreselor fizice.
In modul real se considera ilegal un
offset mai mare de FFFF pentru
microprocesoare ce opereaza cu
registri pe 32 biti.
Pentru compatibilitate cu 8086, in
modul real de operare se genereaza
exceptie ( erori de pseudo-protectie -
intreruperile 12 sau 13) daca offset-ul
reprezentata pe 32-biti este in afara
domeniului 0 - FFFFH.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 29

Segment si Offset

Adresa de segment si offset genereaza adresa de


memorie in modul real de operare.
Adresa de segment se afla intr-unul dintre registrele de
segment si defineste inceputul oricarui segment de
memorie de 64 KB.
Offsetul selecteaza locatia de memorie din segmentul de
memorie de 64KB.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Schema de adresare in modul real cu adresa de


segment si offset

Offsetul este distanta de la


incepul segmentul de
memorie.
Registrul de segment contine
1000H.
Se observa ca registrul de
segment este este alaturat
unui 0H in partea din
dreapta si formeaza adresa
de memorie pe 20-biti.
Acceseaza inceputul unui
segment de memorie in
oricare locatie din primii
1MB de memorie.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 31

Segment and Offset

Segmentele pot incepe la orice limita multiplu de 16 din


memoria sistemului.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Segment si Offset

Considerand lungimea unui segment de 64KB adresa de


sfarsit a segmentului se poate calcula:
Ending segment address = Starting address + FFFFH

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 33

Segment si Offset

O locatie de memorie se defineste prin specificarea continutul registrului


segment si a offset-ului.
Sintaxa seg_addr:offset,
1000:F000 specifica 1F000H.
Exista combinatii implicite intre registrele de segment si offset-uri in
definirea referintelor la memorie.
Valoarea din registrul de segment este numita valoarea curenta a
registrului de segment.

Exemplu: word din CS arata locatia de memorie pentru primul


double word location (80386 and up) din segmentul de cod curent.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 34

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Segment si Offset

Combinatii implicite intre registrele microprocesorului:


CS:EIP
SS:ESP, SS:EBP
DS:EAX, DS:EBX, DS:ECX, DS:EDX, DS:EDI,
DS:ESI, DS:8-bit_literal, DS:32-bit_literal
ES:EDI
FS and GS have no default.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 35

Segment si Offset
Exemplu de memorie a sistemului cu 4 segmente

Segmentul reprezinta o unitate


adresabila de memorie
independenta formata din 64K
octeti consecutivi de memorie.
Fiecare segment are o adresa de
baza a segmentului care identifica
inceputul, fiind locatia de memorie a
celui mai putin semnificativ octet
adresabil.
8086-80286 au 4 segmente de
memorie, iar 80386 si urmatoarele
au 6 segmente de memorie. La un
moment dat numai aceste segmente
pot fi active: segment de cod,
segment de stiva, si segmente de
date (2 sau 4).

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 36

18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Segment si Offset
Exemplu sistem de memorie cu 4 segmente

Solutie: Calculul adresei de sfarsit pentru fiecare segment de


memorie.

Liliana Dobrica, Sisteme si Microprocesoare


2015-2016 37

19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Microprocesoare- moduri de operare


Modul real
Segment si Offset
Registre si instructiuni suportate in modul real
Setul de instructiuni

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 1

Segment si Offset
Segmente de memorie continue, adiacente,
disjuncte si suprapuse
Segmentele sunt identificate cu literele A, B, C, etc.. FFFFF
Registrul segmentului de date DS contine valoarea B. A
Al 2-lea segment de memorie, de 64 KB, notat cu B, Data DS B
reprezinta segmentul de date curent. In acest segment Code CS
B
E
sunt stocate datele care sunt prelucrate. Acest spatiu C
de memorie trebuie sa contina locatii de memorie ce Stack SS H
pot fi accesate de instructiuni pentru operanzi sursa Extra ES J
D
sau destinatie.
FS K
Segmentul E este selectat de registrul CS ca segment E
F
de cod. Acesta este segmentul de cod din care sunt GS L
extrase instructiunile programului curent pentru G
executie. H

Registrul SS contine H. Segmentul cu acelasi nume


este folosita ca stiva. I
J
ES, FS si GS sunt incarcate cu valorile J, K, L astfel ca
segmentele de memorie J, K, L sunt segmentele de
date adiionale. K

.
L

00000

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Segment si Offset
Relocare

Adresarea prin segmentare permite relocarea datelor si a codului.


Program relocabil. Se poate schimba locul in oricare zona de memorie si
executat, apoi, fara nici o modificare.
Date relocabile. Pot fi plasate in oricare zona de memorie si utilizate fara nici o
modificare a programului.
Un segment de memorie poate fi mutat fara a schimba vreun offset. Trebuie
modificat doar continutul registrului segment sa specifice baza pentru noua
zona de memorie.
Altfel programul ar fi trebuit rescris sau modificat inainte de a fi mutat. Aceasta
ar fi costat timp si ar fi necesitat mai multe versiuni de program pentru diferite
configuratii.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 3

Registre si instructiuni suportate in modul real

Setul de registre disponibile in modul real include:

Toate registrele definite pentru microprocesorul 8086.


plus noile registre introduse pentru microprocesoarele
pe 32-biti, ex. FS si GS, registre de control, registrele
FPU, etc.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare

La executia unei instructiuni, microprocesorul efectueaza o anumita


functie pe anumite date. Aceste date se numesc operanzi.
Operanzii pot fi:
parte a unei instructiuni;
intr-unul din registrele interne ale microprocesorulu;
in memorie la o anumita adresa;
port I/O.
Pentru a accesa tipuri diferite de operanzi, microprocesorul are diferite
moduri de adresare (ex. structuri de date, inregistrari, array-uri 1D sau
2D).
Modurile de adresare sunt impartite in trei categorii:
Adresarea operandului din registru;
Adresarea operandului imediat;
Adresarea operandului din memorie.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 5

Modul de Adresare din Registru

Operandul este specificat intr-un registru intern al microprocesorului.


Registrele interne pot fi utilizate ca sursa sau destinatie a operanzilor.
Registrele de date pot fi accesate pentru diverse dimensiuni ca: octet, word,
double-word sau quad-word.

Exemplu:
MOV AX, BX
Copiaza continutul lui BX, care este specificat ca operand sursa, in AX,
operand destinatie.

Ambii operanzi, sursa si destinatie, reprezinta continutul unor registre interne


ale microprocesorului.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modul de Adresare din Registru

Inaintea executiei instructiunii, continutul lui BX


este ABCDH si continutul lui AX este orice .

Instructiunea este citita din coada de


instructiuni, decodata si executata.

Rezultatul produs de executia acestei


instructiuni este ca valoarea ABCDH este
copiata in AX.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 7

Moduri de adresare
Mod de adresare imediat

Daca operandul este o parte dintr-o instructiune, atunci acesta


reprezinta un operand imediat si este accesat prin modul de
adresare imediat.
Operandul poate avea lungimea de 8, 16, 32 sau 64 biti, este codificat
codul operatiei in instructiune si in mod normal reprezinta o valoare
constanta. .
Acest mod de adresare poate fi folosit pentru a specifica un operand
sursa.
Ex.
MOV AL, 18H
18H, operand sursa, operand imediat.
Operand destinatie, continutul lui AL, adresare prin registru
Instructiunea foloseste adresare imediata si prin registru.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare imediat

Operandul imediat este in segmentul de


cod, in octetul imediat dupa codul operatiei.

Valoarea impreuna cu codul operatiei


pentru instructiunea MOV sunt extrase din
memorie in coada de instructiuni.

Nu se efectueaza nici un acces la memoria


externa.

Rezultatul produs prin executia instructiunii


este ca operandul imediat, 18H, este
incarcat in AL.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 9

Moduri de adresare
Mod de adresare cu operand din memorie

Operand in memorie microprocesorul trebuie sa calculeze adresa


fizica a operandului si apoi sa initieze o operatie de scriere sau citire la
aceasta locatie.
Adresa fizica este formata din adresa de baza a segmentului (segment
base address (SBA) ) si adresa efectiva (effective address (EA)).
SBA identifica locatia de inceput a segmentului de memorie.
EA reprezinta offsetul operandului fata de inceputul acestui
segment de memorie.
Segmentul si offsetul se combina si formeaza adresa fizica in modul real
intr-un microprocesor.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare cu operand din memorie

Valoarea offset-ului se poate specifica in diferite moduri:


Mai multe tipuri de moduri de adresare:
Adresare directa cel mai simplu mod
Exista un numar de moduri de adresare care depind de
combinarea a patru elemente: baza, index, factor de scala si
deplasament.
Acestea se numesc: adresare indirecta prin registru, adresare
bazata, adresare indexata; adresare bazata indexata
Aceste moduri de adresare ofera programatorului diverse
posibilitati de calcul al adresei efective a unui operand din
memorie.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 11

Moduri de adresare
Mod de adresare cu operand din memorie

Calculul adresei efective se face cu urmatoarea formula generala:

EA= baza+(index x factor de scala)+deplasament

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare cu operand din memorie

Adresarea directa

Codul instructiunii este urmat de adresa efectiva - offset pe 16 biti - a


locatiei de memorie a operandului - fata de adresa de baza din
registrul segment.
Registrul segment implicit este intotdeauna DS. In consecinta, adresa
fizica este obtinuta din DS:EA.
Se poate referi orice registru segment: CS,DS,SS, ES, FS,GS
Exemplu:
MOV CX, [BETA]

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 13

Moduri de adresare
Mod de adresare cu operand din memorie

Adresarea directa

Daca valoarea asignata lui BETA este


1234H si continutul lui DS este 0200,
atunci adresa fizica a operandului sursa
este BA
AB
PA= 02000H+ 1234H= 03234H.
Instructiunea citeste cuvantul de date
incepand cu aceasta adresa, ABBAH, si
apoi o incarca in registrul CX.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare indirecta prin registru

Este similar modului precedent in felul de obtinere a adresei fizice.


Diferenta este la specificarea offset-ului.
Adresa efectiva se afla intr-un registru de uz general:
AX,BX,CX,DX.SP,BP,SI,DI.
Exemplu:

MOV AX, [SI]


Executia acestei instructiuni muta continutul locatiei de memorie care
este la un offset - valoarea din SI - fata de adresa de baza a segmentului
in AX.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 15

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare indirecta prin registru

Daca SI contine 1234 si DS contine


0200, atunci adresa fizica este 03234H.
Continutul acestei locatii este copiat in
registrul AX.
De remarcat: rezultatul produs de
executia acestei instructiuni este la fel cu
cel din exemplul anterior adresare
directa.
Acest mod de adresare se utilizeaza
atunci cand valoarea lui EA este calculata
si stocata in registru de instructiunile
anterioare. EA este o variabila.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare bazata

Adresa fizica a operandului este obtinuta prin adunarea unui deplasament


direct sau indirect la continutul unui registru baza.
Registrul baza defineste o structura de date, inregistrare, in memorie, iar
deplasamentul selecteaza elementul din structura.
Modificarea valorii deplasamentului permite accesul la alt element al structurii.
Modificarea continutului registrului baza permite accesul la o alta inregistrare.
Registrul baza poate fi: AX,BX,CX,DX,SP,BP,SI,DI;
Deplasamentul direct: orice valoare pe 8 sau 16 biti. Element n
Element n-1
Deplasament .
Structura de date
.
Element 2
Element 1
Registru Baza Element 0

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 17

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare bazata

Exemplu:

MOV [BX]+BETA, AL

Registrul baza BX si deplasamentul direct BETA sunt utilizate pentru a deriva EA a


operandului destinatie.

Notatia: registrul baza se pune intre paranteze drepte. Urmeaza semnul + si


deplasamentul direct.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare bazata
Continutul lui AL este BA, continutul lui DS
este 0200, BX este 2000, iar valoarea lui
BETA este 1234. Adresa fizica este
05234H.

Instructiunea muta valoarea BA in memorie


la aceasta adresa fizica.

DS registru segment implicit.

Daca registrul baza este SP sau BP, atunci


calculul adresei fizice este automat
efectuat cu registrul segment de stiva
SS.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 19

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare Indexata.

Acest mod foloseste deplasamentul ca pointer la un array din memorie,


iar continutul registrului specificat este folosit ca index care selecteaza
elementul din array.
Daca in registrul index este valoarea n, atunci se selcteaza elementul n.
Exemplu:
MOV AL, ARRAY+[SI]
Indexul este in registrul SI. Acesta este adunat cu deplasamentul direct
ARRAY. Registrul index este intre paranteze drepte.
Adresa fizica PA este
PA= DS:{ARRAY+(SI)}
Array de
date
Registrul segment: CS,DS,SS,ES,FS,GS
Registrul index: AX,BX,CX,DX,BP,SI,DI Deplasament

Adresare indexata a unui array de date

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare indexata
Valoare ARRAY este 1234, DS este
0200, SI este 2000, atunci PA devine
05234. Continutul acestei locatii de
memorie este BA. Acest octet este citit
in AL.

Factorul de scala poate fi inclus,


considerand una din valorile: 1,2,4 sau
8.
Calcul EA: valoarea registrului index
este inmultita cu factorul de scala si
apoi este adunat cu deplasamentul.

Exemplu: MOV AL, ARRAY+[SI x 2]


PA devine:
PA= 02000H+1234H+2000Hx2=
07234H

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 21

Moduri de adresare
Mod de adresare cu operand din memorie
Memorie
Adresare bazata indexata
Se combina adresarea bazata cu Element (m,n)
.
adresarea indexata. .
.

Se utilizeaza pentru accesul la Registru Index


Element (m,1)
Element (m,0)
structuri de date complexe, array-uri Element(m-1,n)
.
bidimensionale. Registru Baza
.
.
Array
bidimensional

Array de date m x n. Deplasamentul Element(1,1)


Element (1,0)
este valoarea fixa ce stabileste primul Element (0,n)
.
element al array-ului in memorie. .
.
Registrul baza coordonata m a Element (0,1)
Deplasament Element(0,0)
array-ului
Registrul index coordonata n a
array-ului.
Orice element al array-ului se
acceseaza prin modificarea valorilor
din registrele baza si index.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare bazata indexata.
Exemplu
MOV AH, [BX][SI]+BETA
BX - registru baza, SI - registru index, BETA - deplasament.

EA a operandului sursa este


EA = (BX)+(SI)+BETA

Adresa fizica PA se formeaza din continutul registrului DS si EA.

PA= DS: {(BX)+(SI)+BETA}

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 23

Moduri de adresare
Mod de adresare cu operand din memorie
Adresare bazata indexata
DS contine 0200, BX este 2000,SI
este 2000 si BETA este 1234, atunci
PA = 7234H.
Executia instructiunii - valoarea
stocata in memorie la aceasta locatie
este citita in AL.
Indexul poate fi scalat cu un factor de
scalare, similar adresarii indexate.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Setul de instructiuni al 8086 si 8088 este denumit set de instructiuni de baza.


Acesta a fost extins la 80286 si a fost denumit set de instructiuni extins.
Include si implementeaza noi instructiuni (ex. PUSHA push all si POPA pop all) si
moduri de adresare (ex. IMUL utilizeaza adresare cu operand imediat) - MOD
REAL.
Pentru 80386 au fost adaugate noi instructiuni in modul real bit test si bit scan.
Extindere cu instructiuni de control al sistemului. Acestea controleaza operarea
multitasking, managementul memoriei, mecanismele de protectie (ex. CLTS
clear task switched flag)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 25

Setul de Instructiuni

Grupuri de functionalitate:
Aceste grupuri includ:
1. Instructiuni de transfer de date,
2. Instructiuni aritmetice,
3. Instructiuni logice,
4. Instructiuni de deplasare a bitilor (shift),
5. Instructiuni de rotire a bitilor (rotate),
6. Bit test si Bit scan,
7. Instructiuni de control flag-uri,
8. Instructiuni de comparare si setare,
9. Instructiuni de salt (jump),
10. Instructiuni de tratare a subrutinelor,
11. Instructiuni de lucru cu stiva PUSH si POP,
12. Instructiuni de tratare a buclelor si string-urilor.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni de transfer de date. Aceste instructiuni copiaza date intre


registrele interne sau intre un registru si o locatie de memorie. Include
instructiuni care copiaza date intre acumulator si porturi de I/O. Exemple:

MOV DX,CX ; copiaza continutul lui CX in DX

XCHG AX,DX ; interschimba continuturile lui AX si DX

XLAT ; translatie operare cu look-up table. Inlocuieste continutul lui AL cu


continutul locatiei de memorie de la adresa PA=(DS)0+(BX)+(AL)

LDS SI, [200H] ; incarca registrul SI cu continutul locatiei de memorie de la


adresa cu offsetul 200H.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 27

Setul de Instructiuni

Instructiuni aritmetice. Include instructiuni pentru adunare, scadere, inmultire


si impartire. Aceste operatii se pot efectua cu o varietate de formate de date
numerice (octet binar cu semn sau fara semn, word, double word, BCD
impachetat sau neimpachetat, numere ASCII).
Starea care rezulta din executia unei instructiuni aritmetice este inregistrata in
flag-urile registrului EFLAG. Flagurile afectate sunt: flagul de transport, flagul de
transport auxiliar, flagul de semn, flagul de zero, flagul de paritate si flagul
overflow. (Engl. carry flag (C), auxiliary carry flag (A), sign flag (S), zero flag (Z),
parity flag (P), overflow flag (O)).
Exemple :
ADD AX,BX ; aduna continutul lui AX cu continutul lui BX si pune
rezultatul in AX. (AX)+((BX) -> (AX)

INC AH ; incrementeaza AH.

SUB BX, CX ; scade continutul lui CX din BX si pune rezultatul in


BX.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni aritmetice.
Exercitii:
1. Daca registrele AX si BX contin 1100H si 0ABCH, care este
rezultatul executiei instructiunii ADD AX,BX?
2. AX contine 1234H, BL contine ABH, locatia de memorie SUM
contine 00CDH, iar CF este 0. Se executa urmatoarea secventa de
instructiuni:
ADD AX, [SUM]
ADC BL, 05H
INC [SUM]

Cum se modifica (AX), (BL), (SUM) si (CF)?

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 29

Setul de Instructiuni

Instructiuni Logice. Acest grup include instructiuni pentru efectuarea operatiilor


AND, OR, exclusive-OR, si NOT.
Instructiunile AND, OR and XOR efectueaza operatii pe fiecare bit al operanzilor
sursa si destinatie, iar rezultatul este reprezentat de continutul operandului destinatie.
AND AX, BX ; continutul lui BX este AND cu continutul lui AX, iar
rezultatul se pune in AX.

Exemplu: daca AX este 1234H si BX este 000FH, atunci rezultatul este 0004H in AX.
Exemplu: Se executa urmatoarea secventa de instructiuni:
MOV AL, 01010101B
AND AL, 00011111B ; mascarea celor mai semnificativi trei biti ai lui AL
OR AL, 11000000B ; setarea celor mai semnificativi 2 biti ai lui AL
XOR AL, 00001111B ; complement logic pentru bitii 1 din AL
NOT AL ; inverseaza fiecare bit al lui AL
Descrieti rezultatul executiei acestei secvente de instructiuni.(AL)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiunile de deplasare (Shift).


Acest grup de instructiuni poate efectua doua tipuri de baza de
operatii, shift logic (SHL) sau shift aritmetic (SAL). Fiecare din
aceste operatii se poate efectua la stanga sau la dreapta. (left or
right). Exemple:
SHL AX,1 ; continutul lui AX este deplasat cu o pozitie de bit
la stanga.
SHR AX, CL ; continutul lui AX este deplasat cu un numar de
pozitii de biti egal cu continutul lui CL la dreapta.

Exemplu: CL contine 02H , iar AX contine 091AH. Cat este (AX) si


CF, dupa executia instructiunii
SAR AX, CL?

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 31

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Microprocesoare- moduri de operare

Modul real
Setul de instructiuni - continuare

Microprocesoarele 80286 si 80386 modul protejat

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 1

Setul de Instructiuni

Grupuri de functionalitate:
Aceste grupuri includ:
1. Instructiuni de transfer de date,
2. Instructiuni aritmetice,
3. Instructiuni logice,
4. Instructiuni de deplasare a bitilor (shift),
5. Instructiuni de rotire a bitilor (rotate),
6. Bit test si Bit scan,
7. Instructiuni de control flag-uri,
8. Instructiuni de comparare si setare,
9. Instructiuni de salt (jump),
10. Instructiuni de apelare a subrutinelor,
11. Instructiuni de lucru cu stiva PUSH si POP,
12. Instructiuni de tratare a buclelor si string-urilor

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni de rotire a bitilor

Acest grup este similar instructiunilor de deplasare a bitilor. Diferenta consta in


faptul ca bitii deplasati sunt reincarcati la celalalt capat al registrului.

ROL AX, 1 ; continutul lui AX este rotit o pozitie de bit la stanga. MSB este
incarcat cu LSB; CF reflecta starea ultimului bit deplasat.
ROR AX, CL ;continutul lui AX este rotit un numar de biti specificati de CL
la dreapta.
Instructiuni RCR si RCR, bitii sunt rotiti prin CF (flag-ul de transport)

Exemplu: Daca (AX) este 1234 si CF este 0, cat va fi (AX) dupa executia
ROL AX,1; Raspuns: 0001001000110100 va deveni 0010010001101000
iar CF va fi 0.
Exemplu: Care este rezultatul in (BX) si (CF) dupa executia RCR BX,CL?
Inaintea executiei instructiunii: (CL) =04H, (BX)= 1234H
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 3

Setul de Instructiuni

Instructiuni Bit test si Bit scan

Instructiunile bit test testeaza starea unui singur bit, in timp ce bit scan
scaneaza bitii operandului sursa - registru/locatie de memorie - sa stabileasca
daca sunt/nu sunt toti 0.
Instructiunile bit test testeaza nivelul logic al unui bit din continutul unui registru
sau a unei locatii de memorie. Starea bitului testat este copiata in CF.

BT EAX, EDI ; bitul din EAX este selectat de indexul din (EDI) , apoi
este testat, iar valoarea sa este salvata in CF.
Variante: BTR EAX, EDI ; valoarea bitului testat este salvata in CF si apoi
acest bit din EAX este resetat
BTC BX,7 ; bit test and complement; Daca BX contine 03F0H, dupa
executie va fi 0370H, iar CF 1.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni Bit test si Bit scan.


Instructiunile bit scan scaneaza bitii operandului sursa - registru/locatie de
memorie - sa stabileasca daca sunt/nu sunt toti 0.

BSF ESI,EDX ; bit scan forward (BSR bit scan reverse) - bitii din (EDX) sunt
testati unul dupa altul incepand cu bitul din poz. 0. Daca toti bitii sunt 0, atunci ZF
devine 0. Altfel valoarea indexului (pozitia bitului +1) primului bit testat fiind 1
este copiat in registrul ESI.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 5

Setul de Instructiuni

Instructiuni de control flag-uri


Acest grup contine instructiuni care afecteaza direct starea flagurilor.
Flagurile fie monitorizeaza starea executiei unei instructiuni, fie controleaza
diverse optiuni de operare. Astfel de instructiuni pot fi:
LAHF ; incarca AH cu flaguri 7 0

Formatul registrului AH este: SF ZF AF PF - CF

SAHF ; memoreaza AH in flaguri


CLC, STC, CMC ; sterge/seteaza/complement flagul de transport
CLI, STI ;sterge/seteaza flagul de intreruperi
Secventa de instructiuni: MEM1, MEM2 locatii de memorie
LAHF
MOV MEM1,AH
MOV AH, MEM2
SAHF

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni de comparare si setare


Sunt utilizate sa compare doua numere reprezentate pe 8-, 16-,
32- biti.
CMP D,S ; rezultatul (D)-(S) seteaza/reseteaza flagurile.
Rezultatul este reflectat in schimbarile flagurilor de stare C, A, O,
P, S, Z. Noua stare logica a acestor flaguri este utilizata de alte
instructiuni pentru a decide daca se modifica sau nu secventa de
instructiuni a programului.

Exemplu: Presupunand ca initial sunt toti 0, ce se intampla cu Z, S,


C, A, O si P dupa executia secventei?
MOV AX, 1234H
MOV BX, ABCDH
CMP AX,BX

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 7

Setul de Instructiuni

Instructiuni de comparare si setare


Instructiunea SETcc D; (Byte set on condition) este utilizata sa
testeze diferite stari ale flagurilor; cc este parte a mnemonicii
instructiunii, iar D este destinatia (registru/ locatie de memorie- 8
biti)

Exemplu:

SETA AL; set byte if above; daca ((CF)=0 si (ZF) = 0) atunci


11111111 -> AL, altfel 00000000 -> AL
SETE AL ; set if equal; daca (ZF) =1 atunci 1111111 ->AL, altfel
000000000 - > AL

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni de salt (Jump)


Scopul acestor instructiuni este de a da o alta cale de executie programului.
Exista 2 tipuri de instructiuni de salt, salt neconditionat si salt conditionat.
Saltul neconditionat poate fi salt intrasegment, care este limitat la adresele
din segmentul curent de cod si salt intersegment care permite salturi de la
un segment de cod la altul.
Formatul instructiunii: JMP Operand ; Operandul poate fi:
Intrasegment: Short-label; Near-label,
Intersegment: Far-label, Memptr 16, Regptr 16, Memptr 32, Regptr 32
Exemple:
JMP LABEL ; salt in program la eticheta LABEL;
JMP BX ; noua valoare a lui IP este continutul lui (BX);
JMP [BX] ;continutul lui BX este adresa de memorie care are offsetul.
Offsetul este incarcat in IP, care cu continutul curent al CS stabilesc adresa
de salt.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 9

Setul de Instructiuni

Instructiuni de salt (Jump)

JMP DWORD PTR [DI] ; continuturile registrelor (DS) si (DI) sunt utilizate la
calculul adresei de memorie care contine pointer double-word ce identifica
locatia la care va fi saltul. Pointerul double-word este citit in reg. IP (primii 16
biti) si CS (ultimii 16 biti) pentru a pasa controlul noului punct din program.

Instructiunile de salt conditionat testeaza prezenta sau absenta unor


anumite conditii de stare.
Au formatul Jcc Operand ;
Exemple:
JC Label ; jump on carry daca CF =1 programul continua cu instructiunea
de la eticheta Label, altfel continua cu instructiunea urmatoare.
JP (jump on parity PF=1); JPE (jump on parity even - PF = 1); JNP (not
parity - PF=0); JPO (parity odd PF=0)
JE (jump if equal - ZF=1); JZ (jump if zero ZF= 1)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni de salt (Jump)


Exercitiu: Scrieti un program care sa mute un bloc de N octeti de date,
incepand cu offsetul BLK1ADDR intr-un alt bloc de date care incepe de la
offsetul BLK2ADDR. Blocurile sunt in acelasi segment de date care incepe
cu DATASEGADDR.
Solutie:
1. Initializarea registrelor DS, SI, DI, CX
MOV AX, DATASEGADDR ; DS nu se poate incarca cu un operand imediat
MOV DS,AX
MOV SI, BLK1ADDR
MOV DI, BLK2ADDR
MOV CX,N ; initializare contor
2. Copierea datelor din blocul sursa in blocul destinatie prin intermediul AX:
a) copierea din sursa in acumulator b) copierea din acumulator in destinatie;
c) actualizare contor, pointer sursa si pointer destinatie
3. Test : toate datele au fost mutate?
4. Stop
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 11

Setul de Instructiuni

Instructiuni de salt (Jump)


Continuare

NEXTPT: MOV AH, [SI]


MOV [DI], AH
INC SI
INC DI
DEC CX
JNZ NEXTPT
HLT

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni apelare a subrutinelor


Acest grup include instructiuni care transfera controlul de la programul principal
la o subrutina si revenirea controlului inapoi programului principal. Instructiunile
de baza sunt CALL si RET. CALL poate fi
Intrasegment. IP este adresa urmatoarei instructiuni care urmeaza dupa CALL;
IP este salvat in stiva, (SP) -> (SP)-2;
Operanzi intrasegment specifica noua valoare pentru IP: Near-proc,
Memptr16, Regptr16
CALL NPROC; operand imediat 16 biti offset relativ la CALL
CALL BX; (BX) ->(IP) subrutina se afla la adresa CS:IP
CALL WORD PTR [BX] ; IP este incarcat cu adresa locatiei de
memorie derivata din continutul (DS) si (BX)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 13

Setul de Instructiuni

Instructiuni apelare a subrutinelor


Call Intersegment. (CS) si (IP) sunt salvate in stiva;IP si CS sunt incarcate cu
noile valori.
Operanzi intersegment:

CALL FPROC ; operand imediat 32 biti se incarca in IP si CS


CALL DWORD PTR [DI]; adresa fizica din memorie este derivata din
(DS) si (DI)

Fiecare subrutina trebuie sa se termine prin executarea unei instructiuni care


returneaza controlul programului principal. Aceasta instructiune se numeste
RET.
Valorile salvate in stiva sunt reincarcate in registrele asociateIP sau (IP si
CS)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni PUSH si POP


PUSH salveaza parametrii in stiva, iar POP ii obtine
inapoi.
Format PUSH S; POP D;
Operandul (S sau D) pe 16 biti poate fi un registru de uz
general, un registru segment sau o locatie de memorie.

PUSH AX
POP DX
Fara operand: PUSHF; POPF; PUSHA; POPA; PUSHAD;
POPAD push flags; push all (16-biti) push all 32-biti;

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 15

Setul de Instructiuni

Instructiuni de tratare a buclelor (Loop handling instructions)


Aceste instructiuni pot fi utilizate in locul unor instructiuni de salt
conditional si ii ofera programatorului un mod mai simplu pentru scrierea
secventelor din bucle.
Format: LOOP Short-label
LOOP lucreaza cu continutul registrului CX. CX se incarca cu un numar
ce reprezinta numarul de cate ori se executa bucla. De cate ori se
executa bucla, continutul lui CX este mai intai decrementat si apoi este
verificat ca nu e zero. Daca este 0 bucla se termina si se executa
instructiunea urmatoare.

Exemplu: daca CX este incarcat cu 000AH, de cate ori se executa


secventa de instructiuni din bucla?

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni de tratare a buclelor (Loop handling instructions)


MOV AX, DATASEGADDR
MOV DS,AX
MOV SI, BLK1ADDR
MOV DI, BLK2ADDR
MOV CX,N
NEXTPT: MOV AH, [SI]
MOV [DI], AH
INC SI
INC DI
LOOP NEXTPT
HLT

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 17

Setul de Instructiuni

Instructiuni de manipulare a stringurilor.


Un string este o serie de octeti, words sau double words de date
aflate in locatii de memorie consecutive.
Aceste instructiuni pot:
Muta/ Copia stringuri dintr-o zona de memorie in alta zona
de memorie: MOVSB; MOVSW; MOVSD;
Scana elementele unui string de date in cautarea unei
anumite valori: SCANSB, etc; Afecteaza flagurile:
CF,PF,AF,ZF,SF,OF.
Compara elementele a doua stringuri pentru a stabili daca
sunt la fel sau diferite: CMPSB, etc; Afecteaza flagurile:
CF,PF,AF,ZF,SF,OF.
Initializa un grup de locatii consecutive de memorie:
LODSB; STOSB

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Setul de Instructiuni

Instructiuni de manipulare a stringurilor


Exemplu
MOV AX, DATASEGADDR
MOV DS,AX
MOV ES, AX
MOV SI, BLK1ADDR
MOV DI, BLK2ADDR
MOV CX,N
CLD
NEXTPT: MOVSB
LOOP NEXTPT
HLT

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 19

Agenda

Microprocesoarele 80286 si 80386 modul protejat

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

MICROPROCESORUL 80286

Proiectat pentru medii multitasking.


Introduce, pentru prima oar n cadrul familiei, un
sistem de gestiune al memoriei care permite adresare
a pn la 16MB de memorie fizic i pn la 1GB de
memorie virtual.
Execut setul de instruciuni 8086 ntr-un numr mai
mic de cicli main datorit optimizrii arhitecturii
interne.
A echipat sistemele de tip IBM PC AT.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 21

MICROPROCESORUL 80286

MICROPROCESORUL
80286

Magistralele nu mai
sunt multiplexate!

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

MICROPROCESORUL 80286

MICROPROCESORUL 80286 Diagrama interna

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 23

MICROPROCESORUL 80286

80286
Circuite suport

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

MICROPROCESORUL 80286

S1\,S0\,M/IO\, COD/INTA\ indic iniierea unui ciclu


magistral i definesc tipul ciclului de magistral

80286
Semnale
magistrala

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 25

80286 Semnale magistrala

BHE\ Bus High Enable indic transferul pe partea


superioar a magistralei de date

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

80286 Semnale magistrala

PEREQ, PEACK\ Processor Extension


Operand Request / Acknowledge

BUSY\ Processor Extension Busy


semnal de la coprocesor care indic
nceperea execuiei unei instruciuni; cnd
e activ procesorul nu trebuie s trimit
ctre coprocesor alte instruciuni

ERROR\ Processor Extension Error


semnalizeaz apariia unei erori n
execuia instruciunii curente, este conectat
la sistemul de ntreruperi vectorizate
(controler de ntreruperi sistem).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 27

80286 Modul protejat

Registrul PSW

Pentru a intra n modul protejat se execut instruciunea LPSW care iniializeaz


registrul PSW (Program Status Word)

Din modul protejat se poate iei doar prin reset hardware!

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 80386

Primul microprocesor din cadrul familiei pe 32 de bii (cuvnt de date i


linii de adres => 4GB memorie fizica adresabila).

Poate trece din modul protejat n modul real fr reset hardware.

Exist trei versiuni ale circuitului DX, SX i EX.

Versiunea SX este versiunea mai simpl (doar 24 de linii externe de


adres i 16 linii externe de date) destinat sistemelor care nu
permiteau magistral de 32 de linii (funciona chiar n sisteme proiectate
pentru 80286).

Versiunea EX este versiunea embedded ce include mai multe circuite


suport (controler DRAM, 24 pini I/O, port serial, timere etc.)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 29

Microprocesorul 80386
80386SX vs 80386DX

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 80386
Organizarea memoriei

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 31

Microprocesorul 80386
Semnale magistrala

A31-A2 linii de adres identific cele 1G locaii a 32 de bii (A0 i A1 sunt


decodate intern impreuna cu marimea datei transferate n semnalele BE3\-BE0\).
Modul real A2-A19 active
Modul protejat: A2-A31 active

BE3\-BE0\ Bank enable signals selecteaz accesul la un octet, word sau


double-word.
Pentru citirea unei instructiuni toate semnalele BE3\-BE0\ sunt active,
0000.
Ce tip de date se transfera si pe care linii de date daca liniile BE3\ BE2\
BE1\ BE0\ sunt 1100?

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Microprocesorul 80386
Semnale magistrala

BS16\ Bus size 16 (dac BS16\=0 atunci chiar i varianta SX opereaz


pe magistral de date de 16 bii D0-D15) dimensionarea dinamica a
magistralei.
Duplicarea datelor pentru anumite cicluri de scriere in memorie:
are loc in modul 16-bit cand datele sunt transferate doar pe partea
ms a magistralei de date: D16-D32.
Daca exista combinatia BE: 1001 pentru transferarea unui word,
ce linii de date sunt utilizate? Are loc duplicare?
NA\ Next address permite ca urmtoarea instruciune sau cuvnt de
date s fie emis n ciclul curent de magistral

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 33

Microprocesorul 80386
Diagrama Interna

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 34

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modul de operare protejat


Modul protejat permite accesul la date si programe aflate la
adrese de memorie mai mari de 1 Mbyte.

Se schimba schema de adresare (segment, offset) fata de modul


real de operare.

Comparatie cu modul real:


1) exista offset pentru accesul informatiei dintr-un segment;
2) adresa de segment nu mai exista. Registrul de segment
contine un selector;
3) difera modul in care se acceseaza segmentul de memorie

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 35

Modul protejat de operare


Selectori si descriptori

Selectorul - aflat in registrul de segment - selecteaza unul din


cei 8192 descriptori ai unei tabele de descriptori.
Un descriptor contine informatii despre locatia, lungimea si
drepturile de acces ale unui segment de memorie.
Exista 2 tabele de descriptori:

Tabela de descriptori globali - global descriptors table


(GDT) descriptori globali pentru segmentele aplicabile
tuturor programelor.
Tabela de descriptori locali - local descriptors table (LDT)
Descriptori locali unici fiecarei aplicatii.
Fiecare tabela contine 8192 descriptori, astfel ca 16384
descriptori sunt disponibili oricand.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 36

18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Formatul unui descriptor de segment de memorie

Are o lungime de 8 octeti, astfel ca LDT si GDT sunt de


maximum 64 KBytes fiecare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 37

Formatul unui descriptor de segment de memorie


Adresa de baza (base address) indica locatia de inceput a
segmentului de memorie..
Pentru 80286 este pe 24-biti. Poate fi orice valoare din spatiul de
16 MB de memorie.
Pentru 80386 este pe 32-biti. Poate fi orice valoare din spatiul de
4GB de memorie.
Limita segmentului (segment limit) contine offsetul ultimei adrese
aflate in segmentul de memorie. Este pe 16-biti pentru 80286 si 20-
biti pentru 80386/80486. De exemplu: Daca segmentul incepe la
F00000H si se termina la F000FFH, atunci:
80286: adresa de baza este F00000H si limita este 00FFH
80386/80486: adresa de baza este 00F000000H si limita este
000FFH

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 38

19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Formatul unui descriptor de segment de memorie

Octetul access rights controleaza accesul la segmentul de


memorie si descrie ce rol are segmentul respectiv in sistem.
Daca este un segment de date se poate specifica directia
de crestere. Daca prin cresterea segmentului se
depaseste limita se va genera intrerupere.
Un segment de date poate fi scris sau poate fi protejat la
scriere.
Segmentul de cod poate fi controlat in aceeasi maniera.
Mai mult se poate interzice citirea din aceste segment de
cod.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 39

Formatul unui descriptor de segment de memorie


- Octetul drepturilor de acces

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 40

20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Formatul unui descriptor de segment de memorie

Alte elemente:

G-bit reprezinta granularitatea. Daca G=1, valoarea limitei este


multiplicata cu 4KB, daca G=0, limita specifica o valoare in
domeniul : 1 Byte - 1 MByte.

AV-bit este utilizat de sistemul de operare pentru a-i indica daca


segmentul este disponibil (AV=1) sau nu este disponibil (AV=0).

D-bit indica operare pe 32-biti (instructiuni, registre, offset) daca


D=1. Daca D=0 indica operare pe 16 biti.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 41

Modul protejat
Continutul registrului de segment

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 42

21
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Registrul de segment, descriptor in GDT si


segmentul de memorie

00
00
92
12
00
00
00
F7

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 43

22
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Microprocesoarele 80286 si 80386 modul protejat

Gestiunea memoriei

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 1

Operarea in modul protejat


Arhitectura modului protejat specifica trei tabele de descriptori care trebuie
definite pentru operare in acest mod: GDT, LDT si IDT:

Global Descriptor Table (GDT) - mecanisme pentru definirea spatiului


global de adrese de memorie. Memoria globala este o resursa generala a
sistemului care poate fi accesata de toate programele. Contine descriptori
de segmente caracteristici ale segmentelor memoriei globale.

Local Descriptor Table (LDT) spatiul local de adrese de memorie in cazul


unui task. LDT are descriptorii de segment care ofera acces la segmentele
de memorie de cod si date rezervate taskului curent. Fiecare task are
propriul LDT. Sistemul contine mai multe LDT.

Interrupt Descriptor Table (IDT) contine descriptori de intrerupere sau


porti mecanismul prin care microprocesorul paseaza controlul programului
rutinelor de tratare a intreruperilor. Dimensiunea IDT poate fi setata sa
suporte mai putin de 256 de intreruperi.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Operarea in modul protejat


Registrele invizibile programului

Pentru a accesa si specifica tabelele de descriptori,


microprocesorul contine Registre Invizibile Programului

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 3

Operarea in modul protejat


Registrele invizibile programului

Se observa ca fiecare registru de segment contine o zona invizibila


utilizata in modul protejat numita descriptor cache.
Descriptor cache este incarcat cu adresa de baza, limita si drepturile de
acces de fiecare data cand se schimba continutul registrului segment.
Cand registrul de segment este incarcat cu un nou continut,
microprocesorul acceseaza tabela de descriptori si incarca descriptorul
in portiunea de cache. Acesta este pastrat si utilizat pentru accesul la
segmentul de memorie pana cand continutul registrului segment se
schimba din nou.
In acest mod se evita accesele repetate la tabela de descriptori de
fiecare data cand segmentul de memorie este accesat.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Operarea in modul protejat


Registrele invizibile programului

GDTR 48 biti: cmps 2 octeti limita in octeti a GDT; cms 4 octeti:


adresa de baza
Ex: limita: 0FFFH; adresa de baza: 00100000H. Cat e dimensiunea
tabelei (in octeti) si cati descriptori pot fi stocati?

IDTR 48 biti.
Care este valoarea maxima ce poate fi asignata limitei din IDTR
stiind ca microprocesorul poate servi maxim 256 niveluri de
intreruperi?

LDTR 16 biti asociata taskului curent.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 5

Mecanismul stabilirii adresei fizice

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Accesul la adrese din spatiul local

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 7

Spatiul global si spatiul local

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Incarcarea zonei cache a registrului segment

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 9

Gestiunea memoriei

Gestiunea memoriei
Modele de memorie: segmentare si paginare
Translatia adreselor din spatiul virtual in spatiul

Unitatea de gestiune a memoriei implementeaza spatiul de


adrese si modul de translatare a adreselor virtuale in adrese
fizice.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modele de memorie segmentare si paginare

Unitatea de gestiune a memoriei in modul protejat lucreaza cu


adrese virtuale pe 48 biti specificate din doua componente:
selector si offset:

Un program specifica locatia de memorie a unei instructiuni sau


date printr-o adresa de memorie reprezentata pe 48 biti.
Selectorul pe 16 biti se compune din: 13 bit index , table index
bit si 2 biti pentru requested privilege level (RPL).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 11

Modele de memorie segmentare si paginare

Spatiul virtual de adrese poate contine 214 (16384 = 16 K )


segmente de memorie unice, fiecare segment avand o dimensiune
maxima de 4G bytes.
Segmentele sunt elementele de baza in care este organizat spatiul
virtual de adrese de catre unitatea de gestiune a memoriei.
Avantajul organizarii segmentate a memoriei limita variabila a
unui segment. Prin aplicatie segmentele pot fi definite dupa nevoie
mai mari sau mai mici. Se asigura utilizarea eficienta a memoriei.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modele de memorie segmentare si paginare

Alt mod de a privi marimea spatiului virtual de adrese:

Prin combinarea selectorului de segment pe 14 biti cu offset-


ul pe 32 biti se obtine o adresa virtuala pe 46 biti.
Astfel spatiul virtual de adrese poate contine 246 = 64T octeti.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 13

Modele de memorie segmentare si paginare


Segmentarea spatiului virtual de adrese virtual address space
(VAS)

80386 DX implementeaza ambele modele de memorie


segmentarea si paginarea memoriei virtuale.

Modelul de segmentare al lui 80386 DX imparte cei 64T


octeti VAS in doua: spatiul global de adrese de 32 T
octeti si spatiul local de adrese de 32 T octeti.

Bitul TI al selectorului este utilizat sa selecteze intre cele


doua tabele tabela descriptorilor locali (LDT) si tabela
descriptorilor globali (GDT).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modele de memorie segmentare si paginare

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 15

Memoria globala si locala a unui task

Medii software cu multiprocesare aplicatia este


reprezentata printr-o colectie de taskuri.
Un task reprezinta o colectie de rutine/proceduri
care efectueaza impreuna o anumita
functionalitate.
Cand microprocesorul initiaza un task, acesta
poate avea active segmente locale si segmente
globale de memorie.
Spatiul local de adrese pastreaza
datele si codul care pot fi accesate doar de
taskul corespunzator.
Spatiul global de adrese contine
resursele sistemului de operare si date care
sunt pastrate de toate sau mai multe taskuri ale
sistemului.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Spatiul adreselor fizice si translatia adreselor


virtuale in adrese fizice

Spatiul virtual de adrese (VAS) are 64 Tocteti.

Spatiul fizic de adrese suportat de 80386DX este 4G octeti.

Astfel doar o mica parte din informatiile memoriei virtuale se afla in memoria fizica
la un moment dat.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 17

Spatiul adreselor fizice si translatia adreselor


virtuale in adrese fizice

Informatiile care nu sunt utilizate in mod curent sunt stocate pe disk.

Daca un segment de memorie, care nu este prezent in memorie fizica,


este accesat de un program, si exista spatiu disponibil in memoria fizica,
atunci segmentul este citit de pe hard-disk si copiat in memoria fizica.

Daca spatiul de adrese al memoriei fizice este ocupat in totalitate, se


va utiliza hard-disk-ul. Adica un alt segment este trimis pe hard disk pentru
face loc noilor informatii.

Componenta memory manager a sistemului de operare controleaza


alocarea si dealocarea memoriei fizice si inter-schimba (swap) datele
dintre hard-disk si memoria fizica. Astfel spatiul de adrese al sistemului
pare mai mare decat memoria fizica existenta a sistemului.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Spatiul adreselor fizice si translatia adreselor


virtuale in adrese fizice

Segmentarea si paginarea sunt principalele tehnici prin care


cei 48-biti ai adresei virtuale sunt mapati pe cei 32-biti ai
adresei fizice.

Necesitatea definirii unui proces de translatare a adreselor.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 19

Translatia adreselor virtuale in adrese fizice

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Translatia adreselor virtuale in adrese fizice

In procesul de translatie, unitatea de gestiune a memoriei (MMU - memory


management unit) stabileste daca sau nu segmentul/ pagina
corespunzatoare din spatiul virtual se afla in memoria fizica.
Daca nu este, atunci se realizeaza inter-schimbul intre un segment/pagina
mai veche din memoria principala cu noul segment/pagina de pe harddisk.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 21

Procesul de translatie a adresei


a) Daca paginarea este off, atunci are loc procesul de translatie a
segmentului.

Partea cache a registrului segment de date


Defineste locatia, lungimea si tipul atributelor segmentului de
memorie.
Este pe 64 biti.
Nu este accesibil programatorului
Este incarcata cu descriptorul atunci cand prin executia unei
instructiuni in registrul de segment se incarca un nou selector.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Procesul de translatie a adresei

Exemplu: accesul la un operand dintr-un nou segment de date:

MOV DS, AX; DS se incarca cu un nou selector de segment de date


din memoria locala

1. Se executa instructiunea.
2. Descriptorul corespunzator din LDT este incarcat in partea cache a
registrului.
3. MMU verifica informatiile din descriptor pentru a stabili daca sunt sau
nu valide.

Daca PG = 0 adresa liniara este adresa fizica a locatiei de memorie


care trebuie accesata.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 23

Procesul de translatie a adresei

b) Daca paginarea este on atunci unitatea de paginare aranjeaza spatiul fizic


de adresare in 1.048.496 pagini, fiecare pagina de 4096 octeti.
Blocurile de marime fixa - un dezavantaj pentru ca cele 4K adrese sunt alocate
de MMU chiar daca nu vor fi toate utilizate. Apare fragmentarea memoriei se
creeaza sectiuni de memorie neutilizata. Fragmentarea reduce eficienta de
utilizare a memoriei. Avantajul este ca paginarea simplifica implementarea prin
software a MMU.
Cand PG = 1 - a doua translatie are loc translatia paginii.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Procesul de translatie a adresei

Formatul adresei liniare:

Adresa liniara este translatata in adresa fizica echivalenta.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 25

Procesul de translatie a adresei


Paginare

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Procesul de translatie a adresei


Paginare

PDBR = page directory base register: identifica locatia tabelei page


directory table; 20 biti sunt bitii MSB ai adresei. Cei 12 biti LSB sunt
considerati 000H la inceputul unui director, care se termina cu FFFH la
sfarsit.

Directorul cu pagini contine 4Kocteti de locatii de memorie, fiind


organizat in 1K adrese pe 32 biti. Aceste adrese indica fiecare cate o
tabela separata de pagini, care este tot in memoria fizica.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 27

Procesul de translatie a adresei


Paginare

DIR = reprezinta offsetul fata de valoarea din PDBR si


selecteaza o intrare din pe 32-biti dintr-un total de 1K al PDT.
Aceasta intrare este memorata in TLB (translation lookaside
buffer).
Valoarea sa este adresa de baza a unei tabele de pagini din
memorie. Fiecare tabela de pagini este de 4Kbytes si contine
1K adrese pe 32-biti.

Fiecare intrare in aceasta tabela este numita page frame


address. Fiecare page frame address indica o pagina de 4K
locatii de memorie in memoria fizica.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Procesul de translatie a adresei


Paginare

PAGE = selecteaza una din cele 1 K intrari pe


32 biti dintr-o tabela de pagini. Acesta intrare este
memorata cache in TLB - translation lookaside buffer.
Reprezinta o adresa care selecteaza o pagina de 4K
din memorie (page frame ). Aceasta pagina de locatii
de memorie este utilizata pentru stocarea datelor.

Partea 12-bit offset a adresei liniare identifica locatia


operandului in pagina activa.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 29

Procesul de translatie a adresei


Paginare

TLB Translation lookaside buffer:


Permite pastrarea a 32 seturi de intrari in tabele.
Astfel ca intotdeauna vor fi 128K octeti de
memorie paginata direct accesibili. Operanzii din
aceste zone de memorie pot fi accesati fara a
mai citi noi intrari din tabelele de pagini.

Daca un operand ce trebuie accesat nu este in


nici una din aceste pagini, atunci se consuma un
timp suplimentar pentru citirea/scrierea intrarii
tabelei de pagini in TLB.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Formatul unei intrari in tabela director sau


tabela de pagini

Adresa de baza Base address ( 20 biti) a unei tabele de pagini (intrarea intr-o
tabela director) sau a unei pagini (intrarea intr-o tabela de pagini)
Adresa de baza reprezinta bitii MSB (most significant bits); 12 LSB (least
significant bits) sunt considerati 000 tabelele de pagini si paginile incep la
locatii multiplu de 4K.
U/S implementeaza un mecanism de protectie a paginilor pe doua niveluri.
= 1 protectie la nivel utilizator nivel de privilegiu scazut asignat paginilor
accesibile de catre aplicatiile software;
= 0 protectie la nivel superior asignat resurselor sistemului de operare.
R/W read/write bit : este utilizat pentru a marca read-only or read- write o
tabela sau pagina de nivel utilizator.
Read-only = 1
Read-write = 0

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 31

Formatul unei intrari in tabela director sau


tabela de pagini

Protectia asignata unei tabele de pagini prin intrarea specifica in director se aplica
tuturor paginilor.
P present = 1 indica daca o intrare este valida si disponibila in procesul de
translatie.
= 0 intrarea fie nu e definita sau nu e prezenta in memoria fizica. the
entry is either undefined or not present in physical memory
Daca se incearca sa se acceseze o tabela de pagini sau o pagina care are
P=0 , atunci rezulta o exceptie numita page fault.
A accessed - 1 : o tabela sau o pagina au fost accesate ( acest bit este setat
inainte de a scrie la o adresa din pagina respectiva).
D dirty este definit doar pentru o intrare a tabelei de pagini fiind setata daca se
scrie la orice adresa din pagina respectiva.
AVL bits disponibili programatorului.
Sistemul de operare poate verifica starea bitilor A, D pentru a stabili atunci cand
pagina din memoria fizica trebuie inlocuita prin swap.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Procesul de translatie a adresei


Paginare

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 33

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Protectie si multitasking

Modelul de protectie
Multitasking Comutarea taskurilor si Tabela TSS (Task
State Segment)

Liliana Dobrica, Microprocessor Systems


2015-2016 1

Modelul de protectie

Contine elemente de siguranta care pot fi realizate in modul


protejat al unui sistem software pentru a interzice accesul
neautorizat la resursele de memorie ale unui task.

Microprocesorul include unitati hardware care implementeaza


un mecanism de protectie. Acest mecanism:
Restrictioneaza accesul la resursele sistem si locale ale
unui task;
Izoleaza taskurile intre ele intr-un mediu multitasking.

Liliana Dobrica, Microprocessor Systems


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modelul de protectie
Descrierea accesului de memorie

Elementele cheie ale


mecanismului de protectie
sunt segmentarea,
paginarea si descriptorii.
Un segment al unui spatiu
virtual de adrese are
atribute de protectie unice
(drepturi de acces si limita
segmentului in descriptori)
Unitati hardware de protectie
on chip efectueaza verificari
in timpul fiecarui acces la
memorie.

Liliana Dobrica, Microprocessor Systems


2015-2016 3

Modelul de protectie

Lista verificarilor de protectie si a restrictiilor contine:


Verificarea tipului;
Verificarea limitei;
Restrictii ale domeniului adresabil;
Restrictii ale intrarii la apelul de procedura
Restrictii ale setului de instructiuni.
Exemplu: Scrierea la o locatie de memorie
Este testat tipul segmentului pentru a fi consistent cu registrul in al
carui cache se incarca.
Este verificat offsetul ca sa fie in limita segmentului.
Atribute importante ale descriptorului:
P- bit prezenta segmentului in memoria fizica.
Segment de cod sau de date (bit 4);
readable, writable, conforming, expand up or expand down, accesat;
Nivelul de privilegii (DPL).

Liliana Dobrica, Microprocessor Systems


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Modelul de protectie
Inaintea incarcarii descriptorului , MMU verifica daca:
Segmentul este prezent in memorie fizica;
Segmentul este pe un nivel de privilegii ca sa poata fi accesat de
programul curent aflat la nivelul curent de provilegii.
Tipul este consistent cu registrul in care este selectorul (CS=cod,
DS, ES, FS, GS, SS=date)
Referinta in segment nu depaseste limita segmentului.

Daca se detecteaza o violare atunci Semnaleaza conditie de eroare si


MMU trebuie sa:
Determine cauza erorii;
Corecteze problema;
Reinitieze operatia;

Exemplu de violare a protectiei : Selectorul incarcat in CS indica un


descriptor care defineste un segment de date.

Liliana Dobrica, Microprocessor Systems


2015-2016 5

Niveluri de privilegii

Modelul de protectie ofera 4 posibile niveluri


de privilegii fiecarfui task. Acestea sunt
numite: Level 0, Level 1, Level 2, Level l 3.
Level 0 este cel mai privilegiat; Level 3 este
cel mai putin privilegiat.
Nivelurile de privilegii sunt asociate astfel:
Level 0: software independent de
aplicatii care ofera functii orientate pe
microprocesor: control I/O, gestiunea
memoriei.
Level 1: procese care ofera serviciile
sistemului: accesul la fisiere.
Level 2: implementeaza rutine
customizate care sa suporte operatii ale
sistemului in scopuri speciale.
Level 3: aplicatii utilizator.

Liliana Dobrica, Microprocessor Systems


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Niveluri de privilegii

Nivelurile de privilegii izoleaza software-ul sistemului de


aplicatiile utilizatorilor.
Taskurile de pe un nivel pot utiliza programele de pe
nivelurile mai privilegiate, dar nu pot modifica in nici un
fel aceste rutine.
Nu afecteaza integritatea altor programe.
Prin aceasta protectie se obtine o mai buna fiabilitate
software pentru ca erorile dintr-o aplicatie nu pot afecta
sistemul de operare sau alte aplicatii.

Liliana Dobrica, Microprocessor Systems


2015-2016 7

Accesul la cod si date prin modelul de


protectie

Terminologie
Descriptor privilege level (DPL) a fost definit.
I/O privilege level (IOPL) a fost definit.
Current privilege level (CPL) nivelul curent de privilegii al unui task este
nivelul segmentului de cod sau date accesat de task.
Exemplu: CPL al unui task in executie este DPL din octetul
drepturilor de acces din descriptor cache al registrului CS. Aceasta
valoare este, de obicei, egala cu DPL al segmentului de cod.
Requested privilege level (RPL) este nivelul de privilegii al noului selector
ce se incarca in registrul segment.
Exemplu: in cazul codului, este nivelul de privilegii al segmentului de
cod care contine rutina apelata. => RPL este DPL al segmentului de
cod caruia i se transfera controlul.

Liliana Dobrica, Microprocessor Systems


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Accesul la cod si date prin modelul de


protectie

Pe masura ce se executa un task intr-o aplicatie, acesta


poate sa aiba nevoie de accesul la rutine program care se
afla in segmente cu diverse niveluri de privilegii. Astfel, nivelul
curent de privilegii al unui task se poate modifica dinamic pe
masura ce se executa. Pentru ca CPL al unui task comuta pe
DPL al segmentului de cod accesat.

Regulile de protectie stabilesc care cod sau date pot fi


accesate de un program.

Liliana Dobrica, Microprocessor Systems


2015-2016 9

Accesul la cod si date prin modelul de


protectie
Cum sunt accesate segmentele de date de un
cod cu CPL?

Verificarea nivelului de privilegiu pentru accesul la date

Liliana Dobrica, Microprocessor Systems


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Accesul la cod si date prin modelul de protectie


Cum sunt accesate segmentele de date de un cod
cu CPL?
Regula generala: Codul poate accesa doar date care sunt pe acelasi
nivel de privilegiu sau mai putin privilegiat.
Exemplu: CPL al unui task =1 => poate accesa segmente de date
cu DPL egal cu1, 2 or 3.
Cand un nou selector este incarcat in registrele DS, ES, FS or GS, DPL
al segmentului de date target este verificat sa respecte aceasta regula.
Exceptie: Cand registrul SS este incarcat. In acest caz DPL trebuie sa
fie egal cu CPL. => Stiva activa este intotdeauna la acelasi CPL.
Fiecare nivel de privilegiu are cate o stiva.

Exemplu: DPL=2, CPL=0 and RPL=2 Are loc accesul la date?


Solutie: DPL al segmentului target este 2 si este mai putin
privilegiat decat CPL sau RPL. De aceea, criteriul de protectie este
satisfacut si accesul la date are loc.

Liliana Dobrica, Microprocessor Systems


2015-2016 11

Accesul la cod si date prin modelul de protectie

Cum este transferat controlul intre cod la acelasi nivel


de privilegii sau intre cod cu niveluri diferite de
privilegii?
Transferul controlului are loc:
In acelasi segment de cod prin instructiunile:
JMP NEAR
CALL
verificarea limitei

In alt segment de cod prin instructiunile:


JMP FAR
CALL
Verificari: tip segment, limita segment, reguli de
nivel de privilegii

Liliana Dobrica, Microprocessor Systems


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Accesul la cod si date prin modelul de protectie

Cum este transferat controlul intre cod la acelasi


nivel de privilegii sau intre cod cu niveluri diferite
de privilegii?
Verificari de privilegii

Liliana Dobrica, Microprocessor Systems


2015-2016 13

Accesul la cod si date prin modelul de protectie

Cum este transferat controlul intre cod la acelasi


nivel de privilegii sau intre cod cu niveluri diferite
de privilegii?
Transferul controlului programului are loc daca una din cele doua
conditii este indeplinita :
Daca CPL este egal cu DPL, cele doua segmente sunt pe
acelasi nivel de privilegii.
Daca CPL reprezinta un nivel mai privilegiat decat DPL, dar
bitul C (conforming code) din descriptorul noului segment este
setat, rutina se executa la nivelul CPL.

Regula generala: Cand controlul este transferat unui cod dintr-un


segment cu un nivel de privilegii diferit => noul segment de cod
trebuie sa fie mai privilegiat. Se utilizeaza descriptorul de poarta.

Liliana Dobrica, Microprocessor Systems


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Formatul unui descriptor de poarta

Descriptor de poarta
Implementeaza schimbarea nivelurilor de privilegii.
Incercarea de a transfera controlul unei rutine dintr-un segment
de cod mai privilegiat
Exista 4 tipuri de descriptori de poarta:
Poarta de apel (call gate)
Poarta taskului (task gate)
Poarta intreruperii (interrupt gate)
Poarta capcanei (trap gate)
Instructiunile care refera un descriptor de poarta:
CALL FAR
JMP FAR

Liliana Dobrica, Microprocessor Systems


2015-2016 15

Formatul unui descriptor de poarta

where

Liliana Dobrica, Microprocessor Systems


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Poarta de apel

Implementeaza un transfer indirect al controlului dintr-un


task de la un cod cu nivelul CPL la un cod mai privilegiat.
Defineste un punct de intrare valid intr-un segment mai
privilegiat. Adresa virtuala a acestui punct de intrare este:
destination selector + destination offset
unde:
=>destination selector identifica segmentul de cod
caruia i se re-directioneaza controlul.
=>destination offset indica instructiunea din acest
segment de unde se reia executia.
Se poate afla, fie in GDT fie in LDT.

Liliana Dobrica, Microprocessor Systems


2015-2016 17

Poarta de apel

CALL 0067:0000
Operare:
Selectorul portii de apel este incarcat
in CS => se incarca in cache
descriptorul segmentului de cod
apelat (descriptorul unui segment
executabil).
Offset-ul din descriptorul portii de
apel localizeaza punctul de intrare in
procedura din segmentul executabil.
Ori de cate ori CPL-ul taskului se
modifica, o noua stiva este activata.
Descriptor 0000
Descriptor de 0041
Poarta de apel EC02
segment F91B
0150
1BCC
3400
EE3D

Liliana Dobrica, Microprocessor Systems


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Poarta de apel
Secventa de comutare a contextului programului:
apelant ..
Vechile informatii din ESP si SS sunt salvate in noua
stiva impreuna cu alti parametri, EIP si CS (pastrarea
legaturii pentru return).
Incepe executia procedurii la un nivel mai privilegiat.
RET: intoarce controlul programului . Se reface
contextul original al programului => vechile valori ale
EIP, CS, parametri, ESP, SS sunt scoase din stiva.
Executia programului se reia cu instructiunea
urmatoare instructiunii CALL din segmentul de cod
mai putin privilegiat.

Liliana Dobrica, Microprocessor Systems


2015-2016 19

Poarta de apel

Verificari de privilegii la transferul


programului prin poarta de apel.

Apelul este realizat cu succes daca:


DPL poarta este numeric egal sau
mai mare decat cel mai putin
privilegiat dintre (CPL,RPL).
[DPLpoarta = 2 poate fi apelata de
cod de pe niveluri 0,1 sau 2]
DPL destinatie <= CPL [ Daca
segm de cod destinatie are DPL=1
poate fi apelat prin poarta de cod
cu CPL= 1,2 sau 3

Liliana Dobrica, Microprocessor Systems


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Example de schimbari de segment valide si


invalide

Liliana Dobrica, Microprocessor Systems


2015-2016 21

Example de schimbari de segmente


valide si invalide

Liliana Dobrica, Microprocessor Systems


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Example de schimbari de segment valide si


invalide

Liliana Dobrica, Microprocessor Systems


2015-2016 23

Example de schimbari de segment valide si


invalide

C
C

Liliana Dobrica, Microprocessor Systems


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Multitasking Comutarea taskurilor si Tabela


Task State Segment (TSS)
Un microprocesor implementeaza o arhitectura software multitasking
daca are on-chip hardware care sa permita existenta mai multor taskuri
in sistemul software si sa permita ca acestea sa fie planificate pentru
executie intr-o maniera time-sharing.
Controlul programului este comutat de la un task la altul dupa o perioada
de timp fixata.

Exemplu: taskurile executa intr-o secventa round-robin. Taskul cel mai


recent executat se intoarce la sfarsitul listei de taskuri de executat. Chiar
daca taskurile sunt executate in time sharing, utilizatorul percepe ca
toate taskurile sunt simultan in executie.
Un task este definit ca o colectie de rutine program ce efectueaza o
functie specifica. Aceasta functie se numeste proces. Microprocesorul
are un mecanism eficient de comutare a taskurilor.
Cand este apelat in operare acesta are resurse de memorie locale si
globale.

Liliana Dobrica, Microprocessor Systems


2015-2016 25

Multitasking Comutarea taskurilor si Tabela Task


State Segment (TSS)

Taskul este unitatea de lucru pe care un procesor o poate executa


sau suspenda.
Un procesor poate executa un: program, un task or proces, un
serviciu al sistemului de operare, un serviciu al unei intreruperi,
tratarea unei exceptii.
Task - elementul cheie al unei arhitecturi software multitasking.

Arhitectura microprocesorului ofera un mecanism de salvare a


starii taskului, trimiterea unui task in executie sau comutarea dintr-
un task in altul.

Liliana Dobrica, Microprocessor Systems


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Multitasking Comutarea taskurilor si Tabela


Task State Segment (TSS)

Structura unui task este definita prin spatiul de executie al taskului si


segmentul de stare a taskului.

Spatiul de executie al taskului contine


segmentul de cod,
unul sau mai multe segmente de date,
segmentele de stiva.
Pentru protectie, fiecare nivel de protectie are cate o stiva.

Liliana Dobrica, Microprocessor Systems


2015-2016 27

Multitasking Comutarea taskurilor si Tabela


Task State Segment (TSS)

Segmentul de stare a taskului - TSS

TSS contine toate informatiile necesare pornirii sau opririi unui task.

TSS specifica

segmentele care fac parte din spatiul de executie al taskului


Reprezinta locul de stocare a altor informatii de stare a taskului.

In multitasking TSS ofera mecanismul de legatura dintre taskuri.

Liliana Dobrica, Microprocessor Systems


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Multitasking Comutarea taskurilor si Tabela


Task State Segment (TSS)

Un task este identificat prin selectorul de segment al TSS-ului.

Cand un task este incarcat in procesor pentru executie, sunt incarcate in


registrul TR:
selectorul de segment,
descriptorului de segment al TSS prin:
adresa de baza
limita
atributele.

Liliana Dobrica, Microprocessor Systems


2015-2016 29

Noi termeni asociati unui task segmentul de


stare a taskului si descriptorul acestui segment

Liliana Dobrica, Microprocessor Systems


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Formatul descriptorului unui TSS segment de


stare a taskului

Liliana Dobrica, Microprocessor Systems


2015-2016 31

TSS pentru 80386 DX partea principala

Liliana Dobrica, Microprocessor Systems


2015-2016 32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

NT flag
NT flag are un rol important in multitasking.
Pentru a reveni in taskul anterior sunt utilizate doua elemente:
back link din TSS si NT flag.
Cand NT=1 arata ca taskul curent in executie este imbricat in
executia altui task.

Liliana Dobrica, Microprocessor Systems


2015-2016 33

Invocarea taskurilor

Un task poate fi invocat


direct
indirect.
Invocarea poate fi:
intersegment jump (nu exista legatura de return
la taskul anterior),
intersegment call (informatiile de back linkage
sunt salvate automat).

Liliana Dobrica, Microprocessor Systems


2015-2016 34

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Invocarea directa a unui task

Invocarea directa a unui task este atunci cand instructiunile JMP or


CALL au ca operand un selector de segment de stare.

Executia instructiunii CALL:

1. selectorul este incarcat in registrul TR


Verificarea drepturilor de acces
- descriptor este prezent P=1
- taskul nu este ocupat Busy B=0
- regula de protectie nu este violata: CPL=DPL
2. citeste descriptorul TSS din GDT si l incarca in cache-ul
registrului TR.

Liliana Dobrica, Microprocessor Systems


2015-2016 35

Invocarea directa a unui task

Operatii la comutarea unui nou task


Ipoteza : taskul este activ si apeleaza un nou task. Noul task se
numeste task imbricat (engl. nested task)
1. Bitul NT din reg. EFLAGS este setat pe 1.
2. Taskul curent este suspendat si starea sa este salvata in vechiul
TSS.
3. Bitul B bit al noului descriptor TSS este marcat ocupat (busy)
4. Bitul TS (Task Switched) din registrul program status word (PSW)
este setat pentru a arata ca un task este activ.
5. Informatiile de stare ale noului task din TSS sunt incarcate in
unitatea centrala de prelucrare.
6. Selectorul vechiului TSS este salvat ca back link selector in noul
TSS.
7. Operatia de comutare a taskurilor este completa si executia se
reia cu instructiunea identificata de noul continut al CS:EIP.

Liliana Dobrica, Microprocessor Systems


2015-2016 36

18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Invocarea directa a unui task

Executia instructiunii return


Back link selector al vechiului TSS este
reincarcat automat in registrul TR. => se
activeaza vechiul TSS si se reface vechiul
context al programului.

Liliana Dobrica, Microprocessor Systems


2015-2016 37

Invocarea indirecta a unui task

JMP or CALL printr-o poarta a taskului asigura transferul


controlului la un task cu RPL diferit de CPL (mai privilegiat).
Formatul unei task gate
Selectorul indica poarta taskului (task gate) care poate fi
in LDT sau GDT, in locul unui selector TSS. Poarta
contine TSS selector care este incarcat in registrul TR
pentru a selecta TSS si a initia comutarea taskurilor.

Liliana Dobrica, Microprocessor Systems


2015-2016 38

19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Comutarea taskurilor initiata prin task gate

Liliana Dobrica, Microprocessor Systems


2015-2016 39

20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Multitasking

Multitasking continuare

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 1

Multitasking

Task = colectie de rutine program ce efectueaza o functie specifica.


Multitasking = executia unui numar de taskuri intr-un sistem cu un singur
procesor.
Taskurile pot fi independente sau interdependente.

Probleme de multitasking:
decizie privind Cand? si De ce? se executa taskurile planificarea
taskurilor;
Politici privind utilizarea resurselor comune taskurilor pentru a preveni
coruperea acestor resurse excludere mutuala;
Facilitatile de comunicare sincronizarea si transferul datelor;

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Multitasking

Planificarea taskurilor
Un microprocesor implementeaza o arhitectura software multitasking daca
are on-chip hardware care sa permita existenta mai multor taskuri in sistemul
software si sa permita ca acestea sa fie planificate pentru executie intr-o
maniera time-sharing.
Un hardware timer este pornit de catre sistemul de operare inaintea pornirii
unui task. Taskul este in executie pana cand apare intreruperea hardware
generata de timer.

Planificare pre-emptive- fiecare task are perioade fixe de executie, apoi


este suspendat. Controlul programului este comutat de la un task la altul
dupa o perioada de timp fixata exprimata in unitati de timp. Unitatea de timp
= tick

Planificare non-preemptive taskurile executate pana la finalizare.

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 3

Multitasking

Exemplu pre-emptive: taskurile executate intr-o secventa round-robin. -


Taskurile se afla intr-o lista FIFO cu sloturi de timp presetate. Taskul cel
mai recent executat se intoarce la sfarsitul listei de taskuri de executat.
Chiar daca taskurile sunt executate in time sharing, utilizatorul percepe
ca toate taskurile sunt simultan in executie.

Avantaje round-robin: utilizare buna a resurselor comune; sensibilitate


tine cont de toate taskurile;
Necesitatea altor tehnici de planificare!!!

In practica:
taskurile variaza ca importanta;
nu sunt executate mereu la intervale de timp regulate;
pot fi executate doar cand anumite conditii sunt indeplinite.

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Multitasking

Starile unui task

Gata de
In executie
executie

Suspendat- Suspendat- Suspendat- Suspendat-


serviciu eveniment intervale de nivel de
rapid timp regulate baza

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 5

Multitasking

Cauzele suspendarii unui task


Task suspedat

Datorita

Cauze proprii auto- Cauze de fortare a eliberarii


indus controlului

Unui Finalizarea
semnal taskului Slotul de Unui semnal
intern timp a extern
expirat

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Multitasking

Planificare pre-emptive problema comutarii taskurilor: 2 operatii


suplimentare:
salvarea tuturor informatiilor asociate unui task suspendat
reincarcarea acestor informatii la momentul reluarii executiei sale;

Comutarea contextului
2 extra operatii: salvarea informatiilor taskului curent + incarcarea
informatiilor noului task;
Factor important in sistemele de timp real consuma din timpul
procesorului reducand timpul sau disponibil de calcul.

Microprocesorul ofera prin arhitectura sa un mecanism eficient de


comutare a taskurilor. (executia unei instructiuni FAR JMP sau FAR
CALL de catre OS scheduler). Operandul instructiunii determina selectia
din GDT a unui descriptor TSS a noului task ce va intra in executie.

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 7

Multitasking

Hardware timeslice timer

Incorporat in Pentium P54C (LocalAPIC)


La 80386 intrerupere hardware maskabila (pinul INTR) care

genereaza intrerupere care selecteaza din IDT un descriptor ce indica


OS scheduler. Taskul este suspendat (procesorul copiaza automat
continutul registrelor in TSS-ul taskului suspendat)
noul task (OS scheduler) este repornit prin incarcarea registrelor
procesorului cu informatiile din TSS-ul sau.

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Multitasking

Evenimente ce cauzeaza comutarea taskurilor

1. FAR CALL sau FAR JMP la un descriptor TSS.


Verificare nivel de privilegii: acelasi nivel DPL= min ( CPL,RPL)

2. FAR CALL sau FAR JMP la un descriptor de poarta a taskului (task gate descriptor)
Verificare nivel de privilegii: DPLpoarta > max ( CPL,RPL) (ex. Daca DPLpoarta=3 atunci orice
program poate apela taskul indicat de descriptorul de poarta.)

3. INT nn care selecteaza Task Gate din IDT (nn indexul in IDT)

4. Intrerupere hardware care selecteaza Task Gate din IDT


Nu se verifica nivelul de privilegii

5. Exceptie software care selecteaza Task Gate din IDT


Nu se verifica nivelul de privilegii

6. Executia instructiunii IRET cu flagul NT=1

Liliana Dobrica, Sisteme cu microprocesoare


2015-2016 9

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Caracteristici generale ale intreruperilor si capcanelor


ntreruperi; Capcane

ntreruperi si exceptii la 80386DX

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 1

ntreruperi
ntreruperea este produs de un eveniment extern microprocesorului,
adesea de o operaie de intrare/ieire sau de expirarea unei perioade de
timp.

Efectul ntreruperii:
suspendarea execuiei programului aflat n rulare,
transferarea controlului unei rutine dedicate tratrii ntreruperii
(interrupt handler - IH).

IH are sarcina de a efectua aciunile cerute de evenimentul extern care a


generat ntreruperea.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Tipuri de ntreruperi

ntreruperi vectorizate;

ntreruperi nemascabile;

ntreruperi nevectorizate;

ntreruperi cu relansare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 3

ntreruperi vectorizate

ntruct exist mai multe surse de ntreruperi, selectarea rutinei de


tratare presupune cunoaterea identitii sursei ntreruperii. Aceasta
se realizeaz prin execuia unui ciclu special, numit ciclu de
confirmare a acceptrii cererii de ntrerupere (interrupt acknowledge
cycle - INTA). Se utilizeaz magistrala extern a microprocesorului.

Evenimentul care a generat ntreruperea determin furnizarea ctre


CPU a unui cod de identificare. Acest cod, citit de ctre
microprocesor n ciclul de confirmare a acceptrii cererii de
ntrerupere, este utilizat de ctre CPU ca index al unei tabele
pstrate n memorie.

n general, ntreruperile vectorizate sunt mascabile.

Primirea cererilor de ntreruperi vectorizate se face printr-un singur


semnal fizic, deoarece detaliile privind sursa cererii se obin prin
ciclul de confirmare a acceptrii cererii de ntrerupere.
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi nemascabile

O astfel de cerere de ntrerupere suspend execuia programului


aflat n rulaj indiferent de funcia executat de acesta.

Exemple tipice de evenimente:


tendina de a iei din parametrii de funcionare normal a sursei
de alimentare;
detectarea unor erori n operaiile n conjuncie cu memoria (ex.
erori de paritate).
alte defecte majore ale sistemului

Semnalarea unei cereri de ntrerupere nemascabil se face printr-un


semnal de intrare distinct. Nu mai este necesar indicarea sursei
unei astfel de ntreruperi, ntruct ea se cunoate.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 5

ntreruperi nevectorizate

ntreruperile nevectorizate se implementeaz prin acelai mecanism ca i


n cazul ntreruperilor nemascabile, adic exist linii specializate de intrare
pentru semnalarea cererilor.

Spre deosebire de cele nemascabile, ntreruperile nevectorizate pot fi


dezactivate prin program.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi cu relansare

Suspendarea execuiei unui program se face, de regul, la terminarea


instruciunii curente pentru a se reduce la minimum posibil informaiile ce se
salveaz n conjuncie cu programul ntrerupt.

Sunt cazuri cnd ntreruperea este declanat de o situaie care mpiedic


nsi terminarea execuiei corecte a unei instruciuni, caz n care cererea
de ntrerupere trebuie servit nainte de terminarea instruciunii.

Soluie: proiectarea instruciunilor astfel nct s fie posibil ntotdeauna


repornirea execuiei lor, indiferent de momentul la care a survenit
ntreruperea.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 7

Timpul de laten

Timpul cerut de servirea unei cereri de ntrerupere depinde de operaiile


necesare tratrii evenimentului extern care a cauzat ntreruperea, precum
i de ntrzierea ntre activarea cererii i nceputul activitii rutinei de
tratare. Aceast ntrziere este o caracteristic a microprocesorului i se
numete timp de laten.

Pentru a putea evalua timpul de laten a unui microprocesor trebuie


examinata secvena de operaii necesare pentru comutarea de la
programul ntrerupt la rutina de servire a ntreruperii.

Operaiile necesare n acest scop sunt:


salvarea n stiva a indicatorilor de condiii (continutul registrului
EFLAGS si a IP:CS);
execuia ciclului de confirmare a acceptrii cererii de ntrerupere.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Prioriti

Ordinea de prioritate este, n general, urmtoarea:


1. ntreruperi cu relansare (intreruperi interne) - ele au prioritatea
maxim, deoarece sunt asociate unor evenimente care nu pot
atepta terminarea instruciunii curente pentru a fi servite;
2. ntreruperi nemascabile - ntreruperile din aceast clas sunt
prioritare celor vectorizate sau nevectorizate, ntruct
evenimentele care le determin necesit o servire rapid i
ntreruperile nu pot fi mascate;
3. ntreruperi vectorizate;
4. ntreruperi nevectorizate.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 9

ntreruperi vectorizate
Pooled vs. Interrupt Controller

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Interfata intreruperilor externe mascabile


INTR cerere de intrerupere : "1" activa.
INTA confirmare a cererii de intrerupere
INTR trebuie dezactivat inaintea terminarii executiei
rutinei de intrerupere, altfel aceeasi intrerupere poate
fi confirmata a doua oara.
Cand semnalul INTR a fost recunoscut,
microprocesorul incepe ciclul de magistrala INTA
Sunt generate 2 pulsuri de INTA :
Primul puls semnaleaza circuitului de
intreruperi confirmarea acceptarii cererii si sa
se pregateasca sa trimita numarul tipului
Al doilea puls, circuitul de intreruperi pune pe
magistrala de date numarul tipului de
intrerupere

READY insereaza stari de asteptare in ciclul


magistrala;
Linii de adresa - selecteaza circuitul de intreruperi
sau registrele interne ale acestuia;
LOCK : nici un alt circuit nu poate prelua controlul
magistralei sistem pana cand secventa ciclului
magistrala INTA nu s-a terminat.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 11

Circuit programabil pentru intreruperi 8259A

Semnificatia pinilor

D0-D7 linii de date conectate la magistrala de date. Transfera


cuvintele de comanda, informatii de stare si numarul tipului
intreruperii
INT, INTA\ ofera un mecanism de tip handshake prin care
circuitul trimite microprocesorului o cerere de intrerupere si
primeste confirmarea acceptarii acesteia. Pe durata unui ciclu
magistrala INTA, semnalul INTA\ are 2 pulsuri 0 logic prin care
semnaleaza ca:
a. cererea a fost confirmata;
b. trebuie sa trimita pe magistrala de date numarul
intreruperii active cu cea mai mare prioritate.
CAS 0-2 - interfata cascada intr-o configuratie
master/slave. O configuratie master/slave
A0 selectia registrului intern care este accesat in timpul extinde de la 8 la maxim 64 numarul liniilor IR.
operatiilor de citire/scriere;
IR0-IR7 cereri de intrerupere; SP\/EN\ - (input slave program/ output enable)
linie multifunctionala. Ca intrare SP\ trebuie sa
fie 1 pentru master si 0 pentru slave. Dupa
primul INTA circuitul master trimite codul CAS
(3 biti) care identifica circuitul slave cu cea mai
mare prioritate ca sa fie servit. Fiecare slave
compara codul CAS. Cand se potriveste,
circutul slave pune pe magistrala de date
numarul intreruperii.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Circuit programabil pentru intreruperi 8259A

8259A arhitectura interna

Data Bus Buffer si Read/Write Logic ofera


accesul la registrele interne.
Interrupt Masking Register (IMR) activeaza
sau mascheaza cererile de intrerupere..
M0-M7 este 1 -mascat, altfel 0 activat.
Interrupt Request Register (IRR)
pastreaza starea curenta a cererilor de
intrerupere. Pentru fiecare intrerupere cate Interrupt Service Register (ISR) pastreaza
un bit. 1 activ ; 0 inactiv. intreruperea in curs de servire.
Priority Resolver Register identifica Intreruperea cu cea mai mare prioritate
intreruperea cu cea mai mare prioritate pe este memorata aici in timpul primului puls
INTA\ . Starea acestui registru poate fi
baza unei scheme de prioritati stabilita prin
citita de catre microprocesor.
software.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 13

Desfurarea unei secvene de ntrerupere (ntr-un sistem cu 8086)

1. Una sau mai multe linii IRQ trec n 1 logic setnd biii
corespunztori n registrul IRR
2. 8259 trimite un semnal INT ctre CPU
3. CPU rspunde cu un puls pe linia de INTA
4. La primirea pulsului de INTA biii corespondeni din ISR sunt setai
i cei din IRR resetai
5. CPU iniiaz un al doilea puls INTA n urma cruia 8259 elibereaz
pe magistral coninutul lui ISR
6. La sfritul ciclului magistral toi biii din ISR sunt resetai

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Conectare n cascad 22 niveluri de intreruperi

INTA/ Magistrala CAS

8284 INT
IR0
INTR INT 82C59A 82C59A
IR1
INT Slave Slave
82C59A IR2 IR7 IR0 IR7
8086 Master
6 8
ALE
8

CLK IR0 IR7


MN/MX# Address
Vcc latch
DEN/ DT / R# 74F373 Magistrala de Adrese

OE/
Magistrala de Adrese / Date

G/ DIR

Magistrala de Date
Data bus
transceiver
74F245
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 15

Conectarea n cascad 22 niveluri de intreruperi

Magistrala de Adrese (16)


INT REQ

Magistrala de Control

Magistrala de Date (8)

CS/ A0 D0-7 INTA/ INT CS/ A0 D0-7 INTA/ INT CS/ A0 D0-7 INTA/ INT

CAS0 CAS0 CAS0


82C59A 82C59A 82C59A
CAS1 CAS1 CAS1
SLAVE A SLAVE B MASTER
CAS2 CAS2 CAS2

SP# / EN# 7 6 5 4 3 2 1 0 SP# / EN# 7 6 5 4 3 2 1 0 SP# / EN# M7 M6 M5 M4 M3 M2 M1 M0

GND GND

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Vcc 7 6 5 4 3 2 1 0

Cereri de Intrerupere
(InterruptRequests)
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Programarea lui 8259A

Programarea circuitului se realizeaza prin


cuvinte de comanda de initializare si de
operare.
Cuvintele de initializare (ICW1, ICW2, ICW3 si
ICW4) sunt incarcate in registrele interne ale
circuitului intr-o secventa de initializare
predefinita.
Comenzile de operare permit microprocesorului
sa varieze diferite moduri de operare asociate
modului de baza definit la initializare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 17

Programarea lui 8259A

Comenzile se realizeaza prin executia instructiunilor OUT


sau MOV.

Cand adresa asignata circuitului 8259A este pe


magistrala de adrese se activeaza pe 0 logic intrarea
CS\. Acest semnal activeaza unitatea read/write logic a
circuitului si datele de pe liniile D0- D7 sunt scrise in
registrul de comanda din blocul control logic in mod
sincron cu semnalul WR\.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Capcane (Traps)
Capcana (trap) este un mecanism care produce apelarea automat a unei
proceduri. Spre deosebire de o ntrerupere, capcana este activat, explicit
sau implicit, de ctre o aciune efectuata de ctre programul aflat n executie
(ntreruperi software).

Capcanele sunt utilizate pentru:


tratarea unor condiii de excepie, adesea anormale, care apar n
cursul existenei unui program,
activarea unor proceduri speciale, cum ar fi rutine ale sistemului de
operare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 19

Tipuri de Capcane
a) capcane activate ntotdeauna;

b) capcane activate/dezactivate prin program;

c) capcane solicitate explicit prin program.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

a) Capcane activate ntotdeauna

Se asociaz cu un eveniment de tip eroare, indiferent de operaia


efectuat de ctre CPU;

De aceea, nu exist mijloace de dezactivare a acestui tip de capcan.

Exemple tipice:

tentativa de a executa o instruciune inexistent;


tentativa de a executa, dintr-un regim neprivilegiat, o instruciune
rezervat regimului privilegiat;
capcanele n conjuncie cu gestiunea memoriei.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 21

b) Capcane Activate/Dezactivate Prin Program

Evenimentele care reprezint sau nu o condiie de excepie sau


anormal, n funcie de aciunile specifice efectuate de ctre program.

Capcanele pot fi activate (dezactivate) de programul nsui, dup cum


este necesar sau nu a detecta aceste situaii.

Standardul IEEE 754 prevede ca excepiile generate de operaiile cu


numere cu virgul mobil sau de conversie pot genera o capcan numai
n urma unei activri de ctre program.

Un alt exemplu: capcana utilizat pentru a detecta tentativa de execuie


a unei operaii cu operanzi cu virgul mobil n absena unitii
aritmetice dedicate acestor operaii. n aceste cazuri capcana se
dezactiveaz cnd configuraia hardware include procesorul matematic.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

c) Capcane Solicitate Explicit Prin Program

Nu se folosesc, n mod obinuit, pentru detectarea condiiilor anormale,


dar reprezint un mijloc de activare a execuiei unor rutine speciale, de
cele mai multe ori acestea fiind funcii ale sistemului de operare.
Sunt astfel organizate nct sa fie posibil activarea lor la apariia unor
capcane. Operaiei i sunt dedicate instruciuni speciale, numite adesea
apeluri de sistem (system-call instructions), dat fiind menirea lor
principal de activare a rutinelor sistemului de operare.
Cnd se execut o astfel de instruciune se activeaz capcana
corespunztoare.
Prin asocierea unui parametru, aceeai instruciune poate activa
capcane diferite.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 23

Manipularea Capcanelor
Aciunile cerute de manipularea capcanelor sunt similare cu cele
executate la apariia unei ntreruperi:
se salveaz n stiva indicatorii de condiie i contorul
programului (CS:IP).
se execut saltul la rutina de tratare a capcanei.

Informaia despre rutina de tratare este memorat ntr-un vector stocat


ntr-o zona de memorie bine precizat; n anumite cazuri capcanele i
ntreruperile folosesc n comun acelai vector.

De regul, rutina de tratare a capcanei se execut la un nivel privilegiat


superior fa de cel n care se afl programul ce a produs capcana.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Prioriti
Apariia simultan de ntreruperi i capcane ridic probleme
legate de selectarea celei creia s i se acorde atenie.

Ca i ntreruperile, capcanele sunt servite, de regul, la


terminarea instruciunii curente. Unele capcane (cum este page
fault trap) trebuie servite imediat, ntrerupnd execuia
instruciunii curente. Ele pot fi considerate similare cu
ntreruperile cu relansare.

Dei fiecare microprocesor are propriile sale reguli de prioritate


privind capcanele, se pot folosi urmtoarele criterii generale:
capcanele cu relansare au prioritatea maxim, ca i ntreruperile cu
relansare;
celelalte capcane au prioriti superioare ntreruperilor mascabile,
deoarece ele sunt folosite pentru detectarea erorilor i strilor anormale,
deci necesit atenie imediat;
ntreruperile nemascabile pot ntrerupe rutinele de tratare a capcanelor
i a ntreruperilor.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 25

Instrumente de Depanare

Depanarea este un proces dificil, care se simplific prin fragmentarea


programelor n blocuri mai mici, mai uor de stpnit. n sprijinul
depanatorului se pot oferi urmtoarele seturi de instrumente:

a) Execuie pas cu pas;


b) Puncte de suspendare a execuiei (breakpoints);
c) Memorarea traseului programului (program trace).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

a) Execuie Pas cu Pas

Primul instrument permite rularea programului instruciune cu instruciune,


execuia fiind stopat la sfritul fiecrei instruciuni.

Prin examinarea strii CPU i a locaiilor de memorie se poate determina


eventuala abatere a programului de la comportarea dorit.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 27

b) Puncte de Suspendare a Execuiei


(Breakpoints)

Punctele de suspendare a execuiei permit suspendarea execuiei unui


program dup execuia unei anumite instruciuni.

Permit execuia unor blocuri mai mari de program nainte de suspendarea


execuiei la un anumit punct cu scopul testrii rezultatelor intermediare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memorarea Traseului Programului


(Program Trace)
Traseul programului const ntr-o nregistrare a tuturor instruciunilor
executate de program de la ultima suspendare i permite verificarea
corectitudinii fluxului de instruciuni parcurse de program.

Pentru oferirea suportului necesar acestor instrumente de depanare,


toate microprocesoarele moderne sunt prevzute cu mecanismele
hardware pentru trace.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 29

Capcana de Traseu
Majoritatea microprocesoarelor sunt prevzute cu o capcan special,
numit trace trap - capcan de traseu. Ea permite att execuia pas cu pas,
ct i realizarea de trasee ale programului. Capcana se activeaz
(dezactiveaz) prin intermediul unui indicator de condiie special, accesibil
prin program.

Cnd este activ, capcana de traseu lanseaz n execuie rutina de tratare


dup ultima instruciune executat. Desigur, capcana este dezactivat
automat pe durata execuiei rutinei de tratare n scopul evitrii generrii unei
bucle infinite.

Rutina de tratare a capcanei de traseu permite programatorului s afieze


un set de informaii (starea CPU, locaii de memorie) care s nlesneasc
depanarea programului. Aceeai rutina permite memorarea ntr-un tampon
al traseului a datelor despre instruciunea executat.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Puncte de Suspendare Software a Execuiei (1)

Rularea pas cu pas a programelor este, de cele mai multe ori,


consumatoare de timp, mai ales dup ce s-au corectat mari blocuri de
program.

Utilitatea punctului de suspendare a execuiei (breakpoint): aceasta


facilitate permite inserarea n program a unor "comenzi" de suspendare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 31

Puncte de Suspendare Software a Execuiei (2)

Se selecteaz instruciunile pentru care tentativa CPU de a le executa


duce la suspendarea execuiei programului.

Pentru implementare se folosete o instruciune capcan specific, a


crei lungime este cea minim permisa pentru o instruciune.

Instruciunea a crei execuie ar trebui s suspende rularea programului


este stocat ntr-o zon special de memorie i este nlocuit prin
instruciunea breakpoint.

Cnd contorul programului indic locaia n care se afla instruciunea


breakpoint, aceasta este executat, fapt ce rezult n activarea rutinei
asociate de tratare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Puncte de Suspendare Hardware a Execuiei (1)

Mecanismul de suspendare software a execuiei permite utilizatorului s


ntrerup execuia unui program doar cu ajutorul unei instruciuni
particulare.

Punctul de suspendare hardware a execuiei se implementeaz cu


ajutorul unitii de gestiune a memoriei (memory management
unit - MMU), care conine registre n care se nscrie adresa de memorie
la a crei adresare trebuie s se suspende execuia programului.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 33

Puncte de Suspendare Hardware a Execuiei (2)

Cnd mecanismul de breakpoint este activat, MMU compar fiecare noua


adres de acces cu coninutul registrelor de breakpoint. La egalitate, MMU
emite un semnal capcan, fapt ce permite ca tentativa de acces la locaia de
memorie al crei adres este pstrat n registrele de breakpoint s conduc
la suspendarea execuiei programului i activarea unei rutine adecvate de
tratare a situaiei.

Microprocesoarele moderne permit utilizarea de puncte de suspendare a


execuiei programului att software, cat i hardware. Numrul primelor este
limitat doar de dimensiunea zonei de salvare, n timp ce numrul de puncte de
suspendare hardware este limitat de numrul de registre breakpoint din MMU.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 34

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi si excepii la microprocesoarele INTEL

Intreruperile si exceptiile sunt evenimente care arata ca o conditie exista


undeva in sistem, procesor sau in programul curent in executie si necesita
atentia procesorului.
Intreruperile apar la momente de timp aleatoare in executia unui program
ca raspuns la semnalele venite de la elemente hardware.
Elementele hardware din sistem utilizeaza intreruperile sa poata
gestiona evenimentele externe procesorului.
Elementele software pot genera intreruperi prin executia instructiunii
INT n.
Exceptiile au loc atunci cand procesorul detecteaza o conditie de eroare
in timpul executiei unei instructiuni.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 35

ntreruperi si excepii la microprocesoarele INTEL

La primirea unei cereri de intrerupere sau la detectarea unei


exceptii:
Procedura/taskul curent in executie sunt suspendate, iar
procesorul executa rutina de servire a intreruperii sau a
exceptiei.
Cand se termina executia rutinei de servire a intreruperii,
procesorul reia executia procedurii/taskului intrerupt.
Reluarea procedurii intrerupte se realizeaza fara pierderea
continuitatii programului.
Se poate intampla ca revenirea dintr-o exceptie sa nu fie posibila
sau ca intreruperea sa cauzeze terminarea executiei programului
curent.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 36

18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi si excepii la microprocesoarele INTEL

Fiecare exceptie definita arhitectural si fiecare conditie de


intrerupere cu o tratare speciala a procesorului are asignat un numar
unic de identificare numit vector.
Procesorul utilizeaza vectorul asignat ca index intr-o tabela a
vectorilor de intreruperi. Numerele asignate vectorilor pot varia de la
0 la 255.
Vectorii de la 0 la 31 sunt rezervati exceptiilor si intreruperilor
definite arhitectural. Nu toti vectorii din acest domeniu au o functie
definita. Vectorii neasignati unei functii raman rezervati.
Vectorii de la 32 la 255 sunt pentru intreruperi definite de
utilizator. Aceste intreruperi sunt, in general, asignate
echipamentelor I/O, ca sa poata trimite cereri procesorului prin
mecanismele hardware de intreruperi externe.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 37

ntreruperi si excepii la microprocesoarele INTEL


Surse ale intreruperilor

Intreruperi externe (generate hardware). Intreruperi hardware


mascabile ce pot fi trimise prin pinul INT. Daca flagul IF al
registrului EFLAGS permite, toate intreruperile hardware
mascabile pot fi mascate in grup.

Intreruperi generate-software. Instructiunea INT n permite


generarea de intreruperi din program prin specificarea numarului
vectorului ca operand.
Exemplu: INT 32 apeleaza rutina intreruperii 32.

Intreruperile generate software nu pot fi mascate prin flagul


IF.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 38

19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi si excepii la microprocesoarele INTEL


Surse ale exceptiilor

Exceptii de tip eroare de program detectate de procesor. Procesorul


genereaza una sau mai multe exceptii atunci cand detecteaza erori
software (aplicatie sau sistem de operare) . Exista un numar asociat
fiecarei exceptii detectabile de catre procesor.

Exceptii generate software. Instructiunile INTO, INT 3 permit


generarea exceptiilor software. Aceste instructiuni permit verificarea
conditiilor exceptiei prin fluxul de instructiuni.
De exemplu, INT 3 cauzeaza generarea exceptiei breakpoint sau
INTO generarea exceptiei overflow.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 39

ntreruperi si excepii la microprocesoarele INTEL


Surse ale exceptiilor

Instructiunea INT n poate fi utilizata pentru a emula exceptii prin software.

Exista limitari fata de exceptiile generate prin hardware care produc un


cod al erorii.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 40

20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi si excepii la microprocesoarele INTEL


Clasificarea intreruperilor interne si exceptiilor in functie de
raportare
Erori exceptii care pot fi corectate si care odata corectate permit
repornirea programului fara pierderea continuitatii. Daca se raporteaza o
exceptie de tip eroare, procesorul reface starea masini la starea de
dinaintea executiei instructiunii eronate. Adresa de return (continutul salvat
al registrelor CS, EIP) al rutinei indica instructiunea cu eroare si nu
instructiunea urmatoare acesteia. ( Ex: divide error exception; invalid
opcode exception; interrupt table limit too small).
Capcane exceptii care sunt raportate imediat dupa executia instructiunii
capcana. Capcanele permit ca executia unui program sa continue fara
pierderea de continuitate. Adresa de return arata instructiunea de executat
dupa instructiunea capcana. (Ex. breakpoint exception INT 3).
Abort exceptii care nu raporteaza locatia instructiunii care cauzeaza
exceptia si nu repornesc programul care a cauzat exceptia. Sunt utilizate
pentru erori severe, erori hardware, inconsistente sau valori ilegale in
tabelele sistemului.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 41

ntreruperi si excepii la microprocesoarele INTEL


Prioritati

Prioritatea se realizeaza in doua moduri:

Pe baza unei ierarhii a grupurilor de intreruperi. Ordinea este: reset,


intreruperi interne si exceptii, intreruperi software intreruperi
nemascabile si intreruperile hardware externe.

In fiecare grup, fiecare intrerupere are asignat un nivel de prioritate


prin numarul tipului. Tipul 0 identifica intreruperea cu prioritatea cea
mai mare, iar 255 identifica intreruperea cu prioritatea cea mai
scazuta.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 42

21
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Prelucrarea
intreruperilor in mod
real la 80386DX

La sfarsitul instructiunii curente


microprocesorul testeaza.
intai intreruperile interne
sau exceptiile,
apoi NMI, si,
la final, INTR pentru a
determina daca a aparut
vreo intrerupere externa.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 43

ntreruperi si excepii la microprocesoarele INTEL


Tabela vectorilor/descriptorilor de intreruperi

Aceasta tabela face legatura intre numerele tipurilor de


intreruperi si locatia de memorie unde se afla rutina de
servire a intreruperii. Tabela se numeste:

Tabela vectorilor de intreruperi (IVT) in modul real;


Tabela descriptorilor de intreruperi (IDT) - in modul
protejat

Tabela contine 256 de elemente pointeri de adrese


(Vector 0 Vector 255), unde un element corespunde
fiecarui numar asociat tipurilor de intreruperi. Pointerii
identifica in memoria program locatiile de inceput ale
rutinelor de tratare a intreruperilor.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 44

22
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi si excepii la microprocesoarele INTEL


Tabela vectorilor/descriptorilor de intreruperi
In general, IVT ocupa zona 00000H 003FFH (primul 1KB de
memorie). Se poate ca IVT sa se afle oriunde in spatiul de memorie.
Adresa de inceput si marimea sa pot fi definite de registrul IDTR. La
reset sau la pornirea sistemului in modul real continutul IDTR este 0 iar
limita IVT este 3FF.
Fiecare vector are 2 cuvinte de memorie.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 45

ntreruperi si excepii la microprocesoarele INTEL


Tabela vectorilor/descriptorilor de intreruperi

Cuvintele de la adresele 003FCH si 003FF vor indica


CS255 : IP255.
In tabela IVT:
Vectorii 0 31 : au functii dedicate sau sunt
rezervati. Exemplu: 0,1,3,4 sunt pentru divide error,
debug exception, breakpoint, overflow error.
Vectorii 32 255 : disponibili utilizatorilor pentru
diverse intreruperi software sau hardware.

In cazul intreruperilor hardware externe: fiecare numar


(nivel de prioritate) are asociat un semnal de intrerupere
intr-un hardware extern.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 46

23
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi si excepii la microprocesoarele INTEL


Tabela vectorilor de intreruperi si IDT

Tabela descriptorilor de intreruperi (IDT) se pot afla oriunde in


spatiul de memorie.
IDTR contine adresa de baza si limita IDT
IDT contine descriptori de poarta (gate descriptors) max 256.
Daca rutina careia i se transfera controlul este in taskul curent,
atunci se foloseste: trap gate sau interrupt gate;
Daca rutina careia i se transfera controlul este in alt task, atunci
se foloseste: task gate
Prin acest mecanism se redirectioneaza executia programului.
Un descriptor de poarta are 8 bytes de memorie
Gate 0 se afla la IDT + 0H IDT + 7H
Limita tabelei IDT poate fi o valoare mai mica de 7FFH pentru a
minimiza memoria rezervata pentru IDT.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 47

ntreruperi si excepii la microprocesoarele INTEL


Formatul descriptorului portii de intrerupere

Octetul drepturilor de acces: identifica daca sau nu


descriptorul de poarta este valid, nivelul de privilegii ale
rutinei si tipul portii.
P prezent; 1 descriptorul este activ;
DPL nivel de privilegii pentru rutina de servire a
intreruperii; 00 cel mai privilegiat.
T tip = 0 poarta de intreruperi
= 1 poarta de capcana : pentru capcana,
flagul IF nu este sters.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 48

24
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

ntreruperi si excepii la microprocesoarele INTEL


Instructiuni pentru intreruperi

Instructiuni de manipulare a flagului de intreruperi (IF)

CLI sterge IF
STI seteaza IF (activeaza semnalul INT)
Instructiunile se executa in modul protejat. Daca CPL > IOPL instructiunile
nu se executa si se genereaza exceptia general protection

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 49

ntreruperi si excepii la microprocesoarele INTEL


Instructiuni pentru intreruperi

LIDT (Load interrupt descriptor table register) este


instructiunea utilizata pentru a modifica registrul IDTR.
In forma generala este:
LIDT EA ; EA- adresa efectiva
EA este reprezentata prin 3 words = 2
words pentru adresa de baza +1 word
pentru limita tabelei;

SIDT (store interrupt descriptor table register) este


instructiunea utilizata pentru examinarea continutului
registrului IDTR.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 50

25
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Instructiuni pentru intreruperi

Instructiunea de intrerupere software este utilizata


pentru a initia un apel vectorizat al rutinei de tratare a
intreruperii.
Prin executia acestei insructiuni controlul programului
este transferat subrutinei indicate de vector sau de
poarta cu numarul n specificat de instructiune.
INT n ;

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 51

Instructiuni pentru intreruperi

Fiecare rutina de tratare a intreruperii trebuie sa aiba


return, pentru a transfera controlul inapoi programului
principal.
IRET ; revenirea din rutina de tratare a intreruperii.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 52

26
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Sistemul de memorie

Interfatarea cu circuitele de memorie

Ierarhizarea memoriei

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 1

Sistemul de memorie
n cadrul unui sistem de calcul memoria ocup un loc important reprezentnd
depozitul de informaii (date i program) al acestuia.
Exist dou arhitecturi consacrate n ceea ce privete organizarea sistemului de
memorie: von Neumann i Harvard. n cazul arhitecturii von Neumann memoria
este vzut ca un tot unitar n care se afl att programele ct i datele; n cazul
arhitecturii Harvard memoria este mprit n dou pri distincte, memorie
program i memorie de date

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Tipuri de circuite de
memorie
RAM

ROM

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 3

Tipuri de circuite de
memorie
Configuratia pinilor
Conectare Adrese
Scriere

ROM Citire

Selectie

Conectare Date (Iesiri/ Intrari-Iesiri)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Circuite de memorie ROM


Memoria ROM (Read-Only Memory) este un tip de memorie care nu poate fi
modificat sau tears de ctre procesor. Este n general non-volatil.

Circuite de memorie de tip ROM


Programata din fabrica, nu poate fi modificata
Circuite de memorie de tip PROM (Programmable ROM)
Poate fi programata o singura data
Circuite de memorie de tip EPROM (Erasable PROM)
Reprogramarea prin expunere la lumina UV de mare intensitate o
perioada de timp specificata (ex. 20 minute)
Circuite de memorie de tip flash EPROM, E2PROM sau EEPROM
(Electrically Erasable PROM)
Scrierea este mai lenta decat in RAM normal. Utilizata pentru
memorarea informatiilor de setup (ex. video), BIOS, etc.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 5

EPROM
U1 VPP programarea
8
7 A0 O0
9
10
circuitului prin aplicarea 25V
A1 O1
6
5 A2 O2
11
13
si utilizarea PGM cu
4 A3
A4
O3
O4
14 mentinerea CS\ high
3 15
2 A5 O5 16
1 A6 O6 17
23 A7 O7
22 A8
19 A9
A10
20
18 OE
CE
21
VPP

2716

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

EPROM

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 7

Memoria RAM
Memoria de tip RAM (Random Access Memory) se caracterizeaz prin faptul c
timpul de acces la date este independent de localizarea efectiv (n circuit) a
acestora.
SRAM. Circuitele SRAM (Static RAM) sunt circuite de memorie RAM volatile care
utilizeaz patru tranzistoare per celul pentru a pstra sarcina electric de 1
logic. Timpul de acces este mai rapid fata de EPROM (250ns). SRAM pentru
cache are timp de acces de ordinul 10ns.
SRAM sunt limitate ca dimensiune (pana la 128K X 8).
U5

8 9
7 A0 D1 10
6 A1 D2 11
5 A2 D3 13
4 A3 D4 14
3 A4 D5 15
2 A5 D6 16
1 A6 D7 17
23 A7 D8
22 A8
19 A9
A10
20
21 OE
18 WE
CE

2016

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memoria RAM
DRAM sunt disponibile in capacitati mai mari, (ex. 64M X 1).

Circuitele DRAM (Dynamic RAM) sunt circuite de memorie de tip RAM volatil care
utilizeaz un condensator pentru a pstra sarcina electric de 1 logic.
Din cauz c timpul de stocare a sarcinii n elementul capacitiv este de ordinul
milisecundelor aceste circuite necesit, spre deosebire de SRAM, un ciclu periodic
de ntreinere (refresh) a sarcinilor electrice la nivel de celul la fiecare 2 - 4 ms.
Densitatea elementelor electronice pentru implementarea unei celule pe pastila de
siliciu a circuitului este de patru ori mai mic dect n cazul SRAM (memoria SRAM
necesit patru tranzistoare per celul, memoria DRAM unul singur) i de aceea
costul per unitate de stocare este mai mic.

Pinii de adresa sunt multiplexati.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 9

Memoria RAM
DRAM

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Memoria RAM
DRAM - normal

DRAM refresh
Necesita hardware extern

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 11

Memoria RAM
Controller DRAM
Exemplu: 82C08 controleaza 1MB DRAM pentru un sistem pe 16 biti de date si 24
linii de adrese.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Standarde JEDEC
Standardele JEDEC (Joint Electronic Device
Engineering Committe www.jedec.org) definesc
modul de funcionare a circuitelor de memorie actuale
(tipuri de circuite, organizarea pinilor, parametri de
funcionare etc.).

Prin intermediul acestora se asigur o compatibilitate


a utilizrii circuitelor de memorie n practic.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 13

Interfatarea cu circuitele de
memorie

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Magistrala sistem
Orice sistem de calcul este format din UCP, sistem de memorie i porturi
de intrare / ieire (sistem I/O), acestea fiind prile componente de baz.
Mulimea conexiunilor (liniilor electrice) care interconecteaz UCP cu
sistemul de memorie i cu sistemul I/O se numete magistral sistem.
Aceasta are rolul de a permite schimbul de informaii (date) ntre UCP i
restul sistemului precum i de a transmite comenzile UCP ctre celelalte
componente ale sistemului.
Exist trei componente ale magistralei sistem: magistrala de adrese,
magistrala de date i magistrala de comenzi.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 15

Magistrala sistem
Adres
Date

Comenzi

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Decodificarea adreselor de memorie


Procesorul adreseaza un spatiu de memorie mai mare decat al unui circuit de memorie.
Pentru a aloca unui circuit de memorie un spatiu in memoria adresabila a microprocesorului ,
este necesara decodificarea.
Exemplu: 8086 are adrese pe 20-biti si un spatiu total de adresare de 1 MB. EPROM 2716 are
numai 2KB de memorie si 11 pini de adresa. Un decodificator poate fi utilizat pentru a aloca
2KB de memorie in spatiul de 1MB de adrese.
74LS138 Decodificator 3/8

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 17

Decodificarea adreselor

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Interfatarea memoriei pentru microprocesoare pe


8 biti

Microprocesorul are 20 linii de adrese (A19 - A0), 8 linii de


date(AD7 - AD0), 3 semnale de control IO/M, RD, si WR
32K EPROM de la F8000H la FFFFFH realizat cu circuite
2732 (4K X 8)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 19

Interfatarea memoriei pentru microprocesoare pe


8 biti
Microprocesorul are 20 linii de adrese (A19 - A0), 8 linii de
date(AD7 - AD0), 3 semnale de control IO/M, RD, si WR
512K SRAM de la 00000H la 7FFFFH realizat cu circuite
62256 (32Kx8). Sunt necesare 16 circuite.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Interfatarea memoriei pentru microprocesoare pe


16 biti
Microprocesorul are 16 linii de date(D15 - D0), semnale de control M/IO
(8086/80186), MWTC for 80286 and 80386SX, BHE, Bus High Enable,
Address pin A0 (or BLE, Bus Low Enable)
Magistrala de date este impartita in bancuri

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 21

Interfatarea memoriei pentru microprocesoare pe


16 biti

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Exemplu de decodificare a adreselor

Se d un sistem cu magistrala de adrese pe 16 bii, magistrala de


date pe 8 bii i un bloc de memorie de 16KB aflat la adresa 1000H.
Blocul de memorie este implementat utiliznd dou circuite SRAM
de 8K X 8. S se implementeze circuitul de decodificare a adreselor
pentru acest sistem.

Avnd n vedere c magistrala de adrese este pe 16 bii zona de adrese


a sistemului este cuprins ntre 0000H i FFFFH. Dimensiunea maxim
a memoriei, magistrala de date fiind pe 8 bii, este de 64KB.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 23

Harta memoriei
Zon de Adres n Linii magistral de adrese
memorie hexazecimal A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0000H 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Nealocat ...
0FFFH 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
1000H 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Circuit 1 ...
2FFFH 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1
3000H 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
Circuit 2 ...
4FFFH 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1
5000H 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Nealocat ...
FFFFH 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Analiza variatiei liniilor de adresa

Am reprezentat spaiul de adrese poziionnd cele dou circuite de memorie


ncepnd cu adresa 1000H. Zona de memorie cuprins n primul circuit ncepe la
1000H i se termin la 2FFFH, zona de memorie din al doilea circuit ncepe la
3000H i se termin la 4FFFH.

Se observ dou lucruri foarte importante:

Putem utiliza direct liniile de adrese A0 A12 pentru formarea adresei interne
a circuitelor (13 linii de adres 213 = 8K). Atenie, linia A12 trebuie negat
pentru a forma un spaiu coerent de memorie (0000H 1FFFH).

Liniile de adres A12, A13 i A14 fac diferenierea ntre adresele aflate n
circuitul 1 i adresele aflate n circuitul 2. Astfel pentru cnd funcia
A12*A13\*A14\+A12\*A13*A14\ este true adresele se afl n circuitul 1 iar
cnd funcia A12*A13*A14\+A12\*A13\*A14 este true adresele se afl n
circuitul 2.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 25

Stabilirea functiilor CS
Cu alte cuvinte putem conecta liniile magistralei de adrese sistem A0 A12 direct la intrrile de adrese ale
circuitelor (cu A12 -> /A12) i liniile A12, A13 i A14 le putem folosi ca semnale de selecie. Dac n
sistem nu se mai afl nici un alt dispozitiv mapat n acest spaiu de adrese este suficient utilizarea liniilor
A12-A14, dac mai exist i alte dispozitive trebuie s utilizm i linia A15 pentru a identifica n mod unic
cele dou circuite de memorie. Dac nu facem acest lucru este posibil ca n momentul emiterii adresei
9000H, de exemplu, (aflat n alt dispozitiv) circuitul 1 s ne returneze coninutul adresei 1000H (cele
dou adrese difer exact prin linia de adres A15).

n cazul nostru funciile de chip select sunt:


CS1 = A12*A13\*A14\*A15\+A12\*A13*A14\*A15\
CS2 = A12*A13*A14\*A15\+A12\*A13\*A14*A15\
n cazul n care funciile logice de selecie sunt prea complicate ele pot fi minimizate prin metode specifice
(teorema DeMorgan).
Dac modalitatea de variaie a valorilor liniilor de adres nu poate fi observat direct se pot utiliza metode
de tipul Karnaugh sau Quine-McCluskey pentru extragerea (i minimizarea) funciei logice de selecie.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Posibila implementare

/WR
A12 A13 A14 A15

1 2
1
2 1
6 3 /WE
4 2

1 2 5
1
3 CS1
2

1
2
6 1
1 2 4 3 /OE
2
5

1 2

/RD

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 27

Ierarhizarea memoriei

n majoritatea cazurilor sistemele de calcul nu dispun de un singur nivel de memorie;


sistemul de memorie nu este omogen din punct de vedere al tipurilor de circuite i
dispozitive care l alctuiesc.

Un prim exemplu de ierarhizare a memoriei l constituie mprirea memoriei pe dou


niveluri:

memorie principala (memorie cu care UCP lucreaz n mod direct)


memorie secundar (memorie accesibil prin intermediul unui dispozitiv de
control suplimentar).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Ierarhizarea memoriei
n majoritatea cazurilor sistemele de calcul nu dispun de un singur nivel de memorie;
sistemul de memorie nu este omogen din punct de vedere al tipurilor de circuite i
dispozitive care l alctuiesc. Un prim exemplu de ierarhizare a memoriei l constituie
mprirea memoriei pe dou niveluri: memorie principala (memorie cu care UCP
lucreaz n mod direct) i memorie secundar (memorie accesibil prin intermediul
unui dispozitiv de control suplimentar).

Apariia celui de al doilea nivel de memorie a fost argumentat de raiuni economice i


practice.
Memoria principala este format din circuite electrice care nu permit stocarea unor
mari cantiti de informaii i care nu permit ntotdeauna stocarea informaiilor n
absena alimentrii cu energie electric. n schimb, memoria principal ofer un timp
de acces foarte mic.
Spre deosebire de aceasta, memoria secundar este format din dispozitive de
stocare magnetice sau magneto-optice, cu un timp de acces mai ridicat, dar cu
posibiliti de stocare de mari dimensiuni i cu faciliti de pstrare a datelor i n
absena alimentrii cu energie electric.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 29

Memorie principala/
Memorie secundara

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 30

15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Niveluri de memorie

Memorie
de masa
Microproces or Memorie (Banda
Memorie secundara magnetica)
UCP principala (Hard-dis k)
On-board (DRAM)
Cache
On-chip (SRAM)
Regis trii
Registre cache

Ti mp (ns): 1s 10s 100s 10000000s 10000000000s


10s ms 10 sec
Cap(byte): 100s Ks Ms Gs Ts

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 31

Principiul localitatii
S-a evideniat existena unui principiu, numit principiul localitii
programelor (program locality), extensibil si la date.
Dac la momentul t se face acces la adresa de memorie x, exist o
probabilitate ridicat ca, la momentul t + t, s se efectueze accesul
la adresa de memorie x + x, unde t si x sunt valori mici ale lui t
si x.
Principiul localitatii:
Programele executa secvene de instructiuni
Programele au bucle
Matricile sunt memorate n blocuri contigue
Datele sunt plasate n acelai segment

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 32

16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Funcionarea memoriei cache on-board

Multe operatii software implica


repetarea executiei aceleiasi
secvente de instructiuni.
La executia unei secvente de
program, cele mai recente Magistrala de adrese
instructiuni extrase din memoria Memorie
principala sunt automat salvate in Microprocesor
Control
Memorie
Control
principala
Cache
memoria cache. Loop

O copie a acestor instructiuni Loop


Loop

ramane in cache (ex. O bucla de Magistrala de Date

instructiuni loop)
Rutina este copiata in cache
Cand instructiunile se repeta,
microprocesorul re-acceseaza
instructiunile memorate in cache in
loc sa le re-extraga din memoria
principala.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 33

Funcionarea memoriei cache on-board


Definitii si proiectare
Definitie: Conditia cache hit a unui ciclu de memorie este considerata indeplinita,
daca informatia de accesat se gaseste in memoria principala si memoria cache. In
acest caz se acceseaza copia informatiei din cache si nu se mai initiaza un ciclu de
memorie principala.
Definitie. Cache miss este conditia indeplinita atunci cand informatia din cache nu
este aceeasi cu cea din memoria principala adresata. In acest caz, microprocesorul
citeste codul sau datele din memoria principala si le scrie in locatia corespunzatoare
din cache.
Definitie. Hit rate / Rata de succes - masoara cat de eficient opereaza subsistemul de
memorie
Hit rate = (numarul de hits/ numarul total de cicluri magistrala) x 100%
Proiectarea memoriei cache. Prin proiectare se poate imbunatati factorul hit rate.
Elementele de interes sunt: marimea , organizarea si metoda de update ale memoriei
cache.
Marimea. Cu cat este mai mare memoria cache, cu atat este mai mare factorul
hit rate. Sansa ca informatia cautata sa se afle in cache este mai mare intr-o
memorie cache mai mare. Totusi cu cat este mai mare memoria cache cu atat
creste si costul acesteia.
Organizare. 2 forme: direct-mapped cache si two-way set associative.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 34

17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Funcionarea memoriei cache on-board

Direct-mapped cache

Memoria cache este un array


organizat intr-un singur banc
de memorie de 64kB. Cache x(n)
x()
Memoria principala este x(2)
x(1)
vazuta ca o serie de pagini 64KB x x(0) Page n
de 64 kB fiecare. Page
Page 2

X(0), X(1), , X(N) sunt Pagina 1

Memoria principala
locatii de date din memorie la
Pagina 0

acelasi offset X in toate


paginile din memoria
principala, care se mapeaza
pe singura locatie X din
memoria cache.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 35

Funcionarea memoriei cache on-board


2-way set associative
Cache memory este organizata
in 2 bancuri de cate 32kB
fiecare, Bank A si Bank B.
Paginile din memoria principala Bank A Bank B x(n)
au aceeasi marime ca a unui x()
x(2)
banc din cache. x(1)
32KB x(A) x(B) x(0)
Sunt de doua ori mai multe Page
Page n

pagini decat la organizarea direct Page 1


Page 2

mapped. Page 0 Memoria Principala


O locatie de memorie la un
anumit offset din fiecare pagina
se poate mapa intr-o locatie de
memorie cache fie in A fie in B.
De exemplu, X(2) poate fi in
cache fie in X(A) ori X(B), cu un
factor hit rate mai mare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 36

18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Funcionarea memoriei cache on-board


2-way set associative
Metoda de update. Se refera la algoritmul de inlocuire a informatiilor si la politica de
scriere.
Metodele de inlocuire se bazeaza pe faptul ca cea mai recent utilizata informatie are o
sansa mai mare de a fi reutilizata. Pentru associative mapping un algoritm de inlocuire
stabileste care block va fi inlocuit.
Pentru 2-way set associative se utilizeaza algoritmul LRU least recently used (LRU).
LRU inlocuieste blocul din cache la care nu s-a facut referire de cea mai lunga
perioada de timp. Astfel, subsistemul hardware urmareste daca info X(A) din Bank A
ori X(B) din Bank B este cea mai recent utilizata.
Examplu: X(0) din pagina 0 tocmai a fost incarcata la X(A) din Bank A; X(B) din Bank
B este din pagina 1 si nu a mai fost accesata de o lunga perioada de timp. O noua info
X(3) din pagina 3 este accesata si trebuie sa inlocuiasca o valoare din X(A) ori X(B).
Pe baza LRU se selecteaza X(B) din Bank B.
LRU pastreaza in cache cea mai recent folosita informatie. Rezulta un factor hit rate
mai mare, deci sistem mai performant.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 37

Funcionarea memoriei cache on-board


2-way set associative
Politica de scriere trebuie sa rezolve problema cum sa se mentina consistent
continutul memoriei principale cu continutul memoriei cache fara a pierde prea mult din
performanta?

write through toate operatiile de scriere au loc si in memoria principala. Daca


locatia adresata este in cache, memoria cache este actualizata astfel incat sa fie
coerenta cu memoria principala. Pentru scriere, procesorul intotdeauna va avea o
viteza mai mica cu memoria principala. Deoarece procentul de scrieri este mic
(ca. 15%), aceasta schema nu conduce la o reducere prea mare a performantei.
write through with buffered write - este similar cu write-through, dar in locul
scrierii in memoria principala, adresa de scriere si datele sunt stocate intr-un
buffer de viteza mare. Buferul de scriere transfera datele in memoria principala in
timp ce procesorul isi continua activitatea. Ofera o viteza mai mare, dar necesita
un hardware mai complex.
write back se face update doar in memoria cache, care nu mai se pastreaza
coerenta cu memoria principala. Cand blocul este inlocuit din cache, continutul
sau trebuie sa fie copiat inapoi in memoria principala. Ofera o performanta mai
buna, dar este necesar un hardware mai complex.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 38

19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor


Mecanismele de detectare a erorilor presupun stoparea operaiilor cu memoria
nainte ca informaii greite s fie utilizate n sistem. Corecia erorilor presupune
reconstruirea informaiilor greite, pe baza unor informaii redundante, chiar n
timpul funcionrii sistemului. Exist dou tipuri de erori: permanente (hard errors)
sau aleatoare (soft errors). Erorile permanente sunt cauzate de defecte hardware,
iar erorile aleatoare de interferene, desincronizri sau erori de program.
Mecanismul general de detectare si corectie: pentru M biti de date se adauga K
biti de cod. Rezultatul compararii bit cu bit se numeste sindrom

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 39

Detectarea si corectia erorilor


Una dintre metodele cele mai utilizate de detectare si corectie a erorilor se
bazeaz pe utilizare unor bii de paritate. n cele mai multe cazuri se utilizeaz
un singur bit de paritate pentru fiecare cuvnt de date din memorie. O astfel de
metod poate detecta erorile simple (modificare unui singur bit din cuvnt), nu i
erorile multiple, i nu poate corecta aceste erori.

Pentru detectarea erorilor multiple i corecia erorilor simple se poate extinde


metoda bitului de paritate de la nivel de cuvnt la nivel de bloc, pe lng bitul de
paritate al fiecrui cuvnt se utilizeaz i un bit de paritate la nivel de coloan a
blocului de cuvinte.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 40

20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor

Verificarea paritatii detecteaza un singur bit eronat din memorie. Pentru


fiecare 8 biti de date se adauga 1 bit de paritate.
Paritate EVEN - al 9-lea bit devine 1 daca exista un numar par de 1 in
toti cei 9 biti.
Paritate ODD - al 9-lea bit devine 1 daca exista un numar impar de 1 in
toti cei 9 biti.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 41

Detectarea si corectia erorilor

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 42

21
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 43

Detectarea si corectia erorilor


Suma de control sau BCC (Block-Check Character). Poate detecta biti
multipli eronati. - Suma in complement fata de 2 a secventei de octeti
(negativul sumei). Nu exista eroare daca rezultatul adunarii datelor cu suma
de control este 0.
Date: 4 octeti in hexa Verificarea se face prin adunarea si
verificarea cu 00 (se ignora transportul)
Calculeaza suma Inverseaza si aduna 1 pentru a
obtine octetul sumei de control

Nu este intotdeauna adevarat:


Daca (45 se schimba cu 44) AND ( 04 devine 05), atunci eroarea este nedetectata

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 44

22
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor

CRC (Cyclic Redundancy Check) verifica transferul datelor prin hardware (ex.
Hard-drives). Datele sunt stream-uri seriale de n-biti. Bitii sunt coeficientii unui
polinom (M(X)): b0 cmps bit, iar bn cms bit.

Pentru un stream 16 biti : 26F0H = 0010 0110 1111 0000

CRC se afla:

Unde G(X) este numit generator polinomial. Cel mai folosit este:

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 45

Detectarea si corectia erorilor

Restul R(X) este adaugat blocului de date. Cand CRC si R(X) sunt calculate de
receiver, R(X) trebuie sa fie 0. Deoarece G(X) este o putere a lui 16, R(X) nu
poate avea un ordin mai mare ca 15.

Valoarea ce se va adauga: 1101 1010 1100 0101 = DAC5H

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 46

23
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor

Paritate, BCC si CRC sunt doar mecanisme de detectie. Sistemul este trecut in
starea halt daca este detectata vreo eroare. Corectia erorilor este inclusa in noile
sisteme. SDRAM include ECC (error correction code).
Corectia va permite sistemului sa continue operarea. Corectia erorilor costa in
termeni de extra-biti pentru codul de corectare a erorilor.
Corectia erorilor bazata pe Codurile Hamming. Pentru corectia unui singur bit
dintr-un octet de date sunt necesari 4 biti de paritate.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 47

Detectarea si corectia erorilor

Codul Hamming: Detectia si corectia unui bit din date reprezentate pe 4 biti: La
intersectiile celor trei cercuri sunt 7 compartimente. Bitii de date se pozitioneaza in
zonele de intersectie (a), celelalte zone se completeaza cu 1 sau 0 (biti de
paritate) a.i. in fiecare cerc sa fie un numar par de 1 (b). Daca se schimba un bit
de date (c) la intersectia cercurilor A si C acesta este detectat usor (d).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 48

24
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor

Codul Hamming: Detectia si corectia unui bit dint date reprezentate pe 8 biti:
pozitionarea bitilor de date si a celor 4 biti de paritate. Bitii de paritate (C1, C2, C4,
C8) sunt pe pozitiile puteri ale lui 2: ex. 1,2,4,8.
Fiecare bit de paritate este SAU-exclusiv intre bitii de date de pe pozitiile care au
1 pe pozitia egala cu exponentul puterii lui 2

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 49

Detectarea si corectia erorilor

Codul Hamming: Exemplu: 8 biti de date: 00111001


Calculul bitilor de paritate: Daca bitul D3 se schimba din 0 in 1

Se calculeaza sindromul: bitul de pe pozitia 6 ( asociat bitului de pe poz. 3 din


octetul de date este gresit

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 50

25
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor

Codul Hamming: detectarea erorilor duble date pe 4 biti: daca apar 2 erori (c),
procedura de verificare (d) se inrautateste si creeaza a treia eroare (e). Solutie:
adaugarea unui al 8-lea bit care va fi setat a.i. numarul total de 1 din diagrama sa
fie par. Acest bit suplimentar va detecta eroarea (f)

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 51

Detectarea si corectia erorilor

Circuitul 74LS636 corecteaza erorile prin memorarea a 5 biti de paritate pentru


fiecare octet de date.
Are 8 pini de date (I/O); 5 pini de paritate (I/O), 2 pini de control, 2 iesiri de eroare
: Single error flag (SEF), Double error flag (DEF).

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 52

26
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Detectarea si corectia erorilor

Prin introducerea biilor de paritate la nivel de bloc de pot detecta erorile multiple
i pot fi corectate erorile simple.

Un standard de corecie bazat pe implementarea hardware a bitului de paritate la


nivel de cuvnt este ECC (Error Correction Code). Acest mecanism implic att
suport hardware la nivel de circuit de memorie, ct i suport hardware i software
la nivel de sistem.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 53

27
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Agenda

Sistemul I/O

Interfatarea cu circuitele de Intrare/Iesire

Circuite suport programabile

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 1

Sistemul I/O
Este format din module I/O
Modul I/O
Functii principale: interfatare cu microprocesorul prin
intermediul magistralei; interfatare cu echipamente
periferice prin linii semnale de control, date si stare.
Echipamentele externe pot fi:
citite de utilizatori umani: display, imprimante;
citite de alte masini (comunicare cu alte echipamente):
disk magnetic, senzori, etc.
pentru comunicatii la distanta cu alte sisteme.
Categorii de cerinte functionale ale unui modul I/O:
Control si timing;
Comunicare cu microprocesorul;
Comunicare cu echipamente externe;
Tampon pentru date;
Detectare erori.

Etc..

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 2

1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Sistemul I/O
Categorii de cerinte functionale ale unui modul I/O:

Control si timing: coordoneaza fluxul de trafic intre resursele interne si ech. externe.
Exemplu scenariu. Controlul transferului de date intre un device si microprocesor: 1.
procesorul verifica stare device prin interogarea modulului I/O; 2. modulul I/O intoarce
starea device-ului; 3. daca device este operational si gata sa transmita atunci
procesorul cere datele printr-o comanda modulului I/O; 4. modulul I/O obtine datele de
la device; 5. datele sunt transferate de la modulul I/O la procesor.
Comunicare cu microprocesorul. Se realizeaza prin: decodificarea comenzii (control, test,
citire, scriere); date (schimb de date prin magistrala de date); raportarea starii prin semnale
de stare (BUSY, READY); recunoasterea adresei (adresa unica pentru fiecare periferic pe
care-l controleaza).
Comunicare cu echipamente externe: comenzi, date si informatii de stare.
Tampon pentru date: capabil sa opereze la vitezele diferite ale echipamentului si memoriei.
Detectare erori:
erori mecanice sau electrice raportate de device (ex. paper jam, bad disk track)
Modificarea pattern-ului de biti transmis de la device la modulul I/O;
Erori de transmisie: detectare cu bit de paritate.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 3

Modaliti de acces la spaiul I/O

Spatiu I/O izolat


Se utilizeaza linii de comanda citire/scriere I/O
separate
Setul de instructiuni include instr.pt.op. I/O

Spatiu I/O mapat


Un singur spatiu de adrese pentru locatiile de
memorie si echipamentele I/O
Registrele de date si stare ale modulelor I/O
sunt vazute de mp. ca si locatiile de memorie.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 4

2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Exemple simple de porturi I/O

Port de intrare pe 8 biti cu 74ALS244 Port de iesire pe 8 biti cu 74ALS374

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 5

Aplicatie

Sistem supervizor de control cu 64 switches si 64 LEDs.


Magistrala sistem include 8 linii de date, 16 linii de adrese, linii de control
pentru citire si scriere. Fiecare 8-bit input port (switch) si perechea
corespunzatoare 8-bit output port (LED) au aceeasi adresa.
Spatiul I/O este de la CBF0H-CBF7H.
Decodificatoare, latch-uri, buffere sau porti logice sunt utilizate dupa cum
este nevoie.
Subrutinele citesc switches si seteaza LED-urile corespunzatoare.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 6

3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Aplicatie

Arhitectura sistemului de control

Input
Read
64 64 Switches
Data Bus (D0-D7) 8 8 8-bit
buffers

Address
Bus
(A0-A15) CS
DCD
16 Logic
Output
64 64 LEDs
8 8-bit
buffers
Write

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 7

Aplicatie

Logica decodificatoare DCD: decodifica liniile de adresa sa genereze


semnalele de selectie.
Fiecare linie a tabelului este adresa binara de la CBF0 la CBF7
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

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

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

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

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

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

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

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

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

Constant Variable

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 8

4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Aplicatie

Implementarea logicii decodificatoare

CS1
CS2
CS3
CS4
CS5
CS6
CS7
CS8

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 9

Implementarea sistemului

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 10

5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Aplicatie

Secventa de instructiuni de operare a sistemului

MOV DX,CBF4H ; incarca adresa portului.


IN AL,DX ; citeste valoare switch-uri.
OUT DX,AL ; actualizeaza starea LED-urilor

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 11

8255A Interfata paralela programabila

Diagrama generala

PPI I/O device


Data Data in ready
Control register
Data in ack
p Read

Write Buffer data in Data in

Reset Data out


Buffer data out
IR
Data out ready
Status register
READY
Data out ack
Adr
DCD
der

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 12

6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

8255A Interfata paralela programabila

Conectarea la magistrala sistemului

8255A
Data (D0-D7)
Port A

Reset PA 0;7
Group A A1 A0 Selected Port
Write Port C PC 7;4
0 0 Port A
H L
Read PC 0;3 0 1 Port B
Port B 1 0 Port C
Group B 1 1 Control register
PB 0;7
READY
Control reg.
Adr
CS
DCD
der A1
A0

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 13

8255A Interfata paralela programabila

Exemplu: Conectarea 8255A la magistrala sistemului. Magistrala sistemului


are 16 linii de date (D0-D15), IORC\ si IOWC\ comenzi pentru operatiile de
citire, respectiv de scriere. Porturile I/O pentru 8255A sunt: Port A: 00C0H,
Port B: 00C2H, Port C: 00C4H si Control Register: 00C6H.

Procedura de proiectare: se decodifica adresele rezervate pentru 8255A


astfel incat sa se obtina semnalul SEL\ pentru pinul de intrare CS\.
Adresele in forma binara sunt:

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0
0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0
Constant A1 A0 C

8255A

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 14

7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

8255A Interfata paralela programabila

Implementarea selectiei si interfatarea

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 15

8255A Interfata paralela programabila

Programarea
Octetul de control
7 6 5 4 3 2 1 0

D7 D6 D5 D4 D3 D2 D1 D0
Group B
Port C (PC3 PC0)
1 inputs
0 outputs
Port B
1 input
0 output
Mode
0 mode 0
1 mode 1
Group A
Port C (PC7 PC4)
Mode set flag 1 inputs
1 - active 0 outputs
Port A
1 input
0 output
Mode
00 mode 0
01 mode 1
1X mode 2

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 16

8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

8255A Interfata paralela programabila

Programarea
8255A Set/Reset Port C

7 6 5 4 3 2 1 0

0 X X X D3 D2 D1 D0

Bit set/reset
1 set
0 reset
Bit select

Exemplu: Scrierea 00001101 in control register al


8255A selecteaza bitul 6 si-l seteaza pe 1. Astfel,
output PC6 a Portului C este modificata pe nivelul 1
logic.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 17

8255A Interfata paralela programabila

Modurile de operare: Mod 0, Mod 1 si Mod 2

Modul 0. Selecteaza operarea simpla ca I/O. Bitii cuvantului de control


sunt asociati fiecarui grup. Grupul A de 12 biti consta din port A (8 biti) si
4 biti din port C 7:4 . Similar grup B de 12 biti consta din port B (8 biti) si 4
biti din port C 3:0.
D4 port A
D3 port C 7:4
D1 port B
D0 port C 3:0

In modul 0 fiecare grup poate fi initializat ca output sau input.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 18

9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

8255A Interfata paralela programabila

Modurile de operare: Mod 0, Mod 1 si Mod 2

Modul 0. Exemplu: Initializare in modul 0 Group A si Group B


outputs; adresa registrului de control este COMMAND.

MOV AL, 10000000B ; set command byte


MOV DX, COMMAND ; load control register address
OUT DX, AL

Aplicatii: 8255A opereaza in Modul 0 atunci cand Portul A si Portul B


sunt iesiri outputs - sunt conectate la un set de 8 LED-uri 7-
segmente.
8255 opereaza in Modul 0 - iesiri sa ofere semnale prin Port A
pentru rotirea armaturii unui motor pas cu pas.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 19

8255A Interfata paralela programabila

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 20

10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

8255A Interfata paralela programabila

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 21

Alte circuite suport


8279 - Programmable keyboard/display interface
Permite scanarea unei tastaturii de 64 de taste avnd un buffer intern
de 8 taste
Permite controlul unui afiaj cu 16 caractere avnd o memorie intern
RAM de 16 x 8

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 22

11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Alte circuite suport

8279 - Programmable keyboard/display interface


Pini
A0 selecteaz modul de date sau de control
/BD - terge display-ul
/CS chip select
DB7-DB0 pini de date bidirecionali
IRQ Interrupt request indic apsarea unei taste
CN/ST, SHIFT Control, Shift conectate la butoanele echivalente ale
tastaturii
RL7-RL0 Return Line - linii de citire a tastaturii
SL3-SL0 Scan Line linii de scanare a tastaturii i display-ului
OUTA,B0-OUTA,B3 linii de comand pentru display

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 23

Alte circuite suport


8279 - Programmable keyboard/display interface Interfatarea cu
tastatura

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 24

12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Alte circuite suport


8279 - Programmable keyboard/display interface Interfatarea cu
display-ul

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 25

Alte circuite suport


8254 Real-time clock

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 26

13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Alte circuite suport


8254 Real-time clock - Cuvantul de comanda

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 27

Alte circuite suport


8254 Real-time clock Moduri de functionare

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 28

14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Alte circuite suport


8254 Real-time clock Moduri de functionare (2)

Mod 0 monostabil - dup iniializare OUT devine 0 pn cnd


registrul intern de numrare devine 0, pinul G poate dezactiva
numrtoarea
Mod 1 monostabil programabil - idem, dar cu activare pe pinul G
Mod 2 generator de frecven / divizor, pinul G poate dezactiva
numrtoarea
Mod 3 generator de semnal dreptunghiular, pinul G poate dezactiva
numrtoarea
Mod 4 declanator software, pinul G poate dezactiva numrtoarea
Mod 5 declanator hardware numararea este initiata prin semnalul
pe poarta G.

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 29

Alte circuite suport


8254 Real-time clock Exemplu de utilizare

Liliana Dobrica, Sisteme cu Microprocesoare


2015-2016 30

15

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