samedi 17 janvier 2009

Architecture des ordinateurs

par Ronan 3 comments
Tag

Architecture des ordinateurs


DDR, cache L2, BUS, RAM, AGP, BIOS, le monde de l’électro-informatique est plein d’acronymes, dont il est bon de connaitre la signification.

Dans ce petit guide, nous verrons à partir de zéro qu’est ce qu’un ordinateur, son architecture, le fonctionnement de certains de ces composants (carte mère, processeur, disque dur,…), comme marche un programme. A la fin, une série de petits exercices corrigés sera proposé pour ceux qui souhaite allez un peu plus loin.

Certaines images ne passent pas sur cet artcile (ainsi que le formatage), je vous propose donc une version PDF haute qualité (et gratuite) de ce petit guide de votre PC. Le document pèse 844 ko (ça fait combien en bits?) donc le transfert devrait durer dans les 30 secondes. Bonne lecture!



Qu’est ce qu’un ordinateur ?

Un ordinateur est composé basiquement d’une unité centrale. L’écran, l’imprimante ou le scanner n’étant que des périphériques externes.
Une unité centrale comprend :
- Une carte mère : elle permet à tous les composants de l’ordinateur de communiquer entre eux, grâce à des BUS de communications
- Un processeur : c’est la « calculette » de l’ordinateur, son cerveau
- Une mémoire vive (ou RAM : Random Access Memory)
- Une mémoire de masse (disque dur, CD, DVD, clé USB,…)
- Un lecteur optique
- Des périphériques : carte son, carte graphique, carte réseau,…

Quelle est la différence entre une calculatrice toute simple et un ordinateur ?
Ou autrement dit, est ce qu’une calculette de type collège est une ordinateur : non. La calculatrice de poche à une fonction unique (d’opérations). Son comportement est définit par son circuit. Tandis qu’un ordinateur est une entité programmable, dont le comportement est définit par l’éxécution d’instruction.


Architecture de Von Neumann
L’architecture de Von Neumann est la base des ordinateurs d’aujourd’hui. Il utilise une structure de stockage pour conserver à la fois les instructions des programmes et les données requises ou générées par le calcul. Le principal écart entre ce modèle est les ordinateurs actuels, c’est que maintenant il y a une mémoire pour les instructions et une mémoire pour les données, ce qui était fusionné dans l’architecture de Von Neumann.

La mémoire
Elle contient :
- Les instructions à exécuter
- Les données manipulées par le programme
La mémoire peut être représentée comme une liste de cases désigné par une adresse, chaque case contenant 1 octet .

Pour un ordinateur 32 bits, la ligne s’arrête à (2^32)-1
Accès mémoire :
- Accès en lecture : le processeur donne une adresse et la mémoire renvoie la valeur à cette adresse
- Accès en écriture : le processeur donne une adresse et une valeur, la mémoire stocke la valeur

Le processeur
Il peut :
- Lire des instructions
- Lire des données
- Ecrire des données
Le processeur est l’élément principal d’un ordinateur, et effectue des millions de calculs par secondes.
Il existe différentes familles de processeur :
- Power PC (sur les anciens mac)
- X86 (pour les PC)
- ARM (pour les PDA)
Chaque processeur reconnait un certain ensemble d’instructions : on parle de jeu d’instructions.
Une instruction est un ordre donné au processeur. Par exemple additionner deux valeurs, lire une valeur en mémoire… Quand on parle de l’horloge, ou de la fréquence d’horloge d’un processeur, c’est le nombre d’instructions qui peuvent être effectuées à la seconde.

Exécution d’une instruction :
- Propagation d’un signal dans les portes logiques du processeur (dissipation de chaleur)
- Plus la fréquence est haute, plus le processeur chauffe
- Les fréquences actuelles de processeur varient entre 1 et 4 GHz (entre 1 et 4 milliards d’instructions en une seconde)

La mémoire vive (RAM)
La RAM est une mémoire volatile, où toute information disparait dès lors qu’elle n’est plus alimentée. La mémoire vive contient des instructions (plusieurs instructions formants un programme), et des données relatifs aux instructions (exemple : un fichier MP3 (donnée) lu par VLC (instructions)).
Les temps d’accès à cette mémoire varient entre 10 et 100 nanosecondes.
Electroniquement parlant, c’est un circuit constitué de millions de condensateurs, chacun contenant la valeur 0(« déchargé ») ou 1(« chargé) (valeurs appelées bit). Le principe de fonctionnement d’un condensateur est basé sur la charge/décharge. C’est pourquoi il faut périodiquement les recharger. Ce cycle de rafraichissement intervient toutes les 15 ns environs.


