internet pencereler Android
Genişletmek

Matematiksel yardımcı işlemci. Bu ne için? Yardımcı İşlemciler Yüksek düzeyde uzmanlaşmış hesaplamaları gerçekleştirmek için yardımcı işlemciler

Yardımcı işlemci, bir bilgisayar sisteminin merkezi işlemcisinin yeteneklerini artıran, ancak ayrı bir işlevsel modül olarak tasarlanmış özel bir işlemcidir. Fiziksel olarak yardımcı işlemci ayrı bir çip olabilir veya merkezi işlemciye yerleştirilebilir.

Aşağıdaki yardımcı işlemci türleri ayırt edilir:

Genel amaçlı matematik yardımcı işlemcileri, genellikle kayan nokta hesaplamalarını hızlandırır.

Merkezi işlemciyi G/Ç işlemlerini kontrol etmekten kurtaran veya işlemcinin standart adres alanını genişleten G/Ç yardımcı işlemcileri (örneğin Intel 8089),

Son derece uzmanlaşmış hesaplamaları gerçekleştirmek için yardımcı işlemciler.

Bir yardımcı işlemci tam teşekküllü bir işlemci değildir, çünkü bir işlemcinin karakteristik birçok işlemini gerçekleştirmez (örneğin, bir programla çalışamaz ve bellek adreslerini hesaplayamaz), merkezi işlemcinin çevresel bir aygıtıdır.

Özellikle x86 yardımcı işlemcilerinde kullanılan, merkezi işlemci ile yardımcı işlemci arasındaki etkileşim şemalarından biri aşağıdaki şekilde uygulanır:

Yardımcı işlemci, merkezi işlemcinin veri yollarına bağlanır ve ayrıca işlemcileri birbirleriyle senkronize etmek için birkaç özel sinyale sahiptir.

CPU komut kodlarından bazıları yardımcı işlemci için ayrılmıştır. Merkezi işlem birimi talimatları sırayla çözer ve yürütür. Yardımcı işlemci tarafından yürütülmesi gereken bir talimat verildiğinde CPU, işlem kodunu yardımcı işlemciye iletir. Bu durumda, belleğe ek erişim gerekiyorsa (sonuçların okunması veya yazılması için), yardımcı işlemci veri yolunu "yakalar".

Komutu ve gerekli verileri aldıktan sonra yardımcı işlemci onu yürütmeye başlar. Yardımcı işlemci komutu yürütürken merkezi işlemci, yardımcı işlemcinin hesaplamalarına paralel olarak programı yürütmeye devam eder. Bir sonraki talimat aynı zamanda bir yardımcı işlemci talimatı ise işlemci durur ve yardımcı işlemcinin önceki talimatı tamamlamasını bekler.

Hesaplamalar tamamlanana kadar işlemciyi zorla durduran özel bir bekleme talimatı (FWAIT) vardır (eğer programa devam etmek için sonuçları gerekiyorsa). Şu anda komut yalnızca kayan noktayla çalışırken istisnaları işlemek için kullanılıyor; işlemcinin ve yardımcı işlemcinin çalışması programcıyla şeffaf bir şekilde senkronize ediliyor.

Intel486DX işlemciden başlayarak kayan nokta birimi merkezi işlemciye entegre edildi ve FPU olarak adlandırıldı. Intel486SX hattında FPU modülü devre dışı bırakıldı (ilk başta bu satır arızalı FPU'lu işlemcileri içeriyordu). Intel486SX işlemciler için bir Intel487SX "yardımcı işlemci" piyasaya sürüldü, ancak aslında bu bir Intel486DX işlemciydi ve kurulduğunda Intel486SX işlemci devre dışı bırakıldı.


Entegrasyona rağmen, i486 işlemcilerdeki FPU, aynı çip üzerinde uygulanan değişmemiş bir yardımcı işlemcidir; ayrıca, i486 FPU devresi, saat frekansına (merkezi işlemcinin frekansının yarısı) kadar önceki nesil 387DX yardımcı işlemciyle tamamen aynıdır. FPU'nun merkezi işlemciyle gerçek entegrasyonu yalnızca MMX modelinin Pentium işlemcilerinde başladı.

İlgili dönemde, Weitek tarafından üretilen x86 platformu için yardımcı işlemciler yaygınlaştı - yonga seti biçiminde 1167, 2167 ve 8086, 80286, 80386, 80486 işlemciler için sırasıyla 3167, 4167 yonga piyasaya sürdü. Intel'in yardımcı işlemcileriyle karşılaştırıldığında 2-3 kat daha fazla performans sağlıyorlardı ancak bellek haritalama teknolojisi aracılığıyla uygulanan uyumsuz bir yazılım arayüzüne sahiptiler. Bu, ana işlemcinin, yardımcı işlemci tarafından kontrol edilen belirli bellek alanlarına bilgi yazması gerektiği gerçeğine dayanıyordu. Kaydın yapıldığı belirli adres, şu veya bu komut olarak yorumlandı. Uyumsuzluğa rağmen Weitek'in yardımcı işlemcileri, böyle bir çipin kullanımını içeren hem yazılım geliştiriciler hem de anakart üreticileri tarafından geniş çapta desteklendi.

Diğer bazı şirketler, G/Ç bağlantı noktaları veya BIOS kesintileri yoluyla kendilerine arayüz bağlanan çeşitli uyumsuz matematik yardımcı işlemcileri piyasaya sürdü, ancak bunlar o kadar yaygınlaşmadı.

Aşağıdaki yardımcı işlemci türleri ayırt edilir:

  • Genel amaçlı matematik yardımcı işlemcileri, genellikle kayan nokta hesaplamalarını hızlandırır,
  • Merkezi işlemciyi G/Ç işlemlerini kontrol etmekten kurtaran veya işlemcinin standart adres alanını genişleten G/Ç yardımcı işlemcileri (örneğin Intel 8089),
  • son derece uzmanlaşmış hesaplamaları gerçekleştirmek için yardımcı işlemciler.

Yardımcı işlemciler, belirli bir şirket tarafından geliştirilen bir mantık kümesinin parçası olabilir (örneğin, Intel, 8086 ve 8088 işlemcileri için piyasaya sürülen yardımcı işlemciler ve 8089, Motorola - Motorola 68881 yardımcı işlemcisi) veya üçüncü taraf bir üretici tarafından üretilebilir (örneğin, Weitek (İngilizce) ) Motorola m68k için ve Intel 80286 için 1067 için).

