Vous êtes sur la page 1sur 10

• Introduction

1. Donner le diagramme illustrant les différents niveaux de fonctionnement d'un


ordinateur. Donner une description de chaque couche.

•Couche application : chaque application consiste en un regroupement de fonctionnalités


mises à la disposition de l'utilisateur. Chaque fonctionnalité consiste en un regroupement
d'instructions de la couche ISA. Parmi ces instructions, éventuellement, une ou plusieurs
invoquent un appel système.
•Couche (partielle) système d'exploitation : chaque appel système consiste en un
regroupement d'instructions ISA.
•Couche ISA : chaque instruction ISA du microprocesseur consiste en un regroupement de
micro-instructions.
•Couche microarchitecture : chaque micro-instruction consiste en un regroupement de
signaux de commande destines, pendant une période d'horloge, a l'ensemble des
composants de la microarchitecture du microprocesseur.
•Couche physique : chaque signal de commande détermine une partie ou la totalité du
comportement d'un composant spécifique interne ou externe au microprocesseur tel que
la mémoire principale.

•Chapitre 2 : La couche physique : structure d'un ordinateur du type PC

1. Indiquer à quoi correspondent les éléments suivants de l'architecture d'une carte mère :

2. Indiquer à quoi correspondent les éléments dans la figure suivante :


3. Décrire ce qu'est un périphérique d'E/S et un contrôleur d'E/S. Décrire brièvement
les bus PCI, PCIe, SATA et USB.

•Le périphérique d'E/S est un dispositif matériel avec lequel l'utilisateur entre en contact.
Il est connecte généralement via un câble a un contrôleur d'E/S.
•Le contrôleur d'E/S incorpore la majorité de l'électronique. Il se présente sous la forme d'un
circuit électronique soude sur la carte mère, sous la forme d'une carte d'extension enfichée
dans un slot sur la carte mère, ou fait directement partie du périphérique. Le contrôleur
d'E/S gère le fonctionnement du périphérique d'E/S qui lui est connecte.
•Le bus PCI est un bus parallèle d'une largeur de 32 bits. Les lignes du bus PCI sont partagées
entre toutes les cartes d'extension qui utilisent ce bus.
•Le bus PCIe est une évolution du bus PCI. On trouve le bus PCIe a 2 endroits : au niveau
du microprocesseur et au niveau du PCH. Contrairement au bus PCI dont les lignes sont
partagées entre tous les contrôleurs d'E/S qui utilisent ce bus, avec le bus PCIe les données
sont échangées en point à point en full duplex (communication dans les 2 sens en même
temps). Il existe des slots PCIe 1x, PCIe 2x, PCIe 4x, PCIe 8x, PCIe 16x.
•Le bus SATA est un bus série qui sert à connecter a la carte mère les périphériques de
stockage internes des ordinateurs : lecteur DVD/Bluray, disque dur, ...
•Le bus USB est un bus série servant à connecter à l'ordinateur des périphériques d'E/S
externes : souris, clavier, imprimante, clé USB, GSM, disque dur, ..., lorsque l'ordinateur est
allumé. Il permet le plug and play et est aussi capable de fournir une alimentation électrique
aux périphériques.

•Chapitre 3 : La couche microarchitecture : principes fondamentaux

1. Représenter la microarchitecture du microprocesseur 8 bits simple.


2. Décrire brièvement dans la microarchitecture du microprocesseur 8 bits simple ce
que sont : l'UAL, l'unité de commande et les registres : PC, SP, R0 et R1, le
registre des indicateurs, l'accumulateur, IR, MDR et MAR.

Le registre PC (Program Counter) : il contient l'adresse de l'emplacement stockant la


prochaine instruction à charger.

Le registre SP (Stack Pointer) : il contient l'adresse de l'élément situé au sommet de la pile. La


pile est un bloc de mémoire dans lequel sont stockées temporairement des données selon le
mode d'accès LIFO (Last In, First Out - Dernier Entré, Premier Sorti).

