Sunteți pe pagina 1din 19

Cursul 2

Microprocesorul 8085A structura intern i funcionarea


2.1. Caracterizarea funcional a unui microprocesor (UCP)
Sistem - secvenial - sincron complex.
Modelul abstract de automat finit:

A = (I, S, O, f, g, s0)
unde:
I, S, O - mulimi finite de intrare, stare i ieire;
f:I
g:I

S S funcia de tranziie descrie evoluia intern


S O - funcia de ieire caracterizeaz evoluia semnalelor de ieire

s0 - starea iniial.
Automate deterministe:
|f(i, s)| = 1, |g(i, s)| = 1, i I, s S - au o evoluie unic pentru o pereche (i, s) dat.
Realizarea fizic - sinteza structurilor secveniale.
Format din unul sau mai multe circuite VLSI sau LSI.

2.2. Structura intern i funcionarea unui microprocesor


Microprocesor = UCP - unitate de comand i prelucrare:
Unitate de prelucrare (UP) - unitate logic i aritmetic (ULA)
- registre interne (R)
Unitate de comand (UC).

XTAL
fanioane
R + ULA

UC

GT
CMD. INIT.
(RESET)

comenzi

d
MD

c
MA

MC

Fig.2.1. Structura intern simplificat a unui microprocesor

Registrele interne (R)


Memoreaz temporar adrese sau date care urmeaz a fi prelucrate n ULA.
Asigur un transfer eficient i o cretere apreciabil a vitezei de execuie a instruciunilor.
Unitatea logic i aritmetic (ULA)
Prelucrarea logic sau aritmetic a operanzilor sub form de cuvinte binare.
Lungimea cuvntului cu care opereaz ULA - criteriu de clasificare a microprocesoarelor.
Unitatea de comand (UC)
- Coordoneaz evoluia microprocesorului:
- Recunoate i decodific instruciunile
- Genereaz comenzi n vederea execuiei acestora:
o n interior - spre R+ALU
o n exterior - prin magistralele de adresa (MA), de date (MD) i de comand (MC).
Funcionare sincron sincronizare cu semnalele furnizate de un generator de tact (GT).
Generatorul de tact:
- oscilator pilotat de un cristal de cuar (XTAL)

CLK

M1
T1

T2

T3
t

tCY = T

Fig.2.2. Semnal de tact pentru microprocesor

Durata unui ciclu de tact - tCY - unitatea elementar de timp


Starea main (T) - durata de timp n care are loc cea mai simpl operaie intern;
Ti = tCY (i = 1, 2, 3, ...).
Mulimea strilor main posibile - fixat n structura intern a UC.
Ciclul main (M) - succesiune finit de stri main (T1, T2, ...,Tk);
Corespunde
operaiilor
fundamentale
de
schimb
de
informaii
n
interiorul
microprocesorului sau ntre microprocesor i exterior (memorie sau porturi I/E):
- Citire din memorie;
- Scriere n memorie;
- Citire dintr-un port de intrare;
- Scriere ntr-un port de ieire.
- Operaii interne - transfer de informaii ntre registrele interne n paralel cu alte
cicluri
Primul ciclu main al unei instruciuni - ciclul de aducere a codului instruciunii din
memorie (Instruction Fetch Cycle). Durata unui ciclu main

Tc=kT.

Ciclul instruciune (CI) - succesiunea de cicluri main Mj realizate pe durata execuiei


complete a unei instruciuni.
l

l k

j=1

j=1i=1

CI = Mj = Tij
Durata de execuie a unei instruciuni

TI=lkT

Durata de execuie a unei secvene de program - n funcie de durata unei stri main i
de durata fiecrei instruciuni componente.

2.3. Microprocesorul 8085A


I8085A P Intel de uz general de 8 bii; NMOS;
I8085AH (3MHz) I8085AH-2 (5MHz) I8085AH-1 (6MHz) HMOS (consum mai mic cu 20%)
MSM80C85AH (0,55MHz) Oki Semiconductor

Vcc
GND

A15A8

X1
X2
CLK

AD7AD0

HOLD
HLDA

8085A

TRAP
INTR
RST 7.5
RST 6.5
RST 5.5
INTA
SID
SOD
Fig.2.3. Microprocesorul 8085 semnale la pini

IO/M
S1
S0
RD
WR
ALE
READY
RESET IN
RESET OUT

Tipuri de semnale la pini


