Vous êtes sur la page 1sur 40

Programmation Systme et Rseau

Par : Nozha CHERIF


Nozha.cherif@esprit.tn

Programmation Systme et Rseau


Chapitre 2

Architecture de Von Neuman


Par : Nozha CHERIF
2

PLAN
Concept gnral de la machine de Von Neumann Concept dtaill de larchitecture Mmoire Module dE/S Bus Processeur Excution dune instruction Niveaux de programmation

Concept gnral
En 1946, John Von Neumann: mathmaticien amricain dorigine hongroise, a dfinit un modle de larchitecture interne que doit avoir un ordinateur (on la nomm machine de Von Neumann). Ce modle darchitecture de Von Neumann rgit jusqu nos jours, et reprsente larchitecture sur laquelle se base nos ordinateurs actuels.

Caractristiques de larchitecture de Von Neumann:


Un ordinateur doit avoir au minimum 4 composants suivants: Mmoire (qui permet le stockage de linformation) Processeur = dit aussi UCT(Unit Centrale de Traitement) = en anglais CPU(Central Processing Unit)=qui est constitu de deux entits nommes: o UAL (Unit Arithmtique et Logique) o UC (Unit de Contrle) dite aussi de Commande Unit dEntres-Sorties (E/S) Les 4 composants sont relis via un bus dit bus systme (nous allons le dfinir plus tard dans ce mme cours).
5

Architecture de Von Neumann


Stocke
Ralise le traitement: les oprations lmentaires Arithmtique et Logique

Chef dorchestre: gre le droulement des oprations du programme

Echange dinformation avec le monde extrieur (priphriques dE/S)

Notions globaux (1):


Tout au long de ce cours, nous allons comprendre la fonctionnalit de chaque composant individuellement et puis comment se fait la communication entre eux.

La mmoire centrale dite aussi principale est un dispositif capable de stocker les informations: linformation peut tre de type programme qui est en cours d'excution (auquel on a fait appel ou bien par lutilisateur via des touches clavier ou clic souris ou bien un programme qui a fait appel un autre programme) ou bien de type donnes (chiffres, lettres..) qui sont utilises ou traites par ce programme.
Un programme = est du traitement de linformation crit sous forme dune suite dinstructions (instruction= opration, tche effectuer)
7

Notions globaux (2):


Le processeur est divis en deux entits : lUAL et lUC, mais dispose aussi registres (un registre = espace de stockage : petite mmoire de faible capacit de stockage mais on peut y accder rapidement pour rcuprer des donnes frquemment utilises et effectuer des traitement locaux au sein mme du processeur, sans avoir recours un autre type de mmoire). Les autres donnes sont en mmoire principale ou sur des circuits priphriques (exemple: proviennent du clavier)

Fonctionnement global des composants:


Principe de fonctionnement global de lordinateur, que nous allons dvelopper par la suite pas pas: Lunit de commande (UC) extrait (= lit) les instructions du programme excuter une une depuis la mmoire. Une fois, linstruction arrive et analyse par lUC, lUC donne lordre de slectionner les oprandes (= les donnes que traite linstruction) en indiquant leur emplacement, aussi lopration faire (+ - ET OU) et lemplacement du rsultat. Dclenchement de lopration lmentaire adquate sur lunit de calcul (unit arithmtique et logique UAL). Eventuellement rangement du rsultat dans la mmoire ou dans un priphrique.

Fonctionnement global des composants:

10

Fonctionnement global des composants:


Exemple: linstruction est : additionner le contenu du registre R3 et R5 et mettre le rsultat dans le registre R1 .

Slection destination

2 1

11

Composant 1: Mmoire

La mmoire centrale ou principale ou RAM (Random Access Memory) stocke le programme en cours d'excution et les donnes utilises par ce programme.
RAM : Random Access Memory :

Mmoire accessible en criture (on peut y sauvegarder des informations) et lecture (rcuprer une information dj stocke). Mmoire volatile : son contenu est vid en l'absence d'alimentation (si systme teint, les dernires informations sont oublis)
12

Composant 1: Mmoire

La mmoire est constitue d'un ensemble de cellules (=cases), o on stocke (mmorise) des informations toutes de mme taille (mme nombre de bit): chaque information est dite motmmoire. Chaque mot mmoire est repr par son adresse @.
13

Composant 1 : Mmoire
La taille du mot mmoire ( w : sur combien de bits, le mot mmoire est crit) est gnralement en Octet (sur 8 bits), mais peut tre de 8, 16, 32 ou 64 bits sur les systmes rcents. Ladresse est crite sur N bits, donc on dispose de 2N mots mmoire. si le mot mmoire est un octet, on mesure la capacit totale de la mmoire(=le nombre de bits quelle peut contenir) en octet = 2N. les prfixes usuels pour les RAMs:

14

