Cours d'architecture parallèle

Dimension: px
Commencer à balayer dès la page:

Download "Cours d'architecture parallèle"

Transcription

1 Cours d'architecture parallèle Denis Barthou 1

2 1- Parallélisme De nombreux services et machines sont déjà parallèles Internet et infrastructure de serveurs Bases de données Jeux en réseau Réseaux de senseurs (automobile, équipements embarqués, )... Quoi de neuf? 2

3 1- Parallélisme De nombreux services et machines sont déjà parallèles Internet et infrastructure de serveurs Bases de données Jeux en réseau Réseaux de senseurs (automobile, équipements embarqués, )... Quoi de neuf? Parallélisme à tous les niveaux, au niveau architecture Augmentation du nombre de coeurs 3

4 4 Nvidia Fermi: 192 cores 7,1 milliards de transistors 1- Parallélisme multicore/manycore Many core déjà présent. Intel Tera chip, 2007 (80 cores) Intel SCC, 2010 (48 cores) Many Integrated Chips (MIC) Puce KnightCorner Intel (50 cores)

5 1- Pourquoi on en est là? Loi de Moore Tous les 18 mois, le nombre de transistors double, à prix constant (1965) Une loi exponentielle s'applique également sur: les performances des processeurs, la capacité mémoire, disque la taille de la gravure (de plus en plus petite) la dissipation d'énergie 5

6 1- Loi de Moore, facteur limitant: W W = CV 2 f 6

7 1- Impacts La fréquence ne croit plus (augmente dissipation) Le nombre de coeurs augmente 7

8 1- Impacts Puissance dissipée ralentie (la cause) Performances/coeur ralenties 8

9 1- Choix des multicoeurs Choix technologique par défaut, pas une révolution choisie Besoin d'avancées décisives pour le logiciel Cacher la complexité de l'architecture Trouver du parallélisme, efficacement Toutes les applications devront tourner sur une machine parallèle Machines // pour HPC: accepte de tuner performances longtemps, d'analyser problèmes Machines pour les vrais utilisateurs: doit fonctionner, convaincre qu'il y a un intérêt au parallélisme. 9

10 1- Ne pas oublier: loi d'amdahl Métriques Speed-up: T1 / Tp Efficacité: T1 / (p.tp) Loi d'amdahl: f fraction de code parallèle, speed up max sur p proc. est: 1 / ((1 f) + f/p) En réalité, scalabilité pas si bonne et perf décroissent quand p augmente... 10

11 1- Ne pas oublier: interactions soft+hard Les performances sont le résultat des interactions entre Le compilateur, l'os Les bibliothèques, le support runtime Le matériel 11

12 1- Objectifs de ce cours Analyser et comprendre le fonctionnement d'une machine parallèle Etudier les machines parallèles actuelles Utiliser ces connaissances pour mieux optimiser des codes applicatifs 12

13 Tendances sur les performances Performances pour multicoeurs et machines parallèles sur code scientifique 13

14 Tendances sur les performances Performances pour multicoeurs et machines parallèles sur code scientifique 14

15 2- Fonctionnement unicoeur Processeurs actuels: ~1 milliard de transistors Clairement, travaillent en parallèle Comment le hardware organise/exprime le parallélisme? Trouve le parallélisme entre instructions (ILP) But des architectes jusqu'en 2002 Cacher ce parallélisme à tout le monde (utilisateur, compilateur, runtime) 15

16 2- Fonctionnement unicoeur Exemples de mécanismes pour trouver/exprimer l'ilp Pipeline: découpe l'exécution en plusieurs étapes Superscalaire: exécute plusieurs instructions à la fois VLIW: exécute des instructions composites Exécution vectorielle: une instruction opère sur plusieurs données Out of order execution: les instructions indépendantes peuvent s'exécuter en parallèle 16

17 2-a Pipeline Exemple de la laverie (D. Patterson) 30min lavage, 40min sechage, 20min pliage. Non pipeliné: 90min/pers., Bande passante: 1pers/90min Pipeliné: 120min/pers., Bande passante: 1pers/40min. Chaque étape prend le temps de l'étape la plus longue. Speed-up: augmente avec nombre d'étages. 17

18 2-a Pipeline Pipeline en 5 étages du MIPS (IF/ID/Ex/Mem/WB) 18

19 2-a Pipeline Idéalement, 1 cycle/instruction Superscalaire: moins d'1 cycle/instruction 19

20 2-a Pipeline Difficultés pour un pipeline (hazards) Dépendances de données: la valeur calculée par une instruction doit être utilisée par une autre instruction, mais l'utilisation a lieu avant le calcul... Branchements Solutions: Forwarding: passe la valeur disponible à un étage à un autre étage Stall Speculation 20

21 2-a Pipeline Dépendances, forwarding et stall Superscalaire: augmente la probabilité de hazard 21

22 2-b Out of order Idée principale: permettre aux instructions qui suivent une instruction qui stall de s'exécuter sans attendre. Problèmes de l'ooo: Interruptions? Ordre de completion des instructions et effets de bord? 22

23 2-b Out of order: exemple du MIPS 10k 23

24 2-b Out of Order: algorithme de Tomasulo 5 étapes: Dispatch: prend une instruction d'une file d'attente et la place dans un emplacement libre du ROB. Mise à jour des registres écrits Issue: attend que les opérandes de l'instruction soient prêts Execute: l'instruction part dans le pipeline Write result (WB): ecrit le resultat sur un Common Data Bus pour mettre à jour la valeur écrite et débloquer d'autres instructions Commit: met à jour le registre avec la valeur du ROB. Quand l'instruction à la tête du ROB (une file) est finie, fait sa mise à jour et enlève l'instruction 24

25 2-b Out of order: mise en place Besoin matériel: Buffer pour les instructions non terminées: reorder buffer (rob) Les registres ecrits sont renommés (évite WAR,WAW) 25

26 26

27 27

28 28

29 29

30 30

31 31

32 32

33 33

34 34

35 35

36 36

37 37

38 Plan 1. Introduction, contexte 2. Architecture unicoeur Pipeline, OoO, superscalaire, VLIW, prediction des branchements, limites à l'ilp 3. Architecture vectorielle 4. Mémoire et caches Définition, vectorisation Principe, caches, caches en multicoeur, optimisation 5. Nouvelles architectures et accélérateurs 38

39 2-b Out of order Actuellement Pipelines de plus de 10 étages 6-8 instructions lues / cycle => beaucoup d'instructions en vol OoO et ILP: calcul des dépendances, reordonnancement dynamique, renommage de registres. ROB et dispatch buffer: faire comme si instructions exécutées dans ordre séquentiel Pour éviter stalls: Spéculation, Gestion spéculative des branchements, delay slot Complexité du mécanisme: quadratique en nombre d'instructions... 39

40 2- Superscalaire / VLIW Pipeline scalaire Superscalaire et VLIW 40

41 2-c Architecture Superscalaire Caractéristiques Plusieurs instructions lancées en même temps Multiples unités fonctionnelles (y compris décodage) Adaptations par rapport pipeline simple Risques élevés de dépendances Tout est plus compliqué! Pénalité importante si bulle dans pipeline Mécanismes hardware additionnels Renommage de registres, OoO Prédiction de branchement 41

42 2-d Very Large Instruction Word Caractéristiques Les instructions sont regroupées statiquement, dans le code asm, en paquet, un paquet est exécuté par cycle Le nombre d'instruction par paquet est fixé (au max) Le compilateur fait les paquets 42

43 2-d VLIW Regroupe les instructions par paquets prédéfinis Le soft doit garantir: latence entre instructions suffisante pour satisfaire dépendances Pas d'instructions dont données non prêtes 43

44 2-d VLIW VLIW requiert support spécial du compilateur Paquets: bundle sur IA64, molecule sur Transmeta Le compilateur trouve le parallélisme Peut nécessiter recompilation quand change d'architecture 44

45 2-d VLIW Déroulage d'instructions: 45

