8 votos

¿Cómo implementa la CPU multinúcleo la coordinación asíncrona?

Vengo de la informática y quiero estudiar cálculo de procesos para su uso en el diseño de circuitos asíncronos.

Así pues, estoy buscando la práctica actual sobre los circuitos asíncronos. Hay muchos artículos que dicen La incapacidad de aumentar la velocidad de reloj lleva a una arquitectura de CPU multinúcleo . Sin embargo, ninguno dice realmente cómo se consigue la coordinación asíncrona entre núcleos.

Quiero que confirmen/corrijan mis siguientes suposiciones sobre cómo la CPU multinúcleo actual maneja la coordinación asíncrona:

  1. Cada núcleo tiene señales de reloj independientes, que no necesitan estar en fase entre sí. De lo contrario, el problema de la distribución de la señal de reloj no estaría realmente resuelto, ¿verdad?
  2. Los núcleos se coordinan sólo a nivel de programación. Es decir, haciendo prueba y ajuste en alguna memoria (RAM o registro). Y no algo de bajo nivel como el protocolo de agitación de manos usando circuito de encuentro .

1voto

Louise Puntos 16

Se mezclan dos ideas independientes (ortogonales) en la teoría de los circuitos digitales: los circuitos asíncronos y los 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 utilizar dos relojes (por ejemplo), pero uno es sólo 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 sean diferentes.

Puedes tener una CPU de un solo núcleo con pocos relojes asíncronos, y una CPU multinúcleo con todos sus núcleos funcionando con el mismo reloj (esto último es sólo una CPU imaginaria - todas las CPUs multinúcleo reales tienen muchos relojes que consisten en varios conjuntos de relojes mutuamente asíncronos).

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

CPUs multinúcleo: unos cuantos microprocesadores (núcleos) conectados en paralelo que emplean un sofisticado hardware y software para conseguir 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 ajustar de forma dinámica (en tiempo de ejecución) la actividad de las CPUs (es decir, la energía consumida) a las necesidades reales del sistema.

Mi impresión es que lo que que buscas es una explicación sobre las CPUs multinúcleo no a los circuitos asíncronos.

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

Las respuestas a sus preguntas, sin embargo:

  1. Los relojes utilizados por los diferentes núcleos (hasta donde yo sé) tienen las mismas fuentes (pueden ser más de una: cristal, VCO, ...). Cada núcleo (normalmente) tiene unos cuantos conjuntos de relojes mutuamente asincrónicos. Cada núcleo tiene una lógica de control de reloj dedicada que permite apagar o ralentizar el reloj, de forma independiente para cada núcleo. De nuevo, si estás interesado sólo en el aspecto algorítmico del paralelismo de los núcleos, olvídate de los relojes (por ahora).
  2. Acaba de indicar el aspecto principal del paralelismo de los núcleos: cómo ejecutar varios núcleos en paralelo de manera eficiente . Este tema es enorme y contiene soluciones tanto de HW como de SW. Desde el punto de vista del hardware, 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 ellos mismos. El panorama se complica mucho debido a la existencia de cachés - Te sugiero que empieces a leer sobre las cachés, luego sobre la coherencia de las cachés, y sólo después sobre las cajas en los sistemas multinúcleo.

Espero que esto ayude.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X