www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

[SOLVED] ARM pipeline

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
71GA
Član
Član



Pridružen-a: Tor 16 Jun 2009 18:53
Prispevkov: 391
Aktiv.: 2.00
Kraj: Ljubljana

PrispevekObjavljeno: Ned Jan 16, 2011 10:58 am    Naslov sporočila:  [SOLVED] ARM pipeline Odgovori s citatom

Imam kratko vprašanje o ARM pipelinu.

Program counter (pc) naj bi v sebi shranil lokacijo "instructiona", ki je trenutno v "execute" fazi + 8 bitov (v ARM modu), V Thumb modu je tu namesto +8 kar +4.

Spodaj je slika, kjer so podane lokacije 0x8000, 0x8004, 0x8008. Ali si pravilno razlagam, da so te številke naslovi registrov v katerih so spravljeni "instructioni"? Poleg tega me zanima, zakaj točno mora pc kazati na "naslov +8"? Bojda zaradi vzporednega kalkuliranja ali nekaj takega ampak, ali kdo lahko pove še kaj več o tem?

Hvala.



Nazadnje urejal/a 71GA Tor Feb 08, 2011 6:39 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
chaos
Član
Član



Pridružen-a: Sob 16 Sep 2006 22:12
Prispevkov: 1063
Aktiv.: 4.64
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Ned Jan 16, 2011 2:54 pm    Naslov sporočila:   Odgovori s citatom

Klasičen ARM ima 3-stopenjski cevovod. PC oz. programski števec je implementiran kar v register file-u - je torej kar eden izmed splošno namenskih registrov.

PC vsebuje naslov ukaza, ki gre trenutno v cevovod - to je praktično uporabno, ker lahko PC direktno uporabi za naslavljanje pomnilniške lokacije. Kar se pa tiče ukaza, ki se trenutno izvaja, je pa njegov naslov PC+8 zato, ker je ta ukaz prišel v pipe pred dvema cikloma, in se je zato (načeloma) PC že dvakrat inkrementiral. To ni nič posebnega, pač stvar implementacije - prihraniili so en seštevalnik za PC, ki je v bistvu nepotreben.

Številke na tvoji sliki so torej pomnilniški naslovi treh zaporednih ukazov. PC je pač PC in ne kaže na naslov+8, ampak kaže na naslov ukaza, ki bo v tem ciklu naložen v fetch stopnjo cevovoda. Kot sem že napisal, je PC+8 naslov trenutno izvajajočega ukaza.

Upam, da sem dovolj jasno napisal. Smile


LP!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
71GA
Član
Član



Pridružen-a: Tor 16 Jun 2009 18:53
Prispevkov: 391
Aktiv.: 2.00
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 17, 2011 12:48 am    Naslov sporočila:   Odgovori s citatom

ajaaaaaaaa logično... Če pc kaže na naslov registra ki gre v fetch, potem itak vemo naslov ukaza, ki gre v execute, saj vemo, da je pri tristopenskem cevovodu to -8. Se pravi za ARM9 jedro bi bil 5 stopenjski cevovod in bi bilo namesto -8 kar -16 oz -f?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 7 dni


Powered by phpBB © 2001, 2005 phpBB Group