¿Por qué las CPU necesitan tanta corriente?

Sé que una CPU simple (como Intel o AMD) puede consumir 45-140 W y que muchas CPU funcionan a 1,2 V, 1,25 V, etc.

Entonces, suponiendo que una CPU funcione a 1,25 V y tenga un TDP de 80 W... usa 64 amperios (muchos amperios).

  1. ¿Por qué una CPU necesita más de 1 A en su circuito (suponiendo transistores FinFET)? Sé que la mayoría de las veces la CPU está inactiva y los 60 A son todos "pulsos" porque la CPU tiene un reloj, pero ¿por qué una CPU no puede operar a 1 V y 1 A?

  2. Un transistor FinFET pequeño y rápido, por ejemplo: 14 nm operando a 3.0 GHz, ¿cuántos amperios (aproximadamente) necesita?

  3. ¿Una corriente más alta hace que los transistores se enciendan y/o apaguen más rápidamente?

Las CPU modernas (ninguna de las cuales es 'simple') requieren múltiples rieles de voltaje, todos con sus propios requisitos de energía. Su pregunta hace muchas suposiciones y tiene muchas declaraciones erróneas. Debe considerar todos los requisitos de potencia y no solo los de un solo riel.
Haga que un transistor FinFET cuente con una CPU moderna. No todos los FET conducen la corriente de Vdd a tierra, pero aun así, 64 A se distribuyen entre *una gran cantidad* de estos FET de conmutación.
En ciertas áreas de la CPU, dominan las corrientes de fuga/estáticas, como en la era de los 70 nm, he visto que el 70 % del consumo de energía de la memoria caché L1/L2 se menciona como estático.
Si el reloj es lento y la CPU es más pequeña, puede funcionar a 1 W o incluso menos.
La corriente total a través de todas las partes de un sistema es una constante; si una CPU estuviera usando 64 amperios de la fuente de alimentación, entonces tendría que sacar 64 amperios de la pared, pero mi computadora está enchufada a un circuito protegido por un interruptor de 15 amperios. Y ciertamente no hay forma de que las baterías de mi computadora portátil proporcionen 64 amperios. Hay algo mal con tus matemáticas. Ponga un amperímetro en el enchufe de su computadora y pronto sabrá su amperaje.
@EricLippert "tendría que sacar 64 amperios de la pared": tengo la sospecha de que la CPU no estaría funcionando con 110 V.
La cantidad conservada es energía y, en promedio, también potencia. Si una CPU consume 64 vatios, la fuente de alimentación debe consumir al menos 64 vatios del zócalo. Eso es <1A incluso a 110V.
@EricLippert La placa base de su computadora contiene un convertidor de CC a CC multifásico que reduce el voltaje de suministro (12 V en el caso de una computadora de escritorio, probablemente 12-19 V en el caso de una computadora portátil) hasta el voltaje de suministro central. Esto se hace con POTENCIA constante, por lo que la corriente de salida termina siendo 10-20 veces la corriente de entrada. Sin mencionar que el suministro de 12 V en una computadora de escritorio también proviene de una fuente de alimentación conmutada que también se convierte con potencia constante. La CPU de su computadora probablemente tenga al menos 100 pines de alimentación y tierra para manejar la corriente.
@EricLippert: considere esto: un grupo de 10 condensadores se coloca en serie y se carga de 1 A a 10 V cada uno con un suministro de> 100 V. Ahora, los transistores entre los capacitores cambian y se descargan en paralelo, cada uno dando 1A a 10V, para un total de 10A a 10V. El tiempo de descarga es entonces igual al tiempo de carga. Tenga un segundo juego que cargue mientras el primero descarga, y viceversa. La conversión DC-DC tiene muchas complejidades adicionales, pero este es el concepto básico.
@BenVoigt Esa es la descripción de un divisor de voltaje de bomba de carga. Los suministros SMPS típicos que se usan para computadoras funcionan de manera completamente diferente: AC-DC (en el bloque de suministro) usan transformadores flyback, y las conversiones DC-DC internas de bajo voltaje (en la placa base) usan topologías reductoras (con un inductor). Su descripción es correcta, pero no es lo que realmente se usa aquí.
@dim Tiene toda la razón, pero no estoy a la altura de la tarea de describir un convertidor de dinero en el espacio limitado permitido para comentarios usando términos que alguien sin un título de EE entendería.
@EricLippert Además, "Ponga un amperímetro en el enchufe de su computadora" sin describir cuidadosamente cómo usar un medidor con la clasificación adecuada para hacerlo es una sugerencia peligrosa: un usuario ingenuo podría colocar el amperímetro en los terminales vivo y neutral del enchufe de red, conduciendo a una aventura no tan fabulosa a un departamento de accidentes y emergencias de un hospital.
@AndrewMorton: Sin duda, sería prudente usar un amperímetro diseñado para esa tarea, ¡sí! Jeff lo explica aquí: blog.codinghorror.com/why-estimate-when-you-can-measure
@EricLippert Eso no es correcto. La corriente a través de todas las partes de un circuito en serie es igual, pero la CPU no está en serie con el suministro de pared. (Además, usted dice " todas las partes de un sistema"; el LED de alimentación es parte del sistema, pero ¿hay 64 amperios atravesándolo? ¿O el disipador de calor de la CPU? ¿O el pequeño tornillo que sujeta mi tarjeta gráfica?)
"¿Por qué una CPU no puede funcionar a 1 V y 1 A?" - ¡ellos pueden! ¡Una CPU puede incluso funcionar con unos pocos voltios y unos pocos miliamperios! Pero no este en particular. Esta CPU está diseñada para la velocidad, no para el bajo consumo de energía.
@AndrewMorton Cómo construir un widget de amperímetro de derivación (EE. UU.): según recuerdo, son 3 pies de cable n. ° 16 doblados (no enrollados) y uniendo el lado blanco de una salida dúplex con la oreja rota. 12 miliohmios. 1000 W lee 0,1 voltios de CA.

