Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | lilianna-valerian |
View: | 135 times |
Download: | 6 times |
Microprocesoare şi microcontrolere IIArhitectura sistemelor de calcul
ONIGA ŞTEFAN
North University of Baia Mare
Electronică Aplicată
Calculatoare
Curs anul III
2007-2008
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
2
Obiectivele cursului de MM/ASC
• Înţelegerea structurii unui sistem cu microprocesor
• Înţelegerea structurii interne a unui microprocesor din familia X86
• Înţelegerea structurii interne a unui microcontroler din familia 8051
• Elemente de limbaj de asamblare în cadrul celor 14 lucrări de laborator
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
3
Bibliografie• ee.ubm.ro/cursuri/mm.htm• Radu Bălan, Microcontrolere. Structură şi aplicaţii,
Ed. Todesco, 2002• M. Morris Mano, Charles R. Kime, Logic and
Computer Design Fundamentals - ediţia 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ă, Bucureşti, 1987.
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
4
1| Istoric
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
5
1642. B. Pascal realizează o maşină de calculat (+,-).Preistoria
1694. von Leibniz construieşte o maşină de +,- şi x,:1823. Ch.Babbage proiectează primul calculator cu execuţie automata a programului.
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
6
•1904 : John Fleming inventează tubul cu vid
•1945 : John Von Neumann defineşte arhitectura cunoscută sub numele de Von Neumann utilizată şi în zilele noastre.
•1937 - 1945. Maşini 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).
Prima generaţie
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
7
A doua generaţie
1947 : Inventarea tranzistorului, în anul 1947, de către 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.
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
8
A treia generaţie
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 , frecvenţa 108 KHz, 2300 tranzistoare.
1978 : Intel a lansat microprocesorul 8086 330 000 instrucţiuni /s
1981 : IBM PC
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
9
A patra generaţie
1985 : Intel 80386, 1 milion de instrucţiuni/s, 200.000 transistoare
1986 : Primele maşini paralele
1990 : Calculatoare multimedia
2000 : Intel a lansat Pentium IV
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
10
Legea lui MOORE
An 1975 1980 1985 1990 1995 2000
100 MillioaneTransistoare
10 Millioane
1 Million
100 000
10 000
1000
4004
8086
80286
80386
80486 Pentium
Pentium II
Pentium III
x 2 la 18 luni
1000 MIPS
100 MIPS
10 MIPS
1 MIPS
0,1 MIPS
0,01 MIPS
x 2 la 2 ani
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
11
2| Arhitectura microprocesoarelor
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
12
John Von Neumann
• 1903-1957• Matematician• conceptul de program
înregistrat• Arhitectura Von Neumann
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
13
Arhitectura microprocesoarelor Arhitectura Von Neumann
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
14
Arhitectura microprocesoarelor Arhitectura Harward
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
15
Arhitectura microprocesoarelor Arhitectura Super Harward
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
16
Modelul magistralelor de sistem
P
Mag. Adrese
Mag. Date
Mag. Comenzi
Memorie Interfatade I/E
Interfatade I/E
Dispozitiveperiferice
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
17
Nivele de maşini virtuale
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
18
Evolutia microprocesoarelor din familia Intel
Nume Anul Latime reg.
Latimeamag. de
date
Spatiulde
adresare
Observatii
4004 1971 4 4 1K Primul microprocesor intr-un cip8008 1972 8 8 16K Primul microprocesor pe 8 biti8080 1974 8 8 64K Primul mare succes de piata8085 1974 8 8 64K Versiune imbunatatita de 80808086 1978 16 16 1M Primul microprocesor pe 16 biti8088 1980 16 8 1M Procesor pentru calculatoarele PC XT80186 1982 16 16 1M 8086 cu suport de i/e pe cip80188 1982 16 16 1M idem pentru 808880286 1982 16 16 16M Procesor pentru primele calc. PC AT80384 1985 32 32 70T UCP pe 32 biti80386SX 1988 32 16 70T 80386 cu magistrala tip 8028680486 1989 32 32 70T 80386 cu coprocesor si MMU incorp.Pentium 1992 32 64 70T Versiune mai rapida 80486
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
19
Semnalele unui microprocesor• semnale de control• semnale de intrerupere• semnale pentru arbitrarea magistralei• semnale de stare• semnale diverse.
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
20
Structura tipica a unui sistem cu microprocesor
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
21
Configuratia pinilor pentru P 8088/8086
G N D 1 4 0 V C CA D 1 4 2 3 9 A D 1 5A D 1 3 3 3 8 A 1 6 / S 3A D 1 2 4 3 7 A 1 7 / S 4A D 1 1 5 3 6 A 1 8 / S 5A D 1 0 6 3 5 A 1 9 / S 6
A D 9 7 3 4 B H EA D 8 8 3 3 M N / M XA D 7 9 3 2 R DA D 6 1 0 8 0 8 8 / 8 0 8 6 3 1 R Q G T/ 0A D 5 1 1 3 0 R Q G T/ 1A D 4 1 2 2 9 L O C KA D 3 1 3 2 8 S 2A D 2 1 4 2 7 S 1A D 1 1 5 2 6 S 0A D 0 1 6 2 5 Q S 0N M I 1 7 2 4 Q S 1
I N T R 1 8 2 3 T E S TC L K 1 9 2 2 R E A D Y
G N D 2 0 2 1 R E S E T
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
22
Structura tipica a unui calculator
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
23
Placa de bază
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
24
3| Principiul de funcţionare
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
25
Schema funcţională
Acumulator
UA
L
Instrucţiuni
MEMORIE
DateMagistrală adrese
Magistrală date
Magistrală ctrl.
Unitate de Comandă
Registre de Instrucţiuni
Numărător de instrucţiuni
Indicatoride condiţii
Ceas
Tc
F= n HertzTc = 1/n secunde
1 secundă n ciclii
timp
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
26
Definiţii
– Acumulator = conţine un operand şi rezultatul
– Numărător de instrucţiuni (PC) = adresa instrucţiunii următoare
– Registre de instrucţiuni = codul operaţiei sau operandul
– Magistrală = ansamblu de conexiuni: adrese, date, control
– Indicator de condiţii= starea acumulatorului după ultima operaţie efectuată de UAL
– Ceas = frecvenţa sistemului, sincronizare
– Unitate de control = comandă sistemul
– Memorie = conţine instrucţiunile şi datele
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
27
Instrucţiuni de bază• Încărcare A Constantă
• Adunare A A+ Constantă
• Citire din memorie (Load)
A Conţinutul memoriei
• Scriere în memorie (Store)
Conţinutul memoriei A
• Salt necondiţionat
• Salt condiţionat
MOV A, Cst
ADD A, Cst
MOV A, [Adr]
MOV [Adr],A
J Adresse
J> Adresse
J<= Adresse
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
28
Instrucţiuni suplimentare• Acumulator auxiliar AA
MOV AA, Cst ADD A, AA ADD AA,A MOV AA,[Adr] MOV [Adr],AA
• Registre index IXMOV A,[IX] MOV [IX],AMOV A,[IX] MOV [IX],A
• Instrucţiuni logice ŞI SAU NUAND A,AA AND A,CONST OR A,AA
OR A,CONST NON A
În memoria de instrucţiuni, instructiunile sunt codificate prin numere întregi pozitive: codul maşină
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
29
Execuţia unei instrucţiuniSunt necesare 3 faze:
– Citirea instrucţiunii (EI): extragerea codului operaţiei instrucţiunii următoarea (faza 1)
– Decodificarea instrucţiunii (DI): • Descompunerea în microoperaţiuni şi aducerea
operanzilor constante (faza 2)
• Aducerea operanzilor din memorie (faza 2’)
– Execuţia instrucţiunilor (EX):• Execuţie în UAL (faza 3)
• Scrierea rezultatului în memorie (faza 3’)
• Modificarea PC în caz de salt (faza 3’’)
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
30
Faza 1. Citirea instrucţiunii
Acumulator
UA
L
Instrucţiuni
MEMORIE
DateMagistrală adrese
Magistrală date
Magistrală ctrl.
Unitate de Comandă
Registre de Instrucţiuni
Numărător de instrucţiuni
Indicatoride condiţii
Ceas
1
3
Cod op.2
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
31
Faza 2. Decodificare - constante
Acumulator
UA
L
Instrucţiuni
MEMORIE
DateMagistrală adrese
Magistrală date
Magistrală ctrl.
Unitate de Comandă
Registre de Instrucţiuni
Numărător de instrucţiuni
Indicatoride condiţii
1
3
Cod op.
2
Operanzi
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
32
Faza 2’. Decodificare - date
Acumulator
UA
L
Instrucţiuni
MEMORIEDate
Magistrală adrese
Magistrală date
Magistrală ctrl.
Unitate de Comandă
Registre de Instrucţiuni
Numărător de instrucţiuni
Indicatoride condiţii
Cod op.
3
1
Operanzi
2
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
33
Faza 3. Execuţia
Acumulator
UA
L
Instrucţiuni
MEMORIE
Date
Magistrală adrese
Magistrală date
Magistrală ctrl.
Unitate de Comandă
Registre de Instrucţiuni
Numărător de instrucţiuni
Indicatoride condiţii
Cod op.
Operanzi
2
1
3
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
34
Faza 3. Execuţia - Scriere
Acumulator
UA
L
Instrucţiuni
MEMORIE
Date
Magistrală adrese
Magistrală date
Magistrală ctrl.
Unitate de Comandă
Registre de Instrucţiuni
Numărător de instrucţiuni
Indicatoride condiţii
Cod op.
Operanzi
1
3
2
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
35
Exemplu de programA Conţinutul memoriei 45 Adresa memoriei
Conţinutul memoriei <- A 46 Adresa memoriei
A A + valoarea constantei 61 Valoarea Constantei
Exemplu [500] [500] + 2Memoria de instrucţiuni va conţine deci:
100 45 A Conţinutul memoriei 500
101 500
102 61 A A+2
103 2
104 46 Conţinutul memoriei 500 A
105 500
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
36
Instrucţiunea 1 : EI Faza 1
Acumulator
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 100
Unitate Comandă
RI ?
CP 100
Indicator
1
2
3
Date 45
Citire
4
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
37
Instrucţiunea 1 : EI Faza 2
Acumulator
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 100
Unitate Comandă
RI 45
CP 101
Indicator r
5
Date 45
Date Gata
6 7
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
38
Instrucţiunea 1 : DI Faza 1
Acumulator
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 101
date 500
Unitate Comandă
RI 500
CP 101
Indicator
8
9 11
10
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
39
Instrucţiunea 1 : DI Faza 2
Acumulator
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 500
date 20
Unitate Comandă
RI 20
CP 102
Indicator
12
13
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
40
Instrucţiunea 1 : EX
Acumulator 20
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 500
date 500
Unitate Comandă
RI 20
CP 102
Indicator
Citire16 15
14
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
41
Instrucţiunea 2 : EI
Acumulator 20
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 102
Comandă
Unitate Comandă
RI 61
CP 102
IndicatorDate 61
2 1
3
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
42
Instrucţiunea 2 : DI
Acumulator 20
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 103
date 2
Unitate Comandă
RI 2
CP 103
Indicator
Citire
7
4
5
6
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
43
Instrucţiunea 2 : EX
Acumulator 22
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500
Unitate Comandă
RI 2
CP 104
Indicator
9
8
10
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
44
Instrucţiunea 3 : EI
Acumulator 22
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 104
Comandă
Unitate Comandă
RI 46
CP 104
IndicatorDate 46
3
1
2
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
45
Instrucţiunea 3 : DI
Acumulator 22
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
20 500Adrese 105
date 500
Unitate Comandă
RI 500
CP 105
Indicator
Citire
6
4
5
7
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
46
Instrucţiunea 3 : EX
Acumulator 22
UA
L
Conţinut Adrese45 100500 10161 1022 10346 104500 105
22 500Adrese 500
date 22
Unitate Comandă
RI 500
CP 106
Indicator
Scriere
8
9
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
47
1947 - HARVARD
Memorie date
Memorie instrucţiuni
UnitateAritmeticăşi logică
Unitatede
control
Adrese
DateInstrucţiuni
Comandă
Indicator Ceas(Mhz)
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
48
Sistem complet
Microprocesor
Memorie
Intrări / ieşiri
Magistrală de adrese, date şi control
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
49
Evoluţia familiei x86Data
F (Mhz)
Tranzistoarefără cache
RegistreData Bus
Adrese CacheNume
1978 8 29 k 16 16 1 MB808680 µ
1982 12 134 k 16 16 16 MBi286
1989 25 1.2 M32 GP
80 FPU32 4 GB L1 8K
i4862 µ
1993 60 3.2 M32 GP
80 FPU64 4 GB L1 16K
Pentium0.6µ
1997 266 7 M32 GP
80 FPU64 MMX
64 64 GBL1 32K
L2 256 KP II
1999 500 15 M32 GP
80 FPU64 MMX
64 64 GBL1 32K
L2 512 KP III
2000 1500 42 M32 GP
80 FPU64 MMX
128 64 GBL1 8K
L2 256 K12 K µop
P IV0.18µ
Pipeline
5
6
10
20
Ordre
2
3
3
6
2 1
2
5
1
1
0K
0K
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
50
Schema funcţională a uP 8086
Bus Extern16 biţi
Magistrala internă 16 biţi
UAL
Indicatori
ComandăEU
Coada de instrucţiuni
IPRI
SSES
CSDS
+ x
16
Interfaţă cu bus-ul
extern
Unitate de execuţie (EU) Unitate de interfaţă cu magistrala (BIU)
AH ALBH BLCH CLDH DL Registre
SP de uzBP generalDISI
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
51
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
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
52
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
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
53
Flags- registru care păstrează indicatorii de condiţie
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 Depăşire aritmetica (Overflow) Transport
Directie Paritate (Carry) Mască pentru întrerupere Transport auxiliar Rezultat zero Semn
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
54
Spaţiu 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
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
55
3| Evaluarea performanţelor
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
56
Unităţi de măsurăMIPS = NI
Timp de execuţie x 106
MIPS = Frecvenţa ceasului
CPI x 106
Depind de programul de test - Programe standard permit compararea
MFLOP = NI Real
Timp de execuţie x 106
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
57
Ecuaţia de performanţăTimp de execuţie UC = Numărul de cicluri UC x Timp ciclu
CPI = Număr cicluri UC
NI
Timp de execuţie UC = NI x CPI x Timp ciclu
- Timp ciclu : 1/ Frecvenţa ceasului- CPI : Set de instrucţiuni - NI : Compilator
Timp de execuţie UC = i (NIi x CPIi ) x Timp ciclu
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
58
4| Setul de instrucţiuni a
microprocesorului 8086
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
59
• Operanzii sunt în registrele generale şi/sau în memorie
• registre, memorie (unele registre) (1)
• încărcare-ordonare (număr mare de registre) (2)
– Exemplu calcul: N3 = N2+N1
Clasificarea setului de instrucţiuni
(2)
LOAD R1,N1
LOAD R2,N2
ADD R3,R2,R1STORE N3,R3
(1)
MOV A,N1 ADD A,N2
MOV N3,A
x86
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
60
Registres (1)AX : Acumulator
BX : Bază
CX : Contorizare
DX : Acumulator auxiliar
SI : Index Sursă
DI : Index Destinaţie
PSW : Registre indicatoare
ZF : Indicator de zero
SF : Indicator de semnOF şi CF : Indicator de depăşire şi transport
RegistreGPR (2)
128 registre generale• r0 la r127
• r127 = adresa de
întoarcere
128 registre flotante• 64 bits
• 80 bits
x86
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
61
x86
x86
Operaţiuni cu UAL• Numărul de operanzi
– Instrucţiuni distructive (C)
a a+b– Instrucţiuni nedistructive (D)
c a+b• Procesoarele CISC (anii 75)
– registre / memoire, câteva registre, distructiv
• Procesoarele RISC (anii 90)– încărcare/stocare, multe registre de uz general,
nedistructiv
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
62
Modurile de adresare ale x86• Scop : Găsirea operandului
– registru : numele registrului în clar AX– imediată : în cod (constante) 100– directă : se specifică adresa operandului [101]
variabilă
– indirectă : adresa se găseşte într-un registru [SI][DI]
Memorie Adrese
100101 variabila i102
101 50
Memorie Adresse
100101 variabila i102
IX 50
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
63
Adresarea imediatăExemplu:• mov ax,7514h ; operandul 7514h va fi încărcat
în registrul ax• mov bl,25h ; operandul este octetul cu
valoarea 25h. Se încarcă în registrul bl.
mov ax,7514h
Cod operaţie 7514
ax 7514
Mod de adresare imediată
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
64
Adresarea directăExemplu:
• mov ax,varA1 ; unde varA1 este adresa unui cuvânt pe 16 biţi
; de ex. varA1 dw 5278h
• mov varA1+4,bx ; cuvântul din registrul bx trece în locaţia de la adresa varA1 + 4.
mov ax,varA1
Cod operaţie varA1
ax 6285h
Mod de adresare directă varA1 6285h
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
65
Adresarea registru Exemplu:• mov ax,bx ; codul instrucţiunii conţine adresele pe
câte 3 biţi ale registrelor ax şi bx.
Adresarea stivăExemplu:• push ax ; se introduce în stiva un cuvânt. La 8086
al se introduce la adresa (sp) + 1 ah, (sp) + 2 al,
sp (sp) + 2• pop ax ; al (sp), ah (sp) -1, sp (sp) - 2
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
66
Adresarea indirectă Exemplu:• mov ax,[si] ; în ax se incarcă un cuvânt de la
adresa conţinută de registrul si.
Mod de adresare indirectă
load indirect Reg de la 5231h ax,varA1
Cod operaţie 5231h
Reg 3A5Bh
5231 6180h
6180 3A5Bh
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
67
Adresarea indexată Exemplu:• mov ax,53h [di] ; conţinutul 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 operaţie di
ax 6285h
Mod de adresare indexată
45D3 6285h
53h
Registrul index di
4580h
+
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
68
Adresarea bazată Exemplu:• mov ax,varA1 ; adresa cuvântului care se încarcă în ax
se calculează la 8086 ca suma dintre registrul bază implicit ds înmulţită 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
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
69
x86
Formatul instrucţiunilor
Codul operaţiei Operand(operanzi)
• Dimensiune fixă – decodificare simplă– program mai lung– timp de extragere a unei instrucţiuni constant
• Dimensiune variabilă– decodificare complicată– program de dimensiune optimală
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
70
Formatul instrucţiunilor (cont.)Codul instrucţiunii conţine 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.
Figura 5- 1. Formatul instructiunii fara adresa (a), cu o adresa (b) si cu doua adrese (c).
CO
Adr CO
CO Adr Adr
a
b
c
CO Adr Adr d Adr
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
71
Instrucţiunile 8086• Transfer
– MOV Destinaţie,Sursă Destinaţie Sursă
– PUSH registru şi POP registru
– Deplasare şi rotire de biţi (SHL,SHR,RxL,RxR)
• Arithmetice şi logice– ADD Destinaţie,Sursă (sub,and) Destinaţie Destinaţie + Sursă
– ADC Destinaţie,Sursă (subb) Destinaţie Destinaţie + Sursă+C
– CMP Destinaţie,Sursă (test) Destinaţie-Sursă
• Salt– JMP Etichetă (necondiţionată) 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
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
72
Noţiunea de Segment x86
00000
CS
Cod CP
SS
Stivă SP
DS
Date DI SI + 1
220
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
73
Noţiunea de Stivă x86• Tipul de stivă : LIFO
• Date codate în două locaţii de memorie unice (16 biţi)
Empiler
Dépiler
Liber
Ocupat
SS:0000
SS: Vârful stivei
SS:SPUltimele Date
SS:SP-2
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
74
Les procédures x86A l'appel on place dans la pile :
Les paramètres (Programme - non obligatoire)
L’adresă de retour (instrucţiune suivante - Processeur)
Exécution du sous-programme (modification de CP şi de
CS)
Au début de la procédureLe contexte (Etat du processeur - Programme)
A la fin de la procédure : Restitution du contexte (Programme)
instrucţiune suivante du programme (Processeur)
Suppression des paramètres (Programme - non obligatoire)
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
75
Création d'un exécutable
Fichier assembleur
Fichier assembleur
Fichier bibliothèque
Fichier exécutable
Assembleur Editeur de liens
Gestionnaire de librairie
debuggeur
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
76
Fichier assembleur
Fichier assembleur
Fichier bibliothèque
Fichier exécutable
Assembleur Editeur de liens
Gestionnaire de librairie
debuggeur
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
77
11| x86 şi PC
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
78
Evolution de la famille x86Date
F (Mhz)
Transistorssans cache
RegistresData Bus
Adresses CacheNom
1978 8 29 k 16 16 1 MB808680 µ
1982 12 134 k 16 16 16 MBi286
1989 25 1.2 M32 GP
80 FPU32 4 GB L1 8K
i4862 µ
1993 60 3.2 M32 GP
80 FPU64 4 GB L1 16K
Pentium0.6µ
1997 266 7 M32 GP
80 FPU64 MMX
64 64 GBL1 32K
L2 256 KP II
1999 500 15 M32 GP
80 FPU64 MMX
64 64 GBL1 32K
L2 512 KP III
2000 1500 42 M32 GP
80 FPU64 MMX
128 64 GBL1 8K
L2 256 K12 K µop
P IV0.18µ
Pipeline
5
6
10
20
Ordre
2
3
3
6
2 1
2
5
1
1
0K
0K
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
79
Microprocesorul 80286Unitatea de adrese Unitatea de magistrala
Interfata cu mag. de adreseInterfata cu coprocesorulControlul magisralei
Tabele Interfata cu mag. de dateCitire în avans Coada de 6 octeti
Unitatea de executie Unitatea de instructiuni
RegistreCoada de
instructiunidecodificate
Decodificator deinstructiuni
UAL
Bloc decontrol
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
80
Microprocesorul 80386
Unitatea desegmentare
Unitatea depaginare
Unitatea deexecutie
Unitatea deinterfata
Mag. adreseMag. date
Unitatea dedecodificareinstructiuni
Unitatea depreincarcareinstructiuni
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
81
Microprocesorul 80486
Unitatea desegmentare
Unitatea depaginare
Procesor invirgula mobila
Magadr.
Unitateacache
Unitateade
interfataUnitatea de
executieMagdate
Unitatea dedecidificare ainstructiunilor
Unitatea depreincarcare ainstructiunilor
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
82
Microprocesorul PentiumPrincipalele modificări faţă de varianta 80486 sunt:• magistrala externa de date de 64 de biţi• memorie cache încorporată de 2*8ko+256ko
organizată pe două nivele• arhitectura superpipeline cu 12 nivele de prelucrare• pot fi conectate până la 4 P într-un sistem • frecvenţa ceasului :150,160,180 şi 200MHz• în prelucrarea instrucţiunilor s-a introdus conceptul
de execuţie dinamică.
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
83
Architecture externe Pentium IV
Réserved’instrucţiuni
Unité de retraitDans l’ordre
LI/DIDans l’ordre
Unité d’exécutionDans le désordre
InterfaceDans l’ordre
Bus externe
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
84
Architecture du Pentium IV
Unité Retrait
Mémoire cache données Niveau 1 8 Kilo Octets 4 par ensemble
Unité d'interface cu le bus externedu Pentium IV
Bus externe
Mémoire cache Niveau 2256 Kilo Octets , ansamblu de 8
Unité d’exécution (dans le désordre)
Réserve d’instrucţiuniCache instrucţiuni (niveau 1)
12 K micro opérations
UnitéLI/DI
BTB / Prédiction branchement
Mémoire cache Niveau 3Optionnel
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
85
Pipeline du Pentium IV
BT
B, T
LB
instrucţiuni
Décodeur
Cache de trace
Renom
mage / A
llocation
File attente µ
ops
Répartiteur
Registres F
PR
egistres entiers
Charge
Sauve
UAL
UAL
UAL
UAL
ChargeSauve
+,-,*,/MMXSSE
Cache donnée L
1 şi TL
B données
µ code
Interface 3,2 GB
/s
Cache L2
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
86
Caractéristique du Pentium IV- SIMD 2
- Données sur 128 bits
- Cache - L1 Données 8 kilo octets- L1 instrucţiuni 12 K micro opérations- L2 unifié 256 Kilo octets : 8 blocs par ensemble
- Interface cu le bus - 400 MHz x 64 bits = 3,2 Giga octets /seconde
- Prédiction de branchement- Dynamique + Statique (avant pris arrière non pris)- Pile d’appel de sous programme (toujours pris)
19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare
87
Architecture du PC
Microprocesseur Cœur du
Processeur1 Go
cache niveau2
8000 Mo/sBus 64 bits
Chipset
3200 Mo/sBus 64 bits
Bus système
Système GraphiqueAGP
533 Mo/sBus 64 bits
Mémoire Centrale2 GO SDRAM 133
1,06 Go/sBus 64 bits Bus PCI
133 Mo/s33 Mhz Bus
32 bits
AdaptateurPCI /ISA
Entrées /Sorties
Disque, liaisons ...4 Mo/s
Bus 16 bits