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 |
|
0103 |
48 |
dec ax |
ax’in deÄŸeri 1 azaltılır |
|
0104 |
3D0000 |
cmp ax, 0000 |
ax’in deÄŸerinin 0 olup |
|
0107 |
75F7 |
jnz baÅŸ |
(yönlendirme komutu) |
|
. |
. |
. |
. |
|
. |
. |
. |
. |
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.Â