La page sur l`architecture au format PDF - ISN

publicité
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Site de la spécialité ISN du lycée
Louis Marchal
Architecture d'un ordinateur
La page sur l'architecture au format PDF
Note : cette page est seulement une première approche du fonctionnement d'un ordinateur.
Les descriptions de tous les mécanismes, de toutes les fonctions, de tous les composants sont
simplifiés et réduits à l'essentiel.
Un ordinateur est composé de multiples parties qui n'apparaissent pas ici !
De plus ces systèmes sont en constante évolution et les chiffres donnés ici peuvent
rapidement devenir obsolètes.
Vous trouverez de nombreuses informations complémentaires sur le Site du Zéro
Un ordinateur depuis zéro
I. La théorie
1) Introduction
Partons de l'addition de deux nombres écrits sous forme binaire.
Exemple : 101101 + 1110101 = 10100010 car :
0+0=0
1 + 1= 0 et une retenue de 1
0+1=1
1 + 1+ 1 = 1 et une retenue de 1.
Un booléen est une variable qui peut prendre deux valeurs qui peuvent être (VRAI ou FAUX)
ou (0 ou 1), ce qui correspond à un bit (binary digit). Dans toute la suite, on appellera un
booléen un nombre qui vaut 0 ou 1.
Pour additionner deux booléens A et B , on voit que : le bit de poids faible est 1 si A ou B
valent 1 mais que A et B ne valent pas 1 ensemble. C'est la fonction booléenne XOR.
La retenue vaut 1 si A et B valent 1 : c'est la fonction booléenne AND.
Exercice : écrire un algorithme dans lequel l'utilisateur entre deux chiffres (0 ou 1).
L'algorithme calcule le bit de poids faible de la somme et la retenue.
1 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
2) Fonctions booléennes
Pour approfondir on pourra utiliser le lien suivant :
Booléen-université de Lyon
Une fonction booléenne est une fonction qui prend pour paramètres des booléens et qui
retourne un ou des booléens.
Les plus simples sont :
NOT qui à un booléen associe son contraire
OR qui à deux booléens A et B associe 1 si A ou B valent 1.
AND qui à deux booléens A et B associe 1 si A et B valent 1.
XOR qui à deux booléens A et B associe 1 si A ou B valent 1, mais que A et B ne valent pas
tous les deux 1.
En combinant ces fonctions booléennes on peut obtenir d'autres fonctions booléennes.
Ces fonctions se caractérisent par leurs tables de vérité. Voici celle de la fonction OR :
OR
0
1
0
0
1
1
1
1
Exercice : écrire les tables de vérité de AND et XOR.
3) Les circuits logiques
On peut aussi représenter ces fonctions booléennes par des circuits logiques :
2 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
On peut alors schématiser la somme de deux booléens comme ci dessous :
Tous ces circuits sont dits "combinatoires" car leur résultat ne dépend que des données
entrées.
D'autres circuits, dits "séquentiels" dépendent des entrées, mais aussi de leur état antérieur :
ils sont utilisés pour les mémoires des ordinateurs
Le circuit que l'on vient de voir permet d'additionner deux nombres à un chiffre, d'autres
circuits (plus complexes) permettent d'additionner des nombres à n chiffres en binaire, et
d'autres encore de faire d'autres opérations élémentaires.
4) Assembleur
Les opérations élémentaires que peut réaliser un processeur sont en petit nombre et
3 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
dépendent de la conception du processeur. Elles sont de quatre types : les échanges avec la
mémoire, les opérations arithmétiques, les opérations logiques et les contrôles (qui
permettent de faire des sauts, des boucles etc...)
L'ensemble de ces opérations est appelé un "jeu d'instructions".
On exprime souvent ces instructions dans un langage de bas niveau (très proche de la
machine) appelé assembleur.
Pour comprendre ce qui suit, il faut savoir que le processeur dispose de mémoires très
rapides, mais en petit nombre, qui s'appellent des "registres".
On suppose qu'on a ici deux registres A et B.
Voyons à quoi peuvent ressembler les instructions nécessaires pour faire une somme de deux
nombres :
LDA 11 : transfère ce qui est stocké dans la case mémoire d'adresse 11 dans le registre A (LD
comme LOAD)
STA 11 : fait l'opération inverse (ST comme STOCK)
ADD A: ajoute au registre A ce qu'il y a dans le registre B et le stocke dans A
Supposons que l'on veut additionner le contenu de la case mémoire 11 et celui de la case
mémoire 22 et mettre le résultat dans la mémoire 30. Voici une suite d'instructions possible :
LDA 11, LDB 22, ADD A, STA 30
Remarque : les lectures et les écritures dans la mémoire vive nécessitent une synchronisation
qui est obtenue grâce à une horloge.
Par exemple pour effectuer STA 11 : le processeur met les différents fils qui composent le bus
d'adresses (la voie de communication des adresses entre le processeur et la mémoire) à
l'expression de 11 en base 2 et les fils qui composent le bus de données dans un état qui
correspond au contenu de A. Au signal de l'horloge, chaque case mémoire compare son
numéro avec celui qui circule sur le bus d'adresses et la case 11 se reconnaît et enregistre ce
qui arrive sur le bus de données.
5) Le langage machine
Il faut maintenant se souvenir que l'ordinateur ne comprend que des 0 et des 1... Il faut donc
traduire les instructions en langage binaire.
Dans un ordinateur très simple on peut par exemple numéroter les différentes instructions et
stocker dans des cases numérotées successives la suite des instructions à effectuer.
Imaginons que nous ayons attribué les numéros suivants à nos instructions et registres :
A
0
B
1
LDA
2
LDB
3
ADD
4
STA
5
Chaque instruction va correspondre à deux cases en mémoire : l'une pour le numéro de
l'instruction, l'autre pour l'argument
Par exemple, le programme précedent devient :
100
2
101
11
102
3
103
22
104
4
105
0
106
5
107
30
Ceci est vraiment illisible, surtout si tous les nombres de ce tableau sont écrits en binaire !
Le langage que l'on obtient alors est le "langage machine", propre à chaque processeur....
On a aussi un registre qui s'appelle le compteur de programme (PC ou aussi compteur ordinal)
qui est initialisé à 100 pour notre exemple.
Pour effectuer ce programme le processeur :
charge le contenu des cases mémoires d'adresses PC et PC+1 dans des registres
décode le premier nombre comme une instruction et le deuxième comme son argument
exécute l'instruction
4 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
incrémente PC de 2
Voyons quelques instructions supplémentaires pour comprendre comment fonctionne une
boucle (ces instructions peuvent évidemment être différentes d'un ordinateur à l'autre, même
si les principes restent identiques) :
DEC A : enlève 1 au registre A
JMP n : met le PC à l'adresse n
JMPZ n : met le PC à l'adresse n si A vaut 0
On voudrait programmer l'algorithme suivant :
Si ce qu'il y a dans la case 11 vaut 2, lui ajouter ce qu'il y a dans la case 12 sinon lui ajouter
ce qu'il y a dans la case 13. Stocker le résultat dans la case 30.
PC Instruction
100 LDA 11
102 DEC A
104 DEC A (si A valait 2, on a maintennat 0 dans le registre A)
106 JMPZ 114 (si A vaut zéro on saute à l'instruction stocké à la case 114)
108 LDA 11 (on recharge la mémoire 11 car on a enlevé 2 à A)
110 LDB 13 (si A ne valait pas 0, voici ce que l'on fait)
112 JMP 118 (la suite est au n°118)
114 LDA 11
116 LDB 13
118 ADD A
120 STA 30
Le passage d'un langage évolué au langage machine s'appelle la compilation.
Certains langages ne sont pas compilés, mais sont interprétés : le programme n'est pas traduit
d'un bloc en langage machine, mais chaque instruction est interprétée et exécutée (après un
passage en langage machine). Python est un langage "semi-interprété"....
Certains programmes sont distribués en mode compilé (sans la source, c'est à dire le
programme en langage évolué), ce qui permet l'utilisation du programme, mais rend sa
compréhension et sa modification éventuelle très difficiles.
II.Architecture matérielle
Pour comprendre comment et où notre addition va s'effectuer, commençons par ouvrir un
ordinateur.
Nous identifierons les principaux composants, puis nous étudierons le processeur, les
mémoires et les programmes
1) Les principaux composants
Après avoir enlevé le capot d'un (vieil) ordinateur voici ce que l'on découvre :
5 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
On voit surtout une grosse boîte en bas à droite qui est l'alimentation électrique.
C'est un élément très important qui alimente tous les composants et qui doit fournir des
tensions très stables.
Vue de l'extérieur de cette alimentation :
6 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
On enlève cette alimentation et son ventilateur, on découvre la vue suivante :
7 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
la carte mère (au fond),
un petit ventilateur qui est au-dessus du processeur,
en bleu, les slots pour les barettes mémoire (RAM),
les connecteurs blancs (PCI) qui sont destinés à connecter des cartes graphique, réseau, son
etc...,
le connecteur AGP (marron) destiné à une carte graphique,
le chipset (composé des deux carrés noirs) qui est une véritable tour de contrôle de la
circulation des données,
les nappes (qui permettent le transport des données) et qui avec leurs connecteurs et
l'électronique associée constituent les bus et les connecteurs pour les prises externes en haut
à gauche.
Actuellement ces nappes IDE, qui transportent de 32 à 64 bits en parallèle, sont remplacées
par des câbles PCI-express, qui transportent les bits un par un (en série), mais à des
fréquences très élevées, ce qui les rend plus rapides que les nappes IDE.
En enlevant le ventilateur au-dessus du processeur, on découvre un radiateur, puis le
processeur collé sur ce radiateur : un processeur dégage beaucoup de chaleur et doit être
constamment refroidi.
8 sur 24
05/04/2014 23:08
Marchalisn
9 sur 24
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
05/04/2014 23:08
Marchalisn
10 sur 24
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Sur ces photos on voit les broches qui permettent de brancher le processeur sur son
connecteur qui est appelé un socket (photo suivante).
Le processeur est le cerveau de l'ordinateur, c'est lui qui traite les données.
Voyons de plus près les barettes mémoires :
11 sur 24
05/04/2014 23:08
Marchalisn
12 sur 24
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Partenaire de travail du processeur, la mémoire vive (appelée aussi RAM) stocke
temporairement les données à traiter par le processeur. Ainsi, plus il y a de mémoire de
disponible, plus il est possible d'y conserver des données temporairement (ce qui évite
d'accéder au disque dur qui est plus lent). La mémoire vive est vidée à chaque arrêt ou
redémarrage de votre ordinateur.
Voici une photo de disque dur (ouvert) :
Le disque dur est dans un boîtier de taille approximative 2cm × 14cm × 14cm.
Contrairement à la mémoire vive, les données stockées sur un disque dur sont permanentes et
ne sont pas effacées à l'arrêt de votre ordinateur C'est donc sur un disque dur que votre
système d'exploitation, vos logiciels et vos documents sont conservés.
Voici le connecteur AGP
13 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Puis les cartes (qui contiennent aussi un processeur spécialisé, un controleur de bus...)
Carte graphique AGP : on voit le ventilateur du processeur sur cette photo ainsi que les
mémoires (rectangles noirs)
Photo libre de droits du domaine public
Carte réseau
14 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Prise réseau (RJ45)
Carte son enfichée dans le slot PCI
15 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Les prises externes
16 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
On distingue :
les prises jack (pour le son, les micros, les haut-parleurs etc...) rondes de différentes
couleurs (à droite et au milieu)
le port VGA (pour le video-projecteur, etc..) en bleu au milieu
la prise db25, en rose (n'existe quasiment plus) : port parallèle pour une imprimante par
exemple
la prise ethernet (pour le réseau) à côté de la prise jack bleue
les prises USB
les prises PS2 à gauche pour la souris et le clavier
et on ne voit pas de prise HDMI (l'ordinateur est trop vieux) pour la video.
Voici un câble HDMI :
17 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Il existe bien sûr encore d'autres type de prises...
On voit ensuite la pile pour l'horloge de l'ordinateur
L'horloge est indispensable à la bonne marche d'un ordinateur car de nombreuses opérations
doivent être synchrones (simultanées)
Voici maintenant les deux parties du chipset : le "north bridge" qui est situé près du
processeur et sert à réguler les flux rapides (entre la mémoire vive et le processeur par
exemple) et le "south bridge" qui joue le même rôle pour des flux à cadence moindre, comme
par exemple les échanges avec le disque dur.
18 sur 24
05/04/2014 23:08
Marchalisn
19 sur 24
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
Pour finir, voici la carte mère : elle joue un rôle fondamental dans la structure des
ordinateurs. C'est elle qui accueille l'ensemble des composants internes de votre ordinateur
(processeur, mémoire, …) et gère les différentes interfaces avec vos périphériques : prise
pour les éléments internes et ports USB pour les périphériques externes.
Cette photo de Darkone est sous licence Creative Common
Les autres photos, sans mentions particulières, sont personnelles
Un ordinateur a aussi des périphériques : clavier, souris, écran, imprimante etc....dont tout
le monde connaît les usages.
2) Organisation simplifiée d'un ordinateur
20 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
3) Le processeur
L'élément principal de l'ordinateur est son processeur, qui est composé esentiellement de
son unité de contrôle(UC) et de son unité arithmétique et logique (UAL).
l'UC lit les données et lit et décode les instructions, gère le compteur de programme, envoie
les ordres d'éxécution d'instructions élémentaires à l'UAL.
l'UAL est un circuit complexe qui assure le traitement des opérations logiques (OR, AND etc..)
et les calculs arithmétiques.
Les deux unités comprennent des registres (mémoires très rapides) pour stocker les données
chargées depuis la mémoire (le programme, les autres données), le compteur de programme,
l'instruction à exécuter, les résultats etc...
On trouve aussi dans le processeur une mémoire cache où sont rangées les données
récemment utilisées (ces données sont souvent réutilisées, et il sera alors beaucoup plus
rapide de les chercher dans la mémoire cache que dans la mémoire vive).
Pour bien comprendre le fonctionnement du processeur, on pourra visionner l'animation du
site de l'IUT de Nîmes dont voici le lien:
Cours d'architecture de l'IUT
Il faut aller sur "Modèle de Von Neumann" puis sur "animation"
Un processeur est un assemblage de nombreux circuits dont la "brique" de base est un
21 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
transistor.
Un transistor est un composant électronique (utilisant des semi-conducteurs) avec trois
broches : le drain, la source et la grille.
Il joue le rôle d'un interrupteur qui s'ouvre ou se ferme suivant la tension qui est appliqué sur
sa grille.
.
Sur certains transistors quand la bonne tension est appliquée sur la grille (de 5V il y a
quelques années à environ 1,5 V actuellement), le courant passe entre la source et le drain,
l'interrupteur est fermé, et autrement le courant ne passe pas. Sur d'autres c'est l'inverse.
Voici un montage avec deux transistors qui matérialise la fonction booléenne NOT ;
Le transistor du haut se bloque quand la tension est appliquée et celui du bas laisse passer le
courant au même moment.
22 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
On peut ainsi construire des circuits pour les autres fonctions booléennes, pour les différentes
opérations etc....Un processeur compte plusieurs millions de transistors, et même,
récemment, quelques milliards.
Des informations supplémentaires sur le lien suivant :
Les transistors-Site du zero
Résumons les caractéristiques principales d'un processeur:
son jeu d'instructions
la capacité de la mémoire cache et les mécanismes d'accès à cette mémoire
la consommation électrique
le nombre de coeurs (c'est à dire de noyaux de calcul)
l' architecture interne
le chipset associé (très important pour la vitesse du système)
la taille de ses registres généraux : un processeur 32 bits cela signifie que ces registres
ont une capacité de 32 bits
la cadence en Ghz : 3,4 GHz signifie que l'horloge délivre 3,4 milliards de tops en une
seconde. On trouve aussi parfois le MIPS : le nombre de millions d'instructions par
seconde ou le FLOPS (nombre d'opérations sur des flottants par seconde)
Toutes ces informations ne permettent cependant de juger ni de l'efficacité, ni de la rapidité
d'un processeur, tant les architectures et les techniques ajoutées pour booster leurs
performances sont variables et tant les applications sont diverses (traitement de l'image, du
son, calculs, jeux etc...). Des tests avec diverses applications sont indispensables, en
complément, pour révèler les qualités et défauts de chacun des modèles.
4) Les mémoires
On retrouve la mémoire à différents endroits dans l'ordinateur (et dans les périphériques).
Ces mémoires font appel à différentes technologies qui ont beaucoup évolué depuis
l'utilisation de bandes magnétiques... Les principales caractéristiques d'une mémoire sont :
la capacité
Le temps d'accès
le débit
la volatilité (les données sont-elles perdues si la mémoire n'est plus alimentée en
courant)
Vocabulaire :
RAM : random access memory, mémoire volatile située dans les barettes mémoire, aussi
appelée mémoire vive. C'est la mémoire utilisée par les différentes applications, pour un
stockage temporaire.
ROM : read only memory, mémoire non volatile, située sur la carte mère et utilisée pour
stocker entre autre les informations nécessaires au démarrage de l'ordinateur.
Le schéma suivant explique pourquoi différentes sortes de mémoires sont nécessaires.
23 sur 24
05/04/2014 23:08
Marchalisn
file:///C:/Users/anne/Dropbox/ISN/html/site/archipdf.html
5) Les programmes
Lorsqu'on allume un ordinateur, le premier programme qui se lance est le BIOS (basic input
and output system) : il est installé dans la mémoire morte (ROM) de la carte mère. Il initialise
et teste les différents composants, recherche et initialise les périphériques, et amorce le
système d'exploitation.
Le système d'exploitation (linux, windows...) gère les périphériques, l'organisation des
fichiers et gère l'accès aux ressources des différentes applications.
Les applications sont les différents programmes permettant d'accomplir une tâche donnée
avec l'ordinateur (bureautique, jeux, traitements d'images etc..)
24 sur 24
05/04/2014 23:08
Téléchargement