Sunteți pe pagina 1din 86

Obiectivele cursului de MM/ASC

nelegerea structurii unui sistem cu microprocesor


nelegerea structurii interne a unui microprocesor
din familia X86
nelegerea structurii interne a unui microcontroler
din familia 8051
Elemente de limbaj de asamblare n cadrul celor
14 lucrri de laborator

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 1


Bibliografie
ee.ubm.ro/cursuri/mm.htm
Radu Blan, Microcontrolere. Structur i aplicaii,
Ed. Todesco, 2002
M. Morris Mano, Charles R. Kime, Logic and
Computer Design Fundamentals - ediia 2, Prentice Hall
PTR, 1997.
Edward Karalis, Digital Design principles and
Computer Arhitecture, Prentice Hall PTR, 1999.
Sztojanov, I. .a. - De la poarta TTL la microprocesor,
Editura Tehnic, Bucureti, 1987.
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 2
1| Istoric

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 3


Preistoria
1642. B. Pascal realizeaz o main de calculat (+,-).

1694. von Leibniz construiete o main de +,- i x,:


1823. Ch.Babbage proiecteaz primul calculator cu
execuie automata a programului.
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 4
Prima generaie
1904 : John Fleming inventeaz tubul cu vid
1945 : John Von Neumann definete arhitectura cunoscut
sub numele de Von Neumann utilizat i n zilele noastre.
1937 - 1945. Maini electromecanice de calculat, bazate pe
relee electromagnetice (Mark I), cu program cablat (fig. 1).
1946 : ENIAC 30 Tonnes / 72 m2/140 K watts/ 19000 tuburi,
1500 relee. 350 x /s 5000 + /s. Programare prin fire (fig. 2).

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 5


A doua generaie
1947 : Inventarea tranzistorului, n anul 1947, de ctre John
Bardeen, Walter Brattain i William Shockley n 1948 la
Bell Labs.

1965 : Mini calculatorul PDP 8 1MHz,


790 W, 1m2
Memoire de date de 4096.

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 6


A treia generaie
1961 Fairchild Semiconducteur, circuite integrate

1965 : Legea lui Moore . Complexitatea circuitelor x 2 / 1,5 ani