46 2-d VLIW: exemple de l'itanium 46

47 2-d VLIW: registres Itanium 47

48 2-d VLIW: exemple de l'itanium Exécution: Les bundles sont lus jusqu'à saturation des unités fonctionnelles Au max, 2 bundles exécutés en parallèle (taille max fenêtre d'exécution) 48

49 2-d VLIW: exemple de l'itanium Exécution Tous les cycles: une nouvelle fenêtre Limitation du parallélisme: Nombre d'unités fonctionnelles Longueur du groupe d'instructions 49

50 2-d VLIW: exemple de l'itanium Exécution Tous les cycles: une nouvelle fenêtre Limitation du parallélisme: Nombre d'unités fonctionnelles Longueur du groupe d'instructions 50

51 2-d VLIW: exemple de l'itanium Mécanismes pour assurer un bon niveau de parallélisme Pas les mêmes que le superscalaire, ni OoO ni renommage de registres Les mécanismes proposés permettent au compilateur d'exprimer du parallélisme Problèmes de branchement: Prédiction statique des branchements: instructions différentes de branchement suivant probabilité de faire le branchement Prédication Dépendances (entre cases mémoire, entre un load et un store par ex.) Spéculation D'autres mécanismes complètent la panoplie: registres tournants, grand nombre de registres,... 51

52 2-d VLIW: Prédication sur Itanium Principe: Remplacer les branchements par instructions conditionnées (prédicatées) Les deux branches du if..then..else sont exécutées, en parallèle! 52

53 2-d VLIW: Prédication sur Itanium Prédication + Plus de stall dus aux branchements! Plus de branchement! + Augmente le parallélisme, très bien pour un VLIW - Beaucoup d'instructions sont des nop au final... Pas rentable pour des if..then..else contenant de longues séquences d'instructions 53

54 2-d VLIW: Spéculation Problème de dépendances: store (r1), r2 stocke la valeur de r2 à l'adresse r1 load r3, (r4) lit la valeur à l'adresse r4 et la place dans r3 Possible dépendance si r1 == r4 Les instructions ne peuvent pas être mises en parallèle, stall... Spéculation load.a r3,(r4) load spéculatif: on suppose qu'il n'y a pas de dépendance store (r1), r2 le load peut être fait bien avant le store... check.a r4 vérifie que la spéculation était légale 54

55 2-d VLIW: Spéculation Spéculation + Permet d'exprimer plus de parallélisme et diminuer les dépendances couteuses - Si spéculation erronée, exécute code de correction... - Au final, difficulté du compilateur et des optimisations à bien utiliser ce type de spéculation 55

56 2-e Prédiction de branchements Objectif: prédire le plus tot possible si L'instruction est un branchement branch predictor L'adresse du branchement branch target predictor (un cache, BTB) Idée: Prédire le futur avec le passé Etre sur de pouvoir revenir en arrière en cas de mauvaise prédiction 56

57 2-e Prédiction de branchements Algorithmes de prédiction de branchement Ultrasimple: Prédire toujours la même chose (pas pris si en avant, pris si en arrière, ) L'utilisateur prédit en choisissant l'instruction asm A 1 bit: se base sur le dernier branchement. Si branchement pris la dernière fois, prédit qu'on le prendra. Si branchement pas pris, alors prédit pas pris. Prédiction très tot: étage décodage (fetch)! 57

58 2-e Prédiction de branchements Algorithmes de prédiction A 2bits: se base sur les 2 derniers branchements. Prédiction suivant valeur des deux bits: 0 et 1: branchement pris 2 et 3: branchement pas pris Mise à jour Si pris, décrémente compteur (si 0, reste à 0) Si pas pris: incrémente compteur (si 3, reste à 3) 58

59 2-e Prédiction de branchements Corrélation entre branchements (Yeh, Patt, 1992) If (x[i]>5) y=y+4; If (x[i]>3) c=2; Si le premier branchement est pris, le deuxième aussi les 2 branchements sont corrélés Historique des branchements: garde la trace des résultats des h derniers branchements Indexé par le PC (program counter) Depuis pentium Pro: garde sur 2 bits les 2 derniers branchements 59

60 2-e Prédiction de branchements K dernières valeurs k entrées Prédicteur global, pour tous les branchements Ou prédicteur local, pour l'historique d'1 branchement Automate pris/pas pris 60

61 2-e Prédiction de branchement Limites théoriques de la prédiction de branchement: Pas possible de prédire bruit Limite pratique: Taille de l'historique Arbitre entre méthodes de prédiction 61

62 2-f Limites au parallélisme d'instructions Pour une machine idéale: Nombre de registres infini Fenêtre d'instructions infinie Nombre d'instructions/cycle infini Prédiction de branchement parfaite 62

63 2-f Limites au parallélisme d'instructions Machine plus réaliste: Fenêtre limitée (2048 instructions) Prédicteur de branchement 64 instructions/cycle max. 63

64 2-f Limites au parallélisme d'instructions Pour passer de 6 à 12 instructions/cycle, estimation: 3-4 accès mémoire/cycle 2-3 branchements/cycle Renommer plus de 20 registres/cycle Chercher 12 à 24 instructions/cycle Augmentation de la complexité limite la fréquence Ex: Itanium2, 6 instructions/cycle, large fenêtre d'exécution. Consomme beaucoup, faible fréquence. 64

65 2- VLIW/Superscalaire Conclusion VLIW et superscalaire Limites au parallélisme d'instruction (ILP) Matériel: pour le OoO, nombre de transistors croit exponentiellement avec nombre d'instructions à mettre en parallèles Logiciel: difficile de trouver des séquences de plus de 6 instructions parallèles dans les codes (même en optimisant) Gains de performances apportés par l'ilp Out of order can buy you 5 cycles, not 200 cycles (D.Levinthal, Intel) Gains au max d'un facteur 6, sur des codes très simples Ne permet pas de résoudre les longues latences mémoire (cf apres) 65

66 3- Vectoriel a) Le vectoriel, c'est quoi? Une instruction (vectorielle), appliquée sur plusieurs données (un vecteur de données) SIMD: single instruction, multiple data b) Comment l'utiliser? 66

67 3-a Vectoriel: c'est quoi? Caractéristiques Ne convient pas à tous les codes, toutes les instructions Instructions types: multimédia, calcul 3D (cartes graphiques), calcul scientifique, simulations physiques Multimédia = marché de masse (rentabilise développements) Extensions jeu d'instructions vectorielles pour toutes les architectures Intel: MMX, SSE, AVX, AVX2 IBM: Altivec ARM: Neon Sparc: Visual Instruction Set Certains processeurs vectoriels: Cray, GPUs,... 67

68 3-a Vectoriel Exemple type de code vectorisable For (i=0; i<n; i++) A[i] = B[i] + C[i]; Toutes les itérations peuvent être faites simultanément. Addition élément par élément des vecteurs B et C 68

69 3-a Vectoriel Calculs vectoriels et longueur du vecteur 69

70 3-a Vectoriel: exemple SSE Registre vectoriel (SSE) %xmm Peut être vu comme 1 valeur 128 bits, 2 valeurs 64 bits, 4 valeur 32 bits... Longueur des valeurs spécifié par l'instruction La longueur du vecteur est toujours de 128 bits Accès mémoire en 1 instruction (en load et store) 70

71 3-a Vectoriel: exemple SSE Exemple type d'instruction vectorielle (SSE) Registres vectoriel: contient différentes valeurs indépendantes (ici, 4) Les opérations sont les mêmes sur les 4 valeurs 71

72 3-a Vectoriel: exemple de AVX Extension de SSE sur 256 bits Instructions 3 adresses possibles x = y op z Contraintes d'alignement sur 256 bits pour le chargement mémoire (non alignement ralentissement) A venir: Plus de 256 bits 72

73 3-a Vectoriel: exemple Itanium Exemple d'instruction plus compliqué: psad for (i=0; i<7; i++) s+=abs(a[i]-b[i]); Calcule ⅼAi-Biⅼ Aucune chance pour le compilateur de la sélectionner! 73

