Tecnología MOS 6502

Microprocesador de 8 bits de 1975
Tecnología MOS 6502
Procesador 6502 en un encapsulado de plástico DIP-40 . El código de fecha de cuatro dígitos indica que se fabricó en la semana 45 (noviembre) de 1985.
información general
Lanzado1975 ; hace 49 años ( 1975 )
Fabricante común
Actuación
Frecuencia máxima de reloj de la CPU De 1 MHz a 3 MHz
Ancho de datos8 bits
Ancho de dirección16 bits
Arquitectura y clasificación
Conjunto de instruccionesMOS 6502
Número de instrucciones56 (55 originalmente)
Especificaciones físicas
Transistores
  • 3.510, [1] 3.218 [2]
Paquete
  • DIP de 40 pines
Historia
Antecesores
Sucesores

El MOS Technology 6502 (que se pronuncia típicamente "sixty-five-oh-two" o "six-five-oh-two") [3] es un microprocesador de 8 bits que fue diseñado por un pequeño equipo dirigido por Chuck Peddle para MOS Technology . El equipo de diseño había trabajado anteriormente en Motorola en el proyecto Motorola 6800 ; el 6502 es esencialmente una versión simplificada, menos costosa y más rápida de ese diseño.

Cuando se presentó en 1975, el 6502 era el microprocesador más económico del mercado por un margen considerable. Inicialmente se vendió por menos de una sexta parte del costo de los diseños de la competencia de empresas más grandes, como el 6800 o el Intel 8080. Su introducción provocó rápidas disminuciones en los precios en todo el mercado de procesadores. Junto con el Zilog Z80 , desencadenó una serie de proyectos que dieron como resultado la revolución de las computadoras domésticas de principios de la década de 1980.

Las consolas de videojuegos y los ordenadores domésticos de los años 70 hasta principios de los 90, como el Atari 2600 , los ordenadores Atari de 8 bits , Apple II , Nintendo Entertainment System , Commodore 64 , Atari Lynx , BBC Micro y otros, utilizan el 6502 o variaciones del diseño básico. Poco después de la introducción del 6502, MOS Technology fue adquirida directamente por Commodore International , que continuó vendiendo el microprocesador y las licencias a otros fabricantes. En los primeros días del 6502, fue adquirido por Rockwell y Synertek , y más tarde se licenció a otras empresas.

En 1981, el Centro de Diseño Occidental comenzó a desarrollar una versión CMOS , la 65C02 . Esta sigue utilizándose ampliamente en sistemas integrados , con volúmenes de producción estimados en cientos de millones. [4]

Historia y uso

Orígenes en Motorola

Placa de demostración Motorola 6800 construida por Chuck Peddle y John Buchanan en 1974

El 6502 fue diseñado por muchos de los mismos ingenieros que habían diseñado la familia de microprocesadores Motorola 6800. [5] Motorola inició el proyecto del microprocesador 6800 en 1971 con Tom Bennett como arquitecto principal. Los ingenieros de Motorola podían ejecutar simulaciones analógicas y digitales en una computadora central IBM 370-165 . [6] El diseño del chip comenzó a fines de 1972, los primeros chips 6800 se fabricaron en febrero de 1974 y la familia completa se lanzó oficialmente en noviembre de 1974. [7] [8]

John Buchanan fue el diseñador del chip 6800 [9] [10] y Rod Orgill, quien más tarde hizo el 6501, ayudó a Buchanan con los análisis de circuitos y el diseño del chip. [11] Bill Mensch se unió a Motorola en junio de 1971 después de graduarse de la Universidad de Arizona (a la edad de 26 años). [12] Su primera tarea fue ayudar a definir los circuitos integrados periféricos para la familia 6800 y más tarde fue el diseñador principal del adaptador de interfaz periférica (PIA) 6820. [13] Bennett contrató a Chuck Peddle en 1973 para realizar trabajos de soporte arquitectónico en los productos de la familia 6800 que ya estaban en progreso. [14] Contribuyó en muchas áreas, incluido el diseño de la ACIA (interfaz serial) 6850. [15]

Los clientes objetivo de Motorola eran empresas de electrónica establecidas como Hewlett-Packard , Tektronix , TRW y Chrysler . [16] En mayo de 1972, los ingenieros de Motorola comenzaron a visitar a clientes selectos y a compartir los detalles de su sistema de microprocesador de 8 bits propuesto con ROM, RAM, interfaces paralelas y seriales. [17] A principios de 1974, proporcionaron muestras de ingeniería de los chips para que los clientes pudieran crear prototipos de sus diseños. La estrategia de "familia total de productos" de Motorola no se centró en el precio del microprocesador, sino en reducir el costo total de diseño del cliente. Ofrecieron software de desarrollo en una computadora de tiempo compartido, el sistema de depuración "EXORciser", capacitación en el sitio y soporte de ingenieros de aplicaciones de campo. [18] [19] Tanto Intel como Motorola habían anunciado inicialmente un precio de 360 ​​dólares estadounidenses para un solo microprocesador. [20] [21] El precio real para las cantidades de producción fue mucho menor. Motorola ofreció un kit de diseño que contenía el 6800 con seis chips de soporte por 300 dólares estadounidenses . [22]

Peddle, que acompañaba a los vendedores en las visitas a los clientes, se dio cuenta de que los clientes se sentían desanimados por el alto coste de los chips de microprocesador. [23] Al mismo tiempo, estas visitas invariablemente daban como resultado que los ingenieros a los que se presentaba produjeran listas de instrucciones necesarias que eran mucho más pequeñas que "todas esas instrucciones sofisticadas" que se habían incluido en el 6800. [24] Peddle y otros miembros del equipo comenzaron a esbozar el diseño de un microprocesador de tamaño reducido y con características mejoradas. En ese momento, la nueva planta de fabricación de semiconductores de Motorola en Austin, Texas , estaba teniendo dificultades para producir chips MOS, y mediados de 1974 fue el comienzo de una recesión de un año en la industria de los semiconductores. Además, muchos de los empleados de Mesa, Arizona, estaban descontentos con la inminente reubicación en Austin. [25]

La dirección de la división de productos semiconductores de Motorola no mostró ningún interés en la propuesta de Peddle de fabricar un microprocesador de bajo coste. Finalmente, Peddle recibió una carta oficial en la que se le indicaba que dejase de trabajar en el sistema. [26] Peddle respondió a la orden informando a Motorola de que la carta representaba una declaración oficial de "abandono del proyecto" y, como tal, la propiedad intelectual que había desarrollado hasta ese momento era ahora suya. [27] En una entrevista de noviembre de 1975, el presidente de Motorola, Robert Galvin, finalmente estuvo de acuerdo en que el concepto de Peddle era bueno y que la división había perdido una oportunidad: "No elegimos a los líderes adecuados en la división de productos semiconductores". La división se reorganizó y se reemplazó a la dirección. El nuevo vicepresidente del grupo, John Welty, dijo: "La organización de ventas de semiconductores perdió su sensibilidad a las necesidades de los clientes y no podía tomar decisiones rápidas". [28]

Tecnología MOS

Un anuncio de MOS Technology de 1973 que destaca sus capacidades de circuitos integrados personalizados
MOS Technology MCS6501, en encapsulado cerámico blanco, fabricado a fines de agosto de 1975

Peddle comenzó a buscar fuera de Motorola una fuente de financiación para este nuevo proyecto. En un principio se puso en contacto con el director ejecutivo de Mostek, LJ Sevin , pero éste le denegó su oferta. Sevin admitió más tarde que esto se debía a que temía que Motorola los demandara. [29]

Mientras Peddle visitaba Ford Motor Company en uno de sus viajes de ventas, Bob Johnson, más tarde jefe de la división de automatización de motores de Ford, mencionó que su ex colega John Paivinen se había trasladado a General Instrument y había aprendido por su cuenta el diseño de semiconductores. [30] Paivinen luego formó MOS Technology en Valley Forge, Pensilvania en 1969 con otros dos ejecutivos de General Instrument, Mort Jaffe y Don McLaughlin. Allen-Bradley , un proveedor de componentes electrónicos y controles industriales, adquirió una participación mayoritaria en 1970. [31] La empresa diseñó y fabricó circuitos integrados personalizados para los clientes y había desarrollado una línea de chips para calculadoras. [32]

Después de que los esfuerzos de Mostek fracasaran, Peddle se acercó a Paivinen, quien "lo entendió de inmediato". [33] El 19 de agosto de 1974, Chuck Peddle, Bill Mensch, Rod Orgill, Harry Bawcom, Ray Hirt, Terry Holdt y Wil Mathys dejaron Motorola para unirse a MOS. Mike Janes se unió más tarde. De los diecisiete diseñadores de chips y personas de diseño en el equipo 6800, ocho se fueron. El objetivo del equipo era diseñar y producir un microprocesador de bajo costo para aplicaciones integradas y apuntar a una base de clientes lo más amplia posible. Esto sería posible solo si el microprocesador fuera de bajo costo, y el equipo estableció el precio objetivo para las compras por volumen en $ 5. [ 34] Mensch declaró más tarde que el objetivo no era el precio del procesador en sí, sino crear un conjunto de chips que pudieran venderse a $ 20 para competir con el recientemente presentado Intel 4040 que se vendía por $ 29 en un chipset completo similar. [35]

Los chips se producen imprimiendo múltiples copias del diseño del chip en la superficie de una oblea , un disco delgado de silicio de alta pureza. Se pueden imprimir chips más pequeños en mayor cantidad en la misma oblea, lo que reduce su precio relativo. Además, las obleas siempre incluyen una cierta cantidad de pequeños defectos físicos que se encuentran dispersos por toda la superficie. Cualquier chip impreso en esa ubicación fallará y deberá desecharse. Los chips más pequeños significan que es menos probable que se imprima una sola copia en un defecto. Por ambas razones, el costo del producto final depende en gran medida del tamaño del diseño del chip. [36]

Los chips 6800 originales estaban pensados ​​para tener 180 por 180 milésimas de pulgada (4,6 mm × 4,6 mm), pero el diseño se completó en 212 por 212 milésimas de pulgada (5,4 mm × 5,4 mm), o un área de29,0 mm 2 . [37] Para el nuevo diseño, el objetivo de costo exigía un tamaño de 153 por 168 milésimas de pulgada (3,9 mm × 4,3 mm), o un área de16,6 mm 2 . [38] Se necesitarían varias técnicas nuevas para alcanzar este objetivo.

Pasando a NMOS

Dos avances significativos llegaron al mercado justo cuando se estaba diseñando el 6502, lo que supuso una reducción significativa de los costes. El primero fue el paso al NMOS de carga por agotamiento . El 6800 utilizaba un proceso NMOS temprano, el modo de mejora, que requería tres voltajes de suministro. Una de las características principales del 6800 era un duplicador de voltaje integrado que permitía utilizar una única fuente de alimentación de +5 V para +5, −5 y +12 V internamente, a diferencia de otros chips de la época, como el Intel 8080 , que requerían tres pines de alimentación independientes. [39] Aunque esta característica reducía la complejidad de la fuente de alimentación y el diseño de los pines, seguía requiriendo una línea de alimentación independiente para las distintas puertas del chip, lo que aumentaba la complejidad y el tamaño. Al pasar al nuevo diseño de carga por agotamiento, todo lo que se necesitaba era una única fuente de alimentación de +5 V, lo que eliminaba toda esta complejidad. [40]

Otra ventaja era que los diseños de carga de agotamiento consumían menos energía durante la conmutación, por lo que funcionaban a menor temperatura y permitían velocidades de funcionamiento más altas. Otra consecuencia práctica es que la señal de reloj de las CPU anteriores tenía que ser lo suficientemente fuerte como para sobrevivir a toda la disipación a medida que viajaba por los circuitos, lo que casi siempre requería un chip externo independiente que pudiera proporcionar una señal potente. Con los requisitos de energía reducidos del diseño de carga de agotamiento, el reloj podía trasladarse al chip, lo que simplificaba el diseño general de la computadora. Estos cambios redujeron en gran medida la complejidad y el costo de implementar un sistema completo. [40]