Le registre des indicateurs : il est mis à jour par l'UAL après la réalisation de toute opération
arithmétique ou logique. Il sert à donner des informations sur le résultat de l'opération. Par
exemple, un bit du registre des indicateurs est appelé ZF (Zero Flag). Ce bit est positionné
lorsque le résultat d'une opération est 0. Ce même bit est effacé lorsque le résultat est
différent de 0.

L'accumulateur : il a un rôle privilégié quand l'UAL doit réaliser une opération. La donnée ou
une des 2 données transmises à l'UAL lors de la réalisation d'une opération vient
systématiquement de l'accumulateur.

Le registre IR (Instruction Register) : il contient l'instruction qui vient d'être chargée et qui
attend d'être décodée.

Le registre MDR (Memory Data Register) mémorise la donnée à placer sur le bus de données
ou provenant du bus de données.

Le registre MAR (Memory Address Register) mémorise l'adresse à placer sur le bus
d'adresses.

3. Définir ce qu'est une micro-instruction et ce qu'est le microprogramme.

La micro-instruction est le niveau d'instruction le plus élémentaire dans un microprocesseur.


La micro-instruction est un nombre binaire dont la valeur des bits précise directement
les signaux électriques que l'unité de commande doit rendre actifs durant un cycle d'horloge.

4. Donner et décrire les 3 étapes fondamentales du cycle de traitement d'une


instruction.

1. Le chargement de l'instruction : cette phase consiste à aller chercher en mémoire


l'instruction suivante du programme.
2. Le décodage de l'instruction : cette phase consiste a trouver dans le microprogramme
la séquence de micro-instructions qui implémente l'instruction qui vient d'être chargée.

3. L'exécution de l'instruction : cette phase consiste a exécuter les micro-instructions de la


séquence de micro-instructions obtenue lors de la phase de décodage.

5. Expliquer le principe général de fonctionnement de l'unité de commande.

1. Lors du front descendant du signal d'horloge, l'adresse que contient MPC est transmise a la
ROM du microprogramme et la nouvelle micro-instruction arrive dans le registre MIR.
2. Les signaux de commande codes dans la micro-instruction se trouvant dans le registre MIR
sont places sur les lignes de commande a destination de l'ensemble des composants
internes et externes au microprocesseur.
3. Lors du front montant du signal d'horloge, l'adresse de la micro-instruction suivante est
copiée dans le registre MPC de sorte a être disponible des le front descendant au début du
cycle d'horloge suivant. Cette adresse provient, soit du champ Adr de la micro-instruction
courante, ou soit du contenu du registre IR.

6. Donner, pour une instruction spécifique du microprocesseur, la séquence de


micro-instructions sous une forme textuelle permettant la lecture en mémoire,
le décodage et l'exécution de cette instruction.
Exemples d'instructions pour s'entraîner :
◦ ADD A, R0 (A = A + R0)
◦ OR R1, A (R1 = R1 OR A)
◦ MOV R0, R1 (R0 = R1)
• Chapitre 4 : La couche microarchitecture 2 : quelques microprocesseurs x86

1. Indiquer dans la microarchitecture du 80386 suivante le nom de chaque composant :

2. Décrire ce qu’est un pipeline pour un microprocesseur. Citer et décrire brièvement


les 3 étages du pipeline du 80386. Représenter le pipeline du 80386 dans son état de
fonctionnement idéal.

• Technique du pipeline (= chaîne de traitement)


Avec la technique du pipeline, le cycle de traitement d'une instruction est découpé
en plusieurs étages autonomes. Chaque étage reçoit une instruction de l'étage qui
précède, il réalise un travail spécifique sur cette instruction, puis il la transmet à
l'étage suivant. Le traitement d'une instruction est totalement terminé quand elle
sort du pipeline. Le microprocesseur peut contenir plusieurs instructions en même
temps, car chaque instruction se trouve à un étage spécifique du pipeline.

• Les 3 étages du 80386 sont :

1. Prélecture des instructions : le prélecteur d'instructions veille à ce que la file