74 3-a Vectoriel Jeu d'instruction vectoriel Actuellement, sur petits registres (128, 256 bits). Avant, sur Cray, registres très longs. Jeux d'instructions très riche (1400 pages juste pour décrire SSE) Utilisation des instructions vectorielles Responsabilité compilateur: nécessite vectoriseur. Difficile prise en compte de la richesse des instructions Responsabilité utilisateur: codage en utilisant l'assembleur, ou les fonctions intrinsèques (correspond à une instruction asm) Le hardware ne vectorise pas! 74

75 3-b Vectorisation Est-ce que c'est facile de vectoriser? Le compilateur peut vectoriser L'utilisateur peut vectoriser Intrinsics Attributs de type (gcc/icc) Transformations de code pour aider la vectorisation (pragmas, transformations de code, ) Est-ce que c'est intéressant de vectoriser? 75

76 3-b Vectorisation: difficile! Extrait de la documentation IBM programmeur pour Blue Gene/L 76

77 3-b Vectorisation par le compilateur Lire la documentation! La plupart des compilateurs font de l'auto-vectorisation Gcc: Donnent un rapport de vectorisation expliquant si il a vectorisé une boucle, si non pourquoi. Contraintes à la vectorisation automatique Nécessite une bonne analyse de dépendance Certaines transformations de code peuvent perdre le compilo Contraintes d'alignement (ne pas perdre de performance, ou ne pas faire bus error...) Données contigues en mémoire (pas de trou, ou de stride >1) Problème de transfert unités vectorielles unités scalaires. Il faut en général que le calcul soit entièrement vectoriel. 77

78 3-b Vectorisation à la main Quand ça ne suffit pas...il faut mettre les mains dedans En général, code non portable Eviter l'asm autant qu'on peut Solution 1: intrinsics Solution non portable pour utiliser instructions vectorielles en C/C++ Une fonction instrinsic = une instruction asm codée en C Le compilateur s'occupe de l'allocation des registres, peu d'optimisations à espérer 78

79 3-b Vectorisation Solution 1: intrinsics (extrait calcul de mandelbrot, site Intel) #include <immintrin.h>. m256 ymm13 = _mm256_mul_ps(ymm11,ymm11); // xi*xi m256 ymm14 = _mm256_mul_ps(ymm12,ymm12); // yi*yi m256 ymm15 = _mm256_add_ps(ymm13,ymm14); // xi*xi+yi*yi // xi*xi+yi*yi < 4 in each slot ymm15 = _mm256_cmp_ps(ymm15,ymm5, _CMP_LT_OQ); // now ymm15 has all 1s in the non overflowed locations test = _mm256_movemask_ps(ymm15)&255; // lower 8 bits are comparisons ymm15 = _mm256_and_ps(ymm15,ymm4); // get 1.0f or 0.0f in each field as counters // counters for each pixel iteration ymm10 = _mm256_add_ps(ymm10,ymm15); ymm15 = _mm256_mul_ps(ymm11,ymm12); // xi*yi ymm11 = _mm256_sub_ps(ymm13,ymm14); // xi*xi-yi*yi ymm11 = _mm256_add_ps(ymm11,ymm8); // xi <- xi*xi-yi*yi+x0 done! ymm12 = _mm256_add_ps(ymm15,ymm15); // 2*xi*yi ymm12 = _mm256_add_ps(ymm12,ymm9); // yi <- 2*xi*yi+y0 79

80 3-b Vectorisation Exemple de speed-up: Sur calcul fractal (trivialement vectoriel, //) Max théorique: facteur d'accélération 8 Caractéristiques du calcul: Dominé par les calculs (pas les accès mémoire) 80

81 3-b Vectorisation Solution 2: attributs de type vecteur Extensions gcc, supportées par icc. Par ex: typedef int vec attribute ((vector_size (N))); Possible d'écrire les calculs comme des types de base (+,*,/,...), génère un code vectoriel. N doit être une constante immédiate + Le compilateur se charge de la génération de code, de la vectorisation, de l'allocation des registres. - Ne permet pas l'utilisation de manipulation complexes d'éléments de vecteur 81

82 3-b Vectorisation Solution 3: Modifier son code pour que le compilateur vectorise. Quelques transformations: Choisir/recopier ses structures pour avoir des données contigues A[B[i]] recopier dans A'[i] tableau de structures structure de tableaux si besoin Eviter le controle (if...) et le transformer en expressions? Aligner ses structures (valloc, mem_align) Faire des boucles avec peu d'instructions (fissionner) 82

83 3-b Vectorisation Est-ce que c'est rentable de vectoriser? La vectorisation améliore les calculs (moins d'instructions), les opérations mémoire (moins d'instructions) La vectorisation ne change pas la latence mémoire code memory-bound : vectorisation probablement aucun effet 83

84 3- Conclusion vectorisation Important facteur pour les performances actuellement. Utiliser le compilateur au mieux Vérifier qu'il vectorise correctement (asm) Faire des transformations de code pour l'aider En dernier recours, vectoriser à la main 84

85 4- Mémoire CPU Memory Performance limitée par les accès mémoire Bande passante (quantité d'octets/cycle) Si m est la fraction moyenne d'accès mémoire dans le code, il faut 1+m accès par instruction Latence (cycles pour un accès) Temps d'un accès >> 1 cycle 85

86 4- Mémoire a) Principe général b) Fonctionnement des caches c) Caches en multicoeur d) Optimisation mémoire de codes 86

87 4-a La technologie des mémoires Dynamic RAM La mémoire principale + Faible consommation + Faible taille - Nécessite amplification Chaque lecture affaibli le signal - Signal pas carré (capacité) 1-T DRAM Cell word access transistor VREF bit Storage capacitor (FET gate, trench, stack) 87

88 88 Data D N+M M Column Decoder & Sense Amplifiers Memory cell (one bit) M bits pour cols. N bits pour lignes Row Address Decoder Row 2 N N Adresse sur N+M bits Tableaux 2D Col. 1 bit lines Col. word lines 2 M Row 1 Organisation par tableau de bits 4-a La technologie des mémoires

89 4-a Problème de la mémoire Ecart entre processeur/mémoire: +50%/an Pour un processeur superscalaire à 2Ghz 4 instructions/cycle, une DRAM à 100ns l'accès => 800 instructions pour un accès! 89

90 4-b Accès types aux données Address n loop iterations Instruction fetches Stack accesses subroutine call argument access subroutine return Data accesses Time 90

91 4-b Localité Accès mémoire suivent souvent une régularité prédictible Localité temporelle: si une cellule mémoire est accédée, il est probable qu'elle soit accédée dans un futur proche Localité spatiale: si une cellule mémoire est accédée, il est probable qu'une cellule mémoire proche soit accédée dans un futur proche Exemple de localité temporelle: les instructions dans une boucle sont accédées plusieurs fois Exemple de localité spatiale: les instructions dans une séquence sont accédées les uns après les autres. 91

92 4-b Localité spatiale et temporelle 92

93 4-b Localité spatiale et temporelle Dans une boucle for (i-0; i<n; i++) { S1 = A[i] S2 = A[i + K] } Combien d'itérations séparent deux utilisations successives d'un même élément de tableau? K Idée principale Garder A[i] lu en S1 dans une mémoire rapide jusqu'à sa prochaine réutilisation par S2 K itérations plus tard. Si stocké dans registres, nécessaire au moins K registres 93

94 4-b Cache Les caches exploitent les deux types de localité Localité temporelle: se rapellent les éléments recemment utilisés Localité spatiale: récupèrent des blocs de données voisins de celles utilisées Utilise une autre technologie: Static RAM CPU A Small, B Fast Memory (RF, SRAM) holds frequently used data Big, Slow Memory (DRAM) 94

