Darbo tikslas: Ištyrinėti konvejerinio instrukcijų apdorojimo procesą superskaliariosios sandaros procesoriuje.
Šiame pavyzdyje matome SimpleScalar terpėje sumodeliuoto procesoriaus konvejerinį ciklą. Naudojome sim-outorder simuliatorių, kuris pasižymi tuoj, jog instrukcijas vykdo ne tokia pačia tvarka, kokia jos yra išdėstytos pirminėje programoje. Baigus programos vykdymą, instrukcijų rezultatai sudėliojami tokia pat tvarka kaip ir pradinėje programoje. Dėl šios priežasties instrukcijų vykdymo etape, keletą instrukcijų galima vykdyti lygiagrečiai (laimima procesoriaus našumo požiūriu). Toks simuliacijos vykdymas turi keletą problemų, pavyzdžiui dviejų instrukcijų rezultatų rašymas tuo pačiu metu į tą patį registrą.
6 – konvejerio instrukcijų apdorojimo pozicijos;
7 – išrankos etape esti tos instrukcijos, kurios yra išrinktos iš atminties arba laukia savo eilės apdorojimui;
8 – dekodavimo etape dekoduojamas instrukcijos operacijos kodas;
9 – vykdymo etape atliekama instrukcijos operacija;
10 – instrukcijos rezultatas įrašomas į registro atnaujinimo įrenginį {register update unit – RUU} taikant atidėliotojo rašymo būdą;
11 – instrukcijos vykdymo rezultatas rašomas į paskirties registrą.
Įvykdžius simuliaciją (naudojome test-math apkrovos programą), 100 konvejerinio apdorojimo ciklų bus įrašyti į failą (FOO.trc), kurį nagrinėsime su PERL skriptavimo kalba parašytu skriptu.
@ 32
aa = `0x00400140: lw r16,0(r29)'
ab = `0x00400148: lui r28,0x1001'
ac = `0x00400150: addiu r28,r28,-24528'
ad = `0x00400158: addiu r17,r29,4'
[IF] [DA] [EX] [WB] [CT]
aa*!
ab
ac
ad
2 pav. Išrenkamos instrukcijos ir joms priskiriami sąlyginiai kintamieji
Kaip matome pradedamas 32 procesoriaus ciklas, IF (išrankos etapas), išrenkamos 4 naujos instrukcijos (jiems priskiriami sąlyginiai pavadinimai, kintamieji). Pirmoji instrukcija yra lw (žodžio įkėlimas, adresavimas su postūmiu). Ji atliekama su r29 registru, o instrukcijos rezultatas įkeliamas į registrą r16. Šiai instrukcijai priskiriamas sąlyginis aa pavadinimas (patogiau atvaizduoti konvejerį). Žvaigždutės simbolis ties šia instrukciją reiškia, kad ji į procesorių buvo išrinkta ne tiesiai iš spartinančiosios atminties,bet paimta iš pagrindinės atminties. O šauktukas – nepataikymas „peržiūros iš šalies buferyje“.
Antroji išrinkta instrukcija – lui (įkelti į aukštesnį registrą). Instrukcijos rezultatas įkeliamas įkeliamas į r28 registrą. Antrajai instrukcijai priskiriamas ab sąlyginis pavadinimas.
Trečioji išrinkta instrukcija – addiu. Šios instrukcijos reikšmė - sudėti vieną...
Šį darbą sudaro 981 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!