Programlamada yardımcı işlemci

Yardımcı işlemci, merkezi işlemcinin talimat setini genişletir, dolayısıyla onu kullanmak için programın (yorumlanmadan derlenen ve harici kütüphaneleri çağıran) bu talimatları içermesi gerekir. X86 işlemciler için yüksek seviyeli dillere yönelik modern derleyicilerin ayarları genellikle bir matematiksel yardımcı işlemci kullanıp kullanmayacağınızı seçmenize olanak tanır; bu, özellikle bir donanım kesme işleyicisinin içinde yürütülecek kodu oluştururken önemlidir.

Çevresel aygıtları kontrol etmek ve merkezi işlemcinin yükünü boşaltmak için tasarlanmış çevresel işlemciler de vardır:

"Yardımcı İşlemci" makalesi hakkında bir inceleme yazın

Notlar

Ayrıca bakınız

Bağlantılar

  • Whatis.techtarget.com/definition/coprocessor
  • www.webopedia.com/TERM/C/coprocessor.html
  • www.pcmag.com/encyclopedia/term/46625/math-coprocessor
  • www.trevormarshall.com/old_papers/Approaching-Desktop-Supercomputer.pdf 1990 - Bilgi işlem yardımcı işlemcileri, ilk 32 bit bilgi işlem yardımcı işlemcileri
  • Hansen, Paul Mark, Kasım 1988

Yardımcı İşlemciyi karakterize eden bir alıntı

Prenses Marya, aralarında yaşanan yanlış anlaşılma nedeniyle umutsuzluğa kapıldığını yazdı. Prenses Marya, babasının duyguları ne olursa olsun, Natasha'dan, mutluluğu için her şeyi feda etmeye hazır olduğu, kardeşi tarafından seçilen kişi olarak onu sevmekten başka çaresi olmadığına inanmasını istedi.
"Ancak" diye yazdı, "babamın sana karşı kötü niyetli olduğunu düşünme. O, mazur görülmesi gereken hasta ve yaşlı bir adamdır; ama naziktir, cömerttir ve oğlunu mutlu edecek kişiyi sevecektir.” Prenses Marya ayrıca Natasha'dan kendisini tekrar görebileceği bir zaman belirlemesini istedi.
Mektubu okuduktan sonra Natasha bir yanıt yazmak için masaya oturdu: "Chere Princesse" [Sevgili Prenses], hızlı, mekanik bir şekilde yazdı ve durdu. “Dün olanlardan sonra bundan sonra ne yazabilirdi? Evet, evet, bunların hepsi oldu ve şimdi her şey farklı” diye düşündü, başladığı mektubun üzerine otururken. “Onu reddetmeli miyim? Gerçekten gerekli mi? Bu korkunç!”... Ve bu korkunç düşünceleri düşünmemek için Sonya'nın yanına gitti ve onunla birlikte kalıpları çözmeye başladı.
Akşam yemeğinden sonra Natasha odasına gitti ve yine Prenses Marya'nın mektubunu aldı. - “Gerçekten her şey bitti mi? düşündü. Bütün bunlar gerçekten bu kadar çabuk mu oldu ve daha önce olan her şeyi yok etti mi? Prens Andrei'ye olan sevgisini tüm eski gücüyle hatırladı ve aynı zamanda Kuragin'i sevdiğini hissetti. Kendisini Prens Andrei'nin karısı olarak canlı bir şekilde hayal etti, onunla birlikte mutluluk resmini defalarca tekrarladığını hayal etti ve aynı zamanda heyecandan kızararak, Anatole ile dünkü buluşmasının tüm ayrıntılarını hayal etti.
“Neden birlikte olamıyor? bazen, tam bir güneş tutulması halinde, diye düşündü. Ancak o zaman tamamen mutlu olabilirdim ama şimdi bir seçim yapmam gerekiyor ve ikisi de olmadan mutlu olamam. Prens Andrei için ne anlama geldiğini söylemenin ya da bunu saklamanın aynı derecede imkansız olduğunu düşündü. Ve bununla hiçbir şey bozulmaz. Peki, Prens Andrey'in uzun zamandır birlikte yaşadığım aşkının bu mutluluğundan sonsuza kadar ayrılmak gerçekten mümkün mü?"
"Genç hanım," dedi kız gizemli bir bakışla fısıldayarak odaya girerken. – Bir kişi bana bunu söylememi söyledi. Kız mektubu uzattı. Natasha, hiç düşünmeden, mekanik bir hareketle mührü kırdığında ve Anatole'un aşk mektubunu okuduğunda, kız hâlâ "Tanrı aşkına," diyordu; tek kelimesini bile anlamadan tek bir şeyi anladı - bu mektubun ondan geldiğini sevdiği adamdan. “Evet seviyor, yoksa olanlar nasıl olabilir? Elinde ondan gelen bir aşk mektubu olabilir mi?
Natasha, Dolokhov'un Anatoly için yazdığı bu tutkulu aşk mektubunu el sıkışarak tuttu ve onu okurken, içinde kendisinin hissettiği her şeyin yankılarını buldu.

