Aritmetik mantık birimi: Revizyonlar arasındaki fark

[kontrol edilmemiş revizyon][kontrol edilmemiş revizyon]
İçerik silindi İçerik eklendi
KamikazeBot (mesaj | katkılar)
k Bot değişikliği Ekleniyor: bg:ALU
Khutuck Bot (mesaj | katkılar)
k Bot: Kozmetik değişiklikler
2. satır:
Aritmetik Mantık Birimi (AMB) aritmetik ve mantık işlemlerini gerçekleştiren bir dijital devredir. AMB en basit işlemi gerçekleştiren mikro denetleyiciden, en karmaşık mikroişlemciye sahip bir bilgisayara kadar tüm işlemcilerin yapıtaşıdır. Modern bilgisayarların içinde bulunan mikroişlemcilerin ve ekran kartlarının içinde çok karışık ve güçlü AMB’ler bulunmaktadır.
AMB kavramına ilk olarak 1945 yılında matematikçi [[John von Neumann]] EDVAC adlı yeni bir bilgisayar üzerine bulgularını anlatan raporunda değinmiştir.
== Ön gelişim ==
1946 yılında, Von Neumann ve meslektaşları Princeton Institute of Advanced Studies (IAS) için bir bilgisayar tasarlamaktaydı.İlerleyen yıllarda bir çok bilgisayar tasarımı için prototip haline gelmiş olan bu bilgisayarda temel matematiksel işlemleri ( toplama, çıkarma, çarpma ve bölme) gerçekleştirme gerekliliğinden dolayı , Von Neumann işe yarar bir bilgisayarın bahsedilen işlemler için özelleşmiş bir yapıya ihtiyaç olduğuna inanıyordu ve buna bağlı olarak AMB’nin bir zorunluluk olduğunu belirtmiştir.
 
== Sayısal Sistemler ==
Bir AMB, işlemlerini diğer dijital devrelerin kullandığı sayı biçimiyle aynı şekilde ifade etmelidir. Modern işlemcilerin tamamına yakını [[İkiye Tümleyen]] gösterimini kullanmaktadır. İkiye tümleyen gösterimi işaretli ve işaretsiz sayıları kolay ve verimli bir şekilde gösterebildiğinden AMB’ler için işlem kolaylığı sağlamaktadır. Eski bilgisayar ise birçok çeşitli sayı gösterim biçimi kullanmaktaydı.
 
== Genel Bakış ==
[[Dosya:2-bit ALU.png|thumb|400px|XOR,VE,VEYA ve toplama işlemi yapan basit bir AMB şeması]]
İşlemciler birçok işlemi bir veya daha çok AMB ile gerçekleştirilir. AMB veriyi giriş yazmaçlarından alır, işletir ve sonucu bir çıkış yazmacına kaydeder. Kontrol birimi AMB’nin veriye hangi işlemi yapacağını seçer. İşlemcinin diğer mekanizmaları yazmaçlar ve hafıza arasında verileri taşır. <ref name="stall">Stallings sayfa 290-291</ref>
 
Şekilde görülen 2-bit AMB’nin A ve B isminde iki tane girişi bulunmaktadır. A[0] & B[0] en anlamsız biti (basamak değeri en düşük biti), A[1] & B[1] en anlamlı biti (basamak değeri en yüksek biti) göstermektedir.
A ve B girişleri soldaki 4 tane mantık kapısına (yukarıdan aşağıya) yönlendirilmektedirler: XOR , VE, VEYA ve XOR.Yukarıdaki 3 mantık kapısı XOR, VE ve VEYA işlemini gerçekleştirirken en son XOR kapısı tam toplayıcının (full adder) giriş kapısıdır.
Son adımda ise istenilen sonuç [[çoklayıcı]] yardımıyla seçilir. Denetim biriminden gelen 3 bitlik işlem kodu (OP) çoklayıcıya hangi girişi seçmesini gerektiğini belirtir.
* İşlem kodu = 000 → XOR
* İşlem kodu = 001 → VE
* İşlem kodu = 010 → VEYA
* İşlem kodu = 011 → Toplama
 
