INF1600 Architecture des micro-ordinateurs...Introduction Génie informatique et génie logiciel 6...

Post on 17-Jun-2020

40 views 1 download

Transcript of INF1600 Architecture des micro-ordinateurs...Introduction Génie informatique et génie logiciel 6...

Génie informatique et génie logiciel 1

INF1600: Architecture des micro-ordinateurs

Introduction

Professeur : Giovanni Beltrame

giovanni.beltrame@polymtl.ca

Local: M-4018

Génie informatique et génie logiciel 2

Le professeur

• Formation:

– MS, Electrical Engineering, UIC, USA. (2001)

– MTech, CEFRIEL, Milano, Italie (2002)

– Laurea, Computer Engineering, Politecnico di Milano, Italy (2002)

– PhD, Computer Engineering, Politecnico di Milano, Italy (2006)

• Experience industrielle

– CEFRIEL, Italie (2001-2003)

– STMicroelectronics, Canada (2004)

– European Space Agency, Netherlands (2006-2009)

– École Polytechnique de Montréal (2010-present)

Introduction

3Génie informatique et génie logiciel

Objectifs de la leçon

1

3

2

5

Faire une liste des objectifs du cours

Décrire le programme du cours

Décrire comment les apprentissages seront évalués

Faire une liste de composants d'un ordinateur

Expliquer le comportement d'un inverseur CMOS

4

Introduction

4Génie informatique et génie logiciel

Agenda

3• Introduction à INF1600

• Vue d'ensemble d'un ordinateur

• Logique électronique numérique 5

4

21

Objectifs

Introduction

5Génie informatique et génie logiciel

Vos attentes?

• Ce que j’attends du cours:

1)

2)

3)

• Ce que j'attends du professeur:

1)

2)

3)

1

Introduction

6Génie informatique et génie logiciel

Architecture des micro-ordinateurs3 crédits (3 / 1,5 / 4,5)

• Le cours vise à:

– Démontrer l'importance du microprocesseur

– Expliquer l’organisation d’un micro-ordinateur

• Impact de ses composants sur le coût et la performance

– Expliquer comment le microprocesseur exécute les programmes

– Développer les aptitudes requises pour la programmation en assembleur

• INF1600 constitue un élément clé de la chaîne « architecture »

– Suite de INF1500 - Logique des systèmes numériques

– Nécessaire pour :

• INF1995 Projet initial en ingénierie informatique

• INF2610 Noyau d’un système d’exploitation

1

Objectifs

Introduction

7Génie informatique et génie logiciel

Great Reality #1: You’ve Got to Know Assembly

• Vous n’écrirez probablement jamais des programmes complets en

assembleur

• Les compilateurs sont beaucoup plus patients que nous !

• Mais comprendre l’assembleur est primordial

• Le comportement des bogues

• Le modèle des langages à haut niveau ne marche pas toujours

• Optimiser nos programmes

• Comprendre les optimisations du compilateur

• Trouver les sources d’inefficacité bas niveau

• Implémentation des noyaux

• Créer ou éliminer le malware

• x86 est le langage approprié!

1

Introduction

8Génie informatique et génie logiciel

Great Reality #1: You’ve Got to Know Assembly

« To be a great programmer, you really do need to know

how the machine works, I believe. You need to really

understand what can be done efficiently, and what

needs a lot of work from the CPU or the system. »

- Linus Torvald, Simple Talk 2011

« Well, I fondly remember the days when I was an

assembly language programmer. » - Jim, Senior Developer

1

Introduction

9Génie informatique et génie logiciel

Exemples pratiques

Time Stamp Counter

Registre spécial à 64-bit dans les processeurs Intel

Incrémenté à chaque cycle d’horloge

Lu avec l’instruction rdtsc – « read time stamp counter »

Application

Mesurer le temps (en cycles) requis par une fonction P.

double t;

start_counter();

P();

t = get_counter();

printf("P required %f clock cycles\n", t);

1

Introduction

