Vous êtes sur la page 1sur 54

1

Ir. ROGER TN KAMPANGALA


Chef de Travaux

INFORMATIQUE 1
ECA : ARCHITECTURE DES
SYSTEMES INFORMATIQUES

Notes de cours à l’intention des étudiants de premier


Bachelier TCI

Edition 2023
2

CHAPITRE I : SYSTEME INFORMATIQUE


1.1. PRESENTATION

Un système informatique expose l’organisation et les principes de base du


traitement programmé de l’information. La mise en œuvre de ce système
s’appuie sur deux modes de réalisation distincts, le matériel et le logiciel.

HARDWARE SOFTWARE

Le matériel (hardware) correspond à l’aspect concret du système : unité


centrale, mémoire, organes d’entrées-sorties, etc.
Le logiciel (software) correspond à un ensemble d’instructions, appelées
programmes, qui sont contenues dans la mémoire ROM du système, et qui
définissent les actions à effectuer par le matériel. C’est le cas d’un
ordinateur.
Les logiciels d'ordinateur peuvent être répartis en deux grandes catégories:
 logiciels de base ou système d’exploitation (OS) ;
 logiciels d'application ou applicatifs.

Le but principal du logiciel de base est de contrôler, efficacement, les


ressources d'un ordinateur, en l’occurrence les matériels ainsi que les
logiciels d’application. Raison pour laquelle, dans la partie logicielle d’un
ordinateur, le système d'exploitation (SE, ou OS en anglais pour Operating
System) reste la pièce maitresse qui sert à exploiter une machine.
1.2. DÉFINITION ET CLASSIFICATION

Un système informatique est un ensemble de moyens informatiques et de


télécommunications, matériels et logiciels, ayant pour finalité de collecter,
traiter, stocker, acheminer et présenter des données.
Les concepts de système informatique et d’ordinateur ne doivent pas être
confondus. L’ordinateur n’est que l’un des composants, certes central, des
systèmes informatiques. Il en existe beaucoup d’autres, parmi lesquels on
peut citer les matériels réseau, les capteurs et actionneurs, les
machines spécialisées (appliances), comme les guichets automatiques
bancaires ou les boîtiers de stockage en réseau, les robots, les
smartphones, les cartes à puce (smartcards), etc.
Un ordinateur est une machine de traitement automatique des données
selon un programme enregistré en mémoire. Il comporte un ou des
3

processeurs, une mémoire et des périphériques d’entrée, de sortie et de


stockage.
Les programmes sont nécessairement exprimés dans le langage machine
propre au processeur qui les exécute, en général suite à une traduction
depuis un langage de programmation plus pratique à utiliser.
Le système d’exploitation est le logiciel qui facilite et optimise l’utilisation
du matériel ainsi que la mise en œuvre des programmes.
Il existe aujourd’hui une très grande diversité d’ordinateurs. Du plus petit, le
microcontrôleur, qui tient en totalité sur une puce électronique d’un
centimètre carré, jusqu’au plus puissant le supercalculateur, dont certains
comportent des centaines de milliers de processeurs afin de traiter
d’énormes volumes de données.
1.3. STRUCTURE EN COUCHES

SOFTWARE

HARDWARE

APPLICATION
Software
SYSTÈME D’EXPLOITATION

Hardware MATERIEL

Logiciel
APPLICATIONS
d’application
Software
Programmes
SE système

Hardware
MATERIEL
4

1.4. SYSTEME D’EXPLOITATION

Par définition le système d'exploitation est un logiciel qui permet de faire


fonctionner tous les composants matériels de l’ordinateur, ainsi que toutes
les applications qui sont compatibles avec lui. Il est le
véritable « chef d’orchestre », il coordonne les interactions entre les matériels,
les logiciels et les utilisateurs. Il constitue le socle de base d’un ordinateur
sur lequel les développeurs et les utilisateurs s’appuient pour bâtir ou
utiliser les applications.
Les systèmes d’exploitation existent depuis la fin des années 1960. Si
beaucoup ont évolué, la plupart d’entre eux ont disparu ou ont été réécrits
pour suivre les évolutions technologiques. Actuellement, les systèmes
d’exploitation les plus connus du grand public sont Windows, Mac OS, UNIX
et Linux.
1.4.1. Rôle d’un système d’exploitation

Un système d’exploitation est un ensemble cohérent de programmes qui


remplissent deux grandes fonctions :

 assurer un ensemble de services en présentant aux utilisateurs une


interface adaptée à leurs besoins ;

 effectuer un certain nombre d’opérations préparatoires pour assurer


les échanges entre les différents éléments qui composent un
ordinateur (l’unité centrale, la mémoire et les périphériques
d’entrée / sortie), comme illustrer par la figure I-1. Il gère le pilotage de
ces derniers à travers les gestionnaires de périphériques — plus
communément appelés pilotes (drivers) — qui lui sont intégrés ou
ajoutés.

Moniteu
r

Clavier

Impriman

Graveur DVD
OS te

Souris

Application

Figure I-5 gestion des ressources par le système d’exploitation


5

1.4.2. Composition d’un système d’exploitation

Architecturé autour de trois éléments de base, un système d’exploitation se


compose au minimum d’un interface utilisateur appelé shell (coquille), d’un
noyau appelé kernel et d’un langage de commandes appelé interpréteur.

Utilisateur CPU
Logiciel
d’application
Kernel Interface utilisateur (Shell)

Figure I-6 composition d’un OS (Shell ou interface utilisateur est la partie du


système d'exploitation qui nous permet d'envoyer des commandes à son
Kernel ou noyau.
a) Kernel
Les principales fonctionnalités assurées par le noyau sont les suivantes :
 la gestion des processus ;
 la gestion de la mémoire (qu’il distribue aux processus) ;
 l’ordonnancement des processus (répartition du temps processeur) ;

 la gestion des entrées-sorties : affichage à l’écran, saisie au clavier,


lecture / écriture sur les disques, impressions, etc. ;

 la gestion des systèmes de fichiers ;

 l’accès aux réseaux en gérant les différents protocoles réseau (TCP/IP,


IPX, LanManager, DECNet, etc.).

b) Shell

La partie la plus familière du système d'exploitation, est l'interface


utilisateur, car c'est la partie que nous utilisons pour entrer en contact avec
l'ordinateur. On peut distinguer deux types de shell ; ligne de commande et
graphique. Nous parlerons de ces deux types dans la suite de ce cours.
c) Interpréteur

L’interpréteur, pour sa part, permet de donner des instructions à


l’ordinateur à l’aide de commandes pour effectuer un certain nombre de
tâches tout en ignorant les caractéristiques techniques du matériel qu’il
utilise. Il permet par exemple de créer, changer, renommer et supprimer les
6

répertoires d’un disque, d’en afficher la liste ou d’en examiner leur contenu,
etc.
Traditionnellement, les programmes applicatifs ne faisaient pas partie
intégrante du système d’exploitation. Mais depuis le début des années 2000,
ce point de vue a évolué chez les éditeurs. L’intégration de navigateurs
Internet, de lecteurs multimédia et de pare-feu (ou firewall) dans les derniers
systèmes d’exploitation grand public en est le parfait exemple.
1.4.3. Les différentes catégories des systèmes d’exploitation

Déclinés par les éditeurs en versions successives répondant chacune à des


besoins spécifiques, les systèmes d’exploitation peuvent être classés en
différentes catégories selon divers critères :

 Monotâches – multitâches ;
 Graphique – nongraphique ;
 Mono-utilisateur–multi-utilisateur ;
 Monoprocesseur– multiprocesseur ;
 Client– serveur
 8– 16– 32– 64 bits ;

a) Monotâches – multitâches

 Monotâches
Les systèmes monotâches, qui ne peuvent exécuter qu’une tâche à la
fois et qui ont pratiquement tous disparus des ordinateurs actuels.

Exemples :

MS-DOS (Microsoft disque operating system) : SE des premiers PC,


mono-utilisateur, mono-tâche, interface à ligne de commande.

Unix : Créé en 1969, rapidement multi-utilisateur, écrit en langage C.

MS-DOS (Microsoft disque operating system) : SE des premiers PC,


mono-utilisateur, mono-tâche, interface à ligne de commande.

b) Client– serveur
Autrement appelés systèmes d’exploitation de bureau et systèmes
d’exploitation de réseau. Un système d’exploitation de bureau (client) est
conçu pour une utilisation domestique ou dans de petites entreprises, avec
un nombre limité d’utilisateurs. Un système d’exploitation de réseau
(serveur) est utilisé dans un environnement d’entreprise, avec de nombreux
utilisateurs et de multiples besoins.
b.1. Description des systèmes d’exploitation de bureau
Un système d’exploitation de bureau présente les caractéristiques suivantes :
7

 il prend en charge un seul utilisateur ;


 il exécute des applications mono-utilisateur ;
 il permet de partager des fichiers et des dossiers sur de petits réseaux
à la sécurité limitée.

Sur le marché actuel des logiciels, les systèmes d’exploitation de bureau les
plus courants se divisent en trois groupes : Microsoft Windows, Apple Mac
OS et UNIX/Linux.
a) Microsoft Windows

Windows est donc un programme de la société Microsoft qui appartient au


milliardaire américain Bill Gates.

Windows est actuellement l’un des systèmes d’exploitation les plus


populaires. Les produits suivants sont des versions de bureau des systèmes
d’exploitation Microsoft Windows :

 Windows XP
 Windows 2000 Professionnel
 Windows Vista ;
 Windows 7;
 Windows 8;
 Windows 10 ;
 Windows 11 : version la plus récente de Windows ;
 Windows 7, 8,10 et 11 pour Smartphone.

b)Apple Mac OS

Les ordinateurs Apple sont propriétaires et utilisent un système


d’exploitation appelé Mac OS. Mac OS est conçu pour offrir une interface
graphique utilisateur conviviale. Les versions actuelles de Mac OS sont
désormais basées sur une version personnalisée d’UNIX.

c) UNIX/Linux

