Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Idei bun pentru succesul afacerii tale.producerea de hrana, vegetala si animala, fibre, cultivarea plantelor, cresterea animalelor




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Calculatoare


Index » educatie » » informatica » Calculatoare
» Microprocesorul 80286


Microprocesorul 80286


Microprocesorul 80286


Este produs de firma INTEL si este destinat aplicatiilor de mare complexitate, unor statii de lucru puternice, ca si conducerii evoluate a sistemelor functionand in timp real.


Microprocesorul ofera facilitati neintalnite la predecesorii sai (8086, 80186), printre care se remarca:


gestiunea memoriei virtuale bazata pe hardware si microprogramare;

implementarea mediilor protejate de executie a taskurilor;

gestiunea taskurilor in sistemele cu microprogramare.


1. Arhitectura unitatii centrale de prelucrare




(vezi fig.1)


a.     Organizarea interna


Unitatea centrala de prelucrare (UCP) consta din patru blocuri principale:


Unitatea de magistrala (UM);

Unitatea instructiunii (UI);

Unitatea de executie (UE);

Unitatea adresei (UA).


Una din caracteristicile majore ale UCP consta in utilizarea unui tampon stiva intre unitatea instructiunii si cea de executie. Acest fapt duce la cresterea vitezei de executie a unei secvente de instructiuni stocate in locatii de memorie succesive, deoarece permite suprapunerea extragerii, decodificarii si executiei instructiunilor.


Tamponul de pre-extragere intre UM si UI poate contine pana la 6 octeti din adresele de memorie imediat urmatoare celei ce contine instructiunea curenta.


UI:

decodifica instructiunea si plaseaza rezultatul in tamponul instructiunilor decodificate, care poate contine trei astfel de instructiuni;


UE:

prelucreaza operanzii in concordanta cu instructiunea decodificata extrasa din tamponul instructiunilor decodificate;

calculeaza adresele virtuale ale operanzilor;


UA:

converteste adresele virtuale in adrese fizice fiind asociata unei unitati de gestiune a memoriei implementata pe aceeasi placheta de siliciu cu UCP;

permite cresterea vitezei de operare prin evitarea intarzierilor de transmisie intre circuitele integrate.


b.     Semnale ale UCP


Capsula microprocesorului 80286 are 63 pini, dintre care 6 sunt pentru alimentare, iar 57 sunt destinati astfel:

STARE

NUME

I/O

DESCRIERE

HIGH

CLK

I

ceasul sistem (system clock)-produce tactul pentru sistemul 80286. Este divizat (cu doi) in interiorul microprocesorului

HIGH

D0‑D15

IO

Semnalele magistralei de date a microprocesorului prin care UCP primeste date la citirea din memorie, la citirea din porturi de intrare si pe durata ciclurilor de confirmare a acceptarii cererilor de intreruperi. Ca iesiri din UCP acestea sunt folosite la transmiterea datelor la inscrierea in memorie si la porturile de iesire. Datele ce se transfera pot fi sub forma de cuvinte de 8 sau 16 biti. Datele pe 8 biti pot fi vehiculate atat pe D0-D7, cat si pe D8-D15, dupa cum adresa octetului este para sau impara.

HIGH

A23‑A0

O

Iesiri din UCP ce constituie informatiile vehiculate pe magistrala de adrese; ele contin adresa fizica a locatiei de memorie sau a portului de I/o; Sistemul poate adresa 64k porturi, asa ca doar liniile A0-A15 sunt folosite in conjunctie cu porturile.

LOW

BHE

O

Bus High Enable - este folosit pentru a se putea face discriminarea intre adresarea unui octet de la adresa para (A0=0, BHE=1). Activarea semnalului indica efectuarea unui transfer de date pe liniile D8-D15

BHE

A0

Functia

0

0

Transfer cuvint(16 biti)

0

1

Transfer octet pe D15‑D8

1

0

Transfer octet pe D7‑D0

1

1

Rezervat

LOW

M/IO

O

Memory I/O Select  indica tipul transferului de date:

M/IO =1 - in conjunctie cu memoria

M/IO =0 - in conjunctie cu un port de intrare/iesire

LOW

COD/INTA

O

Code/Interrupt Acknowledge:

permite deosebirea unei operatii de extragere din memorie a codului instructiunii de o operatie de citire din memorie a datelor;

permite discriminarea intre ciclul de confirmare a acceptarii cererii de intrerupere si citirea dintr-un port de intrare.

LOW

S1,S0

O

Bus cycle Status - semnale de starece indica initierea unui ciclu ciclu magistrala si care folosite in conjunctie cu M/IO si COD/INTA identifica tipul de ciclu magistrala efectuat, astfel:

COD/INTA

M/IO

S1

S0

Tip de ciclu magistrala

0

0

0

0

