Chapitre 1 AO
Chapitre 1 AO
Chapitre 1 AO
1. Introduction
L'informatique, contraction d'information et automatique, est la science du traitement de
l'information. Apparue au milieu du 20ème siècle, elle a connu une évolution extrêmement rapide. A sa
motivation initiale qui était de faciliter et d'accélérer le calcul, se sont ajoutées de nombreuses
fonctionnalités, comme l'automatisation, le contrôle et la commande de processus, la communication ou
le partage de l'information.
Le cours d’architecture des ordinateurs expose les principes de base du traitement programmé de
l’information.
2. Définitions
L’ordinateur est une machine électronique, qui traite l’information dans une unité centrale (UC,
ou CPU pour Central Processing Unit), selon un programme qui est enregistré en mémoire.
Les données fournies par un organe d’entrée (par exemple de type clavier) sont traitées par
l’unité centrale en fonction du programme pour délivrer les résultats en sortie, via un organe de
sortie (par exemple un écran).
Un système informatique est le système de traitement automatique de l’information. Il se
compose de deux parties :
La partie matérielle (Hardware) : l’ensemble des éléments physiques constituant la machine.
La partie logicielle (Software) : l’ensemble des logiciels (programmes).
Au début, les humains transformaient leurs problèmes en instructions compréhensibles
directement par la machine. Actuellement ces problèmes sont décrits dans des langages plus
proches du langage humain.
Architecture
Étude et description du fonctionnement des composants internes d’un ordinateur
Type et codage des informations manipulées
Dialogue entre les composants
Fonctionnement logique interne des composants
Le choix d'une architecture est toujours le résultat d'un compromis :
entre performances et coûts
entre efficacité et facilité de construction
entre performances d'ensemble et facilité de programmation
- etc …
3. Représentation des informations
Les informations traitées par un microprocesseur sont de différents types (nombres, instructions,
images, vidéo, etc…) mais elles sont toujours représentées sous un format binaire. Seul le codage
changera suivant les différents types de données à traiter. Elles sont représentées physiquement par 2
niveaux de tensions différents.
En binaire, une information élémentaire est appelé bit et ne peut prendre que deux valeurs
différentes : 0 ou 1.
Une information plus complexe sera codée sur plusieurs bits. On appelle cet ensemble un mot. Un
mot de 8 bits est appelé un octet.
La mémoire d’un ordinateur contient deux types d’information(les instructions et les données).
1
Informations
Données Instructions
4. Notion de Programme
Un programme est une suite d’instructions élémentaires, qui vont être exécutées dans l’ordre par
le processeur.
Ces instructions correspondent à des actions très simples, comme additionner deux nombres, lire
ou écrire une case mémoire, etc.
Le processeur est capable d’exécuter des programmes en langage machine.
Chaque type de processeur est capable d’exécuter un certain ensemble d’instructions, son jeu
d’instructions.
Il existe deux méthodes pour transformer un programme écrit dans le nouveau langage L2 en une
suite d'instructions dans le langage L1:
a) La compilation: Elle consiste à remplacer chaque instruction du programme L2 par la suite
d'instructions en L1 équivalente de façon à obtenir un nouveau programme écrit entièrement en L1
qui sera exécuté.
b) L’interprétation: Chaque instruction du programme L2 est examinée, et la séquence
d'instructions équivalente L1 est immédiatement exécutée.
L2 est plus proche du langage humain, mais pour que la traduction ou l’interprétation reste simple,
il faut que L2 et L1 ne soient pas trop différents.
Du fait que L2 reste peu pratique à utiliser, on peut définir un nouveau langage L3 composé
d’instructions plus proche de l’utilisateur final.
Les programmes écrits en L3 sont traduits ou interprétés en L2.
D’une manière ascendante, on peut définir une suite de langages Li, chacun plus pratique que son
prédécesseur jusqu'à obtenir un langage acceptable et plus proche du langage naturel humain.
2
5. Historique (évolution architecturale)
Calculettes
1946 ENIAC 1ère machine programmable
(Univ. Pensylvannie, 30m, programmable à la main)
1949 Machine programmable, modèle Von Neumann (programme stocké)
Machines à accumulateurs
1956 Machines à registres généraux
(Pegassus, IBM 701)
1963 Machines à pile
(B5000)
1964 IBM 360 Control Data CDC 6600
"Architecture des ordinateurs"
1970 architectures orientées logiciel micro-processeurs
Intel 4004, 8008
1978 VAX DEC
Architecture orthogonale
Instruction mémoire / mémoire
1 Architecture ---- 1 système d'exploitation
1980 IBM PC 8086, 8088 Motorola Macintosh Projets architectures RISC
Architecture ouverte 68000 IBM 801
MIPS Stanford
RISC Berkeley
1986 Commercialisation architectures RISC
SPARC SUN, 88000, DECstation 3200
1993 Architectures superscalaires + traitement parallèle de flots de données (vidéo, son, ...)
+ organisation mémoire
Intel Pentium, PowerPC, Ultra SPARC
2000 toujours plus de parallèlisme, exécution dans le désordre, prédiction des
branchements, DSP (Digital Signal Processor), multi- Processeur Pentium 4 : multi-
threading
2015 Processeurs dédiés (téléphonie mobile, reconnaissance et synthèse de la
parole,biomédical, ...), parallélisme de haut niveau, des mémoires plus grandes
économies d'énergies !
3
Les différents organes du système sont reliés par des voies de communication appelées bus.
Bus
- une mémoire morte ( ROM = Read Only Memory ) chargée de stocker le programme. C’est
une mémoire à lecture seule.
- une mémoire vive ( RAM = Random Access Memory ) chargée de stocker les données
intermédiaires ou les résultats de calculs. On peut lire ou écrire des données dedans, ces
données sont perdues à la mise hors tension.
Remarque :
Les disques durs, disquettes, CDROM, etc… sont des périphériques de stockage et sont considérés
comme des mémoires secondaires.
4
4.4 Les bus
Un bus est un ensemble de fils qui assure la transmission du même type d’information. On retrouve trois
types de bus véhiculant des informations en parallèle dans un système de traitement programmé de
l’information :
- un bus de données : bidirectionnel qui assure le transfert des informations entre le microprocesseur et
son environnement, et inversement. Son nombre de lignes est égal à la capacité de traitement du
microprocesseur.
- un bus d'adresses: unidirectionnel qui permet la sélection des informations à traiter dans un espace
mémoire (ou espace adressable) qui peut avoir 2 emplacements, avec n = nombre de conducteurs du bus
d'adresses.
- un bus de commande: constitué par quelques conducteurs qui assurent la synchronisation des flux
d'informations sur les bus des données et des adresses.
7. Décodage d’adresses
La multiplication des périphériques autour du microprocesseur oblige la présence d’un décodeur
d’adresse chargé d’aiguiller les données présentes sur le bus de données.
En effet, le microprocesseur peut communiquer avec les différentes mémoires et les différents boîtiers
d’interface. Ceux-ci sont tous reliés sur le même bus de données et afin d’éviter des conflits, un seul
composant doit être sélectionné à la fois.
Lorsqu’on réalise un système microprogrammé, on attribue donc à chaque périphérique une zone
d’adresse et une fonction « décodage d’adresse » est donc nécessaire afin de fournir les signaux de
sélection de chacun des composants.