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

Architecture matérielle et logicielle

Architecture matérielle et logicielle Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l

Plus en détail

Types et performances des processeurs

Types et performances des processeurs Types et performances des processeurs Laboratoire de Systèmes Logiques Structure d un ordinateur contrôle processeur traitement séquenceur registres mémoire entrées/sorties micromémoire opérateurs bus

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

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

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

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

Programmation assembleur sur l architecture x86

Programmation assembleur sur l architecture x86 Mini-projet système : développement d un noyau de système d exploitation Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Programmation assembleur sur l architecture x86

Plus en détail

La famille x86. Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne

La famille x86. Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne La famille x86 Laboratoire de Systèmes Logiques Désavantages de l architecture x86 Très vieille architecture: basée sur le 8080 (commercialisé en 1974, 6 000 transistors et 8 registres) Le premier 8086

Plus en détail

Introduction à l architecture ARM. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde

Introduction à l architecture ARM. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Introduction à l architecture ARM GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Aujourd hui Rappel: TP1: dû mardi prochain atelier: TP1 + micro-instructions Processeurs

Plus en détail

Gestion de la Mémoire 1 ère partie: Point de vue processeur. Chapitre 5

Gestion de la Mémoire 1 ère partie: Point de vue processeur. Chapitre 5 Gestion de la Mémoire 1 ère partie: Point de vue processeur Chapitre 5 Présentation La mémoire peut être adressée de 3 points de vue Point de vue processeur Comment le processeur adresse la mémoire physique

Plus en détail

Les Entrées et Sorties: Programmées, interruptions, et DMA. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde

Les Entrées et Sorties: Programmées, interruptions, et DMA. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Les Entrées et Sorties: Programmées, interruptions, et DMA GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Aujourd hui Entrées-sorties Programmées Par interruptions Le

Plus en détail

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

Plus en détail

Mémoire principale. Von Neumann vs. Harvard. Terminologie. Architecture et technologie des ordinateurs II. G. Tempesti Semaine VIII 1 CPU.

Mémoire principale. Von Neumann vs. Harvard. Terminologie. Architecture et technologie des ordinateurs II. G. Tempesti Semaine VIII 1 CPU. principale Structure Fonctionnement Accès MÉMOIRE PRINCIPALE BUS SYSTÈME DD Instructions MMU TLB Unité de de Unité de de Traitement Données Décodeur PC ALU Unité Flottante Registres Von Neumann vs. Harvard

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

Chap. V : Les interruptions

Chap. V : Les interruptions UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Nous étudions dans ce chapitre les interruptions matérielles (ou externes), c est-à-dire déclenchées par le matériel (hardware)

Plus en détail

Assembleur x86. P. Ezéquel

Assembleur x86. P. Ezéquel Assembleur x86 P. Ezéquel 1 TABLE DES MATIÈRES 2 Table des matières 1 Introduction 3 2 Anatomie du x86 3 2.1 Registres généraux.......................... 4 2.2 Registres de base de segments....................

Plus en détail

Les processeurs. Les entrées-sorties

Les processeurs. Les entrées-sorties Les entrées-sorties La problématique des entrées sorties est la suivante : - Le processeur va vite, plus vite que des éléments mécaniques tel que l on trouve dans une imprimante, une souris, un clavier.

Plus en détail

Systèmes d'exploitation

Systèmes d'exploitation Systèmes d'exploitation Fonctionnement interne Jeudi 27 mai et mardi 1er Juin Thomas Petazzoni Lolut - http://lolut.utbm.info Linux Magazine Série complète sur la construction d'un OS simple : SOS. A partir

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

Architecture de Processeur

Architecture de Processeur Mise à jour: Février 2012 Architecture et Programmation [Archi/Lycée] Architecture logicielle Applications 2 Nicolas Bredèche Maître de Conférences Université Paris-Sud bredeche@lri.fr Ressources bibliographiques

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

LE BIOS : QU EST-CE QUE C EST?

LE BIOS : QU EST-CE QUE C EST? LE BIOS : QU EST-CE QUE C EST? Mewtow 29 octobre 2015 Table des matières 1 Introduction 5 2 Rappels sur le mode réel des processeurs x86 7 2.1 Mémoire en mode réel............................... 7 2.1.1

Plus en détail

ELE-542 Systèmes ordinés en temps réels. Cours # 5 Traitement des interruptions

ELE-542 Systèmes ordinés en temps réels. Cours # 5 Traitement des interruptions ELE-542 Systèmes ordinés en temps réels Cours # 5 Traitement des interruptions Jean-Marc Beaulieu et Bruno De Kelper Site internet: http://www.ele.etsmtl.ca/academique/ele542/ Chapitre 5 Réponse aux évènements

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

Cours Architecture des ordinateurs (Archi II) Entrées / Sorties Resp. Mr Mohamed Feredj MCA Courriel : archiferedj@gmail.com

