MOS 6502: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
+{{CPU MOS 65xx}} |
m clean up |
||
(4 versioni intermedie di 4 utenti non mostrate) | |||
Riga 54:
===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 |pp=
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|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|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|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
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 | 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 =
===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
Questa riduzione dei prezzi legittimò il 6502, che cominciò ad essere venduto a centinaia di unità.<ref name=Bagnall />
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 107:
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}}</ref>
Il progetto originario del 6800 prevedeva una superficie di silicio di 4.572 mm di lato pari a 20,9 mm² diventati 5.4 mm pari a 29 mm²
I registri del 6502 includono:
Riga 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}}</ref>
== Problemi nel progetto ==
Riga 250:
=== 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}}
|