Un cambio más amplio que se produjo en la industria fue la introducción del enmascaramiento por proyección . Anteriormente, los chips se modelaban sobre la superficie de la oblea colocando una máscara sobre la superficie de la oblea y luego iluminándola con una luz brillante. Las máscaras a menudo recogían pequeños trozos de suciedad o fotorresistencia al despegarse del chip, lo que causaba fallas en esas ubicaciones en cualquier enmascaramiento posterior. Con diseños complejos como las CPU, se utilizaban 5 o 6 pasos de enmascaramiento de este tipo, y la probabilidad de que al menos uno de estos pasos introdujera una falla era muy alta. En la mayoría de los casos, el 90% de estos diseños tenían fallas, lo que resultaba en un rendimiento del 10%. El precio de los ejemplos funcionales tenía que cubrir el costo de producción del 90% que se desechaba. [41]

En 1973, Perkin-Elmer introdujo el sistema Micralign , que proyectaba una imagen de la máscara sobre la oblea en lugar de requerir contacto directo. Las máscaras ya no acumulaban suciedad de las obleas y duraban alrededor de 100.000 usos en lugar de 10. Esto eliminó los fallos paso a paso y las altas tasas de defectos que se observaban anteriormente en los diseños complejos. El rendimiento de las CPU aumentó inmediatamente del 10% al 60 o 70%. Esto significó que el precio de la CPU se redujo aproximadamente en la misma cantidad y el microprocesador se convirtió de repente en un dispositivo de consumo. [41]

Las líneas de fabricación existentes de MOS Technology se basaban en la antigua tecnología PMOS ; aún no habían comenzado a trabajar con NMOS cuando llegó el equipo. Paivinen prometió tener una línea NMOS en funcionamiento a tiempo para comenzar la producción de la nueva CPU. Cumplió su promesa: la nueva línea estuvo lista en junio de 1975. [42]

Notas de diseño

Chuck Peddle, Rod Orgill y Wil Mathys diseñaron la arquitectura inicial de los nuevos procesadores. Un artículo de septiembre de 1975 en la revista EDN ofrece este resumen del diseño: [43]

La familia MOS Technology 650X representa un intento consciente de ocho ex empleados de Motorola que trabajaron en el desarrollo del sistema 6800 de crear una pieza que reemplazara y superara al 6800, pero que se vendiera a un precio inferior. Con la ventaja de la retrospección obtenida del proyecto 6800, el equipo de MOS Technology encabezado por Chuck Peddle realizó los siguientes cambios arquitectónicos en la CPU de Motorola...

El cambio principal en términos de tamaño del chip fue la eliminación de los controladores triestado de las salidas del bus de direcciones. Un bus de tres estados tiene estados para "1", "0" y "alta impedancia". El último estado se utiliza para permitir que otros dispositivos accedan al bus, y se utiliza normalmente para multiprocesamiento , o más comúnmente en estas funciones, para acceso directo a memoria (DMA). Si bien es útil, esta característica es muy costosa en términos de circuitos en chip. El 6502 simplemente eliminó esta característica, de acuerdo con su diseño como un controlador económico que se utiliza para tareas específicas y se comunica con dispositivos simples . Peddle sugirió que cualquiera que realmente requiriera este estilo de acceso podría implementarlo con un solo 74158. [44] [a]

La siguiente gran diferencia fue la simplificación de los registros. Para empezar, se eliminó uno de los dos acumuladores . Los registros de uso general, como los acumuladores, deben ser accedidos por muchas partes del decodificador de instrucciones y, por lo tanto, requieren una cantidad significativa de cableado para mover datos hacia y desde su almacenamiento. Dos acumuladores facilitan muchas tareas de codificación, pero le cuestan una complejidad significativa al diseño del chip en sí. [43] Se lograron ahorros adicionales al reducir el registro de pila de 16 a 8 bits, lo que significa que la pila solo podía tener 256 bytes de longitud, lo que era suficiente para su función prevista como microcontrolador. [43] [ verificación fallida ]

El registro de índice IX de 16 bits se dividió en dos, convirtiéndose en X e Y. Más importante aún, el estilo de acceso cambió. En el 6800, IX contenía una dirección de 16 bits que se compensaba con un número de 8 bits almacenado con la instrucción y se sumaban. En el 6502 (y en la mayoría de los demás diseños contemporáneos), la dirección base de 16 bits se almacenaba en la instrucción y se le añadían los 8 bits X o Y. [44]

Finalmente, se simplificó el conjunto de instrucciones, liberando espacio en el decodificador y la lógica de control. De las 72 instrucciones originales del 6800, se implementaron 56. Entre las que se eliminaron se encontraban instrucciones que operaban entre los dos acumuladores del 6800 y varias instrucciones de bifurcación inspiradas en el PDP-11 . [44]

El diseño de alto nivel del chip tuvo que convertirse en dibujos de transistores e interconexiones. En MOS Technology, el "diseño" fue un proceso muy manual realizado con lápices de colores y papel vitela . El diseño consistía en miles de formas poligonales en seis dibujos diferentes; uno para cada capa del proceso de fabricación. Dados los límites de tamaño, el diseño completo del chip tuvo que ser considerado constantemente. Mensch y Paivinen trabajaron en el decodificador de instrucciones [46] mientras que Mensch, Peddle y Orgill trabajaron en la ALU y los registros. Un avance adicional, desarrollado en una fiesta, fue una forma de compartir parte del cableado interno para permitir que la ALU se redujera en tamaño. [47]

A pesar de sus mejores esfuerzos, el diseño final terminó siendo 5 milésimas de ancho. [48] Los primeros 6502 chips tenían 168 por 183 milésimas de ancho (4,3 mm × 4,6 mm), para un área de19,8 mm 2 . La versión original del procesador no tenía capacidad de rotación a la derecha (ROR), por lo que la instrucción se omitió de la documentación original. La siguiente iteración del diseño redujo el tamaño del chip y agregó la capacidad de rotación a la derecha, y la ROR se incluyó en la documentación revisada. [49] [b]

Presentamos los modelos 6501 y 6502

Anuncio de presentación de los microprocesadores MOS Technology MCS6501 y MCS6502

MOS introduciría dos microprocesadores basados ​​en el mismo diseño subyacente: el 6501 se conectaría al mismo zócalo que el Motorola 6800, mientras que el 6502 reorganizó el pinout para admitir un oscilador de reloj en chip. Ambos funcionarían con otros chips de soporte diseñados para el 6800. No ejecutarían el software del 6800 porque tenían un conjunto de instrucciones diferente, registros diferentes y, en su mayoría, modos de direccionamiento diferentes. [3] Rod Orgill fue responsable del diseño del 6501; había ayudado a John Buchanan en Motorola en el 6800. Bill Mensch hizo el 6502; fue el diseñador del adaptador de interfaz periférica (PIA) 6820 en Motorola. Harry Bawcom, Mike Janes y Sydney-Anne Holt ayudaron con el diseño.

La presentación de los microprocesadores de MOS Technology fue diferente del tradicional lanzamiento de un producto que duraba meses. La primera tirada de un nuevo circuito integrado se utiliza normalmente para pruebas internas y se comparte con clientes selectos como "muestras de ingeniería". Estos chips suelen tener uno o dos defectos de diseño menores que se corregirán antes de que comience la producción. El objetivo de Chuck Peddle era vender la primera tirada de chips 6501 y 6502 a los asistentes a la feria comercial WESCON en San Francisco a partir del 16 de septiembre de 1975. Peddle fue un portavoz muy eficaz y los microprocesadores de MOS Technology recibieron una amplia cobertura en la prensa especializada. Una de las primeras fue una historia de página completa sobre los microprocesadores MCS6501 y MCS6502 en la edición del 24 de julio de 1975 de la revista Electronics . [53] También aparecieron artículos en EE Times (24 de agosto de 1975), [54] EDN (20 de septiembre de 1975), Electronic News (3 de noviembre de 1975), Byte (noviembre de 1975) [55] y Microcomputer Digest (noviembre de 1975). [56] Los anuncios del 6501 aparecieron en varias publicaciones la primera semana de agosto de 1975. El 6501 estaría a la venta en Wescon por 20 dólares cada uno. [57] En septiembre de 1975, los anuncios incluían tanto el microprocesador 6501 como el 6502. El 6502 costaría sólo 25 dólares (equivalente a 142 dólares en 2023). [58]

Cuando MOS Technology llegó a Wescon, se encontró con que a los expositores no se les permitía vender nada en el piso de exhibición. Alquilaron la Suite MacArthur en el Hotel St. Francis y dirigieron a los clientes allí para comprar los procesadores. En la suite, los procesadores se almacenaban en grandes frascos para dar a entender que los chips estaban en producción y disponibles. Los clientes no sabían que la mitad inferior de cada frasco contenía chips no funcionales. [59] Los chips costaban $ 20 y $ 25, mientras que el paquete de documentación costaba $ 10 adicionales . Se animó a los usuarios a hacer fotocopias de los documentos, una forma económica para MOS Technology de distribuir información del producto. Las hojas de datos preliminares enumeraban solo 55 instrucciones excluyendo la instrucción Rotate Right (ROR) que no era compatible con estos primeros chips. Las revisiones en Byte y EDN señalaron la falta de la instrucción ROR. La siguiente revisión del diseño solucionó este problema y la hoja de datos de mayo de 1976 enumeraba 56 instrucciones. Peddle quería que todos los ingenieros y aficionados interesados ​​tuvieran acceso a los chips y a la documentación, mientras que otras empresas de semiconductores sólo querían tratar con clientes "serios". Por ejemplo, Signetics estaba presentando el microprocesador 2650 y sus anuncios pedían a los lectores que escribieran para solicitar información en papel membretado de la empresa. [60]

MOS Technology MCS6502, en paquete de cerámica blanca, fabricado a finales de 1975
Diferencias en la distribución de pines
Alfiler680065016502
2DetenerListoListo
3∅1 (pulgada)∅1 (pulgada)∅1 (fuera)
5Dirección de memoria válidaDirección de memoria válidaCAROLINA DEL NORTE
7Autobús disponibleAutobús disponibleSINCRONIZACIÓN
36Habilitación de bus de datosHabilitación de bus de datosCAROLINA DEL NORTE
37∅2 (pulgadas)∅2 (pulgadas)∅0 (pulgadas)
38CAROLINA DEL NORTECAROLINA DEL NORTEEstablecer indicador de desbordamiento
39Control de tres estadosCAROLINA DEL NORTE∅2 (fuera)

Demanda contra Motorola

La hoja de datos de mayo de 1976 omitió el microprocesador 6501 que estaba en la versión de agosto de 1975 .

La introducción del 6501/6502 en forma impresa y en Wescon fue un enorme éxito. La desventaja fue que la amplia cobertura de prensa atrajo la atención de Motorola. En octubre de 1975, Motorola redujo el precio de un solo microprocesador 6800 de $175 a $69 . El kit de diseño del sistema de $300 se redujo a $150 y ahora venía con una placa de circuito impreso. [61] El 3 de noviembre de 1975, Motorola solicitó una orden judicial en la Corte Federal para impedir que MOS Technology fabricara y vendiera productos de microprocesadores. También presentaron una demanda alegando violación de patentes y apropiación indebida de secretos comerciales. Motorola afirmó que siete ex empleados se unieron a MOS Technology para crear los productos de microprocesadores de esa empresa. [62]

