Université Joseph Fourier Grenoble 1 ALM MIAGE1 Examen première session 2005 Durée : 2h00, tout document autorisé

Documents pareils
Licence Sciences et Technologies Examen janvier 2010

Conception de circuits numériques et architecture des ordinateurs

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Architecture des ordinateurs

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Cours Informatique 1. Monsieur SADOUNI Salheddine

Représentation d un entier en base b

GPA770 Microélectronique appliquée Exercices série A

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Architecture : Circuits numériques et éléments d architecture

Introduction au langage C

Architecture des ordinateurs

Rappels Entrées -Sorties

Compilation (INF 564)

Programmation assembleur : aperçu

Microprocesseur + Logiciel

ASR1 TD7 : Un microprocesseur RISC 16 bits

IFT1215 Introduction aux systèmes informatiques

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Codage d information. Codage d information : -Définition-

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Structure d un programme

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Architecture des ordinateurs Introduction à l informatique


IV- Comment fonctionne un ordinateur?

Jeu d instructions NIOS II

Rappels d architecture

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Conversion d un entier. Méthode par soustraction

CM2 L architecture MIPS32

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Chap III : Les tableaux

UE Programmation Impérative Licence 2ème Année

ELP 304 : Électronique Numérique. Cours 1 Introduction

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

ANALYSE TRAMEs LIAISON SERIE

Le codage informatique

TD 1 - Transmission en bande de passe

QUESTION 1 {2 points}

Bases de programmation. Cours 5. Structurer les données

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Algorithmique et Programmation, IMA

nom : Collège Ste Clotilde

Enseignement secondaire technique

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Qualité du logiciel: Méthodes de test

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Conception de circuits numériques et architecture des ordinateurs

Gestion de gros fichiers binaires (images) en APL*PLUS III

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

Programmation en langage C

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Ordinateurs, Structure et Applications

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

VIII- Circuits séquentiels. Mémoires

Manuel d'installation de GESLAB Client Lourd

Les structures de données. Rajae El Ouazzani

Cours d algorithmique pour la classe de 2nde

Initiation. àl algorithmique et à la programmation. en C

SYSTÈME DE SURVEILLANCE VIDÉO À DISTANCE

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Plan du cours. Historique du langage Nouveautés de Java 7

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Votre Réseau est-il prêt?

La solution à vos mesures de pression

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Le langage C. Séance n 4

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

COMMENT CREER VOS BANDES GRAND FORMAT?

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Cours 1 : La compilation

Mise en route de Cobian Backup

Java Licence Professionnelle CISII,

Logique séquentielle

Logiciel de Base. I. Représentation des nombres

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

V- Manipulations de nombres en binaire

Transmission d informations sur le réseau électrique

Télé-Procédure de Gestion d Incidents : Spécifications et Prototype.

MEMOIRES MAGNETIQUES A DISQUES RIGIDES

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Géométrie discrète Chapitre V

Programmation système I Les entrées/sorties

Résumé Génération de code Le code intermédiaire

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Sélection du contrôleur

Quatrième partie IV. Test. Test 15 février / 71

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Transcription:

Université Joseph Fourier Grenoble 1 ALM MIAGE1 Examen première session 2005 Durée : 2h00, tout document autorisé I. Représentation des informations (4 points) Des dessins carrés de 8 pixels de côté sont considérés comme des vecteurs linéaires de 8*8=64 pixels. Dans ce vecteur, chaque pixel ou groupe de pixels peut être codé selon 3 formats de codage possibles : Sans compression : chaque pixel est codé par 2 bits selon l intensité de la luminosité (blanc : 00 ; gris clair : 01 ; gris foncé : 10 ; noir : 11) Avec compression H (type codage adaptatif genre Hufmann) : chaque pixel est codé selon la couleur par un codé adaptatif obtenu dans le dictionnaire suivant (blanc : 0 ; gris clair : 10 ; gris foncé : 110 ; noir : 111) Avec compression R (type avec codage des répétitions) : chaque répétition de strictement plus de 2 pixels de même couleur est codé par 6 bits, le premier bit valant 1, les 3 bits suivant donnant le nombre de répétition du pixel diminué de 3, les deux derniers bits donnant l intensité de la couleur (blanc : 00 ; gris clair : 01 ; gris foncé : 10 ; noir : 11). Ainsi 111111 indique 10 pixels noirs, et 100000 indique 3 pixels blancs. Les pixels isolés ou en double sont codés pixel par pixel, chaque pixel est codé par 3 bits, le premier à 0, les deux suivants donnant l intensité de la couleur (blanc : 00 ; gris clair : 01 ; gris foncé : 10 ; noir : 11). Question I-1 : Donner pour chaque format la taille minimale et maximale d un fichier. Question II-2 : Donner la taille et les débuts des fichiers (les 4 premiers chiffres en hexadécimal, des deux premiers octets) du codage de l image figure 1, selon le mode de codage. Figure 1 : Un carré noir d un pixel de côté en haut à droite d un carré gris foncé de 2 pixels de côté en haut à droite d un carré gris clair de 4 pixels de côté en haut à droite d un carré blanc de 8 pixels de côté.

