Sunteți pe pagina 1din 23

Structura procesoarelor din familia

INTEL
Structura procesorului 286
Funcionarea (ciclul) procesorului:
1.Citete instruciunea - pe durata acestui ciclu se transmite
adresa instruciunii de executat i se aduce, din memorie,
instruciunea n CPU (ciclul Fetch);
2. Decodific instruciunea (i n paralel citete un posibil
operand de 16 bii);
3. Transmite adresa i citete un operand surs, din
memorie, dac se specific n instruciune, i citete
valoarea registrului destinaie (ciclul Read);
4. Execut instruciunea (ciclul Execution);
5. Transmite adresa i scrie rezultatul n memorie, dac
1
instruciunea cere (ciclulC2Write);

Execuia secvenial a fazelor unei instruciuni

Execuia paralel a fazelor unei instruciuni


Din punct de vedere al vitezei de execuie sunt evidente trei lucruri:
- instruciunile mai lungi -> mai mult timp pentru execuie;
- instruciunile care nu fac referire la memorie se vor executa mai rapid;
- instruciunile ce utilizeaz moduri de adresare complexe se vor executa
mai lent;

C2

C2

D15 D0 = magistrala, bidirecional, de date; ea este folosit ca


intrare pentru date de la memorie, porturi de I/O, cicluri de
recunoatere ntrerupere i folosit ca ieire pentru datele
transmise la memorie sau porturi de I/O;
A23 A0 = magistrala de adrese (de ieire), care furnizeaz adresa
fizic de memorie sau adresa unui port de I/O;
BHE\ = acest semnal indic un transfer de date pe octetul
superior (Bus High Enable), al magistralei de date (D15 D8).
Acest semnal, de ieire, mpreun cu linia de adres A0 determin
tipul de transfer realizat pe magistral: octet superior (D15 D8),
octet inferior (D7 D0) sau cuvnt (D15 D0);
M/IO\ = acest semnal, de ieire, separ accesele la memorie de
cele din spaiul I/O (Memory / Input-Output); dac este 1 pe
durata lui TS se execut un ciclu de memorie sau halt; dac este 0
se execut un ciclu I/O sau recunoatere ntrerupere.
C2

S1\, S0\ = stare magistral, care indic iniierea unui ciclu, i


mpreun cu M/IO\ i COD/INTA\ definesc tipul ciclului: halt,
recunoatere ntrerupere, citire/scriere de date n memorie,
citire/scriere date de la/la porturi I/O, citire instruciune din
memorie (fetch), nu este ciclu magistral, i unele rezervate.
COD/INTA\ = semnal (Code/ INTerrupt Acknowledge), de ieire,
utilizat pentru separarea ciclurilor fetch de ciclurile de citire date
din memorie, respectiv cicluri de recunoatere ntrerupere de
cicluri I/O, n combinaie cu celelalte semnale (S1\, S0\, M/IO\).
LOCK\ = semnalul 'bus LOCK' specific unui alt modul master
de pe magistrala sistemului c nu poate prelua controlul
magistralei. Semnalul este activat de prefixul instruciune cu
acelai nume, LOCK, sau automat de hard- ul procesorului 286 pe
durata execuiei unei instruciuni XCHG cu memoria, pe durata
recunoaterii unei ntreruperi sau pe durata unui acces la tabela de
descriptori de segment.
C2

READY\ = semnalul de intrare 'bus READY' termin un ciclu de


magistral; ciclurile de magistral sunt extinse fr limit pn
cnd semnalul READY\ devine activ (LOW).
HOLD, HLDA = cele dou semnale 'bus HOLD request' i 'bus
HOLD Acknowledge', primul de intrare, iar cel de-al doilea de
ieire permit controlul magistralei; semnalul HOLD permite unui
alt modul master (procesor) s cear controlul asupra magistralei
locale; cnd controlul este recunoscut (cedat), procesorul 286
trece magistrala sa (date, adrese, stri) n starea de mare
impedan, i activeaz semnalul de rspuns HLDA, intrnd n
starea 'hold' (magistrala suspendat). Magistrala este preluat de
celalalt master (procesor) pn cnd semnalul HOLD devine
inactiv (LOW), iar procesorul 286 dezactiveaz linia HLDA,
rectignd controlul asupra magistralei locale.

