240 likes | 579 Views
Mantıksal Tasarım. 1.1. Sayısal Sistemler. Sayısal ( digital ) sistemler, kesikli ( discrete ) bilgi öğelerini işleyen elektronik sistemlerdir. Sayısal sistemlerde, kesikli bilgi öğeleri imler ( signals ) ile gösterilir. İm gerilim ya da
E N D
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Mantıksal Tasarım
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 1.1. Sayısal Sistemler Sayısal (digital) sistemler, kesikli (discrete) bilgi öğelerini işleyen elektronik sistemlerdir. Sayısal sistemlerde, kesikli bilgi öğeleri imler (signals) ile gösterilir. İm gerilim ya da akım gibi fiziksel bir niceliktir. Sayısal devrelerde kullanılan imlerin iki kesikli değeri vardır. Bu nedenle sayısal devrelerde kullanılan imler ikili (binary) imler olarak anılır. İki değerli elektronik imleri işleyen sayısal sistemelerin güvenilirliği, çok değerli örneksel (analog) imleri işleyen örneksel sistemlere göre çok daha yüksektir. Sayısal bilgisayarlarda işlenen kesikli bilgi öğeleri ikili rakamlarla gösterilir. Ondalık sayılar ikili sayılara dönüştürülerek ya da diğer veri öğeleri gibi ikili kodlarla kodlanarak sayısal bilgisayarlarda işlenir ve saklanır. Her sayısal devre giriş ve çıkışlarında ikili değerler bulunan ve ikili bir işlemi gerçekleştiren bir fiziksel devredir. Devrenin bir elektronik yapısı, bir de gerçekleştirdiği işlem vardır. Karmaşık sistemleri tasarlamak için, sistemin fiziksel yapısı yerine, işlevsel yapısı ile ilgilenilir. Başka bir deyişle, devre tasarımı fiziksel düzeyde değil, mantıksal düzeyde yapılır.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 1.2.Sayı Sistemleri • Her sayı sisteminin bir tabanı vardır. b tabanlı sayı sisteminde 0 ile (b –1) arasındaki b adet rakam kullanılır ve bu rakamlar yanyana yazılarak sayılar oluşturulur. Sayı : X = xn-1xn-2……x1x0 Sayının değeri: X = xn-1 bn-1 + xn-2 bn-2 + ……+ x1b1 + x0 b0 = xi bi • İnsanların düşünce sistemi onlu sayı sistemi üzerine kurulu olduğu için, onlu sayıların değerini algılamak için yukarıdaki hesaplamaya gerek yoktur. Sayısal işlemlerde, sayılar yanında, sayıların tümlerleri (complement) de kullanılır. b’ye tümler. N, b tabanında n basamaklı pozitif bir tamsayı ise, Eğer N 0 ise : N’b = bn – N Eğer N = 0 ise : N’b = 0 (b - 1)’e tümler. N, b tabanında n basamaklı pozitif bir tamsayı ise, N’b-1 = bn – N –1
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 1.3.İkili Sayı Sistemi İkili sayı sisteminde sadece iki rakam vardır: 0 ve 1. Basamakların ağırlıkları küçük olduğu için, ikili sayıların rakam sayısı büyük olur. • İkili sayı sisteminde sayıların 1’e ve 2’ye olmak üzere iki tümleri vardır. Örnek N = 101100100 (N’)1 = 010011011 (N’)2 = 010011100 • Tamsayıların olduğu gibi kesirli sayıların da de 1’e ve 2’ye tümleri vardır. n tamsayı, m de kesir rakamından oluşan bir ikili kesirli sayının 1’e ve 2’ye tümleri yandaki gibi tanımlanır:(N’)2 = 2n - N (N’)1 = 2n – N – 2-m Örnekler: N (N’)1 (N’)2 100000 011111 100000 101011 010100 010101 100.000 011.111 100.000 110.011 001.100 001.101
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 2’ye tümler bulma algoritması: 1. Sayının rakamları sağdan sola doğru taranır. 2. Sağdaki ilk 1 ile onun sağındaki 0’lar değiştirilmez. 3. Sağdaki ilk 1’in solunda kalan tüm rakamlar tek tek tümlenir (0’lar 1, 1’ler ise 0yapılır). 1.3.1. Çıkarma İşleminde Tümlerlerin Kullanılması Çıkarma işleminin 1’e tümler kullanılarak gerçekleştirilmesi: M ve N iki pozitif tamsayı olmak üzere F = M – N işlemini gerçekleştirmek için: 1. N sayısının 1’e tümleri bulunur : (N’)1 2. M + (N’)1 toplama işlemi yapılır: T = M + (N’)1 eğer toplama işleminde son elde oluştuysa, elde atılır: F = T + 1 eğer toplama işleminde son elde oluşmadıysa: F = - (T’)1
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Çıkarma işleminin 2’ye tümler kullanılarak gerçekleştirilmesi: M ve N iki pozitif tamsayı olmak üzere F = M – N işlemini gerçekleştirmek için: 1. N sayısının 2’e tümleri bulunur : (N’)2 2. M + (N’)2 toplama işlemi yapılır: T = M + (N’)2 eğer toplama işleminde son elde oluştuysa, elde atılır: F = T eğer toplama işleminde son elde oluşmadıysa: F = - (T’)2 Sayısal sistemlerde 1’e tümlerin bulunması kolaydır. Çıkarma işlemininkolaylığı açısından 1’e ya da 2’ye tümler kullanmanın birbirinden pek farlı olmadığını söyleyebiliriz 1.4. Sekizli ve Onaltılı Sayı Sistemleri Onaltılı sayı sisteminin rakamları : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ve F İkili, sekizli ve onaltılı sayı sistemleri arası dönüşüm kolaylığı.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 1.5. İkili Kodlar İki alfabe (simgeler kümesi): Kaynak ve Kod alfabeleri. Sayısal sistemlerde kod alfabesi {0, 1} alfabesi. Bir kaynak alfabesindeki her simgeye 0 ve 1 kod simgelerinden oluşan bir dizgi eşlendiğinde, bir ikili kod oluşturulmuş olur. Kaynak simgelerinin her birine eşlenen dizgilere ise kod sözcükleri denilir. Kodun biricik çözülebilir olması. Değişmez/değişken uzunluklu kod. Örnek 1.1. A = { , , , , , , , } Kaynak Sim.K1 KoduK2 KoduK3 Kodu 000000000 001100001 010110011 011010111 100011101 101111100 110101110 111001010
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Ağırlıklı Kodlar Sayısal Kodlar AğırlıksızKodlar Kodlar Alfasayısal Kodlar Kendiliğinden Tümlenen Kodlar Özelliği Olan Kimi sayısal Kodlar Dönüşlü Kodlar – Gray Kodları Yanlış Bulan Kodlar Yanlış Düzelten Kodlar
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 1.5.1. Sayısal – Alfasayısal Kodlar Kaynak alfabesi onlu rakamlardan, genelde sayılardan oluşan koda Sayısal Kod denir. Örnek : BCD (Binary Coded Decimal) kodu, Kaynak alfabesinde rakamlar ve sayılar dışındaki simgeler de bulunan koda Alfasayısal Kod denir.Örnek: EBCDIC ve ASCII kodları. Sayısal Kod Örnekleri: Onlu RakamBCD KoduArtık-3 Kodu5’ten 2 Kodu 00000 001100011 10001 0100 11000 20010 0101 10100 30011 0110 01100 40100 0111 10010 50101 1000 01010 60110 1001 00110 70111 1010 10001 81000 1011 01001 91001 1100 00101
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü • Alfasayısal Kod Örnekleri KarakterEBCDIC Kodu7-bit ASCII Kodu 0 1111 0000 011 0000 1 1111 0001 011 0001 .… …………. ………… A 1100 0001 100 0001 B 1100 0010 100 0010 .… …………. ………… a 1000 0001 110 0001 b 1000 0010 110 0010 .… …………. ………… blank 0100 0000 010 0000 + 0100 1110 010 1011
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Ağırlıklı Kodlar Örnekler: 8 4 2 1 ağırlıklı kod (BCD) 4 3 2 1 ağırlıklı kodlar 8 4 -2 -1 ağırlıklı kod..vb Ağırlıksız Kodlar Örnekler: Artık-3 (Excess-3) Kodu 5’ten 2 (2-out-of-5) Kodu Kendiğinden Tümlenen Kodlar Örnekl: Artık-3 (Excess-3) Kodu Ağırlılı bir kodun kendiğinden tümlenen kod olma koşulu : wi = 9 (gerek fakat yeter olmayan koşul) Buna göre örneğin (8 4 2 1), (4 2 2 1), (2 4 2 1), (4 3 11), (5 2 11), (4 4 -2 -1) ağırlılı kendiliğinden tümlenen kodlar oluşturulabilir.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Dönüşlü Kodlar (Cyclic codes) Dönüşlü Kod Örnekleri Onlu Rak.K4 KoduK5 KoduK6 Kodu 0 0000 000 000 1 0001 010 001 2 0011 011 011 3 0010 001 010 4 0110 101 110 5 0100 111 111 6 1100 110 101 7 1101 100 100 8 1001 9 1000 Gray Kodları Dönüşlü kodların bir altsınıfı. Aynı zamanda yansıtılmış (reflected) kodlardır. Gray kodları, genel olarak 0 ile (2n – 1) arasındaki sayıları kodlamak için kullanılan n bit’lik kodlardır.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 2-bit’lik3-bit’lik 4-bit’lik Onlu SayıGray KoduGray KoduGray Kodu 0 00 000 0000 1 01 001 0001 2 11 011 0011 3 10 0100010 4 110 0110 5 111 0111 6 101 0101 7 100 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000 2, 3 ve 4 bit’lik Gray Kodları
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü İkili sayılarla Gray kodları arasındaki dönüşüm algoritmik olarak yapılabilir Gray kodlarının ikili sayılara, ikili sayıların da Gray kodlarına dönüştürülmesini sağlayan algoritmalar N, değeri 0 ile (2n – 1) arasında değişen bir onlu sayı olsun. N’nin ikili karşılığını B = bn-1bn-2 … b2b1b0 ile gösterelim. N’ye eşlenen n bit’lik Gray kod sözcüğünü de G = gn-1gn-2 … g2g1g0 ile gösterelim. İkili Sayıların Gray Kod Sözcüklerine Dönüştürülmesi gi = bi bi+1 0 i n - 2 gn-1 = bn-1 Gray Kod Sözcüklerinin İkili Sayılara Dönüştürülmesi Gray Kod sözcüğü soldan sağa doğru taranır: Eğer gi’nin solundaki 1’lerin sayısı çift ise : bi = gi Eğer gi’nin solundaki 1’lerin sayısı tek ise : bi = gi’ Not : Sıfır çift sayı olarak alınır.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 1.5.2. Yanlış Bulan Kodlar (Error Detecting Codes) • Yanlış bulan kodların biçimsel tanımını verebilmek için önce “kod sözcükleri arası uzaklık” ve “kodun en küçük uzaklığı” kavramlarını tanımlamak gereklidir. • İki kod sözcüğünün uzaklığı : kod sözcüklerinin birinden diğerini elde etmek için değiştirilmesi gerekli bit sayısına eşittir. • Bir kodun en küçük uzaklığı: n kod sözcüğünden oluşan bir kodda n(n - 1) / 2 sözcük çiftinin her biri için bir uzaklık değeri vardır. Kodun en küçük uzaklığı, sözcük çiftlerinin uzaklıklarının enküçüğüne eşittir. • 1-yanlış bulan kod: sözcüklerinden herhangi birinde bir bit bozulduğunda mutlaka geçersiz bir kod sözcüğü elde edilen kod.Bir kodun 1-yanlış bulan kod olması için gerek ve yeter koşul en küçük uzaklığının 2 olmasıdır • n-yanlış bulan kod: sözcüklerinden herhangi birinde en çok n bit bozulduğunda mutlaka geçersiz bir kod sözcüğü elde edilen kod.Bir kodun n-yanlış bulan kod olması için gerek ve yeter koşul en küçük uzaklığının n+1 olmasıdır.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü • Yanlış bulma özelliği bulunmayan bir kodu 1-yanlış bulan bir koda dönüştürmek için en çok kullanılan yöntem, n bit’lik kod sözcüklerine bir eşlik (parity) bit’i ekleyerek (n + 1) bit’lik bir kod oluşturmaktır. • BCD kod sözcüklerine bir eşlik bit’i eklenerek oluşturulan 1-yanlış bulan kodlar Çift Eşlik Bit’li Tek Eşlik Bit’li Onlu RakamBCD KoduBCD Kodu 000000 00001 100011 00010 200101 00100 300110 00111 401001 01000 501010 01011 601100 01101 701111 01110 810001 10000 910010 10011
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 1.5.3. Yanlış Düzelten Kodlar (Error Correcting Codes) • n-yanlış düzelten kod: kodun herhangi bir sözcüğündeki bit’lerden en çok n tanesi bozulduğunda, hangi bit’lerin yanlış olduğu bulunup düzeltilebilen kod. • Bir kodun n-yanlış düzelten bir kod olması için gerekli ve yeterli olan koşul, kodun en küçük uzaklığının (2n + 1) olmasıdır. Buna göre: 1-yanlış düzelten kodun en küçük uzaklığı 3, 2-yanlış düzelten kodun en küçük uzaklığı 5, 3-yanlış düzelten kodun en küçük uzaklığı 7, ……………….. n-yanlış düzelten kodun en küçük uzaklığı 2n + 1 olmalıdır.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Haming Kodları • Haming kodları, herhangi bir kodun sözcüklerine belirli sayıda eşlik bit’i ekleyerek oluşturulan 1-yanlış düzelten kodlardır. • Haming yöntemi uygulandığında n bit’ten oluşan veri grubuna p eşlik bit’i eklenerek n + p uzunluğunda genişletilmiş bir sözcük oluşturulur. • her eşlik bit’inin denetimi yapıldığında, p bituzunluğunda bir denetim sayısı elde edilir. Bu sayısözcüğün doğru/yanlış olduğunu; eğer sözcük yanlış ise yanlışın hangi konumda olduğunugösterir. Bunun için denetim sayısının en az (n+p+1) farklı değerinin olması ve 2p n+p+1 eşitsizliğinin sağlanması gerekir. • Bu eşitsizliğe göre Haming yönteminde:1 veri bit’ine 2 eşlik bit’i 2 veri bit’ine 3 eşlik bit’i 4 veri bit’ine 3 eşlik bit’i 8 veri bit’ine 4 eşlik bit’i 16 veri bit’ine 5 eşlik bit’i 32 veri bit’ine 6 eşlik bit’i 64 veri bit’ine 7 eşlik bit’i eklemek gerekir.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü BCD Haming kodu Konum 1 2 3 4 5 6 7 Bitp1p2 b1p3 b2 b3 b4 Dd3d2d1Anlamı 0 0 0 0 Yanlış yok 1 0 0 1 1. konumdaki bit yanlış 2 0 1 0 2. konumdaki bit yanlış 3 0 1 1 3. konumdaki bit yanlış 4 1 0 0 4. konumdaki bit yanlış 5 1 0 1 5. konumdaki bit yanlış 6 1 1 0 6. konumdaki bit yanlış 7 1 1 1 7. konumdaki bit yanlış p1 eşlik bit’i: 1, 3, 5 ve 7. konumların p2 eşlik bit’i: 2, 3, 6 ve 7. konumların p3 eşlik bit’i: 4, 5, 6 ve 7. konumların eşlik bit’i olmalıdır.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Onlu B C D H a m i n g K o d u Rakam p1p2 b1 p3 b2 b3 b4 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 2 0 1 0 1 0 1 0 3 1 0 0 0 0 1 1 4 1 0 0 1 1 0 0 5 0 1 0 0 1 0 1 6 1 1 0 0 1 1 0 7 0 0 0 1 1 1 1 8 1 0 1 0 0 0 0 9 0 0 1 1 0 0 1
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü • BCD Hamming Kodu Uygulama Örneği Gönderilen Doğru Sözcük: 1 1 0 0 1 1 0 Alınan Yanlış Sözcük: 1 1 0 1 1 1 0 p1 eşlik denetimi : 1 – 3 – 5 - 7. konumlaradaki 1sayısı 2’dir : d1= 0 p2 eşlik denetimi : 2 – 3 – 6 - 7. konumlaradaki 1 sayısı 2’dir : d2 = 0 p3 eşlik denetimi : 4 – 5 – 6 - 7. konumlaradaki 1 sayısı 3’dir : d3 = 1 • Denetim sayısı = d3d2d1 = 100 0 olduğu için kod sözcüğü yanlıştır. Denetim sayısının değeri 4 olduğu için 4. konumdaki bit düzeltilerek doğru sözcük bulunur.
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü 2-Yanlış Bulan, 1-Yanlış Düzelten Kod • 7 bit’lik Haming Kodu bir yanlışın düzeltilmesini sağlar. Bu koda bir sekizinci eşlik biti ekleyerek 2 yanlış bulan, 1-yanlış düzelten bir kod oluşturmak mümkündür. 8 bit’lik kod sözcüğü örneği: p1p2d1p3d2d3d4p 10011001 • 2-yanlış bulan, 1-yanlış düzelten 8 bit’lik kodda yanlış bulma/düzeltme süreci nasıl gerçekleşir?
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü