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

Dimension: px
Commencer à balayer dès la page:

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

Transcription

1 Systèmes temps réel et systèmes embarqués Architecture des ordinateurs Loïc Cuvillon Ecole Nationale Supérieure de Physique de Strasbourg 20 novembre 2013 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

2 Sommaire 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

3 Bibliographie Bibliographie Architecture : Architecture de l ordinateur, 5ème édition, Andrew Tanenbaum, Pearson education, par le créateur de l OS Minix Documentation technique : Intel Architecture Software Developer s Manuel ARM Architecture Reference Manual Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

4 Bibliographie Notation Little/Big Endian Petit/Gros boutiste (étymologie : voyage de Gulliver) exemple : la valeur 433=0x01B1 nécessitant 2 octets en mémoire Big endian : most significant bit (MSB : 01h) en premier Little Endian : lest significant bit (LSB : B1h) en premier Little-Endian (x86,arm) adresse mémoire B1 01 Big-Endian (powerpc,arm,mips) adresse mémoire B1 Protocole IP : big endian (pour tous, interopérabilité) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

5 Plan Processeur 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

6 Processeur Architecture ARM : principes Architecture ARM (Advance RISC Machine) processeur RISC 32 bit Reduced Instruction Set Computer ; instr. de taille fixe (32bits) architecture load and store (opération arithmétique réalisable uniquement entre registres) avantages : architecture épurée et fréquence d exécution rapide inconvénient : programme plus long (2x) que le même en CISC populaire dans l embarqué : lego mindstorm, nintendo DS ; apple ipod,iphone (consommation électrique) la société ARM ne fabrique pas de processeurs mais les dessine! vend des licences et ses dessins à des fondeurs perçoit des royalties sur les processeurs vendus Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

7 Processeur Architecture ARM : principes L architecture externe du ARM bus d adresses 32 bits : 4Go de RAM possible ; bus de données (+ instruction : Archi. Van Neumann) 2 lignes d interruptions ; nreset : réinitialisation ; nrw : sélection écriture/lecture Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

8 Processeur Architecture ARM : principes Fonction d un processeur (Central Processing Unit) Execution séquentielle d instructions au travers d un pipeline Fetch Instruction Decode Execute Etapes du pipeline ARM7 Fetch : Récupérer le code de l instruction à exécuter Decode : Décode instruction et registres à utiliser (préparation des chemins de données) Execute : Exécution instruction lecture registres ; opération ; écriture résultat registre ; Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

9 Processeur Architecture ARM : principes Architecture Interne d un processeur Single Core CPU R1 R2 Address bus Data bus Memory Registres : stockage de mots (16, 32, 64 bits suivant architecture) C A R3 PC IR ALU B Bus source selection Decode ALU operation mode and Control Unit ALU : Unité Arithmétique et Logique ; +,-,*,/,ET,OU,XOR, décalage,... Unité de décodage et commande : génération signaux de commande (opération ALU, routage des bus A,B et C). Bus mémoire : Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

10 Processeur Architecture ARM : principes Architecture Interne d un processeur Single Core CPU Registres C A R1 R2 R3 PC IR ALU B Address bus Bus source selection ALU operation mode Data bus Decode and Control Unit Memory PC (R15) : Programme Counter adresse de l instruction en cours ; incrémenté par le CPU ; (ou IP, instruction pointer) IR : mot de l instruction en cours R1,R2,R3.. R14 : registres à usages généraux CPSR : current program status register (flags sur résultat inst. : Zero, Negatif) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

11 Processeur Architecture ARM : principes ISA : Instruction Set Architecture Jeu d instructions d un CPU Langage machine langage natif du processeur définit par les concepteurs seul et unique pour un processeur un code binaire l Assembleur (Assembly language) : représentation symbolique du langage machine usage de mnémoniques pour faciliter la vie du programmeur non-portable ( langage haut-niveau (C,java)) (Saut d adresse : B(L) chez ARM et JMP chez INTEL ) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

12 Processeur Architecture ARM : principes ISA : Instruction Set Architecture Instruction d addition sur processeur ARM doc technique : ADD Rd Rn Rm Rd=Rn+Rm (Rd : registre destination) c o n d Rn Rd shift Rm Assembleur : ADD R3 R2 R3 > Langage machine :0xE (cond=1110 signifie toujours exécuter ) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

13 Processeur Architecture ARM : principes Illustration : Réalisation d une addition PC initialisé à 100 initialisation par un autre programme (ou reset du CPU) Single Core CPU R1 R2 R3 Address bus Data bus Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 PC IR 0x100 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

14 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Fetch de l instruction par l IFU (Instruction Fetch Unit) adresse de l instruction donnée par le PC Single Core CPU R1 R2 R3 PC 0x100 IR LDR R2, 0x200 0x100 Address bus LDR R2, 0x200 Data bus R Read/Write Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

15 Processeur Architecture ARM : principes Illustration : Réalisation d une addition fin du Fetch : code de l instruction à exécuter dans IR Décodage et préparation du chemin de données Single Core CPU R1 R2 R3 PC 0x100 IR LDR R2,0x200 Address bus Data bus Read/Write Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

16 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Exécution de l instruction LDR LDR : load dans le registre Rx une donnée référencée ou une #constante Single Core CPU Memory R1 R2 0x0005 0x200 Address bus 0x0005 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 Data bus PC 0x100 IR LDR R2,0x200 R Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

17 Processeur Architecture ARM : principes Illustration : Réalisation d une addition fin de l instruction Incrémentation du PC de 0x004 : pointe sur instruction suivante Single Core CPU Memory 0x100 : LDR R2, 0x200 R1 R2 0x0005 Address bus 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 Data bus PC 0x104 LDR IR R2,0x200 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

18 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Fetch de l instruction suivante écrase le contenu de l IR Single Core CPU Memory R1 R2 0x0005 0x104 Address bus LDR R3, #2 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 Data bus PC 0x104 IRLDR R3, #2 R Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

19 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Décode et Exécute l instruction LDR : load dans le registre Rx une donnée référencée ou une #constante Single Core CPU Memory 0x100 : LDR R2, 0x200 R1 R2 0x0005 Address bus 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 0x0002 Data bus PC 0x104 IRLDR R3, #2 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

20 Processeur Architecture ARM : principes Illustration : Réalisation d une addition fin de l instruction : Incrémente de 0x004 le PC Fetch de l instruction suivante Single Core CPU Memory R1 R2 0x0005 0x108 Address bus ADD R3, R2, R3 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 0x0002 Data bus PC 0x108 IR ADD R3,R2,R3 R Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

21 Processeur Architecture ARM : principes Illustration : Réalisation d une addition exécution de l instruction ADD Rdest,Ra,Rb : addition Rdest<=Rb+Ra Single Core CPU Memory 0x100 : LDR R2, 0x200 R1 R2 0x0005 Address bus 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 R3 0x000 7 Data bus PC 0x108 IR ADD R3,R2,R3 Read/Write 0x200 : 0x0005 0x204 : 0x???? 0x05 ALU 0x02 + Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

22 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Fin instruction : incrémente le PC Fetch instruction suivante Single Core CPU Memory R1 R2 R3 0x0005 0x0007 0x10C Address bus STR R3,0x204 Data bus 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 PC 0x10C STR IR R3,0x204 Read/Write 0x200 : 0x0005 0x204 : 0x???? ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

23 Processeur Architecture ARM : principes Illustration : Réalisation d une addition Exécution de l instruction STR Rd Add : sauve contenu de Rd à l adresse Add Single Core CPU Memory R1 R2 R3 0x0005 0x0007 0x204 Address bus 0x0007 Data bus 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 PC 0x10C STR IR R3,0x204 W Read/Write 0x200 : 0x0005 0x204 : 0x0007 ALU Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

