Aritmetik taşma - Arithmetic underflow

Terimi, aritmetik Yetersizlik (aynı zamanda kayan nokta taşma ya da sadece alttan ) 'de bir durumdur bilgisayar programının bir hesaplamanın sonuç bilgisayar aslında temsil daha kesin mutlak değer bir sayıdır bellek onun üzerine bir merkezi işlem birimi (CPU ).

Aritmetik taşma, kayan nokta işleminin gerçek sonucu , hedef veri türünde normal bir kayan nokta sayısı olarak gösterilebilen en küçük değerden büyüklük olarak daha küçük (yani sıfıra yakın) olduğunda meydana gelebilir . Eksik taşma , kısmen , kayan nokta değerinin üssünün negatif taşması olarak kabul edilebilir . Örneğin, üs kısmı −128 ile 127 arasındaki değerleri temsil edebiliyorsa, −128'den küçük bir değere sahip bir sonuç, yetersiz akışa neden olabilir.

Bir tamsayı değişkeninde çok düşük değerlerin saklanması (örneğin, -1'i işaretsiz bir tamsayıda saklamaya çalışmak ), tamsayı taşması veya daha genel olarak tamsayı sarma olarak adlandırılır . Terimi, taşma normalde ayrı bir sorun olan, yalnızca kayan nokta sayıları ifade etmektedir. Çoğu kayan nokta tasarımında çok düşük bir değeri saklamak mümkün değildir, çünkü bunlar genellikle imzalıdır ve negatif bir sonsuzluk değerine sahiptir.

Alt akış boşluğu

fminN'nin en küçük pozitif normal kayan nokta değeri olduğu − fminN ve fminN arasındaki aralığa alt akış aralığı denir. Bunun nedeni, bu aralığın boyutunun, boşluğun hemen dışındaki bitişik normal kayan nokta değerleri arasındaki mesafeden çok sayıda büyüklük mertebesi daha büyük olmasıdır. Örneğin, kayan nokta veri tipi 20 biti temsil edebiliyorsa , alt akış aralığı, aralığın hemen dışındaki bitişik kayan nokta değerleri arasındaki mutlak mesafeden 2 21 kat daha büyüktür.

Daha eski tasarımlarda, alttan akış boşluğu yalnızca bir kullanılabilir değere sahipti, sıfır. Bir yetersiz akış meydana geldiğinde, gerçek sonuç sıfır ile değiştirildi (doğrudan donanım tarafından veya birincil yetersiz akış koşulunu işleyen sistem yazılımı tarafından). Bu değiştirmeye "sıfıra sıfır" denir.

IEEE 754'ün 1984 baskısı, normal altı sayıları tanıttı . Normalin altındaki sayılar (sıfır dahil), alttan akış boşluğunu, bitişik değerler arasındaki mutlak mesafenin, alttan akış boşluğunun hemen dışındaki bitişik değerlerle aynı olduğu değerlerle doldurur. Bu, mümkün olduğunda en yakın normal değerin kullanılması gibi, en yakın normal altı değerin kullanıldığı "kademeli taşma"yı mümkün kılar. Kademeli taşma kullanıldığında bile en yakın değer sıfır olabilir.

Boşluğun hemen dışındaki bitişik kayan nokta değerleri arasındaki mutlak mesafeye makine epsilon adı verilir ve tipik olarak 1 değeriyle toplamı bu kayan nokta şemasında 1 değerine sahip yanıtla sonuçlanacak en büyük değerle karakterize edilir. Bu , gerçek değeri kayan nokta gösterimine dönüştüren bir fonksiyon nerede olarak yazılabilir . Makine epsilonu, alt akış seviyesiyle karıştırılmamalıdır (normalin altındaki sayılar varsayılarak), yakından ilişkilidir. Makine epsilon oluşturan bit sayısına bağlıdır significand taşma seviyesi üs alanını oluşturan basamağı sayısına bağlıdır, oysa. Çoğu kayan nokta sisteminde, alt akış seviyesi makine epsilonundan daha küçüktür.

Alt akışın işlenmesi

Bir alt akışın meydana gelmesi, bir ("yapışkan") durum biti belirleyebilir, bir istisna oluşturabilir, donanım düzeyinde bir kesinti oluşturabilir veya bu etkilerin bazı kombinasyonlarına neden olabilir.

IEEE 754'te belirtildiği gibi , yetersiz akış koşulu yalnızca bir hassasiyet kaybı da varsa bildirilir. Tipik olarak bu, nihai sonucun kesin olmaması olarak belirlenir. Bununla birlikte, kullanıcı alt akışta tuzak kuruyorsa, bu, hassasiyet kaybı dikkate alınmadan gerçekleşebilir. IEEE 754'te taşma (ve diğer istisnalar) için varsayılan işleme, taşmanın meydana geldiğini kayan nokta durumu olarak kaydetmektir. Bu, uygulama programlama düzeyi için belirtilir, ancak genellikle bunun donanım düzeyinde nasıl ele alınacağı olarak da yorumlanır.

Ayrıca bakınız

Referanslar