Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMaurice Vincent Modifié depuis plus de 9 années
1
Représentation digitale des données Trois formats de base: 1) Décimale: base 10 (Une constante i.e dimension d ’1 vecteur) 2) Binaire: base 2 ( Mask, set/reset d ’un bit) 3) Hexadécimale: base 16 (Byte: Character, adresse,.) Décimale Binaire Hexadécimale 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 4 bits Non signés
2
Entiers Signés et non signés Valeur d ’un entier non signés: ‘ 1010 = 1(2^3)+ 0(2^2) 1(2^1) + 0(2^0) = 10 Les nombres signés sont représentés dans le format: complément à 2 - Le bit le plus significatif indique le signe i.e négatif si = 1 Le plus grand nombre positif = 2^(n-1) -1 Le plus petit nombre négatif = -2^(n-1) Exemple: 8 bit 12 = 00001100 -12 = 11110100 Avantage du complément à deux La même logique est utilisée pour l ’addition(manipulation) des nombres signés ou non signés: Non Signés Signés 1110 14 -2 + 0001 + 1 +1 -------------- ------------- ------------- 1111 15 -1 Pour obtenir le négatif: Complémenter tous les bit et ensuite ajouter 1
3
Détails du CPU Un CPU consiste en: * Ensemble de registres * ALU (Unité logique et arithmétique) * Buffer d ’instruction * décodeur d ’instruction * Registre d ’adresse de mémoire Le CPU est connecté à: * Un bus (ou plusieurs) * Mémoires * Ports d ’entrées/Sorties (I/O) * Contrôleurs d ’entrées/Sorties. Registres: * Le registre stocke les données pour les instructions I/O * Chaque registre est équivalent à 1 ensemble de bascules D (flip-flop) * Chaque bascule flip-flop stock 1 bit. A X CCR Y SP PC B
4
ALU : Unité arithmétique et logique A X CCR Y SP PC B ALU ALU exécute les opérations du CPU Une ALU simple consiste en 1 additionneur Les Opérandes sont lues et écrites dans les registres
5
Buffer et Décodeur d ’instructions AB X Y CCR SP PC ID IB ALU Le buffer IB contient l ’instruction en cours Le décodeur ID décode l ’instruction ID informe l ’ALU de l ’opération à exécuter ID indique les registres à lire et à écrire
6
Le registre d ’adresse de mémoire (MAR) AB X Y CCR SP PC ID IB ALU MAR Le MAR contient les adresses pour les références mémoires Charge l ’instruction (Fetch) Charge le registre à partir de la mémoire Stock le contenu d ’un registre dans la mémoire
7
Mémoire et Bus mémoire AB X Y CCR SP PC ID IB ALU MAR Bus mémoire Mémoire La mémoire contient les instructions et les données pour le CPU Le Bus Mémoire a des: 1) Lignes d ’adresses 2) Lignes de données 3) Lignes de contrôle
8
Ports Entrées/Sorties I/O AB X Y CCR SP PC ID IB ALU MAR Mémoire Bus mémoire Port A Port B Port C Port D Port E Unités Les Ports I/O permettent aux CPU de lire le statut (status) et d ’écrire les Commandes sur les Unités (devices)
9
Exemple: étapes nécessaires pour A+B-->A 1) (re)Set la valeur initiale du PC 2) La valeur du PC est envoyée à travers l ’ALU 3) La valeur du PC est placée dans le MAR 4) Une instruction est lue de la mémoire 5) L ’instruction est écrite dans IB 6 ) L ’instruction est décodée par ID 7) Les registres A et B sont lues 8) L ’ALU ajoute les contenus de A et B 9) La somme est écrite dans A 10) Le PC est lu ( à partir du registre PC) 11) Le PC est incrémenté par l ’ALU pour pointer vers la prochaine instruction. 12) La nouvelle valeur du PC est écrite dans PC et dan MAR. 13) L instruction suivante est obtenue de la mémoire.
10
DMA: Contrôleur d ’ accès mémoire direct CPU MémDMA Port Unités externes * Peut envoyer des commandes vers les mémoires et vers le unités Entrées/Sorties * Comme un Second CPU spécialisé dans les I/O Transfert Mém I/O avec CPU libre Avec 1 seul Bus: DMA actif CPU idle DMA est utilisé pour Transfert par paquet (burst) CPU Mém DMA I/O Mieux avec 2 bus
11
Interface mémoire Données = ensemble de mots { bit, byte, word,..} Accès Adresse { 1 position mémoire Adresse unique} Une Opération mémoire prend un temps fixe: dt Accès aléatoire ( Random access): Données accessibles de manière aléatoire (dt fixe ) Accès séquentiel : dt dépend de la séquence (i.e Bande magnétique ) Exemple du Disque dur: Accès aléatoire ( Têtes) suivi de lecture séquentielle (Traces) Types: RAM: Volatile, Random access memory (dt<5ns) ROM: Read Only EPROM: Programmables électriquement EEPROM: Effaçable, Programmables électriquement
12
Historique 1970: Intel 4004 1 mot = 4bits 1975: Intel 8008 et 8080, Motorola 6800 1mot =bits 1980: Zilog z80, Intel 8086 1 mot = 16bits 1982: MC68000, Intel iPPX-432 1 mot 32 bits Convention: 1 Byte = 8 bits, 1 mot (Word) = 16bits 132133 lsbmsb 131132133134135136137 131132133134135136137138 Byte Mot 131Mot 134 Mot 131Mot 134 LSI-11 8086 68000 Adresse début = PAIRE Adresse début = peu importe
13
Signaux: Mémoire CPU Mémoire Bus adresses Bus données Read Write IDLE READY SIZE(taille) 3 états: -) READ: Activation des ligne d ’adresses, les données accédées seront retournées dans les lignes de données. -) WRITE: le CPU donne l ’adresse et la donnée -) IDLE : Mémoire désactivée. SIZE: donne la taille ( 8 ou 16 bits) READY: Synchronisation: Signal pouvant servir à ajuster le temps de cycle mémoire (mélange de mémoire avec différent temps d ’accès).
14
Interface entrées/sorties Système I/O : Mémoire externe dont les registre sont connectés aux unités périphériques Exemple: 1 Port contenant 1 (ou 2) registres, les registres contiennent les données en TRANSIT entre le CPU et les unités périphériques. Le Port contient aussi la logique de contrôle du transfert de données entre le Port et les unités externes Commande StatutDonnées Registre Lignes de contrôle Lignes données Interface CPU PORT I/O TYPIQUE Donnée = Registre pour données en transit Commande = Registre de Contrôle <-- commande du CPU Statut = Registre accessible au CPU, informe de l ’état des opérations
15
Interactions avec les sous systèmes I/O Deux cas : 1) Programmes (Polling); 2) Interruptions 1) Interactions contrôlée par programme: I/O READ: 1) Tester « Status » du port et attend « Ready » « Ready »= 1 bit du registre « Status » (Pas de nouvelle commande s ’il y a déjà une en cours) 2) Passer une commande « Read » au registre de contrôle, le CPU peut alors faire autre chose, il passera à 3 quand il pourra accepter des données. 3) Tester «Status» du port et attendre « Ready » 4 ) Lire le « Registre Donnée » et passe à 2 sans tester « Status »pour voir s ’il peut initier une nouvelle commande « Read ».
16
I/O Write: 1) Tester « Status » et attendre « Ready ». 2) Transférer la donnée de sortie suivante dans le « registre Données » du Port. 3) Transférer une commande « Write » dans le « Registre de contrôle »du Port, le CPU peut passer alors le contrôle à une autre tâche pendant que l ’opération I/O se fait
17
Résume: I/O contrôlée par programme Request Status Report Status Demande Data (à lire) Transmet Data (à écrire) Report Data(lire) Accepte Data (écrire ) Accepte Data (pour lire) Issue la Prochaine commande Exécution Normale Accepte la commande suivante et initie une nouvelle opération I/O CPUPort Ready ? Non Oui
18
Interaction avec I/O: Contrôlées par Interruptions (IRQ) - Ici on génère une IRQ à la fin d ’une opération ( Requête) - Le CPU répond à l ’IRQ, reconnaît que l ’unité n ’est pas occupée, initie une nouvelle opération I/O I/O READ CPU signal au PORT d ’armer (enable) la requête d ’interruption (Interrupt request IRQ). Le Port fini le transfert de données et insert l ’IRQ. Dans le cas où le CPU peut être interrompu, alors il interrompt son activité et identifie l ’unité ayant émis l ’IRQ. Si pas d ’IRQ de plus haute priorité, le programme (driver) spécifique à l ’IRQ accuse réception (IRQ aknowledge), le Port doit alors enlever son IRQ. Le CPU exécute le programme qui accepte les données lues et envoie une autre commande « Read. Le CPU retourne au programme interrompu.
19
I/O Write: CPU enable l ’IRQ du Port et transmet au port la donnée et la commande « Write ». CPU s ’occupe d ’autres choses pendant que le Port transmet les données à l ’unité externe, à la fin du transfert, le Port insert l ’IRQ. Plus tard, le CPU suspend son activité et identifie le Port. CPU envoie « IRQ aknowledge »à l ’unité identifiée, cette unité enlève son IRQ. Si le CPU a plus de données a transférer, il passe alors une autre donnée et une commande « Write » au Port. Dans tous les cas le CPU retourne au programme interrompu. Exercice: Dans quelles circonstances l interaction I/O contrôlée par IRQ est préférable à celle contrôlée par programme
20
Identification de l ’unité/Port qui a émis l ’IRQ Au moins 3 méthodes différentes : A) Le CPU transmet un signal à tout le système I/O, le Port de plus haute priorité et qui a une IRQ en attente répond en plaçant son identificateur ID dans le bus I/O. Le CPU calcule l ’adresse (qui est fonction de l ’ ID) et commence l ’exécution à cette adresse. ( En fait. L ’ID du port force le CPU à se brancher sur une routine qui sert ce port particulier (c ’est le DRIVER) B) Le CPU transmet un signal à chaque port en commençant par celui qui a la plus haute priorité. Chaque Port répond à ce signal en indiquant s ’il a un IRQ active. Dès qu ’une IRQ active est détectée, le processus d ’identification est interrompu et le CPU se branche au DRIVER qui sert le port identifié. C) Le CPU possède autant de ligne IRQ que d ’unités I/O. Quand le CPU répond à un e IRQ, il se branche à une adresse qui est fonction de l ’IRQ ayant la plus haute priorité au moment du branchement.
21
Résumé: Interaction I/O contrôlée par IRQ Exécution normale état non interruptible Suspend exécution, identifie le Port Aknowledge IRQ Lecture/écriture donnée dans I/O Initie une nouvelle opération Retour au programme suspendu Transfert donnée à une unité externe Transfert terminé Insertion IRQ Répond à l ’identification d ’unité Enlève IRQ Accepte ou envoie de donnée Commence un nouveau transfert de données CPU Port I/O Temps
22
Interface pour interruption ID: chaque Port a un identificateur unique 3 lignes de contrôle: 1 Port Read 2 Port Write 3 Port IDLE Le Port peut avoir plusieurs registres --> donc l ’ID n ’est suffisant suffisant pour identifier le registre: Ici le registre « Commande/Donnée »peut être utilisé comme un ID secondaire Résolution de priorité CPUPort I/O ID du Port Données IRQ request IRQ aknowledge ID unité Port Write Port Read Port IDLE Commande/data (ID) IRQ IAK IRQ request IRQ aknowledge Autres Ports Existe plusieurs manières d ’implémentation de la résolution de priorité
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.