Post on 09-Jul-2015
Cursul 2Microprocesorul 8085A structura intern i funcionarea2.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 comenzi UC GT CMD. INIT. (RESET)
P
dMD
aMA MC
c
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 = TFig.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.
CI = Mj = Tijj=1 j=1i=1
l
l k
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 X1 X2 CLK HOLD HLDA TRAP INTR RST 7.5 RST 6.5 RST 5.5 INTA SID SODFig.2.3. Microprocesorul 8085 semnale la pini
A15A8
AD7AD0 IO/M S1 S0 RD WR ALE READY RESET IN RESET OUT
8085A
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 S0 Tip ciclu 00 HALT 01 WRITE 10 READ 11 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 Comand ntreruperi Magistral intern de date (8 bii) SID SOD
Comand I/E serial
Acumulator A (8)
Registru temporar (8)
Bistabile condiii (5) Unitate logicoaritmetic
Registru instr. (8)
Decodif. instr. i codif. ciclu main
B (8) C (8) D (8) E (8) H (8) L (8) SP (16) PC (16) Latch i inc./dec. adr.
+5V GND X1 X2Tact extern CONTROL
Corecie zecimal Bloc de secveniere i comandSTATUS DMA RESET
Tampon adrese
Tampon adrese/date
CLK
RD WR S0 READY ALE
S1
RESET HOLD OUT HLDA IO/M RESET IN
A15A8
AD7AD0 Magistrale de 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 o S (Sign) semn al rezultatului o P (Parity) paritate numr de bii 1 ai rezultatului
D7 PSW A7 A6 A5 A4 A3 A2 A1 A0 S
D6 Z
D5
D4 AC
D3
D2 P
D1
D0 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) A A 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,; - 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 vrful 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 incrementare) Operaii admise depunere i extragere- Registre pereche sau cuvinte de 16 bii: o BC, DE, HL, PC, PSW - Execuie 2 cicluri succesive de scriere/citire - Adresa este furnizat de SP - Ordinea - convenia Intel - Adresa mai mic octetul mai puin semnificativ
Adresa MIN
RAM Memorie de date
: :
Accesul n stiv implicit sau explicit- Acces explicit instruciuni PUSH, POP - Acces implicit CALL, RET, XTHL
SP MAX
Stiv
2.3.2. Iniializarea microprocesorului Comportare determinist aducerea microprocesorului n starea iniial.
Vcc RESET D R
PRESET trigger Schmitt
C
Fig.2.8. Schema de iniializare hardware a microprocesorului 8085A Iniializare hardware RESET - foreaz unele registre interne ale microprocesorului ntr-o stare bine definit. 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 S1 1 1 0 1 0 1 1 1 0 S0 1 0 1 0 1 1 0 1 0IO/ M
Tip ciclu OF (Opcode Fetch) MR (Memory Read) MW (Memory Write) IOR (I/O Read) IOW (I/O Write) INA (INterrupt Acknowledge) BI (Bus Idle):DAD Ack. TRAP, RST HALT
ComandRDWRINTA
0 0 0 1 1 1 0 1 HZ
0 0 1 0 1 1 1 1 HZ
1 1 0 1 0 1 1 1 HZ
1 1 1 1 1 0 1 1 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
TRESETRESET
RESET
T1
HALT READY TWAIT HOLD Da SET CBB HLDA CC=6 HOLD=1 Nu Da SET CBB HLDA SET CBB HLDA HOLD VALIDINT THALT VALIDINT RESET CBB HALT SET CBB INTA RESET CBB IE
HALT
T2
(READY+BI)
HOLD=1
?Nu OF
T3
T4
?
CC=4
T6CBB HLDA=1 Nu Nu Ultimul CM al instruciunii ? Da
T5
THOLD
HOLD
HOLD RESET CBB HLDA Da
DaNuVALIDINT=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
CLK
T1
T2
T3
M1
T4
T5, 6
T1
T2
M2 . . . M5
A15A8AD7AD0 ALE IO/M S1 , S0 OUT PCL
PCH IN D7 D0
NEDEF. OUT (PC+1)L
(PC + 1)H IN D7 D0
S1 = S0 = 1
RD
READY Adrese Date Decodificare i execuie Adrese Date tFig.2.10. Diagrama de semnale pentru un ciclu Opcode Fetch
M1 T1 CLK IO/M, S1, S0 ALE T2 T3 T4 T1
M2 T2 T3 T1
M3 T2 T3 T1
M4 T2 T3
( 0,1,1)
( 0,1,0 )
( 0,1,0 )
( 0,0,1 )
A15A8 OUTPCL
PCH INOPCODE
(PC+1)H OUT(PC+1)L
(PC+2)H OUT(PC+2)L
ADH OUTADL
INADL
INADH
OUTACC.
AD7AD0 RD
Date de la memorie
Date de la memorie
WR OF MR MR MW t
Fig.2.11. Secvenierea operaiilor la execuia instruciunii STA addr
M1 T1 CLK IO/M, S1, S0 ALE T2 T3 T4 T1
M2 T2 T3 T1
M3 T2 T3
( 0,1,1)
( 0,1,0 )
( 1,1,0 )
A15A8 OUTPCL
PCH INOPCODE
(PC+1)H OUT(PC+1)L
PORT OUTPORT
INPORT
IN Date de la port
AD7AD0 RD
Adresa port
WR OF MR RP
Fig.2.12. Secvenierea operaiilor la execuia instruciunii IN port