C2

INTR = activarea acestui semnal, de intrare, (HIGH) va cere


procesorului 286 s-i suspende execuia programului curent i s
serveasc o cerere extern ('INTerrupt Request'). ntreruperile pot
fi mascate (anulate), cnd IF = 0. Cnd 286 rspunde la o cerere
de ntrerupere, el realizeaz 2 cicluri magistral de recunoatere
ntrerupere, pentru a citi un vector de ntrerupere, de 8 bii, care
identific sursa ntreruperii. Pentru a asigura ntreruperea
programului, INTR trebuie s rmn activ pn este completat
primul ciclu de recunoatere ntrerupere, pe durata cruia se
transmite semnalul de recunoatere a ntreruperii INTA\.
NMI = semnalul de intrare 'Non Maskable Interrupt', activ
(HIGH), reprezint tot o cerere de ntrerupere extern, dar
nemascabil, deci nu are nici o semnificaie starea indicatorului IF
pentru acest semnal. Pentru aceast ntrerupere nu se realizeaz
cicluri de recunoatere ntrerupere, i se genereaz un vector de
ntrerupere intern, cu valoarea 2.
C2

PEREQ, = 'Processor Extension operand REQuest', intrare i


PEACK\, = 'Processor Extension operand ACKnowledge', de
ieire, extind facilitile de protecie i administrare a memoriei
virtuale, ale procesorului 286, i pentru extensii procesor (80287);
BUSY\, = semna intrare, 'processor extension BUSY' i
ERROR\, = 'processor extension ERROR', indic condiia de
operare a unei extensii procesor pentru procesorul 286;

C2

C2

Pe durata unui ciclu de magistral se realizeaz operaiile:


se activeaz pe magistrala de adrese, adresa unei locaii de
memorie, sau a unui port I/O, i se memoreaz ntr-un
registru de adrese, extern;
se genereaz semnalul de comand corespunztor, pentru
citire/scriere date;
dispozitivul selectat (memoria sau portul I/O) realizeaz
transferul de date, i transmite procesorului un semnal de
rspuns, pentru a ncheia ciclul.
Controllerul de magistral (82288) decodific semnalele de stare
(S1\, S0\, M/IO\, COD/INTA\ i READY\) pentru a genera
comenzi de citire /scriere (MRDC\, MWTC\, IORC, IOWC) i
semnale pentru comanda latch-urilor de adrese i
transmisie/recepie date (ALE, DEN, DT/R\).
C2

10

32 bit Data Bus

64 bit Interunit
Transfer Bus

32 bit Data Bus


Linear Address Bus
Barrel Shifter
Register File

Base/
Index
Bus
32

ALU

Segmentation
Unit

32

Paging
Unit

Limit and
Attribute PLA

Cache Unit

PCD, PWT

Descriptor
Registers

8K
20
Physical
Address

Translation
Lookaside
Buffer

Byte
Cache

32

micro-instruction

Control and
Protection Test
Unit

F. P.
Register
File

Control
ROM

32 Byte Code
Queue

Code
Stream

Write Buffers
4 x 80

32

2 x 16 Bytes

Transceivers

Bus Control
Request
Sequencer
Burst Bus
Control

Decode

24

BRDY#, BLAST#

BS16#, BS8#

Cache
Control

KEN#, FLUSH#
AHOLD, EADS#

Parity
Generation
and Control

C2

W/R#, D/C#, M/IO#, PCD,


PWT, RDY#, LOCK#,
PLOCK#, BOFF#, A20M#,
BREQ, HOLD, HLDA,
INTR, NMI, RESET, FERR

Bus Size
Control

Instruction
Decoded
Instruct.

D0 - D31

Data Bus

32

Prefetcher

Displacement Bus

A2 - A31,
BE0# - BE3#

32

128

Floating
Point
Unit

Bus Interface
Cache Unit

PCHK#
DP0 DP3

11

C2

12

