0% ont trouvé ce document utile (0 vote)
60 vues51 pages

Chapitre 1

Traitement de signal

Transféré par

Osamu Chuuya
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
60 vues51 pages

Chapitre 1

Traitement de signal

Transféré par

Osamu Chuuya
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Université ORAN1, Ahmed Ben

Bella, ISTA

Module :
Structure Machine

Dr. Amine Dahane


[email protected]
2
Chapitre 1 : introduction à l’architecture
des ordinateurs

• Introduction
• Architecture de base d’une machine
• La Mémoire Centrale
• UAL ( unité arithmétique et logique )
• UC ( unité de contrôle ou de commande )
• Jeu d’instructions , Format et codage d’une instruction
• Modes d’adressage
• Étapes d’exécution d’un instruction
• TD 1 Avec solution
3 Objectifs

 Comprendre l’architecture d’une machine von newman.

 Comprendre les étapes de déroulement de l’exécution


d’une instruction.

 Comprendre le principe des différents modes


d’adressage.
Chapitre 1: introduction
à l’architecture des
ordinateurs
Le mot ordinateur a été créé en
1955 pour désigner une machine
capable d’exécuter n’importe quel
algorithme fournit sous forme de
programme sur n’importe quelle
donnée discrète fournit,
1. Introduction

 Un programme est un ensemble d’instructions exécutées dans un


ordre bien déterminé.
 Un programme est exécuté par un processeur ( machine ).
 Un programme est généralement écrit dans un langage évolué
(Pascal, C, VB, Java, etc.).
 Les instructions qui constituent un programme peuvent être
classifiées en 4 catégories :
 Les Instructions d’affectations : permet de faire le transfert des
données
 Les instructions arithmétiques et logiques.
 Les Instructions de branchement ( conditionnelle et
inconditionnelle )
 Les Instructions d’entrées sorties.
6 1. Introduction

 Pour exécuter un programme par une machine, on passe par les étapes
suivantes :
1. Édition : on utilise généralement un éditeur de texte pour écrire un
programme et le sauvegarder dans un fichier.
2. Compilation : un compilateur est un programme qui convertit le code source
( programme écrit dans un langage donné ) en un programme écrit dans un
langage machine ( binaire ). Une instruction en langage évolué peut être
traduite en plusieurs instructions machine.
3. Chargement : charger le programme en langage machine dans mémoire afin
de l’exécuter .
7 1. Introduction

• Comment s’exécute un programme dans la machine ?

• Pour comprendre le mécanisme d’exécution d’un


programme  il faut comprendre le mécanisme de
l’exécution d’une instruction .

• Pour comprendre le mécanisme de l’exécution d’une


instruction  il faut connaître l’architecture de la machine
( processeur ) sur la quelle va s’exécuter cette
instruction.
1- Composants d’un ordinateur
1. Une unité centrale (UC) ou microprocesseur
2. Des mémoires, parmi lesquelles on distingue :
• La mémoire ROM: mémoire a accès en lecture
seule, ensemble de bits dont l’état est fixé une
fois pour toute lors de la construction de
l’ordinateur, elle sert à stocker des informations
permanentes (procédures de démarrage)
• La mémoire RAM : mémoire a accès aléatoire :
ensemble de bits modifiables ou sont stockées les
données sur lesquelles travail l’ordinateur.
3. Des périphériques E/S: Ecran, Imprimante,
Baffles, Webcam, Souris, Clavier, Manette de jeu,
Mémoire externe, scanner, ….
2- Architecture de Von Neumann
L’organisation matérielle des ordinateurs
usuels suit une architecture dite de Von
Neumann, son originalité est de stocker les
données et les instructions dans la même
mémoire, Dans celle-ci :
• RAM : sert à stocker les données et les
programmes
• Unité de commande donne les ordres et
synchronise l’exécution des opérations dans
l’unité de traitement du processeur central.
a- RAM
Elle est composée
d’une suit de mots
mémoire qui sont des
suites de bits de taille
fixe, chaque mot
mémoire est identifié
par son adresse qui est
un code binaire.
Exemple: RAM de 16
mots de deux octets
chacun avec des
adresses de 0 à 15
La mémoire centrale
11

 La mémoire centrale (MC) représente l’espace de travail de l’ordinateur .


 C’est l’organe principal de rangement des informations utilisées par le processeur.
 Dans un ordinateur pour exécuter un programme il faut le charger ( copier ) dans la mémoire
