Elektronik

Bilgisayar Organizasyonu Ünite 3 : BOOL CEBRİ VE DİJİTAL MANTIK

3. BOOL CEBRİ VE DİJİTAL MANTIK

Giriş

George Boole, Abraham Lincoln Amerika Birleşik Devletleri’nde siyasete atıldığı sırada İngiltere’de yaşıyordu. Boole, cebirsel sembolleri kullanarak mantıksal süreçleri ifade etmenin yollarını geliştiren, böylece sembolik mantık veya Bool cebri olarak bilinen bir matematik dalı yaratan bir matematikçi ve mantıkçıydı. Bool cebirinin John Vincent Atanasoff tarafından bilgisayarlara uygulanması uzun zaman almadı. Atanasoff doğrusal cebir denklemleri çözmek için Pascal ve Babbage tarafından kullanılan aynı teknolojiye dayalı bir makine yapmaya çalışıyordu. Atanasoff, birçok başarısız denemeden sonra araba yolculuğuna çıkmaya karar verdi. O sırada Ames, Iowa’da yaşıyordu, ancak ne kadar ileri gittiğini fark etmeden önce kendini evinden 300 km uzakta Illinois’de buldu.

Atanasoff o kadar uzağa gitmek istememişti, ancak bu yolculuk sırasında fizik ve matematik geçmişine dayanarak ve önceki makinesinin başarısızlıklarına odaklanarak, makinesinin yeni tasarımında mekanik parçalar yerine elektriği kullanmaya karar verdi.

Elektriği kullandığı için, 10 tabanı yerine 2lik taban rakamlarını kullanacaktı (sebebi anahtarların yalnızca “açık” veya “kapalı” olarak iki konuma sahip olmasıydı) ve sonuçta analogdan ziyade dijital bir makine ortaya çıktı.

Hafıza için, elektrik yüklerini depolayabilme özelliklerinden dolayı kapasitörleri (kondansatörler) kullandı.

Yeni tasarlanan makine, hesaplamalarını önceki tüm hesaplama makinelerinin kullandığı numaralandırma metodunun aksine Atanasoff’un “doğrudan mantıksal eylem” (Boole cebri eşdeğeri bir yapı)  olarak adlandırdığı metod ile yapacaktı.

Atanasoff, Claude Shannon’un 1938’de iki değerli Bool cebirinin, iki değerli elektrik anahtarlama devrelerinin işleyişini tanımlayabildiğini kanıtladığının farkında değildi. Bu nedenle deneme yanılma yoluyla kendi doğrudan mantıksal eylem metodunu tasarlamıştı. Bugünse, modern hesaplama sistemlerinin tasarımında Bool cebri uygulamasını görüyoruz. Bu nedenle bu bölümde Bool mantığı ve bunun dijital bilgisayarlarla ilişkisi üzerinde durulacaktır.

Bu bölüm, mantık (lojik) tasarımının temellerine bir giriş niteliğindedir. Bool cebrinin ve bu cebrin mantık kapıları ve temel dijital devrelerle olan ilişkisini kapsar. Bu bölümde göreceğiniz üzere Bool mantığı ile herhangi bir bilgisayar sisteminin gerçek fiziksel bileşenleri arasında güçlü bir ilişki vardır. Bool mantığının çeşitli bilgisayar sistemi bileşenlerinin tasarımını nasıl etkilediğini anlamak, programlama açısından herhangi bir bilgisayar sistemini daha etkili bir şekilde kullanmanıza olanak tanır.

3.1. Bool Cebri

Bool cebrinde, yalnızca iki değer alabilen nesneler kullanılabilir. Herhangi bir değer çifti alabilmesine rağmen genellikle doğru (True) veya yanlış (False) değerlerini alır. Bilgisayarlar yalnızca “açık” veya “kapalı” konumu olan anahtarlama elemanlarından oluştuğundan, bilgisayarlarda dijital bilgileri temsil etmek için Bool cebri kullanmak oldukça mantıklı bir yoldur. Dijital devrelerde düşük (low) ve yüksek (high) voltajlar kullanılır, ancak anlaşılabilir olması için 0 ve 1 kullanılır. Yaygın olarak 0 dijital değeri yanlış ve 1 dijital değeri doğru olarak yorumlanır.

3.1.1. Bool İfadeleri

Bool cebri ikili değer alan nesneler veya değişkenler üzerinde gerçekleştirilebilen işlemlere sahiptir. Değişkenler ve operatörler kullanılarak Bool ifadeleri elde edilir. Bir Bool işlevi tipik olarak bir veya daha fazla giriş değerine sahiptir ve bu giriş değerlerine bağlı olarak {0,1} aralığında bir sonuç verir.

Bir Bool operatörü, giriş değerleri ve bu girişlerin tüm olası kombinasyonlarını listeleyen bir tablo kullanılarak tanımlanabilir. Bu tabloya doğruluk tablosu denir. En yaygın Bool operatörleri VE (AND), VEYA (OR) ve DEĞİL (NOT) operatörleridir.

VE mantıksal operatörü genellikle bir nokta ile veya hiç sembol olmadan temsil edilir. Örneğin, xy Bool ifadesi, x · y ifadesine eşdeğerdir ve “x ve y” olarak okunur. xy ifadesi genellikle bir Bool çarpımı olarak anılır. VE operatörün işlevi, Tablo 3.1’deki doğruluk tablosunda görülmektedir. xy ifadesinin sonucu yalnızca her iki giriş de 1 olduğunda 1, aksi takdirde 0 olur. Tablodaki her satır farklı bir Bool ifadesini temsil eder ve x ve y için tüm olası değer kombinasyonları tablodaki satırlarla temsil edilir.

VEYA Bool operatörü ise artı işaretiyle temsil edilir ve x + y ifadesi “x veya y” olarak okunur. x + y’nin sonucu, yalnızca her iki girdi değeri 0 olduğunda 0’dır. x + y ifadesi genellikle bir Boole toplamı olarak anılır. VEYA için doğruluk tablosu Tablo 3.2’de gösterilmektedir.

Geriye kalan DEĞİL mantıksal operatörü, genellikle değişken üzerinde bir çizgi () veya kesme işareti (x’) ile temsil edilir. DEĞİL operatörü doğruluk tablosu Tablo 3.3’te gösterilmektedir.

Bool cebri ikili değişkenlerle ve bu değişkenler üzerindeki mantıksal işlemlerle ilgilenir. Bu iki kavramı birleştirerek, Bool değişkenlerinden ve birden çok mantık operatöründen oluşan Bool ifadeleri oluşturabiliriz. Örneğin:

 ifadesi, üç Bool değişkeninden (x, y, z) ve VEYA ve DEĞİL mantıksal operatörlerinden oluşan bir Bool ifadesidir. Bool cebrinde en yüksek işlem önceliği DEĞİL operatöründedir. Sırasıyla VE ve VEYA operatörleri gelir. Örneğimizdeki F fonksiyonu için, önce y’nin değili bulunur sonra    ve z’ye VE uygulanır. Son olarak bu işlemin sonucunu x ile VEYA işlemine sokarız.

