Bilgisayarın Temel Mantığı: Bölüm 2 Counters

 Bilgisayar Nasıl Sayı Sayar?

    


        Bilgisayarlar 0 ve 1'lerle yani binary dediğimiz ikili sayı sistemi ile sayarlar. Sayı sayan basit bir sistem yapabilmek için SR flip flop'a biraz ekleme yapmamız gerekiyor. Aşağıdaki devre 0'dan 1'e kadar sayabilen bir JK flip flop devresidir. J ve K uçlarını pozitif yaptığımızda her saat darbesinde (CLK) Q çıkışı değişir. Q çıkışı 1 ise 0, 0 ise de 1 olur. Şimdi bu durumları bir inceleyelim.

Başlangıçta CLK = 0, J = 1, K = 1 durumundalar. Q'nun durumu belirsizdir bu yüzden 0 kabul edelim o halde Q' = 1 olur.
  • CLK = 1 olduğunda Q' = 1 ve J = 1 olduğundan S = 0 olur bunun sonucunda Q = 1 olur.
  • Şimdi ise CLK = 1 iken Q' = 0 ve J = 1 olduğunda S = 1 olur.
  • CLK = 0 olduğunda Q' = 0 ve J = 1 olduğundan S = 1 olmaya devam eder.

  • CLK = 1 olduğunda Q = 1 ve K = 1 olduğundan R = 0 olur bunun sonucunda Q' = 1 olur.
  • Şimdi ise CLK = 1 iken Q = 0 ve K = 1 olduğunda R = 1 olur.
  • CLK = 0 olduğunda Q = 0 ve K = 1 olduğundan S = 1 olmaya devam eder.

        Bu şekilde Q sürekli durumunu değiştirmeye devam eder.
        JK flip flop için 74HC109 entegresini kullanacağız.
        Bize 0'dan 1'e kadar sayan bir sayıcı yetmeyeceğinden daha fazla sayan bir sayıcı yapmamızın bir yolunu bulmalıyız.  JK flip flop'ları art arda eklersek istediğimizi elde edebiliriz. Aşağıda 4 bitlik bir sayıcı devresi var. Bu sayıcı devrelerine ripple counter yani dalgalı sayıcı deniyor. Çünkü JK flip flop'lar dalga dalga asenkron bir şekilde sayma işlemini gerçekleştiriyorlar. Bu işlemin bu şekilde olması sistemin yavaş çalışmasına neden olur. O yüzden senkronize bir şekilde çalışan bir sayıcı kullanmak hızlı bir bilgisayar yapmak için gereklidir.



        Senkronize sayıcı için 74HC161 entegresi kullanılabilir. Bu entegrede hem sıfırlama hem de paralel yükleme özelliği mevcuttur.
        İstersek şimdiye kadar bahsetmediğim ama ileride bahsedeceğim tam toplayıcılarla (full adder) da bir sayıcı devresi yapabilirdik. 

      Peki bilgisayarımızı yaparken bu sayıcıları nerede kullanacağız? 


       Bilgisayarlarımızın bir program hafızası vardır ve bu hafızanın içerisinde komutlar bulunur. Her bir komutu sırasıyla çalıştırabilmemiz için bize bir program sayacı gereklidir. Program sayacı da bir sayıcıdır ve çalıştırılacak olan komutun adresini tutar. Her komut çalıştıracağımız vakit program sayacını bir arttırırız ve böylelikle hafıza da bulunan komutlar sırasıyla çalışırlar. Bu bölüme İngilizcede Program Counter denir.
        
        İkili sayı sisteminde sayarsak eğer:

        0000 = 0
        0001 = 1
        0010 = 2
        0011 = 3
        0100 = 4
        0101 = 5
        0110 = 6
        0111 = 7
        1000 = 8
        1001 = 9
        1010 = 10
        1011 = 11
        1100 = 12
        1101 = 13
        1110 = 14
        1111 = 15

        Dikkat ettiyseniz eğer birinci basamaktaki sayılar 0,1,0,1 şekilde ikinci basamaktaki sayılar 0,0,1,1 şekilde 3. basamaktakiler 0,0,0,0,1,1,1,1 şekilde 4 basamaktakiler de 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1 şeklinde tekrarlıyorlar.

    Sıradaki konu için tıklayınız. Bilgisayarın Temel Mantığı: Bölüm 3 Full Adders


Hiç yorum yok:

Yorum Gönder