Composants

3.4211783439669 (1256)
Posté par woody 05/04/2009 @ 00:07

Tags : composants, matériel, informatique, high-tech

Dernières actualités
Les composants open source de BI géosptiale GeoMondrian et ... - Progilibre.com
GeoKettle, GeoMondrian et Spatialytics sont des composants de la suite logicielle complète de BI (Business Intelligence ou Intelligence d'Affaires) géospatiale que conçoit et développe le groupe de recherche GeoSOA. GeoMondrian est une version...
SR Technics prolonge le contrat de composants avec Titan Airways - Romandie.com
Zurich (awp) - SR Technics a prolongé de cinq années, jusqu'en 2014, le contrat de composants avec la société britannique Titan Airways. L'accord comprend des prestations, telles que l'échange, l'entretien, la réparation et la gestion des composants...
Résumé du jour - Economie - Jeudi 18 juin 2009 - Romandie.com
COMPOSANTS ÉLECTRONIQUES: Des changements importants interviennent dans la composition du conseil d'administration de Carlo Gavazzi. Trois administrateurs, dont le président Giulio Pampuro, ont annoncé leur départ du groupe zougois de composants...
GLOBALFOUNDRIES décrit sa technologie avancée destinée à évoluer ... - itespresso.fr
Exécutée en partenariat avec IBM suite à la participation de GLOBALFOUNDRIES à l'Alliance technologique IBM (IBM Technology Alliance), cette nouvelle étude a pour but de permettre la réduction de l'échelle des composants semi-conducteurs vers des nœuds...
Salon du Bourget : « Nous attendons une remontée du taux d ... - L'Usine Nouvelle
Les composants ont gagné en part de marché. Pour notre batterie Li-ion, nous achetons les composants sur étagère. Les matières premières représentent 35% du chiffre d'affaires d'une batterie : pour la prochaine génération le rapport sera plutôt de 40%....
Une puce Tegra pour le Zune HD ? - Clubic
Au processeur ARM11 qui sous-tend le dispositif et prend en charge les calculs généraux, NVIDIA associe contrôleur graphique - équivalent selon lui à la classe GeForce 6, mémoire vive DDR et divers composants dédiés à la décompression matérielle de la...
Bull lance la nouvelle gamme de supercalculateurs bullx - ITRManager.com
Conçue par Bull, la suite logicielle pour cluster bullx est basée sur un système Linux et des composants Open Source intégrés et optimisés. Cette suite permet de piloter l'ensemble de la configuration - serveurs, réseau d'interconnexion et stockage...
Découverte d'une cache d'armes de l'ETA dans le Lot et Garonne - 20minutes.fr
Terrorisme – Une dizaine d'armes, environ 60 litres de nitrométhane, et jusqu'à 180 kilos d'autres composants explosifs... C'est à partir d'un renseignement des services de renseignements français que les policiers ont découvert dans un petit village,...
Alcatel-Lucent : remporte avec Belgacom le prix Innovations 2009 ... - Boursier.com
Les composants Fx10050-5 d'Ikanos permettent de développer des cartes lignes ETSI (European Telecommunications Standards Institute) à haute performance et hautement intégrées dans les DSLAM d'Alcatel-Lucent. D'autre part, les produits à haute...
LSI pose le premier jalon de son nouvel écosystème des meilleurs ... - La Factory
Le but recherché est une réduction importante des tâches et des délais de développement par les OEM, auxquels sera proposée une plate-forme commune permettant l'intégration transparente des composants des principaux fournisseurs de matériels et de...

Planification des besoins en composants

A l'aide des macro-données techniques et de la charge globale, définition d'un plan industriel et commercial (P.I.C.) pour les familles de produits (macro-produits). Le raisonnement est alors à long terme.

Grâce aux données de la charge globale, établissement d'un Programme Directeur de Production (P.D.P.) pour les produits finis. Le raisonnement est alors à moyen terme.

Un Plan de charge est alors réalisé. Si la charge dépasse temporairement la capacité, on effectue alors un lissage, c'est-à-dire un déplacement dans le temps de ressources afin de limiter les retards de délai, ou les recours à l'embauche d'intérimaires. La recherche de l'optimum consiste alors à utiliser les ressources au maximum de leur capacité sans jamais la dépasser.

On distingue le MRP (Material Requirement Planning), né formellement aux Etats Unis en 1965 et qui ne représente alors qu’une méthode de calcul des besoins matières, de son évolution, le MRP2 ou MRP II (Manufacturing Resources Planning). Ce modèle plus large, qui intègre la gestion de toutes les ressources de l'entreprise (consommables i.e. "matières et composants" et renouvelables i.e. "capacité machines et main d'oeuvre") constitue un système de pilotage des ressources basé sur la prévision des ventes et les nomenclatures de produits, qui opère comme le MRP en flux poussé (c'est-à-dire que l'on établit le plan de production sur la base de prévisions).

Le MRP transforme les données commerciales relatives aux ventes en données de production. Le MRP2 intègre d’autres fonctions telles que la planification à capacité infinie, l'ordonnancement à capacité finie des ressources machine et main d'oeuvre, le suivi de production, le calcul des coûts,...

Le MRP2 est le précurseur des progiciels ERP (Enterprise Resources Planning) et reste souvent l'un de ses modules fondamentaux.

En haut



Composants d'une locomotive à vapeur

Ce schéma montre les composants principaux d'une locomotive à vapeur.

Note : L'image est une composition imaginaire, tous les composants représentés ici n'équipent pas toutes les machines à vapeur. De plus, seules les pièces principales y sont détaillées.

En haut



Diagramme de composants

Le diagramme de composants décrit l'organisation du système du point de vue des modules de code (fichier source, exécutable, bibliothèque). Ce diagramme permet de mettre en évidence les dépendances entre les composants (qui utilise quoi) et ainsi de mieux organiser les modules.

L'encapsulation permet de réduire la complexité et d'élever le niveau d'abstraction.

En haut



Bus informatique

Un bus informatique désigne l'ensemble des lignes de communication connectant les différents composants d'un ordinateur.

Par extension, le terme bus est également employé dans les architectures de logiciels pour désigner un composant de connexion logicielle (voir ORB, EAI, Middleware, etc.) : on parle alors de bus logiciel.

Les bus sont situés à l'intérieur d'un même ordinateur et permettent de connecter les différentes parties fonctionnelles de cet ordinateur entre elles. Un bus qui n'interconnecte que deux dispositifs est appelé un port.

Les informations transmises peuvent être les informations utiles à échanger entre les dispositifs ou des informations de contrôle permettant de gérer l'état du bus lui-même.

Un bus est souvent caractérisé par une fréquence et le nombre de bits d'informations qu'il peut transmettre simultanément. Lorsqu'un bus peut transmettre plus d'un bit d'information simultanément on parlera d'un bus parallèle, sinon d'un bus série. La fréquence donnée est tantôt la fréquence du signal électrique sur le bus, tantôt la cadence de transmission des informations, qui peut être un multiple de la fréquence du signal.

Ainsi un bus de 32 bits dont le signal a une fréquence de 331/3 mégahertz peut transmettre 32 × 33,33 × 106 bits par seconde soit 1,0666 × 109 bits par seconde, soit 1331/3 méga-octets (Mo) par seconde. Ce résultat doit encore être multiplié si la cadence des informations est un multiple du signal.

Les technologies utilisées pour fabriquer les bus sont variées, conducteurs électriques gravés sur un circuit imprimé, câble, fibre optique etc.

D'un point de vue physique, ce type de bus est un ensemble de conducteurs électriques parallèles. À chaque cycle de temps, chaque conducteur transmet un bit.

Ces bus ont donc une taille en nombre de conducteurs, et une taille en bits. Les tailles les plus courantes (en bits) sont : 8, 16, 32, 64 ou plus. Lorsque l'on parle de la taille d'un bus, cela signifie qu'il s'agit du nombre d'informations (ou bits) que le bus peut transmettre en un cycle, sans compter les informations de contrôle.

Certains conducteurs supplémentaires sont affectés à la transmission des signaux de contrôles de l'état du bus.

Le bus sert à transmettre un entier informatique de la taille du bus. Les différents bits du bus ont chacun un poids différent numéroté de zéro à N-1 où N est la taille du bus. Par exemple pour un bus quatre bits on peut transmettre 16 valeurs différentes (24 = 16).

L'émetteur positionne au même instant tous les bits du bus. Au moment adéquat le composant lecteur lira tous les bits en même temps. Cet instant adéquat peut être déterminé par un des signaux de contrôle qui changera de valeur pour signaler au dispositif lecteur qu'il est temps de lire les données sur le bus.

Ce type de bus souffre d'un défaut inhérent à son principe : bien que l'émetteur positionne au même instant tous les bits, les câbles qui les transportent jusqu'au récepteur peuvent ne pas avoir précisément les mêmes caractéristiques électriques (une nappe de conducteurs tordue par exemple) ou pire encore ne pas avoir la même longueur : cela force l'émetteur à maintenir l'état de chaque groupe de bits à transmettre pendant un temps suffisant pour garantir une réception sans erreur à l'autre bout de la liaison, ce qui réduit le débit maximal d'information.

Lecture et écriture de la mémoire vive par un processeur. Deux bus distincts sont utilisés, un bus de données de 128 bits et un bus d'adresse (d'environ 36 bits sur un PC de 2008). Le bus d'adresse est utilisé pour sélectionner les cellules mémoires qui doivent être lues ou écrites, le bus de données servant à transmettre le contenu de la mémoire elle-même. Ce type de bus est extrêmement rapide : un PC de 2008 permet ici des transferts à 6,4 giga-octets (Go) par seconde.

