Merkezi İşlemcinin Çalışması

Bilgisayarlar sadece makina dilinden anladıkları için tüm diğer dillerde yazılan programlar o makinanın anladığı makina diline çevrilir ve sonuçta program 0 ve 1 değerlerinden oluşan dizinler biçiminde görülür.

Makina diline çevrilmiş bir komutun çalıştırılması için geçen süreye makina çevrimi denir. Makina çevrimi komut süresi ve işlem süresi olarak iki bölümden oluşur. Komut süresinde komut ana bellekten ya da ön bellekten alınarak komut saklayıcısına konur. Komutun çözümlenmesi için geçen süre de komut süresi içinde sayılır. 

Çözümlenmiş komut aritmetik ve mantık biriminde gerekli işlemlerin yapılmasını sağlar ve elde edilen sonuç ana belleğe gönderilir. Bu süreye işlem süresi denir. İşlem süresi sonunda elde edilen sonuç belleğe yerleştirilince bellekten yeni bir komut alınır ve yeni bir makina çevrimi başlamış olur. 

Bunu biraz daha açmak için şu örneğe bakalım;

Simgesel olarak AX saklayıcısındaki bilgiler ile CX saklayıcısındaki bilgileri ekleyip sonucu AX de saklayan bir program satırı aşağıdaki gibi olabilir:

Komut: ADD AX, CX

Bu komutun bellekten alınıp, ne anlama geldiğinin bilgisayar tarafından algılanması için geçen süre komut süresini oluşturur.

Buna karşılık iÅŸlemin yapılması yani AX ve CX’in içeriklerinin toplanması ve sonucun AX de kalması iÅŸlem süresini oluÅŸturur. Bu örnekte sonuç ana belleÄŸe aktarılmamaktadır. Bu iÅŸlem gerekliyse yeni bir komut kullanılacaktır.

 

Bilgisayarlarda program komutları ardışık olarak saklanır. Normal olarak bir komut çağırıldıktan ve komutun öngördüğü işlemler yapıldıktan sonra izleyen komuta geçilir. Öte yandan bazı durumlarda bir sonraki komut yerine yeni bir adrese atlamak gerekebilir. Bunu sağlamak amacıyla bilgisayarlarda ayrılma/yönlendirme (branch) komutları bulunur.

Örnek:

Bellek Adresi

Makina Dili

Assembly Dili

Açıklama

.

.

.

.

.

.

.

.

0100

B80500

mov ax, 0005

ax’e 5 deÄŸerini atar

 

 

baÅŸ:

bir aşağıdaki komutun
adresini tutan etiket

0103

48

dec ax

ax’in deÄŸeri 1 azaltılır

0104

3D0000

cmp ax, 0000

ax’in deÄŸerinin 0 olup
olmadığı kontrol edilir

0107

75F7

jnz baÅŸ

(yönlendirme komutu)
eÄŸer ax 0′a eÅŸit deÄŸilse
baÅŸ’a döner

.

.

.

.

.

.

.

.

Yukarıdaki örnekte Assembly dili ile yazılmış basit bir döngü görülmekte.

Bir komutun çalıştırılması için çeşitli aşamalardan geçilir. Ön aşamalar tüm komutlar için ortaktır. Bunlar:

·  komutun bellekten alınması,

·  çözümlenmesi ve çalışmaya hazır duruma getirilmesidir.

Çözümlenme iÅŸlemi bilgisayarın yapısına göre deÄŸiÅŸir. Bazı mikroiÅŸlemcilerin kontrol birimleri tümüyle elektronik devrelerin birbirine baÄŸlanmasıyla oluÅŸturulabilir. Bu yaklaşımda çözümlenen komutun ürettiÄŸi sinyaller donanımın kontrol sinyallerini aktif hale getirerek bir iÅŸlemin yapılmasını saÄŸlarlar. ÖrneÄŸin bir saklayıcıya veri aktarmak için onun ‘yükle’ giriÅŸini aktif duruma getirebilir.

Bu yöntem hızlıdır. Ancak donanım üzerinde kurulduğu ve her komutun değişik donanım parçaları gerektirdiği düşünüldüğünde, komut sayısı arttıkça devreler daha karmaşık duruma gelecektir.

Diğer bir yaklaşım ise mikrokod kontrolüdür. Burada kontrol biriminde mikrokodları saklayan bir bellek bulunur. Her komuta karşılık gelen mikrokod burada saklanır. Her komut çözümlendiğinde bu mikrokod kontrol çıkışlarına aktarılır ve gerekli sinyaller üretilerek donanımın kontrolü sağlanmış olur.

Mikrokod belleÄŸi ana belleÄŸe göre çok daha geniÅŸtir. ÖrneÄŸin 16 bitlik bir ana bellek kullanılırken her bir komutu üretmek için çok daha geniÅŸ bir mikrokod belleÄŸi gerekebilir. Bu Åžekil 2.5′te açıklanmıştır. 
 

Şekil 2.5 
 
Yukarıdaki ÅŸekilde görüldüğü gibi sabit mikrokodun 5 nolu biti ‘1′ yapıldığında mikroiÅŸlemci “Akümülatöre Yükle” komutunu alacak, diÄŸer bitler yardımıyla akümülatöre ne yükleyeceÄŸini anlayacak ve gerekli iÅŸlemleri yapacaktır. Her bir komut için bir bit gerekeceÄŸi düşünülürse mikrokodun boyu çok uzayacaktır. Bu yüzden; bazı bitlerin aynı anda asla ‘1′ olmayacağından yola çıkılarak komut grupları oluÅŸturulmuÅŸtur. Bu konunun ayrıntılarını ‘Computer Organization’ (Bilgisayar Yapısı) kitaplarında bulabilirsiniz.Â