İçeriğe atla

Aritmetik mantık birimi

Genel AMB gösterim şekli: A ve B işlenen; R çıkış; F denetim biriminden gelen giriş; D ise durum bildiren çıkış

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ı. Bu bilgisayarlarda bire tümleyen, ikiye tümleyen, işaret büyüklüğü formatı ve hatta gerçek ondalık sistem gibi fonksiyonlar da bulunmaktaydı.

Genel bakış

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.[1]

Ş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.

1) Aritmetik ve lojik ünite

İşlemci tarafından gerçekleştirilecek matematiksel ve mantıksal işlemlerin yapıldığı bölümdür.

Aritmetik lojik ünitenin yapısı

Sekil-1 Genel AMB blok yapısı

Bu birime giriş işlemleri, akümülatör kaydedicisiyle bellekten alınan veri arasında veya akümülatörle diğer kaydediciler arasında olabilir. ALU' nun mikroişlemci içerisindeki basitleştirilmiş çalışma biçimi Şekil-2'de görülmektedir.

Sekil-2 AMB'nin Mikroişlemci içinde çalışma biçimi

ALU işlemleri ADDER (toplayıcı) ve SHIFTER (kaydırıcı) denilen iki esas devre ile gerçekleştirilir. Genelde, bu esas devreler ALU olarak anılmaktadır. Ancak bilgileri depolayıcı ve değerlendirici bazı yardımcı devrelerden de yararlanılır. Bu yardımcı devreler:

Akümülatör

Başlangıç ve sonuç bilgilerini depolamak için akümülatör kullanılır. Bazı mikroişlemcilerde akümülatör yerine VERİ KAYDEDİCİ (data reg) kullanılmıştır.

Geçici kaydedici (temporary register)

Bellekten alınan işlem bilgilerinin ilk durak yeri: geçici kaydedicidir.

Bayrak kaydedici (flag register)

Bazı mikroişlemcilerde bayrak kaydedici yerine; ALU tarafından yapılan işlemlerin sonucunu gösteren ve bu sonuçları değerlendirme ortamını yaratan devredir. Bu sonuçlara göre bazı düzeltmeler gerekiyorsa bilgisayar bunları kendi kendine yapabildiği gibi bayrak ekrana çağrılarak bazı yarılarının dışarıdan yapılması da mümkün olmaktadır. Durum kaydedici veya Koşul kodu kaydedici değimleri de kullanılır. Aritmetik lojik işlem birimi ve bu yardımcı devrelerinin tümüne birden ALU grubu denir. Yalnızca ALU denildiğinde ise asıl işlem yürütücü kısım olan ADDER ve SHIFTER amaçlanır.

Kontrol birimi

İşlemciye gönderilen komutların çözülüp (komutun ne anlama geldiğinin tanımlanması) işletilmesini sağlar. İşlemci içindeki birimlerin ve dışındaki birimlerin eş zamanlı olarak çalışmasını sağlayan kontrol sinyalleri bu birim tarafından üretilir.

Aritmetik lojik ünitenin fonksiyonları

Aritmetik işlemler denilince başta toplama, çıkarma, bölme ve çarpma; mantık işlemleri denilince AND, OR EXOR ve NOT gibi işlemler akla gelir. Komutlarla birlikte bu işlemleri, mantık kapılarının oluşturduğu toplayıcılar, çıkarıcılar ve kaydıran kaydediciler gerçekleştirirler. Bloklaştırılmış bu devreler bir dâhili veri yolu vasıtasıyla birbirlerine, bir başka veri yolu ve tamponlar vasıtasıyla kaydedicilere ve zamanlama-kontrol birimine bağlanmıştır.

ALU' da gerçekleşen bütün bu işlemler kontrol sinyalleri vasıtasıyla Zamanlama ve Kontrol Biriminin gözetiminde eşzamanlı olarak yapılır. Mikroişlemcinin temel elemanlarından biridir. ALU iki parçadan oluşur: Aritmetik ve lojik üniteler.

a) Aritmetik ünite: Toplama, çıkarma, artırma, azaltma gibi işlemleri yapar.