Motorola era una empresa multimillonaria con un caso plausible y abogados caros. El 30 de octubre de 1974, Motorola había presentado numerosas solicitudes de patentes sobre la familia de microprocesadores y se le concedieron veinticinco patentes. La primera fue en junio de 1976 y la segunda fue a Bill Mensch el 6 de julio de 1976, para el diseño del chip 6820 PIA. Estas patentes cubrían el bus 6800 y cómo los chips periféricos interactuaban con el microprocesador. [63] Motorola comenzó a fabricar transistores en 1950 y tenía una cartera de patentes de semiconductores. Allen-Bradley decidió no luchar en este caso y vendió su participación en MOS Technology a los fundadores. Cuatro de los antiguos ingenieros de Motorola fueron nombrados en la demanda: Chuck Peddle, Will Mathys, Bill Mensch y Rod Orgill. Todos fueron nombrados inventores en las solicitudes de patente 6800. Durante el proceso de descubrimiento, Motorola descubrió que un ingeniero, Mike Janes, había ignorado las instrucciones de Peddle y había llevado sus documentos de diseño del 6800 a MOS Technology. [64] En marzo de 1976, la ahora independiente MOS Technology se estaba quedando sin dinero y tuvo que resolver el caso. Acordaron abandonar el procesador 6501, pagarle a Motorola 200.000 dólares y devolver los documentos que Motorola sostenía que eran confidenciales. Ambas compañías acordaron conceder licencias cruzadas sobre patentes de microprocesadores. [65] En mayo de ese mismo año, Motorola redujo el precio de un solo microprocesador 6800 a 35 dólares . En noviembre, Commodore había adquirido MOS Technology. [66] [67]

Computadoras y juegos

Con los problemas legales a sus espaldas, MOS todavía tenía el problema de conseguir que los desarrolladores probaran su procesador, lo que llevó a Chuck Peddle a diseñar el ordenador de placa única MDT-650 ("terminal de desarrollo de microordenadores") . Otro grupo dentro de la empresa diseñó el KIM-1 , que se vendió semicompleto y podía convertirse en un sistema utilizable con la adición de un terminal de ordenador de terceros y una unidad de casete compacta . Si bien se vendió bien en su mercado objetivo, la empresa descubrió que el KIM-1 también se vendió bien entre los aficionados y los manitas. El sistema de control, formación y desarrollo Rockwell AIM-65 relacionado también tuvo buenos resultados. El software del AIM 65 se basaba en el del MDT. Otro producto más o menos similar fue el Synertek SYM-1 .

Uno de los primeros usos "públicos" del diseño fue el microordenador Apple I , introducido en 1976. El 6502 se utilizó a continuación en el Commodore PET y el Apple II , [68] ambos lanzados en 1977. Más tarde se utilizó en los ordenadores Atari de 8 bits , Acorn Atom , BBC Micro , [68] VIC-20 y otros diseños tanto para ordenadores domésticos como empresariales, como los ordenadores Ohio Scientific y Oric . El 6510 , un sucesor directo del 6502 con un puerto de E/S digital y un bus de direcciones triestado , fue la CPU utilizada en el ordenador doméstico más vendido [69] [70] Commodore 64 .

Otro uso importante de la familia 6500 fue en los videojuegos. El primero en hacer uso del diseño del procesador fue el Atari VCS de 1977, posteriormente rebautizado como Atari 2600. El VCS utilizó una variante del 6502 llamada 6507 , que tenía menos pines, por lo que solo podía direccionar 8  KB de memoria. Se venderían millones de consolas Atari, cada una con un procesador MOS. Otro uso significativo fue el de Nintendo Entertainment System y Famicom. El 6502 utilizado en la NES fue una segunda versión de origen de Ricoh , un sistema parcial en un chip , que carecía del modo decimal codificado en binario pero añadía 22 registros mapeados en memoria y hardware en el chip para la generación de sonido, la lectura del joystick y la lista de sprites DMA . Llamado 2A03 en las consolas NTSC y 2A07 en las consolas PAL (la diferencia es el divisor de frecuencia de reloj y una tabla de búsqueda para las frecuencias de muestreo de audio), este procesador fue producido exclusivamente para Nintendo .

El 6502 o variantes se utilizaron en todas las unidades de disquete de Commodore para todas sus computadoras de 8 bits, desde la línea PET hasta el Commodore 128D, incluido el Commodore 64. Las unidades PET de 8 pulgadas tenían dos procesadores 6502. Atari utilizó el mismo 6507 utilizado en el Atari VCS para sus unidades de disco 810 y 1050 utilizadas para toda su línea de computadoras de 8 bits, desde el 400/800 hasta el XEGS.

En la década de 1980, una popular revista de electrónica, Elektor/Elektuur, utilizó el procesador en su placa de desarrollo de microprocesadores Junior Computer .

El sucesor CMOS del 6502, el WDC 65C02 , también se utilizó en ordenadores domésticos y consolas de videojuegos. Apple lo utilizó en la línea Apple II a partir del Apple IIc y variantes posteriores del Apple IIe y también ofreció un kit para actualizar los sistemas IIe más antiguos con el nuevo procesador. [71] El chip Hudson Soft HuC6280 utilizado en el TurboGrafx-16 se basaba en un núcleo 65C02. El Atari Lynx utilizó un chip personalizado llamado "Mikey" [72] diseñado por Epyx que incluía una celda con licencia VLSI VL65NC02. La variante G65SC12 de GTE Microcircuits (rebautizada como California Micro Devices) se utilizó en el BBC Master . Algunos modelos del BBC Master también incluían un coprocesador G65SC102 adicional.

Descripción técnica

Procesador 6502. La sección regular en la parte superior es la ROM de decodificación de instrucciones, la sección aparentemente aleatoria en el centro es la lógica de control y en la parte inferior están los registros (derecha) y la ALU (izquierda). Las conexiones del bus de datos están a lo largo de la parte inferior derecha y el bus de direcciones a lo largo de la parte inferior e inferior izquierda. [38]
Configuración de 6502 pines ( DIP de 40 pines )
Registros MOS 6502
1 51 41 31 21 11 09876543210(posición de bit)
Registros principales
 AUn acumulador
Registros de índice
 incógnitaÍndice X
 YÍndice Y
00000001ESPuntero de pila​
Contador de programas
ordenador personalContador de programas​
Registro de estado
norteV-BDIOdoIndicadores del procesador​

El 6502 es un procesador little-endian de 8 bits con un bus de direcciones de 16 bits . Las versiones originales se fabricaron utilizando un chip de tecnología de proceso de 8 µm [73] con un tamaño de chip de 3,9 mm × 4,3 mm (153 por 168 milésimas de pulgada), para un área total de16,6 mm2 . [ 38]

La lógica interna funciona a la misma velocidad que la frecuencia de reloj externa. Presentaba una secuencia simple: en cada ciclo, el procesador extrae un byte de la memoria y procesa otro. Esto significa que cualquier instrucción individual puede tardar tan solo dos ciclos en completarse, dependiendo de la cantidad de operandos que utilice esa instrucción. A modo de comparación, el Zilog Z80 requería dos ciclos para extraer memoria y el tiempo mínimo de instrucción era de cuatro ciclos. Por lo tanto, a pesar de las velocidades de reloj más bajas en comparación con los diseños de la competencia, generalmente en el entorno de 1 a 2400 bytes, el tiempo de instrucción mínimo era de cuatro ciclos.A 2  MHz , el rendimiento del 6502 era competitivo con las CPU que usaban relojes significativamente más rápidos. Esto se debe en parte a una máquina de estados simple implementada mediante lógica combinacional (sin reloj) en mayor medida que en muchos otros diseños; el reloj de dos fases (que proporciona dos sincronizaciones por ciclo) podía controlar así directamente el ciclo de la máquina.

Este diseño también dio lugar a una nota de diseño útil del 6502 y del 6800 anterior. Como el chip solo accedía a la memoria durante una determinada parte del ciclo de reloj, y esta duración se indicaba mediante el pin de salida de reloj φ2-low, otros chips de un sistema podían acceder a la memoria durante esos momentos en los que el 6502 estaba fuera del bus. Esto se conocía a veces como "acceso oculto". Esta técnica era muy utilizada por los sistemas informáticos; utilizaban una memoria capaz de acceder a 2 MHz y luego ejecutaban la CPU a 1 MHz. Esto garantizaba que la CPU y el hardware de vídeo pudieran intercalar sus accesos, con un rendimiento total que coincidiera con el del dispositivo de memoria. Como este acceso se realizaba cada dos ciclos, no era necesario indicar a la CPU que evitara utilizar el bus, lo que hacía que este tipo de acceso fuera fácil de implementar sin ninguna lógica de bus. [74] Cuando memorias más rápidas estuvieron disponibles en la década de 1980, las máquinas más nuevas podían usar esta misma técnica mientras funcionaban a velocidades de reloj más altas; el BBC Micro usó una RAM más nueva que le permitió a su CPU funcionar a 2 MHz mientras seguía usando las mismas técnicas de uso compartido de bus.

Al igual que la mayoría de las CPU simples de la época, el chip dinámico NMOS 6502 no se secuencia mediante microcódigo, sino que se decodifica directamente mediante un PLA dedicado . El decodificador ocupaba aproximadamente el 15 % del área del chip. Esto se compara con los diseños posteriores basados ​​en microcódigo, como el Motorola 68000 , donde la ROM de microcódigo y el motor de decodificación representaban aproximadamente un tercio de las puertas del sistema.

Registros

Al igual que su precursor, el 6800, el 6502 tiene muy pocos registros . Entre ellos se incluyen [75]

Esto se compara con un competidor contemporáneo, el Intel 8080 , que también tiene un acumulador de 8 bits y un contador de programa de 16 bits, pero tiene seis registros de 8 bits de propósito general (que se pueden combinar en tres punteros de 16 bits) y un puntero de pila de 16 bits más grande. [78]

Para compensar un poco la falta de registros, el 6502 incluye un modo de direccionamiento de página cero que utiliza un byte de dirección en la instrucción en lugar de los dos necesarios para direccionar la página completa.64 KB de memoria. Esto proporciona un acceso rápido a la primera256 bytes de RAM mediante el uso de instrucciones más cortas. Por ejemplo, una instrucción para agregar un valor de la memoria al valor del acumulador normalmente sería de tres bytes, uno para la instrucción y dos para la dirección de 16 bits. El uso de la página cero reduce esto a una dirección de 8 bytes, lo que reduce la longitud total de la instrucción a dos bytes y, por lo tanto, mejora el rendimiento de la instrucción.

El espacio de direcciones de la pila está conectado directamente a la página de memoria $01, es decir, al rango de direcciones $0100$01FF( 256511). El acceso del software a la pila se realiza a través de cuatro instrucciones de modo de direccionamiento implícito, cuyas funciones son empujar o sacar (extraer) el acumulador o el registro de estado del procesador. La misma pila también se utiliza para llamadas a subrutinas a través de las instrucciones JSR (saltar a subrutina) y RTS (regresar desde subrutina) y para el manejo de interrupciones .

Direccionamiento

El chip utiliza los registros de índice y pila de manera efectiva con varios modos de direccionamiento , incluido un modo rápido de "página directa" o "página cero", similar al que se encuentra en el PDP-8 , que accede a las ubicaciones de memoria de las direcciones 0 a 255 con una única dirección de 8 bits (ahorrándose el ciclo normalmente requerido para obtener el byte de orden superior de la dirección); el código para el 6502 usa la página cero de manera muy similar a como el código para otros procesadores usaría registros. En algunas microcomputadoras basadas en el 6502 con un sistema operativo, el sistema operativo usa la mayor parte de la página cero, dejando solo un puñado de ubicaciones para el usuario.

Los modos de direccionamiento también incluyen implícito (instrucciones de 1 byte); absoluto (3 bytes); absoluto indexado (3 bytes); página cero indexada (2 bytes); relativo (2 bytes); acumulador (1); indirecto,x e indirecto,y (2); e inmediato (2). El modo absoluto es un modo de propósito general. Las instrucciones de bifurcación utilizan un desplazamiento de 8 bits con signo en relación con la instrucción después de la bifurcación; por lo tanto, el rango numérico −128..127 se traduce en 128 bytes hacia atrás y 127 bytes hacia adelante desde la instrucción que sigue a la bifurcación (que es 126 bytes hacia atrás y 129 bytes hacia adelante desde el inicio de la instrucción de bifurcación). El modo acumulador opera en el registro acumulador y no necesita ningún dato de operando . El modo inmediato utiliza un operando literal de 8 bits .