Bu ifade bir doğruluk tablosu da kullanılarakta gösterilebilir. Bunun gibi veya daha karmaşık olan işlevler için doğruluk tablosu oluştururken, işlevin son haline ulaşana kadar işlevin farklı parçalarını temsil eden farklı sütunlar oluşturmak gerekir. F fonksiyonumuzun doğruluk tablosu Tablo 3.4’te gösterilmektedir.

Doğruluk tablosundaki son sütun, tüm olası x, y ve z kombinasyonları için işlevin değerlerini gösterir. F fonksiyonunun gerçek doğruluk tablosu sadece ilk üç sütun ve son sütundan oluşur. Renkli sütunlar, nihai cevabımıza ulaşmak için gerekli ara adımları gösterir. Doğruluk tablolarının bu şekilde oluşturulması, girdi değerlerinin tüm olası kombinasyonları için işlevin değerlendirilmesini kolaylaştırır.

3.1.2. Bool Özdeşlikleri

Bool ifadeleri genellikle sadeleştirilmiş biçimde olmazlar. Cebirsel olarak 2x + 6x gibi bir ifade en basit halinde değildir; bu ifade 8x’e sadeleştirilebilir (daha az veya daha basit terimlerle gösterilir). Bool ifadeleri de sadeleştirilebilir, ancak Bool cebri için normal cebir yerine yeni kurallara ve özdeşliklere ihtiyaç duyulur. Bool ifadeleri ve tekil Bool değişkenleri için geçerli olan bu özdeşlikler Tablo 3.5’te listelenmiştir. Sondaki kural hariç hepsinin hem VE formuna hem de bir VEYA formuna sahip olduğuna dikkat edin. Bu, dualite ilkesi olarak bilinir.

Etkisiz eleman kuralı, herhangi bir Bool değişkeninin 1 ile VE’lenmesi veya 0 ile VEYA’lanması durumunda sonucun değişkenin kendisi olduğunu belirtir (1 VE için birim öğesidir, 0 VEYA için birim öğesidir). Hiçlik kuralı, 0 ile VE’lenmiş herhangi bir Bool değişkeninin 0 olduğunu ve 1 ile VEYA’lanmış değişkeninin her zaman 1 olduğunu belirtir. Etkisizlik kuralı, bir değişkenin kendisi ile VE’lenmesi veya VEYA’lanması durumunda sonucun yine değişkenin kendisi olduğunu belirtir. Tamamlayıcılık kuralı, bir değişkenin tersi ile VE’lenmesi sonucunda 0, VEYA’lanması durumunda 1 ürettiğini belirtir

Değişme ve birleşme kurallarını genel cebirden hatırlarsınız. Bool değişkenleri, nihai sonucu etkilemeden yeniden sıralanabilir (değiştirilebilir) ve yeniden gruplanabilir. Dağılma kuralı, VEYA’nın VE’ye nasıl dağıldığını ve bunun tersini gösterir.

Yutma kuralı ve DeMorgan kuralı ilk bakışta kolay anlaşılamasalarda, çeşitli ifadeler için bir doğruluk tablosu oluşturarak daha kolay anlayabiliriz. Tablo 3.6, DeMorgan Yasasının VE için eşitliğin hem sol tarafı hem de sağ tarafı için doğruluk tablosunu göstermektedir.

Çifte tersleme kuralı, bir değişkenin tersinin tersinin yine kendini verdiğini belirtir. Yeni başlayanların Boole mantığıyla çalışırken yaptığı en yaygın hatalardan biri, aşağıdaki gibidir:

   Bu geçerli bir eşitlik değildir!

DeMorgan Yasasına göre, yukarıdaki ifade yanlıştır ancak yapması çok kolay ve kaçınılması gereken bir hatadır.

3.1.3. Bool İfadelerinin Sadeleştirilmesi

Cebir dersinde öğrendiğimiz cebirsel özdeşlikler, cebirsel ifadeleri (10x + 2y-x + 3y gibi) en basit biçimlerine (9x + 5y) indirgememize izin verir. Bool özdeşlikleri, Bool ifadelerini benzer bir şekilde sadeleştirmek için kullanılabilir. Bu özdeşlikleri aşağıdaki örneklerde inceleyelim.

ÖRNEK 3.1

Fonksiyonumuz F(x, y) = xy + xy olsun. Etkisizlik kuralına göre bir değişken kendisi ile VEYA’landığında sonuç yine kendisidir. xy ifadesini bir Bool değişkeni olarak ele alırsak, sonuç yine xy ‘nin kendisi olur. Bu nedenle, F (x, y) = xy + xy = xy.

ÖRNEK 3.2

fonksiyonunu sadeleştirelim,

 (Dağılma)

 (Tamamlayıcı)

  (Etkisiz eleman)

Bazen, sadeleştirme, önceki örneklerde olduğu gibi oldukça basittir. Ancak, sıradaki örnekte göreceğimiz gibi, bazen özdeşlikleri kullanmak zorlayıcı olabilir.

ÖRNEK 3.3

metin içeren bir resim

Açıklama otomatik olarak oluşturuldu

İşlemleri basitleştirmek için ek terimler ekledik. Ne yazık ki, bir Bool ifadesini sadeleştirirken özdeşlikleri kullanmak için tanımlanmış bir kurallar dizisi yoktur; sadece deneyimle gelen bir şeydir. Bool ifadelerini sadeleştirmek için kullanılabilecek başka yöntemler de vardır; bunlardan daha sonra bu bölümde bahsedeceğiz.

Bool eşitliklerini çözümlemek için yukarıda ki özdeşlikleride kullanabiliriz. Örneğin  eşitliğini çözümlemek istersek ispatını tablo 3.7 de görebiliriz.

İki Bool ifadesinin eşitliğini kanıtlamak için, her biri için doğruluk tabloları da oluşturabilir ve karşılaştırabilirsiniz. Doğruluk tabloları aynıysa ifadeler eşittir.

3.1.4. Bool Tümleyeni (Complements)

Örnek 3.1’de gördüğünüz gibi, Bool özdeşlikleri yalnız olmayan Bool değişkenlerine (sadece x gibi bir değişkene uygulanmaz) veya Bool ifadelerine uygulanabilir (xy’yi bir Bool değişkeni olarak ele aldık ve sonra etkisizlik kuralını uyguladık). Aynısı Bool operatörleri için de geçerlidir. Yaygın olarak kullanılan diğer bir Bool operatörü, DEĞİL (NOT) operatörüdür ve bu operatör ifadenin tümleyenini verir. İleride bir Bool fonksiyonu ile onun elektronik devreler kullanan fiziksel uygulaması arasında bire bir benzerlik olduğunu göreceğiz. Çoğunlukla, işlevin kendisinden tümleyenini uygulamak daha ucuz ve daha az karmaşıktır. Bu nedenle, DEĞİL işlemi oldukça kullanışlıdır.

