Organisation de base d'une machine de von Neumann

Documents pareils
Rappels d architecture

Exécution des instructions machine

Architecture des Ordinateurs. Partie II:

Compilation (INF 564)

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

Conception de circuits numériques et architecture des ordinateurs

CM2 L architecture MIPS32

Fonctionnement et performance des processeurs

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Licence Sciences et Technologies Examen janvier 2010

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

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

Tout savoir sur le matériel informatique

Architecture des ordinateurs

Jeu d instructions NIOS II

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

Une version javascript sera disponible directement dans le cours prochainement.

Cours 3 : L'ordinateur

Matériel & Logiciels (Hardware & Software)

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

Cours 1 : La compilation

Structure et fonctionnement d'un ordinateur : hardware

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

Microprocesseur + Logiciel

Représentation des Nombres

Présentation du cours

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde 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.

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

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

Informatique Générale

Architecture matérielle des systèmes informatiques

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

IFT1215 Introduction aux systèmes informatiques

IV- Comment fonctionne un ordinateur?

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

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

Initiation au HPC - Généralités

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

Gestion mémoire et Représentation intermédiaire

Cours d algorithmique pour la classe de 2nde

Examen Médian - 1 heure 30

Représentation d un entier en base b

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Conférence sur les microcontroleurs.

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

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

Vers l'ordinateur quantique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours Informatique Master STEP

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

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Programmation assembleur : aperçu

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

Structure d un programme

ACTIVITÉ DE PROGRAMMATION


Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

Éléments d'architecture des ordinateurs

PIC : COURS ASSEMBLEUR

Le langage VHDL. Eduardo Sanchez EPFL

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

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

I.1- DÉFINITIONS ET NOTIONS DE BASE

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

Organisation des Ordinateurs

Initiation à la programmation en Python

Programmation C++ (débutant)/instructions for, while et do...while

Bases de programmation. Cours 5. Structurer les données

ROYAUME DU MAROC RESUME THEORIQUE & GUIDE DE TRAVAUX PRATIQUES : TERTIAIRE ET NTIC : SYSTÈME ET RÉSEAUX INFORMATIQUES

Prentice Hall, 2011 (ISBN )

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

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

Architecture des ordinateurs

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

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

DIRIS D-30 DIRIS Digiware D-40 DIRIS Digiware D-50

Notions fondamentales du langage C# Version 1.0

Les opérations binaires

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

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

COMMANDER la puissance par MODULATION COMMUNIQUER

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

COMMUNICATION PC/MINITEL

Algorithmique I. Algorithmique I p.1/??

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Architecture des ordinateurs

Conversion d un entier. Méthode par soustraction

Concevoir son microprocesseur

Transcription:

Organisation de base d'une machine de von Neumann Eduardo Sanchez EPFL Le logiciel variables int data = 0x123456; int result = 0; int mask = 1; int count = 0; int temp; while (count < 32) { temp = data & mask; result = result + temp; data = data >> 1; count = count + 1; }; /* result = 9 */ data: result: mask: count: temp: 0x123456 0 1 0 undef opérations et affectations contrôle Eduardo Sanchez 2

opérations et affectations 0 mov $r0, 0x123456 # $r0 data 1 mov $r1, 0 # $r1 result 2 mov $r2, 1 # $r2 mask 3 mov $r3, 0 # $r3 count 4 loop: and $r4, $r0, $r2 # $r4 = $r0 & $r2 5 add $r1, $r1, $r4 # $r1 = $r1 + $r4 6 srl $r0, $r0, 1 # $r0 = $r0 + 1 7 add $r3, $r3, 1 # $r3 = $r3 + 1 8 bne $r3, 32, loop # $r3!= 32 loop 9 fin: contrôle variables Eduardo Sanchez 3 Architecture des ordinateurs Les données traitées par un ordinateur sont stockées dans sa L'élément de l'ordinateur qui réalise les opérations de traitement des données est le processeur ou CPU (Central Processing Unit) Le processeur peut être divisé en deux parties: l'unité de traitement: ensemble d'opérateurs arithmétiques et logiques, groupés autour d'une ou plusieurs ALUs (Arithmetic and Logic Unit); l'unité de contrôle: coordonnateur des différentes activités du processeur En plus, le processeur possède ses propres unités de stockage d'information, plus rapides que la, mais moins nombreuses: les registres Eduardo Sanchez 4