10Génie informatique et génie logiciel

Code pour lire le compteur

/* Initialize the cycle counter */

static unsigned cyc_hi = 0;

static unsigned cyc_lo = 0;

/* Set *hi and *lo to the high and low order bits of the cycle

counter. Implementation requires assembly code to use the rdtsc

instruction.

*/

void access_counter(unsigned *hi, unsigned *lo)

{

asm("rdtsc; movl %%edx,%0; movl %%eax,%1“ /* Read cycle counter */

: "=r" (*hi), "=r" (*lo) /* and move results to */

: /* No input */ /* the two outputs */

: "%edx", "%eax");

}

1

Introduction

11Génie informatique et génie logiciel

Great Reality #2: Memory Matters

La mémoire avec accès aléatoire est une abstraction loin de l’implantation physique

• La mémoire a des limites

• Doit être allouée et gérée

• Les performances de la plupart des applications sont dominées par la

mémoire

• Les performances des mémoires ne sont pas uniformes

• La mémoire cache et la mémoire virtuelle peuvent changer beaucoup les

performances

• Adapter un programme aux caractéristiques de la mémoire peut améliorer

largement sa vitesse d’exécution

1

Introduction

12Génie informatique et génie logiciel

Exemple des effets de la mémoire

• Organisation hiérarchique

• Les performances dépendent des trames d’accès

• Incluant comment explorer des structures multidimensionnelles

void copyji(int src[2048][2048],int dst[2048][2048])

{int i,j;for (j = 0; j < 2048; j++)

for (i = 0; i < 2048; i++)dst[i][j] = src[i][j];

}

void copyij(int src[2048][2048],int dst[2048][2048])

{int i,j;for (i = 0; i < 2048; i++)

for (j = 0; j < 2048; j++)dst[i][j] = src[i][j];

}

30 times slower(Core i7)

1

Introduction

13Génie informatique et génie logiciel

La montagne de la mémoire

64M

8M

1M 128

K 16K

2K

0

1000

2000

3000

4000

5000

6000

7000

s1

s3

s5

s7

s9

s1

1

s1

3

s1

5

s3

2

Dimension de l’ensemble le de travail(octets)

Déb

itd

e le

ctu

re (

MB

/s)

Paquets (x8 octets)

L1

L2

Mem

L3

copyij

copyji

Intel Core i7

2.67 GHz

32 KB L1 d-cache

256 KB L2 cache

8 MB L3 cache

1

Introduction

14Génie informatique et génie logiciel

Carnegie Mellon

Great Reality #3:Computers do more than execute programs

• Ils ont besoin d’importer et d'exporter les données

• Les entrées/sorties sont critiques pour la fiabilité et les

performances des ordinateurs

• Ils communiquent à travers les réseaux

• Les réseaux introduisent plusieurs défis :

• Opérations simultanées

• Utilisation de médias peu fiables

• Compatibilité sur plusieurs plateformes

• Problèmes complexes de performance

• Etc.

1

Introduction

15Génie informatique et génie logiciel

Programme du cours

Introduction

Programmation en assembleur

Architecture

d'un microprocesseur

Organisation interne du

microprocesseur

Hierarchie de mémoireTP0

Introduction aux outils

TP1

Périphériques et architecture

Micro-ordinateur

et périphériques

TP2

Architecture

du microprocesseur

TP3

Programmation en assembleur

TP4

Lien entre C++ et assembleur

TP5

Mémoires

C++ et assembleur

2

Théorie

Travaux Pratiques

Introduction

16Génie informatique et génie logiciel

Plan du cours

• Introduction (1h)

• Vue d’ensemble d’un micro-ordinateur et périphériques (5h)

• Architecture et boucle d’exécution d’un microprocesseur (6h)

– Accès mémoires, exécution, entrées-sorties et interruptions…

• Organisation interne d’un microprocesseur (3h)

– Horloges, unités de traitement, registres…

• Programmation d’un microprocesseur (13h)

