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 S S funcia de tranziie descrie evoluia intern


g:I 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

comenzi CMD. INIT.


(RESET)

P d a c

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

M1
CLK
T1 T2 T3

t Fig.2.2. Semnal de tact pentru microprocesor

tCY = T
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
CI = Mj = Tij
j=1 j=1i=1

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
A15A8
GND
X1
X2 AD7AD0
CLK
HOLD IO/M
HLDA 8085A S1
S0
TRAP RD
INTR WR
RST 7.5
RST 6.5 ALE
RST 5.5 READY
INTA
SID RESET IN
SOD RESET OUT
Fig.2.3. Microprocesorul 8085 semnale la pini
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 00 01 10 11
Tip
HALT WRITE READ FETCH
ciclu

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 SOD

Comand Comand
ntreruperi I/E serial

Magistral intern de date (8 bii)

Acumulator Registru Bistabile Registru B (8) C (8)


A (8) temporar (8) condiii (5) instr. (8) D (8) E (8)
H (8) L (8)
Unitate SP (16)
logico- Decodif. PC (16)
aritmetic instr. i codif. Latch i
ciclu main inc./dec. adr.
+5V Corecie
GND zecimal
X1 Tact Bloc de secveniere i comand Tampon Tampon
X2 extern CONTROL STATUS DMA RESET adrese adrese/date

HOLD RESET
CLK RD WR S0 S1 A15A8 AD7AD0
OUT
READY ALE IO/M HLDA Magistrale de
RESET IN adrese i adrese/date
Fig.2.4. Microprocesorul 8085A structura intern
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

D7 D6 D5 D4 D3 D2 D1 D0
PSW A7 A6 A5 A4 A3 A2 A1 A0 S Z - AC - P - 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 B = (cn-1 cn-2 ... c1 c0)
unde:
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 Adresa RAM


- Registre pereche sau cuvinte de 16 bii: MIN
o BC, DE, HL, PC, PSW
Memorie
- Execuie 2 cicluri succesive de scriere/citire de date
:
- Adresa este furnizat de SP :
- Ordinea - convenia Intel

- Adresa mai mic octetul mai puin semnificativ

Accesul n stiv implicit sau explicit

- Acces explicit instruciuni PUSH, POP SP Stiv


- Acces implicit CALL, RET, XTHL MAX
2.3.2. Iniializarea microprocesorului

Comportare determinist aducerea microprocesorului n starea iniial.

Vcc

RESET D R
P
RESET
C
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

Stare Comand
Tip ciclu
S1 S0 IO/ M RD WR INTA

OF (Opcode Fetch) 1 1 0 0 1 1
MR (Memory Read) 1 0 0 0 1 1
MW (Memory Write) 0 1 0 1 0 1
IOR (I/O Read) 1 0 1 0 1 1
IOW (I/O Write) 0 1 1 1 0 1
INA (INterrupt Acknowledge) 1 1 1 1 1 0
BI (Bus Idle): DAD 1 0 0 1 1 1
Ack. TRAP, RST 1 1 1 1 1 1
HALT 0 0 HZ HZ HZ 1

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
HALT
T1
HALT
READY
(READY+BI) TWAIT HOLD VALIDINT
T2
HOLD
THALT
VALIDINT
Da
HOLD=1
SET CBB RESET
?
SET CBB HLDA CBB HALT
Nu
HLDA
SET CBB INTA
OF CC=6 Da RESET CBB IE
T3 T4 HOLD=1
?
CC=4 Nu SET
CBB HLDA
T6 T5
CBB Da
HLDA=1
Nu THOLD HOLD

Nu Ultimul HOLD
CM al instruciunii RESET
? CBB HLDA
Da
Nu Da
VALIDINT=1 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

M1 M 2 . . . M5
T1 T2 T3 T4 T5, 6 T1 T2
CLK

A15A8 PCH NEDEF. (PC + 1)H


OUT IN OUT IN
AD7AD0 PCL D7 D0 (PC+1)L D7 D0

ALE

IO/M

S1 , S0 S1 = S0 = 1

RD

READY
Adrese Date Decodificare i Adrese Date t
execuie
Fig.2.10. Diagrama de semnale pentru un ciclu Opcode Fetch
M1 M2 M3 M4
T1 T2 T3 T4 T1 T2 T3 T1 T2 T3 T1 T2 T3
CLK

IO/M,
S1, S0 ( 0,1,1) ( 0,1,0 ) ( 0,1,0 ) ( 0,0,1 )

ALE

A15A8 PCH (PC+1)H (PC+2)H ADH

OUT IN OUT IN OUT IN OUT OUT


AD7AD0 PCL OPCODE (PC+1)L ADL (PC+2)L ADH ADL ACC.

Date de la Date de la
memorie memorie
RD

WR

OF MR MR MW t

Fig.2.11. Secvenierea operaiilor la execuia instruciunii STA addr


M1 M2 M3
T1 T2 T3 T4 T1 T2 T3 T1 T2 T3
CLK

IO/M,
( 0,1,1) ( 0,1,0 ) ( 1,1,0 )
S1, S0

ALE

A15A8 PCH (PC+1)H PORT

OUT IN OUT IN OUT IN


AD7AD0 PCL OPCODE (PC+1)L PORT 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