Sunteți pe pagina 1din 17

Capitolul 2

Facilităţi de lucru în regim multiprocesor ale µP de uz general

Facilităţi hardware

• Structura şi funcţionarea magistralei locale: semnale de adresă, date şi


control.
• Posibilităţi de partajare a magistralei locale – adrese, date şi control.
• Semnale la pini special prevăzute pentru lucrul în sisteme multiprocesor.
• Circuite de generare şi control a magistralei locale.

Facilităţi software

• Instrucţiuni speciale pentru lucrul în sisteme multiprocesor

2.1. Microprocesoare de 8 biţi

2.1.1. Microprocesorul Intel 8080

Pentru a forma o unitate centrală completă, sunt utilizate circuite auxiliare:


• I8224 – generator de tact
• I8228 – amplificare magistrală de date şi generare magistrală de control

Structura magistralei locale:

Adrese: A15÷A0 (acces direct la 64Kocteţi memorie, 256 adrese de port I/E)

Date: D7÷D0 (lungimea cuvântului procesorului este de 8 biţi)

Control:
• al transferului de date - MEMR , MEMW , I/OR , I/OW , READY, WAIT, HALT
• al întreruperilor - INT, INTA
• al accesului la magistrală – HOLD, HLDA

Regimul de funcţionare normală - 8080 controlează magistrala:


• depune adresa pe liniile de adresă;
• activează liniile de control stabilind sensul şi momentul în care se transferă
datele pe magistrala de date.
Regimul de cedare de magistrală – 8080 trece în acest regim la primirea unei
cereri de cedare a magistralei (HOLD=1). La sfârşitul ciclului maşină
curent îşi încetează complet activitatea:
• trece în stare de înaltă impedanţă (HZ) liniile sale de adrese şi date;
• îşi dezactivează liniile de control ( WR şi DBIN);
• confirmă cedarea magistralei (comandă HLDA=1).

La primirea semnalului de confirmare a cedării magistralei, dispozitivul solicitant:


• dezactivează celelalte dispozitive care generează magistrala de control
sau amplifică magistralele de adrese şi date (BUSEN =1 la I8228);
• preia controlul magistralei locale.

UCP 8080 rămâne blocat şi îşi conservă starea internă pe durata cedării
magistralei.

La terminarea accesului la magistrală, dispozitivul solicitant:


• îşi trece în starea HZ liniile sale de adrese, date şi control;
• validează funcţionarea dispozitivelor care generează magistrala de control
sau amplifică magistralele de adrese şi date (BUSEN =0 la I8228);
• anulează cererea către microprocesor (HOLD=0);

La detectarea anulării cererii UCP 8080:


• dezactivează semnalul de confirmare (HLDA=0);
• îşi reia activitatea în următoarea perioadă de tact.

Întrucât activitatea UCP este complet blocată pe durata cedării magistralei, nu


există instrucţiuni speciale care să faciliteze lucrul în regim multiprocesor.

Orice instrucţiune poate fi întreruptă pentru cedarea de magistrale (nu poate fi


mascată prin program).

2.1.2. Microprocesorul Intel 8085

UCP aproape completă:


• integrează circuitele auxiliare de la 8080;
• mai are nevoie de un registru cu zăvorâre extern (latch) pentru a reţine
octetul inferior al adresei, furnizat pe liniile AD7÷0, multiplexat în timp cu
octetul de date;
• pentru conectarea dispozitivelor I/E din familia 8080, necesită un
decodificator extern pentru generarea semnalelor de control.

Magistrala locală - similară cu cea generată de 8080 şi circuitele auxiliare.


Regimul de cedare de magistrală – identic cu cel de la 8080.
2.1.3. Microprocesorul Zilog Z80

UCP completă – magistrală locală formată din semnale de:

Adrese: A15÷A0 (acces direct la 64Kocteţi memorie, 65536 adrese de port I/E)

Date: D7÷D0 (lungimea cuvântului procesorului este de 8 biţi)

Control:
• al transferului de date - M1, MREQ , IORQ , RD , WR , WAIT , HLT ;
• al întreruperilor - INT , NMI ;
• al accesului la magistrală – BUSREQ , BUSACK .

Regimul de cedare al magistralei este similar cu cel de la 8080/85.


Activitatea UCP încetează complet (chiar şi reîmprospătarea DRAM).