Interconnexion de disques durs SCSI. Une nappe à 68 conducteurs relie chaque disque à l'adaptateur et transporte tour à tour les signaux de commandes et de données sur 16 bits. Ce type de bus est très rapide quand la nappe est de haute qualité, il peut atteindre 320 Mo/s.

Connecteurs PCI des cartes d'extension d'un ordinateur personnel, ils permettent des transferts à environ 130 Mo/s.

Un bus série permet de transmettre les informations bit par bit. Toutefois il comporte plus d'une ligne permettant de transmettre des informations par l'addition d'éventuel signaux de contrôle et généralement par l'utilisation de deux lignes distinctes permettant ainsi à ces bus d'être bidirectionnels afin de permettre la transmission d'information dans les deux directions simultanément.

Le bus série transmettant les données bit par bit, il est nécessaire lorsque l'on veut par exemple transmettre un mot de 32 bits de sérialiser l'information pour sa transmission. Le lecteur devra effectuer l'opération inverse pour reconstruire le mot de 32 bits à partir des bits reçus.

L'intérêt principal de ce type de bus (outre un câblage simplifié par rapport à un bus parallèle) est que pour un coût moindre (grâce au peu de conducteurs de données) il permet - en faisant appel à des composants électroniques de haute qualité - de dépasser les débits atteints par des bus parallèles.

Certains périphériques informatiques tels que les souris utilisent un bus série, le débit d'information reste modeste à quelques kilo-octets (ko) par seconde.

Les disques durs les plus récents utilisent un bus série (FC, SAS ou SATA). Les débits peuvent ici atteindre plusieurs Go/s.

Le mot (octet) à transmettre est envoyé bit par bit (poids faible en premier) par l’émetteur, vers le récepteur qui le reconstitue.

La vitesse de transmission de l’émetteur doit être identique à la vitesse d’acquisition du récepteur. Cette vitesse est exprimée en BAUDS (un baud correspond à un bit / seconde, dans notre cas). Il existe différentes vitesses normalisées : 9600, 4800, 2400, 1200… bauds.

La communication peut se faire dans les deux sens (duplex), soit émission d’abord, puis réception ensuite (half-duplex), soit émission et réception simultanées (full-duplex).