Respuestas (2)

  1. Las CPU no son 'simples' por ningún tramo de la imaginación. Porque tienen algunos miles de millones de transistores, cada uno de los cuales tendrá una pequeña fuga en reposo y tiene que cargar y descargar la compuerta e interconectar la capacitancia en otros transistores al cambiar. Sí, cada uno consume una pequeña corriente, pero cuando lo multiplicas por el número de transistores, obtienes un número sorprendentemente grande. 64A ya es una corriente promedio ... al cambiar, los transistores pueden consumir mucho más que el promedio, y esto se suaviza con los condensadores de derivación. Recuerde que su cifra de 64A provino de trabajar hacia atrás desde el TDP, lo que lo convierte realmente en 64A RMS, y puede haber una variación significativa en muchas escalas de tiempo (variación durante un ciclo de reloj, variación durante diferentes operaciones, variación entre estados de suspensión, etc.). ). También, es posible que pueda ejecutar una CPU diseñada para funcionar a 3 GHz con 1,2 voltios y 64 amperios a 1 voltio y 1 amperio... tal vez a 3 MHz. Aunque en ese momento, debe preocuparse por si el chip usa una lógica dinámica que tiene una frecuencia de reloj mínima, por lo que tal vez deba ejecutarlo entre unos pocos cientos de MHz a un GHz y hacer un ciclo de suspensión profunda periódicamente para obtener el promedio. bajada de corriente. La conclusión es que potencia = rendimiento. El rendimiento de la mayoría de las CPU modernas está limitado térmicamente. así que tal vez tendría que ejecutarlo a unos pocos cientos de MHz a un GHz y hacer un ciclo de suspensión profunda periódicamente para reducir la corriente promedio. La conclusión es que potencia = rendimiento. El rendimiento de la mayoría de las CPU modernas está limitado térmicamente. así que tal vez tendría que ejecutarlo a unos pocos cientos de MHz a un GHz y hacer un ciclo de suspensión profunda periódicamente para reducir la corriente promedio. La conclusión es que potencia = rendimiento. El rendimiento de la mayoría de las CPU modernas está limitado térmicamente.
  2. Esto es relativamente fácil de calcular - yo = C v α F , dónde yo es la corriente, C es la capacidad de carga, v es el voltaje, α es el factor de actividad, y F es la frecuencia de conmutación. Veré si puedo obtener números aproximados para la capacitancia y edición de la puerta de un FinFET.
  3. Algo así como. Cuanto más rápido se cargue o descargue la capacitancia de la puerta, más rápido cambiará el transistor. Cargar más rápido requiere una capacitancia menor (determinada por la geometría) o una corriente mayor (determinada por la resistencia de interconexión y el voltaje de suministro). Los transistores individuales que cambian más rápido significa que pueden cambiar más a menudo, lo que da como resultado un consumo de corriente más promedio (proporcional a la frecuencia del reloj).