Le disque dur magnétique
Le disque dur que vous avez dans votre ordinateur est en réalité un empilement de disques (plateaux). Chaque plateau présente deux faces magnétiques. Ces disques tournent autour d’un axe à la vitesse de 10 000 tours/minutes. Des têtes de lectures viennent lire et écrire sur ces plateaux. La distance entre une tête de lecture et la surface magnétique est de 0.25 microns, c’est pourquoi un disque dur est extrêmement sensibles à la poussière.

Un cylindre est divisé en piste, et chaque piste est divisée en secteur.
Pour Obtenir un bloc de donnée, il faut donner le cylindre, la surface, le secteur. Le temps d’accès est d’environ 1 à 10 millisecondes, et il comprend le positionnement de la tête de lecture, l’attente de rotation et le transfert des données.
Avantages : plus grande capacité de stockage, peu coûteux (technologie maitrisée)
Inconvénients : fragile, coûteux en énergie, lent


Mémoire de masse
On appelle mémoire de masse ce qui est destinée à l’information : disquette, CD, DVD, disque dur, mémoire flash. Les données sont stockées numériquement.

Stockage de fichier texte :
Le texte est numérisé sous la forme d’une suite d’octet ; chaque octet représentant un caractère ASCII.

Stockage image :
Une image peut être représentée comme un tableau de pixel. L’entête (hauteur et largeur) permet de repérer la fin de la ligne et la fin de l’image.
A chaque pixel on associe une couleur, et chaque couleur à son équivalent en octet.

Stockage du son (numérisation) :
Un signal analogique (exemple : la voix dans un micro) entre dans la carte son, qui le décompose en valeur numérique : à un certain intervalle, la carte son prend l’amplitude et la fréquence.


Les périphériques
- Carte réseaux
- Carte son
- Carte vidéo
Ces périphériques sont désormais de plus en plus directement intégrés à la carte mère. Les cartes vidéos possèdent un processeur dédié. La communication entre périphériques et avec le processeur est faite au travers d’un BUS d’entrée/sortie.


Vue globale
Pour résumer un peu ce que l’on a vu :
(voir PDF)



Le démarrage (BOOT)
Le processeur est muni d’un « reset ». Quand le signal reset est activé à « 1 » l’ordinateur démarre.

Intervient alors le BIOS, qui est une mémoire morte (ROM : read only memory). Le BIOS est un circuit intégré à la carte mère, qui contient un petit programme écrit lors de la fabrication.
Lorsque que le reset est activé, le programme BIOS est chargé en mémoire et est exécuté. Une vérification du matériel est effectué, puis une configuration des composants.

Vient alors le moment où le BIOS charge en mémoire le Boat loader (l’amorce) qui est situé par défaut sur le 1er secteur du 1er disque dur. On peut changer l’emplacement du BL dans les BIOS, et ainsi booter en premier sur le lecteur CD, sur une clé USB,…Le Boot Loader est capable de trouver le système d’exploitation sur le disque dur, le charge en mémoire et l’exécute.
Le Boot Loader est installé par le système d’exploitation.


Le système d’exploitation (OS)
Il existe principalement trois familles d’OS : Windows, Mac OS et les systèmes Unix (Linux, FreeBSD, …).
Le système d’exploitation a trois grandes fonctions :

- Interface entre le matériel et les programmes
Cette interface se fait au travers d’appels systèmes, appelés trappes. Exemple : à l’aide des pilotes de la webcam, Windows XP lit les images en provenance de la caméra, et les affiche dans le logiciel de messagerie instantanée MSN. On parle d’abstraction du matériel.

- Système de fichier
Chaque OS à sa manière, d’organiser, de ranger les fichiers sur le disque dur. Le programme n’a pas besoin de savoir sur quelle section se trouve un fichier, il effectue sa lecture/écriture par l’intermédiaire de l’OS (avec appels systèmes). L’Os gère également un arborescence de fichiers : les répertoires, les fichiers, les noms, …

- Multi-tâches
Le système d’exploitation serre à lancer des programmes. Il donne également l’illusion que plusieurs programme s’exécute en même temps. Cela est une notion un peu dure, à comprendre, mais voici un exemple :
Vous lancez firefox+mplayer+msn+firewall+antivirus : si ces logiciels fonctionnaient en même temps, alors on aurait besoin de 5 processeur. En fait les instructions sont exécutées les unes après les autres, mais à une vitesse tellement élevée que ni nous, ni le programme ne s’en rend compte.
On appelle cela l’ordonnancement : choisir le prochain programme qui va être lancé.


