Sunteți pe pagina 1din 7

Tema nr.

Comparația performanțelor obținute cu procesorul scalar pipeline (DLX) și procesorul VLIW-

DLX.

WINDLX
Se execută programul matrixDlx.s pe procesorul scalar pipeline (DLX) – cu și fără forwarding
-deschidem windlx.exe

-Incarcam fisierul, File->Load Code or Data-> matrixDlx.s-> Load


Pentru a putea vizualiza datele de la o anumite adresa facem click pe Memory-
>Display

• Configuration->Enable Forwarding

• Execute->Run to

• Statistics
• Forwarding disable

Forwarding reprezinta o tehnica pentru reducerea operatiilor NOP. Aceasta consta in


“aruncarea” unui rezultat catre o operatie ce asteapta acel rezultat, inainte ca acesta sa fie
scris in memorie, astfel ne mai fiind nevoie ca operandul sa fie prima data scris in memorie
de instructiunea anterioara si adus din memorie de cea de a2-a instructiune. In tabelul de
mai sus se poate observa ca in cazul utilizarii tehnicii Forwarding s-a obtinut un raport mai
bun de instructiuni pe ciclu.

FWD nFWD
0,99 0,986
VLIW DLX Simulator

-File-> Open->matice4x4.vdlx

-Run->Compilation

-Run->Go

-Statistics-> Nop instructions


VLIW DLX Simulator 2Loop
Programul initial matrice4x4.vdlx astfel incat raportul instructiuni pe ciclu sa fie mai mare. In
poza de mai jos se observa modificarile aduse codului: preluare datelor din matricea a doua
(urmatoarea coloana) si salvarea datelor.
Datorita posibilitatii de aparitie a hazardurilor este necesara introducerea instructiunilor de
tip NOP ( no operation ) . Aceste instructiuni reduc eficienta executiei / numarul de instructiuni pe
ciclu, insa in acest fel se indeparteaza riscul aparitiei hazardurilor.
Numarul instructiunilor NOP poate fi redus aducand modificari asupra codului in sensul
optimizarii sale tinand cont de fazele pipeline, numarul de unitati disponibile si numarul de faze in
care se executa o instructiune in functie de tipul acesteia.
-File-> Open->matrice4x4_2Loop.vdlx

-Run->Compilation

-Run->Go

-Statistics-> Nop instructions

FWD nFWD matice4x4.vdlx matice4x4_2loop.vdlx


0,99 0,986 1,705 1,669
Cel mai bun raport de instructiuni pe ciclu a fost obtinut in cazul VLIW – 2 loops,
reprezentand versiunea optimizata a codului initial VLIW.