La transmission étant du type asynchrone (pas d'horloge commune entre l’émetteur et le récepteur), des bits supplémentaires sont indispensables au fonctionnement : bit de début de mot (start), bit(s) de fin de mot (stop).

D’autre part, l’utilisation éventuelle d’un bit de parité, permet la détection d’erreurs dans la transmission.

Les liaisons du type EIA-422 et EIA-485 sont dérivées de la RS-232.

Pour en savoir plus…

A priori l'idée d'utiliser un bus parallèle semble plus efficace : un bus série, transmettant les bits d'informations un par un, peut-il être plus rapide qu'un bus parallèle les transmettant 32 par 32 ?

Les bus parallèles sont limités en cadence par des difficultés techniques et physiques. À des fréquences de fonctionnement élevées les bus parallèles produisent plus d'interférences électromagnétiques qu'un bus série ce qui perturbe la qualité des signaux électriques transmis jusqu'à les rendre inutilisables.

En haut



Matériel informatique

matériel informatique

Le matériel informatique (en anglais hardware) sont l'ensemble des équipements en électronique numérique (aussi appelée électronique digitale) servant au traitement des informations par des appareils informatiques. Les équipements servent à faire entrer les informations dans un appareil informatique, à les stocker, les traiter, puis les faire sortir sous une forme utilisable par un humain.

Par opposition, le logiciel (anglais software) sont l'ensemble des procédés pré-determinés de traitement des informations.

Un appareil informatique est formé d'un assemblage d'équipements de différentes marques. Le respect des normes industrielles par les différents fabricants assurent le fonctionnement de l'ensemble.

La largeur du bus désigne le nombre de bits d'un groupe et donc le nombre de lignes utilisées pour sa transmission.

Les périphériques d'entrée servent à commander l'appareil informatique ou à y envoyer des informations.

L'envoi des informations se fait par le procédé de numérisation.

Les lecteurs de cartes perforées (Herman Hollerith, 1890) sont les périphériques d'entrée qui équipaient les premiers ordinateurs. ils ont été utilisés jusque dans les années 1980. Les cartes perforées servaient en même temps de mémoire de masse.

Un télétype, est un type d'appareil créé en 1925, semblable à une machine à écrire et utilisé pour introduire des textes dans un système informatique.

Un terminal est un groupe de périphériques d'entrée et de sortie (clavier, souris, écran), utilisés pour commander à distance un appareil informatique. Les terminaux étaient d'usage courant sur les ordinateurs jusque dans les années 1980.

Un émulateur de terminal est un logiciel placé dans un appareil informatique pour permettre à l'utilisateur de piloter un autre appareil comme si il se trouvait aux commandes d'un terminal.

La souris, la tablette graphique et le crayon optique sont des dispositifs de pointage. Ils servant à désigner un objet sur une surface - généralement un écran.

Un écran tactile est un écran sensible à la pression. Il permet de désigner un objet à sa surface avec le doigt, sans utiliser de dispositif de pointage.

Le manche à balai (en miniature, le joystick), les manettes, le volant, le pistolet et le gant de données sont des dispositifs de pilotage utilisés en réalité virtuelle, notamment avec les consoles de jeux vidéo et les simulateurs de vol.

En musique assistée par ordinateur les informations sont introduites en utilisant le clavier d'un synthétiseur.

Les appareils informatiques peuvent être pilotés par une télécommande.

Dans une interface neuronale directe l'appareil est piloté directement par le cerveau de l'utilisateur.

Les robots sont des appareils informatique sans dispositif de commande - par définition un robot ne se commande pas. Ils peuvent par contre être équipés de capteurs de distance, d'altitude, ou de positionnement géographique - analogue à celui du GPS.

Un scanner est un appareil servant à numériser des images. Il peut s'agir de documents papiers, de photographies ou de diapositives. Un appareil photo numérique est un appareil photo équipé d'un circuit de numérisation interne.

Des prises de vue peuvent être numérisées en utilisant un circuit de numérisation et un caméscope. Les caméscopes numériques sont des caméscope équipées d'un circuit de numérisation interne. La webcam est une caméra numérique miniature.

Des enregistrements audio peuvent êtres numérisés en utilisant un circuit de numérisation et une source audio telle que micro ou magnétophone.

L'utilisation d'une balance en électronique numérique permet de numériser le poids des objets.

Les équipements de stockage servent à conserver des informations sous forme de suite de nombres binaires.

L'acronyme FPU (en anglais Floating Point Unit) désigne un processeur arithmétique, concu pour effectuer des calculs sur des nombres réels en virgule flottante.

L'acronyme MMU (en anglais Memory Management Unit) désigne le composant qui contrôle les échanges d'informations entre les processeurs, et les mémoires. Il effectue notamment les opérations de transformation d'adresse nécessaire au mécanisme de la mémoire virtuelle.

Les circuits intégrés du commerce contiennent souvent à la fois un CPU, un FPU et un MMU.

Les équipements de sortie servent à présenter les informations provenant d'un appareil informatique sous une forme reconnaissable par un humain.

Une imprimante est un équipement qui sert à faire sortir des informations sous forme d'images sur du papier. Il peut s'agir de documents, ou de photos.

Sur une imprimante à marguerite un marteau pousse successivement les différentes pattes d'une étoile souple (la marguerite) contre un ruban encreur. au bout de chaque patte se trouve l'empreinte d'un caractère typographique. Cette technique est héritée des machines à écrire.

Sur une imprimante matricielle l'image est imprimée par les frappes d'un groupe d'aiguilles sur un ruban encreur. Cette technique très bruyante permet d'effectuer des copies sur papier carbone.

Sur une imprimante à jet d'encre l'image est imprimée par projection de gouttelettes d'encre sur le papier. Cette technique est apparue en 1970.

Sur une imprimante à laser une poudre colorante - le toner - est transformée par un rayon laser. Le rayon rend la poudre collante, et la poudre se dépose alors sur le papier. Cette technique est aussi utilisée sur les photocopieurs depuis 1976.

Les équipements de réseau sont l'ensemble des équipements relatifs à la communication d'informations entre des appareils informatiques. Les équipements servent à l'envoi d'informations, à la réception, à la retransmission, et au filtrage.

Les communications peuvent se faire par câble, par onde radio, par satellite, ou par fibre optique.

En règle générale les équipements de transmission prennent en charge les normes industrielles et les protocoles de communication des niveaux 1 et 2. Les niveaux 3 à 7 sont pris en charge par les logiciels.

Une carte réseau est un circuit imprimé qui sert à recevoir et envoyer des informations conformément à un ou plusieurs protocoles.

Un modem est un équipement qui sert à envoyer des informations sous forme d'un signal électrique modulé, ce qui permet de les faire passer sur une ligne de communication analogique telle une ligne téléphonique.

Un hub est un appareil de relais utilisé dans les réseaux informatiques. Il est équipé de plusieurs connecteurs, chaque information reçue par un des connecteurs est retransmise sur tous les autres connecteurs. Un hub travaille au niveau OSI 1.

Un switch est un appareil de relais utilisé dans les réseaux informatiques. Il est équipé de plusieurs connecteurs, chaque information reçue par un des connecteurs est analysée, puis retransmise dès que possible sur le connecteur ou se trouve le destinataire. Un switch travaille au niveau OSI 1 et 2.

Un Routeur est un appareil de filtrage des informations utilisé dans les réseaux informatiques. Il est équipé de deux connecteurs. Le routeur analyse les informations qu'il reçoit par un des connecteurs, puis en fonction de table de routage transforme les informations, et décide si il est nécessaire de les retransmettre sur l'autre connecteur. Un routeur travaille aux niveaux OSI 1, 2 et 3.

X.25 est une norme industrielle de niveau OSI 1, 2 et 3, lancée en 1976. Elle est utilisée pour les transmissions par cable à longue distance.

Ethernet est une norme industrielle de niveau OSI 1 et 2, lancée en 1983. Elle est utilisée sur des lignes à courte distance, comme par exemple dans les réseaux d'entreprise.

Wi-Fi est une norme industrielle basée sur Ethernet, utilisée pour la transmission d'information par onde radio. Elle a été lancée à la fin des années 1990.

DSL (acronyme de l'anglais Digital Subscriber Line) est une norme industrielle pour l'envoi d'informations sous forme modulée sur des lignes analogiques (lignes de téléphonie). Elle a été lancée à la fin des années 1990.

En haut



Architecture logicielle

logo universel du recyclage

L’architecture logicielle décrit d’une manière symbolique et schématique les différents composants d’un ou de plusieurs systèmes informatiques, leurs interrelations et leurs interactions. Contrairement aux spécifications produites par l’analyse fonctionnelle, le modèle d'architecture, produit lors de la phase de conception, ne décrit pas ce que doit réaliser un système informatique mais plutôt comment il doit être conçu de manière à répondre aux spécifications. L’analyse décrit le « quoi faire » alors que l’architecture décrit le « comment le faire ».

La phase de conception logicielle est l'équivalent, en informatique, à la phase de conception en ingénierie traditionnelle (mécanique, civile ou électrique); cette phase consiste à réaliser entièrement le produit sous une forme abstraite avant la production effective. Par contre, la nature immatérielle du logiciel (modelé dans l'information et non dans la matière), rend la frontière entre l'architecture et le produit beaucoup plus floue que dans l'ingénierie traditionnelle. L'utilisation d'outils CASE (Computer-aided software engineering) ou la production de l'architecture à partir du code lui-même et de la documentation système permettent de mettre en évidence le lien étroit entre l'architecture et le produit.

L'architecture logicielle constitue le plus gros livrable d'un processus logiciel après le produit (le logiciel lui-même). En effet, la phase de conception devrait consommer autour de 40 % de l'effort total de développement et devrait être supérieure ou égale, en effort, à la phase de codage. Il est important, ici, de ne pas confondre la phase d'élaboration du macro-cycle de développement d'une méthode itérative comme UP (Unified Process) et la phase de conception d'une méthode linéaire. Dans une méthode linéaire, les activités de conception se retrouvent regroupées en une seule grande phase alors qu'elles sont distribuées dans l'ensemble des micro-cycles d'une méthode itérative. Dans les deux cas, l'effort total de conception devrait être proche de 40 % mais il peut être moindre. L'effort dépend grandement du type de logiciel développé, de l'expertise de l'équipe de développement, du taux de réutilisation et du processus logiciel.

Les deux objectifs principaux de toute architecture logicielle sont la réduction des coûts et l'augmentation de la qualité du logiciel; la réduction des coûts est principalement réalisée par la réutilisation de composants logiciels et par la diminution du temps de maintenance (correction d'erreurs et adaptation du logiciel). La qualité, par contre, se trouve distribuée à travers plusieurs critères; la norme ISO 9126 est un exemple d'un tel ensemble de critères.

