Sincronizador de barrera
Descripción general
 Realiza la sincronización de barrera a alta velocidad entre procesadores arbitrarios. ] Un procesador para ser sometido a sincronización de barrera está preestablecido en el registro de máscara 300, y cada procesador 100 informa una solicitud de sincronización al registro de sincronización 200. La ocurrencia de la solicitud de sincronización a someterse a la sincronización de barrera se notifica al contador 550 mediante el circuito de detección de ocurrencia de sincronización 500, y el valor del contador 550 disminuye cada vez. Cuando el contador 550 cuyo valor inicial es el número de procesadores seleccionados para la sincronización de barrera se convierte en 0, se establece la sincronización de barrera y la respuesta se envía al procesador correspondiente para la solicitud de sincronización mantenida en el registro de sincronización 200.
Campo técnico
La presente invención se refiere a un aparato de sincronización de barrera en un sistema multiprocesador, y más particularmente a un aparato de sincronización de barrera que realiza la sincronización de barrera entre procesadores predeterminados.
Antecedentes de la técnica
En los sistemas multiprocesador, el proceso de multitarea se divide en una tarea dividida en una pluralidad de tareas, que se asignan a una pluralidad de procesadores y se ejecutan de ese modo para lograr alta velocidad. En este proceso de multitarea, hay una tecnología llamada sincronización de barrera como un método de sincronización entre procesadores. Esta sincronización de barrera es para continuar el procesamiento de tareas subsiguiente cuando finaliza el procesamiento de tareas que pertenece al mismo trabajo.
Como una técnica para la sincronización entre el procesador convencional, por ejemplo, JP-A-3 229 350, el procesador principal del sistema de multiprocesador detecta el final de la tarea en el otro procesador, lleva a cabo una nueva tarea se activa en el procesador maestro Es descrito. En esta técnica convencional, cuando el procesador maestro finaliza su propia tarea, emite una señal predeterminada a todos los demás procesadores no maestros. Por otro lado, cuando recibe una señal del procesador maestro, el otro procesador no maestro devuelve una señal de nivel alto si la tarea se completa y devuelve una señal de nivel bajo si la tarea no se termina. En este momento, si hay al menos un procesador que emite un nivel bajo, se ingresa una señal de nivel bajo al procesador maestro. El procesador maestro espera que se ingrese una señal de alto nivel y activa una nueva tarea.
Tarea de solución
En la técnica anterior descrita anteriormente, dado que el procesador maestro verifica la finalización de tareas en otros procesadores, la carga requerida para la sincronización puede concentrarse en el procesador maestro. Además, dado que la activación de la tarea después de la sincronización se limita al procesador maestro, existe el problema de que el proceso se vuelve complicado de aplicar a la sincronización de barrera que continúa el procesamiento posterior a la vez. Por otro lado, todos los procesadores que no sean el procesador maestro están sujetos a sincronización, y existe el problema de que no se puede especificar un procesador arbitrario.
Un objeto de la presente invención es realizar sincronización de barrera a alta velocidad entre procesadores arbitrarios.
Otro objeto de la presente invención es realizar eficientemente la sincronización de barrera sin dar una carga a un procesador específico.
Solución
Para resolver el problema anterior, el aparato de sincronización de barrera de la presente invención comprende un primer registro para designar una pluralidad de procesadores para ser sometidos a sincronización de barrera por adelantado, y un objeto de sincronización de barrera especificado por el primer registro Un segundo registro que contiene una solicitud de sincronización de cada uno de la pluralidad de procesadores, y una solicitud de sincronización de todos los procesadores para someterse a la sincronización de barrera especificada por el primer registro se mantiene en el segundo registro, Y medios para notificar al procesador que se ha establecido la sincronización de barrera.
Otro aparato de sincronización de barrera de la presente invención, cada procesador que comprende un primer registro para pre-especificando una pluralidad de procesadores a los que la sincronización de barrera de la objetivo, el objetivo de la sincronización de barrera especificado por el primer registro Un segundo registro que contiene una solicitud de sincronización del primer registro y detección de generación síncrona para detectar que una solicitud de sincronización de un procesador para ser sometida a la sincronización de barrera especificada por el primer registro se mantiene en el segundo registro Un contador para contar el número de solicitudes de sincronización detectadas por los medios de detección de ocurrencia de sincronización, contando los medios de detección de extremo para detectar que el contador ha sido contado hasta que el número de procesadores que se someterán a la sincronización de barrera alcance el número. Cuando se detecta que el conteo ha finalizado por los medios de detección del extremo de conteo, la rebaba especificada por el primer registro Y medios para notificar que se ha establecido la sincronización del sujeto a la sincronización barrera procesador.
En el otro aparato de sincronización de barrera de la presente invención, los medios de notificación retrasan la respuesta al procesador para que la solicitud de sincronización del procesador se someta a la sincronización de barrera hasta que se establece la sincronización de barrera, y el segundo registro Consiste en una pluralidad de bits correspondientes a cada procesador bit por bit y se establece mediante una solicitud de sincronización del procesador correspondiente y se restablece cuando se devuelve una respuesta al procesador correspondiente.
En el otro dispositivo de sincronización de barrera de la presente invención, el medio de notificación notifica a los procesadores respectivos que están sincronizados en la barrera cuando se establece la sincronización de barrera en respuesta a la solicitud de sincronización del procesador para ser sometido a la sincronización de barrera , Dicho segundo registro está compuesto por una pluralidad de bits correspondientes a cada procesador de a un bit a la vez y configurado por una solicitud de sincronización de un procesador correspondiente para ser sometido a sincronización de barrera y dicha finalización del recuento por dichos medios de detección del extremo de recuento Se restablece cuando se detecta.
Otro aparato de sincronización de barrera de la presente invención, cada procesador que comprende un primer registro para pre-especificando una pluralidad de procesadores a los que la sincronización de barrera de la objetivo, el objetivo de la sincronización de barrera especificado por el primer registro Un segundo registro para mantener una solicitud de sincronización de dicho primer registro y dicho segundo registro, un comparador para detectar coincidencia entre dicho primer registro y dicho segundo registro, y, cuando un emparejamiento es detectado por dicho comparador, Y medios para notificar al procesador que es el objetivo de la sincronización de barrera designada por la sincronización de barrera que se ha establecido la sincronización de barrera.
En el otro aparato de sincronización de barrera de la presente invención, los medios de notificación retrasan la respuesta al procesador para que la solicitud de sincronización del procesador se someta a la sincronización de barrera hasta que se establece la sincronización de barrera, y el segundo registro Consiste en una pluralidad de bits correspondientes a cada procesador bit por bit y se establece mediante una solicitud de sincronización del procesador correspondiente y se restablece cuando se devuelve una respuesta al procesador correspondiente.
En el otro dispositivo de sincronización de barrera de la presente invención, el medio de notificación notifica a los procesadores respectivos que están sincronizados en la barrera cuando se establece la sincronización de barrera en respuesta a la solicitud de sincronización del procesador para ser sometido a la sincronización de barrera El segundo registro está compuesto por una pluralidad de bits que corresponden a cada procesador bit por bit y se establece mediante una solicitud de sincronización de un procesador correspondiente que se someterá a sincronización de barrera y se restablecerá cuando el comparador detecte una coincidencia.
Descripción detallada de las realizaciones preferidas Ahora se describirá en detalle una realización de un aparato de sincronización de barrera según la presente invención con referencia a los dibujos.
Con referencia a la figura 1, un aparato de sincronización de barrera según una realización de la presente invención incluye un registro de sincronización 200 para mantener la presencia o ausencia de una solicitud de sincronización de cada procesador 100, un registro de máscara 300 para designar un procesador a sincronizar, Un circuito de detección de generación de sincronización 500 para detectar la aparición de una solicitud de sincronización, un contador 550 para contar el número de procesadores cuya sincronización no ha finalizado, y un circuito de detección 0 5 para detectar que el contador 550 se ha convertido en 0 .
Al alcanzar el punto de sincronización de la sincronización de barrera, cada procesador 100 emite una solicitud de sincronización. Esta solicitud de sincronización se introduce en el terminal configurado del registro de sincronización 200. El registro de sincronización 200 mantiene indicadores de sincronización uno por uno correspondientes a cada procesador 100. Este indicador de sincronización indica '0' antes de que se genere la solicitud de sincronización desde el procesador correspondiente, e indica '1' cuando se produce una solicitud de sincronización. El valor del registro síncrono 200 se borra a '0' a través del terminal de reinicio cuando se envía una respuesta al procesador correspondiente. Aquí, la respuesta significa una señal de respuesta a una solicitud del procesador. En respuesta a una solicitud de sincronización de barrera, se envía una respuesta que indica que se ha establecido la sincronización. Además, para otras solicitudes, la respuesta debe devolverse rápidamente sin esperar la sincronización.
El registro de máscara 300 es un registro para designar un procesador que se someterá a sincronización de barrera. '1' se establece en el caso del objetivo de sincronización de barrera, y '0' se establece en el caso de que no sea el objetivo. Con respecto a la solicitud de sincronización del procesador que está excluida del registro de máscara 300, la respuesta se devuelve sin sincronización.
El contador 550 es un contador para contar el número de procesadores cuya sincronización no se ha completado. La cantidad de procesadores que se someterán a la sincronización de barrera está preestablecida en este contador 550. Con este valor como valor inicial, su valor se resta de acuerdo con una instrucción del circuito 500 de detección de ocurrencia de sincronización. Cuando el valor de este contador 550 se convierte en 0, el circuito de detección 0 5 detecta este hecho y emite '1'.
El circuito de detección de ocurrencia de sincronización 500 detecta la ocurrencia de una solicitud de sincronización para ser sometida a sincronización de barrera y genera una señal de control al contador 550. Esta señal de control incluye la cantidad de procesadores en los que se produjo la sincronización durante el ciclo. Por ejemplo, en un cierto ciclo, cuando se produce una solicitud de sincronización simultáneamente desde dos procesadores para ser sometidos a sincronización de barrera, el circuito de detección de ocurrencia de sincronización 500 transmite el número '2' al contador 550. Como resultado, el contador 550 disminuye su valor por '2'.
El circuito AND 430 genera un AND lógico de los bits correspondientes del registro síncrono 200 y el registro de máscara 300, y suministra el AND al circuito de detección de ocurrencia síncrona 500. Es decir, la solicitud de sincronización del procesador no designado por el registro de máscara está enmascarada por este circuito AND 430 y entrada al circuito de detección de generación de sincronización 500.
El circuito OR 420 genera una suma lógica del bit invertido del registro 300 de máscara y el circuito 560 de detección 0. Es decir, si el valor del registro de máscara correspondiente 300 es '0' o la salida del circuito de detección 0 5 es '1', la línea 420 de suma lógica produce '1'. El producto lógico de la salida del circuito OR 420 y el bit correspondiente del registro síncrono 200 es generado por el circuito AND 410 y utilizado como el tiempo de la respuesta al procesador 100.
Es decir, cuando se emite una solicitud de sincronización desde un procesador determinado, si se establece en el registro 300 de máscara que no está sujeto a la sincronización de barrera, la respuesta se devuelve tal como está. En este caso, el bit del registro síncrono 200 correspondiente se borra a '0'. Por otro lado, si se emite una solicitud de sincronización desde un determinado procesador, si se establece en el registro 300 de máscara que se debe realizar la sincronización, se suspende la respuesta al procesador. Cuando la sincronización de barrera es informada por el circuito de detección 0 560, la respuesta reservada se envía al procesador, todo de una vez.
A continuación, se describirá la operación de la primera realización de la presente invención con referencia a los dibujos.
Con referencia a la figura 2, se conectan cuatro procesadores A, B, C y D. Cuando A, C y D entre ellos son objetos de sincronización de barrera, '1011' se almacena en el registro de máscara 300 Se establece de antemano. Además, '3', que es la cantidad de procesadores seleccionados para la sincronización de barrera, se establece en el contador 550.
En el primer ciclo, dado que ninguno de los procesadores ha generado una solicitud síncrona, el valor del registro síncrono 200 es '0000'.
En el segundo ciclo, dado que la solicitud de sincronización es generada por el procesador A, el registro de sincronización 200 pasa a ser '1000' en el siguiente tercer ciclo. Entonces, '1' que es 'el número de procesadores que generaron la solicitud de sincronización' se envía desde el circuito 500 de detección de ocurrencia de sincronización. En respuesta a esta instrucción, el contador 550 establece su valor a '2' en el próximo cuarto ciclo.
En el cuarto ciclo, dado que la solicitud de sincronización es generada por el procesador B, el registro de sincronización 200 pasa a ser '1100' en el próximo quinto ciclo. En este caso, dado que el valor correspondiente del registro 300 de máscara es '0', la respuesta se envía rápidamente al procesador B en el quinto ciclo. Con esta respuesta, el registro de sincronización 200 vuelve a ser '1000'.
En el séptimo ciclo, dado que la solicitud de sincronización se produce en los procesadores C y D, el registro de sincronización 200 pasa a ser '1011' en el próximo octavo ciclo. Entonces, '2' que es 'el número de procesadores que generaron la solicitud de sincronización' se emite desde el circuito 500 de detección de ocurrencia de sincronización. Al recibir esta instrucción, el contador 550 establece su valor a '0' en el próximo noveno ciclo. Como resultado, el circuito 0 de detección 560 genera '1', y la respuesta se envía a los procesadores A, C y D, respectivamente.
Como se describió anteriormente, de acuerdo con el aparato de sincronización de barrera de la primera realización de la presente invención, disminuyendo el contador 550 cada vez que se genera una solicitud de sincronización válida, se puede devolver una solicitud de sincronización de barrera a alta velocidad. .
A continuación, se describirá una segunda realización del aparato de sincronización de barrera de la presente invención con referencia a los dibujos.
Con referencia a la figura 3, el aparato de sincronización de barrera de acuerdo con la segunda realización de la presente invención tiene la misma configuración que la de la primera realización, pero a diferencia de la primera realización, Un circuito de productos 440 está conectado. Por lo tanto, la solicitud de sincronización que se excluye de la sincronización de barrera por el registro de máscara 300 no se mantiene en el registro de sincronización 200. Tal configuración es efectiva cuando no se requiere una respuesta a un procesador que no sea el objetivo de barrera. Por ejemplo, es adecuado para un caso en el que se genera una interrupción en un procesador de destino cuando se completa la sincronización de barrera.
A continuación, se describirá la operación de la segunda realización de la presente invención con referencia a los dibujos.
Con referencia a la figura 4, se muestra casi la misma temporización que en el caso de la primera realización, pero en el quinto ciclo, el registro de sincronización 200 mantiene temporalmente la solicitud de sincronización del procesador B y se convierte en '1100'. Son diferentes Una interrupción se usa como medio para notificar el resultado de la sincronización de barrera al procesador, y no se genera interrupción en el quinto ciclo, y se genera una interrupción en los procesadores A, C, D en el noveno ciclo.
Como se describió anteriormente, de acuerdo con el aparato de sincronización de barrera de la segunda realización de la presente invención, estableciendo solamente la solicitud de sincronización efectiva en el registro 200 de sincronización, es posible generar la interrupción de sincronización de barrera a alta velocidad. Tu puedes
A continuación, se describirá una tercera realización del aparato de sincronización de barrera de la presente invención con referencia a los dibujos.
Con referencia a la figura 5, el aparato de sincronización de barrera según la tercera realización de la presente invención tiene la misma configuración que en la primera realización, pero el circuito de detección de generación de sincronización 500 y el contador 550 como en la primera realización No hay tal cosa La tercera realización tiene un comparador 600 que compara los respectivos bits del registro síncrono 200 y el registro de máscara 300 para detectar que todos los bits son coincidentes. Es decir, cuando los contenidos del registro síncrono 200 coinciden con los contenidos preestablecidos en el registro 300 de máscara, se emite '1' suponiendo que se ha establecido la sincronización de barrera. Por lo tanto, la salida del comparador 600 tiene la misma función que la salida del circuito de detección 0 560 de la primera realización.
Por lo tanto, según el aparato de sincronización de barrera de acuerdo con una tercera realización de la presente invención, mediante la comparación de los contenidos de la sincronización de registro 200 y registro de máscara 300 por el comparador 600, se envía de nuevo una solicitud de velocidad de sincronización barrera Tu puedes hacer
A continuación, se describirá una cuarta realización del dispositivo de sincronización de barrera de la presente invención con referencia a los dibujos.
Con referencia a la figura 6, el aparato de sincronización de barrera de acuerdo con la cuarta realización de la presente invención tiene la misma configuración que la de la tercera realización, pero a diferencia de la tercera realización, Un circuito de productos 440 está conectado. Por lo tanto, la solicitud de sincronización que se excluye de la sincronización de barrera por el registro de máscara 300 no se mantiene en el registro de sincronización 200. Al igual que la segunda realización, dicha configuración es adecuada para un caso en el que una respuesta a un procesador distinto del objetivo de barrera es innecesaria y se genera una interrupción cuando se completa la sincronización de barrera.
Por lo tanto, de acuerdo con un dispositivo de sincronización de barrera de acuerdo con una cuarta realización de la presente invención, mediante la comparación de los contenidos de la sincronización de registro 200 y registro de máscara 300 por el comparador 600, se genera una interrupción a la velocidad de sincronización barrera Tu puedes hacer
Efecto de la invención
Como es evidente a partir de la descripción anterior, de acuerdo con la presente invención, es posible detectar el establecimiento de sincronización de barrera entre procesadores previamente designados y continuar el procesamiento posterior en cada uno de los procesadores a alta velocidad. Además, de acuerdo con la presente invención, al desplazar la carga de la sincronización de barrera hacia el exterior del procesador, es posible realizar de manera eficiente la sincronización de barrera sin cargar el procesador.
La figura 1 es un diagrama de bloques que muestra una configuración de una primera realización del dispositivo de sincronización de barrera de la presente invención.
La figura 2 es un diagrama que muestra el funcionamiento del aparato de sincronización de barrera de acuerdo con la primera realización de la presente invención.
La figura 3 es un diagrama de bloques que muestra una configuración de una segunda realización del aparato de sincronización de barrera de la presente invención.
La figura 4 es un diagrama que muestra el funcionamiento del aparato de sincronización de barrera de acuerdo con la segunda realización de la presente invención.
La figura 5 es un diagrama de bloques que muestra una configuración de una tercera realización del dispositivo de sincronización de barrera de la presente invención.
La figura 6 es un diagrama de bloques que muestra una configuración de una cuarta realización del aparato de sincronización de barrera de la presente invención.
100 procesadores
200 Registro síncrono
300 Máscara de registro
Circuito de detección de generación 500 Sync
550 contador
560 0 circuito de detección
Comparador 600
Reclamo
Un primer registro para designar preliminarmente una pluralidad de procesadores para ser sometidos a sincronización de barrera; un segundo registro para preservar una solicitud de sincronización de cada uno de los procesadores para ser sometidos a la sincronización de barrera especificada por el primer registro; Cuando la solicitud de sincronización de todos los procesadores para someterse a la sincronización de barrera especificada por el primer registro se mantiene en el segundo registro, notifica al procesador que se ha establecido la sincronización de barrera Medios para generar una señal de sincronización de barrera;
Un segundo registro para designar previamente una pluralidad de procesadores para ser sometidos a sincronización de barrera, un segundo registro para preservar las solicitudes de sincronización de cada uno de los procesadores para ser sometido a la sincronización de barrera designada por el primer registro; Un medio de detección de ocurrencia síncrona para detectar que una solicitud de sincronización de un procesador para ser sometido a la sincronización de barrera designada por dicho primer registro se mantiene en dicho segundo registro; Un contador para contar el número de solicitudes de sincronización detectadas, contando los medios de detección de extremo para detectar el conteo por el contador hasta que se alcanza el número de procesadores a sincronizar con la barrera, contando los medios de detección finalizados Un procesador que se someterá a la sincronización de barrera designada por el primer registro se establece aparato de sincronización Barrera caracterizado por que comprende medios para notificar que la sincronización de barrera.
3. El aparato según la reivindicación 1, en el que dichos medios para notificar retrasan una respuesta a un procesador hasta que se establece una sincronización de barrera para una solicitud de sincronización de un procesador para ser sometido a sincronización de barrera, y dicho segundo registro contiene 3. Aparato de sincronización de barrera según la reivindicación 2, que comprende una pluralidad correspondiente de bits, establecido por una solicitud de sincronización de un procesador correspondiente, y restablecido cuando se devuelve una respuesta a un procesador correspondiente.
4. Aparato según la reivindicación 1, en el que dichos medios para notificar notifican una interrupción a cada procesador para ser sometido a sincronización de barrera cuando se establece una sincronización de barrera con respecto a una solicitud de sincronización de un procesador para ser sometida a sincronización de barrera, Consiste en una pluralidad de bits correspondientes a cada procesador bit por bit y se establece mediante una solicitud de sincronización desde un procesador correspondiente como un objetivo de sincronización de barrera y reinicio tras la detección de compleción del conteo por los medios de detección del extremo de conteo 3. El aparato de sincronización de barrera según la reivindicación 2, en el que
Un primer registro para especificar una pluralidad de procesadores para ser reivindicación 5 antelación sincronización barrera, una segunda para la celebración de la solicitud de sincronización de cada procesador a ser del objetivo de sincronización de barrera especificado por el primer registro Un comparador para detectar coincidencia entre el primer registro y el segundo registro, y un comparador para comparar el objeto de la sincronización de barrera especificado por el primer registro y el objeto de sincronización de barrera especificado por el segundo registro Y medios para informar que la sincronización de barrera se ha establecido para el procesador que tiene la sincronización de barrera.
6. El aparato según la reivindicación 1, donde dichos medios para notificar retrasan una respuesta a un procesador hasta que se establece una sincronización de barrera en respuesta a una petición de sincronización de un procesador para ser sometido a sincronización de barrera, y dicho segundo registro almacena un bit 6. Aparato de sincronización de barrera según la reivindicación 5, que comprende una pluralidad correspondiente de bits, establecido por una solicitud de sincronización de un procesador correspondiente, y restablecido cuando se devuelve una respuesta a un procesador correspondiente.
7. Aparato según la reivindicación 1, en el que dichos medios para notificar notifican una interrupción a cada procesador que se someterá a sincronización de barrera cuando se establece la sincronización de barrera con respecto a una solicitud de sincronización de un procesador para someterse a sincronización de barrera, En el que cada uno de dicha pluralidad de procesadores comprende una pluralidad de bits correspondientes a cada procesador bit por bit y se establece mediante una solicitud de sincronización desde un procesador correspondiente para someterse a sincronización de barrera y reiniciar cuando se detecta una coincidencia por dicho comparador. Un aparato de sincronización de barrera como se describe.
Dibujo :
Application number :1997-006734
Inventors :日本電気株式会社
Original Assignee :西田政人