processeur unité de contrôle unité de traitement bus ALU registres Le transfert des données entre la et le processeur se fait via un ensemble de lignes d'interconnexion: le bus Le processeur est capable de lire ou d'écrire une donnée dans la : il doit envoyer l'adresse de la donnée et un signal indiquant le type d'opération Eduardo Sanchez 5 L'exécution d'une tâche, aussi simple soit-elle, implique une série d'opérations, réalisées dans l'unité de traitement et coordonnées par l'unité de contrôle, avec des transferts de données entre la et le processeur L'addition de deux nombres, par exemple, pourrait se faire en 5 pas: chercher le premier nombre dans la et le placer dans un registre du processeur chercher le deuxième nombre dans la et le placer dans un autre registre activer l'additionneur avec les deux registres précédents comme sources; stocker le résultat dans un registre sauver le résultat dans la arrêter Eduardo Sanchez 6

A W Registres ALU B Op AW Wr AA AB 5 add $r1, $r1, $r4 $r1 $r1 '1' $r4 + Eduardo Sanchez 7 $r1 $r1 '1' $r4 + logique de contrôle add $r1, $r1, $r4 D 6 compteur de programme (PC) + Q 1 5 A Dout d'instruction Eduardo Sanchez 8

undef $r3 '0' 32!= 4 (= loop) D 9 compteur de programme (PC) + Q 1 logique de contrôle bne $r3, 32, loop 8 A Dout d'instruction Eduardo Sanchez 9 Architecture de von Neumann Dans les premiers ordinateurs, les différents pas nécessaires à l'exécution d'une tâche, le programme, étaient directement câblés dans l'unité de contrôle Un grand progrès a été effectué lorsque le programme, comme les données, a été codé et stocké dans la principale: c'est l'architecture appelée de von Neumann La fonction de l'unité de contrôle est de lire le programme de la, décoder les instructions et commander leur exécution Un changement de programme se fait maintenant par une simple réécriture de la Eduardo Sanchez 10

architecture de Harvard architecture de von Neumann d'instruction de données unifiée ima imd dma dmd A D processeur processeur Eduardo Sanchez 11 Langage machine Les processeurs doivent reconnaître des instructions codifiées sous la forme de groupes de bits L'ensemble des instructions reconnues par un processeur et son système de codage forment ce qu'on appelle le langage machine du processeur Il y a deux grandes familles de processeurs, selon la complexité de son langage machine: processeurs CISC (Complex Instruction Set Computer). Exemple: Pentium processeurs RISC (Reduced Instruction Set Computer). Exemples: Sparc, PowerPC, MIPS Il y a trois grands types d'instruction: transfert de données opérations arithmétiques/logiques contrôle Eduardo Sanchez 12

opcode registre source1 DIV 0 0 1 1 registre destination registre source2 opcode STOP 0 1 0 0 Eduardo Sanchez 13 Notre programme codé serait alors: 1 LOAD R0,M[0] 0000 2 LOAD R1,M[1] 0101 3 JUMP zéro,6 2006 4 DIV R2,R0,R1 3201 5 STORE M[2],R2 1202 6 STOP 4000 Eduardo Sanchez 14

Exécution du programme Pour exécuter un programme, l'unité de contrôle du processeur doit lire chaque instruction, la décoder et ensuite l'exécuter. C'est le cycle exécuté sans arrêt par un processeur: fetch-decodeexecute Pour cela, l'unité de contrôle dispose de deux registres spécialisés: le compteur de programme (PC) et le registre d'instruction (IR) Le PC contient l'adresse de la prochaine instruction à exécuter. Le IR contient le code de l'instruction en exécution Pour notre exemple précédent, le fetch implique la lecture de deux mots de la. Toute instruction, sauf le JUMP, fait donc une incrémentation par deux du PC Eduardo Sanchez 15 Exercice Supposez que vous voulez multiplier deux variables a et b, stockées dans les positions de M[20] et M[21], respectivement, pour affecter cette valeur à la variable toto, stockée à la position de M[40] C'est-à-dire, vous voulez effectuer l'opération: toto = a*b ou: M[40] = M[20]*M[21] Eduardo Sanchez 16

Le processeur possède 8 registres (R0...R7). Le registre R0 contient toujours la valeur 0 Les instructions du langage machine du processeur sont: LOAD Rd, M[adr] Rd M[adr] STORE M[adr], Rs M[adr] Rs ADD Rd, Rs1, Rs2 Rd Rs1 + Rs2 SUB Rd, Rs1, Rs2 Rd Rs1 Rs2 DEC R R R - 1 JUMP zero, adr si zero alors sauter à adr Avant d'écrire le programme, nous devons trouver un algorithme réalisant la tâche voulue Un algorithme possible serait: Eduardo Sanchez 17 lecture de a et b résultat = 0 a=0 b=0 résultat = résultat+a écriture du résultat décrémenter b Eduardo Sanchez 18