d'instructions stocke toujours 16 octets d'instructions. Dès que de la place se
libère dans cette file d'attente, le prélecteur va chercher les octets d'instructions
du programme qui suivent en mémoire.

2. Décodage des instructions : le décodeur d'instructions veille à ce que la file


d'instructions décodées stocke toujours 3 instructions décodées. Dès que de la
place se libère dans cette file d'attente pour une nouvelle instruction, le
décodeur extrait en tête de la file d'instructions le nombre d'octets formant
exactement une instruction, puis il stocke cette instruction reformée dans la file
d'instructions décodées.

3. Exécution des instructions : l'unité de contrôle prend l'instruction située en tête


de la file d'attente d'instructions décodées, elle détermine la séquence de
micro-instructions pour cette instruction et, l'une après l'autre, elle exécute ces
micro-instructions.

• Représentation de l’état de fonctionnement idéal :

3. Indiquer dans la microarchitecture simplifiée du Pentium III suivante le nom de


chaque composant :

4. Citer et décrire brièvement les 3 étages principaux du Pipeline du Pentium III.

1. Opérations réalisées par l’étage de lecture, de décodage et de renommage :

1. Des octets d'instructions sont lus dans le cache mémoire L1 des instructions.
2. À partir du flot d'octets d'instructions, les instructions sont reformées.
3. Chaque instruction reformée est transformée en une ou plusieurs micro
instructions selon sa complexité.
4. Les registres source et cible impliqués dans chaque micro-instruction sont
renommés.
5. Les micro-instructions sont inscrites dans le ROB (ReOrder Buffer) dans un
ordre qui correspond à l'ordre des instructions d'origine dans le programme.

2. Opérations réalisées par l’étage d’exécution :

1. Les micro-instructions qui sont prêtes à être exécutées, mais qui ne se suivent pas
nécessairement dans le ROB, sont extraites du ROB et transmises à des unités
d'exécution distinctes.
2. Les micro-instructions sont exécutées par les unités d'exécution.

3. Opérations réalisées par l’étage de retrait :

Les micro-instructions les plus anciennes qui se suivent directement dans le ROB et qui
ont été exécutées, sont supprimées du ROB. À ce moment, le résultat issu de l'exécution
de chacune de ces micro-instructions est transféré vers sa destination finale qui peut
être, selon la nature de l'opérande destination, un registre de la couche IA-32, ou un
emplacement dans le cache mémoire L1 des données.

5. Indiquer dans la microarchitecture générale du core i7-2600 suivante le nom de


chaque composant :

6. Citer 6 techniques implémentées au niveau du core i7-2600 qui n’existaient pas à


l’époque du 80386 et qui permettent d’exécuter plus rapidement les programmes.

Processeur multicoeur,augmentation pipeline ( 11 etages),augmentation de la


frequence,integrations de plusieurs niveaux de caches,integrations de controleur
mémoire,augmentation du nombre d’unité d excecution.

• Chapitre 5 : La couche ISA


1. Décrire ce qu’est la couche ISA d’un microprocesseur et ce qu’est la couche IA-32.
Expliquer en quoi la couche IA-32 est indispensable pour les microprocesseurs x86.

La microarchitecture d'un microprocesseur est la façon dont la couche ISA est mise en œuvre
concrètement dans un microprocesseur. La couche ISA est une couche d'abstraction
représentant un microprocesseur générique dont le but est de cacher aux programmes les
détails de la microarchitecture sous-jacente.

Dans l'architecture d'un ordinateur, la couche ISA est l'interface entre le logiciel et le
matériel. Les programmes sont constitués d'instructions appartenant à la couche ISA d'un
microprocesseur. Cependant, nous avons indiqué dans les 2 chapitres précédents qu'un
microprocesseur n'exécutait pas des instructions, mais des micro-instructions. La
correspondance entre une instruction ISA donnée et les micro-instructions qui
l'implémentent et qui sont spécifiques à une microarchitecture donnée est réalisée par le
décodeur figurant dans chaque microprocesseur.