Çoklayıcının geri kalan 4 çıkışı farklı işlemler (çıkarma,çarpma vs.) için boş durumda beklemektedir.Gelen elde(carry-in) ve çıkan elde (carry-out) bir çeşit durum yazmacına bağlanmıştır.
64. satır:
[[Dosya:Sekil_3.JPG|thumb|300px|none|Sekil-3 AMB'de gerçekleşen Aritmetik ve Lojik İşlemler]]
 
=== Temel İşlemler ===
AMB’lerin çoğu aşağıdaki işlemleri gerçekleştirebilir.
* Toplama,çıkarma ve bazı durumlarda çarpma ve bölme işlemleri (çarpma ve bölme AMB’nin bir birimi olacağı gibi AMB’den bağımsız bir birimde olabilir.AMB’de ne kadar çok birim varsa yapısı da o kadar karmaşık olmaktadır.)
* Mantıksal işlemler: ([[VE kapısı|VE]], [[DEĞİL kapısı|DEĞİL]], [[VEYA kapısı|VEYA]], [[ÖZELVEYA kapısı|ÖZELVEYA]])
* Bit kaydırma işlemleri. Bir sayıyı belirtilen bit sayısı kadar sağa veya sola, işaret genişletilerek veya genişletilmeyerek, kaydırmak veya döndürmek.Kaydırmalar sayıyı 2 ile çarpma veya bölme olarak da düşünülebilinir.Çarpma ve bölme işlemlerinde olduğu gibi bu işlemlerde AMB’den bağımsız birim tarafından üstlenilebilir.
 
== Karmaşık İşlemler ==
AMB’ler herhangi bir işlemi yürütecek şekilde tasarlanabilir fakat işlem ne kadar karmaşıksa maliyet artar. Bu maliyet işlemcide kullandığı yer, harcadığı enerji vs. olabilir.
Bu sebepten dolayı bir AMB tasarlayıcısı, tasarımın işlemi istenen hızda yapmasını temin ederken, bu tasarımın uygulama esnasındaki karmaşıklığı ve sarfiyatı ile ilgili ödünleşimi de yapması gerekir. Örneğin bir sayının karekökünü alacak bir AMB tasarlandığını düşünelim.İlgili mühendisin önünde aşağıdaki seçenekler bulunmaktadır:
# Çok fazla karmaşık bir devre tasarlayarak, tek basamakta karekökü hesaplayan bir AMB olabilir.Buna “tek vuruşluk hesaplama (calculation in single cycle)” denir.
# Çok karmaşık bir devre tasarlayarak, karekökü birkaç basamakta hesaplayan bir AMB olabilir.Burada ki fark basamakların arasındaki geçici sonuçlar arka arkaya dizilmiş devrelerden geçerek her basamakta var olan sonuca yeni bir işlem uygulanarak nihai sonuca ulaşılması işlemidir.Bunu bir üretim bandına benzetebiliriz.Bu sayede AMB aynı anda birkaç sayının karekökünü işleme alabilir.AMB’de bulunan basamak sayısı kadar sayı işlenmeye başladıktan sonra her adımda bir sonuç dışarı çıkar ve böylece AMB dolduktan sonra tek vuruşluk işlem yapandan farkı kalmaz.Bu tip işleme “[[boru hattı]] ile hesaplama” denmektedir.
# Karmaşık bir devre tasarlayarak karekök işlemini değişik basamaklarda hesaplayan bir AMB olabilir. Buna “etkileşimli hesaplama” denmektedir ve genelde [[mikroprogramlama]] ile yapılmış karmaşık bir denetim birimi ile gerçekleştirilir.
# İşlemcide basit bir AMB bulundurulur, yukarıdaki seçeneklerden herhangi birini gerçekleştiren yardımcı bir ikinci işlemci, ayrıca ve daha pahalı bir şekilde sisteme eklenebilecek halde satılabilir.
# Programcılara yardımcı ikinci bir işlemci veya [[emülatör]] bulunmadığını söyleyerek, kendi [[algoritma]]larını yazmalarını söylemek.Bu işlem yazılım kütüphanelerinin var olma nedenidir.
# Yardımcı işlemcinin varlığı taklit edilerek, program her karekök işlemini gerçekleştirmek istediğinde eğer varsa yardımcı işlemciyi kullanması, yoksa bir [[kesme]] yaratarak işletim sistemini karekök işlemini herhangi bir yazılımla gerçekleştirmesi yönünde uyarması şeklinde bir çözüm olabilir. Buna [[emülatör|yazılım taklidi]] denir
Yukarıdaki seçenekler en hızlı ve pahalıdan en yavaş ve en ucuza doğru gitmektedir.En basit bilgisayar dahi en karmaşık formülü gerçekleştirebilir fakat basit bilgisayarın var olan işlemi yavaş gerçekleştirmesinin nedeni ,yukarıda belirtilen seçeneklerde olduğu gibi, işlenmesi gerek basamak sayısının artmasıdır.
[[Intel Core]] veya [[AMD64]] gibi güçlü işlemcilerde çok karmaşık AMB’ler bulundurmak mümkün olduğundan; basit işlemler için 1. seçenek, çoğu karmaşık işlemler için 2. seçenek ve aşırı karmaşık işlemler için 3. seçenek kullanmaktadır.
 
== Giriş ve Çıkış ==
AMB’nin girişleri işlenecek veriler ve denetim biriminden gelen hangi işlemin yapılacağını belirten değerlerdir.Çıkışı ise yapılan işlemin sonucudur.
Çoğu AMB tasarımında belirli durumlara göre farklı değerler alan bitler bulunmaktadır bunlara bayraklar denir. Bu bayraklar elde ,taşma, sıfıra bölme vs. gibi olabilir ve AMB’ye giriş ya da çıkış olabilir.<ref name="stall" />
 
== Kayan nokta birimi ==
Kayan nokta birimi de AMB gibi iki değer arasında belirli işlemleri gerçekleştirir fakat üzerinde çalıştığı değerler [[ikiye tümleyen]] ,[[BCD]]’den daha karmaşık olan [[kayan nokta]] gösterimine sahip değerlerdir. Bu işlemleri gerçekleştirmek için kayan nokta biriminin de içinde AMB’ler bulunabilir.
Genel olarak mühendisler ikiye tümleyen, BCD gibi formatlara sahip tam sayı ile aritmetik işlemler yapan birimlere AMB ismini vermektedir. [[Kayan nokta]] veya [[karmaşık sayı]] gibi daha çok bitle gösterilen biçimlerle işlem yapan birimlere daha yaratıcı isimler verilmektedir.
 
== Notlar ==
<!--This article uses the Cite.php citation mechanism. If you would like more information on how to add footnotes to this article, please see http://meta.wikimedia.org/wiki/Cite/Cite.php -->
<div class="references-small">
96. satır:
</div>
 
== Referanslar ==
* {{kitap belirt | ilk=Enoch| son=Hwang| yıl=2006| başlık=Digital Logic and Microprocessor Design with VHDL| yayıncı=Thomson| id=ISBN 0-534-46593-5| url=http://faculty.lasierra.edu/~ehwang/digitaldesign| yazarurl=Enoch Hwang}}
* {{kitap belirt | ilk=William| son=Stallings| yıl=2006| başlık=Computer Organization & Architecture: Designing for Performance 7th ed| yayıncı=Pearson Prentice Hall| id=ISBN 0-13-185644-8| url=http://williamstallings.com/COA/COA7e.html| yazarurl=William Stallings}}
 
== Dış Bağlantılar ==
* [http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=12762&objectType=FILE Karmaşık bir AMB’nin MATLAB benzetimi]
{{bilgisayar-taslak}}
 
[[Kategori:Bilgisayar aritmetiği]]
[[Kategori:Sayısal devreler]]
[[Kategori:Merkezi işlem birimi]]
 
{{bilgisayar-taslak}}
 
[[ar:وحدة الحسابيات والمنطق]]