Architecture des ordinateurs



Documents pareils
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)

Conception de circuits numériques et architecture des ordinateurs

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

Chapitre 4 : Les mémoires

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

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

Leçon 1 : Les principaux composants d un ordinateur

Architecture des ordinateurs

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

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

Cours Informatique 1. Monsieur SADOUNI Salheddine

Structure de base d un ordinateur

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Architecture des calculateurs

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

IV- Comment fonctionne un ordinateur?

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

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

Ordinateurs, Structure et Applications

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

Cours 3 : L'ordinateur

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Premiers pas sur l ordinateur Support d initiation

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

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

Structure et fonctionnement d'un ordinateur : hardware

Architecture des ordinateurs Introduction à l informatique

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Vers du matériel libre

Éléments d'architecture des ordinateurs

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

CH.3 SYSTÈMES D'EXPLOITATION

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

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

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

La carte à puce. Jean-Philippe Babau

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Matériel & Logiciels (Hardware & Software)

PRÉCISIONS ET PRÉALABLES

Organisation des Ordinateurs

Tests de performance du matériel

Guide Mémoire NETRAM

Conception de circuits numériques et architecture des ordinateurs

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

BTS-DSI. Structure et technologie des composantes d ordinateurs

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

Un ordinateur, c est quoi?

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

Prise en main. Prise en main - 0

Gestion répartie de données - 1

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

Spécifications détaillées

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

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

CHAPITRE 4 LA MÉMOIRE DE L'ORDINATEUR

La mémoire. Un ordinateur. L'octet. Le bit

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Architecture des ordinateurs

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

Rappels d architecture

GESTION DE LA MEMOIRE

Architecture des Ordinateurs. Partie II:

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

Architecture matérielle des systèmes informatiques

Lecteur de carte à puce LCPM1 SOMMAIRE

Compilation (INF 564)

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Structure et Technologie des Ordinateurs A. Oumnad

IFT1215 Introduction aux systèmes informatiques

Les liaisons SPI et I2C

Initiation au HPC - Généralités

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Logique séquentielle

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

Introduction à l informatique en BCPST

Fiche produit FUJITSU ETERNUS DX200F Baie de stockage Flash

Spécifications détaillées

Généralités sur les systèmes d Exploitation

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

Parallélisme et Répartition

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

A -Systèmes de fichiers 1 - FAT vs NTFS

Ed 03/95 PAQ 1530 NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

VIII- Circuits séquentiels. Mémoires

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

Ordinateurs, Structure et Applications

ARCHITECTURE ET FONCTIONNEMENT

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

Architecture des ordinateurs. Robin FERCOQ

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Ordinateurs, Structure et Applications

I00 Éléments d architecture

Généralités sur les systèmes d Exploitation

Transcription:

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 TP BE : Interruptions : écoute passive des périphériques TL : ordonnanceur : exécuter plusieurs programmes en parallèle avec un chemin de données

La mémoire

Caractéristique des mémoires Caractéristiques Mode d accès : aléatoire (RAM), séquentiel (disque dur), associatif (cache) Capacité d écriture : ROM (en lecture seule), ROM (en lecture et écriture) volatilité : maintien des informations en l absence de courant? (ROM : forcément non volatile, RAM : ça dépend; SDRAM : volatile ; NVRAM : non volatile ou RAM + pile : CMOS)

Les mémoires mortes Non volatiles, en lecture seule ( ) ROM : Read Only Memory (programmée à la fabrication) PROM : Programmable Read Only Memory (fusibles; programmable une fois) EPROM : Erasable Programmable Read Only Memory (Ultraviolet) EEPROM : Electrically Programmable Read Only Memory (e.g. pour contenir le BIOS : Basic Input Output System; les paramètres sont mémorisés avec une RAM volatile + batterie)

Les mémoires en lecture/écriture Volatiles, accès aléatoire Registres : bascules D maître/esclave Static RAM (SRAM) Dynamic RAM (DRAM) Non-Volatiles accès séquentiel : Disques durs magnétiques accès aléatoire : disques durs SSD, mémoire flash, nvsram,..

