Nem meglepő módon a Sega ismét a Hitachit választotta a CPU kifejlesztésére. Ha már olvastad az előző cikket a Sega Saturn-ról, akkor, láss csodát, íme az SH processzor következő generációja: az SH-4 ami döbbenetes 200 MHz sebességen futott.. Szóval, mi is olyan érdekes ebben a CPU-ban?
- 5 lépcsős futószalag: akár öt utasítás is lehetett folyamatban egyszerre (részletesebb magyarázat található az előző cikkben).
- Az utasítás-futószalagok ennek a generációnak minden játékkonzoljában megtalálhatóak voltak, és innentől kezdve ez mindegyik új generációnak az alapja lett.
- 2 utas szuperskalár architektúra: A párhuzamos feldolgozás új formája, ahol a CPU egynél több utasítást (ebben az esetben kettőt) képes feldolgozni a futószalag minden egyes szakaszában, ami több utasítás másodpercenkénti végrehajtását eredményezi.
- Dedikált Floating-Point Unit (Lebegőpontos egység) vagy 'FPU': 32 bites (lebegőpontos) és 64 bites ( duplapontosságú) számítások elvégzésre alkalmas.
- 8 KB utasítás gyorsítótár és 16 KB adat gyorsítótár: A két gyorsítótár közötti arány meglehetősen érdekes, mert a játékkonzolok általában nagyobb utasítás gyorsítótárat szoktak használni, mint adat gyorsítótárat. Ám az SH-4 lehetővét tette, hogy az adat gyorsítótárat két egyenlő részre bontsák: így lehet 8 KB Scratchpad (gyors memória) és 8 KB adatgyorsítótár.
- 32 bites belső felépítés: miközben megtartották a 16 bites utasításkészletet (a SuperH ISA-t): Ahogy az SH-2-nél is, ez növelte a kódsűrűséget és csökkentette az adatbuszok terhelését, miközben a 32 bites felépítés minden előnye megmaradt.
- Külső 64 bites busz: Elengedhetetlen a 64 bites értékek (pl.: a hosszú és duplahosszú egészek) számításaihoz felesleges CPU órajelciklusok elégetése nélkül.
Extra meló
A játékkonzolok CPU-jának általános feladatai közé tartozik a játék logikájának kezelése, az ellenséget vezérlő MI futtatása és a GPU utasításokkal való ellátása. A Dreamcastban az SH-4 a grafikus futószalag nagy részében is szerepet kap, így a geometriai adatok feldolgozásában, például a perspektíva-transzformációk kiszámításában. Ennek eredményeként tartalmaz egy 128 bites SIMD egységet, amely képes a vektorműveleteket gyorsítani.
A memória elérés gyorsítása
A CPU tartalmaz egy dedikált Memory Management Unit (Memória Kezelő Egységet) vagy 'MMU' egységet a virtuális címzéshez, ami azért hasznos, mert a CPU fizikai memória címtartománya 29 bit széles. Így négy TLB segítségével a programozók 32 bites címeket használhattak anélkül, hogy a teljesítmény csökkent volna.
Mivel csak 29 bitre volt szükség a címzésekhez, az fennmaradó három bit vezérelte a memóriavédelmet, a memória térkép váltását és a gyorsítótár kikerülését .
Csak a programozón múlt, hogy használja ezeket a funkciókat vagy nem. Az erre a rendszerre szánt játékokhoz nem feltétlenül volt szükséges a memóriavédelem, és az MMU-t manuálisan kellett engedélyezni a rendszerindításkor.
Nem UMA, de...
Bár ezt a rendszert nem a szigorú Unified Memory Architcture (Egységes Memória Felépítés) szerint tervezték, mint egy jól ismert versenytársát, ettől függetlenül lehetővé teszi a GPU I/O elérést. Ez azt jelenti, hogy ha a CPU-nak olyan adatra volt szüksége, ami a dedikált memórián vagy a soros interfészen (ami szintén csatlakoztatva lehetett) kívül volt, akkor a GPU-t kellett megkérnie, és várnia is szükség esetén.
Különleges kérések
Ennek a CPU-nak volt egy egyedi funkciója is, amit Parallel I/O (Párhuzamos I/O)-nak vagy 'PIO'-nak hívtak, és ami egyszerre több I/O címet tudott módosítani. A Sega úgy kötötte be ezeket, hogy a CPU a GPU videó módját tudta ezzel állítani (részletesen később foglalkozunk ezzel).