Structura procesoarelor din familia Intel

Previzualizare curs:

Extras din curs:

5.1. Structura procesorului 286

Arhitectura internă a microprocesorului 286 constă din patru unităţi funcţionale, care lucrează în paralel şi realizează execuţia instrucţiunilor ca pe o „bandă de asamblare".

Funcţionarea procesorului se poate rezuma, în principiu, la o succesiune de operaţii care se execută în mod repetat:

1. Citeşte instrucţiunea - pe durata acestui ciclu se transmite adresa instrucţiunii de executat şi se aduce, din memorie, instrucţiunea în CPU (ciclul Fetch);

2. Decodifică instrucţiunea (şi în paralel citeşte un posibil operand de 16 biţi);

3. Transmite adresa şi citeşte un operand sursă din memorie, dacă se specifică în instrucţiune, şi citeşte valoarea registrului destinaţie (ciclul Read)

4. Execută instrucţiunea (ciclul Execution);

5. Transmite adresa şi scrie rezultatul în memorie, dacă instrucţiunea o cere (ciclul Write).

La un procesor tradiţional (de exemplu 8080) fazele de execuţie ale unei instrucţiuni se realizau secvenţial (figura 5.1):

F1 D1 E1 F2 D2 E2

Figura 5.1 Execuţia secvenţială a fazelor unei instrucţiuni

În această schemă s-a considerat execuţia a două instrucţiuni simple, fiecare dintre ele cu fazele de citire instrucţiune (Fetch, F1 şi respectiv F2), decodificare (D1, D2) şi execuţie instruc¬ţiune (E1, E2). Dacă instrucţiunile respective conţin şi ciclurile de citire sau scriere (3 şi res¬pectiv 5), atunci acestea trebuie inserate după decodificarea, respectiv execuţia instrucţiunii.

Spre deosebire de acest mod de lucru secvenţial tradiţional, procesorul 80286 reali¬zează execuţia acestor faze în paralel, ca în figura 5.2.

Figura 5.2 Execuţia paralelă a fazelor unei instrucţiuni.

În această diagrama sunt simplificate ciclurile procesorului, considerându-se execuţia unei secvenţe de instrucţiuni simple, care nu conţine operaţiile 3 şi 5, dintr-un ciclu complet al unei instrucţiuni complexe. Pentru aceste instrucţiuni se mai inserează fazele necesare transmiterii adreselor operanzilor (pentru AU) şi cele de citire sau scriere ai operanzilor (pentru BU).

Cele patru unităţi funcţionale ale procesorului 286 sunt: unitatea de adresare (AU), unitatea de interfaţă cu magistrala (BU), unitatea de decodificare instrucţiuni (IU) şl unitatea de execuţie (EU), ca în figura 5.3.

Unitatea de adresare (AU - Address Unit) determină adresa fizică, conţine un sumator de deplasament (offset), care determină offsetul în funcţie de modul de adresare, şi un sumator de adrese fizice (de 20 sau 24 biţi, în funcţie de modul de lucru) care determină adresa fizică, sub formă de sumă între adresa de segment şi offset. De asemenea, unitatea mai realizează diferite verificări (în modul protejat), verifică limita şi dimensiunea unui segment şi furnizează adresa de bază a segmentului; această unitate este complet izolată de exterior.

Unitatea de interfaţă cu magistrala (BU - Bus Unit) conţine drivere şi latch-uri pentru adrese, o unitate de citire anticipată a instrucţiunilor (PreFetcher), interfaţa cu extensia procesor, logica pentru controlul magistralei, o coadă de instrucţiuni (de 6 octeţi) şi realizează transmisia/recepţia datelor. Lungimea cozii a fost aleasă astfel încât BU să ţină ocupată EU cât mai mult timp posibil. De fapt, această unitate realizează comunicaţia cu exteriorul. Extensia procesor este un alt procesor specializat, de exemplu un procesor de intrare/ieşire sau, de obicei, coprocesorul matematic, denumit şi procesor matematic în virgulă mobilă - FPU (Floating Point Unit).

Unitatea de citire anticipată (prefetcher) a instrucţiunilor realizează funcţia de anticipare a programului. Atunci când BU nu efectuează cicluri magistrală (citire/scriere operand) pentru execuţia unei instrucţiuni, această unitate utilizează BU pentru citirea secvenţială, în avans, a fluxului de instrucţiuni. BU lansează o cerere de citire (din memorie) de instrucţiune imediat ce există doi octeţi liberi în coada de instrucţiuni; citirea instruc¬ţiunilor se face numai pe 16 biţi, într-un ciclu de acces la memorie. Dacă, prin program, se citeşte de la o adresă impară, BU citeşte octetul de la adresa impară şi apoi reia citirea a câte doi octeţi de la adresele pare următoare.

În general, BU conţine cel puţin un octet în coada de instrucţiuni, deci EU nu trebuie să aştepte citirea instrucţiunilor. în coadă sunt introduse instrucţiunile de la adresele imediat următoare instrucţiunii curente, care reprezintă instrucţiunile ce urmează să se execute dacă nu se întâlneşte o instrucţiune de transfer al controlului programului (salt). Dacă, la un moment dat, se transferă controlul la altă locaţie de memorie, coada este iniţializată, BU citeşte instrucţiunea de la noua adresă, o transferă către EU şi începe imediat citirea instrucţiunilor următoare.

Observații:

Univeristatea Constantin Brancusi . Ingineria Sistemelor

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Structura Procesoarelor din Familia Intel.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8.3/10 (3 voturi)
Nr fișiere:
1 fisier
Pagini (total):
64 pagini
Imagini extrase:
64 imagini
Nr cuvinte:
23 500 cuvinte
Nr caractere:
128 841 caractere
Marime:
1.79MB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Curs
Domeniu:
Automatică
Predat:
la facultate
Materie:
Automatică
Profesorului:
Marian Popescu
Sus!