R4000

A Wikipédiából, a szabad enciklopédiából
(R4400 szócikkből átirányítva)
Toshiba gyártmányú R4000 mikroprocesszor
MIPS R4000 lapka fotója

Az R4000 a MIPS Computer Systems által fejlesztett 64 bites, RISC típusú mikroprocesszor, amely a MIPS III utasításkészlet-architektúrát (ISA) valósítja meg. Hivatalosan 1991. október 1-én jelentették be, egyike volt az első 64 bites mikroprocesszoroknak és ez volt az első MIPS III implementáció. Az 1990-es évek elején, mikor úgy látszott, hogy a RISC mikroprocesszorok leváltják a CISC mikroprocesszorokat, mint például az Intel i486, az R4000-et választották az Advanced Computing Environment (ACE) mikroprocesszorának, amely az 1990-es évek elején alakult, a következő generációs személyi számítógépek platformját, egy közös RISC platformot meghatározni és szabványosítani kívánó ipari konzorcium volt. Az ACE végül számos okból megbukott, de az R4000 sikeres maradt a munkaállomások és szerverek piacán.

Modellek[szerkesztés]

Az R4000-nek három eltérő konfigurációja létezik: az R4000PC, egy belépő szintű modell, másodlagos gyorsítótár-támogatás nélkül; az R4000SC, egy másodlagos gyorsítótárral rendelkező modell, de multiprocesszoros képesség nélkül; és az R4000MC, egy másodlagos gyorsítótárral és a többprocesszoros rendszerekhez szükséges gyorsítótár-koherencia protokollok támogatásával rendelkező modell.

Leírás[szerkesztés]

Az R4000 egy skalár szuperfutószalagos mikroprocesszor, nyolc fokozatú fixpontos futószalaggal. Az első fokozatban (IF), egy utasításhoz egy virtuális cím generálódik és az utasítás translation lookaside buffer, címfordító gyorsítótár (TLB, címfordítási segédpuffer) megkezdi a cím fizikai címre való fordítását. A második szakaszban (IS), a fordítás befejeződik és az utasítás lekérésre kerül egy belső 8 KiB-os utasítás gyorsítótárból. Az utasítás gyorsítótár közvetlen leképezésű és virtually indexed, physically tagged. Sormérete 16 vagy 32 bájtos. Architekturálisan, 32 KiB-ra bővíthető.

A harmadik fokozatban (RF), az utasítás dekódolása és a regiszterfájl beolvasása történik. A MIPS III két regiszterfájlt definiál, egyet a fixpontos (integer), a másikat a lebegőpontos egységnek. Mindkét regiszterfájl 64 bit széles és 32 bejegyzést tartalmaz. A fixpontos regiszterfájlnak két olvasási kapuja és egy írási kapuja van, míg a lebegőpontos regiszterfájlnak két olvasási és két írási portja. A végrehajtás a negyedik fokozatban kezdődik (EX) mind az egész-, mind a lebegőpontos utasítások számára; és a végrehajtás befejeztével az eredmények visszaíródnak a regiszterfájlokba a nyolcadik fokozatban (WB). Az eredmények áthidalással továbbíthatók (bypass), ha az lehetséges.

Fixpontos végrehajtás[szerkesztés]

Az R4000 rendelkezik egy aritmetikai-logikai egységgel (ALU), léptető egységgel (shifter), szorzó- és osztóegységgel, valamint load alignerrel a fixpontos utasítások végrehajtásához. Az ALU futószalagos, és egy 64 bites átvitelkiválasztó összeadóból (carry-select adder) és egy logikai egységből áll. A léptető egy 32 bites barrel shifter (gyors léptetőregiszter). Ez a 64 bites eltolásokat két ciklus alatt hajtja végre, miáltal leállítja a futószalagot. Ezt a megoldást a csipterület csökkentése érdekében választották. A szorzó- és osztóegységek nem futószalagosak és jelentős késleltetési időkkel rendelkeznek: a szorzások késleltetése 10- vagy 20 ciklus 32 bites vagy 64 bites egészek esetén, míg az osztásoké 69- vagy 133 ciklus 32 bites vagy 64 bites egészek esetén. A legtöbb utasítás feldolgozási ideje egyetlen ciklus. A betöltések, tárolások és elágazások virtuális címeinek számítására szintén az ALU összeadóját használja a processzor.

A betöltő és tároló utasításokat a fixpontos futószalag hajtja végre, a lapkára integrált 8 KiB adat-gyorsítótárhoz történő hozzáféréssel.

Lebegőpontos végrehajtás[szerkesztés]

