Vlákno názorů k článku ARM - Linux není jen x86 od LiLu - stejny kod lze zapsat (tedy jen o jednu...

  • Článek je starý, nové názory již nelze přidávat.
  • 13. 9. 2005 8:56

    LiLu (neregistrovaný)
    stejny kod lze zapsat (tedy jen o jednu instrukciu delsi, ale urcite BEZ skoku) i na x86 pomoci instrukce MOVcc, kde cc je stejna podminka jako u u skoku(pravda, tusim ze cca od pentia vyse, ale to neni uz dnes takovy problem). Vyhoda te instrukce je, ze bez skoku se nenarusi proud prefetchnutych instr (a dekodovanych mikroinstrukci)

    (intel syntax)
    call podprogram ; spust podprogram
    cmp eax, 0
    movb eax, -1 ; pokud selhal nastav do eax -1 (mov below)
    movge eax, 0 ; jinak nastav R0 do 0

    pokud jsem to pochopil blbe, a 'jinak nastav R0 do 0' znamenalo ze '0' je nejaky parametr, KAM se to ma z eax prenest, pak to lze vyse uvedenou instrukci take (jen prohodit operandy)

    Jako nejvetsi nevyhodu intelu (x86) vidim hlavne maly (extremne) pocet registru, sileny FPU a to, ze nektere instrukce maji pevne dane sve vstupni/vystupni registry. Osobne bych se velmi primlouval, aby tato architektuar brzy zmizela a byla nahrazena nejakou lepsi (vetsina), ale to je asi jen sen...ach jo :(
  • 13. 9. 2005 13:31

    cxl (neregistrovaný)
    Add movge etc.. je problem, ze to existuje az od pentia - a prinos je prilis maly na to, aby se vyplatilo si tim zaneradit kod....

    Co se tyce x86 architektury, myslim ze u AMD64 vase stiznosti uz neplati. 16 registru 64-bitovych integerovych, 16 128-bitovych FPU/SIMD, to je vice nez rozumne... Cili radujte se, vas sen se splnil, x86-64 je realita.
  • 13. 9. 2005 14:49

    LiLu (neregistrovaný)
    Add MOVcc:
    No, je to sice az od pentia, ale na druhou stranu by to mely prekladace delat samy (tedy pokud kompiluji sam s -march=...). Vim ze to je trochu z uplne jineho pohledu a nei to tedy tak vhodny argument, ale neco na tom je...

    Add pocet registru:
    MIPS - 32 general, 32 float...
    IA64 - ted z hlavy nevim, ale taky podstatne lepsi
    Nejde jen o pocet registru, ale take o to, ze dost instrukci (MUL, ...) maji pevne dany vstup a vystup, takze je jich jeste min... Nejvetsi problem asi IMHO je to, ze to bylo blbe navrzene uz v pocatku, ted je to zpetne kompatibilni a uz na tom jede moc SW, aby se to zrusilo (zejmena windows :(( )
    AMD 64 sice moznosti rozsiruje, ale uz jen kvuli kompatibilite to moc zlepsit nemuze (zejmena to vazani registru k instrukcim,...) ale o AMD64 moc nevim, tak abych nekecal..
  • 13. 9. 2005 16:16

    Ped7g
    jednak MOVcc je az od pentia pro myslim (to pentium se mi nezda, tam to myslim nebylo), jednak pokud vim, tak jeste porad nema x86 treba CALLcc jak to mel jiz stary Z80, a jednak u ARMu jdou podminit vsechny instrukce (mozna existuji nejake vynimky, ted si nevzpominam), protoze to "cc" je napevno uvedeno v par bitech kodu instrukce.

    Je to proste jina architektura, ma jine vlastnosti a jine prinosy. Nema vyznam ukazovat ze x686+ jiz ma MOVcc, protoze funguje uvnitr zcela jinak jako ARM a nemuze se mu v nekterych ohledech vyrovnat, prave tak jako ARM zase v necem nema sanci proti x86.
  • 13. 9. 2005 18:11

    Radek Hnilica (neregistrovaný)
    jj pokud se nepletu tak prvni ctyri bity v slove koduji podminku u VSECH instrukci.

    Srovnavat ARM s xx86 je jako srovnavat hrusky s jabkama, nebo brambory s klobaskama.
    napr ARM ma FIRQ, a tim padem muzete v vlastni aplikaci(HW/SW) delat veci ktere by byly jinak obtizne.

    Na verzi ARMu tusim XScale jsem videl takovy maly super stroj. Velike jak obyc bigtower a az 96CPU. Jen ta cena. Ale ted to nemozu najit.

    A pokud nejste vazani na Linux, tak mate hotové mikropočítače http://www.mcu.cz/modules/news/article.php?storyid=474. Jestli si utrhnu trochu casu, tak bych si s tim chtel pohrat.