Direccionamiento indirecto

Los modos indirectos son útiles para el procesamiento de matrices y otros bucles. Con el modo "(indirect),y" de 5/6 ciclos, el registro Y de 8 bits se agrega a una dirección base de 16 bits leída desde la página cero, que se encuentra a un solo byte después del código de operación. Por lo tanto, el registro Y es un registro de índice en el sentido de que se utiliza para almacenar un índice real (a diferencia del registro X en el 6800, donde se almacenaba directamente una dirección base y al que se podía agregar un desplazamiento inmediato). Incrementar el registro de índice para recorrer la matriz byte a byte solo requiere dos ciclos adicionales. Con el modo "(indirect,x)" menos utilizado, la dirección efectiva para la operación se encuentra en la dirección de la página cero formada al agregar el segundo byte de la instrucción al contenido del registro X. Al usar los modos indexados, la página cero actúa efectivamente como un conjunto de hasta 128 registros de dirección adicionales (aunque muy lentos).

El 6502 es capaz de realizar sumas y restas en binario o decimal codificado en binario . Al colocar la CPU en modo BCD con la SEDinstrucción (establecer indicador D) se realiza una aritmética decimal, en la que $99 + $01se activaría $00 y se activaría el indicador de acarreo (C). En modo binario ( CLDborrar indicador D), la misma operación daría como resultado $9A y se borraría el indicador de acarreo. Aparte del BASIC de Atari , el modo BCD rara vez se utilizó en aplicaciones de computadoras domésticas.

Consulte el artículo ¡Hola mundo! para ver un ejemplo simple pero característico del lenguaje ensamblador 6502 .

Instrucciones y códigos de operación

Los códigos de operación de la instrucción 6502 ( opcodes ) tienen 8 bits de longitud y tienen la forma general AAABBBCC, donde AAA y CC definen el opcode, y BBB define el modo de direccionamiento. [79] Por ejemplo, la ORAinstrucción realiza un OR bit a bit en los bits del acumulador con otro valor. El opcode de la instrucción tiene la forma 000bbb01, donde bbb puede ser 010 para un valor de modo inmediato (constante), 001 para una dirección fija de página cero, 011 para una dirección absoluta, y así sucesivamente. [79] Este patrón no es universal, ya que hay excepciones, pero permite que los valores del opcode se conviertan fácilmente en mnemotécnicos de ensamblaje para la mayoría de las instrucciones, manejando los casos extremos con código de propósito especial. [79]

De los 256 códigos de operación posibles disponibles utilizando un patrón de 8 bits, el 6502 original utiliza 151 de ellos, organizados en 56 instrucciones con (posiblemente) múltiples modos de direccionamiento . Dependiendo de la instrucción y el modo de direccionamiento, el código de operación puede requerir cero, uno o dos bytes adicionales para los operandos. Por lo tanto, las instrucciones de máquina 6502 varían en longitud de uno a tres bytes. [80] [81] El operando se almacena en el formato little-endian habitual del 6502 .

El 65C816 , el descendiente CMOS de 16 bits del 6502, también admite direccionamiento de 24 bits, lo que da como resultado instrucciones ensambladas con operandos de tres bytes, también dispuestos en formato little-endian.

Los 105 códigos de operación restantes no están definidos. En el diseño original, no se utilizaron instrucciones donde los 4 bits de orden inferior ( nibble ) eran 3, 7, B o F, lo que dejaba espacio para una expansión futura. Del mismo modo, la columna $2x tenía una sola entrada, . Las 25 ranuras vacías restantes se distribuyeron. Algunas de las ranuras vacías se utilizaron en el 65C02 para proporcionar nuevas instrucciones y variaciones de las existentes con nuevos modos de direccionamiento. Las instrucciones $Fx inicialmente se dejaron libres para permitir que los proveedores externos añadieran sus propias instrucciones, pero las versiones posteriores del 65C02 estandarizaron un conjunto de instrucciones de manipulación de bits desarrolladas por Rockwell Semiconductor .LDX #constant

Lenguaje ensamblador

Una instrucción en lenguaje ensamblador 6502 consta de una mnemotecnia de instrucción de tres caracteres seguida de cualquier operando . Las instrucciones que no toman un operando separado sino que apuntan a un solo registro según el modo de direccionamiento combinan el registro de destino en la mnemotecnia de instrucción, por lo que el ensamblador utiliza INXen lugar de para INC Xincrementar el registro X.

Tabla de instrucciones

Código de ejemplo

El siguiente código fuente en lenguaje ensamblador 6502 corresponde a una subrutina denominada , que copia una cadena de caracteres terminada en cero de una ubicación a otra, convirtiendo caracteres de letras mayúsculas en letras minúsculas. La cadena que se copia es la "fuente" y la cadena en la que se almacena la fuente convertida es el "destino".TOLOWER

0080 0080 00 040082 00 05 0600 0600 A0 00 0602 B1 800604 F0 11 0606 C9 410608 90 06 060A C9 5B060C B0 02 060E 09 20 0610 91 820612 C8 0613 D0 ED    0615 38 0616 60 0617 91 820619 18 061A 60 061B 
; TOLOWER: ; ; Convierte una cadena de caracteres terminada en nulo a minúsculas. ; La longitud máxima de la cadena es de 255 caracteres, más el denominador de término nulo. ; ; Parámetros: ; ; SRC – Dirección de la cadena de origen ; DST – Dirección de la cadena de destino ; ORG $0080 ; SRC .WORD $0400 ;puntero de la cadena de origen DST .WORD $0500 ;puntero de la cadena de destino ; ORG $0600 ;dirección de inicio de la ejecución ; TOLOWER LDY # $00 ;índice de inicio ; LOOP LDA ( SRC ), Y ;obtener de la cadena de origen BEQ DONE ;fin de la cadena ; CMP # 'A' ;si es menor que el alfabeto UC... BCC SKIP ;copiar sin cambios ; CMP # 'Z' + 1 ;si es mayor que el alfabeto UC... BCS SKIP ;copiar sin cambios ; ORA # %00100000 ;convertir a minúsculas ; SKIP STA ( DST ), Y ;guardar en cadena de destino INY ;rellenar índice BNE LOOP ;siguiente carácter ; ; NOTA: Si Y se envuelve, la cadena de destino quedará en un estado indefinido. ; Configuramos el acarreo para indicar esto a la función que llama. ; SEC ;informar error de cadena demasiado larga &... RTS ;regresar al llamador ; DONE STA ( DST ), Y ;terminar cadena de destino CLC ;informar conversión completada &... RTS ;regresar al llamador ; .END                                                       

Comportamiento detallado

Matriz del procesador 6502 con transistores NMOS incorporados y etiquetas que insinúan la funcionalidad de los componentes del 6502

La entrada de interrupción no enmascarable (NMI) del procesador es sensible a los flancos , lo que significa que la interrupción se activa por el flanco descendente de la señal en lugar de por su nivel. La implicación de esta característica es que no se admite fácilmente un circuito de interrupción OR cableado . Sin embargo, esto también evita que se produzcan interrupciones NMI anidadas hasta que el hardware vuelva a desactivar la entrada NMI, a menudo bajo el control del controlador de interrupciones NMI .

La activación simultánea de las líneas de interrupción de hardware NMI e IRQ (enmascarables) hace que se ignore la IRQ. Sin embargo, si la línea IRQ permanece activada después de la activación de la NMI, el procesador responderá inmediatamente a la IRQ, ya que la IRQ es sensible al nivel . Por lo tanto, se estableció una especie de prioridad de interrupción incorporada en el diseño del 6502.

El indicador B se establece mediante el muestreo periódico de la salida del detector de borde NMI y la entrada IRQ del 6502. Sin embargo, la señal IRQ que se activa a nivel bajo solo se reconoce si el indicador I permite IRQ. Si de esta manera se detecta una solicitud NMI o una IRQ (enmascarable), el indicador B se establece en cero y hace que el procesador ejecute la instrucción BRK a continuación en lugar de ejecutar la siguiente instrucción según el contador de programa. [82] [83]

La instrucción BRK luego coloca el estado del procesador en la pila, con el bit de la bandera B establecido en cero. Al final de su ejecución, la instrucción BRK restablece el valor de la bandera B a uno. Esta es la única forma en que se puede modificar la bandera B. Si una instrucción distinta de la instrucción BRK coloca la bandera B en la pila como parte del estado del procesador [84], la bandera B siempre tiene el valor uno.

Una transición de alto a bajo en el pin de entrada SO activará el bit de estado de desbordamiento del procesador. Esto se puede utilizar para una respuesta rápida al hardware externo. Por ejemplo, un controlador de dispositivo de sondeo de alta velocidad puede sondear el hardware una vez en solo tres ciclos utilizando una instrucción Branch-on-oVerflow-Clear ( BVC) que se ramifica a sí misma hasta que se activa el desbordamiento mediante una transición descendente SO. El Commodore 1541 y otras unidades de disquete Commodore utilizan esta técnica para detectar cuándo el serializador está listo para transferir otro byte de datos del disco. El diseño del hardware y el software del sistema debe garantizar que no se produzca un SO durante el procesamiento aritmético e interrumpa los cálculos.

Variaciones y derivados

El 6502 fue la variante más prolífica de la familia de la serie 65xx de MOS Technology .

Los modelos 6501 y 6502 tienen encapsulados DIP de 40 pines ; los modelos 6503, 6504, 6505 y 6507 son versiones DIP de 28 pines, lo que reduce el costo del chip y de la placa de circuito. En todas las versiones de 28 pines, se reduce el número de pines al omitir algunos de los pines de dirección de orden superior y varias combinaciones de pines de función, lo que hace que esas funciones no estén disponibles.

Por lo general, los 12 pines que se omiten para reducir el número de pines de 40 a 28 son los tres pines no conectados (NC), uno de los dos pines Vss, uno de los pines de reloj, el pin SYNC, el pin de desbordamiento de conjunto (SO), la interrupción enmascarable o la interrupción no enmascarable (NMI) y las cuatro líneas de dirección más significativas (A12–A15). La omisión de cuatro pines de dirección reduce la direccionabilidad externa a 4 KB (de los 64 KB del 6502), aunque el registro de PC interno y todos los cálculos de dirección efectiva siguen siendo de 16 bits .

El 6507 omite ambos pines de interrupción para incluir la línea de dirección A12, lo que proporciona 8 KB de direccionabilidad externa pero no capacidad de interrupción. El 6507 se utilizó en la popular consola de videojuegos Atari 2600 , cuyo diseño divide el espacio de memoria de 8 KB a la mitad, asignando la mitad inferior a la RAM interna de la consola y los periféricos, y la mitad superior al cartucho de juego, por lo que los cartuchos Atari 2600 tienen un límite de dirección de 4 KB (y el mismo límite de capacidad a menos que el cartucho contenga circuitos de conmutación de bancos ).

Un ordenador popular basado en el 6502, el Commodore 64 , utilizaba una CPU 6502 modificada, la 6510. A diferencia de los 6503–6505 y 6507, el 6510 es un chip de 40 pines que añade hardware interno: un puerto de E/S paralelo de 6 bits asignado a las direcciones 0000 y 0001. El 6508 es otro chip que, al igual que el 6510, añade hardware interno: 256 bytes de SRAM y un puerto de E/S de 8 bits similar a los que presenta el 6510. Aunque estos chips no tienen un número de pines reducido en comparación con el 6502, necesitan nuevos pines para el puerto de E/S paralelo añadido. En este caso, no hay líneas de dirección entre los pines eliminados.

