ELE542 Systèmes ordinés en temps réel

Documents pareils
Architecture des ordinateurs

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

Logiciel de base. Première année ENSIMAG

Structure d un programme

Architecture des ordinateurs

Programmation assembleur : aperçu

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Exécution des instructions machine

Rappels d architecture

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

Conception de circuits numériques et architecture des ordinateurs

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

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

Département informatique de l université d Angers

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Désobfuscation automatique de binaire - The Barbarian Sublimation

Compilation (INF 564)

QUESTION 1 {2 points}

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Fonctionnement et performance des processeurs

4. Initiation à l'assembleur

Déprotection semi-automatique de binaire

Chapitre 4 : Les mémoires

CM2 L architecture MIPS32

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Architecture des Ordinateurs. Partie II:

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

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

Ordinateurs, Structure et Applications

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Introduction...6. Assembleur, philosophieet atouts...8. Avantages et inconvénients de l assembleur...9. Que programmer en Assembleur?.

Parallélisme et Répartition

Jeu d instructions NIOS II

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

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

AVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS

GlobalScape Secure FTP Server Buffer Overflow

Architecture des ordinateurs Introduction à l informatique

Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013

Cours n 12. Technologies WAN 2nd partie

Tout savoir sur le matériel informatique

PIC : COURS ASSEMBLEUR

Comprendre telock 0.98 et private versions.

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Les techniques de protection du logiciel

Cours de Systèmes d Exploitation

Conception des systèmes répartis

Initiation à la sécurité

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Initiation au HPC - Généralités

Transmissions série et parallèle

Architecture matérielle des systèmes informatiques

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Temps Réel. Jérôme Pouiller Septembre 2011

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Conférence sur les microcontroleurs.

Informatique Générale

Sanity Check. bgcolor mgcolor fgcolor

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

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

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

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

IV- Comment fonctionne un ordinateur?

Microprocesseur + Logiciel

Introduction à la Programmation Parallèle: MPI

Conventions d écriture et outils de mise au point

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Triton : Framework d exécution concolique et d analyses en runtime

Cours Informatique 1. Monsieur SADOUNI Salheddine

UE C avancé cours 1: introduction et révisions

Stratégies de défense et d attaque : le cas des consoles de jeux

THEMIS-ACCES GESTION DES TEMPS ET DES ACCES

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)


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

Le langage C. Séance n 4

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Playing with ptrace() for fun and profit

Vers du matériel libre

Câblage des réseaux WAN.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Guide Mémoire NETRAM

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

PIC 16F84. Philippe Hoppenot

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

IFT1215 Introduction aux systèmes informatiques

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

Transcription:

Département de génie électrique Professeur : Jean-Marc Beaulieu ELE542 Systèmes ordinés en temps réel Exercice du Chapitre 4 Aspects matériels Numéro 1 Révision Questions de révision Vrai ou faux a) Le coût est un facteur qui a très peu d importance dans la sélection d un processeur pour un système en temps réel. b) Le «principe de localité» dit que : lors de deux (2) accès successifs en mémoire, les valeurs des données lues sont proches l une de l autre. c) Pour évaluer la performance d un processeur, il est préférable d effectuer les tests avec un banc d essai utilisant notre application cible. d) Un des avantages des ordinateurs RISC est de produire des programmes exécutables qui occupent moins d espace mémoire. e) L architecture du Pentium III est une architecture CISC. f) Pour les processeurs avec arithmétique entière, les opérations avec des nombres réels sont moins longues parce qu elles sont effectuées à l extérieur du processeur. g) Le mode d adressage indirect demande quatre (4) cycles d accès mémoire. Numéro 2 Architecture La conception de processeurs à «N-adresses» avec N > 3 est improbable. Pourquoi? Numéro 3 Temps d exécution Vous concevez un système en temps réel qui exécute un programme de traitement de données de façon périodique. Après compilation de votre programme, vous faites une analyse statistique de la fréquence des instructions selon le type d instructions. Les résultats sont donnés dans le tableau suivant avec le nombre de cycles nécessaires pour chaque type d instructions : Type d instructions Fréquence Cycles par instruction Opérations ALU 43 % 1 Chargements (Load) 21 % 2 Enregistrements (Store) 12 % 2 Branchements 24 % 2 La fréquence d opération de votre processeur est de 500 MHz et votre programme comprend 10 000 instructions. a) Quelle est la valeur moyenne du nombre de cycles par instructions? b) Donnez une estimation du temps d exécution de votre programme. c) Vous recevez une nouvelle version de votre compilateur avec une fonction d optimisation améliorée. Cette optimisation élimine 50 % des instructions ALU sans modifier les autres parties du programme. Donnez une nouvelle estimation du temps d exécution de votre programme.

