• Aucun résultat trouvé

Organisation et architecture avancées de l’ordinateur

N/A
N/A
Protected

Academic year: 2022

Partager "Organisation et architecture avancées de l’ordinateur"

Copied!
86
0
0

Texte intégral

(1)

ORGANISATION ET ARCHITECTURE

AVANCEES DE L’ORDINATEUR

Didier Bassole

(2)

Avant-propos

L’Université virtuelle africaine (UVA) est fière de participer à l’accès croissant à l’éducation dans les pays africains grâce à la production de matériaux d’apprentissage de qualité.

Nous sommes également fiers de contribuer à la connaissance globale car nos ressources éducatives ouvertes sont principalement accessibles depuis le continent africain.

Ce module a été développé dans le cadre d’un programme de diplôme et d’études en informatique appliquée, en collaboration avec 18 institutions partenaires africaines de 16 pays. Au total, 156 modules ont été développés ou traduits pour assurer la disponibilité en anglais, en français et en portugais. Ces modules ont également été mis à disposition en tant que ressources éducatives ouvertes (OER) sur oer.avu.org.

Au nom de l’Université virtuelle africaine et de notre patron, nos institutions partenaires, la Banque africaine de développement, je vous invite à utiliser ce module dans votre institution, pour votre propre éducation, à le partager aussi largement que possible et à participer activement à l’AVU Communautés de pratique de votre intérêt. Nous nous sommes engagés à être en première ligne de développement et de partage de ressources éducatives ouvertes.

L’université virtuelle africaine (UVA) est une organisation intergouvernementale panafricain créée par une charte qui a pour mandat d’augmenter considérablement l’accès à une éducation et à une formation supérieures de qualité grâce à l’utilisation innovante des technologies de communication d’information. Une charte établissant l’UVA en tant

qu’organisation intergouvernementale a été signée à ce jour par dix-neuf (19) gouvernements africains - Kenya, Sénégal, Mauritanie, Mali, Côte d’Ivoire, Tanzanie, Mozambique,

République démocratique du Congo, Bénin, Ghana, République de Guinée, Burkina Faso, Niger, Soudan du Sud, Soudan, Gambie, Guinée-Bissau, Éthiopie et Cap-Vert.

Les institutions suivantes ont participé au Programme des sciences informatiques appliquées:

(1) Université d’Abomey Calavi au Bénin; (2) Université de Ougagadougou au Burkina Faso;

(3) Université Lumière de Bujumbura au Burundi; (4) Université de Douala au Cameroun;

(5) Université de Nouakchott en Mauritanie; (6) Université Gaston Berger au Sénégal; (7) Université des Sciences, Techniques et Technologies de Bamako au Mali (8) Institut de gestion et d’administration publique du Ghana; (9) Université Kwame Nkrumah de Science et Technologie au Ghana; (10) L’Université Kenyatta au Kenya; (11) Egerton University au Kenya;

(12) Université d’Addis-Abeba en Ethiopie (13) Université du Rwanda; (14) Université de Dar es-Salaam en Tanzanie; (15) Université Abdou Moumouni de Niamey au Niger; (16) Université Cheikh Anta Diop au Sénégal; (17) Université Pedagógica au Mozambique; Et (18) L’Université de Gambie en Gambie.

Bakary Diallo Le Recteur

Université virtuelle africaine

(3)

Crédits de production

Auteur

Didier Bassole

Pair Réviseur

Nzisabira Diomede

UVA – Coordination Académique

Dr. Marilena Cabral

Coordinateur global Sciences Informatiques Apliquées

Prof Tim Mwololo Waema

Coordinateur du module

Robert Oboko

Concepteurs pédagogiques

Elizabeth Mbasu Benta Ochola Diana Tuel

Equipe Média

Sidney McGregor Michal Abigael Koyier

Barry Savala Mercy Tabi Ojwang

Edwin Kiprono Josiah Mutsogu

Kelvin Muriithi Kefa Murimi

Victor Oluoch Otieno Gerisson Mulongo

(4)

Droits d’auteur

Ce document est publié dans les conditions de la Creative Commons Http://fr.wikipedia.org/wiki/Creative_Commons

Attribution http://creativecommons.org/licenses/by/2.5/

Le gabarit est copyright African Virtual University sous licence Creative Commons Attribution- ShareAlike 4.0 International License. CC-BY, SA

Supporté par

Projet Multinational II de l’UVA financé par la Banque africaine de développement.

(5)

Avant-propos 2

Crédits de production 3

Droits d’auteur 4

Supporté par 4

Aperçu du cours 6

Bienvenue à Organisation et architecture avancée de l’ordinateur . . . . 6

Prérequis . . . . 6

Matériaux . . . . 6

Objectifs du cours . . . . 6

Unités . . . . 7

Unité 0: Introduction à l’architecture et organisation avancées de l’ordinateur 7 Unité 1 : Organisation fonctionnelle de l’ordinateur 7 Unité 2: Multitraitement 7 Unité 3: Organisation de la machine au niveau montage 7 Unité 4: Interfaçage et stratégies Entrées / Sorties 7 Unité 5: Les Périphériques 7 Évaluation . . . . 8

Lectures et autres ressources . . . . 11

Unité 0 11 Unité 1 11 Unité 2 12 Unité 3 12 Unité 4 12 Unité 5 12

Unité 0. Évaluation diagnostique 14

Introduction à l’unité . . . . 14

Objectifs de l’unité . . . . 14

(6)

Évaluation . . . . 15

Unité 1. Organisation fonctionnelle de l’ordinateur 18

Introduction à l’unité . . . . 18 Objectifs de l’unité . . . . 18

Activité 1 - Étude du langage de transfert de registre afin de

décrire le fonctionnement interne d’un ordinateur 18 Conclusion . . . . 21 Évaluation . . . . 21

Activité 2 - Micro architectures – réalisations câblées

et micro programmées 22

Présentation 22

Conclusion . . . . 24 Activité 3 - Exécution simultanée des instructions et parallélisme

au niveau des instructions (ILP) 24

Conclusion . . . . 27 Évaluation . . . . 28

Unité 2. Multitraitement 29

Introduction à l’unité . . . . 29 Objectifs de l’unité . . . . 29 Activité 1 - Note des systèmes (Taxonomie de Flynn) 30 Conclusion . . . . 34

Activité 2 – Loi d’Amdahl 34

Conclusion . . . . 39

Activité 3 – Multicore et Multiprocesseurs 39

Conclusion . . . . 43 Évaluation de l’unité . . . . 44

Unité 3. Organisation de la machine au niveau montage 46

Introduction à l’unité . . . . 46 Objectifs de l’unité . . . . 46 Activité 1 - Structure des programmes au niveau machine 47

(7)

Activité 2 – Avantages et limites des architectures de bas niveau 49 Conclusion . . . . 51

Activité 3 - Appui architectural de bas niveau pour les langages

de haut niveau 52

Conclusion . . . . 60 Évaluation de l’unité . . . . 61

Unité 4 : Interfaçage et stratégies Entrées / Sorties 64

Introduction à l’unité . . . . 64 Activité 1 - Principes fondamentaux des E/S :

Transfert et tamponnage 65

Conclusion . . . . 69 Activité 2 - Mécanismes d’interruption : Reconnaissance

d’interruption vectorisée et privilégiée 69

Conclusion . . . . 79 Activité 3 - Bus protocoles, arbitrage, interruptions, accès direct en

mémoire (DMA) 79

Conclusion . . . . 80 Évaluation de l’unité . . . . 81

Unité 5. Les périphériques 82

Introduction à l’unité . . . . 82 Objectifs de l’unité . . . . 82

Activité 1 – Les périphériques d’entrées 83