Cours Architecture des ordinateurs (Archi II) Entrées / Sorties Resp. Mr Mohamed Feredj MCA Courriel : archiferedj@gmail.com Cours Architecture des ordinateurs (Archi II) Entrées / Sorties Resp. Mr Mohamed Feredj MCA Courriel : archiferedj@gmail.com 1 1) Objectif Discuter comment les données sont transférées entre le et les

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

Composantes principales des ordinateurs

Composantes principales des ordinateurs Composantes principales des ordinateurs GIF-1001: Ordinateurs: Structure et Applications Jean-François Lalonde, Hiver 2015 Stallings ch. 3, Englander ch. 7, 10.1 Architecture von Neumann Mémoire (données

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

Mémoire virtuelle. Généralités

Mémoire virtuelle. Généralités Mémoire virtuelle Généralités La pagination pure - Conversion d adresses virtuelles en adresses physiques - Table des pages à plusieurs niveau et table inversée - Algorithmes de remplacement de page -

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Gestion de la mémoire Marc Pouzet ENS Cours L3 Systèmes et Réseaux 25 mai 2015 Aspects matériels de la mémoire Types de mémoires 1 Type Accès Vitesse Persistance Domaine d utilisation Registre lecture-écriture

Plus en détail

Conception et exploitation des processeurs

Conception et exploitation des processeurs Chargés de cours : Frédéric Pétrot et Sébastien Viardot Année universitaire 2011-2012 Structure du cours C1 C2 C3 au VHDL aux langages d'assemblage pour les ISA x86 et MIPS Conventions pour les appels

Plus en détail

Architecture matérielle

Architecture matérielle Architecture matérielle Jacques Madelaine 1 Modèle de Von Neumann Mémoire Périphérique d E/S Bus de données Bus d adresses Bus de commandes UC centrale (CPU Central Processing Unit) prend depuis la mémoire

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Architecture et Système

Architecture et Système Architecture et Système Stefan Schwoon Cours L3, 2014/15, ENS Cachan Rappels Quelques éléments qu on a pu construire à partir des transistors (et une horloge): fonctions arithmétiques et logiques multiplexeur,

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

Stockage et mémoire, Du principe vers la réalité

Stockage et mémoire, Du principe vers la réalité Stockage et mémoire, Du principe vers la réalité Responsable :Thomas Robert C234-4 thomas.robert@telecom-paristech.fr Intervenants :Tamy Boubekeur, Guillaume Duc, Gérard Mouret, Thomas Robert Institut

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

Architecture des ordinateurs TD 1

Architecture des ordinateurs TD 1 Architecture des ordinateurs TD 1 ENSIMAG 1 re année April 29, 2008 Imprimer pour chaque étudiant le listing des instructions (page 36 de la doc, ou page 2 du chapitre 7). Pas la peine de tout imprimer.

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

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

Structure du bus système Gestion du bus système Fonctionnement des périphériques

Structure du bus système Gestion du bus système Fonctionnement des périphériques Périphériques et bus système Structure du bus système Gestion du bus système Fonctionnement des s MÉMOIRE PRINCIPALE BUS SYSTÈME Cache d'instructions MMU TLB Unité de de contrôle Unité de de traitement

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

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

Chapitre 11. Gestion des Entrées/Sorties (Noyau Linux) Olivier Dalle. Programmation du Noyau Linux

Chapitre 11. Gestion des Entrées/Sorties (Noyau Linux) Olivier Dalle. Programmation du Noyau Linux 1 Chapitre 11 Gestion des Entrées/Sorties (Noyau Linux) Architecture Matérielle : Bus Bus Ensemble de lignes reliant plusieurs composants Tous les composants voient tout ce qui passe Permet la transmission

Plus en détail

Rappels sur l Architecture de base d un ordinateur

Rappels sur l Architecture de base d un ordinateur Chapitre 1 Rappels sur l Architecture de base d un ordinateur I. Introduction Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Sommaire. Historique

Sommaire. Historique Sommaire ntroduction aux microprocesseurs & Pre sentation du µc 9s12 Ge ne ralite s Bus & me moire Structure d un CPU Jeu d instructions module 2 Sebastien.Kramm@univ-rouen.fr De veloppement pour l embarque

Plus en détail

Architecture des ordinateurs. Mémoires (II) Licence Informatique - Université de Provence. Jean-Marc Talbot

Architecture des ordinateurs. Mémoires (II) Licence Informatique - Université de Provence. Jean-Marc Talbot Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Mémoires jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des ordinateurs 120

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

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

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

Design, améliorations, et implémentations

Design, améliorations, et implémentations CPU et Mémoire Design, améliorations, et implémentations Techniques et caractéristiques modernes qui permettent de donner aux ordinateurs actuels toute leur puissance 1 Architectures CPU Design de l architecture

Plus en détail

Unité d enseignement Systèmes d exploitation Unix : Mise en œuvre du noyau Unix 1-ière Année Informatique et Mathématiques Appliquées

Unité d enseignement Systèmes d exploitation Unix : Mise en œuvre du noyau Unix 1-ière Année Informatique et Mathématiques Appliquées Unité d enseignement Systèmes d exploitation Unix : Mise en œuvre du noyau Unix 1-ière Année Informatique et Mathématiques Appliquées 1 Présentation générale TD-TP : Mémoire virtuelle 21 mai 2013 Le système

Plus en détail

Architecture matérielle http://nicodewaele.info Nicolas Dewaele

Architecture matérielle http://nicodewaele.info Nicolas Dewaele Architecture des ordinateurs Définition d'un ordinateur Architecture matérielle Architecture de Von Neumann (Années 1940) Von Neumann : Mathématicien, inventeur de l'architecture des ordinateurs modernes

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

Microcontrôleurs. Les PIC

Microcontrôleurs. Les PIC Les PIC I INTRODUCTION Dans la chaîne de traitement de l information, le programme informatique (firmware ou microcode) réalise une fonction importante et est toujours associée à un composant programmable

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

1 Le vocabulaire de l informatique

1 Le vocabulaire de l informatique 1 Le vocabulaire de l informatique I Les systèmes informatiques Les ordinateurs sont omniprésents dans notre environnement quotidien. Conçus pour traiter de manière générale des informations, ils ne se

Plus en détail

Multi-processeurs, multi-cœurs et cohérence mémoire et cache

Multi-processeurs, multi-cœurs et cohérence mémoire et cache Multi-processeurs, multi-cœurs et cohérence mémoire et cache Intervenant : Thomas Robert Institut Mines-Télécom Rappel système d exploitation & Parallélisme L unité d exécution pour un système d exploitation

Plus en détail

De l ordinateur au processus : rôle d un système

De l ordinateur au processus : rôle d un système De l ordinateur au processus : rôle d un système Introduction aux systèmes d exploitation Gaël Thomas Présentation du cours Contexte du cours : Introduire notre objet d étude : les systèmes d exploitation

Plus en détail

CPU ou UCT. Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.

CPU ou UCT. Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç. CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

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

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

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

L3 Informatique - Systèmes d exploitation

L3 Informatique - Systèmes d exploitation L3 Informatique - Systèmes d exploitation Gestion de la mémoire D. Béchet Denis.Bechet@univ-nantes.fr Université de Nantes Faculté des Sciences et Techniques 2, rue de la Houssinière BP 92208 44322 Nantes

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

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

L assembleur avec GCC

L assembleur avec GCC L assembleur avec GCC informaticienzero 27/09/2014 Connaissez-vous les fonctions inline? On les utilise pour optimiser un code, puisque l appel de la fonction est remplacé par le corps de la fonction elle-même.

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

Groupe Eyrolles, 2005, ISBN : 2-212-11635-7

Groupe Eyrolles, 2005, ISBN : 2-212-11635-7 Groupe Eyrolles, 2005, ISBN : 2-212-11635-7 Processeurs et jeux d instructions CHAPITRE 4 159 Introduction au langage assembleur Dans le cadre de notre démarche ascendante, nous allons maintenant aborder

Plus en détail

CPU ou UCT. Circuit Intégré. Processor (data processing)

CPU ou UCT. Circuit Intégré. Processor (data processing) CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

Plus en détail

Supports d exécution matériels pour l embarqué. Jean-Philippe Babau

Supports d exécution matériels pour l embarqué. Jean-Philippe Babau Supports d exécution matériels pour l embarqué Jean-Philippe Babau Département Informatique, INSA Lyon Les contraintes Coût de quelques euros à quelques centaines d'euros Contraintes d énergie (mobilité,

Plus en détail

Chap. III : Le système d exploitation

Chap. III : Le système d exploitation UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Le système d exploitation (ou O.S. de l anglais Operating System ) d un ordinateur est le programme qui permet d accéder

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

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

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

M1101 : Introduction aux Systèmes d Exploitation (OS - Operating Systems)

M1101 : Introduction aux Systèmes d Exploitation (OS - Operating Systems) M1101 : Introduction aux Systèmes d Exploitation (OS - Operating Systems) Guillaume Urvoy-Keller Source : A. Tannenbaum "Modern Operating Systems", Pearson Guillaume Urvoy-Keller Source : A. Tannenbaum

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Généralités Processeur Carte mère Mémoire Bus Interfaces d'entrée-sortie Cartes d'extension Périphériques Évolution Presque le montage d'un PC 1 Familles d'ordinateurs Serveur

Plus en détail

Stockage : capacité, performances

Stockage : capacité, performances Stockage : capacité, performances Intervenant :Thomas Robert C234-4 thomas.robert@telecom-paristech.fr Transparents : Thomas Robert Institut Mines-Télécom Lectures possibles Chapitre 7.2 de : http://ceit.aut.ac.ir/~amirkhani/

Plus en détail

Les Microprocesseurs partie2

Les Microprocesseurs partie2 Université Constantine 2 Abdelhamid Mehri Faculté des NTIC Département MI Electronique des Composants & Systèmes Les Microprocesseurs partie2 Cours de L1 - TRONC COMMUN DOMAINE MATHEMATIQUES INFORMATIQUE

Plus en détail

DS Architecture des Ordinateurs

DS Architecture des Ordinateurs 3IF - Architecture des ordinateurs - DS 2015 page 1/9 NOM, Prénom : DS Architecture des Ordinateurs 21/05/2015 Durée 1h30. Répondez sur le sujet. REMPLISSEZ VOTRE NOM TOUT DE SUITE. Tous documents autorisés,

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

Advanced Electronic Design 3 rue de L Eperon 77000 MELUN Tél : 01 64 52 16 96 E-Mail : info@a-e-d.com Web : www.a-e-d.com.

Advanced Electronic Design 3 rue de L Eperon 77000 MELUN Tél : 01 64 52 16 96 E-Mail : info@a-e-d.com Web : www.a-e-d.com. Advanced Electronic Design 3 rue de L Eperon 77000 MELUN Tél : 01 64 52 16 96 E-Mail : info@a-e-d.com Web : www.a-e-d.com Processeur JAP IP Introduction La société AED propose une IP du processeur JAP

Plus en détail

MEMOIRE CENTRALE BUS INTERCONNEXION UNITE ECHANGE UNITE ECHANGE UNITE ECHANGE

MEMOIRE CENTRALE BUS INTERCONNEXION UNITE ECHANGE UNITE ECHANGE UNITE ECHANGE Les Mémoires Assemblage de Transistors et condensateurs Circuit décodeur d adresse Exploitées pour construire les registres du processeur, la mémoire centrale, les ports d Entrées / Sorties (Unité d Echange)

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

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

Structure en couches des systèmes informatiques

Structure en couches des systèmes informatiques Structure en couches des systèmes informatiques Vue simplifiée d un système informatique Ce que le simple utilisateur perçoit «à première vue» d un système informatique : Le boîtier (tour, desktop ou portable)

Plus en détail

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2)

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) Département de génie informatique et génie logiciel Hiver 2014 Exemple 1 : Espace virtuel d un processus Où seront stockées les données des variables