centrale .
 Le temps d’accès à la mémoire centrale et sa capacité sont deux éléments qui influent sur le
temps d’exécution d’un programme ( performances d’une machine ).
12

•La mémoire centrale peut être vu comme Une adresse


un large vecteur ( tableau ) de mots ou
octets. 0001100 0000
•Un mot mémoire stocke une information
sur n bits. 0011100 0001
•Chaque mot possède sa propre adresse. 0111100 0002
•La mémoire peut contenir des programmes 0001100 …….
et les données utilisées par les 0001100 …….
programmes.
……..

Contenu d’une case (un


mot)mémoire

FFFF
Structure d’un programme en MC

1000000

}
1111111 Partie données
0000000
11110000 ( variables )
Addition 11000001
Soustraction 11100001
11000001
11100001
11100001 Partie instructions
………….
……….
2.2 L’Unité Centrale ( UC)
14

 L’unité centrale (appelée aussi processeur , microprocesseur) à pour rôle


d’exécuter les programmes.
 L’UC est composée d’une unité arithmétique et logique (UAL) et d’une unité de
contrôle.
- L’unité arithmétique et logique réalise les opérations élémentaires (addition,
soustraction, multiplication, . . .) .
- L’unité de commande contrôle les opérations sur la mémoire (lecture/écriture)
et les opérations à réaliser par l’UAL selon l’instruction en cours d’exécution.
Architecture matérielle d’une
machine Von Neumann

UC
L’UAL
16
 L’unité arithmétique et logique réalise une opération élémentaire
(addition, ,soustraction, multiplication, . . .).

 L’UAL regroupe les circuits qui assurent les fonctions logiques et


arithmétiques de bases ( ET,OU,ADD,SUS,…..).

 L’UAL comporte un registre accumulateur ( ACC ) : c’est un registre de


travail qui sert a stocker un opérande (données )au début d’une
opération et le résultat à la fin.
L’UAL
17
 L’UAL comporte aussi un registre d’état : Ce registre nous indique l’état
du déroulement de l’opération .
 Ce registre est composé d’un ensemble de bits. Ces bits s’appels
indicateurs (drapeaux ou flags).
 Ces indicateurs sont mis à jours ( modifiés )après la fin de l’exécution
d’une opération dans l’UAL.
 Les principeaux indicateurs sont :
 Retenue : ce bit est mis à 1 si l’opération génère une retenue.
 Signe :ce bit est mis à 1 si l’opération génère un résultat négative.
 Débordement :ce bit est mis à 1 s’il y a un débordement.
 Zero : ce bit est mis à 1 si le résultat de l’opération est nul.
18 Schéma d’une UAL
19 Unité de contrôle

 Le rôle de l'unité de contrôle (ou unité de commande ) est de :


 coordonner le travail de toutes les autres unités ( UAL , mémoire,
…. )
 et d'assurer la synchronisation de l'ensemble.

 Elle assure :
 la recherche ( lecture ) de l’instruction et des données à partir de la
mémoire,
 le décodage de l’instruction et l’exécution de l’instruction en cours
 et prépare l’instruction suivante.
20

 L’unité de contrôle comporte :


 Un registre instruction (RI) : contient l’instruction en
cours d’exécution. Chaque instruction est décoder
selon sont code opération grâce à un décodeur.
 Un registre qui s’appel compteur ordinal (CO) ou le
compteur de programme (CP ) : contient l’adresse de
la prochaine instruction à exécuter (pointe vers la
prochaine instruction à exécuter ). Initialement il
contient l’adresse de le première instruction du
programme à exécuter.
 Un séquenceur : il organise ( synchronise ) l’exécution
des instruction selon le rythme de l’horloge, il génère
les signaux nécessaires pour exécuter une instruction.
21 Schéma d’une UC
22 Schéma détaillé d’une machine

