Architecture de Processeur



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

Architecture des ordinateurs

Informatique Générale

Rappels d architecture

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

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

Éléments de programmation et introduction à Java

I.1- DÉFINITIONS ET NOTIONS DE BASE

Conception de circuits numériques et architecture des ordinateurs

Machines virtuelles Cours 1 : Introduction

Programmation assembleur : aperçu

Cours Informatique 1. Monsieur SADOUNI Salheddine

Exécution des instructions machine

IV- Comment fonctionne un ordinateur?

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

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

Compilation (INF 564)

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

Architecture matérielle des systèmes informatiques

ASR1 TD7 : Un microprocesseur RISC 16 bits

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

Introduction à l Informatique licence 1 ère année Notes de Cours

CH.3 SYSTÈMES D'EXPLOITATION

Structure d un programme

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

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

Évaluation et implémentation des langages

Présentation du cours

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

Systèmes et traitement parallèles

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

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

Microprocesseur + Logiciel

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Ordinateurs, Structure et Applications

Cours 1 : La compilation

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

CM2 L architecture MIPS32

Architecture des ordinateurs

Chimie et physique informatiques

Département informatique de l université d Angers

Jeu d instructions NIOS II

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

2 Comment fonctionne un ordinateur, dans les grandes lignes

Partie 7 : Gestion de la mémoire

Histoire de l Informatique

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

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

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

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

IFT1215 Introduction aux systèmes informatiques

Conversion d un entier. Méthode par soustraction

Structure de base d un ordinateur

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

Une version javascript sera disponible directement dans le cours prochainement.

Initiation. àl algorithmique et à la programmation. en C

Concept de machine virtuelle

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

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

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

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Architecture des Ordinateurs. Partie II:

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

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

Algorithme. Table des matières

Leçon 1 : Les principaux composants d un ordinateur

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Cours 1 : Qu est-ce que la programmation?

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

Conventions d écriture et outils de mise au point

Représentation des Nombres

Les opérations binaires

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

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

Architecture de l ordinateur

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

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

Chapitre 2 : Abstraction et Virtualisation


1 L évolution de l informatique

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

La technologie Java Card TM

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

Ergonomie des Interfaces Homme-Machine

Mathématiques appliquées à l informatique

Cours d Algorithmique et de Langage C v 3.0

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

TP1 : Initiation à Java et Eclipse

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Chapitre I Notions de base et outils de travail

Informatique et Société : une brève histoire

ET LO GICIEL D UN S YS T EME IN FORMATIQUE

Le poids et la taille des fichiers

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

Transcription:

Mise à jour: Février 2012 Architecture et Programmation [Archi/Lycée] Architecture logicielle Applications 2 Nicolas Bredèche Maître de Conférences Université Paris-Sud bredeche@lri.fr Ressources bibliographiques utilisées pour ce cours : - Polycopié de cours de E. Viennet (Univ. Paris 13) - http://wikipedia.com - Patt, Patel. Introduction to Computing Systems: from bits and gates to C and beyond. McGraw Hill Int. Editions, 2001. http://fr.wikipedia.org/wiki/langage_assembleur Architecture matérielle Système d Exploitation (OS) Firmware Drivers Compilateur Processeur(s) Mémoire Périphériques Cours 1 Portes logiques, circuits Electronique et câblage Architecture logicielle Applications 3 Architecture de Processeur Architecture de Processeur 4 Système d Exploitation (OS) Micro-architecture Architecture matérielle Firmware Drivers Compilateur Processeur(s) Mémoire Périphériques Cours 1 Cours 2 Portes logiques, circuits Electronique et câblage Logique numérique Architecture externe de processeur «Instruction Set Architecture (ISA)» Spécification fonctionnelle pour le programmeur Eléments: Jeu d instructions Registres visibles Organisation de la mémoire Organisation des E/S

5 Objectif du module 6 Acquérir un... Savoir Architecture du point de vue de la programmation Langage machine Langage assembleur Savoir faire Ecrire un programme en assembleur source: David Paterons (depuis: M. Younis, CMCS 611) Plan du Cours #2 7 Architecture, Langage Machine, Assembleur Un peu d histoire Architecture de processeur Langage Assembleur Assembleur et Vie Artificielle Brève histoire des ordinateurs et de leur programmation

9 10 La pascaline (1643) Métier à tisser Jacquard (1805) addition, soustraction, conversion utilisation de cartes perforées source: wikipedia source:? source de l image: http://www.info.univ-angers.fr/~richer/ 11 12 Enigma (~1920) Machine de Babbage (1833) Ada Lovelace, première programmeuse du monde? http://www.charlesbabbage.net/ Machine électro-mécanique pour le chiffrement source: wikipedia

13 14 ENIAC (1946) Les premiers ordinateur à tubes Description du premier calculateur universel programmable source: wikipedia 15 16 UNIVAC (1951) EDVAC (1948) abandon de la carte perforée pour la cassette Adoption de l architecture von Neumann source: wikipedia source: wikipedia