Plus en détail

partie en parallèle : Programmation système et réseau du point de vue «Multiprocessus Plan

partie en parallèle : Programmation système et réseau du point de vue «Multiprocessus Plan 2 ème LST Info&Miage partie en parallèle : Programmation système et réseau du point de vue «Multiprocessus» Chapitre : Introduction à la Concurrence entre processus & Exclusion Mutuelle Chapitre 2 : Coopération

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs des ordinateurs CentraleSupélec jeremy.fix@centralesupelec.fr 2015-2016 Cours les mémoires et la mémoire cache les périphériques : quoi? canal d échange, protocole d échange, prise en compte par interruption

Plus en détail

Introduction à UNIX et Windows

Introduction à UNIX et Windows 1/39 à UNIX et Windows Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles UNIVERSITE Joseph FOURIER, Grenoble Licence de Sciences et technologie - Parcours MIN, INF, BIN et MIN international Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles Première

Plus en détail

Processeur JAP. Le langage JAVA

Processeur JAP. Le langage JAVA Processeur JAP Ce document présente les dernières nouveautés concernant le processeur JAVA de la société AED. Il commence par un rappel sur les caractéristiques du processeur actuel, puis présente les

Plus en détail

Virtualisation de la mémoire du microprocesseur

Virtualisation de la mémoire du microprocesseur Master d informatique 1 re année Module d architecture des systèmes d exploitation Virtualisation de la mémoire du microprocesseur Simon DUQUENNOY Gilles GRIMAUD Philippe MARQUET Novembre 2009 Ce document

Plus en détail

1.1 Remote Procedure Call (RPC)

1.1 Remote Procedure Call (RPC) 1.1 Remote Procedure Call (RPC) Le modèle Client-Serveur est un modèle simple à utiliser pour la structuration des systèmes répartis. Mais ce modèle s appuie sur des communications de type entrée/sortie

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

Conduite du Projet Système

Conduite du Projet Système Conduite du Projet Système Département Télécom 2ème Année Enseignants : Yves Denneulin, Jacques Mossière, Grégory Mounié, Simon Nieuviarts, Franck Rousseau, Sébastien Viardot Résumé Ce document est complémentaire

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