Bir Bool işlevinin tümleyenini bulmak için DeMorgan yasası kullanılır. Bu yasanın VEYA hali şu şekildedir:  ve aşağıda görüldüğü gibi kolaylıkla üç ya da daha fazla değişkenli hale getirilebilir.

 olsun, o halde

Tekrar DeMorgan kuralını uygularsak,

    buluruz.

Eğer  ise  olur. Dualite ilkesini uygularsak,   elde ederiz.

Bir Bool ifadesinin tümleyenini bulmak için, her değişkeni kendi tümleyeni ile değiştiririz (x, ile değiştirilir). VE’leri ve VEYA’ları birbirleri ile değiştiririz. Aslında, DeMorgan Yasasının bize yapmamızı söylediği şey tam olarak budur. Örneğin, ‘nin tümleyeni ’dir.

Bir Bool ifadesinin tümleyenini bulmak için kullanılan bu kuralın doğru olduğunu, hem ifadenin hem de tümleyeninin doğruluk tablolarını inceleyerek doğrulayabiliriz. Herhangi bir ifadenin tümleyeni, bir doğruluk tablosu olarak temsil edildiğinde, orijinal işlevin 1’lere sahip olduğu her yerde çıktı için 0’lara ve orijinal işlevin 0’lara sahip olduğu yerlerde 1’lere sahip olmalıdır. Tablo 3.8,  ve tümleyeni için doğruluk tablolarını göstermektedir. Renkli kısımlar F ve  için nihai sonuçları gösterir.

3.1.5. Bool İşlevlerinin (Fonksiyon) Gösterimi

Bir Bool işlevini göstermenin birçok farklı yolu olduğunu gördük. Örneğin, doğruluk tablosu kullanabilir veya birçok farklı Bool ifadesinden birini kullanabiliriz. Aslında, mantıksal olarak birbirine eşdeğer olan sonsuz sayıda Bool ifadesi vardır. Aynı doğruluk tablosu ile temsil edilebilen iki ifade mantıksal olarak eşdeğer kabul edilir. Örnek 3.4’e bakalım.

ÖRNEK 3.4

 olsun. Etkisizlik kuralı bize iki ifadeninde aynı olduğunu bildirdiği için F işlevini   olarak da gösterebiliriz. Ayrıca dağılma özelliğini kullanarak F fonksiyonunu   şeklinde de gösterebiliriz.

Mantık (lojik) tasarımcıları Bool işlevlerini belirlerken olası karışıklıkları ortadan kaldırmak için, standartlaştırılmış bir form kullanırlar. Herhangi bir Bool işlevi için, benzersiz bir standartlaştırılmış form vardır. Ancak, tasarımcıların kullandığı farklı “standartlar” vardır. En yaygın iki tanesi, çarpımların toplamı formu ve toplamların çarpımıdır.

Çarpımların toplamı formunda, verilen ifade VE’lenmiş (çarpılmış) değişkenlerin VEYA’lanması (toplanması) biçiminde olmalıdır.  fonksiyonu, çarpımların toplamı biçimindedir. fonksiyonu, çarpımların toplamı biçiminde değildir. Çarpımların toplamı biçimine getirmek için x değişkenini F2‘de dağıtmak üzere dağılma kuralını uygularız ve sonuçta  ifadesi ortaya çıkar.

Toplamların çarpımı biçiminde belirtilen Bool ifadeleri, birlikte VE ile gösterilen VEYA’lanmış değişkenlerden oluşur.  fonksiyonu, toplamların çarpımı şeklindedir. Toplamların çarpımı gösterimi, genellikle Bool ifadesi yanlış (False) değer döndürdüğünden daha fazla durumda doğru (True) değer döndürdüğünde tercih edilir. F1, işlevinde durum böyle değildir, bu nedenle çarpımların toplamı formuyla çalışmak ve sadeleştirmek genellikle daha kolaydır, bu nedenle bu formu yalnızca aşağıdaki bölümlerde kullanıyoruz.

Herhangi bir Bool ifadesi, çarpımların toplamı biçiminde temsil edilebildiği gibi doğruluk tablosu olarak da temsil edilebildiğinden, bu doğruluk tablosu aynı zamanda çarpımların toplamı biçiminde de temsil edilebilir. Aşağıdaki örnekte gösterildiği gibi, bir doğruluk tablosunu çarpımların toplamı formuna dönüştürmek oldukça kolaydır.

ÖRNEK 3.5

Basit bir majority fonksiyonu (en basit tanımıyla n adet girişli ve tek çıkışlı bir fonksiyon) düşünelim. Üç girişli olan fonksiyonumuz, girişlerinin yarısından azı 1 ise 0 ve en az yarısı 1 ise 1 çıktı vermektedir. Tablo 3.9, majority fonksiyonumuz için doğruluk tablosunu üç değişken üzerinden göstermektedir.

Doğruluk tablosunu çarpımların toplamı haline dönüştürmek için, soruna tersten bakarak başlarız. x + y ifadesinin 1’e eşit olmasını istiyorsak, ya x ya da y (ya da her ikisi) 1’e eşit olmalıdır. xy + yz = 1 ise, ya xy = 1 ya da yz = 1 (ya da her ikisi) olur. Bu mantığı tersten kullanarak ve Örnek 3.5’e uygulayarak, x = 0, y = 1 ve z = 1 olduğunda fonksiyonun 1 çıktısı vermesi gerektiğini görürüz. Bunu sağlayan çarpım ‘dir. Bir diğer 1 çıktı oluşumu, x = 1, y = 0 ve z = 1 olduğu zamandır. 1 çıktısını garanti eden çarpım terimi ‘dir. İhtiyacımız olan üçüncü çarpım terimi ve sonuncusu da xyz’dir. Özetle, herhangi bir Bool ifadesi’nin doğruluk tablosunu kullanarak çarpımlar toplamı ifadesi oluşturmak için, o satırdaki çıktı değişkeninin değerinin 1 olduğu her satıra karşılık gelen girdi değişkenlerinden oluşan bir çarpım terimini oluşturmalısınız. Her çarpım teriminde, o satır için 0 olan tüm değişkenleri DEĞİL’lememiz gerekir.

