3 puan yazan GN⁺ 2024-12-30 | 1 yorum | WhatsApp'ta paylaş

Intel'in Pentium FDIV Hatası

  • Arka plan: 1993'te Intel, yüksek performanslı Pentium işlemcisini piyasaya sürdü. Pentium, önceki Intel 486 işlemcisine göre daha hızlı kayan noktalı bölme algoritması dahil birçok iyileştirme içeriyordu. Ancak bir yıl sonra matematik profesörü Nicely, ikiz asalların terslerini araştırırken Pentium'un kayan noktalı bölme yaparken yanlış sonuçlar ürettiğini fark etti.

  • Hatanın keşfi ve etkisi: Intel bu sorunu "çok önemsiz bir teknik mesele" olarak değerlendirdi, ancak hata medyada büyük bir olaya dönüştü. Intel sonunda tüm kusurlu Pentium çiplerini değiştirmeye karar verdi ve bu karar şirkete 475 milyon dolara mal oldu.

  • Hatanın nedeni: Pentium'un bölme algoritması bir arama tablosu kullanır. Intel 1994'te, bu hatanın nedeninin bir betik hatası yüzünden tablodan beş girdinin eksik kalması olduğunu açıkladı; ancak gerçekte matematiksel bir hata nedeniyle 16 girdi eksikti. Bu eksik girdilerden beşi FDIV hatasına yol açtı.

  • Kayan noktalı sayıların genel görünümü: Kayan noktalı sayılar hem çok büyük hem de çok küçük sayıları temsil edebilir. Intel'in 8087 kayan noktalı yardımcı işlemci çipi, IEEE 754 standardının geliştirilmesine katkıda bulundu ve Pentium dahil çoğu bilgisayar bu standardı uyguladı.

  • SRT bölme: Pentium, bölme işlemi için SRT algoritmasını kullanır ve bu, standart ikili bölmeye göre iki kat daha hızlıdır. SRT algoritması, bölüm basamaklarını seçmeyi kolaylaştırmak için alışılmadık bir yaklaşım kullanır.

  • Arama tablosunun yapısı: Pentium'un arama tablosu 2048 girdi içerir ve eksik olan beş girdi FDIV hatasına neden olur. Bu tablo programlanabilir mantık dizisi (PLA) ile gerçekleştirilmiştir.

  • Hatanın matematiksel sınırları: Bölme algoritmasının kilit adımı, bölüm basamağını elde etmek için kısmi kalanı bölenle bölmektir. Bu süreçte yanlış q değeri seçilirse algoritma bunu telafi edemez.

  • Carry-save ve carry-lookahead toplayıcılar: Pentium'un bölme devresi, toplama ve çıkarmayı verimli biçimde yapmak için carry-save toplayıcı kullanır. Bu toplayıcı, FDIV hatasının ortaya çıkmasında önemli bir rol oynar.

  • Hatanın düzeltilmesi: Intel, tablodaki kullanılmayan tüm girdileri 2 ile doldurarak hatayı düzeltti. Bu, yanlış girdilere erişim olasılığını ortadan kaldırdı ve PLA denklemlerini sadeleştirerek PLA'yı daha küçük hale getirdi.

1 yorum

 
GN⁺ 2024-12-30
Hacker News görüşleri
  • Yazar, Pentium hatası hakkında sorular varsa yanıtlamaya hazır olduğunu belirtiyor

    • Intel'in tepkisi ilginçti; tüm kullanıcıların işlemcilerini değiştirmediği için çok sayıda olumsuz haber çıkmıştı
    • Amazon Colorsoft örneğinde, kusurlu ürünlerin sessizce değiştirilerek sorunun çözüldüğü bir vakadan söz ediliyor
    • Apple AirPods Pro'daki çatlama sorununun da sessizce değişim yapılarak çözüldüğü bir vakadan söz ediliyor
  • Intel'in teknik notunda, sıradan bir kullanıcının bu sorunla 27.000 yılda bir karşılaşacağı iddia edilmişti; ancak IBM, müşterilerin birkaç günde bir bu sorunla karşılaşabileceğini analiz etti

    • Görünüşe göre Intel tek bir kullanıcıyı hesaba katarken, IBM destek taleplerini dikkate aldı
    • Büyük hacimde talep işlendiğinde, olasılığı düşük sorunlar bile sık sık ortaya çıkabilir
  • Gerçek kullanım sırasında hatayı fark eden yalnızca bir kişi olmuştu

    • Öğrencilere hatalı hesap makineleri verilen bir araştırmadan söz edilerek, hatayı fark etmenin etkilenmekten farklı olduğu açıklanıyor
    • Çoğu insan bilgisayar çıktısının doğru olup olmadığını kontrol etmiyor
  • Müşterilerin CPU'larını kontrol etme imkânı olmadığı için, sorunu çözmek amacıyla kütüphanelere özel kod eklemek zorunda kaldıkları bir deneyim paylaşılıyor

  • Intel'in tablo oluşturma algoritmasındaki soruna dikkat çekilerek, bunun PR tarafında küçük bir mesele gibi anlatıldığı ancak gerçekte daha büyük bir sorun olduğu vurgulanıyor

  • Intel'in tablodaki kullanılmayan girdilerin tamamını neden 2 ile doldurduğu merak ediliyor

    • Daha güvenli yöntemin yalnızca 5 girdiyi değiştirmek olacağı belirtiliyor
    • Düzeltilmiş tablo daha basitken, bunun neden en baştan böyle yapılmadığı sorgulanıyor