UNIX, lancé à la fin des années soixante, est l’un des systèmes d’exploitation
les plus anciens. Aujourd’hui, il existe de nombreuses versions différentes
d’UNIX. L’une des versions les plus récentes est Linux, qui est extrêmement
populaire. Développé par Linus Torvalds en 1991, Linux est un système
d’exploitation ouvert. Les programmes ouverts permettent au code source
d’être distribué et modifié par toute personne, via à un téléchargement
gratuit, ou par des développeurs à un coût nettement plus faible qu’avec les
autres systèmes d’exploitation.

b.2. Description des systèmes d’exploitation de réseau

Un système d’exploitation de réseau présente les caractéristiques suivantes :


8

 il prend en charge plusieurs utilisateurs ;


 il exécute des applications multi-utilisateur ;
 il est robuste et redondant ;
 il fournit une meilleure sécurité que les systèmes d’exploitation de
bureau.

Voici les systèmes d’exploitation de réseau les plus courants : Microsoft


Windows, Novell Netware, Linux et UNIX.
a) Microsoft Windows

Les systèmes d’exploitation de réseau Microsoft sont :


 Windows 2000 Server ;
 Windows Server 2003 ;
 Windows Server 2008 ;
 Windows Server 2012 ;
 Windows Server 2015 ;
 Windows Server 2019 ;

Les systèmes d’exploitation Windows Server utilisent une base de données


centrale, appelée Active Directory, pour gérer les ressources réseau.
1.4.4. Les applicatifs

 Base de données ;
 MS Offices 2019 ;
 VLC media player ;
 Power iso ;
 Smadav ;
 Etc.

1.5. MATERIEL

John Von Neumann, illustre mathématicien du XXe siècle connu notamment


pour ses travaux sur la théorie des jeux, reste dans les mémoires des
scientifiques comme étant le « père » de l’ordinateur moderne.

Dans l’Ordinateur et le Cerveau, écrit à la veille de sa mort, Neumann lègue


aux spécialistes des sciences cognitives ses dernières réflexions sur les
enjeux technologiques et théoriques de l’ordinateur comparé au cerveau.
Cette brillante étude. Il est à l'origine d'un modèle de machine universelle de
traitement programmé de l’information (1946) et sert comme architecture de
base à la plupart des systèmes à microprocesseur actuel. Elle est composée
des éléments suivants :

 Une unité centrale (CPU) ;


 Une mémoire principale (ROM et RAM) ;
 Des interfaces d’entrées/sorties ;
9

 des voies de communication appelées bus (qui relient les


différents organes du système).

Unité Mémoire Interface E/S


centrale principale

Bus

1.2.1.L’unité centrale

Elle est composée par le microprocesseur qui est chargé d’interpréter et


d’exécuter les instructions d’un programme, de lire ou de sauvegarder les
résultats dans la mémoire et de communiquer avec les unités d’échange.
Toutes les activités du microprocesseur sont cadencées par une horloge.

On caractérise le microprocesseur par :

 Sa fréquence d’horloge : en MHz ou GHz ;


 Le nombre d’instructions par secondes qu’il est capable
d’exécuter : en MIPS ;
 La taille des données qu’il est capable de traiter : en bits.

1.6. MEMOIRES

Une mémoire est un dispositif permettant d’enregistrer, de conserver et de


restituer des informations.
1.6.1. Organisation d’une mémoire

Une mémoire peut être représentée comme une armoire de rangement


constituée de différents tiroirs. Chaque tiroir représente alors une case
mémoire qui peut contenir un seul élément : des données. Le nombre de
cases mémoires pouvant être très élevé, il est alors nécessaire de pouvoir les
identifier par un numéro. Ce numéro est appelé adresse. Chaque donnée
devient alors accessible grâce à son adresse

Adresse Case mémoire


7 = 111
6 = 110
5 = 101
4 = 100
3 = 011
2 = 010
1 = 001
0 = 000 0001 1010
10

Avec une adresse de n bits il est possible de référencer au plus 2n cases


mémoire. Chaque case est remplie par un mot de données (sa longueur m
est toujours une puissance de 2). Le nombre de fils d’adresses d’un boîtier
mémoire définit donc le nombre de cases mémoire que comprend le boîtier.
Le nombre de fils de données définit la taille des données que l’on peut
sauvegarder dans chaque case mémoire.

En plus du bus d’adresses et du bus de données, un boîtier mémoire


comprend une entrée de commande qui permet de définir le type d’action
que l’on effectue avec la mémoire (lecture/écriture) et une entrée de sélection
qui permet de mettre les entrées/sorties du boîtier en haute impédance.

On peut donc schématiser un circuit mémoire par la figure suivante où l’on


peut distinguer :

Adresses
(n bits) Données
─ Mémoire (n bits)
R/W
──
CS

1. Les entrées d’adresses ;


2. Les entrées de données ;
3. Les sorties de données ;
4. Les entrées de commandes :

 une entrée de sélection de lecture ou d’écriture. (R/W)


 une entrée de sélection du circuit. (CS)

Une opération de lecture ou d’écriture de la mémoire suit toujours


le même cycle :

1. Sélection de l’adresse ;
2. Choix de l’opération à effectuer (R/W) ;
3. Sélection de la mémoire (CS = 0) ;
4. Lecture ou écriture de la donnée.

Remarque

Les entrées et sorties de données sont très souvent regroupées sur


des bornes bidirectionnelles.

1.6.2. Caractéristiques d’une mémoire

 La capacité : c’est le nombre total de bits que contient la


mémoire. Elle s’exprime aussi souvent en octet ;
11

 Le format des données : c’est le nombre de bits que l’on peut


mémoriser par case mémoire. On dit aussi que c’est la largeur
du mot mémorisable ;

 Le temps d’accès : c’est le temps qui s'écoule entre l'instant où


a été lancée une opération de lecture/écriture en mémoire et
l'instant où la première information est disponible sur le bus de
données ;

 Le temps de cycle : il représente l'intervalle minimum qui doit


séparer deux demandes successives de lecture ou d'écriture ;

 Le débit : c’est le nombre maximum d'informations lues ou


écrites par seconde ;

 Volatilité : elle caractérise la permanence des informations


dans la mémoire. L'information stockée est volatile si elle risque
d'être altérée par un défaut d'alimentation électrique et non
volatile dans le cas contraire.

1.6.3. Différents types de mémoire


1.2.2.La mémoire principale

Elle contient les instructions du ou des programmes en cours d’exécution et


les données associées à ce programme. Physiquement, elle se décompose
souvent en :
 Une mémoire morte (ROM = Read Only Memory) chargée de stocker le
programme. C’est une mémoire à lecture seule ;

 Une mémoire vive (RAM = Random Access Memory) chargée de stocker


les données intermédiaires ou les résultats de calculs. On peut lire ou
écrire des données dedans, ces données sont perdues à la mise hors
tension.
1.6.3.1. Les mémoires vives (RAM)

Une mémoire vive sert au stockage temporaire de données. Elle doit avoir un
temps de cycle très court pour ne pas ralentir le microprocesseur.
Les mémoires vives sont en général volatiles : elles perdent leurs
informations en cas de coupure d'alimentation. Certaines d'entre elles, ayant
une faible consommation, peuvent être rendues non volatiles par l'adjonction
d'une batterie.
Il existe deux grandes familles de mémoires RAM (Random Acces Memory :
mémoire à accès aléatoire) :

 Les RAM statiques ;


 Les RAM dynamiques.
12

a) Les RAM statiques

Le bit mémoire d'une RAM statique (SRAM) est composé d'une bascule.
Chaque bascule contient entre 4 et 6 transistors.

A7
A6
A7
A5
A6
A4
A5
A3
A4
A2
A3
A1
A2
A0
A1
A0
D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 D4 D3 D2 D1 D0
b)Les RAM dynamiques

Dans les RAM dynamiques (DRAM), l'information est mémorisée sous la


forme d'une charge électrique stockée dans un condensateur (capacité grille
substrat d'un transistor MOS).

A7
A6
A5
A4
A3
A2
A1
A0

D7 D6 D5 D4 D3 D2 D1 D0

a. Avantages

Cette technique permet une plus grande densité d'intégration, car un point
mémoire nécessite environ quatre fois moins de transistors que dans une
mémoire statique. Sa consommation s’en retrouve donc aussi très réduite.

b. Inconvénients

La présence de courants de fuite dans le condensateur contribue à sa


décharge. Ainsi, l’information est perdue si on ne la régénère pas
périodiquement (charge du condensateur).

Les RAM dynamiques doivent donc être rafraîchies régulièrement pour


entretenir la mémorisation : il s'agit de lire l'information et de la recharger.
Ce rafraîchissement indispensable a plusieurs conséquences :
13

 Il complique la gestion des mémoires dynamiques car il faut tenir


compte des actions de rafraîchissement qui sont prioritaires ;
 la durée de ces actions augmente le temps d'accès aux
informations.

D’autre part, la lecture de l’information est destructive. En effet, elle se fait


par décharge de la capacité du point mémoire lorsque celle-ci est chargée.
Donc toute lecture doit être suivie d’une réécriture.

En général les mémoires dynamiques, qui offrent une plus grande densité
d'information et un coût par bit plus faible, sont utilisées pour la mémoire
centrale, alors que les mémoires statiques, plus rapides, sont utilisées
lorsque le facteur vitesse est critique, notamment pour des mémoires de
petite taille comme les caches et les registres.

Figure I-2: Illustration physique d’une RAM DYNAMIQUE


1.6.3.2. Les mémoires mortes (ROM)

Pour certaines applications, il est nécessaire de pouvoir conserver des


informations de façon permanente même lorsque l'alimentation électrique est
interrompue. On utilise alors des mémoires mortes ou mémoires à lecture
seule (ROM : Read Only Memory). Ces mémoires sont non volatiles.

Ces mémoires, contrairement aux RAM, ne peuvent être que lue.


L’inscription en mémoire des données reste possible mais est appelée
programmation. Suivant le type de ROM, la méthode de programmation
changera. Alors on peut parler de : PROM, EPROM, EEPROM, FLASH
EPROM.

