• [^] # Re: Sortie de GCC 3.4.0

    Posté par . En réponse à la dépêche Sortie de GCC 3.4.0. Évalué à 3.

    J'ajoute qu'on peut avoir un code assembleur de très bonne qualité, mais quand même pas optimisé.

    Je m'explique :

    Les microprocesseurs disposent en général de plusieurs pipelines s'exécutant en parallèle. Une première unité du CPU a pour tâche de prendre les instructions à exécuter, et à les répartir entre les différents pipelines.

    Seulement voila, le CPU va prendre N instructions à répartir entre P pipelines, et chaque pipeline est dédié à un seul type d'opération.

    Typiquement 2 pipelines pour exécuter des opérations sur les entiers, 1 pipeline pour exécuter les accès mémoire, 1 pipeline pour les calculs en virgul flottante, 1 pour les saut conditionnels etc.

    Un compilateur dédié à un microprocesseur se débrouillera pour que dans un « paquet » de N instructions consécutives il n'y ait pas plus de 2 opérations sur les entiers pour alimenter un maximum de pipelines en parallèle en un seul cycle d'horloge.

    Évidemment, comme pour chaque modèle de CPU le nombre et le type de pipelines est différent, il est extrêmement difficile d'effectuer ce genre d'optimisation.