La couche ISA des microprocesseurs Intel s'appelle couche IA-32 (Intel Architecture 32).
L'existence de la couche IA-32 permet aux programmes en langage machine de passer d'un
microprocesseur x86 au suivant, donc d'une microarchitecture x86 à la suivante, sans avoir à
être recompilés. Lors de la conception d'un nouveau microprocesseur, les architectes d'Intel
garantissent une compatibilité totale avec la couche IA-32 des microprocesseurs x86
précédents, mais ils ajoutent à cette couche, quand c'est nécessaire, des instructions, voire
des registres, afin de tenir compte d'éventuelles nouveautés intégrées dans la
microarchitecture du nouveau microprocesseur.
Par exemple, quand Intel a ajouté les unités SSE dans la microarchitecture de son Pentium III,
ont été ajoutés dans la couche IA-32 reconnue par ce nouveau microprocesseur les
instructions permettant aux applications d'exploiter ces unités SSE ainsi que les registres
XMMx.

2. Décrire le format général des instructions de la couche IA-32.

Une instruction IA-32 peut être constituée de 1, 2, ou 3 champs :

• Le 1er champ est obligatoire pour toute instruction. Il stocke l'opération à faire ainsi que la
taille de chaque opérande et son type : registre, valeur immédiate ou adresse d'un
emplacement en mémoire.
• Le 2e champ contient l'adresse d'un emplacement si un accès à la mémoire doit être
Effectué pour obtenir une donnée et/ou écrire le résultat de l'opération.
• Le 3e champ contient éventuellement une valeur immédiate.

3. Citer 5 groupes différents d’instructions faisant partie du jeu d’instructions de la


couche IA-32.

Des instructions arithmétiques et logiques sur les nombres entiers : add, sub, and,
not, ...
Des instructions sur les nombres à virgule flottante : addss, subsd, ...
Des instructions de transfert : mov, movsx, push, pop, ...
Des instructions de test et de branchement : cmp, jl, jg, jmp, call, ret, ...
Des instructions d'entrées/sorties servant à accéder aux contrôleurs d'E/S : in, out, ...

• Chapitre 6 : La couche système d’exploitation


1. Citer les 7 fonctions attendues d’un système d’exploitation.

• Donner l'illusion que les applications fonctionnent en même temps et gérer les
communications entre elles.
• Gérer les périphériques connectés à l'ordinateur.
• Gérer la mémoire de l'ordinateur.
• Gérer les systèmes de fichiers sur les différents supports.
• Gérer les accès au réseau.
• Gérer les différents utilisateurs et la sécurité de l'ordinateur.
• Fournir une interface utilisateur (graphique) simplifiant l'usage de l'ordinateur.

2. Indiquer dans l’architecture générale de windows suivante le nom de chaque


composant :

3. Décrire le mode utilisateur et le mode noyau.

a) Le mode utilisateur :

Les applications fonctionnent dans le niveau de privilège 3 appelé mode utilisateur.


Dans ce mode :

• Une application a un accès restreint au microprocesseur, car elle n'a accès qu'à certains
registres et qu'à un sous-ensemble des instructions de la couche ISA.
• Une application n'a pas accès directement aux contrôleurs d'E/S. Pour accéder à un
périphérique d'E/S donné, l'application doit passer par le système d'exploitation.
• Une application ne peut accéder qu'à l'espace d'adresses virtuelles qui lui a été attribué par
le système d'exploitation.

En fonctionnant dans le mode utilisateur, une application ne peut causer aucun problème
dans l'ordinateur lorsqu'elle a un comportement inapproprié. Ainsi, aussitôt qu'une
application tente d'utiliser une instruction qui lui est interdite ou tente d'aller hors de la
plage d'adresses virtuelles mise à sa disposition, le microprocesseur le signale au système
d'exploitation et celui-ci, immédiatement, termine l'exécution de l'application.

b) Le mode noyau :