a) PROM : C’est une ROM qui peut être programmée une seule fois par
l'utilisateur (Programmable ROM). La programmation est réalisée à
partir d’un programmateur spécifique.

b) L’EPROM ou UV-EPROM : Pour faciliter la mise au point d'un


programme ou tout simplement permettre une erreur de
programmation, il est intéressant de pouvoir reprogrammer une
PROM. La technique de claquage utilisée dans celles-ci ne le permet
évidemment pas. L'EPROM (Erasable Programmable ROM) est une
PROM qui peut être effacée.

c) EEPROM : (Electically EPROM) est une mémoire programmable et


effaçable électriquement. Elle répond ainsi à l’inconvénient principal
de l’EPROM et peut être programmée in situ.
14

d) FLASH EPROM : La mémoire Flash s'apparente à la technologie de


l’EEPROM. Elle est programmable et effaçable électriquement comme
les EEPROM.

1.6.4. Les mémoires de masse

Ces mémoires sont dotés d’un contrôleur permettant de les faire dialoguer
avec le microprocesseur.
Les périphériques internes de stockage sont principalement des
périphériques utilisant des supports magnétiques (disque dur) ou optiques
(CD-ROM, DVD-ROM).
1.7. CRITERES DE CHOIX D’UNE MEMOIRE

Les principaux critères à retenir sont :

 Capacité ;
 Vitesse ;
 Consommation ;
 Coût.

1.7.1. Notion de cache mémoire


1.7.2. Problème posé

L’écart de performance entre le microprocesseur et la mémoire ne cesse de


s’accroître. En effet, les composants mémoire bénéficient des mêmes progrès
technologiques que les microprocesseurs mais le décodage des adresses et la
lecture/écriture d’une donnée sont des étapes difficiles à accélérer.

Ainsi, le temps de cycle processeur décroît plus vite que le temps d’accès
mémoire entraînant un goulot d’étranglement. La mémoire n'est plus en
mesure de délivrer des informations aussi rapidement que le processeur est
capable de les traiter. Il existe donc une latence d’accès entre ces deux
organes.

1.7.3. Principe

Depuis le début des années 80, une des solutions utilisées pour masquer
cette latence est de disposer une mémoire très rapide entre le
microprocesseur et la mémoire. Elle est appelée cache mémoire.

On compense ainsi la faible vitesse relative de la mémoire en permettant au


microprocesseur d’acquérir les données à sa vitesse propre. On la réalise à
partir de cellule SRAM de taille réduite (à cause du coût). Sa capacité
mémoire est donc très inférieure à celle de la mémoire principale et sa
fonction est de stocker les informations les plus récentes ou les plus souvent
utilisées par le microprocesseur.
15

Au départ, cette mémoire était intégrée en dehors du microprocesseur mais


elle fait maintenant partie intégrante du microprocesseur et se décline même
sur plusieurs niveaux.

Le principe de cache est très simple : le microprocesseur n’a pas conscience


de sa présence et lui envoie toutes ses requêtes comme s’il agissait de la
mémoire principale :

 Soit la donnée ou l’instruction requise est présente dans le cache


et elle est alors envoyée directement au microprocesseur. On
parle de succès de cache. (a) ;
 soit la donnée ou l’instruction n’est pas dans le cache, et le
contrôleur de cache envoie alors une requête à la mémoire
principale. Une fois l’information récupérée, il la renvoie au
microprocesseur tout en la stockant dans le cache. On parle de
défaut de cache. (b).

a) A µp 1

Unité de Unité de Mémoire


Cache
traitement commande

a) Figure I-3: Succès de cache


b) µp
1 2

Unité de Unité de Mémoire


Cache
traitement commande

4 3

Figure I-4: défaut de cache


Bien entendu, le cache mémoire n’apporte un gain de performance que dans
le premier cas. Sa performance est donc entièrement liée à son taux de
succès. Il est courant de rencontrer des taux de succès moyen de l’ordre de
80 à 90%.

Remarques

 Un cache utilisera une carte pour savoir quels sont les mots de la
mémoire principale dont il possède une copie. Cette carte devra avoir une
structure simple ;
16

 Il existe dans le système deux copies de la même information : l’originale


dans la mémoire principale et la copie dans le cache. Si le
microprocesseur modifie la donnée présente dans le cache, il faudra
prévoir une mise à jour de la mémoire principale ;

 Lorsque le cache doit stocker une donnée, il est amené à en effacer une
autre. Il existe donc un contrôleur permettant de savoir quand les
données ont été utilisées pour la dernière fois. La plus ancienne non
utilisée est alors remplacée par la nouvelle ;

 A noter que l’on peut reprendre le même principe pour les disques durs et
CD/DVD.

1.2.3.Les interfaces d’entrées/sorties

Elles permettent d’assurer la communication entre le microprocesseur et les


périphériques. (Capteur, clavier, moniteur ou afficheur, imprimante, modem,
etc…).

1.2.4.Les bus
Un bus est un ensemble de fils qui assure la transmission du même type
d’information. On retrouve trois types de bus véhiculant des informations en
parallèle dans un système de traitement programmé de l’information :

 Un bus de données : bidirectionnel qui assure le transfert des


informations entre le microprocesseur et son environnement, et
inversement. Son nombre de lignes est égal à la capacité de
traitement du microprocesseur ;

 Un bus d'adresses: unidirectionnel qui permet la sélection des


informations à traiter dans un espace mémoire (ou espace
adressable) qui peut avoir 2n emplacements, avec n = nombre
de conducteurs du bus d'adresses ;

 Un bus de commande: constitué par quelques conducteurs qui


assurent la synchronisation des flux d'informations sur les bus
des données et des adresses.

1.2.5. Décodage d’adresses

La multiplication des périphériques autour du microprocesseur oblige la


présence d’un décodeur d’adresse chargé d’aiguiller les données présentes
sur le bus de données.
En effet, le microprocesseur peut communiquer avec les différentes
mémoires et les différents boîtiers d’interface. Ceux-ci sont tous reliés sur le
même bus de données et afin d’éviter des conflits, un seul composant doit
être sélectionné à la fois.
17

Lorsqu’on réalise un système microprogrammé, on attribue donc à chaque


périphérique une zone d’adresse et une fonction « décodage d’adresse » est
donc nécessaire afin de fournir les signaux de sélection de chacun des
composants.

Décodeur
d’adresse

Bus d’adresses
Bus de commande

Unité Mémoire Interface E/S


centrale principale

Bus de données
18

CHAPITRE II : STRUCTURE DU SYSTEME


MICROPROGRAMME
2.1. COMPOSITION

Bus d’adresses

a
Programme
Unité de Unité de
traitement commande

Données
d

Bus de données

Figure I-2: Architecture de base d’un microprocesseur

Un microprocesseur est construit autour de deux éléments principaux :

2.1.1. Microprocesseur

 Une unité de commande ;


 Une unité de traitement

Une unité de traitement associé à des registres chargés de stocker les


différentes informations à traiter. Ces éléments sont reliés entre eux par des
bus internes permettant les échanges d’informations.

2.1.1.1. L’unité de commande

Elle permet de séquencer le déroulement des instructions. Elle effectue la


recherche en mémoire de l'instruction. Comme chaque instruction est codée
sous forme binaire, elle en assure le décodage pour enfin réaliser son
exécution puis effectue la préparation de l'instruction suivante. Pour cela,
elle est composée par :

 le compteur de programme

Constitué par un registre dont le contenu est initialisé avec l'adresse de la


première instruction du programme. Il contient toujours l’adresse de
l’instruction à exécuter ;
19

 le registre d'instruction et le décodeur d'instruction

Chacune des instructions à exécuter est rangée dans le registre d’instruction


puis est décodée par le décodeur d’instruction ;

 le séquenceur (Bloc logique de commande)

Il organise l'exécution des instructions au rythme d’une horloge. Il


élabore tous les signaux de synchronisation internes ou externes (bus
de commande) du microprocesseur en fonction des divers signaux de
commande provenant du décodeur d’instruction ou du registre d’état
par exemple. Il s'agit d'un automate réalisé soit de façon câblée
(obsolète), soit de façon micro-programmée, on parle alors de micro-
microprocesseur.

2.1.1.2. L’unité de traitement

C’est le cœur du microprocesseur. Elle regroupe les circuits qui


assurent les traitements nécessaires à l'exécution des instructions :

 L’Unité Arithmétique et Logique (UAL)

C’est un circuit complexe qui assure les fonctions logiques (ET, OU,
Comparaison, Décalage, etc.…) ou arithmétiques (Addition,
soustraction).

 Le registre d'état

Il’est généralement composé de 8 bits à considérer individuellement.


Chacun de ces bits est un indicateur dont l'état dépend du résultat de
la dernière opération effectuée par l’UAL.

On les appelle indicateurs d’état ou flag ou drapeaux. Dans un


programme le résultat du test de leur état conditionne souvent le
déroulement de la suite du programme. On peut citer par exemple les
indicateurs de :

 retenue (carry : C) ;
 retenue intermédiaire (Auxiliary-Carry : AC) ;
 signe (Sign : S) ;
 débordement (overflow : OV ou V) ;
 zéro (Z) ;
 parité (Parity : P).

 Les accumulateurs

Ce sont des registres de travail qui servent à stocker une opérande au


début d'une opération arithmétique et le résultat à la fin de
l'opération.
20

2.2. SCHÉMA FONCTIONNEL

Bus d’adresses

Registre
d’adresse

Acc.

Registre
d’états PC Bus de Programme
UAL commande
Bloc logique de commande

Données
Registre Décodeur
Registre de d’instruction d’instruction
données
H

Bus de données

Figure I-3: Le schéma fonctionnel d’un microprocesseur

2.3. CYCLE D’EXÉCUTION D’UNE INSTRUCTION

Le microprocesseur ne comprend qu’un certain nombre d’instructions qui


sont codées en binaire. Le traitement d’une instruction peut être décomposé
en quatre phases.

2.3.1. Première phase : Recherche de l'instruction à traiter

1. Le PC contient l'adresse de l'instruction suivante du programme.


Cette valeur est placée sur le bus d'adresses par l'unité de commande
qui émet un ordre de lecture ;

2. Au bout d'un certain temps (temps d'accès à la mémoire), le contenu


de la case mémoire sélectionnée est disponible sur le bus des
données ;

3. L'instruction est stockée dans le registre instruction du processeur.


21

1
Microprocesseur Mémoire
a $2000
PC $2000 $2000 Instr. 1
$2001 Opér. 1
$2002 Instr. 2
RI Instruction 1 3 $2003 Instr. 3
$2004
2
Décodeur
d’instruction

Instr.1
$FFFF

Figure I-4: Phase de recherche d’instruction à traiter

2.3.2. Deuxième phase : Décodage de l’instruction et recherche de


l'opérande

Le registre d'instruction contient maintenant le premier mot de l'instruction


qui peut être codée sur plusieurs mots. Ce premier mot contient le code
opératoire qui définit la nature de l'opération à effectuer (addition,
rotation,...) et le nombre de mots de l'instruction.

1. L'unité de commande transforme l'instruction en une suite de


commandes élémentaires nécessaires au traitement de l'instruction ;

2. Si l'instruction nécessite une donnée en provenance de la mémoire,


l'unité de commande récupère sa valeur sur le bus de données ;

3. L’opérande est stockée dans un registre.

2.3.3. Troisième phase: Exécution de l'instruction

1. Le micro-programme réalisant l'instruction est exécuté ;


2. Les drapeaux sont positionnés (registre d'état) ;
3. L'unité de commande positionne le PC pour l'instruction suivante.
22

Microprocesseur Mémoire

PC $2002 $2000 Instr. 1


Bloc
logique de 3
$2001 Opér. 1
commande $2002 Instr. 2
RI Instruction 1 $2003 Instr. 3
$2004
Décodeur
d’instruction
UAL

1 Z=1 C=0 …

2
Résult. Oper.1
$FFFF

Figure I-5: Phase d’exécution de l’instruction

2.3.4. Quatrième phase: stockage des résultats (données) en mémoire

2.4. JEU D’INSTRUCTIONS

La première étape de la conception d’un microprocesseur est la définition de


son jeu d’instructions. Le jeu d’instructions décrit l’ensemble des opérations
élémentaires que le microprocesseur pourra exécuter. Il va donc en partie
déterminer l’architecture du microprocesseur à réaliser et notamment celle
du séquenceur.

A un même jeu d’instructions peut correspondre un grand nombre


d’implémentations différentes du microprocesseur.

2.4.1. Type d’instructions

Les instructions que l’on retrouve dans chaque microprocesseur peuvent


être classées en 4 groupes :

 Transfert de données : pour charger ou sauver en mémoire,


effectuer des transferts de registre à registre, etc ;

 Opérations arithmétiques : addition, soustraction, division,


multiplication ;

 Opérations logiques : ET, OU, NON, NAND, comparaison, test,


etc ;

 Contrôle de séquence : branchement, test, etc.


23

2.4.2. Codage

Les instructions et leurs opérandes (paramètres) sont stockées en mémoire


principale. La taille totale d’une instruction (nombre de bits nécessaires pour
la représenter en mémoire) dépend du type d’instruction et aussi du type
d’opérande.

Chaque instruction est toujours codée sur un nombre entier d’octets afin de
faciliter son décodage par le processeur. Une instruction est composée de
deux champs :

 le code instruction, qui indique au processeur quelle instruction


réaliser ;

 le champ opérande qui contient la donnée, ou la référence à une


donnée en mémoire (son adresse).

Tableau I-1: Exemple de codage


Code Code opérande
instruction
1001 0011 0011 1110

Le nombre d'instructions du jeu d'instructions est directement lié au format


du code instruction. Ainsi un octet permet de distinguer au maximum 256
instructions différentes.

2.4.3. Mode d’adressage

Un mode d'adressage définit la manière dont le microprocesseur va accéder à


l’opérande. Les différents modes d'adressage dépendent des
microprocesseurs mais on retrouve en général :

 l'adressage immédiat où l’on définit immédiatement la valeur de la


donnée ;
 l'adressage direct où l’on traite une donnée en mémoire ;
 l'adressage indirect ;
 etc.

Selon le mode d’adressage de la donnée, une instruction sera codée par 1 ou


plusieurs octets.

2.4.4. Temps d’exécution

Chaque instruction nécessite un certain nombre de cycles d’horloges pour


s’effectuer. Le nombre de cycles dépend de la complexité de l’instruction et
aussi du mode d’adressage. Il est plus long d’accéder à la mémoire principale
24

qu’à un registre du processeur. La durée d’un cycle dépend de la fréquence


d’horloge du séquenceur.

2.5. LANGAGE MACHINE

Le langage machine est le langage compris par le microprocesseur. Ce


langage est difficile à maîtriser puisque chaque instruction est codée par une
séquence propre de bits. Afin de faciliter la tâche du programmeur, on a créé
différents langages plus ou moins évolués.

Le langage assembleur est le langage le plus « proche » du langage machine.


Il est composé par des instructions en général assez rudimentaires que l’on
appelle des mnémoniques. Ce sont essentiellement des opérations de
transfert de données entre les registres et l'extérieur du microprocesseur
(mémoire ou périphérique), ou des opérations arithmétiques ou logiques.
Chaque instruction représente un code machine différent. Chaque
microprocesseur peut posséder un assembleur différent.

La difficulté de mise en œuvre de ce type de langage, et leur forte


dépendance avec la machine a nécessité la conception de langages de haut
niveau, plus adaptés à l'homme, et aux applications qu'il cherchait à
développer. Faisant abstraction de toute architecture de machine, ces
langages permettent l'expression d'algorithmes sous une forme plus facile à
apprendre, et à dominer (C, Pascal, Java, etc…).

Chaque instruction en langage de haut niveau correspondra à une


succession d’instructions en langage assembleur. Une fois développé, le
programme en langage de haut niveau n’est donc pas compréhensible par le
microprocesseur. Il faut le compiler pour le traduire en assembleur puis de
l’assembleur, le convertir en code machine compréhensible par le
microprocesseur. Ces opérations sont réalisées à partir de logiciels
spécialisés appelés compilateur et assembleur.

Langage de haut niveau


(for, if…then, write, etc.)

Compilateur

Langage assembleur
(Move, compare, branch, etc.)

Assemblage

Langage machine
(000 1101,1111 0110, etc.)

Figure I-6: Phase de traitement à trois niveau de langage


25

Exemple de programme Assembleur (68000)


ORG $1000
START: ; first instruction of program

OR.B #0,D0
MOVE.B #3,D0
MOVE.W D0,D1
MOVE.L #$2000,A1
MOVE.L #$3000,A2
NEXT MOVE.W D1,(A1)+
SUB.B #1,D0
BEQ FIN
BRA NEXT
FIN STOP #$2700
END $1000

2.6. PERFORMANCES D’UN MICROPROCESSEUR

On peut caractériser la puissance d’un microprocesseur par le nombre


d’instructions qu’il est capable de traiter par seconde. Pour cela, on définit :

 le CPI (Cycle Par Instruction) qui représente le nombre moyen de


cycles d’horloge nécessaire pour l’exécution d’une instruction
pour un microprocesseur donné ;

 le MIPS (Millions d'Instructions Par Seconde) qui représente la


puissance de traitement du microprocesseur.

MIPS= FH/CPI avec FH en MHz


Code machine)) Langage C
Pour augmenter les performances d’un microprocesseur, on peut donc soit
augmenter la fréquence d'horloge (limitation matérielle), soit diminuer le CPI
(choix d'un jeu d'instruction adapté).

2.7. ARCHITECTURE RISC ET CISC

Actuellement l’architecture des microprocesseurs se compose de deux


grandes familles :

 L’architecture CISC (Complex Instruction Set Computer) ;


 L’architecture RISC (Reduced Instruction Set Computer).

2.7.1. Comparaison CISC et RISC

Le choix dépendra des applications visées. En effet, si on diminue le nombre


d'instructions, on crée des instructions complexes (CISC) qui nécessitent
plus de cycles pour être décodées et si on diminue le nombre de cycles par
26

instruction, on crée des instructions simples (RISC) mais on augmente alors


le nombre d'instructions nécessaires pour réaliser le même traitement.

Tableau I-3: comparaison de deux architecture : CISC et RISC


N° Architecture RISC Architecture CISC
01 Instructions simples ne Instructions complexes ne prenant
prenant qu’un seul cycle plusieurs cycles
02 Instructions au format fixe Instructions au format variable
03 Décodeur simple (câblé) Décodeur complexe (microcode)
04 Beaucoup des registres Peu des registres
05 Seules les instructions LOAD et toutes les instructions sont
STORE ont l’accès à la mémoire susceptibles d’accéder à la mémoire
06 Peu de modes d’adressage beaucoup de modes d’adressage
07 Compilateur complexe Compilateur simple

2.7.2. Améliorations de l’architecture de base


L'ensemble des améliorations des microprocesseurs vise à diminuer le temps
d'exécution du programme.
La première idée qui vient à l’esprit est d’augmenter tout simplement la
fréquence de l’horloge du microprocesseur. Mais l’accélération des
fréquences provoque un surcroît de consommation ce qui entraîne une
élévation de température. On est alors amené à équiper les processeurs de
systèmes de refroidissement ou à diminuer la tension d’alimentation.
Une autre possibilité d’augmenter la puissance de traitement d’un
microprocesseur est de diminuer le nombre moyen de cycles d’horloge
nécessaire à l’exécution d’une instruction. Dans le cas d’une programmation
en langage de haut niveau, cette amélioration peut se faire en optimisant le
compilateur. Il faut qu’il soit capable de sélectionner les séquences
d’instructions minimisant le nombre moyen de cycles par instructions.
Une autre solution est d’utiliser une architecture de microprocesseur qui
réduise le nombre de cycles par instruction.
2.7.3. Architecture pipeline
2.7.3.1. Principe
L’exécution d’une instruction est décomposée en une succession d’étapes et
chaque étape correspond à l’utilisation d’une des fonctions du
microprocesseur. Lorsqu’une instruction se trouve dans l’une des étapes, les
composants associés aux autres étapes ne sont pas utilisés. Le
fonctionnement d’un microprocesseur simple n’est donc pas efficace.
L’architecture pipeline permet d’améliorer l’efficacité du microprocesseur. En
effet, lorsque la première étape de l’exécution d’une instruction est achevée,
l’instruction entre dans la seconde étape de son exécution et la première
phase de l’exécution de l’instruction suivante débute. Il peut donc y avoir
une instruction en cours d’exécution dans chacune des étapes et chacun des
composants du microprocesseur peut être utilisé à chaque cycle d’horloge.
27

