ALU aritmetik mantık birimi

Vikipedi, özgür ansiklopedi

Bu ansiklopedi maddesinin biçim olarak Vikipedi standartlarına ulaşması için elden geçirilmesi gerekmektedir.
Bu madde Aralık 2006 tarihinden beri etiketli olarak durmaktadır.Düzenleme yapıldıktan sonra bu not silinmelidir.
Bu yazı http://en.wikipedia.org/wiki/Arithmetic_logic_unit

wikipedia sitesinden yararlanılarak hazırlanmıştır.


ARİTMETİK MANTIK BİRİMİ

Bu yazı bilgisayar aritmetik mantık birimi hakkındadır. Kısaca olarak adlandırabiliriz.

Aritmetik mantık birimi, iki sayı arasında ki sayısal işlemleri (toplama çıkarma vb..) ve mantık işlemleri (ve, veya vb.) gerçekleştiren dijital devrelerdir. ALU bilgisayarın merkezi işlem biriminin temel yapı bloğudur.

Bu zamana kadar yapılan en karmaşık elektronik devreler Pentium gibi modern mikroişlemciler içinde bulunmaktadır. Bundan dolayı, bu işlemciler çok güçlü ve karmaşık ALU lara sahiptirler. Gerçekte modern bir mikroişlemci (veya merkezi işlem birimi) birden fazla çekirdeğe sahip olabilir. her çekirdekte birden fazla işleme birimi olabilir ve her işleme birimi de birden fazla ALU’ ya sahip olabilir.

Bazı diğer devreler de içerisinde ALU bulundurabilirler. Mesela ATI ve NVIDIA da bulunan grafik işlem birimlerinde, Sound blaster ses kartlarında bulunan sayısal sinyal işlem birimlerinde, CD çalar ve yüksek çözünürlüklü televizyonlarda vb.. bunların hepsi içlerinde güçlü ve karmaşık ALU lara sahiptirler.

TARİH:Von Neumann’ ın Önergesi

Matematikçi Von Neumann EDVAC adında yeni bir bilgisayar kuruluşu hakkında rapor yazdığında ALU fikrini 1945’te ortaya çıkarmıştır. 1946 sonralarında, meslektaşları ile beraber IAS’ın (Institute of Advanced Studies) tasarımı üzerinde çalışmışlardır. IAS bilgisayarı ileri zamanda oluşturulacak birçok bilgisayarın prototipi olmuştur.

Von Neumann ALU’nun bilgisayar için bir ihtiyaç olduğunu belirtmiştir çünkü bilgisayarlar basit aritmetik işlemleri yapmak zorundalardı (toplama, çıkarma, çarpma, bölme gibi..) bundan dolayı da Von Neumann bu işlemler için bazı özelleştirilmiş kısımlara ihtiyaç duyulacağına inanıyordu.

SAYISAL SİSTEMLER

ALU devrede aynı formatta bulunan sayıları işleyebilmelidir. Bu da modern işlemciler için sayıların ikilik tabanda ikiye tümleyen şekilleri ile gerçekleştirilebilir. İlk zaman bilgisayarları çok çeşitli sayı sistemleri kullanmışlardı. Örneğin; bire tümleyen yada her basamak için bir vakum tüpü kullanılarak yapılan onluk sistem kullanılmıştır.

Her sayısal sistem için farklı ALU tasarımları bulunmaktadır. Şimdi tercih edilen ikiye tümleyen sistemdir. Bu sistemle ALU’ lar toplama ve çıkarma işlemlerini daha kolay gerçekleştirebilmektedirler.

TANITIM

Bir çok bilgisayar işlemi ALU tarafından gerçekleştirilir. ALU işlemci yazmaçlarından veriyi alır. Bu veri işlenir ve sonuçları ALU’ nun çıkış yazmaçlarında saklanır. Diğer yöntemlerde veri yazmaçlar ve ana bellek arasında hareket eder. ALU’yu kontrol eden bir kontrol birimi bulunmaktadır. Bu birim ALU’nun yapacağı işlemlere göre ALU’yu hazırlamakla yükümlüdür.

BASİT İŞLEMLER

