Conception de circuits numériques et architecture des ordinateurs



Documents pareils
Programmation assembleur : aperçu

Conception de circuits numériques et architecture des ordinateurs

Exécution des instructions machine

Rappels d architecture

Architecture des ordinateurs

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

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

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Jeu d instructions NIOS II

Compilation (INF 564)

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ASR1 TD7 : Un microprocesseur RISC 16 bits

Éléments d'architecture des ordinateurs

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

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

IFT1215 Introduction aux systèmes informatiques

Tout savoir sur le matériel informatique

Cours 1 : La compilation

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits


Architecture Matérielle et Logicielle (LIF6) Cahier d'exercices, automne 2014

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

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

Recherche dans un tableau

Vers l'ordinateur quantique

Fonctionnement et performance des processeurs

UE Programmation Impérative Licence 2ème Année

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

Cours Informatique Master STEP

Microprocesseur + Logiciel

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

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

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

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

CM2 L architecture MIPS32

Cours 3 : L'ordinateur

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

PIC : COURS ASSEMBLEUR

I.1- DÉFINITIONS ET NOTIONS DE BASE

Machines virtuelles Cours 1 : Introduction

Une version javascript sera disponible directement dans le cours prochainement.

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

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

Architecture : Circuits numériques et éléments d architecture

IV- Comment fonctionne un ordinateur?

Programmation Orientée Objet

Cours d Algorithmique et de Langage C v 3.0

Annexe : La Programmation Informatique

Cours Langage C/C++ Programmation modulaire

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

Les fonctions logiques

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

QUESTION 1 {2 points}

Introduction à l'informatique. Vincent Boyer et Jean Méhat

Cours Composant 2. Qualité logicielle et spécications algébriques

Fiche technique CPU 314SC/DPM (314-6CG13)

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

2. Ispro nuclear electronics symposium. Sfesa (Italy), May 1975 CONTROLEUR AUTONOME JCAM-10 POUR CHASSIS CAÎ1AC

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Système M-Bus NIEVEAU TERRAIN NIVEAU AUTOMATION NIVEAU GESTION. Domaines d'application

3. Structure des ordinateurs. 3.1 L' Unité Centrale (UC) ou processeur (Central Processing Unit CPU)

Programmation Structurée en Langage C

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

SYSTÈME DE GESTION DE FICHIERS

TP 1 : 1 Calculs en binaire, octal et hexadécimal

Variateurs de vitesse

CONFIGURATION DE L AUTOMATE SIEMENS

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

PIC 16F84. Philippe Hoppenot

Architecture des ordinateurs. Robin FERCOQ

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Ordinateurs, Structure et Applications

La programmation des PIC en C. Les fonctions, les interruptions.

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

Informatique Industrielle

Année Universitaire 2009/2010 Session 2 de Printemps

Bernard HAMM, Évelyne LAVOISIER

Représentation des Nombres

Cours 1 : Qu est-ce que la programmation?

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

SUPPORT DE COURS. Langage C

Architecture des Ordinateurs. Partie II:

Structure d un programme

Informatique Générale

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Algorithmique et Programmation, IMA

Systèmes et traitement parallèles

Généralités sur le Langage Java et éléments syntaxiques.

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

Architecture des ordinateurs

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

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

Système binaire. Algèbre booléenne

Programmer en JAVA. par Tama

Contrôle d accès UTIL TP N 1 découverte

Architecture des ordinateurs Introduction à l informatique

Transcription:

Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015

Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique booléenne, portes logiques, circuits combinatoires Circuits séquentiels Construction circuits complexes Micro-architecture et fonctionnement des mémoires Machines à état Synthèse de circuits PC/PO Optimisation de circuits PC/PO Interprétation d'instructions Interprétation d'instructions Interprétation d'instructions Introduction aux caches 2 / 24

Plan Plan détaillé du cours d'aujourd'hui 1 Préambule Introduction Jeu d'instructions Modes d'adressage 3 / 24

Intérêt Intérêt Comment une suite d'octets peut-elle contrôler le monde? (télécommunications, voitures, comptes en banque, tweeter, facebook, youtube,...) 4 / 24

