www.dumell.net / tidningsartiklar / Jakobstads Tidning / Pentium MMX
Publicerad i Jakobstads Tidning 17.02.1997
Pentium MMX


MultiMedia eXtension står MMX för och det är inte en ny processorgeneration utan ett paket tutor och visslor som kan byggas in i tidigare och kommande processorer. Tillsvidare finns det MMX versioner av 166 och 200 MHz Pentium men snart kommer det antagligen MMX versioner av Pentium Pro också. Även Intels konkurrenter Cyrix och AMD jobbar på MMX versioner av sina Pentium kopior. Men vad exakt är då MMX?

En processor är egentligen bara en samling små datorprogram etsade i kisel, alltså det material processorer är gjorda av. En vanlig processor innehåller till exempel program för multiplikation, addition och andra enkla matematiska operationer. Varje dylikt program kallas en instruktion och en normal processor innehåller några hundra sådana. Dessa instruktioner utgör byggklossar som med hjälp av vanliga datorprogram kombineras till större helheter. Om vi till exempel vill räkna en kvadratrot kan vi antingen skriva ett datorprogram som med hjälp av en serie enklare matematiska operander utför operationer eller så kan vi etsa in programmet i en processor och få en enskild instruktion som direkt kan räkna en kvadratrot.
Fördelen med att etsa in programmet är att beräkningen kan göras med en instruktion istället för med en serie av flera instruktioner. Nackdelen är att det tar ett helt team av högklassiga ingenjörer många månader att göra en instruktion i kisel medan en medelmåttig ingenjör kan skriva det på några minuter som ett vanligt datorprogram. Ett vanligt datorprogram är dessutom enkelt att ändra om man hittar ett fel men det som etsat i kisel kan inte ändras utan då måste en ny processor tillverkas istället. Och även om ett inetsat program är snabbare än ett vanligt program så blir processorn som helhet mer komplicerad för varje inetsat program, och därigenom dyrare att framställa och klarar inte av att utföra lika många instruktioner per sekund som en enklare processor.

Multimediaprocessorer

Kvadratrotsexemplet ovan är bra för det problemet har lösts på bägge sätten. I Intels 386 och äldre -processorer fanns kvadratrotsfunktionen inte som en inbyggd instruktion. Det skulle ha gjort processorn onödigt dyr att tillverka och de flesta använder datorn för textbehandling och då behövs inte komplicerade matematiska funktioner. För de som däremot använde sina 386or för tunga matematiska beräkningar tillverkade Intel en skild matematikprocessor, 387, som kunde skjutas in i en sockel bredvid den vanliga processorn. När 486an lanserades hade teknologin utvecklats så att Intel kunde bygga in dessa avancerade matematiska funktioner i huvudprocessorn utan nämnvärda tilläggskostnader.
Vanliga processorer är gjorda för att hantera förhållandevis små mängder tal och följaktligen har till och med de snabbaste Pentium processorerna problem att hantera "strömmar" av data, till exempel en videofilm som lagrats digitalt på en Cd-rom och som skall spelas upp på skärmen. En enkel DSP (Digital Signal Processor) processor som kanske bara kostar 10 mark har däremot inga problem med det. Idag används DSP processorer i många ljudkort och i vissa grafikkort. Atari sista dator före konkursen för några år sedan, Falcon, hade en inbyggd DSP processor och IBM har experimenterat med DSP processorer på expansionskort som kunnat programmeras för att fungera som avancerade ljudkort eller snabba modem. Framför allt Motorola och Texas Instrument är stora DSP tillverkare men inte Intel och följaktligen har DSP processorer varit rätt ovanliga bland vanliga PCn.
För ungefär ett år sedan började det dyka upp andra generationens DSP processorer och dessa började kallas multimediaprocessorer med bland annat inbygda instruktioner för 3D grafik. Det ansågs allmänt att vi snart skulle få se datorer med såväl en vanlig processor som en multimediaprocessor. Sun som tillverkar minidatorer, dvs datorer som är betydligt större än vanliga mikrodatorer, experimenterade också med att bygga ihop sådana multimediaprocessorer med vanliga processorer. Intel kände att deras dominerande ställning på processormarknaden var hotad och lovade utveckla sina processorer så att de skulle innehålla multimediainstruktioner i hopp om att datortillverkare i väntan på dessa skulle låta bli att använda befintliga processorer från andra tillverkare.
Nu är då Intels multimediautvidgade Pentiumprocessorer här och de bleknar i jämförelse med vad bland annat Philips kunde presentera redan för över ett år sedan. Man kan inte annat än vara besviken.

MMX: 57 nya instruktioner

I praktiken är MMX 57 nya instruktioner för ljud och videohantering, en ny metod att hantera processorns register och ett utvidgat buffertminne i processorn.
Det utvidgade buffertminnet, från 16 kB till 32 har egentligen inget med MMX att göra utan är något Intel bara passade på att ändra när de nu ändå var i farten att designa om Pentium processorn. Ironiskt nog är det egentligen bara det utökade buffertminnet som står för den 10-15 procents hastighetsökning som uppmätts i tester hittills. De nya multimediainstruktionerna har däremot visat sig rätt tandlösa men kanske blir situationen bättre när programmerare lär sig utnyttja de nya instruktionerna bättre.
Det mest intressanta med MMX är kanske ändå det Intel kallar SIMD (Single Instruction, Multiple Data). SIMD är antagligen en spin-off teknologi från Intels halvt hemliga VLIW (Very Long Instruction Word) forskning. När en processor manipulerar siffror måste en siffra i taget hämtas från minnet till något register inne i processorn för att manipuleras. MMX använder två nya 64-bitars MMX register för att packa in två 32-bitars siffror, fyra 16-bitars siffror eller åtta stycken 8-bitars siffror i ett och samma register. Med hjälp av SIMD tekniken kan alla dessa siffror sedan manipuleras på en gång istället för att varje siffra manipulerats i tur och ordning.
Problemet är att Intel inte fysiskt skapat två nya register i processorn utan använder de två 80-bitars register som egentligen är avsedda för decimaltal. Det här betyder att processorn måste ställas om mellan decimaltalsläga och MMX läge för att veta hur den skall använda registren och omställningen tar tid. Följaktligen råder Intel programmerare att inte utföra MMX instruktioner och decimaltalsberäkningar nära inpå varandra vilket dramatiskt kan begränsa MMX instruktionernas användbarhet.
Lite mer hade man kunnat vänta sig av världens ledande processortillverkare.



Carl-Magnus Dumell

Observera att den här texten är rätt gammal - det betyder dock inte automatiskt att den är föråldrad.

I många fall är texterna här relevanta och hjälpfulla också idag och de ger alltid en intressant tillbakablick över ämnet.

Carl-Magnus Dumell
Oktober 2011