Une grande partie du code du système d'exploitation ainsi que les pilotes de périphériques
fonctionne dans le niveau de privilège 0 appelé mode noyau.
Dans ce mode :
• Le code peut exploiter le microprocesseur complètement et sans restriction. Ceci veut dire
qu'en plus des registres et des instructions de la couche ISA disponibles dans le mode
utilisateur, le système d'exploitation peut aussi utiliser d'autres registres tels que les
registres de contrôle CR0, CR3, …, ainsi que les instructions privilégiées de la couche ISA
telles que IN, OUT, ARPL, LLDT, …
• Le code peut accéder complètement et sans restriction à la mémoire.
• Le code peut accéder aux registres internes aux contrôleurs d'E/S via, notamment, les
instructions privilégiées IN et OUT.

Si du code fonctionnant dans le mode noyau compromet des données vitales pour le système
d'exploitation, ceci peut entraîner un "crash" immédiat du système sans aucune possibilité
de reprise. Windows affiche alors à ce moment un écran bleu et l'utilisateur doit redémarrer
l'ordinateur.

4. Indiquer ce qu’est un appel système et décrire l’invocation directe et l’invocation


indirecte d’un appel système.

Un appel système est une fonction fournie par le système d’exploitation que les applications
peuvent invoquer en vue de faire réaliser au système d’exploitation une opération donnée.
Quand on invoque un appel système directement, on contourne toutes les fonctions
intermédiaires dans le but de directement atteindre le système d'exploitation. Microsoft ne
diffuse aucune information détaillant comment invoquer directement un appel système dans
Windows. Par contre, sous Linux, ces informations sont connues.
Invocation directe :

Invocation indirecte

Sous Windows, l'API (Application Programming Interface) Win32 est l'ensemble des appels
systèmes documentés par Microsoft. Une application peut invoquer directement une
fonction de l'API Win32 ou invoquer une fonction des librairies d'un langage de
programmation qui se charge alors d'appeler la fonction appropriée de l'API Win32.
La fonction de l'API Win32 se charge d'appeler la fonction appropriée de l'API native.
La fonction de l'API native fait basculer le microprocesseur dans le mode noyau, puis elle
effectue le branchement vers le code appartenant au système d'exploitation.

5. Décrire les 3 étapes générales pour exploiter une ressource donnée.

1. Un appel système est invoqué pour obtenir un accès à la ressource . Si la ressource


n'existe pas, elle est créée. En retour, Windows fournit à l'application un numéro unique
appelé handle. Celui-ci va servir, pour l'application, à identifier la ressource.

2. Des appels systèmes sont invoqués pour réaliser des opérations sur la ressource. À
chaque appel système invoqué, l'handle est transmis en paramètre pour permettre à
Windows d'identifier spécifiquement la ressource sur laquelle porte l'opération.

3. Un appel système est invoqué pour se détacher de la ressource. Cette opération peut
entraîner la destruction de la ressource dans le système
6. Citer 5 catégories différentes d’appels systèmes.

• Créer, synchroniser et supprimer des threads.


• Réserver et supprimer un bloc de mémoire dynamiquement.
• Créer un fichier, puis écrire et lire des données dans ce fichier.
• Accéder à l'écran et au clavier pour afficher et saisir du texte.
• Créer et utiliser une fenêtre dans laquelle des contrôles : boutons et libellés, ont été
insérés.

7. Indiquer ce qu’est un chemin d’accès relatif et absolu. Indiquer à quoi servent les symboles ?
et * dans les commandes de la console.

Un chemin d’acces absolu est determiné en partant de la racine d unité courante.


Un chemin d acces relatif est determiné en partant de l’endroit courant arborescent des
repertoires.
Le caractère *, dans les commandes, est utilisé à la place d'un ou de plusieurs caractères du
nom d'un fichier, de l'extension d'un fichier, ou du nom d'un répertoire. Le caractère ?, dans
les commandes, est utilisé à la place d'un seul caractère du nom d'un fichier, de l'extension
d'un fichier, ou du nom d'un répertoire.