Computadora de tablero [cerrada]

19

¿Es posible hacer una computadora simple completamente con placas de prueba y componentes electrónicos básicos? ¿Es factible, por ejemplo, construir una calculadora científica de esta manera?

Connecticut
fuente
10
No solo es posible, sino que la gente lo hace, por ejemplo, megaprocessor.com y muchos más, solo google para "CPU de transistor discreto" o similar. Simplemente se vuelve terriblemente complejo y lleva años construir y depurar
PlasmaHH
Depende de lo que quieras decir con una placa de pruebas. Si incluye Veroboard, tiras de etiquetas o construcción de insectos muertos anclados con clavos clavados en la placa de prueba de mamá (sí), todos soldados, entonces sí, definitivamente. Si te refieres a esas cosas de plástico que sueltan cables al azar, olvídalo ...
Brian Drummond
@BrianDrummond Re paneles de plástico - aparentemente es posible (ver mi respuesta). He visto un par de computadoras construidas de esta manera. Si uno accidentalmente sacó algunos cables, qué pesadilla. Estoy realmente asombrado de que realmente corran.
tcrosley
2
Creo que si tuvieras tablas de pan infinitas, ¿estarías completo?
PyRulez
2
Realmente necesitas descubrir el "anillo web" de la CPU Homebrew (eso fue algo en los años 90 antes de que el motor de búsqueda dominara la web): members.iinet.net.au/~daveb/simplex/ringhome.html
slebetman

Respuestas:

33

No voy a estar de acuerdo con que colocar un microcontrolador en una placa de pruebas califique como construir una computadora en una placa de pruebas. Excepto por las E / S (como un teclado y una pantalla), un microcontrolador en sí mismo es prácticamente una computadora completa. Simplemente colocarlo en una placa y conectar algunos cables es trivial y se puede hacer en diez minutos.

Cuando el OP preguntó: "¿Es posible hacer una computadora simple completamente con placas de prueba y componentes electrónicos básicos?", Por componentes electrónicos básicos creo que significa algo más como esto:

ingrese la descripción de la imagen aquí

Ahora que es una computadora en una placa de pruebas (bueno, varias placas de pruebas), construida a partir de componentes básicos . La descripción de esto está aquí . Está compuesto por una docena de tipos de IC de la serie 74LS00. (No creo que queramos volver a los transistores; el PDP-8 original era del tamaño de un refrigerador pequeño ).

En lo que respecta a una calculadora científica, si construyó una computadora de uso general como la que se muestra arriba, entonces podría programarse como una calculadora científica. Construir una calculadora científica usando solo CI lógicos (sin computadora) sería extremadamente difícil; Todos los fabricantes de calculadoras como esa (Ti, HP, etc.) utilizaron circuitos integrados especiales a gran escala . Aquí hay una calculadora casera que utiliza una calculadora IC de 4 bits.

Estoy de acuerdo en que si uno quiere tener una computadora en funcionamiento lo más rápido posible, entonces usar un microcontrolador es el camino a seguir. Si uno realmente quiere entender cómo funciona internamente una computadora, entonces construir uno a partir de circuitos integrados básicos es el camino correcto.

tcrosley
fuente
1
@ColeJohnson ¡Sus notas dicen que no tiene esquemas para eso!
tcrosley
1
@JohnD thx, arreglado.
tcrosley
23

No solo es posible, en realidad lo he hecho: consulte https://www.vttoth.com/CMS/projects/47

Así es como se veía el cableado en la parte posterior de una de las placas de pruebas:

ingrese la descripción de la imagen aquí

Por supuesto, todo depende de qué componentes califican como "básicos". En mi caso, los componentes básicos eran 74 ... chips TTL de la serie, aproximadamente un centenar de ellos. Construir una computadora completamente a partir de, por ejemplo, transistores ... eso sería demasiado abrumador.

Además, mi computadora de 4 bits realmente no es lo suficientemente potente como para ser utilizada como una calculadora científica, principalmente debido a las limitaciones de memoria (256 nybbles de 4 bits). Sin embargo, no es terriblemente difícil extender el espacio de direcciones, quizás utilizando un mecanismo de paginación, y 4096 nybbles (direcciones de 12 bits) ya podrían ser suficientes, 65536 nybbles (direcciones de 16 bits) con seguridad.

Viktor Toth
fuente
Felicidades. Eso es todo un logro. Me gusta el conjunto de instrucciones - me recuerda a un 6800.
tcrosley
1
Hay un tipo que está trabajando en la construcción de un procesador utilizando nada más que transistores. La RAM, el procesador, todo. MegaProcessor.com
Cole Johnson
44
Algunas personas son más pacientes que yo.
Viktor Toth
10

Sí, es posible, pero necesitaría un poco más que unas pocas placas de pruebas para obtener una calculadora científica, dependiendo, por supuesto, de lo que considere un componente básico: si llama a un transistor un componente básico o un flip-flop , una EEPROM o simplemente algo que puede soldar de un refrigerador viejo.

Aquí hay algunas buenas respuestas, pero me gustaría señalar una cosa que la gente a menudo no considera. En cuanto a la historia de los dispositivos informáticos, la dificultad para construir una computadora a partir de la corteza de los árboles y las uñas no es la CPU ni la ALU. El problema principal es la memoria.. Porque necesita una gran cantidad para que funcione todo el concepto de programa almacenado. Puede hacer una CPU con unos pocos flip-flops y compuertas NAND; por ejemplo, para una aplicación de electrónica de potencia con restricciones específicas, una vez diseñé un microprocesador que usa solo 69 flip-flops (4 registros de 16 bits, 4 banderas y 1 bit de registro de estado que indica FETCH / EXECUTE). Se implementa en silicio y la gente escribe software que se ejecuta en él. Eso es simple y se ajusta al 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 fue el punto de partida del diseño. Puede usar relés biestables como lo hicieron en las primeras centrales telefónicas. Podrías usar tubos de vacío o transistores para hacer chanclas; y los registros de la CPU generalmente se implementaron de esta manera. Pero para el programa y el almacenamiento de datos, se utilizaron cintas de papel, cintas magnéticas, discos giratorios o tambores giratorios. Incluso ondas acústicas en cables de acero que son constantemente recibidos y retransmitidos por la electrónica. Cualquier cosa que se te ocurra podría contener algunos bits durante un período de tiempo razonable con un costo razonable. Las computadoras del orbitador Apollo y del módulo de aterrizaje lunar utilizaron memorias de núcleo de bobina enrolladas como cuerdas. Todos estos necesitan equipos de interfaz diferentes y tienen un gran impacto en cómo debe ser la CPU para acceder a ese tipo de recuerdos. La memoria de semiconductores solo apareció realmente en la década de 1970, finalmente descartando ese tipo de complejidad. Pero, de nuevo, los RAMS dinámicos modernos tampoco son tan fáciles.

Luego está la maravilla adicional de tener que diseñar equipos de entrada-salida para la computadora. Algunas bombillas están bien para algunas aplicaciones, pero si necesita entrada / salida de texto o algo aún más complejo, nuevamente enfrenta más dificultades. Los lectores de tarjetas perforadas, las impresoras y los terminales de papel eran un gran negocio en sus días. Un terminal de video en modo de texto VT100 de 1978 tiene mucha más memoria y potencia de procesamiento que la que tendría su computadora calculadora científica.