La procesorul 386/486 acest registru (EFLAGS) are 32 bii, dintre


care ultimii 16 sunt identici cu acetia, dar n plus mai sunt
utilizai nc doi bii (16 i 17) care au urmtoarea semnificaie:
RF (Resume Flag) - acest indicator dezactiveaz, temporar,
excepiile de depanare (debug), astfel nct s se poat restarta o
instruciune dup o excepie de depanare, fr a se genera,
imediat, o alt excepie de depanare; adic nu se execut o
instruciune de breakpoint, dac este returnat controlul de
excepia de depanare direct la o astfel de instruciune.
VM (Virtual 8086 Mode) - acest bit indic c se execut un
program 8086, dac este poziionat pe 1. Bitul VM furnizeaz
modul V86, in modul protejat de operare

C2

13

C2

14

C2

15

Descriptorii de segment de date i cod, conin, pe lng


adresa de baz a segmentului, i alte atribute de segment:
- dimensiunea segmentului (1 64 Koctei);
- drepturi de acces (read only, read/write, execute only,
execute/read);
- prezena n memorie (pentru sistemele cu memorie
virtual).

C2

16

C2

17

Nivelurile de privilegiu
Mecanismele de protecie ale procesorului 286 se bazeaz pe
noiunea de 'ierarhie de ncredere' (sau de privilegiu). Exist patru
niveluri de privilegiu:0 - cel mai privilegiat, 3 - cel mai puin
privilegiat. Urmtoarele obiecte, recunoscute de procesor, conin
niveluri de privilegiu:
- descriptorii de segment conin un cmp DPL - Descriptor
Privilege Level, adic descriptor de nivel de privilegiu;
- selectoarele de segment conin un cmp RPL - Requestor's
Privilege Level, adic nivelul de privilegiu al procedurii
creia aparine selectorul;
- un registru intern al procesorului memoreaz CPL Current Privilege Level, care este egal cu DPL al
segmentului pe care l executa procesorul.
C2

18

C2

19

Accesul ntre nivelele C2


de privilegiu (protecie)

20

Modaliti de apel, prin pori


C2

21

Segmente de stare task (TSS)


Un TSS este un segment special de memorie, pe care procesorul l
utilizeaz pentru a suporta mutitasking. Acesta conine o copie a
tuturor registrelor ce trebuie salvate, pentru a reface starea unui
task; el mai conine valori ce sunt asociate task-ului, dar nu sunt
memorate n registrele CPU. TSS conine trei selectori de
segment de stiv, adiionali, (SS0, SS1, SS2), i trei pointeri de
stiv corespunztori (ESP0, ESP1, ESP2).
Cnd un apel sau ntrerupere, printr-o poart determin o
modificare n privilegiu, noile SS:ESP, sunt ncrcate din TSS.
Registrul de task (TR) conine selectorul TSS activ, curent.
Cnd apare o comutare de task, toate registrele task-ului curent
executat sunt salvate n TSS-ul activ. Registrul task se ncarc,
apoi, cu selectorul unui nou TSS, i fiecare registru general este
ncrcat cu valorile respective, din noul TSS.
TSS mai conine legtura napoi (back link) care reprezint
selectorul TSS-ul executat anterior.
C2
22

Organizarea spaiului de I/O


Procesorul are dou spaii de adrese fizice distincte: memoria i
I/O (intrri/ieiri).
Locaiile din spaiul I/O sunt denumite registre dispozitiv sau
porturi de I/O. n general perifericele sunt plasate n acest spaiu,
dei procesorul poate permite maparea (suprapunerea) n
memorie a perifericelor.
Pentru a accesa acest spaiu nu se utilizeaz registre segment, i
deci nici mecanismul de segmentare sau pagin. Pinul M/IO\
specific spaiul de memorie adresat (fizic sau I/O).
Instruciunile I/O, IN i respectiv OUT, pot furniza adresa direct
n instruciune, ca o constant de 8 bii (deci pentru porturile din
spaiul 0-255), sau indirect prin registrul DX (deci pentru tot
spaiul de 64 K).

DMA (Direct Memory Access)


C2

23

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