Matematik yardımcı işlemcisi, merkezi işlemciyle birlikte çalışan, kayan nokta işlemlerini gerçekleştirmek için kullanılan özel bir modüldür.
Matematiksel yardımcı işlemci, kişisel bir bilgisayarın zorunlu bir unsuru değildir. Prensip olarak reddedebilirsiniz. Bu geçmişte ekonomik nedenlerle yapılıyordu.
Bununla birlikte, örneğin bilimsel veya mühendislik hesaplamalarında çok sayıda matematiksel hesaplama gerektiren problemleri çözerken, bilgisayar performansını artırma sorunu akut hale geldi.
Bunu yapmak için, matematiksel işlemleri gerçekleştirmek için "ayarlanmış" ve bunları merkezi işlemciden kat kat daha hızlı uygulayan ek bir özel işlemci kullanmaya karar verdiler. Böylece, merkezi işlemcinin performansını özel bir modül - matematiksel bir yardımcı işlemci aracılığıyla artırmak mümkün oldu.
Merkezi işlemcinin aksine, matematiksel yardımcı işlemci bilgisayar devrelerinin büyük kısmını kontrol etmez. Bunun yerine, matematik yardımcı işlemcisinin tüm etkinlikleri, programları yürütmek ve sonuçlar üretmek için matematik yardımcı işlemcisine komutlar gönderebilen merkezi işlemci tarafından belirlenir. Normal modda, merkezi işlem birimi bilgisayarın tüm işlevlerini yerine getirir. Ve ancak matematiksel yardımcı işlemcinin daha iyi halledebileceği bir görevle karşılaşıldığında ona veri ve komutlar verilir ve merkezi işlemci sonuçları bekler. Bu tür problemler, örneğin, sayıların bir mantis ve bir ordinat (ondalık noktanın konumunu belirleyen bir sayının ondalık kuvveti) ile temsil edildiği gerçek sayılar arasındaki matematiksel işlemleri (kayan noktalı sayılar arasındaki işlemler) içerir.
Daha önce, ilk nesil bilgisayarlarda (i80386, i80486), matematiksel yardımcı işlemci modülü anakarta ayrı bir yonga olarak kurulmuşsa, modern bilgisayarlarda matematiksel yardımcı işlemcinin ayrı bir yonga olarak kullanılması gerekli değildir, çünkü merkezi işlemciye zaten yerleşiktir.
Matematik yardımcı işlemcisi kullanmanın sağladığı faydalar, bilgisayarınızda çözdüğünüz problemlerin türüne bağlıdır.
INTEL'e göre matematik yardımcı işlemcisi çarpma, bölme ve üs alma gibi matematik işlemlerinin yürütme süresini yüzde 80 veya daha fazla azaltabiliyor. Toplama ve çıkarma gibi basit matematik işlemlerinin hızı değişmeden kalır.
Pratik açıdan bakıldığında, kişisel bir bilgisayarın metin hazırlama ve veri tabanı bakımı (karmaşık matematiksel hesaplamalar gerektirmeyen işlevler) ile ilgili performansı, bir matematiksel yardımcı işlemci tarafından iyileştirilemez. Bununla birlikte, bilimsel ve mühendislik hesaplamaları yaparken, istatistiksel verileri işlerken ve grafiklerle çalışırken, ikincisi yoğun matematiksel hesaplamalar gerektirdiğinden, üretkenlikte gözle görülür bir artış elde edeceksiniz.

Intel mikroişlemci mimarisinin önemli bir kısmı, sayısal verileri kayan nokta biçiminde işlemek için adı verilen bir cihazın varlığıdır. matematiksel yardımcı işlemci Mikroişlemci tabanlı bilgisayarların mimarisi başlangıçta yalnızca tamsayı aritmetiğine dayanıyordu. Gücün artmasıyla birlikte kayan nokta sayılarını işleyen cihazlar ortaya çıkmaya başladı. Intel 8086 mikroişlemci ailesinin mimarisinde, kayan nokta sayılarını işlemek için bir cihaz, i8086/88 mikroişlemcisini temel alan bir bilgisayarın parçası olarak ortaya çıktı ve matematiksel yardımcı işlemci veya basitçe yardımcı işlemci olarak adlandırıldı. Bu ismin seçilmesinin nedeni şuydu:

  • ilk olarak, bu cihazın ana işlemcinin bilgi işlem yeteneklerini genişletmesi amaçlandı;
  • ikincisi, ayrı bir çip olarak uygulandı, yani varlığı isteğe bağlıydı. i8086/88 mikroişlemcisinin yardımcı işlemci yongasına i8087 adı verildi.

Yeni Intel mikroişlemci modellerinin ortaya çıkışıyla birlikte yardımcı işlemciler de gelişti, ancak yazılım modelleri neredeyse hiç değişmedi. Ayrı (ve dolayısıyla belirli bir bilgisayar konfigürasyonunda isteğe bağlı) cihazlar olarak, yardımcı işlemciler i386 mikroişlemci modeline kadar tutuldu ve sırasıyla i287 ve i387 olarak adlandırıldı. i486 modelinden başlayarak yardımcı işlemci, ana mikroişlemciyle aynı pakette uygulanır ve dolayısıyla bilgisayarın ayrılmaz bir parçasıdır.

Matematiksel yardımcı işlemcinin ana özellikleri:

  • IEEE-754 ve 854 kayan noktalı aritmetik standartları için tam destek. Bu standartlar, hem yardımcı işlemcinin birlikte çalışması gereken veri formatlarını hem de uyguladığı işlev kümesini tanımlar;
  • trigonometrik fonksiyonların, logaritmaların vb. değerlerini hesaplamak için sayısal algoritmalar desteği;
  • ondalık sayıların 18 bit hassasiyetle işlenmesi; bu, yardımcı işlemcinin, 10 18'e kadar değerlere sahip tam ondalık sayıları yuvarlamadan aritmetik işlemler gerçekleştirmesine olanak tanır;
  • ±3,37x10 -4932 ...1,18x10 +4932 aralığındaki gerçek sayıları işliyor.

Kayan noktalı sayıların temsil şekli açıklanmıştır.

Gerçek sayıları temsil etmenin genel biçimi, aşağıdaki türlerin bit ızgarasına yerleştirilmesi olasılığını akla getirir.

Sayı türü İmza Derece Tüm Mantis
+∞ 0 11…11 1 00…00
pozitif
normalleştirilmiş
0 00…01 — 11…10 1 00…00 — 11…11
pozitif standartlaştırılmamış 0 00…00 0 00…00 — 11…11
0 0, 1 00…00 0 00…00
negatif standartlaştırılmamış 1 00…00 0 00…00 — 11…11
negatif normalleştirilmiş 1 00…01 — 11…10 1 00…00 — 11…11
-∞ 1 11…11 1 00…00
sayısız
(NaN - Sayı değil)
* 11…11 1 **…** ≠0

