HK1061445B - Registers for data transfers within a multithreaded processor - Google Patents
Registers for data transfers within a multithreaded processor Download PDFInfo
- Publication number
- HK1061445B HK1061445B HK04102104.5A HK04102104A HK1061445B HK 1061445 B HK1061445 B HK 1061445B HK 04102104 A HK04102104 A HK 04102104A HK 1061445 B HK1061445 B HK 1061445B
- Authority
- HK
- Hong Kong
- Prior art keywords
- programming
- registers
- engines
- data
- processor
- Prior art date
Links
Claims (30)
- Processeur (12) comprenant :une pluralité de moteurs de programmation (16), chaque moteur de programmation (16a...16h) configuré pour traiter en parallèle une pluralité de transactions, chaque moteur de programmation comprenant une pluralité de registres (32, 34, 36, 38, 40) pour transférer des données entre le moteur de programmation (16a...16h) et des emplacements externes au moteur de programmation caractérisé en ce que ladite pluralité de moteurs de programmation est disposée pour fournir un pipeline (50) ; la pluralité de registres comprenant des registres voisins suivants (35) configurés pour recevoir des données à partir d'une entité externe et sélectionnées par une opération par rapport à un contexte, lesdits registres voisins suivants étant utilisés pour transférer des données entre le moteur de programmation et un moteur de programmation adjacent qui suit dans le pipeline.
- Processeur (12) selon la revendication 1, dans lequel la pluralité de registres (32, 34, 36, 38, 40) comprend des registres voisins suivants (35) disposés dans une configuration premier entré - premier sorti.
- Processeur (12) selon la revendication 1, dans lequel la pluralité de registres (32, 34, 36, 38, 40) sont configurés pour assigner des tâches pour le traitement de paquets à la pluralité de moteurs de programmation (16).
- Processeur (12) selon la revendication 1, dans lequel la pluralité de registres (32, 34, 36, 38, 40) sont configurés pour établir des étages de programmation correspondant à la pluralité de moteurs de programmation (16).
- Processeur (12) selon la revendication 1, dans lequel la pluralité de registres (32, 34, 36, 38, 40) établissent une pluralité de pipelines entre les étages de programmation.
- Processeur (12) selon la revendication 1, dans lequel la pluralité de registres (32, 34, 36, 38, 40) d'un premier moteur de programmation (16a...16h) maintient un étage de programmation fonctionnant actuellement du pipeline (50) et la pluralité de registres d'un second moteur de programmation adjacent (16a....16h) maintient un étage de programmation qui suit du pipeline (50).
- Processeur (12) selon la revendication 1, dans lequel la pluralité de registres (32, 34, 36, 38, 40) supportent un pipeline fonctionnel (50) par une unité de commande de pipeline fonctionnel qui passe des données fonctionnelles entre la pluralité de moteurs de programmation (16).
- Processeur (12) selon la revendication 7, comprenant en outre une unité de synchronisation à travers l'unité de pipeline fonctionnel.
- Processeur (12) selon la revendication 7, dans lequel l'unité de commande de pipeline fonctionnel comprend une pluralité d'étages de pipeline fonctionnel (60a...60m).
- Processeur (12) selon là revendication 7, dans lequel chacun de la pluralité d'étages de pipeline fonctionnel (60a...60m) réalise une fonction de système différente.
- Processeur (12) selon la revendication 7, dans lequel la pluralité de moteurs de programmation (16) traite un paquet de données dans l'ordre.
- Processeur (12) selon la revendication 7, dans lequel les paquets de données sont assignés à des contextes multiples de la pluralité de moteurs de programmation (16).
- Processeur (12) selon la revendication 7, dans lequel la pluralité de moteurs de programmation (16) exécute une fonction de traitement de paquets de données utilisant l'unité de pipeline fonctionnel du système.
- Processeur (12) selon la revendication 7, dans lequel la pluralité de moteurs de programmation (16) réalise une signalisation inter-processus.
- Procédé de transfert de données entre des moteurs de programmation (16), le procédé comprenant :la lecture de données à partir d'une pluralité de registres de données (32, 34, 36, 38, 40) d'un premier moteur de programmation (16a...16h) pour traiter les données dans un processeur parallèle ayant une pluralité de moteurs de programmation disposés pour fournir un pipeline, qui supporte une exécution parallèle des contextes multiples dans chacun de la pluralité de moteurs de programmation (16) ; etl'écriture de données dans une pluralité de registres de données (32, 34, 36, 38, 40) d'un second moteur de programmation (16a...16h), les premier et second moteurs de programmation étant des moteurs de programmation adjacents, la pluralité de registres comprenant des registres voisins suivants configurée pour recevoir des données à partir d'une entité externe et sélectionnée par une opération par rapport à un contexte, lesdits registres voisins suivants étant utilisés pour transférer des données entre un moteur de programmation et un moteur de programmation adjacent qui suit dans le pipeline.
- Procédé selon la revendication 15, dans lequel la pluralité de registres (32, 34, 36, 38, 40) des premier et second moteurs de programmation sont des registres voisins suivants (35) disposés dans une configuration premier entré - premier sorti.
- Procédé selon la revendication 15, comprenant en outre l'assignation des tâches pour le traitement de paquets à la pluralité de moteurs de programmation (16).
- Procédé selon la revendication 15, comprenant en outre l'établissement des étages de programmation correspondant à la pluralité de moteurs de programmation (16) et pour établir une pluralité de pipelines entre les étages de programmation.
- Procédé selon la revendication 15, comprenant en outre le maintien d'un étage de programmation fonctionnant actuellement du pipeline dans la pluralité de registres (32, 34, 36, 38, 40) du premier moteur de programmation (16a...16h) et le maintien d'un étage de programmation qui suit du pipeline dans la pluralité de registres (32, 34, 36, 38, 40) du second moteur de programmation (16a...16h).
- Procédé selon la revendication 15, dans lequel la lecture et l'écriture de données comprend le support d'un pipeline fonctionnel (50) par une unité de commande de pipeline fonctionnel qui passe des données fonctionnelles entre la pluralité de moteurs de programmation (16).
- Produit de programme informatique stocké sur un support lisible par ordinateur, le programme comprenant des instructions pour conduire un processeur parallèle à réaliser le procédé de la revendication 15.
- Produit de programme informatique selon la revendication 21, comprenant en outre des instructions conduisant le processeur (12) à transférer des données entre des registres voisins suivants (35) des premier et second moteurs de programmation adjacents.
- Produit de programme informatique selon la revendication 21, dans lequel la pluralité de registres (32, 34, 36, 38, 40) exécute les transferts de données en utilisant une configuration de pipeline des registres (32, 34, 36, 38, 40) et des moteurs de programmation (16).
- Produit de programme informatique selon la revendication 21, comprenant en outre des instructions conduisant le processeur (12) à configurer la pluralité de registres de données (32, 34, 36, 38, 40) pour assigner des tâches pour le traitement de paquets à la pluralité de moteurs de programmation (16).
- Article comprenant :un support de stockage ayant stocké sur celui-ci des instructions qui lorsqu'elles sont exécutées par une machine résultent en ce qui suit :transfert de données à partir d'un d'une première pluralité de registres (32, 34, 36, 38, 40) dans un moteur de programmation s'exécutant (16a...16h) à un d'une seconde pluralité de registres (32, 34, 36, 38, 40) résidant dans un autre moteur de programmation (16a...16h), chaque moteur de programmation configuré pour traiter en parallèle une pluralité de transactions caractérisé en ce que ladite pluralité de moteurs de programmation est disposée pour fournir un pipeline (50), au moins une des première et seconde pluralités de registres comprenant des registres voisins suivants configurés pour recevoir des données à partir d'une entité externe et sélectionnées par une opération par rapport à un contexte, lesdits registres voisins suivants étant utilisés pour transférer des données entre un moteur de programmation et un moteur de programmation adjacent qui suit dans le pipeline ;assignation de tâches pour le traitement de paquets aux moteurs de programmation (16a... 16h) ; etétablissement des étages de programmation correspondant à la pluralité de moteurs de programmation (16a...16h).
- Article selon la revendication 25, comprenant en outre des instructions pour transférer des données à partir d'un registre voisin suivant (35) résidant dans un moteur de programmation s'exécutant actuellement (16a... 16h) des moteurs de programmation (16) à un registre voisin suivant (35) résidant dans un moteur de programmation (16a...16h) adjacent au moteur de programmation s'exécutant actuellement (16a...16h).
- Article selon la revendication 25, comprenant en outre des instructions pour maintenir, dans une première pluralité de registres (32, 34, 36, 38, 40), un étage de programmation fonctionnant actuellement du pipeline (50) et pour maintenir, dans la seconde pluralité de registres (32, 34, 36, 38, 40), un étage de programmation qui suit du pipeline (50).
- Système multitraitement comprenant :une unité de synchronisation pour traiter des paquets de données à travers l'unité de pipeline fonctionnel ; etune pluralité de moteurs de programmation (16), chacun de la pluralité de moteurs de programmation configuré pour traiter en parallèle une pluralité de processus, caractérisé en ce que ladite pluralité de moteurs de programmation est disposée pour fournir un pipeline (50) et comprend une pluralité de registres voisins suivants (35) configurés pour réaliser le procédé de la revendication 15.
- Système multitraitement selon la revendication 28, comprenant en outre des emplacements de mémoire partagés utilisés par une pluralité d'étages de programmation de la pluralité de moteurs de programmation (16), les variables partagés comprenant une section critique définissant le temps de lecture-modification-écriture des emplacements de mémoire.
- Système multitraitement selon la revendication 28, dans lequel chacun de la pluralité des moteurs de programmation comprend en outre une mémoire adressable de contenu CAM (45).
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/116,670 US7437724B2 (en) | 2002-04-03 | 2002-04-03 | Registers for data transfers |
| US10/116,670 | 2002-04-03 | ||
| PCT/US2003/009478 WO2003085517A1 (fr) | 2002-04-03 | 2003-03-27 | Registres pour transferts de donnees dans un processeur multitransactionnel |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1061445A1 HK1061445A1 (en) | 2004-09-17 |
| HK1061445B true HK1061445B (en) | 2009-06-26 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1381939B1 (fr) | Registres pour transferts de donnees dans un processeur multitransactionnel | |
| US6934951B2 (en) | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section | |
| EP1481323B1 (fr) | Pipelines de processeurs multi-taches pour traiter des paquets de donnees | |
| US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
| EP1236088B9 (fr) | Ensemble de registres utilise dans une architecture de processeurs multifiliere paralleles | |
| EP1582980B1 (fr) | Procede de commutation de contexte, dispositif, programme, support d'enregistrement, et unite centrale | |
| US6944850B2 (en) | Hop method for stepping parallel hardware threads | |
| US20050132380A1 (en) | Method for hiding latency in a task-based library framework for a multiprocessor environment | |
| JP2007200288A (ja) | 実行スレッドをグループ化するためのシステム及び方法 | |
| EP1504349B1 (fr) | Regroupement de signaux | |
| HK1061445B (en) | Registers for data transfers within a multithreaded processor | |
| EP0136218A2 (fr) | Processeur pipeline à portes multiples | |
| US7899995B1 (en) | Apparatus, system, and method for dependent computations of streaming multiprocessors | |
| HK1072298B (en) | Pipelines of multithreaded processor cores for packet processing |