- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Melyik tápegységet vegyem?
- Azonnali informatikai kérdések órája
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- VR topik (Oculus Rift, stb.)
- Visszaveszi az alapértelmezett tuningot az egyik csúcslapjában az ASUS
- Milyen notebookot vegyek?
- TCL LCD és LED TV-k
- Steam Deck
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
Hirdetés
-
Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
ph A cég megoldása centralizált vezérelhetőséggel, masszív radiátorral és robusztus ventilátorokkal igyekszik vásárlásra csábítani.
-
Konzolokra is megjelenik a Fera: The Sundered Tribe
gp A kooperatív szörnyvadászós játékhoz a minap egy friss trailert kaptunk.
-
Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
it Egyre nagyobb probléma az AI hallucinálása – most az osztrák adatvédelmi hatóság veheti elő a ChatGPT miatt az OpenAI-t, alapvetően a GDPR megsértése miatt.
Új hozzászólás Aktív témák
-
Abu85
HÁZIGAZDA
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
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
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
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
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
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.
-
Persze, az x86 az subsetje az AMD64-nek. Te az utasításkészletről beszélsz, Abu viszont a futtatási módokról. Csak hogy le legyen írva, ugye ezek vannak:
1. Real Mode (ebben indul a proci)
2. Legacy mode (x86 protected)
3. Long mode (de ez alatt van két al-mód)
3.1. Compatibility mode (ez az alapértelmezett)
3.2. "valódi" Long modeNa most itt az van, hogy (szerintem) te 3. módról beszélsz, Abu meg az abban lévő 3.2-es módról. A 3.2-ben nem tudsz régi x86 alkalmazást futtatni, mert arra a 3.1 való. Windows-nál a proci ugrálgat a 3.1 és 3.2 között, ezért megy vegyesen 32 és 64 bit. Linuxon meg úgy tudom nincs ilyen, legalábbis anno nem volt, csakis a "valódi" long mode.
A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.
-
arn
félisten
nem tudom hogy oldottak meg, de mar eleve ez a dolog kizarja az egeszet. en korabban mindig kiegesziteskent olvastam, nem onallo utasitaskeszletkent, mint az ia32 vagy ia64.
facebook.com/mylittleretrocomputerworld | youtube.com/mylittleretrocomputerworld | instagram.com/mylittleretrocomputerworld
-
Jester01
veterán
Jellemzően nem fognak elfutni a már lefordított 32 bites kódok 64 bites módban. Fel fog robbanni például ha egy byteos inc vagy dec van benne mivel az 64 bites módban rex prefix (0x40-0x4f). A 0x50 opcode 32 biten push eax de 64 biten push rax ami nyilván nem ugyanazt fogja csinálni. 64 biten megkaptuk a rip-relatív címzést ami megint egy létező 32 bites címzési módott csap felül szóval ha olyan van a kódban akkor az se fog működni. Mivel a memóriacímzés 64 bitre váltott ezért ügyelni kell a 32 bites offsetek megfelelő kiterjesztésére (mov eax, -1; mov [foo+eax], 0 gépi kódja nem ugyanazt csinálja 64 biten futtatva). Természetesen a pointerek 64 bites mérete eleve minden olyan adatszerkezetre kihatással lesz amiben pointerek vannak és a verem is máshogy fog kinézni már csak azért is mert a call is 64 bites. Még ha a 32 bites konvenciót próbálod használni az se fog menni mivel rosszak lesznek az offsetek.
Jester
-
-
Viszont az a kérdés, hogy az AMD64 ISA x86 kompatibilitás nélküli (csak "valódi" long mode-ban való) használatához vajon jogilag szükség van-e x86 licenszre a közös utasítások miatt?
szerk: utánanézve a válasz az, hogy igen. Szóval kell x86 licensz az AMD64-hez.
[ Szerkesztve ]
A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.
-
Abu85
HÁZIGAZDA
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
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
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.
-
makkmarce
őstag
rosszul közelíted meg.
képzelj el egy mai autót
mondhatod, hogy az a ford T model továbbfejlesztése, de mondhatod azt is, hogy az egy új tervezés. Mindkettőnek van 4 kereke, meg kormánya, meg lámpái, és te hiába mondod, hogyha kivennéd a kereket, akkor az már nem működik, de nem ez a lényeg, hisz a mercedes csinált saját autót, ami benzinnel megy, a ford is csinált sajátot, sok esetben meg is egyeznek, de mindkettő teljesen külön termék.
Az, hogy ugyanoda tettek bizonyos parancsokat, az a kompatibilitás. Az ARM-nál is van inc, dec, div, mul, etc, és akár ők is tehették volna ugyanarra a byte-ra a parancsot, attól még az ARM, és nem az x86 lebutított változata, az AMD 64 is külön van, és az x86 is. Mondhatnánk, hogy ez végülis csak megközelítés kérdése, de külön lett bejegyezve, nem pedig a másik kiterjesztéseként. Senki se vitatja a hasonlóságokat, de attól még az AMD64-et egy külön termékként deklarálták. Egy új merciből se veszed ki a 4 kereket, merthogy az a fordon is volt 100 éve, de semmiképp se állítanád azt, hogy az bizony egy kiterjesztett ford T modelokoskodom, tehát vagyok
-
Abu85
HÁZIGAZDA
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.