¿Es posible fabricar un ordenador sencillo íntegramente con prototipos y componentes electrónicos básicos? ¿Es posible, por ejemplo, construir una calculadora científica de esta manera?
Respuestas
¿Demasiados anuncios?No estoy de acuerdo en que colocar un microcontrolador en una protoboard sea lo mismo que construir un ordenador en una protoboard. Excepto por las E/S (como el teclado y la pantalla), un microcontrolador por sí mismo es prácticamente un ordenador completo. Colocar un microcontrolador en una protoboard y conectar unos pocos cables es trivial y puede hacerse en diez minutos.
Cuando el OP preguntaba: "¿Es posible hacer un ordenador sencillo completamente con breadboards y componentes electrónicos básicos?", por componentes electrónicos básicos creo que quiere decir algo más parecido a esto:
Eso sí que es un ordenador en una protoboard (bueno, varias protoboards), construido a partir de componentes básicos . La descripción de la misma está aquí . Está compuesto por una docena de tipos de CI de la serie 74LS00. (No creo que queramos remontarnos a los transistores; el original PDP-8 era del tamaño de un nevera pequeña ).
En cuanto a la calculadora científica, si se construye un ordenador de propósito general como el que se muestra arriba, se podría programar como una calculadora científica. Construir una calculadora científica utilizando únicamente circuitos integrados lógicos (sin ordenador) sería extremadamente difícil; todos los fabricantes de calculadoras de este tipo (Ti, HP, etc.) utilizaban CI a gran escala . Aquí hay un calculadora casera que utiliza un primer CI de calculadora de 4 bits.
Estoy de acuerdo en que si uno quiere poner en marcha un ordenador lo más rápidamente posible, entonces el uso de un microcontrolador es el camino a seguir. Si uno quiere entender realmente cómo funciona un ordenador internamente, entonces construir uno a partir de circuitos integrados básicos es el camino correcto.
No sólo es posible, sino que lo he hecho: véase https://www.vttoth.com/CMS/projects/47
Este es el aspecto del cableado en la parte trasera de una de las placas:
Por supuesto, todo depende de los componentes que se consideren "básicos". En mi caso, los componentes básicos eran 74... chips TTL en serie, aproximadamente un centenar de ellos. Construir un ordenador enteramente de, digamos, transistores... sería demasiado abrumador.
Además, mi ordenador de 4 bits no es lo suficientemente potente como para usarlo como calculadora científica, principalmente por las limitaciones de memoria (256 nybbles de 4 bits). Sin embargo, no es terriblemente difícil ampliar el espacio de direcciones, tal vez utilizando un mecanismo de paginación, y 4096 nybbles (direcciones de 12 bits) podrían ser ya suficientes, 65536 nybbles (direcciones de 16 bits) con seguridad.
Hay un tipo que está trabajando en la construcción de un procesador usando nada más que transistores. La RAM, el procesador, todo. MegaProcessor.com
Sí, es posible, pero se necesitaría algo más que unas cuantas placas para conseguir una calculadora científica, dependiendo, por supuesto, de lo que se considere un componente básico: si se llama componente básico a un transistor, o a un flip-flop, a una EEPROM o simplemente a algo que se pueda soldar de un viejo frigorífico.
Hay algunas respuestas buenas aquí, pero me gustaría señalar una cosa que la gente a menudo no tiene en cuenta. Si observamos la historia de los dispositivos informáticos, la dificultad para construir un ordenador a partir de corteza de árbol y clavos no es la CPU ni la ALU. El principal problema es la memoria . Porque se necesita una gran cantidad de ella para que todo el concepto de programa almacenado funcione. Se puede hacer una CPU a partir de unos pocos flip-flops y puertas NAND; por ejemplo, para una aplicación de electrónica de potencia con restricciones específicas, una vez diseñé un microprocesador que utiliza sólo 69 flip-flops (4 registros de 16 bits, 4 banderas y 1 bit de registro de estado que denota FETCH/EXECUTE). Está implementado en silicio y la gente escribe software que se ejecuta en él. Es sencillo y cabe en el tamaño de un contacto de drenaje de un transistor de potencia. Pero la memoria necesaria para almacenar cualquier programa útil es mucho, mucho más grande.
Al principio, la memoria era el punto de partida del diseño. Se podían utilizar relés biestables, como se hacía en las primeras centrales telefónicas. Se podían utilizar tubos de vacío o transistores para hacer flip-flops; y los registros de la CPU solían implementarse de esta manera. Pero para el almacenamiento de programas y datos se utilizaban cintas de papel, cintas magnéticas, discos giratorios o tambores giratorios. Incluso ondas acústicas sobre hilo de acero que se reciben y retransmiten constantemente por la electrónica. Cualquier cosa que se te ocurra que pueda retener algunos bits durante un tiempo razonable con un coste razonable. Los ordenadores del orbitador Apolo y del módulo de aterrizaje lunar utilizaron memorias con núcleo de bobina enrolladas como cuerdas. Todo esto necesita un equipo de interfaz diferente y tiene un gran impacto en cómo debe ser la CPU para acceder a ese tipo de memorias. Las memorias semiconductoras no aparecieron realmente hasta los años 70, descartando finalmente ese tipo de complejidad. Pero, por otra parte, las modernas RAMS dinámicas tampoco son tan fáciles.
Además, hay que añadir la maravilla de tener que diseñar equipos de entrada-salida para el ordenador. Unas cuantas bombillas están bien para algunas aplicaciones, pero si necesitas entrada/salida de texto o algo aún más complejo, te enfrentas de nuevo a más dificultades. Los lectores de tarjetas perforadas, las impresoras y los terminales de papel fueron un gran negocio en sus días. Un terminal de vídeo en modo texto VT100 de 1978 tiene mucha más memoria y potencia de procesamiento que la que tendría tu ordenador de placa de cálculo científico.
Aunque ciertamente es posible implementar la memoria utilizando flip-flops, creo que es necesario hacer una concesión para permitir los ICs de memoria (al igual que en estos ordenadores caseros se suele utilizar un 74181 para la ALU). Puedes conseguir un 8Kx8 SRAM en un paquete DIP por unos 2 dólares. Eso debería ser suficiente para una calculadora. Lo mismo para la EEPROM.
@tcrosley Estoy de acuerdo. Sólo apunto un comentario de la historia. Si vas a construir un ordenador casero hoy en día, no lo vas a hacer para seguir una serie de reglas arbitrarias, lo vas a hacer para divertirte y aprender. Y diseñar un microprocesador es más divertido y una mejor experiencia de aprendizaje que enrollar 16 mil bits de memoria central ;)
@PkP Hay algo que decir de alguien que recuerda cómo para tejer la memoria del núcleo y conseguir que se documente. No tanto a nivel de cómo funciona un bit o dos, sino el lado práctico de cómo hacer 16 kbits sin volverse loco. He trabajado en proyectos de semillas. Puedo visualizar la locura... Supongo que alguna vez hubo automatización de fábrica para hacerlo, pero he visto muy poco escrito sobre el lado de la producción.
Es posible, pero la complejidad y el tamaño dependen de lo que se llame componentes electrónicos básicos. Una ALU y una lógica de secuenciación son un poco complejas, pero factibles. La memoria es sencilla, pero el patrón básico debe repetirse un gran número de veces (piense en miles de veces).
Además del hardware, también necesitarás un software que funcione con él. Como estimación aproximada, para una CPU moderadamente compleja (instrucciones clásicas de 16 bits y nivel de datos de 8 bits) el esfuerzo del software será comparable al del hardware. (Para una CPU más simplista necesitarás más esfuerzo de SW.) ¿Y cómo vas a cargar ese SW en tu máquina?
La búsqueda (y resolución) de errores será una empresa interesante. Te aconsejo que empieces a escribir en VHDL y lo ejecutes en un simulador, será mucho más fácil de depurar que un montón de chips y cables.
Dos estudiantes míos crearon una CPU de 16 bits con algo de software básico (incluyendo un puerto GCC backend) en ~ 1 año, comenzando con VHDL y código C para la simulación. La ALU utilizaba chips 74181, la memoria era RAM estática, y utilizaron un atMega para la interfaz entre el PC y su ordenador. El ordenador estaba en parte en panes sin soldadura y en parte en PCBs (los 8 registros de 16 bits). (Estos dos fueron no estudiantes medios).
Sí, es posible. Pero necesitas un microcontrolador para hacer las cuentas. Este es un proyecto de ejemplo. Utiliza un microcontrolador AVR y una pantalla LCD de 16×2.
+1 Tengo una calculadora que utiliza un procesador ARM. Hoy en día un microcontrolador debería considerarse un componente básico.
@PlasmaHH ya sea un microcontrolador, o múltiples breadboards. ¿Sólo tienes puertas básicas de 2 entradas? Diviértete. OTOH una ROM o dos + un MUX + registro = un simple microcontrolador ya.
10 votos
No sólo es posible, sino que la gente lo hace, por ejemplo. megaprocesador.com y muchos más, sólo hay que buscar en Google "discrete transistor cpu" o similar. Simplemente se vuelve terriblemente complejo y lleva años construir y depurar
0 votos
Depende de lo que se entienda por protoboard. Si incluye Veroboard, tiras de etiquetas o construcción de bichos muertos anclados con clavos clavados en la protoboard de mamá (sí) - todo soldado entonces sí, definitivamente. Si te refieres a esas cosas de plástico que sueltan cables al azar, olvídalo...
0 votos
@BrianDrummond En cuanto a las placas de plástico, parece que es posible (ver mi respuesta). He visto un par de ordenadores construidos de esta manera. Si uno accidentalmente sacó algunos cables, qué pesadilla. Estoy realmente asombrado de que realmente funcionen.
2 votos
Creo que si tuvieras infinitas tablas de pan, tendrías el turing completo
2 votos
Realmente necesitas descubrir el "anillo web" de la CPU de Homebrew (que era una cosa de los años 90 antes de que los motores de búsqueda dominaran la web): members.iinet.net.au/~daveb/simplex/ringhome.html
0 votos
El Altair 8800 utilizó un Intel 8080 CPU. El 8080 tenía unos 6.000 transistores pero también se benefició en gran medida de chips de soporte externo Y, por supuesto, todavía necesitas RAM y amigos. Mientras que el Altair 8800 era bastante primitivo tanto en la programación como en el uso, era lo suficientemente sofisticado como para poder programar algunas cosas triviales.
0 votos
También puede comparar con la anterior de MITS MITS 816 calculadora.
0 votos
¿Calculadora científica? Tal vez no. Pero las sumas y restas simples y la integración se pueden hacer con opamps
0 votos
Sí... pero tienes que ser un súper friki. Ordenador retro Z80 hecho en casa - Computerphile.
0 votos
(1) Relacionado: Pregunta cerrada porque la respuesta es sí/no "Cuando se hace una pregunta de tipo "sí/no" hay una de dos posibilidades..." (2) Investigación preliminar insuficiente. Una búsqueda de "ordenador breadboard" no muestra escasez de resultados. Sin duda, suficientes para responder a una pregunta de sí/no.