MOS 6502: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m WPCleaner v2.03 - orfanizzo redirect - Bender (Futurama) |
m Risolvo disambigua Chip in circuito integrato tramite popup fix spazi in eccesso |
||
Riga 1:
{{CPU
| name
| image
| image_size
| caption
| produced-start
| produced-end
| slowest
| fastest
| slow-unit
| fast-unit
| fsb-slowest
| fsb-fastest
| fsb-slow-unit
| fsb-fast-unit
| hypertransport-slowest
| hypertransport-fastest
| hypertransport-slow-unit
| hypertransport-fast-unit
| qpi-slowest
| qpi-fastest
| qpi-slow-unit
| qpi-fast-unit
| dmi-slowest
| dmi-fastest
| dmi-slow-unit
| dmi-fast-unit =
| | size-
| soldby =
| manuf1 =
▲| designfirm = [[MOS Technology]]
| core1 =
| sock1 =
| brand1 =
▲| pack1 = [[Dual in-line package|DIP40]]
| arch =
| cpuid =
▲| microarch = 8 bit
| code =
| thread =
▲| numcores =
| l1cache =
| l2cache =
| l3cache =
▲| application = [[home computer]], [[videogioco arcade|arcade]]
}}
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 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 = 9–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|pagine=pag.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>
Riga 116:
* 1 [[program counter|puntatore di programma]] (registro "PC") a 16 bit.
Lo stack è mappato in memoria sulla pagina 1 (indirizzi da <code>$0100</code> a <code>$01FF</code>,
Il 6502 usa il registro di stack e quelli indice con diverse [[Metodo di indirizzamento|modalità di indirizzamento]], inclusa una veloce modalità detta "pagina diretta" o "pagina zero", simile a quella del [[PDP-8]], che permette di accedere alle locazioni di memoria della pagina zero (indirizzi <code>$0000</code>-<code>$00FF</code>, <code>0</code>-<code>255</code>) con l'uso di un indirizzo composto da solo 8 bit, risparmiando il ciclo normalmente richiesto per caricare il byte alto dell'indirizzo nel registro indice. Molto del codice scritto per il 6502 sfrutta spesso tale particolarità ed usa tali locazioni di memoria alla stregua di come sulle altre CPU vengono usati i registri interni. Su alcuni computer basati sul 6502, come il Commodore VIC-20, il [[sistema operativo]] usava quasi tutte le locazioni della pagina zero, lasciandone poche libere all'utente.<ref>{{cita web|url=http://www.zimmers.net/cbmpics/cbm/vic/memorymap.txt|titolo=Mappa della memoria del Commodore VIC-20|accesso=6 febbraio 2011}}</ref>
Riga 133:
Le modalità indirette sono utili per [[Iterazione|iterazioni]] e per processare [[Array|array di dati]]. Con la modalità "(indirect),y" a 5/6 cicli, il registro Y ad 8 bit viene sommato ad un indirizzo a 16 bit nella pagina zero indicato da 1 solo byte seguito dall'[[opcode]]. Il registro Y è per questo un registro "indice" nel senso che viene usato per memorizzare l'attuale "indice", a differenza del registro X del 6800 dove un indirizzo base è immagazzinato direttamente ed a cui un offset può accedere direttamente). Per incrementare il registro indice e scorrere l'array byte per byte vengono impiegati solo 2 cicli in più. Nella poco frequente modalità "(indirect),x" l'indirizzo effettivo per l'operazione viene trovato in pagina zero all'indirizzo composto aggiungendo il secondo byte dell'istruzione al contenuto del registro X. Usando le modalità indicizzate, la pagina zero opera proprio come un insieme di 128 registri indice aggiuntivi.
Il 6502 è capace di eseguire operazioni di addizione e sottrazione sia binarie che [[binary-coded decimal|BCD]]. Ponendo la CPU in modalità BCD con l'istruzione <code>SED</code> i risultati delle operazioni vengono espressi in formato decimale: ad esempio, la somma <code>$99 + $01</code> restituisce
Il 6502 è stato anche indicato come uno dei primi processori [[RISC]]",<ref>{{cita web|url=https://compukituk101.blogspot.com/2009/02/chip-archeology-taking-look-at-board.html|titolo="Chip archeology"|editore=Compukit-101|accesso=7 febbraio 2011|data=18 febbraio 2009}}</ref><ref name="6502 risc"/> per via del suo [[set di istruzioni]] efficiente, semplice e quasi [[CPU#Set d.27istruzioni macchina|ortogonale]] (molte istruzioni possono operare con differenti modalità di indirizzamento) nonché per i suoi 256 "registri" in pagina zero. Il 6502 tecnicamente non è comunque un processore RISC dato che le operazioni matematiche possono leggere ''qualunque'' cella di memoria (non solo quelle in pagina zero) e diverse istruzioni (come <code>INC</code>, <code>ROL</code>, ecc...) modificano anche la memoria, contrariamente alla [[RISC#Filosofia di progetto RISC|filosofia RISC del "load/store"]]. Inoltre l'ortogonalità delle istruzioni è altrettanto spesso associata a "[[Complex instruction set computer|CISC]]". In termini di prestazioni il 6502 si comportava comunque bene, se paragonato ad altre CPU dell'epoca come lo Z80, che usava un clock molto più alto (tipicamente 3,5-4 MHz) ed il 6502 è accreditato di essere l'ispiratore di processori RISC come gli [[Architettura ARM|ARM]],<ref name="6502 risc">{{cita web|url=http://www.heyrick.co.uk/assembler/riscvcisc.html Risc Vs Cisc|titolo=RISC vs CISC|autore=Richard Murray|data=2002|accesso=7 febbraio 2011}}</ref> anche se tale ispirazione era circoscritta alla semplice implementazione piuttosto che all'architettura, che è molto diversa rispetto a quella degli ARM.
Riga 140:
Quello che segue è il classico programma [[Hello world]] scritto in codice [[assembly]] 6502 per i computer con [[KERNAL]] [[Commodore]]:
<source lang="asm">
A_CR
BSOUT = $FFD2
;
;
LOOP
;
;
LOOPEND RTS
;
MSG
</source>
|