1971 : Intel a lansat primul microprocesor i4004 (60000


instructiuni /s , frecvena 108 KHz, 2300 tranzistoare.

1978 : Intel a lansat microprocesorul 8086 330 000 instruciuni /s


1981 : IBM PC

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 7


A patra generaie
1985 : Intel 80386, 1 milion de instruciuni/s,
200.000 transistoare

1986 : Primele maini paralele

1990 : Calculatoare multimedia

2000 : Intel a lansat Pentium IV

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 8


Legea lui MOORE
100 Millioane 1000 MIPS
Transistoare
x 2 la 2 ani
Pentium III
10 Millioane 100 MIPS

Pentium II

80486 Pentium
1 Million 10 MIPS

80386

100 000 80286


1 MIPS

8086

10 000 0,1 MIPS

4004 x 2 la 18 luni
1000 0,01 MIPS

An 1975 1980 1985 1990 1995 2000

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 9


2| Arhitectura microprocesoarelor

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 10


John Von Neumann

1903-1957
Matematician
conceptul de program
nregistrat
Arhitectura Von Neumann

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 11


Arhitectura microprocesoarelor
Arhitectura Von Neumann

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 12


Arhitectura microprocesoarelor
Arhitectura Harward

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 13


Arhitectura microprocesoarelor
Arhitectura Super Harward

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 14


Modelul magistralelor de sistem
Mag. Adrese

P Mag. Date

Mag. Comenzi

Memorie Interfata Interfata


de I/E de I/E

Dispozitive
periferice

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 15


Nivele de maini virtuale

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 16


Evolutia microprocesoarelor din
familia Intel

Nume Anul Latime Latimea Spatiul Observatii


reg. mag. de de
date adresare
4004 1971 4 4 1K Primul microprocesor intr-un cip
8008 1972 8 8 16K Primul microprocesor pe 8 biti
8080 1974 8 8 64K Primul mare succes de piata
8085 1974 8 8 64K Versiune imbunatatita de 8080
8086 1978 16 16 1M Primul microprocesor pe 16 biti
8088 1980 16 8 1M Procesor pentru calculatoarele PC XT
80186 1982 16 16 1M 8086 cu suport de i/e pe cip
80188 1982 16 16 1M idem pentru 8088
80286 1982 16 16 16M Procesor pentru primele calc. PC AT
80384 1985 32 32 70T UCP pe 32 biti
80386SX 1988 32 16 70T 80386 cu magistrala tip 80286
80486 1989 32 32 70T 80386 cu coprocesor si MMU incorp.
Pentium 1992 32 64 70T Versiune mai rapida 80486

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 17


Semnalele unui microprocesor
semnale de control
semnale de intrerupere
semnale pentru arbitrarea magistralei
semnale de stare
semnale diverse.

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 18


Structura tipica a unui sistem cu microprocesor

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 19


Configuratia pinilor pentru P
8088/8086
GND 1 40 VCC
AD14 2 39 AD15
AD13 3 38 A16/S3
AD12 4 37 A17/S4
AD11 5 36 A18/S5
AD10 6 35 A19/S6
AD9 7 34 BHE
AD8 8 33 MN/ MX
AD7 9 32 RD
AD6 10 8088/8086 31 RQ / GT0
AD5 11 30 RQ / GT1
AD4 12 29 LOCK
AD3 13 28 S2
AD2 14 27 S1
AD1 15 26 S0
AD0 16 25 QS0
NMI 17 24 QS1
INTR 18 23 TEST
CLK 19 22 READY
GND 20 21 RESET

05/15/17 20:09 20
Structura tipica a unui calculator

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 21


Placa de baz

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 22


3| Principiul de funcionare

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 23


Schema funcional
Acumulator
Magistral ctrl. Instruciuni
UAL

Magistral date
MEMORIE
Indicatori
de condiii

Numrtor de instruciuni Magistral adrese Date

Registre de Instruciuni
1 secund n ciclii

Unitate de Comand F= n Hertz

Ceas Tc = 1/n secunde

timp
Tc
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 24
Definiii

Acumulator = conine un operand i rezultatul


Numrtor de instruciuni (PC) = adresa instruciunii urmtoare
Registre de instruciuni = codul operaiei sau operandul
Magistral = ansamblu de conexiuni: adrese, date, control
Indicator de condiii= starea acumulatorului dup ultima operaie
efectuat de UAL
Ceas = frecvena sistemului, sincronizare
Unitate de control = comand sistemul
Memorie = conine instruciunile i datele

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 25


Instruciuni de baz
ncrcare A Constant MOV A, Cst
Adunare A A+ Constant ADD A, Cst
Citire din memorie (Load)
A Coninutul memoriei MOV A, [Adr]
Scriere n memorie (Store)
Coninutul memoriei A MOV [Adr],A
Salt necondiionat J Adresse
Salt condiionat J> Adresse
J<= Adresse
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 26
Instruciuni suplimentare
Acumulator auxiliar AA
MOV AA, Cst ADD A, AA ADD AA,A
MOV AA,[Adr] MOV [Adr],AA
Registre index IX
MOV A,[IX] MOV [IX],A
MOV A,[IX] MOV [IX],A
Instruciuni logice I SAU NU
AND A,AA AND A,CONST OR A,AA
OR A,CONST NON A

n memoria de instruciuni, instructiunile sunt codificate


prin numere ntregi pozitive: codul main
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 27
Execuia unei instruciuni
Sunt necesare 3 faze:
Citirea instruciunii (EI): extragerea codului
operaiei instruciunii urmtoarea (faza 1)
Decodificarea instruciunii (DI):
Descompunerea n microoperaiuni i aducerea
operanzilor constante (faza 2)
Aducerea operanzilor din memorie (faza 2)
Execuia instruciunilor (EX):
Execuie n UAL (faza 3)
Scrierea rezultatului n memorie (faza 3)
Modificarea PC n caz de salt (faza 3)

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 28


Faza 1. Citirea instruciunii
Acumulator
Magistral ctrl. Instruciuni
2
Cod op.
UAL

Magistral date
MEMORIE
1 Indicatori
de condiii

Numrtor de instruciuni Magistral adrese Date

Registre de Instruciuni
Unitate de Comand 3
Ceas

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 29


Faza 2. Decodificare - constante
Acumulator
Magistral ctrl. Instruciuni
Cod op.
UAL

Magistral date Operanzi


Indicatori MEMORIE
de condiii 2
1
Numrtor de instruciuni Magistral adrese
Date
Registre de Instruciuni
Unitate de Comand 3

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 30


Faza 2. Decodificare - date
Acumulator
Magistral ctrl. Instruciuni
Cod op.
UAL

Magistral date
MEMORIE
Indicatori Date
de condiii 2
Numrtor de instruciuni Magistral adrese
Operanzi
Registre de Instruciuni
3
Unitate de Comand 1

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 31


Faza 3. Execuia
3
Acumulator Instruciuni
Magistral ctrl.

Cod op.
UAL

2 Magistral date
MEMORIE
Indicatori
de condiii Date
Numrtor de instruciuni Magistral adrese
Operanzi
Registre de Instruciuni
Unitate de Comand 1

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 32


Faza 3. Execuia - Scriere
2
Acumulator Instruciuni
Magistral ctrl.

Cod op.
UAL

Magistral date
MEMORIE
Indicatori
de condiii Date 3
Numrtor de instruciuni Magistral adrese
Operanzi
Registre de Instruciuni
Unitate de Comand 1

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 33


Exemplu de program
A Coninutul memoriei 45 Adresa memoriei
Coninutul memoriei <- A 46 Adresa memoriei
A A + valoarea constantei 61 Valoarea Constantei
Exemplu [500] [500] + 2
Memoria de instruciuni va conine deci:
100 45 A Coninutul memoriei 500
101 500
102 61 A A+2
103 2
104 46 Coninutul memoriei 500 A
105 500
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 34
Instruciunea 1 : EI Faza 1
3
Acumulator Coninut Adrese
Citire 45 100
500 101
4
61 102
UAL

Date 45 2 103
Indicator 46 2 104
1
500 105
CP 100 Adrese 100
20 500
RI ?

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 35


Instruciunea 1 : EI Faza 2
Acumulator 5 Coninut Adrese
Date Gata 45 100
500 101
61 102
UAL

2 103
Date 45
Indicator r 46 104
6
500 105
7
CP 101 Adrese 100
20 500
RI 45

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 36


Instruciunea 1 : DI Faza 1
Acumulator Coninut Adrese
45 100
500 101
10
61 102
UAL

date 500 2 103


Indicator 46 104
500 105
9
11
CP 101 Adrese 101
20 500
RI 500
8
Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 37


Instruciunea 1 : DI Faza 2
Acumulator Coninut Adrese
45 100
500 101
13
61 102
UAL

date 20 2 103
Indicator 46 104
500 105
12
CP 102 Adrese 500
20 500
RI 20

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 38


Instruciunea 1 : EX
Acumulator 20 Coninut Adrese
Citire
15 16 45 100
500 101
61 102
UAL

date 500 2 103


Indicator 46 104
500 105
14
CP 102 Adrese 500
20 500
RI 20

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 39


Instruciunea 2 : EI
Acumulator 20 Coninut Adrese
Comand 45 100
500 101
61 102
UAL

Date 61 2 103
Indicator 46 104
500 105
3
CP 102 Adrese 102
20 500
RI 61 2 1

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 40


Instruciunea 2 : DI
Acumulator 20 Coninut Adrese
Citire
45 100
500 101
6
61 102
UAL

date 2 2 103
Indicator 46 104
500 105
7
CP 103 Adrese 103
20 500
RI 2 5

4
Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 41


Instruciunea 2 : EX
Acumulator 22 Coninut Adrese
10 45 100
500 101
9
61 102
UAL

2 103
Indicator 46 104
500 105
8
CP 104 20 500
RI 2

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 42


Instruciunea 3 : EI
Acumulator 22 Coninut Adrese
Comand 45 100
500 101
2 61 102
UAL

Date 46 2 103
Indicator 46 104
500 105
3
CP 104 Adrese 104
20 500
RI 46 1

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 43


Instruciunea 3 : DI
Acumulator 22 Coninut Adrese
Citire
45 100
500 101
6
61 102
UAL

date 500 2 103


Indicator 46 104
500 105
7
CP 105 Adrese 105
20 500
RI 500 5

Unitate Comand 4

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 44


Instruciunea 3 : EX
Acumulator 22 Coninut Adrese
Scriere
45 100
9 500 101
61 102
UAL

date 22 2 103
Indicator 46 104
500 105
CP 106 Adrese 500
22 500
RI 500 8

Unitate Comand

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 45


1947 - HARVARD
Memorie Memorie
date instruciuni

Adrese
Instruciuni
Date

Unitate Comand Unitate


Aritmetic
de
i logic
control
Indicator Ceas
(Mhz)

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 46


Sistem complet
Memorie
Microprocesor

Magistral de adrese, date i control

Intrri / ieiri

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 47


Evoluia familiei x86
F Tranzistoare Data Pipe
Nume Data Registre Adrese Cache Ordre
(Mhz) fr cache Bus line
8086
1978 8 29 k 16 16 1 MB 0K 2 1
80
i286 1982 12 134 k 16 16 16 MB 0K 2 1
i486 32 GP
1989 25 1.2 M 32 4 GB L1 8K 5 1
2 80 FPU
Pentium 32 GP
1993 60 3.2 M 64 4 GB L1 16K 5 2
0.6 80 FPU
32 GP
L1 32K
P II 1997 266 7M 80 FPU 64 64 GB 6 3
L2 256 K
64 MMX
32 GP
L1 32K
P III 1999 500 15 M 80 FPU 64 64 GB 10 3
L2 512 K
64 MMX
32 GP L1 8K
P IV
2000 1500 42 M 80 FPU 128 64 GB L2 256 K 20 6
0.18
64 MMX 12 K op

05/15/17 20:09 48
Schema funcional a mP 8086
AH AL IP CS
BH BL RI DS
CH CL SS
DH DL Registre ES
SP de uz 16
BP general
DI + x
SI Bus
Extern
Magistrala intern 16 bii Interfa 16 bii
cu bus-ul
extern
Indicatori

Comand Coada de
UAL EU instruciuni

Unitate de execuie (EU) Unitate de interfa cu magistrala (BIU)


05/15/17 20:09 49
Registrele 8086
AX- registru acumulator - preferat n operatii aritmetice i
logice; operatiile de inmultire i impartire folosesc acest registru
n mod implicit
BX- registru folosit n operatii aritmetice i pentru memorarea
unor adrese de memorie (pentru adresarea bazata)
CX- registru de uz general, dar folosit mai ales pentru
contorizare ( numararea ciclurilor de program sau a datelor n
cazul transferului pe siruri)
DX- registru folosit n operatii aritmetice (implicit pentru
inmultire i impartire) i pentru adresarea porturilor de
intrare/iesire
SI, DI- registre index folosite pentru adresarea sirurilor de date
(SI - index sir sursa; DI - index sir destinatie)
BP- registru de baza, utilizat pentru adresarea bazata i pentru
citirea/scrierea datelor pe stiva
05/15/17 20:09 50
Registrele 8086 (cont.)
SP- indicator de stiva (Stack Pointer) - faciliteaza operatiile
de salvare/refacere a informatiilor pe/de pe stiva
IP- numaratorul de instructiuni
CS- registru segment de cod - memoreaza adresa de inceput
a segmentului de program
DS- registru segment de date - memoreaza adresa de
inceput a segmentului de date
ES- registru segment de date - memoreaza adresa de
inceput a extrasegmentului de date
SS- registru segment de stiva - memoreaza adresa de
inceput a segmentului de stiva
Flags- registru care pastreaza indicatorii de conditie

05/15/17 20:09 51
Flags- registru care pstreaz indicatorii de condiie

O D I T S Z A P C
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Depire aritmetica (Overflow) Transport


Directie Paritate (Carry)
Masc pentru ntrerupere Transport auxiliar
Rezultat zero
Semn

05/15/17 20:09 52
Spaiu de adresare x86

Adr. segment 1 2 0 0 H
Adr. offset 1 2 3 4 H
Adr. fizica 1 3 2 3 4 H

05/15/17 20:09 53
3| Evaluarea performanelor

SPECint95

05/15/17 20:09 54
Uniti de msur
MIPS = NI
Timp de execuie x 106

MIPS = Frecvena ceasului


CPI x 106
Depind de programul de test - Programe standard permit compararea

MFLOP = NI Real
Timp de execuie x 106
05/15/17 20:09 55
Ecuaia de performan
Timp de execuie UC = Numrul de cicluri UC x Timp ciclu

CPI = Numr cicluri UC


NI

Timp de execuie UC = NI x CPI x Timp ciclu


- Timp ciclu : 1/ Frecvena ceasului
- CPI : Set de instruciuni
- NI : Compilator

Timp de execuie UC = i (NIi x CPIi ) x Timp ciclu

05/15/17 20:09 56
4| Setul de instruciuni a
microprocesorului 8086

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 57


Clasificarea setului de instruciuni
Operanzii sunt n registrele generale i/sau n
memorie
registre, memorie (unele registre) (1)
ncrcare-ordonare (numr mare de registre) (2)
Exemplu calcul: N3 = N2+N1
x86 (2)
(1) LOAD R1,N1
MOV A,N1 LOAD R2,N2
ADD A,N2 ADD R3,R2,R1
MOV N3,A STORE N3,R3
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 58
Registre x86

GPR (2) Registres (1)


128 registre generale AX : Acumulator
r0 la r127 BX : Baz
r127 = adresa de CX : Contorizare
ntoarcere DX : Acumulator auxiliar
SI : Index Surs
128 registre flotante
DI : Index Destinaie
64 bits
PSW : Registre indicatoare
80 bits
ZF : Indicator de zero
SF : Indicator de semn
OF i CF : Indicator de
depire i transport
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 59
Operaiuni cu UAL
Numrul de operanzi
Instruciuni distructive (C) x86

a a+b
Instruciuni nedistructive (D)
x86
c a+b
Procesoarele CISC (anii 75)
registre / memoire, cteva registre, distructiv
Procesoarele RISC (anii 90)
ncrcare/stocare, multe registre de uz general,
nedistructiv
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 60
Modurile de adresare ale x86
Scop : Gsirea operandului
registru : numele registrului n clar AX
imediat : n cod (constante) 100
direct : se specific adresa operandului [101]
Memorie Adrese
variabil
100
101 50 101 variabila i
102

indirect : adresa se gsete ntr-un registru [SI]


Memorie Adresse
100
[DI]
IX 50 101 variabila i
102
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 61
Adresarea imediat
Exemplu:
mov ax,7514h ; operandul 7514h va fi ncrcat n
registrul ax
mov bl,25h ; operandul este octetul cu valoarea
25h. Se ncarc n registrul bl.
mov ax,7514h
Cod operaie 7514

Mod de adresare
imediat

ax 7514
05/15/17 20:09 62
Adresarea direct
Exemplu:
mov ax,varA1 ; unde varA1 este adresa unui cuvnt pe 16 bii
; de ex. varA1 dw 6285h
mov varA1+4,bx ; cuvntul din registrul bx trece n locaia de la
adresa varA1 + 4.
mov ax,varA1
Cod operaie varA1

Mod de adresare
direct varA1 6285h

ax 6285h

05/15/17 20:09 63
Adresarea registru
Exemplu:
mov ax,bx ; codul instruciunii conine adresele
pe cte 3 bii ale registrelor ax i bx.
Adresarea stiv
Exemplu:
push ax ; se introduce n stiva un cuvnt. La 8086
se introduce la adresa (sp) + 1 ah, (sp) + 2 al,
sp (sp) + 2
pop ax ; al (sp), ah (sp) -1, sp (sp) - 2

05/15/17 20:09 64
Adresarea indirect
Exemplu:
mov ax,[si] ; n ax se incarc un cuvnt de la
adresa coninut de registrul si.
load indirect Reg de la 5231h ax,varA1
Cod operaie 5231h

Mod de adresare
indirect 5231 6180h

6180 3A5Bh

Reg 3A5Bh

05/15/17 20:09 65
Adresarea indexat
Exemplu:
mov ax,53h [di] ; coninutul registrului index
di este adunat cu 53h.
mov ax,varA1 [si] ; adresa structurii de date este
varA1, iar indexul este n si.
mov ax,53h [di]
Cod operaie di 53h

Mod de adresare
indexat +

Registrul 4580h
index di 45D3 6285h

ax 6285h

05/15/17 20:09 66
Adresarea bazat
Exemplu:
mov ax,varA1 ; adresa cuvntului care se ncarc n ax se
calculeaz la 8086 ca suma dintre registrul baz implicit ds
nmulit cu 16 i adresa variabilei varA1. Deci (ds) * 16 +
offset varA1
mov bx,es:[si] ; registrul baz explicit este es. Adresa
operandului este (es) * 16 + (si)
mov ax,[bx] 345h; adresa este (ds) * 16 + (bx) + 345h
Adresarea combinat
Exemplu:
mov ax,534h [bx] [si] ; adresare bazat indexat. Adresa
operandului care se ncarc n ax
este (ds) * 16 + (bx) + (si) + 534h
05/15/17 20:09 67
Formatul instruciunilor
Codul operaiei Operand(operanzi)
Dimensiune fix
decodificare simpl
program mai lung
timp de extragere a unei instruciuni constant
x86
Dimensiune variabil
decodificare complicat
program de dimensiune optimal

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 68


Formatul instruciunilor (cont.)
Codul instruciunii conine urmatoarele informatii necesare interpretarii i
executarii sale de catre unitatea centrala:
codul operatiei - specifica tipul operatiei efectuate de catre instructiune:
deplasare, adunare, operatia logica SI, etc.
operanzii asupra carora opereaza instructiunea - se specifica datele, adresa
lor sau modul cum se calculeaza aceasta adresa.
modul n care se efectueaza instructiunea - interpretarea informatiei
referitoare la operanzi, etc.

a CO

b CO Adr

c CO Adr Adr

d CO Adr Adr Adr

Figura 5- 1. Formatul instructiunii fara adresa (a), cu o adresa (b) si cu doua adrese
05/15/17 20:09 (c). cu microprocesoare
Oniga tefan - Arhitectura sistemelor 69
Instruciunile 8086
Transfer
MOV Destinaie,Surs Destinaie Surs
PUSH registru i POP registru
Deplasare i rotire de bii (SHL,SHR,RxL,RxR)
Arithmetice i logice
ADD Destinaie,Surs (sub,and) Destinaie Destinaie + Surs
ADC Destinaie,Surs (subb) Destinaie Destinaie + Surs+C
CMP Destinaie,Surs (test) Destinaie-Surs
Salt
JMP Etichet (necondiionat) Salt la etichet
J? Etichet (jc, jz, jnc, jnz,ja,jbe) Dac Indicator salt la etichet
Proceduri
CALL Etichet Apel subprogram, la etichet
RET Retur din subprogram
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 70
Noiunea de Segment x86
00000
CS
Cod CP

SS
Stiv SP

DS
Date DI
SI + 1
220
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 71
Noiunea de Stiv x86
Tipul de stiv : LIFO
Date codate n dou locaii de memorie unice
(16 bii)
SS:0000
Empiler Liber
SS:SP-2
Dpiler Ultimele Date SS:SP
Ocupat
SS: Vrful stivei

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 72


Les procdures x86
A l'appel on place dans la pile :
Les paramtres (Programme - non obligatoire)
Ladres de retour (instruciune suivante - Processeur)
Excution du sous-programme ( modification de CP i de
CS)
Au dbut de la procdure
Le contexte (Etat du processeur - Programme)
A la fin de la procdure :
Restitution du contexte (Programme)
instruciune suivante du programme (Processeur)
Suppression des paramtres (Programme - non obligatoire)

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 73


Cration d'un excutable

Assembleur Editeur de liens


Fichier Fichier
assembleur assembleur
Fichier
excutable

Fichier
bibliothque

Gestionnaire de librairie
debuggeur

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 74


Assembleur Editeur de liens
Fichier Fichier
assembleur assembleur
Fichier
excutable

Fichier
bibliothque

Gestionnaire de librairie
debuggeur

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 75


11| x86 i PC

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 76


Evolution de la famille x86
F Transistors Data Pipe
Nom Date Registres Adresses Cache Ordre
(Mhz) sans cache Bus line
8086
1978 8 29 k 16 16 1 MB 0K 2 1
80
i286 1982 12 134 k 16 16 16 MB 0K 2 1
i486 32 GP
1989 25 1.2 M 32 4 GB L1 8K 5 1
2 80 FPU
Pentium 32 GP
1993 60 3.2 M 64 4 GB L1 16K 5 2
0.6 80 FPU
32 GP
L1 32K
P II 1997 266 7M 80 FPU 64 64 GB 6 3
L2 256 K
64 MMX
32 GP
L1 32K
P III 1999 500 15 M 80 FPU 64 64 GB 10 3
L2 512 K
64 MMX
32 GP L1 8K
P IV
2000 1500 42 M 80 FPU 128 64 GB L2 256 K 20 6
0.18
64 MMX 12 K op

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 77


Microprocesorul 80286
Unitatea de adrese Unitatea de magistrala
Interfata cu mag. de adrese
Interfata cu coprocesorul
Controlul magisralei
Tabele Interfata cu mag. de date
Citire n avans Coada de 6 octeti

Unitatea de executie Unitatea de instructiuni


Coada de Decodificator de
Registre instructiuni instructiuni
decodificate

UAL

Bloc de
control

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 78


Microprocesorul 80386

Unitatea de Unitatea de
segmentare paginare

Unitatea de Unitatea de Mag. adrese


executie interfata Mag. date

Unitatea de Unitatea de
decodificare preincarcare
instructiuni instructiuni

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 79


Microprocesorul 80486

Unitatea de Unitatea de
segmentare paginare
Procesor in Mag
virgula mobila adr.
Unitatea Unitatea
cache de
interfata
Unitatea de Mag
executie date
Unitatea de Unitatea de
decidificare a preincarcare a
instructiunilor instructiunilor

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 80


Microprocesorul Pentium
Principalele modificri fa de varianta 80486 sunt:
magistrala externa de date de 64 de bii
memorie cache ncorporat de 2*8ko+256ko
organizat pe dou nivele
arhitectura superpipeline cu 12 nivele de prelucrare
pot fi conectate pn la 4 P ntr-un sistem
frecvena ceasului :150,160,180 i 200MHz
n prelucrarea instruciunilor s-a introdus conceptul
de execuie dinamic.

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 81


Architecture externe Pentium IV
Unit
dexcution
Dans le dsordre

LI/DI Rserve Unit de retrait


Dans lordre dinstruciuni Dans lordre

Interface
Dans lordre

Bus externe

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 82


Architecture du Pentium IV
Bus externe

Unit d'interface cu le bus externe


du Pentium IV

Mmoire cache Niveau 3


Optionnel

Mmoire cache Niveau 2 Mmoire cache donnes Niveau 1


256 Kilo Octets , ansamblu de 8 8 Kilo Octets 4 par ensemble

Rserve dinstruciuni
Unit Unit dexcution Unit
Cache instruciuni (niveau 1)
LI/DI (dans le dsordre) Retrait
12 K micro oprations

BTB / Prdiction branchement

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 83


84

Cache donne L1 i TLB donnes


Charge

Charge

MMX
Sauve

Sauve

+,-,*,/
Pipeline du Pentium IV

UAL
UAL
UAL
UAL

SSE
Oniga tefan - Arhitectura sistemelor cu microprocesoare
Registres entiers Registres FP
Rpartiteur
File attente ops
Renommage / Allocation
Cache L2

code
Cache de trace


Dcodeur
BTB, TLB instruciuni

05/15/17 20:09
Interface 3,2 GB/s
Caractristique du Pentium IV
- SIMD 2
- Donnes sur 128 bits
- Cache
- L1 Donnes 8 kilo octets
- L1 instruciuni 12 K micro oprations
- L2 unifi 256 Kilo octets : 8 blocs par ensemble
- Interface cu le bus
- 400 MHz x 64 bits = 3,2 Giga octets /seconde
- Prdiction de branchement
- Dynamique + Statique (avant pris arrire non pris)
- Pile dappel de sous programme (toujours pris)

05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 85


Architecture du PC
8000 Mo/s
Bus 64 bits

Cur du
cache niveau
Processeur Microprocesseur
3200 Mo/s 2
1 Go
Bus 64 bits
Bus systme

Systme Graphique Mmoire Centrale


Chipset
AGP 2 GO SDRAM 133

533 Mo/s 1,06 Go/s


Bus 64 bits Bus 64 bits
Bus PCI

133 Mo/s
33 Mhz Bus Adaptateur
Entres /Sorties
32 bits PCI /ISA
4 Mo/s
Disque, liaisons ... Bus 16 bits
05/15/17 20:09 Oniga tefan - Arhitectura sistemelor cu microprocesoare 86

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