Gå til innhold

Sikter mot 2 Watt


Anbefalte innlegg

Videoannonse
Annonse

Dette høres lovende ut. Hva betyr in order pipeline i praksis? Er det slik at programmer kan stoppe opp til den har alle dataene? I praktisk ytelse, snakker vi om den store forskjellen?

 

Jeg sitter og håper på en ultraportabel i klassen 1,5GHz, ~10" skjerm, uten vifte og med batteritid på opp mot ti timer. Forsåvidt har ikke prosessoren så mye å si, men den burde kunne dra de fleste videoformatene og DVD HDDVD. Et par år til nå, så tenker jeg vi har noe.

Lenke til kommentar

alle programmer er i bunn og grunn en lang rekke instruksjoner eller oppgaver som må gjøres...

 

noen oppgaver er avhengige av at andre oppgaver utføres først, mens andre igjen ikke er det.

 

in order betyr at oppgavene utføres i rekkefølge, selv om en eller flere av dem vil ta alvorlig lang tid, og det finnes andre lengre ned på lista som kan utføres uten at de forestående trenger å være ferdige.

 

out of order betyr at om en oppgave tar lang tid, mens en annen ikke trenger å vente men tar kort tid, så vil den som tar kort tid få slippe foran eller innimellom slik at ting blir ferdig fortere.

 

en måte å visualisere det hele på kan vel være ett samlebånd ;)

Lenke til kommentar

Går det an å lage flere parallelle pipes da, for å heve ytelsen, men for å bevare det lave effektforbruket?

 

Er pipes og tråd det samme? Kom til å tenke på multithreading.

 

EDIT: Jeg er ikke så veldig sterk på forskjellene på det tekniske omkring CPU'er, noe posten til NevroMance nedenfor gjerne fikk meg til å innse.

Endret av G
Lenke til kommentar

greit artikkel om via sin nye cpu, og den inneholder også litt om in order og out of order design...

http://arstechnica.com/articles/paedia/cpu...-cpu-isaiah.ars

 

men en kan vel i det store og hele koke det ned til at prosesser består av en eller flere tråder, og hver tråd består av ett ukjent antall "kommandoer" for prosessoren å utføre.

Endret av hobgoblin
Lenke til kommentar

in-order vs. out of order pipeline er et langt og komplisert lerret å bleke.

 

Tror jeg skal definere det hele litt stegvis for enkelhets skyld.

 

pipeline: I denne sammenheng det samme som en CPU kjerne bestående av en eller flere executuion units samt kontroll logikk. Ved flertråding (SMT) slik som hyperthreading er det i hovedsak kontrollenheten som er utvidet for å kunne holde styr på to tråder samtidig, men det må ofte tilføres flere datapaths til execution units for at resten av kjernen skal kunne håndtere dette effektivt og dermed blir også denne delen fort mye mer kompleks i praksis, selv om det i teorien er mulig å holde den nesten uendret.

 

in-order pipeline: En pipeline som slavisk utfører instruksjonene i den rekkefølgen som programmet dikterer. Det er ikke nødvendigvis slik at den stopper helt opp bare fordi en instruksjon ikke har blitt fullført. Mer konkret så er det slik at den må fullføre instruksjonene i riktig rekkefølge, men den kan påbegynne nye instruksjoner selv om en load eller multiplikasjons instruksjon ikke er fullført. Hvor mye slik sjonglering som kan utføres vil variere mellom forskjellige implementasjoner.

 

Out of order pipeline: En pipeline som holder de neste 10-200 instruksjonene i programmet i et eget lager (instruction window) og velger så ut instruksjonene i en rekkefølge som kan avvike fra programrekkefølgen, men som også er garantert å gi samme resultat. Denne garantien er helt grunnleggende og det går med mye effekt (nesten halvparten!!!), klokkesykluser og transistor budsjett for å gjøre alle de nødvendige kontrollene. F.eks er det likegyldig hvilken rekkefølge en kalkulerer a=b+c og d=e+f siden det ikke er noen avhengigheter mellom disse variablene og out of order prosessorer kan velge å ta den ene kalkulasjonen først fremfor den andre, basert på hvilke data den først får levert fra RAM.

 

Out of order pipelines er gode på å unngå såkalte bobler i pipelinen og det er nesten en forutsetning* for å kunne håndtere mer enn 1 instruksjon per klokkesyklus.

 

