18.07.2013 Views

Nintendo Entertainment System

Nintendo Entertainment System

Nintendo Entertainment System

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Kapittel 4<br />

PPU-en<br />

Nå har vi vært gjennom alt vi trenger å vite om CPU-en på en god stund, så nå er det på tide å<br />

vende blikket over på PPU-en. I motsetning til CPU-en, som utfører instruksjoner fra et program,<br />

er PPU-en hardkodet til å gjøre det samme hele tiden. Dette ligger i selve kretsdesignet. I den<br />

grad PPU-ens atferd kan forandres, er det snakk om noen enkle instillinger som CPU-en kan gi<br />

den. Alle forandringer av skjermbildet er det CPU-en som må utføre ved å legge data i minnet<br />

til PPU-en.<br />

4.1 Grunnleggende om PPU-en<br />

Før vi ser på detaljene rundt hvordan bakgrunner og sprites er bygd opp, må vi se litt nærmere<br />

på de grunnleggende delene av PPU-en og hvordan den fungerer.<br />

4.1.1 Renderingssyklusen<br />

Her blir det litt repetisjon fra kapittel 1, men det skader ikke.<br />

Som CPU-en er PPU-en en klokket krets. Hver gang PPU-en mottar et nytt klokkesignal, skjer<br />

det et nytt steg internt, og det kommer et TV-signal til enten en piksel eller eventuelt et vblanksignal<br />

ut). Klokkefrekvensen til PPU-en er henholdsvis 3 ganger høyere (NTSC) eller 3.2 ganger<br />

høyere (PAL) enn CPU-ens klokkefrekvens.<br />

Når PPU-en tegner skjermbildet bruker den data- og adressebussen sin konstant for å hente<br />

dataene den trenger. Da har vi rett og slett ikke mulighet for å endre på noe i adresseområdet<br />

dens. Når PPU-en derimot er i vblank-modus, skjer det så og si ingen aktivitet innvendig.<br />

Det er kun da CPU-en har tilgang til PPU-en og dens adresseområde. Som vi ser fra figur 4.1<br />

varer denne perioden i (256+85)·20 = 6820 PPU-klokker for NTSC, og (256+85)·70 = 23870<br />

for PAL. Dette svarer til henholdsvis 2273 CPU-klokker for NTSC og 7956 CPU-klokker for PAL.<br />

Hvis vi tenker oss at en gjennomsnittelig instruksjon tar 4 klokkesykluser, vil det si at vi i snitt<br />

klarer å presse inn omtrent 568 instruksjoner (NTSC) og 1989 instruksjoner (PAL) i løpet av én<br />

vblank-periode. Dette er ikke ubegrenset mange, så det er viktig at vblank-koden er effektiv.<br />

49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!