Conception de circuits numériques et architecture des ordinateurs

Documents pareils
Conception de circuits numériques et architecture des ordinateurs

Exécution des instructions machine

Conception de circuits numériques et architecture des ordinateurs

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

Architecture des ordinateurs

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

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

Compilation (INF 564)

Programmation assembleur : aperçu

Rappels d architecture

CM2 L architecture MIPS32

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

IFT1215 Introduction aux systèmes informatiques

Tout savoir sur le matériel informatique

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

Fonctionnement et performance des processeurs


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

Architecture des ordinateurs

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

Manipulations du laboratoire

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

Architecture des ordinateurs

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Concept de machine virtuelle

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

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Matériel & Logiciels (Hardware & Software)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Le langage VHDL. Eduardo Sanchez EPFL

Chapitre 4 : Les mémoires

SUR MODULE CAMÉRA C38A (OV7620)

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

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

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Architecture des calculateurs

Système binaire. Algèbre booléenne

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

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

IFT2880 Organisation des ordinateurs et systèmes

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Recherche dans un tableau

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

Ordinateurs, Structure et Applications

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

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

La norme Midi et JavaSound

Présentation du cours

Kit pédagogique RFID-EDUC

Licence Sciences et Technologies Examen janvier 2010

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

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

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

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

Architecture des ordinateurs Introduction à l informatique

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

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Cours de Programmation 2

Architecture des ordinateurs. Robin FERCOQ

Programmation en langage C

PIC EVAL Dev Board PIC18F97J60

Initiation au HPC - Généralités

KL5121. Pour activer des sorties en fonction de la position d'un codeur

MAC-TC: programmation d un plate forme DSP-FPGA

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

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

Examen Médian - 1 heure 30

Reproductibilité des expériences de l article "Analyse et réduction du chemin critique dans l exécution d une application"

Gestion mémoire et Représentation intermédiaire

Organigramme / Algorigramme Dossier élève 1 SI

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

PIC : COURS ASSEMBLEUR

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

IV- Comment fonctionne un ordinateur?

GL Le Génie Logiciel

Les opérations binaires

Nouvelle version de Zonecheck, la 3.0, avec tests DNSSEC

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Cours 1 : La compilation

Une version javascript sera disponible directement dans le cours prochainement.

Prentice Hall, 2011 (ISBN )

Cours 3 : L'ordinateur

Informatique Industrielle

Jeu d instructions NIOS II

Génération de code binaire pour application multimedia : une approche au vol

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

Thème 3 Conception et vérification d architectures de systèmes sur puce

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

Architecture des ordinateurs. Loïc Cuvillon. 20 novembre 2013

Cours d algorithmique pour la classe de 2nde

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

Robot WIFIBOT Lab V3. 4 roues motrices

I- Définitions des signaux.

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 aux caches 2 / 19 Plan Plan détaillé du cours d'aujourd'hui 1 3 / 19

Plan 1 4 / 19 Rappel de l'épisode précédent Interprétation de données binaires considérées comme des instructions Lues implicitement et en séquence ISA déni les changement d'états de la machine qu'induit chaque instruction 5 / 19 ISA : exemples typiques Usage : f = a b (a + c b) a, b, c variables en mémoire, %r i, %r j registres du processeur stack HP3000, Sun picojava,... accu mostek 6502, Motorola 68H12, Microchip PIC,... 2-addr Motorola 68k, Intel x86,... 3-addr MIPS rx00, Sun Sparc Vx, IBM Power, ARM Vx,... stack accu 2-addr 3-addr 3-addr-ld/st push a clear xor %r1, %r1 mult %r1, b, c ld %r1, c push b add c add %r1, b add %r1, %r1, a ld %r2, b mult mult b mult %r1, c mult %r2, a, b mult %r1, %r1, %r2 push a add a add %r1, a sub f, %r2, %r1 ld %r3, a push c st x xor %r2, %r2 add %r1, %r1, %r3 push b clear add %r2, b mult %r2, %r2, %r3 mult add a mult %r2, a sub %r3, %r2, %r1 add mult b sub %r2, %r1 st %r3, f sub sub x mov f, %r2 pop f st f 6 / 19

Inuence de l'isa sur l'architecture : Machine à Pile Instructions push a push(mem[a]) pop a mem[a] := pop cpush n push(mem[pc + 1]) add push(pop + pop) sub push(pop pop) mult push(pop pop) De plus, pour chaque instruction Incrémentation de pc pc := pc + 1 Chargement de l'instruction suivante ir := mem[pc] 7 / 19 Inuence de l'isa sur l'architecture : Machine à Pile Instructions sur des octets 7-5 40 OPCODE 00000 push a 000 pop a 001 cpush n 010 add 100 sub 101 mult 110 Pour push a et pop, les 2 octets suivants contiennent l'adresse Pour cpush, l'octet suivant contient la constante Ressources Instructions sur 8 bits Memoire programme et données de 65536 (2 16 ) octets 8 / 19 4 case RESET 5 state := FETCH, PC := @reset 6 case FETCH 7 state := DECODE, IR := MEM[PC], PC := PC + 1 8 case DECODE 9 switch IR 7..5 do 10 case 00- state := GETLADDR; 11 case 010 state := PUSHC; 12 case 1 state := OP1; 13 endsw 14 case GETLADDR 15 state := GETHADDR, ADDR 7..0 := MEM[PC], PC := PC + 1 16 case GETHADDR 17 if IR 5 = 0 then state := PUSH ; 18 else state := POP; 19 ADDR 15..7 := MEM[PC], PC := PC + 1 20 case......; 31 endsw 32 end while 9 / 19