Majority fonksiyonumuz, çarpımların toplamı biçiminde  şeklinde ifade edilebilir. Lütfen bu ifadenin en basit biçimde olmayabileceğini unutmayın. Çarpımların toplamı ve toplamların çarpımı standart biçimleri, bir Bool işlevini ifade etmenin eşdeğer yollarıdır. Bir form, Bool özdeşlikleri yardımı ile diğerine dönüştürülebilir. İster çarpımların toplamı isterse toplamların çarpımı olsun, ifade en sonunda en basit şekline dönüştürülmelidir, bu da ifadeyi minimum terim sayısına indirgemek anlamına gelir. Pekala ifadeler neden basitleştirilmelidir? Bir sonraki bölümde göreceğimiz gibi, bir Bool ifadesi ile onun elektrik devrelerine uygulanmış hali arasında bire bir uyuşma vardır. İfadedeki gereksiz terimler, fiziksel devrede gereksiz bileşenlere yol açar ve bu da sonuçta optimum olmayan bir devre elde etmemize neden olur.

3.2. Lojik Kapılar

Şimdiye kadar doğruluk tabloları ve Bool ifadeleri kullanarak gördüğümüz VE, VEYA ve DEĞİL mantıksal operatörleri soyut anlam taşırlar, fiziksel özellikleri yoktur. Bilgisayarda aritmetik işlemleri gerçekleştiren veya seçimleri yapan fiziksel bileşenler veya dijital devreler, kapılar adı verilen öğelerden oluşurlar. Kapılar, daha önce gördüğümüz temel mantık işlevlerini fiziksel olarak yerine getirirler. Mantık kapıları, dijital tasarımın temel yapı taşlarıdır. İki değerli sinyallerin (1 veya 0 gibi) çeşitli işlevlerini hesaplayan küçük, elektronik cihazlardır. Daha basit bir ifadeyle, bir kapı Bool işlevlerini uygulayan elektronik cihazdır. Kullanılan teknolojiye göre fiziksel olarak bir kapı oluşturabilmek için, bir ila altı veya daha fazla transistör kullanılır. Özetlemek gerekirse, bir bilgisayarın temel fiziksel bileşeni transistördür; temel mantık unsuru kapıdır.

3.2.1. Lojik Kapı Sembolleri

Öncelikle en temel üç kapıyı inceleyelim. Bunlar VE, VEYA ve DEĞİL mantıksal operatörlerine karşılık gelir. Bu Bool operatörlerinin her birinin işlevsel davranışını önceki kısımlarda gördük. Şekil 3.1 her bir operatöre karşılık gelen kapının görsel temsilini vermektedir.

Değil kapısının çıkışında daire bulunur. Bu daire tümleyen operatörünü temsil eder. Diğer bir yaygın kapı, x⊕y Bool ifadesi ile gösterilen özel-VEYA (XOR) kapısıdır:. Giriş değerlerinin her ikisi de eşitse XOR yanlıştır, aksi halde doğrudur. Şekil 3.2, XOR için doğruluk tablosunun yanı sıra davranışını belirten mantık diyagramını gösterir.

3.2.2. Genel Amaçlı Kapılar

Diğer iki kapı, sırasıyla VE ve VEYA için tümleyici çıktı üreten VE-DEĞİL (NAND) ve VEYA-DEĞİL (NOR)’dir. Her kapının, gösterimi için kullanılabilen iki farklı sembolü vardır. Şekil 3.3 ve 3.4 de NAND ve NOR kapılarının sembolleri ve işlevsel davranışlarını açıklamak için doğruluk tabloları verilmiştir.

Herhangi bir elektronik devre yalnızca NAND kapıları kullanılarak inşa edilebildiğinden NAND kapısı genellikle çok amaçlı bir kapı olarak değerlendirilir. Şekil 3.5 de sadece NAND kapıları kullanılarak elde edilmiş bir VE kapısı, bir VEYA kapısı ve bir DEĞİL kapısı gösterilmektedir.

Peki neden zaten var olan VE, VEYA ve DEĞİL kapılarını kullanmıyoruz? Herhangi bir devreyi oluşturmak için yalnızca NAND kapılarını kullanmanın iki nedeni vardır. İlk olarak, NAND kapılarının üretimi diğer kapılara göre daha az maliyetlidir. İkincisi ise karmaşık entegre devreleri oluştururken, farklı blok kombinasyonlarından (VE, VEYA ve DEĞİL kombinasyonu gibi) ziyade aynı blokları kullanarak (birçok NAND kapısı) oluşturmak genellikle çok daha kolaydır.

Dualite ilkesi burada da geçerlidir. Aynı şekilde sadece NOR kapıları kullanarak herhangi bir devre oluşturulabilir. NAND ve NOR kapıları, daha önce gösterilen çarpımların toplamı ve toplamların çarpımı formları gibi birbirleri ile ilişkilidir. Çarpımların toplamı biçiminde bir ifadeyi uygulamak için NAND, toplamların çarpımı biçimindekileri uygulamak için NOR kullanılır.

3.2.3. Çok Girişli Kapılar

Şimdiye kadar gördüğümüz kapılar yalnızca iki girişliydi. Ancak kapıların girişleri iki ile sınırlı değildir. Örneğin, x + y + z ifadesini, Şekil 3.6’daki gibi üç girişli bir VEYA kapısı ile gösterebiliriz.

Şekil 3.7 de  ifadesi gösterilmiştir.

Bu bölümün ilerleyen kısımlarında, Şekil 3.8’de gösterildiği gibi, bazen bir kapının çıktısını (Q), tümleyeni  ile birlikte olarak göstermenin faydalı olduğunu göreceğiz.

3.3. Dijital Bileşenler

Bir bilgisayarı açıp içine baktığınızda, sistemi oluşturan tüm dijital bileşenler hakkında bilinmesi gereken çok şey olduğu fark edilir. Her bilgisayar, birbirlerine kablolarla bağlanan mantık kapıları kullanılarak oluşturulmuştur. Bu kapı toplulukları genellikle standart yapılardır ve hazır bloklar halinde bilgisayar sistemini oluşturmak için kullanılırlar. Bu yapı blokları VE, VEYA ve DEĞİL işlemleri kullanılarak oluşturulmuştur. Sonraki birkaç bölümde, dijital devreleri, bunların Bool cebri ile ilişkilerini, standart yapı taşlarını ve bu yapı bloklarının içine yerleştirilebileceği kombinasyonel mantık ve ardışıl mantık olmak üzere iki farklı kategori örneklerini tartışacağız.

3.3.1. Dijital Devreler ve Bool Cebri İlişkisi

Bool fonksiyonları ile dijital devreler arasındaki bağlantı nedir? Basit bir Bool işleminin (VE veya VEYA gibi) basit bir mantık kapısı ile temsil edilebileceğini gördük. Daha karmaşık Bool ifadeleri, VE, VEYA ve DEĞİL kapılarının kombinasyonları ile gösterilebilir ve böylece tüm ifadeyi tanımlayan bir mantık diyagramı elde edilir. Bu mantık diyagramı, verilen ifadenin veya gerçek dijital devrenin fiziksel uygulamasını temsil eder.  (daha önce baktığımız) işlevini düşünün. Şekil 3.9 bu işlevi sağlayan bir mantık diyagramını göstermektedir. Tüm Bool ifadeleri için mantık diyagramları (dijital devreler) oluşturabiliriz.

Bool cebri, dijital devreleri analiz etmemize ve tasarlamamıza izin verir. Bool cebri ve mantık diyagramları arasındaki ilişki nedeniyle, Bool ifademizi basitleştirerek devremizi de basitleştiririz. Dijital devreler kapılardan oluşurlar, ancak kapılar ve mantık diyagramları tasarım aşamasında dijital devreleri temsil etmek için en uygun formlar değildirler. Bu aşamada işlenmeleri ve basitleştirilmeleri daha kolay olduğu için Bool ifadelerini kullanmak daha doğrudur.

Bir Bool işlevini temsil eden ifadenin karmaşıklığı, elde edilen dijital devrenin karmaşıklığı üzerinde doğrudan bir etkiye sahiptir; ifade ne kadar karmaşıksa ortaya çıkan devre o kadar karmaşıktır. Genellikle Bool özdeşlikleri kullanarak devrelerimizi basitleştirmeyiz; özellikle karmaşık yapılarda Bool özdeşlikleri ile sadeleştirmenin oldukça zor ve zaman alıcı olabileceğini görmüştük. Bunun yerine, tasarımcılar daha verimli bir yöntem kullanırlar. Bu yöntem de, Karnaugh haritaları kullanılır.

3.3.2. Tümleşik Devreler

Bilgisayarlar, kablolarla birbirine bağlanan çeşitli dijital bileşenlerden oluşur. Bir bilgisayarın donanımı, çeşitli işlevleri yerine getirmek için kullanılan ve birçok kapının kombinasyonu ile elde edilen modüllerden oluşur. Bu “yapı taşlarını” oluşturmak için gereken kapı sayısı, kullanılan teknolojiye bağlıdır.

Genellikle, kapılar tek tek satılmaz; tümleşik devreler (IC) adı verilen birimler halinde satılırlar. Bir çip (küçük bir silikon yarı iletken kristal), çeşitli kapıları uygulamak için gerekli elektronik bileşenlerden (transistörler, dirençler ve kapasitörler) oluşan küçük bir elektronik cihazdır. Bileşenler doğrudan yonga üzerine işlenirler böylece daha küçük olurlar ve ayrık bileşenli muadillerine göre daha az güç gerektirirler. Bu çip daha sonra harici pinleri olan seramik veya plastik bir kaba monte edilir. IC oluşturmak için gerekli bağlantılar çipten harici pinlere kaynaklanır.

3.4. Kombinasyonel Mantık Devreleri

Dijital mantık çipleri, bize faydalı devreler sağlamak için birleştirilir. Bu mantık devreleri, kombinasyonel mantık veya ardışıl mantık olarak kategorize edilebilir. Bu bölüm de kombinasyonel mantık ele alınacaktır. Ardışıl mantık Bölüm 3.6’da ele alınmıştır.

3.4.1. Genel Kavramlar

Kombinasyonel mantık, temel Bool operatörlerini, girişlerini ve çıkışlarını içeren devreler oluşturmak için kullanılır. Kombinasyonel devrelerde, çıkış her zaman verilen girişlere dayalıdır. Bu nedenle, bir kombinasyonel devrenin çıkışı, kendi girişlerinin bir fonksiyonudur ve girişlerin o anki değerleri tarafından belirlenir. Kombinasyonel devrelerin birkaç çıkışı olabilir ve her çıkış farklı bir Bool işlevini temsil eder.

3.4.2. Tipik Kombinasyonel Devre Örnekleri

Yarım toplayıcı (Half Adder) adı verilen basit bir kombinasyonel devre ile başlayalım. İki adet ikilik tabandaki rakamı birbirine eklerken bilinmesi gereken üç şey vardır:  0 + 0 = 0, 0 + 1 = 1 + 0 = 1 ve 1 + 1 = 10. Bu devrenin davranışını biliyoruz ve davranışını doğruluk tablosu ile gösterebiliriz. Bir toplam ve bir elde (carry) olduğu için iki çıkış olması gerekir. Yarım toplayıcı için doğruluk tablosu Tablo 3.10’da gösterilmektedir.

Toplam çıkışının aslında XOR ve elde çıkışının da VE kapısına eşdeğer olduğu görülebilir. Şekil 3.11’de görüldüğü üzere bir XOR kapısı ve bir VE kapısını birleştirerek yarım toplayıcı mantık diyagramı oluşturabiliriz.

Yarım toplayıcı çok basit bir devre olmasıyla birlikte sadece iki biti birbirine ekleyebildiği için pek kullanışlı değildir. Ancak, bu toplayıcıyı daha büyük ikili sayıların toplanmasına izin veren bir devreye genişletebiliriz. 10 tabanındaki sayıları nasıl topladığımızı düşünelim: En sağdaki sütunu toplar, birler basamağını yazar ve eldeyi onlar basamağına taşırız. Daha sonra bu taşımayı mevcut sütuna ekler ve benzer şekilde devam ederiz. İkili sayıları da aynı şekilde toplarız. Bu şekilde ikili sayılarda toplama yapmak için üç girişe (x, y ve elde girişi) ve iki çıkışa (Toplam ve Elde) sahip bir devre gereklidir. Şekil 3.12, tam toplayıcı (Full Adder) için doğruluk tablosunu ve karşılık gelen mantık diyagramını göstermektedir. Tam toplayıcının iki yarım toplayıcıdan ve bir VEYA kapısından oluştuğuna dikkat edin.

Bir tam toplayıcı tek başına olduğunda sadece üç bitlik işlem yapabildiği için büyük ikili sayıları toplayamaz. Ancak iki adet 16-bit büyüklüğündeki ikili sayıyı toplayabilmek için Şekil 3.13’te gösterildiği gibi 16 tane tam toplayıcıyı birinin elde çıkışı diğerinin elde girişini besleyecek şekilde bir arada kullanırsak bu işlemi yapabilecek kapasitede bir toplayıcı elde ederiz. Bu tür toplayıcılara ripple-carry-toplayıcı denir. Toplayıcıların onları oluşturan tüm kapıları çizmek yerine bir kutu ile temsil edildiğine dikkat edin. Bu yaklaşım, gerçek kapıların ayrıntılarını görmezden gelmemizi sağlar. Böylece sadece devrenin giriş ve çıkışlarıyla ilgileniriz. Bu yaklaşım kod çözücüler, çoklayıcılar ve toplayıcılar dahil çoğu devrede uygulanır.