L'interopérabilité exprime la capacité du logiciel à communiquer et à utiliser les ressources d'autres logiciels comme, par exemple, les documents créés par une certaine application.

La portabilité exprime la possibilité de compiler le code source et/ou d'exécuter le logiciel sur des plates-formes (machines, systèmes d'exploitation, environnements) différents.

La compatibilité exprime la possibilité, pour un logiciel, de fonctionner correctement dans un environnement ancien (compatibilité descendante) ou plus récent (compatibilité ascendante).

La validité exprime la conformité des fonctionnalités du logiciel avec celles décrites dans le cahier des charges.

La vérifiabilité exprime la simplicité de vérification de la validité.

L'intégrité exprime la faculté du logiciel à protéger ses fonctions et ses données d'accès non autorisés.

La fiabilité exprime la faculté du logiciel à gérer correctement ses propres erreurs de fonctionnement en cours d'exécution.

La maintenabilité exprime la simplicité de correction et de modification du logiciel, et même, parfois, la possibilité de modification du logiciel en cours d'exécution.

La réutilisabilité exprime la capacité de concevoir le logiciel avec des composants déjà conçus tout en permettant la réutilisation simple de ses propres composants pour le développement d'autres logiciels.

L'extensibilité exprime la possibilité d'étendre simplement les fonctionnalités d'un logiciel sans compromettre son intégrité et sa fiabilité.

L'efficacité exprime la capacité du logiciel à exploiter au mieux les ressources offertes par la ou les machines où le logiciel sera implanté.

L'autonomie exprime la capacité de contrôle de son exécution, de ses données et de ses communications.

La transparence exprime la capacité pour un logiciel de masquer à l'utilisateur (humain ou machine) les détails inutiles à l'utilisation de ses fonctionnalités.

La composabilité exprime la capacité pour un logiciel de combiner des informations provenant de sources différentes.

La simplicité d'utilisation décrit la facilité d'apprentissage et d'utilisation du logiciel par les usagers.

Une architecture faible ou absente peut entraîner de graves problèmes lors de la maintenance du logiciel. En effet, toute modification d'un logiciel mal architecturé peut déstabiliser la structure de celui-ci et entraîner, à la longue, une dégradation (principe d'entropie du logiciel). L'architecte devrait donc concevoir, systématiquement, une architecture maintenable et extensible.

Dans les processus itératifs comme UP (Unified Process), la gestion des changements est primordiale. En effet, il est implicitement considéré que les besoins des utilisateurs du système peuvent changer et que l'environnement du système peut changer. L'architecte a donc la responsabilité de prévoir le pire et de concevoir l'architecture en conséquence; la plus maintenable possible et la plus extensible possible.

Bien des logiciels ont été créés sans architecture par plusieurs générations de développeurs ayant chacune usé d'une imagination débordante pour réussir à maintenir l'intégrité du système. Une telle absence d'architecture peut être qualifiée d'architecture organique. En effet, un développeur confronté à une telle architecture a plus l'impression de travailler avec un organisme vivant qu'avec un produit industriel. Il en résulte que la complexité du logiciel fait en sorte que celui-ci est extrêmement difficile à comprendre et à modifier. À la limite, modifier une partie du système est plus proche, en complexité, de la transplantation cardiaque que du changement de carburateur.