Les mémoires vives Registres Registre n bits Registre n bits n D n Q E Clear n D D Q Q D Q Q D Q Q Q n D clk Verrou 1: maître D Q E Q Verrou 2 : esclave D Q E Q Q Q Capacité : 32-64 bits Temps d accès : 1 ps (10 12 s) Volatile

Les mémoires vives Static Random Access Memory (SRAM) word line Q Q bitline bitline amplificateur Capacité : 10 Ko - 10 Mo Temps d accès : 1ns Volatile

Les mémoires vives Dynamic random access memory (DRAM) word line V c C bitline Capacité : 10 Go Temps d accès : 80 ns (réécriture toutes les ms) Volatile

Les mémoires de masse Disque dur magnétique 1 0 1 0 Têtes de lecture 1 1 Capacité : 1 To Temps d accès : 10 ms Non volatile

Synthèse des mémoires vives et de masse Compromis? Type Capacité Latence Coût (au Gi-octet) Registre 100 bits 20 ps très cher SRAM 10 Ko - 10 Mo 1-10 ns 1000 e DRAM 10 Go 80 ns 10 e Flash 100 Go 100 µs 1 e Disque dur Magn 1 To 10 ms 0.1 e Une mémoire rapide et de grosse capacité??

Principe de localité La clé Les principes de localité Adresse mémoire Localité temporelle Données Pile Localité spatiale Programme localité spatiale : les accès futures en RAM se feront à des addresses proches des accès courants localité temporelle : une donnée accédée récemment sera certainement réutilisée prochainement Temps

Principe de localité Comment exploiter les principes de localité? On combine : 1 une petite mémoire rapide avec 2 une grosse mémoire lente Localité temporelle : on charge en mémoire rapide une donnée à laquelle on accède Localité spatiale : on charge aussi les voisines Politique de remplacement? Dépends de la réalisation...

Principe de localité Comment exploiter les principes de localité? Solution 1) A la charge du programmeur Processeur Pas très pratique... 10 ns 80 ns Cache (L1, L2,..) SRAM Mémoire principale DRAM

Principe de localité Comment exploiter les principes de localité? Solution 2) Hierarchie de mémoires Processeur Performances du cache Cache (L1, L2,..) Mémoire principale SRAM DRAM 10 ns 80 ns Cache hit : la donnée est dans le cache accès rapide Cache miss : la donnée n est pas dans le cache accès lent hits hits+misses misses hits+misses Hit ratio : Miss Ratio : Temps moyen d accès mémoire T m HR.t cache + MR.t mem Pour HR = 90% : T m = 17ns.

Réalisation matérielle Principe de fonctionnement d un cache Principe A partir d une petite information (clé), on retrouve le reste (valeur). Analogie : annuaire téléphone En pratique L adresse demandée est divisée en plusieurs parties dont une sert de clé. Tableau associatif : Cache[clé] = {adr, valeur,...} Si la donnée est présente en cache : valide et accès rapide Sinon il faut récupérer la donnée et la placer dans le cache.