Numéro 4 Pipeline Nommez deux (2) difficultés posées par l architecture en pipeline pour le concepteur de systèmes en temps réel. Numéro 5 Pipeline Nous considérons deux (2) processeurs différents provenant de la même famille pour un système en temps réel. Le premier processeur ne possède pas de pipeline. Le temps d un cycle d opération est de dix (10) ns. Le nombre de cycles par instruction et la fréquence relative des instructions sont donnés dans la tableau suivant : Type d instructions Fréquence Cycles par instruction Opérations ALU 40 % 4 Opérations mémoire 20 % 5 Branchements 40 % 4 Le second processeur (plus cher) possède un pipeline suffisamment profond pour supporter la complétion d une instruction par cycle. Cependant, son cycle est plus long de 10 %, soit zone (11) ns. a) Quel est le temps d exécution moyen d une instruction dans les deux (2) cas? b) On définit l accélération provenant du pipeline comme le rapport des temps d exécution moyens par instruction. Dans ce cas, quelle est l accélération provenant du pipeline? Numéro 6 Mémoire Quelle sorte de circuits mémoire utiliseriez-vous pour sauvegarder les informations suivantes? a) Le programme d une enregistreuse vidéo (VCR) destinée au grand public. b) Le nom d une imprimante réseau qui doit être conservé même lorsqu il y a perte de courant. Note : L usager doit pouvoir modifier le nom. c) Le programme de la version Beta d une machine à rayon X que votre compagnie va expédier à plusieurs hôpitaux pour expérimentation. d) Un tampon de données reçues du réseau et en attente de traitement par votre programme. Numéro 7 Mémoire Discuter des avantages et des inconvénients reliés à l utilisation des techniques suivantes pour la réalisation des entrées/sorties : accès programmé, accès projeté en mémoire et accès direct en mémoire (DMA). Numéro 8 Mémoire Dans la plupart des systèmes ordinés, le contrôleur des accès directs en mémoire (DMA) a une priorité supérieure au processeur pour obtenir l accès à la mémoire et aux bus de communication. Pourquoi? Numéro 9 Mémoire Quelles sont les différences entre les mémoires volatiles, dynamiques et statiques? 2

Numéro 10 Mémoire Si le registre d adresses d une mémoire comporte 32 bits, calculer : a) Le nombre de mots adressables si 1 mot = 1 octet. b) La plus haute adresse possible pour ces mots de 1 octet. c) Le nombre de mots adressables si 1 mot = 32 bits. d) La plus haute adresse possible pour ces mots de 32 bits. Numéro 11 Mémoire Combien de bits sont nécessaires sur le bus d adresses pour accéder à une mémoire contenant : a) 4 096 espaces mémoire. b) 65 536 espaces mémoire. c) 16 777 216 espaces mémoire. Numéro 12 Mémoire Quel est le plus grand programme possible pour un microcontrôleur avec : a) 16 lignes d adresse. b) 20 lignes d adresse. c) 24 lignes d adresse. d) 32 lignes d adresse. Numéro 13 Bus Quelle est la plage d adresses accessible (en hexadécimal) et le nombre de lignes d adresse nécessaire pour utiliser une mémoire de 1 M octets? Numéro 14 Bus Qu est-ce qu un bus? Numéro 15 Interruption Est-ce que le processeur arrête immédiatement son travail (pour exécuter la fonction d interruption) lors de l interruption? Numéro 16 Interruption En général, est-ce que la fonction de traitement d une interruption peut être interrompue? Numéro 17 Interruption En quoi consiste la sauvegarde de l état de la machine? 3

