Instructions et jeu d instructions

Documents pareils
Rappels d architecture

Compilation (INF 564)

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

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Exécution des instructions machine

Architecture des Ordinateurs. Partie II:

Microprocesseur + Logiciel

CM2 L architecture MIPS32

Jeu d instructions NIOS II

Licence Sciences et Technologies Examen janvier 2010

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

IV- Comment fonctionne un ordinateur?

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

Conception de circuits numériques et architecture des ordinateurs

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

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

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

Représentation des Nombres

Architecture des ordinateurs

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

Programmation assembleur : aperçu

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Codage d information. Codage d information : -Définition-

Les opérations binaires

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

Sécurité et Firewall

Parallélisme et Répartition

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

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Conversion d un entier. Méthode par soustraction

TD Architecture des ordinateurs. Jean-Luc Dekeyser

V- Manipulations de nombres en binaire

Architecture des ordinateurs Introduction à l informatique

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Projet Matlab : un logiciel de cryptage

Systèmes et traitement parallèles

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

Informatique Générale

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

Fonctionnement et performance des processeurs

Représentation d un entier en base b

QUESTION 1 {2 points}

Cours 1 : La compilation

Architecture des Ordinateurs Première partie. Licence d Informatique - IUP Miage - FIIFO

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

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

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

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

Présentation du cours

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

Initiation au binaire

AVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS

a) b)

DM 1 : Montre Autoquartz ETA

Logiciel de Base. I. Représentation des nombres

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

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

Exigences système Commercial & Digital Printing

