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] |