Intérêt Mise en contexte Langages de programmation Assurent une certaine portabilité du code Reposent sur des librairies de fonction conscientes du matériel Génération des binaires Compilateur : génère du code textuel optimisé adapté à la machine Assembleur : transforme le code textuel en code binaire Éditeur de lien : fusionne les chiers binaires en un exécutable Système d'exploitation Donne accès aux services du matériel Procède au chargement des chiers exécutables en mémoire Processeur Lit l'instruction à l'adresse du reset dès la mise sous tension Interprète les instructions jusqu'à extinction de l'alimentation 5 / 24

Plan 1 Préambule Introduction Jeu d'instructions Modes d'adressage 6 / 24

Préambule Préambule Retour sur PC/PO Algorithme eectuant l'addition ou la soustraction de données en fonction d'une entrée pm 1 while true do 2 switch pm do 3 case 0 : S := I 0 + I 1 ; 4 ; 5 case 1 : S := I 0 I 1 ; 6 ; 7 endsw 8 end while I 0 et I 1, entrées de données du circuit pm, entrée qui contrôle si l'on fait plus ou moins Comment indiquer la séquence d'entrée? En la stockant dans un tableau de bascules externes 7 / 24

Préambule Préambule Nouvelles variables t[n], tableau de n bit représentant les opérations successives, externe à la PO c, compteur initialement à 0, permettant d'indiquer les bits à lire, interne à la PO 1 while true do 2 op := t[c]; 3 c := c + 1; 4 switch op do 5 case 0 : S := I 0 + I 1 ; 6 ; 7 case 1 : S := I 0 I 1 ; 8 ; 9 endsw 10 end while I 0 et I 1, entrées de données du circuit op, opération contenant le bit d'indice c lu à partir du tableau externe 8 / 24

Préambule Préambule Modications On désire à présent ajouter multiplication et division, et faire ces calculs à l'aide de 8 registres internes de 16 bits op {00 +, 01, 10, 11 } r[8], tableau de 8 registres de 16 bits, interne r[i] := r[j] op r[k] Comment spécier ces registres? Ajouter leurs indices à chaque opération, pour indiquer registres à utiliser en entrée (source) et en sortie (destination) Ainsi : t[i] contient 2 + 3 log 2 8 = 11 bits t[i] 10..9 = op, t[i] 8..6 = dst, t[i] 5..3 = src 1, t[i] 2..0 = src 0 9 / 24

Préambule Préambule 1 while true do 2 i := t[c]; 3 c := c + 1; 4 switch i 10..9 do 5 case 00 : r[i 8..6 ] := r[i 5..3 ] + r[i 2..0 ]; 6 ; 7 case 01 : r[i 8..6 ] := r[i 5..3 ] r[i 2..0 ]; 8 ; 9 case 10 : r[i 8..6 ] := r[i 5..3 ] r[i 2..0 ]; 10 ; 11 case 11 : r[i 8..6 ] := r[i 5..3 ] r[i 2..0 ]; 12 ; 13 endsw 14 end while i contient l'ensemble des informations permettant : de connaître l'opération à exécuter d'identier les opérandes sources et destination de l'opération Séquence d'opérations 10 / 24

Introduction Introduction Problématique : Qu'est-ce qu'un programme vu du matériel? suite de bits de format ad-hoc spéciant un comportement le jeu d'instructions traduction de ce comportement en commandes matérielles but : modication de l'état de la machine Problématique : Comment exécuter des programmes? Solution : décoder les instructions pour connaître leur sémantique réaliser les changements induits par l'instruction Implantation sous forme PC/PO 11 / 24

Introduction Moyens de communications CK RESETN interruptions Bus d'adresses Bus de données instructions Processeur Bus de contrôle Bus d'adresses Bus de données Bus de contrôle données Bus d'adresses Bus de données Bus de contrôle entrées/sorties 12 / 24

Introduction Classication Mémoire d'instructions et de données partagées : architecture de Van Neumann John Von Neumann, génie Hongrois naturalisé Américain, inventeur de cette structuration, 1903-1957. Mémoire d'instructions et de données séparées : architecture Harvard Du nom de l'université dans laquelle elle a été dénie en 1944. 13 / 24