Basit ve çift duyarlıklı sayılar (sırasıyla kayan nokta (DD) ve çift (DQ)) yalnızca standart biçimde temsil edilebilir. Bu durumda sayının tamsayı kısmının biti gizlenir ve mantıksal 1 anlamına gelir. Geriye kalan 23 (52) bit, sayının ikili mantisini saklar.

Çift genişletilmiş duyarlıklı sayılar (uzun çift (DT)) sayının tamsayı biti gizli olmadığından ve 0 veya 1 değerlerini alabildiğinden normalleştirilmiş veya standartlaştırılmamış biçimde temsil edilebilir.

Matematik yardımcı işlemcisinin üzerinde çalıştığı ana veri türü 10 baytlık veridir (DT).

Yardımcı işlemci yazılım modeli

Yardımcı işlemcinin yazılım modeli, her birinin kendi işlevsel amacı olan bir kayıtlar topluluğudur.

Yardımcı işlemci yazılım modelinde üç grup kayıt ayırt edilebilir:

  • Yardımcı işlemci yazılım modelinin temelini oluşturan sekiz kayıt r0…r7 - yardımcı işlemci yığını . Her kaydın boyutu 80 bittir. Bu organizasyon, hesaplamalı algoritmaların işlenmesinde uzmanlaşmış cihazlar için tipiktir.
  • Üç hizmet kaydı:
    — yardımcı işlemci durum kaydı swr (Durum Kelime Kaydı) - yardımcı işlemcinin mevcut durumu hakkındaki bilgileri yansıtır;
    — yardımcı işlemcinin kontrol kaydı cwr (Kontrol Kelime Kaydı) - yardımcı işlemcinin çalışma modlarını kontrol eder;
    — etiket kaydı twr (Etiket Kelime Kaydı) - yığın kayıtlarının her birinin durumunu izlemek için kullanılır.
  • İki işaretçi kaydı - dpr (Veri Noktası Kaydı) ve ipr (Talimat Noktası Kaydı) komutları. İstisnaya neden olan talimatın adresi ve işleneninin adresi hakkındaki bilgileri depolamak için tasarlanmıştır. Bu işaretçiler istisnaları işlerken kullanılır (ancak tüm komutlar için değil).

Belirtilen tüm kayıtlara program aracılığıyla erişilebilir. Ancak bazılarına erişim oldukça kolaydır; bu amaçla yardımcı işlemci komut sisteminde özel komutlar bulunur. Bunun için özel bir komut olmadığından diğer kayıtlara erişim daha zordur, bu nedenle ek adımların gerçekleştirilmesi gerekir.

swr durum kaydı– son komut yürütüldükten sonra yardımcı işlemcinin mevcut durumunu yansıtır. Swr kaydı, şunları belirlemenize olanak tanıyan alanlar içerir: hangi kaydın yardımcı işlemci yığınının geçerli üst kısmı olduğunu, son komut yürütüldükten sonra hangi istisnaların oluştuğunu, son komut yürütmenin özelliklerinin neler olduğunu (bayrak kaydının bir tür analogu) ana işlemcinin).

Yapısal olarak swr kaydı aşağıdakilerden oluşur:

  • 6 istisna bayrağı PE, OE, UE, ZE, DE, IE.
    İstisnalar, işlemcinin programı fiili yürütmesinin bazı özellikleri hakkında bilgilendirdiği bir tür kesintidir. Yardımcı işlemci ayrıca belirli durumlar (hatalı olması gerekmeyen) meydana geldiğinde bu tür kesintileri artırma yeteneğine de sahiptir. Olası tüm istisnalar, her biri swr kaydındaki 1 bit'e karşılık gelen 6 türe indirgenmiştir. Programcının bazı istisnalara yol açan duruma yanıt vermek için bir işleyici yazmasına gerek yoktur. Yardımcı işlemci bunların çoğuna bağımsız olarak yanıt verebilir. Buna varsayılan istisna işleme denir. Belirli bir istisna türünün varsayılan olarak işlenmesini sağlamak için, istisnanın maskesiz bırakılması gerekir. Bu eylem, yardımcı işlemci kontrol kaydındaki cwr'deki karşılık gelen bitin 1'e ayarlanmasıyla gerçekleştirilir. SWR kaydı kullanılarak yakalanan istisna türleri:
    • IE (Geçersiz işlem hatası) - geçersiz işlem kodu;
    • DE (Normalleştirilmemiş işlenen Hatası) - normalleştirilmemiş işlenen;
    • ZE (Sıfır Hataya Böl) - sıfıra bölme hatası;
    • OE (Taşma Hatası) - taşma hatası. Bir sayının sırası izin verilen maksimum aralığı aştığında oluşur;
    • UE (Düşük Akış Hatası) - taşma önleme hatası. Sonuç çok küçük olduğunda (sıfıra yakın) oluşur;
    • PE (Hassaslık Hatası) - hassaslık hatası. Doğru şekilde temsil edilemediği için yardımcı işlemcinin sonucu ne zaman yuvarlaması gerektiğini ayarlayın. Bu nedenle, yardımcı işlemci hiçbir zaman 10'u 3'e doğru bir şekilde bölemeyecektir.

    Bu altı istisna türünden herhangi biri meydana geldiğinde, istisnanın cwr kaydında maskelenip maskelenmediğine bakılmaksızın swr kaydındaki karşılık gelen bit bire ayarlanır.

  • SF yardımcı işlemci yığın hatası biti (Yığın Arızası). Üç istisna durumundan (PE, UE veya IE) biri meydana gelirse bit 1'e ayarlanır. Özellikle kurulumu, tam bir yığına yazma girişimi veya tam tersine boş bir yığından okuma girişimi hakkında bilgi verir. Bu bitin değeri analiz edildikten sonra PE, UE ve IE bitleriyle (eğer ayarlanmışsa) birlikte tekrar 0'a sıfırlanmalıdır;
  • yardımcı işlemci ES'nin toplam hatasının biti (Hata Özeti). Yukarıda listelenen altı istisnadan herhangi biri meydana gelirse bit 1'e ayarlanır;
  • dört bit c0…c3 (Durum Kodu) - durum kodu. Bu bitlerin amacı, yardımcı işlemcinin son komutunun yürütülmesinin sonucunu yansıtmak için ana işlemcinin EFLAGS kaydındaki bayraklara benzer.
  • üç bitlik TOP alanı. Alan, yığının geçerli tepesine yönelik bir kayıt işaretçisi içerir.
  • yardımcı işlemci meşgul biti B.