b) Lojik ünite: AND, OR, NOT gibi işlemleri gerçekleştirir.

Sekil-3 AMB'de gerçekleşen Aritmetik ve Lojik İşlemler

Temel iş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, DEĞİL, VEYA, Ö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 iş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:

  1. Ç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.
  2. Çok karmaşık bir devre tasarlayarak, karekökü birkaç basamakta hesaplayan bir AMB olabilir. Buradaki 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.
  3. 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.
  4. İş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.
  5. Programcılara yardımcı ikinci bir işlemci veya emülatör bulunmadığını söyleyerek, kendi algoritmalarını yazmalarını söylemek. Bu işlem yazılım kütüphanelerinin var olma nedenidir.
  6. 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 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 gibi olabilir ve AMB'ye giriş ya da çıkış olabilir.[1]

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

  1. ^ a b Stallings sayfa 290-291

Kaynakça

Dış bağlantılar

İlgili Araştırma Makaleleri

Komut kümesi mimarisi, CPU'nun yazılım tarafından nasıl kontrol edileceğini tanımlayan bilgisayar soyut modelinin bir parçasıdır. ISA, işlemcinin ne yapabileceğini ve bunu nasıl yapacağını belirterek donanım ve yazılım arasında bir arayüz gibi davranır.

MIPS, Microprocessor without Interlocked Pipeline Stages, MIPS teknolojileri adlı firma tarafından 1985 yılında geliştirilmiş indirgenmiş komut kümesi türü bir mikroişlemci mimarisidir.

<span class="mw-page-title-main">Merkezî işlem birimi</span> bir bilgisayar programının talimatlarını, talimatlar tarafından belirtilen temel aritmetik, mantıksal, kontrol ve giriş/çıkış (G/Ç) işlemlerini gerçekleştirerek yürüten ve diğer bileşenleri koordine eden bir bilgisayar içindeki elektro

Merkezî işlem birimi, dijital bilgisayarların veri işleyen ve yazılım komutlarını gerçekleştiren bölümüdür. Çalıştırılmakta olan yazılımın içinde bulunan komutları işler. Mikroişlemciler ise tek bir yonga içine yerleştirilmiş bir merkezî işlem birimidir. 1970'lerin ortasından itibaren gelişen mikroişlemciler ve bunların kullanımı, günümüzde MİB teriminin genel olarak mikroişlemciler yerine de kullanılması sonucunu doğurmuştur.

i386

Intel 80386 veya i386, 80286'dan sonraki Intel mikroişlemcisi.

<span class="mw-page-title-main">PowerPC</span>

PowerPC, AIM olarak bilinen Apple-IBM-Motorola ittifakının 1991'de geliştirdiği bir RISC mikroişlemcisidir. Genel olarak kişisel bilgisayarlar içindir. PowerPC merkezi işlem birimleri (CPU) gömülü (embedded) ve yüksek performans işlemcileri olduğu için popüler olmuştur. PowerPC 1990'da AIM' in ve PReP'in temel taşı oldu, fakat mimari Apple'ın Macintosh'unun 1994–2006 modellerinde daha başarılı bulundu.

<span class="mw-page-title-main">Mikroişlemci</span> ana işlem biriminin fonksiyonlarını tek bir yarı iletken tümdevrede birleştiren programlanabilir sayısal elektronik bileşen

Mikroişlemci, işlemci olarak da bilinen, merkezî işlem biriminin (CPU) fonksiyonlarını tek bir yarı iletken tüm devrede (IC) birleştiren programlanabilir bir sayısal elektronik bileşendir.

<span class="mw-page-title-main">Merkezî işlem birimi tasarımı</span>

Merkezî işlem birimi tasarımı bilgisayarın temel bileşenlerinden birisi olan Merkezî işlem birimini (MİB) etkin kullanmayı yönelik bir tasarımdır. MİB bilgisayar donanımının temel bileşenlerinden birisidir. İşlemcisi olmayan bir bilgisayar düşünülemez. Bu yüzden işlemcinin tasarımı ne kadar iyi olursa sistem de o derece hızlı olacaktır. İşlemciyi hızlandırmanın değişik yolları vardır. Bunlardan bazıları:

  1. Buyrukların paralel çalışmasını sağlamak
  2. Çok vuruşluk işlemciler kullanmak
  3. Boru hattı kullanmak
  4. Çoklu işleme kullanmak