24 Processeur Architecture ARM : principes Le pipeline d exécution exécution en parallèle d 1 Fetch, 1 Décode et 1 Exécution accélération du débit d exécution : 1 exécution d instruction/cycle (alors que le traitement d une instruction : 3 cycles) Fetch de l instruction pointée par PC+08 pendant exécution de PC R1 R2 R3 Address bus Data bus PC LDR R2, #6 PC Bus source selection (Inst.addr: PC 0x08) A R3 IR B R1 Decode and Control Unit ADD R3, R3, R1 ADD R2, R2, R1 LDR R2, #6 Fetch Decode Fetch Execute Decode Fetch Execute Decode Execute C ALU ALU operation mode (Inst.addr: PC) temps 1 cycle 1 cycle 1 cycle Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

25 Processeur Architecture Intel et Assembleur x86 Intel 8086 le 8086 processeur 16 bits, 8MHz, total de 16 registres registres de 16 bits = 64Ko de mémoire (2 16 adresses codées) mais bus d adresse de 2 20 bits = 1Mo (2 20 adresses) accès complexe au 1Mo de mémoire : un registre segment de 16bits offset : l adresse mémoire sur 16bits adresse finale= segment x16 + offset son dérivé le 8088, coeur de l IBM PC! (1981) 8086 ( $) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

26 80286 (i286) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93 Intel Pentium Processeur Architecture Intel et Assembleur x86 ix86 : 386, 486, Pentium (586) Démarrage en Mode réel : Emulation du 8086 (compatibilité) 1 Mo uniquement accessible! Mode protégé (activé par le bit Protection Enable dans le registre CR0) : Mémoire virtuelle pagination, protection mémoire Mécanisme pour le multitâche Niveau de privilèges d exécution (4) Noyau (Toute Instruction permise) User (Instruction I/O (entrées-sorties) indisponibles )

27 Intel Pentium Processeur Architecture Intel et Assembleur x86 Registres du x86 EAX CS Code Segment EBX ECX General registers DS SS Data Segment Stack Segment EDX EIP Instruction pointer EFLAGS Status EBP Stack Base pointer ESP Stack pointer EAX AX AH AL CR3 Control 3 (page directory adress) : memory management Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

28 Processeur Architecture Intel et Assembleur x86 La Pile d exécution (stack) sur intel x86 Espace mémoire croissant vers des adresses inférieures %esp : stack pointer (SP), pointeur permanent sur le sommet de la pile push %eax : pose contenu de EAX sur la pile pop %eax : retire le sommet de la pile dans EAX push %eax #%eax=0x19 initial State after PUSH %ax after POP %ax movl $0xF17, %eax Adresse 0x000 0x000 0x000 pop %eax #%eax=0x19 0x?????? SP 0x x SP 0xFFFFF0 0x0F4 0xFFFFF0 0x0F4 SP 0xFFFFF0 0x0F4 0x00B471 0x0F8 0x00B471 0x0F8 0x00B471 0x0F8 0xA5063C 0x0FC 0xA5063C 0x0FC 0xA5063C 0x0FC un usage du stack : sauvegarde et restauration de %eax variable automatique et locale du langage c. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

29 Plan Exceptions et Interruptions 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

30 Exceptions et Interruptions Définition Exceptions (et Interruptions) Définition d une exception arrêt temporaire du flux normal d instructions pour répondre à un événement exceptionnel ou externe Exception synchrone ( Exception ) : résultat d une instruction exécutée par le processeur générant une erreur arithmétique : division par 0, débordement (overflow) mémoire : erreur d alignement, mémoire insuffisante, erreur manipulation pointeur appel système (LINUX) : par l instruction INT 0x80, une application requiert un service de l OS. Exception asynchrone ( Interruption ) : associée à un événement issu d un périphérique timers : expiration d un timer ou un tick (période) d horloge système autres périphériques : touche clavier, clic souris, paquet ethernet,... Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

31 Exceptions et Interruptions Définition Interruption Interruption matérielle interruption : un signal sur la broche (INT) du CPU déclenchant l exécution d une routine en réponse (ISR : Interrupt Service Routine) économie pour le CPU du temps de scrutation des périphériques Scrutation périodique par le CPU de l état du périphèrique CPU CPU INT RAM I/O (1) controleur RAM PIC I/O (1) INT 1 controleur I/O (2) controleur I/O (2) INT 2 controleur Entrée Sortie programmée avec attente de disponibilité Entrée Sortie programmée avec interruption Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

32 Exceptions et Interruptions Définition Interruption Exemple : Clavier si une touche est enfoncée ou relâchée le contrôleur du clavier : écrit dans un de ses registres le code de la touche génère une interruption le CPU notifié arrête le processus en cours et exécute une routine d interruption qui consiste à venir lire la valeur de la touche dans le registre Voir exemple Linux xenomai ultérieurement. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

33 Exceptions et Interruptions Contrôleur d interruptions et traitement Contrôleur d interruptions Gestion des interruptions plusieurs périphériques et interruptions (éventuellement simultanées) le CPU ne peut exécuter qu un ISR à la fois problème de concurrence solution : un contrôleur d interruption priorités pour les interruptions (arbitrage de la concurrence) interruption présentée une à la fois au CPU masquer les interruptions non-prioritaires mais les mémoriser (buffer) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

34 Exceptions et Interruptions Contrôleur d interruptions Contrôleur d interruptions et traitement Un contrôleur programmable d interruptions (PIC) : le 8259 utilisé par le PC IBM et ses successeurs, peut être mis en cascade priorité par ordre décroissant (0(+prioritaire),2,,7(-)) 3 registres : 1 contenant l interruption actuellement traitée par le CPU 1 contenant les interruptions pas encore traitées (de priorité inférieure) 1 contenant les interruptions à masquer (celle dont le CPU ne veut pas) CPU INT INTA RD WR A0 CS D0-D7 8259A Interrupt controller IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Clock Keyboard Disk Printer +5 v Source : Architecture des ordinateurs, Tanenbaum Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

35 Exceptions et Interruptions Contrôleur d interruptions et traitement Vecteur d interruption 1 exception = 1 routine ISR à une adresse mémoire donnée (cette adresse est appellée le vecteur d interruption) le numéro d exception/interruption sert d indice dans la table des vecteurs d interruption pour trouver l adresse mémoire où se trouve l ISR Exemple sur architecture i386 un registre du processeur IDTR (INT Descriptor Table Register) stocke en permanence l adresse en mémoire de la table des vecteurs d interruption Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

36 Exceptions et Interruptions Contrôleur d interruptions et traitement Exception et interruption Traitement complet 1 sauvegarde du contexte,l état actuel du processeur ; (souvent, dans la pile d exécution de la tache en cours) 2 chargement du vecteur d interruption (adresse ISR) dans le registre PC 3 exécution de l ISR 4 recharger contexte antérieur (état du processeur avant INT) 5 reprise exécution du programme traitement rapide, changement de contexte minimal effectué par le matériel Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

37 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement interruption la plus élevée présentée sur broche INT du CPU le traitement d une exception synchrone est similaire Single Core CPU Memory R1, R2,. PC 0x108 IR LDR R3,#2 IDTR 0xFF00 SP 0x404 Address bus Data bus INT PIC 4 4 Périph. 7 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 ALU Table des vecteurs d int 0xFF00: 0x844 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

38 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement PC du processus interrompu poussé sur la pile par le matériel adresse de sommet de la pile stockée dans registre SP Single Core CPU R1, R2,. PC 0x108 IR LDR R3,#2 IDTR 0xFF00 SP 0x40 8 SP+0x04: 0x408 Address bus PC: 0x108 Data bus INT PIC 4 Périph. 7 4 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU Table des vecteurs d int 0xFF00: 0x844 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

39 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement table des vecteurs d int. stockée à l adresse contenue dans IDTR cherche dans la table, l entrée du numéro d INT (4) Single Core CPU R1, R2,. PC 0x108 IR LDR R3,#2 IDTR 0xFF00 SP 0x40 8 IDTR+(0x4)* 4 0xFF10 Address bus Data bus INT PIC 4 Périph. 7 4 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

40 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement l entrée contient le vecteur d int. (adresse du gestionnaire de l int.(isr)) PC <= vecteur d interruption Single Core CPU R1, R2,. PC 0x108 0x64C IR LDR R3,#2 IDTR 0xFF00 SP 0x40 8 Address bus INT 4 Data bus 0xFF10 0x64C PIC le vecteur d INT: adresse de l ISR 4 Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU 0x64C: PUSH R1 0x670: IRET Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C (asm x86) N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

41 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement exécution de l ISR (l instruction pointée par PC) Single Core CPU R1, R2,. PC 0x64C IR PUSH R1 IDTR 0xFF00 SP 0x40 8 0x64C Address bus PUSH R1 Data bus INT 4 PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) (pile utilisable par ISR) ALU 0x64C: PUSH R1 0x670: IRET Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C (asm x86) ISR code N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

42 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement dans l ISR, accès au périphérique pour lever l INT ISR se finit par l instruction IRET (x86) Single Core CPU R1, R2,. PC 0x670 IR IRET IDTR 0xFF00 SP 0x40 8 Address bus IRET Data bus INT PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU 0x64C: PUSH R1 (asm x86) 0x670: IRET ISR code Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

43 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement IRET : reprendre le processus initial (PC<= valeur avant l int.) le PC initial en mémoire au sommet de la pile (adresse contenu dans SP) Single Core CPU R1, R2,. PC 0x108 IR IRET IDTR 0xFF00 SP 0x408 0x408 Address bus 0x108 (PC) Data bus INT PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 (PC) ALU 0x64C: PUSH R1 (asm x86) 0x670: IRET ISR code Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

44 Exceptions et Interruptions Traitement de l interruption Contrôleur d interruptions et traitement SP pointe vers le nouveau sommet de la pile le processus peut reprendre (mais il reste l int 7 à traiter) Single Core CPU R1, R2,. PC 0x108 IR IRET IDTR 0xFF00 SP 0x40 4 0x108? Address bus Data bus INT PIC Périph. 7 Memory 0x100 : LDR R2, 0x200 0x104 : LDR R3, #2 0x108 : ADD R3, R2, R3 0x10C : STR R3, 0x204 0x200 : 0x0005 0x204 : Pile du processus en cours 0x400: 0x0003 0x404: 0x040 0x408: 0x108 ALU 0x64C: PUSH R1 (asm x86) 0x670: IRET ISR code Table des vecteurs d int 0xFF00: 0x844 0xFF10: 0x64C N o Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

45 Plan Du source à l exécutable 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

46 Du source à l exécutable Le format ELF Le processus : compilation de son programme/code La compilation C via GCC GCC : un préprocesseur (cpp) : suppression des commentaires, expansion des macros (.i) un compilateur (cc1) : traduction vers assembleur (.s) un assembleur (as) : traduction assembleur (.s) > objet.o (binaire machine) options possibles : - I[/chemin/vers/include] -L[/chemin/vers/bibliothèsque] -l[bibliothèque] (-g pour debug) un éditeur de lien : ld localise les symboles (fonctions, variables globales) dans les bibliothèques et objets reloge les symboles dans un même fichier mise sous un format exécutable en mémoire Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

47 Du source à l exécutable Le format ELF la création d un exécutable : la compilation sous Linux 1 gcc -E source.c -o source.i oucpp source.c -o source.i 2 gcc -S source.i -o source.s 3 gcc -c source.s -o source.o ouas source.s -o source.o 4 ld -lc -[runtime C librairies,] source.o -o source ougcc source.o -o source source assembleur objet (language machine) gcc E gcc S gcc c.c.i.s.o cpp cc1 as ld lc l[c runtime] lm ljpg libjpeg.a libm.a libc.a gcc lm ljpg executable (ELF) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

48 Du source à l exécutable Le format ELF le format ELF ELF (Executable and Linking Format) conteneur des fichiers objets, exécutables et bibliothèques. utilisé par Linux, Wii, PS3, l entête ELF : la localisation dans le fichier de la table des sections l adresse de la fonction start (si un exécutable) la table des sections : donne la position dans le fichier ELF des diverses sections (.text (code),.data,.symbols, ) la table de programme : indique où charger en mémoire les sections ELF Header Programm Header Table.text.rodata (other sections).data Section Header Table Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

49 Du source à l exécutable le format ELF et relocation Le format ELF utilitaires du format elf objdump [option] [file] -f : affiche l entête ELF du fichier -h : affiche la table des sections -t : affiche la table des symboles -r : affiche la table de relogement -d : désassemble le code de la section.text -D : désassemble toute les sections nm [file] liste les symboles du fichier et leur état (Undefined, Text(fonction définie), Data définie) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

50 Du source à l exécutable Le format ELF les différents fichiers objets Fichier objet relogeable :.o 1 table de symboles : noms des fonctions et variables globales Si le symbole est défini, l offset à partir du début de la section où se trouve sa définition (code pour une fonction, valeur pour une variable). 1 table de relogement : offsets où apparaissent chaque symbole non défini dans le fichier un fichier adapté au relogement : permet de remplacer rapidement les endroits où les symboles non définis aparaissent par leur définition quand celle-ci est connue (édition de lien avec un autre.o ou une bibliothèque). Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

51 Du source à l exécutable Fichier objet relogeable.o Le format ELF gcc -c hello.s -o hello.o etobjdump -t -r -D hello.o hello.c extern int a; void main() { printf("hello world %i!",a); } hello.o Disassembly of section.text: <main>: 0: 55 push %epb 1:. 9: a mov?, %eax e:. 10=0x0a 19: e8 fc ff ff ff call 1a <main+0x1a> SYMBOL TABLE: Offset section name g.text main *UND* a *UND* printf Undefined RELOCATION RECORDS FOR [.text]: OFFSET TYPE a a R_386_32 R_386_PC32 VALUE a printf Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

52 Du source à l exécutable Fichier objet relogeable.o Le format ELF gcc -c def.c -o def.o etobjdump -t -r -D def.o def.c int a=0xaa; def.o Disassembly of section.data: 0:aa SYMBOL TABLE: RELOCATION RECORDS: empty g.data a Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

53 Du source à l exécutable Le format ELF Edition de lien et affectation d adresse mémoire gcc hello.o def.o -o hello : fusion sections text, data et affectation d une adresse mémoire finale aux symboles pour exécution hello.o def.o hello Disassembly of section.text: <start_>: : 31 ed xor %ebp,%ebp : c <main>: c: 55 push %ebp d: : a1 20 a mov 0x804a020,%eax a: : e8 b6 fe ff ff call a: via un offset) Disassembly of section.data: 804a020: aa <a> SYMBOL TABLE : (optional, can be removed with cmd strip) NO RELOCATION RECORDS ELF HEADER: start address 0x Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