Yardımcı işlemci kontrol kaydı cwr– Sayısal verilerin işlenmesinin özelliklerini belirler. Cwr kaydındaki alanları kullanarak sayısal hesaplamaların doğruluğunu ayarlayabilir, yuvarlamayı kontrol edebilir ve istisnaları maskeleyebilirsiniz.

Bu oluşmaktadır:

  • altı istisna maskesi PM, UM, OM, ZM, DM, IM;
  • PC hassas kontrol alanları (Hassas Kontrol);
  • RC (Yuvarlama Kontrolü) yuvarlama kontrol alanları.

İstisna maskeleri, meydana gelmeleri swr kaydının altı biti kullanılarak kaydedilen istisnaları maskelemek için tasarlanmıştır. Cwr kaydındaki herhangi bir istisna maskesi biti 1'e ayarlanırsa ilgili istisnalar yardımcı işlemcinin kendisi tarafından işlenecektir. Cwr kaydının karşılık gelen istisna maskesi biti herhangi bir istisna için 0 içeriyorsa, bu türden bir istisna oluştuğunda int 16 (10h) kesmesi yükseltilecektir. İşletim sistemi bu kesme için bir işleyici içermelidir (veya programcı yazmalıdır). Kesintinin nedenini bulmalı ve gerekirse düzeltmeli ve ayrıca başka önlemler almalıdır.

Mantisin uzunluğunu seçmek için 2 bitlik hassas kontrol alanı PC'si kullanılır. Bu alandaki olası değerler şu anlama gelir:

  • PC =00 - mantis uzunluğu 24 bit;
  • PC =10 - mantis uzunluğu 53 bit;
  • PC =11 - mantis uzunluğu 64 bit.

Varsayılan alan değeri PC =11'dir.

RC yuvarlama kontrol alanı, yardımcı işlemcinin çalışması sırasında sayıların yuvarlanma işlemini kontrol etmenize olanak sağlar. Bir sonraki yardımcı işlemci komutunun yürütülmesinden sonra, örneğin periyodik bir kesir gibi temsil edilemeyen bir sonucun elde edildiği bir durumda yuvarlama işlemine ihtiyaç ortaya çıkabilir. RC alanındaki değerlerden birini ayarlayarak istenilen yöne yuvarlama yapabilirsiniz.
İlgili yuvarlama algoritmasına sahip RC alan değerleri:

  • 00 - değer, yardımcı işlemci kaydının bit tablosunda temsil edilebilecek en yakın sayıya yuvarlanır;
  • 01 - değer aşağı yuvarlanır;
  • 10 - değer yukarı yuvarlanır;
  • 11 - sayının kesirli kısmı atılır. Bir değeri tamsayı aritmetik işlemlerinde kullanılabilecek bir forma indirmek için kullanılır.

Cwr kaydındaki 12. bit fiziksel olarak yoktur ve 0 olarak okunur.

twr etiket kaydı– iki bitlik alanların bir koleksiyonudur. Her alan belirli bir fiziksel yığın kaydına karşılık gelir ve mevcut durumunu karakterize eder. Yardımcı işlemci komutları, örneğin değerlerin bu kayıtlara yazıp yazılamayacağını belirlemek için bu kaydı kullanır. Herhangi bir yığın kaydının durumundaki bir değişiklik, bu kayda karşılık gelen etiket kaydının 2 bitlik alanının içeriğine yansıtılır. Etiket kayıt alanlarında aşağıdaki değerler mümkündür:

  • 00 - yardımcı işlemci yığın kaydı sıfırdan farklı geçerli bir değerle dolu;
  • 01 - yardımcı işlemci yığın kaydı sıfır değeri içeriyor;
  • 10 - yardımcı işlemci yığın kaydı, sıfır hariç, özel sayısal değerlerden birini içerir;
  • 11 - kayıt boş ve yazılabilir. İki bitlik etiket kayıt alanındaki bu değer, ilgili yığın kaydının tüm bitlerinin sıfır olması gerektiği anlamına gelmez.
Yardımcı işlemci nasıl çalışır?

Yardımcı işlemcinin kayıt yığını halka ilkesine göre düzenlenir. Yığını oluşturan sekiz kayıt arasında yığının en üstünde yer alan kimse yoktur. Tüm yığın kayıtları tamamen aynıdır ve işlevsel açıdan eşit haklara sahiptir. Yardımcı işlemci halka yığınının üst kısmı yüzer durumdadır. Geçerli köşe, swr kaydının 3 bitlik üst alanı kullanılarak donanımda kontrol edilir.


