Si tuviera que diseñar un procesador de varios núcleos con muchos núcleos, ¿cuáles son las ventajas de tener 8 bits, 16 bits o 32 bits?

2

Estaba escondido en wikipedia, buscando procesadores con el mayor número de núcleos y, obviamente, cuando se necesitan núcleos para comunicarse entre ellos, puede ser problemático ya que requiere mucho más cableado.

También sentí curiosidad acerca de cómo la longitud de la palabra afecta al tamaño del núcleo en general (sin considerar la resolución de impresión): si un núcleo es cuadrado, teóricamente, significaría (estoy haciendo suposiciones locas aquí) que un solo núcleo de 32 bits toma como tanto espacio como 16 núcleos de 8 bits o 4 núcleos de 16 bits?

Si diseñara un procesador con cientos o miles de núcleos, ¿serían más interesantes los núcleos de 8 bits para aumentar la cantidad de núcleos a expensas de la longitud de la palabra?

(Estoy considerando núcleos de 8 bits para ver si restringir la programación a su mínimo para maximizar el procesamiento paralelo.)

    
pregunta jokoon

2 respuestas

0

Jan's Razor: en un diseño de multiprocesador de chips, esfuércese por omitir todo menos el conjunto mínimo de características del kernel de cada elemento de procesamiento, a fin de maximizar los elementos de procesamiento por troquel. - Jan Gray

Si su aplicación realmente necesita hacer mucho trabajo con números de 32 bits, entonces es posible que el "conjunto mínimo de características del kernel" para esa aplicación deba incluir operaciones de 32 bits. Por otro lado, como señaló Chris Stratton, Si necesita hacer mucho trabajo donde 8 bits son adecuados y solo rara vez se necesitan números de 32 bits, entonces es probable que muchos núcleos de 8 bits le den un mayor rendimiento neto. que usar unos pocos núcleos de 32 bits.

Veo que actualmente estás considerando

  • uno o unos pocos núcleos de 32 bits
  • varios núcleos de 16 bits
  • muchos núcleos de 8 bits.

Hay varias otras posibilidades que, en algunas situaciones, ofrecen un mejor rendimiento que cualquiera de las anteriores:

  • Un núcleo de 32 bits y muchos núcleos más pequeños
  • Reconfiguración dinámica: reconfigure los microprocesadores blandos en un FPGA para obtener uno o unos pocos procesadores de 32 bits a veces cuando se requieren muchos cálculos de 32 bits y la reconfiguración del FPGA para obtener muchos procesadores de 8 bits cuando se obtenga la precisión adecuada y un mejor rendimiento.
  • elementos de procesamiento con carriles más estrechos que 8 bits.

Si bien hay muchos sistemas multinúcleo que incluyen solo núcleos de 32 bits, y muchos que incluyen solo núcleos de 8 bits, veo que la Wikipedia: procesador multi-core el artículo menciona muchos chips que incluyen ambos un procesador de 32 bits y un grupo de procesadores de 16 u 8 bits.

Como mencioné anteriormente - ¿Los FPGA más baratos? :

Las CPU de 32 bits simples (es decir, sin una MMU) requieren aproximadamente 4 veces los recursos FPGA de una CPU de 8 bits. Linux de pleno derecho requiere una CPU con una MMU (como NIOS II / f). Una CPU de 32 bits con una MMU requiere aproximadamente 4 veces los recursos FPGA de una CPU de 32 bits sin una MMU.

Por cierto, 8 bits no es el "mínimo". Es posible que se sorprenda al saber que todas las computadoras creadas antes del Whirlwind de 1951 operaban con menos de 8 bits a la vez. La mayoría de los primeros procesadores masivos en paralelo operaban con menos de 8 bits a la vez: el procesador paralelo masivo Goodyear, la máquina de conexión CM-2, el chip VIRAM1 2003, etc.

El informe más reciente que he visto muestra que las CPU de 4 bits aún superan a las de 32 bits (por volumen). ¿Has visto un informe más reciente? ( Haga CPU de 4 bits ¿Todavía superan a las CPU de 32 bits en la unidad de volumen? )

    
respondido por el davidcary
1

En primer lugar, el área requerida para un núcleo aumenta linealmente con el ancho de la palabra, no el ancho al cuadrado, todas las demás cosas se mantuvieron igual. En otras palabras, O (N), no O (N 2 ). Puede haber algunos bloques funcionales, como los desplazadores de barril o los multiplicadores, que son O (N 2 ), pero estas son estructuras muy regulares y no suelen dominar el área de un núcleo.

Pero tenga en cuenta que los circuitos de control para un núcleo son independientes del tamaño de la palabra, por lo que esto representa una cantidad fija de "sobrecarga" para cada núcleo. Esto significa que cuatro núcleos de 8 bits ocuparán un poco más de más espacio que un solo núcleo de 32 bits.

Además, si necesita trabajar con datos de 32 bits, algo que toma N ciclos de reloj en un núcleo de 32 bits generalmente tomará más de 4 × N ciclos en un núcleo de 8 bits, debido al software gastos generales.

No hay un procesador paralelo de uso general perfecto. Debe ajustar la arquitectura de los núcleos, la jerarquía de la memoria y la red que los une a todos al conjunto de problemas que pretende resolver. Por ejemplo, solo mire las diferencias entre un chip multi-core usado como CPU para una PC y el chip multi-core usado para su GPU.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas