Vous êtes sur la page 1sur 17

Système à Microprocesseur BAHRIA NOURHENE

Systèmes à microprocesseurs

I) Fonctions de base d’une machine informatique

 Contenir de façon permanente les tâches à exécuter (mémoire programme) en ROM.


 Contenir de façon temporaire des données (mémoire de travail) en RAM.
 Permettre un dialogue avec l’extérieur (circuit d’interface entrée/sortie) :
 PIA- ACIA- TIMER
 PIO- USART
 SIO- UART.
 Effectuer des opérations arithmétiques et logiques élémentaires chargée des calculs +,-
,*,/, AND, OR, NOT (UAL : unité arithmétique et logique)
 Organiser des transits d’informations (unité de contrôle : U.C.)
 Cadencer les différentes informations (Horloge)
 Pointer l’étape du programme en cours (P.C. : compteur programme, en anglais
Program Counter).

II) Schéma fonctionnel d’une machine informatique

1. Pn : Périphériques d’entrées

 Clavier  Lecteur de bande magnétique


 Souris  Lecteur de cartes
 Joystick  Chaînes d’acquisition de données
 Ecran tactile  Crayon optique
Système à Microprocesseur BAHRIA NOURHENE

2. P’n : Périphériques de sortie

o Dispositifs de visualisation : DELs


Affichage
alphanumérique
Ecran vidéo
o Imprimante
o Table traçante
o Synthétiseur vocal
o Lecteur disquette

III) Microcontrôleur:

Circuit programmable capable d’exécuter un programme et qui possède des circuits


d’interface intégrés avec le monde extérieur.

1. Quand utiliser un microcontrôleur ?


Toutes les solutions à base de composants programmables ont pour but de réduire le
nombre de composants sur le circuit électronique et donc fiabiliser le circuit.
Le microcontrôleur est en concurrence avec d’autres technologies
Suivants les applications : 3 types de technologies
 Logique câblée
Très rapide, fonctions réalisées par une voie matérielle
Non programmable, peu économique quand l’application est complexe peu de
souplesse : durée d’étude prohibitif et circuit difficilement modifiable
 Réseaux de logique programmables (PAL, LCA,..)
Rapide, adapté au traitement de signaux complexes
Prix élevé et langage de programmation non standard
 Les μprocesseurs
Grande souplesse : fonctions sont réalisées par voie logicielle puissance de calcul,
langage évolué
Nombre important de composant à réunir, solution onéreuse

A retenir
Si la fonction à réaliser est simple ⇒ une logique câblée
Si le nombre d'unités à réaliser est très important ⇒ circuits intégrés dédié en logique câblée pour
les fonctions simples.

Il existe plusieurs architecture de microcontrôleurs de 4 à 128 bits pour les applications


demandant une certaine puissance de calcul (injecteurs automobile).
Système à Microprocesseur BAHRIA NOURHENE

2. Le processeur
 Le processeur lit et écrit des informations en mémoire
 Il peut de plus effectuer des opérations arithmétiques et logiques
 Chaque action qu’il peut effectuer est appelée instruction
 Les instructions effectuées par le processeur sont stockées dans la mémoire.
 Il dispose d’un petit nombre d’emplacements mémoire d’accès plus rapide, les
registres.
 Un registre spécial nommé pc (program counter) contient l’adresse de la prochaine
instruction à exécuter De façon répétée le processeur :
1 lit l’instruction stockée à l’adresse contenue dans pc
2 l’interprète ce qui peut modifier certains registres (dont pc) et la mémoire

2.1. CISC / RISC