Alimentare: VCC = 5V;
Semnale de tact:
oscilator intern pilotat cu cristal de cuar conectat ntre X1 i X2;
generator de tact extern conectat pe X1;
fXTAL = 2 fCLK (6 MHz - AH, 10MHz AH-2, 12 MHz AH-1, 110MHz MSM80C85AH)
CLK semnal de sincronizare furnizat n exterior, cu frecvena fXTAL/2;
Iniializare:
RESET IN - iniializare PC=0000h, CBB IE=0, CBB HLDA=0.
RESET ieire de resetare a altor dispozitive externe.
Magistral de adrese/date multiplexat n timp:
16 linii de adrese (A15A8, AD7AD0);
8 linii de date (AD7AD0)
Controlul transferului de date:
ALE (Address Latch Enable) - reine octetul inferior al adresei ntr-un registru extern.
Liniile RD , WR i IO/ M - controlul transferului datelor ntre P i dispozitivele externe.
S0, S1 codific starea MD (Data Bus Status) n principalele cicluri de magistral:
S1 S 0
Tip
ciclu

00

01

10

11

HALT

WRITE

READ

FETCH

Controlul ntreruperilor
INTR, RST 5.5, RST 6.5, RST 7.5 i TRAP linii de prezentare a cererilor de ntrerupere
INTA - linie de confirmare a acceptrii solicitrii de ntrerupere prezentate pe linia
INTR.

2.3.1. Structura intern a microprocesorului 8085A


INTA
RST6.5 TRAP
INTR
RST5.5 RST7.5

SID

Comand
ntreruperi

SOD
Comand
I/E serial

Magistral intern de date (8 bii)

Acumulator
A (8)

Registru
temporar (8)

Bistabile
condiii (5)

Registru
instr. (8)

Unitate
logicoaritmetic

+5V
GND
X1
X2

B (8) C (8)
D (8) E (8)
H (8) L (8)
SP (16)
PC (16)
Latch i
inc./dec. adr.

Decodif.
instr. i codif.
ciclu main

Corecie
zecimal
Tact
extern

CLK

Bloc de secveniere i comand


CONTROL

STATUS

RD WR
S0
READY
ALE

S1

DMA

RESET

RESET
HOLD
OUT
HLDA
IO/M
RESET IN

Tampon
adrese

A15A8

Fig.2.4. Microprocesorul 8085A structura intern

Tampon
adrese/date

AD7AD0
Magistrale de
adrese i adrese/date

Unitatea aritmetic i logic


- un sumator paralel de 8 bii;
- un acumulator (A) de 8 bii, accesibil utilizatorului;
- un acumulator temporar de 8 bii, (ascuns) pentru memorarea primului operand;
- un registru temporar de 8 bii, (ascuns) folosit pentru cel de-al doilea operand;
Registrul accumulator (A)
- conine iniial operandul sau unul dintre cei doi operanzi de prelucrat
- reine rezultatul operaiilor logice i aritmetice
- este cel mai utilizat pentru manipularea operanzilor
- permite intrarea i ieirea datelor n format paralel (sau serie)
- sau serie, prin deplasarea bit cu bit dreapta /stnga

CY

A7

A0

Fig.2.5. Structura i funcionarea registrului acumulator


Operaiile de deplasare - un CBB (circuit basculant bistabil) auxiliar - se pot transfera i
testa biii A7, ..., A0 ai cuvntului din acumulator

- Fanioane sau bistabile de condiii (F - Flags):


o CY (CarrY) transport/mprumut
o AC (Auxiliary Carry) - transport/mprumut interdigit
o Z (Zero) rezultat zero al operaiilor aritmetice i logice
o S (Sign) semn al rezultatului
o P (Parity) paritate numr de bii 1 ai rezultatului

PSW

A7

A6

A5

A4

A3 A2

A1

A0

D7

D6

D5

D4

D3

D2

D1

D0

AC

CY

Fig.2.6. Structura cuvntului de stare a programului


Cuvntul de stare al programului - PSW - Program Status Word, de 16 bii.
Operarea logic - bit cu bit de acelai rang - algebra Boole.
A = (an-1 an-2 ... a1 a0 ), B = (bn-1 bn-2 ... b1 b0)
AA
unde:

B = (cn-1 cn-2 ... c1 c0)

ci = ai bi
ai, bi, ci {0, 1}, i= 0, n - 1

= , , sau
Operarea aritmetic - n baza 2: operaiile: +, -