Conclusion . . . . 83

Activité 2 – Les périphériques de sortie 83

Conclusion . . . . 83

Activité 3 – Les périphériques de stockage 84

Conclusion . . . . 84 Évaluation de l’unité . . . . 84

(8)

Aperçu du cours

Bienvenue à Organisation et architecture avancée de l’ordinateur

Ce cours initie les étudiants à l’architecture et l’organisation avancées de l’ordinateur.

L’architecture est un terme utilisé pour décrire les attributs d’un système du point de vue du programmeur. Il renferme la conception et les opérations d’un ordinateur et montre à quoi ressemble l’interface de l’ordinateur (logiciel et matériel), son organisation interne et aussi de ce que l’apprenant peut faire avec eux.

Prérequis

• Principes fondamentaux de l’organisation et de l’architecture de l’ordinateur

• Principes de la programmation

Matériaux

Les matériaux nécessaires pour compléter ce cours comprennent:

• Ordinateur

• Instrument d’analyse comparative des performances

Objectifs du cours

À la fin de ce cours, l’étudiant devrait être en mesure de

• Expliquer la structure interne ainsi que le fonctionnement des ordinateurs ;

• Décrire le fonctionnement de différents sous-systèmes matériel

• Expliquer le concept de la performance d’un système informatique, la manière dont il est conçu et évalué ;

• Expliquer la manière dont l’interaction entre l’ordinateur et le monde extérieur est organisée.

(9)

Unités

Unité 0: Introduction à l’architecture et organisation avancées de l’ordinateur

Le but de cette unité d’évaluation diagnostique est de vérifier les acquis indispensables pour suivre le module et aussi de rappeler les concepts de base de l’architecture et l’organisation de l’ordinateur

Unité 1 : Organisation fonctionnelle de l’ordinateur

Dans cette unité, nous parlerons de l’organisation de l’ordinateur du point de vue du programmeur, l’exécution simultanée et le parallélisme au niveau des instructions.

Unité 2: Multitraitement

Dans cette unité, il sera question des mécanismes et des principes de traitement parallèle des instructions dans l’ordinateur. On abordera aussi les structures et les architectures multiprocesseurs et les systèmes de programmation multiprocesseur.

Unité 3: Organisation de la machine au niveau montage

Dans cette unité, nous verrons la structure des programmes au niveau machine, les limites des architectures de bas niveau et l’appui architectural de bas niveau pour les langages de haut niveau.

Unité 4: Interfaçage et stratégies Entrées / Sorties

Dans cette unité, nous parlerons des principes fondamentaux des entrées/sorties, les mécanismes d’interruption notamment la reconnaissance d’interruption vectorisée et privilégiée. On abordera aussi les notions de bus protocoles, d’accès direct en mémoire.

Unité 5: Les Périphériques

Dans cette unité, il sera question de la représentation numérique des valeurs analogiques notamment la quantification et l’échantillonnage, des normes et codage/décodage des systèmes multimédias.

(10)

Évaluation

Les évaluations formatives (vérification de progrès) sont incluses dans chaque unité.

Les évaluations sommatives (tests et travaux finaux) sont fournies à la fin de chaque module et traitent des connaissances et compétences du module.

Les évaluations sommatives sont gérées à la discrétion de l’établissement qui offre le cours.

Le plan d’évaluation proposé est le suivant:

1 évaluations

formatives

10%

2 évaluations

sommatives

20%

3 Examen final 70%

Plan

Unité Sujets et Activités Durée

estimée Unité

0:Évaluation diagnostique

• Vérification des prérequis

• Architecture de base de l’ordinateur

• Organisation des composants de l’ordinateur

03 h

Unité 1 : Organisation fonctionnelle de l’ordinateur

• Étude du langage de transfert de registre afin de décrire le fonctionnement interne d’un ordinateur

• Micro architectures – réalisations câblées et micro programmées

• Exécution simultanée des instructions et parallélisme au niveau des instructions (ILP)

• Vue d’ensemble des architectures superscalaires

• Performances du processeur et du système

• Latence, performance et débit de la mémoire

• Mémoires cache – principes de fonctionnement, politiques de remplacement, antémémoire multi niveau, cohérence du cache

• Performances – leurs mesures et limites

• Importance de la dissipation d’énergie et de ses effets sur les structures informatiques

07 h

(11)

Unité 2:

Multitraitement

Loi d’Amdahl

• Traitement vectoriel (opérations multimédias)

• Processeurs multicoeurscœurs et multifilières

• Taxonomie de Flynn : Structures et architectures multiprocesseurs

• Systèmes de programmation multiprocesseur

• Unité de traitement graphique et processeurs graphiques spécialisés

Introduction à la logique reconfigurable et aux processeurs spécialisés

07 h

Unité 3:

Organisation de la machine au niveau montage

• Structure des programmes au niveau machine

• Limites des architectures de bas niveau

• Appui architectural de bas niveau pour les langages de haut niveau

06 h

Unité 4:

Interfaçage et stratégies Entrées / Sorties

• Principes fondamentaux ES : Transfert et tamponnage

• Mécanismes d’interruption : Reconnaissance d’interruption vectorisée et privilégiée

• Bus protocoles, arbitrage, interruptions, accès direct en mémoire (DMA)

• Exemples de bus modernes : ex. : PCIe, USB, Hypertransport

09 h

(12)

Lectures et autres ressources

Les lectures et autres ressources dans ce cours sont indiquées ci-dessous.

Unité 0

Lectures et autres ressources obligatoires:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Lectures et autres ressources optionnelles:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Unité 1

Lectures et autres ressources obligatoires:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Lectures et autres ressources optionnelles:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Unité 2

Lectures et autres ressources obligatoires:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Lectures et autres ressources optionnelles:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

(13)

Unité 3

Lectures et autres ressources obligatoires:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Lectures et autres ressources optionnelles:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Unité 4

Lectures et autres ressources obligatoires:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Unité 5

Lectures et autres ressources obligatoires:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

Lectures et autres ressources optionnelles:

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

• [ajouter un titre, le nom de l’auteur, et d’autres informations de référence]

(14)

Unité 0. Évaluation diagnostique

Introduction à l’unité

Cette unité vous permettra de vérifier les connaissances préalables que vous devez avoir avant de commencer le cours. Vous pouvez faire l’évaluation de l’unité avant de faire des activités d’apprentissage pour aider à rafraîchir vos connaissances.

Objectifs de l’unité

À la fin de cette unité, vous devriez être capable de:

• Définir et décrire les différentes architectures de l’ordinateur

• Décrire les opérations des différents sous-systèmes matériels

• Analyser les performances de l’ordinateur

• Expliquer les principes et le mécanisme d’accès aux périphériques d’entrées/

sorties

TERMES DES

Système informatique : Un terme qui décrit l’ordinateur ainsi que tous les logiciels et les périphériques qui sont nécessaires pour faire fonctionner l’ordinateur. C’est aussi tout ce qui est capable de prendre un ensemble d’entrées, de les traiter et de créer un ensemble de sorties

Architecture des ordinateurs : est l’attribut qui peut être reconnue par un programmeur et qui a un effet direct à l’exécution du programme. Décrit les capacités et le modèle de programmation d’un ordinateur, mais pas une mise en œuvre particulière

Organisation de l’ordinateur : est la connexion des sources de matériel informatique, y compris l’intégration entre les systèmes. Il indique également le flux de communication entre les composants.

C’est aussi le terme utilisé pour décrire la manière dont les composants matériels fonctionnent et la façon dont ils sont reliés entre eux pour former le système informatique. Les différents composants sont supposés être en place et la tâche est d’étudier la structure organisationnelle afin de vérifier que les pièces d’ordinateurs fonctionnent.

