IA-32

Из Википедије, слободне енциклопедије

IA-32 (скраћено од "Интел Архитектура, 32-bit", такође познато и као i386[1][2] метонимијом)[3] је 32-bit верзија x86 архитектуре инструкцијског сета (ISA), која је први пут имплементирана 1985. године у Intel 80386 микропроцесорима. IA-32 је прва инкарнација x86 која подржава 32-bit рачунање,[4] што је резултирало тиме да се "IA-32" појам може користити као метонимија за све x86 верзије које подржавају 32-bit рачунање.[5][6]

IA-32 инструкцијски сет је уведен у Intel 80386 микропроцесоре 1985. године и до 2015. године је и даље подржаван од стране савремених PC микропроцесора. Иако је инструкцијски сет остао нетакнут, наредне генерације микропроцесора које га користе су постале много брже. У разним директивама програмских језика, IA-32 се и даље назива "i386" архитектура.[7] [8] [9][10] [11]

Интел је изумитељ и највећи добављач IA-32 процесора, а други по величини добављач је AMD. На неко време VIA, Трансмета и неки други произвођачи су такође правили IA-32 процесоре, али од 2000. године сви произвођачи су прешли на 64-bit варијанту x86, x86-64.

Карактеристике архитекруре[уреди]

Дефинишуће карактеристике IA-32 су доступност 32-bit процесорских регистара за општу употребу (нпр. EAX и EBX), 32-bit integer аритметичке и логичке операције, 32-bit offset-ови у сегменту за време заштитног мода, и превођење сегментираних адреса у 32-bit линеарну адресу. Дизајнери су такође направили и још нека друга побољшања. Неке од важнијих промена су описане у тексту испод.

32-bit integer способност
Сви регистри опште употребе (GPRs) су проширени са 16 бита на 32 бита, и све аритметичке и логичке операције, операције меморије ка регистру и регистра ка меморији итд, могу да раде директно на 32-bit integer-има. Операције Push и pop на стеку раде у 4-byte корацима, а несегментирани показивачи су широки 4 byte.
Више општих модова адресирања
Било који GPR може да се користи као основни регистар и било који GPR, осим ESP-а, може да се користи као индексни регистар у меморијској референци. Вредност индексног регистра се може помножити са 1, 2, 4, или 8 пре него што се дода на вредност основног регистра и на премештање.
Додатни сегментни регистри
Додата су још два сегментна регистра, FS и GS.
Већи простор виртуелне адресе
IA-32 архитектура дефинише 48-bit формат сегментиране адресе са 16-bit сегментним бројем и 32-bit offset-ом унутар сегмента. Сегментиране адресе су мапиране на 32-bit линеарну адресу.
Paging на захтев
32-bit линеарне адресе су виртуелне адресе, а не физичке адресе. Оне се преводе у физичке адресе преко page табеле. У 80386, 80486 и оригиналним Pentium процесорима, физичка адреса је била 32 бита. У Pentium Pro и каснијим процесорима, Екстензија физичке адресе је дозвољавала 36-bit физичку адресу иако је линеарна адреса и даље била 32 бита.

Модови оперисања[уреди]

Мод оперисања Неопходан оперативни систем Врста кода 

која се користи

Уобичајена 

величина адресе

Уобичајена

величина операнда

Типична

ширина регистра 

Заштитни мод 32-bit оперативни систем или boot учитавач 32-bit код са заштитним модом 32 bits 32 bits 32 bits
16-bit оперативни систем са заштитним модом или boot учитавач, или 32-bit boot учитавач 16-bit код са заштитним модом 16 bits 16 bits 16 или 32 bits
Виртуелни 8086 мод 16- или 32-bit оперативни систем са заштитним модом 16-bit код са стварним модом 16 bits 16 bits 16 или 32 bits
Стварни мод 16-bit оперативни систем са стварним модом или boot учитавач, или 32-bit boot учитавач 16-bit код са стварним модом 16 bits 16 bits 16 или 32 bits

Види још[уреди]

  • IA-64
  • Листа ранијих произвођача IA-32 компатибилних процесора

Референце[уреди]

  1. "DITTO".
  2. "Additional Predefined Macros". intel.com.
  3. Kemp, Steve.
  4. „Intel 64 and IA-32 Architectures Software Developer's Manual”. Intel Corporation. септембар 2014. стр. 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".
  7. „Additional Predefined Macros”. intel.com. Intel. Приступљено 31. 8. 2013. 
  8. „DITTO”. BSD General Commands Manual. Apple. 19. 12. 2008. Приступљено 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. 
  10. Green, Ronald W. (5. 5. 2009). „What do IA-32, Intel 64 and IA-64 Architecture mean?”. software.intel.com. Intel. Приступљено 19. 12. 2014. 
  11. „Supported Hardware”. Ubuntu Help. Canonical. Приступљено 31. 8. 2013.