Brevet FR2904129A1 — publié le 20080125

Coeur processeur à fréquence pilotée et procédé de démarrage dudit coeur processeur dans un mode programmé. L'invention concerne un coeur processeur à fréquence pilotée ainsi qu'un procédé de démarrage dudit coeur processeur dans un mode programmé. En particulier, l'invention s'applique aux coeurs processeurs embarqués dans des aéronefs. Un coeur processeur, connu aussi sous le nom de carte CPU, est une carte électronique embarquée comportant un processeur réalisant des calculs et des traitements. A titre d'exemple, un coeur processeur peut notamment être embarqué dans un système de type aéronef où il effectue un ensemble de calculs numériques spécifiques. Un coeur processeur, particulièrement dans le domaine aéronautique, réalise des tâches d'une grande criticité, comme par exemple la gestion des paramètres de vol, et doit en conséquence présenter une fiabilité importante. Pour répondre à ces contraintes, un coeur processeur est défini par un dossier de définition détaillé et validé, et doit faire l'objet d'une phase de validation/certification tant sur le plan conceptuel que matériel. Il en résulte notamment que chaque modification d'une caractéristique dudit coeur processeur doit faire l'objet d'une évolution du dossier de définition suivie d'une étude de risque et/ou d'impact sur sa fiabilité et celles des équipements connexes. Il est bien sûr à noter que de telles études ont un impact significatif sur le coût du coeur processeur. Dans ce contexte, une des caractéristiques d'un coeur processeur susceptible de modification non seulement en phase de conception mais aussi au cours du cycle de vie dudit coeur est la fréquence des composants compris dans le coeur processeur. La modification de la fréquence des composants compris dans le coeur processeur est généralement désigner par le terme de Bridage / Débridage d'un coeur processeur. En outre, en relation avec les contraintes préalablement énoncées, il est souhaitable que le Bridage / Débridage du coeur processeur puisse s'effectuer sans modification matérielle ( sans retrofit Hardware ). II est connu, pour réaliser un Bridage / Débridage d'un coeur processeur, d'inclure dans celui-ci des composants multiplicateurs de fréquence (PLL), et/ou des pilotes d'horloges comprenant des cavaliers 2904129 2 ( Clock drivers par pull-up/pull-down ). Malheureusement, une mise à jour ( retrofit ) matérielle est inévitable pour réaliser le changement de fréquence du coeur processeur. Ce qui se traduit notamment par une impossibilité de changement dynamique (c'est-à-dire en cours de 5 fonctionnement) de configuration, ainsi que les inconvénients préalablement exposés. Dans le domaine informatique en particulier celui des ordinateurs personnels, les systèmes de base d'entrée/sortie (BIOS) peuvent être pourvus dans certains cas d'un dispositif intégré à la carte mère permettant 10 de changer la fréquence processeur et la fréquence bus. Cependant cette solution ne présente pas des caractéristiques de sécurité et fiabilité suffisante pour un coeur processeur embarqué. En effet, si une valeur erronée est écrite via le BIOS avant le redémarrage de l'ordinateur, celui-ci sera incapable de démarrer à nouveau et sera dans un état instable et 15 imprévisible. L'invention a notamment pour but de pallier les inconvénients précités. A cet effet, l'invention a pour objet un coeur processeur comportant au moins un processeur, une mémoire non volatile comprenant un 20 programme de démarrage, un pont interconnectant des bus reliant les différents composants dudit coeur processeur. Le coeur processeur comporte un composant d'interface, une mémoire non volatile comportant au moins deux configurations en fréquence correspondant chacune à un mode de fonctionnement des bus et/ou des composants dudit 25 coeur processeur. La mémoire non volatile comporte une information permettant de déterminer quel mode de fonctionnement doit être utilisé. Ladite information est lue par le composant d'interface pour déterminer le mode choisi. Le composant d'interface génère un ou plusieurs signaux d'horloge. La fréquence desdits signaux d'horloge générés correspond 30 sensiblement à celle décrite par la configuration du mode choisi. Les signaux d'horloge pilotent les bus et/ou les composants dudit coeur processeur. Avantageusement, lorsque la lecture par le composant d'interface de l'information sur le mode choisie s'avère impossible ou erronée, le 35 composant d'interface est adapté à choisir un mode par défaut. 2904129 3 Dans un mode de réalisation, le coeur processeur comporte une horloge délivrant un signal d'horloge de référence. La fréquence dudit signal d'horloge de référence est alors multiplié par le composant d'interface pour 5 générer les signaux dont la fréquence correspondant sensiblement à celle décrite par la configuration du mode choisi. Le coeur processeur peut recevoir un signal de protection, ledit signal autorisant ou non en fonction de sa valeur l'écriture de l'information 10 permettant de déterminer quel mode de fonctionnement doit être utilisé. L'information permettant de déterminer quel mode de fonctionnement doit être utilisé est par exemple modifiable par programmation de la mémoire non volatile et/ou par le processeur. 15 L'invention a aussi pour objet un procédé de démarrage d'un coeur processeur comportant au moins une mémoire non volatile comprenant un programme de démarrage, un pont interconnectant des bus reliant les différents composants dudit coeur processeur, un composant d'interface, la mémoire non volatile comportant au moins deux configurations en fréquence 20 correspondant chacune à un mode de fonctionnement des bus et/ou des composants dudit coeur processeur. La mémoire non volatile comporte une information permettant de déterminer quel mode de fonctionnement doit être utilisé, ladite information étant lue par le composant d'interface pour déterminer le mode choisi. Le procédé comporte les étapes suivantes : 25 o une étape de mise sous tension du coeur processeur, les composants du coeur processeur étant maintenus par le composant d'interface dans un état inhibé ; o une étape où le composant d'interface interdit la remise à zéro de la mémoire non volatile ; 30 o une étape d'accès en lecture par le composant d'interface aux informations relatives au mode de fonctionnement sélectionné et la configuration associée contenus dans la mémoire non volatile ; o une étape de génération par le composant d'interface d'un ou plusieurs signaux dont la fréquence correspond à la configuration 2904129 4 du mode sélectionné, lesdits signaux pilotant les bus et/ou les composants dudit coeur processeur ; o une étape de désinhibition par le composant d'interface des différents composants. Avantageusement, après l'étape de mise sous tension du coeur processeur, le procédé comporte une étape de temporisation jusqu'à ce que le signal d'horloge de référence réponde à certains critères définis de stabilité. 10 Avantageusement, si la lecture par le composant d'interface de l'information sur le mode choisie à l'étape d'accès en lecture s'avère impossible ou erronée, le composant d'interface choisit à l'étape en lieu et place de l'information non accessible ou erronée un mode par défaut. 15 Dans un mode de réalisation, après l'étape de génération par le composant d'interface d'un ou plusieurs signaux dont la fréquence correspond à la configuration du mode sélectionné, le procédé comporte une étape de temporisation jusqu'à ce que les bus atteignent de manière stable 20 leur fréquence cible. Dans un autre mode de réalisation, à l'étape de génération de signaux par le composant d'interface, celui-ci détermine des facteurs multiplicatifs à appliquer à la fréquence d'un signal d'horloge de référence 25 pour obtenir un ou plusieurs signaux dont la fréquence correspond celle décrite dans la configuration correspondant au mode sélectionné. L'invention a notamment pour avantages qu'elle permet de sécuriser et de fiabiliser la gestion des changements de fréquences bus. Elle 30 peut être totalement gérée au niveau matériel du coeur processeur. L'invention autorise un contrôle matériel de la configuration de redémarrage avec une configuration par défaut toujours valide, y compris en cas d'effacement de la zone de mémorisation de la configuration. 5 2904129 5 D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard des dessins annexés qui représentent : 5 • la figure 1, un synoptique du coeur processeur selon l'invention ; • la figure 2, un schéma d'un procédé de démarrage du coeur processeur dans un mode programmé selon l'invention; 10 La figure 1 montre par un synoptique un coeur processeur selon l'invention. Le coeur processeur à fréquence pilotée selon l'invention comporte notamment au moins un processeur 1. Le processeur 1 est adapté notamment à effectuer des calculs numériques. Le processeur 1 communique via au moins un bus processeur 10 vers les autres composants 15 du coeur processeur. Le coeur processeur peut encore comporter de la mémoire vive 3, par exemple de la mémoire de type DDR-SDRAM. La mémoire vive 3 est accessible par l'intermédiaire d'un bus mémoire 11. Le coeur processeur peut aussi comporter des bus extérieurs 13, comme par exemple un ou plusieurs bus PCI. Le coeur processeur comporte une 20 mémoire non volatile 4 comportant le programme de démarrage. La mémoire non volatile 4 peut par exemple être un banc de mémoires FLASH. Le coeur processeur comporte un composant d'interface 6 entre une horloge 5 (par exemple, un quartz), un bus de périphérique multiplexé 11 sur lequel est connecté notamment la mémoire non volatile 4 comportant le programme de 25 démarrage, et éventuellement un signal de protection 7 du programme de démarrage. Le composant d'interface 6 peut être un composant programmable. Le coeur processeur comporte un pont 2 chargé de gérer et d'interconnecter les bus dudit coeur. 30 Le programme de démarrage compris dans la mémoire non volatile 4 comprend les instructions nécessaires au démarrage du coeur processeur. La mémoire non volatile 4 comporte au moins deux configurations en fréquence, correspondant chacune à un mode de fonctionnement des bus et/ou des composants du coeur processeur : un 35 mode bridé, un mode débridé. La fréquence de fonctionnement des bus en 2904129 6 mode débridé est supérieure, voire égale, au mode bridé. La mémoire non volatile 4 comprend une information, contenue par exemple dans des emplacements mémoires, permettant de déterminer quel mode de fonctionnement doit être utilisé pour le prochain démarrage du coeur 5 processeur. La configuration relative à un mode de fonctionnement donné décrit notamment la fréquence à laquelle doivent fonctionner les bus et éventuellement, si cela s'avère pertinent, les composants du coeur processeur. Le signal de protection 7 autorise ou non en fonction de sa valeur l'écriture de l'information permettant de déterminer quel mode de 10 fonctionnement doit être utilisé. Par exemple, lorsque le signal de protection 7 est reçu, il est possible lire mais pas d'écrire l'information permettant de déterminer quel mode de fonctionnement doit être utilisé. Réciproquement, lorsque le signal de protection 7 n'est pas reçu, il est possible d'écrire ladite information. L'information permettant de déterminer quel mode de 15 fonctionnement doit être utilisé est modifiable par programmation de la mémoire non volatile 4 et/ou par le processeur 1. Le composant d'interface 6 reçoit un signal d'horloge de référence 5 provenant de l'horloge. Le composant d'interface 6 lit l'information sur le 20 mode choisi comprise dans la mémoire non volatile 4. Si la lecture de l'information sur le mode choisie s'avère impossible ou erronée (la détection pouvant par exemple être assurer par un mécanisme de contrôle d'erreur de type contrôle de redondance cyclique ou selon l'expression anglo-saxonne Cyclic Redundancy Check ou encore par vérification de l'appartenance des 25 valeurs lues à une plage de valeur prédéfinie), le composant d'interface 6 choisit un mode par défaut, correspondant par exemple à la fréquence la plus basse des différents bus et/ou composants du coeur processeur. Le mode par défaut peut notamment être programmé au sein même du composant d'interface 6. Ce mécanisme assure un niveau de sécurité 30 supplémentaire, évitant notamment l'utilisation d'une valeur inscrite par erreur ou inexacte dans la mémoire non volatile 4. En fonction du mode sélectionné et de la configuration associée compris dans la mémoire non volatile 4, le composant d'interface 6 génère un ou plusieurs signaux d'horloge à partir du signal d'horloge de référence 5. Ces signaux d'horloges 35 générés ont une fréquence correspondant sensiblement à celle décrite dans 2904129 7 la configuration du mode sélectionné. Ces signaux d'horloge générés servent à piloter les bus et/ou les composants du coeur processeur. Ces signaux d'horloge seront alors utilisés pour chaque bus et/ou composant et détermineront alors leur fréquence de fonctionnement. Ainsi, si la 5 configuration décrivant le mode bridé correspond à une fréquence de fonctionnement de 100 MHz pour le bus processeur 10, le bus mémoire 11, le composant d'interface génèrera un signal de fréquence sensiblement égal à 100 MHz, forçant ainsi le processeur 1, le bus processeur 10, la mémoire vive 3 et le bus mémoire 11 à fonctionner à 100 MHz. Ainsi, si la 10 configuration décrivant le mode débridé correspond à une fréquence de fonctionnement de 133 MHz pour le bus processeur 10, le bus mémoire 11, le composant d'interface génèrera un signal de fréquence sensiblement égal à 133 MHz, forçant ainsi le processeur 1, le bus processeur 10, la mémoire vive 3 et le bus mémoire 11 à fonctionner à 133 MHz. Il est bien entendu 15 possible de définir, si le coeur processeur peut le supporter par ailleurs, des fréquences de bus différentes pour un même mode donné selon les composants, et faire fonctionner le bus mémoire 11 à une vitesse différente du bus processeur 1. La figure 2 illustre par un schéma un procédé de démarrage du 20 coeur processeur dans un mode programmé selon l'invention. Les éléments identiques aux éléments déjà présentés sur les autres figures portent les mêmes références. Le procédé de démarrage selon l'invention décrit la séquence de démarrage d'un coeur processeur selon l'invention (par exemple, celui illustré à la figure 1) dans un mode de fonctionnement donné. 25 Dans une étape 20, le coeur processeur est mis sous tension. Les composants du coeur processeur (comme le processeur 1, le pont 2,...) sont maintenus dans un état inhibé (ou selon l'expression anglo-saxonne reset ). Une étape 21 temporise jusqu'à ce que le signal d'horloge émis par l'horloge 5 répondent à certains critères définis de stabilité. Le 30 composant d'interface 6 interdit dans une étape 22 la remise à zéro de la mémoire non volatile 4 comprenant le programme de démarrage. Puis dans une étape 23, le composant d'interface 6 accède en lecture aux informations contenues dans la mémoire non volatile 4, en particulier le mode de fonctionnement sélectionné et la configuration associée. Si la lecture par le 35 composant d'interface 6 de l'information sur le mode choisie s'avère 2904129 8 impossible ou erronée, le composant d'interface 6 choisit à l'étape 23 en lieu et place de l'information non accessible ou erronée un mode par défaut, correspondant par exemple à la fréquence la plus basse des différents bus et/ou composants du coeur processeur. A partir de ces informations, dans 5 une étape 24, le composant d'interface 6 génère un ou plusieurs signaux dont la fréquence correspond à la configuration du mode sélectionné, lesdits signaux pilotant les bus et/ou les composants dudit coeur processeur. Pour cela, le composant d'interface détermine le facteur multiplicatif à appliquer à la fréquence du signal d'horloge 5 pour obtenir un signal dont la fréquence 10 correspond à la configuration correspondant au mode sélectionné. Ainsi, ce facteur multiplicatif dépend de la configuration du mode sélectionné et est donc différent selon que le mode actif sélectionné est le mode bridé ou le mode débridé. A partir, de ce facteur multiplicatif, le composant d'interface 6 génère un signal dont la fréquence correspond à la configuration du mode 15 sélectionné. Ce signal est ensuite utilisé par les différents bus du coeur processeur. Dans une étape 25 de temporisation, une temporisation permet d'attendre que les bus atteigne de manière stable leur fréquence cible. Puis, le composant d'interface 6 désinhibe les différents composants (processeur 1, pont 2, ...), dans une étape 26. Le processeur 1, le pont 2, les bus, et les 20 autres composants peuvent alors démarrer dans une étape 27 dans le mode sélectionné, bridé ou non. Le coeur processeur est alors utilisable par le système d'exploitation dans le mode de fonctionnement choisi. Le mode de fonctionnement peut être changer vers un autre mode. Pour effectuer ce changement, il est possible par exemple de retirer la 25 protection de la mémoire non volatile comportant le programme de démarrage en modifiant en entrée le signal de protection 7 pour permettre l'écriture. Le mode choisi peut alors être réinscrit soit par programmation (par exemple en utilisant un câble de type JTAG) soit via le processeur 1. La nouvelle configuration ne sera prise en compte qu'après une coupure/mise 30 sous tension. REVENDICATIONS 1. Coeur processeur comportant au moins un processeur (1), une mémoire non volatile (4) comprenant un programme de démarrage, un pont (2) interconnectant des bus (10, 11, 12, 13) reliant les différents composants (1, 3, 4, 6) dudit coeur processeur, caractérisé en ce qu'il comporte un composant d'interface (6), une mémoire non volatile (4) comportant au moins deux configurations en fréquence correspondant chacune à un mode de fonctionnement des bus (10, 11, 12, 13) et/ou des composants (1, 3, 4, 6) dudit coeur processeur, la mémoire non volatile (4) comportant une information permettant de déterminer quel mode de fonctionnement doit être utilisé, ladite information étant lue par le composant d'interface (6) pour déterminer le mode choisi, le composant d'interface (6) générant un ou plusieurs signaux d'horloge, la fréquence desdits signaux d'horloge générés correspondant sensiblement à celle décrite par la configuration du mode choisi, lesdits signaux d'horloge pilotant les bus (10, 11, 12, 13) et/ou les composants (1, 3, 4, 6) dudit coeur processeur. 2. Coeur processeur selon la revendication 1 caractérisé en ce que, lorsque la lecture par le composant d'interface (6) de l'information sur le mode choisie s'avère impossible ou erronée, le composant d'interface (6) est adapté à choisir un mode par défaut. 3. Coeur processeur selon l'une des quelconques revendications 1 à 2 caractérisé en ce qu'il comporte une horloge délivrant un signal d'horloge de référence (5), la fréquence dudit signal d'horloge de référence (5) étant multipliée par le composant d'interface (6) pour générer les signaux dont la fréquence correspond sensiblement à celle décrite par la configuration du mode choisi. 4. Coeur processeur selon l'une des quelconques revendications 1 à 3, caractérisé en ce qu'il reçoit un signal de protection (7), ledit signal autorisant ou non en fonction de sa valeur l'écriture de l'information permettant de déterminer quel mode de fonctionnement doit être utilisé 2904129 10 5. Coeur processeur selon la revendication 4 caractérisé en ce que l'information permettant de déterminer quel mode de fonctionnement doit être utilisé est modifiable par programmation de la mémoire non volatile (4) et/ou par le processeur (1). 5 6. Procédé de démarrage d'un coeur processeur comportant au moins une mémoire non volatile (4) comprenant un programme de démarrage, un pont (2) interconnectant des bus (10, 11, 12, 13) reliant les différents composants (1, 3, 4, 6) dudit coeur processeur, caractérisé en ce que, le coeur processeur 1 o comportant aussi un composant d'interface (6), la mémoire non volatile (4) comportant au moins deux configurations en fréquence correspondant chacune à un mode de fonctionnement des bus (10, 11, 12, 13) et/ou des composants (1, 3, 4, 6) dudit coeur processeur, la mémoire non volatile (4) comportant une information permettant de déterminer quel mode de 15 fonctionnement doit être utilisé, ladite information étant lue par le composant d'interface (6) pour déterminer le mode choisi, il comporte les étapes suivantes : o une étape (20) de mise sous tension du coeur processeur, les composants du coeur processeur (1, 3) étant maintenus par le 20 composant d'interface dans un état inhibé ; o une étape (22) où le composant d'interface (6) interdit la remise à zéro de la mémoire non volatile (4) ; o une étape (23) d'accès en lecture par le composant d'interface (6) aux informations relatives au mode de fonctionnement sélectionné 25 et la configuration associée contenus dans la mémoire non volatile (4) o une étape (24) de génération par le composant d'interface (6) d'un ou plusieurs signaux dont la fréquence correspond à la configuration du mode sélectionné, lesdits signaux pilotant les bus 30 (10, 11, 12, 13) et/ou les composants (1, 3, 4, 6) dudit coeur processeur; o une étape (26) de désinhibition par le composant d'interface (6) des différents composants (1, 2). 2904129 11 7. Procédé selon la revendication 6 caractérisé en ce qu'après l'étape (20) de mise sous tension du coeur processeur, le procédé comporte une étape (21) de temporisation jusqu'à ce que le signal d'horloge de référence (5) répondent à certains critères définis de stabilité. 5 8. Procédé selon l'une des quelconques revendications 6 à 7 caractérisé en ce que si la lecture par le composant d'interface (6) de l'information sur le mode choisie à l'étape (23) d'accès en lecture s'avère impossible ou erronée, le composant d'interface (6) choisit à l'étape (23) en lieu et place de 10 l'information non accessible ou erronée un mode par défaut. 9. Procédé selon l'une des quelconques revendications 6 à 8 caractérisé en ce qu'après l'étape (24) de génération par le composant d'interface (6) d'un ou plusieurs signaux dont la fréquence correspond à la configuration du 15 mode sélectionné, le procédé comporte une étape (25) de temporisation jusqu'à ce que les bus atteignent de manière stable leur fréquence cible. 10. Procédé selon l'une des quelconques revendications 6 à 10 caractérisé en ce qu'à l'étape (24) de génération de signaux par le composant d'interface 20 (6), celui-ci (6) détermine des facteurs multiplicatifs à appliquer à la fréquence d'un signal d'horloge de référence (5) pour obtenir un ou plusieurs signaux dont la fréquence correspond celle décrite dans la configuration correspondant au mode sélectionné. 25