Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Side 1 2 3 4 næste »

Gå til:

AMD CPU Test: 4000+ vs. X2 4600+

Af Allan Nielsen | 06-11-2005 | 19306 visninger | 0 kommentarer

Producent:
Sponsor:
Page 1 : AMD CPU Test: 4000+ vs. X2 4600+

Introduktion
Som ny skribent på HardwareOnline.dk er jeg glad for at kunne præsentere CPU testen her, der kaster lys over ydelsen på nogle af de nyeste processorer på markedet i dag. Vi har modtaget et par meget spændende emner direkte fra AMD, der giver et fornuftigt grundlag for sammenligning af de forskellige CPU’er. I denne test sætter vi primært fokus på ydelsen imellem de ”gamle” enkeltkerne CPU’er og de nye dobbeltkerne CPU’er, men vi giver også et lidt dybere indblik i teknologien bag dobbeltkerner.

Er en dobbeltkerne CPU virkelig pengene værd, eller kan en enkelt kerne stadig følge med? Find svaret videre i artiklen, og find ud af, om der skal stå X2 på din næste AMD CPU.


Single core vs. Dual CPU vs. Dual core
For at få styr på definitionerne, så er en single core en CPU med 1 fysisk kerne, og CPU’en placeres i en sokkel på bundkortet.
En dual CPU computer er udstyret med to separate CPU’er. Disse sidder i hver sin sokkel på bundkortet, og kommunikerer med hinanden via en bus på samme. Denne bus kommunikation har givet en lille forsinkelse i CPU-kommunikationen, f.eks. når de to CPU’er skulle løse Cache Coherency problemer, som du kan læse mere om senere i testen. Dual CPU systemer har længe været brugt på servermarkedet og af folk med stort behov for regnekraft. Det har været en forholdsvis dyr løsning, da den tit krævede dyrere ECC RAM, et specielt bundkort, og ikke mindst fordi man skulle købe 2 (ofte identiske) CPU’er. Endvidere har det meste software hidtil ikke kunnet udnytte fordelen i at have 2 CPU’er, og derfor har dual CPU aldrig for alvor slået igennem på desktopmarkedet.

X2, dobbeltkerne, dual core – kært barn har mange navne. Definitionen siger, at dual core er en CPU med 2 kerner i samme indpakning, der kan sidde i en enkelt sokkel på bundkortet. ”X2” er betegnelsen som AMD påklistrer deres dual core CPU’er. Både AMD og Intel har lanceret dual core CPU’er, men deres tilgang til emnet har været noget forskellig. Integrationen af 2 kerner i én CPU fjerner i AMD’s tilfælde stort set kommunikationsforsinkelsen imellem kernerne da de kan kommunikere med hinanden direkte inde i CPU’en, uden brug af ekstern bus. Intel har valgt en anden løsning til dual core, nemlig at tage to stort set komplette CPU’er og pakke ned i samme indpakning. Dette bevirker at de kun kan kommunikere med hinanden via den eksterne FSB på 800 MHz, og at kommunikationen mellem de to kerner derfor bliver væsentligt langsommere. Da denne test ikke omfatter en Intel dual core CPU, vil vi dog ikke redegøre yderligere for Intels dual core teknologi her.


Figuren herover viser forskellen på de tre typer



HyperThreading
Mange er måske af den opfattelse at en Intel CPU med HyperThreading er det samme som en dual core CPU, men dét er bestemt ikke tilfældet. HyperThreading teknologi er 100% baseret på en single core, og vi vil her kort beskrive dens virkemåde.
I en CPU med HyperThreading laves der en kopi af de interne registre, herunder de generelle registre som EAX, EBX osv, men også tilstandsregistre og kontrolregistre. Den egentlige beregningsenhed ændres dog ikke, men da man har kopieret registrene er det muligt at ”snyde” operativsystemets scheduler til at tro, at der er to kerner i systemet. Dermed vil denne scheduler forsøge at sende to tråde til afvikling samtidigt, hvilket i nogle situationer kan give bedre performance i multitasking. Men hvordan kan det nu lade sig gøre, når selve beregningsenheden er uændret? En af de typiske grunde er forholdsvis simpel, men kræver at vi kort kigger på cache hits, cache miss og stalls.

