WDC 65C02
A Western Design Center WDC 65C02 jelű mikroprocesszora a népszerű NMOS-alapú MOS Technology 6502 8 bites CPU CMOS technológiával készült, feljavított változata – a CMOS terveket Bill Mensch, a MOS 6502 egyik eredeti tervezője, készítette 1981-ben a Western Design Centernél. Az első működő csipeket 1982 tavaszán szállították az Apple-nek.[1] Az eltelt idő alatt a 65C02-t több más cég is gyártotta, például a NCR, GTE, Rockwell, Synertek és Sanyo.
Bevezetés és jellemzők
[szerkesztés]A W65C02S jelű csip a 65C02 mikroprocesszor Western Design Center-nél készült változata. Az „S” jelölés a teljesen statikus magot jelöli, ami azt jelenti, hogy az elsődleges órajel (Ø2) tetszőlegesen lelassítható vagy akár teljesen meg is állítható akármelyik fázisban, és ezalatt a processzor teljes mértékben megőrzi az állapotát, tehát nem veszti el az adatait, és az órajel megindításával egyszerűen folytatja a működést. Tipikusan a CMOS technológiájú processzorok dinamikus maggal rendelkeznek és elvesztik a belső regisztereik tartalmát (ezért rendszerösszeomlás következik be), ha az órajel megszakad vagy a frekvencia kilép a meghatározott minimum és maximum értékek közül.
A WDC 65C02 regiszterei | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
A W65C02S egy kisfogyasztású általános célú 8 bites mikroprocesszor (8 bites regiszterek és adatsín), programszámlálója és címsíne 16 bites. Utasításkészlete változó hosszúságú utasításokat tartalmaz. A mag méretét a tervezéskor manuálisan optimalizálták, abból a célból, hogy a W65C02S könnyen alkalmazható legyen különféle egycsipes rendszerek (SoC) processzoraként.
A WDC Verilog hardverleíró modell segítságável lehetővé teszi a 65C02 mag beépítését alkalmazásspecifikus integrált áramkörökbe (ASIC) és FPGA áramkörökbe. A félvezetőgyártóktól megszokott módon, a cég fejlesztőrendszert is biztosít a processzorhoz, amelynek fejlesztőkártya, hardveremulátor (in-circuit emulator, ICE) és szoftverfejlesztő rendszer is része.
Általános logikai jellemzők
[szerkesztés]- 8 bites adatsín
- 16 bites címsín (64 KiB címezhető memória)
- 8 bites aritmetikai-logikai egység (ALU)
- 8 bites processzorregiszterek:
- 16 bites programszámláló
- 69 utasítás, 212 opkóddal megvalósítva
- 16 címzési mód, beleértve a nulla-lapos címzést is
Egyedi jellemzők
[szerkesztés]- A Vector Pull (VPB) kimenet jelzi a megszakításvektorok megcímzését (tehát ha egy vektort valamilyen utasítás éppen megcímez)
- A WAit-for-Interrupt (WAI) és SToP (STP) utasítások csökkentik a fogyasztást és a megszakítás-késleltetést és lehetővé teszik a szinkronizálást külső eseményekkel
Elektromos jellemzők
[szerkesztés]- Névleges tápfeszültség 1,71 V-tól 5,25 V-ig
- A mag áramfelvétele 0,15 és 1,5 mA per MHz, 1,89 V és 5,25 V feszültségen, rendre
- A változó hosszú utasításkészlet lehetővé teszi a kódméret optimalizálását (a fix hosszú utasításkészletekkel ellentétben), amelynek eredménye a fogyasztásban is jelentkezik
- A statikus logika lehetővé teszi az órajel megállítását, ami csökkenti a fogyasztást
A WDC 65C02 képes 1,8 és 5 volt (±5%) közötti tetszőleges feszültséggel működni, a különböző feszültségszinteket egy és ugyanaz a csipkialakítás biztosítja. A különböző feszültségekhez tartozó processzorparaméterek változását az adatlapok külön tartalmazzák, néhány jellemző feszültségszinttel illusztrálva azokat (1,8, 2,5, 3,0, 3,3, 5,0 V ±5%). A tipikus eszközök sebessége 18 MHz körül lehet 4V, és 6 MHz 1,8V feszültségen.
A csipek jelölésében a -14 utótag nem a szigorúan vett 14 MHz-es határt jelenti. A WDC6502 ehhez közeli óríajeleken is megfelelően működik, így pl. lehetséges 13,5 MHz (digitális SDTV luma mintavételezési frekvencia), 14,31818.. MHz (NTSC színvivőjel × 4), 14,75 MHz (PAL négyzetes pixeles), 14,7456 (baud rate kristály), 16 MHz és így tovább. A minimum VDD értékek a frekvenciával együtt nőnek.
Bill Mensch rámutatott, hogy az Fmax értéke csipen kívüli tényezőktől is függ, például a csatlakozók kapacitív terhelésétől. Rövid jelutak és kevesebb csatlakozó eszköz használatával csökkenthető a terhelés, ezéltal növelhető a Fmax frekvencia. A PLCC tokozásnak kisebb lábtól lábig kapacitanciája van, mint a DIP-40 tokozásnak.
Összehasonlítás a MOS 6502-vel
[szerkesztés]Utasításkészlet
[szerkesztés]A 65C02 osztozik elődjének 8 bites utasításkészlet-architektúráján és 16 bites, $0000-től $FFFF-ig címezhető memóriaterületén, amely összesen 64 KiB memória címzését teszi lehetővé. A „nullás lap” $0000-től $00FF-ig terjed. Az „egyes lap” címtere $0100-tól $01FF-ig terjed és a verem számára van fenntartva. A verem lefelé növekszik, a veremmutató kezdőértéke $01FF és csökken a verembe beíró utasításokkal, tehát a veremméret a kisebb címek felé növekszik.
Számos javítást és újabb dokumentált opkódot kapott, ezek közül a leghasznosabbak talán az X és Y indexregiszterek verembe írására és onnan való kivételére szolgáló utasítások. A nem definiált opkódokat ebben a processzorban NOP utasításokká alakították, bár ezek utasításhossza továbbra is változó.
Igen fontos, hogy a hibás „indirekt ugrás laphatár átlépésével” utasítást (JMP (<ADDR>), ahol az <ADDR> cím átlépi egy memórialap határát) kijavították, amivel megszűnt a figyelmetlen assembly programozók által folyamatosan elkövetett hibák egyik fő forrása. Ezt az utasítást tovább is fejlesztették az X indexregiszter használatával, ami már tömbindexelést is lehetővé tett, tehát a JMP (<ADDR>,X) utasítás használatával egyszerű ugrótáblákat lehet kialakítani és alkalmazni.
A 65C02 bizonyos változatai, például a WDC W65C02S és a Rockwell R65C00 család, egyedi bitkezelő utasításokkal is rendelkeznek (a RMB, SMB, BBR és BBS utasítások). A sorozat egyszerűsített 65SC02 tagjából ezek hiányoznak.
Állapotregiszter
[szerkesztés]A 65C02-ben javítottak a 6502 állapotregiszterrel kapcsolatos hibáján is. Az állapotregiszter 8 rendszerállapot jelzőbitet tartalmaz, egyesek aritmetikai vagy bitműveleti utasítások eredményét, mások program által beállított állapotokat jelölnek.
N | – | negatív eredmény |
V | – | előjelbit túlcsordulás |
1 | – | nem definiált (mindig beállítva) |
B | – | Break jelző (a BRK utasítás állítja) |
D | – | decimális mód engedélyezett |
I | – | IRQ tiltva |
Z | – | nulla eredmény (zérus) |
C | – | átvitelbit, aritmetikai utasítások eredményében |
A 6502 összes NMOS változatában a D jelzőbit nem kap határozott értéket a reset után, és szintén a feldolgozott megszakítások után sem, ami véletlenszerű viselkedéshez vezethet. Emiatt a 6502 programozók kénytelenek CLD utasítást tenni a reset-kezelő programrészekbe a végrehajtás szerint minél előrébb (ez általában a második végrehajtandó utasítás a SEI után), és ugyanígy a megszakításkezelő rutinok elejére is.
A 65C02 úgy oldja meg ezt a problémát, hogy a D jelzőbitet törli a reset folyamán vagy egy megszakítási kérelem elfogadásakor, miután az állapotregiszter el lett mentve a verembe.
Hasonlóan, az NMOS 6502-kben az N jelzőbit értéke hibás, mikor a processzor decimális üzemmódban működik. A 65C02 ezt a problémát is javítja (egy plusz órajelciklus árán), ám ezzel nagy mértékben növeli a decimális üzemmód használhatóságát.
A 65SC02
[szerkesztés]A 65SC02 a WDC 65C02 egy variánsa, hozzáadott utasításokkal rendelkezik. Ez volt az alapja a HuC6280 csipnek, amit a NEC épített a TG-16 (PC-Engine) videójáték-konzolaiba, és ez szolgált a 65CE02 alapjául, amely a MOS Technology 4510 mikrovezérlőbe épített CPU mag – a 4510-est a Commodore 65 számítógépben alkalmazták 1990-ben, de ennek csak prototípusai készültek, végül nem került piacra.[2]
A 6502, de a 65C02 is igen gyenge teljesítményt mutat a bitműveletek terén, ami rontotta a bitorientált tömörítési algoritmusok, pl. a Huffman-kódolás és hasonlók működését, emiatt a 65SC02 utasításkészletében újabb, hatékony bitműveleteket implementáltak (elágazás bitállapot szerint, bit beállítása/törlése, memóriabitek tesztelése és állítása/törlése akkumulátor szerint, relatív szubrutincímzés (BSR))[2]
A 65C02 jelentősebb alkalmazásai
[szerkesztés]Otthoni számítógépek
[szerkesztés]- Apple IIc: hordozható javított Apple II, az Apple Computer-től (1,023 MHz)
- Apple Enhanced IIe az Apple Computer-től (1,023 MHz)
- BBC Master otthoni/iskolai számítógép, Acorn Computers Ltd (2 MHz-es 65SC12, opcionális 4 MHz-es 65C102 második processzorral)
- Replica I, Briel Computers, Apple I replika hobbiszámítógép (1 MHz)
- Laser 128 sorozat, Apple II klón
Videójáték-konzolok
[szerkesztés]- Atari Lynx kézi játékkonzol (65SC02 kb. 4 MHz-en)
- NEC PC Engine más néven TurboGrafx (HuC6280 7,16 MHz-en)
- GameKing kézikonzolok (6 MHz), a Time Top cégtől
- Watara Supervision kézikonzolok (65SC02 4 MHz-en)
Más termékek
[szerkesztés]- TurboMaster gyorsító-bővítőkazetta a Commodore 64 otthoni számítógéphez (65C02 4,09 MHz-en)
- Több dedikált sakkszámítógép, pl.: Mephisto MMV, Novag Super Constellation, Fidelity Elite és más hasonló gépek (4–20 MHz)
A szovjet 4.К602ВМ1 (4.K602VM1) mikroprocesszor jellemzői
[szerkesztés]A 65С02 mikroprocesszor szovjet változata az 1980-as évek végén készült el a moszkvai Fizikai és Technológiai Tudományos Kutatóközpontban (Научно-исследовательский центр физики и технологии НИЦФТ / NICFT; НПО Физика) A processzor kiindulópontjául a Rockwell R65C02P2 modell szolgált. A 4.К602ВМ1 jelű mikroprocesszort katonai beágyazott rendszerekben használták fel; ez a processzor az ún. 5-ös minőségi kategóriában készült, ami a hadiipari felhasználású termékek és alkatrészek osztályát jelenti; a −60…+125 °C hőmérsékleti tartományban működik, órajele max. 1 MHz. Ennek általános ipari célú változata a 0…+70 °C hőmérsékleti tartományban 2 MHz-ig terjedő órajellel működhet. A NICFT intézetben alkalmazott gyártási technológia egy érdekes sajátossága, hogy lehetővé teszi a nagyobb feszültségen való üzemeltetést, ami ennél a processzornál elérhette akár a 18 voltot is. Ezáltal a processzor jelentős „túlhajtást” képes megbízhatóan elviselni, így pl. 15 voltos feszültségen stabilan működik 5 MHz-es órajelen.
Jegyzetek
[szerkesztés]- ↑ Selby Bateman: The Brains Behind The Brains (angol nyelven). Compute!, 1986. [2013. május 1-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013) „When did you start work on the 65C02? Mensch: In 1981. We delivered the first chips to Apple in the spring of 1982. ...”
- ↑ a b Commodore Semiconductor Group CSG65CE02 Technical Reference. zimmers.net, 2009. augusztus 18. (Hozzáférés: 2013. június 21.)
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben a WDC 65C02 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.
Források
[szerkesztés]További információk
[szerkesztés]- W65C02S 8–bit Microprocessor – PDF adatlap a WDC 65xx.com weboldalán
- W65C02S 8-bit Microprocessor a WDC weboldalán
- The 6502/65C02/65C816 Instruction Set Decoded – Neil Parker Apple II oldala
- CPU World