KarbosGuide.dk. Modul 3e10.

Om multimedier, MMX og SSe


Indhold:

  • Om FPU
  • Om 3D-grafik
  • Om MMX
  • Om 3DNow!
  • Om SSE

  • Nćste side
  • Forrige side

  • Introduktion

    I 1995 blev Pentium-processoren udvidet med de såkaldte MMX-instruktioner. Det blev annonceret som en multimedie-udvidelse med 57 ny instruktioner.

    I dag ligger tyngdepunktet indenfor multimedier især på 3D-grafik. Og her er den vigtigste operation de såkaldte geometriske transformationer , som har med flydende komma-tal-operation at gøre. Derfor er MMX ikke nok; processorerne har fået indbygget yderligere instruktions-power: 3DNow! og SSE.


    FPU

    FPU står for Floating Point Unit; det er den enhed i processoren, som håndterer de flydende-komma-tal. Det er svært for CPU’en at bearbejde flydende komma-tal, for der skal enormt mange bits til at lave en præcis beregning. Matematik med heltal (integers) er meget enklere, og der bliver resultatet helt korrekt, hver gang.

    FPU’en opererer med flydende komma-tal af forskellig bit-længde, afhængigt af den ønskede præcision. Den mest præcise type er 80 bit lange!

    Alle de moderne P6-processorer har 8 stk.. FP-registre, som hver er 80 bit lange. Der er altså plads til 8 tal af 80 bits længde eller fx 16 tal a 32 bits længde inde i selve CPU’en.

    3D grafik

    Når man tegner personer og landskaber, som ændres i 3D-grafik, bygges figurerne af små polygoner (gerne trekanter eller rektangler). En figur i et PC-spil kan være opbygget af 200-1500 sådanne polygoner. For hver ændring i billedet, skal disse polygoner nytegnes i en ny position. Det betyder, at hvert hjørne (vortex) i hver polygon skal beregnes på ny.

    Flydende tal-operationer

    For at kunne beregne polygonernes placering, skal man bruge såkaldte flydende tal. Heltals-beregninger (1,2,3,4 etc.) er langt fra præcise nok, i stedet bruger man kommatal som 4,347. Disse tal kaldessingle-precision floating pointsog er 32 bit lange. Der findes også 64 bits tal, kaldetdouble-precision floating points, som kan bruges til endnu mere krævende beregninger. Til at tegne 3D-objekter er 32 bits-tallene dog gode nok.

    Når figurerne i et 3D-landskab bevæger sig, skal der laves en såkaldt matrix-multiplikation for at beregne de ny vortex’er. Hvis en figur består af 1000 polygoner, skal der foretages op til 84.000 multiplikationer hver med 2 stk. 32 bit flydende heltal. Det er et ret heftigt regnearbejde, som den traditionelle pc ikke er særlig god til. Faktisk er finansministeriets allerstørste regneark det rene vand sammenlignet med Quake II, hvad angår kravene til regnekraft.

    Hvad hjælper på 3D-afviklingen?

    CPU’en får let åndenød, når det drejer sig om arbejde med 3D-bevægelser henover skærmen. Hvordan kan den så hjælpes? Det kan ske på flere måder:

  • Generelt hurtigere CPU. Jo højere klokfrekvensen er, jo hurtigere vil den traditionelle FPU-ydelse blive.
  • Forbedringer i CPU’ens FPU med pipelines og anden acceleration. Det ser vi ved hver ny generation af CPU’erne.
  • Ny instruktioner til mere effektiv 3D-udførelse. Instruktioner, som programmerne kan kalde. 3DNow! og SSE er eksempler herpå.
  • 3D-accelerede grafikkort.


    MMX

    Selve Pentium MMX-processoren blev en stor succes, men det skyldtes ikke MMX-instruktionerne. mange betegner dem som et flop. Pointen er, at MMX kun regner med heltal. Og ydermere, er systemet så svagt, at der kun kan arbejdes enten med MMX eller med FPU, ikke begge dele samtidig. De to instruktionssæt deler nemlig fælles registre.

    MMX-instruktionerne kan være en hjælp til andre opgaver i gentegningen af 3D-landskaberne (overfladen mv.), men til hele geometrien, der skal der anderledes boller på suppen.


    3DNow!

    I sommeren 1998 introducerede AMD en samling ny CPU-instruktioner, som forbedrer 3D-afviklingen.

  • 21 ny instruktioner
  • SIMD-instruktioner, hvormed der behandles flere portioner data med én instruktion
  • Forbedrede behandling af flydende komma-tal, især de 32 bits tal, som bruges så meget i 3D-spil.

    3DNow! blev en stor succes, i det instruktionerne hurtigt blev integreret i Windows, i forskellige spil (og andre programmer) og i hardware-producenternes driver-programmer.

    Instruktionerne benytter de samme registre som MMX og traditionel FPU gør. De må altså deles om dem. Da registrene er 80 bit brede, kan de rumme to 32 bits tal ad gangen.


    SSE

    SSE (Streaming SIMD Extensions) er Intels måde at forbedre 3D-afviklingen i alle ny processorer fra Katmai/ Pentium III og fremefter. Læs også beskrivelsen i modul 3e8. Problemet med SSE er, at instruktionerne kræver softwareunderstøttelse, og det vil tage sin tid at få det plads.

    I princippet er SSE væsentligt kraftigere end 3DNow! De 8 ny 128 bit registre kan nemlig rumme fire 32 bit tal ad gangen. Men hvis denne fordel skulle udnytttes fuldt ud, skulle FPU-pipelinen også have været fordoblet, så hver multiplikations- eller additions pipeline kunne modtage fire tal ad gangen. Det er den bare ikke blevet i Pentium III, som så ville være blevet forsinket. Pipelinene kan altså fortsat kun tage to 32 bits-tal ad gangen. På den måde bliver SSEs potentiale kun delvist realiseret i Pentium III.

    Med den aktuelle FPU-enhed kan Pentium III udføre dobbelt så mange 32-bit tal-operationer per klokkeslag som de andre P6-processorer (Pentium II og Celeron) kan det. Det er samme ydelse som man finder i 3DNow!-processorne. Men Pentium III lægger op til fremtidige udgaver med fire gange så kraftig FPU-ydelse, hvad angår disse 32 bit tal.

    SIMD

    SIMD står for Single Instruction Multiple Data. Teknikken blev introduceret i MMX-processorne, hvor man kunne bearbejde flere heltalsamtidigt. I Pentium III har teknikken fået et løft op, så det nu er flydende tal, som der kan behandles flere af samtidig. Det kommer især til at gavne multimedie-behandlingen, for i lyd- og videobehandling indgår der mange flydende tal operationer.

    Intel har videreudviklet SSE til SSE2, som findes i Pentium 4. Det oprindelige SSE instruktioner er implementeret i AMD's AthlonXP og Duron (Morgan) processorer.


  • Nćste side
  • Forrige side


    Lær mere

    Læs om chipsæt i modul 2d

    Læs om klokfrekvenser i modul 3d.

    Læs videre om Ultra DMA og AGP i modul 5b

    Læs om driv-programmer til Windows 95 i modul 6c.

    Læs videre om RAM i modul 2e


    Copyright (c) 1996-2011 by Michael B. Karbo.