<span class="mw-page-title-main">Itanium işlemcisi</span>

Itanium işlemcisi, Intel firmasının 64-bit işlemci ailesinden olup IA-64 mimarisi kullanan işlemcilerinin devamı olarak bilinir. Itanium ve Itanium2 olarak sunulan bu işlemci ilk olarak Ekim 2001'de piyasaya sürülmüştür. Itanium işlemcilerin asıl hedefi yüksek performansa sahip bilgisayarlardı. Bu işlemcinin mimarisinin gelişimi ilk olarak Hewlett-Packard tarafından yapılmıştır ve devamında ise Intel ve Hewlett-Packard ortak olarak birlikte gerçek Itanium mimarisini geliştirmişlerdir.

Mikroişlemcilerde kural dışı durumlar, programların çalıştırılması esnasında verilen komutlar neticesinde oluşan hatalardır. Bu hatalar nedeniyle program istenilen şekilde çalışmaz. Hatta işlemcinin kilitlenmesine bile sebep olabilir. Bu tür durumlar normal bir işleyiş olmadığından kural dışı durum oluşturur.

Sırasız yürütüm ya da Düzensiz yürütme, bilgisayar mühendisliğinde, günümüz yüksek performanslı işlemcilerinde kullanılan, yüksek gecikmeler sebebiyle harcanan işlemci döngülerini kullanıma sunan bir talimat yürütme yaklaşımıdır.

Çarpma algoritmaları, çarpma işlemi için gereken sonlu işlemler kümesidir. Çarpma işlemi, aritmetik işlemlerinde sık kullanılan ve bilimsel uygulamalarda önemli rolü olan, temeli aslında toplama ve kaydırma işlemlerine dayanan aritmetiksel bir işlemdir. Toplama işleminden daha karmaşıktır ve daha çok zaman alır aynı zamanda daha çok alan gerektirir.

<span class="mw-page-title-main">Yazmaç öbeği</span>

Yazmaç öbeği, bir merkezi işlem birimindeki işlemci yazmaçlarının bir dizisini ifade etmektedir. Modern tümleşik devre tabanlı yazmaç öbekleri genellikle çok portlu hızlı durağan rastgele erişimli bellekleri (SRAM) kullanılarak sistemlere tümleştirilmektedirler. Bu tür rastgele erişimli bellekleri kullandıkları okuma ve yazma girişlerine göre ayrılır, fakat normal çok portlu durağan rastgele erişimli bellekler okuma ve yazma işlemlerini aynı girişleri kullanarak gerçekleştirebilmektedirler.

<span class="mw-page-title-main">Alpha 21064</span>

Alpha 21064, Alpha(Alpha APX olarak ortaya çıkan) buyruk kümesi mimarisini(ISA) oluşturan Digital Equipment Corporation tarafından geliştirilmiş bir mikroişlemcidir. 1994 yılında ismi değiştirilmeden önce DECchip 21064 olarak bilinirdi.Ayrıca EV4 kod adıyla da bilinmektedir. 1992 şubat ayında tanıtılmış ve aynı yıl eylül ayında yeni sürüm olanağı sağlanmıştır.21064, ilk ticari Alpha ISA uygulamasıdır. Ayrıca Ekim 1993'te, 21064'ten türeyen Alpha 21064A ticari amaçla kullanılan ilk mikroişlemci olmuştur.

<span class="mw-page-title-main">Alpha 21164</span>

Alpha 21164, aynı zamanda Alpha buyruk kümesi mimarisini geliştirmiş olan Digital Equipment Corporation tarafından geliştirilmiş, EV5 kod adıyla da bilinen bir mikroişlemcidir. Alpha 21164 Digital'in en çok satışı yapılan mikroişlemcisi Alpha 21064A'yı takiben 1995 yılı Ocak ayında tanıtılmıştır. Onu 1998 yılında 21264 izleyecektir.