Microprocesoarele pe 8 biţi folosesc în foarte mică masură tehnici de prelucrare


specifice sistemelor multiprocesor.

Singurul exemplu – unele operaţii interne se execută în paralel cu extragerea


codului operaţie al instrucţiunii următoare.

2.2. Microprocesoare de 16 biţi

2.2.1. Microprocesorul Intel 8086

Primul microprocesor Intel de 16 biţi.


Una din primele unităti monolitice de 16 biţi.

Format din două unităţi funcţionale, relativ autonome, care lucrează în paralel:

BIU – Bus Interface Unit – unitatea de interfaţă cu magistrala:


• generează adresele de memorie şi de I/E;
• alimentează cu instrucţiuni o coadă FIFO de 6 octeţi;
• primeşte cereri de acces la magistrală de la EU.

EU – Execution Unit – unitatea de execuţie:


• execută instrucţiunile
• solicită accesul la magistrală de la BIU pentru transferul operanzilor

Două configuraţii (moduri) de lucru:


- minim (MN/MX =1) – sisteme monoprocesor;
- maxim (MN/ MX =0) – sisteme multiprocesor.
Realizarea sistemelor multiprocesor cu I8086:
• Logica internă de arbitrare a accesului la magistrală.
• Arbitrul de magistrală I8289.

Circuite din familia 8086:

8284 – generator de tact;


8288 – controler de magistrală;
8282, 8283 – registre latch de 8 biţi;
8286, 8287 – amplificatoare de magistrală;
8089 – arbitru de magistrală;
8087 – coprocesor matematic;
8089 – procesor I/E;
8259A – controler de întreruperi;
8237A – controler DMA;
8253, 8254 – timere programabile, etc.

Familia I8086 cuprinde două tipuri de procesoare:


• Procesoare independente – au instrucţiuni proprii.
• Coprocesoare – obţin instrucţiunile din memoria unui procesor gazdă:
urmăresc ciclurile de extragere (FETCH), le recunosc pe cele destinate lor
şi le execută.

Configuraţie multiprocesor – organizare ierarhizată a magistralelor:


• Magistrală locală (ML) – la care este conectată memorie şi dispozitive I/E
locale
• Magistrală de sistem (MS) – la care pot fi conectate memorie şi dispozitive
I/E comune, partajate de mai multe procesoare.
• Ambele magistrale pot fi multimaster.
• Între cele două tipuri de magistrale se interpun circuite de interfaţă.

Magistrala locală – caracteristici principale:


• Adresele şi datele sunt multiplexate în timp;
• Pentru conectarea mai multor procesoare se utilizează linii de arbitraj local,
prin pini specializaţi de tip (HOLD/HLDA).
• Interfeţele cu alte magistrale se utilizează în comun de toate procesoarele
conectate la magistrala locală.

Magistrala de sistem – caracteristici pprincipale:


• Este separată de magistralele locale de interfaţa de magistrală, care
asigură demultiplexarea liniilor de adresă/date.
• Pe magistrala de sistem circulă adrese, date, comenzi de transfer de date,
întreruperi şi semnale de arbitraj.
M
I8086 I8086 M
(I/E)
AL IM

I/E I8089 IM IM
I/E
Magistrală
IIE locală
Magistrală de
sistem rezidentă
Magistrală locală
(multimaster) EP1

Magistrală de
sistem de I/E MC
EP2

Magistrală de sistem
(multimaster)

A16 / S3 MN / MX
A17 / S4 BHE / S7
A18 / S5 M / IO S2
A19 / S6 DT / R S1
DEN
READY S0
AD15÷0
I8086 RD
WR LOCK
VCC HOLD RQ/GT0
GND HLDA RQ/GT1
CLK ALE QS0
INTA QS1
RESET INTR
TEST NMI

Modul minim
• 8086 generează toate semnalele de comandă direct la pini;
• HOLD/HLDA – linii de arbitraj local.

Modul maxim
• o parte din pini îşi schimbă semnificaţia;
• informaţiile despre tipul de ciclu sunt furnizate codificate de un cuvânt de
stare pe liniile S0 , S1, S2 .
VCC
S0 S0 CLK MRDC
S1 S1 MWTC
CLK S2 S2 AMWC
RESET 8284 READY 8288 IORC
RESET DEN IOWC
RDY
8086 DT/ R AIOWC
ALE INTA
MN/ MX
A19÷
STB
A0
OE
8282 DO
AD15÷0 8282
DI
A19÷16 BHE
BHE