95 4-b Cache A chaque accès mémoire: Vérifie si l'élément est dans le cache: si oui, c'est un cache hit (faible latence), Sinon c'est un cache miss (grosse latence), le chercher en mémoire. Le placer dans le cache ainsi que ses voisins. Gain attendu: T1 latence pour un hit, T2 latence pour un miss (et accès mémoire) h: fraction des références mémoires faisant un hit (hit ratio) Latence moyenne = h.t1 + (1 - h). T2 Si h=0,5, au mieux latence moyenne = ½ T2... Gain d'un facteur 2 seulement, quelque soit la vitesse du cache!! => Besoin d'avoir h proche de 1 95

96 4-b Fonctionnement du cache Points clés sur le fonctionnement Identification: comment on trouve une donnée dans le cache? Placement: où sont placées les données dans le cache? Politique de remplacement: comment faire de la place pour de nouvelles données? Politique d'écriture: comment propager les changements de données? Quelles autres stratégies pour améliorer le hit ratio? 96

97 4-b Structure du cache et identification Ligne de cache: bloc de données correspondant à un bloc de données consécutives en mémoire (par ex., 128 octets = 1 ligne) Les lignes de cache sont organisées en ensembles de lignes (sets) Associativité: nombre de lignes d'un set (identique pour tous les sets) Correspondance adresse mémoire et place dans le cache: Une partie est gardée, l' address tag, pour pouvoir l'identifier Une partie de l'adresse va correspondre au numéro de set La dernière partie de l'adresse correspond à la position de la donnée dans la ligne de cache 97

98 4-b Placement Où placer dans le cache la donnée venant de l'adresse 12? 98

99 4-b Placement 99

100 4-b Placement Associativité Une donnée peut être placée Dans n'importe quelle ligne de cache d'un set Et dans un seul set Cas extrêmes: complètement associatif (un set) ou direct map (un set=une ligne de cache). La donnée contenue à une adresse est-elle dans le cache? Calcul du set où devrait être la donnée, en fonction de l'adresse Pour chaque ligne de cache: (en parallèle) Vérification du tag avec l'adresse cherchée 100

101 4-b Remplacement: caches associatifs Quand un set est plein, quelle ligne du set remplacer? Au hasard La donnée la moins récemment utilisée (Least Recently Used, LRU) A chaque accès, on doit mettre à jour un indice de fraicheur de la donnée et des autres données du set Utilisé sur caches avec petite associativité (2,4,8) Une ligne, à tour de rôle (méthode round robin). Utilisé sur caches avec grande associativité Least Frequently Used (LFU) 101

102 4-b Politique d'écriture Quelle mise à jour du cache si on écrit une donnée vers la mémoire? Cache hit: Write through: On écrit dans le cache et la mémoire. Reste simple même si augmente l'utilisation de la bande passante mémoire Write back: On écrit dans le cache. La donnée est écrite en mémoire seulement si enlevée du cache. Un bit (appelé dirty bit) permet d'éviter copie vers mémoire si donnée pas écrite. Cache miss (pour une écriture): No write allocate: ne pas ramener la donnée écrite en cache Write allocate: ramène la donnée en cache Combinaisons possibles: write through et no write allocate 102

103 4-b Causes de cache miss Cache miss obligatoire (compulsory miss): on accède pour la première fois à la donnée Cache miss de capacité (capacity miss): La donnée a déjà été accédée mais a été enlevée du cache car le volume de données accédé depuis excède la taille du cache Cache miss de conflit (conflict miss): La donnée a déjà été accédée mais a été enlevée du cache car d'autres données l'ont évincée de son set. Il est possible qu'il reste de la place ailleurs dans le cache (problème dû à la politique de placement) 103

104 4-b Hiérarchie mémoire Généralisation à plusieurs niveaux de cache 104

105 4-b Hiérarchie mémoire Influence de la présence du L2 sur le L1 Utilise un plus petit L1 Améliore temps d'accès en cas de hit Réduit cout énergétique d'un accès (en moyenne) Utilise un L1 write-through (plus simple) et un L2 write-back sur la puce Le L2 write back absorbe le trafic mémoire sortant 105

106 4-b Hiérarchie mémoire Inclusion Cache inclusif Cache interne a une copie de lignes du cache externe Accès externe: juste besoin vérifier L2 Le plus courant Cache exclusif Cache interne peut avoir des lignes qui ne sont pas dans cache externe Echange les lignes entre caches si miss du cache interne 106

107 4-b Reduction du coût de l'associativité Associativité: Reduit le nombre de miss de conflit Coute cher à faire (surface, energie, delai) Optimisation pour contrebalancer une associativité limitée: Victim cache Way prediction 107

108 4-b Victim cache CPU RF L1 Data Cache Direct Map. (HP 7200) Victim Cache Fully Assoc. 4 blocks Evicted data from L1 Unified L2 Cache where? Victim cache: petit cache associatif qui sert de back-up à un cache direct map (Jouppi 1990) D'abord cherche donnée dans cache DM, si miss, cherche dans VC Si hit, échange donnée DM/VC. Si Miss, DM VC, VC? 108

109 4-b Victim cache Avantage du victim cache: Temps d'accès rapide (DM) Nombre réduit de conflict miss 109

110 4-b Way Predicting Instruction Cache Jump control Jump target 0x4 Add Dec Alpha21264 PC addr inst Primary Instruction way Cache Sequential Way Branch Target Way 110

111 4-b Way Prediction Cache Utilise une table de prédiction basé sur l'adresse pour prédire le way Lit la table et cherche ce way (MIPS R10000 L2) HIT MISS Return copy of data from cache Look in other way SLOW HIT (change entry in prediction table) MISS Read block of data from next level of cache 111

112 4-c Organisation des caches en multicoeurs L1: pas partagé, trop critique pour performances Partage du L2 ou L3 + Meilleure communication entre les coeurs, via le cache - Contention mémoire cache (bande passante partagée, taille du cache partagée) Pas de partage - Communication entre coeurs seulement par la mémoire + Pas de contention mémoire cache Dans tous les cas, mémoire partagée: - Partage bande passante vers la mémoire (interface de la puce) 112

113 4-c Write back/write Through Write Through Toute écriture par un processeur Mise a jour cache local Ecriture sur le bus global: maj mémoire et invalide/maj des autres caches Avantage: simple à implémenter Inconvénient: avec ~15% des accès mémoire des écritures, consomme beaucoup de bande passante. Ne scale pas avec le nombre de processeurs... Nécessite un tagging dual-way 113

114 4-c Write back/ Write Through Write back Quand cache propriétaire d'une donnée, écriture n'entraine pas écriture sur le bus Préserve bande passante Actuellement utilisé par la plupart multicores 114

115 4-c Caches et mémoire partagée Pour limiter trafic mémoire, utile d'avoir plusieurs copies des mêmes données (venant des mêmes adresses) dans les différents caches Données en lecture seule: tout va bien Ecriture d'une donnée présente dans plusieurs cache: Il faut mettre à jour les autres copies! S'appelle un problème de cohérence de cache Problème similaire avec DMA. L'unité mémoire en cache est la ligne de cache Mêmes lignes dans les caches, même si les coeurs n'ont pas accédé aux mêmes adresses! S'appelle du Faux Partage 115

116 4-c Caches et IO Address (A) Memory Bus Physical Memory Proc. Data (D) Cache R/W Either Cache or DMA can be the Bus Master and effect transfers A D R/W Page transfers occur while the Processor is running DMA DISK 116

117 4-c Caches et IO Proc. Cached portions of page Cache Memory Bus Physical Memory DMA transfers DMA DISK 117

118 4-c Cohérence de cache Pour maintenir la cohérence: Un seul processeur doit pouvoir modifier une donnée à la fois Informer des modifications Informer tous les processeurs d'une modification (snoop) Ou informer les processeurs possédant une copie d'une modification (directory) Après une modification, faire quelque chose des autres copies Invalidation: toutes les copies sont invalidées Ou Mise à jour: toutes les copies sont mises à jour 118