Bu tür bir toplayıcı çok yavaş olduğu için normalde kullanılmaz. Ancak, anlaşılması kolaydır ve daha büyük ikili sayıların toplanması konusunda fikir verirler. Toplama işleminde yaşanan gecikmeyi azaltabilmek için yapılan çalışmalar, toplayıcı tasarımlarında carry-look-ahead toplayıcı, carry-select toplayıcı ve carry-save toplayıcı gibi tasarımların ortaya çıkmasına neden olmuştur.

Bu yeni tip toplayıcılar paralel olarak eklemeler yaparak ve elde taşıma yolunu azaltarak ripple-carry toplayıcısına göre %40 ila %90 daha hızlıdırlar.

Toplayıcılar çok önemli devrelerdir — sayıları toplayamayan bir bilgisayar pek bir işe yaramazdı. Tüm bilgisayarlarda yapılan aynı derecede önemli bir diğer işlem, n adet girişten maksimum  çıkışa kadar ikili bilgilerin kodunu çözmektir. Kod çözücü (decoder), çıkış hattını seçmek için girişleri ve bunların değerlerini kullanır. “Çıkış hattını seçmek”, istenilen  çıkış hattının aktif edildiği veya 1’e ayarlandığı, diğer çıkış hatlarının ise pasif edildiği yada sıfıra ayarlandığı anlamına gelir. Kod çözücüler giriş sayısı ve çıkış sayısı ile ifade edilirler. Örneğin, 3 giriş ve 8 çıkışa sahip bir kod çözücüye 3-e-8 kod çözücü (3-to-8 decoder) denir.

Bilgisayarlar kod çözücüleri sıklıkla kullanırlar. Bilgisayarın gerçekleştirebilmesi gereken birçok aritmetik işleme örnek verebiliriz ancak henüz bilgisayarın belleğe nasıl eriştiğine aşina olmadığınızdan bir kod çözme örneği önermekte zorlanabilirsiniz.

Bilgisayarlardaki tüm bellek adresleri ikili sayılarla ifade edilir. Bir bellek adresine referans verildiğinde (ister okuma ister yazma için), bilgisayar bir kod çözücü kullanarak önce gerçek adresi belirlemelidir. Aşağıdaki örnek, bir kod çözücünün nasıl çalıştığı ve ne için kullanılabileceği hakkında bilinmeyenleri açıklığa kavuşturacaktır.

ÖRNEK 3.6 Bir 3-e-8 Kod Çözücü devresi

Her biri 8K bayt içeren 8 yongadan oluşan bir bellek düşünün. 0 yongasının 0-8191 bellek adreslerini, 1. yonganın 8192-16.383 bellek adreslerini ve diğerlerinin de aynı şekilde adresleri tuttuğunu varsayalım. Toplamda  veya 64K (65.536) adresimiz var. Bu adreslerin hepsini ikili sayı tabanında yazmayacağız; ancak ikili biçimde birkaç adres yazmak (aşağıdaki gösterildiği gibi) bir kod çözücünün neden gerekli olduğunu gösterecektir.

 olduğundan her adresi temsil etmek için 16 bite ihtiyacımız vardır. Bunu anlamakta güçlük çekiyorsanız, daha az sayıda adresle başlayın. Örneğin, 0, 1, 2 ve 3 adresleri olmak üzere 4 adresiniz varsa, bu adreslerin ikili eşdeğeri 00, 01, 10 ve 11’dir ve iki bit gerektirir. olduğunu biliyoruz. 8 adres için ise 3 bit gereklidir. Ya hepsini yazabilirsiniz ya da  olarak yazarsınız. Üs, bize adresleri temsil etmek için gerekli minimum bit sayısını söyler.

0 yongası 0–8191 adreslerini içerdiğinden, bu adreslerin ikili gösterimi 0000000000000000 ile 0001111111111111 aralığındadır ve tüm adresler şu biçimdedir: 000xxxxxxxxxxxxx. Benzer şekilde, yonga 1 üzerindeki tüm adresler 001xxxxxxxxxxxxx biçimine sahiptir ve kalan çipler için de bu şekilde devam eder. En soldaki 3 bit, adresin gerçekte hangi çipte bulunduğunu belirler. Adresin tamamını için 16 bite ihtiyacımız var, ancak her çipte sadece  adresimiz var. Bu nedenle, her yonga üzerindeki adresleri tanımlamak için 13 bit kullanırız. Böylece en sağdaki 13 bit bize bu bilgiyi verir.

Bir bilgisayara adres verildiğinde, öncelikle hangi yonganın kullanılacağını belirler ve daha sonra o belirli yongada ki gerçek adresi bulur. Örneğimizde, bilgisayar yongayı seçmek için en soldaki 3 biti kullanır ve ardından kalan 13 biti kullanarak yonga üzerindeki adresi bulur. Bu 3 yüksek dereceli bit aslında bir kod çözücünün girişleri olarak kullanılır, böylece bilgisayar, okuma veya yazma için hangi yonganın etkinleştirileceğini belirler. İlk 3 bit 000 ise, yonga 0 etkinleştirilir. İlk 3 bit 111 ise, yonga 7 etkinleştirilir. Benzer şekilde İlk 3 bit 010 olursa yonga 2 seçilecektir.

Şekil 3.14, bir kod çözücüdeki fiziksel bileşenleri ve bir kod çözücüyü temsil eden sembolü gösterir. Bölüm 3.6’da bir kod çözücünün bellekte nasıl kullanıldığını göreceğiz.

Kombinasyonel devrelerden bir diğeri, çoklayıcıdır (multiplexer – MUX). Bu devre, birçok giriş hattının birinden ikili bilgiyi seçer ve bunu tek bir çıkış hattına yönlendirir. Giriş hattı, bir dizi seçim değişkeni veya kontrol hattı tarafından belirlenir. Herhangi bir zamanda, sadece bir giriş (seçilen) devre üzerinden çıkış hattına yönlendirilir. Diğer tüm girişler “kesilir”. Kontrol hatlarındaki değerler değişirse, giriş hattı da buna göre değişir. Şekil 3.15, bir çoklayıcıdaki fiziksel bileşenleri ve bir çoklayıcıyı temsil eden sembolü göstermektedir.

İnceleyeceğimiz diğer bir kombinasyonel devre seti, eşlik üreteci ve eşlik denetleyicisidir (Önceki bölümlerde eşlik üzerinde durmuştuk). Eşlik üreteci, veriye eklemek üzere gerekli eşlik bitini oluşturan devredir; eşlik denetleyicisi, veride uygun eşlik (tek ya da çift) olup olmadığını kontrol ederek hata tespiti yapar.

Eşlik üreteçleri ve eşlik denetleyicileri, XOR işlevleri kullanılarak oluşturulurlar. Tek eşlik kullandığımızı varsayarsak, 3 bitlik bir kelime (word) için eşlik oluşturucunun doğruluk tablosu Tablo 3.11’de verilmiştir. 3 bilgi biti ve 1 eşlik biti içeren 4 bitlik bir word için kullanılacak bir eşlik denetleyicisinin doğruluk tablosu Tablo 3.12’de verilmiştir. Eşlik denetleyicisi bir hata tespit edilirse 1, aksi takdirde 0 verir.

