Limitación de frecuencia para CPU caseras

15

Mientras observaba algunas CPU personalizadas, he observado que las frecuencias en las que operan son relativamente bajas en comparación con las CPU modernas (en el orden de varios MHz). ¿Existe una razón de ingeniería electrónica para esa limitación, por ejemplo, para tablas de pan? En caso afirmativo, ¿cómo determinar la frecuencia máxima que es posible lograr con su diseño?

    
pregunta Eugen

6 respuestas

16

En su mayoría tiene que ver con la longitud 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 grupo de circuitos lógicos combinatorios computa algunas funciones booleanas sobre el estado actual de la máquina, y esas funciones determinan el nuevo estado, que se enclava mediante circuitos secuenciales cuando llega un nuevo borde de reloj. Todos los circuitos combinatorios tienen retrasos. El período de reloj no puede ser más corto que el tiempo que tarda la ruta más lenta a través de estas puertas para 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 borde del reloj, hay un tiempo mínimo de configuración para que las entradas se mantengan estables y, a continuación, se mantengan estables durante un tiempo de espera. Si estos son violados, el estado se convierte en basura.

Los retrasos en la propagación son causados por la rapidez con que se pueden cargar las capacitancias parásitas, la rapidez con que se puede generar la corriente frente a una inductancia y la rapidez con que los dispositivos de silicio pueden cambiar. Por ejemplo, un transistor bipolar con una base más pequeña puede cambiar 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 eliminé, escribí sobre los efectos de la línea de transmisión. Pero no tuve en cuenta que estos efectos ni siquiera aparecen en la imagen a la velocidad de la que estamos hablando porque, digamos, a 10 Mhz, la longitud de onda sigue siendo de unos 30 metros. Por lo tanto, en la escala de una placa de circuito de tamaño ordinario, los pulsos en la escala de tiempo de unos pocos megahertz todavía llegan a todas las partes de una red de cobre simultáneamente.

Entonces, si hace una CPU con componentes discretos, simplemente no logrará los componentes pequeños con tiempos de conmutación rápidos, y la misma proximidad que minimiza las capacitancias y las inductancias parásitas.

Sin embargo, las máquinas antiguas de componentes discretos en la década de 1960 funcionaron bastante más rápido que estas máquinas de fabricación casera. Tomó algún tiempo y astucia para llegar allí. Por ejemplo, el IBM 360 Modelo 44 (1964) funcionó a 4 Mhz. Puede que todavía sea la "velocidad de fabricación casera", pero el CDC 7600 lanzado unos años más tarde en 1969 superó los 36 Mhz. El artículo de Wikipedia enlace da una pista sobre algunos de los trucos que se realizaron, por ejemplo:

"Como siempre, el diseño de Cray también se centró en el empaque para reducir el tamaño, acortar las rutas de señal y, por lo tanto, aumentar la frecuencia de operación. ... [E] Cada módulo de circuito consistía en hasta seis tarjetas de PC, cada una rellenas con resistencias subminiatura, diodos y transistores. Las seis placas se apilaron y luego se interconectaron a lo largo de sus bordes, lo que lo convierte en un módulo muy compacto pero básicamente irreparable. "

Por lo tanto, las CPU de fabricación casera no necesariamente se construyen a su verdadero potencial debido a algunos efectos de confusión que tienen que ver con la calidad de construcción y el diseño. Aún así, cualquier persona que construya una CPU a partir de circuitos integrados individuales y componentes discretos que se ejecutan en varios megahercios debe ser aplaudida.

    
respondido por el Kaz
15

Como un antiguo estudiante de secundaria que construyó una computadora de propósito especial con 7400 series TTL, que ganó algún premio en la feria de ciencias, observé estas cosas que evitaban que funcionara lo más rápido posible:

  • Capacitancia perdida en el tablero. Unos pocos pF entre cada par de conectores adyacentes. Ese tiempo limitado de aumento / caída del borde del pulso y en lugares añadidos interferencia. Este fue probablemente el factor más importante.

  • Variaciones de las fichas de la bolsa de sorpresas. (¿Alguien recuerda a los Poly-Paks?) 74LSxx, 74Hxx, 74xx con diferentes retrasos de propagación y otras características, imposibilitó que las señales permanecieran sincronizadas a velocidades de reloj superiores a unos pocos MHz.

  • Cheapo chips de memoria estática, de nuevo de una bolsa de mano u otra fuente sin calidad. Simplemente no podían leer ni escribir de manera confiable más allá de cierta velocidad.

  • Mi instrumentación de prueba se limitó a generadores de señales de fabricación casera, un osciloscopio de ancho de banda de 5MHz y un circuito digital temporal equipado con jurado. Es difícil verificar la integridad de la señal, el tiempo y las amplitudes de las señales digitales que se han filtrado de paso bajo en un movimiento tambaleante.

