Anslut till Senaste Tekniska Nyheter, Bloggar, Recensioner

AMD K8 E4 Stepping: SSE3-prestanda

Introduktion

Med denna veckas introduktion av x52-serien av Opteron-processorer ger AMD oss en liten titt in i framtiden för deras Athlon 64-linje. Som nämndes i vår artikel på måndag, introducerar den nya 2,6 GHz-hastigheten också den nya E4-steppingen, som lägger till SSE3-stöd. Den nya Opteron fick också en ansiktslyftning genom att den är fabbad på en 90nm-process, kör sammanhängande HT-länkar vid 1GHz och kommer i ett skinande nytt organiskt paket snarare än den äldre keramen.

Målet med den här artikeln är att ge en snabb titt på vad SSE3 tillför bordet för Opteron och den framtida revisionen av E Athlon 64-kärnorna. Eftersom skrivbordsdelar inte alls möjliggör sammanhängande HT-länkar, spelar 1GHz-stödet ingen roll. Dessutom är de nyare A64-delarna redan 90nm på ekologiska förpackningar. Förutom de vanliga små justeringarna vi ser mellan stegen, är det enda som kommer att vara nytt över hela linjen för K8-processorer SSE3.

Vad är egentligen SSE3? Intel introducerade SSE3 som Prescott New Instructions förra året. Dessa instruktioner är i allmänhet tillägg till SIMD-kapaciteten (single instruction multiple data) hos processorn. SIMD-behandling är baserad på idén att ibland måste processorer ta stora mängder data och utföra liknande operationer över hela uppsättningen. Detta lämpar sig väl för saker som ljud- och videobehandling. Inom dessa datorområden flödar stora mängder data genom processorn, som genomgår ungefär samma operationer, som förberedelse för visning. Filosofin bakom SIMD lämpar sig väl även för grafik. Moderna grafikkärnor innehåller många SIMD-bearbetningsenheter för att churna genom vektor- och pixeldata så snabbt som möjligt. SIMD-bearbetning har också till stor del överskuggat användningen av x87 flyttalsenheten på x86-processorer. På grund av detta är det fördelaktigt för AMD att stödja tilläggen till SIMD Intel gör så snabbt som möjligt.

Med SSE3 lade Intel till 10 nya instruktioner riktade till SIMD samt 3 andra instruktioner som inte rör SSE-registren (fisttp, monitor, mwait). Här är en kort lista över SSE3-instruktioner och vad de är till för:

x87 flyttal till heltal konvertering (fisttp)
Komplex aritmetik (addsubps, addsubpd, movsldup, movshdup, movddup)
Videokodning (lddqu)
Grafik (haddps, hsubps, haddpd, hsubpd)
Trådsynkronisering (monitor, mwait)

Omvandlingen från float till heltal är ganska uppenbar i funktion, men några av de andra instruktionerna är lite mystiska. De komplexa matematiska instruktionerna utökar funktionaliteten för imaginära tal. Hadd- och hsub-instruktionerna är horisontella additioner och horisontella subtraktioner. Dessa möjliggör snabbare bearbetning av data som lagras “horisontellt” i (till exempel) vertexarrayer. Här är en 4-elements array av vertexstrukturer.

x1 y1 z1 w1 | x2 y2 z2 w2 | x3 y3 z3 w3 | x4 y4 z4 w4

SSE och SSE2 är organiserade så att prestanda blir bättre vid bearbetning av vertikala data, eller strukturer som innehåller arrayer; till exempel en vertexstruktur med arrayer med 4 element för varje komponent:

x1 x2 x3 x4
y1 y2 y3 y4
z1 z2 z3 z4
w1 w2 w3 w4

I allmänhet är den föredragna organisationsmetoden för vertecies den förra. Under SSE2 skulle kompilatorn (eller mycket olycklig programmerare) behöva omorganisera data under bearbetningen.

lddqu-instruktionen är utformad för att minska effekten av 128-bitars ojusterade minnesåtkomster. Eftersom ojusterade belastningar inträffar ganska ofta i videobearbetning, är lddqu-instruktionen utformad för att ladda 256 bitar av data justerade på en 16 byte-gräns. Instruktionen tar också hand om att extrahera rätt 16byte (som efterfrågat) från 32byte-blocket. Under SSE2 exekveras 64-bitars laddningar och sedan kombineras data om.

För att testa dessa funktioner som implementerade av AMD, testade vi en Opteron 250 mot en Opteron 252. Vi kunde använda crystalcpuid för att ställa in multiplikatorn för Opteron 252 (men powernow!) till 12 för att matcha 2,4 GHz av Opteron 250. På så sätt får vi en direkt jämförelse av de två arkitekturerna.

Vi körde båda processorerna i HP:s wx9300-arbetsstation. Vi använde en enda CPU-konfiguration och 4x 512 MB RAM vid 3:3:3:8. Windows XP SP2 användes i våra tester. I en MP-miljö (med mer minnesbandbredd) har Opteron en större potential för förbättring med SSE3. Tyvärr kunde vi inte utföra en direkt jämförelse av de äldre och nyare kärnorna under en DP-konfiguration. Försöker använda powernow! att justera multiplikatorn med mer än 1 processor installerad resulterade i en BSOD (maskinkontrollundantag).