D15÷
A D0

T 8286 B
OE

În modul maxim, liniile RQ /GT0 , RQ /GT1, LOCK , QS0 şi QS1 se pot utiliza
pentru structurarea de sisteme multiprocesor:
• Liniile RQ /GT0 şi RQ /GT1 - bidirecţionale, permit accesul la magistrala
locală mai multor procesoare:
• Procesorul solicitant cere accesul de la UCP printr-un impuls RQ =0.
• UCP, la sfârşitul ciclului maşină curent, cedează magistrala şi răspunde
printr-un nou impuls GT =0.
• După terminarea accesului, procesorul solicitant eliberează magistrala şi
informează UCP printr-un nou impuls GT =0.

Instrucţiunile care nu trebuie să fie întrerupte de un acces la memorie (de


exemplu transferurile pe 32 de biţi) sunt precedate de prefixul LOCK.
• Aceasta face ca pe durata lor să se activeze semnalul LOCK .
• Logica externă trebuie să nu ceară magistrala pe durata activării
semnalului LOCK .

După cedarea magistralei, EU continuă să execute instrucţiuni din coada de


aşteptare, până la golirea acesteia sau până când este necesar un ciclu de
acces la magistrală.
Conectarea coprocesorului matematic 8087 pe magistrala locală

BHE BHE

RQ / GT0 RQ / GT0

8086 8087

MN/ MX
(WAIT)
TEST BUSY

NMI INT
(ERROR)

A19÷A16, AD15÷AD0, S0 , S1, S2

8086 întâlneşte o instrucţiune a coprocesorului (precedată de ESC):


• activează semnalele de citire;
• instrucţiunea va fi primită simultan de 8086 şi 8087;
• 8086 decodifică instrucţiunea;
• depune adresa pentru citirea operandului şi activează semnalele de citire;
• 8086 ignoră valoarea operandului, care va fi reţinută numai de 8087;
• dacă operandul este mai mare de 8 biţi (până la 80 de biţi), reţine adresa
de început a operandului;
• 8087 preia controlul magistralei pentru citirea restului octeţilor;
• trimite un impuls de cerere de magistrală RQ / GT0 =0;
• la sfârşitul ciclului de magistrală curent, 8086 cedează magistrala şi
confirmă cedarea printr-un nou impuls RQ / GT0 =0;
• 8087 preia controlul magistralei şi citeşte direct restul octeţilor operandului;
• 8087 eliberează magistrala şi anunţă acest lucru printr-un ultim impuls
RQ / GT0 =0 către 8086;
• 8086 preia controlul magistralei şi trece la următorul ciclu de magistrală;
• 8087 trece la execuţia instrucţiunii.

Dacă 8086 întâlneşte o nouă instrucţiune care foloseşte rezultatul celei


anterioare, trebuie să se asigure că acesta este disponibil:
• Ultima instrucţiune trebuie precedată de prefixul WAIT.
• Aceasta se va executa abia după ce pe linia TEST =BUSY=0.

Semnalizarea unor erori apărute la execuţia instrucţiunilor se face prin întreruperi


nemascabile.
2.2.2. Microprocesorul Intel 80286

Primul microprocesor Intel care conţine structuri hardware şi software necesare


execuţiei aplicaţiilor multitasking şi multiuser.

Circuite din familia 80286:


80287 – NPX – Numerical Processor eXtension – coprocesor numeric;
82C284 – generator de tact;
82288 – controler de magistrală;
8259A – controler de întreruperi;
82289 – arbitru de magistrală.

Magistrala locală – conectează 80286 cu 80287 şi alte elemente de prelucrare


(DMAC) cu memoria şi dispozitivele I/E locale, prin intermediul unor buffere.

Magistrala de sistem – conectează 80286 la resursele partajate (memorie şi


dispozitive I/E).
Control INTR Magistrala de
A23÷A0 adrese
întreruperi NMI

D15÷D0 Magistrala de
Iniţializare RESET date
Semnal de tact CLK
I80286 S0 Semnale de
S1 control al
Eroare coprocesor ERROR M/IO
transferului
Echivalent TEST ( 8086) BUSY COD/INTA
de date pe
Cerere/achitare operanzi PEACK BHE
pentru coprocesor PEREQ READY magistrală

+5Vcc VCC HOLD Semnale de


GND VSS HLDA control al
LOCK accesului la
4,7µF CAP magistrală

Magistrala de adrese – permite accesul la 16 MB memorie fizică şi 64 KB I/E

Magistrala de date + BHE - permite accesul la date pe 8 şi 16 biţi

Semnalele de control al transferului de date – utilizate de 82288 pentru a


genera semnalele magistralei de control (c, MWTC , IORC , IOWC , INTA ).

Semnalele de control al accesului la magistrală – HOLD, HLDA – permit altor


elemente de prelucrare să preia controlul magistralei locale.
Structura internă a microprocesorului 80286 – 4 unităţi de prelucrare:

BU – Bus Unit – interfaţa cu magistrala – gestionează ciclurile de transfer pe


magistrală şi dialogul cu NPX şi alte procesoare conectate pe magistrala locală.
În lipsa altor sarcini, alimentează cu instrucţiuni o stivă FIFO de 6 octeţi.

IU – Instruction Unit – unitatea de decodificare a instrucţiunilor – preia


instrucţiunile din coada FIFO, le decodifică şi plasează semnalele de comandă
rezultate într-o altă coadă în care încap maximum 3 instrucţiuni complet
decodificate.

EU – Execution Unit – unitatea de execuţie – preia instrucţiunile decodificate şi


le execută, apelând la serviciile BU pentru transferurile necesare de date pe
magistrală.

AU – Addressing Unit – unitatea de adresare – asigură serviciile de


management si de protecţie a memoriei, translatează adresele logice în adrese
fizice necesare pentru operaţiile efectuate de BU.

Suprapunerea în timp a execuţiei a maximum 4 instrucţiuni – tehnica pipeline.


80286 la 8 MHz – lucrează de 6 ori mai repede ca un 8086 la 5 MHz.

Interfaţarea cu NPX

80287 – lucrează ca o extensie a procesorului 80286.


Execută instrucţiunile numerice (precedate de prefixul ESC) pe care le întâlneşte
80286.

Adrese I/E rezervate pentru dialogul cu NPX: 00F8h, 00Fah şi 00FCh.

Liniile de date ale 80286 şi 80287 sunt interconectate direct – amplificatoarele


magistralei de date trebuie inhibate atunci când 80286 citeşte de la adresele
rezervate din 80287.

Liniile BUSY şi ERROR ale celor două procesoare sunt interconectate direct.

Atunci când 80286 întâlneşte o instrucţiune numerică, verifică dacă coprocesorul


este prezent şi dacă nu este ocupat, caz în care îi încredinţează execuţia
instrucţiunii, printr-un schimb de informaţii în spaţiul I/E rezervat.

Dacă sunt necesari operanzi care trebuie citiţi/înscrişi din/în memorie, 80286
deschide un „canal de date pentru coprocesor” – transferul se realizează prin
80286 beneficiind de modelul de management şi de protecţie a memoriei specific
acestuia.
După deschiderea canalului de date pentru coprocesor, cererile de transfer
operanzi se prezintă pe linia PEREQ şi sunt confirmate pe linia PEACK , în timp
ce BUSY este menţinut activ.

La terminarea execuţiei, BUSY =1, iar 80286 îşi închide canalul de date pentru
coprocesor.

Transferurile de date solicitate de NPX sunt mai prioritare faţă de cele solicitate
de EU sau de extragerea codurilor operaţie de către BU, dar mai puţin prioritare
faţă de solicitările pe linia HOLD, sau transferurile pe durata cărora LOCK =0.

Accesul la resursele partajate, pe magistrala de sistem, se realizează cu ajutorul


arbitrului de magistrală 82289.

8259A
Element
Memorie de
locală prelucrare
(privată)
82C284

Magistrală de sistem (multimaster)


Magistrală locală bufferizată

Arbitraj
UCP
82289
80286
Magistrală locală

Memorie
comună
Control Control (partajată)
82288 82288

DCD
I/E Adrese
locale
Adrese Adrese I/E
(private)
comune
(partajate)
74AS373 74AS373

74AS245 74AS245

Date Date
2.2.3. Microprocesoarele Zilog din seria Z8000

