Kdybyste si přečetl LKLM a ne jen zprávičku, tak zjistíte, že RISC-V s BE v současné době není v linux jádře podporována. Rozšíření RISC-V s BE je aktuálně zanedbatelné a zavedení podpory do jádra zkomplikuje situaci všem. Takže proč se do toho pouštět?
Pokud to chcete jako akademický projekt - prosím. Udržujte si vlastní strom, kde si budete řešit vzniklé komplikace, ale nezatěžujte s tím ostatní. Pokud to chcete pro zrychlení zpracování network packetů, tak použijte LE a rozšíření Zbb.
Linus jasně řekl, že pokud by RISC-V BE významně rozšířilo, tak pak má smysl to do jádra přidat. Ale není důvod, aby linux tuto "hovadinu" podporoval preventivně.
Já se v těchto nízkoúrovňových oblastech nepohybuji, ale trochu mě překvapuje, že se někde v nových architekturách ten BE ještě vyskytuje, když je ten LE "tak" výhodný (neironizuji, vytušil jsem z diskuse, že to tak je).
Aktuálně probíhá vymýcení obsoletního BE kódu v Blendru, protože už to žádná architektura nepodporuje, nebo zároveň umí i LE. Aha, teď mi dochází "žádná, kam je Blender portovaný". Ale stejně. Má tedy BE výhody, či přednosti, proč jej nadále v hardware implementovat?
A kdo používá ARM-BE?
BE je historie. Každá mainstream architektura je dnes LE ne kvůli Intelu, ale kvůli tomu, že s LE je prostě pohodlnější pracovat. A takový SIMD v BE, to je něco...
Takže ano, odvážím se to zmínit - RISC-V BE je jen akademická záležitost, kterou v praxi nikdo nepotřebuje. A Linus má pravdu, že nemá cenu prasit jádro s něčím, co vlastně nikdo nechce.
Fork je ale vždycky možnost, kterou nikdo nikomu nebere.
3. 10. 2025, 14:29 editováno autorem komentáře
Pohodlnejsi pracovat? V cem?
section .data
num dd 0x12345678 ; 32-bit integer stored in little endian
section .text
global _start
_start:
mov eax, [num] ; load 0x12345678 into eax
add eax, 1 ; add 1
mov [num], eax ; store result back
; now num = 0x12345679, memory = 79 56 34 12
vs
.data
num: .long 0x12345678 # stored as 12 34 56 78 in memory
.text
.globl _start
_start:
lwz 3, num(0) # load word into register r3
addi 3, 3, 1 # add immediate 1
stw 3, num(0) # store it back
# num now = 0x12345679, memory = 12 34 56 79
Pisu jednou za cas neco v asm (pro sebe) a je mi fuk jestli je to le/be.
Můžeš nějak vysvětlit, o co ti v tom příkladu vůbec jde? Navíc v tom prvním stačí napsat místo 3 řádků prostě:
add [num], 1
To, jak jsou v LE data uložené v paměti přece každý ví, na to není potřeba příklad v asm.
Změňme to - zpracovávám string v SIMD a chci najít třeba nějaký znak. V x86 by tělo cyklu mohlo vypadat nějak takto:
main_loop:
vmovdqa ymm1, [rax] // Load 32 bytes
vcmpeqb ymm0, ymm1, ymm15 // Compare with broadcasted byte in ymm15
vpmovmskb eax, ymm0 // Move the result of 32 byte comparisons into eax
test eax, eax
jnz found
// Advance and pointer check
add rax, 32 // Advance input pointer
cmp rax, rdx // Compare whether to iterate over
jne main_loop
// Tail condition:
tail:
// Have a match!
found:
tzcnt ebx, eax ; // The first byte that matched the byte in ymm15
Přemýšlet v LE je prostě pohodlnější, data se načtou přesně jak je potřeba, a toto byl jen jednoduchý příklad co má pár řádků. Portovat třeba nějaký SIMD kód jen z AArch64 na AArch64-BE je mission impossible, pokud to není jen pár řádků. No a to je důvod proč AArch64-BE se nikde nějak nepoužívá - nedává to smysl.
BTW je tady vůbec možné vložit normálně kód, co má i nějaký indent a prázdné řádky? Toto je úplně zprasené.
Nevím, mě na to asi chybí vhled. Naposledy jsem se setkal s BE (domnívám se) u Amigy na Motorole 68000/68020. A "tenkrát" ti to přišlo naprosto super, přirozený (lidský) zápis čísla, zatímco zpřeházené pořadí bajtů u "Intelu" mi přišlo jako magořina. Hmm. Zase jsem v tom assembleru či strojáku nikdy nic nedělal, aby mě to jinak trápilo. Vzhledem k tomu, co čtu teď v diskusích a že i ty procesory, které byly na BE založeny časem uměly oboje, nebo přešly na LE, tak to z má asi jisté výhody. :)
Pokud někdo v běžné diskusi napíše „nikdo“ nebo „všichni“, myslí tím „nikdo/všichni až na zanedbatelné výjimky“. Protože než napsal ten komentář, určitě nedělal celosvětový průzkum, aby zjistil, že je dohromady osm uživatelů, kteří by to chtěli použít.
(V mém komentáři je to 8 také vymyšlené číslo. Také jsem to nezkoumal.)
4. 10. 2025, 08:38 editováno autorem komentáře