119 4-c Snoopy cache Nécessite cache write through. La mémoire a toujours les valeurs les plus à jour Toutes les mises à jour circulent sur bus mémoire Principe: Les caches espionnent les valeurs qui circulent sur le bus (snoopy cache) Si une valeur est écrite à une adresse mémoire, les caches vérifient qu'ils n'ont pas cette valeur. Si oui invalider leur valeur ou la mettre à jour Si un cache fait un miss sur une adresse, les caches vérifient s'ils n'ont pas cette adresse. Si oui fournir la valeur. 119

120 4-c Snoopy cache Memory Bus M1 Snoopy Cache Physical Memory M2 Snoopy Cache M3 Snoopy Cache DMA DISKS 120

121 4-c Répertoire central Principe: Pour un cache partagé, Le répertoire garde, pour chaque ligne dans les caches, les infos sur les caches qui ont la ligne Mis à jour à chaque accès à la mémoire. Permet mise à jour des caches. 121

Plan : Master IM2P2 - Calcul Scientifique

Plan : Master IM2P2 - Calcul Scientifique Plan : Les systèmes HPC Typologie des systèmes : Machines Mémoire partagée Machines à Mémoire Distribuées Machine NUMA Exemples Architectures Processeurs HPC Processeurs scalaires, superscalaires, vectoriels

Plus en détail

Design, améliorations, et implémentations

Design, améliorations, et implémentations CPU et Mémoire Design, améliorations, et implémentations Techniques et caractéristiques modernes qui permettent de donner aux ordinateurs actuels toute leur puissance 1 Architectures CPU Design de l architecture

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

Les mémoires. Eric Cariou. Département Informatique Université de Pau et des Pays de l'adour. Eric.Cariou@univ-pau.fr

Les mémoires. Eric Cariou. Département Informatique Université de Pau et des Pays de l'adour. Eric.Cariou@univ-pau.fr Les mémoires Eric Cariou Département Informatique Université de Pau et des Pays de l'adour Eric.Cariou@univ-pau.fr 1 Mémoire Mémoire Dispositif capable d'enregistrer, de conserver et de restituer des informations

Plus en détail

Les Microprocesseurs partie2

Les Microprocesseurs partie2 Université Constantine 2 Abdelhamid Mehri Faculté des NTIC Département MI Electronique des Composants & Systèmes Les Microprocesseurs partie2 Cours de L1 - TRONC COMMUN DOMAINE MATHEMATIQUES INFORMATIQUE

Plus en détail

Multi-processeurs, multi-cœurs, cohérence mémoire et cache

Multi-processeurs, multi-cœurs, cohérence mémoire et cache Multi-processeurs, multi-cœurs, cohérence mémoire et cache Intervenant : Thomas Robert Institut Mines-Télécom Parallélisme inter instructions n Exécution : une séquence d instructions appliquées à un 1

Plus en détail

Exemple: le processeur MIPS

