3 puan yazan GN⁺ 2025-03-04 | 1 yorum | WhatsApp'ta paylaş
  • Intel, 1993’te yüksek performanslı Pentium işlemcisini piyasaya sürdü
    • Pentium’un devreleri analiz edilirken, 3 ile çarpma yapan karmaşık bir devre keşfedildi
    • Bu devre, Pentium’un kayan noktalı çarpıcı devresinin bir parçası ve 64 bit sayıları sekizlik tabanlı olarak çarpıyor
  • Sekizlik tabanlı çarpmanın gerekliliği
    • İkili çarpma kavramsal olarak basit olsa da yavaştır
    • Pentium, devreyi azaltmak ve hızı artırmak için sekizlik tabanlı çarpma kullanır
    • Sekizlik tabanlı çarpma, 0’dan 7’ye kadar olan rakamlarla çarpma gerektirdiği için karmaşıktır
  • Booth algoritması ve ×3 devresi
    • Çarpımı optimize etmek için Booth algoritması kullanılır
    • ×3 devresi, kayan noktalı çarpmada özel bir durum olarak ele alınmalıdır
    • Bu devrenin hızlı çalışması gerekir; performansı en üst düzeye çıkarmak için carry lookahead gibi teknikler kullanılır
  • Carry lookahead ve paralel prefix toplayıcı
    • Carry lookahead toplayıcı, tüm carry bitlerini paralel hesaplayarak toplamayı hızlandırır
    • Carry lookahead, 8 bitlik parçalar halinde paralel prefix toplayıcı kullanılarak uygulanır
    • Gecikmeyi en aza indirmek ve devreyi verimli kurmak için Kogge-Stone algoritması kullanılır
  • Carry select toplayıcı
    • Carry select toplayıcı, iki toplamayı aynı anda yapar ve carry belirlendiğinde sonucu anında verir
    • Pentium, ×3 devresinde her 8 bitlik parça için carry select toplayıcı kullanır
  • BiCMOS çıkış sürücüsü
    • ×3 devresinin çıkışı yüksek akım gerektirir; sinyal gecikmesini azaltmak için BiCMOS süreci kullanılır
    • BiCMOS, yüksek performans sağlamak için CMOS ile bipolar transistörleri birleştirir
  • Sonuç
    • Pentium’un ×3 devresi, geçmiş mikroişlemcilere kıyasla daha fazla transistör kullanan karmaşık bir tasarımdır
    • Bu, işlemci karmaşıklığının ne kadar arttığını gösteren bir örnektir

1 yorum

 
GN⁺ 2025-03-04
Hacker News görüşü
  • Trinary bilgisayar emülasyonunda, 3'ün kuvvetlerine bölmeyi bit kaydırma ve toplama işlemlerine dönüştürmenin bir yolu var

    • 1/3, 1/2 - 1/2(1/3) olarak ifade edilebilir
    • Bu sonsuza kadar tekrarlanarak 1/3 = -(-1/2)^N şeklinde ifade edilebilir
    • Bu, 2 ve 3'ün herhangi bir kuvvet çifti için de mümkündür
    • Bu sayede sabit zamanda sabite bölme devresi yalnızca toplayıcılar ve çıkarıcılarla kurulabilir
  • Cinematronics arcade oyun işlemcisi iki adet 12 bit akümülatöre sahiptir

    • Çarpma komutu 24 bitlik değere kaydırır ve bellek içeriğini ekler
    • 24 bitlik sonuç elde etmek için art arda 8 çarpma yürütülür
    • Bu çoğunlukla oyun nesnelerinin koordinat döndürmesi için 2x2 matris çarpımında kullanılır
    • 1970'lerin ortasında 7400 serisi parçalar kullanılarak 5MIPS tepe işlem hacmine sahipti
  • Peter Kogge, Stanford'da doktora aldı ve IBM Fellow olarak çok çekirdekli CPU'yu icat eden kişidir

  • Adres hesaplamalarında 3 ile çarpma yaygın bir işlemdir

    • LEA komutu kullanılarak tek döngü içinde yapılabilir
    • Transistör bütçesini bunun için kullanmak iyi bir tercihti
  • Çarpanda 7 ile çarpmak yerine 8 ile çarpıp 1 çıkarmanın bir yolu vardır

    • Bu, carry lookahead devresine benzer
    • 7 = 8-1, 6 = 8-2, 5 = 8-3, 4 = 8-4 olarak ifade edilebilir
  • ×3 çarpanı yaklaşık 9000 transistör içerir; bu, 1976 tarihli Z80 mikroişlemciden daha fazladır

    • Bu, işlemci karmaşıklığındaki muazzam büyümeyi gösterir
    • Bugün silikon yarı iletken teknolojisinin sınırlarına ulaştık ve artık daha akıllıca çalışmamız gerekiyor
  • radix-8 Booth çarpanı x3 devresi gerektirir

    • Bu, fmax'i zorlamak için yapılan bir alan/performans ödünleşimidir
  • 8086: 29,000

    • 386: 275,000
    • 486: 1.2 million
    • Pentium: 3.1 million
    • NSA 2000'den sonra devreye girdi
  • radix-8 çarpmanın dezavantajı, 0'dan 7'ye kadar olan sayılarla çarpmanın karmaşık olmasıdır

    • 2 ile çarpmak, bitleri sola 1 bit kaydırmakla aynıdır
    • 4 ile çarpmak, bitleri sola 2 bit kaydırmakla aynıdır
    • 7 ile çarpmak, 8 ile çarpıp 1 çıkarmakla çözülebilir
    • ×3, 2x ile 1x'in toplamı veya 4x ile 1x'in farkı olarak hesaplanabilir
    • ×6 kolayca hesaplanabiliyorsa, ×3 o değeri sağa kaydırarak elde edilebilir