Académique Documents
Professionnel Documents
Culture Documents
ARCHITECTURE DES ORDINATEUR -charger l'adresse de mot qu'on veut lire dans RAM;
-lancer la commane R/W = 1
**architecture de Von neuman** -l'information se trouve dans RIM ,au bout d'un cetain temp;
constituer d'une memoire centrale , et d'une unite centrale
(processeur) cette *->Ecrire une information:
derniere il a 2 unitee UAL(Arithmetique est logic) est uniter de -charger l'adresse memoire ou on veut mettre l'information;
commade (controle); -placer l'information qu'on veut enregister dans le RIM;
-activer la commande R/W = 0 ,pour ecrire l'information;
*->memoire :dispositif capable d'enregistrer des informations;
*->Memoire modulaire (eviter qu'un cpu monopolise toute la
capacite:quatite d'information qu'on peut stocker dans une memoire)
memoire; • découper la mémoire en plusieurs modules.
volatilite:une memoire perd son contenus lors d'une coupure • Plusieurs bus permettent d’accéder simultanément (en même
de courant; temps) à la MC.
mode d'acess:soit mode ecriture ou lecture; • Possible d’avoir autant d’accès que de modules.
temps d'access:c'est le temps qui separe la demande et la • On ne peut pas accéder simultanément à un module.
disponiblite • Les bits du poid fort pour selectionner un module.
de l'information;
*->Mémoire entrelacée:(eviter qu'un cpu monopolise un
*->classification des memoires module)
memoire semi-conducteure:RAM,ROM,;(tansistor ou • Un module est divisé en plusieurs Blocs .
condencateur) • les adresses consécutive sont placé dans des bloc différents .
memoire magnetique:disque dur,disquette; • Le nombre de blocs représente le degré d’entrelacement.
memoire optique:CD,DVD-ROM; • Les bits de poids forts pour sélectionner un module ,les bit de
poid faible
*->memoire semi-conducteur: pour selectioner un bloc dans un module. le milier pour
memoire vive: selectioner le mot.
statique(bascule);dynamique(condensateur);associative(entre
les 2); Execution d'un programme:
memoire mort:en lecture seul,ROM,PROM,EPROM; LEC:lecture mot memoire de la memoire vers registre mot.
(ECR)
*->memoire central:c'est l'espace de travail du LMM:lecture mot memoire de Registre mots vers bus de
processeur;pour executer donnes.(EMM)
un programme il faut le charger dans une MC; LCO:lecture compteur ordinal,transfert le contenu de CO
RAM:memoire access aleatoire ,le temp d'avoir une dans bus adresse.(CCO:chargement)
information est independant PSR:pointage sur registre,copie l'@ de bus d'adresse vers
de sa place dans la memoire registre d'adresse.
CRI:charger registre d'instruction,mettre le mot memoire
*->vue logique d'un memoire: dans le registre d'instruction.
-memoire est un vecteure constitue des mots memoire CAD:chargement adresse,copie l'@ de Registre d'istruction
-mot memoire de n bit(cellule) vers Registre d'adresse.
-chaque mot a une adresse unique ,qui le represente ; CEA:chargement entree A de l'UAL aupres de bus de donne
-aderesse sont sequentielle,et sa taille depand de la capacite CEA:chargement entree B de l'UAL,aupres de bus de donne
memoire; ou Registre accumelateur.
CRA:chargement registre Accumelateur,enregistre le resultat
*->vue physique d'une memoire: de l'UAL.
-RAM(regitre d'adresse memoire):stock l'adresse EDA:enrgistrement donne accumelateur.soit dans UAL ou
concernee(ecrire/lire); dans la memoire.
-RIM(regitre d'information memoire):stock le mots memoire
qu'on veut lire rechere d'instruction,pointage vers instruction
apres de le recevoir de la MC,ou stock le mot qu'on veut suivant,execution d'instruction.
mettre dans la MC.
-Decodeure:selectionner un mot memoire ,apres avoir son ***la pile****
adresse de RAM;
-R/W:commande qui selctionne soit operation de lecture ou ***->etaps d'execution d'un programme.
d'ecrtiture; le compteur ordial contient l'adresse de l'instruction a
-Bus d’adresses de taille k bits; executer,il le passe
-Bus de données de taille n bits; au registre adresse RAM,l'instruction se charge dans le
registre d'instruction a l'aide du
register mot RIM,si cette instruction contient un adresse l'information de l'instruction dans ler RIM;
memoire d'une information dont on
a besoin ,l'unite de controle passe un signal pour piloter les bus etape 2 -> DE: copie l'information de l'instruction de RIM
et de mettre l'adresse vers le registre d'instruction
dans le RAM , l'information et disponible au RIM,si c'est une puis decodage de l'operation(connaitre le type de
operation de calcul on passe l'instruction);
cette information a UAL et on enregistre le resultat dans
accumulateur,si c'est une etape 3 -> CH: chargememt des registres de travails selon le
instruction d'ecriture ,on deplace l'information de type de l'instruction qu'on a
l'accumulateur vers le registre RIM, dans l'unite de calcul;
et on charge l'adresse ou on veut mettre l'information dans le etape 4 -> EX: execution du instruction selon son type;
RAM,et on etape 5 -> ENR: enregistrmemnt des resultat dans le registre
incremente compteur ordinal pour passer a l'instruction destination;
suivantes.
**->aleas
***les Tableaux*** *->aleas strucruel:en cas d'instruction de type
tab1 db 10 dup (0) :nom tab1,chaque case a 8 lecture/ecriture,access en memoire dans les
bits,taille(10) etapes lecture et execution demande le travail avec la meme
,tous les case initialiser par 0. unite d'acees memoire , qui cree
un conflit;
tab2 dd 5 0, 1, 2, 3, 4:nom tab2,chaque case a 16 bits,taille solution:
5 ,initialiser -attendre pour une etape que l'unite soit disponible(decalage);
progressivemt par 0 ,1,2,3,4 -ajouter d'autre unite d'access memoire dans le processeur;
tab3 dw 100 dup (?) :chaque case a 32 bits,tableau
contient des valeur aliatoire *->aleas de donnes:c'est quand une instruction besoin d'une
donnes qui n'est pas actuellment
**foction call & ret** disponible ,ca veut dire que l'instruction depand de resultat
eip contient l'adresse de instruction a executer ,lorsequ'il d'une instruction precedante,
trouve la fct call, qui est n'est pas encore fini son travail;
cette dernier push l'adresse de l'instruction suivante dans la par example:
pile, et met l'adresse de inst 1: R1 = 10 + R2
de la 1 ere instruction de la foction (qu'on veut executer) dans inst 2: R2 = R1 x 20
EIP, la derniere ici instruction 2 besoin que R1 soit deja caluler,
insturction de la fonction on se trouve avec ret ,cette dernier l'etape chargement(inst2) depasse l'etape
depile l'adresse de enregistrement(int1);
l'instruction qu'on a empiler avec call dans EIP pour revenir solution:
au programme principal main , -suspension de l'etape CH(int2) tant que ENR(int1) n'est pas
terminer;
**passage de parametre a la pile***
on passe les paramettre un par un dans la pile,et on empile -Reordonnancement: changer l'ordre de l'execution des
&return, instruction(mettre l'inst2 a la fin);
esp point sur &retun,on peur appler parm1 par [esp + 4];4 la deux types de réordonnancement :Logiciel (compilateur)
taille d'@ de return Matériel (fait par le processeur);
le parrametre suivant c'est [esp + 4 + taille(para1)]
**variable local*** -court-circuit:apres l'etape EXE(int1) on connait R1,en la
on empile ebp pour avoir un point fixe pour l'appel des reinjecte directiment
paramettres, dans registre A ou B de l'UAL(la ou on a etape CH(int2)), sans
&return,epb;4 + 4;on empile les variable locale attendre la terminaison
de l'etape ENR(int1);
1ere variable local [ebp - taille(var1)]
2eme variable local [ebp - taille(var1 + var2)] *->aleas de controle:se pause dans le saute conditionel
1ere parametere [ebp + 8]; inst 1: R1 = 10 + R2
2eme parametere [ebp + 8 + taille(param1)]; inst 2: if (R1 > 30) then R3 = 10 + 1 ;else R3 = 20 + 1
R1 n'est pas connue ,alors on ne connait pas l'instruction
***pipe-line*** suivante ,donc on aura un
avec les pipline on peut avoir multiple instruction en execution problem dans l'etape Lecture de inst2;
simultanemant;
pipline :on divise l'execution on plusieurs etapes. solution:
etape 1 -> LE: c'est l'etape qui separe la lecture de l'@ -solution avec attendre:on attend que ENR(ins1) soit
d'instrution de EP,et d'avoir terminer , et on pass a LE(inst2);
-Réordonnancer le code : pas toujours suffisant et possible; le processeur va donc chercher @ dans la MC,et la mettre
-Prédire la valeur de R1 et commencer le calcul selon cette dans le cache a l'entree corespandate,
prédiction si non il prend directement l'information du cache.
on prend le chemin(brache) plus souvent atteinte;
pour cela on utilse: 00: |000|00 mots 0
BTB:Tampon des brache(chemin) cible ,contient les adresses 04: |001|00 mots 1
des instructions a suivre; 08: |010|00 mots 2
BHT:table qui mémorise l’historique des choix de 12: |011|00 mots 3
branchements,dépend de l’algorithme utilisé 16: |100|00 mots 4
par example 2 bits associés à chaque branche 20: |101|00 mots 5
00 : branchement jamais pris jusqu’à présent 24: |110|00 mots 6
01 : branchement parfois pris jusqu’à présent 28: |111|00 mots 7
10 : branchement souvent pris jusqu’à présent 3 pemier bits c'est l'index;
11 : branchement toujours pris jusqu’à présent 2 dernier bits le numero de l'octet dans le mots;