Exemple: le processeur MIPS Exécution des instructions machine Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr] adresse (donnée, instruction

Plus en détail

Multi-processeurs, multi-cœurs et cohérence mémoire et cache

Multi-processeurs, multi-cœurs et cohérence mémoire et cache Multi-processeurs, multi-cœurs et cohérence mémoire et cache Intervenant : Thomas Robert Institut Mines-Télécom Rappel système d exploitation & Parallélisme L unité d exécution pour un système d exploitation

Plus en détail

Architectures des ordinateurs Caches et mémoire virtuelle. Daniel Etiemble de@lri.fr. Capacité mémoire SRAM. X 4 tous les trois ans.

Architectures des ordinateurs Caches et mémoire virtuelle. Daniel Etiemble de@lri.fr. Capacité mémoire SRAM. X 4 tous les trois ans. Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr Capacité mémoire 1M (bits) DRAM.5 T 1M 1M 1K 1K Date d apparition 1K 1978 1981 1984 1987 199 1993 1996 Surface SRAM/DRAM

Plus en détail

Stockage : capacité, performances

Stockage : capacité, performances Stockage : capacité, performances Intervenant :Thomas Robert C234-4 thomas.robert@telecom-paristech.fr Transparents : Thomas Robert Institut Mines-Télécom Lectures possibles Chapitre 7.2 de : http://ceit.aut.ac.ir/~amirkhani/

Plus en détail

Exécution des instructions machine

Exécution des instructions machine Exécution des instructions machine Eduardo Sanchez EPFL Exemple: le processeur MIPS add a, b, c a = b + c type d'opération (mnémonique) destination du résultat lw a, addr opérandes sources a = mem[addr]

Plus en détail

Parallélisation Automatique

Parallélisation Automatique Parallélisation Automatique Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr 8 septembre 2008 1 / 23 Pourquoi la parallélisation automatique? Les gains de performances dus à la technologie s amenuisent

Plus en détail

Stockage et mémoire, Du principe vers la réalité

Stockage et mémoire, Du principe vers la réalité Stockage et mémoire, Du principe vers la réalité Responsable :Thomas Robert C234-4 thomas.robert@telecom-paristech.fr Intervenants :Tamy Boubekeur, Guillaume Duc, Gérard Mouret, Thomas Robert Institut

Plus en détail

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire

Gestion Mémoire. Informatique Embarquée M2 / 2014. Gestion Mémoire Informatique Embarquée M2 / 24 24 Interaction CPU / mémoire Bus d'adresses CPU Bus de Données Bus de Contrôle 24 Architecture Von Neumann CPU contient: Instructions et Données CPU charge les instructions

Plus en détail

Informatique générale - processeurs

Informatique générale - processeurs Université de Nice Sophia Antipolis Licence 1 Sciences Fondamentales Informatique Générale Processeurs Jacques Farré (d'après Fabrice Huet, Wikipedia... et bien d'autres) Jacques.Farre@unice.fr http://deptinfo.unice.fr/~jf/infogene

Plus en détail

Questions à choix multiples Page 1 de 11

Questions à choix multiples Page 1 de 11 INF4170 Architecture des ordinateurs Examen final hiver 2015 Question #1 Quelle est la taille du registre IF/ID dans le circuit du processeur avec pipeline sans gestion des aléas, considérant que le signal

Plus en détail

Télécom 2A, Examen d'architecture Cours de F. Pétrot, 3 heures, tout documents autorisés.

Télécom 2A, Examen d'architecture Cours de F. Pétrot, 3 heures, tout documents autorisés. Télécom, Examen d'architecture Cours de F. Pétrot, 3 heures, tout documents autorisés. 1 Exercice 1 : Multiprocesseur (2pts) Soit un système constitué de 2 processeurs avec des caches de données sans gestion

Plus en détail

DS Architecture des Ordinateurs

DS Architecture des Ordinateurs 3IF - Architecture des ordinateurs - DS 2015 page 1/9 NOM, Prénom : DS Architecture des Ordinateurs 21/05/2015 Durée 1h30. Répondez sur le sujet. REMPLISSEZ VOTRE NOM TOUT DE SUITE. Tous documents autorisés,

Plus en détail

Architecture & Nouveautés du Core i7. Xpose Core i7 Guillaume Bedos

Architecture & Nouveautés du Core i7. Xpose Core i7 Guillaume Bedos Architecture & Nouveautés du Core i7 Xpose Core i7 Sommaire Définition Historique Rôle du microprocesseur Architecture d un microprocesseur Core i7 : Améliorations Cache HyperThreading IMC/QPI TurboBoost

Plus en détail

Comment concevoir un ordinateur? Quelques questions à considérer

Comment concevoir un ordinateur? Quelques questions à considérer Comment concevoir un ordinateur? Quelques questions à considérer Unité d entrée Unité de traitement Unité de sortie Comment coder les données Entiers, réels, caractères Comment restituer les résultats

Plus en détail

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

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

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 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 Introduction Plusieurs dizaines de processus doivent se partager

Plus en détail

Architecture des processeurs généralistes haute performance

Architecture des processeurs généralistes haute performance Architecture des processeurs généralistes haute performance Pierre Michaud (pmichaud@irisa.fr) 19 Mars 1 Exemples en technologie 90 nm Intel Pentium M «Dothan» 1.5 GHz ~ 85 mm 2 77 millions de transistors

Plus en détail

Architecture matérielle et logicielle

Architecture matérielle et logicielle Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l

Plus en détail

Fonctionnement et performance des processeurs

Fonctionnement et performance des processeurs Fonctionnement et performance des processeurs Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan Fonctionnement des processeurs Unités de calcul

Plus en détail

7.2 Structure interne d'un processeur de base.

7.2 Structure interne d'un processeur de base. LES PROCESSEURS Introduction Dans le chapitre 5, nous avons vu les processeurs selon leur type (famille, fabricant). Ce chapitre va expliquer l'architecture interne de ces processeurs et leurs performances

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Décoder la relation entre l architecture et les applications Violaine Louvet, Institut Camille Jordan CNRS & Université Lyon 1 Ecole «Découverte du Calcul» 2013 1 / 61 Simulation numérique... Physique

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2013-2014 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 Codage des nombres en base 2, logique

Plus en détail

GEL 1001 Design I (méthodologie)

GEL 1001 Design I (méthodologie) GEL 1001 Design I (méthodologie) Technique 2 Systèmes embarqués et fiabilité Hiver 2013 Département de génie électrique et de génie informatique Plan Système embarqué Ordinateur et architecture Von Neumann

Plus en détail

Initiation au HPC - Généralités

Initiation au HPC - Généralités Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours

Plus en détail

Problématique des accès mémoires irréguliers causés par les maillages non structurés :

Problématique des accès mémoires irréguliers causés par les maillages non structurés : Problématique des accès mémoires irréguliers causés par les maillages non structurés :! étude comparative entre les machines massivement multicoeurs et les GPU Loïc Maréchal / INRIA! LJLL, Demi-Journée

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Chapitre 1 Architecture des calculateurs 1.1 Introduction Ce paragraphe n a pas la prétention de présenter un cours d informatique. D une manière générale, seuls les caractéristiques architecturales qui

Plus en détail

Architecture des ordinateurs. Mémoires (II) Licence Informatique - Université de Provence. Jean-Marc Talbot

Architecture des ordinateurs. Mémoires (II) Licence Informatique - Université de Provence. Jean-Marc Talbot Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Mémoires jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des ordinateurs 120

Plus en détail

2. Optimisation de l'exponentiation modulaire

2. Optimisation de l'exponentiation modulaire Timing attack et hyperthreading Les processeurs modernes sont de plus en plus compliqués et difficiles à mettre en œuvre. Qu en est il de la sécurité des implémentations? Peut on exploiter les avancées

Plus en détail

CPU ou UCT. Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.

CPU ou UCT. Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç. CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

Plus en détail

Analyse et mesure de performances du calcul distribué

Analyse et mesure de performances du calcul distribué Analyse et mesure de performances du calcul distribué Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma CruCID Workshop, EMI, Rabat, 5 au 7 juillet 1999 Motivation Types d applications

Plus en détail

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,...

Rappels, SISD, SIMD. Calculateurs hybrides (GPU-OpenCL) Rappels, MIMD mémoire partagée. Rappels, MIMD mémoire partagée. Rappels... SISD,... Rappels, SISD, SIMD Calculateurs hybrides (GPU-OpenCL) Rappels... SISD,... SIMD Formation d Ingénieurs de l Institut Galiléee MACS 3 Philippe d Anfray Philippe.d-Anfray@cea.fr CEA DSM 2013-2014 SISD :

Plus en détail

Les systèmes embarqués

Les systèmes embarqués Unité IFS (Interface) Les systèmes embarqués Architecture des systèmes à processeur Etienne Messerli Le 17 février 2015 p 1 Ordinateur Système UNIVERSEL de traitement de l'information "binaire" Utilisé

Plus en détail

Chap. 2 - Structure d un ordinateur

Chap. 2 - Structure d un ordinateur Architecture des ordinateurs Michèle Courant S2-27 octobre 2004 Chap. 2 - Structure d un ordinateur 2.1 Processeur ou unité centrale (CPU) 2.1.1 Organisation du CPU 2.1.2 Exécution d une instruction 2.1.3

Plus en détail

Elements de microarchitecture. 1. Processeurs

Elements de microarchitecture. 1. Processeurs Elements de microarchitecture 1. Processeurs 1 Architecture simplifiée (10.000 feet view) P Core E/S IOH Caches E/S Contrôleur mémoire DIMM DIMM DIMM 2 Processeurs - A l'heure actuelle, dominé par les

Plus en détail

Architecture matérielle

Architecture matérielle Architecture matérielle Jacques Madelaine 1 Modèle de Von Neumann Mémoire Périphérique d E/S Bus de données Bus d adresses Bus de commandes UC centrale (CPU Central Processing Unit) prend depuis la mémoire

Plus en détail

Mémoire principale. Von Neumann vs. Harvard. Terminologie. Architecture et technologie des ordinateurs II. G. Tempesti Semaine VIII 1 CPU.

Mémoire principale. Von Neumann vs. Harvard. Terminologie. Architecture et technologie des ordinateurs II. G. Tempesti Semaine VIII 1 CPU. principale Structure Fonctionnement Accès MÉMOIRE PRINCIPALE BUS SYSTÈME DD Instructions MMU TLB Unité de de Unité de de Traitement Données Décodeur PC ALU Unité Flottante Registres Von Neumann vs. Harvard

Plus en détail

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

Génération de code binaire pour application multimedia : une approche au vol Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation

Plus en détail

Analyse de performance et optimisation. David Geldreich (DREAM)

Analyse de performance et optimisation. David Geldreich (DREAM) Analyse de performance et optimisation David Geldreich (DREAM) Plan de l exposé Analyse de performance Outils Optimisation Démonstrations Analyse de performance Pas d optimisation sans analyse de performance

Plus en détail

Les processeurs. Les entrées-sorties

Les processeurs. Les entrées-sorties Les entrées-sorties La problématique des entrées sorties est la suivante : - Le processeur va vite, plus vite que des éléments mécaniques tel que l on trouve dans une imprimante, une souris, un clavier.

Plus en détail

Les grandes classes de système

Les grandes classes de système : Introduction Daniel Etiemble de@lri.fr Les grandes classes de système Caractéristique Ordinateur de bureau Serveur Enfoui/embarqué Prix du microprocesseur à 0 200 à 2000 par processeur 0,20 à 200 par

Plus en détail

Formation en Calcul Scientifique - LIEM2I

Formation en Calcul Scientifique - LIEM2I Formation en Calcul Scientifique - LIEM2I Introduction au calcul parallèle Loïc Gouarin, Violaine Louvet, Laurent Series Groupe Calcul CNRS 9-13 avril 2012 Loïc Gouarin, Violaine Louvet, Laurent Series

Plus en détail

Tout savoir sur le matériel informatique

Tout savoir sur le matériel informatique Tout savoir sur le matériel informatique Thème de l exposé : Les Processeurs Date : 05 Novembre 2010 Orateurs : Hugo VIAL-JAIME Jérémy RAMBAUD Sommaire : 1. Introduction... 3 2. Historique... 4 3. Relation

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Ecole d Automne «Informatique Scientifique pour le Calcul» Architecture des ordinateurs Françoise Berthoud 1 Violaine Louvet 2 Françoise Roch 3 1 Laboratoire de Physique et de Modélisation des Milieux

Plus en détail

Composantes principales des ordinateurs

Composantes principales des ordinateurs Composantes principales des ordinateurs GIF-1001: Ordinateurs: Structure et Applications Jean-François Lalonde, Hiver 2015 Stallings ch. 3, Englander ch. 7, 10.1 Architecture von Neumann Mémoire (données

Plus en détail

Types et performances des processeurs

Types et performances des processeurs Types et performances des processeurs Laboratoire de Systèmes Logiques Structure d un ordinateur contrôle processeur traitement séquenceur registres mémoire entrées/sorties micromémoire opérateurs bus

Plus en détail

Les Mémoires. Electronique des Composants & Systèmes. Université Constantine 2 Abdelhamid Mehri Faculté des NTIC Département MI. Dr. Kitouni I.

Les Mémoires. Electronique des Composants & Systèmes. Université Constantine 2 Abdelhamid Mehri Faculté des NTIC Département MI. Dr. Kitouni I. Université Constantine 2 Abdelhamid Mehri Faculté des NTIC Département MI Electronique des Composants & Systèmes Les Mémoires Cours de L1 - TRONC COMMUN DOMAINE MATHEMATIQUES INFORMATIQUE 2015-2016 Dr.

Plus en détail

Architecture matérielle http://nicodewaele.info Nicolas Dewaele

Architecture matérielle http://nicodewaele.info Nicolas Dewaele Architecture des ordinateurs Définition d'un ordinateur Architecture matérielle Architecture de Von Neumann (Années 1940) Von Neumann : Mathématicien, inventeur de l'architecture des ordinateurs modernes

Plus en détail

Gestion de la Mémoire 1 ère partie: Point de vue processeur. Chapitre 5

Gestion de la Mémoire 1 ère partie: Point de vue processeur. Chapitre 5 Gestion de la Mémoire 1 ère partie: Point de vue processeur Chapitre 5 Présentation La mémoire peut être adressée de 3 points de vue Point de vue processeur Comment le processeur adresse la mémoire physique

Plus en détail

Systèmes de gestion de bases de données

Systèmes de gestion de bases de données Systèmes de gestion de bases de données Gestion des mémoires P. Rigaux Cnam, dépt. informatique April 1, 2015 PR (Cnam, dépt. info) Systèmes de gestion de bases de données April 1, 2015 1 / 13 Gestion

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

Architecture des Ordinateurs. Partie II:

Architecture des Ordinateurs. Partie II: Architecture des Ordinateurs Partie II: Le port Floppy permet le raccordement du lecteur de disquette àla carte mère. Remarque: Le lecteur de disquette a disparu il y a plus de 6 ans, son port suivra.

Plus en détail

Mémoire virtuelle. Généralités

Mémoire virtuelle. Généralités Mémoire virtuelle Généralités La pagination pure - Conversion d adresses virtuelles en adresses physiques - Table des pages à plusieurs niveau et table inversée - Algorithmes de remplacement de page -

Plus en détail

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel)

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel) UPMC - UFR 99 Licence d informatique 205/206 Module 3I009 Cours 4 : Méthodes d accès aux données Plan Fonctions et structure des SGBD Structures physiques Stockage des données Organisation de fichiers