Bu bölümde üzerinde durmadığımız çok fazla kombinasyonel devre vardır. Karşılaştırıcılar (comparator), kaydırıcı (shifter), programlanabilir mantık cihazları – bunların hepsi önemli devrelerdir ve anlaşılmaları oldukça kolaydır. İlgilenen okuyucular, kombinasyonel devreler hakkında daha fazla bilgi için bu bölümün sonundaki referanslara başvurabilirler. Kombinasyonel mantık konusunu bitirmeden önce, tanıtmamız gereken bir kombinasyonel devre daha var. Bir aritmetik mantık birimi (ALU) oluşturmak için gerekli tüm bileşenleri yukarıda ele aldık.

Şekil 3.16, her biri 2 bitlik iki makine kelimesi üzerinde gerçekleştirilen dört temel işlem (VE, VEYA, DEĞİL ve toplama) yapabilen basit bir ALU’yu göstermektedir. CPU tarafından hangi işlemin gerçekleştirileceğini  ve  kontrol hatları belirler. 00 sinyali toplama (A + B) için kullanılır; A’nın DEĞİL’i için 01; A VEYA B için 10 ve A VE B için 11 sinyali kullanılır. Giriş satırları  ve  bir kelimenin 2 bitini belirtirken,  ve  ikinci Kelimeyi belirtir.  ve , çıktı hatlarını temsil eder.

3.5. Ardışıl (Sequentıal) Devreler

Önceki bölümde kombinasyonel mantığı inceledik. Bool fonksiyonları ile ilgili çalışmamıza, değişkenleri, bu değişkenlerin değerlerini ve yalnızca fonksiyonların girdilerinin değerlerine bağlı olan fonksiyon çıktılarını inceleyerek yaklaştık. Bir girdi değerini değiştirirsek, bunun çıktının değeri üzerinde doğrudan bir etkisi olur. Kombinasyonel devrelerin en büyük zayıflığı, depolama kavramının olmamasıdır, bu devreler hafızasızdırlar. Bilgisayarların bir şekilde değerleri hatırlaması gerektiğini bildiğimizden, bu durum bir çıkmaz gibi gelebilir. Bir içecek otomatı için gerekli olan basit bir dijital devre düşünün. Bu makineye para koyduğunuzda, makine herhangi ne kadar yatırdığınızı hatırlar. Bu hatırlama yeteneği olmasaydı, kullanmak çok zor olurdu. Bir içecek otomatı, yalnızca kombinasyonel devreler kullanılarak yapılamaz. Böyle makinelerin ve nihayetinde bir bilgisayarın nasıl çalıştığını anlamak için ardışıl mantığı incelemeliyiz.

3.5.1. Genel Kavramlar

Ardışıl devrelerin çıkışları hem mevcut girişlerinin hem de önceki girişlerinin bir fonksiyonu olarak tanımlanır. Bu nedenle, çıkışlar geçmiş girişlere bağlıdır. Önceki girişleri hatırlamak için, ardışıl devrelerin flip-flop adı verilen depolama elemanları vardır. Flip-flop’ların anlık durumu, devreye önceki girişlerin bir sonucudur. Bu nedenle, sıradaki çıkış devrenin hem anlık girişlerine hem de mevcut durumuna bağlıdır. Kombinasyonel devreler kapılardan oluştuğu gibi, ardışıl devreler de flip-floplardan oluşurlar.

3.5.2. Saat (Clocks)

Ardışıl mantığı incelemeden önce, olayların nasıl sıralandığını anlamamız gerekir. (Ardışıl bir devrenin mevcut çıktıları belirlemek için geçmiş girdileri kullanması, olay sıralaması yapmamız gerektiğini gösterir). Bazı ardışık devreler asenkrondur – eşzamansızdır, yani aktif olmaları için herhangi bir giriş değerinin değişmesi yeterlidir. Senkron ardışıl devreler, olayları sıralamak için saatleri (clock) kullanır. Saat, yüksek hassasiyetli darbe genişliği olan yüksek hassasiyetli ardışık darbeler üreten bir devredir. Ardışık darbeler arasında ki zaman aralığına saat döngü süresi (clock cycle time) denir. Saat hızı genellikle megahertz (MHz) veya saniyede milyonlarca darbe ile ölçülür.

Saatler, devrenin durumunun ne zaman güncelleneceğine karar vermek için ardışıl devreler tarafından kullanılır. Asenkron benzerlerinden daha kolay anlaşılır oldukları için bu bölümde senkron ardışıl devreleri inceleyeceğiz. Buradan itibaren, “ardışıl devre” den söz ettiğimizde, “senkron ardışıl devre” yi ima ediyor olacağız.

Ardışıl devrelerin çoğu kenar tetiklemelidirler. Bu, Şekil 3.17’de görüldüğü gibi, saat sinyalinin yükselen veya düşen kenarında durumlarını değiştirmelerine izin verildiği anlamına gelir.

3.5.3. Flıp-Flop’lar

Seviye tetiklemeli bir devre, durumunu saat sinyalinin seviyesinin yüksek veya düşük olduğu anlarda değiştirir. Birçok yerde latch ve flip-flop terimleri birbirinin yerine kullanır. Teknik olarak, bir latch seviye tetiklenirken, bir flip-flop kenarla tetiklenir. Bu kitapta flip-flop terimi kullanılacaktır.

Geçmiş bir durumu “hatırlamak” için, ardışıl devreler geri bildirim (feedback) adı verilen bir yöntemi kullanır. Geri besleme, bir devrenin çıktısının aynı devreye giriş olarak geri verilmesidir. İki DEĞİL kapısı ile oluşturulmuş basit bir geri besleme devresi, Şekil 3.18’de gösterilmiştir.

Yukarıdaki devrede, eğer giriş 0 ise Q her zaman 0 olacaktır. Giriş 1 ise, Q her zaman 1 olacaktır. Bu çok ilginç veya kullanışlı bir devre değildir, ancak geri beslemenin nasıl çalıştığını görmenizi sağlar.

İki NOR kapısı kullanarak daha kullanışlı bir geri besleme devresi oluşturulabilir. Bu devre en temel bellek birimi olan SR flip-flop olarak adlandırılır. SR, “set / reset” anlamına gelir. SR flip-flop’un sembolü Şekil 3.19’da verilmiştir.

Bir flip-flopu, girişleri ve mevcut Q durumuna göre bir sonraki durumun ne olması gerektiğini gösteren karakteristik bir tablo kullanarak tanımlayabiliriz. Q (t) notasyonu mevcut durumu temsil eder ve Q (t + 1) sonraki durumu veya saat darbesinden sonra flip-flopun girmesi gereken durumu gösterir. Şekil 3.20, SR ardışıl devresinin mantık diyagramını ve karakteristik tablosunu gösterir.

