Esben von Buchwald <use-net@rem_oVe-amokk.dk> writes:
>> Undskyld mig, men dette lyder fuldstændig bagvendt af hvad jeg vil
>> forvente.
>> Du skriver at fordi du har 2 * lang -latens tid, kan du bedre udnytte
>> en stor båndbredde, end hvis du har 1 * kort + 1 * lang latens tid.
>> Når opstarts latensen er overstået, vil de kunne burste data ind
>> lige hurtigt.
>> Det system som har den _korteste_ latens vil være hurtigst.
>> Jeg vil tværtimod påstå at et _Intel_ system vil have sværere at
>> udnytte DDR2 RAM'ernes højere båndbredde, fordi det bliver begravet i
>> den store opstarts latens tid. En processor med integreret RAM
>> controller vil have kortere latens, og vil dermed hurtigere kunne
>> komme igang med at nyde fordel af den hurtigere burst data hastighed.
>> Et billede på problemet kunne være to biler, som skal køre en
>> strækning på tid.
>> Bil #1 har en høj topfart, men er meget lang til om at accellerere
>> derop.
>> Bil #2 har en lavere topfart, men accellererer hurtigere op til
>> topfarten.
>> Hvis bil #2 ændrer på motoren, så den får samme topfart som #1, men
>> stadig en hurtigere acceleration, vil den _altid_ slå bil #1.
>
> Jeg skriver hvad jeg har læst mig til på diverse hardware-test sites.
OK, det siger jo en del om hvad diverse hardware-test sites har
forstand på :-/
> Det er et spørgsmål om, at AMD kan udnytte DDR RAM bedre end intel,
> pga. den korte vej til RAM, hvorimod den høje latency på DDR2 RAM gør
> dette til den største flaskehals når den bruges med en AMD CPU. Intel
> CPUer har derimod lange pipelines og lang vej til RAM (gennem chipset)
> - derfor betyder den ekstra latency ikke så meget for dem, derimod er
> båndbredden vigtigere.
Så hvis vores latency er stor, så lad os gøre den endnu større - for
så kører vi hurtigere? - undskyld mig, men det er noget vrøvl.
Kig på min sammenligning fra forrige gang - jeg skriver intet om den
interne opbygning her. Det er kun et spørgsmål om hvad effektiv
båndbredde at AMD hhv Intel kan få ud af en DDR2 RAM. Og processorerne
idag er hovedsageligt begrænset af hvor hurtigt de kan tilgå
hovedhukommelsen.
Men lad os tage en 3.0GHz CPU - dvs at der går 3 pipeline trin for
hver 1 nanosekund. Med en DDR2 latens*) på 9/12/15 clocks ved
200/267/333MHz Det er i alle tre tilfælde 45 nanosekunder - og derved
slår pipeline clocken 135 gange. Hertil skal vi lægge latens for vejen fra selv
pipelinen til front-side-bus og igennem chipsettet.
Og husk så endelig at gange med hvor mange instruktioner som
processoren gerne vil udføre per cycle (2-6).
Så vi er hurtigt oppe i at CPU'en kan (forsøge at) udføre 500-1000
instruktioner, mens den venter på data fra RAM.
Det kan vel ikke undre nogen at problemet omtales som "the memory
wall"
Selvom P4'en har en lang pipeline, så har den stadig mindre end 100
stages. Og memory-delen af pipelinen vil være endnu mindre. Så når
pipelinen skal til at bruge data som er ved at blive hentet fra RAM,
og de ikke er tilgængelige, så må pipelinen stoppe den instruktion.
Dette føre let til harmonika-stop internt, fordi CPU'en ikke kan
afslutte senere instruktioner som afhænger af de læste data.
Processoren forsøger selvfølige at stoppe alle mulige instruktioner
ind bag læsningen for at få pipelinen til at lave noget fornuftigt,
sandsynligheden for at finde noget fornuftigt at udføre falder
drastisk med antallet af pipeline trin. Så kan man begynde at
spekulere i at stoppe instruktioner ind som man ikke er sikker på skal
udføres, og dem skal man så kunne aflyse senere. Det findes der
metoder for at holde rede på.
> Og det hænger meget godt sammen med den generelle opbygning af intel
> vs. AMD cpuer, hvor Intel har en længere datapath, men til gengæld har
> højere clockfrekvens, hvor AMD har kortere datapaths og lavere
> clockfrekvens, hvilket er grunden til at de yder bedre end Intel ved
> lavere hastighed.
Den klassiske "brainiac vs speed-demon" diskussion (lav frekvens og
meget arbejde/cycle vs høj frekvens og lidt arbejde/cycle). I mange
år var speed-demon'en klart overlegen udfra princippet om at frekvens
er som tidevandet som løfter alle både (læs: alle applikationer kan
drage nytte af en hurtigere clock).
AMD har bevist at det ikke længere er tilfældet, og Intel har måttet
indrømme det efter at have forsøgt og fejlet med NetBurst
arkitekturen. Fremtidige processorer fra Intel vil SVJV blive baseret
på Pentium M arkitekturen (den som bruges i Centrino laptops), som har
en væsentligt lavere clock frekvens, men meget lavere effektforbrug og
næsten samme ydelse som de "rigtige" P4 processorer.
*) Data taget fra
http://www.samsung.com/Products/Semiconductor/DRAM/DDR2SDRAM/DDR2SDRAMmodule/UnbufferedDIMM/M378T2953CZ3/M378T2953CZ3.htm
/PS: Jeg har ikke noget horn i siden på Intel, hvis nogen skulle føle
det. Faktisk forfattes dette på min P4-2.4 maskine :)
Kai
--
Kai Harrekilde-Petersen <khp(at)harrekilde(dot)dk>