MOS Technology 6502

MOS Technology 6502 er en 8-bit mikroprocessor designet under ledelse af ingeniør Chuck Peddle for halvleder-fabrikanten MOS Technology: Den blev lanceret i 1975 til en sjettedel af prisen for tilsvarende, komplette mikroprocessorer fra Intel og Motorola, og var endda hurtigere end konkurrenternes produkter. Sammen med Z80-processoren var 6502 med til at starte 1980'ernes hjemmecomputer-revolution af små, billige computere til hjemmebrug.

Historie redigér

 
6502A-processor i 40-ben DIL-"hus".

Chuck Peddle og det meste af holdet bag 6502 arbejdede oprindeligt for Motorola med at udvikle mikroprocessoren Motorola 6800. De mente at kunne forbedre 6800'erens design væsentligt, men formåede ikke at overbevise Motorolas ledelse om deres ledelse. I protest sagde det meste af gruppen op, og blev i stedet ansat hos MOS Technology. Her udviklede de på kort tid en mikroprocessor med typenummeret 6501: Selv om denne processor indvendigt var vidt forskellig fra Motorolas 6800-processor, var de ydre tilslutninger ordnet på samme måde som hos 6800'eren. Det havde den fordel at man kunne "bygge" et computersystem omkring 6501'eren ved ganske enkelt at sætte den i et computersystem der egentlig var designet omkring Motorolas 6800.

Motorola lagde sag an, hvilket endte med et forlig hvorunder MOS Technology blandt andet afstod fra at fremstille flere 6501'ere. MOS' modtræk var den nu legendariske 6502, hvis ydre tilslutninger ikke passede til 6800-baserede computere — Motorola protesterede ikke over 6502'eren.

Anvendelser redigér

Efter retssagen med Motorola stod MOS i den situation at der pludselig ikke eksisterede noget computersystem der umiddelbart kunne bruge 6502'eren, så Chuck Peddle gik i gang med at designe en "demonstrations-computer" ud fra 6502 og nogle andre integrerede kredsløb. Resultatet, kaldet KIM-1, var oprindeligt tiltænkt ingeniører, som på KIM-1 kunne afprøve og eksperimentere med programmer og hardware baseret på 6502 inden de anvender komponenten i det endelige design af et apparat. Det viste sig dog hurtigt, at mange KIM-1-computere blev købt af elektronik-hobbyfolk og andre entusiaster. Andre tilsvarende, minimalistiske computersystemer som AIM-65 og SYM-1 havde også succes på hobbymarkedet, og hermed var grundlaget lagt for det "mylder" af små hjemmecomputere og spillekonsoller der kom på markedet i 1980'erne.

Teknisk beskrivelse redigér

MOS Technology 6502 er en 8-bit processor med 16-bit adressebus. Både systembussen og processorens indre logik arbejder ved den samme, relativt lave taktfrekvens (typisk omkring 1 eller 2 MHz). Men til trods for den forholdsvis lave frekvens (sammenlignet med samtidige processorer) kan 6502 snildt hamle op med tilsvarende processorer med højere taktfrekvens med henblik på at "få arbejdet fra hånden", primært takket være et simpelt sekvensnetværk baseret på kombinatorisk logik. Den lave taktfrekvens gav også en anden fordel i og med at 6502 dermed kunne fungere sammen med relativt langsomt arbejdende (og derfor billige) RAM-kredse — en ikke uvæsentlig faktor i særligt prisfølsomme markeder som spillekonsoller.

6502 har temmelig få interne registre; et træk den har til fælles med Motorola 6800 (På den tid hvor disse processorer blev udviklet, eksisterede der allerede små og relativt hurtige bipolare huskekredsløb, så filosofien var at der ikke er grund til at spilde den dyrebare plads på selve processorens NMOS-chip når man kunne "opbevare" sådanne registre i de prisbillige, eksterne huskekredse). 6502'eren rådede internt over et akkumulator-registre, to såkaldte indeksregistre kaldet X og Y, et statusregister, en programtæller og et indeksregister for en ekstern stak.

Til gengæld for de få registre råder 6502 over en særlig adresseringsform, kaldet "indirekte indekseret", som gør at de første 256 bytes i den eksterne hukommelse kan bruges som adresseregistre, indeksregistre, generelle registre osv., og tilsvarende er processorens stak for subrutine-kald henlagt til de næste 256 bytes i den eksterne hukommelse.

Interrupt-systemet i 6502 er også forholdsvis minimalistisk: Der findes to slags interrupts; "almindelig" IRQ (for Interrupt Request) som kunne "fravælges" af programkoden, samt NMI, eller Non-maskable interrupt, som ikke (officielt) kunne fravælges af programmet. Mens IRQ er niveaufølsom, reagerer NMI på en flanke (et "skift") i signalet, så hvis de to slags interrupt indtræffer samtidig, reagerer processoren først på NMI. Og hvis IRQ-signalet stadig er aktiv når processoren er færdig med den rutine der håndterer NMI, bliver IRQ-rutinen efterfølgende udført. På den måde havde systemet et simpelt prioriteringssystem for samtidige interrupts.