17 Historique 1/2 IBM 701 (1952) calcul scientifique, pour l armée console opérateur processeur 18 1946-1956 : Les ordinateurs à tubes ENIAC, EDVAC, EDSAC, Mark 1, Univac, IBM 701 adoption de l architecture von Neumann 1956-1963 : Les ordinateurs à transistors le transistor est inventé en 1947 1955: microprogrammation et jeu d instructions 1963-1971 : Les circuits intégrés circuit intégré, inventé en 1958 miniaturisation (permet la naissance du mini-ordinateur) 1971-...? : Le micro-processeur on passe d une histoire basée sur le matériel à une histoire basée sur le niveau des langages de programmation source: wikipedia Historique 2/2 19 Perspective: langage de programmation première génération : codage machine direct en binaire deuxième génération : langage assembleur troisième génération : langages évolués - Fortran, COBOL, Simula, APL, etc. quatrième génération : langages évolués de 2ème génération - Pascal, C++, SQL, etc. - langages structurés, langages objets cinquième génération : langages et IA [échec pour l instant] - lancé par le MITI au tout début des années 1980. - moteur d inférence et Prolog Historique 2/2 20 Perspective: langage de programmation première génération : codage machine direct en binaire deuxième génération : langage assembleur troisième génération génération : langages évoluésn efface pas la Chaque nouvelle de langage - Fortran, COBOL, Simula, etc. précédente, mais s empile sur lesapl, précédentes quatrième génération : langages évolués de 2ème génération - Pascal, C++, SQL, etc. - langages structurés, langages objets cinquième génération : langages et IA [échec pour l instant] - lancé par le MITI au tout début des années 1980. - moteur d inférence et Prolog

Synthèse 21 Informatique = Information + Automatique Ordinateur Machine de traitement de l information Récupérer, stocker et traiter de l information - texte, son, image, instructions - codage sous forme binaire Architecture de Processeur source: wikipedia 23 24 Point de vue de la machine Unité de commande lecture en mémoire et décodage des instructions: Unité de traitement (ou unité arithmétique et logique) exécute les instructions qui manipulent des données Point de vue du programmeur Un jeu d instruction («Instruction Set Architecture» (ISA)) +/- indépendant de l implémentation Exemple: le jeu d instruction x86 et les processeurs Intel

Un jeu d instructions 25 Une instruction 26 Types d instructions calculs arithmétiques et logiques écriture et lecture de données en mémoire transfert de contrôle (tests et branchements) Types d architecture CISC, RISC la nature des instructions varie opcode Une instruction, c est... opérandes un «opcode» : son code opération un ou des opérande(s) : ses paramètre(s) Une instruction à un coût notion de cycles lien avec la complexité de l opération (ex.: division > addition) lien avec le type d objet manipulé (registre plus rapide que mémoire) indépendant de la fréquence du processeur Programme Un programme = des instructions élémentaires actions très simples, exécutées par le processeur opérations simples, écrire/lire la mémoire, sauts conditionnels Langage Machine (LM) chaque instruction correspond à un code spécifique directement exécutable par le processeur Assembleur (ASM) un langage de bas niveau, mais lisible instructions: symboles mnémotechniques conversion directe en LM (réversible) 27 langage de haut niveau assembleur langage machine Illustration 3+1 ADD 3 1 00000001 00000011 00000001 Mais ou met on le résultat?... il s agit d un exemple pour «jouer» 28 compréhensible pour le programmeur compréhensible par la machine

29 Registres 30 Que permet de voir l architecture de processeur? exemple avec le jeu d instructions x86 source: http://fr.wikipedia.org Les registres petites mémoires internes très rapides (notion de mot, dont la taille dépend du processeur) le nombre de registres dépend de l architecture le registre «accumulateur» stocke le résultat des opérations (ici: AX) http://fr.wikibooks.org/wiki/programmation_assembleur_x86/registres La mémoire 31 La mémoire (cont.) 32 On peut lire OU écrire sur la mémoire pour lire, il faut une adresse (qui pointe sur un emplacement de 8 bits) pour écrire, il faut en plus une valeur (notion de mot, dont la taille dépend du processeur) Quelques remarques sur la mémoire: 1 octet, c est... 8 bits 1 byte (en anglais) conversions: - 1 pétaoctet (Po) = 1 024 To = 2^50 octets - 1 téraoctet (To) = 1 024 Go = 2^40 octets - 1 gigaoctet (Go) = 1 024 Mo = 2^30 octets - 1 mégaoctet (Mo) = 1 024 ko = 2^20 octets - 1 kilooctet ( ko ) = 1 024 octets = 2^10 octets

33 34 Que fait l unité de commande? 1 - lit l instruction à exécuter 2 - effectue le traitement 3 - passe à l instruction suivante 36 Langage Machine Assembleur Assembleur exemple avec le jeu d instructions x86