(15)

Performances de l’ordinateur : est caractérisée par la quantité de travail utile accompli par un système informatique ou un réseau informatique par rapport au temps et les ressources utilisées E/S : accessoires qui permettent à l’ordinateur d’effectuer des tâches spécifiques telles que : - recevoir des informations sur le traitement, retourner les résultats du

traitement, des informations stockées.

Mémoire: est une collection de cellules, chacun avec une adresse physique unique

Évaluation de l’unité

Vérifiez votre compréhension!

Évaluation de classe Directives

Aux élèves de lire sur l’architecture informatique de base et de l’organisation qui est un cours pré-requis pour ce module. Les élèves doivent répondre également aux questions suivantes pour tester si elles peuvent se rappeler ce qu’ils savent et ainsi les préparer pour le cours avancé en architecture et l’organisation de cours avancé des ordinateurs

Système de notation

Évaluation

Les questions suivantes vous aideront à évaluer combien vous connaissez déjà l’architecture de base et l’organisation des ordinateurs qui sont les pré-requis de l’architecture et de l’organisation avancées des ordinateurs.

1) Définir les termes suivants

a) Architecture des ordinateurs : - est concerné par la structure et le comportement de l’ordinateur tel que vu par l’utilisateur. Il comprend les formats d’information, le jeu d’instructions, et des techniques pour aborder la conception architecturale d’un système informatique. Il est également préoccupé par les spécifications des différents modules fonctionnels tels que des processeurs et de mémoires et de les structurer ensemble dans un système informatique

(16)

b) Organisation de l’ordinateur : - est préoccupé par la façon dont les composants matériels fonctionnent et la façon dont ils sont reliés entre eux pour former le système informatique. Les différents composants sont supposés être en place et la tâche est d’étudier la structure organisationnelle afin de vérifier que les pièces d’ordinateurs fonctionnent.

c) Les périphériques : - est défini comme un dispositif informatique, tel qu’un clavier ou une imprimante, qui ne fait pas partie de l’ordinateur essentiellement (par exemple, la mémoire et le microprocesseur).

2) Quel est le concept de couches dans la conception architecturale?

Les concepts de couches dans la conception architecturale sont décrits comme ci-dessous :

(i). les problèmes complexes peuvent être segmentés en forme plus petite et plus facile à gérer

(ii). Chaque couche est spécialisée pour un fonctionnement spécifique.

(iii). Les couches supérieures peuvent partager les services d’une couche inférieure.

Ainsi la superposition nous permet de réutiliser la fonctionnalité.

(iv). Développement en équipe est possible grâce à la segmentation logique. Une équipe de programmeurs sera construite. Le système et le travail doit être sous- divisé suivant des limites claires

(v). Expliquer le processeur qui effectue l’extraction ou le décodage de l’instruction différente lors de l’exécution d’une autre instruction.

Pipe- doublure

Explication: Pipe- doublure est le processus d’amélioration de la performance du système de traitement d’instructions différentes en même temps, avec seulement une instruction qui réalise une opération spécifique.

Barème de notation

Les notes seront attribuées comme indiqué ci-dessous

(17)

question Sous- question

Notes accordées

1 (a). 2

(b). 2

(c). 2

2 chaque

terme ne sera pas noté plus de 2 points

8

3 Nommer

(2 points) ; explication (4 points)

5

Total 20

Lectures et autres ressources

Les lectures et ressources de cette unité sont se trouvent au niveau des lectures et autres ressources du cours.

(18)

Unité 1. Organisation fonctionnelle de l’ordinateur

Introduction à l’unité

Cette unité présente aux apprenants l’organisation fonctionnelle d’un ordinateur. L’unité présente les concepts et les techniques de base qui vous aideront dans la compréhension et l’analyse de l’interaction entre le matériel (hardware) et du logiciel (software) dans les systèmes informatiques.

Objectifs de l’unité

À la fin de cette unité, vous devriez être capable de:

• Décrire l’organisation fonctionnelle de l’ordinateur

• Expliquer les principes fondamentaux de l’organisation, le fonctionnement et les performances des systèmes informatiques modernes

• Décrire la conception architecturale de l’ordinateur

TERMES DES

Opérations internes : Microarchitecture : La performance du système:

Mémoire cache :

Activités d’apprentissage

Activité 1 - Étude du langage de transfert de registre afin de décrire le fonctionnement interne d’un ordinateur

Introduction

Dans cette section de l’activité d’apprentissage, l’apprenant va étudier les langages qui sont utilisés pour décrire le transfert de l’enregistrement des opérations internes dans l’ordinateur.

(19)

Détails de l’activité

Langage de transfert entre Registre

Un langage de transfert de registre est une notation utilisée pour décrire les transferts de micro-opération entre les registres.

• Il est un système d’expression sous forme symbolique les séquences de micro- opération entre registre qui sont utilisés pour mettre en œuvre des instructions en langage machine.

• Pour toute fonction de l’ordinateur, le langage de transfert de registre peut être utilisé pour décrire la (séquence des) micro-opérations.

• Le langage de transfert entre registre comprend :

Un langage symbolique

Un outil pratique pour décrire l’organisation interne des ordinateurs numériques

Il peut aussi être utilisé pour faciliter le processus de conception des systèmes numériques.

Transfert entre registres

• Les registres sont désignés par des lettres majuscules, parfois suivis par des chiffres (par exemple, A, R13, IR)

• Les registres sont désignés par des lettres majuscules et sont parfois suivies par des chiffres comme suit :

MAR (Memory Address Register) : détient des adresses pour l’unité mémoire

PC (Program Counter) : détient l’adresse de la prochaine instruction IR (Instruction Register) : détient l’instruction en cours d’exécution R1 - Registre 1 : un registre du processeur

• Nous pouvons indiquer les bits individuels en les plaçant entre parenthèses, par exemple, PC (8-15), R2 (5), etc. Souvent, les noms indiquent la fonction :

Registres et leur contenu peuvent être consultés et représentés de différentes façons

Un registre peut être considéré comme une seule entité :

(20)

• Désignation d’un registre

Un registre

Partie d’un registre Un bit d’un registre

Ci-dessous les façons communes de dessiner le schéma de principe d’un registre

Transfert de registre

Copié le contenu d’un registre à l’autre est un transfert de registre Un transfert de registre est indiqué comme : R2 ← R1

- Dans ce cas, le contenu du registre R1 est copié (chargé) dans le registre R2

- Un transfert simultané de tous les bits de la source vers la destination R1 registre R2, pendant une impulsion d’horloge

- Notez que ceci est non destructif ; à savoir le contenu de R1 n’est pas altéré par la copie (chargement) pour R2

- Un transfert de registre tel que R3 ← R5 implique que le système numérique aura à effectuer les actions suivantes :

• Les lignes de données provenant du registre de source (R5) vers le registre de destination (R3)

• Charge parallèle dans le registre de destination (R3)

• Les lignes de commande pour effectuer l’action

Langage d’instructions de transfert de registre

• Enregistrement Transfert : R2 ¬R1

• Transfert simultané : R2 ¬R1, R1 ¬R2

(21)

• Transfert conditionnel (Fonction de contrôle) : P: R2 ¬R1 Ou

• Si (P = 1) Puis R2 ¬R1

• Transfert simultané conditionnelle : T: R2 ¬R1, R1 ¬R2

Symboles de base pour un transfert de registre

Symbole Description Exemples

Lettres (andet

Désigne un registre MAR, R2

nombres) Parenthèses ( )

Désigne une partie d’un registre

R2(0-7), R2(L)

Flèches Désigne un transfert d’information

R2 ←R1