Registrele microprocesorului
- PC - Program Counter numrtorul de program indic ntotdeauna adresa
instruciunii care urmeaz s se execute;
- SP - Stack Pointer - indicatorul vrfului stivei;
- B, C, D, E, H i L - registre generale, utilizate individual sau n pereche (B-C, D-E, H-L)
- un registru pereche W-Z (ascuns), registru temporar pentru operaii interne.
PC - incrementat/decrementat nainte de a fi transferat n registrul tampon de adres.
Registrele comunic cu magistrala intern printr-un multiplexor, adresat printr-un circuit
de selecie, sub controlul blocului de secveniere i comand.
Magistrala intern de date - izolat de magistrala extern, D7D0, prin intermediul unui
registru tampon bidirecional, care amplific semnalele la nivelul unei sarcini TTL i asigur
memorarea temporar a datelor transmise de microprocesor.
Registrul tampon faciliteaz intrarea datelor i a codurilor instruciunilor.
Registrul de instruciuni primete codul operaiei la nceputul execuiei unei instruciuni.
Blocul de decodificare a instruciunilor - memorie ROM, programat astfel nct s permit
recunoaterea codurilor instruciunilor i odificare a ciclurilor main care trebuie realizate
n etapa de execuie.
Blocul de secveniere i comand - desfurarea temporal a ciclurilor main aferente
execuiei unei instruciuni, sincronizata cu semnalul de tact generat de un oscilator intern.

Stiva zon de memorie RAM, cu acces de tip LIFO (Last In, First Out)
- Stocarea temporar a coninutului registrelor interne;
- Salvarea/ncrcarea adresei de revenire la execuia instruciunilor de apel/revenire;
- Transferul de parametri ntre programul apelant i subrutina apelat;

Adresarea informaiilor din stiv- registrul SP Stack Pointer indicatorul vrfului stivei
SP - conine n orice moment adresa vrfului stivei - adresa ultimei locaii ocupate din stiv
Stiva crete prin decrementarea SP (n sens invers lui PC)
Operaii admise depunere i extragere
- Registre pereche sau cuvinte de 16 bii:
o BC, DE, HL, PC, PSW

Adresa
MIN

- Execuie 2 cicluri succesive de scriere/citire

RAM

:
:

- Adresa este furnizat de SP

Memorie
de date

- Ordinea - convenia Intel


- Adresa mai mic octetul mai puin semnificativ

Accesul n stiv implicit sau explicit


- Acces explicit instruciuni PUSH, POP

SP

- Acces implicit CALL, RET, XTHL

MAX

Stiv

2.3.2. Iniializarea microprocesorului


Comportare determinist aducerea microprocesorului n starea iniial.

Vcc
RESET

P
RESET
trigger
Schmitt

Fig.2.8. Schema de iniializare hardware a microprocesorului 8085A


Iniializare hardware RESET - foreaz unele registre interne ale microprocesorului ntr-o
stare bine definit (de ex. PC=0000h). Nu sunt afectate registrele de uz general.
Resetarea la alimentare i la cerere.
Grupul RC - durata necesar pentru semnalul RESET.
Triggerul Schmitt formeaz frontul semnalului de resetare.

2.3.3. Regimuri de funcionare


Regimul de funcionare normal
Execuie secvenial a instruciunilor programului
Execuie secvenial a ciclurilor main (CM)
Execuie secvenial a microoperaiilor specifice fiecrui ciclu main n parte
Testarea strii liniei READY - sincronizare cu dispozitivele externe
n fiecare ciclu main este testat starea liniei READY;
Dac READY=1 - dispozitivul adresat este pregtit pentru transfer;
Dac READY=0 se intr n regimul de ateptare.
Testarea apariiei unei cereri de cedare de magistral
Trecerea n 1 a liniei HOLD este reinut n bistabilul intern HLDA;
La sfritul fiecrui CM este testat starea acestui bistabil;
Dac CBB HLDA este setat, se intr n regimul de cedare magistrale.
Testarea apariiei unei cereri de ntrerupere n ultimul CM al unei instruciuni
Se testeaz dac exist o cerere de ntrerupere valid.
Dac exist o cerere valid, se intr n regimul de ntrerupere.
Execuia instruciunii HLT (Halt)
Se intr n regimul de oprire (HALT)

Regimul de ateptare sincronizarea transferului dintre P i dispozitive externe mai lente


Se introduc perioade de ateptare TW;
Se testeaz starea liniei READY n fiecare perioad TW;
Cnd READY este gsit activ, se revine n regimul de funcionare normal.

Regimul de cedare de magistrale - (regimul HOLD):


Un alt dispozitiv solicit prin HOLD=1 accesul la magistrala sistemului;
Cererea este memorat ntr-un bistabil intern (HLDA - HoLD Acknowledge flip-flop);
P cedeaz MA, MD i MC (HZ) i confirm prin semnalul HLDA=1;
La dispariia cererii (HOLD=0), bistabilul intern este resetat i P reia controlul MS.