Réaliser la fiche de lecture du document distribué en suivant les différentes étapes de la méthodologie (consulter le support du TD!

Une version javascript sera disponible directement dans le cours prochainement.

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

Architecture des ordinateurs

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Sanity Check. bgcolor mgcolor fgcolor

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Cours 1 : Qu est-ce que la programmation?

Compléments de documentation Scilab : affichage de texte et formatage de nombres

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

Initiation au HPC - Généralités

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

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

Solution du challenge SSTIC Emilien Girault ANSSI/COSSI/DTO/BAI 06/06/13

Architecture des calculateurs

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Mathématiques appliquées à l informatique

Prentice Hall, 2011 (ISBN )

Programmation système I Les entrées/sorties

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Initiation à la sécurité

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

Transmissions série et parallèle

Structure d un programme

Tout savoir sur le matériel informatique

I- Définitions des signaux.

Compression de Données - Algorithme de Huffman Document de Conception

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Isadora. Photo jpeg qualité 50% %, 320X240. Prérequis

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Transcription:

Instructions et jeu d instructions OSA Ordinateurs: Structure et Applications, Hiver 2016 Jean-François Lalonde

Rappel: ordinateur simplifié Ordinateur Liste des instructions disponibles Entrée Sortie Calculatrice contrôle Compteur Mémoire Adresse Contenu 00 901 01 309 02 901 03 109 04 902 05 000 06 07 08 09 1xx 2xx 3xx 5xx 901 902 ADD additionne le nombre à l adresse xx à la calculatrice SUB soustrait le nombre de l adresse xx à la calculatrice STORE stocke le contenu de la calculatrice à l adresse xx LOAD charge le contenu de l adresse xx dans la calculatrice INPUT lis l entrée et l écrit dans la calculatrice OUTPUT écrit le contenu de la calculatrice dans la sortie 000 BREAK arrête l exécution

Instructions et jeu d instructions Une instruction est une «action» pouvant être exécutée par le microprocesseur. Un «jeu d instructions» représente toutes les instructions pouvant être exécutées par un microprocesseur. Il existe plusieurs types d instructions: mouvements de données, arithmétique et logique, contrôle de programme, etc.

Instructions (ordinateur simplifié) 1xx 2xx 3xx 5xx 901 902 000 Jeu d instructions ADD additionne le nombre à l adresse xx à la calculatrice SUB soustrait le nombre de l adresse xx à la calculatrice STORE stocke le contenu de la calculatrice à l adresse xx LOAD charge le contenu de l adresse xx dans la calculatrice INPUT lis l entrée et l écrit dans la calculatrice OUTPUT écrit le contenu de la calculatrice dans la sortie BREAK arrête l exécution Opérations arithmétiques Mouvement de données Flot du programme

Instructions (TP1) Jeu d instructions Mnémonique MOV Rd Rs MOV Rd Const ADD Rd Rs ADD Rd Const SUB Rd Rs SUB Rd Const LDR Rd [Rs] STR Rd [Rs] JZE Rc Const JZE Rc [Rs] Déplacement de données Opérations arithmétiques Déplacement de données Flot du programme

Déplacement de données D un registre à l autre Instructions (TP1) MOV R1 R2 MOV R0 #0x71 Signification R1 R2 R0 0x71 est-ce qu on accède à la mémoire?

Déplacement de données De la mémoire vers un registre Instructions (TP1) Signification LDR R1 [R2] R1 Memoire[R2] lecture ou écriture? D un registre vers la mémoire Instructions (TP1) Signification STR R1 [R2] Memoire[R2] R1 lecture ou écriture? Memoire[XX] = contenu de la mémoire à l adresse XX

Opérations arithmétiques Additions ou soustractions de nombres entiers Instructions (TP1) Signification ADD R1 R2 R1 R1 + R2 ADD R1 #0x2 R1 R1 + 0x2 Multiplication ou divisions Instructions (ARM) Signification MUL R0 R1 R2 R0 R1 x R2

Contrôle de programmes «Sauter» d une adresse mémoire à un autre Instructions (TP1) Signification JZE R0 [R1] Si R0 == 0, alors PC R1 JZE R0 #0x2 Si R0 == 0, alors PC 0x2 Appeler une fonction Instructions (TP1) Signification BL nomdefonction PC Adresse de nomdefonction plus de détails dans 2 semaines

Rotations et décalages binaires Décalage («shift») tasser tous les bits vers la droite ou la gauche quelle est l opération arithmétique correspondante? que faire avec les nombres entiers en complément 2? Rotation comme un décalage, sauf qu on replace le bit à droite (ou à gauche) au lieu d insérer un 0 (ou un 1).

Instructions SIMD SIMD: Single Instruction, Multiple Data Traiter plusieurs données en même temps, particulièrement utile pour des applications multimédias ex: image = vecteur de pixels. On veut souvent appliquer la même opération (single instruction) à tous les pixels (multiple data)

Question Comment représente-t-on une instruction dans un ordinateur? En binaire, pardi!

Structure d une instruction Instruction: code d opération ( opcode ) en binaire des paramètres: format et taille dépendent de l opcode La taille et le format d une instruction peuvent varier Par exemple (TP1): instruction sur 16 bits 4 premiers bits: opcode combien d opcodes peut-on définir au total? 12 derniers bits: paramètres Opcode Argument 1 Argument 2 4 bits 4 bits 8 bits

Jeu d instructions La table ci-dessous est un exemple de jeu d instructions. Chaque instruction possède un mnémonique en assembleur. Toutes les instructions du microprocesseur sont sur 16 bits et se décomposent comme suit : Bits 15 à 12 : Opcode de l instruction Bits 11 à 8 : Registre utilisé comme premier paramètre. Bits 7 à 0 : Registre ou constante utilisés comme deuxième paramètre Le microprocesseur possède quatre registres généraux nommés R0, R1, R2 et R3. En plus de ces quatre registres, un registre de pointeur d instruction PC est disponible. Cependant, ce registre ne peut être utilisé qu avec l instruction MOV. Le nombre identifiant le registre PC est 0xF (15). Le jeu d instruction supporte les instructions suivantes où Rd est le registre destination, Rs le registre source et Rc le registre de condition : Mnémonique Opcode Description MOV Rd Rs 0000 Écriture de la valeur du registre Rs dans le registre Rd MOV Rd Const 0100 Écriture d une constante dans le registre Rd ADD Rd Rs 0001 Addition des valeurs des registres Rd et Rs et insertion du résultat dans le registre Rd ADD Rd Const 0101 Addition de la valeur du registre Rd avec une constante et insertion du résultat dans Rd SUB Rd Rs 0010 Soustraction de la valeur Rs à l intérieur de registre Rd. SUB Rd Const 0110 Soustraction d une constante à l intérieur du registre Rd LDR Rd [Rs] 1000 Chargement d une valeur se trouvant à l adresse Rs de l ordinateur dans un registre. STR Rd [Rs] 1001 Écriture de la valeur d un registre à l adresse Rs de l ordinateur. JZE Rc Const 1111 Saut à l instruction située à l adresse identifiée par la constante, mais seulement si Rc = 0 (sinon, cette instruction n a aucun effet). JZE Rc [Rs] 1011 Saut à l instruction située à l adresse Rs seulement si Rc = 0 (sinon, cette instruction n a aucun effet).

RISC & CISC Il existe plusieurs approches pour la conception d un microprocesseur et de son jeu d instructions. Ces approches influencent chaque aspect du design de l architecture d un microprocesseur. Les principales approches utilisées à ce jour sont CISC et RISC. CISC (Complex Instruction Set Computer) jeu d instructions complexe dont la longueur (des instructions) varie. Comme les instructions peuvent être longues et complexes, peu de registres sont requis. Exemple: x86: (8086, Pentium) RISC (Reduced Instruction Set Computer) jeu d instructions simple dont la longueur est fixe (ex: 4 octets). Plusieurs registres sont requis pour exécuter des tâches complexes. Exemple: PowerPC, ARM

RISC vs. CISC Avantages RISC (Reduced Instruction Set Computer) 10 instructions sont utilisées 70% du temps Avoir plusieurs registres permet d éviter les accès mémoires (qui sont plus lents) Avantages CISC (Complex Instruction Set Computer) Plus de flexibilité au programmeur (par exemple, transferts mémoire-mémoire) Programmes plus courts, plus petits Opérations fetch-decode-execute sont simplifiées, car toutes les instructions ont la même taille Opérations simplifiées = architecture simplifiée = consommation réduite Les microprocesseurs modernes sont des microprocesseurs RISCs ou hybrides (un microprocesseur supportant des instructions ayant deux longueurs seulement par exemple). Les microprocesseurs CISCs disponibles découpent habituellement les instructions complexes en instructions simples (comme du RISC) avant de les exécuter.