54 Du source à l exécutable L exécutable : Exécution Le format ELF Chargement : loader (execv après fork (Linux)) (1) copie le code de l exécutable aux adresses définies à la compilation (2) exécution par copie de l adresse d entrée dans le registre PC Single Core CPU EAX EBX ECX PC 0x Main Memory (RAM) F2 71 mov 0x804908c, %eax jne 0x45DE804 aa x x (2) (1) (1) 0x804908c 0xFFF0000 "loader" Secondary Memory (Hard Disk 0x Programm Header section memory addr.text.data mov 0x804908c, %eax aa /prog ELF Header 0x x804908c.text.data./toto.txt./011.mp3 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

55 Du source à l exécutable Les bibliothèques Les bibliothèques bibliothèque statique.a code de la librairie copié dans l exécutable exécutable sans dépendance lourde empreinte disque et mémoire bibliothèque dynamique.so édition de liens à l exécution pas de duplication de code empreinte mémoire légère dépendance : bibliothèque installée? Hello world! avec la lib C gcc static hello.c -o hello ls -l hello : 564 Ko gcchello.c -o hello ls -l hello : 7 Ko ldd./hello : (liste dépendances) libc.so.6 ld-linux.so.2 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

56 Du source à l exécutable Les bibliothèques Les bibliothèques dynamiques et statiques bibliothèques statiques.a bibliothèques dynamiques.so add.o printf.o fopen.o libc.a add.o printf.o fopen.o libc.so source.o source2.o source.o linker source2.o linker linker main: x x printf: x x x add: x x linker main: x x printf: x x Executables main: x partially linked executables main: x x (en mémoire) x add: x libc.so x printf.o printf: printf: fopen.o loader (execv) loader (execv) dynamic linker (ld linux.so) dynamic linker full executable in memory Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

57 Du source à l exécutable Les bibliothèques Création d une librairie statique bibliothèque statique.a une archive.a contenant un ensemble de.o création d une bibliothèque nommée_ma_bibliotec : ar -q lib_ma_bibliotec.a objet1.o objet2.o lib doit être ajouté devant le nom de la bibliothèque. compilation avec la bibliothèque préciser le nom de la bibliothèque sans le lib avec l option-l préciser son chemin relatif-l./ ou absolu-l/ example pour une bibliothèque dans le répertoire courant : gcc [sources.c,.o] -l_ma_bibliotheque -L. -o [exe] Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

58 Du source à l exécutable Les bibliothèques Création d une librairie dynamique Création en 2 étapes Créer des fichiers objets dont le code est indépendant de la position en mémoire (-fpic) : gcc -fpic.c -o.o création d une bibliothèque nommée_ma_bibliotec à partir des.o : gcc -shared -o libma_bibliotec.so [*.o] Installation de la bibliothèque partagée Les répertoires où le linker dynamique (ld) recherchent ces bibliothèques sont définis, à définir dans les fichiers de configuration /etc/ld.so.conf ou/etc/ld.so.conf.d/ En général :/usr/locla/lib,/lib la commandeldconfig doit ensuite être exécutée pour mettre à jour la liste des bibliothèques connues à partir des répertoires définis dans les fichiers de configuration. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

59 Du source à l exécutable Les bibliothèques Création d une librairie dynamique Usage de la bibliothèque partagée préciser le nom de la bibliothèque sans le lib avec l option-l : gcc test.c -lma_bibliotec -o test à l exécution, la bibliothèque est chargée à partir de son répertoire d installation (exemple :/usr/lpcal/lib) Utilitaires ldd : liste les librairies dynamique nécessaires à un exécutable nm : liste les symboles définis dans le bibliothèque ldconfig : met à jour le cache des librairies connues parld à partir des répertoires définis dans/etc/ld.so.conf ldconfig -p affiche la liste des bibliothèques connues. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

60 Du source à l exécutable Les bibliothèques Exercice1 1 Créer les fichiershello.c etdef.c précédemment introduit. 2 Faire dedef.c une bibliothèque statique et compilerhello.c en la liant avec votre bibliothéque statique. 3 Faire de même mais avec une bibliothèque dynamique. On utilisera la commandesudo -s pour passer utilisateur root et installer la bibliothèque dans un répertoire adéquat. (Attention à ne pas ecraser une bibliothèque existante.) Exercice2 1 Déterminer si la commandels (/bin/ls) nécessite des librairies dynamiques 2 La librairiepthread, listée et permettant de faire de la programmation de tâches concurrantes (à venir), permet elle de faire appel à la fonction pthread_create()? Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

61 Plan Gestion de la mémoire (pagination) 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

62 Gestion de la mémoire (pagination) Problématique d un système multi-tâche Des processus/une mémoire : Et si la place est déjà occupée? or le code est dépendant de sa position en mémoire (adresses absolues des données) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 Main Memory (RAM) 08 4F E1 C5 4F 23 A3 00 movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax compl %edx, $0 jne 0x08 movl $1, %eax movl $2, %ebx subs %eax, %edx? Secondary Memory (Hard Disk Drive)./prog ELF 0x Programm Header section memory addr.text.data 0e x18 0x30 movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax.text 0x3F./program2./program3 Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93.data

63 Gestion de la mémoire (pagination) Gestion de la mémoire Problématique de la réallocation dynamique comment positionner dynamiquement les processus en mémoire sans modifier TOUTES les adresses dans le code? (opération trop coûteuse) 2 solutions possibles utilisant une translation d adresse : la segmentation la pagination Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

64 Gestion de la mémoire (pagination) La pagination :Principe 1 1 table de correspondance entre : adresse logique du Code/Data dans l executable ELF adresse physique où il est effectivement en mémoire Processus Mémoire Logique/Virtuelle 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax 0e x00 Memoire Physique (RAM) 0x00 0x08 Processus A 0x08 0x10 movl 0x30, %eax 0x0C movl $0x32, %ebx 0x10 0x14 0x18 Processus B 0x18 0x10 0x1C 0x14 0x20 addl (%ebx), %eax 0x20 0x20 0x24 0x28 0x28 Processus B 0x2C 0x30 0x30 0x38 0x34 0x3C 0x38 0e x38 0x3C x3F 0x3C Chargmement du programme et céation table correspondance Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

65 Gestion de la mémoire (pagination) La pagination : Principe 1 Translation d adresse pour toute lecture/ecriture d un code/donnée (Exemple : Fetch de la première instruction Memoire Physique (RAM) EAX EAX ECX PC 0x18 0x18 0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x24 0x28 0x2C 0x10 0x14 0x20 0x10 0x00 0x08 0x10 0x18 0x20 0x28 Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus A 0x30 0x34 0x38 0x3C 0x38 0x3C 0x30 0x38 0x3C Processus B 0e x3F Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

66 Gestion de la mémoire (pagination) La pagination : Principe 1 Translation d adresse pour toute lecture/ecriture d un code/donnée (Exemple : lecture d Memoire Physique (RAM) EAX EAX movl 0x30,%eax PC 0x18 0x30 0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x24 0x28 0x2C 0x10 0x14 0x20 0x38 Read 0x00 0x08 0x10 0x18 0x20 0x28 Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus A 0x30 0x34 0x38 0x3C 0x38 0x3C 0x30 0x38 0x3C Processus B 0e x3F Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

67 La pagination Gestion de la mémoire (pagination) Déplacement de code/donnée en mémoire physique 1 déplacement et mise-à-jour table EAX EAX 0x00 0x04 0x08 0x0C 0x10 0x14 0x18 0x1C 0x20 0x24 0x28 0x2C 0x10 0x14 0x20 0x38 0x3C 0x08 0x0C Read 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Memoire Physique (RAM) Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus A Processus B 0x34 0x38 0x38 0e x3C 0x3C x3F Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

68 Gestion de la mémoire (pagination) La pagination Avantage une donnée déplacée = une ligne de la table à modifier. beaucoup plus efficace qu une approche consistant à modifier dans le code toutes faisant réfèrence à la donnée Inconvéniant la table de correspondance aussi grande que la mémoire physique RAM! (si une adresse=32bits) gestion lourde de la mémoire Solution Déplacement du code/donnée par paquet de 2, 4, ou 2 n plutot qu individuellement Table de correspondance du paquet Taille de la Table divisée par 2, 4 ou 2 n, gestion plus légère Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

69 Gestion de la mémoire (pagination) La pagination Table de pages blocs (ici de tailles 2 3 octets) sont appellés pages Processus Mémoire Logique/Virtuelle 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax 0e Numéro de page Table des pages Page virtuelle Page physique Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C Processus A movl 0x30, %eax movl $0x32, %ebx Processus B addl (%ebx), %eax Processus B 0e Numéro de page Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

70 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle Possible de ne charger que le début du programme si manque de place On indique dans la table que la page n est pas chargée avec un bit supplémentaire à 0 Processus Mémoire Logique/Virtuelle 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax 0e Numéro de page Table des pages Page virtuelle Page physique :page présente 0:page absente Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 0x38 0x3C Processus A Processus A movl 0x30, %eax movl $0x32, %ebx Processus B Processus A Processus B Processus B 0e Numéro de page Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

71 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle : besoin de charger la suite? on met la page non chargée temporairement sur une mémoire secondaire (disque dur) Table des pages Page virtuelle Page physique :page présente 0:page absente Memoire Secondaire (Disque Dur) Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Processus A Processus A movl 0x30, %eax movl $0x32, %ebx Processus B Processus A Processus B Processus B Numéro de page addl (%ebx), %eax (3) 0x38 0x3C 0e Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

72 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle : besoin de charger la suite? un programme demon (kswapd sous linux) libère des pages sur le disque : si un programme requiert une page non chargée ( défaut de page ) si la mémoire est presque pleine (retire vieilles pages) Table des pages Page virtuelle Page physique :page présente 0:page absente Kswapd Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Processus A Processus A movl 0x30, %eax movl $0x32, %ebx Processus B Processus A Processus B Processus B Numéro de page Memoire Secondaire (Disque Dur) addl (%ebx), %eax (3) 0x38 0x3C 0e swap area Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

73 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Mémoire virtuelle : besoin de charger la suite? chaque processus a sa table de pages on met à jour les 2 pages de tables Table des pages Page virtuelle Page physique :page présente 0:page absente Table des pages de B Page virtuelle Page physique :page présente 0:page absente Memoire Physique (RAM) 0x00 0x08 0x10 0x18 0x20 0x28 0x30 Processus A Processus A movl 0x30, %eax movl $0x32, %ebx addl (%ebx), %eax Processus A Processus B Processus B Numéro de page Memoire Secondaire (Disque Dur) swap area Processus B 0x38 0x3C 0e Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

74 Gestion de la mémoire (pagination) La pagination : Mémoire virtuelle Avantages Le Code et Données du programme sont dynamiquement relogeables en mémoire Mémoire virtuelle : Taille des programmes en cours > taille de la mémoire Utilisation du disque comme stockage secondaire Inconvéniants Une architecture plus complexe : nécessite une unité spécifique pour gérer la table de pages et faire les calculs d adresses Temps d accès non déterministe à la mémoire : si la page requise n est pas en mémoire mais sur le disque Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

75 Gestion de la mémoire (pagination) Unité de Gestion de la mémoire (MMU) circuit imprimé distinct ou inclus dans le processeur dédié aux traductions d adresse par segmentation ou pagination une logique importante (jusqu à 30% de la surface du processeur) au niveau matériel, elle contient : logique de conversion des adresses virtuelles en adresses physiques logique de vérification de la validité de l adresse (sinon segfault) ou disponibilité de la page en RAM. mémoire cache associative TLB (Translation Lookaside Buffer) contenant la portion la + utilisée de la table des pages (réduit les accès plus lent à la table de pages en RAM.) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

76 Plan Les entrées-sorties (I/O) 1 Processeur Architecture ARM : principes Architecture Intel et Assembleur x86 2 Exceptions et Interruptions Définition Contrôleur d interruptions et traitement 3 Du source à l exécutable Le format ELF Les bibliothèques 4 Gestion de la mémoire (pagination) 5 Les entrées-sorties (I/O) I/O par port I/O mappées en mémoire 6 Le temps : Horloge et Timers L horloge temps réel Les timers Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

77 Les entrées-sorties (I/O) Rappel : Architecture des cartes-mères Northbridge contrôleur mémoire (rafraîchissement, sélection,.) bande passante élevée compatibilité limité avec 1 type de mémoire et 1 CPU terminologie Intel : Graphics and Memory Controller Hub (GMCH) Southbridge dédié aux bus de moindres débits peut inclure : DMA, RTC, PIC terminologie Intel : I/O Controller Hub (ICH). Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

78 Les entrées-sorties (I/O) Entrées-sorties interaction entre CPU et périphériques (monde externe) entre registres du contrôleur d un périph. et le CPU 2 stratégies : adressage par port dédié ou par mappage en mémoire mémoire 0xFFFF mémoire 0xFFFF 0xF400 0xF140 Plage réservée I/O physique physique 0 I/O ports 0x6E 0 0 I/O registres par adresse de port I/O registres mappées en mémoire Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

79 Les entrées-sorties (I/O) I/O par port I/O par port broche I/O du CPU active sur le bus d un port (et non mémoire) instructions lecture/écriture : IN, OUT (asm) ou inb,outb (en C) adresses de ports liées à la conception de la carte mère cat /proc/ioport permet de lister les ports existants CPU Address Bus 0x3F8 NorthBridge Memory IO/M I/O S I/O controller Serial Port Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

80 Les entrées-sorties (I/O) I/O par port I/O par port Exemple : port parallèle 12 broches sortie et 5 broches en entrée le niveau électrique de la broche = la valeur du bit du registre (source : linux device drivers, 3eme edition) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

81 I/O par port Les entrées-sorties (I/O) I/O par port #define PORT 0x378 main{ ioperm(port,2,1); //demande accès (1=accès on) //à 2 octets à partir // de de port PORT + outb(0x1,port); //ecriture sur port //de la valeur 1 } (source : linux device drivers, 3eme edition) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

82 I/O mapping Les entrées-sorties (I/O) I/O mappées en mémoire mémoires physiques sont détournées par la carte mère vers des registres des périphériques mémoire pas accessible sur ces adresses sur architecture intel 32 bits : la plage 3.5Go >4Go réservée pour I/O si plus de 3.5 Go installés, cette RAM est inutilisable (non adressable) CPU Address Bus 0xFF4A Data Bus TOLUD<0xFF4A<0xFFFF NorthBridge 0xFFFF 0x0000 Memory PCI device controller South bridge Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

83 Les entrées-sorties (I/O) I/O mappées en mémoire I/O mapping adressage sur le bus PCI identifiant unique (vendeur :produit) pour chaque périph. PCI attribution dynamique d adresses par le système PCI aux périphs. cat /proc/meminfo : liste les zones mémoires réservées lspci -v : liste périphériques pci et adresses physiques des registres mappés (et port) accès et lecture/ecriture (Linux) pci_find_device(vendor,device) : fonction du noyau pour récupère les infos du périph. accès semblable à une mémoire : read(), write() (ou ioread(b) iowrite(b)) Or linux utilise des adresses virtuelles la fonction add virtuel ioremap(add phys) si nécessaire attribue une adresse virtuelle pour accéder au périph. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

84 Les entrées-sorties (I/O) I/O mappées en mémoire I/O par ports et mappées en mémoire Comparatif I/O port + adressage séparé : plage d adresses mémoires complète + si CPU a 1 petit bus d adresses + instruction spécifique : lisibilité code - hardware supplémentaire (logique + broche CPU) I/O mappée en mémoire +pas de logique pour les ports sur CPU (prix,simplicité) +même instruction qu un accès mémoire (RISC) -occupe des adresses mémoires (où il peut y avoir de la RAM) Sur l architecture x86 : cohabitation des 2 modes d adressage (pci) +void* ioport_map(port), permet d attribuer une adresse virtuelle à un port (émulation d une IO mappée) Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

85 I/O par port : Exercice Les entrées-sorties (I/O) I/O mappées en mémoire Activation LED clavier AT Le clavier PS/2-ATK utilisent 2 ports : 0x60 et 0x64. 0x64 Data port clavier (read/write) 0x64 Command register (write) Status register (read) Le registre de status 1 (controlleur du clavier) est représenté ci-dessous. Avant chaque écriture sur le Data port (clavier), il faut vérifier que le bit 1 du registre de status est nul (buffer d écriture du clavier vide). Sinon on attend pour écrire. Avant chaque lecture sur le Data port, il faudrait vérifier que le buffer de sortie est plein : qu il y a quelque chose à lire. Loïc Cuvillon (ENSPS) Systèmes temps réel et systèmes embarqués Année scolaire / 93

Édition de liens. 1 Programme unique. Ensimag 1A Apprentissage. 1.1 Listing d assemblage. offset codop. .section.rodata

Édition de liens. 1 Programme unique. Ensimag 1A Apprentissage. 1.1 Listing d assemblage. offset codop. .section.rodata Édition de liens Ensimag 1A Apprentissage 2010 1 Programme unique 1.1 Listing d assemblage offset codop.section.rodata 25 73 20 25 sortie:.asciz "%s %s %c%c%c%c%c%c%c %s%c %s%c\n" 73 20 25 63 25 63 25

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire Informatique Embarquée M2 / 24 24 Interaction CPU / mémoire Bus d'adresses CPU Bus de Données Bus de Contrôle 24 Architecture Von Neumann CPU contient: Instructions et Données CPU charge les instructions

Plus en détail

Ordinateurs, Structure et Applications

Ordinateurs, Structure et Applications Ordinateurs, Structure et Applications Cours 10, Les interruptions Etienne Tremblay Université Laval, Hiver 2012 Cours 10, p.1 Les interruptions du 8086 Une interruption interrompt l exécution séquentielle

Plus en détail

Structure d un programme

Structure d un programme Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé

Plus en détail

Notions de langage machine

Notions de langage machine Notions de langage machine 18 décembre 2009 Rappels et introduction Architecture de Van Neumann : Processeur = UC + UAL Mémoire interne au processeur = les registres (soit seulement l accumulateur, soit

Plus en détail

Les systèmes embarqués

Les systèmes embarqués Unité IFS (Interface) Les systèmes embarqués Architecture des systèmes à processeur Etienne Messerli Le 17 février 2015 p 1 Ordinateur Système UNIVERSEL de traitement de l'information "binaire" Utilisé

Plus en détail

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr Assembleur x86 Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Niveaux de programmation Du plus bas niveau (1) au plus abstrait (6) 1) Impulsions

Plus en détail

Conception et microprocesseurs

Conception et microprocesseurs Electronique embarquée Conception et microprocesseurs Richard Grisel Professeur des Universités Université de Rouen Conception et microprocesseurs Architectures et composants: Logiciel; Matériel. Test

Plus en détail

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

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

QCM systèmes d exploitation (Quarante questions)

QCM systèmes d exploitation (Quarante questions) QCM systèmes d exploitation (Quarante questions) QUIZZ OS N 1 (10 questions avec réponses) Question 1: Aux origines de l informatique, l'interface utilisateur des systèmes d exploitations était composée

Plus en détail

La vie des programmes

La vie des programmes La vie des programmes Fabienne Carrier Stéphane Devismes Université Joseph Fourier, Grenoble I 2 février 2009 Carrier, Devismes (Grenoble I) La vie des programmes 2 février 2009 1 / 31 Plan 1 Introduction

Plus en détail

Introduction aux systèmes informatiques Structure d un ordinateur

Introduction aux systèmes informatiques Structure d un ordinateur Introduction aux systèmes informatiques Structure d un ordinateur Michel Salomon IUT de Belfort-Montbéliard Département d informatique Michel Salomon Intro. aux sys. info. 1 / 36 Qu est-ce qu un système

Plus en détail

Architecture des Ordinateurs et Systèmes d Exploitation

Architecture des Ordinateurs et Systèmes d Exploitation Architecture des Ordinateurs et Systèmes d Exploitation Cours n 5 Le langage assembleur (2): Pile, Procédures. Les Interruptions 3ème année L assembleur 8086 : la pile = structure de «rangement» de données

Plus en détail

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

Plus en détail

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

Plus en détail

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

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Réalisation d un OS 32 bits pour PC(x86)

Réalisation d un OS 32 bits pour PC(x86) Rapport projet tutoré Réalisation d un OS 32 bits pour PC(x86) Maxime Chéramy Nicolas Floquet Benjamin Hautbois

Plus en détail

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

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007 Introduction à l architecture des ordinateurs Adrien Lebre Décembre 2007 Plan - partie 1 Vue d ensemble La carte mère Le processeur La mémoire principal Notion de bus Introduction à l architecture des

Plus en détail

Les entrées/sorties Les périphériques

Les entrées/sorties Les périphériques Les entrées/sorties Les périphériques La fonction d un ordinateur est le traitement de l information (fonction réalisée au niveau de la mémoire et l UC). L ordinateur acquiert cette information et restitue

Plus en détail

Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique.

Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique. Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique. Ameziane NAIT ABDELAZIZ Département informatique, filière PRCD Maître de stage : Bruno LATHUILIERE Tuteur : Brice GOGLIN

Plus en détail

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge Introduction Les performances d une machine sont liées au: 1. nombre d instructions 2. temps de cycle horloge 3. nombre de cycle horloge par instructions. C est: le compilateur et l architecture du jeu

Plus en détail

Entrées-Sorties: Architectures de bus. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde

Entrées-Sorties: Architectures de bus. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Entrées-Sorties: Architectures de bus GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Architectures CPU/Mémoire/E-S Un ordinateur a cinq composantes de base: le(s) processeur(s)

Plus en détail

III - PROGRAMMATION EN ASSEMBLEUR

III - PROGRAMMATION EN ASSEMBLEUR III - PROGRAMMATION EN ASSEMBLEUR 3.1 Introduction à la programmation en assembleur Pour programmer un ordinateur on utilise généralement des langages dits évolués ou de haut niveau : C, C++, Java, Basic,

Plus en détail

Comment concevoir un ordinateur? Quelques questions à considérer

Comment concevoir un ordinateur? Quelques questions à considérer Comment concevoir un ordinateur? Quelques questions à considérer Unité d entrée Unité de traitement Unité de sortie Comment coder les données Entiers, réels, caractères Comment restituer les résultats

Plus en détail

Exécution des instructions machine

Exécution des instructions machine Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]

Plus en détail

DSP Architecture et Applications

DSP Architecture et Applications Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud DSP Architecture et Applications Note 1 VISUALDSP++3.5 FOR 16-BIT Environnement de développement de la famille ADSP21xx 16 bits virgule fixe des

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001

Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 Examen d Architecture des Ordinateurs Majeure 1 Polytechnique Lundi 10 Décembre 2001 L examen dure 3 heures. Le sujet comporte 7 pages dont 3 pages de rappels sur le LC-2 et la microprogrammation. Tous

Plus en détail

ENSEIRB P.N Souris PS/2

ENSEIRB P.N Souris PS/2 ENSEIRB P.N Souris PS/2 Souris PS/2 1. Le protocole PS/2 Le protocole PS/2 permet une communication synchrone, bidirectionnelle et bits en série entre un système et un périphérique (couramment clavier,

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

TD Architecture des ordinateurs. Jean-Luc Dekeyser

TD Architecture des ordinateurs. Jean-Luc Dekeyser TD Architecture des ordinateurs Jean-Luc Dekeyser Fiche 1 Nombres de l informatique Exercice 1 Une entreprise désire réaliser la sauvegarde de ses données sur un site distant. Le volume de données à sauvegarder

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs GTR 1999-2000 Emmanuel Viennet IUT de Villetaneuse Département GTR viennet@lipn.univ-paris13.fr Licence Copyright c 1995-2001 par Emmanuel Viennet. Ce document peut être librement

Plus en détail

UEFI et bootkits PCI : le danger vient d en bas. Pierre Chifflier 6 juin 2013

UEFI et bootkits PCI : le danger vient d en bas. Pierre Chifflier 6 juin 2013 UEFI et bootkits PCI : le danger vient d en bas Pierre Chifflier 6 juin 2013 Article Plus de détails dans l article Séquence de démarrage Fonctions UEFI et utilisations : Interception du bootloader Tables

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Analyse et programmation 1

Analyse et programmation 1 Analyse et programmation Aperçu du fonctionnement de l ordinateur Fonctionnement de l ordinateur Codage de l information Bus d échange d information CPU Exécution d un programme par la CPU Gestion des

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

Plus en détail

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

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

Plus en détail

Plan : Master IM2P2 - Calcul Scientifique

Plan : Master IM2P2 - Calcul Scientifique Plan : Les systèmes HPC Typologie des systèmes : Machines Mémoire partagée Machines à Mémoire Distribuées Machine NUMA Exemples Architectures Processeurs HPC Processeurs scalaires, superscalaires, vectoriels

Plus en détail

Initiation à la sécurité

Initiation à la sécurité Initiation à la sécurité UE Systèmes informatiques 12 septembre 2011 Julien Raeis - http://raeis.iiens.net/ Présentation Ingénieur IIE 2005 Carrière dans la sécurité des systèmes Consultant en sécurité

Plus en détail

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

DSP architecture et applications

DSP architecture et applications Haute Ecole d Ingénierie et de Gestion du Canton du Vaud DSP architecture et applications Chapitre 3 GÉNÉRATEURS D ADRESSES Création de buffers linéaires et circulaires Gestion des pages mémoires ADSP-29X

Plus en détail

Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte

Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte Résumé Allocateur de pages physiques 4 Pagination 4Go Au cours de cet article et du suivant, nous vous proposons la mise en place

Plus en détail

Système d exploitation

Système d exploitation Chapitre 2 Système d exploitation 2.1 Définition et rôle Un ordinateur serait bien difficile à utiliser sans interface entre le matériel et l utilisateur. Une machine peut exécuter des programmes, mais

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

DSP ORIENTÉ APPLICATIONS INDUSTRIELLES

DSP ORIENTÉ APPLICATIONS INDUSTRIELLES DSP et temps réel Chapitre 4_8 DSP ORIENTÉ APPLICATIONS INDUSTRIELLES 4. Set d instructions 5. Directives assembleur 6. Architecture mémoire 7. Editeur de lien 8. Création d un fichier de commande M. Correvon

Plus en détail

QUELQUES CONCEPTS INTRODUCTIFS

QUELQUES CONCEPTS INTRODUCTIFS ESIEE Unité d'informatique IN101 Albin Morelle (et Denis Bureau) QUELQUES CONCEPTS INTRODUCTIFS 1- ARCHITECTURE ET FONCTIONNEMENT D UN ORDINATEUR Processeur Mémoire centrale Clavier Unité d échange BUS

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs Architecture Matérielle des Systèmes Informatiques. S1 BTS Informatique de Gestion 1 ère année THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT Dossier 1 L environnement informatique. Objectifs Enumérer et

Plus en détail

Leçon 1 : Les principaux composants d un ordinateur

Leçon 1 : Les principaux composants d un ordinateur Chapitre 2 Architecture d un ordinateur Leçon 1 : Les principaux composants d un ordinateur Les objectifs : o Identifier les principaux composants d un micro-ordinateur. o Connaître les caractéristiques

Plus en détail

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

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996] Mesure de performances [Architecture des ordinateurs, Hennessy & Patterson, 1996] Croissance des performances des microprocesseurs Avant le milieu des années 80, le gain dépendait de la technologie. Après,

Plus en détail

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 Lucas Bouillot Arnaud Kleinpeter Gaétan Bouquet Xavier Paquin INTRODUCTION INTRODUCTION Qu est ce qu

Plus en détail

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel

KoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel KoinKoin Système d exploitation à architecture basée micro-noyau Antoine Castaing Nicolas Clermont Damien Laniel 30 juillet 2006 Free Documentation License Copyright (c) 2005 Nicolas Clermont / Antoine

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE

EPREUVE OPTIONNELLE d INFORMATIQUE EPREUVE OPTIONNELLE d INFORMATIQUE A) QCM Les réponses au QCM doivent être portées directement sur la feuille de sujet de QCM. Ne pas omettre de faire figurer votre numéro de candidat sur cette feuille

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

Plus en détail

Architecture 68332 06/06/02 LE 68332

Architecture 68332 06/06/02 LE 68332 LE 68332 LE 68332...1 ELÉMENTS SUR LE MICROCONTRÔLEUR 68332...2 SYSTEM INTEGRATION MODULE (SIM)...2 QUEUED SERIAL MODULE (QSM)...3 TIME PROCESSOR UNIT (TPU)...3 IMPLANTATION MÉMOIRE :...4 MODULE SIM :

Plus en détail

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

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96 Assembleur i8086 Philippe Preux IUT Informatique du Littoral Année universitaire 95 96 1 Avertissement Ce document décrit le langage d assemblage étudié et utilisé dans le cadre des TP d architecture.

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Architecture des Ordinateurs. Partie II:

Architecture des Ordinateurs. Partie II: Architecture des Ordinateurs Partie II: Le port Floppy permet le raccordement du lecteur de disquette àla carte mère. Remarque: Le lecteur de disquette a disparu il y a plus de 6 ans, son port suivra.

Plus en détail

Technologies SOC (System On Chip) (Système sur une seule puce)

Technologies SOC (System On Chip) (Système sur une seule puce) Technologies SOC (System On Chip) (Système sur une seule puce) Pierre LERAY et Jacques WEISS Équipe de recherche ETSN Supélec Campus de Rennes février, 02 Technologies SoC ; P. Leray, J. Weiss 1 Évolution

Plus en détail

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

Plus en détail

L ARCHITECTURE D UN ORDINATEUR. Page 1

L ARCHITECTURE D UN ORDINATEUR. Page 1 L ARCHITECTURE D UN ORDINATEUR Page 1 Page 2 SOMMAIRE I) Définition II) Boîtier a) Format b) Refroidissement III) Alimentation IV) Carte Mère V) Chipset VI)BIOS VII)Microprocesseur a)qu est ce que c est

