ES2285415T3 - Conjunto ordenado de procesadores. - Google Patents
Conjunto ordenado de procesadores. Download PDFInfo
- Publication number
- ES2285415T3 ES2285415T3 ES04705111T ES04705111T ES2285415T3 ES 2285415 T3 ES2285415 T3 ES 2285415T3 ES 04705111 T ES04705111 T ES 04705111T ES 04705111 T ES04705111 T ES 04705111T ES 2285415 T3 ES2285415 T3 ES 2285415T3
- Authority
- ES
- Spain
- Prior art keywords
- bus
- primary
- delay
- processors
- ordered set
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
- Eye Examination Apparatus (AREA)
- Bus Control (AREA)
Abstract
Un conjunto ordenado de procesadores, que comprende: una pluralidad de buses primarios (8), cada uno conectado a un activador (1) de bus primario, y teniendo cada uno una pluralidad respectiva de nodos (2) de bus primario en el mismo; pluralidades respectivas de buses secundarios (7), conectadas a dichos nodos (2) de bus primario; y una pluralidad de elementos (4) de procesador cada uno conectado a uno de los buses secundarios (7); caracterizado por elementos de retardo, asociados con los nodos (2) de bus primario, para retardar las comunicaciones con los elementos (4) de procesador conectados a diferentes buses de los buses secundarios (7) por cantidades diferentes, con el fin de lograr un grado de sincronización entre la operación de dichos elementos (4) de procesador.
Description
Conjunto ordenado de procesadores.
Este invento se refiere a un conjunto ordenado
de procesadores, y en particular a un gran conjunto ordenado de
procesadores que requiere comunicación multi-bit,
bidireccional y de elevado ancho de banda a un procesador en una
vez, a todos los procesadores al mismo tiempo o a un
sub-conjunto de procesadores al mismo tiempo. Esta
comunicación se podría necesitar para transferencia de datos, tal
como cargar un programa en un procesador o volver a extraer
información de estado o información de resultados de un procesador,
o para control del conjunto ordenado de procesadores, tal como la
puesta en marcha, parada o el escalonamiento único sincrónicos de
los procesadores individuales.
El documento
GB-A-2370380 describe un gran
conjunto ordenado de procesadores, en el que cada procesador
(elemento de conjunto ordenado) necesita guardar las instrucciones
que constituyen un programa operativo, y luego necesita ser
controlable de tal manera que ejecute el programa operativo según se
desee. Como los elementos de conjunto ordenado pasan datos de uno a
otro, es esencial que los procesadores estén sincronizados al menos
aproximadamente. Por tanto, se deben poner en marcha (es decir,
comenzar a ejecutar su programa) al mismo tiempo. Análogamente, si
tienen que detenerse en algún instante y luego volver a ponerse en
marcha, necesitan detenerse al mismo tiempo.
Debido al gran número de elementos de conjunto
ordenado, y a las dimensiones relativamente grandes de sus memorias
de instrucciones, memorias de datos, archivos de registro, etc., es
ventajoso que se pueda cargar rápidamente el programa para cada
elemento de conjunto ordenado.
Debido al tamaño del conjunto ordenado de
procesadores, es difícil minimizar la cantidad de sesgo del reloj
entre cada elemento de conjunto ordenado y, de hecho, es ventajoso
desde el punto de vista de suministrar energía a los elementos de
conjunto ordenado tener una cierta cantidad de sesgo del reloj. Es
decir, es necesario para los elementos de conjunto ordenado estar
sincronizados hasta dentro de aproximadamente un ciclo de reloj
entre sí.
Para el control sincrónico de un conjunto
ordenado de procesadores, la solución más sencilla sería conexionar
las señales de control a todos los elementos de conjunto ordenado en
una divergencia de salida en paralelo. Esto tiene la limitación de
que llega a ser difícil de manejar una vez que el conjunto ordenado
es mayor de un tamaño determinado. Una vez que la distancia que las
señales tienen que recorrer es tan larga que causa que las señales
tarden más de un ciclo de reloj en llegar a los elementos de
conjunto ordenado más distantes, se hace difícil conducir las
señales de control eficientemente y equilibrar los tiempos de
llegada a punto final sobre todas las condiciones operativas. Esto
impone un límite superior sobre la velocidad de reloj que se puede
usar, y por tanto sobre el ancho de banda de las comunicaciones.
Adicionalmente, esta solución no se adapta bien a poder hablar
justo a un procesador cada vez en un modo y luego a todos los
procesadores enseguida en otro modo.
Para comunicaciones de elevado ancho de banda a
múltiples puntos finales, las redes conmutadas por paquetes o
conmutadas por circuitos son una buena solución. Sin embargo, esta
solución tiene el inconveniente de que generalmente no es
sincrónica en todos los puntos finales. El retraso en comunicación
hasta los puntos finales más alejados es mayor que a los puntos
finales que están muy próximos. Esto requiere también que los nodos
de la red sean bastante inteligentes, y por tanto complejos.
Es también necesario considerar el tema de la
escalabilidad. Un diseño que funcione bien en un conjunto ordenado
de procesadores podría tener que rediseñarse por completo para un
conjunto ordenado ligeramente mayor, y podría resultar
relativamente ineficaz para un conjunto ordenado menor.
El documento JP08297652 describe un conjunto
ordenado de procesadores que comprende buses primarios con buses
secundarios conectados a los mismos. Esto tiene el efecto de reducir
el área de conexionado necesaria para conectar todos los elementos
de procesador del conjunto ordenado, pero no tiene en cuenta
diferencias en el retraso en comunicación entre elementos muy
próximos al excitador del bus y los que están lejos de él.
De acuerdo con el presente invento, se provee lo
especificado en las reivindicaciones.
La Figura 1 es un diagrama esquemático de
bloques de un conjunto ordenado de procesadores de acuerdo con el
presente invento.
La Figura 2 es un diagrama esquemático de
bloques de una primera realización de un nodo primario en el
conjunto ordenado de la Figura 1.
La Figura 3 es un diagrama esquemático de
bloques de una segunda realización de un nodo primario en el
conjunto ordenado de la Figura 1.
La Figura 4 es un diagrama esquemático de
bloques de un nodo secundario en el conjunto ordenado de la Figura
1.
La Figura 5 es un diagrama esquemático de
bloques, más detallado, de una parte del conjunto ordenado de la
Figura 1.
La Figura 6 es un diagrama esquemático de
bloques, más detallado, de una segunda parte del conjunto ordenado
de la Figura 1.
Las Figuras 7 y 8 muestran partes del conjunto
ordenado de la Figura 1, en uso.
La Figura 1 muestra un conjunto ordenado de
procesadores 4, que están conectados todos a un activador 1 de
columna sobre buses 5. Como se ha ilustrado, el conjunto ordenado
está constituido por filas horizontales y columnas verticales de
elementos 4 de conjunto ordenado, aunque las posiciones físicas
reales de los elementos de conjunto ordenado no son importantes
para este invento. Cada fila de elementos de conjunto ordenado se
ha dividido en sub-grupos 6. Los elementos 4 de
conjunto ordenado dentro de un sub-grupo 6 están
conectados juntos en un segmento 7 de bus horizontal por medio de
los respectivos nodos 3 de fila. Los segmentos 7 de bus horizontal
están conectados buses verticales 8 por medio de respectivos nodos 2
de columna. Cada sub-grupo 6 contiene elementos de
conjunto ordenado con los que el nodo 2 de columna puede comunicar
fácilmente dentro de un único ciclo de reloj. De este modo, los
buses verticales 8 actúan como buses primarios, los nodos 2 de
columna actúan como nodos de bus primario, los segmentos 7 de bus
horizontal actúan como nodos de bus secundario y los nodos 3 de
fila actúan como nodos de bus secundario.
Cada bus vertical 8 se activa individualmente
mediante el activador 1 de columna, como se describirá con más
detalle más adelante con referencia a la Figura 5. Esto sirve como
parte del encaminamiento de comunicación y como un medio de
conservar energía.
Cada uno de los buses 5, 7, 8 es de hecho un par
de buses multidireccionales multibit, uno en cada dirección, aunque
para mayor claridad de la exposición se han mostrado como una sola
línea.
Los nodos 2 de columna adoptan dos formas
diferentes, mostradas respectivamente en las Figuras 2 y 3. La
Figura 2 muestra un nodo de columna sin una etapa de canalización
vertical, mientras que la Figura 3 muestra un nodo de columna con
una etapa de canalización vertical.
En el nodo 10 de columna mostrado en la Figura
2, la parte de salida del bus vertical 8, que transporta datos del
activador 1 de columna, se propaga directamente a través del nodo 10
desde una entrada 12 hasta una salida 15. Tiene también una
derivación, en una conexión 26, a un bus adicional 25. El bus 25
está conectado a una parte 13 de salida del segmento 7 de bus
horizontal por medio de una corta línea de retardo 18 con
derivación. La línea de retardo derivada 18 permite que la señal
que va al segmento 7 de bus horizontal se retarde por un número
entero predeterminado de ciclos de reloj. La parte 14 de camino de
retorno del segmento 7 de bus horizontal, que transporta datos al
activador 1 de columna, se hace pasar también a través de una corta
línea de retardo derivada 19 para conectar a un bus 20. La línea de
retardo 19 retarda la señal de retorno por un número predeterminado
de ciclos de reloj. El retardo en la línea de retardo 19 es
preferiblemente el mismo que el retardo en la línea de retardo 18,
aunque el retardo en la línea de retardo 19 se podría elegir de
modo que fuese diferente del retardo en la línea de retardo 18, con
tal que los retardos en los diferentes nodos 10 se configuren para
que exista el mismo retardo total cuando se envía la señal a todos
los puntos finales, y cuando se reciban señales procedentes de
todos los puntos finales. El bus 20 se combina con el camino de
retorno del bus vertical recibido en una entrada 16 en una función
lógica "O" 17 a nivel de bit, para formar una señal de bus
vertical de camino de retorno para la salida 11.
La Figura 3 presenta una forma alternativa de
nodo 22 de columna. Las características del nodo 22 de columna, que
tiene las mismas funciones que las características del nodo 10 de
columna mostradas en la Figura 2, se han indicado mediante los
mismos números de referencia, y no se volverán a describir más
adelante. Comparado con el nodo 19 de columna, el nodo 22 de
columna tiene una etapa de canalización vertical. Es decir, existe
un registro 23 de canalización insertado en la parte de salida del
bus vertical 8, que retarda las señales de salida en un ciclo de
reloj, y un registro 24 de canalización insertado en el camino de
retorno del bus vertical 8, que similarmente retarda las señales de
retorno en un ciclo de reloj.
Ambos tipos de nodo de columna 10, 22 proveen
una unión entre el bus vertical 8 y los segmentos 7 de bus
horizontal para los sub-grupos 6 de elementos 4 de
conjunto ordenado. El nodo 22 de columna que tiene una etapa de
canalización vertical permite que el camino total de bus vertical
sea más largo que un solo ciclo de reloj. El nodo 10 de columna sin
la etapa de canalización vertical permite la unión a proveer sin la
adición de una etapa de canalización al camino de bus vertical. El
uso de los dos tipos de nodo de columna conjuntamente entre sí,
como se describe más adelante con mayor detalle, permite
canalización suficiente para habilitar comunicaciones de elevado
ancho de banda sin tener que reducir la velocidad del reloj, pero
sin una profundidad total de canalización innecesariamente grande y
por tanto ineficaz.
La Figura 4 muestra con más detalle un nodo 3 de
fila, del tipo representado en la Figura 1. La parte de salida del
bus horizontal 7, que transporta datos del activador 1 de columna,
se propaga directamente a través del nodo desde una entrada 51
hasta una salida 53. También tiene una derivación, en una conexión
50, a un bus adicional 60. El bus 60 está conectado a una interfaz
57 de elemento de conjunto ordenado.
El elemento 57 de conjunto ordenado se conecta a
uno de los elementos de conjunto ordenado, como se muestra en la
Figura 1, a través de los buses 55 y 56. La interfaz 57 de elemento
de conjunto ordenado interpreta el protocolo de bus para determinar
si las comunicaciones recibidas están destinadas al elemento
específico de conjunto ordenado, que está conectado a este nodo de
fila. La información que se vuelve a extraer del elemento de
conjunto ordenado conectado a este nodo 3 de fila se recibe en la
interfaz 57, y se descarga como salida sobre un bus 59. Una parte
de camino de retorno del bus horizontal 7, que transporta datos
hacia el activador 1 de columna, se recibe en una entrada 54. El
bus 59 se combina con el camino de retorno del bus horizontal en
una función lógica "O" a nivel de bit, 58, para formar una
señal horizontal de camino de retorno para la salida 52.
La Figura 5 muestra con más detalle uno de los
subgrupos 6 de fila, mostrados en la Figura 1. En este ejemplo
ilustrado, el sub-grupo 6 contiene cuatro elementos
4 de conjunto ordenado, aunque podrían existir más o menos de
cuatro elementos en un subgrupo, dependiendo del número de elementos
con los que puede comunicar efectivamente el activador 1 de columna
en un solo ciclo de reloj. Los cuatro elementos 4 de conjunto
ordenado están conectados al bus horizontal 7 a través de
respectivos nodos 3 de fila. Los datos se reciben en el segmento 13
de bus horizontal de salida (mostrado en las Figuras 2 y 3). y se
descargan como salida en la parte 14 de camino de retorno (mostrada
también en las Figuras 2 y 3) del segmento de bus horizontal 13. El
segmento de bus horizontal de salida se deja sin conectar en el
extremo lejano 62. El segmento de bus horizontal de camino de
retorno se termina con todo ceros lógicos, o con puesta a tierra,
en su extremo lejano 63. Esto es para evitar la corrupción de
cualesquiera datos de camino de retorno, que podrían introducirse
por la función lógica "O" en el bus 7 a través de cualquiera
de los nodos horizontales 3.
La Figura 6 muestra con más detalle el activador
1 de columna de la Figura 1. En este ejemplo ilustrado, el número
de columnas es cuatro, pero podría ser mayor o menor de cuatro. Los
datos de salida para los elementos 4 de conjunto ordenado se
reciben de un procesador de control de conjunto ordenado (no
mostrado) en un bus 31, que está conexionado en paralelo a las
partes de salida 33, 35, 37, 39 de cada uno de los cuatro buses
verticales conectados a las columnas respectivas. El bus 31 está
conectado a las partes de salida 33, 35, 37, 39 a través de las
respectivas funciones lógicas 43 "Y" a nivel de bit. Las
funciones lógicas "Y" 43 reciben también señales de
habilitación 44 de un bloque 42 de obtención de información de
protocolo. El bloque 42 de obtención de información de protocolo
vigila las comunicaciones en el bus 31 y, basándose en las señales
de dirección entre los datos, genera señales de habilitación que
habilitan cada columna individualmente o todas juntas según sea
apropiado.
Las partes de camino de retorno 34, 36, 38, 40
de cada uno de los cuatro buses verticales conectados a las
columnas respectivas se combinan en una función "O" lógica 41 a
nivel de bit para generar el bus 32 de camino de retorno global con
el fin de transferir datos desde los elementos 4 de conjunto
ordenado al procesador de control de conjunto ordenado.
Como se muestra en la Figura 6, el activador de
columna se conecta a cuatro columnas. Sin embargo, cuando el
conjunto ordenado contiene un gran número de elementos 4, y/o los
sub-grupos 6 solamente contienen pequeños números
de elementos 4, el número de columnas podría llegar a ser grande. En
ese caso, se podrían requerir etapas adicionales de canalización
para asegurar que los retardos a y desde todos los puntos finales
siguen siendo los mismos. Por ejemplo, se podrían proveer registros
adicionales de canalización en uno o más de los ramales
33-40, y/o en una o más de las entradas a la puerta
"O" 41, y/o en las entradas a una o más de las puertas
"Y" 43.
Por tanto, el bus de camino de salida total es
una simple conexión en paralelo con la adición de algunas etapas de
canalización y de cierta conmutación de alto nivel. La conmutación
de alto nivel realiza parte de la función de asignación de
dirección de elementos de conjunto ordenado, y ayuda a conservar
energía.
El bus de camino de retorno total es una simple
convergencia de entrada lógica "O" con la adición de algunas
etapas de canalización. No es necesario arbitraje debido al retraso
constante en comunicación del bus, porque el procesador de control
de conjunto ordenado solamente extraerá información de un elemento
de conjunto ordenado cada vez, y debido a que los elementos de
conjunto ordenado que no están siendo controlados transmiten señales
lógicas todo ceros en el bus.
Esto todavía permite una canalización apretada
de accesos de extracción de información, y evita el uso de buses de
tres estados.
Las Figuras 7 y 8 presentan dos disposiciones
posibles de nodos de columna. En ambas disposiciones, los nodos de
columna que están más próximos al activador de bus de columna
introducen retardos más largos, por medio de sus líneas de retardo
derivadas, que los nodos de columna que están más lejos del
activador de bus de columna.
En la Figura 7, el nodo de columna que está más
cerca del activador de bus de columna es un nodo 22 con una etapa
de canalización vertical, como se muestra en la Figura 3 y se ha
representado en la Figura 7 por un círculo de trazo lleno, y cada
cuarto nodo de columna a partir de entonces tiene también una etapa
de canalización vertical, mientras que los otros nodos de columna
son nodos 10 que no tienen una etapa de canalización vertical, como
se ha mostrado en la Figura 2 y representado en la Figura 7 por un
círculo. En la Figura 8, el nodo de columna que está más próximo al
activador de bus de columna es un nodo 22 con una etapa de
canalización vertical, como se ha mostrado en la Figura 3 y
representado en la Figura 8 por un circulo de trazo lleno,. y cada
tercer nodo de columna a partir de entonces tiene también una etapa
de canalización vertical, mientras que los otros nodos de columna
son nodos 10 que no tienen una etapa de canalización vertical, como
se ha mostrado en la Figura 2 y representado en la Figura 8 por un
círculo. La separación real de los nodos con una etapa de
canalización vertical dependerá de la implementación física. La
separación debería elegirse con el fin de usar el mínimo número de
nodos con etapas de canalización vertical, manteniendo al mismo
tiempo el funcionamiento correcto del bus sobre todas las
condiciones operativas. Los nodos con etapas de canalización
vertical podrían estar espaciados regularmente, o espaciados
irregularmente, si se requiere. Esto ilustra la escalabilidad de
esta solución, puesto que todo lo que varía es el retraso total en
comunicación, no el ancho de banda.
Las Figuras 7 y 8 ilustran también
configuraciones ejemplares de las líneas de retardo 18, 19 con
derivaciones en cada nodo de columna. En la Figura 7, comenzando en
el nodo de columna que está más distante del activador 1 de bus de
columna, es decir, el nodo 74, las líneas de retardo 18, 19 con
derivaciones tienen un tiempo de retardo, D, que se configura al
mínimo tiempo de retardo, a saber ciclos de reloj 0 en este ejemplo.
Luego, se asignan tiempos de retardo mediante el movimiento
ascendente de la columna, e incrementando el tiempo de retardo en 1
ciclo de reloj cada vez que se pasa un nodo 22 de canalización. Así,
en la Figura 7, las líneas de retardo 18, 19 con derivaciones en el
nodo canalizado 75 tienen todavía un tiempo de retardo D = 0, puesto
que el ramal horizontal en este nodo está después de los registros
23, 24 de canalización. El nodo siguiente se configura con las
líneas de retardo 18, 19 con derivaciones teniendo un tiempo de
retardo D = 1 ciclo de reloj, Este proceso se repite hasta que se
alcanza el nodo de columna más cercano al activador de bus de
columna. De este modo, todos los puntos finales, sobre los segmentos
de bus horizontal, tienen el mismo retraso en comunicación a y
desde la parte más alta de la columna.
En la Figura 8 se puede ver un patrón similar de
configuración de línea de retardo con derivaciones. Así, en el nodo
78 de columna que está más distante del activador 1 de bus de
columna, las líneas de retardo 18, 19 con derivaciones tienen un
tiempo de retardo, D, que se configura al mínimo tiempo de retardo,
a saber 0 ciclos de reloj en este ejemplo, De nuevo, se asignan los
tiempos de retardo mediante el movimiento ascendente de la columna,
e incrementando el tiempo de retardo en 1 ciclo de reloj cada vez
que se pasa un nodo canalizado 22. De ese modo, en la Figura 8, el
nodo 79 está configurado con las líneas de retardo 18, 19 con
derivaciones teniendo un tiempo de retardo D = 1 ciclo de reloj.
Este proceso se puede repetir hasta que se haya alcanzado el nodo
de columna más cercano al activador de bus de columna.
Cuando el tiempo de retardo de una línea de
retardo 18 con derivaciones se configura a 0 ciclos de reloj, los
puntos finales conectados a esa línea de retardo con derivaciones
están activados de hecho por el registro precedente 23 de
canalización de bus vertical Esto podría aumentar excesivamente la
carga sobre el registro de canalización. Por tanto, en la práctica,
el mínimo tiempo de retardo en las líneas de retardo 18, 19 con
derivación se podría elegir como 1 ciclo de reloj, en lugar de 0,
con el fin de reducir esta carga.
La asignación de dirección de elementos
individuales de conjunto ordenado se codifica en las señales
transferidas sobre esta estructura de bus como fila, columna de bus
vertical y columna de sub-grupo. El activador 1 de
bus de columna puede descodificar la información de columna de bus
vertical para habilitar selectivamente las columnas, o bien, si se
usa una dirección del tipo de emisión, entonces puede habilitar
todas las columnas. Los nodos 3 de fila descodifican la información
de fila y la información de columna de sub-grupo. de
aquí que deban configurarse con esta información, obtenida a partir
de su situación. Los nodos 2 de columna no descodifican activamente
información de fila en esta realización ilustrada del invento, dado
que el ahorro de energía no compensa el encabezamiento de
complejidad en esta granularidad. Sin embargo, en otras
realizaciones, los nodos de columna podrían descodificar esta
información del mismo modo que lo hacen los activadores de columna
mediante la investigación de protocolo de
bus.
bus.
A un elemento de conjunto ordenado se le asigna
una dirección si la actividad de bus llega a él, y todos los
aspectos de la dirección coinciden. Si se usa la asignación de
dirección única, el elemento de conjunto ordenado de destino
descodifica la comunicación si la asignación de dirección de fila y
la asignación de dirección de columna de sub-grupo
coinciden entre sí. Si se usa una asignación de dirección del tipo
de emisión, con el fin de comunicar a más de un elemento de
conjunto ordenado, entonces los nodos de fila tienen que discriminar
basándose en algún otro parámetro de identificación, tal como el
tipo de elemento de conjunto ordenado. La asignación de dirección
de emisión se puede señalizar o bien mediante un hilo de control
separado, o bien mediante el uso de asignaciones de dirección
"reservadas", dependiendo de cuál es la más eficaz.
El control de elementos de conjunto ordenado,
tal como la puesta en marcha, la parada o el escalonamiento único,
se logra mediante la introducción de información de datos
específicos en puntos del registro de control dentro de los
elementos de conjunto ordenado. Para asignar dirección a estos
conjuntamente, en una comunicación de emisión, estos puntos de
control deben estar por tanto en el mismo plano en cada
representación gráfica de memoria de elemento de conjunto ordenado.
Es útil poder emitir una orden de ejecución de control de una sola
etapa, dando instrucciones al elemento de conjunto ordenado de
empezar durante una etapa y luego parar, porque el encabezamiento
de paso de testigo de la asignación de direcciones en el protocolo
de comunicaciones impide que las órdenes de ejecución de comenzar y
parar estén tan próximas conjuntamente.
También puede ser ventajoso, con el fin de
evitar problemas causados por grandes sesgos del reloj, por ejemplo
violaciones de configuración de registro o de retención, instalar
almacenamientos provisionales (para acelerar o retardar señales) en
ciertos puntos de los nodos. Por ejemplo, en el caso de un nodo de
columna como el mostrado en las Figuras 2 ó 3, se podrían insertar
almacenamientos provisionales de retardo para impedir violaciones
de retención en los buses 20 y 25, y en el bus vertical 8 antes y
después del punto de derivación 26 y después de la puerta "O"
17. En el caso de un nodo de fila como el mostrado en la Figura 4,
se podrían insertar almacenamientos provisionales de retardo para
impedir violaciones de retención en el bus 59.
Por tanto, se ha provisto una disposición que
logra un retraso en comunicación aproximadamente constante. Las
comunicaciones hacia y desde los elementos de conjunto ordenado más
alejados se canalizan adecuadamente para la distancia, mientras que
las comunicaciones hacia y desde elementos de conjunto ordenado más
cercanos se "sobre-canalizan" deliberadamente
de tal manera que el retraso en comunicación a todos los elementos
de punto final tenga el mismo número de ciclos de reloj. Esto
permite obtener un elevado ancho de banda, y es escalable sin tener
que rediseñar.
La comunicación en sí toma la forma de una
corriente con pasos de testigos y el conjunto ordenado de
procesadores se ve como una representación gráfica de memoria
jerárquica, es decir, una representación gráfica de memoria de
elementos de conjunto ordenado, cada uno de los cuales tiene su
propia representación gráfica de memoria de ubicaciones de
programa, datos y control. Los pasos de testigos se usan para
señalizar direcciones de elemento de conjunto ordenado,
sub-direcciones y datos de extracción/introducción
de información. Hay direcciones reservadas especiales para asignar
direcciones a todos los elementos (o subconjuntos) de conjunto
ordenado en paralelo para funciones de control.
A continuación se describe un protocolo de
comunicaciones con pasos de testigo, que se podría usar en
conjunción con este conjunto ordenado de procesadores.
El bus de salida es un bus de 20 bits que
comprende 4 señales de alta actividad y un campo de datos de 16
bits.
\vskip1.000000\baselineskip
\newpage
El camino de retorno es un bus de 17 bits que
comprende una señal válida de alta actividad y un campo de datos de
16 bits:
La señal VÁLIDA se necesita cuando el espacio
total de asignación de direcciones de los elementos de conjunto
ordenado no está completamente poblado. De lo contrario, podría ser
difícil diferenciar entre una dirección fallada y datos que sucede
que son cero.
\global\parskip0.900000\baselineskip
Operación básica de introducción de información:
la secuencia de órdenes de ejecución para enviar el bus de salida es
la siguiente:
AEID, <asignación de dirección de elemento de
conjunto ordenado>
ADDR, <ubicación de registro/memoria>
WRITE, <palabra de datos>
El usuario podría introducir información a
múltiples ubicaciones, una tras otra, mediante la repetición de la
secuencia anterior tantas veces como fuese necesario:
AEID, <asignación de dirección de elemento 1
de conjunto ordenado>
ADDR, <ubicación de registro/memoria en el
elemento 1 de conjunto ordenado>
WRITE, <palabra de datos>
etc.
Si la AEID va a ser la misma, no hay necesidad
de repetirla:
AEID, <asignación de dirección de elemento 1
de conjunto ordenado>
ADDR, <ubicación 1 de
registro/memoria>
WRITE, <palabra de datos para ubicación 1 en
elemento 1 de conjunto ordenado>
ADDR, <ubicación 2 de
registro/memoria>
WRITE, <palabra de datos para ubicación 2 en
elemento 1 de conjunto ordenado>
etc.
En cada caso, los datos se introducirán a la
ubicación de elemento de conjunto ordenado siempre que exista el
elemento de conjunto ordenado y la ubicación de registro o de
memoria existan y se puedan introducir como información (algunas
ubicaciones podrían ser de sólo extracción de información, algunas
podrían ser solamente de introducción de información si el elemento
de conjunto ordenado se ha detenido y no cuando se está
desplazando).
Operación de introducción de información con
incremento automático: Para ahorrar tiempo cuando se está
introduciendo información a múltiples ubicaciones contiguas y
sucesivas de registro o de memoria dentro de un único elemento de
conjunto ordenado - como se podría hacer a menudo cuando se cargue
un programa de elemento de conjunto ordenado, por ejemplo - usar
órdenes de ejecución repetidas de WRITE (INTRODUCIR INFORMACIÓN). La
interfaz en el nodo de fila incrementará automáticamente la
asignación de dirección usada dentro del elemento de conjunto
ordenado Por ejemplo:
AEID, <asignación de dirección d elemento de
conjunto ordenado>
ADDR, <comenzar ubicación de registro o
memoria - "A">
WRITE, <datos para ubicación A>
WRITE, <datos para ubicación A + 1>
WRITE, <datos para ubicación A + 2>
WRITE, <datos para ubicación A + 3>
etc.
Cuando hay espacios intermedios en la
representación gráfica de memoria, o cuando se requiere desplazarse
a otro elemento de conjunto ordenado, usar otra vez la señal ADDR o
la señal AEID para configurar un nuevo punto de partida para el
incremento automático, por ejemplo:
AEID, <asignación de dirección d elemento de
conjunto ordenado>
ADDR, <iniciar ubicación "A" de registro
o memoria>
WRITE, <datos para ubicación A>
WRITE, <datos para ubicación A + 1>
WRITE, <datos para ubicación A + 2>
ADDR, <iniciar nueva ubicación "b" de
registro o memoria>
WRITE, <datos para ubicación B>
WRITE, <datos para ubicación B + 1>
AEID, <asignación de dirección de nuevo
elemento de conjunto ordenado>
ADDR, <ubicación de registro o
memoria>
WRITE, <palabra de datos>
etc.
Operación de introducción de información sin
incremento:
Cuando se requiere suprimir los incrementos
automáticos de la dirección de ubicación de registro o de memoria,
mantener la señal ADDR, junto con la señal WRITE:
AEID, <asignación de dirección de elemento de
conjunto ordenado>
ADDR, <ubicación "A" de registro>
ADDR, WRITE, <datos para ubicación A>
ADDR, WRITE, <nuevos datos para ubicación
A>
Debe hacerse notar que podría existir un largo
período de inactividad de bus entre las órdenes de ejecución 3 y 4
cuando el conjunto ordenado de procesadores continúa corriendo. De
hecho, no hay necesidad de que ninguna de estas operaciones de bus
sean de una ráfaga contigua. Pueden existir espacios intermedios de
cualquier duración en cualquier punto. El protocolo funciona como
una máquina de estado sin ningún tipo de tiempo muerto.
Operación de introducción de información de
emisión: - Es posible introducir información a todos los elementos
de conjunto ordenado a la vez, o a subconjuntos de elementos de
conjunto ordenado por grupo. Esta asignación de direcciones de
emisión se podría indicar mediante una señal extra de control, u
obtenerse mediante el uso de miembros especiales para la dirección
AEID.
En la implementación del ejemplo, usada para el
conjunto ordenado de procesadores descrito en el documento
GB-A- 2370380, a todo el conjunto ordenado se le
podrían asignar direcciones sobre una base de elementos individuales
bien dentro de 15 bits, con lo que el bit más alto de la dirección
AEID de 16 bits se podría reservar para indicar que estaba
desarrollándose una comunicación del tipo de emisión.
\global\parskip1.000000\baselineskip
Para seleccionar asignación de dirección "de
emisión" en lugar de asignación de dirección por elemento
individual de conjunto ordenado, configurar el bit más
significativo (en adelante MSB) del campo de datos de AEID. Los
bits más bajos pueden representar entonces a qué tipos de elemento
de conjunto ordenado se desea asignar dirección. En el conjunto
ordenado de procesadores del ejemplo, se dispone de 8 tipos de
elemento de conjunto ordenado, y sus designaciones se han
conexionado por segmentos alámbricos a la configuración de sus nodos
de fila:
Así, por ejemplo, para asignar dirección a todos
los elementos de conjunto ordenado del tipo 7:
AEID, <0x8040>
ADDR, <....>
etc.
Para asignar dirección a todos los elementos
juntos de conjunto ordenado Tipo 1, Tipo 2 y Tipo 4:
AEID, <0x800b>
ADDR, <....>
etc.
Operación básica de solicitud de extracción de
información: - La operación básica de extracción de información es
muy similar a la operación básica de introducción de información,
siendo la diferencia la última señal, y que se ignora el campo de
datos:
AEID, <asignación de dirección de elemento de
conjunto ordenado>
ADDR, <ubicación de registro o de
memoria>
READ, <no importa>
La ubicación se extraerá como información de
modo satisfactorio siempre que el elemento de conjunto ordenado
exista y la ubicación de registro o de memoria existan y se puedan
extraer (algunas ubicaciones solamente se pueden extraer si el
elemento de conjunto ordenado está detenido y no cuando se está
desplazando). La palabra de datos extraida del elemento de conjunto
ordenado se volverá a enviar hasta el bus de camino de retorno, en
este ejemplo a guardarse para su posterior recuperación en un
dispositivo de "lo primero en entrar es lo primero en salir"
(en adelante FIFO).
Operación de extracción de información con
incremento automático: De nuevo, muy similar a la correspondiente
operación de introducción de información:
AEID, <asignación de dirección de elemento de
conjunto ordenado>
ADDR, <comienzo de ubicación "A" de
registro o de memoria>
READ, <no importa> (los datos se
capturarán de la ubicación A)
READ, <no importa>, (los datos se
capturarán de la ubicación A + 1),
etc.
Operación de extracción de información sin
incremento: Cuando se requiere suprimir el incremento automático de
la asignación de dirección de ubicación de registro o de memoria,
mantener la señal ADDR, junto con la señal READ:
AEID, <asignación de dirección de elemento de
conjunto ordenado>
ADDR, <ubicación "A" de registro>
ADDR, READ, <no importa> (los datos se
capturarán de la ubicación A)
ADDR, READ, <no importa> (los datos se
capturarán de la ubicación A)
Esto podría ser útil si se desea interrogar un
registro para información de diagnóstico - por ejemplo, un valor
métrico de velocidad de variación de error de bit.
Operación de extracción de información de
emisión: -El hardware en el ejemplo de conjunto ordenado de
procesadores de la presente memoria no excluye realizar una
extracción de información de emisión, aunque su utilidad es más
bien limitada. Los datos de reextracción de información de múltiples
elementos de conjunto ordenado se pasarán juntos por la puerta
"O" a nivel de bit. Quizá sea útil para comprobar rápidamente
si el mismo registro en múltiples elementos de conjunto ordenado no
es cero antes de pasar a través de cada uno individualmente para
averiguar cuáles son específicamente.
Operaciones compuestas:
Como se ha visto anteriormente, el estilo con
pasos de testigo del bus permite realizar muchas permutaciones de
órdenes de ejecución de duración arbitraria, y permite tomar con
bastante frecuencia caminos abreviados en encabezamientos de
órdenes de ejecución. Por ejemplo, podría ser útil generar una
corriente para realizar parte de una prueba de memoria - extracción
e introducción de información de cada ubicación sucesiva de una
memoria:
AEID, <asignación de dirección de elemento de
conjunto ordenado>
ADDR, <comienzo de ubicación "A" de
memoria>
ADDR, READ, <no importa> (los datos se
capturarán de la ubicación A, la asignación de dirección NO SE
incrementará)
WRITE, <palabra de datos> (la palabra de
datos se introducirá como información a la ubicación A, la
asignación de dirección SE incrementará)
ADDR, READ, <no importa> (los datos se
capturarán de la ubicación A + 1, la asignación de dirección NO SE
incrementará)
WRITE, <otra palabra de datos> se
introducirá como información otra palabra de datos a la ubicación A
+ 1, la asignación de dirección SE incrementará)
Por tanto, se ha descrito un conjunto ordenado
de procesadores, y un protocolo de comunicaciones para uso en el
mismo, que permite una operación sincronizada eficiente de los
elementos del conjunto ordenado.
Claims (14)
1. Un conjunto ordenado de procesadores, que
comprende:
una pluralidad de buses primarios (8), cada uno
conectado a un activador (1) de bus primario, y teniendo cada uno
una pluralidad respectiva de nodos (2) de bus primario en el
mismo;
pluralidades respectivas de buses secundarios
(7), conectadas a dichos nodos (2) de bus primario; y
- una pluralidad de elementos (4) de procesador cada uno conectado a uno de los buses secundarios (7); caracterizado por
elementos de retardo, asociados con los nodos
(2) de bus primario, para retardar las comunicaciones con los
elementos (4) de procesador conectados a diferentes buses de los
buses secundarios (7) por cantidades diferentes, con el fin de
lograr un grado de sincronización entre la operación de dichos
elementos (4) de procesador.
2. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 1, en el que cada uno de dichos
buses primarios (8) y secundarios (7) es un bus bidireccional, para
transferir datos desde el activador (1) de bus primario hacia los
elementos (4) de procesador, y para transferir datos desde los
elementos (4) de procesador hacia el activador (1) de bus
primario.
3. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 1, en el que cada nodo (2) de bus
primario comprende una derivación (26) para derivar una señal desde
el activador (1) de bus primario en el bus primario respectivo (8)
y una línea de retardo (18) para retardar las señales derivadas.
4. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 3, en el que al menos algunos de
dichos nodos (2) de bus primario comprenden un elemento (23) de
retardo para retardar las señales procedentes del activador (1) de
bus primario en el respectivo bus primario (8).
5. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 1, en el que cada nodo (2) de bus
primario comprende un dispositivo para combinar una señal procedente
del respectivo bus secundario (7) en el bus primario respectivo
(8), y una línea de retardo (19) para retardar las señales del bus
secundario respectivo (7).
6. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 5, en el que el dispositivo para
combinar comprende una puerta lógica "O" 17 a nivel de bit.
7. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 5, en el que al menos algunos de
dichos nodos (2) de bus primario comprenden un elemento (24) de
retardo para retardar las señales hacia el activador (1) de bus
primario en el respectivo bus primario (8).
8. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 1, en el que cada elemento (4) de
procesador está conectado al respectivo bus secundario (7) en un
respectivo nodo (3) de bus secundario.
9. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 8, en el que cada nodo (3) de bus
secundario comprende una derivación (50) para derivar una señal
procedente del activador (1) de bus primario en el respectivo bus
secundario (7), y una interfaz para determinar si las señales
derivadas están destinadas para el elemento (4) de procesador
conectado en la misma.
10. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 8, en el que cada nodo (3) de bus
secundario comprende un dispositivo para combinar una señal
procedente del respectivo elemento (4) de procesador en el
respectivo bus secundario (3).
11. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 10, en el que el dispositivo para
combinar comprende una puerta lógica "O" (58) a nivel de
bit.
12. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 1, en el que el activador (1) de
bus primario tiene un bus de entrada (31), y un detector para
determinar cuál de dicha pluralidad de buses primarios (8) debería
recibir datos en dicho bus de entrada (31).
13. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 12, en el que el bus de entrada
(31) del activador (1) de bus primario tiene una conexión a cada uno
de dicha pluralidad de buses primarios (8) a través de una primera
entrada de una respectiva puerta "Y" (43), y dicho detector
(42) está destinado a enviar una señal de habilitación a una
segunda entrada de la respectiva puerta "Y" (43) si se
determina que uno de dicha pluralidad de buses primarios (8) debería
recibir datos en dicho bus de entrada (31).
14. Un conjunto ordenado de procesadores como el
reivindicado en la reivindicación 1, en el que los elementos (23,
24) de retardo asociados con los nodos (2) de bus primario que se
encuentran físicamente más cercanos al activador (1) de bus
primario, retardan las comunicaciones con los elementos (4) de
procesador conectados a los buses secundarios (7) conectados a los
nodos más cercanos (2) de bus primario, mediante tiempos de retardo
más largos que los elementos (23, 24) de retardo, asociados con
nodos (2) de bus primario que se encuentran físicamente más lejanos
del activador (1) de bus primario, retardan las comunicaciones con
los elementos (4) de procesador conectados a los buses secundarios
(7) conectados a los nodos más lejanos (2) de bus primario.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB0301863A GB2397668B (en) | 2003-01-27 | 2003-01-27 | Processor array |
| GB0301863 | 2003-01-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2285415T3 true ES2285415T3 (es) | 2007-11-16 |
Family
ID=9951897
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES04705111T Expired - Lifetime ES2285415T3 (es) | 2003-01-27 | 2004-01-26 | Conjunto ordenado de procesadores. |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US7574582B2 (es) |
| EP (1) | EP1588276B1 (es) |
| JP (1) | JP4338730B2 (es) |
| CN (1) | CN100422977C (es) |
| AT (1) | ATE359558T1 (es) |
| DE (1) | DE602004005820T2 (es) |
| ES (1) | ES2285415T3 (es) |
| GB (1) | GB2397668B (es) |
| WO (1) | WO2004068362A1 (es) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2004090716A1 (en) * | 2003-04-07 | 2004-10-21 | Koninklijke Philips Electronics N.V. | Data processing system with clustered ilp processor |
| JP4388557B2 (ja) * | 2007-01-11 | 2009-12-24 | 株式会社日立製作所 | 画像処理システム |
| US7902862B2 (en) * | 2007-09-14 | 2011-03-08 | Agate Logic, Inc. | High-bandwidth interconnect network for an integrated circuit |
| CN101320364A (zh) * | 2008-06-27 | 2008-12-10 | 北京大学深圳研究生院 | 一种阵列处理器结构 |
| US8122226B2 (en) * | 2009-04-16 | 2012-02-21 | Vns Portfolio Llc | Method and apparatus for dynamic partial reconfiguration on an array of processors |
| KR101565172B1 (ko) * | 2010-01-15 | 2015-11-02 | 삼성전자주식회사 | 대규모 병렬 프로세서 어레이 시스템의 데이터 처리 장치 및 방법 |
| CN102446157B (zh) * | 2010-10-12 | 2013-09-18 | 无锡江南计算技术研究所 | 基于阵列结构的处理器核心的通信方法及通信装置 |
| US10313641B2 (en) | 2015-12-04 | 2019-06-04 | Google Llc | Shift register with reduced wiring complexity |
| GB2580165B (en) | 2018-12-21 | 2021-02-24 | Graphcore Ltd | Data exchange in a computer with predetermined delay |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
| US4574345A (en) * | 1981-04-01 | 1986-03-04 | Advanced Parallel Systems, Inc. | Multiprocessor computer system utilizing a tapped delay line instruction bus |
| US4622632A (en) * | 1982-08-18 | 1986-11-11 | Board Of Regents, University Of Washington | Data processing system having a pyramidal array of processors |
| JPS59132070A (ja) * | 1983-01-18 | 1984-07-30 | Mitsubishi Electric Corp | アレイ演算用デ−タ処理装置 |
| US5152000A (en) * | 1983-05-31 | 1992-09-29 | Thinking Machines Corporation | Array communications arrangement for parallel processor |
| US4720780A (en) * | 1985-09-17 | 1988-01-19 | The Johns Hopkins University | Memory-linked wavefront array processor |
| US4736291A (en) * | 1985-11-22 | 1988-04-05 | Texas Instruments Incorporated | General-purpose array processor |
| US5036453A (en) * | 1985-12-12 | 1991-07-30 | Texas Instruments Incorporated | Master/slave sequencing processor |
| IT1184015B (it) * | 1985-12-13 | 1987-10-22 | Elsag | Sistema multiprocessore a piu livelli gerarchici |
| GB2211638A (en) * | 1987-10-27 | 1989-07-05 | Ibm | Simd array processor |
| US5109329A (en) * | 1987-02-06 | 1992-04-28 | At&T Bell Laboratories | Multiprocessing method and arrangement |
| US4943912A (en) * | 1987-10-13 | 1990-07-24 | Hitachi, Ltd. | Parallel processor system having control processor and array control apparatus for selectively activating different processors |
| US4890279A (en) * | 1988-09-26 | 1989-12-26 | Pacific Bell | Multiplexer and computer network using the same |
| ATE121208T1 (de) * | 1990-01-30 | 1995-04-15 | Johnson Service Co | Vernetztes betriebsmittelverwaltungssystem. |
| US6928500B1 (en) * | 1990-06-29 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | High speed bus system that incorporates uni-directional point-to-point buses |
| US5265207A (en) * | 1990-10-03 | 1993-11-23 | Thinking Machines Corporation | Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses |
| US5713037A (en) * | 1990-11-13 | 1998-01-27 | International Business Machines Corporation | Slide bus communication functions for SIMD/MIMD array processor |
| US5790879A (en) * | 1994-06-15 | 1998-08-04 | Wu; Chen-Mie | Pipelined-systolic single-instruction stream multiple-data stream (SIMD) array processing with broadcasting control, and method of operating same |
| GB2293468B (en) * | 1994-09-21 | 1999-09-29 | Sony Uk Ltd | Data processing systems |
| JPH08297652A (ja) * | 1995-04-25 | 1996-11-12 | Nippon Steel Corp | アレイプロセッサ |
| US5570045A (en) * | 1995-06-07 | 1996-10-29 | Lsi Logic Corporation | Hierarchical clock distribution system and method |
| KR100197407B1 (ko) * | 1995-12-28 | 1999-06-15 | 유기범 | 전전자 교환기에 있어서 프로세서들간 통신버스구조 |
| US5805839A (en) * | 1996-07-02 | 1998-09-08 | Advanced Micro Devices, Inc. | Efficient technique for implementing broadcasts on a system of hierarchical buses |
| US5719445A (en) * | 1996-12-23 | 1998-02-17 | Sgs-Thomson Microelectronics, Inc. | Input delay control |
| JP2976932B2 (ja) * | 1997-06-09 | 1999-11-10 | 日本電気株式会社 | 画像照合回路および画像照合集積回路 |
| US6122677A (en) * | 1998-03-20 | 2000-09-19 | Micron Technology, Inc. | Method of shortening boot uptime in a computer system |
| US6393026B1 (en) * | 1998-09-17 | 2002-05-21 | Nortel Networks Limited | Data packet processing system and method for a router |
| GB2370380B (en) * | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
-
2003
- 2003-01-27 GB GB0301863A patent/GB2397668B/en not_active Expired - Fee Related
-
2004
- 2004-01-26 CN CNB2004800072201A patent/CN100422977C/zh not_active Expired - Fee Related
- 2004-01-26 AT AT04705111T patent/ATE359558T1/de not_active IP Right Cessation
- 2004-01-26 DE DE602004005820T patent/DE602004005820T2/de not_active Expired - Lifetime
- 2004-01-26 ES ES04705111T patent/ES2285415T3/es not_active Expired - Lifetime
- 2004-01-26 EP EP04705111A patent/EP1588276B1/en not_active Expired - Lifetime
- 2004-01-26 JP JP2006502194A patent/JP4338730B2/ja not_active Expired - Fee Related
- 2004-01-26 US US10/543,370 patent/US7574582B2/en not_active Expired - Lifetime
- 2004-01-26 WO PCT/GB2004/000255 patent/WO2004068362A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| EP1588276B1 (en) | 2007-04-11 |
| JP2006518069A (ja) | 2006-08-03 |
| JP4338730B2 (ja) | 2009-10-07 |
| DE602004005820D1 (de) | 2007-05-24 |
| EP1588276A1 (en) | 2005-10-26 |
| ATE359558T1 (de) | 2007-05-15 |
| US20060155956A1 (en) | 2006-07-13 |
| WO2004068362A1 (en) | 2004-08-12 |
| GB2397668B (en) | 2005-12-07 |
| GB2397668A (en) | 2004-07-28 |
| US7574582B2 (en) | 2009-08-11 |
| DE602004005820T2 (de) | 2008-01-10 |
| CN1761954A (zh) | 2006-04-19 |
| CN100422977C (zh) | 2008-10-01 |
| GB0301863D0 (en) | 2003-02-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101375763B1 (ko) | 상호접속 시스템 | |
| US9582449B2 (en) | Interconnection system | |
| US7016213B2 (en) | Method for initializing a system including a host and plurality of memory modules connected via a serial memory interconnect | |
| ES2285415T3 (es) | Conjunto ordenado de procesadores. | |
| KR20110089321A (ko) | 직렬 포트 메모리 통신 레이턴시 및 신뢰성을 향상시키기 위한 방법 및 시스템 | |
| US11730325B2 (en) | Dual mode interconnect | |
| US10990552B1 (en) | Streaming interconnect architecture for data processing engine array | |
| US6385258B1 (en) | Viterbi decoder for use in a mobile communication system | |
| US7190631B2 (en) | Multi-port memory | |
| US10222992B2 (en) | Synchronization method and apparatus for an interconnection network using parallel-headerless TDMA routing |