Al doilea microprocesor de 16 biţi, în ordinea apariţiei.

• Z8001 – UCP cu 48 de pini - împreună cu Z8010 – unitate de management


a memoriei (MMU) – poate adresa direct până la 8 MB de memorie,
organizată în 128 de segmente a câte 64 KB fiecare.
• Z8002 – UCP cu 40 de pini, care poate să adreseze până la 64 KB de
memorie.

Caracteristici principale ale familiei Z8000:

• Au 16 registre de 16 biţi, care pot fi folosite ca registre de 8, 16 sau 32 de


biţi.
• Nu utilizează stiva internă de instrucţiuni şi nici tehnica pipeline, dar în
anumite condiţii poate suprapune extragerea unei instrucţiuni din memorie
cu execuţie celei precedente.
• Z8002 corespunde modului minim de la 8086, Z8001 – modului maxim.
• Dispun de o logică de arbitrare a accesului la magistrală.
• Au două moduri de funcţionare, SYSTEM şi NORMAL, cu stive separate.
Anumite intrucţiuni de I/E pot fi executate numai din modul SYSTEM.
• Se realizează o separare între programele de sistem şi cele ale
utilizatorului.

2.2.4. Microprocesorul Motorola MC68000

Primul microprocesor de 16 biţi al firmei Motorola şi al treilea în ordinea apariţiei.

Caracteristici principale:

• Suprapune în timp orice extragere de cod maşină din memorie cu


decodificarea şi execuţia a două instrucţiuni anterioare;
• Împachetată într-o capsulă de 64 de pini, nu are un mod minim (lucrează
numai la capacitatea maximă).
• Asigură pini separaţi pentru fiecare linie de adrese şi de date.
• Dispune de 17 regiştri de 32 de biţi, din care 8 sunt regiştri de date care pot
lucra pe 8/16/32 de biţi.
• Include o logică de arbitrare a accesului la magistrală.
• Magistrala de adrese are 24 de llinii – poate adresa direct 16 MB memorie
fizică, cu posibilitatea de extensie la 64 MB.
• Are două moduri de lucru, SUPERVISOR şi USER, cu stive separate, ca şi
Z8000.
2.3. Microprocesoare de 32 de biţi

2.3.1. Microprocesorul I80386

Primul microprocesor de 32 de biţi al firmei Intel.


80387 – coprocesor numeric
80384 – generator de tact
82380 – periferice de sistem integrate
82385 – controler de memorie cache

Control INTR
A31÷A2 Magistrala de
întreruperi NMI
adrese
BE3÷BE0
Iniţializare RESET
D31÷D0 Magistrala de
Semnal de tact CLK2
date

I80386
ADS Semnale de
W/R control al
ERROR transferului
Dialog cu M/IO de date pe
coprocesorul BUSY D/C magistrală
numeric PEREQ LOCK
READY
Controlul Next Address
accesului la HOLD NA
magistrala HLDA BS16 Bus Size 16 bit
locală

Magistrala de adrese – 32 de biţi – permite accesul la 4GB de memorie şi 64


KB I/E, în spaţii separate de adresare.
• Liniile BE3 ÷BE0 joaca rolul lui BHE de la 8086/286, permiţând accesul la
memorie pe 8, 16 şi 32 de biţi.
Magistrala de date – 32 de biţi

Semnalele de control al transferului de date:


• ADS - se activează când adresa e stabilă pe magistrală;
• D/C - indică un ciclu de transfer de date sau un ciclu de control (FETCH,
întrerupere, HALT/shutdown).
• Pentru generarea semnalelor de control MRDC , MWTC , IORC , IOWC ,
INTA - se utilizează decodificatoare PAL.
• Când se utilizează circuite din familia 80286 este necesară generarea
semnalelor S0 şi S1 din M/IO , D/C şi W/R , precum şi a semnalelor A0 şi
A1 din BE3 ÷BE0 .
Structura internă a µP I80386 conţine 6 unităţi funcţionale autonome:

BIU – Bus Interface Unit – unitatea de interfaţă cu magistrala primeşte cereri de