4 case......; 18 case PUSHC state := FETCH, push(mem[pc]), PC := PC + 1; 19 case OP1 state := OP2, top := pop(); 20 case OP2 state := OP3, pot := pop(); 21 case OP3 22 switch IR 6..5 do 23 case 00 state := ADD; 24 case 01 state := SUB; 25 case 10 state := MULT; 26 endsw 27 case ADD state := FETCH, push(pot + top); 28 case SUB state := FETCH, push(pot top); 29 case MULT state := FETCH, push(pot top); 30 endsw 31 end while 10 / 19 Inuence de l'isa sur l'architecture : Machine à Pile Ressources de la Partie Opérative wepc ir src pop pushwet wep op rw id wei wea +1 PC IR ADDR pot top D MEMORY A 11 / 19 Inuence de l'isa sur l'architecture : Machine à Accumulateur Instructions clear accu := 0 add a accu := accu + mem[a] sub a accu := accu mem[a] mult a accu := accu mem[a] st a mem[a] := accu add n accu := accu + ir 3..0 sub n accu := accu ir 3..0 mult n accu := accu ir 3..0 Incrémentation de pc pc := pc + 1 Chargement de l'instruction suivante ir := mem[pc] 12 / 19

Inuence de l'isa sur l'architecture : Machine à Accumulateur Instructions sur des octets 74 30 OPCODE nnnn clear 0000 add a 1000 mult a 1001 sub a 1010 st a 1011 add n 1100 mult n 1101 sub n 1110 Pour opérations mémoire, 2 octets suivants contiennent adresse Pour opérations avec constante, 8 <= n <= +7 Ressources Instructions sur 8 bits Memoire programme et données de 65536 (2 16 ) octets 13 / 19 4 case RESET state := FETCH, PC := @reset; 5 case FETCH state := DECODE, IR := MEM[PC], PC := PC + 1; 6 case DECODE 7 switch IR 7..4 do 8 case 0000 state := CLEAR; 9 case 10 state := GETLADDR; 10 case 1100 state := ADDC; 11 case 1101 state := MULTC; 12 case 1110 state := SUBC; 13 endsw 14 case GETLADDR 15 state := GETHADDR, ADDR 7..0 := MEM[PC], PC := PC + 1 16 case......; 28 endsw 29 end while 14 / 19 4 case......; 16 case GETHADDR 17 switch IR 5..4 do 18 case 00 state := ADD ; 19 case 01 state := MULT; 20 case 10 state := SUB; 21 endsw 22 ADDR 15..7 := MEM[PC], PC := PC + 1 23 case ADD state := FETCH, accu := accu + MEM[ADDR]; 24 case MULT state := FETCH, accu := accu MEM[ADDR]; 25 case SUB state := FETCH, accu := accu MEM[ADDR]; 26 case ST state := FETCH, MEM[ADDR] := accu; 27 case ADDC state := FETCH, accu := accu + IR 4 3 IR 3..0; 28 case MULTC state := FETCH, accu := accu IR 4 3 IR 3..0; 29 case SUBC state := FETCH, accu := accu IR 4 3 IR 3..0; 30 endsw 31 end while 15 / 19

Inuence de l'isa sur l'architecture : Machine à Accumulateur Ressources de la Partie Opérative wepc ir sel op wea rw id wei wea +1 PC IR ADDR accu D MEMORY A 16 / 19 Dépend : du nombre d'opérations du nombre d'opérandes du nombre de registres des modes d'adressage Peut être : de taille variable les instructions peuvent aller de 1 à 13 octets par exemple (x86) et possèdent des formats diérents de taille xe toute les instructions ont la même taille, i.e. 32 bits (ARM) mais ne possèdent pas pour autant le même format 17 / 19 2-adresses, 4 registres, instruction sur 8 bits 2 bits par registre MSB à 0, opérations entre 2 registres MSB à 1, opérations entre 1 registre et la mémoire opérande stocké après l'instruction (1 ou 2 octets) Exemples : add %r1, %r0 add %r2, $12 add %r3, addr formats d'instruction Regs : Mém : 74 3-2 10 OPCODE Rs Rd Const : 74 3-2 10 7 0 7 0 OPCODE 00 Rd ADDRL ADDRH 74 3-2 10 7 0 OPCODE 00 Rd CSTE 18 / 19

Résumé Implantation des processeurs Choix d'un ISA Choix de formats d'instructions adaptés Implantation naturelle sous la forme Partie Contrôle/Partie Opérative 19 / 19