Vous êtes sur la page 1sur 19

Anne universitaire 20032004

DEUG MIAS-SM Premire Anne


Initiation linformatique
Enseignants : Franois Denis, Vincent Lebrun, Rmi Morin
fdenis@cmi.univ-mrs.fr, Vincent.LeBrun@astrsp-mrs.fr, morin@cmi.univ-mrs.fr

Chapitre 1

Principes des ordinateurs


1.1

Introduction

Quest-ce quun ordinateur ? Que peut-on faire avec un ordinateur ? Lobjectif de cette
introduction est de rpondre de manire informelle ces questions.
On peut dcrire un ordinateur comme un dispositif matriel permettant en principe deffectuer nimporte quel calcul sur des donnes discrtes. Prcisons chaque composante de cette
dfinition.

1.1.1

Donnes discrtes et codage numrique

Discret vs continu.
On distingue donnes discrtes et donnes continues. Une donne est discrte si elle est
compose dun nombre fini (ou dnombrable) dlments bien dfinis, isols les uns des autres.
Les chiffres, les nombres, les lettres, les mots, les phrases, les notes de musiques, les nuclotides, les acides amins . . . peuvent tre considrs comme des lments bien dfinis, isols les
uns des autres. Tout ensemble fini, toute liste de tels lments peut donc tre considr comme
une donne discrte. Ainsi, les ensembles de nombres entiers, les textes, les codes gntiques
(composs de nuclotides) et les protines (composes dacides amins), les uvres musicales
. . . peuvent tre considrs comme des donnes discrtes.
TACATCTTCTTTAAAGGTAAGGTTGCTCAACCA
Fig. 1.1 Un fragment de code gntique.
En revanche, les nombres rels, les formes et les objets physiques en gnral, les sons, la
peinture, lcriture manuscrite et les calligrammes sont des donnes continues.
On peut objecter cette classification quune lettre trace sur une feuille peut tre vue
comme une image, cest--dire comme un objet continu, quune protine est un objet physique et donc un objet continu mais aussi que nimporte quel objet physique peut tre dcrit
comme une suite finie datomes parfaitement diffrencis et donc comme une donne discrte.
Cette objection est parfaitement valide et cest une dcouverte importante que davoir compris que nombre de systmes matriels peuvent tre dcrits, des niveaux diffrents, la fois
comme des donnes discrtes et continues. Par exemple, une protine est la fois une suite
1

CHAPITRE 1. PRINCIPES DES ORDINATEURS