PkP
fuente
Aunque ciertamente es posible implementar memoria usando flip-flops, creo que se necesita una concesión para permitir que los circuitos integrados de memoria (por lo general es el caso en estas computadoras caseras para usar un 74181 para la ALU). Puede obtener una SRAM 8Kx8 en un paquete DIP por aproximadamente $ 2. Eso debería ser suficiente para una calculadora. Lo mismo para EEPROM.
tcrosley
1
@tcrosley, estoy de acuerdo. Solo estoy señalando un comentario de la historia. Si vas a construir una computadora casera hoy, no lo harás para seguir un conjunto arbitrario de reglas, lo harás por diversión y aprendizaje. Y diseñar un microprocesador es más divertido y una mejor experiencia de aprendizaje que enrollar 16 mil bits de memoria central;)
PkP
@PkP Hay algo que decir para alguien que recuerda cómo tejer memoria central y documentarlo. No tanto en el nivel de cómo funcionan un poco o dos, sino en el aspecto práctico de cómo hacer 16 kbits sin volverse loco. He trabajado en proyectos de semillas de semillas. Puedo visualizar la locura ... Supongo que una vez hubo automatización de fábrica para hacerlo, pero he visto muy poco escrito sobre el lado de la producción.
RBerteig
2
@RBerteig gracias, estoy de acuerdo. Bueno, recuerdo haber leído que los recuerdos de la cuerda de la computadora de la nave espacial Apollo fueron tejidos por damas tejedoras muy hábiles, que tuvieron la asombrosa paciencia de verificar cuidadosamente cada uno o cero en el diagrama de código, que denota si la bobina de bits está tejida a través del núcleo o evitado a su alrededor, o algo por el estilo. Recuerdo haber leído de la misma fuente que les llevó seis meses tejer una nueva ROM después de cada modificación de software de los ingenieros del MIT que escribieron el software Apollo.
PkP
7

Es posible, pero la complejidad y el tamaño dependen de lo que llames componentes electrónicos básicos. Una lógica de ALU y secuenciador es un poco compleja, pero factible. La memoria es simple, pero el patrón básico debe repetirse una gran cantidad de veces (piense en miles de veces).

Además del hardware, también necesitará software que se ejecute en él. Como una estimación aproximada, para una CPU moderadamente compleja (instrucciones clásicas de 16 bits de nivel de datos de 8 bits) su esfuerzo de software será comparable a su esfuerzo de hardware. (Para una CPU más simplista necesitará más esfuerzo de SW). ¿Y cómo va a cargar ese SW en su máquina?

La búsqueda de errores (y la resolución) será una tarea interesante. Te aconsejo que comiences a escribir en VHDL y lo ejecutes en un simulador, que 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 algún software básico (incluido un puerto de backend GCC) en ~ 1 año, comenzando con el código VHDL y C para la simulación. La ALU usó 74181 chips, la memoria era RAM estática y usaron un atMega para interactuar entre la PC y su computadora. La computadora estaba en parte en cordones de pan sin soldadura y en parte en PCB (los 8 registros de 16 bits). (¡Estos dos no eran estudiantes promedio!)

Wouter van Ooijen
fuente
5

Sí, es posible. Pero necesitas un microcontrolador para hacer los cálculos. Este es un proyecto de ejemplo. Utiliza un microcontrolador AVR y una pantalla LCD de 16 × 2.

Oka
fuente
+1 Tengo una calculadora que usa un procesador ARM. En estos días, un microcontrolador debe considerarse un componente básico.
Spehro Pefhany
25
No necesitas un micro, solo facilita las cosas.
PlasmaHH
@PlasmaHH, ya sea un microcontrolador o varias placas de pruebas. ¿Tiene solo puertas básicas de 2 entradas? Que te diviertas. OTOH una ROM o dos + un registro MUX + = un microcontrolador simple ya.
John Dvorak
¿Cómo crees que los microcontroladores hacen las matemáticas? Con ALU's - hechas de silicio / transistores / compuertas elementales dependiendo de la escala que veas.
user3728501
Microcontroladores y microprocesadores también se hacen de elementos electrónicos, por lo que puede hacer que en un circuito, no hay necesidad para un microcontrolador reales
phuclv