IA-32
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 | uredi izvor]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 | uredi izvor]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 | uredi izvor]- IA-64
- Lista ranijih proizvođača IA-32 kompatibilnih procesora
Reference
[uredi | uredi izvor]- ^ "DITTO".
- ^ "Additional Predefined Macros". intel.com.
- ^ Kemp, Steve.
- ^ „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.”
- ^ Green, Ronald W. (5 May 2009).
- ^ "Supported Hardware" Arhivirano na sajtu Wayback Machine (5. februar 2020).
- ^ „Additional Predefined Macros”. intel.com. Intel. Pristupljeno 31. 8. 2013.
- ^ „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.”
- ^ 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.
- ^ 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.
- ^ „Supported Hardware”. Ubuntu Help. Canonical. Arhivirano iz originala 05. 02. 2020. g. Pristupljeno 31. 8. 2013.