L’efficacité est maximale, le temps d’exécution d’une instruction n’est pas


réduit mais le débit d’exécution des instructions est considérablement
augmenté. Une machine pipeline se caractérise par le nombre d’étapes
utilisées pour l’exécution d’une instruction, on appelle aussi ce nombre
d’étapes le nombre d’étages du pipeline.

Figure I-7: cycle de traitement par l’architecture pipeline


28

CHAPITRE III : LANGAGE ASSEMBLEUR

3.1. TEXAS INSTRUMENT


TI est une marque de produits électroniques de la société du même nom et le
cas échéant c’est l’ordinateur (calculateur numérique).
Texas Instruments a notamment inventé le circuit intégré, ouvrant ainsi la
voie au développement de l'informatique tel qu'on le connaît actuellement.
Cette invention valut, en 2000, le prix Nobel de physique à Jack Kilby.
Le processeur utilisé par le TI-89, TI-92, TI-92II et TI-92+ est un Motorola
68000 cadencé à 10 Mhz, celui-ci est plutôt simple d’utilisation par rapport
aux autres processeurs existant (x86 pour ne citer qu’eux).
3.1.1. Fonctionnement
Comme tout système informatique, le TI fonctionne sous base du langage
machine. C'est-à-dire, il ne comprend que deux états : 0 et 1. Une valeur qui
peut être égale et seulement égale à 0 ou 1. Ceci est équivalent pour nous à
OUI et NON, VRAI et FAUX, PASSE et NE PASSE PAS. Il n’y a pas
d’alternatives telles que « peut-être », « oui mais non ». Ce langage difficile à
maîtriser, ses instructions étant codées par séquence propre des bits,
présente une ambigüité pour communiquer avec la machine, en vue de lui
soumettre un travail à faire.
Pour lever cette ambigüité, on doit recourir à un système de numération
adaptée (hexadécimal) et un langage adapté (langage assembleur) pour
communiquer avec la machine.
3.1.2. Système de numération
Comme la machine ne connait que le langage machine, ce qui signifie que le
processeur travaille avec le système binaire Mais l’homme qui est sensé
utilisé la machine, travaille avec le système décimal. Pour créer le dialogue
entre les deux, il faut un système intermédiaire, en occurrence le système
hexadécimal. Mais pour une lecture plus binaire que possible, on se sert du
code BCD (Binary Code Decimal) pour présenter au processeur une
compréhension plus aisée. Le tableau suivant illustre une conversion
décimale, hexadécimale et code BCD.
29

DECIMAL HEXADECIMAL BCD


0 0 0000
1 1 0001
2 2 0010
3 3 0011
4 4 0100
5 5 0101
6 6 0110
7 7 0111
8 8 1000
9 9 1001
10 A 1010
11 B 1011
12 C 1110
13 D 1101
14 E 1100
15 F 1111

3.1.3. Données numériques

8 bits forment un Byte en anglais D’où .b dans le


octet programme
Schématiquement XXXXXXXX Où x représente un
bit
Nous avons 2^8 = 256 nombre différents
possibilités
16 bits forment Word en anglais D’où .w dans le
un Mot programme
Schématiquement XXXXXXXXXXXXXXXX Où x représente un
bit
Nous avons 2^16 = 65536 nombre
possibilités différents
32 bits forment Long word en anglais D’où .l dans le
un Double mot programme
Schématiquement XXXXXXXXXXXXXXXX Où x représente un
XXXXXXXXXXXXXXXX bit
Nous avons 2^32 = 4294967296 nombre
possibilités différents

Comme vous pouvez le voir, le paquet minimum appelé octet est constitué de
8bits, un mot est composé de deux octets, et un double mot est composé de
deux mots soit 4 octets.
Remarque

L’octet est le plus petit type d’information manipulable par un système


informatique. Autrement dit, il faut à chaque fois retrouver l’information (le
paquet) en format : 8×1, 8×2, 8×3, 8×4, etc.
30

3.1.4. Représentation décimale (base 10)

En assembleur Motorola 68000, il faut précéder toute valeur décimale par .

Exemple : 1999

3.1.4.1. Représentation binaire (base 2)

En assembleur Motorola 68000, il faut précéder toute valeur binaire par


 .

Exemple :  1100101011000110

3.1.4.2. Représentation hexadécimale (base 16)

En assembleur Motorola 68000, il faut précéder toute valeur hexadécimale


par $.

Exemple : $4000

Remarque

On se posera la question de savoir pourquoi $ et pas seulement $ ?


Il faut noter que, chaque octet en mémoire est repéré par une adresse. Si
vous écrivez $4000, vous pointez sur l’adresse 4000 et non la valeur
hexadécimale 4000. Alors pour être précis :

 $4000 représente l’adresse (le contenu de l’adresse 4000) d’une


mémoire et non la valeur 4000 ;

 Et, $4000 représente la valeur hexadécimale 4000.

3.1.4.3. Les nombres signés

a) Différence de signe

Il n’y a pas de signe + et – en assembleur, c’est le but du poids fort qui joue
ce rôle :

 Si ce bit est armé (=1), il y a ambigüité. C'est-à-dire le nombre est soit


positif soit négatif. D’où il faut lever cette ambigüité ;

 Si ce bit n’est pas armé (=0), le nombre est positif.


31

Exemple

00011010 = 26
10011010 = 154 = -102
0011011100101110 =14126
1011011100101110 = 46894 = -18642
00011011110101001111010001010110 = 466941014
10011011110101001111010001010110 = 2614424662 = -1680542634

Le bit de poids fort pour les nombres signés nous permet de savoir si le
nombre est positif ou négatif. Par conséquent, sa valeur n’est plus 128 ou 0
mais « + ou - » donc le champ des valeurs est modifié :

Type Nombres non signés Nombres signés


b 0 à 255 -128 à 127
w 0 à 65535 -32768 à 32767
l 0 à 4294967295 - 2147483648 à 2147483647

b) Valeur signée ou non signée

La méthode pour passer d’un nombre non signé à un nombre signé a deux
cas :

 Si le bit de poids fort est désarmé, nous gardons la valeur du nombre


qui sera considérée comme un nombre signé positif ;

 Si le bit du poids fort est armé, il y a ambigüité. Il faut appliquer le


complément à deux pour lever cette ambigüité (c'est-à-dire soit le
nombre est positif soit il est négatif) et le résultat sera considéré
comme un nombre signé négatif

Complément à deux = NON logique + 1

Exemple 1