Variaciones
CompañíaModeloDescripción
6502Un chip de 1 MHz utilizado en KIM-1 y otras computadoras de placa única a mediados de la década de 1970.
6502AUn chip de 1,5 MHz utilizado en Asteroids Deluxe y de 2 MHz en BBC Micro
6502BVersión del 6502 capaz de funcionar a una velocidad máxima de 3 MHz en lugar de 2 MHz. La B se utilizó tanto en el Apple III como en los primeros ordenadores Atari de 8 bits, cada uno de ellos funcionando a ~1,8 MHz. [c]
6502CEl 6502C “oficial” era una versión del 6502 original capaz de funcionar hasta a 4 MHz.

No debe confundirse con SALLY, un 6502 personalizado diseñado para Atari (y a veces denominado por ellos como "6502C" [85] ) ni con el 65C02 de nombre similar .

SALLY, C014806, "6502C"Variante personalizada del modelo 6502 diseñada para Atari, utilizada en posteriores ordenadores Atari de 8 bits y en las consolas Atari 5200 y Atari 7800 .

Tiene una señal HALT en el pin 35 y la señal R/W en el pin 36 (estos pines no están conectados (N/C) en un 6502 estándar). Al poner HALT en un nivel bajo, se bloquea el reloj y se pausa el procesador. Esto se utilizó para permitir que los circuitos de video tuvieran acceso directo a la memoria (DMA). [86]

Aunque a veces se lo denomina "6502C" en la documentación de Atari, no es lo mismo que el 6502C "oficial" y el chip en sí nunca está marcado como tal. [85]

MOSCÚ6503Capacidad de direccionamiento de memoria reducida (4 KB) y sin entrada RDY, en un paquete DIP de 28 pines (con la fase 1 (OUT), SYNC, Vss redundante y pines SO del 6502 también omitidos). [87]
MOSCÚ6504Capacidad de direccionamiento de memoria reducida (8 KB), sin NMI y sin entrada RDY, en un paquete DIP de 28 pines (con la fase 1 (OUT), SYNC, Vss redundante y pines SO del 6502 también omitidos). [87]
MOSCÚ6505Capacidad de direccionamiento de memoria reducida (4 KB) y sin NMI, en un paquete DIP de 28 pines (con la fase 1 (OUT), SYNC, Vss redundante y pines SO del 6502 también omitidos). [87]
MOSCÚ6506Capacidad de direccionamiento de memoria reducida (4 KB), sin NMI y sin entrada RDY, pero con los 3 pines de reloj del 6502 (es decir, un reloj de salida de 2 fases), en un paquete DIP de 28 pines (con los pines SYNC, Vss redundantes y SO del 6502 también omitidos). [87]
MOSCÚ6507Capacidad de direccionamiento de memoria reducida (8 KB) y sin interrupciones, en un paquete DIP de 28 pines (con los pines de fase 1 (OUT), SYNC, Vss redundantes y SO del 6502 también omitidos). [87] Este chip se utilizó en el sistema de videojuegos Atari 2600 .
MOSCÚ6508Tiene un puerto de entrada/salida de 8 bits incorporado y 256 bytes de RAM estática interna.
MOSCÚ6509Puede direccionar hasta 1 MB de RAM como 16 bancos de 64 KB y se utilizó en la serie Commodore CBM-II .
MOSCÚ6510Tiene un puerto de entrada/salida programable de 6 bits incorporado y se utilizó en el Commodore 64. El 8500 es efectivamente una versión HMOS del 6510 y lo reemplazó en versiones posteriores del C64.
MOSCÚ6512
6513
6514
6515
Los modelos MOS Technology 6512, 6513, 6514 y 6515 dependen de un reloj externo, en lugar de utilizar un generador de reloj interno como el 650x (por ejemplo, el 6502). Esto se utilizó con ventaja en algunos diseños en los que los relojes podían funcionar de forma asimétrica, lo que aumentaba el rendimiento general de la CPU.

El 6512 es un 6502 con una entrada de reloj de 2 fases para un oscilador de reloj externo, en lugar de un oscilador de reloj integrado. [87] El 6513, 6514 y 6515 son de manera similar equivalentes a (respectivamente) un 6503, 6504 y 6505 con la misma entrada de reloj de 2 fases. [87]

El 6512 se utilizó en la BBC Micro B+64 .

RicohRP2A03
RP2A07
Variantes 6502 sin licencia que funcionan a ~1,8 MHz [c], incluida una unidad de procesamiento de audio pero sin el modo BCD, utilizadas en Nintendo Entertainment System .
MOSCÚ6591
6592
Diseños de sistemas en chip que utilizan un Atari 2600 completo en un paquete DIP de 48 pines. [88] [89]
CDB65C02Versión CMOS del NMOS 6502 que fue diseñado por Bill Mensch del Western Design Center (WDC), que presenta un consumo de energía reducido, soporte para velocidades de reloj mucho más altas, nuevas instrucciones, nuevos modos de direccionamiento para algunas instrucciones existentes y corrección de erratas de NMOS, como el JMP ($xxFF)error.
CSG, MOS65CE02Variante CMOS desarrollada por Commodore Semiconductor Group (CSG), anteriormente MOS Technology. El 65CE02 proporciona un conjunto de instrucciones aún más mejorado que el 65C02, que incluye un tercer registro de indexación (Z), un registro de página base, una pila de 16 bits y una ejecución de programa más rápida con un tiempo mínimo de instrucción reducido de 2 a 1 ciclo de reloj.
RockwellR6511Q

R6500/11, R6500/12, R6500/15 " Microcomputadoras de un solo chip "
Versiones mejoradas del procesador basado en 6502, que también incluyen operaciones de manipulación de bits individuales (RMB, SMB, BBR y BBS), RAM de página cero de 192 bytes en el chip, UART , etc. [90] [91]
RockwellR65F11
R65F12
El Rockwell R65F11 (introducido en 1983) y el posterior R65F12 son versiones mejoradas del procesador basado en 6502, que también incluyen operaciones de manipulación de bits individuales (RMB, SMB, BBR y BBS), RAM de página cero en el chip, ROM de núcleo Forth en el chip, un UART, etc. [92] [93] [94] [95] [96]
GTEG65SC12Se incluye la variante CMOS 6502 sin operaciones de manipulación de bits individuales (RMB, SMB, BBR y BBS). [97] Esto se utilizó en el BBC Master .
GTEG65SC102El software es compatible con el 6502, pero tiene un diseño de pines y un circuito oscilador ligeramente diferentes. El BBC Master Turbo incluía la versión de 4 MHz de esta CPU en una tarjeta de coprocesador, que también podía comprarse por separado y añadirse al Master 128.
RockwellR65C00R65C21R65C29

Los modelos R65C00, R65C21 y R65C29 tienen dos CMOS 6502 mejorados en un solo chip, y el R65C00 y el R65C21 contienen además 2 KB de ROM programable con máscara. [98] [99]
CM630Un clon del Bloque del Este de 1 MHz del 6502 y se utilizó en los Pravetz 8A y 8C, clones búlgaros del Apple II . [100]
MOSCÚ7501
8501
Variantes del modelo 6510 (un modelo 6502 mejorado), introducido en 1984. [101] Ampliaron el número de pines del puerto de E/S de 6 a 7, pero omitieron los pines para salida de reloj e interrupción no enmascarable. [102] Se utiliza en los ordenadores Commodore C-16 , C-116 y Plus/4 . La principal diferencia entre las CPU 7501 y 8501 es que la 7501 se fabricó con el proceso HMOS -1 y la 8501 con HMOS-2. [101]
MOSCÚ8500Introducido en 1985 como una versión HMOS del 6510 (que a su vez se basa en el 6502). Aparte de la modificación del proceso, el 8500 es prácticamente idéntico a la versión NMOS del 6510. Reemplazó al 6510 en versiones posteriores del Commodore 64 .
MOSCÚ8502Diseñado por MOS Technology y utilizado en el Commodore 128. Basado en el MOS 6510 utilizado en el Commodore 64, el 8502 podía funcionar a una frecuencia de reloj dos veces mayor que la del 6510. [103] La familia 8502 también incluye los MOS 7501, 8500 y 8501.
Hudson suaveHuC6280Versión mejorada del WDC 65C02 de la empresa japonesa de videojuegos Hudson Soft . Fabricado para ellos por Seiko Epson y NEC para la SuperGrafx . El producto más notable que utiliza el HuC6280 es la consola de videojuegos TurboGrafx-16 de NEC.
VLSIVL65NC02 [104]La variante 65C02 con licencia VLSI se incluyó en el IC del sistema principal de Atari Lynx llamado Mikey.

Derivados de 16 bits

El Western Design Center diseñó y actualmente produce el procesador WDC 65C816 S, un sucesor de 16 bits y núcleo estático del 65C02 . El W65C816S es una variante más nueva del 65C816, que es el núcleo de la computadora Apple IIGS y es la base del procesador Ricoh 5A22 que impulsa el Super Nintendo Entertainment System . El W65C816S incorpora pequeñas mejoras con respecto al 65C816 que hacen que el chip más nuevo no sea un reemplazo exacto compatible con el hardware del anterior. Entre estas mejoras se encontraba la conversión a un núcleo estático, lo que permite detener el reloj en cualquiera de las fases sin que los registros pierdan datos. Disponible a través de distribuidores de productos electrónicos, a partir de marzo de 2020, el W65C816S está clasificado oficialmente para operar a 14 MHz.

El Western Design Center también diseñó y produjo el 65C802 , que era un núcleo 65C816 con un espacio de dirección de 64 kilobytes en un encapsulado compatible con pines 65(C)02. El 65C802 podía ser adaptado a una placa 6502 y funcionaba como un 65C02 al encenderse, operando en "modo emulación". Al igual que con el 65C816, una secuencia de dos instrucciones cambiaría el 65C802 a operación en "modo nativo", exponiendo su acumulador de 16 bits y registros de índice , y otras características del 65C816. El 65C802 no fue ampliamente utilizado y la producción terminó.

Errores y peculiaridades

