Vlákno názorů k článku
Linus Torvalds dává Bcachefs ultimátum od Martin Vancl - Asi hloupá otázka, ale v čem je o...

  • Článek je starý, nové názory již nelze přidávat.
  • 7. 10. 2024 17:16

    Ladis

    Asi z historických důvodů. Dlouho byly ALU jednotky drahé, takže se operace s větší šířkou čísel dělaly na více kroků. Ať už programátorem (32 bit čísla na 16bit CPU, 64bit čísla na 32bit CPU, 8bit čísla na 4bit Intel 4004), nebo mikrokódem (8bit čísla na Zilog Z80 s 4bit ALU, 32bit čísla na Motorola 68000 - až 020 měla 32bit ALU):

    https://softwareengineering.stackexchange.com/questions/95556/what-is-the-advantage-of-little-endian-format

  • 7. 10. 2024 17:49

    Pavel Píša

    BE na postupné sčítání právě vychází špatně. Potřebujete začít ADD na LSB a pak ADDC (s přenosem carry) na vyšších bytech. Tedy pokud proměnné na adresách v ukazatelích začínají LSB (tedy little-endian), tak to vychází lépe. U BE je nutné nejdříve přičíst délku operandu a pak načítat s predekrementem... Naopak big-endian vychází lépe při porovnávání, tam stačí začít od MSB a při první neshodě je jasné, jaká je relace. MSB by mohlo mít smysl na sítích, kde by se v routeru mohlo začít směrovat již podle prvních přijatých bitů adresy (pokud maska nižší zcela ignoruje). Pro běžné 32 bit IPv4 a asi i pro 48 MAC je to jedno. Pro 128 bitů IPv6 by to trochu smysl mít mohlo. Ale většinou se přijímá asi celá hlavička a v případě zaplněného výstupního portu je nutné stejně uložit celý paket a pak ho vyslat znova z bufferu. Ale pro low latency TSN a nebo nějaká time-triggered řešení by BE mohl mít smyl a zrovna díky SUNu a SPARCu a dalším je network order pro RPC a IP adresování tvrdě big-endian. Zde tedy mají little-endian trošku nevýhodu. Naopak ta multiprecission aritmetika vychází většinou na little-endian lépe. Dnes si myslím, že je to spíše jedno a díky převálcování mnoha systémů Intelem a jeho little-endian je dnes častá situace, že s BE jsou problémy a plikace na něj nejsou otestované. Takže LE nakonec vychází jednodušeji. Zároveň třeba PCI a PCIe jsou v základu little-endian a tak klasická pultová síťová karta v BE systému bude vyžadovat otáčení endianingu a znamenat určitý overhead. Na PowerPC se to ale vyřeší i v BE případě mapováním a instrukcemi...

  • 8. 10. 2024 10:35

    cc

    BE je dnes už v podstatě histocké břemeno, teda pokud neděláš s s390x nebo pro něco hodně starého. Lidi s BE už dnes moc nepočítají, to ale neznamená, že je dobré tu podporu prasit v projektech, které BE pořád podporujou.