la unitatea de preextragere a instrucţiunilor (CPU) şi de la unitate de execuţie
(EU) şi gestionează operaţiile de transfer de date pe magistrală.
• Dacă NA =0, poate genera următoarea adresă înainte de terminarea
ciclului curent de magistrală.
• În acest caz, adresa trebuie memorată într-un latch extern de îndată ce a
devenit stabilă ( ADS =0).
• De asemenea, controlează interfaţa cu coprocesorul numeric şi cu alte
dispozitive master pentru arbitrarea accesului la magistrala locală.

CPU – Code Prefetch Unit – unitatea de preextragere a instrucţiunilor –


alimentează cu instrucŢiuni o coadă de 16 octeţi.

IDU – Instruction Decode Unit – unitatea de decodificare a instrucţiunilor


transformă codul instrucţiunilor din coadă în microcod, pe care îl stochează într-o
altă coadă FIFO în care încap 3 instrucţiuni, în aşteptarea execuţiei de către EU.

EU – Execution Unit – unitatea de execuţie – formată din 3 subunităţi:


• Unitatea de control – conţine microcod şi hardware specializat în
prelucrarea paralelă pentru operaţiile de înmulţire, împărţire şi pentru
calculul adresei efective.
• Unitatea de date – conţine ALU, 8 regiştri de date de 32 de biţi şi un
registru pentru deplasări multiple de 64 de biţi – execută operaţiile asupra
datelor cerute de unitatea de control;
• Unitatea de test şi protecţie – verifică încălcarea regulilor de acces la
segmentele de date şi cod.

SU – Segmentation Unit – unitatea de segmentare – transformă adresele logice


în adrese liniare la solicitarea EU, pe care le transmite unităţii de paginare (PU).

PU – Paging Unit – unitatea de paginare transformă adresele liniare în adrese


fizice atunci când este activat mecanismul de adresare paginată.

Interfaţa cu coprocesorul numeric 80387

• Dialogul cu 80387 este similar cu cel dintre 80286 şi 80287.


• Diferă adresele rezervate in spaţiul I/E: 8000 00F8h (comandă/stare), 8000
00FCh (date).
• Pentru selecţie se poate folosi A31.
Logică
gen.
8259A
A0/A1 Latch Element

Magistrală de sistem multimaster compatibilă 80286


Memorie adresă de
locală prelucrare
(privată)
80384
Driver
Date
Magistrală locală bufferizată

Logică
UCP
generare
80386

Magistrală locală
S0 , S1 Memorie
comună
Control (partajată)
PAL
82288
Control
DCD
I/E Adrese
locale Arbitraj I/E
(private)
Adrese 82289 comune
Latch
(partajate)
Adresa/
Date Date

Memorie
CACHE

82385
Controler
CACHE

80380
Controler
DMA

Probleme de coerenţă a memoriei CACHE în sistemele multiprocesor.

Soluţii:
• memorie comună necacheabilă;
• memorie cache unică;
• snooping – invalidarea intrărilor în memoriile cache ale tuturor
procesoarelor la scrierea în memoria partajată.
2.3.2. Microprocesorul I80486

Magistrala locală este similară cu cea de la 80386.

Facilităţi suplimentare:
• Semnalul de tact intern este egal cu cel extern.
• Memorie cache internă (8KB)
• Coprocesor numeric integrat
• Mecanism de încărcare rapidă a memoriei interne cache (burst)
• Capaciltate sporită de arbitrare a magistralei (poate ceda numai magistrala
de adrese);
• Generare/control paritate

Semnal de tact CLK A31÷A2 Magistrala de


Magistrala de D31÷D0 adrese (32 biţi)
BE3÷BE0
date
Controlul ADS M/IO Semnale de
transferului de date RDY D/C control al
Control INTR I80486 W/R transferului
întreruperi NMI LOCK de date pe
PLOCK magistrală
Iniţializare RESET
AHOLD HOLD
Invalidare CACHE HLDA Controlul accesului
EADS
BOFF la magistrala locală
KEN
Control CACHE BREQ
FLUSH
Pagină control PWT BRDY Control regim burst
CACHE PCD BLAST
Tratare erori FERR BS16
Dimensiune MD
numerice IGNNE BS8
Masca bitului de DP3÷DP0
A20M Gen./ctrl. paritate
adresă A20 PCHK

DP3÷DP0 – biţi de paritate ai datei, câte unul pentru fiecare octet.