Üstteki alan, halihazırda yığının en üst kısmı olan r0…r7 yığın yazmacının numarasını kaydeder.
Yardımcı işlemci komutları r0…r7 yığın yazmaçlarının fiziksel sayılarıyla değil, st(0)…st(7) mantıksal sayılarıyla çalışır. Mantıksal sayılar kullanılarak, yardımcı işlemci yığın kayıtlarının göreceli adreslenmesi uygulanır. Örneğin, yığına yazmadan önceki geçerli köşe noktası fiziksel yığın yazmacı r3 ise, yığına yazdıktan sonra geçerli köşe noktası fiziksel yığın yazmacı r2 olur. Yani yığın yazıldıkça yığının tepesindeki işaretçi fiziksel kayıtların alt sayılarına doğru hareket eder (bir azalır). Geçerli köşe noktası r0 ise, yardımcı işlemci yığınına bir sonraki değer yazıldıktan sonra, mevcut köşe noktası fiziksel kayıt r7 olacaktır. Yığın yazmaçlarının mantıksal sayıları st(0)…st(7), yığının mevcut tepesindeki değişiklikle birlikte hareket ederler. Yığın mantıksal tepesi her zaman st(0) olarak adlandırılır.
Geliştirici, bir program yazarken mutlak yığın kayıt numaralarından ziyade göreceli yığın kayıt numaralarını manipüle ettiğinden, twr etiket kaydının içeriğini karşılık gelen fiziksel yığın kayıtlarıyla yorumlamakta zorluk yaşayabilir. Bağlantı bağlantısı olarak swr kaydının üst alanındaki bilgilerin kullanılması gerekir. Halka ilkesi bu şekilde uygulanır.
Bu yığın organizasyonu, özellikle parametreleri bir prosedüre aktarırken büyük bir esnekliğe sahiptir. Prosedürlerin geliştirilmesinde ve kullanılmasında esnekliği arttırmak için, bunların iletilen parametreler açısından donanım kaynaklarına (ortak işlemcinin fiziksel kayıt numaraları) bağlanması önerilmez. İletilen parametrelerin sırasını mantıksal kayıt numaraları biçiminde belirtmek çok daha uygundur. Böyle bir aktarım yöntemi açık olacaktır ve geliştiricinin, yardımcı işlemcinin donanım uygulamaları hakkında gereksiz ayrıntıları bilmesini gerektirmeyecektir. Komut seti seviyesinde desteklenen yardımcı işlemci kayıtlarının mantıksal numaralandırması bu fikri ideal olarak uygular. Bu durumda, altyordam çağrılmadan önce verilerin yardımcı işlemci kümesinin hangi fiziksel kaydına yerleştirildiği önemli değildir; yalnızca yığın üzerindeki parametrelerin sırası belirlenir. Bu nedenle altprogramın yalnızca aktarılan parametrelerin yığına yerleştirildiği sırayı bilmesi önemlidir.

Yardımcı işlemcinin merkezi işlemciyle birlikte çalışma prensibi
İşlemci ve yardımcı işlemcinin kendi ayrı talimat sistemleri ve işlenmiş veri formatları vardır. Yardımcı işlemci mimari olarak ayrı bir bilgi işlem cihazı olmasına rağmen ana işlemciden ayrı olarak var olamaz. İki bağımsız bilgi işlem cihazı olan işlemci ve yardımcı işlemci paralel olarak çalışabilir. Ancak bu paralelleştirme yalnızca komut yürütme için geçerlidir. Her iki işlemci de ortak bir sistem veriyoluna bağlıdır ve aynı bilgilere erişime sahiptir. Ana işlemci her zaman bir sonraki talimatın getirilmesi sürecini başlatır. Örnekleme sonrasında komut her iki işlemciye aynı anda ulaşır. Herhangi bir yardımcı işlemci komutunun, ilk beş biti 11011 değerinde olan bir işlem kodu vardır. İşlem kodu bu bitlerle başladığında, ana işlemci, işlem kodunun diğer içeriklerine bağlı olarak bu komutun belleğe erişim gerektirip gerektirmediğini belirler. . Durum böyleyse, ana işlemci işlenenin fiziksel adresini üretir ve belleğe erişir, ardından bellek hücresinin içeriği veri yoluna sunulur. Bellek erişimi gerekmiyorsa, ana işlemci verilen talimat üzerinde çalışmayı bitirir (onu yürütmeye çalışmadan) ve mevcut giriş talimat akışından bir sonraki talimatın kodunu çözmeye başlar. Seçilen komut, ana işlemciyle aynı anda yardımcı işlemciye girer. İlk beş bitten sonraki komutun kendi talimat sistemine ait olduğunu belirleyen yardımcı işlemci, yürütmeye başlar. Bir talimat bellekten işlenenler gerektiriyorsa, yardımcı işlemci, o anda ana işlemci tarafından sağlanan bellek hücresinin içeriğini okumak için veri yoluna erişir.

Bazı durumlarda her iki cihazın çalışmasını koordine etmek gerekebilir. Örneğin, giriş akışında yardımcı işlemciden gelen bir komutun hemen ardından, önceki komutun sonuçlarını kullanan ana işlemciden gelen bir komut geliyorsa, yardımcı işlemcinin, atladığı komuttan önce ana işlemciden önce komutunu yürütmek için zamanı olmayacaktır. yardımcı işlemci komutu kendi komutunu yürütür. Bu durumda programın mantığı bozulacaktır. Başka bir durum da mümkündür. Giriş komut akışı birkaç yardımcı işlemci komutundan oluşan bir dizi içeriyorsa, işlemci bunları çok hızlı bir şekilde iletecektir ancak yardımcı işlemciye harici bir arayüz sağlaması gerekir. Bunlar ve diğer daha karmaşık durumlar, iki işlemcinin çalışmasını birbiriyle senkronize etme ihtiyacına yol açar. İlk mikroişlemci modellerinde bu, her yardımcı işlemci komutundan önce veya sonra özel bir bekleme veya fwait komutunun eklenmesiyle yapılıyordu. Bu komutun görevi, yardımcı işlemci son komut üzerinde çalışmayı bitirene kadar ana işlemcinin çalışmasını askıya almaktı. Mikroişlemcili modellerde (i486'dan itibaren) bu senkronizasyon otomatik olarak gerçekleştirilir. Ancak yardımcı işlemci kontrol komutları grubundaki bazı komutlar için, senkronizasyonlu (beklemeli) ve senkronizasyonsuz komutlar arasında seçim yapmak mümkündür.

Matematiksel yardımcı işlemci - merkezi işlemcinin komut setini genişletmek ve ona entegre modülü olmayan işlemciler için kayan nokta biriminin işlevselliğini sağlamak için kullanılan bir yardımcı işlemci.

Kayan nokta birimi (veya kayan nokta birimi (FPU), gerçek sayılar üzerinde çok çeşitli matematiksel işlemler gerçekleştirmek için işlemcinin bir parçasıdır.

Sistem yaklaşık 80 komut içerir. Sınıflandırmaları:

1) Veri aktarım komutları: - Gerçek veriler; - Tamsayı verileri; - Ondalık veriler.

2) Veri karşılaştırma komutları: - Gerçek veriler; - Tamsayı verileri; - Analiz; - Sıfırdan.

3) Aritmetik komutlar: - Gerçek veriler: toplama, çıkarma, çarpma, bölme;