Jeu d'instructions Contenu de la mémoire Tout est aaire d'interprétation! cf cours numéro 1 données de tous types y compris les instructions Instructions Suite de n octets (plutôt que bits) interprétés par le matériel précisant : les opérations à eectuer et leurs opérandes opération op_dest, op_src1, op_src2,... le séquencement entre instructions par défaut l'instruction suivante! 14 / 24

Jeu d'instructions Ressources Opérateurs Unités fonctionnelles usuelles : ALU (+,,,,,...) Unités plus complexes :,, entières ou ottantes Unités ottantes :, 2, exp, log,... Opérandes registres cases mémoires 15 / 24

Jeu d'instructions Ressources Répartition spatiale 16 / 24

Jeu d'instructions Registres Toujours pointeur de programme (program counter ou PC) instruction registre d'état : ags, interruptions, exceptions, etc. Spéciques, suivant les processeurs accumulateur : registre destination des opérations de l'alu pointeur de pile : indique base de la pile Utile pour les appels de fonctions Généralistes, dépendant des processeurs registres à usage général : organisés en banc de registres peuvent être utilisés comme accumulateurs et pointeur de pile 17 / 24

Jeu d'instructions ISA : Instruction Set Architecture ISA : Ensemble exhaustif des instructions supportées sémantique : ce que fait l'instruction syntaxe : comment spécier l'instruction et ses opérandes Mnémonique représentation textuelle des instructions permet de faire de la programmation dite assembleur doit être traduit en langage machine Critères de choix dans la dénition d'un ISA : doit fournir un support ecace aux langages de programmation doit pouvoir être implanté ecacement régulier et complet 18 / 24

Jeu d'instructions ISA Diérents types d'instructions Opérations arithmétiques et logiques add, sub, sll, sra, inc, mov,... Transfert de données entre registre et mémoire ldw, ldb, stw, stb,... Déroutement du programme Sauts inconditionnels : jmp, ba Sauts conditionnels : jcc, bcc (cc : code conditions) Appel et retour de fonction : call, jal return, jr 19 / 24

Jeu d'instructions ISA : Diérents types Nombre d'opérandes explicites : 0, 1, 2, 3 Pour l'opération op soit à pile : op accumulateur : op addr 2 adresses : op %ri, %rj 3 adresses : op %ri, %rj, %rk push(pop pop) acc := acc mem[addr] %ri := %ri %rj %ri := %rj %rk Langage machine Format binaire codant l'instruction et ses opérandes Pas de portabilité du code binaire Chaque processeur (ou famille) possède son ISA propre un code pour un type de processeur ne tourne pas sur un autre type de processeur 20 / 24

Modes d'adressage Modes d'adressage Dénit ou l'on va chercher une instruction Absolu jmp address : pc := address Relatif à PC jmp offset : pc := pc + offset Registre jmp %ri : pc := %ri Indirect registre jmp (%ri) : pc := mem[%ri] 21 / 24

Modes d'adressage Modes d'adressage Ou un opérande Registre mov %ri, %rj : %rj := %ri Immédiat mov $12, %rj : %rj := 12 Absolu ou direct mov %ri, address : mem[address] := %ri mov address, %ri : %ri := mem[address] Indirect mov %ri, (address) : mem[mem[address]] := %ri 22 / 24

Modes d'adressage Modes d'adressage Indirect registre + déplacement mov offset(%ri), %rj : %rj := mem[%ri + offset] Indirect registre + auto-incrément / auto-décrément mov (%ri)+, %rj : %rj := mem[%ri], %ri := %ri + 1 mov (%ri)-, %rj : %rj := mem[%ri], %ri := %ri 1 Indirect registre + index + déplacement mov offset(%ri,%rk), %rj : %rj := mem[%ri + %rk + offset] Et encore d'autres! 95% des besoins couverts en 1 instruction par : registre, immédiat et indirect registre + déplacement 23 / 24

Modes d'adressage Résumé Processeur Charge des données en mémoire considérées comme des instructions Passe implicitement de l'instruction courante à l'instruction suivante Stratégie Interprète des instructions décrites sous forme binaire Agissant sur des opérandes implicites ou explicites Opérandes en registre et/ou mémoire dont l'adresse peut être calculée de manière complexe 24 / 24