EP1627331B1

Intelligent data storage and processing using fpga devices

Abstract

This record has no abstract on file.

EP1627331B1, drawing sheet 1
Sheet 1 of 56

Term

Term ended

Expired 21 May 2024, 2.3 years ago.

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

16 claims: 16 independent, 0 dependent

  1. 1
    A method of manipulating data moving to or from a mass storage medium in a continuous stream, the method comprising:receiving, at a reconfigurable logic device (21), a continuous stream of encrypted data moving from a mass storage medium (26), the reconfigurable logic device comprising a pipeline (200), the pipeline comprising a plurality of pipelined data processing engines having different processing functions, wherein the pipelined data processing engines comprise a decryption engine (210) and a search engine (218), wherein, with reference to data streaming into the pipeline from the mass storage medium, the search engine is downstream from the decryption engine;performing a decryption operation on the streaming encrypted data using the decryption engine to thereby create a decrypted data stream;andperforming a search operation on the decrypted data stream for the presence of a data key therein using the search engine. Procédé de manipulation de données déplacées vers ou à partir d'un support de mémorisation de masse en un flot continu, le procédé comprenant : la réception, au niveau d'un dispositif logique reconfigurable (21), d'un flot continu de données chiffrées déplacées à partir d'un support de mémorisation de masse (26), le dispositif logique reconfigurable comprenant un pipeline (200), le pipeline comprenant une pluralité de moteurs de traitement de données en pipeline ayant différentes fonctions de traitement, dans lequel les moteurs de traitement de données en pipeline comprennent un moteur de déchiffrement (210) et un moteur de recherche (218), dans lequel, avec référence à la diffusion en flot continu de données dans le pipeline à partir du support de mémorisation de masse, le moteur de recherche est en aval du moteur de déchiffrement ;l'exécution d'une opération de déchiffrement sur les données chiffrées de diffusion en flot continu en utilisant le moteur de déchiffrement pour, de ce fait, créer un flot de données déchiffrées ;etl'exécution d'une opération de recherche sur le flot de données déchiffrées quant à la présence d'une clé de données dans celui-ci en utilisant le moteur de recherche. Verfahren zur Manipulation von Daten, die sich in einem kontinuierlichen Datenstrom hin zu oder aus einem Massenspeichermedium bewegen, wobei das Verfahren Folgendes umfasst: Empfangen eines kontinuierlichen Datenstroms verschlüsselter Daten, die sich aus einem Massenspeichermedium (26) bewegen, an einer rekonfigurierbaren Logikvorrichtung (21), wobei die rekonfigurierbare Logikvorrichtung eine Pipeline (200) umfasst, wobei die Pipeline eine Vielzahl von in der Pipeline angeordneten Datenverarbeitungsengines umfasst, die unterschiedliche Verarbeitungsfunktionen haben, worin die in der Pipeline angeordneten Datenverarbeitungsengines eine Entschlüsselungsengine (210) sowie eine Suchengine (218) umfassen, worin die Suchengine in Bezug auf Daten, die aus dem Massenspeichermedium in die Pipeline strömen, stromab der Entschlüsselungsengine ist;Durchführen einer Entschlüsselungsoperation an den strömenden, verschlüsselten Daten unter Verwendung der Entschlüsselungsengine, um dadurch einen entschlüsselten Datenstrom zu erzeugen;undDurchführen einer Suchoperation am entschlüsselten Datenstrom hinsichtlich des Vorhandenseins eines darin enthaltenen Datenschlüssels unter Verwendung der Suchengine.
  2. 2
    Procédé selon la revendication 1, dans lequel le dispositif logique reconfigurable est positionné entre un processeur (32) et le support de mémorisation de masse et est conçu pour traiter les données déplacées vers ou à partir du support de mémorisation de masse sous la commande du processeur, dans lequel le pipeline comprend un pipeline multifonctionnel, et dans lequel le dispositif logique reconfigurable comprend en outre une unité de commande (204), dans lequel l'unité de commande est configurée pour activer ou désactiver de manière contrôlable chaque moteur de traitement dans le pipeline et, de ce fait, définir une fonction pour le pipeline, la fonction de pipeline étant la fonctionnalité combinée de tous les moteurs de traitement de données activés, le procédé comprenant en outre :l'activation de manière contrôlable, par l'unité de commande, du moteur de déchiffrement et du moteur de recherche. The method of claim 1 wherein the reconfigurable logic device is positioned between a processor (32) and the mass storage medium is adapted to process data moving to or from the mass storage medium under control of the processor, wherein the pipeline comprises a multi-functional pipeline, and wherein the reconfigurable logic device further comprises a control unit (204), wherein the control unit is configured to controllably activate or deactivate each processing engine in the pipeline and thereby define a function for the pipeline, the pipeline function being the combined functionality of each activated data processing engine, the method further comprising: the control unit controllably activating the decryption engine and the search engine. Verfahren nach Anspruch 1, worin die rekonfigurierbare Logikvorrichtung zwischen einem Prozessor (32) und dem Massenspeichermedium positioniert ist und dazu geeignet ist, um unter Steuerung des Prozessors Daten zu verarbeiten, die sich hin zu oder aus dem Massenspeichermedium bewegen, worin die Pipeline eine multifunktionale Pipeline umfasst, und worin die rekonfigurierbare Logikvorrichtung ferner eine Steuereinheit (204) umfasst, worin die Steuereinheit konfiguriert ist, um jede Verarbeitungsengine in der Pipeline steuerbar zu aktivieren oder zu deaktivieren und dadurch eine Funktion für die Pipeline zu definieren, wobei die Pipelinefunktion die kombinierte Funktionalität jeder aktivierten Datenverarbeitungsengine ist, wobei das Verfahren ferner Folgendes umfasst: dass die Steuereinheit die Entschlüsselungsengine und die Suchengine steuerbar aktiviert.
  3. 3
    Procédé selon la revendication 2, dans lequel la clé de données comprend une clé de données numérique, dans lequel le moteur de recherche comprend un registre à décalage de données (27) comprenant une pluralité d'éléments, un registre de comparaison (35) comprenant une pluralité d'éléments, une logique de comparaison fine (31), et une logique de comparaison au niveau des mots (37), et dans lequel l'étape d'exécution de l'opération de recherche comprend (1) la mémorisation de la clé de données numérique dans le registre de comparaison, (2) le décalage des données déchiffrées de diffusion en flot continu à travers le registre à décalage de données, et (3) alors que les données déchiffrées de diffusion en flot continu sont décalées à travers le registre à décalage de données, (i) la comparaison des éléments du registre à décalage de données avec des éléments correspondants du registre de comparaison en utilisant la logique de comparaison fine pour générer une pluralité de comparaisons élément par élément entre les données déchiffrées de diffusion en flot continu et la clé de données numérique, et (ii) la détermination s'il existe une correspondance entre une partie des données déchiffrées de diffusion en flot continu et la clé de données numérique sur la base des comparaisons élément par élément en utilisant la logique de comparaison au niveau des mots. The method of claim 2 wherein the data key comprises a digital data key, wherein the search engine comprises a data shift register (27) comprising a plurality of elements, a compare register (35) comprising a plurality of elements, fine-grained comparison logic (31), and word-level comparison logic (37), and wherein the step of performing the search operation comprises (1) storing the digital data key in the compare register, (2) shifting the streaming decrypted data through the data shift register, and (3) as the streaming decrypted data shifts through the data shift register, (i) comparing elements of the data shift register with corresponding elements of the compare register using the fine-grained comparison logic to generate a plurality of element by element comparisons between the streaming decrypted data and the digital data key, and (ii) determining whether there is a match between a portion of the streaming decrypted data and the digital data key based on the element by element comparisons using the word-level comparison logic. Verfahren nach Anspruch 2, worin der Datenschlüssel einen digitalen Datenschlüssel umfasst, worin die Suchengine ein eine Vielzahl von Elementen umfassendes Datenschieberegister (27), ein eine Vielzahl von Elementen umfassendes Vergleichsregister (35), eine feinkörnige Vergleichslogik (31) sowie eine Wortebenen-Vergleichslogik (37) umfasst, und worin der Schritt des Durchführens der Suchoperation (1) das Speichern des digitalen Datenschlüssels im Vergleichsregister, (2) das Schieben der strömenden, entschlüsselten Daten durch das Datenschieberegister und (3), während die strömenden, entschlüsselten Daten durch das Datenschieberegister geschoben werden, (i) das Vergleichen von Elementen des Datenschieberegisters mit entsprechenden Elementen des Vergleichsregisters unter Verwendung der feinkörnigen Vergleichslogik, um eine Vielzahl von elementweisen Vergleichen zwischen den strömenden, entschlüsselten Daten und dem digitalen Datenschlüssel zu erzeugen, und (ii) auf Basis der elementweisen Vergleiche und unter Verwendung der Wortebenen-Vergleichslogik das Feststellen, ob eine Übereinstimmung zwischen einem Teil der strömenden, entschlüsselten Daten und dem digitalen Datenschlüssel besteht, umfasst.
  4. 4
    Procédé selon la revendication 2, dans lequel le pipeline multifonctionnel comprend en outre un moteur de décompression (214) en tant que l'un des moteurs de traitement de données en pipeline, le moteur de décompression étant positionné entre le moteur de déchiffrement et le moteur de recherche, dans lequel les données chiffrées comprennent des données compressées chiffrées, le procédé comprenant en outre :l'activation de manière contrôlable, par l'unité de commande, du moteur de décompression ;etla décompression des données compressées déchiffrées en utilisant le moteur de décompression pour, de ce fait, rendre les données décompressées déchiffrées disponibles pour le moteur de recherche. The method of claim 2 wherein the multi-functional pipeline further comprises a decompression engine (214) as one of the pipelined data processing engines, the decompression engine positioned between the decryption engine and the search engine, wherein the encrypted data comprises encrypted compressed data, the method further comprising: the control unit controllably activating the decompression engine;anddecompressing the decrypted compressed data using the decompression engine to thereby make decrypted decompressed data available to the search engine. Verfahren nach Anspruch 2, worin die multifunktionale Pipeline ferner eine Dekomprimierungengine (214) als eine der in der Pipeline angeordneten Datenverarbeitungsengines umfasst, wobei die Dekomprimierungsengine zwischen der Entschlüsselungsengine und der Suchengine positioniert ist, worin die verschlüsselten Daten verschlüsselte, komprimierte Daten umfassen, wobei das Verfahren ferner Folgendes umfasst: dass die Steuereinheit die Dekomprimierungsengine steuerbar aktiviert;unddas Dekomprimieren der entschlüsselten, komprimierten Daten unter Verwendung der Dekomprimierungsengine, um dadurch der Suchengine entschlüsselte, dekomprimierte Daten zur Verfügung zu stellen.
  5. 5
    Procédé selon la revendication 2, dans lequel le pipeline multifonctionnel comprend en outre un autre moteur de traitement de données en tant que l'un des moteurs de traitement de données en pipeline, le procédé comprenant en outre :la désactivation de manière contrôlable, par l'unité de commande, dudit autre moteur de traitement pour faire en sorte que ledit autre moteur de traitement soit un étage de passage dans le pipeline. The method of claim 2 wherein the multi-functional pipeline further comprises another data processing engine as one of the pipelined data processing engines, the method further comprising: the control unit controllably deactivating the another processing engine to make the another processing engine a pass-through stage within the pipeline. Verfahren nach Anspruch 2, worin die multifunktionale Pipeline ferner eine weitere Datenverarbeitungsengine als eine der in der Pipeline angeordneten Datenverarbeitungsengines umfasst, wobei das Verfahren ferner Folgendes umfasst: dass die Steuereinheit die weitere Verarbeitungsengine steuerbar aktiviert, um aus der weiteren Verarbeitungsengine eine Pass-Through-Stufe innerhalb der Pipeline zu machen.
  6. 6
    Procédé selon la revendication 2, dans lequel le pipeline multifonctionnel comprend en outre un moteur de décompression (214), un moteur de chiffrement (212), et un moteur de compression (216), le procédé comprenant en outre :la transformation, par l'unité de commande, de la fonction de pipeline pour un flot de données circulant vers le support de mémorisation de masse pour qu'il soit mémorisé dans un format chiffré et compressé en (ii) activant de manière contrôlable le moteur de chiffrement et le moteur de compression et (ii) désactivant de manière contrôlable le moteur de déchiffrement, le moteur de décompression et le moteur de recherche pour faire en sorte que le moteur de déchiffrement, le moteur de décompression et le moteur de recherche soient des étages de passage dans le pipeline de sorte que le pipeline soit configuré pour créer un flot de données de sortie de données chiffrées et compressées à partir d'un flot de données d'entrée ;la transformation, par l'unité de commande, de la fonction de pipeline pour un flot de données et des données chiffrées et compressées circulant à partir du support de mémorisation de masse en (i) activant de manière contrôlable le moteur de déchiffrement, le moteur de décompression et le moteur de recherche et (ii) désactivant de manière contrôlable le moteur de chiffrement et le moteur de compression pour faire en sorte que le moteur de chiffrement et le moteur de compression soient des étages de passage dans le pipeline de sorte que le pipeline soit configuré pour effectuer l'opération de recherche dans les données déchiffrées et décompressées. The method of claim 2 wherein the multi-functional pipeline further comprises a decompression engine (214), an encryption engine (212), and a compression engine (216), the method further comprising: the control unit transforming the pipeline function for a data stream flowing to the mass storage medium to be stored in an encrypted and compressed format by (i) controllably activating the encryption engine and the compression engine and (ii) controllably deactivating the decryption engine, the decompression engine and the search engine to render the decryption engine, decompression engine and search engine as pass-through stages within the pipeline such that the pipeline is configured to create an output data stream of encrypted and compressed data from an input data stream;the control unit transforming the pipeline function for a data stream of encrypted and compressed data flowing from the mass storage medium by (i) controllably activating the decryption engine, the decompression engine and the search engine and (ii) controllably deactivating the encryption engine and the compression engine to render the encryption engine and the compression engine as pass-through stages within the pipeline such that the pipeline is configured to perform the search operation within decrypted and decompressed data. Verfahren nach Anspruch 2, worin die multifunktionale Pipeline ferner eine Dekomprimierungsengine (214), eine Verschlüsselungsengine (212) und eine Komprimierungsengine (216) umfasst, wobei das Verfahren ferner Folgendes umfasst: dass die Steuereinheit die Pipelinefunktion für einen Datenstrom, der zum Massenspeichermedium strömt und in einem verschlüsselten und komprimierten Format gespeichert werden soll, transformiert, indem sie (i) die Verschlüsselungsengine und die Komprimierungsengine steuerbar aktiviert und (ii) die Entschlüsselungsengine, die Dekomprimierungsengine und die Suchengine steuerbar deaktiviert, um die Entschlüsselungsengine, die Dekomprimierungsengine und die Suchengine zu Pass-Through-Stufen innerhalb der Pipeline zu machen, sodass die Pipeline konfiguriert ist, um aus einem Eingangsdatenstrom einen Ausgangsdatenstrom verschlüsselter und komprimierter Daten zu erzeugen;dass die Steuereinheit die Pipelinefunktion für einen Datenstrom verschlüsselter und komprimierter Daten, der aus dem Massenspeichermedium strömt, transformiert, indem sie (i) die Entschlüsselungsengine, die Dekomprimierungsengine und die Suchengine steuerbar aktiviert und (ii) die Verschlüsselungsengine und die Komprimierungsengine steuerbar deaktiviert, um die Verschlüsselungsengine und die Komprimierungsengine zu Pass-Through-Stufen innerhalb der Pipeline zu machen, sodass die Pipeline konfiguriert ist, um die Suchoperation innerhalb der entschlüsselten und dekomprimierten Daten durchzuführen.
  7. 7
    Procédé selon l'une quelconque des revendications 1 à 6, dans lequel le moteur de déchiffrement comprend un élément du groupe consistant en (i) un moteur de déchiffrement à étage unique ayant un trajet de rétroaction (225) pour déchiffrer des données sur une pluralité de tours, (ii) un moteur de déchiffrement à étages multiples ayant une pluralité de tours de logique combinatoire de déchiffrement en pipeline (224) et un trajet de rétroaction (225) pour déchiffrer des données sur une pluralité de tours qui est supérieure à la pluralité de tours de logique combinatoire de déchiffrement en pipeline, et (iii) un moteur de déchiffrement à étages multiples ayant une pluralité de tours de logique combinatoire de déchiffrement en pipeline (224) qui sont totalement en pipeline. The method of any of claims 1-6 wherein the decryption engine comprises a member of the group consisting of (i) a single stage decryption engine having a feedback path (225) for decrypting data over a plurality of rounds, (ii) a multi-stage decryption engine having a plurality of pipelined decryption combinational logic rounds (224) and a feedback path (225) for decrypting data over a plurality of rounds that is greater than the plurality of pipelined decryption combinational logic rounds, and (iii) a multi-stage decryption engine having a plurality of pipelined decryption combinational logic rounds (224) that are fully pipelined. Verfahren nach einem der Ansprüche 1-6, worin die Entschlüsselungsengine ein Mitglied der Gruppe bestehend aus (i) einer einstufigen Entschlüsselungsengine, die einen Rückkopplungspfad (225) zum Entschlüsseln von Daten in einer Vielzahl von Durchläufen aufweist, (ii) einer mehrstufigen Entschlüsselungsengine, die eine Vielzahl von in einer Pipeline angeordneten, kombinatorischen Entschlüsselungslogikdurchläufen (224) und einen Rückkopplungspfad (225) zum Entschlüsseln von Daten in einer Vielzahl von Durchläufen, die größer als die Vielzahl von in einer Pipeline angerordneten kombinatorischen Entschlüsselungslogikdurchläufen ist, aufweist, und (iii) einer mehrstufigen Entschlüsselungsengine, die eine Vielzahl von in einer Pipeline angeordneten, kombinatorischen Entschlüsselungslogikdurchläufen (224) aufweist, die vollständig gepipelined sind, umfasst.
  8. 8
    Procédé selon l'une quelconque des revendications 1 à 7, dans lequel le dispositif logique reconfigurable interface un processeur (32) avec le support de mémorisation de masse, le procédé comprenant en outre :la mémorisation, par le dispositif logique reconfigurable, des données déchiffrées dans une mémoire qui n'est pas accessible au processeur, dans lequel la mémoire comprend un élément du groupe consistant en (i) une mémoire interne du dispositif logique reconfigurable qui n'est pas accessible au processeur, (ii) un dispositif de mémoire (3906) qui est déployé sur une carte de traitement (3900), le dispositif de mémoire n'étant pas accessible au processeur, et dans lequel le dispositif logique reconfigurable est également déployé sur la carte de traitement, et (iii) une combinaison de la mémoire interne et du dispositif de mémoire. The method of any of claims 1-7 wherein the reconfigurable logic device interfaces a processor (32) with the mass storage medium, the method further comprising: the reconfigurable logic device storing the decrypted data in a memory that is not accessible to the processor, wherein the memory comprises a member of the group consisting of (i) internal memory of the reconfigurable logic device that is inaccessible to the processor, (ii) a memory device (3906) that is deployed on a processing board (3900), the memory device being inaccessible to the processor, and wherein the reconfigurable logic device is also deployed on the processing board, and (iii) a combination of the internal memory and the memory device. Verfahren nach einem der Ansprüche 1-7, worin die rekonfigurierbare Logikvorrichtung eine Schnittstelle zwischen einem Prozessor (32) und dem Massenspeichermedium bildet, wobei das Verfahren ferner Folgendes umfasst: dass die rekonfigurierbare Logikvorrichtung die entschlüsselten Daten in einem Arbeitsspeicher speichert, auf den der Prozessor nicht zugreifen kann, worin der Arbeitsspeicher ein Mitglied der Gruppe bestehend aus (i) einem internen Arbeitsspeicher der rekonfigurierbaren Logikvorrichtung, auf den der Prozessor nicht zugreifen kann, (ii) einer Speichervorrichtung (3906), die auf einer Verarbeitungsplatine (3900) installiert ist, wobei der Prozessor nicht auf die die Speichervorrichtung zugreifen kann, und (iii) eine Kombination des internen Arbeitsspeichers und der Speichervorrichtung.
  9. 9
    A device for manipulating data moving to or from a mass storage medium in a continuous stream, the device comprising:a reconfigurable logic device (21) in communication with a mass storage medium (26), the reconfigurable logic device being configured to receive a continuous stream of encrypted data moving to or from the mass storage medium, the reconfigurable logic device comprising a pipeline (200), the pipeline comprising a plurality of pipelined data processing engines having different processing functions, wherein the pipelined data processing engines comprise a decryption engine (210) and a search engine (218);wherein, with reference to data streaming into the pipeline from the mass storage medium, the search engine is downstream from the decryption engine;wherein the decryption engine is configured to perform a decryption operation on the streaming encrypted data to thereby create a decrypted data stream;andwherein the search engine is configured to perform a search operation on the decrypted data stream for the presence of a data key therein. Dispositif pour manipuler des données déplacées vers ou à partir d'un support de mémorisation de masse en un flot continu, le dispositif comprenant : un dispositif logique reconfigurable (21) en communication avec un support de mémorisation de masse (26), le dispositif logique reconfigurable étant configuré pour recevoir un flot continu de données chiffrées déplacées vers et à partir du support de mémorisation de masse, le dispositif logique reconfigurable comprenant un pipeline (200), le pipeline comprenant une pluralité de moteurs de traitement de données en pipeline ayant différentes fonctions de traitement, dans lequel les moteurs de traitement de données en pipeline comprennent un moteur de déchiffrement (210) et un moteur de recherche (218) ;dans lequel, avec référence à la diffusion en flot continu de données dans le pipeline à partir du support de mémorisation de masse, le moteur de recherche est en aval du moteur de déchiffrement ;dans lequel le moteur de déchiffrement est configuré pour exécuter une opération de déchiffrement sur les données chiffrées de diffusion en flot continu pour, de ce fait, créer un flot de données déchiffrées ;etdans lequel le moteur de recherche est configuré pour exécuter une opération de recherche sur le flot de données déchiffrées quant à la présence d'une clé de données dans celui-ci. Vorrichtung zur Manipulation von Daten, die sich in einem kontinuierlichen Strom hin zu oder aus einem Massenspeichermedium bewegen, wobei die Vorrichtung Folgendes umfasst: eine rekonfigurierbare Logikvorrichtung (21), die mit einem Massenspeichermedium (26) in Kommunikation ist, wobei die rekonfigurierbare Logikvorrichtung konfiguriert ist, um einen kontinuierlichen Strom verschlüsselter Daten zu empfangen, die sich hin zu oder aus dem Massenspeichermedium bewegen, wobei die rekonfigurierbare Logikvorrichtung eine Pipeline (200) umfasst, wobei die Pipeline eine Vielzahl von in der Pipeline angeordneten Datenverarbeitungsengines umfasst, die unterschiedliche Verarbeitungsfunktionen haben, worin die in der Pipeline angeordneten Datenverarbeitungsengine eine Entschlüsselungsengine (210) sowie eine Suchengine (218) umfassen;worin die Suchengine in Bezug auf Daten, die aus dem Massenspeichermedium in die Pipeline strömen, stromab der Entschlüsselungsengine ist;worin die Entschlüsselungsengine konfiguriert ist, um eine Entschlüsselungsoperation an den strömenden, verschlüsselten Daten durchzuführen, um dadurch einen entschlüsselten Datenstrom zu erzeugen;undworin die Suchengine konfiguriert ist, um eine Suchoperation an dem entschlüsselten Datenstrom hinsichtlich des Vorhandenseins eines darin enthaltenen Datenschlüssels durchzuführen.
  10. 10
    Dispositif selon la revendication 9 comprenant en outre un processeur (32) et le support de mémorisation de masse, dans lequel le dispositif logique reconfigurable est positionné entre le processeur et le support de mémorisation de masse pour traiter les données déplacées vers ou à partir du support de mémorisation de masse sous la commande du processeur, dans lequel le pipeline comprend un pipeline multifonctionnel, et dans lequel le dispositif logique reconfigurable comprend en outre une unité de commande (204), dans lequel l'unité de commande est configurée pour activer ou désactiver de manière contrôlable chaque moteur de traitement dans le pipeline et définir, de ce fait, une fonction pour le pipeline, la fonction de pipeline étant la fonctionnalité combinée de tous les moteurs de traitement de données activés, et dans lequel l'unité de commande est en outre configurée pour activer de manière contrôlable le moteur de déchiffrement et le moteur de recherche. The device of claim 9 further comprising a processor (32) and the mass storage medium, wherein the reconfigurable logic device is positioned between the processor and the mass storage medium to process data moving to or from the mass storage medium under control of the processor, wherein the pipeline comprises a multi-functional pipeline, and wherein the reconfigurable logic device further comprises a control unit (204), wherein the control unit is configured to controllably activate or deactivate each processing engine in the pipeline and thereby define a function for the pipeline, the pipeline function being the combined functionality of each activated data processing engine, and wherein the control unit is further configured to controllably activate the decryption engine and the search engine. Vorrichtung nach Anspruch 9, die ferner einen Prozessor (32) und das Massenspeichermedium umfasst, worin die rekonfigurierbare Logikvorrichtung zwischen dem Prozessor und dem Massenspeichermedium positioniert ist, um unter Steuerung des Prozessors Daten zu verarbeiten, die sich hin zu oder aus dem Massenspeichermedium bewegen, worin die Pipeline eine multifunktionale Pipeline umfasst, und worin die rekonfigurierbare Logikvorrichtung ferner eine Steuereinheit (204) umfasst, worin die Steuereinheit konfiguriert ist, um jede Verarbeitungsengine in der Pipeline steuerbar zu aktivieren oder zu deaktivieren und dadurch eine Funktion für die Pipeline zu definieren, wobei die Pipelinefunktion die kombinierte Funktionalität jeder aktivierten Datenverarbeitungsengine ist, und worin die Steuereinheit ferner konfiguriert ist, um die Entschlüsselungsengine und die Suchengine steuerbar zu aktivieren.
  11. 11
    Dispositif selon la revendication 10, dans lequel la clé de données comprend une clé de données numérique, dans lequel le moteur de recherche comprend un registre à décalage de données (27) comprenant une pluralité d'éléments, un registre de comparaison (35) comprenant une pluralité d'éléments, une logique de comparaison fine (31), et une logique de comparaison au niveau des mots (37), et dans lequel le moteur de recherche est configuré pour (1) mémoriser la clé de données numérique dans le registre de comparaison, (2) décaler les données déchiffrées de diffusion en flot continu à travers le registre à décalage de données, et (3) alors que les données déchiffrées de diffusion en flot continu sont décalées à travers le registre à décalage de données, (i) comparer les éléments du registre à décalage de données avec des éléments correspondants du registre de comparaison par l'intermédiaire de la logique de comparaison fine pour générer une pluralité de comparaisons élément par élément entre les données déchiffrées de diffusion en flot continu et la clé de données numérique, et (ii) déterminer s'il existe une correspondance entre une partie des données déchiffrées de diffusion en flot continu et la clé de données numérique sur la base des comparaisons élément par élément par l'intermédiaire de la logique de comparaison au niveau des mots. The device of claim 10 wherein the data key comprises a digital data key, wherein the search engine comprises a data shift register (27) comprising a plurality of elements, a compare register (35) comprising a plurality of elements, fine-grained comparison logic (31), and word-level comparison logic (37), and wherein the search engine is configured to (1) store the digital data key in the compare register, (2) shift the streaming decrypted data through the data shift register, and (3) as the streaming decrypted data shifts through the data shift register, (i) compare elements of the data shift register with corresponding elements of the compare register via the fine-grained comparison logic to generate a plurality of element by element comparisons between the streaming decrypted data and the digital data key, and (ii) determine whether there is a match between a portion of the streaming decrypted data and the digital data key based on the element by element comparisons via the word-level comparison logic. Vorrichtung nach Anspruch 10, worin der Datenschlüssel einen digitalen Datenschlüssel umfasst, worin die Suchengine ein eine Vielzahl von Elementen umfassendes Datenschieberegister (27), ein eine Vielzahl von Elementen umfassendes Vergleichsregister (35), eine feinkörnige Vergleichslogik (31) sowie eine Wortebenen-Vergleichslogik (37) umfasst, und worin die Suchengine konfiguriert ist, um (1) den digitalen Datenschlüssel im Vergleichsregister zu speichern, (2) die strömenden, entschlüsselten Daten durch das Datenschieberegister zu schieben und (3), während die strömenden, entschlüsselten Daten durch das Datenschieberegister geschoben werden, (i) Elemente des Datenschieberegisters mit entsprechenden Elementen des Vergleichsregisters unter Verwendung der feinkörnigen Vergleichslogik zu vergleichen, um eine Vielzahl von elementweisen Vergleichen zwischen den strömenden, entschlüsselten Daten und dem digitalen Datenschlüssel zu erzeugen, und (ii) auf Basis der elementweisen Vergleiche mittels der Wortebenen-Vergleichslogik festzustellen, ob eine Übereinstimmung zwischen einem Teil der strömenden, entschlüsselten Daten und dem digitalen Datenschlüssel besteht.
  12. 12
    Dispositif selon la revendication 10, dans lequel le pipeline multifonctionnel comprend en outre un moteur de décompression (214) en tant que l'un des moteurs de traitement de données en pipeline, le moteur de décompression étant positionné entre le moteur de déchiffrement et le moteur de recherche, dans lequel l'unité de commande est configurée pour activer de manière contrôlable le moteur de décompression, dans lequel les données chiffrées comprennent des données compressées chiffrées, et dans lequel le moteur de décompression est configuré pour décompresser les données compressées déchiffrées pour, de ce fait, rendre les données décompressées déchiffrées disponibles pour le moteur de recherche. The device of claim 10 wherein the multi-functional pipeline further comprises a decompression engine (214) as one of the pipelined data processing engines, the decompression engine positioned between the decryption engine and the search engine, wherein the control unit is configured to controllably activate the decompression engine, wherein the encrypted data comprises encrypted compressed data, and wherein the decompression engine is configured to decompress the decrypted compressed data to thereby make decrypted decompressed data available to the search engine. Vorrichtung nach Anspruch 10, worin die multifunktionale Pipeline ferner eine Dekomprimierungsengine (214) als eine der in der Pipeline angeordneten Datenverarbeitungsengines umfasst, wobei die Dekomprimierungsengine zwischen der Entschlüsselungsengine und der Suchengine positioniert ist, worin die Steuereinheit konfiguriert ist, um die Dekomprimierungsengine steuerbar zu aktivieren, worin die verschlüsselten Daten verschlüsselte, komprimierte Daten umfassen, und worin die Dekomprimierungsengine konfiguriert ist, um die entschlüsselten, komprimierten Daten zu dekomprimieren, um dadurch der Suchengine entschlüsselte, dekomprimierte Daten zur Verfügung zu stellen.
  13. 13
    Dispositif selon la revendication 10, dans lequel le pipeline multifonctionnel comprend en outre un autre moteur de traitement de données en tant que l'un des moteurs de traitement de données en pipeline, et dans lequel l'unité de commande est configurée pour désactiver de manière contrôlable ledit un autre moteur de traitement pour faire en sorte que ledit un autre moteur de traitement soit un étage de passage dans le pipeline. The device of claim 10 wherein the multi-functional pipeline further comprises another data processing engine as one of the pipelined data processing engines, and wherein the control unit is configured to controllably deactivate the another processing engine to make the another processing engine a pass-through stage within the pipeline. Vorrichtung nach Anspruch 10, worin die multifunktionale Pipeline ferner eine weitere Datenverarbeitungsengine als eine der in der Pipeline angeordneten Datenverarbeitungsengines umfasst, und worin die Steuereinheit konfiguriert ist, um die weitere Verarbeitungsengine steuerbar zu deaktivieren, um aus der weiteren Verarbeitungsengine eine Pass-Through-Stufe innerhalb der Pipeline zu machen.
  14. 14
    Dispositif selon la revendication 10, dans lequel le pipeline multifonctionnel comprend en outre un moteur de décompression (214), un moteur de chiffrement (212), et un moteur de compression (216), dans lequel l'unité de commande est configurée pour (i) transformer la fonction de pipeline pour un flot de données circulant vers le support de mémorisation de masse pour qu'il soit mémorisé dans un format chiffré et compressé en (a) activant de manière contrôlable le moteur de chiffrement et le moteur de compression et (b) désactivant de manière contrôlable le moteur de déchiffrement, le moteur de décompression et le moteur de recherche pour faire en sorte que le moteur de déchiffrement, le moteur de décompression et le moteur de recherche soient des étages de passage dans le pipeline de sorte que le pipeline soit configuré pour créer un flot de données de sortie de données chiffrées et compressées à partir d'un flot de données d'entrée, et (ii) transformer la fonction de pipeline pour un flot de données de données chiffrées et compressées circulant à partir du support de mémorisation de masse en (a) activant de manière contrôlable le moteur de déchiffrement, le moteur de décompression et le moteur de recherche et (b) désactivant de manière contrôlable le moteur de chiffrement et le moteur de compression pour faire en sorte que le moteur de chiffrement et le moteur de compression soient des étages de passage dans le pipeline de sorte que le pipeline soit configuré pour effectuer l'opération de recherche dans les données déchiffrées et décompressées. The device of claim 10 wherein the multi-functional pipeline further comprises a decompression engine (214), an encryption engine (212), and a compression engine (216), wherein the control unit is configured to (i) transform the pipeline function for a data stream flowing to the mass storage medium to be stored in an encrypted and compressed format by (a) controllably activating the encryption engine and the compression engine and (b) controllably deactivating the decryption engine, the decompression engine and the search engine to render the decryption engine, decompression engine and search engine as pass-through stages within the pipeline such that the pipeline is configured to create an output data stream of encrypted and compressed data from an input data stream, and (ii) transform the pipeline function for a data stream of encrypted and compressed data flowing from the mass storage medium by (a) controllably activating the decryption engine, the decompression engine and the search engine and (b) controllably deactivating the encryption engine and the compression engine to render the encryption engine and the compression engine as pass-through stages within the pipeline such that the pipeline is configured to perform the search operation within decrypted and decompressed data. Vorrichtung nach Anspruch 10, worin die multifunktionale Pipeline ferner eine Dekomprimierungsengine (214), eine Verschlüsselungsengine (212) und eine Komprimierungsengine (216) umfasst, worin die Steuereinheit konfiguriert ist, um (i) die Pipelinefunktion für einen Datenstrom, der zum Massenspeichermedium strömt und in einem verschlüsselten und komprimierten Format gespeichert werden soll, zu transformieren, indem sie (a) die Verschlüsselungsengine und die Komprimierungsengine steuerbar aktiviert und (b) die Entschlüsselungsengine, die Dekomprimierungsengine und die Suchengine steuerbar deaktiviert, um die Entschlüsselungsengine, die Dekomprimierungsengine und die Suchengine zu Pass-Through-Stufen innerhalb der Pipeline zu machen, sodass die Pipeline konfiguriert ist, um aus einem Eingangsdatenstrom einen Ausgangsdatenstrom verschlüsselter und komprimierter Daten zu erzeugen, und (ii) die Pipelinefunktion für einen Datenstrom verschlüsselter und komprimierter Daten, die aus dem Massenspeichermedium strömen, zu transformieren, indem sie (a) die Entschlüsselungsengine, die Dekomprimierungsengine und die Suchengine steuerbar aktiviert und (b) die Verschlüsselungsengine und die Komprimierungsengine steuerbar deaktiviert, um die Verschlüsselungsengine und die Komprimierungsengine zu Pass-Through-Stufen innerhalb der Pipeline zu machen, sodass die Pipeline konfiguriert ist, um die Suchoperation innerhalb der entschlüsselten und dekomprimierten Daten durchzuführen.
  15. 15
    Dispositif selon l'une quelconque des revendications 9 à 14, dans lequel le moteur de déchiffrement comprend un élément du groupe consistant en (i) un moteur de déchiffrement à étage unique comportant un trajet de rétroaction (225) pour déchiffrer des données sur une pluralité de tours, (ii) un moteur de déchiffrement à étages multiples ayant une pluralité de tours de logique combinatoire de déchiffrement en pipeline (224) et un trajet de rétroaction (225) pour déchiffrer des données sur une pluralité de tours qui est supérieure à la pluralité de tours de logique combinatoire de déchiffrement en pipeline, et (iii) un moteur de déchiffrement à étages multiples comportant une pluralité de tours de logique combinatoire de déchiffrement en pipeline (224) qui sont totalement en pipeline. The device of any of claims 9-14 wherein the decryption engine comprises a member of the group consisting of (i) a single stage decryption engine having a feedback path (225) for decrypting data over a plurality of rounds, (ii) a multi-stage decryption engine having a plurality of pipelined decryption combinational logic rounds (224) and a feedback path (225) for decrypting data over a plurality of rounds that is greater than the plurality of pipelined decryption combinational logic rounds, and (iii) a multi-stage decryption engine having a plurality of pipelined decryption combinational logic rounds (224) that are fully pipelined. Vorrichtung nach einem der Ansprüche 9-14, worin die Entschlüsselungsengine ein Mitglied der Gruppe bestehend aus (i) einer einstufigen Entschlüsselungsengine, die einen Rückkopplungspfad (225) zum Entschlüsseln von Daten in einer Vielzahl von Durchläufen aufweist, (ii) einer mehrstufigen Entschlüsselungsengine, die eine Vielzahl von in einer Pipeline angeordneten, kombinatorischen Entschlüsselungslogikdurchläufen (224) und einen Rückkopplungspfad (225) zum Entschlüsseln von Daten in einer Vielzahl von Durchläufen, die größer als die Vielzahl von in einer Pipeline angerordneten kombinatorischen Entschlüsselungslogikdurchläufen ist, aufweist, und (iii) einer mehrstufigen Entschlüsselungsengine, die eine Vielzahl von in einer Pipeline angeordneten, kombinatorischen Entschlüsselungslogikdurchläufen (224) aufweist, die vollständig gepipelined sind, umfasst.
  16. 16
    Dispositif selon l'une quelconque des revendications 9 à 15, dans lequel le dispositif logique reconfigurable interface un processeur (32) avec le support de mémorisation de masse ;et dans lequel le dispositif logique reconfigurable est en outre configuré pour mémoriser les données déchiffrées dans une mémoire qui n'est pas accessible au processeur, dans lequel la mémoire comprend un élément du groupe consistant en (i) une mémoire interne du dispositif logique reconfigurable qui n'est pas accessible au processeur, (ii) un dispositif de mémoire (3906) qui est déployé sur une carte de traitement (3900), le dispositif de mémoire n'étant pas accessible au processeur, et dans lequel le dispositif logique reconfigurable est également déployé sur la carte de traitement, et (iii) une combinaison de la mémoire interne et du dispositif de mémoire. The device of any of claims 9-15 wherein the reconfigurable logic device interfaces a processor (32) with the mass storage medium;and wherein the reconfigurable logic device is further configured to store the decrypted data in a memory that is not accessible to the processor, wherein the memory comprises a member of the group consisting of (i) internal memory of the reconfigurable logic device that is inaccessible to the processor, (ii) a memory device (3906) that is deployed on a processing board (3900), the memory device being inaccessible to the processor, and wherein the reconfigurable logic device is also deployed on the processing board, and (iii) a combination of the internal memory and the memory device. Vorrichtung nach einem der Ansprüche 9-15, worin die rekonfigurierbare Logikvorrichtung eine Schnittstelle zwischen einem Prozessor (32) und dem Massenspeichermedium bildet;und worin die rekonfigurierbare Logikvorrichtung ferner konfiguriert ist, um die entschlüsselten Daten in einem Arbeitsspeicher zu speichern, auf den der Prozessor nicht zugreifen kann, worin der Arbeitsspeicher ein Mitglied der Gruppe bestehend aus (i) einem internen Arbeitsspeicher der rekonfigurierbaren Logikvorrichtung, auf den der Prozessor nicht zugreifen kann, (ii) einer Speichervorrichtung (3906), die auf einer Verarbeitungsplatine (3900) installiert ist, wobei der Prozessor nicht auf die Speichervorrichtung zugreifen kann, und worin die rekonfigurierbare Logikvorrichtung ebenso auf der Verarbeitungsplatine installiert ist, und (iii) eine Kombination des internen Arbeitsspeichers und der Speichervorrichtung umfasst.
Independent claims16