17 votos

Limitación de frecuencia para CPUs caseras

Al examinar algunas CPUs construidas a medida, he observado que las frecuencias a las que funcionan son relativamente bajas en comparación con las CPUs modernas (del orden de varios MHz). ¿Existe alguna razón de ingeniería electrónica para esta limitación, por ejemplo, para las placas de circuito impreso? Si es así, ¿cómo determinar la frecuencia máxima que es posible alcanzar con su diseño?

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.

18voto

Steve Paulo Puntos 8263

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

Dependiendo de la complejidad de la ruta de datos, creo que un dispositivo casero debería ser capaz de programar a 20Mhz o más sin dificultad usando tecnología moderna y técnicas convencionales. No a varios GHz, pero tampoco se queda atrás. Sospecho, sin embargo, que en la mayoría de los casos en los que se utilizan CPUs caseras, la facilidad para solucionar problemas es más importante que la velocidad. Por cierto, el cristal del reloj maestro de la máquina recreativa original de la marca Pong(R) era de 14,3818Mhz, aunque se dividió bastante pronto; creo que lo único que está limitado por algo de esa velocidad es la línea central del campo de juego.

2 votos

Muchas CPUs caseras utilizan EPROMs para almacenar microcódigo, pero también para implementar lógica compleja y/o tablas de verdad (muchas de ellas incluso tienen una ALU hecha de una o más ROMs). La velocidad de acceso de las ROMs puede limitar significativamente la velocidad máxima de la máquina, pero son populares porque facilitan la depuración, la reconversión y el ajuste del procesador sin necesidad de un recableado significativo.

0 votos

@Alexios: No es que invalide tu punto de vista, pero yo recomiendo a la mayoría de la gente cambiar a NAND o NOR flash desde EEPROMs para estos. Sí, son más difíciles de escribir in situ, pero a cambio el tiempo de acceso se puede reducir a la mitad. Una AT28C256 es una EEPROM muy popular para breadboarding, pero tiene un tiempo de acceso de 150ns y cuesta unos 9 dólares en mouser. Por otro lado, una flash NOR 8 veces más grande y compatible con los pines cuesta la mitad, es 2 veces más rápida (70ns), puede reescribirse más veces, dura 10 veces más y puede usar el mismo programador. Incluso las EEPLD más baratas pueden ser 30 veces más rápidas (4-5ns), pero requieren el uso de un software algo esotérico.

16voto

Florian Puntos 3564

Como antiguo estudiante de secundaria que construyó un ordenador de propósito especial con TTL de la serie 7400, que ganó algún tipo de premio en la feria de ciencias, observé estas cosas que impedían que funcionara lo más rápido posible:

  • Capacidades parásitas en la protoboard. Unos pocos pF entre cada par de conectores adyacentes. Eso limitaba los tiempos de subida/bajada de los bordes de los pulsos y en algunos lugares añadía diafonía. Este fue probablemente el factor más importante.

  • Variaciones de las patatas fritas de bolsa. (¿Alguien se acuerda de los Poly-Paks?) 74LSxx, 74Hxx, 74xx con diferentes retrasos de propagación y otras características, hicieron imposible que las señales se mantuvieran sincronizadas a velocidades de reloj superiores a unos pocos MHz.

  • Chips de memoria estática baratos, de nuevo procedentes de una bolsa de compra u otra fuente de mala calidad. Simplemente no podían leer o escribir de forma fiable más allá de una cierta tasa.

  • Mi instrumentación de prueba se limitaba a generadores de señales caseros, un osciloscopio de 5 MHz de ancho de banda y un circuito digital provisional improvisado. Es difícil comprobar la integridad de la señal, la sincronización y las amplitudes de las señales digitales que han sido filtradas con paso bajo hasta convertirse en una papilla inestable.

