MOS 6502: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Corretto parametro
m clean up
 
(12 versioni intermedie di 10 utenti non mostrate)
Riga 47:
}}
 
Il '''MOS 6502''' è un [[microprocessore]] a [[8 bit]] presentato da [[MOS Technology]] nel settembre del [[1975]].
 
Assieme allo [[Zilog Z80]] del luglio 1976 venne usato in molti prodotti commercializzati tra la fine degli [[anni 1970|anni settanta]] e gli [[anni 1980|anni ottanta]], come [[videogioco arcade|giochi arcade]] e [[console (videogiochi)|console domestiche]], [[personal computer|personal]] ed [[home computer]], quali l'[[Apple II]] ed il [[Commodore VIC-20]].<ref name="longley">{{cita|Longley, Shain|p. 147|longley}}.{{Citazione|Fino a poco tempo fa le macchine ad 8 bit furono dominate da 2 microprocessori: lo Z80 ed il 6502.||Until recently 8 bit machines were dominated by two microprocessors — the Z80 and the 6502|lingua=en}}</ref> Venne prodotto su licenza da molte ditte, fra cui [[Rockwell International]] e [[Synertek]]. Dal MOS 6502 derivano diversi processori, tra cui si annoverano il [[MOS 6507]], usato nella console [[Atari 2600]], il [[MOS 6509]], usato nella linea di computer [[Commodore CBM]], ed il [[MOS 6510]], utilizzato come CPU del [[Commodore 64]].<ref>{{cita web|url=http://www.cpu-collection.de/?l0=co&l1=MOS&l2=6510|titolo=MOS 6510|editore=cpu-collection.de|accesso=24 settembre 2015}}{{citazione|Il MOS 6510 è un 6502 con una porta I/O a 6 bit aggiuntiva. (…) Il 6510 che era incluso nel C64 lavorava a 1 MHz (…)|Cpu-collection.de|The MOS6510 is a 6502 with an additional 6 Bit bidirectional I/O Port. (…) The 6510 that was built in the C64 ran at 1 Mhz (…)|lingua=en}}</ref><ref>{{cita testo|editore=Commodore Semiconductor Group|titolo=Scheda tecnica del MOS 6510|accesso=24 settembre 2015}}{{citazione|L'architettura interna del processore è identica a quella del Commodore Semiconductor Group 6502 per garantire la compatibilità software.|Commodore Semiconductor Group|The internal processor architecture is identical to the Commodore Semiconductor Group 6502 to provide software compatibility.|lingua=en}}</ref>
 
==Storia==
===Le origini e il progetto in Motorola===
[[File:BreakNES MOS 6502.jpg|thumb|left|Il [[Die (elettronica)|Die]] del MOS 6502.]]
Il [[circuito integrato|chip]] fu progettato dallo stesso gruppo che aveva sviluppato il [[MOS 6501]] e che comprendeva diversi degli ingegneri che avevano lavorato dal 1971 sul [[Motorola 6800]], tra cui [[Chuck Peddle]] e [[Bill Mensch]], usciti in massa da [[Motorola]] nel [[1974]].<ref name="Bagnall 2006">{{Cita libro | cognome = Bagnall | nome = Brian | titolo = On the Edge: The Spectacular Rise And Fall of Commodore | editore = Variant Press | anno = 2006 |città= Winnipeg, Manitoba | pagine pp= 9–129-12 | capitolo=1 e 2 | isbn = 0-9738649-0-7 }}</ref>
 