Birçok ALU' aşağıdaki işlmeleri işletebilir; • Tamsayı aritmeik işlemleri (toplama, çıkarma, bazı zamanlarda çarpma yada bölme fakat çarpma ve bölme işlmelerini yaptırmak biraz pahalı olabilir.) • Bit bit mantık işlemleri (AND, OR, XOR) • Bit kaydırma işlemleri. (kaydırma yada yönlendirme)Kaydırmalar iki ile çarpılma yada bölme şeklinde değerlendirilebilir.

KARMAŞIK İŞLEMLER

Bir tasarımcı herhangi bir işlemin hesaplanması için bir ALU tasarlayabilir. Fakat bir ALU tasarlamak karmaşık bir işlemdir. Tasarım da birçok problemle karşılaşılabilir. Bunlar ALU’nun çok karmaşık işlemlşerşi gerçekleştirmesi, ALU’nun maliyetinin yüksek olması, işlemcide fazla yer kaplaması ve fazla güç tüketimi gibi sıralanabilir.

Bundan dolayı tasarımcılar orta bir yol hesaplarlar tasarlarlar. Işlemcinin hızlı olması için güçlü bir ALU’nun işlemciye sağlanması, fakat pahalı olmaması içinde çok karmaşık olmaması gerekir.

Düşününki bir sayının karekökünü hesapmaya ihtiyacımız var. Bunun için tasarımcı bu seçenekleri inceleyecektir;

1)Tek bir adımda bir sayının karekökünü hesaplayan karmaşık bir ALU tasarlayın. Buna tek saat vuruşunda hesaplama denir.

2)Birden fazla adımda bir sayının karekökünü hesaplayan bir ALU tasarlayın.bu interaktif hesaplama olarak adlandırılır. Genelikle mikro kodlar kullanılarak yapılan karmaşık kontrol birimleri tarafından kontol edilir.

3)İşlemcide basit bir ALU tasarlayın. Pahalı işlemciler yanında bunu da pazarla.yukardaki seçneklerden birini uygula. Buna da yardımcı işlemci denir.

4)Yardımcı işlemcilerin görünüşü taklit edilir. Bu da ne zaman bir program kök alma işteminde bulunulursa, yardımcı işlemci için kontrol yapılır, eğer varsa kullanılır yoksa, işletilen program kesilmeye uğratılır ve işletim sisteminin yazılımları aracılığı ile hesaplama yapılır. Buna yazılım taklidi denir.

5)Programcıya eğer yardımcı işlemci olmazsa taklidin olmayacağı söylenir. Bunun için kök almak için kendi algoritmalarını yazacaklardır. Bu da yazılım kütüphaneleri olarak işletilecektirç

Yukarıda ki seceneklerle en hızlı ve en pahalı ALU yapılabileceği gib en yavas ve en ucuzu da yapılabilir. Bundan dolayı çok basit bir bilgisayar çok karmaşık işlemleri yapabilir. Ancak işlemleri birçok basamakla gerçekleştirileeğinden işlem fazla zaman alacaktır 3, 4, 5 seeçenekleri kapsamında.

AMD 64 ve Pentium 4 gibi güçlü işlemciler için en karmaşık işlemler ve fazlası için 1. seçeneği uygularlar. Yavaş ve karmaşık işlemler için ise 2. seceneği uygularlar. Bunlar işlemcide çok karmaşık ALU inşa edilebileceğinden münkündür.

GİRİŞ VE ÇIKIŞ

ALU’nun girişleri işlenecek olan veriler ve kontrol biriminden gelen işletilecek işlemlerin kodlarıdır. Çıkışlar ise işletilen işlemin sonuçlarıdır.

Birçok tasarımda ALU lar giriş yada çıkış olarak statü saymacından durum kodları alır yada statü saymacına durum kodları üretirler. Bu kodlar bazu durunları göstermek için kullanılırlar. İçeri yada dışarı taşma sıfıra bölme gibi…

ALU ve FPU

FPU (kayar nokta birimi) iki değer arasında aritmetik işlemleri gerçekleştirir. Fakat bunlar 2 ye tümleyenden daha karmaşık olan ondalık sayılar işlemlerini gerçekleştirirler.

Bu hesaplamaları yapmak için, FPU’lar birçok harici olmayan ALU içeren devrelerden inşa edilmektedir.

Genellikle tasarımcılar ALU’yu (2 ye tümleyen, ondalık) tamsayı formatındaki işlemleri işleyen devreler olarak nitelendirirken FPU lar kayar nokta ve karmaşık sayı işlemlerini gerçekleştiren devreler olarak nitelendirilirler.