Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Bölüm 1 : Temel Bilgiler Bölüm 1 : Temel Bilgiler Mantıksal Tasarım
Jan 11, 2016
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
Mantıksal Tasarım
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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.
1.2. Sayı Sistemleri
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
İ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.
1.3. İkili Sayı Sistemi
İ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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
Çı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şleminin kolaylığı
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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 Kodu K2 Kodu K3 Kodu 000 000 000
001 100 001 010 110 011 011 010 111 100 011 101 101 111 100 110 101 110 111 001 010
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
Kodlar
Sayısal Kodlar
Alfasayısal Kodlar
Ağırlıklı Kodlar
AğırlıksızKodlar
Özelliği Olan Kimi sayısal Kodlar Kendiliğinden Tümlenen 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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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 Rakam BCD Kodu Artık-3 Kodu 5’ten 2 Kodu 0 0000 0011 00011 1 0001 0100 11000 2 0010 0101 10100 3 0011 0110 01100 4 0100 0111 10010 5 0101 1000 01010 6 0110 1001 00110 7 0111 1010 10001 8 1000 1011 01001 9 1001 1100 00101
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
Alfasayısal Kod Örnekleri
Karakter EBCDIC Kodu 7-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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
Dönüşlü Kodlar (Cyclic codes)
Dönüşlü Kod Örnekleri
Onlu Rak. K4 Kodu K5 Kodu K6 Kodu0 0000 000 0001 0001 010 0012 0011 011 0113 0010 001 0104 0110 101 1105 0100 111 1116 1100 110 1017 1101 100 1008 10019 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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
2-bit’lik 3-bit’lik 4-bit’lik Onlu Sayı Gray Kodu Gray Kodu Gray Kodu 0 00 000 0000 1 01 001 0001 2 11 011 0011 3 10 010 0010 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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
İ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.
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.
İ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
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel BilgilerYanlış 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 Rakam BCD Kodu BCD Kodu
0 00000 00001 1 00011 00010
2 00101 00100 3 00110 00111 4 01001 01000 5 01010 01011 6 01100 01101 7 01111 01110 8 10001 10000 9 10010 10011
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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 bit uzunluğ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ğunu gö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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
BCD Haming kodu
Konum 1 2 3 4 5 6 7
Bit p1 p2 b1 p3 b2 b3 b4
D d3d2d1 Anlamı
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
Onlu B C D H a m i n g K o d u Rakam p1 p2 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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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
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.
p1 eşlik denetimi : 1 – 3 – 5 - 7. konumlaradaki 1 sayı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
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
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: p1 p2 d1 p3 d2 d3 d4 p
1 0 0 1 1 0 0 1
2-Yanlış Bulan, 1-Yanlış Düzelten Kod
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ü
Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler
p eşlik denetimi
olumlu olumsuz
1 yanlış var
D = d3d2d1 denetim
sayısını hesapla
0 ya da 2 yanlış var
D = d3d2d1 denetim
sayısını hesapla
D = 0D = 0
2 yanlış var
düzeltilemez
evet evet hayır
Yanlış yok 8. bit (p) yanlış
düzelt
D. konumdaki
bit yanlış
düzelt
Başlangıç
Son
hayır