Virgule , Sépare 2 micro- operationsopérations

R2 ←R1, R1

←R1

Conclusion

L’apprenant a été introduit dans le langage de transfert de registre. En particulier, comment les notations spécifiques (symboles) sont utilisées pour spécifier les systèmes numériques, plutôt que dans les mots. Les apprenants ont également été introduits à la façon dont les registres peuvent être consultés et représentés.

Évaluation

1. Expliquez brièvement ce qui peut être utilisé pour stocker un ou plusieurs bits de données, aussi pour accepter et / ou transférer des informations en série?

Les registres à décalage

Les registres à décalage sont un groupe de bascules. Chaque bascule dans le magasin de registre représente seulement i.e. 1 ou 0 bit.

2. Quel est le mode d’adressage de la partie adresse pointant vers l’adresse de données réelles ?

Le mode d’adressage est l’adressage direct: L’opérande de l’adressage direct est stocké dans la mémoire et l’adresse de mémoire de l’opérande est spécifiée dans l’instruction

(22)

3. Quel mode d’adressage ne nécessite pas les opérations Fetch ?

Les opérations Fetch ne sont pas nécessaires dans le traitement immédiat. Parce que dans l’adressage immédiat des données fait partie de l’instruction.

4. Quel est le mode d’adressage utilisé par une instruction de la forme ADD X, Y?

Un adressage absolu ou direct est utilisé

5. Quel est le registre utilisé comme une zone de travail dans le CPU?

Un accumulateur est un registre utilisé dans l’unité centrale de traitement informatique dans lequel l’arithmétique et la logique des résultats intermédiaires sont stockés.

6. Quel mode d’adressage est utilisé dans l’instruction PUSH B ?

Le mode registre d’adressage de l’opérande est conservé en mémoire. L’adresse de l’emplacement d’opérandes est maintenue dans un registre qui est spécifié dans l’instruction.

Activité 2 - Micro architectures – réalisations câblées et micro programmées

Présentation

Cette section présente aux apprenants la microarchitecture de l’ordinateur. Ce sont les ressources et les méthodes utilisées pour obtenir les spécifications de l’architecture.

Détails de l’activité

La microarchitecture est le terme utilisé pour décrire les ressources et les méthodes utilisées pour atteindre la spécification de l’architecture. Le terme comprend généralement la façon dont ces ressources sont organisées, ainsi que les techniques de conception utilisées dans le processeur pour atteindre les objectifs de coût et de performance ciblé. La microarchitecture forme essentiellement un cahier des charges pour la mise en œuvre logique.

Aussi appelé l’organisation informatique et parfois abrégé en μarch ou uarch, est le moyen d’une architecture de jeu d’instructions donnée (ISA) qui est mis en œuvre dans un processeur particulier. Un ISA donné peut être mis en œuvre avec différents microarchitectures; les mises en œuvre peuvent varier en raison de différents objectifs d’une conception donnée ou en raison de changements dans la technologie.

La microarchitecture est liée, mais n’est pas le même que, le jeu d’instructions d’architecture.

(23)

Les éléments Microarchitectual peuvent être tous des portes logiques simples, des registres, des tables de consultation, des multiplexeurs, des compteurs, etc., pour compléter le UMM, les unités ponctuelles (FPU) et des éléments encore plus flottants.

Quelques points importants:

• Une seule microarchitecture peut être utilisée pour mettre en œuvre de

nombreux ensembles d’instructions, au moyen de modification de la mémoire de commande.

• Deux machines peuvent avoir la même microarchitecture, et donc le même schéma de principe, mais complètement différentes implémentations matérielles.

Cela gère à la fois le niveau des circuits électroniques et encore plus le niveau physique de la fabrication (des circuits intégrés et / ou des composants discrets).

• Les machines avec différentes microarchitectures peuvent avoir le même jeu d’instructions d’architecture, et afin que les deux soient capables d’exécuter les mêmes programmes. Les nouvelles microarchitectures et / ou des solutions de circuits, ainsi que des progrès dans la fabrication des semi-conducteurs, sont ce que permettent les nouvelles générations de processeurs pour atteindre des performances plus élevées.

Le datapath(chemin de données) pipeline est la conception de datapath le plus couramment utilisé dans la microarchitecture aujourd’hui. Cette technique est utilisée dans la plupart des microprocesseurs modernes, des microcontrôleurs et DSP. L’architecture pipeline permet à plusieurs instructions de se chevaucher dans l’exécution, tout comme une ligne d’assemblage.

Le pipeline comprend plusieurs étapes qui sont fondamentales dans la conception de la microarchitecture. Certaines de ces étapes comprennent l’extraction d’instruction, l’instruction de décodage, exécuter et écrire de nouveau. Certaines architectures incluent d’autres étapes telles que l’accès à la mémoire. La conception de pipelines est l’une des tâches centrales de la microarchitecture.

Les unités d’exécution sont également essentielles pour la microarchitecture. Les unités d’exécution comprennent des unités arithmétiques logiques (ALU), les unités flottantes de points (FPU), des unités de chargement / stockage, la prédiction de branchement, et SIMD. Ces unités effectuent les opérations ou les calculs du processeur. Le choix du nombre d’unités d’exécution, leur latence et le débit est une tâche centrale de conception de la microarchitecture. La taille, la latence, le débit et la connectivité des mémoires au sein du système sont également des décisions de la microarchitecture.

Les décisions de conception de niveau système tels que si oui ou non d’inclure des

périphériques, tels que les contrôleurs de mémoire, peuvent être considérées comme faisant partie du processus de conception de la microarchitecture. Cela inclut les décisions sur le niveau des performances et de la connectivité de ces périphériques.

Contrairement à la conception architecturale, où la réalisation d’un niveau de performance

(24)

spécifique est l’objectif principal, la conception micro-architecturale fait plus d’attention à d’autres contraintes. Depuis les décisions de conception de la microarchitecture affectent directement ce qui se passe dans un système, une attention doit être accordée à des questions telles que:

• Zone de Chip / coût.

• Consommation d’énergie.

• complexité logique.

• Facilité de connectivité.

• fabricabilité.

• Facilité de mise au point.

• Testabilité

Conclusion

Cette section a mis en évidence la microarchitecture. Il a examiné les ressources et les méthodes utilisées pour réaliser l’architecture.

Évaluation

Activité 3 - Exécution simultanée des instructions et parallélisme au niveau des instructions (ILP)

Introduction

Cette section présente aux apprenants la notion d’exécution simultanée des instructions et du parallélisme au niveau des instructions. Fondamentalement, le nombre des opérations dans un programme qu’un ordinateur peut être effectué simultanément est une mesure du nombre d’opérations dans un programme d’ordinateur qui peut être exécuté simultanément.

Le chevauchement potentiel entre les instructions est appelé parallélisme au niveau des instructions.

Détails de l’activité

Il existe deux approches de parallélisme au niveau des instructions :

• Le parallélisme au niveau matériel

• Le parallélisme au niveau logiciel

(25)

Au niveau matériel on parle de parallélisme dynamique alors qu’au niveau logiciel on parle de parallélisme statique

Le processeur Pentium fonctionne sur la séquence dynamique de l’exécution en parallèle mais le processeur Itanium fonctionne sur le parallélisme de niveau statique.

Exemple;

Considérez le programme suivant : 1. e = a + b

2. f = c + d 3. m = e * f

L’opération 3 dépend des résultats 1 et 2, de sorte qu’elle ne peut pas être calculée avant que les deux autres ne soient terminées. Toutefois, les opérations 1 et 2 ne dépendent pas de toute autre opération, de sorte qu’elles peuvent être calculées simultanément. Si nous supposons que chaque opération peut être achevée en une unité de temps, alors ces trois instructions peuvent être complétées dans un total de deux unités de temps, donnant une ILP de 3/2

