Intel 80386

**Intel 80386** i386 yoki oddiygina 386 nomi bilan tanilgan mikroprotsessor. Intel kompaniyasining 1985-yil 17-oktabrda chiqarilgan 32 bitli uchinchi avlod x86 mikroprotsessori hisoblanadi. Ushbu protsessor kompyuter uchun birinchi 32 bitli protsessor boʻlgan. Asosan ish stoli va noutbuk kompyuterlarida foydalanilgan. Hozirda esa asosan kontrollerlarda qoʻllanadi.

## Intel 80386 protsessoriga asoslangan kompyuterlar

i386 protsessori oʻzidan oldingi 8086 — 80286 protsessorlari bilan toʻliq mos keladi. U kodni oʻzgartirish va qayta kompilyatsiya qilmasdan (yoki minimal oʻzgartirishlar bilan), ular uchun moʻljallangan dasturlarni bajaradi hamda ancha samaraliroq bajaradi. Jumladan:

* kamroq miqdordagi sinxronizatsiya sikllarini bajaradi;
* yangi texnologiyalardan foydalanish hisobiga yuqori soat chastotalariga ega;
* oldingi protsessorlar bilan solishtirganda, buyruqni oldindan yuklash buferi koʻpaytirilgan — 16 bayt (bu taxminan beshta buyruq uchun yetarli boʻla oladi);
* Oldindan yuklash buferi koʻrsatmalarga kamroq kirishni taʼminlaydi shu bilan birga qisqa sikllarda string koʻrsatmalarini bajarishda keraksiz xotiraga kirishni rad etadi.

Shuningdek, i386 80286 protsessorining katta versiyasi deb qaraladi. Baʼzi hisob-kitoblarga koʻra, i386 dan oldin ham, undan keyin ham x86 protsessorlari arxitekturasi hech qachon bunchalik tubdan oʻzgartirilmagan. Ushbu arxitekturaning protsessorlari birinchi boʻlib shaxsiy kompyuterga mos keladigan platformalar uchun zamonaviy 32 bitli operatsion tizimlarni qoʻllab-quvvatlashning asosiy mexanizmlarini joriy qilishgan.

## '''Asosiy oʻzgarishlar:'''

### 32 bit
Butun x86 arxitekturasi 32 bitgacha kengaytirilgan — hamma registrlar (segmentli registrlar bundan mustasno) nomida „E“ prefiksini (EAX, EBX, EIP, EFLAGS va boshqalar) olgan holda 32 bitga aylangan.

Himoyalangan rejim manzili ham 32-bitga oʻzgartirilgan. Bu 8086 paydo boʻlganidan beri birinchi marta segmentatsiy*a* haqida unutishga imkon yaratgan. Yanda aniqroq aytadigan boʻlsak, segment oʻlchami 64 kilobayt (16 bitli manzil chegarasi), bu dasturchilarga uzoq vaqtdan beri toʻgʻri kelmagan.

i386 paydo boʻlgunga qadar dasturlar va operatsion tizimlar xotirada kod, stek hamda maʼlumotlar segmentlarini tashkil qilishda farq qiluvchi bir nechta jumboqli xotirani tashkil qiluvchi modellaridan foydalanilgan. 32-bitli manzil oʻrniga bitta oddiy tekis modeldan () foydalanishga imkon bergan. Yassi model bunday „umumiy“ segmentning hajmini deyarli 4 gigabaytgacha taʼminlagan bu oʻsha paytda har qanday tasavvur qilinadigan vazifa uchun yetarli hisoblangan.

Yassi model shu qadar keng qoʻllanila boshlanganki, zamonaviy dasturchilar koʻpincha dasturlar xotiraga segmentlar orqali kirishini anglab yetishmagan.

i386 xotirani boshqarishning yangi mexanizmini taqdim qilgan. Protsessor maʼlumotlar va segmentlar joylashgan kod uchun kiradigan manzil maydoni chiziqli manzil maydoni deb atalib, u haqiqiy jismoniy xotiraga mos kelmasligi mumkin.

### Sahifani reformatsiyalash
Vazifaga oʻtishda disk raskadrovka uzilishi ishga tushirilishi mumkin. Buning uchun esa vazifa holati segmentida maxsus bit taqdim qilinadi.

### Yaxshilangan vazifalar va xavfsizlikni qoʻllab-quvvatlash
I386 protsessori bilan Intel real rejimni yaxshiroq qoʻllab-quvvatlash zarurligini tan olgan. Shuningdek, uni joriy qilish vaqtida dasturiy taʼminot himoyalangan rejimda ishlashga toʻliq tayyor emasligi aniqlangan.

### Virtual rejim
Dastlabki x86 protsessorlarida toʻxtash nuqtasini tashkil qilish uchun buyruqning birinchi baytini disk raskadrovka uzilishini chaqirish buyrugʻi bilan almashtirish kerak boʻlgan (int 3). Shu bilan bir qatorda, bunday turdagi toʻxtash nuqtalarini ROMda oʻrnatish imkoni mavjud emas. Ammo, i386 esa bunday toʻxtash nuqtalarini qoʻllab-quvvatlay olishi koʻzda tutilgan.

Virtual 8086 rejimi keyingi 32 bitli x86 protsessorlarida x86-64 muvofiqlik rejimigacha qoʻllab-quvvatlangan.

### Uskunani nosozliklarni bartaraf etish
Oldingi protsessorlarda boʻlgani kabi (8086 dan boshlab), i386 da disk raskadrovka uzilishini chaqirish orqali amalga oshirgan. Uning ishlovchisi boshqaruvni tuzatuvchi dasturiga koʻchirgan. Oldingi protsessorlarda disk raskadrovka ikkita hodisa tufayli ishga tushirilishi mumkin hisoblangan.

### Toʻxtash nuqtalari
Uzilish nuqtasi () — maʼlum bir manzilga erishilganda dasturning bajarilishini toʻxtatish hisoblanadi.

i386 toʻxtash nuqtalari maʼlum bir xotira manzilidagi oʻzgaruvchiga kirish (oʻqish yoki yozish) uchun ham oʻrnatilishi mumkin. Koʻrsatma berilgan manzilda xotiraga kirganda protsessor disk raskadrovka ishlovchisini chaqiradi.

### Vazifani almashtirish tuzogʻi
Vazifaga oʻtishda disk raskadrovka uzilishi ishga tushirilishi mumkin. Buning uchun vazifa holati segmentida maxsus bit taqdim qilinadi.

### Boshqa oʻzgarishlar
80386 protsessoridagi maʼlumotlar hamda manzil satrlari, 80286 protsessorida boʻlgani kabi, koʻpaytirilmaydi. Bu protsessorlarda 32 ta maʼlumotlar liniyasi va shuningdek, 32 ta mustaqil manzil satrlari mavjud hisoblanadi.

### Registrlar
Mikroprotsessorda 8 ta 32 bitli umumiy maqsadli registrlar mavjud (EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP). Bu registrlarning har birining pastki, 16 bitli yarmi oldingi x86 oilasi protsessorlaridagi AX, BX, CX, DX, SI, DI, BP, SP registrlariga toʻgʻri keladi. Avvalgidek, past va yuqori 8 bitli yarmiga, 32 bitli maʼlumotlar registrlarining past 16 bitli yarmiga (AL va AH, BL va BH, CL va CH, DL va DH) murojaat qilish mumkin. Koʻrsatma koʻrsatgich registri va bayroq registri ham 32 bitli boʻldi (mos ravishda EIP va EFLAGS), bayroqlar registriga yangi bayroqlar guruhi qoʻshilgan. 4 ta 16 bitli segmentli registrlarga (ES, CS, SS, DS) yana 2 ta 16 bitli registrlar (FS va GS) qoʻshildi, natijada 6 ta segmentli registrlar vujudga kelgan. Bir nechta yangi registr guruhlari qoʻshildi (har bir registr 32 bit): 3 ta nazorat registrlari (CR0 (MSW), CR2, CR3), 8 ta disk raskadrovka registrlari (DR0, DR1, DR2, DR3, DR6, DR7), 2 ta test registrlari (TR6, TR7).

### Koʻrsatmalar toʻplami
i386 koʻrsatmalar toʻplami asosan mavjud koʻrsatmalarning 32 bitli variantlarini (32-bitli prefikslar bilan tuzilgan), shu jumladan 32-bitli variantlari turli xil mnemonikaga ega (pushad/popad, pushfd/popfd, cwd*/cdq) qoʻshish orqali kengaytirilgan. Qoʻshimcha yangi afzalliklari quyidagilar:

* baytni shart boʻyicha belgilash (toʻplam*)
* nisbiy 16 bit ofset bilan oʻtish koʻrsatmalari (jmp, j*).
* yangi segment registrlari (lfs, lgs) uchun toʻliq manzilni yuklash koʻrsatmalari
* mantiqiy buyruqlar (and, or, xor) 16 bitli tezkor maʼlumotlar bilan ishlashda imzolangan bayt kengaytmalaridan foydalanish imkoniyatiga ega, bu esa maʼlumotlar baytga joylashtirilganda bunday buyruqlarni har bir baytga qisqartirish imkonini beradi.

### Matematik protsessor
Xuddi 80286-80287 toʻplamida boʻlgani kabi, 80386 protsessorining protsessor bilan maʼlumotlar almashinuvi 0F0H-0FFH manzillari boʻlgan portlar orqali oʻtgan. 80287 protsessorini 80386DX protsessoriga 80387 protsessoridan foydalanishga arzon muqobil sifatida taklif qilingan.

## Modellar
1985-yildan boshlab i386 protsessorining koʻplab modifikatsiyalari chiqarilgan. Ular ishlash, quvvat sarfi, ulagichlar, korpuslar va boshqa xususiyatlar orqali farqlanishi nazarda tutiladi.

80386 mikroprotsessorlari asosida IBM IBM AT 386 (PC oilasi) va IBM PS/2-80 (PS/2 oilasi) shaxsiy kompyuterlarini yaratdi. Birinchisi modifikatsiyada PC-DOS dan, ikkinchisida esa OS/2 dan foydalanilgan.

## Rivojlantirish jamoasi

* Jon Krouford, bosh arxitektor
* Jim Slager, bosh muhandis
* Patrik Gelsinger
* Xolid El Ayat
* Riaz Haq
* Gen Xill
* Yan Uilyam L. Prak
* Devid Vannier
* Jozef „Chip“ Krauskopf
* Ken Shomaker
* Pol Ries
* Saurabha Radhika

## Manbalar


## Havolalar

* I386 oilasi protsessorlarining tavsifi va fotosuratlari
* Bitsavers.org sayti protsessor hujjatlari
* Intel 80386 protsessorlari oilasi
* Intel 80386 mikroprotsessorining qisqacha tavsifi