
Intel 8087 üzən nöqtəli toplama və çıxma mikrokodu və veri yolu
Intel 8087 çipi üzən nöqtəli toplama əməliyyatını təxminən 100 dəfə sürətləndirdi və toplama ilə çıxma üçün mikrokod, tam ədəd toplayıcı, sürüşdürücü, eksponent məntiqi və 80 bitlik müvəqqəti real formatdan istifadə etdi.
8087 niyə vacib idi
Intel 8087 çipini 1980-ci ildə IBM PC və digər sistemlərdə üzən nöqtəli əməliyyatları çox sürətləndirmək üçün təqdim etdi. Çip tangent, kvadrat kök və logaritm kimi qabaqcıl əməliyyatları dəstəklədi, lakin toplama və çıxma veri yolunun necə işlədiyini göstərir. 8087 toplamanı 8086 prosessoru ilə müqayisədə təxminən 100 dəfə sürətləndirdi, mürəkkəb əməliyyatlar isə daha çox yaxşılaşdı.
Çipin içində mikrokod ROM 1648 mikro təlimat saxlayırdı. Çipin alt yarısı veri yolu idi, burada 80 bitlik dəyərlər emal edilirdi. Əsas blok mərkəzdəki 69 bitlik tam ədəd toplayıcı idi. O, bir arqumenti B qeydiyyatından, digərini müvəqqəti qeydiyyatlardan və ya yığın qeydiyyatından alırdı, nəticəni isə cəm qeydiyyatına göndərirdi.
Əsas riyazi əməliyyatlar üçün veri yolu blokları
Üzən nöqtəli toplama əvvəlcə eksponentlər uyğunlaşana qədər kiçik eksponenti olan dəyəri sürüşdürərək ikilik nöqtələri yerləşdirir. Əhəmiyyətli hissələr tam ədədlər kimi toplandıqdan sonra nəticənin əhəmiyyətli hissəsi 1 bit ilə başlaması üçün normallaşdırma tələb oluna bilər. Əlavə yüksək bit yaranarsa, dəyər sağa sürüşdürülüb eksponent artırılırdı. Çıxma müsbət, mənfi və ya sıfır nəticə verə bilərdi, normallaşdırma böyük sola sürüşmə tələb edə bilərdi. Mənfi əhəmiyyətli hissə müsbətə çevrilir, işarə tərsinə çevrilirdi; sıfır nəticə uyğun olaraq artı və ya minus sıfır kimi qaytarılırdı.
Sürüşdürücü 68 bitlik dəyəri istənilən sayda mövqeyə sola və ya sağa sürüşdürürdü, çünki sürüşmələr sürətli olmalı idi və çip sahəsinin böyük bir hissəsini tuturdu. Başdakı sıfır sxemi soldakı sıfır bitləri və ya baytları sayırdı ki, onlar sürüşdürülə bilsin. Eksponent çeviricisi eksponentləri emal edirdi, daşma və kəmlik aşkar edirdi. Uyğunlaşdırma üçün CREATE_DENORM mikro proqramı cəm qeydiyyatından ötürülen eksponent fərqinə əsaslanaraq ikinci arqumenti sürüşdürürdü.
Daxildə 8087 bir işarə biti, 16383 ofsetli 15 bitlik eksponent və 64 bitlik əhəmiyyətli hissə ilə 80 bitlik müvəqqəti real formatdan istifadə edirdi. Səkkiz qeydiyyat yığın təşkil edirdi, hər dəyərin sıfır, etibarlı, xüsusi və ya boş etiketi var idi. Daxili müvəqqəti qeydiyyatlara tmpA və tmpB, həmçinin 68 bitlik əhəmiyyətli hissəsi və qoruma, yuvarlaqlaşdırma, yapışqan bitləri olan tmpC daxil idi.
Əsas riyazi əməliyyatlar 0001 mikrokod ünvanından başladı, iki arqumenti tmpA və tmpB köçürürdü, sonra təlimat növünə görə seçilən hədəfə çağırış edirdi. Toplama və çıxma 0232 ünvanından işə salınırdı. Mikrokod sıfır halları emal edirdi, eksponentləri müqayisə edirdi, lazım olduqda arqumentləri dəyişdirirdi və işarə tutacasındakı işarə dəyişikliklərini izləyirdi. Sonra arqumentlərin işarələrinə və əməliyyata əsaslanaraq işarəsiz toplama və ya işarəsiz çıxma seçirdi.
İşarəsiz toplama yolunda uyğunlaşdırılmış əhəmiyyətli hissələr toplanırdı, daşıma bir bitlik sağa sürüşməni və eksponent tənzimləməsini işə salırdı, dəqiqlik 80, 64 və ya 32 bitlik dəyərlər üçün azaldılırdı, eksponent daşma və ya kəmlik üçün yoxlanılırdı. İşarəsiz çıxmada toplayıcı tmpA minus tmpB-ni hesab edirdi, yuvarlaqlaşdırma bitləri nəticənin aşağı bitini təyin edə bilərdi, başdakı sıfırların emalı bayt və bit sürüşmələri yaradırdı. Ümumi kod həmçinin sonsuzluqları, ədəd olmayan dəyərləri, normallaşdırılmış olmayan dəyərləri, sıfırları, yığın pop davranışını və normallaşdırılmış olmayan dəyərlər üçün fasilələri emal edirdi.
Mənbələr: righto.com
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.