Gå til innhold

Hvordan beregne klokkeperioder ut fra aritmetisk kompleksitet?


Anbefalte innlegg

Heisann

 

Har fått følgende oppgave:

 

"Sjekk om antall klokkeperioder (kan omregnes fra antall prosenter i Statisical Profiling)

stemmer med det som kan forventes ut fra aritmetisk kompleksitet. Forklar eventuelt

avvik."

 

Har beregnet at hele kretskortet bruker 2083 klokkeperioder (100MHz/48kHz). Og siden metoden min bruker 6% av prosessoren, bruker/trenger denne metoden 125 cycles.

 

Hvordan kan jeg finne ut om dette tallet er "forventet" ut ifra aritmetisk kompleksitet? Har en helt vanlig "typisk" kode med litt for-løkker, if-setninger og array-utfylling.

Lenke til kommentar
  • 5 uker senere...
Videoannonse
Annonse

Du kan ikke få nøyaktig måling med en gitt kode, det kommer an på hvordan koden settes sammen av kompilatoren din, noen instruksjoner settes på vent, mens andre fullfører, cache misses gjør alt helt uforutsigbart og synkroniserer du ikke koden ved å implementere enn cpuid instruksjon (som er den eneste instruksjonen som nøytraliserer paralell kjøring) så får du iallefall ikke rette tider.

 

Du må skrive en systemdriver og bruke RDTSC i kombinasjon med CPUID for å måle det nøyaktig, system interrupts gjør også at det blir feil målt.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...