Jette un oeil ici pour comprendre la suite:
http://en.wikipedia.org/wiki/IEEE_fl...point_standard
En gros chaque flottant 64 bits est separe en mantisse exposant signe. Si tu veux faire une addition, il va falloir que tu shift les 2 mantisses par la difference d'exposant, les additionne, eventuellement +1 l'exposant max.
Donc pour faire une addition flottante 64 bits tu as besoin d'un additionneur 53 bits en pratique, un shifteur, et un peu de logique pour arrondir, et renormaliser. Pour en faire 2 en parallele tu as besoin de 2 additionneurs 53 bits.
Maintenant la question est si j'avais un additionneur 106 bits je pourrais facilement bloquer la retenue au milieu et le transformer en additioneur 53 bits (c'est comme ca que MMX a ete implemente sur P55C).
Le probleme c'est que la latence de la propagation de la retenue sur 106 bits vs 53 bits est tres differente, donc la latence de ton additionneur sera tres differente, et en pratique tu emploieras probablement meme des algorithmes differents pour le calcul de la retenue.
Donc 2 additionneurs 53 bits sont au final plus petits et plus rapides qu'un additionneur 106 bits.
Je ne ferai pas la demonstration pour un multiplieur mais c'est encore pire. Donc toutes les implementations "128bits" de SSE contre les implementations "64 bits" (celles ou on occupe les unites pendant 2 cycles) emploient une replication de hardware existant plutot qu'un redesign d'unites plus larges.
Le vrai flottant 128 bits a une mantisse dans les 110 bits dans mes souvenirs (la flemme de verifier) donc il faudrait ajouter qq bits en plus ce qui n'arrangerait rien.
Ai-je ete un peu plus clair ?
(N'hesitez pas a le dire, je fais ca depuis tellement longtemps que des fois je saute des etapes)