Plus en détail

Rappels sur l Architecture de base d un ordinateur

Rappels sur l Architecture de base d un ordinateur Chapitre 1 Rappels sur l Architecture de base d un ordinateur I. Introduction Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

! Vous aurez pris connaissance de l'évolution. ! Vous comprendrez pourquoi on utilise le binaire en. ! Vous serez capable de construire un circuit

! Vous aurez pris connaissance de l'évolution. ! Vous comprendrez pourquoi on utilise le binaire en. ! Vous serez capable de construire un circuit Architecture élémentaire Un cours d architecture pour des informaticiens Samy Meftali Samy.meftali@lifl.fr Bureau 224. Bâtiment M3 extension Sans architecture pas d informatique Comprendre comment çà marche

Plus en détail

Résultats des benchmarks de HPC1 après ajout de 100 cœurs. Date : 06/09/2012. Auteur : Ph Parnaudeau

Résultats des benchmarks de HPC1 après ajout de 100 cœurs. Date : 06/09/2012. Auteur : Ph Parnaudeau Résultats des benchmarks de HPC1 après ajout de 1 cœurs. Date : 6/9/212 Auteur : Ph Parnaudeau 1. Evolution de la configuration la plate forme de calcul du LJLL : HPC1 HPC1 1 Février 211 : UV1 est une

Plus en détail

Technologies SOC (System On Chip) (Système sur une seule puce)

Technologies SOC (System On Chip) (Système sur une seule puce) Technologies SOC (System On Chip) (Système sur une seule puce) Pierre LERAY et Jacques WEISS Équipe de recherche ETSN Supélec Campus de Rennes février, 02 Technologies SoC ; P. Leray, J. Weiss 1 Évolution

Plus en détail

Les Entrées et Sorties: Programmées, interruptions, et DMA. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde

Les Entrées et Sorties: Programmées, interruptions, et DMA. GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Les Entrées et Sorties: Programmées, interruptions, et DMA GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Aujourd hui Entrées-sorties Programmées Par interruptions Le

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

Plan du cours. - Introduction - Emergence et évolution des systèmes d exploitation - Système de fichiers : FAT - NTFS - Ordonnancement

Plan du cours. - Introduction - Emergence et évolution des systèmes d exploitation - Système de fichiers : FAT - NTFS - Ordonnancement Plan du cours - Introduction - Emergence et évolution des systèmes d exploitation - Système de fichiers : FAT - NTFS - Ordonnancement Systèmes d exploitation 1ère année p. 1 FAT FAT = File Allocation Table

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Formation en Calcul Scientifique - LEM2I Architecture des calculateurs Violaine Louvet 1 1 Institut Camille jordan - CNRS 12-13/09/2011 Introduction Décoder la relation entre l architecture et les applications

Plus en détail

EXERCICES D'ARCHITECTURE DES ORDINATEURS

EXERCICES D'ARCHITECTURE DES ORDINATEURS EXERCICES D'ARCHITECTURE DES ORDINATEURS CHAPITRES 1&2 1. CONVERSION DANS D AUTRES BASES Écrire 10110110 2 en décimal. Écrire 3456 en binaire, puis en hexadécimal. Convertir 1011 1100 0000 1000 1100 en

Plus en détail

De quoi est composé un ordinateur? Quels sont les modèles sous-jacents au fonctionnement d une machine? Comment s exécutent les programmes?

De quoi est composé un ordinateur? Quels sont les modèles sous-jacents au fonctionnement d une machine? Comment s exécutent les programmes? Cours Architecture (ASR 2) IUT de Nice - Côte d Azur Département Informatique Gaetan.Rey@unice.fr Stéphane Gaëtan Lavirotte Rey Gaëtan Rey Jean-Yves Tigli De quoi est composé un ordinateur? Quels sont

Plus en détail

Parallélisme. Cours 1

Parallélisme. Cours 1 Parallélisme Cours 1 TD : 20% - TP : 30% - Examen : 50% Feuille A4 manuscrite (pas de photocopie) Fabrice.Huet@etu.unice.fr (prendre rdv par mail pr le contacter) A quoi sert le parallélisme? Augmenter

Plus en détail

Architecture et Système

Architecture et Système Architecture et Système Stefan Schwoon Cours L3, 2014/15, ENS Cachan Rappels Quelques éléments qu on a pu construire à partir des transistors (et une horloge): fonctions arithmétiques et logiques multiplexeur,

Plus en détail

Systèmes et traitement parallèles

Systèmes et traitement parallèles Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications

Plus en détail

Outils d analyse de performance pour le HPC

Outils d analyse de performance pour le HPC Outils d analyse de performance pour le HPC François Trahay Master MOPS Décembre 2013 Plan 1 Introduction.................................................................... 3 2 Outils de profiling..............................................................10

Plus en détail

Matériel : comment gagner en performance? Objectif Teraflop. les limites :

Matériel : comment gagner en performance? Objectif Teraflop. les limites : Matériel : comment gagner en performance? réduction du temps de cycle (aujourd hui de 0,6 à 2 ns) instructions vectorielles et pipelinées plusieurs unités fonctionnelles hiérarchie de mémoire multiprocesseurs

Plus en détail

Les Systèmes d Exploitation: Concepts et Programmation