– Instructions, registres, modes d’adressage, indicateurs, lien avec C++…

• Hiérarchie de mémoire (9h)

– Limitations d’une seule mémoire, compromis coût/performance…

• 5 travaux pratiques (15h)

2

Introduction

17Génie informatique et génie logiciel

Documentation et organisation

• Toute documentation sur Moodle

• Manuel (pas obligatoire) :

Computer Systems Design and Architecture

V.P. Heuring and H.F. Jordan

Pearson Prentice Hall, 2004

• Je commence à l'heure, une pause de 10 min chaque 50 min de leçon

• Chaque semaine, mini-tests (quiz) formatifs comptabilisés sur Moodle

2

Introduction

18Génie informatique et génie logiciel

Évaluation des apprentissages

• Mini-tests formatifs 10%

• Travaux pratiques 30%

• Contrôle périodique (<=2h) 30%

• Examen final (<=2h30) 30%

– Toute documentation papier permise sauf anciens examens

Les 4P, dans le but de rendre le temps en classe agréable pour tous:

Ponctualité: être en classe ou au laboratoire aux heures prescrites.

Participation: être présent(e) et impliqué(e) lors des activités.

Politesse: être conscient(e) et respectueux(se) des autres.

Propreté: préserver l’environnement du local de classe

(exempt de nourriture et de déchets).

3

Introduction

19Génie informatique et génie logiciel

Chargés de laboratoires

2

01(mardi)

Benjamin

02(mardi)

Astrid

03(lundi)

Pierre-Yves

04(lundi)

David

05(mardi)

Ulrich

06(mardi)

Ulrich

Introduction

20Génie informatique et génie logiciel

Agenda

3• Introduction à INF1600

• Vue d'ensemble d'un ordinateur

• Logique électronique numérique 5

4

21

Introduction

21Génie informatique et génie logiciel

(pas micro) processeur ENIAC

Source: ds-wordpress.haverford.edu

Introduction

22Génie informatique et génie logiciel

4

Un voyage dans l'ordinateur

Introduction

23Génie informatique et génie logiciel

On ouvre la boite

• Si l´on enlève quelques

morceaux...

4

Introduction

24Génie informatique et génie logiciel

Composants de l'ordinateur

Processeur

Mémoire

Entrées/Sorties

Bus

4

Introduction

25Génie informatique et génie logiciel

Architecture de base

Processeur

Mémoire

Entrées/Sorties

Bus

Entrées/Sorties

4

Introduction

26Génie informatique et génie logiciel

L'architecture de Von Neumann

• Inventé par John Von Neumann in 1950

• Idée: fonctionnalité traitée comme les données

• Suivre une recette (programme)

• Appliquer chaque étape au ingrédients (données)

Cuisinier / outils

ComptoirFrigo/Table

Recette/

Programme?Memory Input/Output

Processor

Bus

4

Introduction

27Génie informatique et génie logiciel

4

Processeur

Bas

Memory

Processor

Input/Output

Bus

Haut

Introduction

28Génie informatique et génie logiciel

Microprocesseur

• Exécute des instructions simples

– Arithmétique

– Logique

– Branchement (condition)

• Accompli des tâches complexes

• Programmable

• Centre de la majorité des systèmes numériques

– Aussi appelé CPU (Central Processing Unit)

– ou UCT (Unité Centrale de Traitement)

• Types plus spécialisés:

– Microcontrôleur

• Emphase sur autosuffisance et faible coût

– DSP (Digital Signal Processor)

Introduction

29Génie informatique et génie logiciel

4

Mémoire

DIMM:

Dual In-Line

Memory Module

Memory

Processor

Input/Output

Bus

Introduction

30Génie informatique et génie logiciel

Mémoire vive

• Version originale de l’ENIAC:

– bascule bistable (deux triodes)

• Magnetic core memory (~1955)

– Anneaux de ferrite

• Microélectronique:

– Bascule bistable (registres)

– Capacitance (DRAM)

