Brevet FR2862147A1 — publié le 20050513

La présente invention concerne les systèmes informatiques et plus particulièrement des connexions de bus des systèmes informatiques. Les composants d'un ordinateur, y compris son processeur, son jeu de puces, sa mémoire cache, sa mémoire, ses cartes d'extension et ses dispositifs de mémorisation, communiquent les uns avec les autres via un ou plusieurs "bus". Un "bus", en termes informatiques généraux, est un canal sur lequel les informations circulent entre deux ou plus de deux dispositifs. Un bus a normale-ment des points d'accès, ou des emplacements auxquels un dispositif peut se connecter au bus. Une fois connectés, les dispositifs sur le bus peuvent envoyer des informations à d'autres dispositifs, et recevoir des informa- tions depuis ces derniers. De nos jours, les ordinateurs individuels ont tendance à avoir au moins quatre bus. Chaque bus est dans une certaine mesure plus éloigné par rapport au processeur; chacun se connecte au niveau qui se trouve audessus de lui. Le Bus de Processeur est le bus de niveau le plus haut, et est utilisé par le jeu de puces pour envoyer des informations vers et depuis le processeur. Le Bus de Cache (quelquefois appelé le bus arrière) est utilisé pour accéder au cache système. Le Bus de Mémoire connecte le soussystème de mémoire au jeu de puces et au processeur. Dans de nombreux systèmes, les bus de processeur et de mémoire sont les mêmes, et sont collectivement appelés le bus frontal ou le bus système. Le bus d'entrée/sortie (E/S) local connecte des périphériques à la mémoire, au jeu de puces, et au processeur. Les cartes vidéo, les dispositifs de mémorisation de disque, et les cartes d'interface réseau utilisent généralement ce bus. Les deux bus d'entrée/sortie locaux les plus classiques sont le Bus Local de l'Asso- ciation de Normalisation Electronique pour la Vidéo (VESA) (VLB) et le Bus d'Interconnexion de Composants Périphériques (PCI). Un Bus d'Entrée/Sortie d'Architecture des Normes Industrielles (ISA) peut également être utili- sé pour des périphériques plus lents, tels que des sou-ris, des modems, et des dispositifs de son et de gestion de réseau de vitesse faible. La génération actuelle du bus PCI est connue comme étant le bus PCI Express. Ce bus est un bus série à largeur de bande élevée, qui maintient la compatibilité logicielle avec des dispositifs PCI existants. Un premier aspect de la présente invention est un procédé pour configurer des liaisons d'un bus PCI Ex-press. L'état des extrémités de bus est détecté, indi- quant si les extrémités sont équipées et la largeur de bande que nécessitent les extrémités. Sur la base de cette détection, la totalité ou une partie d'une liaison ayant une largeur de bande non-utilisée peut être commutée vers une autre extrémité. Par exemple, toutes les voies d'une liaison ache-minée vers une extrémité non-équipée peuvent être réacheminées vers une extrémité équipée. A titre d'exemple, une ou plusieurs voies d'une liaison acheminée vers une extrémité qui a besoin de moins de largeur de bande que celle fournie par cette liaison, peuvent être commutées vers une extrémité nécessitant plus de largeur de bande. Un avantage de la présente invention est qu'elle permet de surmonter les limitations en largeur de bande du bus PCI Express. Une reconfiguration dynamique des voies PCI Express permet à la largeur de bande non-utilisée d'être commutée vers d'autres dispositifs sur le bus. Une compréhension plus complète des présents modes de réalisation et avantages de celles-ci peut être acquise en se reportant à la description qui va suivre faite en référence aux dessins annexés, sur lesquels des références numériques analogues indiquent des caractéristiques analogues, et sur lesquels: - la figure 1 illustre divers éléments internes d'un système de traitement d'informations selon la pré-sente invention, - la figure 2 illustre une partie du système de la figure 1, et illustre en outre un premier exemple de reconfiguration d'une liaison, - la figure 3 illustre un deuxième exemple de re- configuration d'une liaison, et - la figure 4 illustre un troisième exemple de reconfiguration d'une liaison. La figure 1 illustre divers éléments internes d'un système de traitement d'informations 100 selon la présente invention. Comme décrit ci-dessous, un système 100 a un bus PCI Express 17, ainsi qu'un circuit supplémentaire 19 qui reconfigure dynamiquement une ou plu-sieurs liaisons 17b du bus. Le bus PCI Express 17 est utilisé selon la manière classique pour connecter des composants périphériques, mais est amélioré de manière à ce que l'état d'une extrémité 17c puisse être détecté et la largeur de bande de cette extrémité réacheminée si elle n'est pas nécessaire à cette extrémité. Dans le mode de réalisation de la figure 1, le système 100 est un système typique d'un système informa-tique individuel, mais peut être un certain autre type de système de traitement d'informations, tel qu'un serveur, un poste de travail, ou un système embarqué. Dans les buts de cette description, un système de traitement d'in-formations peut inclure un quelconque dispositif ou en-semble de dispositifs opérationnels pour calculer, classer, traiter, transmettre, recevoir, récupérer, émettre, commuter, mémoriser, afficher, manifester, détecter, en- registrer, lire, traiter, ou utiliser toute forme d'in- formations, d'intelligence, ou de données dans des buts commerciaux, scientifiques, de commande ou autres. Par exemple, un système de traitement d'informations peut être un ordinateur individuel, un dispositif de mémorisa- tion de réseau, ou tout autre dispositif adapté et peut varier en taille, forme, performance, fonctionnalité, et prix. Le système de traitement d'informations peut inclure une mémoire à accès direct (RAM), une ou plusieurs ressources de traitement telles qu'une unité centrale de traitement (CPU), une logique de commande matérielle ou logicielle, une mémoire à lecture seule (ROM), et/ou d'autres types de mémoire non- volatile. Les composants supplémentaires du système de traitement d'informations peuvent inclure une ou plusieurs unités de disque, un ou plusieurs ports réseau pour communiquer avec des dispositifs externes, ainsi que divers dispositifs d'entrée et de sortie (E/S), tels qu'un clavier, une souris, et un afficheur vidéo. Le système de traitement d'informations peut également inclure un ou plusieurs bus opérationnels pour transmettre des communications entre les divers composants matériels. La CPU 10 peut être un quelconque dispositif central de traitement. Un exemple d'une CPU typique 10 est une CPU de la famille Pentium de processeurs disponible auprès de la société Intel Corporation. Dans les buts de la présente invention, la CPU 10 est au moins programmée pour exécuter un système d'exploitation ayant un pro-gramme de système de base d'entrées/sorties (BIOS). Un pont hôte 11 (souvent appelé pontNord) est une puce (ou une partie d'un jeu de puces) qui connecte la CPU 10 à des extrémités 12, à la mémoire 13, et au bus PCI Express 17. Les types des extrémités 12 connectées au pont hôte il dépendent de l'application. Par exemple, si le système 100 est un ordinateur de bureau, les extrémi- tés 12 sont typiquement un adaptateur graphique, un dis- que dur (HDD) (via une liaison d'Adaptateur de Terminal Analogique (ATA) série), et un dispositif d'Entrée/Sortie local (via une liaison de Bus Série Universel (USB)). Pour un serveur, les extrémités 12 sont typiquement des dispositifs Ethernet gigabit (GbE) et IBE et des dispositifs de pont supplémentaires. Les communications entre la CPU 10 et le pont hôte 11 se passent via un bus frontal 14. Le bus PCI Express 17 comporte une matrice de commutation 17a et des liaisons 17b, au moyen desquelles de nombreuses extrémités PCI 45 peuvent être connectées. La matrice de commutation 17a délivre une sortance à partir du pont hôte 11 vers les liaisons 17b, et fournit une mise à l'échelle de la liaison. La "Mise à l'échelle d'une liaison" signifie que la largeur de bande disponible du bus PCI Express 17 est allouée, de sorte qu'un nombre prédéterminé de liaisons 17b, chacune ayant une taille conforme aux normes de l'architecture de PCI Express, sont physiquement achemi- nées vers les extrémités 18. Chaque liaison 17b comporte une ou plusieurs voies. Une liaison ayant une voie unique (désignée comme ayant une largeur xl) a deux paires différentielles de tension faible; il s'agit d'une connexion série simplex double entre deux dispositifs. Une transmission de données entre les deux dispositifs est simultanée dans les deux directions. Les performances échelonnables sont obtenues via des largeurs de liaison plus larges (xl, x2, x4, x8, x16, x32). Les liaisons sont mises à l'échelle symétriquement, avec le même nombre de voies dans chaque direction. Les extrémités PCI 18 peuvent être des dispositifs périphériques ou des puces, physiquement connectés en utilisant des fentes de carte ou d'autres mécanismes de connexion. Les extrémités particulières 45 connectées au bus PCI Express 17 dépendent du type d'application du système 100. Pour un système informatique de bureau, des exemples d'extrémités PCI typiques 18 sont les adaptateurs d'accueil mobiles, les adaptateurs Ethernet, et d'autres dispositifs additionnels. Pour une plate-forme serveur, les extrémités 45 peuvent être des connexions Ethernet gigabit, et une fonctionnalité de commutation supplémentaire pour des interconnexions d'entrée/sortie et de grappe. Pour une plate- forme de communications, les extrémités 18 peuvent être des cartes de lignes. Dans un bus PCI Express classique 17, la matrice de commutation 17a est un élément logique implémenté sous la forme d'un composant séparé ou une partie d'un composant qui inclut un pont hôte 11. Comme décrit ci-dessous, dans la présente invention, le bus PCI Express 17 fonc- tionne conjointement avec un circuit de commutation et de commande supplémentaire 19. Ce circuit 19 détecte l'état des extrémités 45 et est capable de commuter des liaisons à partir d'une extrémité vers une autre. La figure 2 est une vue partielle du système 100, et illustre une reconfiguration dynamique de liaisons PCI Express 17b conformément à la présente invention. Chaque liaison 17b est illustrée sous la forme de deux paires de signaux, une paire de transmission et une paire de réception. Les paires de transmission sont identifiées par des signaux T et les paires de réception par des signaux R. Des fentes 23 et 24 sont conçues pour connecter des extrémités de type cartes 45. Bien que seules deux fentes soient représentées, un nombre quelconque de con-figurations de fente sont possibles en fonction de l'échelle voulue (xl, x4, etc.) des liaisons. Les fentes 23 et 24 représentent des emplacements physiques, typiquement dans le châssis de l'ordinateur du système 100, où des cartes de divers dispositifs d'entrée/sortie peu-vent être installées. Dans d'autres modes de réalisation, le système 100 peut avoir une ou plusieurs connexions de puce en plus des connexions de fente ou à la place de celles-ci. En général, le terme "connexion d'extrémité" peut être utilisé pour faire référence collectivement à la connexion pour des puces, des cartes, ou tout autre type d'extrémité. Dans l'exemple de la figure 1, la fente 23 est configurée avec une largeur de liaison x4 (Liaison A). La fente 24 est configurée avec une largeur de liaison x4 (Liaison B). La reconfiguration est accomplie en utilisant des commutateurs 25 et 26 et un contrôleur de configuration de liaison 27. On doit comprendre que la figure 2 est un exemple, et que de nombreuses variations différentes du circuit de commutation et de commande sont possibles, avec des nombres variables de liaisons, fentes, et commutateurs, et diverses largeurs de liaison. Le contrôleur de configuration de liaison 27 détecte si les fentes 23 et 24 sont équipées (en cours d'utilisation). Du fait que le bus PCI 40 permet aux fen- tes d'être "connectées à chaud" et "remplacées à chaud", cette détection est dynamique dans le sens où à chaque fois qu'un dispositif est installé ou désinstallé dans une fente 23 ou 24, le contrôleur 27 détecte immédiate-ment cet événement. Le contrôleur de configuration de liaison 27 peut être implémenté muni d'un dispositif de logique programmable, et peut être un circuit logique autonome ou peut être intégré avec une autre logique système. Par exemple, le contrôleur de configuration de liaison peut être inté- gré dans le pont hôte 20. Si l'état des fentes (équipées ou non-équipées) change, le contrôleur 27 délivre un signal aux commutateurs 25 et 26. Les commutateurs 25 et 26 peuvent être implémentés par des dispositifs de commutation à vitesse élevée. Le contrôleur de liaison 27, les commutateurs 25 et 26 peuvent être intégrés avec un autre circuit, tel que le contrôleur 27 et/ou le pont hôte 20. Dans l'exemple de la figure 2, la Liaison B a un commutateur 25 sur ses voies de transmission et un commu- tateur 26 sur ses voies de réception. Les commutateurs 25 et 26 sont tous deux opérationnels pour commuter la Liai-son B vers la fente 23 ou la fente 24. Si la Liaison B est commutée vers la fente 23, la fente 23 reçoit une liaison x8. Si la Liaison B est commutée vers la fente 24, la fente 24 reçoit une liaison x4. On suppose que des connexions physiques appropriées entre les commutateurs 25 et 26 et la fente 23 ont été effectuées de sorte que la commutation entre les autres trajets est possible. Dans l'exemple, la Fente 23 est équipée et la fente 24 n'est pas équipée. Cet état a été détecté par le contrôleur 27, qui a accordé les commutateurs 25 et 26 pour commuter toute la Liaison B vers la fente 23. La figure 3 illustre un autre exemple de fonctionnement de la présente invention. Dans cet exemple, deux fentes 33 et 34 sont équipées. Le système a été con-figuré avec trois liaisons x4. Une Liaison A est une liaison x4 et est acheminée vers la fente 33. Une Liaison B est également une liaison x4 et est acheminée vers la Fente B. Une Liaison C est une liaison x4, et est achemi- née vers des commutateurs 35 et 36, ce qui la rend une liaison "commutable". Le contrôleur 27 a détecté que les deux fentes 33 et 34 sont équipées, mais a également détecté que la fente 33 requiert une liaison x8 et que la fente 34 re- quiert uniquement une liaison x4. En réponse, le contrôleur 27 a délivré un signal de commande aux commutateurs 35 et 36 de sorte que la Liaison C est acheminée vers la fente 33, la rendant ainsi une fente x8. Pour cet exemple, on suppose que les fentes équipées de cartes 33 et 34 ont certains moyens pour informer le contrôleur 27 (directement ou via le système d'exploitation du système 100) quant à leurs besoins en largeur de bande. La figure 4 illustre un troisième exemple, où des commutateurs sont utilisés pour reconfigurer une liaison vers une extrémité de sorte que seule une partie de la liaison est réacheminée. Dans l'exemple de la figure 4, les reconfigurations existantes de la fente 43 et de la fente 44 sont x4 et x8 respectivement. Cependant, une extrémité x8 a été placée dans la fente 43 et une extrémité x4 a été placée dans la fente 44. Le contrôleur 27 a détecté l'état et les besoins en largeur de bande des deux fentes, et a actionné les commutateurs 45 et 46 de sorte qu'une partie de la Liaison B soit réacheminée vers la fente 43. Dans une variante de cet exemple, la fente 44 peut être non-équipée et la Liaison B commutée de manière à ce qu'elle soit divisée en un trajet x4 vers la fente 43 et un trajet x4 vers une certaine autre extrémité. Les exemples décrits ci-dessus accomplissent une "reconfiguration" dans le sens où ils réacheminent des liaisons existantes, c'est-à-dire des liaisons qui ont déjà été physiquement acheminées vers diverses extrémités sur le bus. En l'absence de la présente invention, le bus PCI Express agit conformément à une configuration de liaison qui était établie au moment de l'initialisation du système 100. En outre, le procédé et le circuit des exemples décrits ci-dessus sont "dynamiques" dans le sens où la détection de l'état et la commutation ont lieu pendant que le système 100 est sous tension (durant le lancement) et pendant que le système d'exploitation s'exé- cute. Par conséquent, la détection d'état est celle de l'étant en temps- réel (courant) d'une extrémité. La détection et la commutation de la présente invention fonctionnent sur des liaisons qui ont été préalablement mises à l'échelle conformément aux fonctionnalités de mise à l'échelle d'un bus PCI Express. Il s'agit d'une reconfi- guration dynamique, par comparaison à la configuration statique résultant de la mise à l'échelle. Dans les exemples cités ci-dessus, le contrôleur 27 détecte à la fois l'état des fentes et délivre des si- finaux de commande aux commutateurs de configuration. Dans d'autres modes de réalisation, l'une ou les deux de ces fonctions peut être effectuée par le système d'exploitation du système 100, tel que par son système de base d'entrées/sorties (BIOS). C'est-à-dire que le système BIOS peut être programmé pour détecter l'état des fentes sur son bus PCI Express 40 et/ou pour commuter des voies en réponse à l'état. Par conséquent, dans divers modes de réalisation, les fonctions de détection et de commutation de la présente invention peuvent être commandées par des moyens matériels ou logiciels. La reconfiguration peut être utile sans les aspects de détection "dynamique" de la présente invention. En d'autres termes, il peut exister des situations où il serait souhaitable de réacheminer manuellement des liai- sons de bus PCI Express existantes. Par exemple, une carte nécessitant une liaison x8 peut physiquement loger dans une fente dans un châssis qui a une liaison x4. La carte x8 peut être commutée avec une carte x4 et leurs liaisons réacheminées. REVENDICATIONS 1. Procédé pour reconfigurer des liaisons (17b) d'un bus PCI Express (17) d'un système de traitement d'informations (100), les liaisons (17b) étant acheminées vers des extrémités (12, 18) sur le bus (17), caractérisé en ce qu'il comporte les étapes consistant à : détecter l'état d'une ou de plusieurs des extrémités (12, 18), et commuter la totalité ou une partie d'une liaison (17b) à partir d'une extrémité (12, 18) vers une autre extrémité (12, 18), sur la base du résultat de l'étape de détection. 2. Procédé selon la revendication 1, caractérisé en ce que l'étape de détection est effectuée en détectant si une extrémité (12, 18) est équipée. 3. Procédé selon la revendication 2, caractérisé en ce que l'étape de commutation est effectuée en commu- tant une liaison (17b) à partir d'une extrémité non-équipée (12, 18) vers une ou plusieurs extrémités équipées (12, 18). 4. Procédé selon la revendication 1, caractérisé en ce que l'étape de détection est effectuée en détectant les impératifs en largeur de bande des dispositifs installés à des extrémités équipées (12, 18). 5. Procédé selon la revendication 1, caractérisé en ce que l'étape de commutation est effectuée à l'aide de commutateurs externes (25, 26, 35, 36, 45, 46) à la matrice de commutation (17a) du bus PCI Express (17). 6. Procédé selon la revendication 1, caractérisé en ce que le système de traitement d'informations (100) a un système d'exploitation, et l'étape de détection est effectuée en utilisant un système externe au système d'exploitation. 7. Procédé selon la revendication 1, caractérisé en ce que le système de traitement d'informations (100) a un système d'exploitation, et l'étape de détection est effectuée en utilisant le système d'exploitation. 8. Procédé selon la revendication 1, caractérisé en ce que l'étape de commutation est effectuée par une commutation vers plusieurs autres extrémités (12, 18). 9. Procédé selon la revendication 1, caractérisé 15 en ce que le système de traitement d'informations (100) est en fonctionnement durant les étapes de détection et de commutation. 10. Circuit de reconfiguration de liaisons (19) d'un bus PCI Express (17) d'un système de traitement d'informations (100), les liaisons (17b) étant acheminées vers des extrémités (12, 18) sur le bus (17), caractérisé en ce qu'il comporte: un contrôleur (27) détecter l'état d'une ou de 25 plusieurs extrémités (12, 18), et des commutateurs (25, 26, 35, 36, 45, 46) associés à au moins l'une des liaisons (17b), opérationnels pour commuter la totalité ou une partie de cette liaison (17b) à partir d'une extrémité (12, 18) vers une autre extrémité (18), en réponse à un signal provenant du contrôleur (27) et pendant que le système de traitement d'informations (100) est en fonctionnement. 10 11. Circuit (19) selon la revendication 10, caractérisé en ce que le contrôleur (27) détecte si une extrémité (12, 18) est équipée. 12. Circuit (19) selon la revendication 11, caractérisé en ce que les commutateurs (25, 26, 35, 36, 45, 46) sont opérationnels pour commuter une liaison (17b) à partir d'une extrémité non-équipée (12, 18) vers une ou plusieurs extrémités équipées (12, 18). 13. Circuit (19) selon la revendication 10, caractérisé en ce que le contrôleur (27) détecte les besoins en largeur de bande des dispositifs installés à des extrémités équipées (12, 18). 14. Circuit (19) selon la revendication 10, caractérisé en ce que les commutateurs (25, 26, 35, 36, 45, 46) sont externes à la matrice de commutation (17a) du bus PCI Express (17). 15. Circuit (19) selon la revendication 10, caractérisé en ce que le système de traitement d'informations (100) a un pont hôte (11, 20), et en ce que le contrôleur (27) est intégré dans le pont hôte (11, 20). 16. Circuit (19) selon la revendication 10, caractérisé en ce que le signal provenant du contrôleur (27) est envoyé aux commutateurs (25, 26, 35, 36, 45, 46). 17 Circuit (19) selon la revendication 10, caractérisé en ce que le signal provenant du contrôleur (27) est émis via le système d'exploitation du système de traitement d'informations (100). 18. Système de traitement d'informations (100), caractérisé en ce qu'il comporte: une unité centrale de traitement {10), une mémoire (13) pour mémoriser un programme exé- cutable par l'unité centrale de traitement (10), un bus PCI Express (17) pour connecter des extrémités d'entrée/sortie (12, 18) au système (100), et ayant une matrice de commutation (17a) et des liaisons (17c) à partir du pont hôte (11, 20) vers les extrémités (12, 18), un pont hôte (11, 20) pour connecter la CPU (10), la mémoire (13), et le bus (17), et un circuit de reconfiguration de liaisons (19) pour reconfigurer les liaisons (17b) du bus PCI Express (17), et ayant un contrôleur (27) pour détecter l'état d'une ou de plusieurs extrémités (12, 18) et commutateurs (25, 26, 35, 36, 45, 46) associés à au moins l'une des liaisons (17b), opérationnels pour commuter la totalité ou une partie de cette liaison (17b) à partir d'une extrémité (12, 18) à une autre extrémité (18), en réponse à un signal provenant du contrôleur (27) et pendant que le système de traitement d'informations (100) est en fonctionnement. 19. Système (100) selon la revendication 18, caractérisé en ce que le contrôleur (27) détecte si une extrémité (12, 18) est équipée. 20. Système (100) selon la revendication 19, ca- ractérisé en ce que les commutateurs {25, 26, 35, 36, 45, 46) sont opérationnels pour commuter une liaison (17b) à partir d'une extrémité non-équipée (12, 18) vers une ou plusieurs extrémités équipées (12, 18). 21. Système (100) selon la revendication 18, caractérisé en ce que le contrôleur (27) détecte les besoins en largeur de bande des dispositifs installés aux extrémités équipées (12, 18). 22. Système (100) selon la revendication 18, caractérisé en ce que les commutateurs (25, 26, 35, 36, 45, 46) sont externes à la matrice de commutation (17a) du bus PCI Express (17). 23. Système (100) selon la revendication 18, caractérisé en ce que le contrôleur (27) est intégré dans le pont hôte (11, 20).