Processeurs asynchrones, ascenseurs embouteillés et emploi du temps

Publié le 01 mai 2009 par Lbloch
D'autres articles sur l'industrie informatique :
L'industrie micro-électronique arrive-t-elle à maturité ?,
Industrie électronique et informatique américaine,
Comment Intel devint hégémonique.

#Sommaire-

Cycle de processeur, fréquence d'horloge

Qu'est-ce qu'un cycle de processeur ? Toutes les opérations dans un microprocesseur sont synchronisées par une horloge, ce qui permet de savoir à quel moment le résultat d'une micro—opération va être disponible. J'appelle micro—opération une opération moins complexe qu'une instruction, par exemple une étape d'instruction. Il est nécessaire de savoir à quel instant précis telle modification de tel registre sera disponible et stable, pour pouvoir enchaîner la micro—opération suivante : c'est le rôle de l'horloge.

Comment fonctionne l'horloge du processeur ? Elle repose sur un dispositif à quartz, qui régule un circuit oscillant selon une fréquence extrêmement précise. À chaque fin de période le circuit oscillant émet un signal. On rappelle que la période est l'inverse de la fréquence : si un circuit a une période de 1/50 de seconde, on dit que sa fréquence est de 50 Herz (Hz). La sortie du circuit logique correspondant à une micro—opération est couplée à une entrée d'un circuit ET dont l'autre entrée est couplée à l'horloge. À chaque \emphtop d'horloge la porte ET délivre un résultat. Ainsi toutes les opérations sont synchronisées. Ce que l'on appelle la fréquence d'un processeur est la fréquence de son horloge.

Processeurs asynchrones

Ce cadencement des opérations simplifie grandement la conception des circuits, mais on peut imaginer qu'il fait perdre du temps à certains endroits : toutes les micro-opérations ne durent pas le même temps et certains résultats obtenus ne sont pas disponibles parce qu'on attend le top d'horloge. Aussi existe-t-il un domaine de recherche prometteur, les processeurs asynchrones. La synchronisation est remplacée par la signalisation : un élément de circuit qui obtient un résultat prévient le consommateur de ce résultat par l'émission d'un signal, ce qui nous place dans une logique assez semblable à celle des protocoles de réseau, où l'on ignore toujours ce qui se passe « à l'autre bout ».

Parmi les avantages collatéraux fournis par l'asynchronisme, signalons une consommation électrique et des interférences électromagnétiques réduites. En effet, la simultanéité de déclenchement de toutes les opérations provoque des pointes de consommation électrique que l'asynchronisme permettrait de répartir dans le temps. L'observation du fonctionnement interne des processeurs modernes, dont les transistors se comptent en centaines de millions, révèle que la propagation à tous les circuits du signal d'horloge absorbe près de la moitié de l'énergie électrique dépensée.

Comme beaucoup de techniques avancées, les processeurs asynchrones sont aujourd'hui un domaine assez confidentiel, mais qui pourrait connaître une grande expansion au fur et à mesure que les progrès des processeurs classiques deviendront plus laborieux.

L'université et ses ascenseurs, métaphore du processeur

L'université où je travaille est logée dans un bâtiment unique de six étages, desservis par une unique batterie d'ascenseurs. La plupart des cours y sont donnés par petits groupes, dans une multitude de salles dispersées dans les étages. Inutile de dire qu'aux heures de changement de cours les ascenseurs sont saturés ; si on compare cette situation au fonctionnement d'un processeur dont les circuits logiques seraient les salles de cours et dont l'alimentation électrique serait la batterie d'ascenseurs chargée d'acheminer l'énergie péadagogique sous la forme d'un flux d'étudiants, on pourrait dire qu'il s'agirait d'un processeur synchrone : à 10h ou à 14h, tout le monde commute ensemble, et c'est la pagaille.

Une solution m'est venue à l'esprit : que chaque cours commence et finisse à des heures décalées par rapport aux autres. Par exemple, le cours de macroéconomie serait de 9h 51 à 11h 43, et celui d'analyse fonctionnelle de 10h 07 à 12h 14. Ainsi, les ascenseurs seraient beaucoup moins embouteillés. Mais ce qui deviendrait ingérable, ce serait l'emploi du temps et le planning d'utilisation des salles, qui sont déjà en l'état un problème très compliqué, et même NP-complet aux dires des logiciens et des spécialistes de recherche opérationnelle. Eh bien c'est exactement la raison pour laquelle les processeurs asynchrones ne sont encore que des objets de recherche : l'ordonnancement des opérations y est d'une complexité telle que les bénéfices attendus par ailleurs en sont annulés.

System-on-a-chip (SOC) : asynchronisme et économie d'énergie

L'accroissement de la densité des circuits électroniques permet aujourd'hui de produire des composants nommés System-on-a-chip ou SOC, qui réunissent sur une puce unique un ou plusieurs microprocesseurs, de la mémoire, des circuits pour le traitement du signal, les communications filaires ou radio-électriques, le traitement d'image, etc. Les SOC ne servent pas, du moins en général pas, à fabriquer des ordinateurs au sens strict du terme, mais il est très probable qu'il y en ait dans votre appareil photo numérique, dans votre téléphone portable, dans votre voiture ou dans votre machine à laver, sans oublier votre modem-routeur ADSL.

L'assemblage de ce type de système est un processus assez fascinant. Les entreprises qui dominent le marché des processeurs intégrés aux SOC, telles le britannique ARM ou l'américain Tensilica, n'ont aucune usine et ne produisent aucun objet matériel, ils vendent de la propriété intellectuelle, c'est-à-dire des dessins de processeurs conçus par leurs ingénieurs et les droits d'usage associés, livrés sur CD-ROM par exemple. Le « dessin » est fourni sous forme d'un texte écrit dans un langage de description de matériel, dont les plus connus sont Verilog et VHDL, qui décrit les opérations des circuits selon un procédé dit Register transfer level (RTL).

L'intégrateur utilise les descriptions RTL des différents composants dont il a acheté les dessins (ou qu'il a conçus lui-même) pour obtenir, au moyen d'un autre logiciel, une description de plus bas niveau (niveau porte logique), dont le résultat sera fourni en entrée d'un logiciel de placement, qui réalisera le dessin effectif du composant SOC.

Les SOC sont le plus souvent implantés sur des circuits logiques programmables (Field-programmable gate arrays, FPGA), qui sont des composants semi-finis, produits par exemple par la firme Xilinx : des modules standard sont déjà présents sur le chip, il reste à sélectionner les chemins entre eux qui seront validés ou fermés. Les FPGA sont aussi utilisés pour réaliser des prototypes de microprocesseurs classiques, qui pourront ainsi être testés avant d'entreprendre des investissements considérables et irréversibles.

Les différents composants d'un SOC fonctionnent de manière asynchrone, comme ils sont spécialisés ils ne réalisent que les fonctions voulues par le concepteur pour un usage particulier, et de ce fait ils consomment moins d'énergie qu'un système réalisé par assemblage de composants standard discrets.