Les processeurs généraux actuels se répartissent en deux grandes catégories appelées CISC
pour Complex Instruction Set Computer et RISC pour Reduced Instruction Set Computer.
Les processeurs de ces deux catégories se distinguent par la conception de leurs jeux
d'instructions. Les processeurs CISC possèdent un jeu étendu d'instructions complexes.
Chacune de ces instructions peut effectuer plusieurs opérations élémentaires comme charger
une valeur en mémoire, faire une opération arithmétique et ranger le résultat en mémoire. Au
contraire, les processeurs RISC possèdent un jeu d'instructions réduit où chaque instruction
effectue une seule opération élémentaire. Le jeu d'instructions d'un processeur RISC est plus
uniforme. Toutes les instructions sont codées sur la même taille et toutes s'exécute dans le
même temps (un cycle d'horloge en général). L'organisation du jeu d'instructions est souvent
appelé ISA pour Instruction Set Architecture
La répartition des principaux processeurs dans les deux catégories est la suivante.

3. Notion de programme source et programme objet

Programme source : Traduction de l’algorithme dans un langage compréhensible par la


machine informatique (BASIC, PASCAL, C, FORTRAN, COBOL, ALGOL, PL1, ADA,
LOGO, LSE, DELPHI, etc ...).
Programme objet : Traduction du programme source en instructions codées en binaire,
seul langage exécutable par le microprocesseur
Système à Microprocesseur BAHRIA NOURHENE

 Passage du programme source au programme objet :

L'écriture d'un programme informatique ne se fait la plupart du temps pas en assembleur.

On utilise des langages dits de plus haut niveau qui est eux-mêmes traduits
automatiquement en assembleur par un autre programme :

 le compilateur pour les langages compilés (comme C ou C++)

 ou l'interpréteur pour les langages interprétés (comme JavaScript ou Python)


Système à Microprocesseur BAHRIA NOURHENE

4. Assembleur
Un langage d'assemblage ou langage assembleur ou simplement assembleur par abus de
langage, abrégé ASM est, en programmation informatique, un langage de bas niveau qui
représente le langage machine sous une forme lisible par un humain. Les combinaisons de bits
du langage machine sont représentées par des symboles dits « mnémoniques » ; c'est-à-dire
faciles à retenir. Le programme assembleur convertit ces mnémoniques en langage machine
en vue de créer par exemple un fichier exécutable.

Remarque
Un langage assembleur est souvent spécifique un type de processeur.

En langage assembleur, on peut rencontrer :


 des calculs simples (addition, soustraction, multiplication, ...),
 des affectations (placer telle valeur de la mémoire vive dans tel registre et vice versa)
 des instructions de saut qui permettent de coder des instructions conditionnelles par
exemple.
De plus, il y a trois possibilités pour accéder à un opérande (valeur sur laquelle va être opérée
une opération) :
 Il est directement saisi
 Il est dans un registre : il faut alors indiquer le nom de ce registre
 Il est dans la mémoire vive : il faut indiquer son adresse.

À retenir

 Un processeur ne traite que des instructions binaires.


 L'assembleur est un langage composé d'instructions basiques et facile à traduire en binaire.
 Une instruction dans un langage de programmation donné correspond à de multiples
instructions en assembleur.
Système à Microprocesseur BAHRIA NOURHENE

5. Assembleur MIPS
MIPS (de l'anglais Microprocessor without interlocked pipeline stages) est une :
 Architecture de microprocesseur de type RISC.
 Sorti dans les années 1980, utilise jusqu’au début 2000 (PlayStation 2).
 utilise en informatique embarquée.

Exemple MIPS

On y trouve :
₋ des mots clefs : .data, .word, .text
₋ des instructions : lw, la, add, addi, bge ...
₋ des registres : $t0, $t1, $t2
₋ des étiquettes qui correspondent à des dresses : vars, saut, exit

4.1. Organisation de la mémoire


L’organisation de la mémoire est conventionnelle
Système à Microprocesseur BAHRIA NOURHENE

4.2. Registres visibles du logiciel


Le processeur MIPS possède 32 registres de travail accessibles au programmeur. Chaque
registre est connu par son numéro, qui varie entre 0 et 31, et est préfixé par un $. Par exemple,
le registre 31 sera noté $ra dans l’assembleur. En dehors du registre $zero qui contient
toujours la valeur 0, tous les registres sont identiques du point de vue de la machine. Ils sont
directement adressés par les instructions, et permettent de stocker des résultats de calculs
intermédiaires. Afin de normaliser et de simplifier l’écriture du logiciel, des conventions
d’utilisation des registres sont définies. Ces conventions sont particulièrement nécessaires lors
des appels de fonctions.

 PC Registre compteur de programme (Program Counter). Ce registre contient


l'adresse de l’instruction en cours d’exécution. Sa valeur est modifiée par toutes les
instructions.
 HI et LO Registres pour la multiplication ou la division Ces deux registres 32 bits
sont utilisés pour stocker le résultat d'une multiplication ou d'une division, qui est un mot de
64 bits.
4.3. Programmation en langage d’assemblage
 Par exemple, l'instruction qui additionne le contenu des registres $t3 et $t4 et de
stocker le résultat dans $t6 est codée par :
00000001011011000111000000100000
 Et pour ne pas utiliser beaucoup de place, on peut les réduire en hexadécimal:
016c7020
 Elle est représentée en langage assembleur comme suit :
add $t6, $t3, $t4
 Ici, la signification de l'instruction est beaucoup plus claire qu'en code machine.
Système à Microprocesseur BAHRIA NOURHENE

4.2.1. Les noms de fichiers :


 Les noms des fichiers contenant un programme source en langage d’assemblage
doivent être suffixés par « .asm » ou « .s ».
Exemple : premierprog.asm
4.2.2. Format d’un programme assembleur:
Un programme assembleur est composé de deux parties:
 Data section : contient la déclaration de données.
 Text section: contient le code du programme.

Les commentaires:
 Les commentaires permettent de donner plus d’explication sur le code
 Ils commencent par un # ou un ; et s’achèvent à la fin de la ligne courante.
Exemple :
# Ceci est un commentaire
; Ceci est un commentaire
4.2.3. Déclaration de données:
Les données (constantes et variables) doivent être déclarées dans « .data » section.
 Le format général de la déclaration d’une donnée est:
« nom de variable »: .« type de donnée » « valeur initiale »

Exemple :

Le “type” .space indique simplement que l’on réserve le nombre d’octet indiques (sans les
mettre à zéro).
Système à Microprocesseur BAHRIA NOURHENE

Les données en assembleur sont de différents types:

 ASCII Character Binary code Hexadecimal String


Système à Microprocesseur BAHRIA NOURHENE

Déclaration des entiers :


–Une valeur entière décimale est notée 253.
–Une valeur entière hexadécimale est notée 0XFA (préfixée par zéro suivi de x).
–En hexadécimal, les lettres de A à F peuvent être écrites en majuscule ou en minuscule.
–Les entiers sont déclarés par : .word, .half, .byte
Exemple :
var1: .word 100000
var2: .byte 20
Les chaînes de caractères :
Les chaînes de caractères sont déclarées par: .ascii, .asciiz
Remarque:
.asciiz termine la chaîne de caractères par NULL (0). Le but est de faire savoir au compilateur
la fin de la chaîne.
Exemple : la déclaration suivante défini une chaîne de caractères « message » de type asciiz et
qui a comme contenu « hello world ».
• « \n »: est un retour à la ligne

Déclaration des nombres réels :


Les nombres réels sont déclarés par : .float, .double
Exemple :
Les déclarations suivantes sont utilisées pour définir la variable « pi » sur 32 bits par le type
.float et l’initialiser à 3,14159.
•Et la variable « Var » qui prend le type .double et sera enregistrée sur 64 bits. Elle est
initialisée à 7,28318.
Pi: .float 3,14159
Var: .double 7,28318
Système à Microprocesseur BAHRIA NOURHENE

4.2.4. Instructions

Quatre types d’instruction

Instructions de transfert Instructions de calcul Instructions de Saut Appels


entre registre et mémoire système
 Additions/ Soustraction  Sauts inconditionnels
 Chargement  Multiplications/Division  Sauts conditionnels
 Sauvegarde  Opérations logiques
 Comparaisons
 Négatif

 Instructions de transfert entre registre et mémoire

Chargement (load)

Ces instructions permettent de changer le contenu des


registres
Système à Microprocesseur BAHRIA NOURHENE

Exemple

Sauvegarde (store)
store word sw
store halfword sh
store byte sb
move move
Système à Microprocesseur BAHRIA NOURHENE

 Instructions de calcul
Additions / Soustraction

Multiplications / Division
Système à Microprocesseur BAHRIA NOURHENE

neg - negatif –
neg S1, S0 # Donne le contraire de S0. Le résultat est placé dans le registre S0.
S0= -(S1)

 Operations logiques
Système à Microprocesseur BAHRIA NOURHENE

Comparaisons

Décalages
sll - Shift Left Logical -
sll S0, S1, CONST
Décalage à gauche immédiat
• Le registre S1 est décalé à gauche de la valeur immédiate CONST.
• Des zéros étant introduits dans les bits de poids faibles.
• Le résultat est placé dans le registre S0.
srl - Shift Right Logical -

 Instructions de Saut
Les opérations de Saut (Jump) et de Branchement (Branch)
• Les structures de contrôles comme le IF..THEN..ELSE, WHILE et FOR n’existent pas en
langage d’assemblage.
• Pour les programmer, il faut utiliser les instructions de sauts et de branchements.
• Ces instructions sont de type conditionnel ou inconditionnel.

Sauts conditionnels

beq r1, r2, adr si les contenus des registres r1 et r2 sont égaux, saute à l’adresse adr
Système à Microprocesseur BAHRIA NOURHENE

Sauts inconditionnels

 Appels système
MIPS permet de communiquer avec le système de façon simple par la commande syscall.
La fonction utilisée est déterminée selon la valeur de $v0.
Système à Microprocesseur BAHRIA NOURHENE

Exemple

Vous aimerez peut-être aussi