Plus en détail

Description du logiciel Modbus RTU

Description du logiciel Modbus RTU Description du logiciel Modbus RTU V.1.0 Actualisée 04/2014 Page 1 de 57 Description du logiciel Modbus RTU Description du logiciel Modbus RTU V.1.0 Actualisée 04/2014 Page 2 de 57 Sommaire Description

Plus en détail

Chapitre 4 : Les mémoires

Chapitre 4 : Les mémoires 1. Introduction: Chapitre 4 : Les mémoires Nous savons que dans un ordinateur toutes les informations : valeur numérique, instruction, adresse, symbole (chiffre, lettre,... etc.) sont manipulées sous une

Plus en détail

Microprocesseur + Logiciel

Microprocesseur + Logiciel Microprocesseur + Logiciel Robot EVALBOT MOHAMED AKIL BUREAU 5253 UNITE IGI 1001 PROGRAMMATION DES MICROPROCESSEURS Présentation [IGI1001] CONTEXTE SCIENTIFIQUE... 4 1. OBJECTIFS DE L UNITE... 6 2. OBJECTIFS

Plus en détail

Systèmes d exploitation. Introduction. (Operating Systems) http://www.sir.blois.univ-tours.fr/ mirian/

Systèmes d exploitation. Introduction. (Operating Systems) http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation (Operating Systems) Introduction SITE : http://www.sir.blois.univ-tours.fr/ mirian/ Systèmes d exploitation - Mírian Halfeld-Ferrari p. 1/2 Qu est-ce qu un SE? Ensemble de logiciels