La réutilisation de composants logiciels est l'activité permettant de réaliser les économies les plus substantielles, encore faut-il posséder des composants à réutiliser. De plus, la réutilisation de composants nécessite de créer une architecture logicielle permettant une intégration harmonieuse de ces composants. Le développement par la réutilisation logicielle impose donc un cycle de production-réutilisation perpétuel et une architecture logicielle normalisée.

Une réutilisation bien orchestrée nécessite la création et le maintien d'une bibliothèque logicielle et un changement de focus; créer une application revient à créer les composants de bibliothèque nécessaires puis à construire l'application à l'aide de ces composants. Une telle bibliothèque, facilitant le développement d'application est un framework (cadriciel) d'entreprise et son architecture, ainsi que sa documentation sont les pierres angulaires de la réutilisation logicielle en entreprise.

Le rôle de l'architecte se déplace donc vers celui de bibliothécaire. L'architecte doit explorer la bibliothèque pour trouver les composants logiciels appropriés puis créer les composants manquants, les documenter et les intégrer à la bibliothèque. Dans une grande entreprise, ce rôle de bibliothécaire est rempli par l'architecte en chef qui est responsable du développement harmonieux de la bibliothèque et de la conservation de l'intégrité de son architecture.

La description d'un système complexe comme un logiciel informatique peut être faite selon plusieurs points de vue différents mais chacun obéit à la formule de Perry et Wolf : Architecture = Elements + Formes + Motivations. Selon le niveau de granularité, les éléments peuvent varier en tailles (lignes de code, procédures ou fonctions, modules ou classes, paquetages ou couches, applications ou systèmes informatiques), ils peuvent varier en raffinement (ébauche, solution à améliorer ou solution finale) et en abstraction (idées ou concepts, classes ou objets, composants logiciels physiques). Les éléments peuvent également posséder une temporalité (une existence limité dans le temps) et une localisation (une existence limité dans l'espace).

Si les éléments sont, en général, représentés par des rectangles ou des ovales, les formes sont quant-à-elles constituées, la plupart du temps, d'éléments reliés par des droites ou des flèches. La sémantique des liens détermine la majeure partie de la sémantique du diagramme et l'aspect du système qui y est décrit.

La dépendance fonctionnelle, signifie que l'élément source nécessite l'élément de destination pour réaliser ses fonctionnalités.

Le flot de contrôle, signifie que l'élément de destination prendra le contrôle de l'exécution après la terminaison de l'élément source.

La transition d'état, signifie que le système passera de l'état source à l'état de destination.

Le changement d'activité, signifie que le système réalisera l'activité de destination après l'activité source.

Le flot de données, signifie que l'information s'écoule de l'élément source vers l'élément de destination.

Le lien de communication, signifie que deux éléments échangent de l'information.

La composition, signifie que l'élément source est composé d'une ou de plusieurs données du type de l'élément de destination.

L'héritage (généralisation), signifie que l'élément source possède l'ensemble des données et des comportements de l'élément de destination.

L'envoi de message, signifie que l'élément source envoie un message à l'élément de destination.

Indépendamment de la forme que prend un diagramme d'architecture, celui-ci ne représente toujours qu'un point de vue sur le système considéré, le plus important étant les motivations. En effet, à quoi sert de produire un diagramme s'il est inutile (pas utilisé) ou si les raisons des choix architecturaux sont vagues et non-explicités. Pour éviter de formuler les motivations pour chaque diagramme, l'architecte produira les différents diagrammes en fonction d'un modèle de conception et réutilisera des patrons de conception éprouvés.