II. Langage machine (4 points) Un automate a été codé en C par : main() e=???; do printf("vous etes dans l'etat %d, donner votre entree ",e); scanf("%s",&c); printf("\n"); if (e==???) else else if (e==???) else else if (e==???) else else if (e==???) else while(e!=???); printf("fin \n"); return; La traduction en ARM de ce programme est donnée figure 2. Question II-1 : Simuler l exécution de cet automate à partir du code en ARM. L utilisateur fournit les réponses suivantes : 1, 0, 1, 1, 0, 2. En particulier donner l état de la mémoire et des registres à des moments significatifs de l exécution de l automate. Donner également les messages apparaissant à l écran. Question II-2 : Recopier et commenter une partie du code ARM représentant une transition de l automate. Si cela est possible, mettre en correspondance le code C. Question II-3 : Représenter l automate programmé figure 2 à l aide d un schéma.

.bss c.0:.space 1.align 2 e.1:.space 4.section.rodata.LC0:.ascii "Vous etes dans l'etat %d, donner votre entree \000".LC1:.ascii "%s\000".lc2:.ascii "/n\000".lc3:.ascii "fin /n\000".text main: mov ip, sp stmfd sp!, fp, ip, lr, pc sub fp, ip, #4.L2: ldr r3,.l29 ldr r0,.l29+4 ldr r1, [r3, #0] bl printf ldr r0,.l29+8 ldr r1,.l29+12 bl scanf ldr r0,.l29+16 bl printf ldr r3,.l29 cmp r3, #0 bne.l5 bne.l6.l6: bne.l8 mov r3, #1.L8:.L5: ldr r3,.l29 cmp r3, #1 bne.l11.l12: ldr bne.l12 r3,.l29+12 bne.l14 mov r3, #2.L14:.L11: ldr r3,.l29 cmp r3, #2 bne.l17 bne.l18.l18: bne.l20 mov r3, #3.L20:.L17: ldr r3,.l29 cmp r3, #3 bne.l4 bne.l24.l24: bne.l26.l26:.l4: ldr r3,.l29 cmn r3, #1 bne.l2 ldr r0,.l29+20 bl printf mov r0, r3 ldmea fp, fp, sp, pc.l30:.align 2.L29:.word e.1.word.lc0.word.lc1.word c.0.word.lc2.word.lc3.lfe1: Figure 2 : Un automate codé en ARM.

III. Automate de contrôle (6 points) Prenons une machine à une adresse avec accumulateur, extrêmement simple, comportant seulement 5 registres : PC pour l adresse de l instruction en cours (l adresse Pc+1 est disponible également, elle est calculée en permanence à partir de Pc), I pour l instruction en cours, A et D pour communiquer avec la mémoire (l accès à la mémoire se fait avec la commande «Lire» qui exécute D Mem[A]), et Acc un accumulateur en sortie d UAL. Cette machine possède le langage machine suivant : Mnémo Codage Interprétation LOAD #i 2 octets : 01 puis #i ACC MEM[P+1], PC PC + 2 JMP @ 2 octets : 04 puis @ PC MEM[PC+1] ADD #i 2 octets : 10 puis #i ACC ACC + MEM[PC+1], PC PC + 2 dont le graphe de contrôle est donné à la figure 3. Pc 0 A Pc Lire I D Pc Pc+1 A Pc Lire Pc Pc+1 I=LOAD I=ADD I=JMP Acc D Acc Acc+D Pc D Figure 3 : Graphe de contrôle No 1 Chaque ligne contenue dans un état du graphe de contrôle de la figure 3 représente un ensemble de commandes compatibles qui peut s exécuter en un seul cycle d horloge. Cette machine sera testée sur les deux programmes suivants : Prog1 : LOAD #0 Prog2 : JMP ETIQ1 ADD #1 ETIQ1 : JMP ETIQ2 ADD #2 ETIQ2 : JMP ETIQ3 ADD #3 ETIQ3 : JMP ETIQ4 ADD #4 ETIQ4 : JMP ETIQ5 ADD #5 ETIQ5 : JMP ETIQ6 ETIQ6 : Question III-1 : Donner le temps nécessaire pour exécuter les deux programmes de test. En déduire, pour chaque programme, le temps moyen nécessaire pour exécuter une instruction.

