Aspecte privind proiectarea logica a unei benzi de...

26
1 Aspecte privind proiectarea logica a unei benzi de asamblare. (http://inst.eecs.berkeley.edu/~cs152) Daca se mentioneaza si punctele de control, BA-MIPS capata aspectul de mai jos:

Transcript of Aspecte privind proiectarea logica a unei benzi de...

Page 1: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

1

Aspecte privind proiectarea logica a unei benzi de

asamblare. (http://inst.eecs.berkeley.edu/~cs152)

Daca se mentioneaza si punctele de control, BA-MIPS capata aspectul de mai jos:

Page 2: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

2

Din punctul de vedere al tehnologiei se presupune ca:

- se utilizeaza memorii cache rapide, de mica capacitate, care au ca back-up memorii de mare

capacitate, dar mai lente;

- UAL rapid, cel putin pentru intregi;

- Fisiere de Registre Generale multiport (lente).

Se considera a fi rezonabile urmatoarele contitii in ceea ce priveste timpii de intarziere in fiecare

tronson:

Page 3: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

3

Page 4: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

4

Se constata ca, la nivelul fiecarui tronson, trebuie sa existe un registru al instructiunii “IR”.

In Banda de Asamblare instructiunile interactioneaza, astfel apar hazardurile:

- structurale;

- de date;

- de control.

Proiectul MIPS, din start, nu are hazarduri structurale, intrucat resursele au fost replicate in

conformitate cu necesitatile de ordin structural ale instructiunilor, aflate in oricare moment, in

banda de Asamblare.\

Tehnici pentru rezolvarea hazardurilor:

- Interblocare: blocheaza noua instructiune pana cand vechea instructiune iese din Banda de

Asamblare si scrie rezultatul in GPRs;

- Bypass: transfera valoare de la vechea instructiune catre noua instructiune in momentul in care

este disponibilm- cat mai curand posibil;

- Speculare: estimeaza efectul instructiunii precedente

Page 5: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

5

Rezolvarea hazardurilor de Date: Startegia: 1

Asteapta ca rezultatele sa fie disponibile, prin blocarea tronsoanelor timpurii. Aceasta strategie

poarta numele de Interblocare

- Tronsoanele mai tarzii pot produce dependente in ceea ce priveste informatia necesara

tronsoanelor timpurii, dependente care pot intarzia sau bloca instructiunile.

- Asigurarea controlului Benzii de Asamblare in aceasta maniera reprezinta o solutie, cu conditia

ca instructiunea din tronsonul i+1 sa se poata termina, fara vreo interferenta din partea

instructiunilor din etajele 1…i, in caz contrar pot aparea interblocari.

Page 6: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

6

Page 7: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

7

Se compara registrele sursa ale instructiunii aflata in tronsonul de decodificare (ID) cu registrul

destinatie al instructiunii neangajate, din tronsonul “Write Back”.

Nu in toate cazurile in care rs este identic cu rd se va produce “stall”. Astfel, nu fiecare

instructiune:

- scrie intr-un registru: => we;

Page 8: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

8

- citeste un registru: => re.

Page 9: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

9

Page 10: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

10

Hazardul este evitat deoarece sistemul de memorie termina operatia de scriere intr-un singur

ciclu. Hazardurile “Load & Store” se rezolva uneori in Banda de Asamblare, iar, alteori, de catre

sistemul de memorie.

Rezolvarea hazardurilor de Date: Startegia 2:

Page 11: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

11

Page 12: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

12

Rezolvarea hazardurilor de Date: Startegia 3: Speculare asupra dependentei:

- Estimare corecta => nu intreprinde nimic

- Estimare eronata => anuleaza si restart.

Hazardurile de Control.

De ce este nevoie pentru a calcula valoarea urmatoare a lui PC:

o Pentru Jump-uri:

- Codul de Operatie;

- Deplasarea (Offset);

- PC.

o Pentru “Jump- Registe”:

- Codul de Operatie;

- Valoarea Registrului.

o Pentru “Conditional Branches”:

Page 13: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

13

- Codul de Operatie;

- PC.

- Valoarea Registrului (pentru conditie).

- Deplasarea (Offset);

o Pentru toate celelalte instructiuni:

- Codul de Operatie;

- PC.

S-a vazut in cursul anterior ca, daca se asigura cat mai devreme (in tronsonul ID), atat calculul

valorii NPC (Next Program Counter), cat si valoarea conditiei care se testeaza (Iesirea A a

GPRs), atunci, cu o intarziere de un ciclu de ceas, se pot gestiona instructiunile de Ramificare

conditionata. In exemplul de mai sus se ilustreaza o asemenea solutie.

Page 14: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

14

Page 15: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

15

Page 16: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

16

Page 17: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

17

Page 18: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

18

Page 19: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

19

Alte tehnici includ predictii mult mai rafinate, care pot reduce intr-o mare masura penalizarile

pentru instructiunile Branch.

Page 20: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

20

Motivele pentru care nu se poate obtine o productivitate de o instructiune/ciclu (CPI > 1)

Ocolirea (Bypass-area) completa este costisitoare

- de regula se implementeaza numai caile mai frecvente;

- unele cai de bypass, mai putin frecvente, pot conduce la cresterea ciclului, actionand

contra reducerii CPI.

Instructiunile de Incarcare au o latenta de doua cicluri:

- Instructiunea care urmeaza Incarcarii/Citirii nu poate utiliza rezultatul acesteia.

- Arhitectura MIPS-I a definit “sloturile de intarziere pentru Incarcari”, vizibile prin

software, astfel incat, compilatorul planifica o instructiune independenta sau NOP,

pentru a evita hazardul. In versiunea MIPS-II, problema s-a rezolvat prin hardware

(MIPS:“Microprocessor without Interlocked Pipeline Stages�)

Ramificarile conditionale pot forta “bule”:

- inlatura instructiunea/instructiunile urmatoare daca nu exista sloturi de intarziere.

Page 21: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

21

Procesoarele cu sloturi de intarziere vizibile prin software pot executa un numar semnificativ de

instructiuni NOP, inserate de catre compilator. NOP-urile nu se contorizeaza in CPI-urile utile,

altfel ar conduce la cresterea raportului instructiuni/program.

Intreruperile in BA.

Intreruperile altereaza fluxul normal al programului:

Un eveniment extern sau intern trebuie sa fie tratat de catre un alt program sau de catre sistemul

de operare. De regula, evenimentul este intempestiv sau rar, din punctul de vedere al

programului.

Cauzele intreruperilor:

Asincrone : evenimente externe

- cerere de servire ecchipament de i/e;

- intrerupere provocata de catre un contor de timp;

- caderea tensiunii de alimentare;

- pana de hardware.

Sincrone: eveniment intern ( exceptii )

- cod de operatie nedefinit, instructiune privilegiata;

Page 22: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

22

- depasire aritmetica, exceptii UVM;

- accese nealiniate la memorie;

- exceptii in legatura cu memoria virtuala (erori de pagina, insuccese TBL, violarea

protectiei);

- capcane: chemari de sistem, de exemplu salturi in nucleu.

Istoria tratarii exceptiilor.

Primul sistem cu exceptii a fost Univac-I, in 1951

- O depasire aritmetica:

1. va forta executia unei rutine de corectie, de la adresa 0, avand doua instructiuni sau

2. la optiunea programatorului, calculatorul se oprea.

- Univac 1103 (1955) trata si intreruperi externe (colectare de date in timp real de la

tunelurile de testare)

Primul sistem cu intreruperi de I/E a fost DYSEAC, in 1954.

- avea doua contoare de program, iar semnalul de I/E facea comutarea intre ele;

- de asemenea, primul calculator cu acces DMA (acces la memorie din partea unui

echipament de I/E)

DYSEAC, primul calculator mobil.

- transportat pe doua trailere (12tone + 8 tone)

- construit pentru US Army Signal Corps.

Page 23: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

23

-

Intreruperile asincrone: invoca un program pentru tratarea intreruperilor.

Un dispozitiv de I/E solicita atentie prin activarea unei linii de cereri de intreruperi cu

prioritati.

Cand un procesor decide sa trateze o intrerupere:

- opreste programul curent la instructiunea Ii, terminant toate instructiunile pana la

instructiunea Ii-1 (intrerupere precisa);

- salveaza PC instructiunii Ii intr-un registru special EPC,

- dezactiveaza sistemul de intreruperi si transfera controlul la rutina de tratare a

intreruperilor in modul nucleu (kernel).

Rutina de tratare a intreruperilor.

Salveaza EPC inainte de a activa sistemul de intreruperi pentru a permite intreruperi

imbricate;

- este necesara o instructiune poentru a transfera EPC in GPRs;

- este necesara mascarea unor noi intreruperi, cel putin, pana la salvarea EPC;

Se impune citirea unui registru de stare, care va indica natura/cauza intreruperii.

Se utilizeaza o instructiune de jump indirect RFE (Return From Exception), care:

- activeaza sistemul de intreruperi,

- reface starea procesorului in modul utilizator;

- reface starea hardware-lui procesorului si starea de comanda.

Page 24: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

24

Intreruperi Sincrone.

O intrerupere sincrona (exceptie) este provocata de catre o instructiune particulara.

In general, instructiunea nu poate fi terminata si necesita reluarea dupa ce exceptia a fost

rezolvata:

- necesita reluarea instructiunilor care au fost partial efectuate, cu conditiile initiale,

In cazul chemarii unei capcane de sistem, instructiunea se considera terminata,

– o instructiune speciala de jump care implica o modificare la modul nucleu.

Tratarea exceptiilor. Banda de asamblare cu 5 tronsoane.

Cum pot fi tratate exceptiile simultane multiple in diferitele tronsoane ale Benzii de

Asamblare?

Cum si unde se trateaza intreruperile asincrone externe?

Page 25: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

25

Se pastreaza semafoarele privind exceptiile in BA, pana la punctul de angajare (Mem).

Exceptiile din tronsoanele timpurii ale benzii trec peste exceptiile mai tarzii pentru o

instructiune data.

Injecteaza intreruperi externe la punctul de angajare (strec peste altele).

Daca exceptia la angajare: actualizeaza registrele Cauza si EPC, neutralizeaza toate

tronsoanele, injecteaza PC-ul rutinei de tratare, in tronsonul F.

Specularea in ceea ce priveste Exceptiile.

Mecanismul de predictie.

- Exceptiile sunt rare, astfel ca daca nu se prevede o exceptie presupunerea este destul de

corecta.

Verifica mecanismul de predictie.

- Exceptiile detectate la sfarsitul executiei instructiunii in BA,

- Hardware special pentru tipuri diferite de exceptii.

Mecanism de recuperare.

Page 26: Aspecte privind proiectarea logica a unei benzi de ...acs.pub.ro/~cpop/CN1_2CB_2CD/CN1-NewCourses/curs13_15-pipe2.pdf · Primul sistem cu exceptii a fost Univac-I, in 1951 - O depasire

26

- La punctul de angajare exista numai starea arhitecturala de scriere, astfel, se inlatura

instructiunile partial executate dupa exceptie.

- Lanseaza rutina de tratare a exceptiilor, dupa golirea benzii de asamblare.

Ocolirea (Bypassing) permite utilizarea utilizarea rezultatelor instructiunilor neangajate, de catre

instructiunile care urmeaza.