Hardware

Intel 8087 Chipining FSCALE Buyrug'i: Mikrokodni Tahlili

13-sentabr, 2026, 00:130 ko'rish4 daqiqa o'qish
Intel 8087 Chipining FSCALE Buyrug'i: Mikrokodni Tahlili

1970-yillarda osonlik bilan o'lchovli arifmetika juda murakkab edi. Kompyuter ishlab chiqaruvchilar bir necha turli arifmetik standartlarga ega edi. Shuningdek, osonlik bilan o'lchovli tizimlar matematik aniqlikdan ko'ra, asosan, texnik oddiylikka asoslangan edi. Bu esa sonlar barqarorligi bilan bog'liq muammolarni keltirib chiqardi.

Bu holat 1980-yilda Intel 8087 osonlik bilan o'lchovli koprotsessor chipini taqdim etganida o'zgarib ketdi. Bu chip eng aniq natijalarni berish uchun mo'ljallangan edi, hatto cheklangan holatlarda ham. 8087 chipi IBM PC da ishlatilishi mumkin edi, bu esa osonlik bilan o'lchovli operatsiyalarni 100 marta tezlashtirdi. Bu esa elektron jadvaldan tortib, CAD gacha bo'lgan dasturlar uchun juda foydali edi.

Die of the Intel 8087 floating-point unit chip, with main functional blocks labeled. The die is 5mm×6mm.  Click for a larger image.

8087 chipi o'z buyruqlarini murakkab past darajali kod, ya'ni mikrokodda amalga oshirdi. Men Opcode Collective guruhining bir qismi bo'lib, bu mikrokodni teskari muhandislik qilish bilan shug'ullanamiz. Men bu sohada muhim yutuqlarga erishdim.

A close-up of the 8087's datapath, showing functional blocks that are used by FSCALE.

FSCALE Buyrug'i

Bu maqolada men 8087 chipining FSCALE (Floating-point Scale) buyrug'ining mikrokodini tahlil qilamanki, bu buyruqni qanday ishlatishini tushuntiramanki.

The encoding of special values. Based on Table S-31 in the Intel Numerics Supplement, but highly simplified. The "x" bits are arbitrary, as long as they don't conflict with another type.

FSCALE buyrug'i sonni ikki darajaga ko'paytirish uchun tez usulni taqdim etadi, bu esa ko'paytirishdan ancha tezroqdir. Men bu buyruqni oddiy va tushunarli deb o'yladim. Ammo bu shunday emas. FSCALE buyrug'i 140 dan ortiq mikro-instruksiya va uch darajali funktsiyalarni o'z ichiga oladi.

Structure of an 8087 micro-instruction.

8087 Chipining Ichki Tuzilishi

8087 chipini tahlil qilish uchun men chipni ochib, mikroskop yordamida yuqori aniqlikdagi tasvir yaratdim. Chipning markazida katta mikrokod ROM joylashgan boʻlib, u chipni nazorat qiladigan 1648 ta mikro-instruksiya saqlaydi. Mikrokod dvigateli chipning chap tomonida joylashgan boʻlib, u mikrokodni bosib o'tadi, shu jumladan, sakrash va funktsiyalarni bajaradi.

Converting a float to an int by shifting.

Chipning pastki yarmi 'datapath' deb ataladi, bu esa osonlik bilan o'lchovli hisoblashlarni bajaradigan elektr tarmog'i. U sonning eksponenti uchun 16-bit va sonning ma'nosini (fractional part) uchun 64-bit datapathga bo'lingan.

The Intel 8087 chip is packaged in a 40-pin DIP (dual in-line package), as are the 8080 and Z80. This photo is here as a break from all the microcode.

FSCALE Buyrug'i Tuzilishi

Bu bo'limda men FSCALE buyrug'ining mikrokodini tushuntirish uchun 8087 chipining ba'zi xususiyatlarini tushuntiramanki.

Example of a normal number, reduced by a factor of 8, resulting in a denormal.

8087 chipida dasturchi o'z qiymatlarini sakkizta ichki registrga saqlaydi, ular stek sifatida tashkil etilgan. Har bir registr 80-bit osonlik bilan o'lchovli sonni saqlaydi. Har bir qiymatga 'tag' qiymati bog'langan boʻlib, bu dasturchiga ko'pincha ko'rinmasdir. Tag qiymati qiymatni to'g'ri, maxsus, nol yoki bo'sh deb belgilaydi.

A diagram showing how the guard, round, and sticky bits are computed from a right shift. The numbers in this example are different from the previous example.

8087 chipida, shuningdek, ichki ishlatiladigan vaqtinchalik registrlar mavjud: tmpA, tmpB va tmpC. tmpA va tmpB 80-bit registrlar boʻlib, ikkita tag bitga ega. Ammo tmpC faqat 64-bit ma'noni saqlaydi.

8087 Chipining Qobiliyatlari

8087 chipi turli xil ma'lumot turlarini qo'llab quvvatlaydi: turli o'lchamdagi osonlik bilan o'lchovli sonlar, butun sonlar va ikkilik kodlangan onlik sonlar. Ammo ichkarida barcha ma'lumotlar 80-bit osonlik bilan o'lchovli son sifatida saqlanadi, bu 'temporary real' deb ataladi.

Son uch qismdan iborat: imzolash biti, 15-bit eksponent va 64-bit ma'nosi (fractional part). Ko'p hollarda, osonlik bilan o'lchovli son imzolash × ma'nosi × 2eksponent shaklida ifodalangan. Ma'nosi 64-bit ikkilik son boʻlib, 1.bbb... shaklida bo'ladi: boshlang'ich 1, keyin ikkilik nuqta (ikkilik nuqtasi) va qolgan bitlar.

Osonlik bilan o'lchovli sonlarning foydali tomonlaridan biri shundaki, ular eksponent yordamida juda kichikdan tortib, astronomik katta qiymatlarga qadar bo'lgan diapazonni qamrab oladi. Eksponent -16382 dan 16383 gacha bo'lgan diapazonga ega.

8087 chipi, shuningdek, murakkab istisno tizimiga ega boʻlib, u arifmetik operatsiyada xatolik bo'lsa, uni bildiruvchi oltita turdagi istisnoni qo'llab quvvatlaydi. Eng jiddiy istisno 'noaniq operatsiya' deb ataladi, bu esa operatsiya noaniq bo'lganini bildiradi, masalan, 0/0 yoki ∞-∞. U, shuningdek, bo'sh registrga kirish (stek oqib ketishi yoki to'ldirilishi) yoki NaN qiymatlari bilan operatsiyalarni ham qamrab oladi. 8087 chipi, shuningdek, qiymat juda katta bo'lsa, oqib ketish istisnosi va qiymat juda kichik bo'lsa, to'ldirilish istisnosi bor.

Bu maqola Intel 8087 chipining FSCALE buyrug'ining mikrokodini tahlil qilishni davom ettiradi va bu buyruqni qanday ishlatishini tushuntiradi.

Asl manba: righto.com

Manba: Hacker News
#Intel #8087 #FSCALE #mikrokod #tahlil
Telegram da muhokama qilish