Respuesta corta: Muro de poder
Explicación: Con la llegada de los dispositivos submicrónicos, la potencia se convirtió en un gran problema en los chips. La mayoría de las técnicas hoy en día están orientadas a reducir la potencia, ya que hemos alcanzado lo que se conoce como la pared de potencia. Si los chips consumen demasiada energía, básicamente se quemarán.
Ahora, echemos un vistazo a cuáles son los principales contribuyentes al poder en los chips VLSI. En primer lugar, debemos tener en cuenta que hay 2 tipos de potencias, dinámica (es decir, la potencia consumida cuando el chip está trabajando activamente) y estática (es decir, la potencia de fuga consumida mientras no se trabaja).
- ¿Hay asignaturas teóricas para el semestre 3 de ingeniería informática en la Universidad de Mumbai?
- En términos de ingeniería informática, ¿está bien asistir a una universidad de bajo rango para mi licenciatura si planeo tener una maestría y un doctorado de una universidad de alto rango como MIT en el futuro?
- ¿Cuáles son las ventajas y desventajas de usar la máquina servidor como PC doméstica?
- ¿La ingeniería informática es débil en comparación con las telecomunicaciones?
- ¿Qué hay de malo en ir a la universidad para la ingeniería informática?
El consumo dinámico de energía de un chip viene dado por la expresión:
[matemática] P_ {dyn} = CV ^ 2f [/ matemática] ………………………… C-Vsquared-f (donde C = capacitancia, V = voltaje de alimentación, f = frecuencia de operación)
El objetivo de un diseñador es mejorar el producto (en este caso, la CPU) haciendo que funcione más rápido. Tenga en cuenta que el trabajo en un chip es básicamente cambiar de 0 → 1 o 1 → 0. Esto no es más que cargar y descargar cargas (capacitancia). Sin embargo, para hacer el cambio más rápido, deberíamos tener una carga más baja para cambiar (es decir, una reducción en C) o deberíamos tener una corriente más alta para cargar y descargar las cargas, lo cual se logra al establecer un voltaje de suministro (V) más alto. Además, tenga en cuenta que la C depende de la estructura del circuito, y no hay mucho que podamos hacer para reducirla (quiero decir, por supuesto, hay buenos diseños que usan un número menor de bloques, por lo tanto, menor C para cambiar y diseños malos con C más alta, pero en el nivel industrial donde más o menos todo está estandarizado, no hay mucho margen de mejora, en términos de C). Por lo tanto, nos queda la opción alternativa de aumentar V. Tenga en cuenta que esto dará como resultado que P_dyn se dispare (ya que tanto V como f aumentan), lo que no es deseable por las razones mencionadas anteriormente.
Ahora, supongamos que tenemos 2 núcleos idénticos que funcionan a la frecuencia f / 2 cada uno, en lugar de 1 núcleo que funciona a f . Creo que es bastante fácil convencerse de que tenemos una potencia informática equivalente en ambos casos. Es como contratar a una persona fuerte, o 2 personas de la mitad del poder para hacer un determinado trabajo. Obviamente, la C es la misma en ambos casos (es decir, los 3 núcleos considerados) ya que tienen estructuras exactamente idénticas. Sin embargo, si el núcleo que trabaja en f requiere un voltaje de suministro de V , un núcleo que funciona en f / 2 puede hacerlo con un voltaje de suministro de αV (donde α <1). Ahora, comparemos la potencia consumida en ambos casos:
CASO 1: Núcleo único
[matemáticas] P_ {dyn} = CV ^ 2f [/ matemáticas]
CASO 2: Doble núcleo
Potencia (en cada núcleo) = [matemática] P_ {dyn} = C (αV) ^ 2f / 2 [/ matemática]
[matemática] Potencia_total (para 2 núcleos) = C (αV) ^ 2f / 2 + C (αV) ^ 2f / 2 = C (αV) ^ 2f [/ matemática]
Tenga en cuenta que la potencia total en CASE2 (doble núcleo) es [matemática] a ^ 2 [/ matemática] veces (menor, porque α <1) que la potencia consumida en CASE1. Por lo tanto, si la potencia de cálculo sigue siendo la misma, podemos lograr una reducción de potencia mediante la introducción de múltiples núcleos.
Una pregunta relacionada:
Si ir a 2 núcleos (en lugar de 1 núcleo) nos da una reducción de potencia, ¿por qué no seguimos buceando los núcleos una y otra vez y trabajamos con un sistema de múltiples núcleos (digamos diez mil núcleos)?
Responder:
Tenga en cuenta que en el ejemplo presentado anteriormente, solo los poderes de cálculo son equivalentes. Eso no significa necesariamente que los casos (es decir, núcleo único y núcleo múltiple) van a requerir exactamente el mismo tiempo para realizar cualquier tarea. De hecho, el sistema de doble núcleo puede tomar hasta el doble de tiempo, incluso con la misma potencia de cálculo. ¿Por qué? Debido a que la tarea asignada puede no ser paralelizable, es decir, puede ser una tarea que debe realizarse en serie. En tal situación, mientras un núcleo funciona, el otro tiene que estar inactivo y, en cualquier momento, solo funcionará uno de los núcleos, y dado que cada núcleo tiene la mitad de la capacidad de cálculo en comparación con la máquina de un solo núcleo , tardarán el doble en hacer el mismo trabajo. Sin embargo, prácticamente la mayoría de las tareas tienen algún elemento de paralelismo en ellas, y eso es lo que ha llevado al advenimiento de múltiples núcleos. Paralelizar los códigos para hacer el mejor uso del hardware de soporte es una fuente constante de dolor de cabeza para los programadores. Además, incluso si se escribe un código perfectamente paralelo, incluso entonces necesitaremos un sistema operativo extremadamente eficiente para realizar un seguimiento de los diferentes fragmentos del código que se ejecutan en diferentes CPU, ensamblar y asimilar las salidas fragmentadas para obtener la salida final. Además, a medida que seguimos reduciendo la frecuencia, las ganancias en potencia siguen reduciéndose, es decir, α se acerca cada vez más a 1. Estas son algunas de las limitaciones prácticas de dividir el núcleo indefinidamente.