AMD64
Az AMD64 az Advanced Micro Devices vállalat első 64 bites mikroprocesszorainak architektúrája . Kódneve Hammer (az angol kalapács ), amely az x86-64 kifejezést váltja fel . Az x86-64 nevet általában akkor használják, amikor erről az utasításkészletről beszélnek, anélkül, hogy hivatkoznának az AMD márkára. Valójában, míg az Intel kezdetben egy IA64 utasításkészlettel indult, amely nem kompatibilis az AMD64-szel, ma Intel új processzorai x86-64 kompatibilisek .
Ez az architektúra kompatibilis az Intel standard 32 bites x86 - ával . Az Athlon 64 , az Athlon FX , az Athlon X2 , a Sempron 64, a Turion , az Opteron , a Fusion és a Phenom használja .
Intel ezt követően elfogadta ezt az architektúrát néven Intel 64 , EM64T vagy IA-32e , saját Pentium 4 , Pentium D , Pentium Extreme Edition , Celeron D , Xeon processzorok és a legújabb Core i3s , Core i5 és Core i7 . A Microsoft x64 néven kommunikál erről a technológiáról .
Dirk Meyer mérnök, aki a decemberi Alpha processzorral dolgozott , részt vett a projektben.
Építészet
Az AMD x86-64 architektúra utasításkészlet az Intel IA-32 (x86-32) architektúra kiterjesztése . Az AMD64 architektúra fő jellemzői a 64 bites általános regiszterek támogatása, a 64 bites egész számtani és logikai műveletek, valamint a 64 bites virtuális címek. Az alkotók egy új architektúra alkalmával éltek, és további fejlesztéseket javasoltak, elsősorban a következőkkel:
-
Teljes 64 bites egész támogatás : az összes általános regiszter (GPR: Általános célú regiszterek ) 32-től 64 bitig terjed, valamint minden logikai és számtani művelet, a memóriától a regiszterekig és a regiszterektől a memóriáig stb. natív módon elérhetők 64 bites egész számokhoz. A verem push (verem) és pop (kibontás) szélessége mindig 8 bájt (64 bit), valamint mutatók.
-
Kiegészítő nyilvántartások : az általános nyilvántartások száma megduplázódik és eléri a 16-ot. Ezért kevesebb szükség van a nyilvántartások mentésére, helyreállítására és általánosabb manipulálásra; Hasonlóképpen, a legtöbb függvény argumentumának többsége regisztereken keresztül adható át, mint a veremben. Összehasonlításképpen: a PowerPC 970 architektúrának 32 GPR-je van. A regiszterek mérete és száma valóban az x86 egyik gyenge pontja. Optimalizált alkalmazásokkal teljesítménynövekedésre számíthatunk, különösen a sok hurokkal rendelkező programok esetében.
-
További XMM regiszterek : Hasonlóképpen, az (a SIMD utasításokhoz használt ) XMM regiszterek számát is 8-ról 16-ra növelik.
-
Nagyobb virtuális memória : az AMD64 processzormodellek megvalósítása jelenleg 256 tebájtos virtuális memória címet képes megcímezni (2 48 bájt). Ez a határ a jövőben megvalósítható 16 exbiotettre (2 64 bájt). Ez összehasonlítható 4 gibibájttal 32 bites x86 architektúrák esetén.
-
Nagyobb RAM-hely : Az AMD64 architektúrát jelenleg megvalósító processzormodellek 1 tbibájt RAM-címeket tudnak megcímezni. Ez a korlát a jövőben megvalósítható 4 peta-bájtra (2 52 bájt) (ezt korlátozhatja az oldaltáblázat bejegyzéseinek formátuma). Az örökölt mód (x86 kompatibilis mód), a PAE ( Physical Address Extension ) támogatott, mivel a leggyakoribb a 32 bites x86 processzorok, amelyek lehetővé teszik a maximum 64 gibibytes .
-
Hozzáférés az utasításmutató adataihoz : Az utasítások most hivatkozhatnak az utasításmutatóra (RIP regiszterre) vonatkozó adatokra. Ez lehetővé teszi a program memóriában elfoglalt helyétől független hatékonyabb kód előállítását (PIC vagy pozíciófüggetlen kód ); ezt gyakran használják megosztott könyvtárakban vagy futás közben betöltött kódokban.
-
SSE utasítások : Az eredeti AMD64 architektúra átvette az SSE és SSE2 utasításokat a processzor magjában. SSE3 utasítások kerültek hozzá 2005. április. Az SSE2 helyettesíti a precíziós 80 bites x87 utasításkészletet , beleértve a 32 vagy 64 bites lebegőpontos matematikai műveletek választását. Ez lehetővé teszi a lebegőpontos műveletek kompatibilitását más modern CPU-kkal . Az SSE és az SSE2 utasításokat a nyolc új XMM regiszter támogatására is kiterjesztették. Az SSE és az SSE2 32 bites verzióban érhető el a modern x86-os processzorokon; ha azonban 32 bites programok használják őket, akkor csak az ezeket az utasításokat támogató processzorokon futhatnak. Ez nem jelent problémát a 64 bites programok esetében, mivel az összes AMD64 processzor támogatja ezeket az utasításkészleteket. Az SSE és SSE2 utasítások használata az x87 helyett nem csökkenti a programok futtatásához szükséges platformok számát. Mivel az SSE és SSE2 utasítások általában gyorsabbak és ugyanazokat a funkciókat nyújtják, mint az MMX és a 3DNow! , ezeket elavultnak tekintik az AMD64-en.
-
No-Execute bit : Az 'NX'bit(az oldaltáblázat bejegyzéseinek63. bitje) lehetővé teszi az operációs rendszer számára, hogy meghatározza, mely virtuális memória címoldalak tartalmazhatnak futtatható kódot, és melyek nem. A „végrehajtás nélkül” azonosított oldal kódjának végrehajtására tett kísérletmemória-hozzáférési megsértést okoz, ugyanúgy, mint akkor, amikor „csak olvasható” módban próbálkozott egy oldal írása. Ez megnehezítheti a rosszindulatú kódot hogy átvegye az irányítást a rendszersegítségével„ Puffertúlcsordulásos ” támadások , vagy ahhoz kapcsolódó problémák ellenőrzése memóriapufferek. A80286óta azx86-osprocesszorokon már azonos funkciók voltak elérhetőkegy segment descriptors attribútummal, de ezután csak egy teljes szegmensre alkalmazható. A szegmensek címzését régóta elavultnak tekintik, és nem minden jelenlegi PC operációs rendszer használja azt, mindegyik alap címét 0-ra, méretét 4 gigabájtra állítva. Az AMD volt az x86 család első olyan gyártója,amely lineáris címzési módbantámogatta anem futtathatóhozzáférést. Ez a funkció „régi” módban is elérhetőaz AMD64 processzorokon, valamint a legújabb Intel x86 processzorokon, aPAEmód használatával.
-
Régi szolgáltatások eltávolítása : Számos x86 architektúra- rendszer programozási funkció, amelyet nem használnak a modern operációs rendszerek, már nem állnak rendelkezésre az AMD64-en " hosszú módban ". Ez magában foglalja a szegmentált memória címzést (bár az FS és a GS szegmensek megmaradnak, a Windows-kóddal való kompatibilitás érdekében), a feladatkapcsoló mechanizmust és a 8086 virtuális módot . Ezek a funkciók továbbra is „ örökölt módban ” maradnak , hogy ezek a processzorok módosítás nélkül teljesen végrehajthassák a 32 és 16 bites kódokat. Ha a jövőben már nem kellene 32 bites kódot használni ezeket a szolgáltatásokat, akkor támogatást lehetne távolítani a processzorokról a processzor tervezésének javítása és a gyártási költségek megtakarítása érdekében. Ezeket a funkciókat az operációs rendszer is emulálhatja, hogy megőrizze a kompatibilitást a „ régi ” alkalmazásokkal .
A különböző üzemmódok
Üzemmód
|
Operációs rendszer szükséges
|
Újrafordítás szükséges
|
Alapértelmezett címméret
|
Alapértelmezett operandusméret
|
Nyilvántartás-kiterjesztések
|
A GPR regiszterek tipikus mérete
|
---|
Hosszú divat
|
64 bites mód
|
64 bites (x86-64) kompatibilis operációs rendszer (pl. Windows 7 , Linux x86-64)
|
Igen
|
64.
|
32
|
Igen
|
64.
|
Kompatibilitási módban
|
nem
|
32
|
32
|
nem
|
32
|
16.
|
16.
|
16.
|
Örökölt mód
|
Védett mód
|
" Régi 16 vagy 32 bites"
operációs rendszer |
nem
|
32
|
32
|
nem
|
32
|
16.
|
16.
|
16.
|
virtuális mód 8086
|
16.
|
16.
|
16.
|
Igazi divat
|
Régi 16 bites operációs rendszer
|
Ezeknek a módoknak a leírása
Végrehajtások
A következő processzorok implementálják az AMD64 architektúrát:
Megvalósítások egy másik közös architektúrán: Intel 64
A következő processzorok valósítják meg az Intel 64 architektúrát:
- Intel NetBurst
- Intel Core
- Intel Core 2 (Quad, Duo, Solo) és származékai (Celeron 4x0, Celeron Dual Core, Pentium E)
- Intel Xeon
- Intel Atom
Ipari Nómenklatúra
Mivel az AMD64 és az Intel 64 architektúra viszonylag hasonló, sok szoftver- és hardvertermék semleges kereskedelmi kifejezést használ annak jelzésére, hogy kompatibilisek mindkét megvalósítással. Az AMD e processzor architektúrájának eredeti megnevezését, az "x86-64" -et még mindig használják erre a célra, akárcsak az "x86_64" -t. Más vállalatok, például a Microsoft és a Sun Microsystems , az "x64" összehúzódást használják marketing szinten.
Számos operációs rendszer és termék, különösen azok, amelyek az x86-64 támogatását vezették be, mielőtt az Intel ezen az architektúrán megjelent volna, az "AMD64" vagy az "amd64" kifejezést mind az AMD64, mind az Intel 64 kifejezésre használják.
-
Java Development Kit (JDK): Az "amd64" nevet x86-64 fájlokat tartalmazó könyvtárnevekhez használják.
-
Mac OS X : Az Apple az "x86_64" -ről beszél, különösen a Terminal parancsban archés a dokumentációban.
-
Microsoft Windows : A Windows x64 verziói az AMD64 monikerrel jelölik az összetevőket, amelyek ezt az architektúrát használják vagy kompatibilisek vele. Például a "Windows x64 Edition" telepítő CD-ROM rendszermappája "AMD64" néven van megkülönböztetve azt az "i386" nevű 32 bites verzióktól.
-
Solaris : A Solaris „ isalistikus ” parancsa , a Sun operációs rendszere mind az AMD64, mind az Intel 64 alapú rendszereket „amd64” néven azonosítja.
Megjegyzések és hivatkozások
-
Kevin Van Vechten, " re: Intel XNU hibajelentés " , Darwin-dev levelezőlista , Apple Computer ,2006. augusztus 9(hozzáférés : 2006. október 5. ) :"A kernel és a fejlesztői eszközök szabványosították az" x86_64 "-et a Mach-O architektúra nevére"
-
arch (1) Mac OS X kézi oldal
Függelékek
Kapcsolódó cikkek
Külső linkek