¿Cómo implementa la CPU multi-core la coordinación asíncrona?

8

Vengo de una formación en ciencias de la computación y quiero estudiar cálculo de procesos para usar en el diseño de circuitos asíncronos.

Por lo tanto, estoy analizando la práctica actual de los circuitos asíncronos. Hay muchos artículos que dicen que la incapacidad de aumentar la velocidad del reloj conduce a una arquitectura de CPU de múltiples núcleos . Sin embargo, ninguno dice realmente cómo se logra la coordinación asíncrona entre los núcleos.

Quiero que confirme / corrija mis siguientes suposiciones acerca de cómo la CPU de múltiples núcleos actual maneja la coordinación asíncrona:

  1. Cada núcleo tiene señales de reloj separadas, que no necesitan estar en fase entre sí. De lo contrario, el problema de distribución de la señal del reloj no se resolvería realmente, ¿verdad?
  2. Los núcleos se coordinan solo en el nivel de programación. Es decir, haciendo probar y configurar en alguna memoria (RAM o registro). Y no es algo de bajo nivel, como el protocolo de agitar las manos usando rendezvous circuit .
pregunta Billiska

1 respuesta

1

Mezclas dos ideas independientes (ortogonales) en la teoría de los circuitos digitales: circuitos asíncronos y procesadores multinúcleo.

Circuitos asíncronos: circuitos que tienen más de un reloj, y los relojes son asíncronos (es decir, tienen una relación de fase no constante e impredecible).

Algunos circuitos pueden usar dos relojes (por ejemplo), pero uno es solo una división por 2 del otro. Estos circuitos no son asíncronos porque existe una relación de fase conocida entre los dos relojes, aunque las frecuencias de los relojes son diferentes.

Puede tener una CPU de un solo núcleo con pocos relojes asíncronos, y una CPU de varios núcleos con todos sus núcleos ejecutándose en el mismo reloj (este último es solo una CPU imaginaria; todas las CPU de múltiples núcleos reales tienen muchos relojes que constan de varios conjuntos de reloj mutuamente asíncronos).

Los circuitos asíncronos son un tema importante en el diseño digital. La explicación anterior es básica.

CPU de varios núcleos: pocos microprocesadores (núcleos) conectados en paralelo que emplean hardware y software sofisticados para lograr un alto rendimiento.

La práctica habitual es hacer que los núcleos sean lo más independientes posible en términos de relojes / potencia / ejecución / etc. Esto permite el ajuste dinámico (en tiempo de ejecución) de la actividad de las CPU (es decir, la potencia consumida) a las necesidades reales del sistema.

Mi impresión es que lo que está buscando es una explicación sobre las CPU de varios núcleos , no sobre circuitos asíncronos.

Este tema es mucho más grande que cualquier cosa que uno pueda poner en la respuesta.

Las respuestas a sus preguntas, sin embargo:

  1. Los relojes utilizados por diferentes núcleos (que yo sepa) tienen las mismas fuentes (pueden ser más de uno: cristal, VCO, ...). Cada núcleo (normalmente) tiene pocos conjuntos de relojes asíncronos mutuamente. Cada núcleo tiene una lógica de regulación y regulación del reloj dedicada que permite apagar o ralentizar el reloj, independientemente de cada núcleo. Nuevamente, si está interesado solo en el aspecto algorítmico del paralelismo de los núcleos, olvídese de los relojes (por ahora).
  2. Acaba de indicar el aspecto principal del paralelismo de los núcleos: cómo se ejecutan varios núcleos en paralelo de manera eficiente . Este tema es enorme y contiene soluciones HW y SW. Desde la perspectiva de HW, los núcleos modifican una memoria común e intercambian señales de control y estado con la lógica de secuenciación y entre sí. La imagen se complica mucho debido a la existencia de caches . Le sugiero que comience a leer en cachés, luego a coherencia de caché, y solo luego a coberturas en sistemas de múltiples núcleos.

Espero que esto ayude.

    
respondido por el Vasiliy

Lea otras preguntas en las etiquetas