Editar: entonces, http://www.synopsys.com/community/universityprogram/documents/article-iitk/25nmtriplegatefinfetswithraisedsourcedrain.pdf tiene una cifra para la capacitancia de la puerta de un FinFET de 25 nm. Solo voy a llamarlo 0.1 ff para simplificar las cosas. Aparentemente, varía con el voltaje de polarización y ciertamente variará con el tamaño del transistor (los transistores tienen un tamaño de acuerdo con su propósito en el circuito, ¡no todos los transistores serán del mismo tamaño! Los transistores más grandes son 'más fuertes' ya que pueden cambiar más corriente, pero también tienen una capacitancia de puerta más alta y requieren más corriente para funcionar).

Enchufando 1,25 voltios, 0,1 fF, 3 GHz y α = 1 , el resultado es 0.375 m A . Multiplique eso por mil millones y obtendrá 375 A. Esa es la corriente de puerta promedio requerida (carga por segundo en la capacitancia de la puerta) para cambiar mil millones de estos transistores a 3 GHz. Eso no cuenta el 'disparo directo', que ocurrirá durante el cambio en la lógica CMOS. También es un promedio, por lo que la corriente instantánea podría variar mucho; piense en cómo el consumo de corriente disminuye asintóticamente a medida que se carga un circuito RC. Omita los condensadores en el sustrato, el paquete y la placa de circuito para suavizar esta variación. Obviamente, esta es solo una cifra aproximada, pero parece ser del orden correcto de magnitud. Esto tampoco considera la corriente de fuga o la carga almacenada en otros parásitos (es decir, el cableado).

En la mayoría de los dispositivos, α será mucho menor que 1 ya que muchos de los transistores estarán inactivos en cada ciclo de reloj. Esto variará dependiendo de la función de los transistores. Por ejemplo, los transistores en la red de distribución de reloj tendrán α = 1 ya que cambian dos veces en cada ciclo de reloj. Para algo como un contador binario, el LSB tendría α de 0,5 ya que cambia una vez por ciclo de reloj, el siguiente bit tendría α = 0.25 ya que cambia la mitad de veces, etc. Sin embargo, para algo como una memoria caché, α podría ser muy pequeño. Tome un caché de 1 MB, por ejemplo. Una memoria caché de 1 MB construida con celdas 6T SRAM tiene 48 millones de transistores solo para almacenar los datos. Tendrá más para la lógica de lectura y escritura, demultiplexores, etc. Sin embargo, solo unos pocos encenderían un ciclo de reloj determinado. Digamos que la línea de caché es de 128 bytes y se escribe una nueva línea en cada ciclo. Eso es 1024 bits. Suponiendo que el contenido de la celda y los nuevos datos sean aleatorios, se espera que se inviertan 512 bits. Eso es 3072 transistores de 48 millones, o α = 0.000061 . Tenga en cuenta que esto es solo para la matriz de memoria en sí; los circuitos de soporte (decodificadores, lógica de lectura/escritura, amplificadores de detección, etc.) tendrán una capacidad mucho mayor α . Por lo tanto, el consumo de energía de la memoria caché generalmente está dominado por la corriente de fuga, es decir, MUCHOS transistores inactivos simplemente están sentados con fugas en lugar de cambiar.

