Architecture des ordinateurs



Documents pareils
Structure fonctionnelle d un SGBD

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

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

Architecture des ordinateurs

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

Conception de circuits numériques et architecture des ordinateurs

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

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Partie 7 : Gestion de la mémoire

IV- Comment fonctionne un ordinateur?

Cours 1 : Qu est-ce que la programmation?

Cours Informatique 1. Monsieur SADOUNI Salheddine

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmation assembleur : aperçu

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

ASR1 TD7 : Un microprocesseur RISC 16 bits

Structure d un programme

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture matérielle des systèmes informatiques

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

Gestion de la mémoire

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

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

Compilation (INF 564)

Fonctionnement et performance des processeurs

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

Microprocesseur + Logiciel

IFT1215 Introduction aux systèmes informatiques

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

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)

Introduction aux SGBDR

Rappels d architecture

Licence Sciences et Technologies Examen janvier 2010

Systèmes et traitement parallèles

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

Cours de Systèmes d Exploitation

CM2 L architecture MIPS32

PIC : COURS ASSEMBLEUR

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

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

Éléments d'architecture des ordinateurs

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

Architecture des ordinateurs Introduction à l informatique

Exécution des instructions machine

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

Exécutif temps réel Pierre-Yves Duval (cppm)

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

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

Architecture des ordinateurs

Limitations of the Playstation 3 for High Performance Cluster Computing

Les structures de données. Rajae El Ouazzani

Cours 1 : La compilation

Ordinateurs, Structure et Applications

Conventions d écriture et outils de mise au point

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

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

PG208, Projet n 3 : Serveur HTTP évolué

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Programmation Classique en langage C

Cours 3 : L'ordinateur

Architecture des Ordinateurs. Partie II:

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

Conception des systèmes répartis

LA mémoire principale est le lieu où se trouvent les programmes et les

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

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

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

Cours d Algorithmique et de Langage C v 3.0

Représentation des Nombres

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

Le langage C. Séance n 4

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

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

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

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

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

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

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


Systemes d'exploitation des ordinateurs

Représentation d un entier en base b

Une version javascript sera disponible directement dans le cours prochainement.

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Traduction des Langages : Le Compilateur Micro Java

SYS MEM. Gestion de la mémoire. Table des matières. IUT - Département Informatique. ASR2-Système. 1.1 Motivation

Cours Programmation Système

CESI Bases de données

Chapitre 4 : Les mémoires

Présentation du module Base de données spatio-temporelles

Le prototype de la fonction main()

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

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Corrigés des premiers exercices sur les classes

Programmation système de commandes en C

Transcription:

Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22

Micro-architecture Archi 2/22

Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur? Comment interagir avec la mémoire? L UAL est en quelque sorte le cerveau de la machine. Comment peut-on la commander? Quel langage utilise-t-on pour communiquer avec l UAL? Comment de simples opérations réalisables par l UAL peuvent-elles aboutir à un programme? Il n y a pas de réponse universelle, pas de modèle d architecture. Pour chaque micro-processeur, des choix sont faits, en essayant d équilibrer le coût et les performances. Dans ce cours : exemple théorique d architecture, version simplifiée de celle présentée dans le livre d A. Tanenbaum. Archi 3/22

Chemin des données : le rôle central des registres Comment les différents éléments présent dans le processeur interagissent-ils? 1 l UC active certains registres pour : - lire en mémoire Mémoire - écrire en mémoire principale - transférer des données vers l UAL - transférer des données depuis l UAL REGISTRES 1 3 UC Unité de Commande 2 l UC commande l action de l UAL 3 l état des registres permet de choisir la prochaine commande UAL 2 De façon indirecte (par les registres) : La mémoire, l UAL influent sur l UC. L UC influe sur la mémoire. Archi 4/22

Au niveau des registres mémoire pricipale REGISTRES Bus C RAM RDM RAP RDP autre registre RT Bus A UAL Bus B Les registres sont spécialisés, afin d aiguiller les informations entre les différents composants : RAM : Registre d Adresses Mémoire RDM : Registre de Données Mémoire RAP : Registre d Adresses de Prog. RDP : Registre de Données de Prog. RT : Registre Tampon autres registres : - SP (adresse du sommet de la pile), - BP (adresse de la base de la pile), - registres de calcul, -... Archi 5/22

Micro-architecture simple Mémoire principale lire, écrire REGISTRES DEC registres FLAGS Compteur ordinal n lignes Mémoire de commandes (microprogramme) 2 n micro-instructions Registre tampon Bus A Bus B n lignes registre de micro-instruction UAL Bus C Archi 6/22