Prenons le nombre non signé 123,  123 = #01111011. Le bit de poids fort
est désarmé (#01111011) : on n’appliquera pas le complément à deux, car
le résultat est la valeur non signé : #01111011 = 123.
Exemple 2

Prenons le nombre non signé 251,  251 = #011111011. Le bit de poids fort
est armé (#11111011) : on appliquera le complément à deux.

Complément à deux = NON logique + 1 :


32

NON #11111011 = #00000100 + $1 = #00000101


Le résultat vaut : #00000101 = -5

c) Opposé d’un nombre

On utilise la méthode de complément à deux pour trouver l’opposé (négatif)


d’un nombre. Il suffit de faire tout d’abord un NON logique sur le nombre
que l’on veut opposer (le 0 deviennent des 1 et inversement) puis de lui
ajouter 1.

Exemple

Prenons le nombre 51   51 =  00110011


Faisons un NON logique   00110011devient  11001100
Ajoutons $1 au non logique   11001100 +  00000001 =
 11001101
Le résultat est : -51

3.1.5. Le microprocesseur : Motorola 68000 (68K)

Apparu en 1979, le Motorola 68000 est un microprocesseur CISC 16/32


bits développé par Motorola. C'est le premier de la famille de
microprocesseurs souvent appelée m68k ou 680x0, qui comprend
notamment les microprocesseurs Motorola 68010, Motorola 68020, Motorola
68030, Motorola 68040 et Motorola 68060. Le nom du 68000 vient à la fois
de la continuité avec la famille de microprocesseurs Motorola 6800 et du
nombre de transistors qu'il contient, un peu plus de 68 000.

Le 68000 est également particulièrement adapté à une configuration


multiprocesseur. Il peut être aussi utilisé avec les circuits périphériques de
première génération (PIA MC6821 par exemple) grâce à des signaux de
synchronisation disponibles sur le bus.

3.1.6. Les registres

Comme tout processeur, le Motorola 68000 est équipé de registres, 19 pour


être précis.

Ces registres sont des emplacements mémoire, pour la plus part 32 bits,
ayant des rôles spécifiques.
33

Poids Poids
fort faible

Direction de
comptage de bits 31 0
15 7

1 BCD

1 BYTE (.B)

1 MOT (.W)

1 LONG MOT (.L)

Ces registres sont regroupés en 4 catégories, en occurrence registre de


données (Dn), registre d’adresse (An), compteur ordinal en anglais
programme counter (PC), registre de statut (RS).
3.1.6.1. Registre de données
Nous avons 8 registres de données 32 bits qui servent à contenir des
données. Ils ont comme identifications : D0, D1, D2, D3, D4, D5, D6, D7.
Nous pouvons résumer l’identification en Dn quand nous pourrons les
utiliser indifféremment pour une tâche.
8 registres de données de 32 bits qui peuvent être réduits à l'octet de poids
faible (bits de 0 à 7) ou le mot de poids faible (bits de 0 à 15)

31 16 15 7 0
D0
D1
D2
D3
D4
D5
D6
D7
34

3.1.6.2. Registre d’adresse


Nous avons 8 registres d’adresses 32 bits qui servent à contenir des adresses
(pointeurs), ils ont comme identifications : A0, A1, A2, A3, A4, A5, A6 et
A7.
Remarque : Le registre A7 est le pointeur de pile. Il est donc formellement
déconseillé un autre registre d’adresse à la place ou de modifier d’une façon
quelconque le registre A7 pendant l’exécution du programme. La raison est
fort simple : le microprocesseur, donc toutes les fonctions en ROM, et par
conséquent les bibliothèques, utilisent le registre A7 comme pointeur de pile.
Nous référant à la remarque précédente, nous pouvons résumer
l’identification des registres A0, A1, A2, A3, A4, A5 et A6 en An quand
nous pourrons les utiliser indifféremment pour une tâche.
7 registres d'adresses de 32 bits qui peuvent être réduits (partiellement)
au mot de poids faible (bits de 0 à 15) mais pas à l'octet.
31 16 15 7 0
A0
A1
A2
A3
A4
A5
A6

Un registre 32 bits à la fois pointeur de pile utilisateur (USP) et registre


d'adresses A7
31 0
USP = A7

Un registre 32 bits à la fois POINTEUR DE PILE SUPERVISEUR (SSP) et


registre d'adresses A7’

31 0
SSP = A7’

3.1.6.3. Compteur ordinal (CO)


En anglais Programme Counter (PC) 32 bits, qui pointe en permanence sur
la prochaine instruction à exécuter. Seuls les 24 premiers bits sont utilisés,
ce qui est largement suffisant pour accéder à toute la mémoire de TI, c’est
pour cela que la plupart de des adresses données sont du type $xxxxxx en
lieu et place de $00xxxxxx.
35

Un Compteur de Programme 32 bits dont seuls les 24 bits de poids faible


sont utilisables
31 23 0
PC

3.1.6.4. Registre d’état ou registre de statut (SR)


Le registre de statut est 16 bits et peut être décomposé en deux registres 8
bits. L’octet de poids faible est le registre de statut utilisateur nommé CCR
(registre de code condition) et l’octet de poids fort est l’octet système.

15 8 7 0
(CCR) SR

Poids faible : Octet utilisateur (CCR).


Poids fort : Octet superviseur.
Ce registre reflète l'état du processeur après chaque instruction, ce qui
permet d'autoriser ou interdire les interruptions, ou tester le résultat d'une
opération pour un branchement conditionnel
3.1.7. Mémoires
Comme toute mémoire centrale, cette mémoire est divisée en deux grandes
parties : la RAM et la ROM.

 La RAM
Elle peut être modifiée et lue, ce qui nous intéresse principalement
pour sauver des variables ; elle intéresse aussi la TI, qui en utilise
environ 70 Ko pour son usage personnel.
 La ROM
Elle peut être lue mais pas modifiée. Elle contient toutes les
informations nécessaires au bon fonctionnement des TI, comme le
système d’exploitation, les 10 000 fonctions disponibles, etc.
36

a) Action du microprocesseur sur la mémoire TI


La mémoire est toujours représentée par deux nombres hexadécimaux :

Mémoire en hexadécimal Mémoire en binaire

$2004 $2004

AA $2003 1 0 1 0 1 0 1 0 $2003

BB $2002 1 0 1 1 1 0 1 1 $2002

20 $2001 0 0 1 0 0 0 0 0 $2001

EF $2000 1 1 1 0 1 1 1 1 $2000

$1FFF $1FFF

$1FFE $1FFE

$1FFD $1FFD

$1FFC $1FFC

EF 20 BB AA
$1FFC $1FFD $1FFE $1FFF $2000 $2001 $2002 $2003 $2004

1010 1010 1011 1011 0010 0000 1110 1111


$1FFD $1FFE $1FFF $2000 $2001 $2002 $2003 $2004

Le microprocesseur peut effectuer deux actions suivantes sur la mémoire :

 La modifier, en écrasant (remplaçant) la valeur précédente ;


37

 La lire, ce qui n’entraîne aucune modification.


b) Taille de données en mémoire

 Un caractère

Un caractère étant codé sur 8 bits (octet), il ne prendra qu’un


emplacement à chaque fois ;

 Une chaine de caractères

Une chaîne de caractère étant une suite de plusieurs caractères, elle


occupe autant d’octets consécutifs ;

 Les instructions

Les instructions occupent plus ou moins 2, 4 ou 6 octets de mémoire


selon leur degré de complexité. Il est parfois préférable d’utiliser telle
instructions au lieu d’une autre ayant un résultat similaire dans le
seul but d’utiliser moins de mémoire pour un résultat équivalent, le
cas échéant vous en serez averti ;

 Une valeur numérique

Une valeur numérique occupe autant d’emplacement consécutif que


nécessaire :

 Un nombre sur 8 bits (octet ou byte) utilisera un emplacement et


aura comme valeur 0 à 255 s’il n’est pas signé et -128 à -127 s’il
est signé ;

 Un nombre sur 16 bits (mot ou deux octets ou deux bytes)


utilisera deux emplacements consécutifs et aura comme valeur 0
à 65535 s’il n’est pas signé, et -32768 à -32767 s’il est signé ;
 Un nombre sur 32 bits (double mot ou quatre octets ou quatre
bytes) utilisera quatre emplacements consécutifs et aura comme
valeur 0 à 4294967296 s’il n’est pas signé, et -2147483648 à -
2147483647 s’il est signé ;

3.2. JEUX D’INSTRUCTIONS

Nous faisons recours au langage assembleur qui est un langage plus proche
du langage machine.

3.2.1. ADD : Addition binaire

Syntaxe: ADD <AE>, Dn ou ADD Dn, <AE>

Opérande: Octet, Mot, Mot long


38

Addition binaire entre un opérande et le contenu d'un registre Dn.

Example : ADD.W #$1234, D0


ADD.L D0, -(A1)

3.2.2. BRA : Branchement inconditionnel

Syntaxe: BRA <étiquette>

Opérande: Octet, Mot

L'instruction suivante qui sera exécutée est située à l'adresse (PC) +


étiquette.

Exemple : BRA $02


BRA Lier

3.2.3. BSR : Branchement sous-programme

Syntaxe: BSR <étiquette>

Opérande: Octet, Mot

L'adresse de l'instruction suivante est sauvegardée dans la pile puis


l'exécution du programme se poursuit à l'adresse (PC) + étiquette

Exemple : BSR $02


BSR Lier

3.2.4. CLR : Remise à zéro d'un Opérande

Syntaxe: CLR <AE>

Opérande: Octet, Mot, Mot long

Tous les bits de la destination sont mis à zéro.

Exemple: CLR.L D1
CLR.B -(A1)

3.2.5. CMP : Comparaison Registre Dn

Syntaxe: CMP <AE>, Dn

Opérande: Octet, Mot, Mot long

L'Opérande source est soustrait de l'Opérande destination afin de


positionner les flags CCR.
39

Exemple: CMP.L D0, D1


CMP.W #$1234, D2
CMP.L -(A1), D0

3.2.6. CMPA : Comparaison Adresse An

Syntaxe: CMPA <AE>, An

Opérande: Mot, Mot long

L'Opérande source est soustrait de l'Opérande destination afin de


positionner les flags CCR.

Exemple: CMPA.L D0, A1


CMPA.W #$1234, A2
CMPA.L -(A1), A0

3.2.7. CMPI : Comparaison immédiate

Syntaxe: CMPI #<donnée>, <AE>

Opérande: Octet, Mot, Mot long

La donnée immédiate est soustraite de l'Opérande destination afin de


positionner les flags CCR.

Exemple: CMPI.B #$02, D1


CMPI.W #$1234, (A1)+
CMPI.L #$12345678, -(A3)

3.2.8. CMPM : Comparaison mémoire

Syntaxe: CMPM (Ay)+, (Ax)+

Opérande: Octet, Mot, Mot long

L'Opérande source est soustrait de l'Opérande destination afin de


positionner les flags CCR.

Exemple : CMPM.L (A1)+, (A0)+


CMPM.B (A2)+, (A1)+

3.2.9. DIVS : Division signée

Syntaxe: DIVS <AE>, Dn

Opérande: Mot
40

Division de l'Opérande destination 32 bits par l'Opérande source 16 bits. Le


résultat 32 bits signé est organisé comme suit:

 Quotient : Mot de poids faible


 Reste : Mot de poids fort.

Le signe du reste est le même que celui du dividende, le débordement peut


être positionné.

Exemple: DIVS.W #$1234, D0


DIVS.W -(A1), D2

3.2.10. DIVU : Division non signée

Syntaxe: DIVU <AE>, Dn

Opérande: Mot

Division de l'Opérande destination 32 bits par l'Opérande source 16 bits. Le


résultat 32 bits non signé est organisé comme suit:

* Quotient : Mot de poids faible


* Reste : Mot de poids fort.

Exemple: DIVU.W #$1234, D0


DIVU.W -(A1), D2

3.2.11. MOVE : Transfert de données

Syntaxe: MOVE <AE>, <AE>

Opérande: Octet, Mot, Mot long

Transfert de l'Opérande Source vers la Destination

Exemple : MOVE.W D0, D1


MOVE.B D1, $12345678
MOVE.L D2, (A1)+

3.2.12. MULS : Multiplication signée

Syntaxe: MULS <AE>, Dn

Opérande: Mot

Multiplication 2 x 16 bits, résultat signé sur 32 bits dans Dn


41

Exemple: MULS D0, D1


MULS #$1234, D2
MULS $1234, D3

3.2.13. MULU : Multiplication non signée

Syntaxe: MULU <AE>, Dn

Opérande: Mot
Multiplication 2 x 16 bits, résultat non signé sur 32 bits dans Dn

Exemple : MULU D0, D1


