ajouts dossier von_Neumann, assets et fichier audio quantique
This commit is contained in:
BIN
architecture/assets/evolution_freq.png
Normal file
BIN
architecture/assets/evolution_freq.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
architecture/assets/memoire.png
Normal file
BIN
architecture/assets/memoire.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
BIN
architecture/assets/processeur.jpeg
Normal file
BIN
architecture/assets/processeur.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
BIN
architecture/assets/von_neumann.png
Normal file
BIN
architecture/assets/von_neumann.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.8 KiB |
BIN
architecture/ordinateur_quantique.mp4
Normal file
BIN
architecture/ordinateur_quantique.mp4
Normal file
Binary file not shown.
54
architecture/von_Neumann/MEMOIRE.md
Normal file
54
architecture/von_Neumann/MEMOIRE.md
Normal file
@@ -0,0 +1,54 @@
|
||||
## Mémoire
|
||||
|
||||
> L'ordinateur effectue des calculs à partir d'instructions simples en binaires, stockées dans des cases mémoires.
|
||||
|
||||
### Types de mémoire
|
||||
|
||||
Il existe différentes mémoires dans une machine qui diffèrent selon :
|
||||
|
||||
- **Coût** (plus une mémoire est efficace, plus est est chère)
|
||||
|
||||
- **Vitesse ou rapidité d'accès** (temps d'accès au données stockées)
|
||||
|
||||
- **Durabilité** (volatiles ou permanentes)
|
||||
|
||||
- Mémoire vive (volatile) : le contenu est effacé une fois le programme terminé ou la machine éteinte - RAM -
|
||||
- Mémoire dure (permanente) : permet de stocker durablement des données. - HDD, SSD, Disques Magnétiques -
|
||||
|
||||
- **Capacité** ( exprimées en octets)
|
||||
|
||||
- **Mode d'accès** (Adresses ou ordre de rangement)
|
||||
|
||||
|
||||
|
||||
On a donc dans l'ordre :
|
||||
|
||||
- ***Les registres***
|
||||
|
||||
Il s'agit d'un emplacement mémoire interne au processeur qui permet de stocker des opérandes et des résultats intermédiaires lors des opérations effectuées dans l'UAL (Unité Arithmétique & Logique) et d'accéder très rapidement à son contenu.
|
||||
|
||||
Le type de registre varie selon le modèle de processeur, aujourd'hui la pluspart des machines disposent d'un registre de taille 64 bits.
|
||||
|
||||
|
||||
|
||||
- ***La mémoire cache***
|
||||
|
||||
Aussi appelée mémoire tampon, elle est très rapide et permet de réduire le temps d'attente pour l'accès à la ***mémoire centrale***.
|
||||
|
||||
En effet, la différence de vitesse entre le processeur (très rapide) et la mémoire centrale (plus lente) necessite un intermédiaire.
|
||||
|
||||
Celle ci contient souvent les données et instructions en cours d'utilisation : il y a de fortes probabilités que celles-ci soient à nouveau utilisées prochainement.
|
||||
|
||||
> Ce type de mémoire est souvent de type RAM statique (SRAM), plus rapide mais plus chère que la RAM de base.
|
||||
|
||||
|
||||
|
||||
- La mémoire centrale
|
||||
|
||||
Mémoire vive qui contient les programmes en cours d'exécution ainsi que les données qu'ils manipulent. De taille très importante (de l'ordre du giga aujourd'hui), elle est organisée en cellules qui contiennent chacune une donnée ou instruction représentée par un entier : c'est ce qu'on appelle ***adresse mémoire***
|
||||
|
||||
Le temps d'accès est le même, peu importe la cellule : on parle alors de ***RAM*** pour Random Acess Memory
|
||||
|
||||
|
||||
|
||||

