Le logiciel. Organisation de base d une machine de von Neumann. variables 0x123456. undef. opérations et affectations. contrôle



Documents pareils
Rappels d architecture

Exécution des instructions machine

Compilation (INF 564)

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

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

Conception de circuits numériques et architecture des ordinateurs

Architecture des Ordinateurs. Partie II:

CM2 L architecture MIPS32

Fonctionnement et performance des processeurs

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

Jeu d instructions NIOS II

Une version javascript sera disponible directement dans le cours prochainement.

Architecture des ordinateurs

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

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

Licence Sciences et Technologies Examen janvier 2010

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

Présentation du cours

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

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

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

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

Microprocesseur + Logiciel

Gestion mémoire et Représentation intermédiaire

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Représentation des Nombres

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

Structure et fonctionnement d'un ordinateur : hardware

Tout savoir sur le matériel informatique

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

CONFIGURATION DE L AUTOMATE SIEMENS

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

Structure d un programme

Initiation au HPC - Généralités

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

Jeux de caracte res et encodage (par Michel Michaud 2014)

Informatique Générale

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

CORRECTION EXERCICES ALGORITHME 1

Architecture des ordinateurs

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

Ordinateurs, Structure et Applications

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

Le Raid c est quoi? Comment ca marche? Les différents modes RAID :

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

Chapitre 10 Arithmétique réelle

Internet Protocol. «La couche IP du réseau Internet»

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

ACTIVITÉ DE PROGRAMMATION

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

Cours 3 : L'ordinateur

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

Cours 1 : La compilation

Conférence sur les microcontroleurs.

Algorithmique I. Algorithmique I p.1/??

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

Prentice Hall, 2011 (ISBN )

Cours d algorithmique pour la classe de 2nde

Le codage informatique

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

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

Linux embarqué: une alternative à Windows CE?

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Matériel & Logiciels (Hardware & Software)

Multi Travel : Logiciel pour Agences de Voyage Technologie Client Server. MULTI Travel. Réceptif (Incoming) Excursions. Reservations Internet

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

V - Les applications. V.1 - Le Domain Name System. V Organisation de l espace. Annuaire distribué. Définition. Utilisation par le resolver

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

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

Programmation assembleur : aperçu

Représentation d un entier en base b

Microprocesseurs spatiaux Contraintes et perspectives

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

PIC : COURS ASSEMBLEUR

Examen Médian - 1 heure 30

Initiation à la programmation en Python

Quick Installation Guide TEW-421PC TEW-423PI H/W: C1.0R

Séverine Marien Maxime Ringard. 2 ème année GEII. Régulateur de charge pour station de recharge photovoltaïque

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Firewall d'infrastructure centralisé. et load-balancing. Adrien Urban Responsable R&D

prévues par la législation belge et les frais. le versement diminué des frais et des éventuelles taxes ou cotisations.

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

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

Traitement numérique de l'image. Raphaël Isdant

WSM la solution complète de provisionnement de bureaux virtuels

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

COMMUNICATION PC/MINITEL

IFT1215 Introduction aux systèmes informatiques


Annexe : La Programmation Informatique

10. Base de données et Web. OlivierCuré

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

Informatique en nuage Cloud Computing. G. Urvoy-Keller

Transcription:

Organisation de base d une machine de von Neumann Le logiciel 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 */ variables data: result: mask: count: temp: 0x123456 0 1 0 undef contrôle opérations et affectations Page 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 Page 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 Page 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 Page 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 Page 6

A W Registres ALU B Op AW Wr AA AB 5 add $r1, $r1, $r4 $r1 $r1 '1' $r4 + Page 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 Page 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 Page 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 Page 10

architecture de Harvard architecture de von Neumann d'instruction de données unifiée ima imd dma dmd A D processeur processeur Page 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 Page 12

Exemple Supposons un processeur traitant des données à 8 bits, avec 16 registres internes et une externe avec 256 positions ou cellules de stockage Les registres et les positions de reçoivent des adresses à partir de 0 unité de contrôle processeur unité de traitement 0 1 2 3 4 5 6 7 8 9 A B C D E F bus 00 01 02 03 04 05 FC FD FE FF Page 13 Un programme qui divise deux données stockées en pourrait être: 1: charger un registre avec la première donnée: instruction LOAD 2: charger un autre registre avec la deuxième donnée: instruction LOAD 3: si la deuxième valeur est zéro, aller au pas 6: instruction JUMP 4: diviser les contenus des deux registres et stocker le résultat dans un troisième registre: instruction DIV 5: sauver le résultat dans une position de : instruction STORE 6: arrêter Si l'on précise les adresses de registre et de, le programme serait: 1 LOAD R0,M[0] R0 M[0] 2 LOAD R1,M[1] R1 M[1] 3 JUMP zéro,6 si 0 aller à 6 4 DIV R2,R0,R1 R2 R0/R1 5 STORE M[2],R2 M[2] R2 6 STOP Page 14

Chaque instruction possède entre 2 et 3 opérandes Si l'on veut coder chaque instruction comme une chaîne de bits, il faut décider le nombre total de bits de l'instruction, le nombre de bits pour chaque opérande et la position dans la chaîne: c'est le format de l'instruction opérande 1 opérande 3 opcode opérande 2 L'opcode est le code de l'instruction Page 15 Pour notre exemple, nous pouvons utiliser 16 bits pour chaque instruction et les formats suivants: opcode adresse de la LOAD 0 0 0 0 adresse du registre opcode adresse de la STORE 0 0 0 1 adresse du registre opcode adresse de saut JUMP 0 0 1 0 condition Page 16

opcode registre source1 DIV 0 0 1 1 registre destination registre source2 opcode STOP 0 1 0 0 Page 17 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 Page 18

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 Page 19 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] Page 20

Le processeur possède 8 registres (R0R7) 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: Page 21 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 Page 22