MULU #$1234, D2
MULU $1234, D3

3.2.14. NOT : Complément à un

Syntaxe: NOT <AE>

Opérande: Octet, Mot, Mot long

Complément à un de l'Opérande.

Exemple: NOT.W D0
NOT.L $02(A0)

3.2.15. RESET : Remise à zéro des circuits externes

Syntaxe: RESET

Opérande: Aucun

La sortie Hardware Reset est validée si on est en mode superviseur. Sinon,


"violation de privilège" indiqué.

Exemple: RESET

3.2.16. ROL : Rotation à gauche

Syntaxe: ROL Dx, Dy ou ROL #<donnée>, Dy ou ROL <AE>

Opérande: Octet, Mot, Mot long

Rotation à gauche de la destination. Le nombre de rotations est indiqué par


la source. Si l'Opérande est une case mémoire, il n'y a qu'une rotation. La
rotation de 0 bit est parfois interdite par les compilateurs. Lorsqu'elle est
autorisée, elle correspond en fait à une rotation de 8 bits.
42

Exemple: ROL (A0)+


ROL #$01, D0

3.2.17. ROR : Rotation à droite

Syntaxe: ROR Dx, Dy ou ROR #<donnée>, Dy ou ROR <AE>

Opérande: Octet, Mot, Mot long

Rotation à droite de la destination. Le nombre de rotations est indiqué par la


source. Si l'Opérande est une case mémoire, il n'y a qu'une rotation. La
rotation de 0 bit est parfois interdite par les compilateurs. Lorsqu'elle est
autorisée, elle correspond en fait à une rotation de 8 bits.

Exemple: ROR (A0)+


ROR #$01, D0

3.2.18. STOP : Chargement du SR et arrêt

Syntaxe: STOP #<donnée 16 bits>

Opérande: Aucun

La donnée immédiate 16 bits est mise dans le SR. Le PC est positionné sur la
prochaine instruction et le processeur s'arrête. L'exécution reprend après
une exception Trace, une interruption ou un Reset. Le processeur doit être
en mode Superviseur.

Exemple: STOP #$1234

3.2.19. SUB : Soustraction binaire

Syntaxe: SUB <AE>, Dn ou SUB Dn, <AE>

Opérande: Octet, Mot, Mot long

Soustraction de la Source et de la Destination. Le résultat est mis dans la


Destination.

Exemple: SUB.W D0, D1


SUB.W $02(A1), D0

3.3. MODE D’ADRESSAGE

Motorola 68000 peut adresser des valeurs en mémoire de 14 façons


différentes. L’adressage peut se faire de manière immédiate, directe ou
indirecte.
43

3.3.1. Adressage immédiat

Il ne s'agit pas, à proprement parler, d'un mode d'adressage puisque ce n'est


pas l'adresse de l'opérande qui est fournie dans l'instruction mais l'opérande
lui-même.

Quelques instructions ne nécessitant pas de mot extension (telles que ADDQ


ou SUBQ) lorsque la taille de l’opérande est réduite (de 1 à 8). Pour les
autres, si l'opérande porte sur un octet, il sera constitué de l'octet de poids
faible du mot extension. Pour un mot, ce sera tout le mot extension. Pour un
mot long deux mots.

Exemple1

MOVE.L #$20000,D1 :La valeur 20000 sera transférée dans D1 sous la


forme d'un mot long

Exemple2

MOVE.W #$1000, A0 : La valeur $1000 est mise dans A0


ADD.B #$C2, $2000 : La valeur $C2 est ajoutée au contenu de la
case
$2000

Exemple3

ADD.w #$3322,D1

Avant exécution Après exécution

D1= $04030201 D1= $04033523

3.3.2. Adressage direct


3.3.2.1. Adressage direct par registre de données Dn

a) Description

 Copier le contenu d’un registre de données dans un autre registre de


données (D1 vers D2), l’opérande source n’est pas modifié ;

 Si la taille de données est un octet ou un mot, seul le premier octet ou


mot du registre source est copier à la place du premier octet ou mot du
registre de destination

b) Syntaxe : Dn

MOVE.b D0,D1 : copie le premier octet de D0 dans D1


MOVE.w D0,D1 : copie le premier mot de D0 dans D1
44

MOVE.l D0,D1 : copie le contenu de D0 dans D1


Exemple: Instruction MOVE.L D2,D1

Avant exécution Après exécution

D2 D2
11 22 33 44 11 22 33 44

D1 00 00 00 00 D1 11 22 33 44

3.3.2.2. Adressage direct par registre d’adresse An


c) Description
Copier le contenu d’un registre de d’adresse dans un autre registre de
données (An vers Dn ou Dn vers An) et inversement, l’opérande source n’est
pas modifié ;
Remarque
Si vous transférez un mot dans un registre d’adresse, le bit de poids fort (bit
15) qui est le bit de signe est copié dans le bit 16 à 31 de ce même registre
d’adresse, ceci pour ne pas perdre le signe d’un nombre car le nouveau bit de
poids fort (bit 31) du registre d’adresse est alors le même que celui du mot
copié.
a) Syntaxe : An
MOVE.w D0,A0 : copie le premier mot de D0 dans A0
MOVE.l D0,A0 : copie le contenu de D0 dans A0
MOVE.w A0,D0 : copie le premier mot de A0 dans D0
MOVE.l A0,D0 : copie le contenu de A0 dans D0

Exemple : MOVE.L A2,D1


Avant exécution Après exécution

A2 A2
11 22 33 44 11 22 33 44

D1 00 00 00 00 D1 11 22 33 44

3.3.2.3. Adressage indirect


3.3.2.3.1. Adressage indirect par registre d’adresse (se fait toujours
avec An)
b) Description
Copier le contenu d’un emplacement mémoire à l’adresse contenue dans le
registre d’adresse dans un autre registre de données (Dn) ou d’adresse (An)
et inversement, l’opérande source n’est pas modifié.
45

Remarque :

Si la taille de données copiées est un mot ou un double mot, il faut que


l’adresse du registre d’adresse soit paire.

c) Syntaxe : (An)

MOVE.w (A0),A1 : copie le premier mot de A0 dans A1


MOVE.l (A0),D0 : copie le double mot contenu à l’adresse de A0 dans D0
MOVE.w D0, (A0) : copie le premier mot de D0 à l’adresse contenue dans A0
MOVE.l A1, (A0) : copie le contenu de A1 à l’adresse contenue dans A0

Exemple1

MOVE.B (A0), D0 : Le contenu de la case mémoire dont l'adresse se trouve


dans A0 est mis dans D0

Exemple2:

MOVE.L (A2),D1

Avant exécution Après exécution

Mémoire: $2000
$2000==1122
1122 Mémoire: $2000 = 1122
$2002 = 3344
$2002 = 3344 $2002 = 3344
$20004 = 5566 $20004 = 5566

Registres : Registres :

A2 A2
00 02 00 00 00 02 00 00

D1 D1 11 22 33 44
00 00 00 00

3.3.2.3.2. Adressage indirect par registre d'adresses avec post-


incrémentation

L'opérande est contenu dans l'emplacement mémoire dont l'adresse est


spécifiée dans le registre d'adresses précisé dans l'instruction. Après
exécution de l'instruction l'adresse contenue dans le registre est incrémentée
de 1 pour le transfert d'un octet (.B), de 2 pour le transfert d'un mot (.W) ou
de 4 pour un mot long (.L).

Exemple1

MOVE.B D0, (A1)+ : Le contenu de D0 est mis dans la case mémoire dont
l'adresse se trouve dans A1. Le registre A1 est ensuite incrémenté.
46

Exemple2

MOVE.L (A2)+,D1

Avant exécution Après exécution

Mémoire: $20000
$2000 == 1122
1122 Mémoire: $20000 =
1122 $20002 = 3344
$2002 = 3344 $20002 =
3344
$20004 = 5566 $20004 = 5566

Registres : Registres :

A2 A2
00 02 00 00 00 02 00 04

D1 D1 11 22 33 44
00 00 00 00

3.3.2.3.3. Adressage indirect par registre d'adresses avec pré-


décrémentation

L'adresse de l'opérande est obtenue en retranchant au contenu du registre


d'adresses spécifié dans l'instruction le nombre d'octets, taille de l'opérande,
1 pour le transfert d'un octet (.B), 2 pour le transfert d'un mot (.W) ou 4 pour
un mot long (.L).

Exemple

MOVE.L -(A2),D1 : Le registre A1 est décrémenté‚ et le contenu de la case


mémoire dont l'adresse se trouve dans A1 est mis dans D1

Avant exécution Après exécution

Mémoire: $20000
$2000 == 1122
1122 Mémoire: $20000 =
1122 $20002 = 3344
$2002 = 3344 $20002 =
3344
$20004 = 5566 $20004 = 5566

Registres : Registres :

A2 A2
00 02 00 04 00 02 00 00

D1 D1 11 22 33 44
00 00 00 00
47

3.4. STRUCTURE DU PROGRAMME

ORG $1000
OR.B #0,D0

Label Commentaires

STOP #$2700
END $1000
Exemple

ORG $1000
OR.B 0,D0 ; Initialization du D0
MOVE.b 10,D0
NEXT MOVE.w $001F,D1
ADD.w $0001,D1
SUB.b 1,D0
BRA NEXT
STOP $2700
END $1000
Le programme est composé de 4 champs à respecter :

 Champ label : un label peut avoir une longueur allant de 1 à 7


caractères et le premier caractère doit être alphabétique ;

 Champ op. code : les Op. code ne peuvent pas débuter à la colonne 1,
long de 7 caractères (sans espace entre les caractères) ;

 Champ opérande : les opérandes peuvent être : les registres, les


symboles, les nombres constants, etc. les opérandes doivent avoir une
longueur de moins de 20 caractères (jusqu’à N) ;

 Champ commentaire : le commentaire se fait à la colonne N+2, en


une ligne (pas deux) et doit être en rapport avec le programme.
48

Champ Champ Champ Champ