(discrte) dacides amins et une structure matrielle (continue) dploye dans lespace trois
dimensions.
Codage numrique et analogique
Coder un objet, cest le reprsenter ou reprsenter certaines de ses composantes essentielles
dans un systme particulier. On parle de codage numrique lorsquon reprsente un objet par
des nombres et de codage analogique lorsquon reprsente un objet par une donne continue.
Dans un codage analogique, on souhaite prserver directement une forme ou une caractristique physique de lobjet. Par exemple, un paysage peut tre reprsent de manire analogique
comme un agencement de textures chimiques sur une pellicule photographique, une chanson
peut tre reprsente de manire analogique comme un sillon de hauteur variable imprim sur
un disque en vynil, un texte peut tre recopi de manire manuscrite sur une feuille . . .
Dans un codage numrique1 , on associe conventionnellement des nombres (ou des donnes
discrtes en gnral) aux composantes de lobjet que lon veut reprsenter de manire pouvoir
reconstituer ou seulement dsigner sans ambiguit la forme ou la caractristique physique qui
nous intresse. Les mots permettent de dsigner des choses ; la suite de nombres inscrits dans
un disque compact permet de reconstituer des sons.
Un codage numrique reprsente un objet par des donnes discrtes dont lunit de base est
le bit (binary digit) : 0 ou 1. Un bit peut tre ralis physiquement de manires trs diverses :
le courant passe ou non, un trou ou non (cartes perfores), une bosse ou non (micro-cuvette
et zone plane : disque laser, CD-audio, CD-ROM, DVD Digital Video Disk), aimantation sud
ou nord (disques et disquettes).
Un bit ne permettant pas de coder grand chose, on utilise un systme dunits bas sur
loctet 2 , qui est une suite de 8 bits. Les units suivantes sont le KiloOctets (1Ko = 210 octets =
1024 octets), le MgaOctets (1Mo = 210 Ko), le GigaOctets Go (1Go = 210 Mo), le TeraOctets
(1To = 210 Go) et le PetaOctets (1Po = 210 To).
Combien dobjets diffrents peut-on coder avec n bits ? Les codes possibles sont toutes les
suites de n lments pris parmi 0 ou 1. Il y en a 2n . On peut donc coder 2n objets avec n
bits : 2 avec 1 bit, 28 = 256 avec 1 octet. On doit souvent rsoudre le problme inverse : on
dispose de m objets distincts ; combien de bits sont ncessaires pour pouvoir les coder, de telle
manire que deux objets diffrents aient deux codes diffrents. Rponse : le plus petit nombre
entier n tel que 2n m.
Le nombre y tel que 2y = m est le logarithme en base 2 de m.
Rappels sur les logarithmes. Si b est un rel strictement suprieur 1, la fonction x bx
est une bijection continue drivable dfinie de R valeurs dans ]0, [. Sa bijection inverse est
le logarithme de base b. Elle est note logb . On sintressera principalement la valeur b = 2,
cest--dire au logarithme en base 2. Quelques proprits :
pour tout x > 0, blogb (x) = x,
pour tout rel x, logb (bx ) = x,
pour tout x > 0, on a ln x = loge (x) o ln e = 1,
1
La traduction anglaise de numrique est digital qui provient de digit qui veut dire chiffre. En franais, la
racine digit se rapporte aux doigts et non aux chiffres et la traduction littrale codage digital est proscrire !
2
byte en anglais.

1.1. INTRODUCTION

si b et b sont deux rels strictement suprieurs 1, pour tout x > 0, on a


Logb (x) =

logb (x)
ln x
log10 (x)
. En particulier, log2 (x) =
=
.
logb (b)
ln 2
log10 (2)

Combien faut-il de bits pour coder 16000 objets ? Une calculatrice permet de trouver que
log2 (16000) 13, 96. Il faut donc 14 bits.
On remarquera que 210 = 1024 est proche de 1000 : cette remarque permet deffectuer des
calculs approximatifs rapidement :
16000 24 210 = 214 .
Que peut-on reprsenter par des 0 et des 1 ? Rponse : toutes les donnes discrtes !
Les valeurs de vrit. Une proposition logique est vraie ou fausse. On peut donc coder
les deux valeurs de vrit possibles sur 1 bit. Le plus souvent, Vrai est cod par 1 et
Faux par 0. La reprsentation des valeurs logiques par des nombres a conduit la notion
de calcul logique, fondamental dans le dveloppement de linformatique. Des exemples
de calculs logiques seront donns la fin de ce cours.
Nombres. Les nombres entiers sont reprsentables en base 2, cest--dire en nutilisant
que les chiffres 0 et 1. Par exemple 23 = 24 +22 +21 +20 est reprsent par 10111 en base
2. On peut galement reprsenter les entiers ngatifs en convenant par exemple que le
premier bit reprsentera le signe, 0 pour un nombre ngatif et 1 pour un nombre positif.
Le nombre -23 sera alors cod par 010111. Un nombre rationnel pq peut tre reprsent
par le couple dentiers (p, q). Mais il ne suffit pas de juxtaposer un codage de p un
codage de q pour pouvoir reconstituer le couple : la suite 010111 dsigne t-elle le couple
(-2,3) ou le couple (-1,-5) ? On peut par exemple choisir de doubler les bits des codages
de p et q et dcider conventionnellement quils seront spars par 01. Le rationnel -2/3
sera alors reprsent par 00110001111111. En revanche, il est impossible de reprsenter
la fois tous les nombres rels par des suites finies de 0 et de 13 . Un chapitre de ce cours
est consacr aux codages usuels des nombres.
Lettres. Pour coder tous les caractres utiliss dans les textes, 1 octet est amplement
suffisant. Le code ASCII (pour American Standard for Communication and International
Interchange) reprsente 128 caractres de base (cods sur 7 bits). Ce code, mis au point
pour la langue anglaise, ne contient pas de lettres accentues. Il a t tendu 8 bits
pour pouvoir coder 128 autres caractres : on parle alors de code ASCII tendu. Ce
dernier nest pas unique et dpend des lieux dutilisation.
Les 32 premiers caractres ne sont pas imprimables : il sagit de caractres de contrle
qui permettent par exemple de revenir en dbut de ligne (LF - Line Feed, code ASCII
10) ou de passer la ligne suivante (CR - Carriage Return, code ASCII 13).
Les 26 lettres majuscules sont codes conscutivement de 65 90, les 26 lettres minuscules sont codes de 97 122. Il suffit donc dajouter 32 au code ASCII dune lettre
majuscule pour obtenir le code de la lettre minuscule correspondante.
3

La raison de cette impossibilit nest pas quun nombre rel peut avoir un dveloppement dcimal infini
puisque les nombres 1/3 ou sont reprsentables sans ambiguit par quelques caractres ; ceci nest pas d
non plus au fait quil y a une infinit de nombres rels puisquil y a aussi une infinit de nombres entiers ou
rationnels. Les rels ne sont pas codables par des suites finies de 0 et de 1 parce quil y en a (beaucoup) plus
que de telles suites : on peut dmontrer quil nexiste pas de bijection entre R et lensemble des suites finies de
0 et de 1.

CHAPITRE 1. PRINCIPES DES ORDINATEURS

Fig. 1.2 Code Ascii, tlcharg ladresse http ://www.asciitable.com/.


Les 10 chiffres sont cods de 48 57.
Textes. Comme les textes sont des suites de lettres, on peut les coder par des suites
doctets. Les caractres qui composent le mot MIAS ont pour caractre ASCII 77, 73,
65 et 83. Ce mot est donc reprsentable par la juxtaposition des 4 octets suivant
01001101 01001001 01000001 01010011.
Un texte de 300 pages, dont chaque page contient 40 lignes, chacunes tant composes de
80 caractres pourra donc tre reprsent par une suite de 300x40x80 octets soit encore
7.680.000 bits.
En ralit, les textes imprims ont des formats particuliers (taille des marges, retraits,
largeur des interlignes, paragraphes centrs ou justifis, polices diffrentes, tailles de caractres diffrentes, casses4 diffrentes, . . . ) qui rendent leurs reprsentations numriques
beaucoup plus volumineuses. titre dexemple, les mots DEUG MIAS en tte dun
document HTML pourront ncessiter le codage du texte suivant :
<center> <h3> <b>DEUG MIAS</b></h3></center>
qui signifie que le texte DEUG MIAS doit tre crit en gras ( <b> ... </b> : b pour
bold), quil doit tre crit au format h3 (h pour header ) et quil doit tre centr. Les 33
caractres qui composent les instructions de formatage ne seront pas affichs tels quels :
il nempche quil faut les coder comme les autres.
Sons. Un son est une vibration de lair qui peut tre reprsente par une fonction associant une pression un instant. Il sagit donc dune donne continue qui doit tre
discrtise avant de pouvoir tre code numriquement. On appelle chantillonnage laction qui consiste dcouper une dure en petits intervalles de temps et remplacer
la valeur continue de la pression dans ces intervalles par une valeur constante. Plus les
intervalles seront petits, plus le son pourra tre restitu fidlement. Le taux dchantillonnage est exprim en Hertz, cest--dire en nombre dintervalles par secondes. Un
4

Cest--dire les caractres gras, italiques ou autres.

1.1. INTRODUCTION

taux dchantillonnage de 44000 Hz correspond la qualit dun CD, un taux de 8000


Hz correspond la qualit du son transmis au tlphone5 . Les valeurs de la pression
chaque chantillon peuvent alors tre reprsents par des nombres cods sur 8 ou 16 bits.
Un son strophonique ncessite un double codage. Ainsi, une chanson de 3mn, enregistre en stro la qualit dun CD et code sur 16 bits, ncessitera 3x60x44000x16x2 =
253.440.000 bits pour pouvoir tre reprsente numriquement.
Images. Les images peuvent tre numrises au moyen dune technique dchantillonnage
analogue celle utilise pour numriser les sons : on obtient alors une image au format
bitmap. Elles peuvent galement tre dcomposes en formes gomtriques simples : on
dit alors quelles sont vectorialises.
codage point par point (bitmap). Limage est dcoupe selon une grille dont le maillage
est plus ou moins fin (rsolution). Chaque lment est un pixel (pour picture element ).
Une couleur ou un niveau de gris est associ chaque pixel. Palettes utilises : noir
et blanc, 256 niveaux de gris, 16 millions de couleurs (en fait, 283 = 16.777.216
couleurs). Il faut 1 bit pour coder la couleur dun pixel en noir et blanc, 1 octet pour
la coder si lon utilise une palette de 256 niveaux de gris et 3 octets si lon utilise une
palette de 16 millions de couleurs. Par exemple, une photo haute rsolution (720x480)
reprsente avec une palette de 65.536 couleurs pourra tre code par une suite de
3x720x480=1.036.800 octets.
codage vectoriel. Pour coder un segment, il suffit de coder ses deux extrmits. De
mme, un rectangle, un cercle, une ellipse, peuvent tre reprsents par deux points.
Lorsquune figure peut tre dcompose en figures lmentaires, le codage vectoriel
permet un gain de place considrable.
chaque fois que nous avons indiqu comment coder numriquement un objet, nous
avons naturellement t amens parler de la taille du codage. En effet, on code un objet
pour pouvoir travailler sur sa reprsentation et la premire tape de ce traitement consiste
toujours la stocker dans une mmoire informatique 6 . Voici les capacits de quelques mmoires
informatiques usuelles.
disquette : 1,44 Mo,
mmoire vive (RAM) : quelques dizaines de Mo,
disques durs : quelques Go,
CD-audio standards : 650 Mo,
DVD (simple face, simple couche) : 4,7 Go.
Quelques outils courants permettent de passer dun codage analogique un codage numrique :
Les modems (modulateur/dmodulateur) : pour connecter un ordinateur (numrique)
au rseau tlphonique (analogique). Un signal analogique est modul afin de coder un
certain nombre de symboles, chaque symbole pouvant reprsenter un ou plusieurs bits.
Deux units sont utilises : le baud 7 qui reprsente le nombre de symboles transmis par
seconde et le bps (bit per second) qui reprsente le nombre de bits transmis par secondes.
5

Ces donnes proviennent de larticle Le son numrique de Jean-Franois Pilou, disponible sur le site
www.commentcamarche.net qui contient un grand nombre de documents concernant linformatique au sens
large et tlchargeables gratuitement.
6
Disquettes, mmoire RAM, disques durs seront dfinis dans la suite.
7
Daprs Maurice Emile Baudot (1845-1903), ingnieur franais qui tudia le tlgraphe.

CHAPITRE 1. PRINCIPES DES ORDINATEURS


Les scanners : pour numriser une image. Grce aux scanners, on peut insrer des images,
des dessins, des photos dans un document informatique.
Dautres outils transforment un codage numrique en un autre :
OCR (Optical Character Recognizer) : transformation dun caractre reprsent comme
une image en un caractre ASCII. Cest un outil complmentaire du scanner.
Compression dinformation. Un dessin enregistr au format bitmap utilise autant de
place pour coder tous les pixels dun dessin, ceux qui composent les traits comme ceux
qui composent le fond blanc. Si lon peut limiter efficacement des zones qui contiennent
des pixels de mme nature, on peut diminuer considrablement la taille du codage. Il en
est de mme des textes qui utilisent le mme espace (un octet) pour coder des lettres
frquentes comme e que des caractres rarement utiliss comme #. On peut aisment
rduire les donnes textes de 50% sans perte dinformation. Voir le format MP3 pour
les donnes musicales. Un compresseur rduit la taille dune reprsentation numrique
volumineuse,
sans perte dinformation : cela signifie que lopration de compression est rversible ;
ou sans perte dinformation sensible : lopration nest plus rversible mais la perte
ne concerne quune information indtectable par nos sens. Par exemple, limination
de certaines frquences inaudibles par loreille humaine.

1.1.2

Quest-ce quun calcul ?

Il est plus facile de donner des exemples de calcul que de dfinir ce quest un calcul.
Exemples de calculs. Additionner deux nombres. Calculer la 10000me dcimale de .
Calculer le millionime nombre premier. Ranger les lettres dun mot dans lordre croissant des
lettres dans lalphabet. Compter les frquences dapparition de chaque mot dans une oeuvre
littraire. Calculer si une position aux checs est gagnante contre toute riposte8 .
Ide gnrale. Un calcul peut toujours tre ralis de manire systmatique en un nombre
fini dtapes lmentaires (ceci nest pas une dfinition).
Exemple : comment faire dire quelquun qui ne connat que deux oprations lmentaires
calculer le reste de la division dun entier par un autre
comparer deux nombres entiers
si un entier est premier ou non ? On peut par exemple lui donner les consignes suivantes
Pour savoir si un nombre N est premier :
(1) Si N est gal 0 ou 1, alors N nest pas premier.
(2) Sinon, soit P=2 ;
(3) si le reste de la division de N par P est gal 0 alors
si N=P alors N est premier
sinon N nest pas premier
sinon jouter 1 P et recommencer ltape (3)
Il faut dmontrer que cette suite de consigne est correcte, cest--dire quelle permet de
conclure correctement pour tous les nombres entiers.
8

Une rgle stipule quune partie est nulle lorsque la mme configuration est apparue 3 fois : cette rgle
implique que le nombre de parties est fini.

1.1. INTRODUCTION

Dautres suites de consignes peuvent convenir et peuvent tre juges prfrables la prcdente. Plus concises, plus claires, mieux structures, il est plus facile de sassurer quelles
permettent de calculer ce quon souhaite.
Soit P=2.
Tant que P est plus petit que N et que P ne divise pas N
ajouter 1 P.
Si P=N alors N est premier sinon N nest pas premier.
On appelle algorithme 9 la description dun calcul laide dinstructions lmentaires, de
tests et autres structures de contrles 10 . On peut dfinir prcisment ce quest un calcul en
dfinissant les briques de base des algorithmes constitues par les instructions lmentaires,
les tests et les structures de contrles. Mais il y a un risque alors de dfinir autant de notions
de calculs que densembles de briques de base. Plusieurs mathmaticiens11 de la premire
moiti du XXme sicle ont propos, indpendamment les uns des autres, une dfinition de ce
quest un calcul : toutes se sont rvles quivalentes. La thse de Church-Turing, adopte par
lensemble des mathmaticiens et des informaticiens, nonce que ces dfinitions quivalentes
constituent une dfinition adquate de la notion de calcul.
Un langage de programmation est constitu dun jeu dinstructions lmentaires ainsi que
dun ensemble de rgles dassemblage de ces instructions. Un programme est le codage dun algorithme dans un langage de programmation particulier. Quelques langages de programmation
usuels : Pascal, C, C++, Ada, Prolog12 , Lisp, Smalltalk, Java, . . .
Lalgorithme ci-dessus, cod en Pascal, donne le programme suivant :
P:=2;
while (P<N) and (N mod P <>0) do
P:=P+1;
If P=N then premier:=true else premier:=false;
La dfinition propose dans les premires lignes de cette introduction stipule quun ordinateur doit tre capable en principe deffectuer nimporte quel calcul : comment peut-on en
tre sr ? Turing a montr quil existe des machines universelles capable deffectuer tous les
calculs dfinis par la thse de Church-Turing, autrement dit tous les calculs imaginables. Ces
machines universelles sappellent des ordinateurs ! Toutes ces questions sont tudies par un
domaine de linformatique thorique qui sappelle la thorie de la calculabilit. Un ordinateur
nest donc pas un simple calculateur ; un ordinateur a la puissance de tous les calculateurs
imaginables !
Existe t-il des choses que lon ne peut pas calculer ? La plupart des fonctions que lon
connat sont calculables par un ordinateur. Et pourtant, la plupart des fonctions ne sont pas
calculables13 !
9

Daprs Al Khowarizmi, mathmaticien persan du IXme sicle.


On distingue les structures squentielles, conditionnelles et itratives : voir le cours du deuxime semestre.
11
Parmi eux figure un des plus grands noms de linformatique, le mathmaticien anglais Alan Turing.
12
Made in Marseille par Alain Colmerauer.
13
Esquisse de dmonstration. Lensemble des fonctions boolennes, cest--dire dfinie de N valeurs dans
{0, 1}, nest pas dnombrable daprs le thorme de Cantor : un ensemble E ne peut pas tre mis en bijection
avec lensemble de ses parties P(E). Dmonstration : supposer quil existe une bijection f : E P(E),
considrer lensemble B = {x 6 f (x)} et llment b = f 1 (B) de E ; on montre alors que b B ssi b 6 B.
10

CHAPITRE 1. PRINCIPES DES ORDINATEURS

Un exemple de fonction non calculable : les mathmatiques sont composes dun ensemble
daxiomes (des formules logiques que lon tient pour vraies) et de rgles de dduction logique
qui permettent de construire dautres formules vraies (par exemple, si P est vraie et si P Q
est vraie, alors Q est vraie). Connaissant les axiomes et les rgles de dduction, on pourrait
esprer programmer un ordinateur pour quil dise si oui ou non une formule F est dductible
des axiomes14 . La fonction correspondante est bien dfinie :
f (F ) = 1 si F est dductible des axiomes et 0 sinon.
Un tel programme pourrait tre trs utile pour savoir si telle conjecture est vraie ou non !
Malheureusement, on peut prouver quun tel programme nexiste pas15 .
La dfinition propose ci-dessus mentionne galement lattnuateur en principe : que signifie t-il ? Un ordinateur peut calculer tout ce qui est calculable si lon suppose quil peut
disposer de tout le temps ncessaire pour mener bien ses calculs, mais aussi, de tout lespace ncessaire (mmoire) pour noter des rsultats intermdiaires. Cela nest pas trs raliste.
Le domaine de linformatique qui sintresse aux calculs pratiquement ralisables sappelle la
complexit algorithmique.
Depuis lantiquit, les hommes aiment se poser des nigmes qui nont pas lair trs difficile
rsoudre mais dont la rsolution effective met en jeu des nombres normes, si grands quil
semble impossible de pouvoir les traiter.
Une des anecdotes les plus clbres a trait linvention du jeu dchecs. Son inventeur
ne demanda pour rcompense quun peu de bl : un grain sur la premire case, deux sur la
seconde, quatre sur la troisime et ainsi de suite, en doublant le nombre de grains chaque
fois, jusqu la soixante quatrime. Le total dpasse, et de loin, la production mondiale de bl !
On a depuis construit des exemples de fonctions calculables mais pratiquement inatteignables bien plus redoutables encore. Cest par exemple le cas de la fonction Ack dAckerman,
dfinie de N N valeurs dans N par
Si m = 0, Ack(m, n) = n + 1
si m > 0 et n = 0, Ack(m, n) vaut Ack(m 1, 1)
si m > 0 et n > 0, Ack(m, n) vaut Ack(m 1, Ack(m, n 1))
On peut facilement se convaincre que cette fonction est calculable. Calculez Ack(2, 2) puis
Ack(5, 5).
Lensemble des fonctions boolennes, qui peut tre mis en bijection avec lensemble des parties de N, nest
donc pas dnombrable. Or, il ny a pas plus de fonctions boolennes calculables quil ny a de manires dcrire
un programme ou un algorithme. Comme les programmes sont des suites finies de caractres et quil ny a
quun nombre fini de caractres disponibles, le nombre de programmes possibles est dnombrable. CQFD.
La dmonstration ci-dessus nest qu moiti satisfaisante car elle dit que la plupart des fonctions boolennes
sont non calculables sans proposer de mthode pour en construire une ! En revanche, elle permet daffirmer
quune fonction boolenne dont les images sont choisies alatoirement (en tirant pile ou face) est certainement
non calculable.
14
La question de savoir si un tel programme peut exister a t pose, en dautres termes, par Hilbert en
1900.
15
Une premire ide pour raliser un tel programme consiste faire appliquer toutes les rgles de dduction
tous les axiomes de telle manire que le programme balaie toutes les dmonstrations possibles. Un tel
programme peut effectivement tre construit ; il montrera quune formule dductible lest effectivement mais
il sera incapable de prouver quune formule nest pas dductible. On peut alors imaginer de compliquer le
programme en lui soumettant la fois la formule et sa ngation : comme une formule est soit vraie soit fausse
(et dans ce cas, sa ngation est vraie), on peut esprer conclure. Malheureusement ce nest pas le cas. Gdel,
mathmaticien et logicien allemand du dbut du XXme sicle a montr que pour la plupart des systmes
axiomatiques utiliss, il existe des formules logiques qui ne sont pas dductibles, non plus que leur ngation.

1.1. INTRODUCTION

1.1.3

Un dispositif matriel

Un ordinateur est une machine dont les principaux composants sont :


le processeur ou Unit centrale : cest le cerveau de lordinateur, l o sexcutent les
calculs.
la mmoire centrale :
la mmoire vive (RAM : Random Access Memory) : cest l que se trouvent les donnes
que le processeur traite et les instructions quil excute.
la mmoire morte (ROM : Read Only Memory). Contenu permanent, enregistr lors
de la fabrication de la machine, ncessaire pour les procdures de dmarrage.
les priphriques dentre/sortie : cest grce eux quun ordinateur peut changer
de linformation avec son environnement. Lorsque linformation passe via le priphrique de lenvironnement vers lordinateur, on parle de priphrique dentre ; lorsque
la circulation a lieu en sens inverse, on parle de priphrique de sortie. Les principaux
priphriques sont :
lcran. Pour afficher les rsultats dun traitement.
le clavier. Pour saisir des informations.
limprimante. Pour imprimer le rsultat dun traitement sur du papier.
la souris. Pour slectionner une partie de lcran et activer les fonctions correspondantes (on dit cliquer ).
le lecteur de disquette. Pour enregistrer et saisir des donnes sur ou partir dun
support facilement transportable.
le disque dur. Mmoire permanente volumineuse qui permet de conserver des donnes
(programmes, rsultats, ...).
le scanner. Pour numriser une information analogique.
le graveur. Pour inscrire des informations sur un disque compact (souvent de manire
irrversible . . . mais les choses changent vite).
le modem. Pour raliser une connection avec le rseau tlphonique.
les prises rseaux. Pour raliser une connection avec un rseau local puis internet.
...
Les aspects matriel des ordinateurs seront dtaills dans le prochain chapitre16 .
Nous sommes maintenant en mesure de rpondre la deuxime question pose : que peuton faire avec un ordinateur ? On peut raliser tous les calculs imaginables, pouvu que lon
dispose dun algorithme dcrivant le calcul, dun codage des donnes que lon souhaite traiter
sous forme de donnes discrtes et pour peu que lon dispose de suffisamment de ressources,
temps et espace mmoire, pour raliser effectivement le calcul. Quelles sont les limites ce
que lon peut faire faire un ordinateur ? Au dbut des annes 50, Alan Turing17 crivit
un article intitul Une machine peut-elle penser ? qui explore lide selon laquelle le cerveau
est reprsentable par une structure de donnes discrte et la pense nest rien dautre quun
calcul lintrieur de cette structure. Rien ne semble sopposer alors ce quune machine
puisse penser. Le dbat nest toujours pas clos lheure actuelle. Cet article a t le point de
dpart dun domaine toujours trs actif en informatique : lintelligence artificielle.
16

Pour ceux qui sintressent lhistoire des ordinateurs et de linformatique en gnral, nous conseillons Une
histoire de linformatique de Philippe Breton, paru aux ditions du Seuil dans la collection Points Sciences.
Une recherche sur internet conduit aussi rapidement des sites trs intressants.
17
Le principal biographe dAlan Turing, Andrew Hodges, maintient un site web sur son oeuvre :
http ://www.turing.org.uk/turing/.

10

CHAPITRE 1. PRINCIPES DES ORDINATEURS

De manire plus prosaque, un ordinateur permet de faire du traitement de texte (Word,


Latex, . . . ), du calcul numrique, du calcul formel (Maple, Mathematica), de laide la gestion
(Excel, SGBD Access, Oracle), des jeux, des logiciels documentaires, des logiciels ducatifs
(NTE), des logiciels de recherche et dextraction dinformation, du traitement de sons et
dimages, . . . Cette liste nest videmment pas exhaustive.

1.1.4

Exercices

1. Combien dobjets sont codables (reprsentables de manire conventionnelle) avec 1 bit,


8 bits, n bits.
2. On souhaite pouvoir coder 1000 objets. Combien de bits sont ncessaires ?
3. Si lon veut associer un code binaire chacun des 60.000.000 de franais, combien doctets
seront ncessaires ? Effectuez dabord un calcul approximatif en utilisant lapproximation
210 1000 puis vrifiez laide dun calcul exact.
4. Classez les mesures de capacit suivantes par ordre croissant : 100 bits, 10 octets, 4 Ko,
1Mo, 4000 octets.
5. Une image est un ensemble de points colors (les pixels) : si la palette utilise comporte
32768 couleurs, combien de bits sont ncessaires pour coder ces couleurs ?
6. Un livre comporte 500 pages, chacune compose de 80 colonnes et 40 lignes. Un caractre
est cod sur un octet. Pourra-t-on, sans utiliser de logiciels de compression, stocker ce
livre sur une disquette de 1,44 Mo ?
7. Une photo haute rsolution comporte 720x480 pixels, la couleur de chaque pixel tant
cod sur 24 bits. Pourra-t-on la stocker telle quelle (format bitmap) sur une disquette
de 1,44 Mo ?
8. Imaginez des algorithmes capables de calculer les exemples dcrits au dbut de la section
1.1.2.
9. Prouver que lalgorithme de la page 7 calcule bien ce qui lui est demand.
10. Combien de grains de bls seront (virtuellement) sur lchiquier lissue du processus
dcrit page 8 ? Faites un calcul exact puis un calcul approximatif.
11. Environ 25000 tudiants sont inscrits luniversit de Provence. Un numro est attribu
chaque tudiant. Bien videmment, deux tudiants diffrents ne doivent pas avoir le
mme numro.
(a) Combien de bits sont ncessaires pour coder un de ces numros ?
(b) Les logiciels utiliss ont loctet comme unit de mmoire. Combien doctets sont
ncessaires pour coder un numro dtudiant ?
(c) Ladministration de luniversit souhaite que les programmes mis au point pour
grer linscription et la scolarit des tudiants puissent servir plusieurs annes. Si
lon pense que la frquentation de luniversit de Provence peut augmenter significativement (de 20 50%) dans les annes venir, combien doctets faut-il rserver
pour coder les numros des tudiants ? Pourquoi ?
(d) Pour chaque tudiant, on mmorise en plus de son numro, son nom, son prnom,
sa date de naissance, son adresse, et divers renseignements concernant sa scolarit.
En supposant quau total un kilo-octet doit tre rserv pour chaque tudiant,

1.1. INTRODUCTION

11

pourra t-on stocker lensemble de ces renseignements (pour tous les tudiants) sur
une disquette ? en mmoire vive (RAM) dun ordinateur ordinaire ? sur un disque
dur de capacit standard ?
(exercice donn lexamen de deuxime session en 2002).
12. On souhaite effectuer des dessins sur une grille carre comprenant 64x64 cases (ou pixels).
Chaque point est repr par un couple dentiers (x, y) o x et y sont compris entre 0 et
63. On supposera que x et y sont crits en binaire.
(a) Combien faut-il de bits pour coder un point ?
On suppose que les dessins seront composs de trois types dlments : des segments,
des rectangles dont les cts sont parallles aux axes et qui pourront tre pleins
ou vides. Ainsi, le dessin de la figure ci-dessous est compos dun rectangle vide
ADJI, dun rectangle plein BCF E et de deux segments GK et KH.
63

J
E

B C

0
0

63

Fig. 1.3 Un dessin


Un segment AB dont les extrmits ont pour coordonnes (xA , yA ) et (xB , yB )
sera reprsent par 4 octets 01xA 01yA 01xB 01yB .
Un rectangle vide ABCD dont deux sommets opposs sont A et C sera reprsent
par 4 octets 10xA 10yA 10xC 10yC .
Un rectangle plein ABCD dont deux sommets opposs sont A et C sera reprsent par les 4 octets 11xA 11yA 11xC 11yC .
Un dessin est reprsent par la suite des reprsentations des lments qui le
compose.
On remarque donc quon peut savoir si un octet code un lment dun segment
sil commence par 01, un lment dun rectangle vide sil commence par 10 et un
lment dun rectangle plein sil commence par 11.
(b) Indiquez quel dessin est reprsent par le codage suivant 10001111 10001111 10101111
10101111 01001111 01001111 01101111 01101111 01001111 01101111 01101111 01001111
(c) Combien faut-il de bits pour reprsenter le dessin de la figure ?
On suppose que les 64 64 = 4096 pixels de la grille sont numrots selon un
ordre conventionnel (par exemple de gauche droite et de haut en bas). Dans une
reprsentation bitmap, un dessin (en noir et blanc) est reprsent par une suite de
bits b1 . . . bn dont le i-ime bit bi est gal 0 si le i-me pixel du dessin est blanc
et 1 sil est noir.

12

CHAPITRE 1. PRINCIPES DES ORDINATEURS


(d) Combien faut-il de bits pour reprsenter le dessin de la figure dans une reprsentation bitmap ?
On souhaite enrichir les codages possibles en reprsentant directement des lignes
brises A1 A2 . . . Ak (cest--dire des runions de segments A1 A2 , A2 A3 , . . . , Ak1 Ak ).
(e) Indiquez comment on pourrait tendre le codage ci-dessus pour reprsenter de telles
lignes brises ? Indication : les extrmits de la ligne pourront tre repres par 01
et les points intrieurs par 00. Combien faudrait-il alors de bits pour reprsenter le
dessin de la figure ?

1.2. LE MATRIEL : ARCHITECTURE DES ORDINATEURS

1.2

13

Le matriel : architecture des ordinateurs

Von Neumann rdige en 1945 un texte dune dizaine de pages dans lequel il dcrit les plans
dune nouvelle machine, lEDVAC (Electronic Discrete Variable Computer). Cest sur cette
architecture que fonctionnent encore actuellement la plupart des ordinateurs.
Unit centrale

Unit de
commande

Unit
arithmtique
et logique

Mmoire
Principale

Priphriques

Registres

Bus

Fig. 1.4 Organisation dun ordinateur


Un ordinateur est compos dun processeur, dune mmoire principale, de divers priphriques. Ces composants sont relis entre eux par un ensemble de fils lectriques (appel bus),
assurant la transmission des signaux. Le processeur comprend deux units distinctes : une
unit de commande dont le rle est daller rechercher les instructions situes en mmoire principale devant tre excutes et de les dcoder, et une unit arithmtique et logique (UAL ou
ALU), charge dexcuter les oprations de base dcrites par les instructions.
La mmoire principale
La mmoire principale est souvent appele mmoire RAM (pour Random Access Memory18 ). Il sagit dune mmoire volatile : lorsque lordinateur est teint, son contenu disparat. La mmoire principale est compose de mots-mmoire, dune longueur de 2, 4 ou 8 octets,
adressables, cest--dire identifiables par une adresse qui est un nombre entier reprsent en
binaire. Une adresse de n bits peut dsigner 2n mots mmoires distincts. Le nombre de bits
dune adresse ne dpend que du nombre de mots mmoire directement adressables et non de
leur taille.
Par exemple, une RAM de 64 Mo organise en mots de 32 bits ncessite des adresses
possdant 24 bits. Actuellement, on trouve des mmoires principales de 64, 128, 256 Mo.
Les mmoires sont constitus de circuits intgrs, cest--dire, de millions de transistors
placs sur une puce de silicium.
Loi de Moore : le nombre de transistors intgrs sur une puce double tous les 18 mois.
Enonce en 1965, cette loi continue dcrire la ralit.
18
Cette dnomination ma toujours sembl un peu nigmatique. On parle aussi en franais de mmoire vive.
Quoiquil en soit, la mmoire principale doit tre distingue de la mmoire de masse, matrialise par les disques
durs, disques compacts ou bandes magntiques, qui sert mmoriser de linformation sur le long terme.

14

CHAPITRE 1. PRINCIPES DES ORDINATEURS

Le temps daccs la mmoire est une donne critique : il est de quelques millisecondes
pour le disque dur (mmoire de masse) et de quelques dizaines de nanosecondes pour la
mmoire principale. On peut amliorer le temps dexcution des algorithmes en introduisant
une mmoire cache, proche du processeur (et donc plus rapide) de faible capacit servant
conserver les mots mmoires les plus frquemment utiliss.
Le processeur
Le rle du processeur ou CPU (Central Processing Unit) ou UC (Unit Centrale) est
dexcuter les programmes stocks en mmoire principale en chargeant les instructions, en les
dcodant et en les excutant lune aprs lautre.
LUC dispose dune mmoire de travail prive qui lui permet de stocker des rsultats temporaires : les registres. Le registre compteur ordinal (CO) ou program Counter (PC) contient
ladresse de la prochaine instruction excuter. Le registre instruction (RI) contient linstruction en cours dexcution. Dautres registres, en nombre variable, servent stocker des
rsultats intermdiaires.
Excution dune instruction : cycle de chargement dcodage excution
1. Reprer grace au registre CO la prochaine instruction excuter et la charger dans le
registre RI.
2. Charger dans le compteur ordinal CO ladresse de linstruction suivante.
3. Analyser et dcoder linstruction contenu dans le RI.
4. Localiser en mmoire les donnes ncessaires linstruction.
5. Charger ces donnes dans les registres gnraux de lUC.
6. Faire excuter linstruction par lUAL.
7. Reprendre ltape 1 (sauf si linstruction qui vient dtre excute est celle qui demande
darrter lexcution du programme).
Lhorloge
Dans un ordinateur, non seulement les donnes traites sont discrtes mais le droulement
des oprations se fait aussi selon un temps discrtis. Une horloge, le plus souvent calibre
laide doscillateurs quartz, met rgulirement une suite dimpulsions, comme un mtronome, qui sert scander les oprations. Le temps dun cycle, ou priode de lhorloge, est
une caractristique des processeurs : 500 Mhz ou 1 Ghz, cest--dire une impulsion tous les
milliardimes de secondes, deviennent des valeurs courantes.
Exemple
On considre une mmoire RAM contenant 16 mots mmoires dun octet. Il suffit donc de
4 bits pour adresser un mot mmoire. On suppose lexistence dun registre accumulateur ACC
dun octet, pouvant contenir nimporte quel mot mmoire. On suppose que les instructions
peuvent tre codes par les quatre premiers bits dun mot mmoire :
ADD a. Pour additionner le contenu du registre accumulateur au mot mmoire situ
ladresse a de la mmoire RAM. Le rsultat est stock dans laccumulateur ; code 0000.

1.2. LE MATRIEL : ARCHITECTURE DES ORDINATEURS

15

ADD #a. Pour additionner le contenu du registre accumulateur avec la valeur a. Le rsultat
est stock dans laccumulateur ; code 0001.
JMP a. Pour charger ladresse a dans le compteur ordinal (instruction de branchement inconditionnel) ; code 0010.
JNZ a. Si le contenu de laccumulateur est diffrent de zro, ladresse a est charge dans le
compteur ordinal (instruction de branchement conditionnel) ; code 0011.
SHL. Pour dcaler les bits du registre accumulateur dune position vers la gauche (le dernier
bit devient gal 0) ; code 0100.
LOAD a. Pour charger le registre accumulateur avec le mot mmoire situ ladresse a ; code
0101.
LOAD #a. Pour charger la valeur a dans le registre accumulateur ; code 0110.
STO a. Pour ranger la valeur contenue dans le registre accumulateur ladresse a en RAM ;
code 0111.
STOP. Arrt du programme ; code 1111.
Exemple En reprenant les trois tapes de droulement dune instruction dcrites plus haut,
dcrire pour chacune des tapes le contenu du registre accumulateur, du compteur ordinal et
de la mmoire lors de lexcution de la squence dinstructions commenant ladresse 0. Le
contenu initial de la mmoire est le suivant :
adresse
0000
0001
0010
0011
0100
0101
0110
0111

contenu
01010111
00010001
00110100
00000110
01110110
11110000
00011110
00010100

Un tel programme est videmment illisible : on peut amliorer sa comprhension en crivant


les adresses en notation dcimale et dsignant les instructions par leur nom.
adresse
0
1
2
3
4
5
6
7

contenu
LOAD 7
ADD #1
JNZ 4
ADD 6
STO 6
STOP
30
20

16

CHAPITRE 1. PRINCIPES DES ORDINATEURS

1.2.1

Exercices

1. La machine de von Neumann tait compose de cinq parties : la mmoire, lunit arithmtique et logique, lunit de contrle et les dispositifs dentres et de sorties. La mmoire
disposait de 4096 mots, chaque mot faisant 40 bits, cest--dire deux instructions de 20
bits ou un entier sign de 40 bits. Les instructions comprenaient 2 champs : 8 bits
pour le type dinstruction et 12 bits pour adresser un des 4096 mots de la mmoire.
Cette citation est extraite de Architecture de lordinateur, A. Tannenbaum, Eds Dunod.
Assurez-vous que vous comprenez tous ses termes.
2. Quelle est la distance parcourue par la lumire pendant un cycle dun processeur cadenc
1GHz ?
3. On suppose que la mmoire RAM dun ordinateur contient 16 mots-mmoire dun octet
chacun. Chaque mot mmoire peut donc tre dsign par un entier de 0 15, reprsentable sur 4 bits (son adresse). LUnit Centrale de cet ordinateur contient
un registre CO (compteur ordinal) de 4 bits qui contient ladresse de la prochaine
instruction excuter,
un registre RI (registre instruction) de 4 bits qui contient linstruction en cours dexcution,
un registre ACC (accumulateur) dun octet pouvant contenir nimporte quel mot mmoire.
On considre 4 instructions, code chacune sur un mot mmoire.
LOAD x1 x2 x3 x4 , code par 0000x1 x2 x3 x4 : cette instruction charge la valeur contenue
ladresse x1 x2 x3 x4 de la mmoire RAM dans le registre ACC.
STO x1 x2 x3 x4 , code par 0010x1 x2 x3 x4 : cette instruction charge la valeur contenue
dans laccumulateur ladresse x1 x2 x3 x4 de la mmoire RAM.
JNZ x1 x2 x3 x4 , code par 0011x1 x2 x3 x4 : si le contenu de laccumulateur est diffrent
de 0, cette instruction crit ladresse x1 x2 x3 x4 dans le compteur ordinal CO ; si le
contenu de laccumulateur est gal 0, cette instruction ne fait rien.
STOP, code par 11111111 : cette instruction arrte le droulement du programme.
On rappelle que le droulement dun programme se fait de la manire suivante :
i. Charger le contenu du CO dans le RI
ii. Modifier le CO pour quil dsigne linstruction suivante
iii. Analyser et dcoder linstruction figurant dans le RI
iv. Localiser en mmoire dventuelles donnes ncessaires cette instruction
v. Excuter linstruction
vi. Reprendre ltape (a) si la dernire instruction excute est diffrente de
STOP.
(a) Dcrivez ltat de la mmoire RAM aprs le droulement du programme lorsque le
contenu du CO est gal 0000 et lorsque la mmoire RAM contient initialement
les valeurs suivantes.

1.2. LE MATRIEL : ARCHITECTURE DES ORDINATEURS


adresse
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
...

RAM
00000000
00111000
00001010
00101100
00001011
00101010
00001100
00101011
11111111
00000001
11110000
00001111
10101010
...

(b) Mme question si la premire ligne tait remplace par


0000|00000001.
(c) Mme question si en plus, la seconde ligne tait remplace par
0001|00110000.

17

18

CHAPITRE 1. PRINCIPES DES ORDINATEURS