El 6502 tenía varios errores y peculiaridades que había que tener en cuenta al programarlo:

  • Las primeras revisiones del 6502, como las que se entregaban con algunas computadoras KIM-1 , no tenían una instrucción ROR (rotar a la derecha la memoria o el acumulador). La operación de ROR en estos chips es efectivamente una instrucción ASL (desplazamiento aritmético a la izquierda) que no afecta al bit de acarreo en el registro de estado. MOS omitió por completo la instrucción de la documentación del chip, prometiendo que ROR aparecería en los chips 6502 a partir de 1976. [49] [d] La gran mayoría de los chips 6502 que existen hoy en día no presentan esta peculiaridad.
  • La familia NMOS 6502 tiene una variedad de instrucciones no documentadas , que varían de un fabricante de chips a otro. La decodificación de instrucciones 6502 se implementa en una matriz lógica cableada (similar a una matriz lógica programable ) que solo está definida para 151 de los 256 códigos de operación disponibles . Los 105 restantes desencadenan acciones extrañas y, en ocasiones, difíciles de predecir, como bloquear el procesador, ejecutar dos instrucciones válidas consecutivamente, realizar mezclas extrañas de dos instrucciones o simplemente no hacer nada en absoluto. Eastern House Software desarrolló el "Trap65", un dispositivo que se conectaba entre el procesador y su zócalo para convertir (atrapar) códigos de operación no implementados en instrucciones BRK (interrupción de software). [ cita requerida ] Algunos programadores utilizaron esta característica para ampliar el conjunto de instrucciones 6502 al proporcionar funcionalidad para los códigos de operación no implementados con software escrito especialmente interceptado en el vector 0xFFFE de la instrucción BRK. [105] [106] Todos los códigos de operación no definidos han sido reemplazados por instrucciones NOP en el 65C02 , una versión CMOS mejorada del 6502, aunque con tamaños de bytes y tiempos de ejecución variables. En el 65C802/65C816 , los 256 códigos de operación realizan operaciones definidas.
  • La instrucción de salto indirecto de memoria del 6502 , JMP (<address>), está parcialmente rota. Si <address> es hexadecimal xxFF (es decir, cualquier palabra que termine en FF ), el procesador no saltará a la dirección almacenada en xxFF y xxFF+1como se esperaba, sino a la definida por xxFF y xx00 (por ejemplo, JMP ($10FF)saltaría a la dirección almacenada en 10FF y 1000, en lugar de la almacenada en 10FF y 1100). Este defecto continuó a lo largo de toda la línea NMOS, pero se corrigió en los derivados CMOS.
  • El direccionamiento indexado NMOS 6502 a través de los límites de página realizará una lectura adicional de una dirección no válida. Esta característica puede causar problemas aleatorios al acceder al hardware que actúa sobre una lectura, como borrar el temporizador o los indicadores IRQ, enviar un protocolo de enlace de E/S, etc. Este defecto continuó en toda la línea NMOS, pero se corrigió en los derivados CMOS, en los que el procesador realiza una lectura adicional del último byte de instrucción.
  • Las instrucciones de lectura, modificación y escritura del 6502 realizan un ciclo de lectura y dos de escritura. Primero, se vuelven a escribir los datos no modificados que se leyeron y, luego, se escriben los datos modificados. Esta característica puede causar problemas al acceder dos veces al hardware que actúa sobre una escritura. Esta anomalía continuó a lo largo de toda la línea NMOS, pero se solucionó en los derivados CMOS, en los que el procesador realiza dos lecturas y un ciclo de escritura. La práctica de programación defensiva generalmente evitará este problema al no ejecutar instrucciones de lectura, modificación y escritura en los registros de hardware.
  • Los indicadores de estado N (resultado negativo), V (desbordamiento de bit de signo) y Z (resultado cero) generalmente no tienen sentido cuando se realizan operaciones aritméticas mientras el procesador está en modo BCD , ya que estos indicadores reflejan el resultado binario, no BCD. Esta limitación se eliminó en los derivados CMOS. Por lo tanto, esta característica se puede utilizar para distinguir un procesador CMOS de una versión NMOS. [107]
  • Si el 6502 se encuentra en modo BCD cuando se produce una interrupción de hardware, no volverá al modo binario. Esta característica podría provocar errores ocultos en la rutina de servicio de interrupción si no logra borrar el modo BCD antes de realizar cualquier operación aritmética. Por ejemplo, el KERNAL del Commodore 64 no manejaba correctamente esta característica del procesador, lo que requería que las IRQ se deshabilitaran o se redireccionaran durante las operaciones matemáticas BCD. Este problema también se solucionó en los derivados de CMOS.
  • El conjunto de instrucciones 6502 incluye BRK (código de operación $00), que técnicamente es una interrupción de software (similar en espíritu al mnemónico SWI de los procesadores Motorola 6800 y ARM ). BRK se utiliza con mayor frecuencia para interrumpir la ejecución de un programa e iniciar un monitor de lenguaje de máquina para realizar pruebas y depuraciones durante el desarrollo de software. BRK también se puede utilizar para enrutar la ejecución de un programa utilizando una tabla de saltos simple (de manera análoga a la forma en que el Intel 8086 y sus derivados manejan las interrupciones de software por número). Sin embargo, si se produce una interrupción de hardware cuando el procesador está recuperando una instrucción BRK, la versión NMOS del procesador no ejecutará BRK y, en su lugar, procederá como si solo se hubiera producido una interrupción de hardware. Esta falla se corrigió en la implementación CMOS del procesador.
  • Al ejecutar instrucciones JSR (saltar a subrutina) y RTS (regresar desde subrutina), la dirección de retorno empujada a la pila por JSR es la del último byte del operando JSR (es decir, el byte más significativo de la dirección de la subrutina), en lugar de la dirección de la siguiente instrucción. Esto se debe a que la copia real (del contador de programa a la pila y luego a la inversa) tiene lugar antes del incremento automático del contador de programa que ocurre al final de cada instrucción. [108] Esta característica pasaría desapercibida a menos que el código examinara la dirección de retorno para recuperar parámetros en el flujo de código (un modismo de programación 6502 documentado en el Manual de referencia técnica de ProDOS 8 ). Sigue siendo una característica de los derivados 6502 hasta el día de hoy.
  • El acceso de lectura de la CPU se puede retrasar configurando el pin RDY en bajo temporalmente. Sin embargo, durante el acceso de escritura, que puede tardar hasta tres ciclos de reloj para una instrucción BRK, la CPU se detendrá solo en el siguiente ciclo de lectura. [109] Esta peculiaridad se corrigió en los derivados CMOS y también en el 6510 y sus variantes.

Véase también

Notas

  1. ^ Un ejemplo de este tipo de diseño fueron las computadoras Atari de 8 bits , que utilizan DMA para compartir memoria entre el 6502 y el chip de video ANTIC. Esto se implementó con un solo flip-flop, que luego se incorporó a las versiones "Sally" personalizadas del 6502 utilizadas en estas máquinas. [45]
  2. ^ Dado que el código OP todavía hacía algo en la versión original del procesador, pero no una instrucción ROR correcta, esto provocó un mito persistente de que el 6502 original tenía un error en su instrucción ROR. [50] [51] [52]
  3. ^ ab Más precisamente, estos sistemas dividen internamente un cristal de ráfaga de color NTSC , lo que produce 315176  Mhz = 1,78977 27  MHz.
  4. ^ Eric Schlaepfer, que construyó una réplica transistorizada del 6502 en monster6502.com, sostiene en su vídeo de Youtube "The 6502 Rotate Right Myth" (de TubeTimeUS) que, según Chuck Peddle y Bill Mensch, no había ningún error ROR. En cambio, la instrucción no se implementó en absoluto porque se consideró innecesaria. Schlaepfer luego compara capturas de pantalla de la revisión inicial con revisiones posteriores del 6502 y demuestra que la instrucción ROR no estaba presente ni en la decodificación de instrucciones, ni en el cableado ni en las partes de ejecución del chip.

Referencias

