Keresés

Új hozzászólás Aktív témák

  • Abu85

    HÁZIGAZDA

    válasz arn #22 üzenetére

    De megvannak egymás nélkül. Az AMD64 az x86-tól független. Az AMD64-nek van egy kompatibilitási módja x86-ra, de ha azt kiveszik, attól még az AMD64 tökéletesen működik, csak kötelező 64 bites alkalmazást használni hozzá.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #25 üzenetére

    Ezt nagyon sokan hibásan tudják. Az AMD64 egy független ISA. Van viszont három kompatibilitási módja, két-két almóddal, illetve van egy rendszermenedzsmentre kialakított mód. A Long 64 bit mód az alapértelmezett, és erre vannak építve a kompatibilitási módok, amik az x86-hoz igazodnak.
    Nyilván nem fog előfordulni, mert a keresztlicenc azért jóval több szabadalmat lefed az ISA-nál, de ha pusztán az ISA-ról lenne szó, akkor az AMD adhatná a processzorait csak a Long 64 bit móddal, és ahhoz nem lenne szükségük az Intel x86-jára, és ezzel az Intel a Long 64 bit módot nem is tudná engedélyezni a procijain, mert az AMD tulajdona.

    Egyébként az Intel és az AMD 64 bites implementációja különbözik is. Bár az alapvető licencre épít az Intel, de kihagynak bizonyos regisztereket (például SYSCFG vagy TOP_MEM). De az Intel procijain pár utasítás is másképp működik. Vannak még egyéb kisebb különbségek, ezek azért alakultak ki, mert az Intel, alapvetően x86-hoz tervezett dizájnjaira bizonyos AMD64 funkciók (mert ugye ez egy független ISA) nem ideálisan mappelhetők, tehát van némi változtatás, hogy ezek jobban illeszkedjenek. Különösebb gondot ezek nem okoznak amúgy.

    (#26) Yany: Az AMD64 az ISA eredeti neve, és ez zsír új ISA, aminek vannak kompatibilitási módjai. Az x86-64 onnan érkezett, hogy az AMD és az Intel implementációja némileg eltér, nem jelentősen, de mivel az AMD64 nem az x86-ra épít, így az Intel bizonyos dolgokat nem tud benne optimálisan támogatni, és ezekre amolyan kerülőutak vannak. Az x86-64 valójában egy gyűjtőnév, amivel az x86 64 bites verzióira utalunk, mert egyébként a VIA implementációja sem teljesen kompatibilis az AMD64-gyel. De az alapvető ISA mindig az AMD64 és annak kompatibilitási módjai, csak a hardverre nem jól mappelhető dolgoknál vannak apróbb változások. Jelentősége ezeknek nem igazán van a user felé, a rendszer oldalán nyilván le kell fedni, de ezt megteszik.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #28 üzenetére

    Azért hasonlít, mert úgy lett megtervezve az AMD64, hogy hasonlítson. Ez volt az egyik kulcstényező a tervezésnél, hogy az x86 nagyrészt mappelhető legyen rá. Emiatt alig van különbség, az Intel is csak nagyon kevés AMD64-es funkciót nem tud jól mappelni az x86-hoz tervezett hardverimplementációira. Ettől függetlenül maga az AMD64 ISA nem egy kiterjesztés, hanem egy olyan új ISA, ami kompatibilitást ad az x86-ra.

    Assembly nyelvi szinten egyébként egy csomó rendszerben sok hasonlóság lehet. Például a GCN1-2-3-4-5 assembly szintű kódja sok esetében megegyezik, mégis egymással nem kompatibilis ISA-król van szó. Bináris szinten már nem képesek a másik ISA-ra fordított kódot futtatni, akkor sem, ha assembly szinten pont ugyanazt látod.

    A Long 64 bit mód az, ami nem egy kompatibilitási mód, hanem egy primary funkció.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #31 üzenetére

    Az új ISA mibenléte a kódolási sémától függ. Gondolj csak bele, assemlby szinten két regisztert összeszorozni alapvetően majdnem minden ISA-ban ugyanúgy néz ki. Az utasítást majdnem mindenki MUL-nak jegyzi, és ki kell jelölnöd két forrásregisztert, majd egy harmadikat, amibe az eredményt írod. Az elve ennek ugyanaz. Ellenben a kódolási séma már eltérhet. Ha eltér, akkor új ISA-ról beszélünk, annak ellenére is, hogy egy MUL operáció látszatra ugyanúgy néz ki assemblyben. :)

    Az AMD64 esetében arról van szó, hogy készült egy új ISA, aminek vannak különböző kompatibilitási módjai a régi ISA-kra. Egyébként tökéletesen ez sem fedi le az x86-ot, de úgy 99,9999%-osan igen, a nem kompatibilis programokat pedig már rég patchelték.

    Továbbra is felhozható példának a GCN1-2-3-4-5 iterációk. Azok assembly szinten az utasítások zömében ugyanazok, de a kódolási séma tekintetében négy különböző rendszer, tehát ha lefordítasz binárisan a GCN3-ra egy assemlbyben ugyanúgy kinéző kódot, akkor az a kód GCN5-ben nem fog futni.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #40 üzenetére

    Pont az a lényege az AMD64 kompatibilitási módjainak, hogy ugyanazt a binárist megegye, másképp aligha lenne kompatibilis az x86-tal az új ISA. :))

    Próbáld ki ezt a kódot:

    mov r8, [r10]

    Ebből x86-ra nem tudsz bináris fordítani a operandusméret miatt, míg AMD64-re ez lesz a bináris: 4D8B02 ... ez a kód már a long 64 bit módban fut. :)

    Ha egy kódból tudsz fordítani binárist x86-ra, akkor az azt jelenti, hogy semmi olyant nem használsz benne, amihez szükséged lenne az AMD64 ISA long 64 bit módjára.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #49 üzenetére

    Csak a kompatibilitási módot. A mai processzorokban egy ISA van implementálva, méghozzá az AMD64, és ennek vannak kompatibilitási módjai, amik biztosítják a támogatást a régi x86-os kódokhoz. Akkor használod ennek az ISA-nak a long 64 bit módját, ha hozzányúlsz a kódban az r8-r15, XMM8-xmm15 regiszterekhez, illetve az RAX/BX/CX/DX/BP/SI/DI/SP regiszterkiterjesztésekhez, a 32 biten túli rész. Ezeket a kódokat nem is tudod fordítani x86-ra. Nem támogatja azt az operandusméretet a régi ISA.


    Ez egy jó kép megérteni a lényeget. Itt az AMD64 implementáció, és ennek a fehér részei a legacy kódokkal kompatibilis elemek. Amiatt képes maga az ISA a kompatibilitási módokban futtatni a legacy kódokat, mert az esetek döntő többségében ugyanazt a binárist eszi meg. Nem mindig egyébként, csak úgy 99,9999%-ban, mivel vannak igen apró eltérések, de ezek már évek óta le vannak kezelve.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #55 üzenetére

    Az ARM-ot ne vegyük ide. Ők másképp csinálták ezt meg. Amíg az x86-on az AMD kompletten leváltotta az ISA-t AMD64-re, és abba rakott kompatibilitást, addig az ARM nem váltotta le a régi ISA-t, hanem azt egészítette ki egy alternatív ISA-val. Más volt a két megközelítés, noha az eredménye ugyanaz. Az ARM megoldása annyival elegánsabb, hogy ha úgy döntenek, illetve már döntöttek is, hogy dobják a 32 bites módot, akkor azt úgy kit tudják szedni a rendszerből, hogy a hardveres implementáció egyszerűsödik. Ha az AMD/Intel döntene úgy, hogy kidobják a 32 bites módot, akkor attól a hardveres implementációjuk semmivel sem egyszerűsödne, mert a 64 bites módnak a kompatibilitási opciói a 32 bites módok. Ezért nem dobják ki a 32 bitet, mert számukra ez teljesen hasztalan, tervezés szintjén van úgy beépítve a rendszer, hogy semmit sem érnek el hardveresen, ha megszűnik ez a mód. Ellentétben az ARM-mal, akik tényleg tudnak nyerni rajta, konkrétan egyszerűsítik hardveres dizájnt.

    (#56) dabadab: Használnod kell az új regisztereket. Abban a hsz-ben írtam, amire reagáltál.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz arn #58 üzenetére

    Eleve egy kompatibilitási módként vannak azok támogatva. Egyébként igen, Mark Cerny még régen a PS4 bevezetésekor mondta egy briefingen, hogy PlayStation 4 például úgy lesz szállítva, hogy a long módból csak a 64 bites opció van benne aktiválva. Valaki kérdezte anno, hogy mi lenne a géppel, ha az Intel megvonná az x86 licencet, de mondta, hogy ez számukra mindegy, mert az AMD64 egy külön ISA, aminek csupán van kompatibilitási módja x86-ra. De utóbbit nem kötelező használni, nélküle is tökéletesen működik az AMD64. Amúgy azt is mondta, hogy elképzelhetetlennek tartja, hogy az Intel és az AMD licencproblémákba fusson, túlságosan függnek egymástól, de jogilag a Sony bebiztosította magát.
    A Microsoft annyiban különbözik, hogy náluk minden AMD64 által kínált futtatási mód támogatott, nekik ugye van x86 licencük.

    (#60) arn: A keresztlicenc nem csak az ISA-ra vonatkozik, hanem egy rakás más technológiára. Az AMD64 annyit ért az AMD-nek, hogy most már nem fizetnek semmit sem az Intelnek a technológiáiért, ahogy az Intel sem fizet semmit az AMD-nek a technológiáiért. Régen az AMD fizetett az x86-ért, csak azóta erősödött az alkupozíció, hiszen már nem az Intel ISA-jára építik a mai processzorok. De ettől az Intel és az AMD sem tud meglenni a másik nélkül mert több szinten építenek egymásra. Nem fogják magukat megöngyilkolni.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz ShiTmano #102 üzenetére

    Ha felmondaná az AMD és az Intel a keresztlicencet, akkor nem az x86 és az AMD64 lenne a legnagyobb baj. Nem csak ezek vannak ám megosztva, hanem egy tucatnyi más, eszközszinten implementálható technológia.
    Ha megtörténne ez a tényező, akkor az Intelnek vissza kell térnie az utolsó 32 bites P4-hez, míg az AMD-nek valamelyik Athlon 64-hez. Ezek után azért a technológiák átadása egészen jellemző volt a két cégre, tehát valamilyen egyéb szabadalom tekintetében biztos bukna minden 2005 után kiadott CPU.

    (#104) Ammonita6: Amíg a program long 64 bit módban fut, addig nem kell emulálni semmit az AMD-n. Akkor kell, ha a program nem ebben indul el.

    (#112) lezso6: Ahhoz nem szükséges. A kompatibilitási módokhoz kell. A PS4-et direkt ezek nélkül szállítják, meg a PS5-öt is.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #115 üzenetére

    Ezt mond Mark Cerny-nek. Ne nekem.

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #118 üzenetére

    Briefingen kérdezték meg tőle. Nem tudom, hogy a Sony tárolja-e az újságírói briefingeket 10 évre visszamenőleg.

    De az AMD-től megkérdezheted. Ők biztos elmondják neked ugyanezt.

    Az egésznek egyébként semmi jelentősége nincs, mert ha bukna a keresztlicenc, akkor nagyon régi processzorokhoz kellene ám visszatárni. Az Intelnek P4-hez, míg az AMD-nek Athlon 64-hez. És mindkét cég bukna ám egy csomó programot. Nem az ISA lenne ám a legnagyobb gond, hanem a különböző cache-ekre és front-endre vonatkozó szabadalmak, amelyek egy részét megosztanak egymással.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #120 üzenetére

    Nem célom, hogy meggyőzzelek. Emlékszem, hogy akkor is ragaszkodtál a GeForce Now kapcsán hangoztatott álláspontodhoz, amikor a Codemasters mást mondott. [link] - ilyen szempontból teljesen mindegy, hogy ki mit mond, akár a hivatalos álláspontot is semmisnek tekinted, ha ütközik a safe space-eddel.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #124 üzenetére

    Nem velem száltál akkor vitába, hanem a Codemastersszel.

    Muti meg azt a SteamOS-es hsz-em.

    A valóságtagadás és a mélyebb témaismeret két különböző dolog.

    (#123) dabadab: Csak ezek a funkciók mind a long 64 bit módban vannak implementálva. Ez az oka annak, hogy kompatibilis a rendszer visszafelé. Tehát amikor arról beszélünk, hogy kiveszed a 32 bites részt, akkor a long 64 biten kívüli módok letiltásáról beszélünk, de a long 64 módban futó alkalmazások ettől még futnak. ;) Ezért van így implementálva a rendszer, hogy működjenek a módok egymástól függetlenül. Mást nem tudsz belőle kivenni, mert az AMD64 ISA részei azok a reigszterek, utasítások, stb.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz dabadab #126 üzenetére

    Persze. Azért vannak így implementálva az új ISA szintjén, mert van kompatibilitási mód az x86-ra. Akkor tudsz bináris kompatibilitást adni egy másik ISA-ra, ha az utasításarchitektúra szintjén beletervezed a működését az új ISA-ba. De a hardver szintjén már nem így vannak implementálva, mert a GPR-ek az eszközszinten 64 bitesek. Azok is, amelyek a legacy regiszterek. És például long 64 bit módban a legacy regiszterek is úgy vannak használva hardverszinten, hogy a 0-31-ig tartó bitekben van információ, de pont a long 64 bit mód miatt számolni kell a 32-63-ig tartó tartománnyal is, és ez külön le van kezelve. Például long compatibility módban nem ugyanúgy van kezelve a hardver. Az már az x86 eszközszintű működéséhez hasonlít.

    Az AMD ezzel az ISA-val azt találta ki, hogy miképpen lehet 64 bitre átvinni az x86-ot. És ez nem egy kiegészítés. Ehhez egy új ISA-t terveztek, amibe belerakták az x86-tal való kompatibilitást 32 és 16 bitre. Az eszközszintű működés viszont más long 64 bites és long compatibility módban, mert 64 biten számolni kell a nagyobb legacy regiszterekkel, míg kompatibilis módban nem. Nem mellesleg ha csak kiterjesztés lenne az ISA, akkor a long 64 bit mód önmagában nem működne, hiszen nem lenne hozzáférése egy csomó regiszterhez. De nem ezt tapasztalod, hanem azt, hogy működik. Egyszerűen foghatsz egy kódot és lefordíthatód x86-ra vagy AMD64-re, és utóbbi esetben nem fog ellenkezni a processzor, hogy bizonyos funkciók az x86-hoz tartoznak, mert le lettek implementálva az AMD64 ISA-ra, tudja a rendszer, hogy mit kezdjen velük eszközszinten, ha például nem használod a legacy regiszterek 32-63-ig tartó tartományát, de azt is tudja értelmezni, hogy mi történjen, ha éppen használod. Nem kell hozzá átkapcsolnia egy másik módba, mert önálló rendszerről van szó, nem egy másik módra épülő kiterjesztésről. :)

    (#131) dabadab: Akkor csak a long 64 bit mód marad.

    A licenc arra vonatkozik, hogy miképpen lett bejegyezve. Az AM64 az AMD találmánya, ők a jogtulajdonosok, és joguk van működtetni. Arra nincs licenc nélkül joguk, hogy a kompatibilitási módokat engedjék, mert akkor a processzorok eszközszinten másképp működnek.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz Reggie0 #133 üzenetére

    Az utasítások neve, bájtkódja, assembly szintű működése megegyezhet más ISA-val is. Ez a kompatibilitás. A szabadalom viszont a mikroarchitektúrára vonatkozik. Itt már különbségek vannak, csak ennyire mélyre nem lehet belátni. Az implementáció pedig a mikroarchitektúrából ered, itt ugye megint lehetnek különbségek, akár úgy is, hogy az Intel és az AMD kompatibilitást ad.

    Emulálni lehet az x86-ot. Ezt már az FTC megengedte pár éve. Ezt nem tekintik törvénytelennek. A fő probléma, hogy ha hatékonyan emulálni akarod, akkor oda mikroarchitektúra szinten is módosítások kellenek, nem elég csak egy látszatra megegyező ISA-t csinálni. És a mikroarchitektúrához már szükséged van a licencre. Enélkül még egy látszólag megegyező ISA-val sem kerülnél közelebb sebességben a futtatáshoz, mintha azt csinálnád, amit például a Microsoft csinál a Windows 10-ben. A jó teljesítményhez mindenképpen szükség van az AMD-től az AMD64 és az Inteltől az x86 licencekre.

    Ettől függetlenül nem törvénytelen, ha valaki hoz egy CPU-t, aminek az ISA-ja assembly szinten látszatra megegyezik az AMD64-gyel, akár a bájtkód is. Ez alapvetően az FTC korábbi állásfoglalása kapcsán megengedett, csak még így sem fogod megközelíteni azt, amit az AMD és az Intel tud, ha pedig felmerül a gyanú, hogy visszafejtetted az AMD és az Intel lapkák mikroarchitektúráját, akkor azért már lehet kapni egy kis dádát. De összességében a világ pénzével sem kerülnél igazán közelebb hatékonyságban annál, amit mondjuk a Windows 10 emulációjával megkapsz egy ARM magon. Ezért sem pörgetik ezt az irányt, de megtehetnék.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz Reggie0 #135 üzenetére

    Az AMD64 ISA a kompatibilitási módokra tartalmaz x86 IP-t. A long 64 bit módra nem, mert a mikroarchitektúra szintjén a long 64 bit és a long compatibility mód másképp kezeli az operandusokat. Csak oda már a user, meg az OS sem lát be, de természetesen nem szabad ugyanúgy kezelni mindent, mert long 64 bit módban a legacy regisztereknek is van további tartománya, és ez nagy különbség. Tulajdonképpen ez a fő oka annak, amiért az AMD ma már nem fizet licencdíjat az Intelnek a keresztlicencért, mert most már ugyanolyan alkupozícióban vannak, mint az Intel, van önmagából működő, saját szabadalomra épülő ISA-juk. Persze ettől még nem tudnak meglenni egymás nélkül, de arra jó volt, hogy az Intelnek is legyen vesztenivalója, így most már a keresztlicenc gyakorlatilag nem egy lenyomott dolog az AMD torkán, hanem egy kölcsönösen előnyös megállapodás. Egymás nélkül is tudnának procikat kínálni, csak jó régiket. :))

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz Reggie0 #138 üzenetére

    De az nem jelent az IP szempontjából semmit, hogy egy utasítás neve assembly szinten ugyanaz, vagy ugyanazt a bájt/opkódot használja, mint egy másik ISA-ban.
    Arra nem tudsz felhúzni szabadalmat, hogy "ADD AL, imm8", és arra sem, hogy ez hex-ben "020500000000" lesz. Arra viszont fel lehet húzni szabadalmat, hogy ez a mikroarchitektúra szintjén hogyan fog működni, az opkódot hogyan bontja le, stb. És ebből a szempontból az AMD64-nek a long 64 bit módja másképp működik, mint a long compatibility mód.

    Ezek lehet, hogy nem látszódnak, de egyáltalán nem mindegy, hogy a mikroarchitektúrán belül hogyan működik a rendszer. Például hiába adja ugyanazt a hexet egy kód x86-ban és AMD64-ben, a címfordítási metódus teljesen más a CPU-n belül, attól függően, hogy long 64 bit, vagy long compatibility módban fut a kód.

    Egyébként régen is felmerült már ez a kérdés. Gondolom ismeret P.H.-t, ma már kevésbé ír ide, de Ő is reagált már erre itt: [link] - egészen pontosan a 17-es hsz-ben. [link]

    (#139) Kopi31415: Ez a lényege az AMD64-nek. A kompatibilitás egy kulcskérdés volt az új ISA kidolgozásánál.

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

  • Abu85

    HÁZIGAZDA

    válasz Reggie0 #143 üzenetére

    Most attól, hogy egy ISA-ban az összeadást ADD utasítás jelzi, még nem lesz x86-tal kompatibilis. Nem is nagyon fogják elfogadni, ha végigtrollkodod a piacot azzal a perrel, hogy ADD-nak nevezted el az összeadás utasítást. Ki nem nevezi így? :)

    [ Szerkesztve ]

    Senki sem dől be a hivatalos szóvivőnek, de mindenki hisz egy meg nem nevezett forrásnak.

Új hozzászólás Aktív témák