Académique Documents
Professionnel Documents
Culture Documents
FACULTE POLYTECHNIQUE
DIRECTION DE LA PREPOLYTECHNIQUE
SYLLABUS
COURS D’INFORMATIQUE
COURS D’INFORMATIQUE
Par
Page 2 sur 25
CHAPITRE 2 : PRINCIPES GENERAUX ET STRUCTURE D’UN ORDINATEUR
Dans le sens du présent cours, le traitement de l’information est l’emploi d’ordinateur en vue d’effectuer
des opérations logiques et mathématiques complexes à des fins scientifiques, administratifs, politiques,
économiques, etc.
L’information est un élément de connaissance traduit par un ensemble de signaux selon un code
déterminé, en vue d’être conservé, traité ou communiqué.
Page 3 sur 25
L’organisation générale ou le modèle d’architecture de la majorité des ordinateurs classiques est de
type Von Neumann, Electronic Discrete Variable Computer. Il a été décrit de la manière suivante :
La mémoire centrale est un composant central. C’est un tableau de mots binaires de taille fixe.
Chaque mot est repéré par un nombre appelé adresse, et les programmes feront référence aux
données et aux instructions en mémoire par leurs adresses. Le programme exécuté est dans la
mémoire centrale bien qu’une copie est souvent stockée sur un disque dur.
Le processeur central (CPU, Central Processing Unit, « Unité centrale de traitement) est le
coordonnateur de l’exécution des programmes, en organisant le chargement des instructions et le
détail de leur exécution ainsi que l’exécution de tous les calculs. Il utilise pour cela des registres, qui
sont des mots mémoire fixes, à accès très rapide. Il dialogue avec des contrôleurs de périphériques
et non avec les périphériques eux-mêmes.
Des bus de communication permettent aux données de circuler entre les différents sous-systèmes
d’un ordinateur. Un circuit appelé north-bridge règle les échanges à très grande vitesse, notamment
entre le processeur et la mémoire centrale. Un second circuit appelé south-bridge effectue quant à lui
des échanges moins rapides avec des périphériques SATA, réseau, etc.
Les données et les instructions stockées et véhiculées dans un ordinateur, logiquement sous forme de
bits et physiquement sous forme de signaux électriques.
Le bit (binary digit) est la plus petite unité d’information que peut manipuler une machine numérique.
Elle est l’unité de stockage fondamentale. Ces signaux binaires sont souvent regroupés pour former
des mots (groupements d’octets ou de 8 bits). Avec n bits, il est possible d’obtenir 2 n états différents ou
valeurs différentes. On peut utiliser un octet pour coder un caractère alphanumérique à la norme ISO-
8859 ; un mot de 32 bits pour représenter un nombre entier relatif ; un mot de 16 à 96 bits pour
représenter des nombres réels en notation scientifique flottante selon la norme IEEE 754. Des
structures de données plus complexes (tableaux, listes, ensembles, dictionnaires, etc.) nécessitent une
agrégation de ces types simples.
Exemple : Dans la base binaire (2), le chiffre 5 initialement dans la base (10) s’écrit : 101 (2) c’est-à-dire
1*22+0*21+1*20=1*4+0*1+1*1=4+1=5
La taille actuelle pour les données est de 64 bits. Pour le codage des nombres réels, elle est la taille de
codage en double précision la plus usuelle, qui donne une précision d’une dizaine de chiffres après la
virgule, suffisante dans la majorité des applications. Comme on doit aussi souvent stocker des
adresses de mémoire dans des mots, 64 bits est aussi une taille suffisante.
Une opération fréquente effectuée sur des nombres binaires est le comptage. Pour incrémenter un
nombre binaire, on considère chaque bit du mot initial, et on le recopie avec inversion si tous les bits
qui sont à sa droite valent 1, ou on le recopie sans changement sinon. Le bit le plus à droite est
toujours inversé.
Un algorithme analogue existe pour le décomptage : on recopie un bit avec inversion si tous les bits à
sa droite valent 0, sinon on le recopie sans changement. Par habitude, le bit le plus à droite est
toujours inversé. Par exemple, on passe de 110 à 101 en inversant les deux bits de poids faible, car
tous les bits qui sont à leur droite valent 0.
Hexadécimal
Les mots manipulés par un ordinateur ont souvent une largeur supérieure à 16 ou 32 bits, et sont donc
difficiles à transcrire en binaire. Pour obtenir une écriture concise, on utilise souvent la base 16,
appelée hexadécimal, dont les 16 chiffres sont notés : 0,1,2,3,4,5,6,7,9, A, B, C, D, E, F. Chaque chiffre
hexadécimal permet de coder 4 bits (24 = 16). Pour passer d’une notation binaire à une notation
hexadécimale, il suffit de grouper les bits par paquets de 4, de droite à gauche à partir des poids
faibles.
Un ordinateur ne traite que des données sous forme de bits ou de base binaire (0 ou 1). Ainsi dans un
contexte mondial, il est important d’adopter des conventions pour représenter ou coder ces systèmes
différents d’informations (plusieurs langues, alphabets, symboles, etc.).
Un jeu de caractères est une quantité déterminée de caractères (lettres, chiffres, symboles,
etc.). Chaque caractère est identifié de manière univoque par l’une des valeurs de codage qui
lui est imputée (code de caractère).
Traditionnellement, les jeux et les codages de caractères coïncidaient : un caractère était représenté
directement par une séquence de bits. Cela s’applique notamment à :
ASCII 7 bits ((American Standard Code for Information Interchange).
la famille de normes ISO 8859 (ISO-8859-1, etc.), en codage 8 bits.
Il existe même une version Extended de ASCII où le 8ème bit de données est utilisé et permet de
distinguer 2 fois plus de caractères, notamment les caractères accentués pour le français. En décimal,
les codes varient entre 0 et 127. Comme ces codes de 7 bits sont toujours contenus dans un octet
(mot de 8 bits), des codages étendus sur 8 bits ont été développés, d’abord de façon propriétaire, puis
de façon organisée par la norme ISO-8859, qui est en fait un ensemble de normes spécifiques à
différentes régions du monde :
ISO-8859-1 (dite aussi ISO-Latin-1, qui couvre toute l’Europe de l’ouest, y compris les
caractères espagnols, allemands et scandinaves),
ISO-8859-2 (Europe de l’est), etc.
Pour tenter de résoudre les problèmes de codage des langues écrites du monde, le consortium
UNICODE, qui incorpore la plupart des grands constructeurs et éditeurs informatiques, a créé un
encodage de caractères universel. Il est maintenant utilisé comme codage interne dans des langages
de programmation, dans les navigateurs Internet et de nombreuses applications. Son adoption
généralisée permettrait de résoudre définitivement les disparités d’encodages de caractères entre
pays. Avec Unicode, les jeux et le codage de caractères sont séparés. Unicode définit en premier lieu
les différents caractères des polices d’écriture respectives (jusqu’ici plus de 100 000) et leur attribue un
dénommé code point, ou code caractère. Ce code caractère peut ensuite être converti de différentes
manières dans une séquence de bits :
UTF-32 (UTF, Unicode Transformation Format) dote chaque caractère d’une suite de 4 octets
de 8 bits chacun. De ce fait, tous les caractères occupent la même place en mémoire et tous
les caractères existants, ainsi que tous ceux qui doivent encore être définis peuvent être
installés ; cette représentation nécessite une grande capacité de mémoire.
UCS-2 (2-byte Universal Character Set) dote chaque caractère de 2 octets de 8 bits chacun. De
ce fait, tous les caractères occupent la même place en mémoire. 65 536 caractères peuvent
être présentés, c’est-à-dire seulement le Basic Multilingual Plane (BMP) d’Unicode.
UTF-16 résout ce problème en représentant les caractères du BMP dans un mot à 16 bits ; les
autres caractères Unicode dans deux mots à 16 bits.
UTF-8 est un format de codage de caractères permettant l’optimisation de la place en mémoire.
Ainsi, les 128 caractères ASCII sont représentés par un octet, ce qui permet d’assurer la
compatibilité. Jusqu’à 4 octets seront utilisés pour les autres caractères du jeu. Il est
recommandé d’utiliser UTF-8 pour optimiser la place en mémoire et assurer la compatibilité
descendante avec ASCII.
Codage des nombres entiers naturels
On utilise le binaire pur comme déjà décrit ci-haut. Avec n bits, on peut coder les nombres entiers
positifs de l’intervalle [0, 2n−1]. L’addition et la soustraction s’effectuent de la manière habituelle ; il y a
débordement de l’addition lorsqu’une retenue doit être propagée au-delà du dernier bit de rang n.
Aux débuts de l’informatique, on codait généralement les nombres entiers signés en mettant dans le
premier bit le signe (’1’ signifiant ’moins’) et dans les suivants la valeur absolue.
Par exemple, -3 se codait 10000011 sur 8 bits.
L’encodage et le décodage d’un tel nombre étaient simple (notons que 0 peut être codé +0 ou -0). Mais
on ne pouvait plus réaliser une simple addition comme avec des nombres naturels.
Si par exemple on tente de faire l’addition bit à bit de 10000011 (-3) et de 00000100 (+4), on obtient :
10000111, c’est à dire -7, ce qui est absurde.
Page 6 sur 25
Codage en complément à 2
Un codage appelé complément à deux s’est rapidement imposé dans les années 1970. Il utilise les
deux règles suivantes :
un nombre positif est représenté en binaire pur.
pour calculer la représentation de l’inverse arithmétique d’un nombre, on inverse tous ses bits
et on ajoute 1, sans tenir compte de l’éventuelle retenue.
Par exemple le codage des nombres relatifs sur 8 bits. +3 va être codé 00000011. Pour obtenir le
codage de -3, on inverse tous les bits du codage précédent
(00000011→11111100) et on ajoute 1, soit 11111101.
Propriétés
Ici on s’intéresse au fonctionnement et à la structure d’un ordinateur. Cette section présente les
caractéristiques de chacune des trois fonctions principales d’un ordinateur à savoir :
la fonction d’exécution qui permet l’exécution par un microprocesseur d’un programme écrit en
langage machine ;
la fonction de mémorisation qui recouvre d’une part la gestion de la mémoire centrale et d’autre
part le mécanisme de hiérarchie de mémoires ;
la fonction de communication qui permet au processeur de dialoguer avec l’extérieur via des
périphériques tels que le clavier, l’imprimante, l’écran, la souris, etc
Les ordinateurs sont des machines à programme enregistré ce qui signifie que pour être exécuté, le
programme machine (suite d’instructions machines) doit être placé (chargé) en mémoire principale
(mémoire centrale, mémoire RAM). Nous nous proposons d’examiner comment est exécuté un
programme machine. Dans un premier temps, nous décrivons les caractéristiques générales du
microprocesseur et du bus lui permettant de communiquer avec la mémoire centrale.
D’un point de vue « macroscopique », un programme machine s’exécute instruction après instruction
selon l’algorithme suivant :
les langages registre/registre : une instruction porte sur des opérandes préalablement placés
dans des registres de l’unité centrale, le résultat étant lui aussi placé dans un registre. Ce type
d’instruction se trouve surtout dans les machines RISC (Reduced Instruction Set Computer).
Dans ce contexte l’équation de notre exemple donne lieu à la séquence d’instructions machine
donnée suivante :
load D, R1, @X (placer le contenu de l’adresse X
➥ dans le registre R1)
load D, R2, @Y (placer le contenu de l’adresse Y
➥ dans le registre R2)
Page 8 sur 25
add D, R3, R2, R1 (additionner le contenu de R1 au contenu de R2
➥ puis placer le résultat dans R3)
store D, R3, @Z (placer le contenu du registre R3 à l’adresse Z)
Ainsi, l’exécution d’une instruction équivaut à permettre des interactions efficaces entre ces trois
composants :
le microprocesseur (unité centrale). Il est organisé autour des registres, de l’unité arithmétique
et logique (UAL), de l’unité de commande et d’un ou plusieurs bus internes permettant la
communication entre ces différents modules. Le nombre et l’organisation du (des) bus de l’unité
centrale sont variables et les constructeurs ont une grande liberté de conception ;
le bus de communication mémoire/unité centrale. Il supporte les échanges de données et de
commandes entre l’unité centrale et la mémoire centrale. Dans ce domaine les constructeurs
disposent de peu de liberté quant à leurs choix architecturaux car ils doivent prendre en compte
une très grande variété des matériels (prise en compte de nombreux contrôleurs et
périphériques) ;
la mémoire centrale. Elle contient les instructions et les données. Pour qu’une instruction soit
exécutable par le microprocesseur, il faut (comme les données manipulées par l’instruction) que
celle-ci soit présente en mémoire centrale.
Les signaux d’adresses sont des signaux de sorties pour le microprocesseur et des signaux
d’entrées pour les boîtiers mémoire. Les signaux de données sont bidirectionnels, ils transportent les
informations de la mémoire vers le microprocesseur ou au contraire du microprocesseur vers la
mémoire. Les signaux de commande sont des signaux de sorties pour piloter les boîtiers mémoire. Les
interruptions sont des signaux d’entrées provenant en général des périphériques. Ils permettent
d’interrompre le fonctionnement du microprocesseur pour prendre en charge l’interruption.
Il existe d’autres types d’interruptions que celles produites par les périphériques, par exemple des
interruptions logicielles, permettant de prendre en compte des dysfonctionnements de l’ordinateur (une
division par zéro, un dépassement de capacité dans une opération arithmétique…).
Les signaux concernant le bus permettent, en particulier, au processeur de synchroniser le partage du
bus entre les différents modules matériels qui peuvent en avoir besoin simultanément.
Un signal d’horloge est un signal électrique oscillant qui rythme les actions d'un circuit. L’horloge est
un signal très important, caractérisé par sa fréquence mesurée en mégahertz (1 MHz = 10 6 Hertz) ou
en GHz (1GHz=109 Hertz), qui rythme le fonctionnement du microprocesseur et définit ainsi le cycle du
microprocesseur.
Page 9 sur 25
Comme le schéma général de la figure 2.3 ci-après le montre un ordinateur est d’une part organisée
autour d’un bus interne au microprocesseur, d’autre part autour d’un bus externe au microprocesseur
servant pour la communication entre la mémoire et le microprocesseur. Dans le modèle ci-après le bus
interne est unique.
La conception et l’organisation du microprocesseur, en particulier du, ou des bus internes, laisse une
grande liberté au concepteur. Par contre le bus externe est beaucoup plus contraint du fait de la
grande variété des modules matériels à interconnecter. Ce type de bus s’appuie sur des
caractéristiques importantes telles que : la largeur du bus, le cadencement du bus, l’arbitrage pour
l’accès au bus, les modes de fonctionnement du bus.
LARGEUR DU BUS
La largeur du bus définit le nombre de lignes du bus c’est-à-dire le nombre de bits que le bus peut
véhiculer en parallèle. En effet, plus le bus d’adresses est large plus l’espace d’adressage du
processeur est grand. Mais augmenter la largeur du bus d’adresses équivaut à augmenter le nombre
de broches du boîtier et donc la surface de microprocesseur afin de satisfaire l’augmentation des
performances des microprocesseurs. En effet, si la mémoire dispose de mots de 32 bits et que le bus
de données a une largeur de 8 bits, il faut 4 accès mémoires pour que le microprocesseur dispose d’un
mot mémoire.
L’augmentation de la largeur du bus de données n’est pas le seul moyen d’augmenter les
performances du bus, car on peut également augmenter la fréquence d’horloge du bus. Les
microprocesseurs évoluent très vite et il est difficile de faire varier la largeur des bus pour « suivre » les
processeurs. Une manière d’opérer consiste à décider d’une largeur de bus (par exemple 32 bits) et
d’utiliser ce bus, selon le cas, comme un bus de données ou un bus d’adresses : c’est le multiplexage
temporel du bus. Cette technique diminue le nombre de broches donc le coût mais aussi les
performances.
CADENCEMENT DU BUS
On trouve deux types de bus : les bus synchrones et les bus asynchrones. Les bus synchrones
disposent d’une horloge propre fonctionnant à une fréquence qui caractérise le cycle du bus. Avec ce
type de bus, l’opération de lecture d’un mot mémoire par le microprocesseur se déroule de la manière
suivante :
- le microprocesseur dépose l’adresse du mot sur le bus d’adresses ;
- le microprocesseur dépose un signal de lecture sur le bus de commandes;
- le microprocesseur attend que la mémoire dépose un signal de donnée prête;
- le microprocesseur récupère la donnée sur le bus de données.
Prenons un exemple avec les données suivantes :
- la fréquence du processeur est égale à 1 GHz soit un temps de cycle égal à 1 ns;
- la fréquence du bus est égale à 66 MHz soit un temps de cycle égal à 15 ns;
- le temps d’accès à la mémoire centrale (RAM) est égal à 20 ns.
Compte tenu des différences entre les cycles de mémoire, bus et microprocesseur on considère que ce
dernier est toujours à même de se synchroniser avec le bus. Avec ce type de bus le processeur
Page 10 sur 25
sollicite le bus et la mémoire qui répondent à leurs rythmes sans concertation ni synchronisation réelle.
Le nombre de cycles du bus est toujours un nombre entier ce qui n’est pas forcément optimum. Ce
type de bus ne facilite pas les évolutions en fonction des modifications technologiques.
Une amélioration du cycle de la mémoire (diminution du temps d’accès) ne se traduira pas forcément
par une amélioration des échanges puisqu’elle n’entraînera pas nécessairement la diminution du
nombre de cycle du bus. Pour être synchrone avec la mémoire, le bus est généralement obligé
d’ajouter des cycles d’attente (Wait state).
MICROCOMMANDES ET MICRO-INSTRUCTIONS
Les différents modules de l’unité centrale sont pilotés par les signaux ou microcommandes que le
séquenceur positionne au bon moment. Les micro-instructions sont un ensemble de microcommandes.
4. REGISTRES
Les registres sont des zones de mémoires permettant le stockage d’informations que peut manipuler
directement le microprocesseur. La figure 2.4 nous donne l’organisation matérielle d’un registre. Le
registre considéré ici contient 8 digits binaires. Il est relié au bus interne de données du
microprocesseur par le biais de barrières d’entrée et de sortie. Ces barrières sont pilotées par des
signaux d’entrée et de sortie positionnés par le séquenceur. Ces signaux ouvrent ou ferment les
barrières permettant à l’information de circuler entre le bus et le registre. Le mode de fonctionnement
du registre est indiqué dans la figure 2.5 schéma d’un registre.
Page 11 sur 25
Cette unité comprend l’ensemble des circuits réalisant les opérations arithmétiques et logiques d’un
microprocesseur.
À titre indicatif la figure 2.6 donne un schéma de réalisation d’une UAL 1 bit, c’est-à-dire pour laquelle
les opérandes représentent des valeurs codées sur 1 bit. On y trouve des circuits ET, des circuits OU,
des inverseurs, des OU exclusif, etc. Les opérandes sont notés A et B. Cette UAL permet de réaliser
les quatre opérations ET, OU, Inverse, Addition.
L’exécution d’un programme machine se fait instruction après instruction de la première jusqu’à la
dernière. Une interruption permet d’arrêter l’exécution du programme en cours afin d’exécuter une
tâche jugée plus urgente. De cette manière, un périphérique, par exemple, peut signaler un événement
important (fin de papier dans l’imprimante, dépassement de température signalée par une sonde
placée dans un four…) au processeur qui, s’il accepte cette interruption, exécute un programme de
service (dit programme d’interruption) traitant l’événement. À la fin du programme d’interruption le
programme interrompu reprend son exécution normale.
Différentes approches sont possibles pour améliorer les performances globales d’un ordinateur :
Page 12 sur 25
le grand public ;
2) Travailler sur l’architecture interne du microprocesseur. Dans nos exemples nous avons choisi
une architecture simple à bus interne unique. En fait on peut considérablement améliorer les
performances en multipliant le nombre de bus internes. On trouve fréquemment des
microprocesseurs avec deux voire trois bus internes permettant la parallélisation de certaines
parties du chemin de données. La multiplication des registres internes peut permettre aussi une
amélioration des performances. Ce type de considération est à l’origine de la conception des
processeurs RISC en comparaison aux processeurs CISC ;
En fait d’autres approches sont possibles. Elles portent principalement sur la parallélisation de
certaines opérations qui consiste à faire plusieurs choses en même temps. On trouve deux formes de
parallélisation : le parallélisme au niveau des instructions et le parallélisme au niveau des processeurs.
Dans le premier cas, on permet l’exécution simultanée de plusieurs instructions machine et l’on
exécute ainsi plus d’instructions par seconde.
Dans le deuxième cas, plusieurs processeurs travaillent simultanément sur un programme machine ce
qui améliore globalement les performances de l’ordinateur.
Cet aspect des choses amène en fait à considérer plusieurs architectures possibles de machines. En
1972 Flynn propose une classification des machines qui s’appuie sur le fait que l’exécution d’un
programme correspond à l’exécution d’un flux d’instruction portant sur un flux de données.
1. ORGANISATION GENERALE
La fonction de mémorisation est organisée autour de plusieurs niveaux de mémoire qui réalisent ainsi
une hiérarchie de mémoires, dont le but principal est de simuler l’existence d’une mémoire de grande
capacité et de grande vitesse. Dans cette hiérarchie, les mémoires les plus proches du processeur
sont les mémoires les plus rapides mais aussi les plus petites en capacité. Au contraire, les mémoires
les plus éloignées du processeur sont les plus lentes mais sont de grandes capacités.
Le programme et les données sont enregistrés dans la mémoire centrale (la mémoire RAM) pour être
exécutés par le processeur central (microprocesseur). Lors de l’exécution d’une instruction, le
processeur utilise des registres, qui sont également des zones de stockage de l’information. Au
moment du démarrage de l’ordinateur s’exécute un programme préenregistré dans une mémoire
spécialisée (la mémoire ROM) qui charge dans la mémoire centrale le noyau du système d’exploitation
à partir du disque dur.
Lors de l’exécution d’une instruction par le processeur, celui-ci peut exécuter des cycles d’horloge sans
avoir d’activité : il attend la réponse de la mémoire à une demande de lecture. Pour harmoniser les
vitesses du processeur et la mémoire RAM, et ainsi améliorer les performances, une mémoire plus
rapide est placée entre le processeur et la mémoire RAM : c’est la mémoire cache. Ainsi la
Page 13 sur 25
mémorisation de l’information dans un ordinateur ne se fait pas en un lieu unique mais, comme le
montre la figure 2.7, est organisée au travers d’une hiérarchie de mémoires.
Toutes les mémoires, même si elles participent à la même fonction, ne jouent pas le même rôle et on
peut arbitrairement les classer en deux grandes catégories :
Les mémoires de travail désignent les mémoires qui sont actives dans l’exécution d’un
programme. On y trouve les registres du processeur, la mémoire centrale, la mémoire cache, la
mémoire d’appui, la mémoire morte. Ce sont des mémoires électroniques ;
Les mémoires de stockage telles que le disque magnétique ont pour objet de conserver de
manière permanente de grandes quantités d’informations. Les informations qui y sont stockées
ne participent pas directement à l’exécution d’un programme mais doivent êtres chargées en
mémoire centrale pour être exploitées par le processeur. Ce sont les mémoires de masses,
elles sont de type magnétique ou optique.
La fonction de mémorisation sera considérée dans le cadre de ce cours selon l’organisation générale
et le fonctionnement des différentes mémoires. Et non selon la gestion de la mémoire c’est-à-dire en
définissant comment et par qui est utilisée cette mémoire.
Page 14 sur 25
Les mémoires magnétiques sont non volatiles : l’information est conservée même après l’arrêt
de l’alimentation électrique.
Les mémoires électroniques sont généralement volatiles et perdent l’information dès que
l’alimentation électrique est coupée : c’est le cas des mémoires vives telles que les mémoires
RAM ;
L’encombrement. Les mémoires physiques occupent une place de plus en plus petite ce qui
permet une plus grande intégration. C’est un facteur important de développement de
l’informatique ;
Le coût est un critère très important dans les développements de l’informatique. Les mémoires
électroniques ont un coût de stockage relativement élevé et donc leurs capacités sont d’autant
plus faibles. Les mémoires magnétiques sont beaucoup moins onéreuses et présentent donc
de beaucoup plus grandes capacités de stockage.
Brochage et fonctionnement
Il existe plusieurs manières de réaliser une mémoire d’une capacité déterminée. Soit par exemple une
mémoire d’une capacité de 8 Ko soit 64 kbits. Elle peut être réalisée selon le brochage de la figure 2.9.
Page 15 sur 25
– CS permet la sélection d’un boîtier de mémoire (puce mémoire) ;
– ready est un signal sortant vers le processeur permettant de synchroniser la fréquence
d’horloge de la mémoire avec celle du processeur.
Cette puce mémoire a donc une capacité de 213 mots de 8 bits (soit 213 octets, ou 216 bits). Les
opérations possibles sont la lecture ou l’écriture mémoire réalisés par le processeur.
– Pour réaliser une écriture, le processeur :
1. sélectionne une adresse mémoire et dépose l’adresse sur le bus d’adresses ;
2. dépose la donnée sur le bus de données ;
3. active la commande d’écriture.
– Pour réaliser une lecture, le processeur :
1. sélectionne une adresse mémoire et dépose l’adresse sur le bus d’adresses ;
2. active la commande de lecture ;
3. lit la donnée sur le bus de données.
Cette organisation permet l’adressage d’un octet et le déclenchement d’une opération de lecture ou
d’écriture en un seul cycle mémoire. On peut organiser cette mémoire sous la forme d’une matrice de
lignes et colonnes de bits.
Les mémoires vives sont accessibles en lecture et écriture mais sont volatiles. Bien des applications
(programme et données) impliquent d’être stockées de manière permanente, même en l’absence
d’alimentation électrique, comme par exemple le programme de « boot » d’un ordinateur. Ces
mémoires, accessibles uniquement en lecture, sont connues sous le nom de ROM (Read Only
Memory). Les différentes évolutions technologiques de ce type de mémoire sont résumées dans la
figure 2.14.
La caractéristique essentielle de ce type de mémoire est un temps d’accès très faible, sauf peut-être
pour les mémoires flash (environ 100 nanosecondes). Comparativement aux disques magnétiques
(temps d’accès en millisecondes) les mémoires flash sont très performantes mais ont, pour le moment,
des durées de vie trop faibles pour remplacer les disques magnétiques.
Page 16 sur 25
B. MÉMOIRES DE STOCKAGE : LE DISQUE MAGNÉTIQUE
Le disque magnétique est présenté ici comme le « représentant » des mémoires de masse
dans la hiérarchie de mémoires. Il existe plusieurs autres supports de stockage de masse.
- CARACTERISTQUE GENERALE
Un disque magnétique est constitué d’un ou plusieurs plateaux métalliques recouverts sur
chaque face d’une matière magnétisable. La tête de lecture/écriture est constituée d’un
bobinage fer/nickel (figure 2.11) qui flotte à une faible distance du matériau magnétisable.
Lorsqu’un courant électrique traverse le bobinage, une magnétisation de la surface se
produit.
Cette magnétisation oriente les particules du matériau. L’orientation des particules dépend
du sens du courant électrique. C’est ainsi que l’on réalise une écriture, l’orientation des
particules définissant la valeur à attribuer à la partie magnétisée (0 ou 1). Lorsque la tête
passe au-dessus d’une zone magnétisée un champ électrique est induit dans la bobine. Le
sens du champ électrique induit dépend du type de magnétisation.
On peut ainsi en fonction du sens du champ électrique savoir la valeur de l’information que
l’on vient de lire.
- ORGANISATION GENERALE
Lors de son fonctionnement le disque tourne à une vitesse constante sous la tête de lecture.
Sur chaque plateau se trouvent les pistes, zones circulaires sur lesquelles sont enregistrées
les séquences de bits codant les informations stockées. Chaque piste est divisée en
secteurs. Un secteur débute par une zone de préambule qui permet de se synchroniser
avant de faire une opération de lecture ou d’écriture. De même le secteur se termine par un
ensemble de bits permettant d’effectuer des contrôles d’erreurs sur les informations stockées
dans le secteur. Entre deux secteurs se trouve une zone ne contenant pas de bits,
constituant le gap inter secteur. L’opération de formatage consiste à organiser le disque en
pistes et secteurs. Ainsi la capacité de stockage d’un disque formaté est inférieure à la
capacité d’un disque non formaté (figure 2.11).
On appelle densité d’enregistrement le nombre de bits par millimètre. Cette densité est
variable selon la qualité des disques et peut varier entre 50 000 et 100 000 bits par
centimètre. On appelle cylindre l’ensemble des pistes situées à la même distance de l’axe de
rotation du disque.
Adresse d’une donnée. En mémoire centrale une information est repérée par l’adresse du
mot la contenant. Sur un disque magnétique l’adresse d’une information est un triplet :
numéro de cylindre, numéro de bras, numéro de secteur. Lire une donnée consiste donc à
trouver l’adresse de début d’un secteur et à déclencher la lecture du secteur. On trouve
ensuite la donnée précise en analysant le contenu du secteur. C’est le système d’exploitation
Page 17 sur 25
au travers du système de gestion des fichiers (SGF) qui gèrent les adresses physiques des
informations stockées.
Temps d’accès à une information. Trouver une information consiste d’abord à positionner
le bon bras sur le bon cylindre : c’est l’opération de déplacement du bras caractérisée par le
temps de déplacement du bras.
La piste adéquate est alors sélectionnée. Il faut ensuite trouver le bon secteur. Le temps de
positionnement de la tête sur le bon secteur est variable : soit le début du secteur cherché
est juste sous la tête et le temps de positionnement est nul, soit le début du secteur vient de
passer sous la tête et il faut faire un tour de disque complet pour retrouver le début du
secteur cherché. On parle donc généralement de temps moyen de positionnement de la tête,
ce temps moyen correspond à un demi-tour de disque. Le temps de latence rotationnel
mesure le délai pour que la tête de lecture soit placée sur le début du bon secteur (figure
2.12).
Les SSD (Solid State Drive) sont une technologie de stockage pour ordinateur récente. Ils
utilisent de la mémoire flash pour lire et écrire numériquement les données. Étant donné
qu’ils n’ont pas à rechercher mécaniquement les données, les SSD offrent des temps de
démarrage et de chargement quasi instantanés.
Pendant longtemps, les ordinateurs ont stocké les données sur des disques durs, constitués
de plateaux rotatifs et d’un bras qui se déplace en travers pour lire chaque portion de
données. Les composants mobiles des disques durs font partie des composants matériels
les plus susceptibles de tomber en panne ou de se casser.
Un SSD, tout comme un disque dur, sert de mémoire à long terme à votre ordinateur, en
stockant et en mémorisant les fichiers même lorsque votre appareil est éteint. Il fonctionne
en parallèle avec la mémoire RAM et le processeur de votre système pour accéder aux
données et les utiliser, y compris votre système d’exploitation, vos programmes, vos
documents, vos jeux, vos images et votre musique.
Le SSD présentes plusieurs avantages d’un par rapport à un disque dur. En plus de leur
rapidité, ils sont plus durables, car ils ne comportent pas de petites pièces mobiles
susceptibles de se casser ou de s’user. Ils consomment également moins d’énergie, ce qui
Page 18 sur 25
permet d’économiser l’autonomie de la batterie sur les ordinateurs portables. Ils présentent
aussi de plus grande capacité de stockage.
Les performances (vitesse) des processeurs augmentent sans cesse. Les performances des
mémoires augmentent également mais surtout en matière de capacité de stockage et
beaucoup moins en ce qui concerne les temps d’accès. On sait techniquement réaliser des
mémoires très rapides, qui ne pénaliseraient pas le processeur, mais à condition qu’elles
soient placées très près du processeur. En effet c’est souvent le temps de transfert par le
bus qui est un facteur de ralentissement.
Ainsi, afin d’améliorer les performances globales d’un ordinateur on introduit les mémoires
caches permettant de « rapprocher » du processeur les informations qu’il doit traiter.
1. GÉNÉRALITÉS
La fonction de communication est une fonction fondamentale d’un ordinateur. Cette fonction
recouvre toutes les activités permettant les échanges d’informations entre les périphériques,
le processeur central et la mémoire centrale. Elle recouvre ce que l’on appelle généralement
la gestion des entrées-sorties. Il s’agit d’une fonction complexe au regard des différents
éléments intervenant dans cette gestion qui, si elle est mal réalisée est très pénalisante pour
les performances globales d’un ordinateur.
Périphériques. Ce sont tous les dispositifs matériels permettant d’assurer les échanges
d’informations en entrée et en sortie entre l’ordinateur et l’extérieur ou de stocker de manière
permanente des informations. On y trouve clavier, souris, imprimantes, écrans, modems et
Page 19 sur 25
pour le stockage par exemple des disques magnétiques. Chaque périphérique est piloté par
un ensemble de signaux spécifiques au périphérique, et activés par l’unité d’échange.
Pour imprimer une donnée il faut accéder à celle-ci en mémoire centrale (on dispose pour
cela de son adresse mémoire) et la faire parvenir via le bus au contrôleur de l’imprimante.
Nous serons donc amenés à définir l’adresse et la structure générale d’un contrôleur lui
permettant d’accueillir une donnée. Les signaux à produire selon que l’on doive gérer une
imprimante, un clavier ou encore un disque magnétique sont différents et sont spécifiques du
périphérique.
Le logiciel de traitement de textes connaît le pilote d’impression car ce dernier est installé
dans le système d’exploitation : quand nous achetons un périphérique nous devons installer
le pilote. Ce mécanisme (déléguer le traitement des entrées-sorties à un programme du
Page 20 sur 25
système d’exploitation) est général et fondamental dans le traitement des entrées/sorties.
Pour qu’un programme soit exécutable par un processeur il faut, comme nous l’avons vu, le
traduire dans le langage du processeur (c’est l’opération de compilation), puis le placer en
mémoire centrale (c’est l’opération de chargement en mémoire). On dispose alors en
mémoire du programme machine.
Pour commander une impression, il faut placer dans le programme les instructions d’entrées-
sorties pilotant une impression (la syntaxe de ces instructions dépend du langage utilisé pour
écrire le programme). Les instructions d’entrées-sorties sont traitées de manière particulière
dans cette phase de traduction : un ordre d’opération d’entrées/sorties est traduit par un «
branchement » (SVC, Supervisor Call) qui est un appel au système d’exploitation. On parle
également de trappe système qui permet d’enlever le processeur au programme utilisateur
au profit du pilote capable de gérer cette opération d’entrées-sorties.
Ce mécanisme est fondamental à plus d’un titre. On remarque d’abord que les fonctions de
gestion des entrées-sorties ne sont pas confiées aux programmes utilisateurs mais au
système d’exploitation : l’utilisateur n’a pas à supporter la complexité de la gestion technique
d’une très grande variété de périphériques.
2. BUS
Un bus peut être vu comme un ensemble de « fils », des liaisons physiques (câbles, pistes
de circuits imprimées, etc.) permettant la communication de plusieurs éléments matériels
dans un ordinateur. Dans le processeur nous avons étudié le bus interne au processeur
interconnectant l’unité arithmétique et logique, les registres et l’unité de commande.
- Les bus parallèles. Ce sont des bus simples constitués d’autant de « fils » qu’il y a de
bits à transporter. Ces bus sont coûteux et peu fiables pour des distances
importantes. Ils sont utilisés sur des distances courtes, par exemple pour relier le
processeur, la mémoire et les unités d’échanges.
- Les bus série. Ils permettent des transmissions sur de grandes distances. Ils utilisent
une seule voie de communication sur laquelle les bits sont sérialisés et envoyés les
uns à la suite des autres.
Le bus système (FSB, Front-Side Bus ou bus interne) permet au processeur de
communiquer avec la mémoire centrale du système. Le bus d’extension (Bus I/O) permet
d’une part aux divers composants de la carte mère de communiquer entre eux; d’autre part il
permet surtout l’ajout de nouveaux périphériques. Ceci grâce aux connecteurs d’extension
connectés sur le bus d’entrée/sortie.
On peut citer quelques bus de communication.
- Connecteurs d’extension (slots) permettent de recevoir des cartes d’extension. Ainsi,
ils offrent des nouvelles fonctionnalités ou de meilleures performances à l’ordinateur.
- Connecteur ISA (Industry Standard Architecture) pour insertion des cartes ISA à16
bits. Très lent.
- Connecteur VLB (Vesa Local Bus) pour l’insertion des cartes graphiques.
- Connecteur PCI (Periphéral Componet Interconnect) pour l’insertion des nouvelles
cartes d’insertion (surtout graphique) à 32 bits.
Page 21 sur 25
- Connecteur AGP (Accelerated Graphic Port) reservé à la carte graphique à 32 bits.
- Connecteur PCI Express. Reservé à la carte graphique, fonctionnant à 32 buts. Très
rapide. Les spécifications du bus PCI permettent d’installer une architecture Plug And
Play. C’est-à-dire le périphérique est automatiquement reconnu et le pilote nécessaire
à son fonctionnement automatiquement installé.
- Connecteur AMR (Audio Modem Riser) pour l’insertion des mini-cartes.
- Connecteurs IDE (Integrated Device Electronics) et SATA pour connecter les disques
durs.
Pour répondre à la grande variété de besoins, une architecture multibus s’est imposée.
- d'utiliser des techniques algébriques pour traiter les expressions à deux valeurs de
la logique des propositions ;
- de modéliser des raisonnements logiques, en exprimant un “état” en fonction de
conditions.
Un circuit combinatoire est un module tel que l’état des sorties ne dépend que de l’état des
entrées. L’état des sorties doit être évalué une fois que les entrées sont stables, et après
avoir attendu un temps suffisant à la propagation des signaux.
On comprend intuitivement que les circuits combinatoires correspondent à des circuits sans
état interne : face à la même situation (les mêmes entrées), ils produisent toujours les
mêmes résultats (les mêmes sorties). Si un circuit combinatoire est composé lui-même de
sous-circuits combinatoires, on démontre que la définition de base est équivalente au fait
que ces sous-circuits sont connectés entre eux sans rebouclages.
Table de vérité des connecteurs ou opérateurs logiques.
Une des contributions essentielles de Boole est la table de vérité, qui permet de capturer les
relations logiques entre les entrées et les sorties d’un circuit combinatoire sous une forme
tabulaire.
Soit p et q deux propositions logiques.
À titre indicatif, nous présentons les sept portes logiques. Les sept portes logiques
Page 22 sur 25
couramment utilisées dans la conception numérique sont les portes NOT, AND, OR, XOR,
NOR, NAND et XNOR. Dans les conceptions, on utilise des combinaisons de ces portes
logiques pour implémenter la fonction logique.
Un circuit est dit séquentiel, si les valeurs de ses sorties ne dépendent pas que des valeurs
de ses entrées. C’est donc le contraire d’un circuit combinatoire, dont les valeurs des sorties
ne dépendaient que de celles de ses entrées, avec une propagation sans retour arrière des
signaux des entrées vers les sorties.
Page 23 sur 25
À l’inverse, les sorties d’un circuit séquentiel dépendent non seulement des valeurs des
entrées au moment présent, mais aussi d’un état interne qui dépend de l’historique des
valeurs d’entrées précédentes. En vertu de ce que nous avions démontré pour les circuits
combinatoires, cela implique un rebouclage vers l’arrière de certains signaux internes au
circuit.
Avant d’acquérir un ordinateur, il faut prendre le temps de réfléchir et de sous-peser tous les
facteurs de performance technique et économique exposés ci-haut. S’engager avec un
fournisseur c’est dépendre de lui pour de nombreuses années.
Bien qu’on trouve différents fabricants d’ordinateur, le marché international du numérique est
dominé par d’un côté les industries Américaines avec les GAFA (Google, Apple, Facebook et
Amazone) et de l’autre les industries Chinoises avec BATX (Baidu, Alibaba, Tencen,
Xiaomi) :
Une série de questions auxquelles il faut répondre avant de choisir un logiciel est proposée.
Que veut-on accomplir ? Qu’allez-vous faire pour atteindre vos objectifs ? Qu’attendez-vous
de ce logiciel ? Quel cout réel pour soi ? Vers quel fabricant se tourner ?
Il faut approfondir les recherches, comparer et voir comment les fabricants d’ordinateur et de
logiciel sont classés à l’échelle mondiale.
Page 24 sur 25
coût d’acquisition.
Page 25 sur 25