Download Arqueología digital:
Document related concepts
no text concepts found
Transcript
Arqueología digital: Cómo reconstruir un ordenador Apple ][ con tecnología moderna Gabriel Caffarena Fernández Noviembre de 2015 • • • • • Historia del Apple2 Diseño con FPGAs Apple2FPGA Otros proyectos con FPGAs Conclusiones y líneas futuras Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 2 • • • • • Historia del Apple2 Diseño con FPGAs Apple2FPGA Otros proyectos con FPGAs Conclusiones y líneas futuras Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 3 6502 • Chuck Peddle: padre del PC – Estaba en el grupo que diseñó el Motorola 6800 – Quiso realizar una CPU más simple y más barata – Se incorporó en 1974 a la empresa MOS Technology para llevar a cabo su Proyecto • Desarrollo del 6502 – – – – – Equipo compuesto por 9 personas 1975: Primer diseño funcional commons.wikimedia.org Diseño “manual” La leyenda dice que funcionó a la primera Consiguieron un yield del 70% (lo habitual era 30%) 150$ Motorola 6800 25$ MOS 6502 Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 4 6502 visual6502.org • • • • 3500 transistores 6 diagramas diferentes superpuestos Regla de metal y calcetines nuevos Bill Mench = Genio del layout Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 5 6502 • Sinergia – – – – – – Apple II 1975: Creación del 6502 1975: Homebrew Computer Club 1975: Wescon: venta a “hackers” 1975: Contrato con Atari 1976: Demo Apple I en HBC 1976: Commodore Int. adquiere MOS Technology Commodore 64 Atari 2600 Futurama: Episodio “Fry y la fábrica de Slurm” Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 6 Los dos Steves: Wozniak • • • • • Aficionado a la electrónica desde pequeño Premio sobre proyecto de electrónica en el colegio Diseñaba ordenadores y compiladores en papel Convencido de la importancia de reducir el coste 1970: Cream Soda Computer (256 bytes de RAM) – Trabajó como programador para conseguir los componentes • Aficionado a gastar bromas: llamadas telefónicas, inhibidor de televisión, etc. • 1971: Conoce a Steve Jobs Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 7 Los dos Steves: Jobs • • • • • • Aficionado a la electrónica desde pequeño Conseguía componentes gratis Trabajó ya en el instituto en Hewlet-packard Tendía a seguir sus propias normas Amigo de “experimentar” Aficionado a gastar bromas Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 8 Los dos Steves: Wozniak+Jobs • Construyen y venden la “blue box” • 1973: Woz trabaja para HP diseñando calculadoras – Queda fascinado con el juego Pong de Atari • 1974: Trabaja para Atari Tendía a seguir sus propias normas • 1975: Jobs pide ayuda a Woz para diseñar una versión de Pong para 1 jugador de bajo coste (Breakout) – Versión de Atari (Acorn): 100 chips – Vesión de Wozniak: 45 chips • 1975: Woz compra varios 6502 en WESCON… Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 9 Apple ][ • Se crea en 1977 y es la evolución del Apple I de – Apple I: MOS 6502 1 MHz 4K RAM, 256 bytes de ROM 40x24 caracteres – Apple II: MOS 6502 1 MHz 4-48K RAM, 12 KB ROM (BASIC) 40x24 caracteres 40 x 48 x 16 colores 280 x 192 x 6 colores Admite unidad de disco 5 1/4 • Énfasis en video a color, BASIC y periféricos • Fue Jobs quién se “empeñó” en comercializarlo Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 commons.wikimedia.org 10 Apple ][ • Se basa en la patente – “Microcomputer for use with video display”, US patent 4.136.359, Enero 1979 Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 11 Apple ][+ • • • • • • Mejora del Apple II puesta en el mercado en 1979 16,32 ó 48 K de RAM BASIC con coma flotante Arranque desde disco Gran éxito comercial Apple siguió produciendo nuevas versiones del Apple II y hardware hasta 1993 Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 12 • • • • • Historia del Apple2 Diseño con FPGAs Apple2FPGA Otros proyectos con FPGAs Conclusiones y líneas futuras Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 13 Circuitos integrados ó microchip • Los microchips están formados por – Resistencias – Condensadores – Dispositivos semiconductores: Transistores • El transistor es la base de la electrónica moderna – Amplificador – Conmutador binario: 0’s y 1’s Puertas lógicas Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 14 Circuito integrado ó microchip • 1971: Intel 4004: – 2,500 transistores – “Ancho” de cada transistor: 10 micras • 2012: Intel Xeon Phi (64 cores) – 5,000 millones de transistores – “Ancho” de cada transistor: 22 nanómetros • Diámetro de un virus – 10-300 nanómetros commons.wikimedia.org Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 15 FPGA vs CPU • Microprocesador (CPU) – Sistema basado en software • Procesamiento genérico • Reprogramable – Fases: • Lectura de instrucción • Decodificación • Ejecución – Alto consumo de potencia commons.wikimedia.org:David Strigoi Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 16 FPGA vs CPU • FPGA – Puede contener cualquier circuito digital Bloques lógicos • Procesamiento específico – Velocidad inferior o superior al micro según la aplicación – Consumo de potencia inferior a un uP – Hardware reconfigurable (“reprogramable”) Interconexión Entrada/Salida Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 17 FPGA • Un dispositivo FPGA contiene – memorias con datos de 1 bit (LUT: Look-Up Table) – circuitos de interconexión – Entradas y salidas • Las memorias implementan lógica • Los circuitos de interconexión conectan las memorias entre sí Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 18 Conceptos generales FPGA • LUTs en la FPGA (Altera Cyclone IV) LUT Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 19 Conceptos generales FPGA • Las memorias (LUTs) utilizan entre 4 y 6 bits para el direcciones • Permiten implementar cualquier función lógica de entre 4 y 6 entradas • Las funciones lógicas son la base de todos los sitemas digitales • Por ejemplo, dispositivos de la familia Virtex-6 de Xilinx tienen entre 46,000 y 354,000 LUTs Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 20 Diseño con FPGAs • El diseño a mano es inviable • El diseño con FPGAs se hace mediante software de desarrollo para FPGAs • El diseñador se encarga de definir las funciones lógicas • Las herramientas de desarrollo – Optimizan las funciones lógicas – “Reparten” la lógica entre las LUTs disponibles – Interconectan las LUTs Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 21 Diseño con FPGAs • La FPGA forma parte de una placa y convive con – – – – – Chip de video/audio Memorias Controladores de comunicaciones: USB, PCI-e, Ethernet, etc. Pulsadores, conmutadores, LEDs, etc. Display 7-segmentos, display LCD, etc. altera.com Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 22 Diseño con FPGAs • Para implementar sistemas retro hay buscar unas características mínimas en la placa: – Salida VGA (HDMI) – Puertos para teclado y ratón (PS2) – Entrada/Salida de audio • Hay que introducir adaptadores entre la tecnología retro y la tecnología de la placa – – – – Convertir PAL/NTSC a VGA Convertir audio de 1/4/8 bits a 12/16 bits Convertir PS/2 a interfaz propio Etc. Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 23 Diseño con FPGAs • Hay que saber qué está conectado a los pines de la FPGA – los pines de los demás chips – los puertos de entrada/salida • También puede ser interesante utilizar recursos que no pertenecen al sistema retro original – Se pueden usar los displays y LEDs para depurar el sistema • Resumiendo – Bloques generales pertenecientes al sistema original: CPU, video, controlador de periféricos, etc. – Bloques adaptadores propios de la placa – Bloques de E/S para depurar el desarrollo Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 24 Diseño con FPGAs Fases • • • • • • • Entrada de diseño Síntesis Simulación funcional Asignación de pines Mapping y Place&Route Simulación temporal Programación Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 25 Diseño con FPGAs Fases • Entrada de diseño – Se utilizan lenguajes HDL en lugar de “dibujar” el circuito – VHDL, Verilog • Síntesis – Conversión a puertas lógicas de la descripción HDL • Simulación funcional – Se comprueba que el sistema funciona correctamente – Se introducen patrones que simulan el comportamiento de las entradas a la FPGA (pines) – Se observa el comporatmiento de las señales más importantes • Asignación de pines – Se asocian pines de la FPGA con las señales internas Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 26 Diseño con FPGAs Fases • Mapping y Place&Route – Se asignan funciones lógicas a las LUTs – Placement: Se eligen las LUTs concretas de la FPGA que se van a usar – Routing: Se interconectan las LUTs • Simulación temporal – Se simula el sistema ya rutado • Programación – Se configura la FPGA con el circuito – Se utiliza el puerto USB para enviar la información a la FPGA: • Directamente al dispositivo (se borra tras apagar) • Se almacena en una EPROM que se lee tras encender el sistema Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 27 Diseño con FPGAs Fases: Ejemplo • Objetivo: Encender un LED si se pulsan dos botones • Primera aproximación: • ¿Hay varios pulsadores y LEDs?¿Cuáles son los pines? Manual de usuario de • ¿Al pulsa se genera un ‘1’? la placa • ¿Se enciende el LED con ‘1’? Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 28 Diseño con FPGAs Fases: Ejemplo PLACA DE2-115 KEY0 FPGA LUT LEDG0 KEY1 Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 29 Emulación hardware • La emulación hardware consiste en implementar un sistema clásico en una FPGA • La implementación debe respetar en la medida de lo posible el sistema original • Se utiliza la misma frecuencia de reloj • Se implementan todos los chips del sistema original Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 30 Emulación hardware • Existen repositorios de microchips en VHDL – 6502, Z80, 6809, 68000,... – Tienen bugs • La lógica de unión entre chips (glue logic) hay que implementarla en VHDL Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 31 Emulación hardware • La emulación de periféricos presenta los siguientes retos: – Se pueden utilizar los periféricos originales adaptando los interfaces a la placa – Se pueden emular con tecnología moderna añadiendo retardos: floppy SD-card teclado teclado USB/PS-2 • La FPGA requiere memorias externas – Hay que emular los tiempos de retardo de las memorias clásicas Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 32 Emulación hardware • El reloj de sistema no coincide con el de la placa – Se usa un PLL para generar el reloj con la frecuencia adecuada • Audio y video adaptado al de la placa Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 33 • • • • • Historia del Apple2 Diseño con FPGAs Apple2FPGA Otros proyectos con FPGAs Conclusiones y líneas futuras Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 34 Apple2FPGA • Iniciativa de Steve A. Edwards de la Universidad de Columbia • Placa DE2 • Todos los chips, salvo la RAM en una única FPGA • Consumo Apple][ : 20-30 W • Consumo DE2: 5W http://www.cs.columbia.edu/~sedwards/apple2fpga/ Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 35 Diagrama de bloques 14 MHz 2 MHz 1 MHz http://www.cs.columbia.edu/~sedwards/ papers/edwards2009retrocomputing.pdf Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 36 Generador de señales de temporización Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 37 Generador de señales de temporización http://www.cs.columbia.edu/~sedwards/ papers/edwards2009retrocomputing.pdf Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 38 Generador de señales de ¡PLL! temporización http://www.cs.columbia.edu/~sedwards/ papers/edwards2009retrocomputing.pdf Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 39 Generador de video Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 40 Generador de vídeo • • • • Texto: 40x24 B/W Gráfico “lores”: 40x48, 15 colores Gráfico “hires”: 140x280, 6 colores NTSC: se codifica en binario los colores con 4 bits • Necesitamos convertir de NTSC a VGA Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 41 Generador de vídeo http://www.cs.columbia.edu/~sedwards/ papers/edwards2009retrocomputing.pdf Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 42 Generador de vídeo FPGA Generador de Vídeo Adaptador VGA Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 VGA Monitor 43 Teclado y puerto de juegos Teclado PS/2 Emulación de PAD con 3 botones Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 44 Disco 5 1/4 SD/CARD Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 45 Disco 5 1/4 6502 Interfaz Disk II Adaptador SD/CARD (SPI) SD-CARD Última versión creada por Michel Stempin Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 46 Disco 5 1/4 • El control de la disquetera era software • Los datos se recibían codificados y había que decodificarlos mediante SW • Se accede a la SD/CARD mediante el protocolo serie SPI • Se evita formatear la SD/CARD se usa el formato .nib dsk2nib.exe • Se emula el cambio de disco con los conmutadores de la placa Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 47 Audio FPGA 6502 Flip-flop 1-bit Adaptador Audio (I2C) CODEC Audio Altavoz 32-bit, Estéreo Hasta 96 Ksps Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 48 ROM • Copyright de apple • Se incluye una “fake ROM” que muestra un mensaje y hace un par de demos gráficas • La ROM está dentro de la FPGA • Se incluye una aplicación para convertir la ROM en VHDL Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 49 RAM FPGA 6502 Adaptador DRAMSRAM 48 KB SRAM 1-2 MB Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 50 Implementación final FPGA Top-level (VHDL) Adaptador audio Apple2 Adaptador VGA • 6502 • Generador señales • ROM • Audio • Video •I/O Adaptador Disco Chips & I/O placa Adaptador Gameport Adaptador Keyboard Adaptador DRAM PINES • Audio • VGA • Pulsadores • Conmutadores • LEDs • Displays • SRAM Interfaz I/O depuración Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 51 Implementación final ROM 6502 Controlador SD/CARD (SPI) Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 52 • • • • • • I, me ,mine Conceptos generales Diseño con FPGAs Apple2FPGA Otros proyectos con FPGAs Conclusiones y líneas futuras Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 53 Otros proyectos • • • • • ZX-Uno: Spectrum, placa custom Commodore PET: placa Nexys3 FPGA NES: placa Nexys2 Tandy Coco: Digilent starter board Replay: placa custom – Arcade, Amiga, Atari, Vic 20, Colecovision – En desarrollo: C64, Spectrum, etc • Custom MSX: DE2 + PCB • Mega65: C65 (C64 x50), placa custom Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 54 • • • • • Historia del Apple2 Diseño con FPGAs Apple2FPGA Otros proyectos con FPGAs Conclusiones y líneas futuras Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 55 Conclusiones • Dominar VHDL • Conocer muy bien el esquemático del microordenador • Conocer muy bien la placa concreta que se va a usar • Apple2FPGA: – Mejorar gameport: pad y joystick – Mejorar teclado • Líneas futuras – Crear foro para poder adaptar implementaciones a un surtido de placa adaptadores – Diseño de HW para utilizar los periféricos originales – Emulación de CRT en pantallas modernas Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 56 Referencias • Apple2FPGA, DE2 http://www.cs.columbia.edu/~sedwards/apple2fpga/ • Apple2FPGA en DE2-115 http://biolab.uspceu.com/~gabriel/retro.htm • Retrocomputing on an FPGA: Reconstructing an 80's-Era Home Computer with Programmable Logic, Steve A. Edwards http://www.cs.columbia.edu/~sedwards/papers/edwards2009retrocomputing.pdf Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 57 Referencias • The Apple II Circuit Description. Howard W. Sams & Co http://mirrors.apple2.org.za • Sophistication & Simplicity: The Life & Times of the Apple II Computer. Steven Weyhrich http://apple2history.org/book/ • Commodore: a company on the edge http://variantpress.com/books/commodore-a-company-on-the-edge/ Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 58 Referencias • http://www.altera.com • http://www.xilinx.com • http://www.fpga4fun.com • Cheap FPGA boards https://joelw.id.au/FPGA/CheapFPGADevelopmentBoards • http://www.visual6502.org Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 59 THANKS! • • • • • Madri+D Universidad San Pablo CEU Altera Inc. Steve Edwards Michel Stempin Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 60 gacaffe@gmail.com @gacaffe Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna Gabriel Caffarena - Noviembre 2015 61