1. Au départ ...
L'homme a cherché à fabriquer des machines permettant de faire à sa place certaines tâches. On peut considérer deux axes de développement :
• La formalisation de l'écriture des tâches à effectuer ->
algorithmes et théorie des langages.
• Le développement de technologies permettant de réaliser ces algorithmes.
Rechercher et noter les fonctions des différents organes de la machine de Babbage
Les machines à calculer ont fait l'objet d'un intérêt particulier, dans le but de faciliter les opérations fastidieuses et limiter les erreurs.
L'avènement des transistors (en commutation) va ouvrir la porte des calculateurs électroniques, avec bien sur le système de numération binaire et les opérateurs logiques...
2. L'électronique numérique – Les circuits et fonctions logiques
2.1. Le formalisme logique
Le traitement électronique a commencé avec des informations simples à traiter de type tout ou rien (binaires) : une lumière est allumée ou éteinte, une store est baissé ou ouvert etc.
Les opérateurs logiques permettent de manipuler ces informations : il fait jour et le store est ouvert alors éteindre la lumière.
La théorie de la logique a été développée par le mathématicien Boole. Elle repose sur une structure d'algèbre composée de deux éléments, 0 et 1 associés au opérateurs logique élémentaires : ET, OU, NON notés (. ; + ; / )
On utilise donc des variables pour représenter les informations :
a : jour a = 0 -- > il ne fait pas jour a = 1 -- > il fait jour b : le store b = 0 -- > le store est ouvert b = 1 --> le store est fermé c : la lampe c = 0 --> la lampe est éteinte c = 1 --> la lampe est allumée On peut alors exprimer des propositions :
• il fait jour et le store est ouvert s'exprime a⋅¯b
• il ne fait pas jour ou le store est fermé s'exprime ¯a+b
On peut en déduire deux expressions logiques de c (lumière) en fonction de a (jour) et b (store):
c=f(a , b)=...
f est la fonction logique qui donne l'état de la lumière en fonction du jour et du store On peut également représenter la table de vérité de la fonction f.
a b f
Illustration 1: machine analytique de Babbage(imaginée en 1834)
Illustration 2: Triumphator CRN1 (1958) Germany
L'implémentation des fonctions logiques s'est développée avec les matrices à diodes.
Fin des années cinquantes apparaissent les premiers circuits éléctroniques logiques qui marquent le début de l'ère numérique.
➢ A partir du doc ressource <Fonctions logiques>, compléter ci-dessous les tables de vérité des fonctions logiques élémentaires
a b /a a . b a + b
Afin d'aider à la représentation et pour préfigurer le cablâge d'un cicuit logique, on utilise des symboles pour les opérateurs logiques.
➢ Noter ci-dessous les symboles des opérateurs logiques élémentaires.
2.2. Des opérateurs logiques à l'arithmétique
➢ Utiliser le simulateur logisim pour établir la table de vérité de la structure logique ci-contre.
a b c s r
Ci-dessous les schémas d'un porte logique NON ET (NAND) avec des composants éléctroniques, discrets et intégrés.
Le développement de ces structures a définitivement orienté la représentation de l'information vers le binaire, pour les nombres, mais aussi les caractères, les images, le son etc. Le traitement de ces informations nécessitait de pouvoir manipuler les mots binaires qui les représentent.
Illustration 4: La même structure avec des transistors MOS
Illustration 3: Opérateur logique Full Addition
Illustration 5: Circuit logique discret NAND (technologie DTL)
Pour cela ont été développés sous forme de circuits intégrés des opérateurs arithmétiques et logiques (addition, multiplication, décalage, ET, OU, XOR...).
L'ensemble de ces circuits appartiennent à la logique combinatoire
En logique combinatoire la sortie S ne dépend que de l'état des entrées
3. Des circuits logiques aux systèmes numériques
Les cicuits logiques on évolué. La logique séquentielle a permis de traduire l'évolution temporelle d'un système avec l'introduction du changement d'état.
Dans un système séquentiel l’état du système (sortie) est déterminé par l’état des entrées et l’état précédent du système .
Les microprocesseurs sont apparus et avec eux les circuits mémoire. Ce sont alors développées des architectures très complexes capables d'effectuer séquentiellement des opérations sur des données numériques, selon des instructions stockées dans des mémoires.
3.1. Les architectures programmables
L'architecture de Von Neumann
• Un CPU (Central Process Unit) avec :
◦ une unité de traitement arithmétique et logique (UAL).
◦ des registres de travail où sont chargées les opérandes
◦ une unité de contrôle qui gère le séquencement des opérations et flux de données.
◦ Un registre d'état reflète l'état du CPU
• Des circuits mémoire où se trouvent
◦ les instructions en lecture (programme)
◦ les données en lecture /ecriture
• Des circuits de communication Entrée et Sortie.
• . L'ensemble est synchronisé par une horloge.
L'architecture de Von Neumann est encore présente dans une majorité de systèmes numériques
Les évolutions visent à limiter les temps d'accès aux données. En effet le CPU attend régulièrement 3 à 4 cycles avant de recevoir une donnée et pouvoir effectuer l'instruction, sachant qu' un cycle machine est de l'ordre de 1 ns.
Un système de bus permet de faciliter la circulation des données au sein du système.
Dessin 1: Architecture de Von Neuman - 1945 Central Processing Unit
Control Unit
Arithmetic Logic Unit
Memory Unit Input
Device Output
Device
Fonction
Entrées Sorties
Fonction
Entrées
Sortie (état présent)
retard État prédédent
3.2. Le CPU ou microprocesseurs a) Constitution
• unité de calcul arithmétique et logique. Ces sont les circuits qui font les opérations élémentaires, logiques et aritmétiques
• des registres – (accumulateurs) ou sont stockés les opérandes pour traitement.
• unité de contrôle (program counter, registre d'état...)Structure cablé qui encadre le fonctionnement de la structure (flux des données, décodage des codes instructions...) .
b) Jeu d'instructions - programmation
Le jeu d’instructions machines dépend de chaque microprocesseur. On trouve couramment :
• intructions de transferts (activité préférée du processeur)
• instructions arithmétiques
• instructions logiques
• instructions entrée / sortie
• instructions de branchement (saut de ligne conditionnel ou non) c) Langage machine
Ce sont les codes binaires qui désignent les instructions élémentaires du microprocesseurs, les addresses des données en mémoires et celles des entrées sorties.
L'unité de contrôle suit un cycle d'éxectution au rythme imposé par l'horloge du système.
• Chargement du code instruction avec l'adresse pointée par le PC (Program Counter)
• Décodage du code instruction et chargement éventuel des données
• Exécution de l'instruction par l'ALU ou l'unité de contrôle selon le type d'instruction. Mise à jour du PC avec pointage vers l'instruction suivante (sequence, saut, branchement…).
On n'écrit pas directement les programmes en langage machine. Le langage de plus bas niveau est l'assembleur. Il est constitué de mnémoniques qui expriment directement les instructions élémentaires du processeur. Chaque processeur a donc son assembleur (tendance à l'uniformisation)
Avec un langage de haut niveau, nous sommes loin du langage machine et des instructions du microprocesseur, c'est l'interpréteur qui se chargera de convertir le code source en instructions machines et code binaire... mais il faut plusieurs intermédiaires car outre les instructions il faut gérer la mémoire et l'écriture / lecture des données...
d) Caractéristiques – performances
Compléter les données disponibles du tableau avec cette page Wikipedia
Année 1970 1985 2000 2010 2020
Nombre de transistors 2300 275000 42 000 000
Finesse de gravure (nm) 10000 1500 180
Taille des données 4 bits 32 bits 32 bits
jeux d'instructions 46 ~100
Cadencement max 740 kHz 20Mhz 3,8 GHz
Million d'instruction /seconde (MIPS) 0,09 5 1700
3.3. Les mémoires
Ce sont des circuits constitués de cellules élémentaires. Chacune d'elle mémorise un bit. La majorité des circuits mémoires sont cependant organisés pour gérer des mots de 8, 16, 32, 64 bits...
Les technologies de mémoires diffèrent par
• leur niveau d'intégration (nombre de cellules / mm2) ou leur capacité / unité de surface.
• le temps d'accès
• l'énergie consommée est aujourd'hui un facteur prédiminat
• leur apptitude à conserver ou non l'information hors tension (non alimentées).
Ces critères déterminent l'usage et la performance des différentes technologies.
Quelques chiffres :
Technologie Temps d'accès
Registre ~ 1ns
Cache ~ 4ns
Mémoire vive (RAM) quelques 10 ns
Flash < 1 ms
Disque Dur ~10 ms
Réseau quelques ms à ???
Les registres et les mémoires caches se trouvent dans le microprocesseur.
La RAM est sur la carte mère où se trouve également le microprocesseur L'emplacement des autres peut varier.
Illustration 7: Structure d'une mémoire 8 bits
4. Systèmes embarqués - Robotique.
Les systèmes embarqués regroupent l'ensemble des systèmes numériques (électroniques) présents sur les équipements et appareils qui n'ont pas une vocation purement informatique (Tout ce qui n'est pas un ordinateur).
Exemples : Pilotage des machines et des procédés industriel, automobile, électroménager, téléphone portable, robotique et tout appareillage dont le fonctionnement est géré par de l'électronique… C'est à dire quasiment partout !
Capteurs et actionneurs
Les systèmes embarquées traitent des informations du domaine réel. Elles sont acquises par le biais de capteurs qui convertissent les grandeurs physiques (température, pression acoustique, force etc.) en tensions électriques analogiques (qui varient de manière continue dans le temps). Ces dernières sont ensuite numérisées pour être traitées par le système.
Animation flash Caractéristiques :
• Criticité : ces systèmes sont critiques dans le sens où ils agissent directement sur leur environnement matériel avec des conséquences immédiates.
• Réactivité : le temps de réaction est imposé par l'environnement, on parle aussi de systèmes temps réel.
• Autonomie, fiabilité et sécurité : une fois en production, les systèmes doivent fonctionner sans intervention de l'homme, sans erreur, le plus longtemps possible, indépendamment des contraintes environnementales.
Programmation
La programmation de ces systèmes se fait à bas niveau, c'est à dire que les instructions et actions sont étroitement liées aux caractéristiques des circuits de l'environnement matériel à programmer.
Les plate-formes de développement utilisent souvent le langage C mais aussi Ada et bien sur l'assembleur qui est une écriture mnémonique du langage machine. On rencontre aussi des langages et environnements spécifiques aux systèmes à programmer.
Les plate-formes matérielles sont souvent constituées de microcontrôleurs ou SoC (System On Chip) qui intègrent dans un seul composant une architecture standard complète (microprocesseur, RAM, EEPROM FLASH, CAN)
Illustration 8: La voiture de demain...