Tervező | John L. Hennessy és David A. Patterson |
---|---|
Bitek száma | 32 bites |
Bevezetés | 1990-es évek |
Verzió | 1.0 |
Kialakítás | RISC |
Típus | regiszter-regiszter, load-store |
Kódolás | rögzített[1] |
Elágazás | feltételregiszter |
Bájtsorrend | kettős[2] |
Utasításkészlet- kiterjesztések | nincsenek, de az MDMX és a MIPS-3D használható |
Nyílt | igen |
Regiszterek | |
Általános célú | 32 (R0=0) |
Lebegőpontos | 32 (párban használt 32 bites regiszterek a duplapontos formátumhoz) |
A DLX (kiejtve a „Deluxe” szónak felel meg) egy 32 bites RISC processzor-architektúra. Az architektúrát John L. Hennessy és David A. Patterson tervezte, a két legjellemzőbb RISC kialakítás, a Stanford MIPS és Berkeley RISC kialakítások két „atyja”, alapvető alkotója (maga a RISC paradigma is a Berkeley RISC kialakításról kapta a nevét).
A DLX alapvetően egy letisztult, modernizált és egyszerűsített MIPS processzor. A DLX architektúrája egy egyszerű 32 bites load-store (betöltő-tároló) architektúra, ami egy kissé eltér a modern MIPS processzorokétól. Mivel a DLX processzort elsősorban oktatási célokra tervezték, ezért ezt a kialakítást széles körben használják az egyetemi oktatásban, a számítógép-architektúrával kapcsolatos tantárgyakban.
A VAMP egy matematikailag igazolt DLX-változat, a Verisoft projekt részeként. A specifikációját PVS-ben[3] készítették, a modell leírása Verilog nyelven történt, és Xilinx FPGA-n megvalósítható. A processzorhoz egy teljes szoftvergarnitúra is rendelkezésre áll, amely a fordítóprogramtól a TCP/IP hálózatkezelő rendszerig minden alapvető elemet tartalmaz a kernel-fordításhoz.
Az eredeti MIPS architektúrában a teljesítmény növelésére használt egyik módszer az volt, hogy az összes utasítás végrehajtását egyetlen órajelciklusra korlátozták. Ez a fordítóprogramokat arra kényszerítette, hogy üres utasításokat (NOP) illesszenek a kódba azokon a helyeken, ahol az utasítás határozottan tovább tartana, mint egy órajelciklus. A bemeneti és kimeneti műveletek, mint például a memória-hozzáférés, különösen kikényszerítették ezt a viselkedést, ami a programok méretének növekedéséhez vezetett. Az általános MIPS programokban szinte kötelezően felbukkan rengeteg pazarló NOP utasítás, ez az architektúrából adódó nem szándékos (nem tervezett) következmény. A DLX architektúra nem erőlteti az egyetlen órajelciklus alatti utasításvégrehajtást, így ez a probléma ebben az architektúrában egyszerűen nem létezik.
A DLX kialakításban egy modernebb megközelítést alkalmaznak a hosszabb végrehajtású utasítások kezelésére: az adat-előreengedést és utasítás-átrendezést. Ebben az esetben a tovább tartó utasítások „megrekednek”, várakoznak funkcionális egységeikben, és csak akkor lesznek visszahelyezve az utasításfolyamba, mikor időben befejeződhetnek. A kialakítás ilyen működése külsőleg úgy jelentkezik, mintha a processzor az utasításokat lineárisan hajtaná végre – a végeredmény megegyezik a soros végrehajtással.
A DLX utasítások három típusra oszthatók, R típusú, I típusú és J típusú utasításokra. Az R típusú utasítások tisztán regiszter típusú utasítások: ebben a formátumban a 32 bites utasításszó három regiszterhivatkozást tartalmaz. Az I típusú utasítások két regisztert határoznak meg és 16 biten egy közvetlen (immediate) értéket tárolnak. Végül a J típusú utasítások az ugró ill. elágazó utasításoknak vannak fenntartva: ezek egy 26 bites címet tartalmaznak.
Az opkódok (műveleti jelrész) 6 bit hosszúak, ezzel összesen 64 alaputasítás kódolható. Egy regiszter kódolásához 5 bit szükséges.
A DLX teljesítménye, a MIPS kialakításokhoz hasonlóan, az utasítás-futószalag alkalmazásán alapul. A DLX kialakításban a futószalag felépítése meglehetősen egyszerű, a „klasszikus” RISC elvet követi. A futószalag öt fokozatból áll:
működése: kiküldi a PC (programszámláló) értékét, és a memóriából kiolvassa az utasítást, amit az IR (Instruction Register) utasításregiszterbe tesz; a programszámláló értékét megnöveli 4-gyel, hogy az a soron következő utasítást címezze. Az IR tárolja a következő utasítást, amire szükség van a rákövetkező órajelciklusok alatt; ugyanígy az NPC regiszter tárolja a PC következő értékét.
működése: Az ALU az előző ciklusban előkészített operandusokon elvégzi a DLX utasítástípus által meghatározott műveletet, amely a következő négy funkció egyike: memóriahivatkozás, regiszter-regiszter ALU utasítás, regiszter-közvetlen érték ALU utasítás, elágazás.
Erre a fokozatra a modern terminológiában tárolóegységként is hivatkoznak. Feladata az eredmény beírása a regisztertárba, amely a memóriarendszerből vagy az ALU-ból érkezhet.
Ez a szócikk részben vagy egészben a DLX című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.