Tiene que ver sobre todo con las longitudes de las interconexiones y los retrasos de propagación a través de las puertas. Si reducimos una CPU a su esencia, es una máquina de retroalimentación. Un montón de circuitos lógicos combinatorios calculan algunas funciones booleanas sobre el estado actual de la máquina, y esas funciones determinan el nuevo estado, que es enclavado por los circuitos secuenciales cuando llega un nuevo flanco de reloj. Todos los circuitos combinatorios tienen retrasos. El periodo del reloj no puede ser más corto que el tiempo que tarda el camino más lento a través de estas puertas en producir un resultado estable, porque un solo bit incorrecto detiene el espectáculo.
Además, la lógica secuencial tiene requisitos de temporización. Antes de que llegue el flanco de reloj, hay un tiempo mínimo de preparación que las entradas tienen que ser estables y después tienen que ser estables durante un tiempo de retención. Si se violan estos requisitos, el estado se convierte en basura.
Los retrasos de propagación se deben a factores como la rapidez con la que se cargan las capacitancias parásitas, la rapidez con la que se acumula la corriente frente a una inductancia y la rapidez con la que pueden conmutar los dispositivos de silicio. Por ejemplo, un transistor bipolar con una base más pequeña puede conmutar más rápido que uno con una base más grande, por lo que un pequeño transistor en un chip será más rápido que uno discreto.
En una respuesta anterior que he borrado, escribí sobre los efectos de las líneas de transmisión. Pero no tuve en cuenta que estos efectos ni siquiera entran en escena a las velocidades de las que hablamos porque, digamos, a 10 Mhz, la longitud de onda sigue siendo de unos 30 metros. Así que a la escala de una placa de circuito de tamaño normal, los pulsos en la escala de tiempo de unos pocos megahercios siguen llegando a todas las partes de una red de cobre simultáneamente.
Por lo tanto, si se hace una CPU con componentes discretos, simplemente no se consiguen los componentes pequeños con tiempos de conmutación rápidos, y la misma proximidad que minimiza las capacitancias e inductancias parásitas.
Sin embargo, las antiguas máquinas de componentes discretos de los años 60 funcionaban bastante más rápido que estas máquinas caseras. Se necesitó algo de tiempo y astucia para conseguirlo. Por ejemplo, el IBM 360 Modelo 44 (1964) funcionaba a 4 Mhz. Eso puede seguir siendo "velocidad casera", pero el CDC 7600 lanzado sólo unos años después, en 1969, superó los 36 Mhz. El artículo de Wikipedia http://en.wikipedia.org/wiki/CDC_7600 da una pista de algunos de los trucos que se hicieron, por ejemplo:
"Como siempre, el diseño de Cray también se ha centrado en el empaquetado para reducir el tamaño, acortar los caminos de la señal y aumentar así la frecuencia de funcionamiento. ... [Cada módulo de circuito estaba formado por hasta seis placas de PC, cada una de ellas repleta de resistencias, diodos y transistores en subminiatura. Las seis placas se apilaban y luego se interconectaban a lo largo de sus bordes, dando lugar a un módulo muy compacto, pero básicamente irreparable."
Por lo tanto, las CPU caseras no están necesariamente construidas a su verdadero potencial debido a algunos efectos de confusión que tienen que ver con la calidad de la construcción y el diseño. Aun así, hay que aplaudir a cualquiera que construya una CPU a partir de circuitos integrados individuales y componentes discretos que funcione a varios megahercios.
0 votos
Como... ¿chips VLSI caseros? Me imagino que es una limitación de costes. La precisión que ofrecen los equipos de varios millones de dólares no se puede duplicar en casa y, por tanto, los chips deben funcionar más lentamente.
5 votos
@Nate, imagino que se refiere a las CPUs caseras multichip construidas a partir de TTL. Por ejemplo: homebrewcpu.com
0 votos
@Nate he actualizado mi pregunta para que sea más específica.
0 votos
@AlfredCentauri - sí, tienes razón ;)