Cache er – som de fleste sikkert ved – et meget hurtigt mellemlager. Det fungerer altså som mellemled mellem RAM og CPU, og når systemet forespørger noget bestemt data i RAM, vil det først lave forespørgslen i cache. Såfremt data befinder sig i cache, er der tale om et ”cache hit”, og data benyttes direkte fra cache. Hvis data derimod ikke findes i cache, hvilket det ret ofte ikke gør, kaldes det for et ”cache miss”. Beregningsenheden må dermed vente på at data hentes i RAM, hvilket jo er væsentligt langsommere end den interne cache – dette kendes under det bredere begreb kaldet ”stall”, der blot indikerer at beregningsenheden er i ”venteposition”.
Her kommer fordelen ved HyperThreading ind, da den sørger for at CPU’en hurtigt arbejder på en anden tråd, hvis den første er skyld i et stall. Altså bliver udnyttelsesgraden af CPU’en en smule højere i multitasking situationer. Hvis den første tråd derimod ikke var skyld i et stall (f.eks. fordi den havde cache hit, og ikke cache miss), så er der ikke vundet noget med HyperThreading.
Det skal til slut noteres, at det ikke kun er et cache miss der kan være skyld i et stall. Det kan også sagtens være en branch misprediction, eller simpelthen fordi CPU’en venter på udførelsen af en tidligere iværksat instruktion.


AMD X2 i detaljer
Da AMD i sin tid lavede deres nu velkendte A64 CPU, var denne allerede forberedt på dual core teknologi. Det var dog dengang ikke muligt at implementere den i praksis, men det er det heldigvis blevet med den nye, mindre 90 nm SOI (Silicon-On-Insulator) teknologi. Produktionen af X2 foregår på AMD’s fabrik i Dresden, Tyskland.


HardwareOnline.dk's X2 4600+ testeksemplar


I skrivende stund er AMD X2 tilgængelig i følgende versioner:


Som det fremgår af tabellen ovenfor, er CPU’er i X2 familien indtil videre alle baseret på enten Manchester eller Toledo kerner (E steppings), hvor førstnævnte har 512 kB L2 cache til hver CPU, mens Toledo har hele 1 MB pr. CPU, svarende til henholdsvis Venice og San Diego kerner for enkelt-kernede CPU’er. Det fremgår ikke af tabellen, men i en X2 har hver kerne 64 kB L1 Data Cache og 64 kB L1 Instructions Cache, dvs. 128 kB to-vejs L1 cache til hver kerne.

En X2 vil fungere i de fleste socket 939 bundkort, oftest vil det kun kræve en BIOS-opdatering på bundkortet. Dette faktum gør umiddelbart X2 til en meget oplagt opgradering for mange, da man så ikke behøver udskifte andet end sin CPU. Det er hovedsageligt af kompatibilitetsårsager at AMD valgte at benytte socket 939 til deres første X2’er; nemlig for at give folk med en af de mest udbredte platforme for tiden mulighed for en ”nem” opgradering. Socket 939 platformen er desuden godt gennemprøvet, og lider ikke af børnesygdomme. Det største problem ved at benytte den eksisterende platform er umiddelbart begrænsningen i båndbredde til hukommelsen.


Efter en BIOS-opdatering genkender bundkortet X2’en på korrekt vis


Følgende diagram viser den interne arkitektur i en X2 (meget simplificeret):


X2 arkitektur


Hver kerne har sin egen cache, både L1 og L2. De to kerner deler den såkaldte ”System Request Interface”, hvorved de kan kommunikere med hinanden. De har også fælles, intern memory controller og HyperTransport teknologi, som de har fat i via en Crossbar Switch som også ses på diagrammet ovenfor. Denne Crossbar Switch styrer adgangen til de eksterne ressourcer fra begge kerner.

Ulempen ved at de to kerner deler memory controlleren er umiddelbart, at de så deler dens båndbredde på 6,4 GB/s. Når AMD i fremtiden skifter til dual-channel DDR2-667 SDRAM (med introduktionen af sokkel M2) vil båndbredden stige til 10,6 GB/s, hvilket gerne skulle give betydelige forbedringer på dén front. Sokkel M2 bliver efterfølgeren til sokkel 939, men vil have 940 ben, så nuværende CPU’er vil ikke være kompatible med den nye standard. Ej heller vil man kunne bruge de nuværende sokkel-940 CPU’er heri. Dog forventes den nye M2 standard ikke at komme frem før foråret 2006, så sokkel 939 er stadig den foretrukne standard i nogen tid endnu.