Un des buts des concepteurs de compilateur et du processeur est d’identifier et de tirer profit autant que possible de ILP. Les programmes ordinaires sont généralement écrits en vertu d’un modèle d’exécution séquentielle où les instructions exécutent l’un après l’autre et dans l’ordre spécifié par le programmeur. ILP permet au compilateur et au processeur de chevaucher l’exécution de plusieurs instructions ou même de changer l’ordre dans lequel les instructions sont exécutées.

Combien de ILP existe-t-il dans les programmes des applications très spécifiques. Dans certains domaines, tels que les graphiques et le calcul scientifique, le nombre peut être très grand. Cependant, les charges de travail telles que la cryptographie peuvent présenter beaucoup moins parallélisme.

Les techniques de microarchitecture qui sont utilisées pour exploiter l’ILP comprennent:

• Instruction pipelining, lorsque l’exécution de plusieurs instructions peut être partiellement recouverte.

• Exécution superscalaire, VLIW, et l’instruction parallèle est explicitement et étroitement liée au calcul des concepts, dans lequel plusieurs unités d’exécution sont utilisées pour exécuter plusieurs instructions en parallèle.

• Exécution Out-of-order où les instructions s’exécutent dans un ordre quelconque qui ne viole pas les dépendances de données. Notez que cette technique est indépendante des deux pipelining et superscalaire.

(26)

• Les implémentations actuelles d’exécution out-of-order dynamiquement (par exemple, alors que le programme est exécuté et sans aucune aide du compilateur) extraient l’ILP des programmes ordinaires. Une alternative consiste à extraire ce parallélisme au moment de la compilation et en quelque sorte de transmettre cette information au matériel. En raison de la complexité de la mise à l’échelle technique l’exécution out-of-order, l’industrie a réexaminé les jeux d’instructions qui codent explicitement plusieurs opérations indépendantes par instruction.

• Enregistrer renommage qui se réfère à une technique utilisée pour éviter une sérialisation inutile des opérations du programme imposées par la réutilisation des registres par ces opérations, utilisées pour permettre l’exécution out-of-order.

• Exécution spéculative qui permet l’exécution des instructions complètes ou des parties d’instructions avant d’être certain que cette exécution doit avoir lieu. Une forme couramment utilisée de l’exécution spéculative est la spéculation de flux de contrôle où les instructions passant par une instruction de contrôle de flux (par exemple, une branche) sont exécutées avant que la cible de l’instruction de flux de contrôle ne soit déterminée. Plusieurs autres formes d’exécution spéculative ont été proposées et sont utilisées, y compris l’exécution spéculative entraînée par prédiction de valeur de prédiction de la dépendance à la mémoire cache et la prédiction de latence.

• La prédiction de branchement qui est utilisée pour éviter de bloquer les

dépendances de contrôle à résoudre. La prédiction de branchement est utilisée avec l’exécution spéculative

Les Architectures Dataflow sont une autre classe d’architectures où l’ILP est explicitement spécifié. Au cours des dernières années, les techniques ILP ont été utilisées pour améliorer les performances en dépit de la disparité croissante entre les fréquences processeur d’exploitation et les temps d’accès mémoire (premiers dessins des ILP tels que le système IBM / 360 Model 91. Les techniques ILP ont été utilisées pour surmonter les limitations imposées relativement par un petit fichier de registre). À l’heure actuelle, une pénalité cache miss à la mémoire principale coûte plusieurs centaines de cycles de CPU. Bien que, en principe, il est possible d’utiliser ILP à tolérer même une telle mémoire latences les coûts des ressources et de la puissance de dissipation associés sont disproportionnées. En outre, la complexité et souvent le temps de latence des sous-jacents des résultats des structures matérielles en réduit la fréquence de fonctionnement réduisant encore les avantages. Par conséquent, les techniques mentionnées ci-dessus se révèlent insuffisants pour maintenir la CPU de caler pour les données hors puce. Au lieu de cela, l’industrie se dirige vers l’exploitation des niveaux plus élevés de parallélisme qui peut être exploitée par des techniques telles que le multitraitement et le multithreading.

Architectures superscalaires

• Est-ce qu’un CPU qui implémente une forme de parallélisme appelé niveau parallélisme d’instructions dans un seul processeur ou un ordinateur conçu pour améliorer les performances de l’exécution des instructions scalaires.

(27)

• Un scalaire est une variable qui peut contenir qu’une seule valeur atomique à la fois, par exemple, un entier ou un réel.

• Une architecture scalaire traite un élément de données à la fois - les ordinateurs dont nous avons parlé jusqu’à présent.

• Des exemples de variables non-scalaires:t ableaux

• Matrices

• Enregistrements

Dans une architecture superscalaire (SSA), plusieurs instructions scalaires peuvent être lancées simultanément et exécutées indépendamment.

Le Pipelining permet également à plusieurs instructions de s’exécuter en même temps, mais ils doivent être à différents stades de pipeline à un moment donné.

SSA inclut toutes les fonctionnalités de pipelining, mais, en plus, il peut y avoir plusieurs instructions d’exécution simultanément dans le même stade de pipeline.

SSA introduit donc un nouveau niveau de parallélisme, appelé parallélisme au niveau d’instruction

Conclusion

Cette section a couvert l’exécution simultanée des instructions et le parallélisme au niveau des instructions (ILP), qui est, combien d’opérations dans un programme d’ordinateur peut être réalisée simultanément.

RESUME DE L’UNITE

Dans cette unité, nous avons appris au sujet de la section de traitement et de contrôle du processeur, des moyens de mise en œuvre de l’unité de commande, le langage de description et le transfert de l’enregistrement et des opérations internes dans l’ordinateur.

Évaluation de l’unité

Vérifiez votre compréhension!

Évaluation sommative Directives

Pour l’évaluation de cette unité, nous recommandons le regroupement des élèves en groupes d’au plus deux éléments pour répondre aux questions.

(28)

Évaluation

Répondre aux questions suivantes :

1. Quels sont les rôles sont joués par des registres de processeurs ?

2. Liste et expliquer brièvement diverses façons dont un pipeline d’instruction peut gérer une instruction de branchement conditionnel

3. Expliquer la différence entre la séquence d’écriture et la séquence temporelle d’une instruction

4. Quelle est la relation entre les instructions et les micro- opérations ? 5. Quelle est la fonction générale d’une unité de traitement de commande ? 6. Définissez le jeu du processeur en trois étapes menant à la caractérisation de l’unité de commande

7. Quelles sont les tâches de base effectuées par une unité de commande ? 8. Quelles sont les applications courantes de micro-programming ?

Lectures et autres ressources

Les lectures et autres ressources de cette unité se trouvent au niveau des lectures et autres ressources du cours.

(29)

Unité 2. Multitraitement

Introduction à l’unité

Une façon logique d’augmenter les performances d’une architecture est d’ajouter plusieurs processeurs. Théoriquement, le couplage des N processeurs peut conduire à une

amélioration de la performance de N fois, pour atteindre une capacité supérieure à tout système de traitement monoprocesseur.

Les processeurs modernes sont évolutifs car la performance du système peut être améliorée en ajoutant des unités de traitement. Cette technique est largement utilisée dans les serveurs de fichiers et de bases de données. Ils peuvent être utilisés pour exécuter une application (Ex. Le temps de la simulation), ou pour supporter la charge de multiples utilisateurs (Ex. Les serveurs Web).

Objectifs de l’unité

À la fin de cette unité, vous devriez être capable de :

• Comprendre et décrire le multitraitement ;

