Documente Academic
Documente Profesional
Documente Cultură
com
SISTEME CU
MICROPROCESOARE
Contact
Laborator: ED312
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Obiectivele cursului
Obiective generale:
Obiectivele cursului
Obiective specifice:
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Obiective aplicatii
Obiective laborator:
Evaluarea cunotinelor
Structura cursului:
14 spt. x 3 ore/spt. = 42 ore curs
14 spt. x 2 ore/spt. = 28 ore aplicaii
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
Cuprins curs
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bibliografie curs
Bibliografie curs
www.intel.com
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
INTRODUCERE
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.
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
INTRODUCERE
INTRODUCERE
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
INTRODUCERE
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
80286
Apare in 1982.
Memoria adresabila: 16 Mbyte.
Intel 80287 coprocesorul matematic.
Operare in modul protejat
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
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Generatia Pentium
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
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Generatia Pentium
Pentium Pro
Co-Processor
66MHz
memory
Int CPU1
16K 256K
Int CPU2 L1 L2
cache cache
Int CPU3
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Generatia Pentium
Pentium PRO
Diagrama bloc
functionala a
Pentium PRO
Generatia Pentium
Pentium PRO
Executia out-of-order a instructiunilor Executie dinamica ce
realizeaza urmatoarele concepte:
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Generatia Pentium
Pentium PRO
Generatia Pentium
Pentium PRO
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.
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
15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Generatia Pentium
Co-Processor
133MHz
memory
Int CPU1
16K 256K
Int CPU2 L1 L2
cache cache
Int CPU3
Pentium
III
16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Generatia Pentium
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).
Introduction
17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Viitorul microprocesoarelor!
18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Arhitectura sistemului
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Arhitectura Sistemului
Arhitectura Sistemului
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Arhitectura Sistemului
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.
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.
Arhitectura Sistemului
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 .
Microprocesorul 8086
Configuratia pinilor:
Mod minim
Mod maxim
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
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.
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.
Microprocesorul 8086
Cicluri magistrala:
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Microprocesorul 8086
Diagrama de timp a operatiei de citire
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.
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Microprocesorul 8086
Demultiplexare magistrala
(partiala -mod minim):
Microprocesorul 8086
Demultiplexare magistrala
(completa -mod minim):
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Microprocesorul 8086
Microprocesorul 8086
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Microprocesorul 8086
Microprocesorul 8086
Configuratie magistrala mod maxim
14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Memoria si microprocesorul
Memoria si microprocesorul
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.
Memoria logica
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.
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.
17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Memorii fizice
Memorii fizice
18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Memorii fizice
Memorii fizice
19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
Modelul de programare
Adresarea memoriei in modul real
Modelul de programare
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Modelul de programare
Registre de uz general,
Registre de uz special si
Registre de segment.
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
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Registre de uz general
Registre de uz general
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.
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Registre de uz general
Registre de uz general
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.
Registre de uz special
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Registre de uz special
EFLAGS
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
EFLAGS
=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.
EFLAGS
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
EFLAGS
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Registre de Segment
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.
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.
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.
Registre de Segment
SS (Stack Segment):
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.
14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Segment si Offset
15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Segment si Offset
Segment si Offset
17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Segment si Offset
Segment si Offset
Exemplu de memorie a sistemului cu 4 segmente
18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Segment si Offset
Exemplu sistem de memorie cu 4 segmente
19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
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
.
L
00000
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Segment si Offset
Relocare
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Moduri de adresare
Exemplu:
MOV AX, BX
Copiaza continutul lui BX, care este specificat ca operand sursa, in AX,
operand destinatie.
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Moduri de adresare
Mod de adresare imediat
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Moduri de adresare
Mod de adresare imediat
Moduri de adresare
Mod de adresare cu operand din memorie
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Moduri de adresare
Mod de adresare cu operand din memorie
Moduri de adresare
Mod de adresare cu operand din memorie
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Moduri de adresare
Mod de adresare cu operand din memorie
Adresarea directa
Moduri de adresare
Mod de adresare cu operand din memorie
Adresarea directa
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
Moduri de adresare
Mod de adresare cu operand din memorie
Adresare indirecta prin registru
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Moduri de adresare
Mod de adresare cu operand din memorie
Adresare bazata
Moduri de adresare
Mod de adresare cu operand din memorie
Adresare bazata
Exemplu:
MOV [BX]+BETA, AL
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.
Moduri de adresare
Mod de adresare cu operand din memorie
Adresare Indexata.
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.
Moduri de adresare
Mod de adresare cu operand din memorie
Memorie
Adresare bazata indexata
Se combina adresarea bazata cu Element (m,n)
.
adresarea indexata. .
.
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.
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.
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
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.
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
Setul de Instructiuni
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]
Setul de Instructiuni
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)
15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
Modul real
Setul de instructiuni - continuare
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
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
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
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.
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
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.
Setul de Instructiuni
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
Setul de Instructiuni
Exemplu:
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
Setul de Instructiuni
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.
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
Setul de Instructiuni
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
Setul de Instructiuni
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
PUSH AX
POP DX
Fara operand: PUSHF; POPF; PUSHA; POPA; PUSHAD;
POPAD push flags; push all (16-biti) push all 32-biti;
Setul de Instructiuni
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
Setul de Instructiuni
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Setul de Instructiuni
Agenda
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
MICROPROCESORUL 80286
MICROPROCESORUL 80286
MICROPROCESORUL
80286
Magistralele nu mai
sunt multiplexate!
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
MICROPROCESORUL 80286
MICROPROCESORUL 80286
80286
Circuite suport
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
MICROPROCESORUL 80286
80286
Semnale
magistrala
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Registrul PSW
14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Microprocesorul 80386
Microprocesorul 80386
80386SX vs 80386DX
15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Microprocesorul 80386
Organizarea memoriei
Microprocesorul 80386
Semnale magistrala
16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Microprocesorul 80386
Semnale magistrala
Microprocesorul 80386
Diagrama Interna
17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Alte elemente:
Modul protejat
Continutul registrului de segment
21
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
00
00
92
12
00
00
00
F7
22
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
Gestiunea memoriei
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
IDTR 48 biti.
Care este valoarea maxima ce poate fi asignata limitei din IDTR
stiind ca microprocesorul poate servi maxim 256 niveluri de
intreruperi?
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Gestiunea memoriei
Gestiunea memoriei
Modele de memorie: segmentare si paginare
Translatia adreselor din spatiul virtual in spatiul
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Astfel doar o mica parte din informatiile memoriei virtuale se afla in memoria fizica
la un moment dat.
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
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.
16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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)
Modelul de protectie
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Modelul de protectie
Descrierea accesului de memorie
Modelul de protectie
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.
Niveluri de privilegii
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Niveluri de privilegii
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.
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
where
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Poarta de apel
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
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.
Poarta de apel
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
C
C
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
TSS contine toate informatiile necesare pornirii sau opririi unui task.
TSS specifica
14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
Invocarea taskurilor
17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
Multitasking
Multitasking continuare
Multitasking
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;
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.
Multitasking
In practica:
taskurile variaza ca importanta;
nu sunt executate mereu la intervale de timp regulate;
pot fi executate doar cand anumite conditii sunt indeplinite.
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Multitasking
Gata de
In executie
executie
Multitasking
Datorita
Unui Finalizarea
semnal taskului Slotul de Unui semnal
intern timp a extern
expirat
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Multitasking
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.
Multitasking
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Multitasking
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)
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
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).
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Tipuri de ntreruperi
ntreruperi vectorizate;
ntreruperi nemascabile;
ntreruperi nevectorizate;
ntreruperi cu relansare.
ntreruperi vectorizate
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
ntreruperi nemascabile
ntreruperi nevectorizate
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
ntreruperi cu relansare
Timpul de laten
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Prioriti
ntreruperi vectorizate
Pooled vs. Interrupt Controller
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Semnificatia pinilor
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
8284 INT
IR0
INTR INT 82C59A 82C59A
IR1
INT Slave Slave
82C59A IR2 IR7 IR0 IR7
8086 Master
6 8
ALE
8
OE/
Magistrala de Adrese / Date
G/ DIR
Magistrala de Date
Data bus
transceiver
74F245
Liliana Dobrica, Sisteme cu Microprocesoare
2015-2016 15
Magistrala de Control
CS/ A0 D0-7 INTA/ INT CS/ A0 D0-7 INTA/ INT CS/ A0 D0-7 INTA/ INT
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
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).
Tipuri de Capcane
a) capcane activate ntotdeauna;
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Exemple tipice:
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
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.
Instrumente de Depanare
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
15
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
21
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Prelucrarea
intreruperilor in mod
real la 80386DX
22
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
23
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
24
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
25
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
26
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
Sistemul de memorie
Ierarhizarea memoriei
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
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Tipuri de circuite de
memorie
RAM
ROM
Tipuri de circuite de
memorie
Configuratia pinilor
Conectare Adrese
Scriere
ROM Citire
Selectie
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
EPROM
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
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.
Memoria RAM
DRAM
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Memoria RAM
DRAM - normal
DRAM refresh
Necesita hardware extern
Memoria RAM
Controller DRAM
Exemplu: 82C08 controleaza 1MB DRAM pentru un sistem pe 16 biti de date si 24
linii de adrese.
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.).
Interfatarea cu circuitele de
memorie
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.
Magistrala sistem
Adres
Date
Comenzi
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Decodificarea adreselor
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
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).
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
Ierarhizarea memoriei
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).
Memorie principala/
Memorie secundara
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
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
16
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
17
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Direct-mapped cache
Memoria principala
locatii de date din memorie la
Pagina 0
18
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
19
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
20
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
21
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
22
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
CRC se afla:
Unde G(X) este numit generator polinomial. Cel mai folosit este:
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.
23
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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.
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).
24
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
25
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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)
26
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Prin introducerea biilor de paritate la nivel de bloc de pot detecta erorile multiple
i pot fi corectate erorile simple.
27
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Agenda
Sistemul I/O
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..
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.
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Aplicatie
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Aplicatie
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
Aplicatie
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
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Aplicatie
CS1
CS2
CS3
CS4
CS5
CS6
CS7
CS8
Implementarea sistemului
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Aplicatie
Diagrama generala
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
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
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
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
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
12
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
13
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
14
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
15