Donanımda Çarpma İşlemini Optimize Etmenin Pratik Yöntemleri
Ondalık Sayı Çarpma İşlemi ve Problemleri
MDPI
- Blog Yazısı
Bilgisayar mimarisi ile ilgilenenlerin aklına gelebilecek sorulardan biri, bir sayıyı ondalıklı bir sayı ile çarpma yöntemidir. Örneğin, diyelim ki bir donanım tasarlamak istiyoruz ve bir resmi RGB renk uzayından YUV renk uzayına dönüştürmek istiyoruz. Kırmızı renk değerini dönüştürmek için şu hesaplamayı yapmamız gerekiyor:
Y=0.257R+0.504G+0.098B+16Y = 0.257R + 0.504G + 0.098B + 16
Peki bunu nasıl yapacağız? Basit bir yol, hesaplamayı doğrudan ondalık sayı ile yapmaktır. Örneğin IEEE standardına uygun şekilde hesaplamayı gerçekleştirebiliriz. Fakat bu yöntem bazı sorunlara yol açar! Çünkü ondalık sayıları tam olarak ifade edemeyiz ve bu yöntem eksik veya hatalı olabilir.
O zaman ne yapmalıyız? Güzel bir çözüm, bu ondalık sayıların yükünden kurtulmaktır. Peki nasıl? Biliyoruz ki ikili sayılarda 2’nin kuvvetleri ile çarpma işlemlerini shift (kaydırma) işlemiyle gerçekleştirebiliriz. O zaman neden bu katsayıları 2’nin kuvvetleri ile çarparak ondalık sayıların yükünden kurtulmayalım? Örneğin bu dönüşüm için 256 (2⁸) ile çarpıp bölme yöntemini kullanabiliriz. 256’ya bölme işlemi, sağa 8 kaydırma ile eşdeğer olur ve denklem şu hâle gelir:
Y=(66R+129G+25B+4096)>>8 Y = (66R + 129G + 25B + 4096) >> 8
Artık güzel bir denklemimiz var ve ondalık sayılar tamamen ortadan kalktı! Bir sonraki konu çarpma işlemi… Örneğin 66 ile çarpma yapmak istiyoruz. Bilindiği gibi çarpma devreleri karmaşık ve yavaştır. O zaman neden yukarıdaki tekniği kullanmayalım? Örneğin kırmızı renk için:
66R=64R+2R66R = 64R + 2R
64, 2⁶’ya eşittir; yani 6 kez sola kaydırma, 2 ise 1 kez sola kaydırma anlamına gelir. Dolayısıyla yazabiliriz:
66R=64R+2R=R<<6+R<<166R = 64R + 2R = R << 6 + R << 1
Aslında maddi destek istememizin nedeni çok basit: Çünkü Evrim Ağacı, bizim tek mesleğimiz, tek gelir kaynağımız. Birçoklarının aksine bizler, sosyal medyada gördüğünüz makale ve videolarımızı hobi olarak, mesleğimizden arta kalan zamanlarda yapmıyoruz. Dolayısıyla bu işi sürdürebilmek için gelir elde etmemiz gerekiyor.
Bunda elbette ki hiçbir sakınca yok; kimin, ne şartlar altında yayın yapmayı seçtiği büyük oranda bir tercih meselesi. Ne var ki biz, eğer ana mesleklerimizi icra edecek olursak (yani kendi mesleğimiz doğrultusunda bir iş sahibi olursak) Evrim Ağacı'na zaman ayıramayacağımızı, ayakta tutamayacağımızı biliyoruz. Çünkü az sonra detaylarını vereceğimiz üzere, Evrim Ağacı sosyal medyada denk geldiğiniz makale ve videolardan çok daha büyük, kapsamlı ve aşırı zaman alan bir bilim platformu projesi. Bu nedenle bizler, meslek olarak Evrim Ağacı'nı seçtik.
Eğer hem Evrim Ağacı'ndan hayatımızı idame ettirecek, mesleklerimizi bırakmayı en azından kısmen meşrulaştıracak ve mantıklı kılacak kadar bir gelir kaynağı elde edemezsek, mecburen Evrim Ağacı'nı bırakıp, kendi mesleklerimize döneceğiz. Ama bunu istemiyoruz ve bu nedenle didiniyoruz.
Artık çok basit bir hâle geldi! Shift işlemi özel bir devre gerektirmez, sadece kablolama yeterlidir; toplama işlemi de oldukça basit bir devredir. Aynı işlemi diğer renkler için de uygulayarak, denklem sonunda şu hâle gelir:
Y=(((R<<6)+(R<<1))+((G<<7)+G)+((B<<4)+(B<<3)+B)+4096)>>8Y = (((R << 6) + (R << 1)) + ((G << 7) + G) + ((B << 4) + (B << 3) + B) + 4096) >> 8
Artık dönüşüm, shift ve toplama işlemlerinden oluşan çok basit bir devre hâline gelmiştir ve donanımı kolayca üretilebilir.
/content/aa14ceaa-8723-49d0-9929-2aacfa840051.png)
/content/1d57b9d5-ebb9-4d8e-93af-fb355d29263c.png)
-----------------------------------
Donanım ve yazılım arasındaki fark işte burada ortaya çıkar. Yazılımda bu detaylarla uğraşmayız; çünkü donanım altta tüm bu işlemleri yönetir. Fakat donanımda bu küçük ayrıntılara dikkat etmek gerekir.
Örneğin bu donanımı fotoğraf makinelerinde kullanmak istiyoruz; bir resmin sıkıştırılarak depolanmasını sağlasın. Diyelim ki resmimiz 320×240 piksel boyutunda, yani 76,800 piksel! Her pikselin üç rengi var (kırmızı, yeşil, mavi), yani YUV renk uzayına dönüşüm için 230,400 denklem gerekiyor!
Tüm bunları ondalıklı çarpma ile yapmak istersek… Çarpma ve toplama devresi hem daha fazla enerji harcar hem de daha büyük ve karmaşık bir devre gerektirir, daha fazla alan kaplar.
Donanım tasarımında mimari planlama, ürünün performansı ve verimliliği üzerinde çok kritik ve belirleyici bir rol oynar.
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?
Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:
kreosus.com/evrimagaci | patreon.com/evrimagaci
Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 29/04/2026 18:07:26 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/22819
İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.