• Comprendre comment un processeur peut prendre en charge l’exécution simultanée de programmes.

TERMES DES

La loi d’Amdahl : Il est utilisé pour trouver le maximum d’amélioration attendue à un système en général quand une partie de celui-ci est améliorée

Multicore : consiste à placer deux ou plusieurs cœurs de traitement dans une seule puce. Ces deux ou plusieurs noyaux sont responsables de la division des tâches entre eux, ou vous permettent de travailler dans un environnement multitâche

Multiprocesseur : Il est la capacité d’un système d’exploitation à exécuter simultanément deux ou plusieurs processus. Elle suppose l’existence de deux ou plusieurs processeurs.

(30)

Activités d’apprentissage

Activité 1 - Note des systèmes (Taxonomie de Flynn)

Introduction

La taxonomie de Flynn est basée sur le fait qu’un ordinateur exécute une séquence d’instructions de données, de différents flux d’instructions et de flux de données.

Il couvre quatre classes d’architectures informatiques :

SISD (Single Instruction Single Data) : simple flux d’instructions sur un seul ensemble de données.

SIMD (Single Instruction Multiple Data) : simple flux d’instructions en plusieurs ensembles de données.

MISD (Multiple Instruction Single Data) : de multiples directions d’écoulement dans un ensemble de données unique.

MIMD (Multiple Instruction Multiple Data) : plusieurs instructions de flux sur plusieurs ensembles de données.

Dans cette activité, nous allons apprendre d’avantage sur la taxonomie de Flynn.

Détails de l’activité

En 1972, Michael Flynn a donné lieu à une taxonomie de matériel basé sur deux principes:

• Le nombre des instructions d’écoulement

• Le nombre de flux de données

• Un flot d’instructions est égal à une séquence d’instructions exécutées (dans un processeur) sur un flux de données auquel ces instructions se rapportent.

• Sur la base de la multiplicité éventuelle, de l’unicité des flux de données et des instructions, on distingue quatre (04) grandes classes d’architectures définies par la taxonomie de Flynn :

• SISD - Single Instruction Single Data - Un simple flux d’instructions et de données, correspond au modèle traditionnel ou Von Neumann. Un processeur exécute séquentiellement un ensemble d’instructions sur un ensemble de données. La figure 2.1 illustre cette classe.

(31)

Figure 2.1 : Illustration de la classe d’architecture SISD

Source (https://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/SISD.svg/220px-SISD.

svg.png)

SIMD - Single Instruction Multiple Data - Un traitement de flux d’instructions simple avec des flux de données multiples.

Elle implique de multiples processeurs (esclaves) sous le contrôle d’une seule unité de commande (maître) pour exécuter simultanément la même instruction sur plusieurs ensembles de données. Ils sont utilisés pour la manipulation de matrice et d’images. La figure 2.1 illustre la classe d’architecture SIMD

Figure 2.2 : Illustration de la classe d’architecture SIMD

Source :(https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/SIMD.svg/220px-SIMD.

svg.png)

(32)

MISD - Instruction Multiple Simple Data - implique que des ensembles de processeurs exécutent des instructions différentes dans un seul ensemble de données. Il désigne un mode de fonctionnement des ordinateurs dotés de plusieurs unités arithmétiques et logiques fonctionnant en parallèle comme illustré sur la figure 2.3.

Figure 2.4 : Illustration de la classe d’architecture MISD

Source :(https://upload.wikimedia.org/wikipedia/commons/thumb/9/97/MISD.svg/220px-MISD.

svg.png)

MIMD - Multiple Instruction Multiple Data - processus de multiples flux d’instructions et multiples flux de données. Le MIMD désigne les machines multiprocesseurs où chaque processeur exécute son code de manière asynchrone et indépendante. Pour assurer la cohérence des données, il est souvent nécessaire de synchroniser les processeurs entre eux, les techniques de synchronisation dépendent de l’organisation de la mémoire.

Figure 2.4 : Illustration de la classe d’architecture MISD

Source :(https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/MIMD.svg/220px- MIMD.svg.png).

MIMD a la particularité d’être plus flexible et peut être développé à base de processeurs commerciaux.

(33)

Cette classe d’architecture est divisée en deux catégories selon le type de mémoire :

Mémoire partagée : les processeurs accèdent à une mémoire commune. Il a l’espace d’une adresse partagée par tous les processeurs. La vitesse d’accès mémoire peut être uniforme (UMA : Uniform Memory Access). La synchronisation pour l’accès aux zones mémoires partagées peut se faire au moyen de :

• Sémaphores

• Verrous, ou Mutex (exclusion mutuelle)

• Barrières de synchronisation

Mémoire distribuée: chaque processeur dispose de sa propre mémoire, et n’a pas accès à celle d’autres processeurs. Les informations sont communiquées en étant échangées entre les processeurs sous la forme de messages, de manière synchrone ou asynchrone

Il existe des primitives pour l’envoi d’informations entre les processeurs;

Les systèmes hybrides de mémoire partagée et distribuée

La vitesse d’accès à la mémoire non uniforme (NUMA) variant en fonction de l’adresse d’accès.

Exercice

Sur la base de la lecture du texte de l’activité, répondez aux questions suivantes : 1. Faites une analyse comparative entre MIMD et SIMD.

2. Énumérer les limites de la taxonomie de Flynn.

3. Afin d’ajouter de nouvelles architectures parallèles résultant, sans écarter la classification Flynn, une classification plus complète a été proposée, ce qui vous permet d’afficher un aperçu des styles d’organisation pour les ordinateurs parallèles aujourd’hui. Qui a proposé ce modèle ?

Réponse à la question 1

Les deux types d’organisations informatiques ont des avantages et des inconvénients.

Les architectures SIMD, offrent des installations pour la programmation et le débogage des programmes parallèles. De plus, ses éléments de traitement sont simples et sont destinés à de petits calculs. Les architectures MIMD ont une grande flexibilité pour la mise en œuvre d’algorithmes parallèles (architectures SIMD habituellement destinés à la transformation à des fins particulières), et présentent de bonnes performances en raison de ses éléments de traitement qui sont asynchrones.

(34)

Réponse à la question 2

La classification de Flynn présente quelques problèmes. Elle n’est pas assez large pour inclure certains ordinateurs modernes (par exemple, des processeurs et des données vecteur flux machines), et n’est pas également extensible. Un autre inconvénient de cette classification est l’absence de hiérarchie. La classification MIMD, par exemple, inclut presque toutes les architectures parallèles sans préciser des sous-niveaux. Cependant, bien que le premier (proposé en 1972), le classement du Flynn est très concis et le plus utilisé.

Réponse à la question 3 Duncan

Conclusion

Dans cette activité, nous notons que Flynn a créé une taxonomie matérielle avec son nom basé sur deux principes : Nombre de flux d’instructions et le nombre de flux de données et sur la base du possible multiplicité unicité et de flux de données et des instructions pour classer les architectures informatiques en quatre classes : SISD, SIMD, MISD, MIMD.

Évaluation

Ce contenu sera évalué dans l’évaluation sommative de l’unité 2 qui a un poids de 5%.

Activité 2 – Loi d’Amdahl

Introduction

Un ordinateur n’est rien de plus qu’une machine qui effectue divers calculs. L’architecture parallèle est un moyen d’effectuer ces calculs simultanément, en utilisant le principe selon lequel un problème donné peut être divisé en plus petits problèmes qui sont résolus simultanément ou en parallèle.

D’une manière générale, la nécessité d’utilisation d’ordinateurs se développe de plus en plus, et par le fait que le matériel comporte des limites physiques qui empêchent l’augmentation du taux de transformation.

