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
DRAMSRAM
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
[email protected]
@gacaffe
Arqueología digital: Cómo reconstruir un Apple II con tecnología moderna
Gabriel Caffarena - Noviembre 2015
61