Réalisation matérielle Réalisations matérielles d un cache Cache à correspondance directe Adresse mémoire sur 16 bits Tag }} Index { }} { { { 00 00 0000 Adresse demandée 001 E Index (4 bits) 0 1 2 E F Valid Tag (12 bits) Data 0 0x010 0x0001 1 0x004 0x0010 1 0x4C0 0x1001 1 0x001 0x7400 0 0xFFF 0x0010 lignes de cache =? Hit RAM[Adr] Cache[Adr 3 Adr 2 Adr 1 Adr 0 ] pourquoi les bits de poids faibles comme index?

Réalisation matérielle Réalisations matérielles d un cache Cache à correspondance directe par bloc Adresse mémoire sur 16 bits Tag }} Index {}}{ { { 00 00 00 Offset {}}{ 00 Adresse demandée 001 E Index : 11 Index (2 bits) 0 1 2 3 Valid Tag (12 bits) Data 0 0x010 0x0001 1 0x004 1 0x4C0 1 0x001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0002 0x0003 0x0004 lignes de cache Offset : 10 0x0003 =? Hit Un bloc : 2 offset mots; Toutes les adresses de même Index ciblent la même ligne.

Réalisation matérielle Réalisations matérielles d un cache Cache associatif Adresse demandée 001 E Adresse mémoire sur 16 bits Tag 0x034 0xF01 0x4C0 0x001 =? =? =? =? Hit Offset : 0xE Valid 0 1 1 1 Tag Offset { }} { { }} { 00 00 0000 Data (16 mots) 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0002 0x0001 0x0001 0x0001 0x0001 0x0001 0x0001 0x0003 0x0004 0x0003 Une donnée peut occuper n importe quelle ligne de cache. Lourd matériellement.

Réalisation matérielle Réalisations matérielles d un cache Cache associatif à n entrées Adresse mémoire sur 16 bits Tag }} Index { }} { { { 00 00 0000 Adresse demandée 001 E Index (4 bits) 0 1 2 E F Valid Tag (12 bits) Data 1 0x010 0x0001 1 0x014 0x0210 1 0x4C0 0x2101 1 0x001 0xF900 0 0xFFF 0x0001 Valid Tag (12 bits) Data 0 1 0 0x119 0x008 0x4D0 0x0001 0x0010 0x1001 0 0x005 0x19CB 0 0xFE9 0x0010 Valid Tag (12 bits) Data 1 1 1 0xF93 0x004 0xD61 0x0001 0xF010 0x1001 1 0x291 0x7400 0 0x01F 0x0020 hit =? =? =? Indexable comme les caches directs, cache[index] étant associatif

Cohérence mémoire Cohérence cache/mémoire centrale Processeur Problème Cache (L1, L2,..) Mémoire principale SRAM DRAM 10 ns 80 ns Une donnée d une même adresse peut être à la fois en cache et en mémoire centrale. Politiques d écriture Write through : propagation immédiate d une modification vers la mémoire principale Write back : écriture différée; écriture au remplacement (dirty bit)

Les périphériques d entrée/sortie

Aperçu Les périphériques 2 8 3 5 4 10 9 12 6 11 15 16 1 7 13 14 http://www.wikipedia.org

Aperçu Structure d un périphérique Au périphérique est associé un contrôleur (e.g. contrôleur disque) qui possède : des registres des mémoires des machines à état... Le périphérique est couplé aux bus d adresses, données, contrôle.

Bus Interconnexion des périphériques et du chemin de données P1 CPU P2 P3 CPU P1 P3 Bus P2

Bus Interconnexion des périphériques et du chemin de données Microprocesseur 00 020000e0 00800008 00000000 00000000 04 00000000 00000000 00000000 00000000 +1 08 00000c0001401900 00000000 00000000 0c 0080000c 00000000 00000000 00000000 Écran Clavier RAM Bus contrôle @Adr MicroPC 00 01 Mux 10 00 11 CodeMCount MuxSel D Adr 32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 INTA ClearIF SetIF ReadINTAdr CodeMCount D010800000 00000000 00000000 00000000 UAL D408800000 00000000 00000000 00000000 ReadMem SetMem SetRADM ReadPC SetPC ReadA SetA ReadB SetB SetSP ReadSP E0 Microcode INT E4 @Adr E8 Microcode RTI EC Bus données Bus B INTRIF Bus A Bus adresses ReadMem ReadINTAdr ReadA ReadB ReadPC ReadSP RADM INTAdr A B PC SP A SetIF D IF 0x0000 0x0002 0x0000 0x0000 0x0000 0x0000 Q clk UAL Enable SetMem SetRADM SetA SetB SetPC SetSP SetIFClearIF B Z C V S Bus S Bus externes Bus internes

Bus Interconnexion des périphériques et du chemin de données RAM Carte graphique PCI express AGP Processeur Bus système (frontside) Northbridge bus PCI Southbridge bus ISA Mémoire cache Disque dur SCSI Carte réseau Ports USB Disque dur IDE Les bus Bus Largeur (bits) Clk (MHz) Débit (Mo/s) Année ISA 16 16 8.33 15.9 1984 PCI 32 32 33 125 1993 AGP 32 66 250 1997 PCI-E 3 (x16) 16 8000 16000 2011 Bus parallèles (échange de mots, large mais court) / Bus série (bit à bit, e.g. USB)

Bus Comment contacter les entrées/sorties? Il faut pouvoir contacter les registres du contrôleur du périphérique. E/S mappées en mémoire comme pour un accès mémoire LDA, STA avec des adresses réservées, ciblant les périphériques Autre solution : pas de bus d adresse; placer dans le message un identifiant du destinataire.

Comment discuter sur le bus? Protocoles d échange : e.g. lecture mémoire Echange synchrone Horloge Adresses invalide valide Read Données invalide valide Fréquence d horloge : ajustée au périphérique le plus lent

Comment discuter sur le bus? Protocoles d échange : e.g. lecture mémoire Echange asynchrone : Master/Slave Adresses invalide valide Read MSyn requête de lecture données placées données récupérées module déconnecté Ssyn Données invalide valide Pas d horloge mais des signaux d état : handshaking Plus réactif mais plus compliqué à mettre en oeuvre.

Comment discuter sur le bus? Protocoles d échange : e.g. lecture mémoire Echange demi-synchrone Attente du processeur Horloge Adresses invalide valide Read Wait Données invalide valide Attente? e.g. Wait State : attente active

Comment discuter sur le bus? Et si on est plusieurs à vouloir parler? On sait : comment interconnecter un périphérique avec le chemin de données : bus comment réaliser un transfert synchrone/asynchrone mais on a : un bus plusieurs acteurs : mémoires, périphériques, CPU,... Nécessité d arbitrer, e.g. le premier dans un certain ordre. Et comment la demande d échange du périphérique est prise en charge?

Comment discuter sur le bus? Gestion des périphériques par interruption

Comment discuter sur le bus? Evènements synchrones Déroutements (trap, exception): événements synchrones avec l exécution d un programme, liés à une erreur : division par zéro, overflow, accès invalide à la mémoire : e.g. stack overflow Ex : Overflow Comment prendre en charge des débordements lors d opérations arithmétiques? 1 le programme teste, après chaque opération, le bit overflow (Status register) programme plus long en mémoire et à l exécution et plus compliqué à écrire 2 dérouter le fil d exécution si un débordement a lieu (à la JZA); pas de surcoût! Au regard d un programme, on peut prévoir quand un déroutement

Interruptions Evènements asynchrones Evènements asynchrones; e.g. appui sur un bouton, une touche de clavier, bourrage papier, lecture mémoire terminée,... Prise en charge par scrutation On interroge régulièrement le périphérique programmation explicite surcoût à l exécution Prise en charge par interruption Ecoute passive du périphérique : exécute un programme particulier que lorsque le périphérique lève une demande d interruption sollicite moins le processeur (e.g. lecture sur disque : données prêtes)

0x1000 0x3000 0x0010 0x1c00 0x2000 0x0001 0x000A 0x0000 0x0000 0x0000 0x0000 0x0000 [8:15] [0:7] 00 01 10 11 Mux SetT ReadT ReadINTAdr SetIF CodeMCount UAL ReadSP SetB @Adr Interruptions Modification du chemin de données On ajoute une ligne de requête d interruption (INTR) qu un périphérique peut mettre à l état haut. Registre IF pour y être sensible ou non. +1 00 04 08 0c 020000e0 00800008 00000000 00000000 00000000 00000000 00000000 00000000 00000c00 01401900 00000000 00000000 0080000c 00000000 00000000 00000000 @Adr MuxSel MicroPC 00 CodeMCount Adr 10800000 00000000 D0 00000000 00000000 08800000 00000000 D4 00000000 00000000 E0 E4 E8 EC Microcode INT Microcode RTI D 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SetSP ReadSP ClearIF INTA ReadB SetA ReadA SetPC ReadPC SetRADM SetMem ReadMem Bus B INTR IF Bus A ReadMem ReadINTAdr ReadT ReadA ReadB ReadPC ReadSP Do Adr Di RADM INTAdr Temp A B PC 0x0000 0x0002 0x0000 0x0000 0x0000 0x0000 SP 0x0000 SetIF D IF Q clk Enable A UAL B Z C V S SetMem SetRADM SetT SetA SetB SetPC SetSP SetIF ClearIF Bus S

Interruptions Ecoute passive des demandes d interruption Avant le fetch/decode, on test si une demande d interruption est levée : sinon, on entre dans la phase de fetch/decode et exécution de l instruction si oui, on part en interruption CodeMCount Z INTR & IF S 1 S 0 Sémantique 000 - - 00 MicroPC := MicroPC+1 001 - - 01 MicroPC := @Adr 010 - - 10 MicroPC := Instruction 011 0-00 MicroPC := MicroPC+1 si S 0 011 1-01 MicroPC := @Adr si S = 0 100-0 01 MicroPC := @Adr si INTR&IF 100-1 00 MicroPC := MicroPC+1 si INTR&IF

Interruptions Prise en charge de la demande d interruption Principe L interruption doit être gérée de manière transparente pour le programme interrompu sauvegarde du contexte d exécution (sur la pile) Nouvelles instructions INT (0xE000) : partir en interruption : 1 sauvegarde du contexte d exécution sur la pile 2 chargement de l adresse du programme d interruption RTI (0xE800): revenir d une interruption : 1 restauration du contexte d exécution du programme interrompu STI (0xD400) : démasque les interruptions : IF := 1 CLI (0xD000) : Masque les interruptions : IF := 0

Interruptions Comment savoir quel programme exécuter en cas d interruptions Vecteur d interruption : programme à exécuter en cas d interruption On stocke une table des vecteurs d interruption en début de mémoire : JMP init JMP introutine init:... ; le programme principal... introutine:... ; la routine d interruption... RTI ; le retour d interruption

Interruptions Chez nous : une seule interruption Nous ne prendrons ici en charge qu une interruption, l adresse de la routine d interruption est codée en dur, dans le registre INTAdr

Interruptions Résumons 1 le périphérique lève une requête d interruption INTR=1 2 le processeur détecte la requête 3 le processeur accuse réception 4 le processeur sauvegarde l état courant et se branche sur la routine d interruption (vecteur d interruption ou interrupt handler) 5 le processeur restaure l état

Interruptions L initialisation Attention La gestion de l interruption implique la pile!! Phase d initialisation (JMP init) minimale : 1 par défaut IF = 0 2 LDSPI... 3 STI

Coupleur 0x1000 0x1001 Coupleur <0x1000 D clear Q ReadMem Bus B Bus A ReadINTAdr @Adr 01 Mux [8:15] 10 [0:7] 11 MicroPC ReadA ReadB ReadPC RADM INTAdr Temp A B PC 0x0000 0x0002 0x0000 0x0000 0x0000 0x0000 SetMem SetRADM SetT SetA SetB SetPC 00 MuxSel INTR ReadT IF +1 00 CodeMCount Adr 00 04 08 0c 02000008 008000e0 00000000 00000000 00000000 00000000 00000000 00000000 00000c00 01401900 00000000 00000000 0080000c 00000000 00000000 00000000 D0 10800000 00000000 00000000 00000000 D4 08800000 00000000 00000000 00000000 E0 E4 E8 EC Microcode INT Microcode RTI SP 0x0000 SetSP ReadSP SetIF clk D SetIF Q Enable IF ClearIF UAL A D Bus S 32 S V 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 C Z B SetT ReadT ReadINTAdr SetIF ClearIF INTA CodeMCount UAL SetSP ReadSP SetB ReadB SetA ReadA SetPC ReadPC SetRADM SetMem ReadMem @Adr Interruptions Exemple jouet : En BE Bouton V + INTR RAM INTA SetMem ReadMem ADR D

Interruptions Plusieurs interruptions? On s est limité pour le moment à un seul périphérique. Prise en charge de plusieurs interruptions 1 Plusieurs lignes d interruptions 2 Centralisation et arbitrage des demandes d interruptions; Le vecteur d interruption est récupéré sur le bus de données

Interruptions Petits pas vers l OS : Ordonnanceur Problème Comment exécuter plusieurs programmes en même temps : 1 avec plusieurs chemins de données (architectures multi-coeurs) 2 avec un seul chemin de données partagé par deux programmes : en TL

Interruptions Initialisation

Interruptions Basculement de contexte

Interruptions Rétrospective et conclusion

Interruptions Cours 1 : Codons tout en binaire Codage/décodage valeur 1038-123 Maitre corbeau sur son.. Codage Décodage représentation 00100

a1 a0 s0 s1 s2 s3 X0 X1 X2 X3 s1 s0 Y X s1 Y0 Y1 Y2 Y3 U0 U1 U2 U3 16 16 16 N Z C V Interruptions Cours 2-3 : Transistors, Circuits logiques, séquenceur Couche physique Vcc p-mosfet Vin Vout n-mosfet GND Electronique analogique (ELAN), physique des semi-conducteurs Couche logique A B DEC MUX DEMUX UAL Adr ROM k n Do Capacitée : n 2 k bits s0 Systèmes logiques et électronique associée (SLEA) S

Interruptions Cours 4-5 : pile et programmation Pile et procédures Qui met quoi dans la pile? Qui enlève quoi dans la pile? Adresses Adresses Programme appelé Variables locales Programme appelé Variables locales CALL Adresse de retour (PC) RET Adresse de retour (PC) Arguments de la routine Programme appelant Place pour le résultat Sauvegarde éventuelle des registres Arguments de la routine Programme appelant Place pour le résultat Sauvegarde éventuelle des registres Programmation Fondement de l informatique et structures de données (FISDA)

Interruptions Cours 6 : mémoires caches Hierarchie de mémoire Adresse mémoire Localité temporelle Données Pile Localité spatiale Programme Processeur Temps Cache (L1, L2,..) Mémoire principale SRAM DRAM 10 ns 80 ns

Interruptions Cours 7 : périphériques et interruptions Microprocesseur 00 020000e0 00800008 00000000 00000000 04 00000000 00000000 00000000 00000000 +1 08 00000c0001401900 00000000 00000000 0c 0080000c 00000000 00000000 00000000 Écran Clavier RAM Bus contrôle @Adr MicroPC 00 01 Mux 10 00 11 CodeMCount MuxSel D Adr 32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 INTA ClearIF SetIF ReadINTAdr CodeMCount D010800000 00000000 00000000 00000000 UAL D408800000 00000000 00000000 00000000 ReadMem SetMem SetRADM ReadPC SetPC ReadA SetA ReadB SetB SetSP ReadSP E0 Microcode INT E4 @Adr E8 Microcode RTI EC Bus données Bus B INTRIF Bus A Bus adresses ReadMem ReadINTAdr ReadA ReadB ReadPC ReadSP RADM INTAdr A B PC SP A SetIF D IF 0x0000 0x0002 0x0000 0x0000 0x0000 0x0000 Q clk UAL Enable SetMem SetRADM SetA SetB SetPC SetSP SetIFClearIF B Z C V S Bus S Bus externes Bus internes

Interruptions Cours xx Systèmes d informations (SI) 1 Systèmes d exploitation : couche d abstraction supplémentaire systèmes de fichiers mémoire virtuelle ordonnanceur... 2...