Hoy en día, sería difícil encontrar un osciloscopio de 5 MHz, a no ser que se trate de un comprador de antigüedades. Los mejores chips de todo tipo son igual de fáciles de conseguir, incluso en paquetes DIP de 0,1" de espacio, excepto que no he visto mucho en la forma de bolsas de agarre en mucho tiempo. Sin embargo, las placas de pan de molde no han cambiado mucho. La capacitancia dispersa sigue siendo un asesino de la velocidad para cualquier proyecto digital creativo.

La mejor manera de evitar la capacitancia parásita es evitar las placas de circuito impreso caseras, pero por supuesto requiere más esfuerzo y tiempo.

5voto

kekoav Puntos 128

Creo que la razón principal es que a medida que aumentas la frecuencia, la impedancia de las conexiones de tu protoboard aumentará y limitará la velocidad final de tu circuito.

Cada conexión de tu protoboard tiene una inductancia baja, pero no nula. A medida que la frecuencia aumenta, hay que tener en cuenta estos efectos. La impedancia de los cables se puede encontrar por:

This formula

donde L es la inductancia del cable. Eventualmente, Z será lo suficientemente alto como para que no fluya la corriente y su circuito deje de funcionar. Encontrar el valor numérico exacto de este número será muy complicado, especialmente porque las placas de pan tienen trazas una al lado de la otra y eso cambiará la impedancia de cada cable un poco de esta fórmula. Si usted realmente quiere un número (impreciso), puede intentar aquí para calcular la inductancia (y por tanto la impedancia) de tus cables. Si conoces la corriente más baja con la que puede funcionar una pieza, puedes determinar la frecuencia máxima antes de llegar a ese límite.

0 votos

¿Podría explicar la relación entre la impendancia y la velocidad del circuito?

0 votos

Entonces, ¿cómo se explica que las CPUs como el Intel Core I7 trabajen a velocidades de reloj de 2,5GHz y las CPUs construidas en placas de pan no puedan alcanzar esta velocidad? Inicialmente pensé que había una conexión con la longitud del cable entre la CPU y los chips de RAM.

0 votos

No quiero negar las leyes de la física, pero no creo que la inductancia sea realmente el principal limitador de la velocidad. Después, cables similares de rangos de longitudes similares se utilizan en radios caseras y otros proyectos, a frecuencias mucho más altas. Sólo hay que tener cuidado con la correspondencia de impedancias, longitudes, disposición, evitar acoplamientos accidentales, etc.

4voto

Chris Miller Puntos 2552

Otros han respondido al "por qué". He aquí cómo determinar la velocidad máxima.

  1. Para cada flip-flop, busca su reloj en Q.
  2. Suma la longitud de todos los cables desde el flip-flop hasta el siguiente flip-flop. Convierte esta longitud en tiempo. El cable es ~2/3 de la velocidad de la luz
  3. Totaliza cualquier retraso de la puerta, incluso a través de la RAM asíncrona.
  4. Toma el tiempo de preparación en el siguiente flip-flop.
  5. Añade 1-4. Este es su periodo de reloj mínimo. Invierte para obtener la frecuencia.
  6. Considera la desviación del reloj. Si el reloj llega al segundo ff antes que al primero, añada la desviación con 1-4.
  7. Si el reloj llega al segundo ff antes que al primero, calcula el mínimo de 1-3. Asegúrate de que son menores que el tiempo de retención requerido por el segundo ff más la desviación del reloj.

0 votos

¿A qué longitud de cable te refieres: la longitud desde la fuente de alimentación a los pines de salida de la CPU, los pines de salida de la CPU a los chips de la RAM...? Tampoco tengo muy claro a qué te refieres en el primer paso.

2 votos

@Eugen - Creo (pero no es mi área de experiencia) que se está refiriendo a su retardo de propagación interna - el tiempo que pasa desde que se marca el reloj hasta que tiene una salida estable.

2voto

reconbot Puntos 1670

Además de todas las razones eléctricas que limitan la velocidad, también hay una a nivel lógico:

No puedes dedicar tantos recursos a hacer que las cosas funcionen más rápido, como las operaciones en cadena con predicción de bifurcación, aritmética más rápida y demás. Las cachés tampoco tienen mucho sentido si no son más rápidas que la memoria principal.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X