Peddle aveva promosso commercialmente il 6800 ed aveva visitato molti potenziali clienti per presentare il microprocessore, pensato per un impiego in sistemi embedded. Nonostante le favorevoli impressioni, il processore non vendeva come previsto perché il prezzo di lancio di 360$ era considerato eccessivamente alto: molti clienti consideravano equo un prezzo di $ 25 a chip. Peddle propose perciò a Motorola di sviluppare una versione depotenziata del 6800 da poter vendere a quel prezzo, ma la dirigenza non accolse il suo suggerimento.<ref>{{cita web|url=http://www.computerhistory.org/collections/accession/102702020|titolo= Motorola 6800 Oral History |anno=2008|p= 18|editore=ComputerHistory.org|accesso=7 febbraio 2011|urlarchivio=https://web.archive.org/web/20120402231428/http://www.computerhistory.org/collections/accession/102702020|dataarchivio=2 aprile 2012|urlmorto=sì}}</ref><ref name="Matthews">{{cita web|autore=Ian Matthews|url=http://www.commodore.ca/history/company/mos/mos_technology.htm|titolo= The Rise of MOS Technology & The 6502 |data=26 giugno 2006|accesso=6 febbraio 2011|urlarchivio=https://web.archive.org/web/20181004202006/https://www.commodore.ca/history/company/mos/mos_technology.htm|dataarchivio=4 ottobre 2018|urlmorto=sì}}</ref><ref>{{cita pubblicazione|autore=Robert Sugarman|url=http://www.commodore.ca/gallery/magazines/misc/mos_605x_team_eetimes_august_1975.pdf|titolo= Does the Country Need A Good $20 Microprocessor? |rivista= Electronic Engineering Times |data=25 agosto 1975|p=25|accesso=6 febbraio 2011|urlarchivio=https://web.archive.org/web/20070203105724/http://www.commodore.ca/gallery/magazines/misc/mos_605x_team_eetimes_august_1975.pdf|dataarchivio=3 febbraio 2007|urlmorto=sì}}</ref>
 
Nonostante il disinteresse dei vertici societari, Peddle iniziò per proprio conto a lavorare a quell'idea. Il nuovo processore era simile al 6800: come questo usava pochi [[Registro (informatica)|registri]] ma aveva un solo [[Accumulatore (informatica)|accumulatore]] (il 6800 ne aveva 2: registri A e B). Rispetto al 6800, il 6502 introduceva diversi nuovi modi di indirizzamento, permettendo di utilizzare i suoi registri indice e lo stack in maniera molto efficiente: ad esempio, con lo stack era possibile accedere alle celle di memoria poste nell'intervallo di indirizzo 256-511 (esadecimale: $100-$1FF), mentre alcune istruzioni potevano accedere direttamente alle celle di memoria nell'intervallo 0-255 (esadecimale: $00-$FF), la cosiddetta "''pagina zero''", utilizzando 1 solo byte come indirizzo.<ref>{{cita web|url=http://www.cpushack.com/CPU/cpu1.html|titolo=Section One: Before the Great Dark Cloud - Part V: The 650x, Another Direction (1975)…|editore=CPU Shack|accesso=25 settembre 2015|lingua=en}}{{citazione|A differenza dell'[Intel]8080 e dei chip simili, il 6502 (ed il 6800) aveva molti pochi registri. Era un processore ad 8 bit, con un bus indirizzi a 16 bit. Al suo interno c'era un registro per i dati ad 8 bit, 2 registri indice ad 8 bit ed un puntatore allo stack ad 8 bit (lo stack era preimpostato dall'indirizzo 256 (esad. $100) a 511 ($1FF)). Usava questi registri indice e lo stack efficacemente, con più modalità di indirizzamento, inclusa una modalità pagina zero che accedeva gli [[indirizzi di memoria]] da 0 a 255 ($FF) con un indirizzo ad 8 bit che velocizzava le operazioni (non doveva caricare un secondo byte per l'indirizzo).|CPU Shack|Unlike the 8080 and its kind, the 6502 (and 6800) had very few registers. It was an 8 bit processor, with 16 bit address bus. Inside was one 8 bit data register, two 8 bit index registers, and an 8 bit stack pointer (stack was preset from address 256 ($100 hex) to 511 ($1FF)). It used these index and stack registers effectively, with more addressing modes, including a fast zero-page mode that accessed memory addresses from address 0 to 255 ($FF) with an 8-bit address that speeded operations (it didn't have to fetch a second byte for the address). |lingua=en}}</ref> Il nuovo chip era inoltre capace di eseguire calcoli in aritmetica [[Binary-coded decimal|BCD]] (''Binary-coded decimal'')<ref name=bcd>{{cita web|url=http://www.6502.org/tutorials/decimal_mode.html|titolo=Decimal Mode|editore=6502.org|accesso=25 settembre 2015|lingua=en}}</ref> ed aveva un generatore di [[clock]] interno.<ref name=datasheet>{{cita articolonews|editore=Commodore Semiconductor Group|titolo=6500 microprocessors|accesso=25 settembre 2015|lingua=en}}</ref>
 
Nonostante la disapprovazione dei vertici di Motorola, il gruppo guidato da Peddle continuava a lavorare sul progetto, cominciando a maturare nel contempo malcontento per l'assenza di supporto che ricevevano. Alla fine, la dirigenza decise di fermare lo sviluppo del nuovo chip: come risposta, Peddle e molti dei suoi colleghi lasciarono Motorola alla ricerca di una società che fosse stata interessata a produrre tale chip.<ref name=Matthews/>
Riga 67:
Peddle ed il suo gruppo terminarono lo sviluppo della loro idea che prese corpo in 2 nuovi microprocessori che erano compatibili con i chip periferici di Motorola: il [[MOS 6501]], progettato da Rod Orgill, che poteva essere inserito negli zoccoli del 6800 perché compatibile a livello di [[piedinatura]] con quest'ultimo, ed il MOS 6502, progettato da Bill Mensch, simile al precedente ma con una piedinatura differente ed un circuito generatore di clock integrato. Questi chip non potevano eseguire i programmi scritti per il 6800 perché avevano un'architettura ed un insieme di istruzioni differenti.
 
I nuovi processori furono largamente pubblicizzati su diverse riviste del settore: un annuncio apparve sul numero di luglio di ''Electronics''<ref name="Electronics July 24 1975">{{Cita pubblicazione | titolo = Microprocessor line offers 4, 8,16 bits | rivista = Electronics | volume = 48 | numero = 15 | p = 118 | editore = McGraw-Hill |città= New York | data = 24 luglio 1975}}</ref>, un altro su quello di agosto di ''EE Times'',<ref name="6502 EE Times 1975">{{Cita pubblicazione | cognome = Sugarman | nome = Robert | titolo = Does the Country Need A Good $20 Microprocessor? | rivista = EE Times | p = 25 | editore = CMP Publications | città = Manhasset, New York | data = 25 agosto 1975 | url = http://www.commodore.ca/gallery/magazines/misc/mos_605x_team_eetimes_august_1975.pdf | accesso = 6 febbraio 2011 | urlarchivio = https://web.archive.org/web/20070203105724/http://www.commodore.ca/gallery/magazines/misc/mos_605x_team_eetimes_august_1975.pdf | dataarchivio = 3 febbraio 2007 | urlmorto = sì }}</ref>; seguirono poi altri annunci su ''EDN'' (20/09/1975), ''Electronic News'' (03/11/1975) e ''Byte'' (novembre 1975). Annunci del 6501 apparvero in diverse pubblicazioni durante il mese di agosto del 1975: MOS Technology annunciava la presentazione del chip alla fiera dell'elettronica WESCON di [[San Francisco]], che si sarebbe tenuta dal 16 al 19 settembre del 1975, dove sarebbe stato possibile acquistare il microprocessore a $ 25.<ref name="Electronics Aug 7 1975">{{Cita pubblicazione | titolo = MOS 6501 Microprocessor beats 'em all | rivista = Electronics | volume = 48 | numero = 16 | pp = 60–6160-61 | editore = McGraw-Hill |città= New York | data = 7 agosto 1975}}</ref> Nel mese di settembre gli annunci riguardavano anche il 6502, che veniva annunciato disponibile sempre durante il WESCON a $ 25 mentre il 6501 veniva riprezzato a $ 20.<ref name="commons.wikimedia.org" />
 
===La presentazione del 6502===
[[File:MOS 6501 6502 Ad Sept 1975.jpg|thumb|Pubblicità dei MOS 6501 e 6502.]]
 
Al WESCON il 6502 fu prezzato a $ 25. MOS Technology aveva uno stand con un grosso contenitore pieno di chip. Dato che non era riuscita a portare un numero sufficiente di esemplari funzionanti, decise di riempire il contenitore con i chip difettosi e mettere quelli funzionanti in cima, dando così l'impressione che i propri stabilimenti fossero già in grado di reggere una produzione in quantitativi industriali.<ref name="Bagnall">{{cita libro|autore=Brian Bagnall|titolo= On the Edge: The Spectacular Rise and Fall of Commodore |editore=Variant Press|anno=2005|p=24}}</ref> Nella stessa fiera il 6800 e l'[[Intel 8080]] erano in vendita a $ 179.<ref name="James Ad">{{cita pubblicazione | autore = James | titolo = James Advertisement | rivista = Popular Electronics | volume = 8 | numero = 3 | p = 107 | data = settembre 1975}}{{Citazione|James è adesso Jameco Electronics. La CPU 8080 era a $ 149,95, la CPU 8008 era a $ 29,95. Un chip di RAM statica 2102 da 1 Kbit era a $ 4,95. Il loro prezzo per l'8080A era $ 37,95 nel numero di giugno del 1976.||James is now Jameco Electronics. The 8080 CPU was $149.95, the 8008 CPU was 29.95. A 2102 1K bit static RAM was $4.95. Their price for a 8080A CPU was 37.95 in the June 1976 issue.|lingua=en}}</ref> Il MOS 6502 fu, messo in vendita, ad un prezzo di 25 dollari,<ref name="commons.wikimedia.org">{{Cita pubblicazione | titolo = MOS 6502 the second of a low cost high performance microprocessor family | rivista = Computer | volume = 8 | numero = 9 | pp = 38–3938-39 | editore = IEEE Computer Society | data = settembre 1975 | url = https://commons.m.wikimedia.org/wiki/File:MOS_6501_6502_Ad_Sept_1975.jpg |doi= 10.1109/C-M.1975.219074 }}</ref> era la più economica [[CPU]] disponibile sul mercato, costando meno di un sesto dei modelli concorrenti: ad esempio, il [[Motorola 6800]] era venduto a $ 175.<ref>{{Cita pubblicazione | autore = Motorola | titolo = All this and unbundled $69 microprocessor | rivista = Electronics | volume = 48 | numero = 22 | p = 11 | editore = McGraw-Hill | data = 30 ottobre 1975 | url = https://commons.wikimedia.org/wiki/File:Motorola_MC6800_microprocessor_ad_1975.jpg }}</ref> allAll'inizio le persone pensarono che il prezzo del 6502 fosse sbagliato o ci fosse dietro un imbroglio ma durante lo svolgimento della fiera esse videro che sia Motorola che Intel abbassarono il prezzo dei loro chip a $ 69.<ref>{{Cita pubblicazione | autore = Motorola | titolo = All this and unbundled $69 microprocessor | rivista = Electronics | volume = 48 | numero = 22 | p = 11 | editore = McGraw-Hill | data = 30 ottobre 1975 | url = https://commons.wikimedia.org/wiki/File:Motorola_MC6800_microprocessor_ad_1975.jpg }}{{Citazione|Il prezzo per un singolo MC6800 fu ridotto da $ 179 a $ 69. Il precedente prezzo per quantitativi da 50 a 99 chip era di $ 125 cad.||The quantity one price for the MC6800 was reduced from $179 to $69. The previous price for 50 to 99 units was $125.|lingua=en}}</ref><ref name="Digi-Key Ad">{{cita pubblicazione | autore = Digi-Key | titolo = Pubblicità di Digi-Key | rivista = Popular Electronics | volume = 8 | numero = 6 | p = 124 |data = dicembre 1975}}{{Citazione|La CPU 8080A era a $ 69,50. Un chip di RAM statica 2102 da 1 Kbit era a $ 3,50. Il prezzo di Digi-Key per un 8080A era di $ 34,95 nel numero di giugno del 1976.||The 8080A CPU was $69.50. A 2102 1K bit static RAM was $3.50. Digi-Key's price for a 8080A was $34.95 in the June 1976 issue.|lingua=en}}</ref>
 
Questa riduzione dei prezzi legittimò il 6502, che cominciò ad essere venduto a centinaia di unità.<ref name=Bagnall />
 
=== La causa tra Motorola e MOS Technology ===
Dopo il WESCON MOS Technology fu [[atto di citazione|citata]] nel mese di novembre del 1975 da Motorola:<ref name="MD Dec 1975 6502 Law Suit">{{Cita pubblicazione | titolo = Motorola Sues MOS Technology | rivista = Microcomputer Digest | volume = 2 | numero = 6 | p = 11 | editore = Microcomputer Associates | città = Cupertino CA | data = dicembre 1975 | url = http://www.bitsavers.org/pdf/microcomputerAssociates/Microcomputer_Digest_v02n06_Dec75.pdf | urlmorto = sì | accesso = 6 febbraio 2011 | urlarchivio = https://web.archive.org/web/20090704150106/http://www.bitsavers.org/pdf/microcomputerAssociates/Microcomputer_Digest_v02n06_Dec75.pdf }}</ref> quest'ultima affermava infatti che i suoi 8 ex-dipendenti avevano utilizzato informazioni tecniche sviluppate presso i propri uffici per progettare i microprocessori 6501 e 6502. Ricevuta la citazione il finanziatore di MOS Technology, [[Allen-Bradley]], considerando anche che l'altro settore di interesse di MOS Technology, i chip per calcolatrici, non andava bene a causa di una guerra dei prezzi intentata da Texas Instruments contro gli altri produttori, decise di limitare le possibili perdite e cedette le proprie quote ai fondatori della società.<ref name="Bagnall 2006"/>
 
La causa si risolse nel mese di maggio del [[1976]] con MOS Technology che decise di eliminare il chip 6501 che poteva essere montato negli zoccoli del 6800 e di acquistare le licenze dei chip periferici di Motorola.<ref name="MD May 1976 6501 dropped">{{Cita pubblicazione | titolo = MOS Technology Drops 6501 | rivista = Microcomputer Digest | volume = 2 | numero = 11 | p = 4 | editore = Microcomputer Associates | città = Cupertino CA | data = maggio 1976 | url = http://www.bitsavers.org/pdf/microcomputerAssociates/Microcomputer_Digest_v02n11_May76.pdf | accesso = 18 gennaio 2011 | dataarchivio = 8 gennaio 2011 | urlarchivio = https://web.archive.org/web/20110108174135/http://www.bitsavers.org/pdf/microcomputerAssociates/Microcomputer_Digest_v02n11_May76.pdf | urlmorto = sì }}</ref><ref name="SCCS May 1976 6501">{{Cita pubblicazione | cognome = Teener | nome = Mike | titolo = Politics and Intrigue | rivista = SCCS Interface | volume = 1 | numero = 6 | p = 58 | editore = Southern California Computer Society |città= Los Angeles | data = maggio 1976}}{{Citazione|Così Motorola ha citato ed ha recentemente vinto una causa senza passare dai tribunali che ha visto MOS Technology pagare $ 200.000 e terminare la produzione del 6501.||So Motorola sued and just recently won an out-of-court settlement that has MOS Technology paying $200,000 and stopping production on the 6501.|lingua=en}}</ref>
 
===Il MOS KIM-1===
Riga 87:
== Impiego ed utilizzo ==
=== Informatica ===
Uno dei primi impieghi del nuovo processore fu come CPU del computer [[Apple I]] presentato nel [[1976]] dalla neonata [[Apple]], una società fondata da [[Steve Jobs]] e [[Steve Wozniak]]. Il 6502 fu poi utilizzato nel [[Commodore PET]] e nell'[[Apple II]] del [[1977]], ed in diversi altri computer ad [[8 bit]] tra cui la [[Famiglia Atari 8-bit|famiglia di computer Atari ad 8 bit]], la serie [[BBC Micro]] derivata dai sistemi ad 8 bit della [[Acorn Computers]], il [[Commodore VIC-20]] ed i computer di [[Ohio Scientific]] e [[Oric]].<ref>{{cita web|url=http://www.hardwaresecrets.com/inside-the-atari-2600/3/|titolo=Inside the Atari 2600|editore=HardwareSecrets.com|accesso=24 settembre 2015|data=14 maggio 2012}}{{citazione|Il 6502 fu ampiamente utilizzato all'epoca in diversi microcomputer, come l'Apple II, l'Atari 400, l'Atari 800, il Commodore VIC-20 ed il Commodore 64, giusto per citare i più famosi.|Inside the Atari 2600|The 6502 was widely used at the time in several microcomputers, such as the Apple II, Atari 400, Atari 800, Commodore VIC-20, and Commodore 64, just to name the most famous ones|lingua=en}}</ref> Il [[Commodore 64]] usava un derivato del 6502, il [[MOS 6510]], ma la sua unità a dischi modello [[Commodore 1541|1541]] usava un 6502 a 2 &nbsp;MHz per eseguire il codice del [[Disk operating system|DOS]] integrato nell'unità stessa e doveva essere veloce (il doppio della CPU dell'unità C64) per rispondere alle necessità temporali del trasferimento dei dati dal floppy.
 
=== Industria ===
Riga 95:
Un altro impiego importante del 6502 e dei suoi derivati fu negli apparati videoludici. Il primo di tali apparecchi che usò un chip della famiglia 6502 fu la console [[Atari 2600]]: essa utilizzava il [[MOS 6507]], una versione depotenziata del 6502 con un [[Bus (informatica)#Bus indirizzi|bus indirizzi]] ridotto ed un risultante [[Package (elettronica)|package]] con soli 28 piedini. A causa di tale limitazione, il 6507 poteva indirizzare solo 8 [[byte|KB]] di memoria, ma il package ridotto ne riduceva le dimensioni ed il costo. Nonostante ciò, l'Atari 2600 è stata venduta in 30 milioni di esemplari, ognuna con un 6507 al suo interno.
 
Un'altra console basata su un chip derivato dal 6502 fu la popolare [[Nintendo Entertainment System|Nintendo Famicom]], presentata da [[Nintendo]] nel [[1983]]: La versione per la console era prodotta da [[Ricoh]] che rispetto al progetto originale, non gestiva l'artimetica BCD ma offriva 22 registri aggiuntivi (mappati in memoria) per la gestione del suono, la lettura dei [[gamepad]] e l'[[Direct Memory Access|accesso diretto alla memoria]] per gli [[sprite (informatica)|sprite]]. Tale chip, chiamato [[Ricoh 2A03|2A03]] nei sistemi [[NTSC]] e [[Ricoh 2A03|2A07]] in quelli [[PAL (televisione)|PAL]] (la differenza risiedeva nel diverso divisore interno del clock usato per generare l'immagine ed il suono a causa della differente frequenza dei segnali PAL e NTSC), fu prodotto esclusivamente per Nintendo.
 
Gli stessi [[Videogioco arcade|arcade]], molto diffusi all'epoca, erano dotati di uno o più processori, spesso il 6502, e la [[Atari]] usava quasi esclusivamente questa CPU sebbene ad alcuni tra cui il [[Tempest (videogioco)|Tempest]] od il [[Battlezone]] aggiungeva un coprocessore basato su bit slice [[AMD Am2900]] a causa dell'insufficiente potenza di calcolo del 6502 dovendo operare in tempo reale
Riga 101:
==Descrizione==
[[File:MOS6502.svg|thumb|Piedinatura del MOS 6502 (DIP40)]]
Il 6502 è un processore ad [[8 bit]] con un bus indirizzi a [[16 bit]], capace quindi di indirizzare direttamente fino a 64 KB di memoria. Internamente lavora alla stessa velocità impostata dal clock esterno, tipicamente da 1 a 2 [[Hertz|MHz]]: ad esempio, lo [[Zilog Z80]] divide internamente il clock esterno per 4. Nonostante il clock inferiore le sue prestazioni sono equiparabili a quelle di altre CPU con frequenze maggiori: ciò è dovuto alla particolare architettura interna adottata, basata su una [[pipeline dati|pipeline statica]] e sul fatto che opera con un ciclo a 2 fasi e non contando i cicli di clock. Come molte altre CPU dell'epoca, la [[logica NMOS]] del 6502 non è sequenziata da [[microcodice]] residente in [[Read-only memory|ROM]] ma usa per la decodifica e la sequenziazione delle istruzioni un [[Programmable Logic Array|PLA]] preprogrammato a livello maschera (che occupa circa il 15% della superficie del chip). Come altri microprocessori ad 8 bit, il 6502 esegue una limitata sovrapposizione delle operazioni di [[instruction fetch|fetch]] ed esecuzione delle istruzioni.
 
La bassa frequenza di clock riduceva i vincoli sulle velocità delle periferiche collegate alla CPU, dato che solo il 50% del ciclo di clock era disponibile per l'accesso alla memoria (a causa del progetto asincrono della CPU, questa percentuale varia molto tra le diverse versioni del chip). Ciò era importante in un periodo in cui le memorie affidabili avevano tempi di accesso nell'ordine dei 450-250 ns. Il 6502 era stato progettato per essere infatti semplice ed economico, ed abbassare i costi dell'intero sistema era un fattore molto importante per concorrere nei mercati degli home computer e delle console per videogiochi.
 
Come il suo precursore, il [[Motorola 6800]], il 6502 aveva pochi [[registro (informatica)|registri]]: all'epoca in cui il 6502 fu progettato il numero di transistor contenuti in un integrato influivano molto sul suo costo e mantenerne il loro numero basso contribuiva a contenere i costi. Inoltre la [[RAM]] esterna era più veloce di una CPU, quindi era sensato ottimizzare l'architettura per l'accesso alla memoria piuttosto che incrementare il numero dei registri del chip. Il 6502 fu progettato con l'obiettivo di essere molto economico: perciò furono usati circa 4.000 transistor contro i circa 2.300 dell'[[Intel 4004]] del 1971 ed i circa 8.500 dello [[Z80]].<ref>{{cita web|url=http://www.classiccmp.org/pipermail/cctalk/2001-May/170250.html|titolo="How many transistors in the 6502 processor?"|data=5 maggio 2001|accesso=7 febbraio 2011|urlmorto=sì|urlarchivio=https://web.archive.org/web/20100925064849/http://www.classiccmp.org/pipermail/cctalk/2001-May/170250.html|dataarchivio=25 settembre 2010}}</ref>
 
Il progetto originario del 6800 prevedeva una superficie di silicio di 4.572 &nbsp;mm di lato pari a 20,9 &nbsp;mm² diventati 5.4 &nbsp;mm pari a 29 &nbsp;mm² <ref>Motorola 6800 Oral History (2008), p. 10</ref> mentre il progetto del 6502 prevedeva 3.9 x 4.3 &nbsp;mm pari a 16.6 &nbsp;mm².
 
I registri del 6502 includono:
Riga 113:
* 2 [[Registro indice|registri indice]] ad 8 bit (registri "X" e "Y");
* 1 registro di stato ad 8 bit (registro "P");
* 1 [[Pila (informatica)|puntatore di stack]] (registro "S") ad 8 bit (il 6800 lo aveva a 16 bit);
* 1 [[program counter|puntatore di programma]] (registro "PC") a 16 bit.
 
Riga 168:
Del 6502 furono prodotte diversi varianti e chip derivati:
* [[MOS 6507]]: presentava un bus indirizzi ridotto capace di indirizzare solo 8 KB. Questo chip fu usato solo nella console [[Atari 2600]].<ref>{{cita web|url=https://hardwaresecrets.com/inside-the-atari-2600/|titolo=Inside the Atari 2600|editore=HardwareSecrets.com|accesso=24 settembre 2015|data=14 maggio 2012|lingua=en}}
 
{{citazione|L'Atari 2600 era basata sul microprocessore MOS Technology 6507. Questa CPU era una versione ridotta del microprocessore 6502, limitata nell'accesso a soli 8 KB di memoria contro i 64 KB del 6502 e senza le linee di interrupt; a parte questo erano la stessa CPU.|Inside the Atari 2600 (HardwareSecrets.com)|The Atari 2600 was based on a MOS Technology 6507 microprocessor. This CPU was a stripped-down version of the 6502 microprocessor, limited to accessing only 8 KB of memory versus 64 KB as on the 6502 and without interrupt lines; otherwise they were the same CPU.|lingua=en}}</ref>
* [[MOS 6509]]: il bus indirizzi fu esteso a 20 bit. Con l'integrazione sul chip della circuiteria per la gestione del [[bank switching]], il 6509 poteva indirizzare fino ad 1 MB di memoria. Fu usato solo sui [[Commodore CBM-II]].<ref>{{cita web|url=http://www.6502.org/users/sjgray/computer/cbm2/|titolo=Commodore CBM-II|editore=6502.org|accesso=24 settembre 2015}}</ref>
Riga 173 ⟶ 174:
* [[WDC 65C02]]: fabbricato da [[Western Design Center]], era un 6502 in tecnologia [[CMOS]] con più opcode ed alcuni bug del progetto originale corretti (come ad esempio alcuni flag che non venivano, contrariamente alla documentazione, aggiornati dopo determinate operazioni).
* [[Ricoh 2A03]]: variante del 6502 senza la modalità BCD, usata esclusivamente nella console [[Nintendo Entertainment System]].<ref>{{cita web|url=http://wiki.nesdev.com/w/index.php/CPU_ALL|titolo=Informazioni sulla CPU Ricoh 2A03 del NES|editore=NESdev.com|accesso=24 settembre 2015|lingua=en}}
 
{{citazione|Il nocciolo della CPU del NES è basato sul processore 6502 (...) È fabbricato da Ricoh e non ha la modalità decimale del MOS 6502.|Specifiche del Ricoh 2A03|The NES CPU core is based on the 6502 processor (...) It is made by Ricoh and lacks the MOS6502's decimal mode.|lingua=en}}</ref>
 
Riga 183 ⟶ 185:
[[Mitsubishi]] realizzò il 65816, un [[microcontrollore]] con un'architettura simile a quella del 65C816, anche se non compatibile al 100% con essa.
 
[[Synertek]] pubblicò la scheda tecnica dell{{'}}'''SY6516''', una versione a 16 bit del 6502 che però non fu mai messa in commercio.<ref>{{cita web|url=http://homepage.mac.com/jorgechamorro/a2things/PDFs/65xxx.txt|titolo="Syntertek SY6516 - The chip that never existed"|editore=Apple II Things|accesso=7 febbraio 2011|urlmorto=sì|urlarchivio=https://web.archive.org/web/20100628154615/http://homepage.mac.com/jorgechamorro/a2things/PDFs/65xxx.txt|dataarchivio=28 giugno 2010}}</ref>
 
== Problemi nel progetto ==
Riga 198 ⟶ 200:
Le istruzioni di lettura/modifica/scrittura ad un particolare indirizzo eseguono 1 ciclo di lettura e 2 di scrittura. Ciò può causare problemi durante il secondo ciclo di scrittura nel caso si acceda ad hardware che opera durante la scrittura. Questo difetto è stato risolto nella versione CMOS del 6502, in cui il processore esegue 2 cicli di lettura ed 1 di scrittura.
 
I flag di stato "N" (risultato negativo), "V" (segnalazione di [[Arithmetic overflow|overflow]]) e "Z" (risultato pari a zero) non sono validi quando il processore esegue operazioni aritmetiche in modalità BCD, dato che questi flag riflettono lo stato delle operazioni in modalità binaria e non in quella BCD. Questa limitazione è stata rimossa nelle versioni CMOS. Questo bug è stato in passato utilizzato come test per verificare se la CPU fosse in logica NMOS oppure CMOS.<ref>{{cita web|url=http://www.s-direktnet.de/homepages/k_nadj/cputest.html|editore=Pagina su Web.Archive.org|accesso=7 febbraio 2011|titolo=Test di verifica CMOS/NMOS per i 6502|urlmorto=sì|urlarchivio=https://web.archive.org/web/20080102014138/http://www.s-direktnet.de/homepages/k_nadj/cputest.html|dataarchivio=2 gennaio 2008}}</ref>
 
Quando il processore si trova in modalità BCD mentre viene eseguito un interrupt hardware, esso non torna in modalità binaria. Questo difetto può generare nel codice delle routine di interrupt dei bug difficili da scovare se esse non deselezionano la modalità BCD prima di eseguire qualunque operazione aritmetica. Un sistema operativo affetto da questo problema era il [[KERNAL]] del Commodore 64, che non gestiva correttamente questo difetto del processore. Anch'esso fu risolto nelle versioni CMOS.
Riga 211 ⟶ 213:
 
== Cloni nel Blocco Sovietico ==
 
Nel Blocco Sovietico venne prodotto un gran numero di microprocessori clonati da quelli Occidentali e tra questi il CM630 o CM630P fu un puro clone del 6502 realizzato dalla MICRO ELEKTRONIKA BULGARIA
 
Riga 217 ⟶ 218:
Diversi utenti iniziarono a cercare modi di velocizzare i propri computer. Siccome il 6502 preleva il clock dall'esterno, aumentarne la velocità era più semplice che cercare un chip più veloce che fosse compatibile. Molti costruttori iniziarono a fabbricare dispositivi "acceleratori" composti da un piccolo quantitativo di RAM ad alta velocità e dalla circuiteria necessaria a sincronizzare il 6502 "accelerato" con la RAM e le periferiche originali dei computer. Ad esempio, il [[floppy disk drive]] dell'[[Apple II]] aveva tempi di accesso molto precisi, sincronizzati tramite la gestione diretta dei registri di I/O del processore: per questo motivo gli acceleratori per l'Apple II riportavano la frequenza della CPU al valore originale di 1&nbsp;MHz durante le operazioni di accesso ai dischi.
 
I primi acceleratori furono realizzati come schede aggiuntive ma diversi acceleratori che comparvero in seguito integrarono in un package delle dimensioni del chip originale non solo il 6502 ma anche tutta la circuiteria accessoria. Un esempio di questo tipo di acceleratori è lo ''Zip Chip'' per l'Apple II, che in un unico package inseribile nello zoccolo del 6502 in formato [[Dual in-line package|DIP40]] integrava la CPU e 350 circuiti accessori. Lo Zip Chip elevava la frequenza del 6502 a 4 od 8&nbsp;MHz, a seconda dei modelli.<ref>{{cita pubblicazione|url=http://apple2online.com/web_documents/zipchip_instruction_manual.pdf|titolo=Manuale utente dello Zip Chip|editore=ZIP Technology|accesso=7 febbraio 2011|dataarchivio=11 settembre 2014|urlarchivio=https://web.archive.org/web/20140911140702/http://apple2online.com/web_documents/zipchip_instruction_manual.pdf|urlmorto=sì}}</ref><ref>{{cita web|url=http://www.nekochan.net/weblog/archives/2009/04/ebay-and-zip-ch.html|titolo=Foto dello Zip Chip e della sua confezione|accesso=7 febbraio 2011|urlarchivio=https://web.archive.org/web/20110127120051/http://www.nekochan.net/weblog/archives/2009/04/ebay-and-zip-ch.html|dataarchivio=27 gennaio 2011|urlmorto=sì}}</ref>
 
==Simulatori==
Un simulatore funzionante del 6502 è stato realizzato in JavaScript dal gruppo visual6502.org utilizzando la tecnica del reverse engineering. Infatti gli schemi tecnici originali della MOS sono stati disegnati a mano e andati perduti. Il gruppo diretto da Michael Steil è riuscito nell'intento ricavando delle immagini ad alta definizione dei vari strati del processore mediante acidi e fotografando gli stessi mediante micro fotografia. Il tutto è stato presentato alla ventisettesima edizione del [[Chaos Communication Congress]] a Berlino.<ref>{{Cita web|url=http://visual6502.org/images/6502/index.html|titolo=6502 Images|sito=visual6502.org|accesso=2017-11-28 novembre 2017}}</ref><ref>{{Cita web|url=https://ccc.de/en/home|titolo=CCC {{!}} Home|sito=ccc.de|lingua=en|accesso=2017-11-28 novembre 2017}}</ref><ref>{{Cita pubblicazione|cognome=Christiaan008|data=2011-01-10 gennaio 2011|titolo=27c3: Reverse Engineering the MOS 6502 CPU (en)|accesso=2017-11-28 novembre 2017|url=https://www.youtube.com/watch?v=fWqBmmPQP40}}</ref><ref>{{Cita web|url=http://visual6502.org/JSSim/index.html|titolo=Visual 6502 in JavaScript|sito=visual6502.org|accesso=2017-11-28 novembre 2017}}</ref>
 
==Nella cultura di massa==
Riga 247 ⟶ 248:
* {{cita libro|cognome=Zaks|nome=Rodnay|anno=1981|titolo=Applicazioni del 6502|editore=Gruppo Editoriale Jackson|url=https://archive.org/details/applicazionidel6502}}
* {{cita libro|cognome=Zaks|nome=Rodnay|anno=1982|titolo=Giochi con il 6502|editore=Gruppo Editoriale Jackson|isbn=88-7056-104-6|url=https://archive.org/details/giochiconil6502}}
 
=== Monografie in inglese ===
* {{cita libro|lingua=en|cognome=Leventhal|nome=Lance A.|anno=1986|titolo=6502 Assembly Language Programming|url=https://archive.org/details/6502assemblylang0000leve_s9s0|edizione=2|editore=Osborne/McGraw-Hill|isbn=0-07-881216-X}}
* {{cita libro|lingua=en|cognome=Leventhal|nome=Lance A.|anno=1982|titolo=6502 Assembly Language Subroutines|url=https://archive.org/details/6502_Assembly_Lanuage_Rountines_part_1|editore=Osborne/McGraw-Hill|isbn=0-931988-59-4}}
* {{cita libro|lingua=en|cognome=Zaks|nome=Rodnay|anno=1982|titolo=Advanced 6502 Programming|editore=Sybex, Inc.|isbn=0-89588-089-X|url=http://www.atarimania.com/documents/Advanced_6502_Programming.pdf}}
* {{cita libro|lingua=en|cognome=Mansfield|nome=Richard|anno=1983|url=http://www.atariarchives.org/mlb/|titolo=Machine Language For Beginners - Personal Computer Machine Language Programming For The Atari, VIC, Apple, Commodore 64, And PET/CBM Computers|città=Greensboro, North Carolina|editore=Compute! Publications, Inc.|isbn=0-942386-11-6}}
 
=== Capitoli in opere generali ===
* {{Cita libro|titolo=Microprocessori|url=https://archive.org/details/Microprocessori/page/n143|autore=|editore=Gruppo Editoriale Jackson|anno=1988|ISBN=88-256-0068-2|pp=143-162}}
 
=== Articoli in rivista ===
* {{cita pubblicazione|lingua=en|cognome=Sugarman|nome=Robert|titolo=Does the Country Need a Good $20 Microprocessor?|rivista=Electrical Engineering Times|p=25|data=25 agosto 1975|url=http://www.commodore.ca/gallery/magazines/misc/mos_605x_team_eetimes_august_1975.pdf|accesso=8 febbraio 2011|urlarchivio=https://web.archive.org/web/20070203105724/http://www.commodore.ca/gallery/magazines/misc/mos_605x_team_eetimes_august_1975.pdf|dataarchivio=3 febbraio 2007|urlmorto=no}}
* {{cita pubblicazione|lingua=en|titolo=3rd Generation Microprocessor|rivista=Microcomputer Digest|volume=2|numero=2|pp=1-3|editore=Microcomputer Associates|città=Cupertino, California|data=08/1975|url=http://bitsavers.org/magazines/Microcomputer_Digest/Microcomputer_Digest_v02n02_Aug75.pdf|accesso=5 maggio 2021|dataarchivio=4 luglio 2009|urlarchivio=https://web.archive.org/web/20090704150052/http://www.bitsavers.org/pdf/microcomputerAssociates/Microcomputer_Digest_v02n02_Aug75.pdf|urlmorto=no}}
* {{cita pubblicazione|lingua=en|cognome=Fylstra|nome=Daniel|titolo=Son of Motorola (or the $20 CPU Chip)|rivista=BYTE|volume=1|numero=3|pp=56-62|editore=Green Publishing|città=Peterborough, New York|data=11/1975}}
* {{RivistaVG|bit|5|35-40|11/12|1979|titolo=Parliamo un po' del 6502}}
 
{{Div col end}}
 
== Altri progetti ==
{{Interprogetto}}
 
==Collegamenti esterni==
Riga 268 ⟶ 276:
 
===Caratteristiche del set di istruzioni===
* {{cita web |1url=http://mdfs.net/Docs/Comp/6502/ |2titolo=Il set di istruzioni del 6502 |accesso=7 febbraio 2011 |urlarchivio=https://web.archive.org/web/20090113222331/http://mdfs.net/Docs/Comp/6502/ |dataarchivio=13 gennaio 2009 |urlmorto=sì }}
* {{cita web |1url=http://ericclever.com/6500/ |2titolo=6502 - il primo microprocessore RISC µP |accesso=7 febbraio 2011 |urlarchivio=https://web.archive.org/web/20120524112833/http://ericclever.com/6500/ |dataarchivio=24 maggio 2012 |urlmorto=sì }}
 
===Emulatori e simulatori===
* {{cita web|url=http://www.visual6502.org|titolo=Simulazione visuale a livello di transistor del 6502}}
* [http://www.zophar.net/6502.html Elenco degli emulatori software del 6502] (zophar.net)
* [http://atarihq.com/danb/6502.shtml Simulatore del 6502 per Windows] (atarihq.com)
* {{cita web|url=http://6502asm.com|titolo=Compilatore ed emulatore del 6502 per browser scritto in JavaScript}}
 
===Primi computer basati sul 6502===
* [http://www.applefritter.com/apple1 Apple I Owners Club] - Club dei possessori dell'Apple I (applefritter.com)
* [http://oldcomputers.net/kim1.html Schema del KIM-1 schematics] (oldcomputers.net)
* {{cita web|url=http://www.oldcomputers.arcula.co.uk/65021.htm#6502_microprocessor|titolo=Rockwell AIM 65}}
 
===Acceleratori hardware===
Riga 287 ⟶ 295:
===Hardware===
* [http://www.westerndesigncenter.com/wdc/ The Western Design Center, Inc. (WDC)] - Produce ancora i processori 65xx
 
{{Div col end}}
 
{{CPU MOS 65xx}}
== Altri progetti ==
{{Controllo di autorità}}
{{Interprogetto}}
{{Portale|informatica}}
 
[[Categoria:Microprocessori MOS]]
{{Controllo di autorità}}
{{Portale|informatica}}