Un modèle de conception (ou d'architecture) est composé d'un ensemble de points de vue, chacun étant composé d'un ensemble de différentes sortes de diagrammes. Il propose également des moyens pour lier les différentes vues et diagrammes les uns aux autres de manière à naviguer aisément, il s'agit des mécanismes de traçabilité architecturale. La traçabilité doit également s'étendre aux spécifications systèmes et même jusqu'aux besoins que ces spécifications comblent. La devise des trois pères fondateurs d'UML est « Centré sur l'architecture, piloté par les cas d'utilisation et au développement itératif et incrémentiel ». Cette devise indique clairement qu'aucune décision architecturale ne doit être prise sans que celle-ci ne soit dirigée (pilotée) par la satisfaction des spécifications systèmes (cas d'utilisation).

Ce diagramme décrit, à gauche, les spécifications systèmes qui sont également représentées par des diagrammes (Entités-Relations, Flux de données, États-Transitions). Et à droite, nous avons les différentes activités de conception prenant comme intrants les livrables de la phase d'analyse. Nous voyons que l'architecture logicielle traditionnelle nécessiterait de produire au moins quatre vues distinctes : une architecture des données (conception des données), une architecture fonctionnelle et/ou modulaire (conception architecturale), une autre architecture fonctionnelle et/ou modulaire pour les interfaces utilisateurs (conception des interfaces) et une architecture détaillée (ordinogrammes, états-transitions) des différents modules (conception des composants).

La pyramide exprime que chaque couche est bâtie sur la précédente. En effet, les composants réalisant les fonctionnalités du logiciel doivent manipuler des éléments de données qui doivent donc être préalablement décrits. De même, les composants réalisant les interfaces utilisateurs doivent utiliser les fonctionnalités du logiciel préalablement décrites. Et finalement, la création de l'architecture détaillée de chacun des composants du logiciel nécessite, évidemment, que ceux-ci soient préalablement inventés.

Ce modèle d'architecture impose une séparation claire entre les données, les traitements et la présentation.

Puisque l'analyse produit également des diagrammes, il est naturel de se questionner, en effet, quand se termine l'analyse et quand commence l'architecture ? La réponse à cette question est fort simple : les éléments des diagrammes d'analyse correspondent à des éléments visibles et compréhensibles par les utilisateurs du système, alors que les éléments des diagrammes d'architectures ne correspondent à aucune réalité tangible pour ceux-ci.

Le modèle de Kruchten dit modèle des 4 + 1 vues est celui adopté dans l'Unified Process. Ici encore, le modèle d'analyse, baptisé vue des cas d'utilisation, constitue le liant et motive la création de tous les diagrammes d'architecture.

La vue des cas d'utilisation est un modèle d'analyse formalisé par Ivar Jacobson. Un cas d'utilisation est défini comme un ensemble de scénarios d'utilisation, chaque scénario représentant une séquence d'interaction des utilisateurs (acteurs) avec le système.

L'intérêt des cas d'utilisation est de piloter l'analyse par les exigences des utilisateurs. Ceux-ci se sentent concernés car ils peuvent facilement comprendre les cas d'utilisation qui les concernent. Cette méthode permet donc d'aider à formaliser les véritables besoins et attentes des utilisateurs; leurs critiques et commentaires étant les briques de la spécification du système.

Chaque cas d'utilisation est représenté par un diagramme de cas d'utilisation, chacun des scénarios de celui-ci étant décrit par un ou plusieurs diagrammes dynamiques : diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions.

La vue logique constitue la principale description architecturale d'un système informatique et beaucoup de petits projets se contentent de cette seule vue. Cette vue décrit, de façon statique et dynamique, le système en terme d'objets et de classes. La vue logique permet d'identifier les différents éléments et mécanismes du système à réaliser. Elle permet de décomposer le système en abstractions et est le cœur de la réutilisation. En effet, l'architecte récupérera un maximum de composants des différentes bibliothèques et cadriciels (framework) à sa disposition. Une recherche active de composants libres et/ou commerciaux pourra également être envisagée.

La vue logique est représentée, principalement, par des diagrammes statiques de classes et d'objets enrichis de descriptions dynamiques : diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions.

La vue des processus décrit les interactions entre les différents processus, threads (fils d'exécution) ou tâches, elle permet également d'exprimer la synchronisation et l'allocation des objets. Cette vue permet avant tout de vérifier le respect des contraintes de fiabilité, d'efficacité et de performances des systèmes multitâches.

Les diagrammes utilisés dans la vue des processus sont exclusivement dynamiques : diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions.

La vue de réalisation permet de visualiser l'organisation des composants physiques (bibliothèque dynamique et statique, code source...) dans l'environnement de développement. Elle permet aux développeurs de se retrouver dans le capharnaüm que peut être un projet de développement informatique. Cette vue permet également de gérer la configuration (auteurs, versions...).

Les seuls diagrammes de cette vue sont les diagrammes de composants.

La vue de déploiement représente le système dans son environnement d'exécution. Elle traite des contraintes géographiques (distribution des processeurs dans l'espace), des contraintes de bandes passantes, du temps de réponse et des performances du système ainsi que de la tolérance aux fautes et aux pannes. Cette vue est fort utile pour l'installation et la maintenance régulière du système.

Les diagrammes de cette vue sont les diagrammes de composants et les diagrammes de déploiement.

L'architecture logicielle, tout comme l'architecture traditionnelle, peut se catégoriser en styles. En effet, malgré les millions de systèmes informatiques construits de par le monde au court des cinquante dernières années, tous se classent parmi un nombre extrêmement restreint de styles architecturaux. De plus, un système informatique peut utiliser plusieurs styles selon le niveau de granularité ou l'aspect du système décrit. Nous ferons remarquer que, comme en architecture traditionnelle, c'est souvent par le mélange d'anciens styles que les nouveaux apparaissent.

Cette architecture est basée sur le raffinement graduel proposé par Niklaus Wirth. Cette approche, également appelée décomposition fonctionnelle, consiste à découper une fonctionnalité en sous-fonctionnalités qui sont également divisées en sous sous-fonctionnalités et ainsi de suite; la devise diviser pour régner est souvent utilisée pour décrire cette démarche.

Si à l'origine cette architecture était basée sur l'utilisation de fonctions, le passage à une méthode modulaire ou objet est toute naturelle; la fonctionnalité d'un module ou d'un objet est réalisée par des sous-modules ou des sous-objets baptisés travailleurs (worker). Le terme hiérarchie de contrôle est alors utilisé pour décrire l'extension de cette architecture au paradigme modulaire ou objet. Une forme dérivée de cette architecture est l'architecture distribuée où les fonctions, modules ou classes se retrouvent répartis sur un réseau.

La conception de logiciels nécessite de recourir à des bibliothèques. Une bibliothèque très spécialisée utilise des bibliothèques moins spécialisées qui elles-mêmes utilisent des bibliothèques génériques. De plus, comme nous l'avons déjà mentionné, le développement efficace de composants réutilisables nécecessite de créer une bibliothèque logicielle; l'architecture en couche est la conséquence inéluctable d'une telle approche. En effet, les nouveaux composants utilisent les anciens et ainsi de suite, la bibliothèque tend donc à devenir une sorte d'empilement de composants. La division en couches consiste alors à regrouper les composants possédant une grande cohésion (sémantiques semblables) de manière à créer un empilement de paquetages de composants; tous les composants des couches supérieures dépendants fonctionnellement des composants des couches inférieures.

Dans cette architecture, un composant central (SGBD, Datawarehouse, Blackboard) est responsable de la gestion des données (conservation, ajout, retrait, mise-à-jour, synchronisation, ...) . Les composants périphériques, baptisés clients, utilisent le composant central, baptisé serveur de données, qui se comporte, en général, de façon passive (SGBD, Datawarehouse). Un serveur passif ne fait qu'obéir aveuglément aux ordres alors qu'un serveur actif (Blackboard) peut notifier un client si un changement aux données qui le concerne se produit.

Cette architecture sépare clairement les données (serveurs) des traitements et de la présentation (clients) et permet ainsi une très grande intégrabilité, en effet, des clients peuvent être ajoutés sans affecter les autres clients. Par contre, tous les clients sont dépendants de l'architecture des données qui doit rester stable et qui est donc peu extensible. Ce style nécessite donc un investissement très important dans l'architecture des données. Les datawarehouses et les bases de données fédérées sont des extensions de cette architecture.

Cette architecture est composée de plusieurs composants logiciels reliés entre eux par des flux de données. L'information circule dans le réseau et est transformée par les différents composants qu'elle traverse. Lorsque les composants se distribuent sur une seule ligne et qu'ils ne font que passer l'information transformée à leur voisin, on parle alors d'architecture par lot (batch). Si les composants sont répartis sur un réseau informatique et qu'ils réalisent des transformations et des synthèses intelligentes de l'information, on parle alors d'architecture de médiation.

Les composants du système (objets) intègrent des données et les opérations de traitement de ces données. La communication et la coordination entre les objets sont réalisées par un mécanisme de passage de messages. Cette architecture est souvent décrite par les trois piliers : encapsulation, héritage et polymorphisme. L'encapsulation concerne l'architecture détaillée de chaque objet, les données étant protégées d'accès direct par une couche d'interface. De plus, les sous-fonctions, inutiles pour utiliser l'objet, sont masquées à l'utilisateur de l'objet. L'héritage permet d'éviter la redondance de code et facilite l'extensibilité du logiciel, les fonctionnalités communes à plusieurs classes d'objets étant regroupées dans un ancêtre commun. Le polymorphisme permet d'utiliser des objets différents (possédant des comportements distincts) de manière identique, cette possibilité est réalisée par la définition d'interfaces à implémenter (classes abstraites).

L'architecture agent est le produit du passage du composant objectif vers le composant projectif. En effet, l'objet est essentiellement un composant passif offrant des services et utilisant d'autres objets pour réaliser ses fonctionnalités; l'architecture objet est donc une extension de l'architecture en appels et retours. L'agent, par contre, utilise de manière intelligente les autres agents pour réaliser ses objectifs; il établi des dialogues avec les autres agents, il négocie et échange de l'information.

L’origine de la notion d’architecture logicielle remonte à la fin des années 1960 avec l’invention de la programmation structurée. Un programme informatique était alors conceptualisé comme une suite d’étapes (flux de contrôle) représentée par les premiers diagrammes d’architecture, les organigrammes (ordinogrammes). Au début des années 1970, avec le développement de la programmation modulaire, les programmes informatiques furent considérés comme des ensembles de composants (les modules) échangeant de l’information. Les diagrammes de flux de données furent alors utilisés pour représenter ce type d’architecture.

C’est au cours de la décennie 1970–80 que les grands principes architecturaux furent élaborés. L’on distingua l’architecture système décrivant les relations et interactions de l’ensemble des composants logiciels de l’architecture détaillée décrivant l’architecture individuelle de chacun des composants. L’on sépara l’architecture statique décrivant les interrelations temporellement invariables (dépendances fonctionnelles, flux de contrôle, flux de données) de l’architecture dynamique, décrivant les interactions et l’évolution du système dans le temps (diagrammes d’activité, de séquence, d’états, réseaux de Petri, etc.). C’est également au cours de cette décennie que furent élaborés les principes directeurs de l’architecture logicielle contemporaine : masquage de l'information, indépendance fonctionnelle, forte cohésion et couplage faible. Les principaux styles architecturaux virent également le jour : architecture en appels et retours (hiérarchie de contrôle), architecture centrée sur les données, architecture en flot de données, architecture en couches et architecture orientée objets.

La décennie 1980-90 fut celle du développement de l’architecture orientée objet. Ce type d’architecture introduisit trois nouveaux types de composants logiciels : l’objet, la classe et la méta-classe (classe paramétrée ou gabarit de classe); ainsi que des relations ontologiques entre ces composants : est un (héritage), est composé de (composition), etc. La relation d’héritage est une innovation majeure permettant la réutilisation de code et facilitant son adaptation à d’autres contextes d’utilisation.

Au niveau industriel, par contre, cette décennie est sans conteste celle de l’architecture à trois couches centrée sur les données (3-tiers). Ce type d’architecture logicielle, séparant l’architecture des programmes de l’architecture des données, s’oppose ainsi complètement au principe de forte cohésion prôné par l’architecture objet. L’accent est mis sur l’architecture des données; les diagrammes de ce type d’architecture sont les modèles conceptuels de données et les schémas entités relations. Le développement des systèmes de gestion de bases de données relationnelles, des protocoles multibases ainsi que leurs normalisations (standardisations) constituent les fondations technologiques de ce choix architectural.

Au début de la décennie 1990-2000 on dénombrait un très grand nombre de représentations architecturales distinctes. En 1995, UML (Unified Modeling Language) devint la norme internationale de représentation de l’architecture logicielle. Le développement orienté objet se répand dans l’industrie, les systèmes de gestion de bases de données sont maintenant perçus comme une façon commode d’assurer la persistance des objets. Les systèmes de gestion de base de données objet-relationnels et objets font leurs apparitions. On voit également apparaître les architectures distribuées; les programmes informatiques ne sont plus simplement perçus comme devant offrir des services à des êtres humains mais également à d’autres programmes. L’arrivée des réseaux ouverts, en particulier Internet, change complètement le paysage architectural. L’architecture à trois couches centrée sur les données (3-tiers) est maintenant réalisée par le triplet serveur de base de données, serveur d’application web et navigateur web.

La recherche universitaire sur l’architecture logicielle se concentre davantage sur les problèmes de couplage entre objets et d’interopérabilité syntaxique et sémantique. Le problème du couplage est essentiellement perçu comme un problème de communication entre objets, voir de dialogues entre agents intelligents; l’architecture orientée agent apparaît. Le principe de réutilisation des composants logiciels est maintenant appliqué à l’architecture. Des façons de faire, principes ou styles architecturaux peuvent être réutilisés; les patrons de conception apparaissent.

Notre décennie est caractérisée par un retour des bases de données distribuées rendu possible grâce à la technologie XML. Le XML est un langage d'interface, syntaxiquement normalisé et possédant une très grande puissance d'expression sémantique. L'architecture 3-tiers traditionnelle se retrouve maintenant sous la forme de trois couches de médiations de données : gestion de données XML, transformation et fusion de données XML et présentation de données XML. La technologie XML permet la spécification syntaxique (DTD, XSD), la transformation (XSLT), la présentation (XSL) et la spécification sémantique (RDF, RDFS, OWL). Il existe maintenant plusieurs bibliothèques logicielles permettant de gérer les données XML et la plupart des systèmes de gestion de base de données supportent maintenant XML.

Le développement orienté agent (OA) sort progressivement des universités, il existe maintenant une multitude d'outils logiciels pour la conception de systèmes basés sur les agents mais la plupart ne sont pas encore destinés à devenir des outils de production. Le langage KQML (Knowledge Query and Manipulation Langage) est un langage de communication inter-agent qui pourrait très bien s'imposer dans un proche avenir. Il n'y aura pas de révolution au niveau des langages de programmation, les différentes fonctionnalités des agents sont implémentées à l'aide de bibliothèques logicielles. Les trois types d'architectures OA qui se dégagent sont : l'architecture réfléchie, l'architecture réactive et l'architecture hybride.

En haut



Bruit de scintillation

Le bruit de scintillation est un bruit électronique toujours présent dans les composants actifs et dans certains composants passifs. Il est également appelé bruit de scintillement, bruit de papillotement, bruit de basse fréquence ou bruit en excès. Il fait parti des bruits roses ayant un courbe de puissance en 1/f. Bruit de flicker est un anglicisme souvent utilisé pour nommer ce bruit.

Ses origines sont variées : il peut être dû à des impuretés dans le matériau pour un transistor, par exemple, qui libèrent aléatoirement des porteurs de charge, ou bien à des recombinaisons électron-trou parasites, etc.. De manière générale, une superposition de nombreux phénomènes similaires avec des fréquences caractéristiques différentes, comme par exemple la présence d'un continuum de niveaux pièges dans le bande interdite (« gap ») d'un semi-conducteur génèrent ce type de bruit.

L'appellation bruit en 1/f est donc très générique et s'utilise surtout par opposition au bruit blanc. Ce nom est d'ailleurs trompeur dans la mesure où il s'agît d'un bruit décroissant en réalité en où f est la fréquence et α est un coefficient non entier, entre 0,8 et 1,3, déterminé empiriquement.

La fréquence au-dessus de laquelle le bruit blanc dépasse en intensité le bruit en 1/f est dénommée fréquence de coude du bruit et est une caractéristique importante des composants électroniques. Cette fréquence est beaucoup plus basse pour les transistors à effet de champ à jonction (JFET) que les transistors à effet de champ à grille métal-oxyde (MOSFET). De plus, dans cette dernière catégorie, celle des PMOS est inférieure à celle des NMOS.

Enfin, pour des raisons statistiques (leur faible surface), les petits transistors sont beaucoup plus sensibles au bruit en 1/f que les gros.

En haut



Durcissement (électronique)

Le durcissement des composants électroniques contre les rayonnements ionisants désigne un mode de conception, de réalisation et de test des systèmes et composants électroniques pour les rendre résistants aux dysfonctionnements et dégradations causés par des rayonnements électromagnétiques et les particules subatomiques énergétiques rencontrés lors des vols spatiaux ou en haute altitude, ainsi que dans l'environnement des réacteurs nucléaires, voire lors d'opérations militaires.

La plupart des composants « durcis » face aux rayonnements ionisants sont des adaptations de composants du marché, réalisés selon des procédés destinés à limiter les effets des radiations sur les matériaux qui les constituent. En raison de la complexité de ces adaptations, le développement de tels composants, destinés à un marché de niche, prend du temps et revient cher. C'est la raison pour laquelle ces composants offrent des performances souvent très en retrait par rapport à leurs équivalents contemporains du marché.

Une simple particule chargée de haute énergie traversant un matériau semi-conducteur est suscpetible d'injecter des centaines d'électrons dans la bande de conduction, accroissant le bruit électronique et provoquant un pic de signal dans un circuit analogique, ou fausser les calculs dans un circuit numérique. A plus forte énergie, c'est la qualité même des matériaux, et par conséquent leurs propriétés physiques, qui peut être définitivement dégradée, conduisant à la destruction pure et simple du composant irradié. C'est un problème particulièrement critique pour l'électronique des satellites et des vaisseaux spatiaux, de l'aviation militaire, et des installations nucléaires.

Les méthodes employées pour rendre les composants électroniques résistants aux radiations sont généralement désignées du terme anglais radiation hardening, et de tels composants sont dits rad-hard ; les termes français radiodurcissement et radiodurci, qui seraient équivalents, ne se rencontrent quasiment jamais dans la littérature.

Les principales sources d'exposition aux rayonnements ionisants sont le vent solaire et les ceintures de Van Allen pour l'électronique spatiale, le rayonnement cosmique dans l'espace ainsi que dans l'atmosphère à haute altitude, des isotopes radioactifs dans les matériaux des boîtiers des composants électroniques eux-mêmes, et bien entendu les réactions nucléaires dans les centrales nucléaires ou lors d'explosions d'ogives nucléaires.

Les circuits durcis aux radiations sont souvent réalisés sur matériau isolant plutôt que sur substrat semiconducteur. Les techniques SOI (« Silicon On Insulator », en l'occurrence de l'oxyde de silicium SiO2) et SOS (« Silicon On Sapphire », c'est-à-dire sur oxyde d'aluminium Al2O3) sont les plus employées. Les composants commerciaux supportent des doses de radiations de 50 à 100 Gy, alors que les composants spatiaux conçus en SOI ou SOS supportent des doses plusieurs dizaines de fois plus élevées.

A défaut, on choisit de préférence des substrats à large bande interdite, tels que le carbure de silicium et le nitrure de bore, afin de limiter l'effet des centres de recombinaison des porteurs (électrons et trous) au niveau des défauts cristallins induits par les radiations.

On utilise plutôt les mémoires statiques (SRAM) de préférence aux mémoires dynamiques (DRAM), dont les cellules sont plus petites (donc plus sensibles aux effets d'une particule énergétique isloée) et les condensateurs structurellement plus sensibles aux radiations au niveau de la couche isolante sous la grille.

On recouvre le circuit de verre de borophosphosilicate appauvri en bore-10, lequel absorbe les neutrons et se désintègre en émettant des particules α.

Il est également possible de blinder le boîtier du composant pour protéger celui-ci des radiations.

Les mémoires à correction d'erreur implémentent des bits de parité pour contrôler la validité des informations stockées afin de pouvoir éventuellement restaurer l'intégrité de leurs informations. Elles doivent être en permanence nettoyées par un circuit dédié qui contrôle les bits de parité et gère le rafraîchissement des données corrompues.

Il est possible d'implémenter, dans la logique des circuits électroniques, un certain niveau de redondance, par exemple en remplaçant un bit critique par trois bits dont la valeur unique sera évaluée par une logique de vote à partir de la valeur commune à au moins deux bits sur les trois. Cette technologie présente l'avantage d'être fiable en temps réel car elle ne demande pas de recalcul. Elle est néanmoins très consommatrice en silicium, multipliant par cinq la surface du circuit ainsi adapté, de sorte qu'on la réserve pour les logiques critiques de petite taille. Une alternative consiste à introduire une logique de vote entre trois blocs logiques plutôt qu'entre chacun des bits d'un bloc logique, par exemple entre trois instances d'une même unité d'un processeur (ALU, FPU, MMU etc.).

La redondance des systèmes électroniques eux-mêmes est une réponse classique aux aléas provoqués par les radiations, par exemple avec au moins trois systèmes fonctionnant en même temps qui comparent leurs résultats ; les systèmes qui produisent des résultats minoritaires doivent les recalculer, et tout système qui produit des résultats erronés de façon répétée peut être programmé pour être neutralisé.

Un mécanisme reposant sur une horloge de surveillance peut également permettre de réinitialiser un circuit logique lorsque le système n'est plus en mesure d'écrire une valeur correcte dans l'horloge ; celle-ci termine alors son compte à rebours en forçant la réinitialisation du système. C'est le stade ultime après les autres techniques de durcissement contre les radiations.

En haut



Source : Wikipedia