Composant 1 : Mmoire
Les oprations niveau mmoire: Fetch (=read): lecture du contenu dune cellule mmoire (mot mmoire) ayant une adresse spcifie lavance. Store (=write): Ecriture dun mot mmoire une adresse bien dtermine. La mmoire est interface (interroge) via: Registre dadresse RA = Memory Adress Register (MAR) contient ladresse dune donne Registre Mot RM= registre dchange de donnes= Memory Data Register (MDR) Signal Lecture/Ecriture = Fetch/Store signal Comment se droule lexcution dune opration au niveau de la mmoire?

15

Composant 1 : Mmoire
Droulement dune opration de lecture : lire (adresse @): Si on
veut effectuer une opration de lecture, on doit dabord disposer de ladresse du mot mmoire quon veut lire, do les tapes suivantes :

Charger l@ dans le registre dadresses MAR Dcodage de ladresse a lieu au niveau du circuit dcodeur (voir figure) Copier la valeur contenue l@ prcise dans le registre MDR.
16

Composant 1 : Mmoire

Opration Store(address, value):


Pour enregistrer un contenu dans la mmoire, il faut dabord spcifier o (son adresse), et la valeur du contenu, les tapes de lopration sont alors:

Charger l@ dans MAR Charger value dans MDR Dcoder ladresse dans MAR Copier le contenu de MDR dans cellule mmoire ayant ladresse @mentionne.
17

Composant 1 : Mmoire

18

Composant 2 : Unit dE/S


Module entre lunit centrale et les dispositifs priphriques dE/S.
Son rle : change dinformation:
Communiquer et interagir avec le monde extrieur via un cran, clavier, imprimante (peut tre dans les deux sens : lecture/criture des informations depuis ou vers les priphriques, ou change dans un seul sens , suivant le priphrique utilis)

RS

RE

Module interfac (interrog) via: o Registre de slection du priphrique (RS) :


mmorise l@ du priphrique avec lequel communiquer les donnes. o Registre dchange (RE), intermdiaire pour lchange de donnes entre le priphrique dsign et la sortie de lunit centrale.

19

Composant 3 : Bus
Les changes dinformations diffrents niveaux passent par un bus partag dit bus systme. Un bus est un ensemble de lignes (chemin conducteur) qui transportent linformation.
Il existe des bus : Entre systmes autonomes (ex ordinateur- retroprojecteur) : passage par des ''fils'' ou cbles. Entre composants (ex. Bus systme) : passage par des pistes sur circuit imprim. A l'intrieur d'un composant (ex. registres<-> UAL): passage sur des pistes mtalliques ''graves'' sur le support silicium

20

Composant 3 : Bus
Un bus transportant des 0 et des 1 peut tre:
Bus srie:
Les donnes d'un mot binaire (les 0 et les 1) sont envoyes successivement (synchronises par lhorloge: temps) sur un nombre de lignes de transmissions restreints. ex.

Bus parallle est constitu de groupes de lignes permettant l'envoi de mots binaires complets en une seule tape. Les donnes d'un mot binaire sont envoyes simultanment (sur plusieurs lignes)

21

Composant 3 : Bus
Le bus systme dsigne un bus parallle au cur de l'ordinateur qui fait circuler 3 types d'informations sur 3 groupes de fils:
Les lignes de donnes permettent dchanger du contenu mmoire: bidirectionnelles (par exemple entre les registres du processeur et la mmoire principale et vice versa) Les lignes d'adresse identifient la case mmoire concerne Les lignes de contrle signalent le type d'opration effectuer(read/ write..) et coordonnent les changes (synchronisation)
22

Composant 3 : Bus
Exemple: de bus systme entre processeur et mmoire :

23

Composant 3 : Bus
Exemple: Une instruction exige au processeur de rcuprer la valeur dune case mmoire dsigne par ladresse 0x2E00001C et la mettre dans un registre interne du processeur.
=> Comment procde le processeur? : Le processeur envoie ladresse hexadcimale 0x2E00001C (qui peut tre convertie en binaire) sur les lignes d'adresse. Il met le bit de contrle RD/WR 1 (pour dire quil sagit dune opration de ReaD : lecture) et la ligne de contrle ENABLE 0 (pour activer le module mmoire) La mmoire cherche la donne contenue cette adresse et envoie sa valeur (sur 32bits) sur les lignes de donnes. La mmoire fait passer le bit de contrle ACK de 1 0 pour signaler au processeur que l'information est disponible sur les lignes de donnes
24

Composant 4 : Processeur (1)


Comme mentionn auparavant, le processeur est compos de :
UAL: Unit arithmtique et logique qui effectue les oprations demands par le programme procdant opration (=instruction) par instruction : fait laction dsire (traitement: calcul ) sur les donnes et retourne le rsultat attendu. UC: Unit de Commande qui sert squencer les oprations et coordonner avec toutes les entits de lordinateur pour veiller au bon droulement des instructions: chef dorchestre. Registres: des petites mmoires rapides servant stocker des informations utiles pour le droulement de linstruction, les donnes utilises par le programme transfrs partir de la mmoire ou des priphriques dE/S.
25

Composant 4 : Processeur (2)


Vue simplifie du processeur:

26

Composant 4 : Processeur (3)


Vue plus dtaille du processeur:

27

Composant 4 : Processeur (4)