Citas

  1. ^ "El MOS 6502 y el mejor diseñador gráfico del mundo". swtch.com. 2011-01-03. Archivado desde el original el 2014-09-08 . Consultado el 2014-08-09 .
  2. ^ "MOnSter6502 Una réplica completa y funcional de transistores discretos (es decir, no integrados todos en un solo chip) del microprocesador MOS 6502 clásico". monster6502.com. 2017. Archivado desde el original el 2017-05-12 . Consultado el 2017-05-01 .
  3. ^ de William Mensch (9 de octubre de 1995). "Entrevista con William Mensch" (vídeo web). Entrevista realizada por Rob Walker. Atherton, California: Silicon Genesis Project , Stanford University Libraries. Archivado desde el original el 4 de marzo de 2016. Consultado el 22 de diciembre de 2023 .William Mensch y el moderador pronuncian el microprocesador 6502 como "sesenta y cinco-cero-dos" .
  4. ^ "Western Design Center (WDC), sede de la tecnología de microprocesadores 65xx". www.westerndesigncenter.com . Archivado desde el original el 8 de abril de 2019 . Consultado el 8 de abril de 2019 .
  5. ^ "Motorola demanda a MOS Technology" (PDF) . Microcomputer Digest . 2 (6). Cupertino CA: Microcomputer Associates: 11 de diciembre de 1975. Archivado desde el original (PDF) el 4 de julio de 2009.
  6. ^ Jenkins, Francis; Lane, E.; Lattin, W.; Richardson, W. (noviembre de 1973). "Modelado de dispositivos MOS para implementación en computadoras". IEEE Transactions on Circuit Theory . 20 (6). IEEE: 649–658. doi :10.1109/tct.1973.1083758. ISSN  0018-9324.Todos los autores trabajaban en la División de Productos Semiconductores de Motorola.
  7. ^ "Motorola se suma a la carrera de los microprocesadores con la entrada de 8 bits". Electrónica . 47 (5). Nueva York: McGraw-Hill: 29–30. 7 de marzo de 1974.
  8. ^ Historia oral del Motorola 6800 (2008), pág. 9
  9. ^ US3942047A, Buchanan, John K., "Circuito amplificador de voltaje CC MOS", publicado el 2 de marzo de 1976  Archivado el 13 de febrero de 2024 en Wayback Machine.
  10. ^ US3987418A, Buchanan, John K., "Topografía de chip para chip de microprocesador de circuito integrado MOS", publicado el 19 de octubre de 1976 Archivado el 13 de febrero de 2024 en Wayback Machine. 
  11. ^ Historia oral del Motorola 6800 (2008), pág. 8
  12. ^ Historia oral de Mensch (1995) Mensch obtuvo un título asociado de la Universidad de Temple en 1966 y luego trabajó en Philco Ford como técnico en electrónica antes de asistir a la Universidad de Arizona.
  13. ^ US3968478A, Jr, William D. Mensch, "Topografía de chip para circuito de interfaz MOS", publicado el 6 de julio de 1976 Archivado el 13 de febrero de 2024 en Wayback Machine. 
  14. ^ Donohue, James F. (27 de octubre de 1988). "Las dos primeras décadas del microprocesador: cómo era". EDN . 33 (22A). Cahners Publishing: 18–32. ISSN  0012-7515.Página 30. Bennett ya estaba trabajando en lo que se convertiría en el 6800. "Me contrató", dice Peddle sobre Bennett, "para hacer el trabajo de soporte arquitectónico para el producto que ya había comenzado". … dice Peddle. "Motorola intentó matarlo varias veces. Sin Bennett, el 6800 no habría existido, y gran parte de la industria tampoco habría existido".
  15. ^ US3975712A, Hepworth, Edward C.; Means, Rodney J. y Peddle, Charles I., "Adaptador de interfaz de comunicación asincrónica", publicado el 17 de agosto de 1976 Archivado el 13 de febrero de 2024 en Wayback Machine. 
  16. ^ Motorola (5 de agosto de 1976). «Se mantienen al frente con la familia M6800 de Motorola». Electrónica . 49 (16). McGraw-Hill: 51. Archivado desde el original el 10 de enero de 2014 . Consultado el 4 de junio de 2012 .Anuncio que muestra tres aplicaciones integradas de TRW, HP y RUSCO.
  17. ^ Historia oral del Motorola 6800 (2008), pág. 89
  18. ^ "Es la familia de productos completa". Electrónica . 48 (1). Nueva York: McGraw Hill: 37. 9 de enero de 1975. Archivado desde el original el 11 de noviembre de 2012 . Consultado el 4 de junio de 2012 .Anuncio publicitario de Motorola que destaca su conjunto completo de chips periféricos y herramientas de desarrollo. Esto acortó el ciclo de diseño del producto del cliente.
  19. ^ Historia oral del Motorola 6800 (2008) pág. 18
  20. ^ "El conjunto de microprocesadores de Motorola es n-MOS de 1 MHz". Ingeniería de Control . 21 (11): 11. Noviembre 1974.El precio del microprocesador MC6800 era de 360 ​​dólares. El adaptador de interfaz de comunicaciones asíncronas (ACIA) MC6850 estaba previsto para su introducción en el primer trimestre de 1975.
  21. ^ Kaye, Glynnis Thompson, ed. (1984). Una revolución en progreso: una historia de Intel hasta la fecha (PDF) . Intel Corporation. p. 14. Número de pedido: 231295. Archivado desde el original (PDF) el 23 de octubre de 2012 . Consultado el 30 de diciembre de 2016 ."Shima implementó el 8080 en aproximadamente un año y el nuevo dispositivo se presentó en abril de 1974 por 360 dólares".
  22. ^ "Motorola monta la unidad M6800". Electrónica . 48 (8). Nueva York: McGraw-Hill: 25. 17 de abril de 1975."Los distribuidores están abasteciéndose con la familia M6800, y la división también está ofreciendo un kit introductorio que incluye las seis partes iniciales de la familia, además de manuales de aplicaciones y programación, por $300".
  23. ^ Entrevista 2014, 52:30.
  24. ^ Entrevista 2014, 54:45.
  25. ^ Bagnall (2010), p. 11. La nueva oferta de Peddle llegó en un momento oportuno para los desarrolladores de 6800. "No querían ir a Austin, Texas", explica Mensch.
  26. ^ Entrevista 2014, 54:40.
  27. ^ Entrevista 2014, 55:50.
  28. ^ Waller, Larry (13 de noviembre de 1975). "Motorola busca poner fin a la crisis". Electrónica . 48 (23). Nueva York: McGraw-Hill: 96–98.Resumen: Los productos semiconductores se dividieron en dos partes: circuitos integrados y componentes discretos. Las pérdidas de semiconductores durante los últimos cuatro trimestres superaron los 30 millones de dólares. La organización de ventas perdió su sensibilidad a las necesidades de los clientes, "los retrasos en la respuesta a los recortes de precios hicieron que los clientes compraran en otro lado". Los problemas técnicos plagaron la producción de circuitos integrados. Los problemas "no están en el diseño, sino en el rendimiento de los chips y las matrices". Los problemas se han resuelto. El microprocesador MC6800 "llegó en noviembre de 1974".
  29. ^ Entrevista 2014, 56:30.
  30. ^ Entrevista 2014, 55:00.
  31. ^ Bagnall (2010), pág. 13.
  32. ^ MOS Technology (14 de noviembre de 1974). «Las primeras matrices de calculadoras científicas de un solo chip». Electrónica . 47 (23). McGraw-Hill: 90–91. Archivado desde el original el 10 de enero de 2014 . Consultado el 4 de junio de 2012 .
  33. ^ Entrevista 2014, 57:00.
  34. ^ Entrevista 2014, 58:30.
  35. ^ Cass, Stephen (16 de septiembre de 2021). "Preguntas y respuestas con el cocreador del procesador 6502". IEEE Spectrum . Archivado desde el original el 20 de septiembre de 2021. Consultado el 20 de septiembre de 2021 .
  36. ^ Ho, Joshua (9 de octubre de 2014). «Introducción a la física, la tecnología y la industria de los semiconductores». Anandtech . Archivado desde el original el 24 de febrero de 2020. Consultado el 24 de febrero de 2020 .
  37. ^ Historia oral del Motorola 6800 (2008), pág. 10.
  38. ^ abc Cushman 1975, pág. 40.
  39. ^ "Microprocesador 8080A – encapsulado DIP 40". CPU World . Archivado desde el original el 15 de septiembre de 2020 . Consultado el 24 de febrero de 2020 .
  40. ^ desde Cushman 1975, pág. 38.
  41. ^ ab "Moore's Law Milestones". IEEE . 30 de abril de 2015. Archivado desde el original el 24 de febrero de 2020 . Consultado el 24 de febrero de 2020 .
  42. ^ Bagnall (2010), p. 19: "Paivinen le prometió a Peddle que tendría listo el proceso del canal n. Cumplió su palabra".
  43. ^ abc Cushman 1975, pág. 36.
  44. ^ abc Cushman 1975, pág. 41.
  45. ^ Purcaru, John (2014). Juegos vs. Hardware. La historia de los videojuegos para PC: los años 80. p. 317.
  46. ^ Entrevista 2014, 1:01:00.
  47. ^ Entrevista 2014, 1:02:00.
  48. ^ Entrevista 2014, 1:02:30.
  49. ^ ab Archivo:MCS650x Conjunto de instrucciones.jpg
  50. ^ "Medición del error ROR en el MOS 6502 inicial – pagetable.com". Archivado desde el original el 21 de marzo de 2023. Consultado el 25 de febrero de 2023 .
  51. ^ "¿Cómo probar un 6502 cerámico para detectar el error ROR? | Applefritter". Archivado desde el original el 2023-02-25 . Consultado el 2023-02-25 .
  52. ^ "El mito de la rotación a la derecha del 6502". YouTube . Archivado desde el original el 2023-02-25 . Consultado el 2023-02-25 .
  53. ^ "La línea de microprocesadores ofrece 4, 8 y 16 bits". Electrónica . 48 (15). Nueva York: McGraw-Hill: 118. 24 de julio de 1975.El artículo trata sobre los modelos 6501 y 6502, además de las versiones de 28 pines que solo admitirían 4K de memoria. También se refirió a dispositivos futuros como "un diseño que Peddle llama pseudo 16".
  54. ^ Sugarman, Robert (25 de agosto de 1975). "¿Necesita el país un buen microprocesador de 20 dólares?" (PDF) . EE Times . Manhasset, Nueva York: CMP Publications: 25. Archivado desde el original (PDF) el 3 de febrero de 2007. Consultado el 5 de febrero de 2008 .
  55. ^ Fylstra, Daniel (noviembre de 1975). "Hijo de Motorola (o el chip de CPU de 20 dólares )". Byte . 1 (3). Peterborough, NH: Green Publishing: 56–62.Comparación de los microprocesadores 6502 y 6800. El autor visitó MOS Technology en agosto de 1975.
  56. ^ "Microprocesador de tercera generación" (PDF) . Microcomputer Digest . 2 (2). Cupertino, CA: Microcomputer Associates : 1–3. Agosto de 1975. Archivado desde el original (PDF) el 2009-07-04 . Consultado el 2009-11-27 .
  57. ^ "El microprocesador MOS 6501 supera a todos". Electrónica . 48 (16). Nueva York: McGraw-Hill: 60–61. 7 de agosto de 1975.
  58. ^ "MOS 6502, el segundo de una familia de microprocesadores de alto rendimiento y bajo coste". Computer . 8 (9). IEEE Computer Society: 38–39. Septiembre de 1975. doi :10.1109/CM.1975.219074. Archivado desde el original el 24 de febrero de 2021 . Consultado el 4 de junio de 2012 .
  59. ^ Bagnall (2010), págs. 33-35.
  60. Signetics (30 de octubre de 1975). «El microprocesador más fácil de usar». Electrónica . 48 (22). McGraw-Hill: 114–115. Archivado desde el original el 20 de noviembre de 2015 . Consultado el 20 de noviembre de 2015 .
  61. ^ Motorola (30 de octubre de 1975). «Todo esto y un microprocesador de 69 dólares sin paquete». Electrónica . 48 (22). McGraw-Hill: 11. Archivado desde el original el 15 de diciembre de 2011 . Consultado el 8 de agosto de 2010 .El precio por unidad del MC6800 se redujo de $175 a $69 . El precio anterior para 50 a 99 unidades era de $125 .
  62. ^ Waller, Larry (13 de noviembre de 1975). "Noticias breves: Motorola busca detener a su enemigo en el campo de los microprocesadores". Electrónica . 48 (23). Nueva York: McGraw-Hill: 38."Motorola dijo la semana pasada que solicitaría una orden judicial inmediata para impedir que MOS Technology Inc., de Norristown, Pensilvania, fabrique y venda productos con microprocesadores, incluido su modelo MCS6500". (Este número fue publicado el 7 de noviembre.)
  63. ^ Motorola recibió las siguientes patentes estadounidenses sobre la familia de microprocesadores 6800: 3962682, 3968478, 3975712, 3979730, 3979732, 3987418, 4003028, 4004281, 4004283, 4006457, 4010448, 4016546, 4020472, 4030079, 4032896, 4037204, 4040035, 4069510, 4071887, 4086627, 4087855, 4090236, 4145751, 4218740, 4263650.
  64. ^ Bagnall (2010), pág. 53-54. "Él [Mike Janes] tenía todo su trabajo original del 6800 y lo ocultó de Motorola…
  65. ^ "Motorola y MOS Technology llegan a un acuerdo sobre la demanda de patentes". Electrónica . 49 (7). Nueva York: McGraw-Hill: 39. 1 de abril de 1975."MOS Technology Inc. de Norristown, Pensilvania, ha acordado retirar del mercado su microprocesador MCS6501 y pagar a Motorola Inc. 200.000 dólares ..." "MOS Technology y ocho ex empleados de Motorola han devuelto, en virtud de una orden judicial, documentos que Motorola sostiene que son confidenciales". "...ambas empresas han acordado una licencia cruzada relacionada con patentes en el campo de los microprocesadores".
  66. ^ Bagnall (2010), págs. 55-56
  67. ^ "Fusiones y adquisiciones". Mini-Micro Systems . 9 (11). Cahners: 19 de noviembre de 1976."Commodore International... está comprando MOS Technology (Norristown, PA). Esto salva a la empresa de semiconductores, fundada hace seis años, de un desastre inminente".
  68. ^ ab Goodwins, Rupert (4 de diciembre de 2010). "Las víctimas de Intel: ocho posibles asesinos de gigantes". ZDNet . Archivado desde el original el 5 de mayo de 2013. Consultado el 7 de marzo de 2012 .
  69. ^ Reimer, Jeremy. «Cuota de mercado de las computadoras personales: 1975-2004». Archivado desde el original el 6 de junio de 2012. Consultado el 17 de julio de 2009 .
  70. ^ "¿Cuántos ordenadores Commodore 64 se vendieron?". Archivado desde el original el 6 de marzo de 2016. Consultado el 1 de febrero de 2011 .
  71. ^ "Kit de mejora de Apple IIe - Periférico - Historia de la informática". www.computinghistory.org.uk . Archivado desde el original el 8 de agosto de 2020 . Consultado el 23 de octubre de 2023 .
  72. ^ "4. CPU/ROM". www.monlynx.de . Archivado desde el original el 20 de septiembre de 2023 . Consultado el 23 de octubre de 2023 .
  73. ^ Corder, Mike (primavera de 1999). "Big Things in Small Packages". Pioneers' Progress with picoJava Technology (Progreso de los pioneros con la tecnología picoJava) . Sun Microelectronics. Archivado desde el original el 12 de marzo de 2006. Consultado el 23 de abril de 2012. El primer 6502 se fabricó con tecnología de 8 micrones, funcionaba a un megahercio y tenía una memoria máxima de 64k.
  74. ^ "Cómo implementar el uso compartido de bus/DMA en un sistema 6502". Archivado desde el original el 15 de agosto de 2020. Consultado el 30 de septiembre de 2020 .
  75. ^ "MODELO DE PROGRAMACIÓN MCS650X". MANUAL DE PROGRAMACIÓN DE MICROCOMPUTADORAS MOS . MOS TECHNOLOGY, INC. Enero de 1976.
  76. ^ Anderson, JS (21 de agosto de 2012). Tecnología de microprocesadores. Routledge . p. 153. ISBN 9781136078057.
  77. ^ "Indicadores de estado". Wiki de NESdev . Consultado el 11 de junio de 2024 .
  78. ^ "Microprocesador de canal N de 8 bits 8080A/8080A-1/8080A-2" (PDF) . Intel. Archivado (PDF) del original el 15 de noviembre de 2021 . Consultado el 16 de noviembre de 2021 .
  79. ^ abc Parker, Neil. "El conjunto de instrucciones 6502/65C02/65C816 descifrado". Página de Neil Parker sobre Apple II . Archivado desde el original el 2019-07-16 . Consultado el 2019-07-16 .
  80. ^ Conjunto de instrucciones 6502 Archivado el 8 de mayo de 2018 en Wayback Machine .
  81. ^ Códigos de operación NMOS 6502. Archivado el 14 de enero de 2016 en Wayback Machine .
  82. ^ Breaking NES Book – 6502 Core (PDF) (B5 ed.). 2022-06-24. págs. 61–62. Archivado (PDF) del original el 2024-04-12 . Consultado el 2023-12-24 . La llegada de cualquier interrupción se refleja en el indicador B, cuya salida (B_OUT) obliga al procesador a ejecutar una instrucción BRK...
  83. ^ "6502 BRK y bit B". VisualChips . Archivado desde el original el 2021-04-05 . Consultado el 2021-05-15 .
  84. ^ "BANDERAS". ogamespec . Consultado el 15 de mayo de 2021 . B_OUT; BUS DE DATOS INTERNO (DB)
  85. ^ ab "FAQ 400 800 XL XE: ¿Qué son SALLY, ANTIC, CTIA/GTIA/FGTIA, POKEY y FREDDIE?". Archivado del original el 19 de julio de 2020. Los ingenieros de Atari lo llaman SALLY, pero [los documentos de soporte lo llaman] "6502 (Modificado)", "6502 Modificado", "6502 Personalizado" o "6502C". [..] Los chips SALLY 6502 nunca están marcados como "6502C" sino que, a excepción del UMC UM6502I, siempre están [marcados] como C014806. [..] [Otros] chips marcados como "6502C" [..] NO son los "6502C" de Atari sino los [6502 estándar] certificados para 4 MHz
  86. ^ "Microprocesador de CPU 6502 (modificado)". MANUAL DE SERVICIO DE CAMPO DE LA COMPUTADORA DOMÉSTICA ATARI 1200 XL . ATARI. Febrero de 1983.
  87. ^ abcdefg Catálogo de datos de tecnología MOS de 1982 (PDF obtenido de bitsavers.org)
  88. ^ "AtariAge: clon A2600, distribución de pines del chip 6591". 3 de agosto de 2015. Archivado desde el original el 5 de agosto de 2020. Consultado el 22 de julio de 2019 .
  89. ^ "Hackaday: El Atari 2600 más pequeño de la historia". 7 de abril de 2012. Archivado desde el original el 22 de julio de 2019. Consultado el 22 de julio de 2019 .
  90. ^ "Rockwell R6511Q". Archivado desde el original el 15 de septiembre de 2020. Consultado el 30 de abril de 2020 .
  91. ^ "Microcomputadoras de un solo chip Rockwell R6500/11, R6500/12 y R6500/15". 7 de junio de 1987. Archivado desde el original el 4 de agosto de 2020. Consultado el 30 de abril de 2020 .
  92. ^ Randy M. Dumse. "Los ordenadores Forth de un solo chip R65F11 y F68K". [1] [ enlace muerto permanente ] [2] Archivado el 2 de diciembre de 2014 en Wayback Machine . 1984.
  93. ^ Ed Schmauch. "Un sistema computarizado de monitoreo de corrosión" [ enlace muerto permanente ] . 1986.
  94. ^ Lawrence P. Forsley. "Sistemas integrados: Conferencia de la Cuarta Conferencia de Rochester de 1990: 12 al 16 de junio de 1990, Universidad de Rochester" Archivado el 25 de marzo de 2015 en Wayback Machine . pág. 51.
  95. ^ Rockwell. "Manual del usuario de RSC-Forth" Archivado el 7 de diciembre de 2013 en Wayback Machine . 1983.
  96. ^ "Rockwell R65F11 R65F12 Forth Based Microcomputers" (PDF) . Junio ​​de 1987. Archivado (PDF) del original el 4 de agosto de 2020. Consultado el 28 de abril de 2020 .
  97. ^ Zaks, Rodnay. Programando el 6502 . pag. 348.
  98. ^ "Arquivo.pt" (PDF) . Archivado desde el original (PDF) el 15 de mayo de 2016. Consultado el 26 de octubre de 2014 .
  99. ^ "rockwell :: dataBooks :: Libro de datos de Rockwell de 1985" – vía Internet Archive.
  100. ^ "Ordenador doméstico de Europa del Este: Bulgaria". HCM: Museo del Ordenador Doméstico . Archivado desde el original el 1 de julio de 2006. Consultado el 3 de octubre de 2020 .
  101. ^ desde http://plus4world.powweb.com/hardware/MOS_75018501 Archivado el 20 de febrero de 2020 en Wayback Machine Hardware: MOS 7501/8501
  102. ^ https://ist.uwaterloo.ca/~schepers/MJK/7501.html Archivado el 19 de julio de 2021 en Wayback Machine CPU 7501 / 8501
  103. ^ Manual de servicio de la computadora C-128/C128D , Commodore Business Machines, PN-314001-08, noviembre de 1987
  104. ^ "VL65NC02". Hoja de datos de circuitos integrados: ASIC VTI 1988. págs. 225–238.
  105. ^ Moser, Carl W. (enero de 1979). "Add a Trap Vector for Unimplemented 6502 Opcodes" (PDF) . Dr. Dobb's Journal of Computer Calisthenics and Orthodontia . N.º 31. Menlo Park, California. pág. 32. Archivado (PDF) desde el original el 2016-06-11 . Consultado el 2017-01-07 .
  106. ^ Harrod, Dennette A. (octubre de 1980). "El 6502 obtiene instrucciones microprogramables". BYTE . Vol. 5, no. 10. Peterborough, New Hampshire. p. 282 . Consultado el 7 de enero de 2017 .
  107. ^ Draco (19 de junio de 1997). "65c02, 6502, 65816 ??? La CPU se vende pero quién la compra..." Archivado desde el original el 2 de enero de 2008.
  108. ^ Andrews, Mark (1984). "6". Atari Roots: una guía para el lenguaje ensamblador de Atari . Datamost, Incorporated. ISBN 0-88190-171-7Archivado desde el original el 24 de abril de 2008. Consultado el 14 de junio de 2008 .
  109. ^ "1.4.1.2.8 RDY--Ready (p.37)". Manual de hardware de la serie 6500; 2.ª edición . MOS Technology, INC. Enero de 1976.

