Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Et maintenant, où allons-nous? Après toutes les techniques vues jusquici: Que peut-on faire de plus? Question plus fondamentale (et importante): Lorsque toutes les techniques vues jusquici sont en place, doù viennent les limites de performance?
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Quelles sont les limites de performance qui nont pas été abordées jusquici? Dans les années 50, lorsquon sest aperçu que les ordinateurs passaient le plus clair de leur temps à faire des entrées/sorties, on a découplé les E/S (I/O) du processeur central. Plus tard, on a même introduit les systèmes « batch », pour augmenter le niveau dutilisation du CPU central. En quoi ces deux problèmes des années 50 sont- ils semblables à ce qui limite maintenant la performance?
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Le temps daccès à la mémoire est grand! Maintenant, dans les années 2000, quest-ce qui limite la performance des processeurs? Le temps daccès à la mémoire est de plus en plus grand par rapport au temps dexécution du processeur. Lorsquun accès à la mémoire est fait, on observe les temps daccès suivants (valeurs provenant dun processeur Alpha à 300 MHz): Pas de délai pour le cache L1 7 cycles pour un accès manqué dans L1, réussi dans L2 21 cycles pour un accès manqué dans L2, réussi dans L3 80 cycles pour un accès à la mémoire
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Les implications des grands temps daccès Les délais impliqués lorsque les données ne sont pas dans les mémoires caches sont très grands. Donc, lorsquil y a un « cache miss », le processeur va sarrêter pendant un long moment (en supposant quon ne peut exécuter dautres instructions qui sont déjà dans le processeur): Ceci va se passer assez souvent lorsquon vient de faire un saut dans une nouvelle partie de code Si le délai daccès à la mémoire est trop grand, éventuellement linstruction en attente va arrêter toutes les autres à causes de dépendances de données Dune certain façon, on revient au problème vécu dans les années 50: le processeur passe trop de temps à faire des entrées/sorties, et le CPU (les unités dexécution dans notre cas) sont trop souvent inactives en attendant que les données soient disponibles)
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Une solution possible aux grands temps daccès à la mémoire Dans les années 50, on a tout fait pour garder le CPU occupé autant que possible Dans les années 2000, on doit aussi tenter de garder (toutes) les unités dexécution occupées, même pendant un accès à la mémoire… Au niveau du système dexploitation, on sait quil y a souvent beaucoup de threads qui existent au niveau du répartiteur. Et si on faisait le context switch entre les threads au niveau du processeur?…
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Les processeurs multithreaded: lavenir? Puisque le processeur est souvent inactif (en tout ou en partie, i.e. toutes/certaines unités dexécution sont inutilisées), une idée intéressante est de faire exécuter plusieurs threads parallèles par le processeur En ayant plus dinstructions parmi lesquelles choisir, le taux doccupation des unités dexécution devrait augmenter
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Les processeurs multithreaded: Quest-ce que cest? On définit une machine « multithreaded » ainsi: Processeur dans lequel les instructions à exécuter proviennent potentiellement de différents threads Quel est lavantage de ces machines? Lorsquun thread est immobilisé (par une instruction en attente de quelque donnée ou unité dexécution), dautres instructions provenant de dautres threads peuvent sexécuter Les threads partagent la même mémoire, donc laccès à la mémoire (le tableau des pages) na pas besoin dêtre modifié
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine single-thread scalaire: 1111 Temps
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread scalaire par bloc: 1234 Temps 121 Changement de contexte (Context Switch) 12
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread scalaire cycle-par-cycle: 1234 Temps Changement de contexte (Context Switch)
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine single-thread superscalaire: 1 Temps
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine single-thread VLIW: 1 Temps NNNNNN
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread superscalaire cycle-par- cycle: Temps Changement de contexte (Context Switch)
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread VLIW cycle-par-cycle: Temps Changement de contexte (Context Switch) NNNNNNNNNNN
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread superscalaire par émission (Simultaneous multithreading, SMT): Université de Washington (1995), Karlsruhe (1996) 1234 Temps
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Types de machines « multithread » Machine multi-thread scalaire par émission (chip multiprocessor, CMP): 1234 Temps
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? Le futur: quoi dautre? On a remarqué que dans de nombreux programmes, les mêmes variables sont lues de façon répétitive avec les mêmes valeurs. Idée: on va commencer lexécution dune instruction avant de connaître la valeur de ses opérandes, en utilisant des valeurs « prédites » à partir des valeurs précédentes On appelle cette technique la « superspéculation »
© 2001 Frédéric MailhotUniversité de Sherbrooke Que nous réserve le futur? La superspéculation Les processeurs utilisant cette technique utilisent deux sous-systèmes: Un système « front end » qui spécule de façon agressive, allant jusquà prédire les valeurs manquantes Un système « back end » qui valide les prédictions de valeurs et qui peut corriger le tir lorsque nécessaire