RESPONSABLE : Pascal SICARD
INTERVENANTS : O. Richard, P. Sicard
INGÉNIEUR POLYTECH'GRENOBLE
Réseaux Informatique et Communication Mutimédia
3ème Année
TITRE DU COURS : Architectures Logicielles et Matérielles
. VOLUME : 10 Cours magistraux de 1h30, 3*8 Travaux
dirigés de 2h00, mise en pratique sur machines des TDs en libre
service
. PRÉREQUIS: notions élémentaires d'algorithmique
OBJECTIFS
Le cours présente les notions indispensables
à la compréhension du fonctionnement d'un ordinateur.
Cet enseignement permet aux futurs ingénieurs informaticiens
d'avoir un idée précise de l'architecture d'un ordinateur
et de l'exécution des programmes à l'aide de ses
composants matériels.
Ces notions permettent d'aborder sereinement des domaines tels que la
programmation en langage évolué, la compilation de ces
programmes, les systèmes d'exploitation d'un ordinateur, la
conception de circuits.
La première partie de cette enseignement présente d'une
part les composants électroniques élémentaires
permettant de comprendre l'architecture des processeurs et d'autre part
la programmation en langage machine et d'assemblage.
Il permet ainsi de comprendre précisément l'exécution d'instructions machines par le processeur.
Une deuxième partie (voir ALM2) aborde ensuite les
périphériques, les mécanismes
d'entrée/sortie du processeur, les interruptions
extérieures des programmes et les notions
élémentaires à la base des systèmes
d'exploitations.
Les notions abordés sont prises d'un point de vue de concepteur.
En travaux dirigés et pratiques les étudiants :
- décrivent des circuits à l'aide d'un
langage spécifique et vérifient leur fonctionnement par
des simulations,
- écrivent des programme en langage d'assemblage et comprennent leur exécution,
- comprennent des programmes en langage d'assemblage issu d'un compilateur.
CONTENU DU COURS :
Voici les notions matérielles et logicielles abordées,
elles sont étudiées en parallèle tout au long du
semestre.
Notions matérielles :
- Présentation de l'architecture
générale d'un ordinateur: composants fonctionnels
(processeur, mémoire, périphériques)
- Algèbre de Boole et fonctions
booléennes. Minimisation des fonctions booléennes
(tableaux de Karnaugh)
- Calculs de fonctions booléennes à
l'aide de composants électronique: les circuits combinatoires
- Circuits de calculs arithmétiques
- Composant élémentaire de mémorisation (bascule, registre, mémoires)
- Circuits séquentiels et synthèse d'automates finis
- Principe d'architectures de machine algorithmique:
- Architecture flot de donnée
- Architecture basée sur
une partie opérative et une partie de contrôle
- Architecture d'un processeur (registres, bus, unité arithmétique et
Notions logicielles :
- Représentation des nombres et
arithmétique entière (base 2, codage en complément
à 2)
- Notions d'instructions machine
- Langage d'assemblage et traduction en langage machine
- Gestion des variables (en mémoire, dans des registres…)
- Gestion de structures de donnée complexes (tableaux, structure…)
- Traduction des langages à structure de blocs en langage d'assemblage
- Les instructions conditionnelles
- Les appels de procédures
et fonctions (gestion des paramètres, notions de pile, de
contexte…)
D'un point de vue pratique:
- Etude et programmation en langage d'assemblage du
processeur ARM. Etude de la compilation d'un programme C en ARM.
- Description de circuits à l'aide du langage synchrone de systèmes réactifs Lustre.
BIBLIOGRAPHIE
1 LIVRES ET OUVRAGES
- Architectures Logicielles et Matérielles
Cours, études de cas et exercices corrigés
P. Amblard, JC. Fernandez, F. Lagnier, F. Maraninchi, P. Sicard, P. Waille
Editions DUNOD 2000
2 DOCUMENTS ÉLECTRONIQUES
- Notes de cours, exercices de TD et annales d'examens sont disponibles sur le site du cours
http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=88