UC
23 Remarque

 Le microprocesseur peut contenir d’autres registres autre


que CO,RI et ACC.
 Ces registres sont considérés comme une mémoire
interne ( registre de travail ) du microprocesseur.
 Ces registres sont plus rapide que la mémoire centrale ,
mais le nombre de ces registre est limité.
 Généralement ces registres sont utilisés pour
sauvegarder les données avant d’exécuter une opération.
 Généralement la taille d’un registre de travail est égale à
la taille d’un mot mémoire
24 Une machine avec des registres de travail

registres
25 Jeu d’instructions

 Chaque microprocesseur possède un certain nombre limité d’instructions


qu’il peut exécuter. Ces instructions s’appelles jeu d’instructions.
 Le jeu d’instructions décrit l’ensemble des opérations élémentaires que
le microprocesseur peut exécuter.
 Les instructions peuvent être classifiées en 4 catégories :
 Instruction d’affectation : elle permet de faire le transfert des
données entre les registres et la mémoire
 Écriture : registre  mémoire
 Lecture : mémoire  registre
 Les instructions arithmétiques et logiques ( ET , OU , ADD,….)
 Instructions de branchement ( conditionnelle et inconditionnelle )
 Instructions d’entrées sorties.
Codage d’une instruction
26
 Les instructions et leurs opérandes ( données ) sont stocké dans la mémoire.
 La taille d’une instruction ( nombre de bits nécessaires pour la représenter en
mémoire ) dépend du type de l’instruction et du type de l’opérande.
 L’instruction est découpée en deux parties :
 Code opération ( code instruction ) : un code sur N bits qui indique quelle
instruction.
 La champs opérande : qui contient la donnée ou la référence ( adresse ) à la
donnée.

Code opération Opérande

N bits K bits

•Le format d’une instruction peut ne pas être le même pour toutes les instructions.
•Le champs opérande peut être découpé à sont tours en plusieurs champs
Machine à 3 adresses
27
 Dans ce type de machine pour chaque instruction il faut préciser :
 l’adresse du premier opérande
 du deuxième opérande
 et l’emplacement du résultat

Code opération Opérande1 Opérande2 Résultat

Exemple :
ADD A,B,C ( CB+C )

•Dans ce type de machine la taille de l’instruction est grand .


• Pratiquement il n’existent pas de machine de ce type.
Machine à 2 adresses
28
 Dans de type de machine pour chaque instruction il faut préciser :
 l’adresse du premier opérande
 du deuxième opérande ,
 l’adresse de résultat est implicitement l’adresse du deuxième
opérande .

Code opération Opérande1 Opérande2

Exemple :
ADD A,B ( BA +B )
29 Machine à 1 adresses
 Dans de type de machine pour chaque instruction il faut préciser
uniquement l’adresse du deuxième opérande.
 Le premier opérande existe dans le registre accumulateur.
 Le résultat est mis dans le registre accumulateur.

Code opération Opérande2

Exemple :
ADD A ( ACC(ACC) + A )

Ce type de machine est le plus utilisé.


Mode d’adressage
30
 La champs opérande contient la donnée ou la référence ( adresse ) à la donnée.
 Le mode d’adressage définit la manière dont le microprocesseur va accéder à
l’opérande.
 Le code opération de l’instruction comportent un ensemble de bits pour indiquer
le mode d’adressage.

 Les modes d’adressage les plus utilités sont :


 Immédiat
 Direct
 Indirect
 Indexé
 relatif
31 Adressage immédiat

 L’opérande
Code opération existent dans le champs adresse de l’instruction
Opérande

Exemple :
ADD 150 ADD 150

Cette commande va avoir l’effet suivant : ACC(ACC)+ 150

Si le registre accumulateur contient la valeur 200 alors


après l’exécution son contenu sera égale à 350
32 Adressage direct
 Le champs opérande de l’instruction contient l’adresse de l’opérande
( emplacement en mémoire )
 Pour réaliser l’opération il faut le récupérer ( lire ) l’opérande à partir de
la mémoire. ACC  (ACC)+ (ADR)

Exemple :
On suppose que l’accumulateur
continent la valeur 20 .
ADD 150