I noen tilfeller er skillet mellom in-order og out of order pipelines litt diffust. Det skyldes at enkelte in-order pipelines er implementert med svært aggressive teknikker for å få best mulig ytelse mens enkelte out of order pipelines er veldig konservative for å spare energi eller få høyere frekvens og dermed også ytelse. Eksempel på førstnevnte er Intel Itanium og eksempel på sistnevnte er IBM Power 6 som benytter relativt konservativ out of order teknikk for å nå en klokkefrekvens på hele 4,6GHz.

 

Trenden vi ser i dag er nok at såkalte fat cores som K8/k10, C2D og kommende Nehalem, er på tur ut i alt annet enn desktop maskiner fordi de har så dårlig throughput i forhold til effektforbruket. Fordelen med de er at de er suverene på gammeldags singel tråd software og vil derfor være nødvendige i en overgangsfase til vi har fått god flertrådet programvare. Noen programmer vil imidlertid alltid være avhengig av god ytelse per tråd og det skal jo bli interessant å se hvordan det løpet utvikler seg.

 

*) in-order pipelines kan også håndtere flere instruksjoner per klokkesyklus i enkelte tilfeller og ved bruk av avanserte instruksjonssett som IA64 så har en faktisk oppnådd konsekvent høyere IPC (instructions per cycle) enn en får til med de beste out of order pipelines.

 

Ellers har jeg hørt at Intel sikter seg inn mot 0.6W ikke 2W, men det kommer vel flere versjoner.

Endret av Anders Jensen
Lenke til kommentar
*) in-order pipelines kan også håndtere flere instruksjoner per klokkesyklus i enkelte tilfeller og ved bruk av avanserte instruksjonssett som IA64 så har en faktisk oppnådd konsekvent høyere IPC (instructions per cycle) enn en får til med de beste out of order pipelines.

Var ikke klar over at IA64 var in-order, såvidt jeg kan huske, så er ikke effektbruken til Itanium spesielt lav? Heller det motsatte? Jeg har ikke fulgt så mye på mht utviklingen av Itanium, men hvordan er ytelsen på de siste modellene i forhold til sammenliknbare x86 baserte CPUer? Tidligere har vel heller ikke ytelsen vært helt på topp heller?

 

Kort sagt kan man vel si at god ytelse er mer overlatt til programmererne. PS3 og Xbox 360 er forresten in-order.

Er ikke Xbox 360 basert på en vanlig x86 CPU? Eller var det forgjengeren?

Lenke til kommentar
*) in-order pipelines kan også håndtere flere instruksjoner per klokkesyklus i enkelte tilfeller og ved bruk av avanserte instruksjonssett som IA64 så har en faktisk oppnådd konsekvent høyere IPC (instructions per cycle) enn en får til med de beste out of order pipelines.

Var ikke klar over at IA64 var in-order, såvidt jeg kan huske, så er ikke effektbruken til Itanium spesielt lav? Heller det motsatte? Jeg har ikke fulgt så mye på mht utviklingen av Itanium, men hvordan er ytelsen på de siste modellene i forhold til sammenliknbare x86 baserte CPUer? Tidligere har vel heller ikke ytelsen vært helt på topp heller?

Itanium er in-order, men relativt aggressiv. Effektforbruk og ytelse er ikke helt topp om en sammenligner med x86 prosessorer på samme tidspunkt. Sammenligner du med x86 på samme CMOS prosess så blir bildet helt annerledes, så forventningene til 32nm er vel rimelig stor for Itanium tilhengerne siden Intel har planer om å lansere x86 (Xeon MP) og Itanium nesten samtidig på den prosessen. Et av de mest ekstreme eksemplene på kvaliteten til Itanium er at 90nm versjonen er like rask som 45nm versjonen av x86 (Penryn) på flyttallytelse per kjerne, men det er mest av akademisk interesse siden 90nm Itanium fortsatt er siste generasjon og har bare to kjerner, mens x86 leveres med 4 kjerner. I tillegg har Itanium en del RAS og skalerings egenskaper som x86 ikke har fått enda. Disse har begge den egenskapen at de krever mer energi og trenger lengre utvikling og test tid, så en fornuftig sammenligning er mye vanskeligere enn det først kan se ut som.

Endret av Anders Jensen
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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...