Description des lments du processeur:
Au dpart, on rappelle que le programme quon veut excuter est une suite dinstructions qui sont stockes une une dans la mmoire. Comment savoir quelle instruction extraire? lunit de commande, possde un registre dit IP: Instruction pointer, dit Program counter PC et aussi compteur ordinal CO, qui contient chaque fois ladresse de la prochaine instruction excuter. Une fois linstruction excuter reconnue, son code est transfr vers un registre spcifique dit IR: Instruction register = registre dinstruction. Rsum: Une nouvelle instruction est charge depuis la mmoire, l'adresse indique par le pointeur instruction (IP), vers le registre d'instruction (IR)
28

Composant 4 : Processeur (5)


Description des lments du processeur (suite):
A partir du code de linstruction, Le circuit dcodeur spare les diffrentes informations du code de l'instruction qui sont: Quel est le type d'instruction ? Quels sont les registres concerns ?

Le dcodeur informe le squenceur qui met partir de ces informations l'enchainement de signaux qui ralise l'action au niveau registres (ex: transfert de donnes depuis la mmoire ou un priphriqueE/S..), bus (rcolter les @ (bus adresse), valeurs des donnes (bus de donnes) , UAL (effectuer laction de lopration exemple: addition, ET, comparaison)...
LUAL, aprs excution de laction, retourne le rsultat et modifie le registre Flags de codes conditions qui est un ensemble de bits rsumant l'issue de la dernire opration de calcul ou de comparaison 29

Composant 4 : Processeur (6)


Bus de donnes:
La largeur du bus de donnes (sur combien de bits scrit la donne)
est souvent la mme que la largeur des registres internes.
Les systmes courants sont ainsi qualifis de: 8 bits : aujourd'hui rservs aux microcontrleurs pour des applications embarques lgres 16 bits : applications embarques, systmes anciens 32 bits : applications embarques volues (smarts...) , gnration prcdente de micro-ordinateurs 64 bits : gnration actuelle de micro-ordinateurs 128 bits : systmes ddis (processeurs graphiques) ou applications hautes performances (calcul scientifique)

30

Architecture gnrale

31

Les instructions (1)


Types dinstructions:
Il existe 3 catgories principales d'instructions : Transferts de donnes -Entre registre et mmoire ou E/S -Entre registres

Oprations arithmtiques ou logiques effectues au niveau UAL -Arithmtique entire usuelle a 2 oprandes -Oprateurs boolens NON, ET, OU, dcalages -Comparaisons
Modification du droulement de la squence -Branchements non conditionnels -Branchements conditionnels : choix de squence en fonction du rsultat d'une opration (CCR) -Appels de sous programmes et retours appelant

32

Les instructions(2)
Jeu dinstructions:
L'association entre le code de l'instruction et les actions effectues par le processeur est dtermine par le schma de cblage du dcodeur et du squenceur C'est le niveau du passage du logiciel (instructions sous formes d'informations) au matriel (actions effectives), on dit que les instructions sont excutes.
Exemple de codage binaire d'une instruction sur processeur type Intel (x86):

33

Instructions (3)
Jeu dinstructions:
Chaque type de processeur possde son propre systme d'associations entre codes d'instructions et actions effectives Cet ensemble dpend aussi du nombre et de la largeur des registres, des oprations possibles ...

L'ensemble des instructions qu'un type de processeur peut excuter s'appelle le jeu d'instructions (instruction set) C'est le ''vocabulaire'' du processeur Cest le concepteur du processeur qui dfinit Registres, chemins de donnees (Bus) Actions possibles (calculs, copies, acces bus...) Codage instructions actions La liste des instructions (jeu d'instruction) possibles sur ces dispositifs matriels

34

Niveaux de programmation (1)


Le code excut par un processeur peut tre qualifi de langage machine A un niveau fondamental il s'agit de mots binaires (souvent 2, 3 ou 4 octets) respectant un ensemble de conventions directement exploitables par les circuits logiques du dcodeur et du squenceur... Programmer en langage machine revient remplir une file d'octets avec des nombres qui correspondent des instructions (futures actions du processeur). Une 1re tape historique en programmation a t d'crire (en langage machine) des programmes capables de transformer un code lisible, utilisant des symboles et des mnmoniques, en code excutable Un tel programme est appel assembleur Le langage utilis est galement appel langage assembleur ou juste "assembleur Il s'agit essentiellement d'une transformation directe syntaxique (tables de correspondance) 35

Niveaux de programmation (2)

36

Niveaux de programmation (3)


Une 2me tape historique en programmation a t d'crire (en assembleur) des programmes capables de transformer un code structur dot d'abstraction, en code assembleur. Le code assembleur tant ensuite assembl en excutable Il s'agit d'une transformation complexe impliquant un niveau d'analyse grammaticale De tels programmes sont des compilateurs pour des langages dits de haut niveau tels que le C ou le C++)

37

Niveaux de programmation (4)


Le langage de haut niveau compil en assembleur est ensuite assembl en excutable.

38

Niveaux de programmation (5)


Principe dun langage compil (1):

39

Niveaux de programmation (6)


Principe dun langage compil (2):

40