A la fin de l’exécution nous allons


avoir la valeur 50 ( 20 + 30 ) 30
150
Adressage indirect
 La champs adresse contient l’adresse de
33
l’adresse de l’opérande.
 Pour réaliser l’opération il faut :
 Récupérer l’adresse de l’opérande à partir de la
mémoire.
 Par la suite il faut chercher l’opérande à partir de la ADD 150
mémoire.
ACC (ACC)+ ((ADR))
 Exemple : 150
200

 Initialement l’accumulateur contient la valeur 20


 Il faut récupérer l’adresse de l’adresse (150). 40
200
 Récupérer l’adresse de l’opérande à partir de
l’adresse 150 ( la valeur 200 )
 Récupérer la valeur de l’opérande à partir de
l’adresse 200 ( la valeur 40 )
Additionner la valeur 40 avec le contenu de
l’accumulateur (20) et nous allons avoir la valeur
60
34 Adressage indexé
 L’adresse effectif de l’opérande est relatif à une zone mémoire.
 L’dresse de cette zone se trouve dans un registre spécial ( registre
indexe ).
 Adresse opérande = ADR + (X)
Registre d’indexe

50
ADD 150

30
200
Remarque : si ADR ne contient pas une valeur
immédiate alors
Adresse opérande = (ADR )+ (X)
35 Adressage relatif
 L’adresse effectif de l’opérande est relatif a une zone mémoire.
 L’dresse de cette zone se trouve dans un registre spécial ( registre de base ).
 Ce mode d’adressage est utilisée pour les instructions de branchement.
Adresse = ADR + (base)

Registre de base

100
BR 150

ADD
250
36 5. Cycle d’exécution d’une instruction
 Le traitement d’une instruction est décomposé en trois phases :
 Phase 1 : rechercher l’instruction à traiter et décodage
 Phase 2 : rechercher de l’opérande et exécution de l’instruction
 Phase 3 : passer à l’instruction suivante

 Chaque phase comporte un certain nombre d’opérations élémentaires


( microcommandes ) exécutées dans un ordre bien précis ( elle sont
générées par le séquenceur ).
 La phase 1 et 3 ne change pas pour l’ensemble des instructions , par
contre la phase 2 change selon l’instruction et le mode d’adressage
 Exemple1 : déroulement de l’instruction d’addition en mode immédiat
ACC(ACC)+ Valeur
37

 Phase 1 : ( rechercher l’instruction à traiter )


 Mettre le contenu du CO dans le registre RAM RAM (CO)
 Commande de lecture à partir de la mémoire
 Transfert du contenu du RIM dans le registre RI RI (RIM)
 Analyse et décodage
 Phase 2 : (traitement )
 Transfert de l ’opérande dans l’UAL UAL  (RI).ADR
 Commande de l’exécution de l’opération ( addition )
 Phase 3 : ( passer à l’instruction suivante )
 CO  (CO )+ 1
 Exemple 2 : déroulement de l’instruction d’addition en mode direct ACC(ACC)+
(ADR)
38

 Phase 1 : ( rechercher l’instruction à traiter )


 Mettre le contenu du CO dans le registre RAM RAM (CO)
 Commande de lecture à partir de la mémoire
 Transfert du contenu du RIM dans le registre RI RI (RIM)
 Analyse et décodage
 Phase 2 : ( décodage et traitement )
 Transfert de l’adresse de l ’opérande dans le RAM RAM (RI).ADR
 Commande de lecture
 Transfert du contenu du RIM vers l’UAL UAL (RIM)
 Commande de l’exécution de l’opération ( addition )
 Phase 3 : ( passer à l’instruction suivante )
• CO  (CO )+ 1
 Exemple 3 : Déroulement de l’instruction d’addition en mode indirect