Execution d’un programme

Un programme est une séquence d’instructions (ordres basiques donnés au processeur). Les instructions opèrent sur les registres des du processeur.
Registre : case mémoire de 32/64 bits, située sur le processeur. Le temps d’accès est quasi instantanée (<< style="font-weight: bold; font-style: italic;">1/ Instruction d’accès mémoire :
LOAD 0x00, R1
(charger, accès en lecture) (la valeur de l’adresse mémoire 00) (dans le registre 1)
STORE 0x01 R1
(enregistre, accès en écriture)

2/ Opération numérique et logique
ADD R1, R2
(ajouter) (les valeurs contenu dans R1 et R2)
SUB R1, R2
(soustraire)
AND …
(multiplication)
OR …
NOT …

3/ Instruction de branchement
Il existe un registre spécial : le compteur ordinal. Ce registre contient l’adresse de la prochaine instruction à exécuter.
Le CO pointe vers la case de la prochaine instruction. A chaque exécution d’instruction, le compteur ordinal est incrémenté. Il existe des fonctions qui permettent de changer cet ordre, et ainsi de créer des boucle, des conditions, etc :
JUMP 0x01 : change inconditionnellement l’adresse de la prochaine instruction à exécuter.
BGT R1, R2, 0x18 : si R1 est supérieur (Branch if Greater Than) à R2, alors aller à l’adresse 18
BLE R2, 1, 0x05 : si R2 est plus petit ou égal (Branch if Lower or Equal) à 1, allez à l’adresse 5


Mémoire cache
Le but de cette mémoire cache est d’accélérer les accès du processeur vers la mémoire (instructions, données). Le temps d’accès à la mémoire cache est inférieur à celui de la mémoire vive, mais le cache a également une faible capacité de stockage.
Ainsi, si le processeur lit et écrit l’instruction i1 dans son registre, le cache va prendre les instructions suivantes (i2, i3, i4, …) et les stocker. Le but est de rapprocher les données du processeur.

Exemple : si on n’avait pas de cache, et que le processeur mettait 10 cycles à lire et écrire l’instruction i1, alors on a « perdu » 9 instructions.

Cela nous même à deux principes :
- Principe de localité spatiale : lors d’un accès à une case mémoire, les cases voisines ont une forte probabilité d’être accédées peu après
- Principe de localité temporelle : Lorsqu’une case mémoire est accédée, il y a de forte probabilité pour qu’elle soit ré-accédée de nouveau.


Système multi-processeurs : problème de cohérence du cache
Dans le cas d’un système possédant 2, 4 processeur, si chaque processeur à son cache, alors il y a des risques de cohérence.
C'est-à-dire que si le processeur 1 (P1) modifie l’instruction x stocké en mémoire vive, alors que le P2 avait stocké l’instruction avant cette modification, alors il exécutera une instruction obsolète.
La solution ? Elle est toute bête : il suffit de mettre en commun le cache. On a ainsi un système multi-cœur cohérent.

Interruption
L’interruption est un mécanisme géré par l’OS qui permet aux périphériques (clavier, disque dur, carte réseau) de signaler un évènement au processeur (touche enfoncée, données chargées, paquet réseau arrivé)
Traitement d’une interruption :
- Le processeur exécute un programme Pr1
- Signal d’interruption envoyé au processeur par un périphérique
- Le processeur interrompt les instructions associées à Pr1
- Le processeur retourne à l’éxécution de Pr1



Rappels et petite mise en pratique
1/ Quelle est la différence fondamentale entre une calculatrice de poche et un ordinateur ?
La calculatrice a une fonction unique, déterminé par son circuit électronique. L’ordinateur est programmable, déterminé par un programme en mémoire vive.

2/ A quoi servent les bus dans un ordinateur ? Quels sont les deux principaux ?
Les bus servent à la communication entre les composants. Les deux bus principaux sont le bus system (rapide) et le bus d’entrée/sortie (plus lent)

3/ Calcul de taux de transfert et de temps d’accès
Bus système :

EDO
SDRAM
SDRAM PC100
SDRAM PC 2100 (DDR)
Largeur du bus (NAP) (en bit)
32
64
64
64
Fréquence du bus (MHz)
66
66
100
133
Taux de transfert (Mo/s)
252
504
763
2030
Temps d’accès (ns)
15
15
10
7.5

La largeur du bus (aussi appelé NAP) est en faite le nombre de fils qui le compose. Exemple pour l’EDO, il a un NAP de 32, c'est-à-dire que le bus est composé de 32 fils (2^5), c'est-à-dire que l’on peut envoyer 32 bits (mot) en un top d’horloge.
Calculons le taux de transfert : le taux de transfert est égal à la fréquence fois le NAP. On obtient alors un taux de transfert en bit. Pour passer en octet on divise par 8, et pour passer en Mo on multiplie par 2^(20).


Rappel :
1 octet = 8 bits (2^3 bits)
1024 octets = 1ko (2^10 octets)
1024 k0 = 1 Mo (2^20 octets)
1024 Mo = 1Go (2^30 octets)

On a donc pour le cas de l’EDO : (66.10^6)*(2^5)/(2^3)/(2^-20) = 252
Pour le cas du DDR, comme il transmet deux mots par top d’horloge, il ne faudra pas oublier de multiplier le résultats par 2
Ici on suppose qu’un accès se fait en un cycle d’horloge. Donc pour EDO, 66MHz signifie 66 millions d’accès en une seconde, soit un temps d’accès de (1/66)*10^(-6)=15 ns

Dans le cas de la DDR (Double Data Rate) on peut transmettre deux mots mémoires par cycle. Si on avait de la DDR2, on transmettrait 4 mots.

Bus E/S :

ISA
EISA
PCI
AGP
AGP 4x
Largeur du bus (NAP) (en bit)
16
32
32
32
32
Fréquence du bus (MHz)
8.33
8.33
33.33
66.66
66.66
Taux de transfert (Mo/s)
15.9


254
1017
Même chose ici. On est sur le bus d’entrée/sortie, et l’on remarque bien que les taux de transfert sont bien moins élevé que sur le bus system. Ici il faut juste savoir que l’AGP 4x permet me transfert de 4 mots par top d’horloge.
Remarque : l’AGP correspond aux cartes graphiques, et est désormais de plus en plus intégré au bus system, à des fins d’optimisation.


4/ Accès mémoire processeur (1 GHz)/SDRAM PC100
Pour un processeur cadencé à 1GHZ, combien de cycles faut il attendre lors d’un accès à une mémoire SDRAM PC100 ?
Le processeur demande une donnée à la SDRAM. On sait que le processeur est cadencé à 1GHz, on sait que la SDRAM PC100 est cadencé à 100MHz (voir tableau ci-dessus), donc pendant que le processeur effectue 10 cycles, la SDRAM n’est effectue qu’un seul. Il faut donc attendre 10 cycles processeurs avant d’accéder à la donnée. On remarque donc que les 9/10 du temps le processeur est inutilisé, c’est pourquoi on a mis en place la mémoire cache.

5/ Largeur de bus et taille maximale de la mémoire
Dans le cas d’un bus d’adresse (il existe trois sous-types de bus à l’intérieur d’un bus : donnée, adresse, contrôle) de d’adresse de processeur de 32 bits, et qu’une case mémoire désigne 1 octet, la taille de la mémoire est de 2^(32) octets = 4Go

6/ Quelles sont les trois catégories d’instructions du processeur ?
- Opération (logique, numérique)
- Accès mémoire (lecture, écriture)
- Branchement (instructions qui modifient le compteur ordinal)

7/ Comment est représenté un programme ?
En une séquence d’instructions.

8/ Différence entre langage de haut niveau et de bas niveau :
Le langage de haut niveau est « compréhensible » par l’homme. Celui de bas niveau est une description textuelle, et le langage machine est codé sur 32 bits.

9/ Qu’est ce que la mémoire vive ?
C’est une mémoire volatile. Elle sert à stocker les instructions et les données du programme manipulées.
Architecture des ordinateurs
2009

Comments 3 comments
Soso a dit…

Intéressant cet article, c'est dommage que la source n'est pas citée.
On dirait un copier-coller.

SICW a dit…

Salut tout d'abord,
et bien je te propose de faire une recherche google de chacune de mes phrases, et tu postes ta conclusion ici;)
seule les images de disques durs proviennent de Wikipédia.

Bonne soirée

SICW

Anonyme a dit…

Je ne suis pas convaincu par la différence proposée entre la calculatrice de poche et l'ordinateur.
A quelques exceptions, les calculatrice sont toutes programmables, et par là ce sont des ordinateurs...

Videodrome

Recevez les derniers articles par mail
Ajouter à votre lecteur RSS

Blogroll et Amis

My Twitter Les derniers Tweets

locations of visitors to this page

Tous les articles ici présents sont sous licence Creative Common