[go: up one dir, main page]

HK1061445B - Registers for data transfers within a multithreaded processor - Google Patents

Registers for data transfers within a multithreaded processor Download PDF

Info

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
Application number
HK04102104.5A
Other languages
German (de)
English (en)
Chinese (zh)
Other versions
HK1061445A1 (en
Inventor
Gilbert Wolrich
Mark Rosenbluth
Debra Bernstein
Matthew Adiletta
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/116,670 external-priority patent/US7437724B2/en
Application filed by Intel Corporation filed Critical Intel Corporation
Publication of HK1061445A1 publication Critical patent/HK1061445A1/en
Publication of HK1061445B publication Critical patent/HK1061445B/en

Links

Claims (30)

  1. 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.
  2. 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.
  3. 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).
  4. 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).
  5. 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.
  6. 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).
  7. 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).
  8. Processeur (12) selon la revendication 7, comprenant en outre une unité de synchronisation à travers l'unité de pipeline fonctionnel.
  9. 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).
  10. 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.
  11. Processeur (12) selon la revendication 7, dans lequel la pluralité de moteurs de programmation (16) traite un paquet de données dans l'ordre.
  12. 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).
  13. 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.
  14. Processeur (12) selon la revendication 7, dans lequel la pluralité de moteurs de programmation (16) réalise une signalisation inter-processus.
  15. 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) ; et
    l'é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.
  16. 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.
  17. 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).
  18. 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.
  19. 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).
  20. 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).
  21. 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.
  22. 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.
  23. 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).
  24. 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).
  25. 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).
  26. 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).
  27. 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).
  28. Système multitraitement comprenant :
    une unité de synchronisation pour traiter des paquets de données à travers l'unité de pipeline fonctionnel ; et
    une 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.
  29. 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.
  30. 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).
HK04102104.5A 2002-04-03 2003-03-27 Registers for data transfers within a multithreaded processor HK1061445B (en)

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