Man forestiller sig sikkert at en X2 vil bruge næsten dobbelt så meget strøm som en enkelt kerne, men det er heldigvis ikke tilfældet. Det er bestemt værd at notere sig, at effektforbruget i denne X2 er langt lavere end hvad man kunne forvente. Faktisk er det lykkedes AMD at nå ned på 110W som max effektforbrug, hvilket ikke er stort mere end for en enkelt FX kerne. Til sammenligning bruger en FX-55 op til 105W, så en stigning på kun 5W må siges at være imponerende. Dette lave forbrug betyder, at det som hovedregel ikke vil være nødvendigt at udskifte sin CPU køler, såfremt man skulle tage skridtet og opgradere til en X2.

Som sidegevinst er det med Cool n’ Quiet muligt at nedsætte effektforbruget yderligere alt efter behov, som det også er tilfældet for CPU’er med kun én kerne.


Cache Coherency
Den interne arkitektur af AMD’s X2 muliggør en meget hurtig løsning på problemet omkring Cache Coherency, der på dansk kan oversættes til noget i retning af ”Logisk sammenhæng i Cache”. At sikre Cache Coherency er en af de vigtigste problemstillinger ved at arbejde med flere kerner, hvad enten det er dual CPU eller som her dual core. Problemet opstår, fordi begge kerner har hvert sit cache-lager. Det gælder om at sikre dataintegritet, eller med andre ord handler det om at sikre sig, at data i cache på den ene kerne stemmer overens med tilsvarende data i den anden kerne (samt evt. i hukommelsen). De to kerner må altså ikke arbejde på de samme data fra hukommelsen (RAM) samtidig.

Lad os tage et eksempel:
Vi forestiller os, at begge CPU’er har hentet en værdi fra det samme sted i hukommelsen, og gemt denne værdi i hver sin cache. Hvis CPU1 ændrer denne værdi og gemmer den i hukommelsen, så vil CPU2’s værdi jo ikke længere være identisk med værdien i hukommelsen, og integriteten er gået tabt. Dette vil ofte kunne ske i et system med mere end én kerne, og derfor er det vigtigt at problemet løses så hurtigt som muligt – og her må man sige, at AMD har fundet en fornuftig måde at klare dette på. Her løses problemet nemlig direkte imellem CPU’erne via System Request Interface (RSI), hvormed det ikke er nødvendigt at vente på systembussen, der jo opererer ved væsentlig lavere hastighed (800 MHz for Intel, mod RSI’s aktuelle CPU hastighed, f.eks. 2400 MHz)

Håndtering af Cache Coherency foregår i en såkaldt Cache Coherency Protocol, der i X2 regi kaldes MOESI (Modified Owner Exclusive Shared Invalid), på grund af de forskellig markeringer den kan give data. Denne protokol skal hele tiden holde styr på data i hver kernes cache; opdage når data i den ene kerne skal bruges i den anden, og hvornår data deles imellem kernerne. Hvis kun den ene kerne benytter en stump data, vil denne blive markeret som ”Exclusive”, men hvis data deles imellem kernerne, vil protokollen sørge for at markere data som ”Shared”. Hvis den ene kerne så ændrer data, vil de lokalt set blive markeret som ”Modified”, mens den samme stump data i den anden kerne vil blive markeret som ”Invalid”, dvs. ubrugelig. Fordelen ved MOESI frem for f.eks. Intels MESI (Modified Exclusive Shared Invalid) er, at den også har markeringen kaldet ”Owner”, så en kerne kan ”eje” data. I denne tilstand kan den ene kerne opdatere cache’n i den anden kerne hvis det er nødvendigt, uden først at skulle skrive data ud til hukommelsen, hvilket naturligvis giver en betydelig hastighedsforbedring.

Det skal tilføjes, at MOESI er ikke nogen ny opfindelse, da det også var denne protokol AMD benyttede til deres Athlon MP systemer – så AMD ved udmærket, hvad de har med at gøre.

Hvorfor nu bruge så meget spalteplads på Cache Coherency, tænker du måske? Det gør vi her, da Cache Coherency er et af de vigtigste, men samtidig mest oversete elementer når man snakker systemer med mere end én kerne.

Side 1 2 3 4 næste »


ANNONCE