On Sat, 16 Jul 2005 09:27:10 +0200, Søren Helskov <master.clio@45move.dk>
wrote:
> Hej
>
> Uden at starte en Amd vs Intel diskussion kunne jeg godt tænke mig
> at vide hvad forskellen er på de to cpu'er hvis man tager Athlon64 og
> f.eks
> en
> prescott.
> Intel kører med meget høj FSB iforhold til Amd. Hvorfor?
> Hvorfor kører Amd mindst ligeså hurtigt når den på papiret i
> Mhz og Fsb osv er "langsommere"?
>
Her følger et (stadig generelt) svar. Alle tal er rene eksempler uden
reference til bestemte CPU-er.
Et par oplysninger med relevans for FSB frekvensen:
1. En moderne FSB fungerer sådan at det kan blive lidt akademisk om den
helt
samme FSB (altså fysisk samme maskine) skal kaldes f.eks. 100MHz, 200MHz
eller endnu mere, alt efter hvor små "skridt" i FSB-operationen der skal
tælles som 1 cyclus.
2. AMD og Intel har hver deres FSB-interface mellem CPU og chipset, derfor
kan det selv med samme definition af 1 cyclus være ret forskelligt hvor
mange bits der overføres pr. cyclus. Til performance-sammenligning er
GB/s mere relevant, men når man skal matche en CPU til den rigtige model
Motherboard er den konkrete frekvens i MHz det eneste der kan bruges til
noget.
3. AMDs 64 bit chips (Opteron og Athlon64) har en direkte forbindelse fra
CPU til RAM uden om FSB, så på disse chips har FSB kun betydning for I/O
til f.eks. skærmkortet, og skal derudover kun trække den brøkdel af
data som ikke bruger genvejen til/fra RAM.
Et par oplysninger med relevans for CPU core frekvensen:
1. Hvor meget en CPU-pipeline laver pr. clockcyclus kommer an på hvor mange
transistorer etc. der sidder "efter hinanden" mellem hvert trin (stage) i
den pipeline.
Hvis en pipeline i et trin både henter et tal fra et register regner på
det tal og skriver det tilbage igen, koster det kun 1 clockcyclus, men
signalet skal igennem så mange transistorer at minimumstiden for den ene
clockcyclus er en del større.
Hvis den samme operation skal igennem f.eks. 4 trin, så koster den 4
clockcycler men hver clockcyclus kan så til gengæld være en del kortere
(højere clockfrekvens). Dette kaldes en dybere pipeline.
2. En pipeline kan i princippet håndtere 1 operation pr. clockcyclus
alligevel,
hvor hvert trin så behandler den næste del af programmet. Dette kan dog
kun udnyttes hvis de operationer som skal ind i køen efter hinanden er
klar,
og ikke er nødt til at stå udenfor pipelinen og vente på at et bestemt
resultat
først er kommet ud af den anden ende.
3. En meget stor del af designet af moderne CPU-er går derfor på at lave
nogle
ekstremt indviklede (men stadig lynhurtige) systemer som kan holde flest
muligt
bolde (operationer) i luften på en gang.
4. Et af de mere specielle tricks er Intels Hyperthreading, som simpelthen
går ud
på at der er bolde fra to forskellige programmer i CPU-en på en gang, da
disse
jo er uafhængige skal de ikke vente på hinandens resultater og Intel kan
på den
måde forøge den procentdel af tiden hvor hvert trin laver noget for
pengene.
Intel og AMD er rørende enige om at det med at sammenligne rå
clockfrekvenser
var meget mere relevant på 386 og ældre CPU-er, hvor hver enkelt
programlinie
brugte et veldefineret antal clockcycler, som var næsten det samme for
begge
fabrikater. Dengang var der ingen cache og FSB=CPUclock=RAMclock.
På moderne CPU-er som Opteron, Xeon m.fl. er clockfrekvensen en nærmest
ligegyldig
mellemregning som kun omtales fordi folk spørger efter den. Både Intel og
AMD
har lavet nogle nærmest absurde stunts for at tilfredsstille dette
markedsgøgl:
Pentium IV blev bygget med en meget dyb pipeline og kørte faktisk
langsommere ved
samme clockfrekvens end både den gamle Pentium III og den senere Pentium
M. Der
var en del pressespekulationer om dette design var for at kunne prale med
den
højere clock som var mulig på grund af de små trin.
AthlonXP blev konsekvent betegnet med et tal som IKKE var frekvensen på
CPU-en
men et performancemål hvor 1000=ca. hastigheden på en bestemt 1GHz
Intel-CPU.
Opteron har konsekvent ingen hastighed i modelnummeret og man skal grave
dybt
på AMDs site for at finde ud af hvor hurtig en Opteron er i forhold til en
anden.
Det samme gælder vist for Itanium2.
m.v.h.
Jakob
--
#include <disclaimer>
|