+ All Categories
Home > Documents > Microprocesoare şi microcontrolere II Arhitectura sistemelor de calcul

Microprocesoare şi microcontrolere II Arhitectura sistemelor de calcul

Date post: 30-Dec-2015
Category:
Upload: lilianna-valerian
View: 135 times
Download: 6 times
Share this document with a friend
Description:
Microprocesoare şi microcontrolere II Arhitectura sistemelor de calcul. Electroni c ă Aplicată Calculatoare Curs anul III 200 7 -200 8. ONIGA ŞTEFAN North University of Baia Mare. Obiectivele cursului de MM/ AS C. Înţelegerea structurii unui sistem cu microprocesor - PowerPoint PPT Presentation
87
Microprocesoare şi microcontrolere II Arhitectura sistemelor de calcul ONIGA ŞTEFAN North University of Baia Mare Electronică Aplicată Calculatoare Curs anul III 2007-2008
Transcript
Page 1: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

Microprocesoare şi microcontrolere IIArhitectura sistemelor de calcul

ONIGA ŞTEFAN

North University of Baia Mare

Electronică Aplicată

Calculatoare

Curs anul III

2007-2008

Page 2: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 3: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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.

Page 4: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

4

1| Istoric

Page 5: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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.

Page 6: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 7: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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.

Page 8: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 9: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 10: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 11: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

11

2| Arhitectura microprocesoarelor

Page 12: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 13: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

13

Arhitectura microprocesoarelor Arhitectura Von Neumann

Page 14: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

14

Arhitectura microprocesoarelor Arhitectura Harward

Page 15: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

15

Arhitectura microprocesoarelor Arhitectura Super Harward

Page 16: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 17: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

17

Nivele de maşini virtuale

Page 18: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 19: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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.

Page 20: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

20

Structura tipica a unui sistem cu microprocesor

Page 21: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 22: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

22

Structura tipica a unui calculator

Page 23: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

23

Placa de bază

Page 24: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

24

3| Principiul de funcţionare

Page 25: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 26: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 27: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 28: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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ă

Page 29: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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’’)

Page 30: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 31: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 32: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 33: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 34: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 35: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 36: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 37: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 38: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 39: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 40: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 41: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 42: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 43: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 44: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 45: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 46: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 47: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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)

Page 48: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 49: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 50: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 51: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 52: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 53: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 54: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 55: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

55

3| Evaluarea performanţelor

Page 56: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 57: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 58: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

58

4| Setul de instrucţiuni a

microprocesorului 8086

Page 59: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 60: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 61: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 62: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 63: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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ă

Page 64: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 65: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 66: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 67: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

+

Page 68: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 69: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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ă

Page 70: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 71: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 72: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 73: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 74: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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)

Page 75: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 76: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 77: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

19.04.23 16:41 Oniga Ştefan - Arhitectura sistemelor cu microprocesoare

77

11| x86 şi PC

Page 78: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 79: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 80: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 81: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 82: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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ă.

Page 83: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 84: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 85: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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

Page 86: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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)

Page 87: Microprocesoare şi microcontrolere  II Arhitectura sistemelor de calcul

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


Recommended