Brevet FR2864660A1 — publié le 20050701

PROCESSEUR A CHEMINS DE TRAITEMENT MULTIPLES AVEC BUS DEDIE L'invention concerne les processeurs d'ordinateurs, et en particulier la commutation entre les chemins de traitement d'un processeur à chemins de traitement multiples. Les processeurs d'ordinateur sont prévus pour réaliser à grande vitesse des opérations très simples, telles que des traitements logiques ou arithmétiques ou des déplacements de données d'un emplacement à un autre. Pour améliorer la vitesse de traitement d'un ordinateur, les développements les plus fréquents consistent à augmenter les fréquences d'horloge de ses différents composants, et en particulier la fréquence d'horloge du processeur. La taille des processeurs a progressivement été réduite afin de pouvoir augmenter leur vitesse d'horloge. Cependant, la réduction des dimensions des processeurs présente une limite alors qu'il existe toujours une demande pour des processeurs plus rapides. D'autres types de développements pour accroître la vitesse de traitement des processeurs ont ainsi été réalisés. Une technique connue pour améliorer la vitesse de traitement est d'utiliser un processeur conçu pour avoir des chemins ou filières de traitements multiples (désigné par multithread processor en langue anglaise). Dans un tel processeur, une tâche à exécuter est divisée en des séquences d'instructions exécutables indépendamment, appelées chemins de traitement. Les chemins de traitement forment ainsi des sous-tâches exécutées par une même unité de traitement centrale du processeur. L'unité de traitement centrale commute sélectivement entre ces différents chemins pour assurer leur traitement. Ainsi, lorsqu'un chemin de traitement du processeur est arrêté, l'unité de traitement centrale commute sur un autre chemin de traitement. Un processeur connu sous la dénommination commerciale PowerPC est un processeur à chemins de traitement multiples. Ce processeur comprend un nombre N de chemins de traitement multiples, vers lesquels l'unité de traitement centrale commute séquentiellement. Pour chaque chemin de traitement, l'unité de traitement centrale présente un état associé. Un état comprend par exemple un registre général, un registre de virgule flottante, un registre contrôle, un registre de lien. Les états sont associés à une mémoire de sauvegarde et de restauration des états. Lorsqu'un état vient d'être utilisé pour un chemin de traitement et qu'un autre chemin doit être ultérieurement traité, le chemin traité est sauvegardé dans la mémoire. Le chemin à traiter ultérieurement est ensuite lu dans la mémoire et restauré dans ledit état. Les transferts entre le processeur et la mémoire de sauvegarde/restauration sont effectués par un bus. Ce bus est également utilisé pour le transfert de données entre le processeur et d'autres périphériques extérieurs, tels qu'une mémoire vive. Un tel processeur et son procédé de fonctionnement présentent des inconvénients. En effet, des cycles d'horloge de l'unité de traitement sont utilisés pour effectuer des tâches de sauvegarde ou de chargement d'états, et non pour traiter un chemin. Le basculement entre le traitement de différents chemins est donc consommateur de temps de traitement. Le processeur est en outre complexe et coûteux car il utilise un grand nombre d'états. Il existe donc un besoin pour un processeur ou un procédé de mise en oeuvre qui résolve un ou plusieurs de ces inconvénients. L'invention a ainsi pour objet un dispositif comprenant un processeur à chemins de traitement multiples, et présentant deux états mémorisant chacun un chemin de traitement, une unité centrale de traitement traitant sélectivement les chemins de traitement mémorisés dans lesdits états, au moins un bus de transfert de données ou d'instructions entre le processeur et des périphériques extérieurs, au moins un bus de sauvegarde et de restauration des chemins de traitement, distinct du bus de données, une mémoire de sauvegarde et de restauration, dans laquelle les chemins de traitement sont susceptibles d'être lus et inscrits par le processeur par l'intermédiaire du bus de sauvegarde et de restauration, un contrôleur des chemins de traitement, communiquant avec le processeur par le bus de sauvegarde et de restauration et commandant le transfert d'un chemin de traitement entre la mémoire et un état pendant que le processeur traite le chemin de traitement d'un autre état. Selon une variante, la mémoire de sauvegarde et de restauration et le contrôleur des chemins de traitement sont intégrés dans le processeur. Selon encore une variante, la mémoire de sauvegarde et de restauration est une mémoire RAM. Selon une autre variante, le processeur comprend une unité de gestion mémoire et des états additionnels en nombre égal au nombre des états associés à l'unité centrale de traitement, le contrôleur commandant également le transfert de données de gestion mémoire d'un chemin de traitement entre un état additionnel et la mémoire pendant que l'unité de gestion mémoire traite les données de gestion mémoire d'un chemin de traitement mémorisé dans un autre état additionnel. Selon encore une autre variante, le bus de transfert de données est un bus 64 bits. Selon encore une autre variante, la taille du bus de sauvegarde et de restauration est inférieure à la 10 taille du bus de transfert. On peut encore prévoir que le contrôleur soit une machine d'état. Selon une variante, le temps de traitement d'un chemin de traitement d'un état est supérieur au temps cumulé de transfert d'un chemin de traitement de l'autre état vers la mémoire et de transfert d'un chemin de traitement de la mémoire vers cet autre état. L'invention porte également sur un procédé de commande d'un dispositif de traitement, comprenant les étapes de: mémorisation de premier et deuxième chemins de traitement dans des premier et deuxième états respectifs associés à une unité centrale de traitement; traitement par l'unité centrale du premier chemin de traitement mémorisé dans le premier état; et durant ce traitement, sauvegarde du deuxième chemin de traitement dans une mémoire de sauvegarde, puis restauration d'un troisième chemin de traitement depuis la mémoire vers ce deuxième état, les transferts des chemins de traitement entre les états et la mémoire étant réalisés par l'intermédiaire d'un bus de sauvegarde et de restauration dédié. Selon une variante, le procédé comprend en outre les étapes suivantes: traitement par l'unité centrale du troisième chemin de traitement mémorisé dans le deuxième état; et durant ce traitement, sauvegarde du premier chemin de traitement dans la mémoire de sauvegarde, puis restauration d'un quatrième chemin de traitement depuis la mémoire vers ce premier état. Selon encore une variante, le cas échéant, une 10 étape de traitement présente une durée supérieure ou égale aux durées cumulées d'une étape de sauvegarde et d'une étape de restauration. Selon une autre variante, le procédé comprend en outre les étapes de: -préalablement à une étape de traitement du chemin mémorisé dans un état, émission d'une requête de commutation de chemin de traitement de l'unité centrale vers un contrôleur de chemins de traitement, par l'intermédiaire du bus dédié; -commande des étapes de transfert entre l'autre état et la mémoire par le contrôleur; -transmission d'un signal d'autorisation du traitement suivant à la fin de l'étape de restauration, depuis le contrôleur de chemin de traitement vers l'unité centrale. L'invention sera mieux comprise à partir de la figure annexée, fournie à titre d'exemple, et qui représente un schéma de principe d'un dispositif de traitement mettant en uvre l'invention. L'invention propose de façon générale un dispositif de traitement muni d'un processeur à chemins de traitement multiples. Ce processeur dispose d'une unité centrale de traitement et de deux états mémorisant chacun un chemin de traitement susceptible d'être traité sélectivement par l'unité centrale de traitement. Le processeur présente un bus de transfert de données pour être connecté à des périphériques et un bus distinct de sauvegarde et de restauration des chemins de traitement connecté à une mémoire de sauvegarde et de restauration. Un contrôleur des chemins de traitement commande le transfert d'un chemin de traitement entre la mémoire et un des états du processeur pendant que l'unité centrale traite le chemin de traitement de l'autre état. Ainsi, la sauvegarde et la restauration des chemins de traitement se fait en temps masqué pendant le traitement d'un chemin de traitement par l'unité centrale de traitement. L'unité centrale de traitement perd ainsi moins de cycles d'horloge pour des opérations de sauvegarde et de restauration des chemins de traitement. On constate en outre que l'invention permet de réduire la complexité et le coût du dispositif de traitement. La figure 1 illustre schématiquement un exemple d'un dispositif de traitement selon l'invention. Ce dispositif présente un processeur 1. Le processeur 1 est muni d'une unité centrale de traitement 11 et de deux états 111 et 112. Chaque état peut par exemple comprendre des registres qui ont été détaillés dans le résumé de l'état de la technique qui précède. L'unité de traitement 11 présente des moyens de commutation lui permettant de traiter sélectivement un de ces états 111 ou 112. Le processeur 1 présente un bus 13 de transfert de données ou d'instructions entre le processeur 1 et des périphériques extérieurs, tels qu'une mémoire vive 2 ou d'autres périphériques 3. Le processeur 1 présente en outre un bus 14 de sauvegarde et de restauration des chemins de traitement, distinct du bus de transfert 13. Ainsi le processeur 1 peut communiquer en parallèle par ces deux bus 13 et 14. Une mémoire de sauvegarde et de restauration 15 est connectée au bus 14 afin d'être lue ou écrite par le processeur 1. La mémoire 15 est ainsi configurée pour que le processeur 1 lise ou inscrive un chemin de traitement dans un de ses états 151 à 15n. La mémoire 15 est par exemple une mémoire RAM. Un contrôleur 16 des chemins de traitement gère les transferts entre le processeur 1 et la mémoire 15, et plus précisément les transferts des chemins de traitement entre les états 111, 112 et les états 151 à 15n. Le contrôleur 16 commande ainsi le transfert d'un chemin de traitement entre un état respectif de l'unité de traitement 11 et de la mémoire 15, lorsque l'unité de traitement 11 traite un chemin de traitement d'un autre état. On va maintenant décrire un exemple de fonctionnement du dispositif. Un chemin de traitement a été préalablement inscrit dans l'état 111 et doit être traité par l'unité de traitement 11. Ce chemin de traitement sera nommé chemin de traitement courant. L'unité de traitement 11 a auparavant traité le chemin de traitement précédant qui est mémorisé dans l'état 112. Avant de débuter le traitement du chemin de traitement courant, l'unité de traitement 11 émet un signal "commuter le chemin de traitement" vers le contrôleur 16. Ce signal peut par exemple être émis sur une connexion spécifique 162 par l'intermédiaire du bus 14. L'unité centrale 11 commence alors le traitement du chemin de traitement courant. Parallèlement, le contrôleur 16 commande la sauvegarde du chemin de traitement précédant dans un état de la mémoire 15. Cette sauvegarde est effectuée par l'intermédiaire du bus 14. Le contrôleur commande alors le transfert du chemin de traitement suivant de la mémoire 15 vers l'état 112 par l'intermédiaire du bus 14. Le contrôleur émet ensuite un signal "chemin de traitement prêt" vers l'unité de traitement 11. L'unité de traitement peut alors commuter sur l'état 112 pour traiter le chemin de traitement suivant. L'unité de traitement 11 peut alors notamment effectuer cette commutation qui peut être requise par son système d'exploitation. Le dispositif de traitement traite ainsi alternativement les chemins de traitement des états 111 et 112 en répétant ces étapes. Le contrôleur commande ainsi la sauvegarde des chemins de traitement dans la mémoire 15 et la restauration des chemins de traitement dans les états 111 et 112, pendant les traitements de l'unité centrale 11. La commutation de l'unité de traitement 11 entre les chemins de traitement est ainsi extrêmement rapide. Des performances optimales sont obtenues en configurant l'unité de traitement 11 de sorte que le traitement d'un chemin de traitement soit plus long que la sauvegarde et la restauration effectuées en parallèle par le contrôleur 16. Le temps d'attente entre la fin d'un traitement et le signal "chemin de traitement prêt est ainsi éliminé". Le processeur 1 de la figure 1 présente en outre une unité de gestion mémoire 12 traitant sélectivement des états 121 et 122 mémorisant des données de gestion mémoire d'un chemin de traitement. Le contrôleur 16 commande également le transfert des données de gestion mémoire entre un état de l'unité de gestion et la mémoire 15 durant le traitement par l'unité de gestion mémoire 12 des données de gestion mémorisés dans l'autre état. Les transferts effectués entre les états 121, 122 et la mémoire 15 peuvent être commandés par le contrôleur 16 de façon similaire aux transferts entre les états 11, 112 et la mémoire 15. Avantageusement, l'unité centrale de traitement 11 traite seulement deux états. La structure du processeur 1 peut ainsi être simplifiée, tout en présentant les avantages du transfert en temps masqué avec la mémoire 15. Avantageusement, la mémoire 15 ou le contrôleur 16 15 sont intégrés dans le processeur 1. Le contrôleur 16 peut notamment être mis en uvre sous la forme d'une machine d'état ou sous la forme d'un microcontrôleur à 8, 16 ou 32 bits. La taille du bus 14 sera adaptée à la vitesse de transfert souhaitée entre le processeur 1 et le contrôleur ou la mémoire 15. On peut notamment prévoir un bus à 8, 16 ou 32 bits. La taille du bus 13 sera généralement supérieure à la taille du bus 14. Pour un processeur de serveur, on pourra notamment envisager un bus 13 présentant une taille au moins égale à 64 bits. REVENDICATIONS 1. Dispositif caractérisé en ce qu'il comprend: -un processeur (1) à chemins de traitement multiples, et présentant: -deux états (111, 112) mémorisant chacun un chemin de traitement; - une unité centrale de traitement (11) traitant sélectivement les chemins de traitement mémorisés dans lesdits états; - au moins un bus de transfert de données ou d'instructions (13) entre le processeur (1) et des périphériques extérieurs (2, 3); -au moins un bus de sauvegarde et de restauration (14) des chemins de traitement, distinct du bus de données; -une mémoire de sauvegarde et de restauration (15), dans laquelle les chemins de traitement sont susceptibles d'être lus et inscrits par le processeur par l'intermédiaire du bus de sauvegarde et de restauration; -un contrôleur des chemins de traitement (16), communiquant avec le processeur par le bus de sauvegarde et de restauration et commandant le transfert d'un chemin de traitement entre la mémoire et un état pendant que le processeur traite le chemin de traitement d'un autre état. 2. Dispositif selon la revendication 1, caractérisé en ce que la mémoire de sauvegarde et de restauration (15) et le contrôleur des chemins de traitement (16) sont intégrés dans le processeur. 3. Dispositif selon la revendication 1 ou 2, caractérisé en ce que la mémoire de sauvegarde et de restauration est une mémoire RAM. 4. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que le processeur (1) comprend une unité de gestion mémoire (12) et des états additionnels (121, 122) en nombre égal au nombre des états associés à l'unité centrale de traitement, le contrôleur commandant également le transfert de données de gestion mémoire d'un chemin de traitement entre un état additionnel et la mémoire pendant que l'unité de gestion mémoire traite les données de gestion mémoire d'un chemin de traitement mémorisé dans un autre état additionnel. 5. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que le bus de 20 transfert de données est un bus 64 bits. 6. Dispositif selon la revendication 5, caractérisé en ce que la taille du bus de sauvegarde et de restauration est inférieure à la taille du bus de transfert. 7. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que le contrôleur est une machine d'état. 8. Dispositif selon l'une quelconque des revendications précédentes, caractérisé en ce que le temps de traitement d'un chemin de traitement d'un état est supérieur au temps cumulé de transfert d'un chemin de traitement de l'autre état vers la mémoire et de transfert d'un chemin de traitement de la mémoire vers cet autre état. 9. Procédé de commande d'un dispositif de traitement, comprenant les étapes de: a) mémorisation de premier et deuxième chemins de traitement dans des premier et deuxième états 10 respectifs associés à une unité centrale de traitement; b) traitement par l'unité centrale du premier chemin de traitement mémorisé dans le premier état; et c) durant ce traitement, sauvegarde du deuxième 15 chemin de traitement dans une mémoire de sauvegarde, puis restauration d'un troisième chemin de traitement depuis la mémoire vers ce deuxième état, les transferts des chemins de traitement entre les états et la mémoire étant 20 réalisés par l'intermédiaire d'un bus de sauvegarde et de restauration dédié. 10. Procédé selon la revendication 9, caractérisé en ce qu'il comprend en outre les étapes suivantes: d) traitement par l'unité centrale du troisième chemin de traitement mémorisé dans le deuxième état; et e) durant ce traitement, sauvegarde du premier chemin de traitement dans la mémoire de sauvegarde, puis restauration d'un quatrième chemin de traitement depuis la mémoire vers ce premier état. 11. Procédé selon la revendication 9 ou 10, caractérisé en ce que, le cas échéant, une étape de traitement présente une durée supérieure ou égale aux durées cumulées d'une étape de sauvegarde et d'une étape de restauration. 12. Procédé selon l'une quelconque des revendications 9 à 11, caractérisé en ce qu'il comprend en outre les étapes de: -préalablement à une étape de traitement du chemin mémorisé dans un état, émission d'une requête de commutation de chemin de traitement de l'unité centrale vers un contrôleur de chemins de traitement, par l'intermédiaire du bus dédié; -commande des étapes de transfert entre l'autre état et la mémoire par le contrôleur; -transmission d'un signal d'autorisation du traitement suivant à la fin de l'étape de restauration, depuis le contrôleur de chemin de traitement vers l'unité centrale.