Cœur processeur à fréquence pi lotée et procédé de démarrage dudit cœur processeu r dans u n mode programmé.
L'invention concerne un cœur processeur à fréquence pilotée ainsi qu'un procédé de démarrage dudit cœur processeur dans un mode programmé. En particulier, l'invention s'applique aux cœurs processeurs embarqués dans des aéronefs.
Un cœur 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 cœur 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 cœur 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 cœur 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 cœur 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 cœur processeur. Dans ce contexte, une des caractéristiques d'un cœur processeur susceptible de modification non seulement en phase de conception mais aussi au cours du cycle de vie dudit cœur est la fréquence des composants compris dans le cœur processeur. La modification de la fréquence des composants compris dans le cœur processeur est généralement désigner par le terme de « Bridage / Débridage » d'un cœur processeur. En outre, en relation avec les contraintes préalablement énoncées, il est souhaitable que le « Bridage / Débridage » du cœur processeur puisse s'effectuer sans modification matérielle (« sans retrofit Hardware »).
Il est connu, pour réaliser un « Bridage / Débridage » d'un cœur processeur, d'inclure dans celui-ci des composants multiplicateurs de fréquence (PLL), et/ou des pilotes d'horloges comprenant des cavaliers
(« 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 cœur processeur. Ce qui se traduit notamment par une impossibilité de changement dynamique (c'est-à-dire en cours de 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 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 cœur 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 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 cœur processeur comportant au moins un processeur, une mémoire non volatile comprenant un programme de démarrage, un pont interconnectant des bus reliant les différents composants dudit cœur processeur. Le cœur 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 cœur 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 sensiblement à celle décrite par la configuration du mode choisi. Les signaux d'horloge pilotent les bus et/ou les composants dudit cœur 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 composant d'interface est adapté à choisir un mode par défaut.
Dans un mode de réalisation, le cœur 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 générer les signaux dont la fréquence correspondant sensiblement à celle décrite par la configuration du mode choisi.
Le cœur processeur peut recevoir un signal de protection, 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é. 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.
L'invention a aussi pour objet un procédé de démarrage d'un cœur 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 cœur processeur, un composant d'interface, la 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 cœur 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 : o une étape de mise sous tension du cœur processeur, les composants du cœur 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 ; 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
du mode sélectionné, lesdits signaux pilotant les bus et/ou les composants dudit cœur 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 cœur 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é.
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.
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 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 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 peut être totalement gérée au niveau matériel du cœur 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.
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 :
• la figure 1 , un synoptique du cœur processeur selon l'invention ;
• la figure 2, un schéma d'un procédé de démarrage du cœur processeur dans un mode programmé selon l'invention;
La figure 1 montre par un synoptique un cœur processeur selon l'invention. Le cœur 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 du cœur processeur. Le cœur 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 1 1 . Le cœur processeur peut aussi comporter des bus extérieurs 13, comme par exemple un ou plusieurs bus PCI. Le cœur processeur comporte une 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 cœur processeur comporte un composant d'interface 6 entre une horloge 5 (par exemple, un quartz), un bus de périphérique multiplexe 1 1 sur lequel est connecté notamment la mémoire non volatile 4 comportant le programme de 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 cœur processeur comporte un pont 2 chargé de gérer et d'interconnecter les bus dudit cœur.
Le programme de démarrage compris dans la mémoire non volatile 4 comprend les instructions nécessaires au démarrage du cœur 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 cœur processeur : un mode bridé, un mode débridé. La fréquence de fonctionnement des bus en
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 cœur 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 cœur 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 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 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 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 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 cœur 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é 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 générés ont une fréquence correspondant sensiblement à celle décrite dans
la configuration du mode sélectionné. Ces signaux d'horloge générés servent à piloter les bus et/ou les composants du cœur 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 configuration décrivant le mode bridé correspond à une fréquence de fonctionnement de 100 MHz pour le bus processeur 10, le bus mémoire 1 1 , 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 1 1 à fonctionner à 100 MHz. Ainsi, si la 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 possible de définir, si le cœur 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 1 1 à une vitesse différente du bus processeur 1.
La figure 2 illustre par un schéma un procédé de démarrage du cœur 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 cœur processeur selon l'invention (par exemple, celui illustré à la figure 1 ) dans un mode de fonctionnement donné. Dans une étape 20, le cœur processeur est mis sous tension. Les composants du cœur 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 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 composant d'interface 6 de l'information sur le mode choisie s'avère
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 cœur processeur. A partir de ces informations, dans 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 cœur 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 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 sélectionné. Ce signal est ensuite utilisé par les différents bus du cœur 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 autres composants peuvent alors démarrer dans une étape 27 dans le mode sélectionné, bridé ou non. Le cœur 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 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 sous tension.