Plus en détail

Exécutif temps réel Pierre-Yves Duval (cppm)

Exécutif temps réel Pierre-Yves Duval (cppm) Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications

Plus en détail

! Vous aurez pris connaissance de l'évolution. ! Vous comprendrez pourquoi on utilise le binaire en. ! Vous serez capable de construire un circuit

! Vous aurez pris connaissance de l'évolution. ! Vous comprendrez pourquoi on utilise le binaire en. ! Vous serez capable de construire un circuit Architecture élémentaire Un cours d architecture pour des informaticiens Samy Meftali Samy.meftali@lifl.fr Bureau 224. Bâtiment M3 extension Sans architecture pas d informatique Comprendre comment çà marche

Plus en détail

LOGICIEL DC4D MONITOR

LOGICIEL DC4D MONITOR THQtronic LOGICIEL DC4D MONITOR La communication entre PC et DC4D ne peut se faire qu à l aide du câble de liaison USB-TTL de FTDI référence TTL-232R-5V-AJ vendu en option. DC4D Monitor est la même application

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

Systèmes d exploitation

Systèmes d exploitation Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation

Plus en détail

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Architecture ordinateur. Organisation mémoire et Entrées/Sorties Architecture ordinateur Organisation mémoire et Entrées/Sorties 243 Plages mémoire et E/S Dans une architecture à bus partagé, seule une partie des adresses active le contrôleur mémoire. Il reste des adresses