Question III-2 : Modifier le graphe de contrôle No 1 pour exécuter en parallèles les commandes indépendantes. Vous supposerez que l architecture de la partie opérative du microprocesseur permet un maximum de parallélisme. Vous noterez µ 1 µ 2 l exécution des deux commandes µ 1, µ 2 en parallèle. Donner le temps nécessaire pour exécuter les deux programmes de test avec ce nouveau graphe de contrôle No 2. En déduire, pour chaque programme, le temps moyen nécessaire pour exécuter une instruction pour le graphe de contrôle No 2. Pour améliorer les performances de la machine, les registres I, A et D sont dédoublés, et deux commandes «Lire» sont maintenant disponibles. La commande «Lire 1» effectue D 1 Mem[Ad 1 ]. La commande «Lire 2» effectue D 2 Mem[Ad 2 ]. Les valeurs A 1 +2 et Pc+3 sont également calculées en permanence. Ainsi, deux instructions I 1 et I 2 peuvent être exécutées quasiment en même temps, en pipe-line. Pour cette nouvelle machine, une partie du graphe de contrôle est donné figure 4. Pc 0 A 1 Pc Lire 1 Pc Pc+1 A 2 A 1 Lire 2 I 1 D 1 A 1 Pc I 1 =LOAD I 1 =JMP Lire 1 Pc Pc+3 A 2 A 1 +2 I 2 D 2 Lire 1 Pc D 1 A 1 D 1 I 2 =LOAD I 2 =JMP Lire 2 Acc D 1 A 1 Pc Lire 1 Acc D 2 A 2 A 1 +2 Pc Pc+1 Lire 2 Acc D 1 Pc D 2 A 1 D 2 Figure 4 : Graphe de contrôle No 3 (incomplet) Chaque ligne contenue dans un état du graphe de contrôle de la figure 4 représente un ensemble de commandes compatibles qui peut s exécuter en un seul cycle d horloge. Question III-3 : Compléter le graphe de contrôle No 3 où il manque le décodage des instructions d addition. Donner pour ce graphe complet le temps nécessaire pour exécuter les

deux programmes de test. En déduire, pour chaque programme, le temps moyen nécessaire pour exécuter une instruction. Question III-4 : Peut-on encore améliorer cette machine? Faire des propositions. Selon vous, y a-t-il une bonne raison pour que toutes les améliorations possibles ne permettent pas d obtenir un temps moyen nécessaire pour l exécution d une instruction inférieur à un cycle d horloge? IV. Circuit (6 points) Question IV-1 : Rappeler le schéma général d un circuit réalisant un automate de Mealy. Préciser les parties combinatoires et les parties séquentielles. Question IV-2 : Proposer un codage pour les différentes informations nécessaires à la réalisation de l automate donné figure 5. Question IV-3 : Réaliser les parties combinatoires du circuit, en suivant pour chacune les étapes suivantes, spécifications des fonctions réalisées sous forme de table de vérité ou de tableau de Karnaugh, écriture sous forme de formule logique, dessin du circuit. Question IV-4 : Donner le dessin du circuit complet. Remarque : la fin de la question IV-3 et la question IV-4 peuvent être rédigées en même temps. N! Erreur N, S, O! Erreur E! Ok E! Ok A B C O! Ok O! Ok N, S, E! Erreur S! Ok N! Ok D S, E, O! Erreur Figure 5 : Automate de Mealy simulant les déplacements (N : nord, S : sud ; E : est, O : ouest) d un robot dans un entrepôt constitué de 4 zones (A, B, C, D). Une transition, notée X, Y! Z, est une transition sur les entrées X, Y donnant la sortie Z. Question facultative : proposer 3 parties opératives différentes, une pour chaque graphe de contrôle de l exercice III., chacune améliorant la précédente, permettant d exécuter les graphes de contrôle de l exercice III. - le barème est donné à titre indicatif -