Az R4000 rendelkezik egy csipre integrált IEEE 754-1985 szabványnak megfelelő lebegőpontos egységgel (FPU), amelyre R4010-ként hivatkoznak. Az FPU a MIPS jelölésrendszer szerinti CP1 jelű koprocesszor[1] (a MIPS ISA négy koprocesszort definiált, CP0-tól CP3-ig). Az FPU két üzemmódban működhet, 32 vagy 64 bitesben, amit a CPU állapotregiszterében lévő FR bit beállításával lehet kiválasztani. 32 bites üzemmódban a 32 lebegőpontos regiszter 32 bit széles, mikor egyszeres pontosságú lebegőpontos számok tárolására használják őket. Kétszeres pontosságú számok tárolása esetén 16 lebegőpontos regiszter használható (a regiszterek párosítva vannak).

Az FPU képes az ALU-val párhuzamos működésre, kivéve, ha adat- vagy erőforrás-függőség áll fenn, ami várakoztatást okoz. Három alegységet tartalmaz: egy összeadót, egy szorzó- és egy osztóegységet. A szorzó és az osztó az összeadóval párhuzamosan is végre tud hajtani egy utasítást, de a végrehajtás utolsó szakaszában az összeadót használják, ami korlátozza az átfedő végrehajtást. Így, bizonyos feltételek mellett az FPU egyszerre akár három utasítást is végre tud hajtani, minden egységben egyet. Az FPU ciklusonként egy utasítás befejezésére / kiírására (retire) képes.

Az összeadó- és szorzóegységek futószalagosak. A szorzónak négy fokozatú szorzó futószalagja van. Ez a mikroprocesszor órajelének kétszeresével (az órajel fel- és lefutó éleivel) van meghajtva a megfelelő teljesítmény elérése érdekében, és dinamikus logikát használ a magas órajelfrekvencia eléréséhez. Az osztás késleltetése 23- vagy 36 ciklus egyszeres vagy kétszeres pontosságú műveletek esetén, a négyzetgyökvonás késleltetése pedig 54 vagy 112 ciklus. Az osztás és a négyzetgyökvonás SRT algoritmust használ.

Memóriakezelés[szerkesztés]

A memóriakezelő egység (MMU) egy 48 bejegyzésből álló címfordító gyorsítótárat (TLB, translation lookaside buffer) használ a virtuális címek fordításához. Az R4000 64 bites virtuális címet használ, de a 64 bitből csak 40 bitet valósít meg, ami 1 TiB virtuális memória használatát engedi meg. A fennmaradó biteken a címeknek 0-kat kell tartalmazniuk, ezt az egység ellenőrzi. Az R4000 36 bites fizikai címet használ, amivel 64 GiB fizikai memória címezhető.

Másodlagos gyorsítótár[szerkesztés]

Az R4000 (csak az SC és MC konfigurációkban) egy 128 KiB-tól 4 MiB-ig terjedő kapacitású külső másodlagos gyorsítótárat támogat. A gyorsítótár hozzáférése egy dedikált 128 bites adatsínen keresztül történik. A másodlagos gyorsítótár konfigurálható egységes gyorsítótárként vagy osztott utasítás- és adat-gyorsítótárként. Az utóbbi konfigurációban az egyes gyorsítótárak kapacitása 128 KiB-tól 2 MiB-ig terjedhet.[2] A másodlagos gyorsítótár fizikailag indexelt, fizikailag címkézett, sormérete programozható, ami 128, 256, 512 vagy 1024 bájt lehet. A gyorsítótár-vezérlő a lapkára integrált. A gyorsítótár szabványos statikus RAM-okból (SRAM) épül fel. Az adat és címke sínek hibajavító kóddal (ECC) védettek.

Rendszersín[szerkesztés]

Az R4000 egy SysAD sínnek nevezett 64 bites rendszersínt használ. A SysAD sín egy cím- és adatmultiplexelt sín, azaz ugyanazt a vezetékkészletet használta az adatok és címek átvitelére. Ez ugyan csökkenti a sávszélességet, de olcsóbb, mint egy különálló címsín alkalmazása, amely több tűt igényel, és növeli a rendszer összetettségét. A SysAD sín konfigurálható úgy, hogy a belső órajelfrekvencia felén, harmadán vagy negyedén működjön. A SysAD sín órajelét a működési frekvencia osztásával állítja elő.

Tranzisztorszám, lapkaméret és technológiai részletek[szerkesztés]

Az R4000 1,2 millió tranzisztort tartalmaz.[3] 1 μm-es két fémrétegű komplementer fém–oxid–félvezető (CMOS) eljáráshoz tervezték. Mivel a MIPS egy gyártókapacitás nélküli (fabless) vállalat volt, az R4000-et a partnerek saját eljárásaikkal gyártották, amelyekben a minimális csíkszélesség 0,8 μm lehetett.[4]

Órajel[szerkesztés]

Az R4000 a különböző órajeleket egy külsőleg generált mester (elsődleges) órajelből állítja elő. Az üzemi frekvenciához az R4000 a mester-órajelet kettővel szorozza egy lapkára épített fáziszárt hurok (phase-locked loop, PLL) segítségével.

Tokozás[szerkesztés]

Az R4000PC egy 179 tűs kerámia tűrácsos tömbben (CPGA) van tokozva. Az R4000SC és R4000MC 447 tűs kerámia lépcsőzetes tűrács-tömbbe (staggered pin grid array, SPGA) vannak tokozva. A R4000MC tűkiosztása eltér az R4000SC-étől, az R4000SC néhány nem használt érintkezőjét az R4000MC-ben a gyorsítótár-koherencia megvalósítására használták. A R4000PC tűkiosztása hasonló a PGA tokozású R4200 és R4600 mikroprocesszorokéhoz. Ez a tulajdonság lehetővé teszi, hogy egy megfelelően tervezett rendszer a három mikroprocesszor bármelyikét használhassa.

R4400[szerkesztés]

A Toshiba által gyártott R4400MC mikroprocesszor példány
NEC VR4400MC lapka képe

Az R4400 az R4000 továbbfejlesztése. 1992 november elején jelentették be. A mikroprocesszor mintáit már korábban szállították kiválasztott ügyfeleknek, és általánosan elérhetővé vált 1993 januárjában. Az R4400 100, 133, 150, 200, és 250 MHz-es órajeleken működik. Az egyetlen jelentős fejlesztés az R4000-hez képest abban állt, hogy a processzor nagyobb elsődleges gyorsítótárakat kapott, amelyek kapacitását megduplázták, így mindkettő 8 KiB-ról 16 KiB-ra nőtt. Ez a processzor 23 millió tranzisztort tartalmaz.

Az R4400-et az Integrated Device Technology (IDT), LSI Logic, NEC, Performance Semiconductor, Siemens AG és a Toshiba licencelte. Az IDT, NEC, Siemens és a Toshiba gyártotta és forgalmazta a mikroprocesszort. Az LSI Logic az R4400-et egyedi termékekben használta. A Performance Semiconductor logikai részlegét eladta a Cypress Semiconductor-nak, amely a MIPS mikroprocesszor termékek gyártását megszüntette.

A NEC a saját változatát VR4400 néven forgalmazta. Az első változatot, egy 150 MHz-es alkatrészt 1992 novemberében jelentették be. A korai változatokat 0,6 μm-es folyamattal gyártották.[5] 1995 közepén egy 250 MHz-es darab került a mintavételezés fázisba. Ezt 0,35 μm-es négy fémrétegű eljárással gyártották.[6] A NEC gyártotta továbbá az MR4401 jelű csipet, egy kerámia többcsipes modult (multi-chip module, MCM), amely egy VR4400SC-et tartalmazott, emellett tíz 1 Mbit-es SRAM csipet, ami egy 1 MiB-os másodlagos gyorsítótárat alkot. A többcsipes modul lábkompatibilis volt az R4x00PC processzorral. Az első verziót, egy 150 MHz-es alkatrészt, 1994-ben jelentették be. 1995-ben egy 200 MHz-es eszközt jelentettek be.

A Toshiba a saját változatát TC86R4400 néven hozta forgalomba. Egy 200 MHz-es, 2,3 millió tranzisztort tartalmazó, 134 mm² méretű, 0,3 μm-es folyamattal gyártott egységet mutattak be 1994 közepén. Az R4400PC ára 1600 dollár, az R4400SC-é 1950 dollár, az R4400MC ára pedig 2150 dollár volt 10 000 darabos mennyiség mellett.[7]

Használat[szerkesztés]

Az R4400-as processzort az alábbi eszközökben használják:

Lapkakészletek[szerkesztés]

Az R4000 és R4400 mikroprocesszorokat egyedi ASIC-ek vagy kereskedelmi forgalomban kapható csipkészletek segítségével csatlakoztatták a rendszerhez. A rendszerszállítók, mint például az SGI, saját ASIC-eket fejlesztettek ki rendszereikhez. A kereskedelmi chipkészleteket olyan vállalatok fejlesztették ki, gyártották és forgalmazták, mint például a Toshiba a Tiger Shark csipkészletével, ami i486-kompatibilis sínt biztosított.[13]

Jegyzetek[szerkesztés]

  1. MIPS R4000 Microprocessor User's Manual, Second Edition, p. 152
  2. Heinrich, "MIPS R4000 Microprocessor User's Manual", p. 248
  3. Mirapuri, "The Mips R4000 Processor", p. 10
  4. Mirapuri, "The Mips R4000 Processor", p. 21
  5. "NEC VR4400 Clock-Doubling RISC Has 2m Transistors"
  6. "NEC Ready With 250MHz Version Of The 64-Bit MIPS R4400 RISC"
  7. "Toshiba Has 200MHz MIPS R4400"
  8. "...And From Carrera Computers"
  9. "Concurrent Multiprocessors Feature New Bus Architecture"
  10. "MIPS R-Based Windows NT Personal Computers From Deskstation..."
  11. "NEC Goes After The Business Market With Its Latest Line Of RISC UNIX Workstations"
  12. "Pyramid Technology Aims To Crash The Mainframe With Nile Series"
  13. "Toshiba Samples 80486-Bus Chip Set For R-Series".

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben a R4000 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.

További információk[szerkesztés]