Plus en détail

Développement de moyens matériels pour la protection des couches basses du logiciel 1 / 45

Développement de moyens matériels pour la protection des couches basses du logiciel 1 / 45 Développement de moyens matériels pour la protection des couches basses du logiciel Benoît Morgan, Éric Alata, Vincent Nicomette Réunion du groupe RéSIST LAAS-CNRS, INSA Toulouse 15 décembre 2014 Développement

Plus en détail

Prentice Hall, 2011 (ISBN 0-13-610804-0)

Prentice Hall, 2011 (ISBN 0-13-610804-0) Prentice Hall, 2011 (ISBN 0-13-610804-0) Introduction à l architecture des ordinateurs Georges-André Silber Centre de recherche en informatique École nationale supérieure des mines de Paris octobre 2010

Plus en détail

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

Résumé Génération de code Le code intermédiaire Résumé Analyse INFO0004 Structure des langages de programmation Génération de code ; liaison et exécution Justus H. Piater Programmation Analyse Compilation Liaison fichier texte Analyse lexicale flux

Plus en détail

Architectures des ordinateurs Caches et mémoire virtuelle. Daniel Etiemble de@lri.fr. Capacité mémoire SRAM. X 4 tous les trois ans.

Architectures des ordinateurs Caches et mémoire virtuelle. Daniel Etiemble de@lri.fr. Capacité mémoire SRAM. X 4 tous les trois ans. Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr Capacité mémoire 1M (bits) DRAM.5 T 1M 1M 1K 1K Date d apparition 1K 1978 1981 1984 1987 199 1993 1996 Surface SRAM/DRAM