Dans cette activité, nous allons analyser comment rapidement une tâche sera exécutée lors de l’utilisation d’un ordinateur avec une certaine amélioration sur l’ordinateur actuel. Il est clair qu’il y a des gains d’efficacité et de performance quand on change tout élément ou dispositif.

(35)

Détails de l’activité

La loi d’Amdahl met l’accent sur le concept de gagner des limites sur la taille fixe de la charge de calcul (charge de travail).

La loi d’Amdahl peut être appliquée aussi bien dans l’optimisation des programmes en série comme parallèle. Si l’on regarde du point de vue de l’optimisation des programmes de série, la loi dit que gardant fixe la taille du problème, l’accélération est limitée par la fraction du problème qui ne peut être optimisé et leur exécution respective.

Du point de vue de l’optimisation de la parallélisation, la loi dit que si nous avons fixé la taille du problème, l’accélération est limitée par fraction de programme qui ne peut être parallélisé, appelé, fraction de série. Par exemple, si nous avons un programme qui est exécuté en série en 20 heures, une partie qui dure une heure, ne peut pas être parallélisé et les 19 heures restantes peuvent être parallélisés de 95%, en utilisant 4096 processeurs atteignant la limite d’accélération 20x. Ainsi, même si nous avons plus de 4096 processeurs disponibles, le moteur d’exécution sera limité à 1 heure correspondant à la partie en série du programme qui ne peut être parallélisée.

Ainsi, pour une charge de calcul donnée (charge de travail), il faut 20 heures de traitement, le doublement de la charge et les 95% restants de la parallélisation speedup est 40x. Ce fait est négligeable, la partie constante (en série) comme le problème augmente le volume de données.

Figure 2.5 : Parallélisation vs. Speedup théorique par la loi Amdahl.

Source : (Breshears, 2009)

L’illustration de la figure 2.6 montre, selon la loi d’Amdahl le comportement d’accélération du nombre de ressources de traitement disponibles.

Donc, si 5% du temps d’exécution d’un programme ne peut pas être parallélisé, la limite d’accélération est 20x d’utilisation de 1024 processeurs

(36)

Figure 2.6 : Limites de Speedup selon la loi d’Amdahl Équation

Une tâche qui peut être parallélisée peut être divisée en deux parties :

une partie non-parallélisable (ou partie en série) qui ne peut être parallélisée ; une partie parallélisable qui peut être parallélisée.

Exemple

Un programme qui traite les fichiers à partir du disque. Une petite partie de ce programme peut analyser le répertoire et créer une liste de fichiers en interne dans la mémoire. Après cela, chaque fichier est transmis à un processus séparé pour le traitement. La partie qui scanne le répertoire et crée la liste de fichiers ne peut pas être parallélisé, mais le traitement des fichiers peut l’être.

Le temps pris pour exécuter toute tâche en série (pas en parallèle) est notée T. Le temps T comprend le temps des deux parties non parallélisable et parallélisable. La portion de temps pour exécuter en série la partie parallélisable est notée P. La portion de temps pour exécuter en série la partie non parallélisable est alors 1 - P. De là découle que :

T=(1-P)T+PT

La partie parallélisable P peut être accélérée en exécutant en parallèle. Combien il peut être accéléré dépend du nombre de sous-tâches qui sont exécutées en parallèle. Le temps d’exécution de la partie théorique parallélisable sur un système capable d’exécuter N sous- tâches en parallèle est ainsi calculé :

P/N T

(37)

La loi d’Amdahl donne le temps d’exécution théorique T(N) de l’ensemble de tâches sur un système capable d’exécuter N sous-tâches en parallèle:

T(N)=((1-P)+P/N)T

Par conséquent, le meilleur (avec un nombre infini de sous-tâches) de temps d’exécution théorique de l’ensemble de la tâche est

Tmin = 〖lim〗_(N→∞) T(N) =(1-P)T

En termes de speedup globale théorique, la loi d’Amdahl est donnée comme suit : S(N)=T/(T(N))=1/((1-P)+P/N)

Et la meilleure accélération globale théorique est : Smax = 〖lim〗_(N→∞) S(N) =1/((1-P))

A titre d’exemple, si P est de 90%, puis 1 - P est de 10% et que la tâche peut être accéléré par un maximum d’un facteur 10, quelle que soit la taille de la valeur de N utilisée. Pour cette raison, le calcul parallèle est utile que pour un petit nombre de processeurs et de problèmes avec des valeurs très élevées de P (proche de 100%) : soi-disant problèmes embarrassant parallèles. Une grande partie de l’art de la programmation parallèle consiste à essayer de réduire la composante 1 - P à la valeur la plus faible possible.

Dans le calcul parallèle, P peut être estimée en utilisant l’accélération mesurée S (N) sur un certain nombre de processeurs utilisant N

Pestimated =(1/(s(N))-1)/((1/N-1))

P estimée de cette manière peut alors être utilisé dans la loi d’Amdahl pour prédire un gain de vitesse en fonction du nombre de processeurs.

Exercice :

Après avoir lu le détail de l’activité 2.2 répondez aux questions suivantes : Quelles sont les limites de la loi d’Amdahl ?

Si un ordinateur exécute un programme P en 100 secondes, où 30% des opérations sont les accès mémoire avec un temps moyen de 80 ms accès et 60% des opérations sont en virgule flottante. Quels sont les impacts sur la performance globale du système si nous réduisons le temps d’accès moyen à la mémoire de la moitié ?

(38)

Quel est l’impact sur la performance globale lorsque l’on double la performance des opérations en virgule flottante ?

Réponse à la question 1

La principale limite de la loi d’Amdahl est qu’elle s’applique aux seuls cas où la taille du problème est résolue. En pratique, comme plus de ressources informatiques deviennent disponibles, ils ont tendance à se familiariser à des problèmes plus graves (jeux de données plus importants), et le temps passé dans la partie parallélisable pousse généralement beaucoup plus rapidement que le travail intrinsèquement séquentiel. Dans ce cas, la loi Gustafson permet une évaluation plus réaliste de la performance parallèle.

Réponse à la question 2.a

Réponse à la question 2.b

(39)

Conclusion

Dans cette activité, nous avons vu avec l’utilisation de la loi d’Amdahl à quelle vitesse une tâche sera exécutée lorsque nous mettons en œuvre une certaine amélioration par rapport à l’ordinateur actuel. Du point de vue de l’optimisation de la parallélisation, la loi dit que si nous continuons fixé la taille du problème, l’accélération est limitée par fraction de programme qui ne peut être parallélisé. Cette unité introduit l’apprenant à la loi de l’Amdahl. Des exemples ont été utilisés pour enseigner à l’apprenant comment trouver le maximum prévu à l’amélioration d’un système global lorsqu’une partie seulement du système est améliorée

Évaluation

Activité 3 – Multicore et Multiprocesseurs

Introduction

Depuis la dernière décennie, l’évolution des processeurs étonne.

Ceci est principalement dû à l’augmentation de la densité d’intégration des transistors dans des zones plus petites. A ce niveau d’intégration, il est nécessaire d’exploiter des techniques de parallélisme pour efficacement utiliser le rendement maximal des processeurs.

Pipeline, super scalaire et multithreading, sont des techniques appliquées dans le fonctionnement en parallèle pour augmenter les performances.

Dans cette activité, seront analysés les systèmes multi-processeurs et multicœur.

Détails de l’activité Multicore ou multicoeur

Le terme utilisé pour décrire l’utilisation de plus d’un noyau dans un processeur. Chaque noyau a son propre cache indépendant et exécute des programmes en parallèle sans interférer avec l’autre traitement.