Les Systèmes d Exploitation: Concepts et Programmation Les Systèmes d Exploitation: d Concepts et Programmation Samia Bouzefrane MCF en Informatique, CNAM samia.bouzefrane@cnam.fr http://cedric.cnam.fr/~bouzefra Samia Bouzefrane, Cours SYSTEME 1 Introduction

Plus en détail

Les mémoires. Les mémoires

Les mémoires. Les mémoires Les mémoires Eduardo Sanchez EPFL Les mémoires Une mémoire est un élément de stockage d'information Les bits stockés sont organisés en forme de matrice: la dimension de la mémoire est donnée par le nombre

Plus en détail

Structure du bus système Gestion du bus système Fonctionnement des périphériques

Structure du bus système Gestion du bus système Fonctionnement des périphériques Périphériques et bus système Structure du bus système Gestion du bus système Fonctionnement des s MÉMOIRE PRINCIPALE BUS SYSTÈME Cache d'instructions MMU TLB Unité de de contrôle Unité de de traitement

Plus en détail

Introduction aux systèmes informatiques Structure d un ordinateur

Introduction aux systèmes informatiques Structure d un ordinateur Introduction aux systèmes informatiques Structure d un ordinateur Michel Salomon IUT de Belfort-Montbéliard Département d informatique Michel Salomon Intro. aux sys. info. 1 / 36 Qu est-ce qu un système

Plus en détail

Apport des Instructions Multimédia. Quelques Techniques de Compilation. Processeur générique 2. Introduction

Apport des Instructions Multimédia. Quelques Techniques de Compilation. Processeur générique 2. Introduction Résumé Apport des Instructions Multimédia Quelques Techniques de Compilation Ronan.Keryell Ò Ø ºÓÖ Département Informatique École Nationale Supérieure des Télécommunications de Bretagne On présentera sommairement

Plus en détail

QCM systèmes d exploitation (Quarante questions)

QCM systèmes d exploitation (Quarante questions) QCM systèmes d exploitation (Quarante questions) QUIZZ OS N 1 (10 questions avec réponses) Question 1: Aux origines de l informatique, l'interface utilisateur des systèmes d exploitations était composée

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

Plus en détail

CPU ou UCT. Circuit Intégré. Processor (data processing)

CPU ou UCT. Circuit Intégré. Processor (data processing) CPU ou UCT Processor (data processing) Le processeur est une unité d exécution, plus précisément appelée unité centrale de traitement (désignée en franç.par UCT, en ang. CPU (Central Processing Unit) CPU+mémoire

Plus en détail

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes On utilise le jeu d instructions ARM. ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes PROGRAMMATION ASSEMBLEUR PREMIERE PARTIE Soit

Plus en détail

GELE5340 Circuits ITGÉ (VLSI) Chapitre 1: Introduction

GELE5340 Circuits ITGÉ (VLSI) Chapitre 1: Introduction GELE5340 Circuits ITGÉ (VLSI) Chapitre 1: Introduction Contenu du cours Introduction aux circuits intégrés Dispositifs CMOS, processus de fabrication. Inverseurs CMOS et portes logiques. Délai de propagation,

Plus en détail

Chap. I : Architecture de base d un ordinateur

Chap. I : Architecture de base d un ordinateur UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Dans cette partie, nous décrivons rapidement l architecture de base d un ordinateur et les principes de son fonctionnement.

Plus en détail

Environnement informatique

Environnement informatique Environnement informatique 1.L'ordinateur personnel Un ordinateur est une machine faite de matériel et de logiciel. D'un côté, le matériel (hardware) est constitué par la partie de la machine que l'on

Plus en détail

Introduction à l architecture des microprocesseurs

Introduction à l architecture des microprocesseurs 1 Introduction à l architecture des microprocesseurs But du cours 2 Avoir une idée du fonctionnement des microprocesseurs modernes Comprendre les idées importantes Pipeline, caches, prédicteurs de branchements,

Plus en détail

De 2 à 22 millions d'images; Création, Indexation et Recherche par le contenu avec PiRiA

De 2 à 22 millions d'images; Création, Indexation et Recherche par le contenu avec PiRiA De 2 à 22 millions d'images; Création, Indexation et Recherche par le contenu avec PiRiA contact : patrick.hède@cea.fr Commissariat à l'energie Atomique GdR isis : Passage à l'échelle dans la recherche

Plus en détail

Programmation efficace des multicœurs Application a la visualisation scientifique

Programmation efficace des multicœurs Application a la visualisation scientifique Programmation efficace des multicœurs Application a la visualisation scientifique Marc Tchiboukdjian Doctorant 3e me anne e Jean-Philippe Nomine Encadrant CEA Vincent Danjean Directeur de the se Bruno

Plus en détail

Portage et optimisation d applications de traitement d images sur architecture Kalray Mppa-Manycore Journées de la Compilation

Portage et optimisation d applications de traitement d images sur architecture Kalray Mppa-Manycore Journées de la Compilation Portage et optimisation d applications traitement d images sur architecture Kalray Mppa-Manycore Journées la Compilation Pierre Guillou Centre recherche en informatique Mines ParisTech 4 décembre 2013

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Généralités Processeur Carte mère Mémoire Bus Interfaces d'entrée-sortie Cartes d'extension Périphériques Évolution Presque le montage d'un PC 1 Familles d'ordinateurs Serveur

Plus en détail

Sommaire. Historique

Sommaire. Historique Sommaire ntroduction aux microprocesseurs & Pre sentation du µc 9s12 Ge ne ralite s Bus & me moire Structure d un CPU Jeu d instructions module 2 Sebastien.Kramm@univ-rouen.fr De veloppement pour l embarque

Plus en détail

Limitations of the Playstation 3 for High Performance Cluster Computing

Limitations of the Playstation 3 for High Performance Cluster Computing Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire

Plus en détail

Un Ordinateur, comment ça marche en vrai?

Un Ordinateur, comment ça marche en vrai? Un Ordinateur, comment ça marche en vrai? Décembre 2006 Plan Introduction Hard Électronique Microprocesseur Ordinateurs Soft OS Conclusion 2 Couches Langages de Haut niveau Traduction - Compilation Assemblage

Plus en détail

ELECTRONIQUE INDUSTRIELLE (243.06) OPTION ÉLECTRODYNAMIQUE Principe des micro-ordinateur (243-834-92) Présenté par Steve Dionne.

ELECTRONIQUE INDUSTRIELLE (243.06) OPTION ÉLECTRODYNAMIQUE Principe des micro-ordinateur (243-834-92) Présenté par Steve Dionne. ELECTRONIQUE INDUSTRIELLE (243.06) OPTION ÉLECTRODYNAMIQUE Principe des micro-ordinateur (243-834-92) Présenté par Steve Dionne À Mario Michaud Remis le 10 septembre automne 2002 Table des matière : Description

Plus en détail

Matériel & Logiciels (Hardware & Software)

Matériel & Logiciels (Hardware & Software) CHAPITRE 2 HARDWARE & SOFTWARE P. 1 Chapitre 2 Matériel & Logiciels (Hardware & Software) 2.1 Matériel (Hardware) 2.1.1 Présentation de l'ordinateur Un ordinateur est un ensemble de circuits électronique

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs 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?

Plus en détail

III - PROGRAMMATION EN ASSEMBLEUR

III - PROGRAMMATION EN ASSEMBLEUR III - PROGRAMMATION EN ASSEMBLEUR 3.1 Introduction à la programmation en assembleur Pour programmer un ordinateur on utilise généralement des langages dits évolués ou de haut niveau : C, C++, Java, Basic,

Plus en détail

Evolution des technologies de calcul intensif vers les systèmes multi-cœurs et accélérateurs

Evolution des technologies de calcul intensif vers les systèmes multi-cœurs et accélérateurs Evolution des technologies de calcul intensif vers les systèmes multi-cœurs et accélérateurs Marc Mendez-Bermond Expert solutions HPC Programme Contexte Technologies Evolutions 2 Confidentiel Research

Plus en détail