1V 1A no es un objetivo extraño, las CPU ARM se especifican comúnmente como mW/MHz. A modo de comparación, todo el Raspberry Pi A+ utiliza 1 vatio, incluida una CPU de 700 Mhz, mucho más que los escasos 3 Mhz sugeridos.
Es más útil referirse a "MIPS por vatio", ya que la cantidad de trabajo realizado por ciclo de reloj varía enormemente.
Bueno, depende de para qué está diseñado el chip. Un chip con un TDP de 80 W que está diseñado para funcionar a 3 GHz a 1,2 voltios podría funcionar con 1 V y 1 A... pero a 1 V tendrá que reducir significativamente la velocidad y para que consuma 1 A. Habrá que bajar aún más la velocidad. En ese caso, no se acercará a los 3 GHz. Sin embargo, no tengo idea de lo que realmente podrías lograr, ya que no lo he probado yo mismo. Tal vez 3 MHz sea un poco pesimista para un i7 a 1V y 1A. Ahora, ciertamente es posible diseñar un chip para que funcione a ese nivel de potencia, como mencionas.
No son simples. De hecho, son una de las cosas más complejas que hemos construido.
Las CPU Intel/AMD modernas utilizan al menos cierta lógica dinámica que en realidad no funcionaría si la frecuencia de reloj fuera demasiado baja . Intel Skylake (por ejemplo) tiene un punto mínimo eficiente de frecuencia/voltaje. Para alcanzar niveles de potencia/rendimiento aún más bajos para SoC, activa y desactiva un núcleo en un ciclo de trabajo variable (>=800us a quizás ~1 GHz (f más eficiente), descanso en suspensión). Vea la charla de administración de energía Skylake IDF2015 de Efraim Rotem, en aproximadamente 53 minutos en
Sí, ese también es un buen punto. ¡El CMOS moderno es bastante exigente!
@ alex.forencich Una pregunta rápida: los condensadores de desacoplamiento recomendados por el fabricante del controlador. ¿Están diseñados para la frecuencia de controlador recomendada más alta? Dado que la velocidad del controlador podría variar, ¿será necesario considerar esto?
La omisión tiene que tener en cuenta todo el rango de frecuencias. No solo la frecuencia de operación directamente, sino los pulsos cortos que se dibujan incluso dentro de los ciclos de reloj. En general, se utilizarán varios conjuntos diferentes de técnicas de derivación: derivación en el troquel en sí, derivación en el paquete, derivación en el tablero con planos y derivación en el tablero con tapas. El mfr será responsable de todo lo que se encuentra en el troquel y el paquete y debe tener pautas sobre lo que se requiere en el tablero.

Según Wikipedia , las principales CPU lanzadas en 2011 tenían entre 0,5 y 2,5 mil millones de transistores. Suponiendo que una CPU con mil millones de transistores consume 64 A de corriente, la corriente promedio es de solo 64 nA por transistor. Teniendo en cuenta las frecuencias de funcionamiento de varios GHz, en realidad es sorprendentemente pequeño.

¿Se requiere una mayor corriente para una mayor frecuencia de funcionamiento de la CPU?
Generalmente actual yo yo 0 + k F C V 2 donde fc es la frecuencia del reloj, k es una constante, V es la tensión de funcionamiento e I0 es la corriente de fuga. k variará dependiendo de cuántos transistores estén cambiando en un momento dado, así como del diseño del chip.
En este punto, podemos poner más transistores en una CPU de los que podemos usar al mismo tiempo sin derretirlos. Entonces, en un momento dado, una gran fracción del chip es Dark Silicon : no está encendido, pero está esperando a ser utilizado mientras otras partes del chip (con diferentes funciones especializadas) están apagadas. por ejemplo, el hardware de coma flotante vectorial, los multiplicadores de enteros vectoriales y las unidades aleatorias vectoriales no se pueden saturar todas a la vez, pero cada una tiene un alto rendimiento cuando se usa sola. Además, los cachés grandes no cambian mucho.
Este es un factor importante para que las CPU obtengan hardware cada vez más especializado, como las instrucciones criptográficas AES y SHA, y el BMI2 de Intel (especialmente PEXT/PDEP bit-extract/deposit ). Algo relacionado con el presupuesto del transistor que puede acelerar algunas cargas de trabajo pero que no tiene que estar encendido cuando no está en uso.