|
||||
137
architecture/von_Neumann/README.md
Normal file
137
architecture/von_Neumann/README.md
Normal file
@@ -0,0 +1,137 @@
|
||||
## Architecture Von Neumann
|
||||
|
||||
|
||||
|
||||
### Avant la calculatrice...le calculateur !
|
||||
|
||||
Comme vu précédemment, l'informatique est avant tout une histoire de calcul et de ...philosophie !
|
||||
|
||||
Avant d'en arriver aux ordinateurs que nous utilisons quotidiennement, la technologie aura bien évoluée :
|
||||
|
||||
De la machine analytique de Charles Babbage à la machine de Turing, pourquoi l'informatique a t-elle évoluée ?
|
||||
|
||||
Après la machine de Babbage, [Alan Turing](https://fr.wikipedia.org/wiki/Alan_Turing) a probablement permis la plus grande avancée :
|
||||
|
||||
Il s'agit d'une machine virtuelle qu'on l'appelle [machine de Turing](https://fr.wikipedia.org/wiki/Machine_de_Turing).
|
||||
|
||||
-----
|
||||
|
||||
Le vrai problème de cette machine de Turing est qu'elle ne peut faire qu'une chose : calculer. Il faut une machine entièrement dédiée pour effectuer ces calculs.
|
||||
|
||||
Turing imagine alors écrire sur le ruban la procédure à suivre : c'est le début de la **virtualisation** : les programmes deviennent des données comme les autres et une unique machine peut devenir **universelle** et réaliser n'importe quel calcul.
|
||||
|
||||
En 1945, **[Von Neuman](https://fr.wikipedia.org/wiki/John_von_Neumann)**, invente un modèle qui définit un schéma d'ordinateur que l'on utilie toujours aujourd'hui : une structure de stockage unique pour conserver à la fois les instructions et les données demandées ou produites par le calcul.
|
||||
|
||||
> Avec l'arrivée des odinateurs quantiques, ce modèle est probablement voué à disparaître prochainement.
|
||||
|
||||
[](https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Von_Neumann_architecture_fr.svg/420px-Von_Neumann_architecture_fr.svg.png)
|
||||
|
||||
L’**architecture de Van Neumann** décompose l’ordinateur en 4 parties distinctes :
|
||||
|
||||
- l’**[unité arithmétique et logique](https://fr.wikipedia.org/wiki/Unité_arithmétique_et_logique)** ou unité de traitement : son rôle est d’effectuer les opérations de base.
|
||||
- l’**[unité de contrôle](https://fr.wikipedia.org/wiki/Unité_de_contrôle)**, chargée du « séquençage » des opérations.
|
||||
|
||||
Ces deux premières parties sont intégrées dans ce qu'on appelle le CPU ( Central Process Unit) ou [Processeur](https://fr.wikipedia.org/wiki/Processeur)
|
||||
|
||||
- la **[mémoire](https://fr.wikipedia.org/wiki/Mémoire_(informatique))** où sont stockées les données et programmes.
|
||||
- les dispositifs d’**[entrée-sortie](https://fr.wikipedia.org/wiki/Entrées-sorties)**, pour échanger avec le monde extérieur.
|
||||
|
||||
On peut également citer les [bus](https://fr.wikipedia.org/wiki/Bus_informatique) qui sont chargés de conduire des impulsions électriques entre les différents composants.
|
||||
|
||||
Le processeur contient l'unité arithmétique et logique, l'unité de contrôle mais aussi une petite partie de mémoire, appelée **registre** : il s'agit de la mémoire la plus rapide d'un ordinateur.
|
||||
|
||||
---------
|
||||
|
||||
### Spécificités
|
||||
|
||||
Les échanges entre la mémoire et les registres du processeur se dont via des bus selon une chronologie décidée par l'horloge et suivant le type d'échange.
|
||||
|
||||
Tous les programmes sont enregistrés dans la mémoire désormais.
|
||||
|
||||
L'adresse d'une instruction (représentée par un nombre entier) en cours de traitement est stockée dans une mémoire interne au processeur.
|
||||
|
||||
La valeur de cette instruction est également stockée dans une autre mémoire interne.
|
||||
|
||||
Enfin, le CPU stock les données d'un programme avant son utilisation dans un *banc de registre* .
|
||||
|
||||
---------
|
||||
|
||||
### Le processeur
|
||||
|
||||

|
||||
|
||||
L'univté arithmétique effectue des opérations *arithmétiques* telles que :
|
||||
|
||||
- additions
|
||||
- opérations
|
||||
- logiques
|
||||
|
||||
Ces opérations sont transmises en langage binaire et donc incompréhensibles pour nous. Néanmoins, il existe un langage dit ***assembleur*** qui permet, à l'aide d'outils tels que des [compilateurs](https://fr.wikipedia.org/wiki/Compilateur) de traduire le code d'un langage de haut niveau en langage compréhensible pour un microprocesseur et inversement.
|
||||
|
||||
Le CPU dispose d'une horloge qui cadence l'accomplissement des instructions : on utilise l'unité de mesure ***cycle*** pour mesurer le nombres d'instructions à la seconde.
|
||||
|
||||
La fréquence d'un processeur correspond donc au nombre de cycles que celui-ci peut réaliser par seconde.
|
||||
|
||||
> Nos processeurs actuels sont cadencés à plusieurs GHz : plusieurs milliards de cycles d'horloges par seconde.
|
||||
|
||||
Jusqu'à 2005, la fréquence des processeurs évoluait de manière continuelle. Depuis, c'est plus compliquée : la chaleur produite par les puces devenait trop importante et perturbait la lecture des tensions. Il a donc fallu passer par l'augmentation des coeurs dans le processeur.
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
> Un cycle représente cinq actions :
|
||||
>
|
||||
> - Lire l'instruction (LI)
|
||||
> - Décoder l'instruction (DI)
|
||||
> - Executer l'opération (EX)
|
||||
> - Accéder à la mémoire (M)
|
||||
> - Écrire le résultat dans les registres (ER)
|
||||
|
||||
|
||||
|
||||
Enfin, le processeur n'execute pas les instructions de manière séquentielle : il le fait simultanément pour différentes instructions qui sont à différentes étapes de leur traitement : on appelle ce principe *pipeline d'instructions*
|
||||
|
||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
||||
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
||||
| LI | DI | EX | M | ER | | | | |
|
||||
| | LI | DI | EX | M | ER | | | |
|
||||
| | | LI | DI | EX | M | ER | | |
|
||||
| | | | LI | DI | EX | M | ER | |
|
||||
| | | | | LI | DI | EX | M | ER |
|
||||
|
||||
Dans ce tableau, nous avons cinq instructions : il nous faudrait vingt-cinq (25) cycles en théorie.
|
||||
|
||||
Ici, il ne nous en faut que neuf (9).
|
||||
|
||||
|
||||
|
||||
### Pour la culture ...
|
||||
|
||||
- Les constructeurs de processeurs avaient deux méthodes simples pour augmenter les performances :
|
||||
- Reduire la taille des composants (Entre 10 et 5 nanomètres aujourd'hui)
|
||||
- Augmenter la fréquence d'horloge
|
||||
- Le constructeurs font en sorte de s'aligner sur ce qu'on appelle la **[loi de Moore](https://fr.wikipedia.org/wiki/Loi_de_Moore)** pendant très longtemps : le nombre de transistors présents sur un processeur ne fait que doubler chaque année depuis 1975.
|
||||
- Limite physique : on ne peut plus réduire les composants car des problèmes physiques sont apparus.
|
||||
|
||||
- L'augmentation des fréquences entraine une augmentation de la consommation électrique : une augmentation par deux des performances multiplie la consommation par...huit (8) !!
|
||||
- Quels problèmes cela pose t-il ?
|
||||
|
||||
Pour poursuivre la course à la performance il faut donc trouvez d'autres solutions :
|
||||
|
||||
- Les microprocesseurs actuels embarquent plusieurs *coeurs*, c'est à dire plusieurs processeurs dans le processeurs.
|
||||
- En réalité, le gain n'est obtenu que pour les applications spécifiquement programmé pour utilisés cette architecture et travailler en *parallèle*
|
||||
- D'autres architectures apparaissent également, même si elles ne sont pas encore tout à fait au point, du moins pour le grand public :
|
||||
- l'[ordinateur quantique](https://fr.wikipedia.org/wiki/Calculateur_quantique) que les scientifiques étudient depuis les années 1990 et qui fait des progrès impressionnant depuis quelques années.
|
||||
- moins connu, l'[ordinateur ADN](https://fr.wikipedia.org/wiki/Ordinateur_à_ADN), un ordinateur non non électronique actuellement explorées pour résoudre des problèmes combinatoires.
|
||||
|
||||
--------
|
||||
|
||||
Sources :
|
||||
|
||||
- [Wikipedia](https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Accueil_principal)
|
||||
- [Christophe Mieszczak](https://framagit.org/tofmzk/informatique_git/-/blob/master/premiere_nsi/architecture/microprocesseurs/architecture_van_neuman.md)
|
||||
- [France Culture](https://www.franceculture.fr/emissions/la-question-du-jour/a-quoi-sert-un-ordinateur-quantique)
|
||||
- [INRIA](https://www.inria.fr/fr/comment-fonctionne-un-ordinateur-quantique)
|
||||
- Manuel de spécialité NSI, éditions Hatier
|
||||
|
||||
57
architecture/von_Neumann/TURING.md
Normal file
57
architecture/von_Neumann/TURING.md
Normal file
@@ -0,0 +1,57 @@
|
||||
## Machine de Turing
|
||||
|
||||
Cette machine est constituée :
|
||||
|
||||
- D' un **ruban infini** divisé en cases consécutives. Chaque case contient un symbole d'un *alphabet*. L'alphabet contient un symbole spécial appelé « symbole blanc », et un ou plusieurs autres symboles. Le ruban est supposé être de longueur infinie vers la gauche ou vers la droite, en d'autres termes la machine doit toujours avoir assez de longueur de ruban pour son exécution. On considère que les cases du ruban contiennent par défaut le « symbole blanc » .
|
||||
|
||||
- Une **tête de lecture/écriture** (ci-dessous le **`V`**) qui peut lire et écrire les symboles sur le ruban, et se déplacer vers la gauche ou vers la droite du ruban
|
||||
|
||||
- Un **registre d'état** qui mémorise l'état courant de la machine de Turing. Le nombre d'états possibles est toujours fini, et il existe un état spécial appelé « état de départ » qui est l'état initial de la machine avant son exécution.
|
||||
|
||||
- Une **table d'actions** qui indique à la machine quel symbole écrire sur le ruban, comment déplacer la tête de lecture (vers la droite ou la gauche), et quel est le nouvel état, en fonction du symbole lu sur le ruban et de l'état courant de la machine. Si aucune action n'existe pour une combinaison donnée d'un symbole lu et d'un état courant, la machine s'arrête.
|
||||
|
||||
|
||||
|
||||
**Exemple : voici l'algorithme permettant d'ajouter 1 à un nombre binaire.**
|
||||
|
||||
Choisissez un nombre binaire et écrivez le à droite de la tête de lecture (par exemple 101).
|
||||
|
||||
| | | | | | | | | | | V | | | | | | | | | |
|
||||
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
||||
| | | | | | | | | | | | 1 | 0 | 1 | | | | | | |
|
||||
|
||||
Réalisez pas à pas l'algorithme ci-dessous :
|
||||
|
||||
- la machine lit chaque case de gauche à droite jusqu'à tomber sur une case vide. Il y a alors deux cas possibles:
|
||||
- Si la dernière case mémorisée dans le registre d'état est un 0 alors la machine se décale d'une case à gauche et écrit 1 puis retourne dans sa position initiale. .
|
||||
- Si la dernière case est un 1, la machine se décale d'une case à gauche et :
|
||||
- si cette case vaut 1, elle écrit 0 puis se décale à gauche et recommence le point précédent.
|
||||
- si cette case vaut 0 ou est vide, elle écrit 1 puis retourne à sa position initiale.
|
||||
|
||||
*Etape 1* : la machine va à droite jusqu'à la première case vide.
|
||||
|
||||
| | | | | | | | | | | | | | | V | | | | | |
|
||||
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
||||
| | | | | | | | | | | | 1 | 0 | 1 | | | | | | |
|
||||
|
||||
*Etape 2* : la dernière case lue est ... donc ...
|
||||
|
||||
| | | | | | | | | | | | | | V | | | | | | |
|
||||
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
||||
| | | | | | | | | | | | 1 | 0 | 0 | | | | | | |
|
||||
|
||||
*Etape 4* : ...
|
||||
|
||||
| | | | | | | | | | | | | V | | | | | | | |
|
||||
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
||||
| | | | | | | | | | | | 1 | 1 | 0 | | | | | | |
|
||||
|
||||
*Etape 5* : ...
|
||||
|
||||
| | | | | | | | | | | V | | | | | | | | | |
|
||||
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|
||||
| | | | | | | | | | | | 1 | 1 | 0 | | | | | | |
|
||||
|
||||
Vous trouverez [sur ce site](http://zanotti.univ-tln.fr/turing/turing.php) un simulateur d'une machin de de Turing si vous souhaitez aller plus loin.
|
||||
|
||||
ll faut garder à l'esprit que la machine de Turing est un modèle universel de calcul et qu'elle peut calculer tout ce que n'importe quel ordinateur physique peut calculer (aussi puissant soit-il). Inversement, ce qu'elle ne peut pas calculer ne peut l'être non plus par un ordinateur. Elle résume donc de manière saisissante le concept d'*ordinateur* et constitue un support idéal pour raisonner autour de la notion d'*algorithme* de *calcul* ou de *démonstration*. En terminale, nous étudierons plus en détail le concept de calculabilité.
|
||||
Reference in New Issue
Block a user