Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


UNITATEA INTREAGA

hardware



+ Font mai mare | - Font mai mic



UNITATEA INTREAGA

Unitatea de calcul cu numere intregi ofera o executie paralela a instructiunilor in doua benzi de asamblare pentru numere intregi cu sapte nivele (Fig. 4). Fiecare din cele doua benzi de asamblare (X si Y) poate procesa simultan cateva instructiuni.
Benzile de asamblare intregi contin urmatoarele nivele de prelucrare: -aducerea codului instructiunii (Instruction Fetch ?IF) , -primul decodificator pentru instructiuni (Instruction Decode 1 ? ID1 -al doilea decodificator pentru instructiuni (Instruction Decode 2 ? ID2 -primul bloc de calculare a adresei (Address Calculation 1 ? AC1 -al doilea bloc de calculare a adresei (Address Calculation 2 ? AC2 -executie (Execute ? EX -writeback (WB) (Fig. 4).
Nivelul de aducere al codului instructiunii (IF) este impartit de cele doua benzi de asamblare, aduce cate 16 octeti de cod din unitatea cache intr-un singur ciclu de tact. In acest nivel se cauta orice instructiune de salt ce poate apare in fluxul de cod si poate afecta secventierea normala a programului. Daca este detectata o instructiune de salt neconditionat sau una de salt conditionat, logica de prezicere a salturilor din acest nivel genereaza o posibila adresa destinatie pentru instructiunea de salt. Apoi IF aduce codul instructiunilor incepand cu aceasta adresa.
Functia de decodificare a codului instructiunii este realizata de nivelele ID1 si ID2. Nivelul ID1, folosit de ambele benzi de asamblare, evalueaza sirul de octeti de cod transmis de nivelul IF si determina numarul de octeti pentru fiecare instructiune. Acest nivel poate trimite cel mult doua instructiuni intr-un impuls de tact nivelului ID2, cate una pentru fiecare banda de asamblare.
Cele doua nivele ID2 decodifica instructiunile si le trimite uneia din cele doua benzi de asamblare X sau Y spre executie. Banda de asamblare este aleasa bazata pe tipul instructiunilor aflate deja in fiecare banda si cat de repede se presupune ca se vor termina.
Functia de calculare a adreselor este realizata tot in doua nivele: AC1 si AC2. Daca instructiunea are o referinta la un operand in memorie, AC1 calculeaza o adresa de memorie liniara pentru instructiune.
Nivelul AC2 realizeaza toate functiile de gestiunea memoriei cerute, accesele la cache si accesele la setul de registre. Daca AC2 detecteaza o instructiune in virgula flotanta, aceasta este trimisa spre prelucrare unitatii FPU.
In nivelul de executie (EX), se executa instructiunile folosind operanzii primiti din nivelul AC2.
Nivelul writeback (WB) este ultimul din unitatea de lucru cu numere intregi. In acest nivel sunt stocate rezultatele executiei sau in registre sau in tamponul de scriere din unitatea cache.



Procesarea in inordine
Daca o instructiune este executata mai repede decat instructiunea precedenta din cealalta banda de asamblare, instructiunile sunt completate in inordine. Toate instructiunile sunt prelucrate in ordine pana la nivelul EX. In timp ce in nivelele EX si WB instructiunile pot fi executate in inordine.
Daca exista dependente de date intre cele doua instructiuni, este necesara interventia unui bloc care sa asigure executia corecta a programului. Astfel, chiar daca instructiunile sunt executate in inordine, exceptiile si scrierile din cadrul instructiunilor sunt intotdeauna efectuate in ordinea ceruta de program.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1211
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved