Los proyectos de computación retro como este son muy divertidos, pero también mucho trabajo. Para empezar, debe hacerse algunas preguntas:
-
¿Qué tan fiel quieres restringirte a la vieja tecnología? Usted dice que quiere construir una CPU, ¡ese es un objetivo mucho más modesto que construir una computadora! También es mucho más interesante diseñar y construir una CPU que una matriz de 10 x 10 x 10 x 10 de celdas de RAM de un solo bit ...
-
¿Cuán fielmente quieres ser con las arquitecturas antiguas? Con RAM externa y ROM (barata y abundante) puede hacer trampa, por ejemplo, usando una instrucción muy amplia que contiene la siguiente dirección de instrucciones, por lo que no necesita hardware (o rutas de datos) para incrementar la PC. (Tenga en cuenta que algunas de las arquitecturas antiguas fueron engañadas de la misma manera al tener sus registros en la memoria RAM).
-
¿Qué nivel de rendimiento desea lograr? Con los chips TTL / CMOS de 74 niveles, 10 MHz podría ser posible, con componentes discretos, creo que 100 kHz es más realista.
-
¿Qué nivel de esfuerzo y recursos (dinero, tiempo, volumen) estoy dispuesto a gastar?
Una vez que haya hecho sus elecciones (tentativas), debe hacer algunos cálculos (de verificación de la realidad):
- ¿cuántos transistores (o puertas NAND, o pines de chip de estilo 74, etc.) necesita?
- ¿Cuál es el costo, el consumo de energía, el volumen, la disipación de energía, etc.
- ¿Cuánto tiempo tomará ensamblar la CPU?
Hagamos algunos cálculos muy aproximados. El 4004 tenía 2300 transistores. Utiliza todos los trucos en el libro para limitar el número de transistores, algunos de los cuales no están disponibles para un diseño BJT discreto (lógica cargada, multiplexación de trans-transistor), y los diseñadores fueron inteligentes. Entonces, asumamos (IMO de forma conservadora) que necesita transistores 10k. Asuma una corriente de colector de 10 mA, 5 V de potencia, 1 cm ^ 2 por transistor.
Ahora obtenga su parte posterior del sobre (o servilleta, cartón de cerveza, o lo que sea):
-
Suponga que la mitad de los transistores son de conducción, la corriente total es de 0.5 * 10k * 0.01 = 50A. A 5 V, esto es 250 W. Necesitará algunas unidades de suministro de energía de tipo PC, cableado pesado, desacoplamiento, etc.
-
A $ 0.10 por transistor, el costo será de $ 500. Se puede hacer, pero quizás tengas que consultar a tu esposa. Tenga en cuenta que debe agregar todos los demás costos: resistencias, placas de pruebas, soldadura, cableado, etc.
-
Suponiendo un muy conservador de 1 cm ^ 2 por transistor, su área mínima será de 1 metro x 1 metro. Con resistencias, cableado, distribución de energía, etc. 10 metros cuadrados puede ser una mejor suposición.
-
Finalmente: tiempo de montaje. ¿Cuánto tiempo lleva ensamblar 1 transistor (y todos sus circuitos asociados)? Mi (optimista) juego de pelota es de 1 minuto. Para los transistores 10k, eso significa 167 horas de soldadura: aproximadamente 4 semanas completas de trabajo. ¡Tenga en cuenta que no se le permite cometer un error!
De estas cifras, mi conclusión sería: no deberías querer hacer esto. Utilice un bloque de construcción de nivel superior (compuerta NAND, chip MSI o LSI de estilo 74HC, o incluso FPGA) en su lugar. Si desea tener una idea de cómo construir realmente una CPU a partir de los primeros principios:
-
construye una pequeña parte (digamos un sumador completo de 1 bit, 4 bits si eres un masoquista) a partir de transistores y resistencias. Ahora has demostrado que puedes hacer puertas y hacer lógica.
-
construye una parte más grande (tal vez la ALU de 4 bits completa) a partir de puertas NAND.
-
construya su CPU a partir de chips estilo MSI y LSI 74HCs, RAM y ROM (Flash).