EP0752800B1

Apparatus and method for data packing through addition

Abstract

This record has no abstract on file.

EP0752800B1, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Expired 3 July 2016, 10.2 years ago.

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

13 claims: 13 independent, 0 dependent

  1. 1
    A circuit for packing data transferred between a first memory element and a second memory element, the circuit comprising:- a word packing circuit (600) configured to receive a first sequence of data words each having a first bit width and to serially transfer a second sequence of data words each having a second bit width;and- a byte packing circuit (650), coupled to the word packing circuit (600), configured to (i) receive in serial the second sequence of data words and (ii) produce a third sequence of data words each having the second bit width to be stored in the second memory element, characterized by- the byte packing circuit (650) producing the third sequence of data words including only valid data provided by the second sequence of data words in case the second sequence of data words includes invalid data. Circuit de paquetage de données transféré entre un premier élément de mémoire et un second élément de mémoire, le circuit comprenant : - un circuit de paquetage de mots (600) configuré pour recevoir une première séquence de mots contenant des données ayant chacune une première largeur de bit et pour transférer sériellement une seconde séquence de mots contenant des données ayant chacune une seconde largeur de bits ;et- un circuit de paquetage d'octets (650), couplé au circuit de paquetage de mots (600), configuré pour (i) recevoir en série la seconde séquence de mots contenant des données et (ii) produire une troisième séquence de mots contenant des données chacune ayant la seconde largeur de bit stockée dans le second élément de mémoire, caractérisé par- le circuit de paquetage d'octets (650) produisant la troisième séquence de mots contenant de données comprenant uniquement des données correctes fournies par la seconde séquence de mots contenant des données dans le cas où la seconde séquence de mots contenant des données comprend des données incorrectes. Schaltkreis zum Packen von zwischen einem ersten Speicherbauelement und einem zweiten Speicherbauelement übertragenen Daten, wobei der Schaltkreis umfasst: - einen Schaltkreis (600) zum Packen von Worten, der konfiguriert ist, um eine erste Folge von Datenworten zu empfangen, die jeweils eine erste Bitbreite aufweisen, und eine zweite Folge von Datenworten seriell zu übertragen, die jeweils eine zweite Bitbreite aufweisen, und- einen mit dem Schaltkreis (600) zum Packen von Worten verbundenen Schaltkreis (650) zum Packen von Bytes, der konfiguriert ist, um (i) die zweite Folge von Datenworten seriell zu empfangen und (ii) eine dritte Folge von in dem zweiten Speicherbauelement zu speichemden Datenworten zu erzeugen, die jeweils die zweite Bitbreite aufweisen, gekennzeichnet durch- den Schaltkreis (650) zum Packen von Bytes, der die dritte Folge von Datenworten erzeugt, die nur gültige, durch die zweite Folge von Datenworten bereitgestellte Daten aufweisen, wenn die zweite Sequenz von Datenworten ungültige Daten aufweist.
  2. 2
    Circuit selon la revendication 1, dans lequel ledit circuit de paquetage de mots (600) comprend :- un élément de mémorisation de lecture (620) ;- une pluralité de sélecteurs d'entrée (610, 615) couplés audits éléments de mémoire de lecture (620), configurés pour segmenter chaque mot contenant des données de la première séquence de mots contenant des données en une pluralité de mots contenant des données possédant la seconde largeur de bit et pour transférer chacune des pluralités de mots contenant des données correctes dans ledit élément de mémorisation de lecture ;- un circuit de commande (630), couplé audit élément de mémorisation de lecture (620), configuré pour commander ledit élément de mémorisation de lecture (620) en transférant séquentiellement chacune des pluralités de mots contenant des données contenant des données correctes dans un sélecteur de sortie (625) ;et- ledit sélecteur de sortie (625), couplé audit élément de mémorisation de lecture (620) et ledit circuit de commande (630), configuré pour transférer la seconde séquence de mots contenant des données dans ledit circuit de paquetage d'octets (650), la seconde séquence de mots contenant des données contenant des données correctes. Schaltkreis nach Anspruch 1, bei dem der Schaltkreis (600) zum Packen von Worten aufweist: - ein Lesespeicherbauelement (620),- eine Mehrzahl von mit dem Lesespeicherbauelement (620) verbundenen Eingabeauswahlvorrichtungen (610, 615), die konfiguriert sind, um jedes Datenwort der ersten Folge von Datenworten in eine Mehrzahl von Datenworten zu segmentieren, die die zweite Bitbreite aufweisen, und jedes der Mehrzahl von Datenworten, die gültige Daten enthalten, zu dem Lesespeicherbauelement zu übertragen,- einen mit dem Lesespeicherbauelement (620) verbundenen Steuerschaltkreis (630), der konfiguriert ist, um das Lesespeicherbauelement (620) beim sequenziellen Übertragen jedes der Mehrzahl von Datenworten, die gültige Daten enthalten, zu einer Ausgabeauswahlvorrichtung (625) zu steuern und- die mit dem Lesespeicherbauelement (620) und dem Steuerschaltkreis (630) verbundene Ausgabeauswahlvorrichtung (625), die konfiguriert ist, um die zweite Folge von Datenworten zu dem Schaltkreis (650) zum Packen von Bytes zu übertragen, wobei die zweite Folge von Datenworten nur gültige Daten enthält. The circuit according to claim 1, wherein said word packing circuit (600) includes: - a read storage element (620);- a plurality of input selectors (610,615) coupled to said read storage element (620), configured to segment each data word of the first sequence of data words into a plurality of data words having the second bit width and to transfer each of the plurality of data words containing valid data to said read storage element;- a control circuit (630), coupled to said read storage element (620), configured to control said read storage element (620) in sequentially transferring each of the plurality of data words containing valid data to an output selector (625);and- said output selector (625), coupled to said read storage element (620) and said control circuit (630), configured to transfer the second sequence of data words to said byte packing circuitry (650), the second sequence of data words containing valid data.
  3. 3
    Circuit selon la revendication 2, dans lequel ledit circuit de paquetage de mots (600) segmente chaque mot contenant des données de la première séquence de mots contenant des données en une pluralité de mots contenant des données, à condition que la première largeur de bits soit de taille 2 x plus grande que la seconde largeur de bit et que "x" soit un nombre entier supérieur à zéro. Schaltkreis nach Anspruch 2, bei dem der Schaltkreis (600) zum Packen von Worten jedes Datenwort der ersten Folge von Datenworten in die Mehrzahl von Datenworten segmentiert, vorausgesetzt, dass die erste Bitbreite 2x größer als die zweite Bitbreite und "x" eine ganze Zahl größer als Null sind. The circuit according to claim 2, wherein said word packing circuit (600) segments each data word of the first sequence of data words into the plurality of data words, provided the first bit width is 2x greater in size than the second bit width and "x" is a whole number greater than zero.
  4. 4
    Circuit selon la revendication 1, dans lequel ledit circuit de paquetage de mots (600) transfère chaque mot contenant des données de la première séquence de mots contenant des données au circuit de paquetage d'octets (650), à condition que la première largeur de bit soit de taille égale à la seconde largeur de bit. Schaltkreis nach Anspruch 1, bei dem der Schaltkreis (600) zum Packen von Worten jedes Datenwort der ersten Folge von Datenworten zu dem Schaltkreis (650) zum Packen von Bytes überträgt, vorausgesetzt, dass die erste Bitbreite gleich groß wie die zweite Bitbreite ist. The circuit according to claim 1, wherein said word packing circuit (600) transfers each data word of the first sequence of data words to the byte packing circuit (650), provided the first bit width is equal in size to the second bit width.
  5. 5
    Circuit selon la revendication 4, dans lequel le circuit de paquetage de mots (600) comprend :- un élément de mémorisation de lecture (320) ;- une pluralité de sélecteurs d'entrée (610, 615), couplés audits éléments de mémorisation de lecture (620), configurés pour transférer la première séquence de mots contenant des données dans ledit élément de mémorisation de lecture (620) ;- un circuit de commande (630), couplé audit élément de mémorisation de lecture (620), configuré pour commander ledit élément de mémorisation de lecture (620) pour transférer séquentiellement la première séquence de mots contenant des données dans un sélecteur de sortie (625) ;et- ledit sélecteur de sortie (625), couplé audit élément de mémorisation de lecture (620) et audit circuit de commande (630), configuré pour transférer la seconde séquence de mots contenant des données audit circuit de paquetage d'octets (650), la seconde séquence de mots contenant des données étant identique à la première séquence de mots contenant des données. Schaltkreis nach Anspruch 4, bei dem der Schaltkreis (600) zum Packen von Worten aufweist: - ein Lesespeicherbauelement (320),- eine Mehrzahl von mit dem Lesespeicherbauelement (620) verbundenen Eingabeauswahlvorrichtungen (610, 615), die konfiguriert sind, um die erste Folge von Datenworten in das Lesespeicherbauelement (320) zu übertragen,- einen mit dem Lesespeicherbauelement (620) verbundenen Steuerschaltkreis (630), der konfiguriert ist, um das Lesespeicherbauelement (620) beim sequenziellen Übertragen der ersten Folge von Datenworten zu einer Ausgabeauswahlvorrichtung (625) zu steuern, und- die mit dem Lesespeicherbauelement (620) und dem Steuerschaltkreis (630) verbundene Ausgabeauswahlvorrichtung (625), die konfiguriert ist, um die zweite Folge von Datenworten zu dem Schaltkreis (650) zum Packen von Bytes zu übertragen, wobei die zweite Folge von Datenworten identisch zu der ersten Folge von Datenworten ist. The circuit according to claim 4, wherein the word packing circuit (600) includes: - a read storage element (320);- a plurality of input selectors (610,615), coupled to said read storage element (620), configured to transfer the first sequence of data words into said read storage element (620);- a control circuit (630), coupled to said read storage element (620), configured to control said read storage element (620) to sequentially transfer the first sequence of data words to an output selector (625);and- said output selector (625), coupled to said read storage element (620) and said control circuit (630), configured to transfer the second sequence of data words to said byte packing circuitry (650), the second sequence of data words being identical to the first sequence of data words.
  6. 6
    Circuit selon la revendication 1 ou 2 ou 5, dans lequel ledit circuit de paquetage d'octets (650) inclut :- un élément de mémorisation d'entrée (660) configuré pour recevoir de l'élément de mémorisation de lecture (620) (i) un premier mot contenant des données de la seconde séquence de mots contenant des données dans un premier cycle et (ii) un second mot contenant des données de la seconde séquence de mots contenant des données dans un second cycle ;- un élément de mémorisation de sauvegarde (665), couplé à l'élément de mémorisation (660), configuré pour recevoir le premier mot contenant des données de la seconde séquence de mots contenant des données dans le second cycle ;- un élément de sélection (675), couplé audit élément de mémorisation d'entrée et ledit élément de mémorisation de sauvegarde (665), configuré pour acheminer au moins une donnée d'octets du premier mot contenant des données de la seconde séquence de mots contenant des données vers un élément de mémorisation de sortie (670) ;et- ledit élément de mémorisation de sortie (670), couplé audit élément de sélection (675), configuré pour transférer un premier mot contenant des données de la troisième séquence de mots contenant des données dans ledit second élément de mémoire dans un troisième cycle. Schaltkreis nach Ansprüchen 1 oder 2 oder 5, bei dem der Schaltkreis (650) zum Packen von Bytes aufweist: - ein Eingabespeicherbauelement (660), das konfiguriert ist, um von dem Lesespeicherbauelement (620) (i) ein erstes Datenwort der zweiten Folge von Datenworten in einem ersten Zyklus und (ii) ein zweites Datenwort der zweiten Folge von Datenworten in einem zweiten Zyklus zu empfangen,- ein mit dem Eingabespeicherbauelement (660) verbundenes Sicherungsspeicherbauelement (665), das konfiguriert ist, um das erste Datenwort der zweiten Folge von Datenworten in dem zweiten Zyklus zu empfangen,- ein mit dem Eingabespeicherbauelement und dem Sicherungsspeicherbauelement (665) verbundenes Auswahlbauelement (675), das konfiguriert ist, um wenigstens ein Byte Daten des ersten Datenworts der zweiten Folge von Datenworten zu einem Ausgabespeicherbauelement (670) zu leiten, und- das mit dem Auswahlbauelement (675) verbundene Ausgabespeicherbauelement (670), das konfiguriert ist, um in einem dritten Zyklus ein erstes Datenwort der dritten Folge von Datenworten zu dem zweiten Speicherbauelement zu übertragen. The circuit according to claims 1 or 2 or 5, wherein the said byte packing circuit (650) includes: - an input storage element (660) configured to receive from the read storage element (620) (i) a first data word of the second sequence of data words in a first cycle and (ii) a second data word of the second sequence of data words in a second cycle;- a save storage element (665), coupled to the input storage element (660), configured to receive the first data word of the second sequence of data words in the second cycle;- a selecting element (675), coupled to said input storage element and said save storage element (665), configured to route at least one byte data of the first data word of the second sequence of data words to an output storage element (670);and- said output storage element (670), coupled to said selecting element (675), configured to transfer a first data word of the third sequence of data words to said second memory element in a third cycle.
  7. 7
    Circuit selon la revendication 6, dans lequel ledit élément de sélection (675) achemine des données à la fois des premiers et des seconds mots contenant des données de la seconde séquence de mots contenant des données, à condition qu'une partie du premier mot contenant des données de la seconde séquence de mots contenant des données contienne une information incorrecte. Schaltkreis nach Anspruch 6, bei dem das Auswahlbauelement (675) Daten sowohl die ersten als auch die zweiten Datenworte der zweiten Folge von Datenworten leitet, vorausgesetzt, dass ein Teil des ersten Datenworts der zweiten Folge von Datenworten ungültige Informationen enthält. The circuit according to claim 6, wherein said selecting element (675) routes data from both the first and the second data words of the second sequence of data words, provided a portion of the first data word of the second sequence of data words contains invalid information.
  8. 8
    Circuit selon la revendication 7, dans lequel ledit élément de sélection (675) comprend :- un sélecteur comprenant une pluralité de portes logiques de multiplexeurs montées en parallèle ;et- un circuit de rotation d'octets, couplé audit sélecteur via une pluralité de lignes de sélection, configuré pour transmettre une valeur de sélection le long de la pluralité de lignes de sélection afin de commander le sélecteur pour l'acheminement des données dans l'élément de mémorisation de sortie (670) à partir de l'élément de mémorisation d'entrée (660) ou de l'élément de mémorisation de sauvegarde (665). Schaltkreis nach Anspruch 7, bei dem das Auswahlbauelement (675) aufweist: - eine Auswahlvorrichtung, die eine Mehrzahl von parallel angeordneten Multiplex-Logikgattern aufweist, und- einen über eine Mehrzahl von Auswahlleitungen mit der Auswahlvorrichtung verbundenen Schaltkreis zum zyklischen Vertauschen von Bytes, der konfiguriert ist, um über die Mehrzahl von Auswahlleitungen einen Auswahlwert zu übertragen, um die Auswahlvorrichtung beim Leiten von Daten von dem Eingabespeicherbauelement (660) oder dem Sicherungsspeicherbauelement (665) zu dem Ausgabespeicherbauelement (670) zu steuern. The circuit according to claim 7, wherein the said selecting element (675) includes: - a selector including a plurality of multiplexer logic gates arranged in parallel;and- a byte rotate circuit, coupled to said selector via a plurality of select lines, configured to transmit a select value along the plurality of select lines in order to control the selector in routing data to the output storage element (670) from the input storage element (660) or the save storage element (665)
  9. 9
    Circuit selon la revendication 8, dans lequel ledit circuit de rotation d'octets calcule la valeur de sélection selon l'équation suivante :- [R/8- (nombre de canaux) mod R/8+adr. tampon]mod R/8, dans lequel - - "R/8" est un nombre égal à une largeur de bit du second élément de mémoire,- - "nombre de canaux" est un nombre égal au nombre d'octets de données à l'intérieur dudit registre d'entrée, registre de sauvegarde et registre de sortie avant de transmettre la seconde séquence de mots contenant des données au circuit de paquetage d'octets, et- - "adr. tampon" est un nombre égal au nombre d'octets incorrect précédent un premier octet correct du premier mot contenant des données de la seconde séquence de mots contenant des données. Schaltkreis nach Anspruch 8, bei dem der Schaltkreis zum zyklischen Vertauschen von Bytes den Auswahlwert gemäß der folgenden Gleichung berechnet: - [R/8 - (Pipe Count) mod R/8 + Buffer Addr] mod R/8, wobei - - "R/8" eine Zahl gleich einer Bitbreite des zweiten Speicherbauelements ist,- - "Pipe Count" eine Zahl gleich der Anzahl von Bytes von Daten in dem Eingaberegister, Sicherungsregister und Ausgaberegister vor einem Übertragen der zweiten Folgen von Datenworten zu dem Schaltkreis zum Packen von Bytes ist, und- - "Buffer Addr" eine Zahl gleich der Anzahl von ungültigen Bytes ist, die einem ersten gültigen Byte des ersten Datenworts der zweiten Folge von Datenworten vorangeht. The circuit according to claim 8, wherein said byte rotate circuit calculates the select value according to the following equation: - [R/8-(Pipe Count) mod R/8+Buffer Addr]mod R/8, wherein, - - "R/8" is a number equal to a bit width of the second memory element,- - "Pipe Count" is a number equal to the number of bytes of data within said input register, save register and output register prior to transmitting the second sequence of data words the byte packing circuit, and- - "Buffer Addr" is a number equal to the number of invalid bytes preceding a first valid byte of the first data word of the second sequence of data words.
  10. 10
    A network interface circuit coupling a host system (390) to a network media (400), the network interface circuit comprising:- a transmit buffer memory (460) configured with a second bit width;- a system bus interface (200) configured to establish a connection with a data bus (380) of the host system (390), said data bus (380) having a first bit width;- a system and ATM layer core (220), coupled to the transmit buffer memory (460) and the system bus interface (200), configured to receive a first sequence of data words placed on the data bus (380) and to pack valid data provided by the first sequence of data words prior to storing the data within said transmit buffer memory (406),- the system and ATM layer core (220) including the circuit according to one of the claims 1 to 9. Circuit d'interface de réseau couplant un système serveur (390) à un support de réseau (400), le circuit d'interface de réseau comprenant : - une mémoire-tampon de transmission (460) configurée avec une seconde largeur de bit ;- une interface de bus de système (200) configurée pour établir une connexion avec un bus de données (380) du système serveur (390), ledit bus de données (380) ayant une première largeur de bit ;- un système et un noyau de couche ATM (220), couplé à la mémoire-tampon de transmission (460) et à l'interface de bus de système (200), configuré pour recevoir une première séquence de mots contenant des données placée sur le bus de données (380) et pour empaqueter des données correctes fournies par la première séquence de mots contenant des données avant la mémorisation des données dans ladite mémoire-tampon de transmission (406),- le système et le noyau de couche ATM (220) comprenant le circuit selon l'une des revendications 1 à 9. Netzwerkschnittstellenschaltkreis, der ein Hauptrechnersystem (390) mit einem Netzwerkmedium (400) verbindet, wobei der Netzwerkschnittstellenschaltkreis umfasst: - einen Übertragungspufferspeicher (460), der mit einer zweiten Bitbreite konfiguriert ist,- eine Systembusschnittstelle (200), die konfiguriert ist, um eine Verbindung mit einem Datenbus (380) des Hauptrechnersystems (390) aufzubauen, wobei der Datenbus (380) eine erste Bitbreite aufweist,- einen mit dem Übertragungspufferspeicher (460) und der Systembusschnittstelle (200) verbundenen System- und ATM-Schichtkern (220), der konfiguriert ist, um eine erste Folge von auf den Datenbus (380) ausgegebenen Datenworten zu empfangen und um gültige, durch die erste Folge von Datenworten bereitgestellte Daten vor einem Speichern der Daten in dem Übertragungspufferspeicher (406) zu packen,- wobei der System- und ATM-Schichtkern (220) den Schaltkreis gemäß einem der Ansprüche 1 bis 9 aufweist.
  11. 11
    A method of data packing comprising the steps of:- providing a word packing circuit (600) to receive a first sequence of data words each having a first bit width and to serially transfer a second sequence of data words each having a second bit width, wherein each data word of the second sequence of data words contains valid words;and- providing a byte packing circuit (650), coupled to the word packing circuit (600), to receive in serial the second sequence of data words and then produce a third sequence of data words each having the second bit width to be stored in the second memory element, characterized by- producing the third sequence of data words exclusively containing valid bytes provided the second sequence of data words includes invalid data. Méthode de paquetage de données comprenant les étapes de : - fourniture d'un circuit de paquetage de mots (600) pour recevoir une première séquence de mots contenant des données chacune ayant une première largeur de bit et pour transférer sériellement une seconde séquence de mots contenant des données ayant chacune une seconde largeur de bit, dans laquelle chaque mot contenant des données de la seconde séquence de mots contenant des données contient des mots corrects ;et- fourniture d'un circuit de paquetage d'octets (650), couplé au circuit de paquetage de mots (600), pour recevoir en série la seconde séquence de mots contenant des données et puis produire une troisième séquence de mots contenant des données ayant chacune la seconde largeur de bit à stocker dans le second élément de mémoire, caractérisé par- la production de la troisième séquence de mots contenant des données contenant exclusivement des octets corrects à condition que la seconde séquence de mots contenant des données inclue des données correctes. Verfahren zum Packen von Daten mit den Schritten: - Bereitstellen eines Schaltkreises (600) zum Packen von Worten, um eine erste Folge von Datenworten zu empfangen, die jeweils eine erste Bitbreite aufweisen, und um eine zweite Folge von Datenworten seriell zu übertragen, die jeweils eine zweite Bitbreite aufweisen, wobei jedes Datenwort der zweiten Folge von Datenworten gültige Worte enthält, und- Bereitstellen eines mit dem Schaltkreis (600) zum Packen von Worten verbundenen Schaltkreises (650) zum Packen von Bytes, um die zweite Folge von Datenworten seriell zu empfangen und dann eine dritte Folge von in dem zweiten Speicherbauelement zu speichernden Datenworten zu erzeugen, die jeweils die zweite Bitbreite aufweisen, gekennzeichnet durch- Erzeugen der dritten Folge von Datenworten so, dass sie ausschließlich gültige Bytes enthalten, vorausgesetzt, dass die zweite Folge von Datenworten ungültige Daten aufweist.
  12. 12
    A network comprising:- a network media (400);and- a host system (390), coupled to said network media (400), to transfer data through said network media (400), said host system (390) including a circuit for packing the data for transmission,- said circuit including the circuit according to one of the claims 1 to 9. Netzwerk mit: - einem Netzwerkmedium (400), und- einem mit dem Netzwerkmedium (400) verbundenen Hauptrechnersystem (390), um Daten über das Netzwerkmedium (400) zu übertragen, wobei das Hauptrechnersystem (390) einen Schaltkreis zum Packen der Daten zur Übertragung aufweist,- wobei der Schaltkreis den Schaltkreis gemäß einem der Ansprüche 1 bis 9 aufweist. Un réseau comprenant : - un support de réseau (400) ;et- un système serveur (390), couplé audit support de réseau (400), pour transférer des données à travers ledit support de réseau (400), ledit système serveur (390) comprenant un circuit pour le paquetage des données pour la transmission,- ledit circuit comprenant le circuit selon l'une des revendications 1 à 9.
  13. 13
    A network interface circuit comprising:- a local buffer memory configured with a second bit width;and- a core circuit, coupled to said local buffer memory, configured to receive a first sequence of data words each having a first bit width and to store valid data of the first sequence of data words into said local buffer memory,- said core circuit including the circuit according to one of the claims 1 to 9. Circuit d'interface de réseau comprenant : - une mémoire-tampon locale configurée avec une seconde largeur de bit ;et- un circuit de noyau, couplé à ladite mémoire-tampon locale, configuré pour recevoir une première séquence de mots contenant des données ayant chacune une première largeur de bit et pour mémoriser des données correctes de la première séquence de mots contenant des données dans ladite mémoire-tampon locale,- ledit circuit de noyau comprenant le circuit selon l'une des revendications 1 à 9. Netzwerkschnittstellenschaltkreis mit: - einem lokalen Pufferspeicher, der mit einer zweiten Bitbreite konfiguriert ist, und,- einem mit dem lokalen Pufferspeicher verbundenen Kernschaltkreis, der konfiguriert ist, um eine erste Folge von Datenworten zu empfangen, die jeweils eine erste Bitbreite aufweisen, und um gültige Daten der ersten Folge von Datenworten in den lokalen Pufferspeicher zu speichern,- wobei der Kernschaltkreis den Schaltkreis gemäß einem der Ansprüche 1 bis 9 aufweist.