Confirmare a cererii de intrerupere

0

0

0

1

Rezervat

0

0

1

0

Rezervat

0

0

1

1

In repaus

0

1

0

0

Daca, A1=1 - halt, altfel stop

0

1

0

1

Citire date din memorie

0

1

1

0

Inscriere date in memorie

0

1

1

1

In repaus

1

0

0

0

Rezervat

1

0

0

1

Citire port de intrare

1

0

1

0

Inscriere port de iesire

1

0

1

1

In repaus

1

0

0

0

Rezervat

1

0

0

1

Citire cod instructiune

1

0

1

0

Rezervat

1

0

1

1

In repaus

In repaus - ciclu inexistent, stare pasiva;

Rezervat - ciclu masina rezervat pentru variante ulterioare

LOW

LOCK

O

Bus Lock - indica faptul ca alt sistem nu poate avea acces la magistralele sistemului in timpul ciclului curent si in ciclurile urmatoare.Semnalul este activat explicit prin instructiunea 'LOCK' sau implicit in timpul instructiunilor XCHG cu memoria, acceptarii intreruperilor sau la accesarea tabelelor de descriptori.

LOW

READY

O

Bus Ready - -indica terminarea unui ciclu magistrala

HIGH

HOLD

HLDA

I

O

Bus Hold Request

Hold Acknowledge

Permit implementarea unui protocol simplu de transfer si reprimire de catre UCP a controlului asupra mafistralei locale unui/de la alt posibil master. Cand HOLD=1, microprocesorul termina ciclul magistrala curent si acorda accesul solicitantului, trecand semnalul HLDA in 1, pentru ca noul master sa poata emite semnale de comanda pe magistrala. Cand a terminat, masterul dezactiveaza semnalul HOLD, microprocesorul preluand controlul magistralei si dezactivand HLDA.

HIGH

INTR

I

Interrupt Request - solicita microprocesorului sa-si suspende programul curent si sa serveasca o cerere de intrerupere externa.. INTR este memorat la inceputul fiecarui ciclu si trebuie sa ramina HIGH cel putin doua cicluri pentru ca microprocesorul sa accepte intreruperea inaintea instructiunii urmatoare.Cum intrarea este unica, pe durata ciclului de confirmare a acceptarii cererii de intrerupere microprocesorul primeste pe magistrala de date un identificator de 8 biti reprezentand informatii despre sursa intreruperii.

HIGH

NMI

I

Non-Maskable Interrupt Request - activeaza o intrerupere cu vectorul avind valoarea  Nu este realizat nici un ciclu de acceptare a intreruperii, existand o unica intrerupere nemascabila. Pentru a fi recunoscut, semnalul trebuie sa fie LOW cel putin 4 perioade de ceas si HIGH cel putin 4 perioade.


PEREQ PEACK  

I

O

Processor Extension  Requesst

Processor Extension Acknowledge

Pereche de semnale ce extinde mecanismele de protectie si gestiune ale memoriei si asupra transferurilor de date efectuate de catre procesorul matematic. PEREQ solicita microprocesorului sa realizeze un transfer de operanzi catre procesorul extensie. PEACK informeaza ca operanzii au fost transferati

LOW

BUSY ERROR

I

Processor Extension Busy

Processor Extension Error

Pereche de semnale ce indica conditiile de operare ale procesorului extensie. Un semnal BUSY activ arata ca operatia ceruta procesorului extensie este in curs de desfasurare si stopeaza activitatile UCP cand se executa instructiunile  WAIT sau ESC pina cand BUSY devine inactiv. 80286 poate fi intrerupt in timpul cit asteapta ca BUSY sa devina inactiv. Un semnal ERROR activ activeaza o intrerupere speciala care informeaza UCP despre detectarea unei erori pe durata executarii de catre procesorul extensie a unei operatii.

HIGH

RESET

I

System Reset - anuleaza toate operatiile UCP si il repune intr-o stare initiala bine determinata, ceea ce permite repornirea ordonata a sistemului de programe la fiecare noua punere sub tensiune sau dupa revenirea dintr-o eroare fatala de sistem.


c.      Organizarea memoriei


Memoria principala a sistemului cu microprocesor 80286 consta din unitati adresabile de 8 biti (octeti).



80286 are doua moduri de lucru:


Modul real In modul real 80286 este compatibil, din punct de vedere al codului obiect, cu microprocesoarele 8086 si 8088. Memoria fizica este o arie continua de 1.048.576 bytes (1Mo) adresati prin pinii A0-A19.Pinii A23-A20 sint ignorati.


Modul protejat 80286 executa, in modul protejat, intregul set de instructiuni al mp. 8086. Modul protejat ofera, de asemenea mecanisme de gestiune a memoriei, mecanisme de protectie si setul de instructiuni asociate. 80826 intra in modul protejat din modul real prin setarea bitului PE din registrul MSW si incarcarea acestuia cu instructiunea LMSW.