Numéro 18 Comptage d instructions Une méthode pour estimer le temps d exécution d une partie de code est de compter le nombre d instructions. Considérer la fonction suivante : void test_code (int *b, int *a, int c) { int i; for (i = 0; i < 100; i++) { a[i] = b[i] + c ; } } À l aide du compilateur de Microsoft, vous trouvez la fonction en assembleur correspondante. Vous devriez obtenir un morceau de code similaire au suivant : _TEXT SEGMENT _b$ = 8 _a$ = 12 _c$ = 16 _test_code PROC NEAR ; Étiquette pour b[] ; Étiquette pour a[] ; Étiquette pour c[] ; COMDAT ; 3 : int i; ; 4 : for (i = 0; i < 100; i++) eax, DWORD PTR _a$[esp-4] ; Copie adresse de a dans EAX ecx, DWORD PTR _b$[esp-4] ; Copie adresse de b dans EBX push esi ; Mettre ESI sur la pile esi, DWORD PTR _c$[esp] ; Copie adresse de c dans ESI push edi ; Mettre EDI sur la pile sub ecx, eax : EAX ECX -> ECX edx, 100 ; 00000064H $L530: ; 5 : { ; 6 : a[i] = b[i] + c ; edi, DWORD PTR [ecx+eax] ; Adresse de b dans EBX (&a-&b+&a) add eax, 4 ; Addresse de a + 4 add edi, esi ; c + b dec edx DWORD PTR [eax-4], edi jne SHORT $L530 ; Branchement pop edi pop esi ; 7 : } ; 8 : } ret 0 _test_code ENDP _TEXT ENDS ;{ 4

a) Estimer le nombre d instructions nécessaire à chaque itération de la boucle et celui pour l exécution totale de la fonction. b) Estimer le temps d exécution (en cycles) de chaque itération de la boucle. Note : Le temps d exécution des instructions sont : MOV 1 cycle DEC 1 cycle ADD 1 cycle JNE avec saut = 3 cycles sans saut = 1 cycle c) Vous regardez maintenant la version compilée avec l option «Debug». Le code, qui suit, montre une section du code assembleur obtenu. Estimer le temps d exécution (en cycles) de chaque itération de la boucle. ; 3 : int i; ; 4 : for (i = 0; i < 100; i++) DWORD PTR _i$[ebp], 0 jmp SHORT $L473 $L474: eax, DWORD PTR _i$[ebp] add eax, 1 DWORD PTR _i$[ebp], eax $L473: cmp DWORD PTR _i$[ebp], 100 ; 00000064H jge SHORT $L475 ; 6 : a[i] = b[i] + c ; add ecx, DWORD PTR _i$[ebp] edx, DWORD PTR _b$[ebp] eax, DWORD PTR [edx+ecx*4] eax, DWORD PTR _c$[ebp] ecx, DWORD PTR _i$[ebp] edx, DWORD PTR _a$[ebp] DWORD PTR [edx+ecx*4], eax ; 7 : } jmp SHORT $L474 $L475: Numéro 19 Communication Quelle est la différence entre une transmission synchrone et une transmission asynchrone? 5

Numéro 20 Communication Parmi les affirmations suivantes, indiquer celles qui sont vraies et celles qui sont fausses. Justifier brièvement vos réponses. Dans une transmission asynchrone en mode caractère par caractère (exemple : communication du SCI) : a) L intervalle de temps entre deux (2) caractères est fixe. b) L intervalle de temps entre deux (2) bits d un même caractère est fixe. c) L émetteur et le récepteur doivent toujours être parfaitement synchronisés. d) Les bits sont transmis à la cadence d un cycle de l horloge par bit. e) Le débit est en général supérieur à celui que l on peut avoir dans une transmission synchrone. 6