• [^] # Re: Tanenbaum était un visionnaire ...

    Posté par . En réponse à la dépêche Les UltraSparc sous GPL. Évalué à 3.

    lors qu'en Big Endian, j'aurais un mot ABCD, mais en pratique, si le réseau est en Big Endian lui aussi, ABCD deviendra CDAB (si je ne m'abuse - ou alors c'est carrément au niveau de l'octet, et à ce moment-là ce sera DCBA). Bref, ça ne respecte pas l'ordre des "humains".


    Ce n'est pas l'inverse plus tôt ? Je me rappelle des dumps hexa mémoires sur x86 des résultats d'une carte d'acquisition 32bits, c'est imbitable à lire pour un humain.

    (H)=humain, (M)=machine
    Sur 8 bits
    BE (Big-Endian bit de poid plus fort en premier)
    132 -> 10000100 -> 0x84
    LE (bit de poid le plus faible en premier)
    132 -> 00100001 -> 0x84

    Sur 16 bits (2 adresses consécutives en mémoire )
    BE : 32770 -> 10000000 00000010 -> 0x8402 -> AB (M) = AB (H)
    LE : 32770 -> 01000000 00000001 -> 0x0284 -> BA (M) != AB (H)

    Et en 32 bits
    Big-endian : ABCD (M) = ABCD (H)
    Little-endian : DCBA (M) = ABCD (H)

    A priori LE est plus facile pour la machine, car pour augmenter la taille des mots, il ne faut pas lire la mémoire à rebours

    Par contre ça oblige pour l'être humain de lire les chiffres de droite à gauche et non pas de gauche à droite

    Le LE était un avantage sur les ordinateurs 16bits à bus 8 bits, ou il n'y avait pas à gérer le chargement de l'octet de poids fort avant l'octet de poids faible dans un registre (simplification du décodeur, pas besoin d'un registre tampon)

    Maintenant que les bus mémoires font au minimum 64 bits et qu'il y a de toute manière un cache L1 entre la mémoire et le proc, cette limitation n'existe plus (présence automatique d'un "registre tampon")

    Au niveau de l'électronique, avec la mémoire cache, ça doit être la même chose d'être en LE ou BE au niveau du nombre de portes. (par contre les schémas doivent être en mirrori)
    Cette différenciation d'architecture vient plutôt de raisons historiques (comme le bios de 82)

    Par contre au niveau logique le BE est plus facile a appréhender pour nous humains. C'est plus facile de debugger une série de mots 32 bits en BE qu'en LE (c'est peut être pour cette raison qu'à la base les protocoles réseaux sont en BE).

    Mais je ne suis pas un spécialiste en conception de circuits éléctroniques, alors j'ai peut être dit une grosse connerie. Je serais ravis si c'est le cas, que l'on m'explique pour ne pas mourrir idiot :-)