tablo içeren bir resim

Açıklama otomatik olarak oluşturuldu

SR flip-flop’unun üç giriş vardır: S, R ve çıkış Q (t). Tablo 3.13’te gösterilen doğruluk tablosu ile SR Flip-Flop’unun çalışma mantığı anlaşılabilir.

Örneğin, S 0 ,R 0 ise ve mevcut durum Q (t) 0 ise, sonraki durum olan Q (t + 1) de 0’dır. Eğer S 0, R 0 ve Q (t) 1 ise Q (t + 1) 1’dir. S ve R girişleri 0 olduğunda ve saat darbesi uygulandığında çıkışta değişiklik olmaz. Benzer şekilde, girişler (S,R) = (0,1) olduğunda Q (t +1) mevcut durumdan bağımsız olarak 0 olmaya zorlanır. (S, R) = (1,0) olduğunda, devre çıkışı 1’e ayarlanır.

SR flip-flopta hem S hem de R aynı anda 1’e ayarlanırsa bu hem Q ‘yu hem de ‘i 1 olmaya zorlar, ancak hem Q hem de  nasıl 1 olabilir? Bu durum devrenin kararsız olmasına neden olur. Bu nedenle, bir SR flip-flopunda bu giriş kombinasyonuna izin verilmez.

Bu kararsızlık durumunun oluşmasını engellemek için SR flip-flop’unu Şekil 3.21’de gösterildiği gibi değiştiririz. Böylece bir JK flip-flopu elde ederiz. JK flip-flopları adını, 1958’de onu bulan Texas Instruments mühendisi Jack Kilby’nin almıştır.

tablo içeren bir resim

Açıklama otomatik olarak oluşturuldu

SR flip-flopunun bir başka çeşidi D (data) flip-flop’tur. D flip-flop, fiziksel bilgisayar belleğinin gerçek bir temsilidir. Bu ardışıl devre bir bit bilgi depolar. Saat darbesi ile birlikte D girişine 1 verildiğinde Q çıkış hattı 1 olur. Aynı şekilde girişe 0 verilirse çıkış 0 olur. Şekil 3.22, D flip-flop sembolünü, karakteristik tablosunu ve D flip-flopunun aslında modifiye edilmiş bir SR flip-flop olduğunu gösterir.

tablo içeren bir resim

Açıklama otomatik olarak oluşturuldu

Bölüm Özeti

Bu bölümün temel amacı, sizi mantık tasarımında yer alan temel kavramlar hakkında bilgilendirmek ve size bilgisayar sistemlerini inşa etmek için kullanılan temel devre konfigürasyonları hakkında genel bir anlayış vermektir. Bu seviyedeki bilgiler, bu bileşenleri tasarlamanıza olanak sağlamaz; daha ziyade, aşağıdaki bölümlerde tartışılan mimari kavramları daha iyi anlamanızı sağlar.

Bu bölümde, standart mantıksal operatörler VE, VEYA ve DEĞİL’in davranışlarını inceledik ve bunları uygulayan mantık kapılarına baktık. Bool işlevleri, doğruluk tablosu olarak gösterilebilir, daha sonra da mantık diyagramına dönüştürülebilir. Böylece dijital devre tasarlamak için gerekli bileşenler elde edilir. Bu nedenle, doğruluk tabloları, mantık devrelerinin yanı sıra Bool işlevlerinin özelliklerini ifade etmek için kullanışlık bir yöntemdir. Pratikte, bu basit mantık devreleri, toplayıcılar, ALU’lar, kod çözücüler, çoklayıcılar, registerlar ve bellek gibi bileşenler oluşturmak için birleştirilir.

Bir Bool işlevi ile dijital gösterimi arasında bire bir uyum vardır. Bool özdeşlikleri, Bool ifadelerini sadeleştirmek ve böylece hem kombinasyonel hem de ardışıl devreleri basitleştirmek için kullanılabilir. Devre tasarımında minimizasyon son derece önemlidir. Bir yonga tasarımcısının bakış açısına göre, en önemli iki faktör hız ve maliyettir: devrelerin en aza indirilmesi hem maliyeti düşürmeye hem de performansı artırmaya yardımcı olur.

Dijital mantık iki kategoriye ayrılır: kombinasyonel mantık ve ardışıl mantık. Toplayıcılar, kod çözücüler ve çoklayıcılar gibi kombinasyonel mantık aygıtları, kesinlikle mevcut girişlere dayanan çıktılar üretir. VE, VEYA ve DEĞİL kapıları, kombinasyonel mantık devrelerinin yapı taşlarıdır, ancak bunların yerine sadece NAND ve NOR gibi çok amaçlı kapılar da kullanılabilir. Registerlar, sayıcılar ve bellek gibi ardışıl mantık cihazları, anlık girişleri ve devrenin mevcut durumunun kombinasyonuna dayalı çıktılar üretir. Bu devreler SR, D ve JK Flip-Flop’lar kullanılarak oluşturulur.

Bu mantık devreleri, bilgisayar sistemleri için gerekli yapı taşlarıdır. Sonraki bölümler de bu blokları bir araya getirip bir bilgisayarın gerçekte nasıl çalıştığını daha yakından ve daha ayrıntılı bir şekilde inceleyeceğiz.

Kaynakça

Davidson, E. S. “An Algorithm for NAND Decomposition under Network Constraints,” IEEE Transactions on Computing: C-18, 1098, 1979.

Gregg, John. Ones and Zeros: Understanding Boolean Algebra, Digital Circuits, and the Logic of Sets. New York: IEEE Press, 1998.

Hayes, J. P. Digital Logic Design. Reading, MA: Addison-Wesley, 1993.

Katz, R. H. Contemporary Logic Design. Redwood City, CA: Benjamin Cummings, 1994.

Mano, Morris M. Computer System Architecture, 3rd ed. Englewood Cliffs, NJ: Prentice Hall, 1993.

Maxfield, Clive. Bebop to the Boolean Boogie. Solana Beach, CA: High Text Publications, 1995.

Patterson, D. A. and Hennessy, J. L. Computer Organization and Design, The Hardware/Software Interface, 2nd ed. San Mateo, CA: Morgan Kaufmann, 1997.

Petgold, Charles. Code: The Hidden Language of Computer Hardware and Software, Redmond, WA: Microsoft Press, 1989.

Stallings, W. Computer Organization and Architecture, 5th ed. New York: Macmillan Publishing Company, 2000.

Tanenbaum, Andrew. Structured Computer Organization, 4th ed. Upper Saddle River, NJ: Prentice Hall, 1999.

Wakerly, J. F. Digital Design Principles and Practices, Upper Saddle River, NJ: Prentice Hall, 2000.

Comments