Repères Historiques¶
Regardons cette excellente vidéo :
https://www.lumni.fr/video/une-histoire-de-l-architecture-des-ordinateurs
Questions
La Pascaline date de quel siècle ?
Du 17ème siècle.
A partir de quand peut on faire remonter l'histoire de l'informatique ?
L'antiquité.
La machine analytique de Babbage a été programmée par qui ?
Ada Lovelace.
L'ENIAC est le premier ordinateur avec quelle particularité ?
C'est le premier ordinateur entièrement électronique
Quel est l'intérêt principal d'utiliser des tubes à vide ?
- La rapidité de calcul
L'ENIAC effectue ses calculs dans quelle base ?
La base 10.
Von Neumann a proposé une nouvelle architecture :
- Où la mémoire est intégrée dans l'unité centrale
- Où la mémoire contient les données et les instructions
- Où les entrées et sorties sont dans la mémoire
- Où l'unité centrale effectue des calculs arithmétiques
Où la mémoire contient les données et les instructions.
Lister quelques avantages du transistor sur l'ampoule à vide.
- Il est plus petit
- Ne chauffe pas
- Il est plus performant
- Il est basé sur des connaissances physiques solides : celles de la physique quantique
Le nom MOS vient de ...
- Métal, Oxyde, Semi-conducteur
- Métal, Oxygène, soufre
- Métal, Oxyde, Silicium
Métal, Oxyde, Semi-conducteur.
Lister quelques avantages des transistors MOS
- Très faciles à construire
- Très facile de réduire leur taille
Les portes logiques "non et" (NAND) dont dites universelles car elle permettent ...
D'exprimer n'importe quelle fonction logique
Quel est l'un des problèmes de l'architecture de Von neumann ?
Le microprocesseur passe son temps à demander à accéder à la mémoire et à attendre que le résultat revienne
Une carte mère permet de ...
Regrouper les composants importants au même endroit : mémoire vive, processeur, carte graphique ...
Une puce de téléphone contient ...
- Le microprocesseur
- La RAM
- Un processeur graphique
- La carte réseau
- Des systèmes d'identification
Une des pistes pour pallier au problème lié à la taille limite physique est ...
La conception d'ordinateurs quantiques.
L'architecture de Von Neumann¶
Von Neumann est un des plus grands scientifiques du 20ème siècle. Ses contributions en mathématiques et en physiques sont particulièrement importantes. En terminale nous verrons un algorithme qu'il a proposé : le tri fusion.
Une vidéo où il répond à une question toujours d'actualité, celui de la formation des enseignants dans les domaines scientifiques :
Les ordinateurs actuels ont une architecture basée sur ce modèle mais avec des améliorations, comme celle évoquée dans la vidéo que nous avons vu et qui consiste à ajouter de la mémoire très rapide directement dans le microprocesseur.
Architecture d'Harvard¶
Une autre architecture est également utilisée dans certains cas, celle dite d'Harvard
.
Questions
- Quelle est la différence majeure de cette architecture avec celle de Von Neumann ?
- Quelles peuvent être les avantages de cette architecture ?
La mémoire¶
A vous de jouer
Quels sont les types de mémoires dont vous avez entendu parlé ?
On distingue la mémoire qui s'efface lorsque l'on étéint l'ordinateur, celle-ci est dite volatile
de la mémoire permanente, qui ne disparait pas lorsque l'ordinateur est mis hors tension.
Mémoire de stockage¶
Nous ne parlerons que des disques SSD. Ces disques plus récents que les disques durs utilisent de la mémoire dite flash
pour stocker les données. Ce type de disque dur utilise en fait des transistors particuliers qui sont une variation du transistor MOSFET.
Ordres de grandeur :
- capacité : jusqu’à 6 To (voire plus)
- vitesse : jusqu’à 600 Mo/s (SSD)
RAM¶
La RAM (pour Random Access Memory) permet de récupérer très rapidement des données. Cette mémoire est volatile.
Ordres de grandeur :
- capacité : jusqu’à 128 Go (voire plus)
- vitesse : jusqu’à 6.4 Go/s (DDR5)
Le microprocesseur¶
L'UCT (Unité Centrale de Traitement) correspond aujourd'hui au microprocesseur (CPU : Central Processing Unit en anglais).
Le microprocesseur contient deux parties distinctes :
- L'UAL (Unité Arithmétique et Logique) effectue les opérations arithmétiques usuelles : addition, multiplication ... et également les opérations logiques bit à bit : NON, ET, OU ... que nous étudierons par la suite.
- L'UC (Unité de Contrôle) est un composant qui orchestre l'exécution des instructions.
L'Unité de Contrôle pilote l'ordinateur.
Son cycle de fonctionnement comporte 3 étapes :
- charger l'instruction depuis la mémoire pointée par PC. Incrémenter PC.
- décoder l'instruction
- exécuter l'instruction.
Une mémoire cache¶
La RAM est rapide, mais le microprocesseur l’est encore plus. Afin de ne pas limiter ses performances en l’obligeant à attendre (on parle de goulot d’étranglement), on utilise de petites unités de mémoires, beaucoup plus rapides, mais nettement plus chères.
Ses mémoires cache servent à conserver un court instant des informations fréquemment consultées. Elles ont une très grande vitesse, et un coût élevé pour une faible capacité de stockage.
Ordres de grandeur :
- capacité : quelques ko (L1) à quelques Mo (L2)
- vitesse : jusqu’à 5 Go/s
Le registre de processeur¶
Il est intégré au processeur. Ce type de mémoire est très rapide mais aussi très cher et est donc réservé à une très faible quantité de données.
Ordres de grandeur :
- capacité : quelques dizaines d’octets
- vitesse : jusqu’à 30 Go/s
Les bus¶
Pour que les données circulent entre les différentes parties d’un ordinateur (mémoire, CPU et les entrées/sorties), il existe des systèmes de communication appelés bus. Il en existe de 3 grands types :
- bus d'adresses, qui permettent de faire curculer des adresses.
- bus de données qui permet de transmettre le message proprement dit.
- bus de contrôle, un ensemble de signaux identifiant le type d'action : lecture ou écriture, taille du message, etc.
Les entrées sorties¶
Les entrées sorties permettent de communiquer avec l'extérieur.
A vous de jouer
Donner des exemples d'entrées sorties.
Architectures multiprocesseur¶
Parallélisme¶
Lorsque l'on a beaucoup d'instructions à effectuer, il est souvent intéressant pour améliorer les performances de les exécuter en même temps.
Mais il ne suffit pas de paralléliser la partie matérielle pour résoudre des problèmes efficacement, il faut également concevoir des algorithmes adaptés à cette architecture.
Langage machine et assembleur¶
Un programme écrit dans un langage de haut niveau (comme Python) éloigné du langage machine (dit de bas niveau) dépend le moins possible du processeur et du système d'exploitation.
Si on devait utiliser uniquement des bits (0 ou 1) pour programmer ce serait extrêmement difficile. Pour cette raison, on utilise au niveau machine l'assembleur qui est plus facile à mémoriser et à utiliser.
Par exemple l'équivalent de 11100010100000100001000001111101
devient en assembleur ADD R1,R2,#125
On peut distinguer deux grands types de processeurs. Les processeurs RISC
(Reduced instruction set computer ou processeur à jeu d'instructions réduit) sont des processeurs ou le nombre d'instructions est limité et ces instructions sont généralistes - opérations arithmétiques, chargement de données dans/vers les registres, opérations binaires de décalage de bits, etc. La conséquence de ce choix est le nombre restreint de circuits spécifiques sur le processeur, et donc le nombre restreint de transistors.
On trouve aussi les processeurs de type CISC
((Complex Instruction Set Computer ou processeurs à jeu d'instruction étendu). Ce sont les processeurs de type x86, AMD64, Intel64, dont la fabrication a été rendue possible par la miniaturisation des transistors et la capacité d'organiser finement les circuits afin d'avoir des circuits spécialisés.
Question
En quoi cela peut être intéressant pour une programmeuse ou un programmeur d'avoir à connaître l'assembleur ? (En gros, à quoi cela pourrait servir ?)