– Mémoires émergeantes (spin-torque transfer, nanotubes, DNA, etc.)

Source: oldcomputers.arcula.co.uk

4

Introduction

31Génie informatique et génie logiciel

Entrées/Sorties

4

Memory

Processor

Input/Output

Bus

Introduction

32Génie informatique et génie logiciel

Systèmes modernes

• Plusieurs processeurs

• Mémoire souvent intégrée dans la puce

• Réseau sur puce

• Wafer empilés

• Connections optiques

Introduction

33Génie informatique et génie logiciel

Exemple

Carte mère

Socket

Interposer

Substrat

SubstrateLogiqueMémoire

Dissipateur de chaleur

TSVs

• ARM v8

Introduction

34Génie informatique et génie logiciel

Agenda

3• Introduction à INF1600

• Vue d'ensemble d'un ordinateur

• Logique électronique numérique 5

4

21

Introduction

35Génie informatique et génie logiciel

Logique électronique numérique

• Portes logiques

– non (inverseur), et, ou, ou-exclusif …

– anglais: not, and, or, xor …

• Bascule bistable (D)

• Porte 3 états: 0, 1, Z

– Z=Haute impédance (grande résistance)

• Basé sur les transistors

– Plus utilisé présentement: CMOS

– Transistors NMOS et PMOS sur la même puce

• MOS = metal oxide semiconductor

– « Taille »: 180nm … 65nm … 26nm (réalisé; pas disponible)

• Plus petite largeur du « fil » utilisé comme canal de transistor

• Appelé la longueur du transistor, ce fil étant perpendiculaire au lien source-drain

• Résolution deux fois plus fine

5

Copyright © 2017http://www.electronics-tutorials.ws

Introduction

36Génie informatique et génie logiciel

5

Copyright © 2000 by Prentice Hall, Inc.Digital Design Principles and Practices, 3/e

Copyright © 2000 by Prentice Hall, Inc.Digital Design Principles and Practices, 3/e

Copyright © 2017http://www.electronics-tutorials.ws

Introduction

37Génie informatique et génie logiciel

Pour quelle(s) valeur(s) de A,B,C la sortie sera à Z

(haute impédance)? (où +V vaut la valeur

logique 1, et la mise à la terre vaut la valeur logique 0) :

C=0, A=1, B=1

C=0, A=0, B=1

C=0, A=1, B=0

Introduction

38Génie informatique et génie logiciel

A=0, B=0

Sortie à 1 ? Court-circuit ?

A=1 B=0, C=0, D=1, E=1

A=0, B=1, C=0, D=1, E=1

A=0, B=0, C=1, D=1, E=1

....

CMOS ?

Introduction

39Génie informatique et génie logiciel

Agenda

3• Introduction à INF1600

• Vue d'ensemble d'un ordinateur

• Logique électronique numérique 5

4

21

Introduction

40Génie informatique et génie logiciel

Sommaire

1 Faire une liste des objectifs du cours

• Démontrer l'importance du microprocesseur

• Expliquer l’organisation d’un micro-ordinateur

• Expliquer comment le microprocesseur exécute les

programmes

• Développer les aptitudes requises pour la programmation

en assembleur

Introduction

41Génie informatique et génie logiciel

Sommaire

2 Décrire le programme du cours

Introduction

Programmation en assembleur

Architecture

d'un microprocesseur

Organisation interne du

microprocesseur Hierarchie de mémoire

Micro-ordinateur

et périphériques

C++ et assembleur

3 Décrire comment les apprentissages seront évalués

Introduction

42Génie informatique et génie logiciel

Sommaire

5

Faire une liste de composants d'un ordinateur

Expliquer le comportement d'un invertisseur CMOS

4

Memory Input/Output

Processor

Bus

Introduction

43Génie informatique et génie logiciel

Introduction

44Génie informatique et génie logiciel

INF1600: Architecture des micro-ordinateurs

Introduction

Professeur : Giovanni Beltrame

giovanni.beltrame@polymtl.ca

Local: M-4018