Bibliografía

  • Peddle, Chuck (12 de junio de 2014). "Historia oral de Chuck Peddle" (Entrevista). Entrevista realizada por Doug Fairbairn y Stephen Diamond. Archivado desde el original el 18 de noviembre de 2021.
  • Bagnall, Brian (2010). Commodore, una compañía al límite (2.ª ed.). Winnipeg, Manitoba: Variant Press. ISBN 978-0-9738649-6-0.
  • Bennett, Thomas; Ekiss, John; Lattin, William (Bill); Lavell, Jeff (28 de marzo de 2008). "Panel de historia oral del Motorola 6800" (PDF) (Entrevista). Entrevista realizada por David Laws. Archivado (PDF) del original el 13 de abril de 2021. Consultado el 30 de enero de 2021 .
  • Cushman, Robert H. (20 de septiembre de 1975). "μP de segunda generación y media: piezas de 10 dólares que funcionan como las Mini de gama baja" (PDF) . EDN . 20 (17). Boston: Cahners Publishing: 36–42. Archivado desde el original (PDF) el 24 de abril de 2016.
  • Entrevista a William Mensch Stanford y el Proyecto Silicon Valley, 9 de octubre de 1995. Transcripción

Lectura adicional

Hojas de datos y manuales
  • Hoja de datos de la serie 6500 ; Tecnología MOS; 12 páginas; 1976.
  • Manual de hardware de la serie 6500 Archivado el 13 de septiembre de 2011 en Wayback Machine ; 2.ª edición; Tecnología MOS; 182 páginas; 1976.
  • Manual de programación de la serie 6500 Archivado el 13 de septiembre de 2011 en Wayback Machine ; 2.a edición; Tecnología MOS; 262 páginas; 1976.
Libros
  • 6502 Libro de aplicaciones ; 1.ª edición; Rodnay Zaks ; Sybex; 281 páginas; 1979; ISBN 978-0895880154 . (archivo) 
  • 6502 Programación en lenguaje ensamblador ; 2.ª edición; Lance Leventhal; Osborne/McGraw-Hill; 650 páginas; 1986; ISBN 978-0078812163 . (archivo) 
  • 6502 Subrutinas en lenguaje ensamblador ; 1.ª edición; Lance Leventhal y Winthrop Saville; Osborne/McGraw-Hill; 550 páginas; 1982; ISBN 978-0931988592 . (archivo) 
  • 6502 Juegos ; 1.ª edición; Rodnay Zaks; Sybex; 292 páginas; 1980; ISBN 978-0895880222 . (archivo) 
  • Manual del usuario 6502 ; 1.ª edición; Joseph Carr; Reston; 288 páginas; 1984; ISBN 978-0835970020 . (archivo) 
  • Programación avanzada 6502 ; 1.ª edición; Rodnay Zaks; John Wiley & Sons; 292 páginas; 1982; ISBN 978-0895880895 . (archivo) 
  • Lenguaje de máquina para principiantes – Programación en lenguaje de máquina para computadoras personales Atari, VIC, Apple, C64 y PET ; 1.ª edición; Richard Mansfield; Compute! Publications; 350 páginas; 1983; ISBN 978-0942386110 . (archivo) Archivado el 10 de agosto de 2016 en Wayback Machine 
  • Programación del 6502 ; 4.ª edición; Rodnay Zaks; Sybex; 408 páginas; 1983; ISBN 978-0895881359 . (archivo) 
  • Programación del 65816 , incluidos el 6502, el 65C02 y el 65802 ; 1.ª edición; David Eyes y Ron Lichty; Prentice Hall; 636 páginas; 1986; ISBN 978-0893037895 . (archivo) 
  • Microprocesadores y lenguaje ensamblador ; Turco; 7.a edición; Nurettin Topaloglu; Seckin Yayinevi; 328 páginas; 2021; ISBN 978-975-02-6663-8 . 
Tarjetas de referencia
  • Tarjeta de referencia instantánea de microprocesador 6502 ; James Lewis; Micro Logic; 2 páginas; 1980. (archivo) Archivado el 4 de septiembre de 2019 en Wayback Machine.
  • 6502.org – el recurso del microprocesador 6502 Archivado el 29 de noviembre de 2020 en Wayback Machine – repositorio
  • El auge de la tecnología MOS y el 6502 – Archivo Commodore
  • Información de 650x Archivado el 11 de marzo de 2020 en Wayback Machine – Descripción concisa, fotos de chips MOS y de segunda fuente; en cpu-collection.de
  • mdfs.net – conjunto de instrucciones 6502
  • Clever, Eric. «6502 – el primer µP RISC». Archivado desde el original el 24 de mayo de 2012.
  • Harrod, Dennette A. (octubre de 1980). «6502 obtiene instrucciones microprogramables». Byte . Vol. 5, núm. 10. McGraw Hill . págs. 282–285. ISSN  0360-5280. Archivado desde el original el 25 de mayo de 2006 . Consultado el 14 de mayo de 2006 .
Simuladores, emuladores
  • Ensamblador y emulador compatible con 6502 en línea, escrito en JavaScript Archivado el 8 de febrero de 2011 en Wayback Machine
  • Lista de 6502 emuladores de software Archivado el 19 de septiembre de 2020 en Wayback Machine – Zophar's Domain
  • Simulador 6502 para Windows Archivado el 4 de diciembre de 2004 en Wayback Machine – Sede de Atari Gaming
  • Simulación visual a nivel de transistor de la CPU 6502 Archivado el 14 de marzo de 2011 en Wayback Machine
  • Núcleo de CPU MCL65 6502, código C en GitHub – MicroCore Labs
Tableros
  • Placa 6502 de 7/8 chips de Grant Archivado el 6 de junio de 2022 en Wayback Machine
  • Placa de entrenamiento del microprocesador 6502 Archivado el 14 de julio de 2019 en Wayback Machine
  • Construye tu propia placa de entrenamiento KIM-1 Archivado el 14 de julio de 2019 en Wayback Machine – ver KIM-1
  • Computadora doméstica 6502 en GitHub
  • Computadora de placa única PE6502 Archivado el 3 de mayo de 2020 en Wayback Machine
  • Computadora de placa única BE6502 en GitHub , basada en videos de Ben Eater
FPGA
  • cpu6502_tc Núcleo de CPU 6502 – Código fuente VHDL – OpenCores
  • ag_6502 Núcleo de CPU 6502 – Código fuente de Verilog Archivado el 4 de agosto de 2020 en Wayback Machine – OpenCores
  • Núcleo de CPU M65C02 65C02 – Código fuente de Verilog Archivado el 4 de agosto de 2020 en Wayback Machine – OpenCores
  • Núcleo de CPU MCL65 6502 en GitHub – Verilog – MicroCore Labs
Obtenido de "https://es.wikipedia.org/w/index.php?title=Tecnología_MOS_6502&oldid=1251127819"