Hoy en día, sería difícil encontrar un alcance de 5MHz a menos que uno sea un comprador antiguo. Los mejores chips de todo tipo son igual de fáciles de obtener, incluso en paquetes DIP espaciados de 0.1 ", excepto que no he visto muchas cosas en el camino de las bolsas de agarre en mucho tiempo. Sin embargo, los paneles para enchufes no han cambiado mucho. La capacitancia parásita sigue siendo un factor clave para cualquier proyecto digital creativo y vanguardista.

Evitar las tablas de prueba utilizando una PCB casera es la mejor manera de evitar la capacitancia perdida, pero, por supuesto, requiere más esfuerzo y tiempo.

    
respondido por el DarenW
4

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

Cada conexión en su placa base tiene una inductancia baja, pero no nula. A medida que su frecuencia aumenta cada vez más, debe tener en cuenta estos efectos. La impedancia de los cables se puede encontrar en:

dondeLeslainductanciadelcable.Eventualmente,Zllegaráaserlosuficientementealtocomoparaquenofluyalacorrienteysucircuitodejarádefuncionar.Encontrarelvalornuméricoexactoparaestenúmeroserámuycomplicado,especialmenteporquelastablasdepruebastienenrastrosunoalladodelotroyesocambiarálaimpedanciadecadacableunpocodeestafórmula.Sirealmentequiereunnúmero(impreciso),puedeintentar aquí para Calcule la inductancia (y por lo tanto la impedancia) de sus cables. Si conoce la corriente más baja desde la cual puede operar una parte, puede determinar la frecuencia máxima antes de alcanzar ese límite.

    
respondido por el Nate
3

Otros han respondido el "por qué". Aquí es cómo determinar la velocidad máxima.

  1. Para cada flip-flop, busque el reloj a la Q.
  2. Sume la longitud del cable de todos los cables desde el flip-flop hasta el siguiente flip-flop. Convierte esta longitud en tiempo. El cable es ~ 2/3 velocidad de la luz
  3. Total de los retrasos de puerta, incluso a través de RAM asíncrona.
  4. Tómese el tiempo de configuración en el próximo flip-flop.
  5. Agrega 1-4. Este es tu período mínimo de reloj. Invertir para obtener frecuencia.
  6. Considera sesgo de reloj. Si el reloj llega a la segunda posición anterior a la primera, agregue sesgo con 1-4.
  7. Si el reloj llega al segundo ff antes del primero, calcula el mínimo de 1-3. Asegúrese de que sean menores que el tiempo de espera requerido por el segundo ff más el sesgo del reloj.
respondido por el Brian Carlton
1

Aparte de todos los motivos eléctricos que limitan la velocidad, también hay uno en el nivel lógico:

No puede lanzar tantos recursos para hacer que las cosas se ejecuten más rápido, como operaciones canalizadas con predicción de bifurcación, aritmética más rápida y todo eso. Los cachés tampoco tienen mucho sentido si no son más rápidos que su memoria principal.

    
respondido por el starblue
1

Para las máquinas de fabricación casera se trata de dos factores. El retraso en la propagación de los chips que está utilizando y la cantidad de chips que necesita usar en la ruta más larga a través del diseño de su CPU.

Por ejemplo, un 74HC574 (registro de 8 bits) tiene un retardo de propagación máximo de aproximadamente 41 ns (tomado de su hoja de datos). Ahora digamos que la ruta más larga a través del diseño de su CPU requiere que pase a través de 8 chips diferentes. Sume los retrasos de propagación para cada uno de los 8 e imaginemos que se trata de 333ns. Con 1000 ns es lo mismo que 1Mhz que le daría una velocidad máxima de 3Mhz.

En la práctica, es posible que desee limitarse a algo más lento, como 2Mhz, para garantizar un diseño estable. Incluso si crees que solo perderás el tiempo una vez por mil millones de ciclos, entonces aún estarás en problemas. 10 mil millones divididos por 3 millones significa que ejecuta incorrectamente una vez cada 3,333 segundos, lo cual es aproximadamente una vez por hora. ¡Bloquear la máquina cada hora no es bueno!

Para hacerlo más rápido, puedes usar fichas más rápidas y / o cambiar el diseño para reducir la cantidad de fichas en la ruta más lenta. La velocidad más rápida de fabricación casera que ves es alrededor de 4Mhz, que te da 250 ns para completar cada ciclo.

    
respondido por el Phil Wright

Lea otras preguntas en las etiquetas