Plus en détail

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

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique Architecture d ordinateur : introduction Dimitri Galayko Introduction à l informatique, cours 1 partie 2 Septembre 2014 Association d interrupteurs: fonctions arithmétiques élémentaires Elément «NON» Elément

Plus en détail

Les mémoires. Les mémoires

Les mémoires. Les mémoires Les mémoires Eduardo Sanchez EPFL Les mémoires Une mémoire est un élément de stockage d'information Les bits stockés sont organisés en forme de matrice: la dimension de la mémoire est donnée par le nombre

Plus en détail

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination Croisière au cœur d un OS Étape 4 : Mise en place de la pagination Résumé Grâce à l article 3, nous pouvons gérer la totalité de la RAM disponible. Dans cet article, nous allons commencer la mise en place

Plus en détail

Techniques et astuces pour l enregistrement haute vitesse

Techniques et astuces pour l enregistrement haute vitesse Techniques et astuces pour l enregistrement haute vitesse David SANCHEZ Ingénieur d Application NI France stream ing [stree-ming] verbe 1. Fait de transférer des données depuis ou vers un instrument à

Plus en détail

Principes de fonctionnement des machines binaires

Principes de fonctionnement des machines binaires Principes de fonctionnement des machines binaires Cédric Herpson cedric.herpson@lip6.fr http://www-desir.lip6.fr/~herpsonc/pf1.htm Le contenu de ces transparents est basé sur les cours de Jean-Marie Rifflet

Plus en détail

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11) 1/ Généralités : Un ordinateur est un ensemble non exhaustif d éléments qui sert à traiter des informations (documents de bureautique, méls, sons, vidéos, programmes ) sous forme numérique. Il est en général

Plus en détail

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

GPA770 Microélectronique appliquée Exercices série A GPA770 Microélectronique appliquée Exercices série A 1. Effectuez les calculs suivants sur des nombres binaires en complément à avec une représentation de 8 bits. Est-ce qu il y a débordement en complément

Plus en détail

processus fonction main() l'image binaire contexte d'exécution un contexte mémoire. en même temps

processus fonction main() l'image binaire contexte d'exécution un contexte mémoire. en même temps 1 2 Dans une première approche, on peut dire qu'un processus représente une "application" qui tourne en mémoire. Il sera donc chargé en mémoire par le noyau et commencera son exécution; du point de vue

Plus en détail

PIC : COURS ASSEMBLEUR

PIC : COURS ASSEMBLEUR PIC : COURS ASSEMBLEUR I) Fonctions de base d une machine informatique Contenir de façon permanente les tâches à exécuter (mémoire programme) en ROM ou sur support magnétique. Contenir de façon temporaire

Plus en détail

IFT1215 Introduction aux systèmes informatiques

IFT1215 Introduction aux systèmes informatiques Introduction aux circuits logiques de base IFT25 Architecture en couches Niveau 5 Niveau 4 Niveau 3 Niveau 2 Niveau Niveau Couche des langages d application Traduction (compilateur) Couche du langage d

Plus en détail

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes Fabienne.Boyer@imag.fr 1- Structure d un disque 2- Ordonnancement des requêtes 3- Gestion du disque - formatage - bloc d amorçage - récupération

Plus en détail

Utilisation de SystemC pour la conception des SoC

Utilisation de SystemC pour la conception des SoC Utilisation de SystemC pour la conception des SoC aniela ragomirescu 1,2, Roberto Reyna 3 1 - Université de Toulouse : INSA Toulouse, 135 Av. de Rangueil Toulouse cedex 4 2-LAAS-CNRS ; Université de Toulouse,

Plus en détail

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

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie 1 Professeur : Haouati Abdelali CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie I : Généralités et algorithmique de base 1. Environnement matériel et logiciel

Plus en détail

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

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) F. Pellegrini Université Bordeaux 1 Ce document est copiable et distribuable librement et gratuitement à

Plus en détail

Installer Windows Home Server 2011

Installer Windows Home Server 2011 Chapitre 4 Installer Windows Home Server 2011 Windows Home Server 2011 fonctionne uniquement sous l architecture 64 bits : cette contrainte rend impossible la mise à jour de l ancienne version de Windows

Plus en détail