4) Tamsayı verileri: toplama, çıkarma, çarpma, bölme; - Yardımcı aritmetik komutlar (karekök, modül, işaret değişimi, üs ve mantis).

5) Transandantal komutlar: - Trigonometri: sinüs, kosinüs, tanjant, arktanjant; - Logaritmaların ve kuvvetlerin hesaplanması.

6) Kontrol komutları: - Yardımcı işlemcinin başlatılması; - Çevre ile çalışmak; - Yığınla çalışmak; - Modları değiştirme

Yardımcı işlemci- bir bilgisayar sisteminin merkezi işlemcisinin yeteneklerini genişleten, ancak ayrı bir işlevsel modül olarak tasarlanmış özel bir işlemci. Fiziksel olarak, yardımcı işlemci ayrı bir çip olabilir veya merkezi işlem birimine yerleştirilebilir (Intel 486DX ile başlayan bilgisayar işlemcilerindeki matematik yardımcı işlemcisinde olduğu gibi).

Kişisel bir bilgisayarın anakartındaki bir blokta 80x287 matematiksel yardımcı işlemci.

Aşağıdaki yardımcı işlemci türleri ayırt edilir:

Genel amaçlı matematik yardımcı işlemcileri, genellikle kayan nokta hesaplamalarını hızlandırır.

· Merkezi işlemciyi I/O işlemlerini kontrol etmekten kurtaran veya işlemcinin standart adres alanını genişleten I/O yardımcı işlemcileri (örneğin Intel 8089),

· Yüksek derecede uzmanlaşmış hesaplamaları gerçekleştirmek için yardımcı işlemciler.

Yardımcı işlemciler, belirli bir şirket tarafından geliştirilen bir mantık kümesinin parçası olabilir (örneğin, Intel, 8086 işlemciyle birlikte sunulan yardımcı işlemciler 8087 ve 8089'u piyasaya sürdü) veya üçüncü taraf bir üretici tarafından üretilebilir (örneğin, Motorola m68k için Weitek 1064 ve Intel için 1067) 80286).

Ses üreteci çipleri- ses üretimi için özel mikro devreler. Bilgisayarlarda, oyun sistemlerinde (konsollar, slot makineleri) ve ev aletlerinde ses efektlerini ve sentezlenmiş müziği (chiptune'a bakın) yeniden üretmek için kullanılabilirler. Bu tip mikro devrelerin İngilizce adı ses çipi, Rus teknik terminolojisinde bir kısaltma var PGZ- programlanabilir ses üreteci. Hepsi dijital, hepsi analog veya bunların karışımı olabilir. Bunlar, frekans üreteçlerini (genellikle giriş saat frekansını yazılım değişkenli bir bölme faktörüyle bölmeye dayalı), zarf denetleyicilerini, örnek oynatma devrelerini, filtreleri ve sinyal amplifikatörlerini içerebilir.

Ses üreteçleri iki ana kategoriye ayrılabilir: sesi doğrudan sentezleyenler ve önceden dijitalleştirilmiş sesleri yeniden üretenler. İlk kategori ayrıca çalışma prensibine göre basit frekans sentezleyicilere (ek bileşenlere sahip frekans bölücüler üzerine inşa edilmiştir) ve frekans modülasyon yöntemini kullanan sentezleyicilere (birkaç ses üretecinin karşılıklı modülasyonuna dayanan FM sentezi) ayrılabilir.

Rusça'da ses üreteci çiplerine sıklıkla denir ses (ortak)işlemciler. Bununla birlikte, bu tanım yanlıştır - ses üreteci yongaları, ses verilerini (işlemcinin ana işlevi) işlemez, harici sistem işlemcisinin talimatlarına göre, donanım tanımlı bir algoritmaya göre ses üretirler. İsim ses işlemcisi ses işleme için kullanılan dijital sinyal işlemcilerine (örneğin, yazılım kontrollü bir yankı efekti oluşturmak) ve ayrıca bir mikroişlemci içeren ses üreteci çiplerine uygulanabilir.

GPU(İngilizce) Grafik İşleme Ünitesi, GPU) - kişisel bilgisayarda veya oyun konsolunda grafik oluşturmayı gerçekleştiren ayrı bir cihaz. Modern GPU'lar bilgisayar grafiklerini çok verimli bir şekilde işler ve görüntüler. Özel işlem hattı mimarileri sayesinde, grafik bilgilerini işlemede tipik bir merkezi işlem biriminden çok daha verimlidirler. Modern video bağdaştırıcılarındaki grafik işlemcisi, 3D grafik hızlandırıcı olarak kullanılır.

Hem ayrı bir video kartının parçası olarak hem de entegre çözümlerde (kuzey köprüsüne veya hibrit işlemciye yerleşik) kullanılabilir.

Olasılık işlemcisi donanım düzeyinde olasılıklarla çalışır. Matematiksel aparat Bayes teoremine dayanmaktadır

Bir bakıma olasılıksal işlemci, CMOS teknolojisini kullanarak analog hesaplamayı uygular. Bu yaklaşım teorik olarak bulanık mantığa veya sinir ağlarına dayalı yaklaşık hesaplamaların etkin bir şekilde uygulanmasını mümkün kılar.

· 1 Başvuru

· 2 Prototip

Uygulama alanları kaynak metni düzenle]

Olasılıksal işlemci, özel bir işlemcidir ve öncelikle örüntü tanıma sistemlerinde kullanılacaktır. Örneğin biyometride, hastalıkların teşhisinde, çeşitli izleme sistemlerinde, teknik görüş sistemlerinde, ses tanıma sistemlerinde, spam filtrelemede, kimlik avında, borçluların kredi itibarının belirlenmesinde ve diğer birçok görevde. Olasılıksal yaklaşım aynı zamanda teknik problemlerin stokastik yöntemler (Monte Carlo yöntemleri) kullanılarak gerekli çözüm doğruluğuyla çözülmesini de içerir.

Olasılık işlemcisinin modern bilgisayarlarda grafik işlemci, sinyal işlemcisi veya FPGA ile birlikte başka bir yardımcı işlemci olarak kullanılabileceği ve çok çeşitli özel sorunların çözümü için yüksek hız ve verimlilik sağlayabileceği öngörülmektedir.