ACC(ACC)+ ((ADR))
39

 Phase 1 : ( rechercher l’instruction à traiter )


 Mettre le contenu du CO dans le registre RAM RAM (CO)
 Commande de lecture à partir de la mémoire
 Transfert du contenu du RIM dans le registre RI RI (RIM)
 Analyse et décodage
 Phase 2 : ( décodage et traitement )
 Transfert de l’adresse de l ’opérande dans le RAM  (RI).ADR
 Commande de lecture /* récupérer l’adresse */
 Transfert du contenu du RIM vers le RAM RAM(RIM)
 Commande de lecture /* récupérer l’opérande */
 Transfert du contenu du RIM vers l’UAL UAL  (RIM )
 Commande de l’exécution de l’opération ( addition )
 Phase 3 : ( passer à l’instruction suivante )
 CO  (CO )+ 1
b- Unité de commande
Elle est composée de deux registres :
• Le compteur ordinal (CO) : stocke l’adresse de
l’instruction à exécuter, sa taille est identique à
celle d’une adresse mémoire.
• Le registre d’instruction (RI) : stocke l’instruction
en cours d’exécution sa taille est égale à celle d’un
mot mémoire.

Le RI code l’instruction en cours comme suit :


Exemple :
En supposant que les opérations de base
sont codées 0000 pour l’addition, 0001
pour la multiplication, 0010 pour la
soustraction et 0011 pour la division,
« 0011 1001 0011 0001 » est
l’instruction effectuant la division entre
le mot mémoire d’adresse 9 avec celui
d’adresse 3 et stockant le résultat dans
le mot d’adresse 1.
c- L’unité de traitement
Elle exécute des opérations de
base et est composée de :
• Trois registres : deux servant à
stocker les données donnée1 et
donnée2 ainsi que le résultat de
l’opération arithmétique,
• L’unité arithmétique et logique
(UAL) capable, quand on lui
fournit le code d’une opération
arithmétique de prendre les
contenus des deux premiers
3- L’unité centrale en œuvre
Exécuter un programme revient à exécuter ces instructions
une par une en commençant par mise de sa première
instruction dans le CO, l’exécution d’une instruction
élémentaire se fait suivant un cycle de trois phases :
Phase1 : l’instruction courante dont l’adresse est stockée dans
le CO est recopiée dans le RI en transitant par le bus
« instruction ».
Phase2 : cette instruction courante est décodée à destination
de l’UAL, ainsi que le bus « Ordres » transfère le code de
l’opération et le bus « données/résultats » transfère dans les
registres donnée1 et donnée2 le contenu des mots mémoires
associés.
Phase3 : l’UAL exécute l’opération en mettant à jour son
registre « résultats » et transfère le résultat dans la mémoire
centrale en utilisant le bus « données/résultats ».
‫‪Exemple de programme‬‬ ‫‪Adres‬‬
‫‪Mot mémoire‬‬
‫‪se‬‬
‫;‪Int a=5‬‬ ‫‪0000‬‬
‫عداد‬
‫‪Int b=14‬‬ ‫ترتيبي‬
‫‪0000 1011 1100‬‬
‫‪0000‬‬
‫‪1110‬‬
‫‪0001‬‬ ‫‪0001‬‬ ‫‪11101100‬‬ ‫‪1110‬‬
‫‪1101‬‬
‫;‪Int c=2‬‬ ‫سجل‬ ‫‪1011‬‬
‫‪0111‬‬
‫التعليمات‬
‫;‪Int d,e‬‬ ‫‪0010‬‬
‫‪0001‬‬
‫‪1110‬‬
‫‪1101 0111‬‬
‫‪0010‬‬
‫;‪da+b‬‬ ‫وحدة التحكم‬ ‫‪0011‬‬
‫;‪ed*c‬‬ ‫‪0100‬‬
‫‪0101‬‬
‫الوحدة‬ ‫‪0000‬‬ ‫‪0000‬‬
‫‪0000‬‬ ‫‪00000010‬‬ ‫‪0110‬‬
‫‪0001‬‬
‫‪0110‬‬
‫الحسابية‬ ‫‪0011‬‬
‫‪0111‬‬ ‫‪e‬‬
‫المنطقية‬
‫وحدة المعالجات‬ ‫‪1000‬‬
‫‪1001‬‬ ‫‪0000 0000 0000‬‬
‫‪1010‬‬ ‫‪0101‬‬
‫‪0000 0000 0000‬‬
‫‪0000 0000 0010‬‬
‫‪1110‬‬
‫‪1011 0000‬‬ ‫‪0000‬‬ ‫‪0000 0101 a‬‬
‫‪0000‬‬
‫‪0000 0000 0001 0011‬‬
‫سجل‬ ‫سجل‬ ‫‪0000‬‬
‫‪1100‬‬ ‫‪0000 1110 b‬‬
‫المعطيات‬ ‫النتائج‬ ‫‪0000‬‬
‫‪0000‬‬
TD 1
Avec Solution
Exercice 1
La RAM d’une machine contient 64 mots
mémoire, et elle peut exécuter 13
opérations (arithmétiques et logiques),
1. Donnez la taille du CO
2. Donnez la taille minimale du RI
Si la taille de cette RAM = 192 octet,
3. Donnez la taille réelle du RI
Solution
1.Donnez la taille du CO
Nombre de mot mémoire 64 mots = 26 if faut 6 bits
pour codifier les adresses et puisque le CO contient des
adresses mémoires donc la taille du CO=6 bits
2.Donnez la taille minimale du RI
Taille du RI=taille code opération+(taille adresse mémoire
x3)
Puisque la machine peut exécuter 13 opérations donc il
faut 4 bits pour les codifier
Et la taille d’une adresse mémoire =6bits donc la taille du
Si
RI la taille de cette
=4+6x3=22 bits RAM = 192 octet,
3. Donnez la taille réelle du RI
La taille du RI = la taille d’un mot mémoire=192octet/64=3
octets= 24 bits
Exercice 2
Une machine peut exécuter 11 opérations
codées de 0000 a 1010 , le CO contient
00011,
1. Donnez la taille du RI
2. Donnez le nombre de mots mémoires au
maximum de la RAM
Supposons que le registre RI peut prendre
les cas suivants :
1011110110001010001
1000111110000010101
0110110110000100011
Solution
1. Donnez la taille minimale du RI
Taille du RI=taille code opération+(taille adresse
mémoire x3)
Taille du code opération =4 bits
CO contient 00011 taille @ mémoire=5bits; donc la
Donnez le nombre
taille de mots mémoire
du RI =4+5x3=19 bits au maximum: Nbr=25=32
pposons que le registre RI peut prendre les cas suivants :
Impossible (code opération
11 11011 00010 10001 invalide)
00 11111 00000 10101 Possible
Impossible (l’@ du résultat est une @instruction voir
10 11011 00001 00011 CO)
Précisez les cas possibles et les cas impossibles
Exercice 3
Donnez un contenu final de la RAM après l’exécution du
programme suivant, Sachant que 0000 représente
l’addition et 0001 représente la multiplication et la RAM
contient 16 mots de deux octets:
‫‪Adres‬‬
‫‪Mot mémoire‬‬
‫‪se‬‬
‫عداد‬ ‫‪0000‬‬
‫‪0000‬‬ ‫‪0000 1000‬‬
‫‪0000 0000 0000‬‬ ‫‪0110 a‬‬
‫ترتيبي‬ ‫‪0000‬‬
‫‪0000 0000 0000 1100‬‬
‫سجل‬ ‫‪0001‬‬ ‫‪b‬‬
‫التعليمات‬ ‫‪0010‬‬ ‫‪c‬‬
‫‪0100‬‬ ‫‪0001‬‬
‫وحدة التحكم‬ ‫‪0011‬‬ ‫‪0001 0010‬‬
‫‪0000‬‬
‫‪0000 0001 0000 0001‬‬
‫‪0000‬‬
‫‪0100‬‬ ‫‪0000 0001‬‬
‫‪0001‬‬
‫الوحدة‬ ‫‪0101‬‬
‫الحسابية‬ ‫‪0110‬‬
‫المنطقية‬
‫‪0111‬‬
‫وحدة المعالجات‬
‫‪1000‬‬
‫‪1001‬‬
‫‪0000 0000 0000 0010 0000 0000 0000 0110‬‬ ‫‪1010‬‬
‫‪1011‬‬
‫سجل‬ ‫سجل‬ ‫‪1100‬‬
‫المعطيات‬ ‫النتائج‬
‫‪1101‬‬

Vous aimerez peut-être aussi