PCHK - semnalizează apariţia unei erori de paritate.
PLOCK - pseudoblocare – pentru citire/scriere operanzi mai mari de 32 de biţi.
BREQ - cerere internă de magistrală în aşteptare.
BOFF - cerere de cedare de magistrală în tactul următor.
AHOLD - cerere de cedare a magistralei de adrese.
2.4. Microprocesoare de 64 de biţi

2.4.1. Microprocesorul Pentium


• Primul microprocesor de 64 de biţi al firmei Intel
• Magistrala externă de date de 64 de biţi (intern 128 şi 256 biţi)
• Memorii cache interne separate pentru cod şi date.
• Predicţia dinamică a salturilor în program.
• Implementarea pipeline a ciclului de magistrală.
• Suport pentru funcţionarea duală.
Două unităţi de procesare a întregilor şi una pentru calcule în virgulă mobilă care
folosesc tehnici pipeline – execută două instrucţiuni / tact.
Fiecare din cele două unităţi de procesare foloseşte 5 unităţi funcţionale
autonome înlănţuite (6 Pentium MMX):

• PF - Prefetch
• F - Fetch (Pentium MMX)
• D1 - Instruction Decode
• D2 - Address Generate
• EX - Execute - ALU and Cache Access
• WB - Writeback
Unitatea de virgulă mobilă foloseşte 8 unităţi de prelucrare înlănţuite.

2.4.2. Microprocesoarele din familia P6 (Pentium Pro, PII, Celeron, PIII)


• Utilizează o micro-arhitectură bazată pe execuţie dinamică speculativă,
superpipeline, cu 4 unităţi principale formate din 12 subunităţi de
prelucrare înlănţuite.
• Prelucrarea instrucţiunilor poate fi startată în orice ordine, dar se încheie
întotdeauna în ordinea impusă de program.
• PIII include o extensie SIMD.

FDU – Fetch/Decode Unit - unitatea de extragere şi decodificare – extrage


instrucţiunile din program, pe care le decodifică.
• Preextragerea instrucţiunilor e speculativă.
• Decodificarea se realizează în ordinea extragerii instrucţiunilor.
• Instrucţiunile decodificate sunt plasate într-un bazin de memorie (memory
pool).
DEU – Dispatch/Execute Unit – unitatea de dispecerizare/execuţie – planifică
execuţia microoperaţiilor din bazinul de instrucţiuni în funcţie de
interdependenţele dintre date şi disponibilitatea resurselor.
• Stochează rezultatele acestei execuţii speculative.
RU – Retire Unit – unitatea de ieşire – reface ordinea de terminare a
instrucţiunilor.
• Stabileşte cum şi când sunt extrase rezultatele execuţiei speculative,
furnizate de unitatea de dispecerizare/execuţie.
• Formează rezultatele finale ale execuţiei ordonate a instrucţiunilor.
BIU – Bus Interface Unit – unitatea de interfaţă cu magistrala – este o unitate
parţial ordonată care asigură legătura cu exteriorul.
• Comunică direct cu memoria cache L2 (până la 4 accese concurente la
aceasta).
• Controlează accesul la memoria sistemului prin tranzacţii pe magistrală.
• Utilizează un protocol de menţinere a consistenţei datelor din memoria
cache (snooping protocol).
Magistrala externă este orientată spre funcţionarea în sisteme multiprocesor.
• Interfaţa cu magistrala integrează semnale de control şi arbitrare a
accesului la memorie, circuite de menţinere a coerenţei memoriei cache,
controler avansat de întreruperi multiprocessor.
• Protocolul de acces la magistrală permite o creştere aproape liniară a
performanţelor sistemului odată cu creşterea numărului de procesoare.
• Interconectarea în sisteme multiprocesor se face direct pentru un cluster
de 4 procesoare, fără nici o logică externă suplimentară.

2.4.3. Microprocesorul Pentium IV


Tehnologie hyper-threading – permite ca un PIV să fie văzut de software ca
două procesoare logice, fiind capabil să execute două fluxuri de instrucţiuni
simultan.
Arhitectură NetBurst:
• Capacitate dublă de prelucrare pipeline faţă de familia P6;
• Unitate de execuţie rapidă – viteză dublă pentru cele două unităţi ALU.
• Viteză crescută de lucru a magistralei externe.
• Memorie cache L1 de 12 KB de micro-operaţii decodificate.

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