MOS 6502 | |
---|---|
Perustietoja | |
Kehittäjä | MOS Technology |
Valmistaja | MOS Technology,Western Design Center,Ricoh |
Julkaistu | 1975 |
Arkkitehtuuri ja luokitus | |
Osoiteavaruus | 16-bittinen |
Tavujärjestys | little endian |
Fyysiset ominaisuudet | |
Ytimiä | 1 |
Suoritinkanta | 40-pinninen DIP |
Infobox OK |
MOS 6502 onMOS Technologyn suunnittelema ja valmistama 8-bittinenmikrosuoritin, joka tuli markkinoille vuonna 1975. Se oli ilmestymishetkellään markkinoiden edullisin mikroprosessori ja saavutti siksi suuren suosion.
6502:aa ja sen sukulaispiirejä käyttivät 8-bittisissä malleissaan sellaiset tunnetuttietokone- japelikonsolivalmistajat kuinApple,Atari,Commodore jaNintendo (NES).
6502 on saanut vaikutteitaMotorolan 8-bittisestä6800-suorittimesta, jota vastaan se myös kilpaili. Kummallekin yhteistä on muun muassa yksinkertainen rakenne ja rekisterien vähäinen määrä.
Suorittimen suunnitteliChuck Peddle halvemmaksi kilpailijaksi Motorola 6800:lle.[1]MOS 6502 oli nopeampi, halvempi (kymmenesosa Motorola 6800:n jaIntel 8080:n hinnasta) ja valmistusprosessi tuotti kymmenenkertaisesti toimivia mikropiirejä.[2] Tämän seurauksena myös muiden valmistajien oli laskettava hintoja, mikä auttoihenkilökohtaisten tietokoneiden ”vallankumouksessa”.[2]MOS 6502 oli käytössä lukuisissamikrotietokoneissa kutenApple I,Apple II,BBC Micro jaCommodore PET.[2] Vuonna 1977 julkaistunAtari 2600:n suosion johdosta Atari oli yksi suurimmista asiakkaista.[3]
Toinen merkittävä 6502-yhteensopivien suorittimien valmistaja onWestern Design Center, joka valmistaa joitakin malleja vieläkin käyttöönsulautetuissa järjestelmissä: valmistusmäärät ovat satoja miljoonia vuosittain ja toimitusten kokonaismäärän arvioidaan oleva viiden ja kymmenen miljardin välillä.[4]
6502:ssa on akkumulaattorirekisteri (A), kaksi indeksirekisteriä (X ja Y), prosessorin tilarekisteri (P),pino-osoitin (SP) jaohjelmalaskuri (PC). Ohjelmalaskuri on 16-bittinen ja muut 8-bittisiä.[5]
6510-suorittimeen (esim. Commodore 64:ssä käytetty) on lisätty kaksi rekisteriä. Nämä näkyvät muistipaikoissa $00 ja $01, joita ei voi käyttää RAM-muistina.[6]
6502-suorittimessa on myös pino. Se on sijoitettu muistiosoitteisiin $0100–$01FF. Suoritin käyttää pinoa omaan toimintaansa, esimerkiksi aliohjelmakutsuihin JSR- (jump to subroutine) ja RTS-käskyillä.[6]
6502:n käskyt ovat 1–3 tavua pitkiä ja niiden suorittaminen kestää 2–7 kellojaksoa.
Suorittimen erikoisuus on ns. nollasivu eli muistin ensimmäiset 256 tavua. Monet konekielikäskyt ovat lyhyempiä ja nopeampia, kun niidenoperandi on nollasivulla. Esimerkiksi muistin käsittely onnistuu yhden tavun mittaisella osoitteella 16-bittisen sijaan.[6]
Suorittimen reset-, IRQ- ja NMI-vektorit sijaitsevat muistiavaruuden lopussa.[7]Käynnistyessään ja uudelleenkäynnistyessään suoritin lukee ohjelmalaskurin arvon osoitteista $FFFC ja $FFFD ja suoritus alkaa tästä osoitteesta.
MOS 6502 NMOS -prosessoreiden eräs tunnetuimmista bugeista liittyy käskyynjmp ($xxFF)
. Sitä suoritettaessa prosessori lataa ensin vähemmän merkitsevän tavun osoitteesta $xxFF, mutta enemmän merkitsevä tavu ladataankin osoitteesta $xx00 osoitteen $xxFF+1 sijaan.
Suorittimesta on valmistettu useita muunnoksia ja johdannaisia sekä samaa suoritinta ovat valmistaneet lisenssillä useat muut yritykset.[8]
MOS valmisti useita 6502-yhteensopivia suorittimia, kuten 6501, 6507, 6510, 6512, 7501, 8501, 8502 ja 8510. Näiden ajama konekieli on suurelta osin identtistä jopa dokumentoimattomien käskyjen ja bugien osalta. Esimerkiksi 6510:n merkittäviä eroja ovat kaksisuuntainen I/O-väylä ja mahdollisuus asettaa osoiteväylä korkeaimpedanssiseen tilaan.[9]
Western Design Centerin (WDC) valmistamiin 6502-malleihin kuuluvat muun muassa 65C02 ja 65816.
WDC 65816 on 16-bittinen 6502-yhteensopiva suoritin, jota käytetään muun muassa viimeisissäApple II:n malleissa,Super Nintendo Entertainment System -pelikonsolissa sekä joissakinCommodore 64:n ja128:n turbokorteissa (SuperCPU).
Muita versioita suorittimesta: