 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
71GA Član


Pridružen-a: Tor 16 Jun 2009 18:53 Prispevkov: 391 Aktiv.: 2.00 Kraj: Ljubljana
|
Objavljeno: Ned Jan 16, 2011 10:58 am Naslov sporočila: [SOLVED] ARM pipeline |
|
|
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 |
|
 |
chaos Član


Pridružen-a: Sob 16 Sep 2006 22:12 Prispevkov: 1063 Aktiv.: 4.64 Kraj: Zagorje ob Savi
|
Objavljeno: Ned Jan 16, 2011 2:54 pm Naslov sporočila: |
|
|
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.
LP! |
|
Nazaj na vrh |
|
 |
71GA Član


Pridružen-a: Tor 16 Jun 2009 18:53 Prispevkov: 391 Aktiv.: 2.00 Kraj: Ljubljana
|
Objavljeno: Pon Jan 17, 2011 12:48 am Naslov sporočila: |
|
|
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 |
|
 |
|
|
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
|