Ben bu yazıda bilgisayarın beyni olan işlemcide gerçekleşen işlemleri daha somut bir şekilde anlatacağım. İşlemci dediğimiz şey bizim i5, i7 dediğimiz bilgisayarın beyni olarak adlandırdığımız yerdir. Tüm işlemler bunun içerisinde gerçekeşir. Bunun içerisinde ALU, Register'lar ve Önbellek vardır.
ALU : Aritmetik ve Logic işlemlerin yapıldığı yer.
Registerler : İşlenecek olan verilere ait bilgilerin saklandığı yer.
Önbellek : Bellekteki verinin daha çabuk işlenmesini sağlayan, işlemci içindeki küçük bellek.
Ben temel bilgisayarın işleyişini bu şekilde anlatırsam muhtemelen her şey havada kalacaktır. Çünkü bu ifadeleri göremediğimiz için sizin için her şey soyut kalacaktır.
Bir masaüstü bilgisayarın kasasını düşünün. Bu kasanın büyük bir imparatorluk olduğunu varsayalım. ALU dediğimiz yer ise verilerin işlendiği yer. Bilgisayarın en önemli yeri. Yani bu imparatorluğun padişahı.
Registerlar ise, padişahın etrafında pervane olan yardımcıları olsun. Toplamda 8 adet register vardır. Padişahın 8 adet yardımcısı gibi düşünebilirsiniz. Veziri, habercisi vs. gibi düşünebilirsiniz. Bilgisayarımızdaki 8 adet register'imizin adları PC, AR, DR, IR, TR, AC, INPR, OUTR 'dir. Bir veri geldiği zaman ise, bu registerler sürekli olarak kendi aralarında birbirlerine ilete ilete bu veriyi ALU'ya yani gönderirler. (Padişahın yardımcılarının, padişaha haber uçurması gibi düşünülebilir.)
Registerleri yazarken uzun adları ile beraber ezberlerseniz daha kolay akılda kalıcı olur. Çünkü kısaltma yaparken, ingilizce olarak yazılan register adlarının sadece baş harfleri alınmış. Örneğin; program = program, adress = adres, data = veri vs. gibisinden.
Program Counter [PC] => İşlenecek olan verinin yerini gösterir.
Adress Register [AR] => Verinin adresinin tutulduğu yer.
Data Register [DR] => Verinin kendisinin tutulduğu yer.
Instruction Register [IR] => Buyrukların adreslerinin tutulduğu yer.
Temporary Register [TR] => Bilgi geçici olarak saklanmak istendiğinde kullanılan yer.
ACumulator Register [AC] => Genel işlemlerin yapıldığı yer.
INPut Register [INPR] => Bilgisayara veri girişi yapıldığunda, bu verinin tutulduğu register.
OUTput Register [OUTR] => Bilgisayar veri çıkışı yapacağı zaman, bu verinin tutulduğu yer.
INPR ve OUTR kısmına kesmeler konusunda daha detaylı bir şekilde değineceğim. Bu iki register oralarda kullanılıyor.
Bu register'ların boyutları bilgisayardan bilgisayar göre değişiklik gösteriyor. Yani, boyutları her bilgayarda aynı değildir. İşte bilgisayarlardaki 32 bit ve 64 bit mantığı da aslında buradan geliyor. Register uzunluğuna göre o bilgisayar 64 bittir yada 32 bittir diyebiliyoruz. Gerçek hayatta sıkça karşılaşılan bu bilgiyi de bu sayede öğrenmiş oldunuz. :)
Örneğin bizim 16 bitlik mimariye göre tasarlanmış bir bilgisayarımız olsun. Böyle bir bilgisayarda register boyutları şu şekilde olacaktır.
PC : 12 bit (0-11)(0'dan başlayarak 11'e kadar toplam 12 bit.)
AR : 12 bit (0-11)
DR : 16 bit (0-15)(0'dan başlayarak 15'e kadar toplam 16 bit.)
IR : 16 bit (0-15)
TR : 16 bit (0-15)
INPR : 8 bit (0-7)(0'dan başlayarak 7'ye kadar toplam 8 bit)
OUTR : 8 bit (0-7)(0'dan başlayarak 7'ye kadar toplam 8 bit)
Şimdi bilgisayarın işleyişini anlatacağım. Bunu anlatırken, yine 16 bitlik bir bilgisayarı baz alarak anlatacağım. O sebeple konunu geri kalanında üstteki verileri dikkate alarak konuyu okumaya devam edin.
Bilgisayarda Veriler Nasıl İşleniyor?
Tanıtım kısmından sonra verilerin nasıl işlendiğine bakalım. Burayı da yine somutlaştırarak anlatacağım. Dediğim gibi ALU padişahtır. Tahtında oturur ve her şeyi registerlar yapar. Bizim bilgisayarda yapacağımız tüm işlemlerin bilgisi ise bellekte tutulur. Mesela RAM'de veya önbellekte tutulur. Biz buna kısaca bellek diyelim.Tüm işlemler dedim. Bunu biraz daha somutlaştıralım. Örneğin dosya kopyalama, dosya silme, program çalıştırma, internete bağlanmak için Google Chrome'u çalıştırma işlemi yapacağımız zaman bile bu bilgi işlenmek üzere belleğe yerleşir. Ama 0 ve 1'ler halinde yerleşir. Google Chrome'a tıkladık diyelim. Chrome'un çalışması için gerekli tüm veriler 0 ve 1'ler halinde belleğe yerleşir. Yani belleği bir hastanenin bekleme salonu gibi düşünün. İşlem bekleyen tüm veriler oradadır. PC adlı register ise, bekleyen bu işlemlerden hangisinin çalıştırılacağını gösterir.
Özetle :
Aynı anda Media Player, Chrome, PhotoShop'a tıkladık. Bunların çalışmasını sağlayan tüm veriler belleğe yerleşti. PC en baştan itibaren belleği tarayarak ilk önce hangisine tıkladıysanız, ondan başlayarak işlenecek olan programı seçer. Yani kısacası PC, hangi programı gösterdiyse ilk önce o program çalışmaya başlayacaktır. Belleğin en başında Media Player var ise, PC register'i Media Player'e ait verileri göstererek işlemciye der ki : "Bu verileri işleyin!".
PC registeri, verileri işlenecek olan programın RAM'deki yerini işlemciye göstermek için, programa ait adres bilgisini tutar. Nasıl ki siz eve pizza siparişi vereceğiniz zaman, pizzacıya evinizin adresini söylüyorsanız PC registeri de aynı işlemi yapıyor. İşlemciye diyor ki "Belleğin X nolu adresindeki Media Player programını çalıştır."
PC'nin görevini artık anladık. İşlenme sırası gelen programın adresini, işlemciye söyleme görevini yapıyor. PC işlemciye adres bilgisini verdi tamam ama; işlemcideki hangi register bu adres bilgisini tutacak?
İşlemcideki adres bilgisini AR registeri tutacaktır. Yine pizzacı örneğinden yola çıkacak olursak.... Siz telefonla pizzacıyı arayıp eve pizza siparişi verirken, aynı zamanda ev adresinizi belirttiğiniz için aslında bir PC olmuş oluyorsunuz. Sizin adres bilginizi not eden pizzacıdaki sekreter ise, AR registeri oluyor. (AR : adress register)
Şu aşamadan sonra bu adres bilgisi IR registerine atanacaktır. 16 bitlik bilgisayarı baz alarak anlatım yapacağım demiştim. Üstteki verilere göre 16 bitlik bir bilgisayarda PC = 12 bit adres bilgisi tutar ve AR = 12 bitlik adres bilgisi tutar demiştik. Aynı zamanda da IR için 16 bitlik veri tutar demiştik. Biz AR bilgisini, IR'ye aktaracağımız zaman 16 bitin 12 biti adres bilgisi ile dolacaktır. Peki geriye kalan 4 bitlik kısımda neler saklanacak?
Gördüğünüz gibi kalan 4 bitlik yerde = 3 bit OPR biti var ve +1 bit ile beraber toplamda 4 bitimiz var. Tek başına 1 bit yazdığım yer, buyruk tipinin ne olduğunu belirliyor. O konuya daha sonra değineceğim.
Buraya kadarlık olan kısmı mikro işlemler ile gösterelim :
Birinci saat çevriminde yani;
T0 zamanında bellekte işlenmeyi bekleyen programlardan birinin verisinin adresini PC şu şekilde AR'ye gösterecektir : AR <= PC
T1 zamanında M bellek gözündeki adres bilgisi IR'ye atanıyor.
IR <= M[AR] ve aynı zamanda, (yine T1 zamanında) PC değeri 1 arttırılıyor.
PC <= PC + 1 şeklinde.
PC <= PC + 1 ifadesinin mantığı :
Konunun ortalarında önce Media Player'i çalıştırmak için tıkladık daha sonra Chrome'a tıkladık demiştim. PC ilk önce Media Player'in çalışması için onun bellekteki yerini gösterdi. Sonrasında ise Chrome'un yerini göstersin istedik ki media player çalıştıktan sonra chrome'da açılsın diye düşünebilirsiniz.
T2 zamanında ise, IR'deki bilgiler artık Denetim Merkezinde çözülecektir. Çünkü ALU hiçbir şey bilmiyordur. Siz kendisine media player'i çalıştırın demek üzere media playere tıkladınız diyelim veya herhangi bir arkadaşınıza facebooktan mesaj göndermek için klavyeden bir şeyler yazdınız veya herhangi bir toplama işlemi yaptınız yada dosya kopyalama işlemi yaptınız diyelim... Bilgisayar, bizim yaptığımız bu işlemleri anlamazlar. Biz kopyalama işlemi yapıyoruzdur ama bir sürü kod yığını gidiyor belleğe. CPU bu kod yığının ne olduğunu bilmiyor. Denetim merkezi dediğimiz yer işte bu kodları IR ' registerinden alarak bilgisayara "abicim, ben bu kodları çözdüm. bu kullanıcı kopyalama işlemi yapıyor." diyor bilgisayara. Yani aslında bizim bilgisayarımızda yaptığımız işlemleri, bilgisayarın beynine tercüme ediyor. Denetim biriminin şekli de şöyledir :
Denetim biriminden çıkan işlemlere göre, kullanıcının yaptığı işlemleri bilgisayar artık anlayabiliyor. Bilgisayarımızın arayüzünde yaptığımız bir çok işlem, bilgisayarda 3 temel kategoriye ayrılmıştır :
1) Bellek adreslemeli işlemler (Kopyalama, toplama vs.)
2) Register adreslemeli işlemler
3) Giriş / Çıkış adreslemeli işlemler (Klavyeden yazı yazma, bilgisayardaki bir metni yazıcı ile A4 kağıdına yazdırma vs.)
Özetle :
T0, T1, T2 işlemleri standarttır.
T0 zamanında; AR <= PC
T1 zamanında;
IR <= M[AR]
PC <= PC + 1
T2 zamanında; denetim biriminde IR içindeki buyruklar çözülüyor.
T2'den sonraki işlemler artık farklılık göstermeye başlayacaktır. Çünkü denetim biriminden çıkan veriler üstte de sıraladığım gibi 3'e ayrılıyor. Herbirinde de bu veriler farklı işlemlere tabi tutuluyorlar. T2'den sonraki adımı "Bilgisayarın İşleyişinde OPR Biti" başlığı altında yazdım.
Yazının devamı : Bilgisayarın İşleyişinde OPR Biti [Bilgisayar Mimarisi - İşlem Kararı]
Bilgisayar Mimarisi Dersi Konu Anlatımlarının Tamamı İçin Buraya Tıklayınız!
0 yorum:
Yorum formuna konuyla ilgili görüş ve sorularınızı bırakabilirsiniz.
Yorumunuza mümkün olan en kısa sürede dönüş yapılacağından emin olabilirsiniz.
Eklenen yorumlar, moderatör onayından sonra yayınlanmaktadır.