Leur logique est basée sur la subdivision d’un seul processeur, comme cela a été utilisé au cours des dernières années, dans les petits processeurs pour traiter la consommation d’énergie et la dissipation de la chaleur d’un processeur comme ils ont été développés avec des systèmes plus intégrés (Alves, 2015).

Architecture multicore

Une des architectures utilisées par multicolore est connue comme le multitraitement simultané (SMP), qui est d’avoir plusieurs cœurs du partage des mémoires restantes pour les niveaux inférieurs (Douglas, 2015) du processeur, il favorise l’utilisation de plusieurs processus et les threads provoquant ainsi l’augmentation des machines.

(40)

L’architecture elle-même utilisée par multicolore ne se différencie pas avec l’idéologie de l’architecture de Von Neumann qui est utilisée dans une seule couleur, le multi-cœurs conserve la même interaction processeur-mémoire dispositif d’entrée / sortie, la logique de son fonctionnement sera le même, la différence entre les deux modèles est la quantité de noyaux qui travaillent dans l’unité centrale de l’ordinateur en utilisant une mémoire partagée.

Les multicolores suggèrent afin de maintenir les performances de traitement élevées des machines sans avoir à investir dans leurs systèmes de refroidissement, en raison du chauffage par la grande vitesse et la fréquence que les instructions ont été traitées par la CPU. Avec l’émergence de cette nouvelle ligne d’assemblage des différents processeurs de programmes peuvent fonctionner simultanément et permet l’utilisation d’un nouveau concept qui est la programmation parallèle, qui tire pleinement parti des avantages de threads disponibles.

Performances du multicore

L’utilisation de plus d’un noyau en multicore les amène à augmenter la vitesse de traitement par impulsion d’horloge, le traitement des données de partage entre la couleur et optimiser les performances de certaines tâches et de réduire la période de mise en œuvre. Le temps d’exécution du processeur pour un programme est donné par le rapport de ses cycles d’horloge par la fréquence d’horloge, ce qui augmente la vitesse d’horloge augmente par conséquent le temps d’exécution.

L’architecture multicolore offre une augmentation de la performance des données, deux des facteurs qui aident à cette augmentation est l’utilisation du multi-threading et de la programmation parallèle.

Multi-threading (MT):

Le concept consiste à une planification des programmes qui sont en cours d’exécution à être traitées par le processeur, comme le travail multicœur avec plus d’un noyau dans ses processeurs.

Cette activité est définie par le multi-threads et a l’analyse des programmes distribués entre cœur.

Pour améliorer le fonctionnement multicore, il a été développé une technique appelée simultaneous multithreading (SMT) et qui est destinée à exécuter plusieurs threads en évitant simultanément les déchets de traitement horizontal (unités fonctionnelles non utilisées), il interprète qu’il existe plusieurs programmes en cours d’exécution, et maximiser l’utilisation des unités fonctionnelles des fils augmente les programmes IPC et de ce fait les performances du processeur (Alves, 2015). SMT permet aux threads d’être traités en parallèle dans chaque noyau, le processeur effectue généralement les fils d’instruction de chaque cycle de traitement, quand il est sur les pistes de secours en parallèle d’un autre thread, par exemple:

Alors que le processeur attend qu’une exécution à virgule flottante soit terminée d’autres instructions peuvent être exécutées dans des threads entiers.

(41)

Programmation parallèle :

Le concept de programmation parallèle est de considérer un programme comme un ensemble de pièces qui peuvent être résolus en même temps, sa construction est faite de façon séquentielle, mais est fait de telle sorte qu’il peut être exécuté en parallèle par différents processeurs. L’illustration est donnée par la figure suivante :

Les programmes informatiques parallèles sont logiquement fait différemment par rapport aux séquentiels et sont plus complexes, parce que la communication et la synchronisation des sous- tâches devient un obstacle au développement de bons programmes. Le programmeur doit être prudent pour savoir quoi et quand les instructions seront exécutées en parallèle, dans cet ordre et régler le niveau de parallélisme (Alves, 2015).

Actuellement, il existe 4 types de programmation parallèle: en bits, en instruction, des données ou des tâches, qui sont déterminées par:

• En bits: il est dû à l’augmentation du nombre de bits d’une instruction (un mot), ce qui augmente les bits et diminue le nombre d’instructions

• Instruction: réordonner les instructions de sorte à ne pas changer le résultat, de sorte qu’ils font la plupart des étapes organisées par pipeline (traitement des risques)

• Donnée: utilisation des boucles de façon intelligente et correcte dans laquelle une boucle ne dépend pas de données à partir des obligations antérieures qui doivent encore être calculées

• Tâche: Évitez de multiples calculs à effectuer par le même ensemble de données

• Les principales raisons pour lesquelles nous utilisons la programmation parallèle sont de résoudre des processus plus complexes avec une plus grande facilité et de réduire le temps de résolution d’un problème. Il induit la fausse croyance que son utilisation, peut dupliquer les performances d’exécution de ses instructions, mettre une petite partie du programme qui ne peut être parallélisé limitera cette performance, il est toujours bon d’être à la recherche de parallélisme dans le code pour obtenir le maximum d’avantages que cette technique offre.

(42)

Multitraitement

C’est la capacité d’un système d’exploitation d’exécuter simultanément deux ou plusieurs procédés. Elle suppose l’existence de deux ou plusieurs processeurs. Elle diffère de multitâche, car cela simule la concurrence, en utilisant des ressources multiples, la principale étant le partage entre plusieurs processus du temps d’utilisation du processeur.

Aujourd’hui, les multiprocesseurs sont généralement présents sur la même carte physique et connectés via une interface de communication à grande vitesse comme le montre la figure ci-dessous :

Caractéristiques du multitraitement

Un système multiprocesseur a les caractéristiques suivantes :

• Implique deux ou plusieurs processeurs physiques (si noyaux distincts ou multiples sur la même puce de processeurs encapsulés) ou logique (processeur (s) avec la technologie Hyper-Threading d’Intel) avec la même puissance de calcul et chacun capable d’exécuter les processus de manière autonome. Cela implique qu’il n’y a pas d’unité de commande “central” ; chaque processeur possède sa propre unité de contrôle. Ainsi, de manière efficace, la logique de commande est distribuée par le système.

• Les processeurs partagent un seul espace d’adressage mémoire.

• Le système matériel dans son ensemble est géré par un système d’exploitation unique.

• Le système d’exploitation qui prend en charge le multitraitement devrait être en mesure de :

• multitâche de soutien;

• Maintenir plusieurs rangées de processus, un pour chaque processeur.

Références

Documents relatifs

Si vous envisagez de partager de l’information obtenue dans le cadre de vos relations avec Suncor, nous nous attendons à ce que vous vous conformiez aux dispositions sur la

plans décrits, il y a lieu de remarquer que des écarts peu importants par rapport à la distribution exponentielle sont acceptables pour la plupart des besoins

Le tiers-lieu l’Hermitage étant le dernier lieu de l’enquête, ma participation se situe principalement sur le livrable de restitution 30. Pour ce faire, nous réalisons

Des composants tels que le processeur, la mémoire centrale, la carte mère, le boitier d’alimentation électrique, etc., sont regroupés à l’intérieur d’un boîtier et

Les officiers militaires sont généralement bien entraînés pour agir au niveau tactique où le contexte est plus rigide, l’imputabilité est hiérarchique, l’autorité directe

Voici un exemple de diagramme d’états que l’on pourrait associé à une machine de Moore :.. Dans une telle machine, les sorties étant fonction exclusivement de l’état du

MARCHE RÉGLEMENTÉE/ORGANISÉ MARCHE DE GRÉ À GRÉ AMF → surveillance des marchés et des transactions + fonctionnement des entreprises de marché. Prestataires de

La revue Philosophie antique est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Pas de Modification