Recopilación de links para entender un poco mejor los fierros. Como siempre hay que retroceder un poco en el tiempo para ver donde estamos parados y ver si con los recursos actuales, la comunidad y el codigo abierto es posible desmitificar como caminan las cosas :). Empecemos por las cosas pequeñas para poder entender algo….
Algunos papers y otras yerbas para tener una basesita teórica…
- Small Turing machines and generalized busy beaver competition
- Small universal Turing machines
- Wolfram’s 2-state 3-symbol Turing machine
- Random-access_stored-program_machine
Ahora hay que ver alguna implementación… empezamos por cosas viejas para que sean simples:
- 4 bits:
- Primer cpu de 4 bits: intel 4004
- Implementacion de cpu con logica TTL: ttl-based-4-bit-cpu
- how-to-build-your-own-discrete-4-bit-alu
- Simple 4 Bit CPU
- A puro transistor:4-bit-computer-built-from-discrete-transistors
- 8 bits:
- Ingeniería reversa cpu 8 bits: www.visual6502.org
- Fierros posta: How to Build an 8-Bit Computer
Para poder meter mano hay que tener fierros viejos o usar simuladores/emuladores:
Opcodes:
- Intro para entender los opcodes: CIS77 Instruction Format Design
- github opcodes database
- Customizable Instruction Set Simulator
Por supuesto siempre hay lugar para diseño y testing usando Verilog:
- Herramienta opensource: Icarus verilog
- Algunos ejemplos de fuentes verilog:
Ahora que estamos bien abajo podemos empezar a subir…
Se puede usar el siguiente framework para armar el backend del compilador para un “nuevo” cpu: The LLVM Compiler Infrastructure
Ejemplo de generación de backend:Tutorial: Creating an LLVM Backend for the Cpu0 Architecture
hackaday: Intraestructura para el CPU
Compiladores y recursos para 6809: recursos 6809