IA-32 (skraćeno od "Intel Arhitektura, 32-bit", takođe poznato i kao i386[1][2] metonimijom)[3] je 32-bit verzija x86 arhitekture instrukcijskog seta (ISA), koja je prvi put implementirana 1985. godine u Intel 80386 mikroprocesorima. IA-32 je prva inkarnacija x86 koja podržava 32-bit računanje,[4] što je rezultiralo time da se "IA-32" pojam može koristiti kao metonimija za sve x86 verzije koje podržavaju 32-bit računanje.[5][6]

IA-32 instrukcijski set je uveden u Intel 80386 mikroprocesore 1985. godine i do 2015. godine je i dalje podržavan od strane savremenih PC mikroprocesora. Iako je instrukcijski set ostao netaknut, naredne generacije mikroprocesora koje ga koriste su postale mnogo brže. U raznim direktivama programskih jezika, IA-32 se i dalje naziva "i386" arhitektura.[7][8][9][10][11]

Intel je izumitelj i najveći dobavljač IA-32 procesora, a drugi po veličini dobavljač je AMD. Na neko vreme VIA, Transmeta i neki drugi proizvođači su takođe pravili IA-32 procesore, ali od 2000. godine svi proizvođači su prešli na 64-bit varijantu x86, x86-64.

Karakteristike arhitekrure uredi

Definišuće karakteristike IA-32 su dostupnost 32-bit procesorskih registara za opštu upotrebu (npr. EAX i EBX), 32-bit integer aritmetičke i logičke operacije, 32-bit offset-ovi u segmentu za vreme zaštitnog moda, i prevođenje segmentiranih adresa u 32-bit linearnu adresu. Dizajneri su takođe napravili i još neka druga poboljšanja. Neke od važnijih promena su opisane u tekstu ispod.

32-bit integer sposobnost
Svi registri opšte upotrebe (GPRs) su prošireni sa 16 bita na 32 bita, i sve aritmetičke i logičke operacije, operacije memorije ka registru i registra ka memoriji itd, mogu da rade direktno na 32-bit integer-ima. Operacije Push i pop na steku rade u 4-byte koracima, a nesegmentirani pokazivači su široki 4 byte.
Više opštih modova adresiranja
Bilo koji GPR može da se koristi kao osnovni registar i bilo koji GPR, osim ESP-a, može da se koristi kao indeksni registar u memorijskoj referenci. Vrednost indeksnog registra se može pomnožiti sa 1, 2, 4, ili 8 pre nego što se doda na vrednost osnovnog registra i na premeštanje.
Dodatni segmentni registri
Dodata su još dva segmentna registra, FS i GS.
Veći prostor virtuelne adrese
IA-32 arhitektura definiše 48-bit format segmentirane adrese sa 16-bit segmentnim brojem i 32-bit offset-om unutar segmenta. Segmentirane adrese su mapirane na 32-bit linearnu adresu.
Paging na zahtev
32-bit linearne adrese su virtuelne adrese, a ne fizičke adrese. One se prevode u fizičke adrese preko page tabele. U 80386, 80486 i originalnim Pentium procesorima, fizička adresa je bila 32 bita. U Pentium Pro i kasnijim procesorima, Ekstenzija fizičke adrese je dozvoljavala 36-bit fizičku adresu iako je linearna adresa i dalje bila 32 bita.

Modovi operisanja uredi

Mod operisanja Neophodan operativni sistem Vrsta koda 

koja se koristi

Uobičajena 

veličina adrese

Uobičajena

veličina operanda

Tipična

širina registra 

Zaštitni mod 32-bit operativni sistem ili boot učitavač 32-bit kod sa zaštitnim modom 32 bits 32 bits 32 bits
16-bit operativni sistem sa zaštitnim modom ili boot učitavač, ili 32-bit boot učitavač 16-bit kod sa zaštitnim modom 16 bits 16 bits 16 ili 32 bits
Virtuelni 8086 mod 16- ili 32-bit operativni sistem sa zaštitnim modom 16-bit kod sa stvarnim modom 16 bits 16 bits 16 ili 32 bits
Stvarni mod 16-bit operativni sistem sa stvarnim modom ili boot učitavač, ili 32-bit boot učitavač 16-bit kod sa stvarnim modom 16 bits 16 bits 16 ili 32 bits

Vidi još uredi

  • IA-64
  • Lista ranijih proizvođača IA-32 kompatibilnih procesora

Reference uredi

  1. ^ "DITTO".
  2. ^ "Additional Predefined Macros". intel.com.
  3. ^ Kemp, Steve.
  4. ^ „Intel 64 and IA-32 Architectures Software Developer's Manual”. Intel Corporation. septembar 2014. str. 31. „The Intel386 processor was the first 32-bit processor in the IA-32 architecture family. It introduced 32-bit registers for use both to hold operands and for addressing. 
  5. ^ Green, Ronald W. (5 May 2009).
  6. ^ "Supported Hardware" Arhivirano na sajtu Wayback Machine (5. februar 2020).
  7. ^ „Additional Predefined Macros”. intel.com. Intel. Pristupljeno 31. 8. 2013. 
  8. ^ „DITTO”. BSD General Commands Manual. Apple. 19. 12. 2008. Pristupljeno 3. 8. 2013. „Thin Universal binaries to the specified architecture [...] should be specified as "i386", "x86_64", etc. 
  9. ^ Kemp, Steve. „Running 32-bit Applications on 64-bit Debian GNU/Linux”. Debian Administration. Arhivirano iz originala 16. 09. 2013. g. Pristupljeno 15. 06. 2016. 
  10. ^ Green, Ronald W. (5. 5. 2009). „What do IA-32, Intel 64 and IA-64 Architecture mean?”. software.intel.com. Intel. Pristupljeno 19. 12. 2014. 
  11. ^ „Supported Hardware”. Ubuntu Help. Canonical. Arhivirano iz originala 05. 02. 2020. g. Pristupljeno 31. 8. 2013.