Matematik yardımcı işlemcisi- merkezi işlemcinin komut setini genişletmek ve ona işlevsellik sağlamak için yardımcı işlemci kayan nokta modülü, entegre modülü olmayan işlemciler için.

Kayan nokta birimi(veya kayan nokta; İngilizce kayan nokta birimi (FPU)) - gerçek sayılar üzerinde çok çeşitli matematiksel işlemler gerçekleştirmek için işlemcinin bir parçası.

Gerçek sayıları ve matematiksel işlemleri işlemek için basit "tamsayı" işlemciler, uygun destek rutinlerini ve bunları yürütmek için zaman gerektirir. Kayan nokta işlemleri modülü, onlarla ilkel seviyede çalışmayı destekler - gerçek bir sayının yüklenmesi, boşaltılması (özel kayıtlara/kayıtlardan) veya bunlar üzerinde matematiksel bir işlem tek bir komutla gerçekleştirilir, bu nedenle bu tür işlemlerde önemli bir hızlanma sağlanır. elde edildi.

· 1 Yardımcı İşlemci

o 1.1 Intel x86 ailesi yardımcı işlemcileri

o 1.2 Üçüncü taraf x86 yardımcı işlemcileri

o 1.3 Diğer platformlar

· 2 FPU cihazı

o 2.1 Veri formatları

o 2.2 Kayıtlar

o 2.3 Yardımcı işlemci talimat sistemi

· 3 Ayrıca bakınız

· 4 Not

Yardımcı işlemciler kaynak metni düzenle]

Ana makale:X87

x87 x86 işlemci mimarisinin bir alt kümesi olan matematiksel hesaplamalarla çalışmaya yönelik özel bir talimat kümesidir. Bu adı almıştır çünkü orijinal bireysel matematik yardımcı işlemci çiplerinin isimleri şu şekilde bitmektedir: 87 . İşlemcinin temel talimat setinin diğer uzantıları gibi, bu talimatlar da çalışan bir program oluşturmak için kesinlikle gerekli değildir, ancak donanımda uygulandığında genel matematiksel görevlerin çok daha hızlı gerçekleştirilmesine olanak tanır. Örneğin, bir dizi talimatta x87 Sinüs veya kosinüs değerlerini hesaplamak için komutlar vardır.

x86 ailesinin Intel yardımcı işlemcileri kaynak metni düzenle]

8086/8088'den 386'ya kadar olan x86 işlemci ailesi için kayan nokta birimi, adı verilen ayrı bir yongaya tahsis edildi. matematiksel yardımcı işlemci. Yardımcı işlemciyi bilgisayar kartına takmak için ayrı bir konektör sağlandı.

Yardımcı işlemci tam teşekküllü bir işlemci değildir, çünkü bunun için gerekli işlemlerin çoğunun nasıl yapılacağını bilmiyor (örneğin, bir programla nasıl çalışılacağını ve bellek adreslerinin nasıl hesaplanacağını bilmiyor), sadece bir ek olarak merkezi işlemci.

Özellikle x86 yardımcı işlemcilerinde kullanılan, merkezi işlemci ile yardımcı işlemci arasındaki etkileşim şemalarından biri aşağıdaki şekilde uygulanır:

· Yardımcı işlemci, merkezi işlemcinin veri yollarına bağlıdır ve ayrıca işlemcileri birbirleriyle senkronize etmek için çeşitli özel sinyallere sahiptir.

· Merkezi işlemcinin bazı komut kodları yardımcı işlemciye ayrılmıştır; diğer komutları göz ardı ederek komutların akışını izler. Merkezi işlemci ise tam tersine, yardımcı işlemci komutlarını göz ardı eder ve yalnızca komut ona erişmeyi gerektiriyorsa bellekteki adresi hesaplar. CPU, yardımcı işlemcinin adres veriyolundan adresi okumasına izin veren sahte bir okuma döngüsü gerçekleştirir. Yardımcı işlemcinin ek bellek erişimine ihtiyacı varsa (sonuçları okumak veya yazmak için), bunu veri yolu yakalama aracılığıyla gerçekleştirir.

· Komutu ve gerekli verileri aldıktan sonra, yardımcı işlemci onu yürütmeye başlar. Yardımcı işlemci komutu yürütürken merkezi işlemci, yardımcı işlemcinin hesaplamalarına paralel olarak programı yürütmeye devam eder. Bir sonraki talimat aynı zamanda bir yardımcı işlemci talimatı ise işlemci durur ve yardımcı işlemcinin önceki talimatı tamamlamasını bekler.

· Ayrıca, hesaplamalar tamamlanıncaya kadar işlemciyi zorla durduran özel bir bekleme komutu (FWAIT) bulunmaktadır (eğer programa devam etmek için sonuçlarına ihtiyaç varsa). Şu anda komut yalnızca kayan noktayla çalışırken istisnaları işlemek için kullanılıyor; işlemcinin ve yardımcı işlemcinin çalışması programcıyla şeffaf bir şekilde senkronize ediliyor.

Intel486DX işlemciden başlayarak kayan nokta birimi merkezi işlemciye entegre edildi ve FPU olarak adlandırıldı. Intel486SX hattında FPU modülü devre dışı bırakıldı (ilk başta bu satır arızalı FPU'lu işlemcileri içeriyordu). Intel486SX işlemciler için bir Intel487SX "yardımcı işlemci" de piyasaya sürüldü, ancak aslında bu bir Intel486DX işlemciydi ve kurulduğunda Intel486SX işlemci devre dışı bırakıldı.

Entegrasyona rağmen, i486 işlemcilerdeki FPU, aynı çip üzerinde uygulanan değişmemiş bir yardımcı işlemcidir; ayrıca, i486 FPU devresi, saat frekansına (merkezi işlemcinin frekansının yarısı) kadar önceki nesil 387DX yardımcı işlemciyle tamamen aynıdır. FPU'nun merkezi işlemciyle gerçek entegrasyonu yalnızca MMX modelinin Pentium işlemcilerinde başladı.