Architecture x86 simplifiée 37 Segment de code et de données Registre CS (code segment) Le processeur lit le code à l adresse CS:IP Le processeur maintient à jour la valeur de IP - IP est initialisé par convention à l adresse 100h 38 décomposable en deux } sous-registres de 8 bits Registre DS (Data Segment) Ce registre pointe sur les données du programme les instructions écrivent/lisent à l adresse DS:<à définir> - exemple: MOV AX, [0110] Registre SS (Stack Segment) cf. transparent sur la pile Instructions 39 Syntaxe d affectation 40 écriture et lecture de données en mémoire affectation mémoire vers registre (et l inverse) calculs arithmétiques et logiques logique: et, ou,... arithmétique simple: +,-,*,/ arithmétique complexe: sin, cos, tan incrémentation, décrémentation, shift transfert de contrôle (tests et branchements) comparaison saut inconditionnel et sauts conditionnels appel de fonction

Adressage implicite Adressage uniquement un code opération par exemple: «incrémenter AX» Adressage immédiat code opération + opérande par exemple: «ajouter <opérande> à AX» Adressage direct l opérande contient une adresse mémoire par exemple: «écrire ds AX la valeur à l adresse <opérande>» Adressage relatif opcode le code opération est une instruction de branchement par exemple: «si AX = 0 alors IP = <opérande>» opérandes 41 Syntaxe d adressage Adressage immédiat Adressage direct Adressage relatif 42 Calcul logique 43 Opérations arithmétiques 44 exemple et aussi ROL, ROR, MUL, DIV...

Branchement inconditionnel JMP <adresse> 45 Branchements conditionnels Registre d état Il est mis à jour pour certaines opérations opérations arithmétiques instruction CMP (CoMPare) instructions STC (SeT Carry) et CLC (CLear Carry) Il contient les «indicateurs» Zero Flag (ZF) Carry Flag (CF) Sign Flag (SF) Overflow Flag (OF) Il n est pas accessible directement Il est utilisé par les instructions de branchement 46 Branchements conditionnels (cont.) 47 La pile 48 mov AX, 0xA push AX mov AX, 0xB push AX pop mov BX,AX pop push A push B pop pop Il s agit d une pile «LIFO» cf. registre SS (Stack Segment) et SP (Stack Pointer)

Les interruptions 49 50 Deux exemples Retour au DOS 51 52

53 54 55 56

57 58 59 60

Programme convertissant les majuscules en minuscules 61 Programme convertissant les majuscules en minuscules 62 Programme convertissant les majuscules en minuscules 63 Programme convertissant les majuscules en minuscules 64

Programme convertissant les majuscules en minuscules 65 Programme convertissant les majuscules en minuscules 66 Programme convertissant les majuscules en minuscules 67 Programme convertissant les majuscules en minuscules 68

Programme convertissant les majuscules en minuscules 69 Programme convertissant les majuscules en minuscules 70 Programme convertissant les majuscules en minuscules 71 Programme convertissant les majuscules en minuscules 72

Synthèse Assembleur Assembleur et Langage Machine (bijectif) Un point de passage obligé compilation d un langage de haut niveau au langage machine Et aussi... Optimisation... des opérations: réduire le nombre cycles des compilateurs: mieux traduire Machine virtuelle (ex.: Java) bytecode, portabilité, compilation à la volée Code embarqué, firmware mémoire, vitesse... mais moins facile à programmer 73 Vie Artificielle et Assembleur i/o buffer Compétition pour accéder aux ressources CPU finite memory (loop) contains self-replicator programs TIERRA Thomas Ray, 1988 AX BX CX DX registers stack Le programme ancêtre (extrait de Artificial Life, 1994, C. Adami) 1. le programme ancètre début - reproduction - procédure de copie - fin un pointeur par programme 2. mutation possible lors de la duplication 3. The Reaper: supprime le plus vieux (ie. lent) si besoin de place (ressources CPU et mémoire limitée) source: adami98

1.variantes de l ancêtre (en rouge) 1.variantes de l ancêtre (en rouge) [2]. apparition de parasites (en jaune) cf. http://life.ou.edu/ (images: Marc Cygnus) 1.variantes de l ancêtre (en rouge) cf. http://life.ou.edu/ (images: Marc Cygnus) 1.variantes de l ancêtre (en rouge) [2]. apparition de parasites (en jaune) [2]. apparition de parasites (en jaune) [3]. apparition d hôtes immunisés (en bleu) [3]. apparition d hôtes immunisés (en bleu) [4]. les hôtes immunisés se multiplient. cf. http://life.ou.edu/ (images: Marc Cygnus) cf. http://life.ou.edu/ (images: Marc Cygnus)

Propriétés émergentes TIERRA : les premiers parasites Dynamiques de l évolution Course aux armements Equilibres ponctuées Phénomènes observés Compression, hôtes-parasites, symbioses source: adami98 Fin du cours #2