¿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?
¿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?
Respuestas:
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:
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.
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:
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.
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.
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!)
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.