AMD64

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
AMD Opteron, primul procesor care a introdus extensia x86-64

AMD64, numit și x86-64, este o extensie la setul de instrucțiuni 64-bit x86 , care este comună tuturor procesorilor Intel și AMD de desktop și altor mărci minore.

fundal

Extensia a fost introdusă de AMD cu linia sa de procesoare Athlon 64 , iar Intel și-a făcut procesoarele compatibile la scurt timp după aceea, apelând la tehnologia EM64T .

Caracteristici

Extensia AMD64 aduce numeroase avantaje și unele dezavantaje minore: spațiul de memorie adresabil (pe măsură ce indicatorii trec de la 32 la 64 de biți) crește de la 4 GiB la, teoretic, 16 EiB . În practică, procesoarele de pe piață astăzi sunt limitate la 256 TiB . În plus, procesorul devine capabil să gestioneze nativ numere întregi pe 64 de biți.

Procesoarele pe 32 de biți pot gestiona nativ numere întregi până la 2 32 , după care trebuie să combine mai multe numere într-un mod destul de complicat. Un procesor pe 64 de biți depășește această limită la 16 miliarde de miliarde. Calculele în virgulă mobilă nu sunt afectate.

Registrele

Arhitectura AMD64 are 16 registre generice pe 64 de biți. Primele opt registre se numesc RAX, RBX, RCX, RDX, RSI, RDI, RBP și RSP și sunt versiuni extinse ale registrelor x86 corespunzătoare: doar cea mai puțin semnificativă parte a acestora poate fi accesată folosind vechile nume de registre x86. Celelalte opt sunt „registrele extinse” și sunt indicate prin abrevierile de la R8 la R15.

  • Numele EAX, EBX, ECX, EDX, ESI, EDI, EBP și ESP sunt utilizate pentru a accesa cei 32 de biți cei mai puțin semnificativi din primele opt registre.
  • Numele de 16 biți AX, BX, CX, DX, SI, DI, BP și SP sunt încă valabile și sunt utilizate pentru a accesa cei mai puțin semnificativi 16 biți ai noilor registre.
  • Numele AL, BL, CL, DL permit accesul la cel mai puțin semnificativ octet din registrele corespunzătoare. În plus, octetul cel mai puțin semnificativ al registrelor index poate fi accesat (ceea ce nu este posibil în x86) cu numele SIL, DIL, BPL și SPL. Prin urmare, de exemplu, SIL este octetul scăzut al registrului index RSI.
  • Denumirile AH, BH, CH, DH permit accesul la al doilea octet RAX, RBX, RCX și RDX (biții 8-15) așa cum era în procesoarele x86. Cu toate acestea, codurile acestor instrucțiuni au fost modificate în procesoarele AMD64 și intră în conflict cu cele necesare pentru a accesa cel mai mic octet de registre R8 la R15: prin urmare, nu este posibil să utilizați AH, BH, CH, DH împreună cu R8B ... R15B în aceeași afirmație.
  • Cei 32 de biți cel mai puțin semnificativi ai registrelor extinse sunt indicate cu (și accesate ca) numele R8D la R15D; cei 16 biți cel mai puțin semnificativi sunt indicați în schimb cu numele de la R8W la R15W, în timp ce octetul cel mai puțin semnificativ ca R8B ... R15B.
  • Există opt noi registre XMM pe 128 de biți, de la XMM8 la XMM15. Registrele MMX pe 64 de biți (MM0 până la MM7) sunt încă disponibile și, la fel ca în x86, sunt comune cu registrele FPU x87 (ST0 ... ST7).
  • Pointerul de instrucțiuni IP a fost, de asemenea, extins la 64 de biți și redenumit RIP.

Instrucțiuni

Pictogramă lupă mgx2.svg Același subiect în detaliu: Set de instrucțiuni .

După cum sa menționat deja, setul de instrucțiuni este ușor diferit de cel nativ x86. În special, unele coduri învechite mai puțin utilizate (AAA, AAD, AAM, AAS, DAA, unele tipuri de PUSH și POP și altele) au fost reatribuite la alte operațiuni.

  • Instrucțiunile existente pentru utilizarea registrelor pe 64 de biți au fost extinse:
 MOV RAX, imediat; încarcă un număr într-un registru pe 64 de biți
JRCXZ L1; dacă RCX este zero, acesta sare la L1
  • Au fost introduse noile instrucțiuni LODSQ, MOVSQ, COMPSQ, SCASQ, STOSQ pentru valori pe 64 de biți
  • Instrucțiunile LOOP și LOOPZ și prefixele REP, REPZ, REPNZ folosesc RCX în loc de ECX.
  • Instrucțiunea XLATB folosește RBX în loc de EBX
  • Au fost introduse câteva instrucțiuni de sistem noi
  • Instrucțiunile PUSH și POP incrementează / micșorează indicatorul stivei cu 8 în loc de 4

Unele instrucțiuni AMD64 utilizează adresarea relativă RIP pentru a prelua datele sau codul de care au nevoie.

Beneficii

Avantajele unei arhitecturi pe 64 de biți constau în principal în accelerarea calculelor cu numere care ocupă spațiu RAM mai mare de 32 de biți, care în arhitectura anterioară pe 32 de biți trebuia descompusă și apoi reasamblată pentru a fi procesată. Evoluția compilatoarelor a adus, de asemenea, un avantaj semnificativ în ceea ce privește performanța programelor compilate pentru arhitectura pe 64 de biți [1] . Creșterea cantității de memorie care poate fi instalată reprezintă apoi un avantaj indispensabil, atât în ​​domeniul multimedia (editare video, editare foto etc.), cât și în domeniul jocurilor video.

Dezavantaje

Compatibilitatea sistemului de operare

Linux

De-a lungul anului 2004 și la începutul anului 2005 , doar serverele Linux au folosit extensii x86-64, beneficiind cel mai mult de faptul că pot adresa mai mult de 4 GB de memorie. În prezent, majoritatea sistemelor GNU / Linux acceptă arhitectura pe 64 de biți.

Windows

Începând cu 25 aprilie 2005 , Microsoft a lansat o versiune pe 64 de biți a Windows , permițând unei game mai largi de utilizatori să profite de noile procesoare.

Alte sisteme de operare

În prezent, alte sisteme de operare mai puțin populare au, de asemenea, o ediție specifică pentru acest tip de procesor (de exemplu, FreeBSD , NetBSD , OpenBSD ,Solaris etc.).

Notă

  1. ^ 32 de biți vs. Sisteme pe 64 de biți , la superuser.com . Adus la 23 martie 2018 .

Elemente conexe