Label Op. Code Opérande Commentaires
17 9  15 17  N N∞
ORG $1000
OR.B 0,D0 ; Initialization du D0
MOVE.b 10,D0
NEXT MOVE.w $001F,D1
ADD.w $0001,D1
SUB.b 1,D0
BRA NEXT
STOP $2700
END $1000

3.5. SIMULATION AVEC EASY68K


49

3.6. EXERCICES

1. Ecrire un programme qui place l’octet décimal 88 dans D1 et déplace


le contenu de D1 dans la partie octet de D2.

2. Soit le registre de données D2 = $04030201 et le registre de données


D1 = $0D0C0B0A. Ecrire un programme qui additionne la partie B de
D2 avec D1
3. (D2 opérande source et D1 opérande de destination), et placer la
somme de la partie L de D1 dans l’allocation mémoire $2000 de A2.

4. Ecrire un programme qui additionne l’hexadécimal contenu dans la


partie mot de la première location (2000) avec celui contenu dans la
partie mot de la deuxième location (2002) et enfin avec celui de la
troisième location (2004) et mettre le résultat dans la partie mot du
quatrième mot (2006).
50

5. Soit deux séries de locations parallèles dont l’une commence par 1000
et l’autre par 1100. Ecrire un programme qui compare les locations
parallèles et identiques. Si le programme rencontre deux locations
égales, qu’il compte jusqu’à ce que toutes les locations mémoires
soient identifiées.

6. Ecrire un programme qui copie automatiquement, en se servant d’un


mode d’adressage qui convient, les contenus des locations mémoires
commençant par 1006 à 1000 vers 1106 à 1100, en décidant sur BNE
ou BNQ.

7. Ecrire un programme qui copie la partie mot du registre de données


D2 dans la partie mémoire adressée par A4.

3.7. ORGANISATION ET PROCEDURE DES TP (en groupe ou individuel)

I. Identification (Groupe ou individuel)


II. Enoncé du TP
III. Traitement manuel
a) Calcul
b) Présentation avant et après exécution
IV. Simulation avec le logiciel
51

Références bibliographiques

a) Ouvrages

1. R, Introduction to Computer, third edition Prentice Hall, New Jersey,


1984.

2. Robert Boylestad, Louis Nashelsky, Electronic devices and circuit


theory, second edition, Prentice Hall, Virginia, 1978.

3. J. D. Ryder, Charles M. Thomson, electronic circuits and systems,


Prentice Hall, New Jersey, 1976.

4. William D. Stanley F. Harrington, Lines and fields in electronic


technology, Prentice Hall, New Jersey, 1995.

b) Notes de cours :

1. Mateta Kanda Paul, Cours de calculateur numérique et TP Labo, 3e


Graduat Radionavigation, ISTA, 2009-2010 (inédit).

2. Tshimpanga Ntumba Kampangala Roger, Cours de structure des


ordinateurs, 3e Graduat électronique industrielle, ISTA, 2013-2014
(inédit).

c) Articles:

1. Abgelas, « le microprocesseur 16 bits : Motorolla 68000 », dans


Informatique/ Micropocesseur.

d) Site web :

1. www. wikipedia. org


2. www. wanadoo. fr
3. www. commentcamarche. org
52

TABLE DES MATIERES

CHAPITRE I : SYSTEME INFORMATIQUE ................................................................................ 2


1.1. PRESENTATION ......................................................................................................................... 2
1.2. DÉFINITION ET CLASSIFICATION ....................................................................................... 2
1.3. STRUCTURE EN COUCHES................................................................................................... 3
1.4. SYSTEME D’EXPLOITATION .................................................................................................. 4
1.4.1. Rôle d’un système d’exploitation ................................................................................... 4
1.4.2. Composition d’un système d’exploitation................................................................... 5
1.4.3. Les différentes catégories des systèmes d’exploitation .......................................... 6
1.4.4. Les applicatifs...................................................................................................................... 8
1.5. MATERIEL .................................................................................................................................... 8
1.6. MEMOIRES .................................................................................................................................. 9
1.6.1. Organisation d’une mémoire .......................................................................................... 9
1.6.2. Caractéristiques d’une mémoire ................................................................................. 10
1.6.3. Différents types de mémoire ......................................................................................... 11
1.6.3.1. Les mémoires vives (RAM) ............................................................................................. 11
1.6.3.2. Les mémoires mortes (ROM) ......................................................................................... 13
1.6.4. Les mémoires de masse ................................................................................................. 14
1.7. CRITERES DE CHOIX D’UNE MEMOIRE ........................................................................ 14
1.7.1. Notion de cache mémoire .............................................................................................. 14
1.7.2. Problème posé ................................................................................................................... 14
1.7.3. Principe................................................................................................................................ 14
CHAPITRE II : STRUCTURE DU SYSTEME MICROPROGRAMME ................................. 18
2.1. COMPOSITION .......................................................................................................................... 18
2.1.1. Microprocesseur ............................................................................................................... 18
2.1.1.1. L’unité de commande ...................................................................................................... 18
2.1.1.2. L’unité de traitement....................................................................................................... 19
2.2. SCHÉMA FONCTIONNEL ...................................................................................................... 20
2.3. CYCLE D’EXÉCUTION D’UNE INSTRUCTION................................................................ 20
2.3.1. Première phase : Recherche de l'instruction à traiter .......................................... 20
2.3.2. Deuxième phase : Décodage de l’instruction et recherche de l'opérande ...... 21
2.3.3. Troisième phase: Exécution de l'instruction ........................................................... 21
2.3.4. Quatrième phase: stockage des résultats (données) en mémoire .................... 22
53

2.4. JEU D’INSTRUCTIONS .......................................................................................................... 22


2.4.1. Type d’instructions .......................................................................................................... 22
2.4.2. Codage ................................................................................................................................. 23
2.4.3. Mode d’adressage ............................................................................................................. 23
2.4.4. Temps d’exécution ........................................................................................................... 23
2.5. LANGAGE MACHINE .............................................................................................................. 24
2.6. PERFORMANCES D’UN MICROPROCESSEUR ............................................................. 25
2.7. ARCHITECTURE RISC ET CISC.......................................................................................... 25
2.7.1. Comparaison CISC et RISC .......................................................................................... 25
2.7.2. Améliorations de l’architecture de base .................................................................... 26
2.7.3. Architecture pipeline ....................................................................................................... 26
2.7.3.1. Principe................................................................................................................................ 26
CHAPITRE III : LANGAGE ASSEMBLEUR ............................................................................... 28
3.1. TEXAS INSTRUMENT ............................................................................................................. 28
3.1.1. Fonctionnement ................................................................................................................ 28
3.1.2. Système de numération ................................................................................................. 28
3.1.3. Données numériques ...................................................................................................... 29
3.1.4. Représentation décimale (base 10) ............................................................................. 30
3.1.4.1. Représentation binaire (base 2) ................................................................................... 30
3.1.4.2. Représentation hexadécimale (base 16).................................................................... 30
3.1.4.3. Les nombres signés ......................................................................................................... 30
3.1.5. Le microprocesseur : Motorola 68000 (68K) ........................................................... 32
3.1.6. Les registres ....................................................................................................................... 32
3.1.6.1. Registre de données ........................................................................................................ 33
3.1.6.2. Registre d’adresse ............................................................................................................ 34
3.1.6.3. Compteur ordinal (CO) ................................................................................................... 34
3.1.6.4. Registre d’état ou registre de statut (SR) .................................................................. 35
3.1.7. Mémoires............................................................................................................................. 35
3.2. JEUX D’INSTRUCTIONS........................................................................................................ 37
3.2.1. ADD : Addition binaire ................................................................................................... 37
3.2.2. BRA : Branchement inconditionnel............................................................................ 38
3.2.3. BSR : Branchement sous-programme....................................................................... 38
3.2.4. CLR : Remise à zéro d'un Opérande .......................................................................... 38
3.2.5. CMP : Comparaison Registre Dn................................................................................. 38
54

3.2.6. CMPA : Comparaison Adresse An ............................................................................... 39


3.2.7. CMPI : Comparaison immédiate .................................................................................. 39
3.2.8. CMPM : Comparaison mémoire ................................................................................... 39
3.2.9. DIVS : Division signée .................................................................................................... 39
3.2.10. DIVU : Division non signée ........................................................................................... 40
3.2.11. MOVE : Transfert de données ...................................................................................... 40
3.2.12. MULS : Multiplication signée ....................................................................................... 40
3.2.13. MULU : Multiplication non signée .............................................................................. 41
3.2.14. NOT : Complément à un ................................................................................................ 41
3.2.15. RESET : Remise à zéro des circuits externes.......................................................... 41
3.2.16. ROL : Rotation à gauche ................................................................................................ 41
3.2.17. ROR : Rotation à droite .................................................................................................. 42
3.2.18. STOP : Chargement du SR et arrêt ............................................................................ 42
3.2.19. SUB : Soustraction binaire ........................................................................................... 42
3.3. MODE D’ADRESSAGE ........................................................................................................... 42
3.3.1. Adressage immédiat ........................................................................................................ 43
3.3.2. Adressage direct ............................................................................................................... 43
3.3.2.1. Adressage direct par registre de données Dn ......................................................... 43
3.3.2.2. Adressage direct par registre d’adresse An .............................................................. 44
3.3.2.3. Adressage indirect............................................................................................................ 44
3.3.2.3.1. Adressage indirect par registre d’adresse (se fait toujours avec An) ..... 44
3.3.2.3.2. Adressage indirect par registre d'adresses avec post-incrémentation .. 45
3.3.2.3.3. Adressage indirect par registre d'adresses avec pré-décrémentation ... 46
3.4. STRUCTURE DU PROGRAMME ......................................................................................... 47
3.5. SIMULATION AVEC EASY68K ............................................................................................. 48
3.6. EXERCICES ............................................................................................................................... 49
3.7. ORGANISATION ET PROCEDURE DES TP (en groupe ou individuel) ................... 50
Références bibliographiques ......................................................................................................... 51
TABLE DES MATIERES ................................................................................................................. 52

Vous aimerez peut-être aussi