Regimul de ntreruperi
Se trece la execuia primei instruciuni a rutinei de tratare a ntreruperii:
furnizat de dispozitivul solicitant la activarea de ctre P a liniei INTA (INTR)
este predefinit, fixat n hardware, fiind cunoscut de P (TRAP, RST).

Regimul de oprire
P i trece n starea HZ liniile de adrese, date i o parte dintre liniile de control.
Se execut cicluri HALT succesive.
La apariia unei cereri de cedare de magistrale, se intr n regimul HOLD.
La revenirea din regimul HOLD, se continu cu cicluri HALT.
La apariia unei cereri de ntrerupere, se intr n regimul de ntrerupere.
La revenirea din ntrerupere se continu cu instruciunea care urmeaz lui HLT.
La resetare, se intr n regimul de funcionare normal.

2.3.4. Secvenierea intern a operaiilor


Execuia unei instruciuni: 15 cicluri main.
Tipuri de cicluri main

Tip ciclu

Stare

Comand

S1

S0

IO/ M

RD

WR

INTA

OF (Opcode Fetch)

MR (Memory Read)

MW (Memory Write)

IOR (I/O Read)

IOW (I/O Write)

INA (INterrupt Acknowledge)

BI (Bus Idle):

1
1
0

0
1
0

0
1
HZ

1
1
HZ

1
1
HZ

1
1
1

DAD
Ack. TRAP, RST
HALT

OF primul ciclu main al unei instruciuni 4 sau 6 perioade de tact;


BI - ciclu main care nu utilizeaz magistrala sistemului;
INA extragere cod operaie depus de dispozitivul I/E care a cerut o ntrerupere pe INTR.

Diagrama de tranziie a strilor

TRESET

RESET
RESET

T1

HALT

HALT

T2

CC=6

HOLD=1
Nu

CC=4

T6
CBB
HLDA=1

THALT

VALIDINT
RESET
CBB HALT
SET CBB INTA
RESET CBB IE

Da
SET
CBB HLDA

T5

Da

Nu
Nu

SET CBB
HLDA

SET CBB
HLDA

Nu

T4

HOLD VALIDINT

Da

T3

TWAIT
HOLD

HOLD=1

OF

READY

(READY+BI)

Ultimul
CM al instruciunii
?

THOLD

HOLD

HOLD
RESET
CBB HLDA

Da
Nu

VALIDINT=1

Da

HALT=1

Da

Nu

SET CBB INTA


RESET CBB IE

Fig.2.9. Diagrama de tranziie a strilor la microprocesorul 8085A

Secvenierea operaiilor n ciclurile main

CLK

T1

T2

T3

OUT
PCL

T4

T5, 6

T2

T1

NEDEF.

PCH

A15A8
AD7AD0

M1

(PC + 1)H
OUT
(PC+1)L

IN
D7 D0

M 2 . . . M5

IN
D7 D0

ALE
IO/M
S1 , S0

S1 = S0 = 1

RD

READY
Adrese

Date

Decodificare i
execuie

Adrese

Date

Fig.2.10. Diagrama de semnale pentru un ciclu Opcode Fetch

M1
T1

T2

M2
T3

T4

T1

T2

M3
T3

T1

M4

T2

T3

T1

T2

T3

CLK
IO/M,
S1, S0

( 0,1,1)

( 0,1,0 )

( 0,1,0 )

PCH

(PC+1)H

(PC+2)H

( 0,0,1 )

ALE

A15A8

AD7AD0

OUT

IN

PCL

OPCODE

OUT

IN

OUT

IN

(PC+1)L

ADL

(PC+2)L

ADH

Date de la
memorie

RD

ADH
OUT

OUT

ADL

ACC.

Date de la
memorie

WR
OF

MR

MR

MW

Fig.2.11. Secvenierea operaiilor la execuia instruciunii STA addr

M1
T1

T2

M2
T3

T4

T1

M3

T2

T3

T1

T2

T3

CLK
IO/M,
S1, S0

( 0,1,1)

( 0,1,0 )

( 1,1,0 )

PCH

(PC+1)H

PORT

ALE

A15A8

AD7AD0

OUT

IN

OUT

IN

PCL

OPCODE

(PC+1)L

PORT

OUT

IN

PORT

Adresa port

Date de la
port

RD

WR
OF

MR

RP

Fig.2.12. Secvenierea operaiilor la execuia instruciunii IN port

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