In modul protejatal mp.80286 dispune de 1 Go de spatiu virtual de adresare proiectat intr-un spatiu de 16Mo de adrese fizice definite prin liniile A23-A0 si BHE.


Mod de functionare

Spatiu maxim de adresare

Cu adrese reale

220- 1Mo

Protejat

Memoria fizica adresabila este de 224 - 16Mo

Memoria virtuala este de 230 - 1Go


Microprocesorul asigura mediul de lucru pentru multiprogramare. Astfel, mai multi programatori pot folosi acelasi spatiu virtual pentru diferite programe pe baza mecanismelor de conversie a adreselor virtuale in adrese fizice care ofera diverse spatii de memorie pentru fiecare program din sistem.


Adresarea memoriei este bazata pe conceptul de segmentare, intregul spatiu de adresare fiind compus din segmente a caror lungime variaza intre 1ko si 64 ko. Numarul maxim permis de segmente este 16 pentru modul real de functionare si 16k (214) in cazul functionarii in modul protejat.



Principalele tipuri de date


Structurile de date de baza sunt octetul si cuvantul (16 biti). Ele pot fi citite sau inscrise intr-un singur ciclu magistrala. Tipurile de date direct manipulate de 80286 sunt:


Intregi cu semn, de 8 sau 16 biti; numerele negative sunt reprezentate in complement fata de 2(c'2); cand se utilizeaza coprocesorul matematic, lor li se adauga intregi cu semn pe 32 sau 64 de biti


Exemplu: valoarea unui intreg reprezentat pe N biti in c'2 este

N-2

Vc'2= a bi x 2I- b N-1 x 2 N-1

i=0

Domeniul in care poate lua valori este: -(2 N-1 ) - 2 N-1 -1


In cazul unei reprezentari binare pe 8 biti se poate sintetiza:

Reprezentare binara

Valoare

Observatii

01111111

127

Cea mai mare valoare reprezentabila

01111110

126





00000010

2

Primul 0 indica numar pozitiv

00000001

1


00000000

0


11111111

-1

-1 este intotdeauna numai 1

11111110

-2


11111101

-3





10000001

-127


10000000

-128

Cea mai negativa valoare reprezentabila


Intregi fara semn de 8 sau 16 biti; toti bitii participa la reprezentarea merimii numarului, valoarea sa fiind:


N-1

Vfs= a bi x 2i,

i=0



unde

bi - este valoarea bitului din pozitia i.


Exemplu: 10110101 are valoarea V= 1x27+0x26+1x25+1x24+.+1


Indicator (pointer): numere pe 32 de biti indicand o adresa; ele sunt compuse din doua entitati pe 16 biti: un selector care defineste numarul segmentului si un offset indicand deplasamantul in cadrul segmentului;


Siruri: secvente de octeti cu lungimea de la 1 octet la 64Ko;


Octeti ASCII: octeti continand codul ASCII al unui caracter;


Numere in format BCD

BCD neimpachetat: octeti reprezentand o singura cifra zecimala;

BCD impachetat: octeti in care se memoreaza doua cifre zecimale, fiecare in cate un spatiu de 4 biti.


Exemplu: Reprezentarea numarului 3481 in

BCD neimpachetat

00000011|00000010|00001000|00000001

BCD impachetat

0011|0010|1000|0001


Numere in virgula mobila: in conjunctie cu 80287; in absenta coprocesorului este necesar un emulator software al acestuia pentru a manipula acest tip de date.



3. Modelul de programare


Modelul de programare dispune de un set de 14 registre in care se includ:


Registre de uz general;

Registre de comanda;

Registre pentru calculul adresei.


Registrele de uz general

Sunt utilizate 8 registre a cite 16 biti  pentru a manipula operanzii in operatiile aritmetice si logice,. 4 dintre acestea (AX,BX,CX,DX) pot fi referite si in perechi separate de cite 8 biti.



Numele registrului pe 16 biti



7 0



7 0


Functii speciale

Registre adresabile la nivel de octet

AX

AH

AL

Inmultiri,impartiri,functii I/O, bucle

DX

DH

DL

CX

CH

CL

contor

BX

BH

BL

Registre baza


BP



SI


Registre index


DI



SP


Indicator de stiva


Registrele baza pastreaza adresa de baza a structurilor de date.

Registrele index stocheaza offset-ul in cadrul structurii de date.

Registrul indicator de stiva contine offset-ul varfului stivei in cadrul segmentului de stiva.


Registrele pentru calculul adresei

Sunt reprezentate de registrele segment.



150


CS


selector segment de cod

DS


selector segment de date

SS


selector segment de stiva

ES


selector segment de date suplimentar


Pastreaza selectorii pentru patru segmente distincte care definesc spatiul curent adresabil al programului; pentru realizarea accesului la un cuvant sau octet din cadrul segmentului este necesara incarcarea prealabila a unui din registrele segment cu selectorul segmentului;

Fiecare registru segment permite calcularea adresei pentru un anumit tip de segment;

Selectorul de segment are formate si roluri diferite in functie de modul de adresare in care se afla, real sau virtual.


In modul real: calculul adresei fizice este:


16 biti



selector segment

0000



16 biti



offset


20 biti


adresa fizica



Selectorul reprezinta cei mai semnificativi 16 biti din cei 20 ai adresei de baza a segmentului; cei mai putin semnificativi 4 biti ai adresei de baza sunt 0, determinand ca adresa de inceput a oricarui segment sa fie multiplu de 16.


In modul virtual, selectorul are o structura mai complexa, indicand un segment de 16ko in spatiul adreselor virtuale.


Registre de comanda

Trei registre de cite 16 bit sint folosite de catre 80286.



15 0


F


Indicator de conditii

IP


Indicator al instructiunii

MSW


Cuvant de stare a masinii


IP (Instruction Pointer

contine offset‑ul urmatoarei celule de memorie al carei continut trebuie extras in vederea rularii programului curent;

orice adresa la 80286 este compusa din selector:offset, deci nu exista un contor propriu-zis al programului. In locul sau se foloseste perechea CS:IP care defineste un registru pe 32 de biti.


Indicatorul de conditii

inregistreaza caracteristicile specifice rezultatelor obtinute in urma operatiilor aritmetice si logice sau controleaza operarea lui 80286;

are urmatoarea structura:


15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0


NT

IOPL

OF

DF

IF

TF

SF

ZF


AF


PF


CF


Unde:


Bit

Nume

Functia

0

CF

Carry Flag

Este '1' daca a avut loc imprumut sau transport, altfel este '0'.

2

PF

Parity Flag

Este '1' daca ultimii 8 biti ai rezultatului contin un numar par de '1', altfel este '0'

4

AF

Auxiliary Flag

Este '1' daca a avut loc transport sau imprumut de la c.m.p.s. tetrada a rezultatului, altfel '0'.

6

ZF

Zero Flag

'1' daca rezultatul este 0, altfel este '0'.

7

SF

Sign Flag

Este egal cu c.m.s. bit al rezultatului

8

TF

Single Step (Trap) Flag

Daca este setat,o intrerupere intr‑un singur pas este realizata dupa executia urmatoarei instructiuni. TF este resetat de intreruperea intr‑un singur pas.

9

IF

Interrupt Enable Flag

Cind este setat, sunt permise intreruperile pe linia INT

10

DF

Direction Flag

Determina instructiunile cu siruri sa autodecrementeze registrul index corespunzator cind este setat. Cind este resetat determina autoincrementarea.

11

OF

OverFlow Flag

Este setat daca rezultatul are o dimensiune mai mare decait operandul destinatie, altfel este '0'

12,

13

IOPL

I/O Priviledge Level

Este utilizat in modul protejat si indica nivelul minim al privilegiului necesar pentru a stoca operatii de intrare/iesire

14

NT

Nested Task

Este folosit in modul protejat si indica daca exista taskuri imbricate, fapt ce conditioneaza modul efectuarii operatiei de return din taskul curent

Observatie:

Modificarea indicatorilor IF, IOPL si NT se face doar dupa testarea prealabila a dreptului de acces; in acest mod sunt inhibate actiuni asupra lor efectuate de catre programe neautorizate.



Registrul MSW


pastreaza informatii despre configurarea si starea procesorului 80286;

printre alte scopuri acest registru permite activarea modului protejat, de aceea, este accesibl programatorului;

desi are 16 biti, doar ultimii 4 sunt implementati. Primii trei biti sunt setati prin program la initializarea modului protejat, iar al patrulea este bit de stare setat automat de UCP in anumite momente.


MSW


TS

EM

MP

PE


MSW prezentat are componente cu urmatoarea semnificatie:

PE(Protected Mode Enable) pune 80286 in modul protejat si poate fi  sters doar prin RESET.

MP(Monitor Processor Extension) permite instructiunii WAIT sa genereze  o exceptie care semnifica lipsa procesorului extensie(exceptia 7).

EM(Emulate Processor Extension) genereaza exceptia 7 pe instructiunea  ESC pentru a permite emularea procesorului extensie.

TS(Task Switched) indica faptul ca urmatoarea instructiune ce  utilizeaza procesorul extensie va cauza exceptia 7, permitand software‑ului sa testeze daca contextul procesorului extensie apartine task‑ului curent.


Instructiunile LMSW si SMSW pot sa incarce si sa memoreze MSW in modul real.







Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate