MOS 6502
MOS 6502 on MOS Technologyn suunnittelema ja valmistama 8-bittinen mikrosuoritin, joka tuli markkinoille vuonna 1975. Se oli ilmestymishetkellään markkinoiden edullisin mikroprosessori ja saavutti siksi suuren suosion.
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 |
6502:aa ja sen sukulaispiirejä käyttivät 8-bittisissä malleissaan sellaiset tunnetut tietokone- ja pelikonsolivalmistajat kuin Apple, Atari, Commodore ja Nintendo (NES).
6502 on saanut vaikutteita Motorolan 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 suunnitteli Chuck Peddle halvemmaksi kilpailijaksi Motorola 6800:lle.[1] MOS 6502 oli nopeampi, halvempi (kymmenesosa Motorola 6800:n ja Intel 8080:n hinnasta) ja valmistusprosessi tuotti kymmenenkertaisesti toimivia mikropiirejä.[2] Tämän seurauksena myös muiden valmistajien oli laskettava hintoja, mikä auttoi henkilökohtaisten tietokoneiden ”vallankumouksessa”.[2] MOS 6502 oli käytössä lukuisissa mikrotietokoneissa kuten Apple I, Apple II, BBC Micro ja Commodore PET.[2] Vuonna 1977 julkaistun Atari 2600:n suosion johdosta Atari oli yksi suurimmista asiakkaista.[3]
Toinen merkittävä 6502-yhteensopivien suorittimien valmistaja on Western Design Center, joka valmistaa joitakin malleja vieläkin käyttöön sulautetuissa järjestelmissä: valmistusmäärät ovat satoja miljoonia vuosittain ja toimitusten kokonaismäärän arvioidaan oleva viiden ja kymmenen miljardin välillä.[4]
Ominaisuudet
muokkaaRekisterit
muokkaa6502:ssa on akkumulaattorirekisteri (A), kaksi indeksirekisteriä (X ja Y), prosessorin tilarekisteri (P), pino-osoitin (SP) ja ohjelmalaskuri (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]
Muuta
muokkaa6502-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 niiden operandi 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.
Bugit ja erikoiset ominaisuudet
muokkaaMOS 6502 NMOS -prosessoreiden eräs tunnetuimmista bugeista liittyy käskyyn jmp ($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.
Muunnokset ja johdannaiset
muokkaaSuorittimesta 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ä joissakin Commodore 64:n ja 128:n turbokorteissa (SuperCPU).
Muita versioita suorittimesta:
- Hudson Soft HuC6280 (PC Engine)
- Ricoh 2A03 (NES)
- Ricoh 5A22 (SNES)
Lähteet
muokkaa- ↑ Chuck Peddle computinghistory.org.uk. Viitattu 20.12.2019. (englanniksi)
- ↑ a b c Brian Santo: 25 Microchips That Shook the World spectrum.ieee.org. Viitattu 21.12.2019. (englanniksi)
- ↑ Tekla S. Perry & Paul Wallich: Inventing the Atari 2600 spectrum.ieee.org. 1.3.1983. Viitattu 4.9.2022. (englanniksi)
- ↑ Western Design Center (WDC) Home of 65xx Microprocessor Technology westerndesigncenter.com. Viitattu 21.12.2019. (englanniksi)
- ↑ https://www.masswerk.at/6502/6502_instruction_set.html
- ↑ a b c Ensimmäinen Skrolleri - Commodore 64:n Assembler; Skrolli, 2020 numero 1, ss. 79–
- ↑ C=lehti 1/88, Käyttäjärjestelmän salat, s. 26
- ↑ MOS Technology 6502 microprocessor family cpu-world.com. Viitattu 19.1.2020. (englanniksi)
- ↑ http://archive.6502.org/datasheets/mos_6510_mpu.pdf
Kirjallisuutta
muokkaa- Leventhal, Lance A: 6502 Assembly Language Programming. McGraw-Hill, 1979. ISBN 0-931988-27-6 Teoksen verkkoversio. (englanniksi)
- Eyes, David & Lichty, Ron: Programming the 65816 – Including the 6502, 65C02 and 65802. New York, USA: Prentice Hall Press, 1986. ISBN 0-89303-789-3 (englanniksi)
Aiheesta muualla
muokkaa- www.6502.org – 6502-aiheista materiaalia
- 6502 Instruction Set (englanniksi)