Arhitektúra
Az Intel ezen processzor működését egyértelműen meghatározza a szuperskalár architektúra, azaz
ez a processzor egy órajel ciklus alatt képes több (pontosan 2) utasítás végrehajtására (gyakorlatilag egyszerre).
Ezt az úgynevezett Pipeline-jaink keresztül éri el.Ez megkétszerezi az előnyét az Intel 486 processzorokhoz képest, hiszen
az integer egység a két integer utasítást egyszerre hajtja végre.
A Pipelineok 5 végrehajtási szintre tagolódnak :
- Prefetch (PF)
- Utasítás dekódolás (D1) (Decode Stage 1)
- Címgenerálás (D2) (Decode Stage 2)
- Végrehajtás (E) (Execute)
- Visszaírás (WB) (Write Back)
Ez mindkét Pipelinera érvényes.
INTEGER egység :
- U Pipeline : elsődleges pipeline
- V pipeline : másodlagos pipeline,hasonló az elsőhöz,de itt már megszorítások lépnek fel, ami korlátozhatja az optimalizálás hatásfokát.
Ez figyelhető meg az 1.2-es ábrán.
Képes az utasítások elő betöltésére (Intruction Prefetch), azaz az utasítások kódjának a magasabb címekről történő előzetes
beolvasása a processzorba, még a végrehajtást megelőzően.Célja az utasításvégrehajtás átfedése.
Amikor az utasítás a prefetchből átkerül a decoder-be a pipeline készen áll a következő utasítás végrehajtására, ez az "utasítás párosítás",ennek feltétele, hogy mindkét utasításnak egyszerűnek kell
lennie, mindkét pipeline tartalmaz saját ALU-t, címgenerátor, adatcache interface-t.
Ezt szemlélteti az 1.3-as ábra.
|
 |
Szoftveres támogatás
- DirectX 3.0 : játékok terén és azon alkalmazások terén amik ennek az eljárásait és hívásait használják.A DirectX és benne a Direct3Dvel egy API (Application Protokoll Interface), amit a Microsoft dolgozott ki azzal a céllal, hogy szűnjök meg a hardverspecifikusság a (alkalmazás)fejlesztők oldalán, mert ők ezt elvégzik ezt.Készítettek egy felületet ahova a gyártók integrálják a hardver drivereit, majd a fejlesztőknek mindössze annyi a feladatuk, hogy az onnantól már egységes DirectX-es hívásokat és megszakításokat használják.
- Windows 95 OSR2 : rendszerszintű támogatás
Kettős feszültséget használ, a belső üzemeléshez 2.8V-ot, az I/O műveletekhez 3.3V-ot annak érdekében, hogy külön hűtésre ne legyen szükség.
Azonban a gyakorlati tapasztalat az, hogy mégis jobb az MMX processzorrra egy brutális Pentium Turbo hűtőventillátor.Ezért csak olyan
alaplapokba helyezhető, ami támogatja a kettős tápfeszültséget (MMX kompatibilitás) (VRE felszültségszabályozó).Ilyen okok miatt készült el
az MMXek Overdrive változata, amely már magának állítja elő a kétféle feszültséget.
Az új 57 utasítás SIMD (Single Instruction, Multiple Data), azaz egy utasítással több adaton lehet műveletet végezni.
|
 |
MMX Utasítások |
Név
| Operandus típusok
| Bájt 1
| Bájt 2
| Bájt 3, [4]
|
EMMS | Nincs
| 0F | 77
| mod-rm, [sib] |
MOVD | register, memory/iregister
| 0F | 6E
| mod-rm, [sib] |
MOVD | memory/iregister, register
| 0F | 7E
| mod-rm, [sib] |
MOVQ | register, memory/register
| 0F | 6F
| mod-rm, [sib] |
MOVQ | memory/register, register
| 0F | 7F
| mod-rm, [sib] |
PACKSSDW | register, memory/register
| 0F | 6B
| mod-rm, [sib] |
PACKSSWB | register, memory/register
| 0F | 63
| mod-rm, [sib] |
PACKUSWB | register, memory/register
| 0F | 67
| mod-rm, [sib] |
PADDB | register, memory/register
| 0F | FC
| mod-rm, [sib] |
PADDD | register, memory/register
| 0F | FE
| mod-rm, [sib] |
PADDSB | register, memory/register
| 0F | EC
| mod-rm, [sib] |
PADDSW | register, memory/register
| 0F | ED
| mod-rm, [sib] |
PADDUSB | register, memory/register
| 0F | DC
| mod-rm, [sib] |
PADDUSW | register, memory/register
| 0F | DD
| mod-rm, [sib] |
PADDW | register, memory/register
| 0F | FD
| mod-rm, [sib] |
PAND | register, memory/register
| 0F | DB
| mod-rm, [sib] |
PANDN | register, memory/register
| 0F | DF
| mod-rm, [sib] |
PCMPEQB | register, memory/register
| 0F | 74
| mod-rm, [sib] |
PCMPEQD | register, memory/register
| 0F | 76
| mod-rm, [sib] |
PCMPEQW | register, memory/register
| 0F | 75
| mod-rm, [sib] |
PCMPGTB | register, memory/register
| 0F | 64
| mod-rm, [sib] |
PCMPGTD | register, memory/register
| 0F | 66
| mod-rm, [sib] |
PCMPGTW | register, memory/register
| 0F | 65
| mod-rm, [sib] |
PMADDWD | register, memory/register
| 0F | F5
| mod-rm, [sib] |
PMULHW | register, memory/register
| 0F | E5
| mod-rm, [sib] |
PMULLW | register, memory/register | 0F | D5
| mod-rm, [sib] |
POR | register, memory/register
| 0F | EB
| mod-rm, [sib] |
PSHIMD* | register, immediate
| 0F | 72
| mod-rm, imm |
PSHIMQ* | register, immediate
| 0F | 73
| mod-rm, imm |
PSHIMW* | register, immediate
| 0F | 71
| mod-rm, imm |
PSLLD | register, memory/register | 0F | F2
| mod-rm, [sib] |
PSLLQ | register, memory/register
| 0F | F3
| mod-rm, [sib] |
PSLLW | register, memory/register
| 0F | F1
| mod-rm, [sib] |
PSRAD | register, memory/register
| 0F | E2
| mod-rm, [sib] |
PSRAW | register, memory/register
| 0F | E1
| mod-rm, [sib] |
PSRLD | register, memory/register
| 0F | D2
| mod-rm, [sib] |
PSRLQ | register, memory/register
| 0F | D3
| mod-rm, [sib] |
PSRLW | register, memory/register
| 0F | D1
| mod-rm, [sib] |
PSUBB | register, memory/register
| 0F | F8
| mod-rm, [sib] |
PSUBD | register, memory/register
| 0F | FA
| mod-rm, [sib] |
PSUBSB | register, memory/register
| 0F | E8
| mod-rm, [sib] |
PSUBSW | register, memory/register
| 0F | E9
| mod-rm, [sib] |
PSUBUSB | register, memory/register
| 0F | D8
| mod-rm, [sib] |
PSUBUSW | register, memory/register
| 0F | D9
| mod-rm, [sib] |
PSUBW | register, memory/register
| 0F | F9
| mod-rm, [sib] |
PUNPCKHBW | register, memory/register
| 0F | 68
| mod-rm, [sib] |
PUNPCKHDQ | register, memory/register
| 0F | 6A
| mod-rm, [sib] |
PUNPCKHWD | register, memory/register
| 0F | 69
| mod-rm, [sib] |
PUNPCKLBW | register, memory/register
| 0F | 60
| mod-rm, [sib] |
PUNPCKLDQ | register, memory/register
| 0F | 62
| mod-rm, [sib] |
PUNPCKLWD | register, memory/register
| 0F | 61
| mod-rm, [sib] |
PXOR | register, memory/register
| 0F | EF
| mod-rm, [sib] |