<span class="mw-page-title-main">Alpha 21264</span>

Alpha 21264 1996 yılı Ekim ayında Digital Equipment Corporation tarafından indirgenmiş komut takımı bilgisayarı(RISC) mikroişlemcisi olarak tanıtılmıştır. 21264 Alfa işlemcisi Komut kümesi ile tanımlanmıştır.

İşlem kodu, bilgisayar teknolojisinde makine dili komutunun, gerçekleştirilecek işlemi belirten kısmıdır. Bunların özellikleri ve biçimi, söz konusu işlemcinin komut kümesinde ortaya koyulur. Bir komutta, normalde işlem kodundan yanı sıra üzerinde işlem gerçekleştirilmesi gereken bir veya daha fazla belirteçleri vardır. Fakat bazı işlemlerde örtük (implicit) işlem kodları olabilir veya hiçbir işlem kodu olmayabilir. İşlem kodları ve işlenen (operand) belirteçleri için neredeyse tekdüze alanları olan komut setleri vardır. Bazılarında ise daha karmaşık ve çeşitli uzunluk yapıları vardır.

<span class="mw-page-title-main">BCD kodu</span>

BCD kodu, bilgisayar ve elektronik sistemlerinde onluk tabandaki (decimal) sayıların ikilik tabana (binary) dönüştürülmesi için kullanılan sayısal kodlama metodudur. Bu dönüştürme işlemi yapılırken öncelikle sayının her bir basamağı tek tek ikilik tabana çevrilir ve ardından her basamağın karşılık geldiği binary değerler sırasıyla birleştirilerek sayının BCD Kodu ile gösterimi elde edilir.

NetBurst, İntel'in 2000 yılında piyasaya sürdüğü Pentium 4 işlemci markasının mikromimarisine verilen isimdir. 2006 Temmuz'unda Core mikromimarisinin çıkışına kadar İntel işlemcilerin mikromimarisi olmuştur. Selefi P6 mikromimarisine göre en önemli özelliği derin boru hattı yapılanmasıyla avantaj sağladığı yüksek saat sıklığıdır. Temel olarak dört ana parçadan oluşmaktadır: Sıralı(ing. In-order) Ön-Uç(ing. Front-end), Sırasız(ing. out-of-order) yürütme birimi, Tam sayı ve kayan nokta yürütme birimleri ve bellek altdizgesi.

<span class="mw-page-title-main">Motorola 6800</span>

6800 Motorola tarafından 1974 yılında tasarlanan 8 bitlik bir mikroişlemcidir. MC6800 mikroişlemcisi M6800 Mikro bilgisayar sisteminin parçasıydı. Sistem aynı zamanda seri ve paralel arayüzler sahipti; ICs, RAM, ROM ve diğer destek çipleri gibi. Önemli tasarım özelliği M6800 ailesi IC'lerin diğer mikroişlemcilerin çoğunluğu üç gerilime ihtiyaç duyduğu halde yalnızca bir beş voltluk güç kaynağı gerektirmesiydi. M6800 Mikrobilgisayar Sistemi Mart 1974'te tam üretime geçti.

<span class="mw-page-title-main">Motorola 6809</span>

Motorola 6809, Motorola'nın bazı 16 bit özelliklerine sahip 8 bitlik bir mikroişlemcisidir. Terry Ritter ve Joel Boney tarafından tasarlandı ve 1978'de tanıtıldı. Hem selefi Motorola 6800 hem de ilgili MOS Technology 6502'ye göre büyük bir ilerleme, TRS-80 Renkli Bilgisayar ve Dragon 32/64 ev bilgisayarlarında, Vectrex oyun sisteminde ve Star Wars dahil 1980'lerin başındaki atari makinelerinde kullanım buldu. Savunmacı, Robotron: 2084, Joust ve Gyruss. Fairlight CMI dijital ses iş istasyonunun Seri II'si ve Konami'nin Time Pilot '84 arcade oyununun her biri çift 6809 işlemci kullanır.