Boucle d exécution des micro-instructions Boucle CHARGEMENT - DÉCODAGE - EXÉCUTION Tant que VRAI (le processeur est alimenté) faire : 1 Récupérer la micro-instruction courante en mémoire et la placer dans le registre de micro-instruction. 2 Modifier la valeur du compteur ordinal pour qu il pointe vers l adresse de la prochaine micro-instruction. 3 Si besoin, localiser un mot (donnée/prog.) en mémoire principale (charger le registre d adresse). 4 Si besoin, charger le mot mémoire dans un registre de données. 5 Exécuter la micro-instruction. Fin Tant que Archi 7/22

Micro-programme Archi 8/22

Microcode Micro-instruction : mot binaire codant des signaux de commande : choix de la micro-inst. suivante signaux de commande de l'ual 10 1011001 0110111110 10 10 signaux de commande des registres et de la mémoire Micro-code : suite de micro-instructions stockées en mémoire ROM Instruction : (couche ISA) : bloc de micro-instructions réalisant une opération simple Exemples d instructions : instructions de déplacement : MOV, XCHG manipulation de la pile : PUSH et POP instructions arithmétiques et logiques : ADD, SUB, AND, OR et NOT sauts et boucles : JUMP, Jxx, LOOPxx appels de fonctions : CALL et RET Archi 9/22

Problèmes de gestion de l espace mémoire Problème n 1 Calculer ((1 + 2) (3 + 4)) + ((5 + 6) (7 + 8)) en mémorisant les calculs intermédiaires. Combien faut-il de registres dans ce cas là? Quel est le nombre maximal de registres utilisés dans un calcul? Problème n 2 Stocker les variables locales des fonctions. Où sont conservées les variables locales des fonctions? Solution simple : attribuer à toutes les variables des adresses fixes différentes. Problème : que se passe-t-il si une fonction en appelle une autre ou s appelle elle-même? Archi 10/22

Solution : la Pile la pile = espace de stockage situé en mémoire principale. taille variable accès par le sommet localisation en mémoire : - adresse du fond de la pile - pointeur vers le sommet - adresses contiguës LIFO : Last In First Out Opérations : - PUSH (ajout) - POP (retrait) "technique" 3.1415... 0xFF9A WESTERN 5 fraise ciseaux sommet de la pile fond de la pile Ajout d'un élément 3.1415... 0xFF9A WESTERN 5 fraise ciseaux Suppression d'un élément 0xFF9A WESTERN 5 fraise ciseaux élément ajouté en dernier premier élément ajouté Archi 11/22

Pile d opérandes Calcul de ((1 + 2) (3 + 4)) + ((5 + 6) (7 + 8)) 2 1 1 3 4 3 3 7 3 3 3 21 8 5 21 6 5 21 11 21 7 11 21 7 11 21 15 11 21 165 21 186 Archi 12/22

Pile = bloc de variables locales void fonctiona (void){ int a1, a2;... fonctionb(0); } void fonctionb (int i){ int b1, b2, b3;... fonctionc(i); } void fonctionc (int j){ int c1, c2;... if (j==0) fonctionb(j+1); } SP BP a2 a1 b3 b2 b1 a2 a1 c2 c1 b3 b2 b1 a2 a1 b2 b2 b1 c2 c1 b3 b2 b1 a2 a1 int main(int argc, char *argv[]){ fonctiona(); fonctionc(1); } c2 c1 b3 b2 b1 c2 c1 b3 b2 b1 a2 a1 return 0; b3 b2 b1 c2 c1 b3 b2 b1 a2 a1 c2 c1 b3 b2 b1 a2 a1 b3 b2 b1 a2 a1 a2 a1 c2 c1 Archi 13/22

Exemple d instruction arithmétique : ADD Rôle : retirer les deux éléments au sommet de la pile, les additionner et placer le résultat au sommet de la pile. 1ère étape : récupérer les mots au sommets de la pile. placer l adresse du sommet de la pile (contenue dans le registre SP) dans RAM ; lire dans RDM le sommet de la pile et le placer dans RT ; calculer l adresse du mot juste en dessous du sommet de la pile et la placer dans RAM ainsi que dans le registre SP (supprime le 1er mot à additionner). 2ème étape : calculer la somme et la placer au sommet de la pile. lire en mémoire le mot pointé par RAM (placé dans RDM) ; additionner RDM et RT ; mettre le résultat dans RDM ; écrire en mémoire le contenu de RDM à l adresse contenue dans RAM (à la place du second mot à additionner). Archi 14/22

