La façon dont j'aime y penser est avec une analogie de blanchisserie. Les instructions du processeur sont comme des charges de linge. Vous devez utiliser à la fois la laveuse et la sécheuse pour chaque charge. Disons que chacun prend 30 minutes pour fonctionner. C'est le cycle d'horloge. Les anciens processeurs faisaient fonctionner la laveuse, puis faisaient fonctionner la sécheuse, ce qui prenait 60 minutes (2 cycles) pour terminer chaque charge de linge, à chaque fois.
Pipelining: Un pipeline est lorsque vous utilisez les deux en même temps - vous lavez une charge, puis pendant le séchage, vous lavez la charge suivante. La première charge prend 2 cycles pour terminer, mais la deuxième charge est terminée après 1 cycle supplémentaire. Ainsi, la plupart des charges n'ont besoin que d'un cycle, à l'exception de la première charge.
Superscalaire: apportez tout le linge à la laverie. Obtenez 2 rondelles et chargez-les toutes les deux. Quand ils ont terminé, trouvez 2 séchoirs et utilisez-les tous les deux. Vous pouvez maintenant laver et sécher 2 brassées en 60 minutes. Soit 2 charges en 2 cycles. Chaque charge prend toujours 2 cycles, mais vous pouvez en faire plus maintenant. Le temps moyen est maintenant de 1 charge par cycle.
Superscalaire avec pipelining: lavez les 2 premières charges, puis pendant qu'elles sèchent, chargez les rondelles avec les 2 charges suivantes. Maintenant, les 2 premières charges prennent encore 2 cycles, puis les 2 suivantes sont terminées après 1 cycle supplémentaire. Ainsi, la plupart du temps, vous terminez 2 charges à chaque cycle.
Plusieurs noyaux: donnez la moitié de votre linge à votre mère, qui a également 2 laveuses et 2 sécheuses. En travaillant tous les deux ensemble, vous pouvez en faire deux fois plus. Ceci est similaire à superscalaire, mais légèrement différent. Au lieu de devoir déplacer vous-même tout le linge vers et depuis chaque machine, elle peut le faire en même temps que vous.
C'est formidable, nous pouvons faire huit fois plus de linge qu'auparavant dans le même temps, sans avoir à créer des machines plus rapides. (Doublez la vitesse d'horloge: machines à laver qui ne nécessitent que 15 minutes pour fonctionner.)
Maintenant, parlons de la façon dont les choses tournent mal:
Bulle de pipeline: vous avez une tache qui n'est pas sortie au lavage, vous décidez donc de la laver à nouveau. Maintenant, la sécheuse est juste assise là, attendant quelque chose à faire.
Cache Miss: Le camion qui livre le linge sale est coincé dans la circulation. Vous avez maintenant 2 laveuses et 2 sécheuses, mais vous ne faites aucun travail car vous devez attendre.
Selon la fréquence à laquelle les choses tournent mal, nous ne pourrons pas toujours effectuer 4 charges à chaque cycle, la quantité réelle de travail peut donc varier.
Prédiction de branche: Eh bien, vous commencez à faire la lessive sur vos vêtements propres au cas où vous les tacheriez plus tard afin qu'ils soient déjà propres ... d' accord, c'est là que l'analogie tombe en panne ...