Nova Patents
EP2247040B1

Buffered crossbar switch system

Abstract

This record has no abstract on file.

EP2247040B1, drawing sheet 1
Sheet 1 of 6

Term

3.1 yearsleft in the term

Expires 6 November 2029.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

10 claims: 10 independent, 0 dependent

  1. 1
    Apparatus (100) for transferring data between data modules, each of said data modules being at least one of a data processing module (102) and a data storage module (105) the apparatus comprising:at least one pair of crossbar switches (103, 104), wherein input nodes and output nodes of each of the crossbar switches are coupled to corresponding ones of the data modules, a first crossbar switch having an N-input node by M-output node switch fabric, and a second crossbar switch having an M-input node by N-output node switch fabric, where N and M are each positive integers greater than one, wherein N and M are not equal, and wherein each crossbar switch comprises: an input buffer (202, 204, 206) at each input node having an input arbiter configured to read data packets from each input node to one or more corresponding crosspoint buffers in accordance with a first scheduling algorithm;one crosspoint buffer (228, 230, 232) at each crosspoint of the switch fabric, the crosspoint buffer providing a queue having an output arbiter configured to read data packets from the crosspoint buffer queue to an output node corresponding to the crosspoint buffer in accordance with a second scheduling algorithm, wherein, for each crosspoint buffer queue a depth of the queue varies in accordance with a round-trip time of data transfer through the at least one pair of crossbar switches;andeach output node configured to receive segments of data packets provided from one or more corresponding crosspoint buffers,wherein, when a data storage module employs sequential addressing of locations in memory, addresses of the locations in memory are scrambled before passing the data through the at least one crossbar switch, andwherein the first crossbar switch directs data from a group of data processing modules to a group of data storage modules, and the second crossbar switch directs data from the data storage modules to the data processing modules, each data processing module has a first arbiter (122) that controls a data processing module to transfer data to the input node of the first crossbar switch, and each data storage module has a second arbiter (150) that controls a data memory controller to transfer data to the input node of the second crossbar switch. Appareil (100) permettant de transférer des données entre des modules de données, chacun desdits modules de données étant au moins un d'un module de traitement de données (102) et d'un module de stockage de données (105), l'appareil comprenant : au moins une paire de commutateurs à barres transversales (103, 104), dans lequel des noeuds d'entrée et des noeuds de sortie de chacun des commutateurs à barres transversales sont reliés à des modules correspondants parmi les modules de données, un premier commutateur à barres transversales ayant une matrice de commutation de noeud d'entrée N par noeud de sortie M, et un second commutateur à barres transversales ayant une matrice de commutation de noeud d'entrée M par noeud de sortie N, où N et M sont chacun des nombres entiers positifs supérieurs à un, dans lequel N et M ne sont pas égaux, et dans lequel chaque commutateur à barres transversales comprend : une mémoire tampon d'entrée (202, 204, 206) au niveau de chaque noeud d'entrée ayant un arbitre d'entrée conçu pour lire des paquets de données provenant de chaque noeud d'entrée vers une ou plusieurs mémoires tampon de point de connexion correspondantes en fonction d'un premier algorithme d'ordonnancement ;une mémoire tampon de point de connexion (228, 230, 232) au niveau de chaque point de connexion de la matrice de commutation, la mémoire tampon de point de connexion fournissant une file d'attente ayant un arbitre de sortie conçu pour lire des paquets de données à partir de la file d'attente de mémoire tampon de point de connexion à un noeud de sortie correspondant à la mémoire tampon de point de connexion en fonction d'un second algorithme d'ordonnancement, dans lequel, pour chaque file d'attente de mémoire tampon de point de connexion, une profondeur de la file d'attente varie en fonction d'un temps de parcours d'un transfert de données à travers l'au moins une paire de commutateurs à barres transversales ;etchaque noeud de sortie est conçu pour recevoir des segments de paquets de données fournis depuis une ou plusieurs mémoires tampon de point de connexion correspondantes,dans lequel, lorsqu'un module de stockage de données utilise un adressage séquentiel d'emplacements dans la mémoire, des adresses des emplacements dans la mémoire sont brouillées avant de faire passer les données à travers l'au moins un commutateur à barres transversales, etdans lequel le premier commutateur à barres transversales dirige des données à partir d'un groupe de modules de traitement de données vers un groupe de modules de stockage de données, et le second commutateur à barres transversales dirige des données à partir des modules de stockage de données vers les modules de traitement de données, chaque module de traitement de données possède un premier arbitre (122) qui contrôle un module de traitement de données pour transférer des données au noeud d'entrée du premier commutateur à barres transversales, et chaque module de stockage de données possède un second arbitre (150) qui contrôle un contrôleur de mémoire de données pour transférer des données au noeud d'entrée du second commutateur à barres transversales. Einrichtung (100) zum Übertragen von Daten zwischen Datenmodulen, wobei es sich bei jedem der Datenmodule um ein Datenverarbeitungsmodul (102) und/oder ein Datenspeicherungsmodul (105) handelt, wobei die Einrichtung Folgendes umfasst: mindestens ein Paar Kreuzungspunktschalter (103, 104),wobei Eingangsknoten und Ausgangsknoten von jedem der Kreuzungspunktschalter mit entsprechenden der Datenmodule gekoppelt sind, wobei ein erster Kreuzungspunktschalter einen N-Eingangsknoten durch eine M-Ausgangsknoten-Vermittlungsanordnung aufweist, und ein zweiter Kreuzungspunktschalter einen M-Eingangsknoten durch eine N-Ausgangsknoten-Vermittlungsanordnung aufweist, wobei es sich bei N und M jeweils um positive Ganzzahlen größer als eins handelt, wobei N und M nicht gleichwertig sind, und wobei jeder Kreuzungspunktschalter Folgendes umfasst: einen Eingangspuffer (202, 204, 206) an jedem Eingangsknoten mit einem Eingangsentscheider, der dazu ausgestaltet ist, Datenpakete von jedem Eingangsknoten zu einem oder mehreren entsprechenden Kreuzungspunktpuffern in Übereinstimmung mit einem ersten Zeitplanungsalgorithmus zu lesen;einen einzigen Kreuzungspunktpuffer (228, 230, 232) an jedem Kreuzungspunkt der Vermittlungsanordnung, wobei der Kreuzungspunktpuffer eine Warteschlange mit einem Ausgangsentscheider zur Verfügung stellt, der dazu ausgestaltet ist, Datenpakete von der Kreuzungspunktpufferwarteschlange an einen Ausgangsknoten, der dem Kreuzungspunktpuffer entspricht, in Übereinstimmung mit einem zweiten 2eitplanungsalgorithmus zu lesen, wobei für jede Kreuzungspunktpufferwarteschlange eine Tiefe der Warteschlange in Übereinstimmung mit einer Umlaufzeit von Datenübertragung durch das mindestens eine Paar Kreuzungspunktschalter variiert;undjeder Ausgangsknoten dazu ausgestaltet ist, Segmente von Datenpaketen zu empfangen, die von einem oder mehreren entsprechenden Kreuzungspunktpuffern zur Verfügung gestellt werden,wobei, wenn ein Datenspeicherungsmodul sequentielles Adressieren von Stellen in dem Speicher anwendet, die Adressen der Stellen in dem Speicher verschlüsselt werden, bevor die Daten durch den mindestens einen Kreuzungspunktschalter hindurch gehen, undwobei der erste Kreuzungspunktschalter Daten von einer Gruppe von Datenverarbeitungsmodulen zu einer Gruppe von Datenspeicherungsmodulen leitet, und der zweite Kreuzungspunktschalter Daten von den Datenspeicherungsmodulen zu den Datenverarbeitungsmodulen leitet, wobei jedes Datenverarbeitungsmodul einen ersten Entscheider (122) aufweist, der ein Datenverarbeitungsmodul steuert, um Daten an den Eingangsknoten des ersten Kreuzungspunktschalters zu übertragen, und jedes Datenspeicherungsmodul einen zweiten Entscheider (150) aufweist, der ein Datenspeichersteuergerät steuert, um Daten zu dem Eingangsknoten des zweiten Kreuzungspunktschalters zu übertragen.
  2. 2
    Erfindung nach Anspruch 1, die des Weiteren einen Ausgangspuffer an jedem Ausgangsknoten umfasst, wobei der Ausgangspuffer dazu ausgestaltet ist, Segmente von Datenpaketen zu speichern, die von einem oder mehreren entsprechenden Kreuzungspunktpuffern zur Verfügung gestellt werden. Invention selon la revendication 1 qui comprend en outre une mémoire tampon de sortie au niveau de chaque noeud de sortie, la mémoire tampon de sortie est conçue pour stocker des segments de paquets de données fournis depuis une ou plusieurs mémoires tampon de point de connexion correspondantes. The invention as recited in claim 1, further comprising an output buffer at each output node, the output buffer configured to store segments of data packets provided from one or more corresponding crosspoint buffers.
  3. 3
    Erfindung nach Anspruch 1, wobei der Eingangspuffer an jedem Eingangsknoten des Weiteren eines von Folgendem umfasst:einen FIFO(First-In-First-Out)-Puffer, eine virtuelle Ausgangswarteschlange (Virtual Output Queue, VOQ) oder einen PIFO(Push-In-First-Out, PIFO)-Puffer. Invention selon la revendication 1, dans laquelle la mémoire tampon d'entrée au niveau de chaque noeud d'entrée comprend en outre un élément parmi : une mémoire tampon de premier entré, premier sorti (FIFO), une file d'attente de sortie virtuelle (VOQ) ou une mémoire tampon de poussée, premier sorti (PIFO). The invention as recited in claim 1, wherein the input buffer at each input node further comprises one of: a first-in, first-out (FIFO) buffer, a virtual output queue (VOQ), or a push-in, first-out buffer (PIFO).
  4. 4
    Erfindung nach Anspruch 1, wobei der erste Zeitplanungsalgorithmus und/oder der zweite Zeitplanungsalgorithmus einen Round-Robin-Zeitplanungsalgorithmus verwendet. Invention selon la revendication 1, dans laquelle au moins un du premier algorithme d'ordonnancement et du second algorithme d'ordonnancement utilise un algorithme d'ordonnancement par permutation circulaire (round-robin). The invention as recited in claim 1, wherein at least one of the first scheduling algorithm and the second scheduling algorithm use a round-robin scheduling algorithm.
  5. 5
    Erfindung nach Anspruch 4, wobei der Round-Robin-Zeitplanungsalgorithmus des ersten Zeitplanungsalgorithmus und/oder des zweiten Zeitplanungsalgorithmus Prioritätslieferung für ein oder mehrere Datenverarbeitungsmodule anwendet. Invention selon la revendication 4, dans laquelle l'algorithme d'ordonnancement par permutation circulaire (round-robin) d'au moins un du premier algorithme d'ordonnancement et du second algorithme d'ordonnancement utilise une distribution de priorité pour un ou plusieurs modules de traitement de données. The invention as recited in claim 4, wherein the round-robin scheduling algorithm of at least one of the first scheduling algorithm and the second scheduling algorithm employs priority delivery for one or more data processing modules.
  6. 6
    Erfindung nach Anspruch 1, wobei mindestens ein Ni-Eingangsknoten durch Mi-Ausgangsknoten-Vermittlungsanordnung Mi-zwischengekoppelte Ni-zu-1-Multiplexer umfasst. Invention selon la revendication 1, dans laquelle au moins une matrice de commutation de noeud d'entrée Ni par noeud de sortie Mi comprend des multiplexeurs Mi inter-reliés Ni à 1. The invention as recited in claim 1, wherein at least one Ni-input node by Mi-output node switch fabric comprises Mi inter-coupled Ni-to-1 multiplexers.
  7. 7
    Erfindung nach Anspruch 1, wobei das Paket von Daten, das dem Eingangspuffer zur Verfügung gestellt wird, in Zellen gleicher Länge partitioniert ist. Invention selon la revendication 1, dans laquelle le paquet de données fourni à la mémoire tampon d'entrée est divisé en cellules de longueurs égales. The invention as recited in claim 1, wherein, the packet of data provided to the input buffer is partitioned into equal length cells.
  8. 8
    Erfindung nach Anspruch 7, wobei es sich bei dem Eingangspuffer um einen FIFO(First-In-First-Out)-Puffer handelt. Invention selon la revendication 7, dans laquelle la mémoire tampon d'entrée est une mémoire tampon de premier entré, premier sorti (FIFO). The invention as recited in claim 7, wherein the input buffer is a first-in, first-out (FIFO) buffer.
  9. 9
    Erfindung nach Anspruch 1, wobei die Einrichtung in einem integrierten monolithischen Schaltungschip implementiert ist. Invention selon la revendication 1, dans laquelle l'appareil est mis en oeuvre dans une puce de circuit intégré monolithique. The invention as recited in claim 1, wherein, the apparatus is implemented in a monolithic integrated circuit chip.
  10. 10
    Erfindung nach Anspruch 1, wobei die Einrichtung mindestens fünf Kreuzungspunktschalter umfasst:einen ersten Kreuzungspunktschalter zur Übertragung von Adressdaten von einem Datenverarbeitungsmodul zu einem Datenspeicherungsmodul, einen zweiten Kreuzungspunktschalter zur Übertragung von Benutzerdaten von dem Datenverarbeitungsmodul zu dem Datenspeicherungsmodul, einen dritten Kreuzungspunktschalter zur Übertragung von Adressdaten von dem Datenspeicherungsmodul zu dem Datenverarbeitungsmodul, einen vierten Kreuzungspunktschalter zur Übertragung von Benutzerdaten von dem Datenspeicherungsmodul zu dem Datenverarbeitungsmodul, und einen fünften Kreuzungspunktschalter zur Übertragung von Antworten von dem Datenspeicherungsmodul zu dem Datenverarbeitungsmodul. Invention selon la revendication 1, dans laquelle l'appareil comprend au moins cinq commutateurs à barres transversales : un premier commutateur à barres transversales permettant de transférer des données d'adresse d'un module de traitement de données à un module de stockage de données, un deuxième commutateur à barres transversales permettant de transférer des données d'utilisateurs du module de traitement de données au module de stockage de données, un troisième commutateur à barres transversales permettant de transférer des données d'adresse du module de stockage de données au module de traitement de données, un quatrième commutateur à barres transversales permettant de transférer des données d'utilisateurs du module de stockage de données au module de traitement de données, et un cinquième commutateur à barres transversales permettant de transférer des réponses du module de stockage de données au module de traitement de données. The invention as recited in claim 1, wherein the apparatus comprises at least five crossbar switches: a first crossbar switch for transfer of address data from a data processing module to a data storage module, a second crossbar switch for transfer of user data from the data processing module to the data storage module, a third crossbar switch for transfer of address data from the data storage module to the data processing module, a fourth crossbar switch for transfer of user data from the data storage module to the data processing module, and a fifth crossbar switch for transfer of responses from the data storage module to the data processing module.