Exemple d opération sur la pile : PUSH num var Rôle : mettre la variable locale num var au sommet de la pile (num var est dans le registre de données de programme RDP). 1ère étape : récupérer la variable locale désignée par num var. placer l adresse du fond de la pile (gardée dans le registre BP) dans le registre tampon RT ; calculer l adresse de la variable locale RT + RDP et mettre le résultat dans le registre d adresse mémoire RAM ; lire la valeur de la variable locale dans le registre de données mémoire RDM ; 2ème étape : placer la variable locale au sommet de la pile. calculer l adresse du nouveau sommet de la pile et la placer dans RAM ainsi que dans le registre SP ; écrire en mémoire le contenu de RDM à l adresse pointée par le registre RAM. Archi 15/22

Appels de fonctions (CALL et RET) 1 fc_a (int parama1, int param A2){ 2 int vara1, vara2;... 3 vara2 = vara1 + fc_b(1,2);... } 4 int fc_b (int paramb1, int param B2){ 5 int varb1, varb2;... 6 return...; SP paramb2 } paramb1 SP pile. d'opérandes de fc_a y adresse courante de BP pile. d'opérandes de fc_a y SP BP pile. d'opérandes de fc_b y varb2 varb1 paramb2 paramb1 ancienne adresse de BP pile. d'opérandes SP résultat de fc_b(1,2) pile. d'opérandes de fc_a y vara2 vara2 vara2 vara2 vara1 vara1 vara1 vara1 parama2 parama2 parama2 parama2 BP parama1 état de la pile avant la ligne 3 BP parama1 état de la pile avant d'entrer dans fc_b parama1 état de la pile dans fc_b BP parama1 état de la pile au retour de fc_b Archi 16/22

Performances Archi 17/22

Comment améliorer l architecture? Lors de la conception d une micro-architecture, plusieurs paramètres entre en considération, notamment : la rapidité le coût Trouver des compromis : par exemple, rajouter des registres pour accéder rapidement à plus de données, mais pas trop car les registres coûtent très cher. REGISTRES Bus C Bus A Bus B UAL Exple : la mémoire cache autre exemple : rajout d un bus A complet. Archi 18/22

Mémoire cache : principe En pratique, les accès à la mémoire principale sont très lents ; plusieurs cycles d horloge sont souvent nécessaires pour les opérations en mémoire. Solution : rapprocher les données les plus souvent utilisées! Principe de localité : à tout instant, un programme accède à une petite partie de son espace d adressage ; 2 types de localité : Temporelle : Si un mot a été utilisé récemment, il a plus de chances d être réutilisé (exemple : boucles) ; Spatiale : Si un mot a été utilisé récemment, les mots avec des adresses voisines ont plus de chances d être utilisés (exemple : pile, tableaux) ; Idée : on place dans le cache (mémoire proche du processeur) : Les données les plus récemment adressées ; Les données en blocs (lignes de cache). Archi 19/22

Hiérarchie des caches Cache unique Processeur Mémoire principale cache Caches séparés Carte mère Boîtier processeur cache de niveau 2 cache de niveau 3 Mémoire principale Processeur L1 L1 Archi 20/22

Cache direct ligne de cache = 32 octets (en général, entre 4 et 64), soit 8 mots. à chaque ligne on associe, 1 bit valide et un indicateur de 16 bits qui identifie les adresses mémoire correspondant à cette ligne. adresse mémoire adresse virtuelle indicateur ligne mot octet 1 seul emplacement possible dans le cache pour un mot donné! 2048 lignes de cache 0-31, 65536-65567, 131072-131103,... 32-63, 65568-65599, 131104-131135,...... 65404-65535, 131040-131071,... valide? indicateur ligne de 8 mots adresses correspondantes 1 trouver la ligne de cache, 2 vérifier si elle est valide, 3 vérifier l indicateur ; en cas d échec, remplacement de la ligne. Archi 21/22

Cache associatif 1ère entrée 2ème entrée 3ème entrée 4ème entrée Chaque entrée du cache contient plusieurs blocs mémoire (ici 4) en même temps. Besoin d un algorithme pour choisir la page à effacer si une page est manquante : LRU (Least Recently Used). Compromis entre le nombre d entrées et la complexité de l algorithme. Rmq : À quel moment faire la mise à jour en mémoire? Archi 22/22