mardi avr. 01, 2008

La genèse des processeurs CMT : historique des processeurs

Je vais essayer, en déroulant l'histoire des processeurs, de justifier l'évolution vers le CMT.

1) les premiers processeurs exécutaient des instructions complexes (CISC) qui demandaient chacune plusieurs cycle d'horloge. Cela venait directement des logiques à portes NAND/OR/... et des logiques à relais.
Les compilateurs étaient très simples à programmer.

2) Première évolution : la technologie des compilateurs évoluant très rapidement, les processeurs RISC ont été développé avec pour objectif de d'éxécuter des instructions simples en un seul cycle d'horloge. Le design des processeurs devenait plus simple donc il était possible d'augmenter la fréquence d'horloge de façon importante.

3) Deuxième évolution : la fréquence des processeurs augmentant, le temps d'accés à l a mémoire RAM devient un frein à l'éxécution des instructions. Le processeur attend (NOP) les instructions et données. Pour résoudre ce probléme, un étage de mémoire cache a été ajouté, plus rapide, plus chére, plus petite.

4) Troisième évolution : Le prix de la mémoire cache diminuant, ses performances augmentant et son intégration sur le méme silicium que la CPU devenant possible, il est possible d'éxécuter plusieurs instructions en paralléle au sein d'un méme processeur. C'est l'apparition des processeurs Superscalaire : Un pipeline multiétage pour préparer les instructions et les données , plusieurs unité de traitement (x ALU, FPU) pour les exécuter.

5) Quatrième évolution : les instructions sont éxecutées dans l'ordre de présence dans le pipeline, souvent elles sont interdépendantes et s'attendent entre elles avant éxecution.
L'implémentation du principe de "Out of Order" permet de faire les calculs dans l'ordre où ils se présentent et suivant les dépendances d'exploiter le résultat ou de refaire le calcul.
L'implémentation de cette fonctionalité est complexe mais permet un réel gain de performance.

6) Cinquiéme évolution : les technos de gravure du silicium évoluant, il est possible sur une surface identique d'implanter plusieurs CPU partageant le méme cache (ou pas). De plus, la fréquence des processeurs peut augmenter significativement.

7) Sixième évolution : avec la montée en fréquence des processeurs, la mémoire cache devient le frein à l'alimentation en instruction et données des CPU.
Pour résoudre ce probléme, l'idée est de mettre plusieurs pipelines en paralléle pour alimenter les unitées de traitement. Chaque pipeline est vu comme un processeur virtuel. Naissance de Chip MultiThreading CPU.

L'implémentation du CMT peut se faire de plusieurs façons, la limitation est de nouveau les technologies de gravure du silicium :
- 2 Threads par unité de traitement en conservant celles ci complexes et performantes ( Ex: Sparc64VII, Power 6)
- 4 Treads par unité de traitement mais en utilisant des unités de traitement plus simple ( non superscalaire) moins performantes mais en multipliant leur nombre sur un méme silicium ( Ex: UltraSparcT1, T2)

Globalement la puissance des CMT développés suivant la deuxiéme régle est plus élevée que suivant la première. Mais leur performance unitaire (mono-thread) est inférieur.

8) Septiéme évolution : gràce à l'évolution des techno de gravures, il sera possible dans un futur proche de trouver l'équilibre entre l'alimentation en instructions et données via des multiples pipelines et la compléxité des unités de traitement permettant un traitement rapide.

9) Le Futur : remplacement de "l'electricité" par "la lumière" .............

En conclusion, il est toujours possible de trouver une nouvelle technologie ou une nouvelle impémentation des fonctions des processeurs pour augmenter leur performance.
Mais, à mon avis, la véritable évolution responsable à venir, c'est de pouvoir implémenter non plus un processeur mais tout un "ordinateur" sur un seul silicium avec des performances de nos serveurs actuels afin de répondre au seul véritable enjeu :

Réduire la consomation électrique !!!!

Benoit

About

Benoit Boitier

Search

Categories
Archives
« avril 2014
lun.mar.mer.jeu.ven.sam.dim.
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today