4 Mart 2011 Cuma

Basitten Karmaşığa Mikroişlemci Yapısı

CPU'nun temel kavramları bilindiği varsayılarak, bundan sonraki konularda 8-bitlik mikro-işlemcilerden günümüz X86 tabanlı modern işlemcilerine kadar olan genel mimari yapı ele alınmıştır.
8-BİTLİK MİKROİŞLEMCİLER
Basit bir işlemci üç ana bölümden meydana gelir.
1.      Verinin manevrasında kullanılan ve bellek ile aynı yapıya sahip, adresi yerine bir isimle çağrılan kaydediciler,
2.      aritmetik ve mantık işlemlerinin gerçekleştirildiği icra birimi (aritmetik mantık Birimi)
3.      Zamanlama ve Kontrol Birimi
KAYDEDİCİLER
İşlemci içinde toplam 14 adet kaydedici vardır: 4 adet genel amaçlı kaydedici, 4 adet Segment kaydedici, 3 adet işaret kaydedici, 2 adet indis kaydedici ve bir de bayrak kaydecici bulunur.
Genel amaçlı kaydediciler
AX kaydedicisi: (Accumulator) baş kaydedici de denilen bu kaydedici 8, 16, 32 bitlik verilerle çarpma, bölme, bazı giriş/çıkış işlemlerinde ve bazı harf dizi işlemlerinde etkin biçimde kullanılırlar.
BX kaydedicisi: (Base) taban adres kaydedicisi olarak bilinen bu kaydedici, bellekteki veriş gruplarının adresini tutulmasında kullanılırlar.
CX kaydedicisi: (Counter) sayaç kaydedicisi olarak bilinen CX, harf dizi işlemlerinde sayaç elemanı veya döngü işlemlerinde tekrarlama sayıcısı gibi görevleri yerine getirir.
DX kaydedicisi: (Data) genellikle AX’ e yardımcı olan ve bütün işlemlerde tampon gibi davranan kaydedicidir. Giriş/çıkış işlemlerinde port numarasını üzerinde tutarken, büyük değerlikli sayıların çarpılması ve bölünmesinde AX ile birlikte kullanılır.
Segment kaydediciler:
Büyük kapasiteli belleklerde bilgini yönetilmesi oldukça karmaşıktır. Bu sebeple büyük bellekler belli amaçlarla 64 KB’ lık küçük gruplara ayrılarak daha kolay yönetilirler. Bu küçük gruplara segment adı verilir.
Kod segment kaydedicisi: (CS. Code segment) bellekte çalıştırılacak komutların sıralı bir şekilde bulunduğun bölümdür. Programı tarafından yazılan komut kodları sistem tarafından belleğin bu bölümünde tutulur.
Data Segment kaydedicisi: (DS: data Segment) komutlarla ilgili olan ve bu kodların işleyeceği verilerin saklandığı bölüm data segmenttir.
Extra Segment: (ES) verilerin çok büyük olduğu data segmentin yetmediği durumlarda kullanılır. Özellikle harf dizi işlemler bellekte fazla yer tutarlar. Kaynak veriler data segmentte tutulurken sonuçlar extra segmentte tutulur.
Yığın segment: (SS: Stack segment) veri işlenirken yer yokluğundan veya kaydedici yetersizliğinden  dolayı verinin geçici olarak yerleştirildiği yerdir. Program için alt yordamların çağrılmasında da kullanılır.
İşaretçi kaydediciler
bellekteki ara adresleri gösteren kaydedicileri işaretçi (pointer) denir.
IP (Instruction pointer) İşlenecek komutun kodunu gösterir.
SP (Stack pointer) yığın bölgesindeki bir verinin yerinin belirlenmesinde kullanılır.
BP (
İndis kaydedicisi
Adres indisleme işlemlerinde kullanılırlar.
SI (source Index) Kaydedicisi: kaynak indisçisidir.
DI (destinaiton Index) kaydedicisi: hedef indisçidir.
Bayrak kaydecisi
Bir işlemin sonunda sonucun ne olduğunu kaydedici bitlerine yansıtan bellek hücresidir.
ARİTMETİK VE MANTIK BİRİMİ
ALU mikroişlemcide aritmetik ve mantık işlemlerinin yapıldığı en önemli bölümlerden birisidir. Bu birimdeki işlemler, akümülatörle bellekten alınan veri arasında veya akümülatörle kaydediciler arasında iki veya tek elemana dayalı olarak akümulatörde, kaydedicide veya bellekten bir kelime üzerinde olabilir.
Aritmetik işlemler denilince akla başta toplama, çıkarma, bölme ve çarpma gelir. İşlemcide çarpma, akümülatördeki verinin sola bir bit kaydırılarak iki ile çarpılması demek ve bölme, verinin bir bit sağa kaydırılarak akümülatördeki verinin ikiye bölünmesi demektir. Komutlarla birlikte bu işlemleri, mantık kapıları, bu kapıların oluşturduğu toplayıcılar, çıkarıcılar ve kaydıran kaydediciler gerçekleştirirler. Bloklaştırılmış bu devreler bir dahili veri yolu vasıtasıyla birbirlerine, bir harici veri yolu ve tamponlar vasıtasıyla kaydedicilere ve zamanlama-kontrol birimine bağlanmışlardır.

Gelişmiş mikroişlemcilerde bu devreler yerleşik vaziyettedir. Ayrıca bahsedilen aritmetik işlemlerde yuvarlanmış kesirli sayılar yerine tam sayılar üzerinde durulmuştur. Yuvarlanmış sayılarla 8-bitlik işlemcilerde iş yapmak oldukça zordur. Günümüz işlemcili sistemlerde mikroişlemci yanına birlikte çalışabilen bir ortak işlemci konulmakta veya mikroişlemci içerisine yerleştirilmektedir.
ZAMANLAMA VE KONTROL BİRİMİ
Merkezi İşlem Biriminin üçüncü bölümünü meydana getiren bu kısım, sistemin tüm işleyişinden ve işlemin zamanında yapılmasından kurumludur. Zamanlama ve denetim birimi, bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun çözülmesi, ALU tarafından işlenmesi ve sonucun alınıp geri belleğe konulması için gerekli olan denetim sinyallerini üretir. Bilgisayar sisteminde bulunan dahili ve harici bütün durumlar bu denetim sinyalleri ile denetlenir.
Mikroişlemcinin bu bölümü üç değişik işlevi yerine getirir:
1. Zamanlama denetimi : işlemci harici bir saat sinyali üreten birimden giriş alan iç-saat devresine sahiptir. Bu sinyal alınarak zamanlama sinyallerine çevrilir ve komut kod çözücüsüne gönderilir.
2. Komut kod çözücüsü : Bu devre komut kaydedicisinde (IR) tutulan komutları yorumlar ve ALU' ya kaydedicilerle çalışması için uygun sinyaller gönderir. (kastedilen zamanlama ve kesme sinyalleri).
3. Kesme mantık birimi : Gerekli durumlarda kesme sinyallerini alarak işlemciyi uyarırlar.
İLETİŞİM YOLLARI
Her ne kadar mikroişlemci mimarisine girmese de işlemciyle ayrılmaz bir parça oluşturan iletişim yolları gerçekleştirdikleri göreve göre kendi aralarında üçe ayrılırlar.
Adres yolu; komut veya verinin bellekte bulunduğu adresten alınıp getirilmesi veya tersi işlemlerde adres bilgisinin konulduğu yoldur. 16-bitlik hatta sahip adres yolu tek yönlü yapıya sahiptir. Çünkü, sadece işaretçi olarak vazife görür.
Adres sadece tarif edilir, gelmez. Adres yolunu meydana getiren hatlar aynı zamanda adresleme kapasitesini de gösterir. Maksimum bellek kapasitesi 2üssü n'dir. Burada n, adres hattı sayısıdır. Eğer bir sistemde adres hattı 16-bit ise o sistemin bellek büyüklüğü 2 üzeri 16=65536, kısaca 64 KB olacaktır.
Veri yolu; işlemciden belleğe veya G/Ç birimine veri yollamada ya da tersi işlemlerde kullanılır. Eğer kaydediciler 8-bitlikse veri yolları da 8-bitliktir. Diğer durumlarda veri iki parça halinde iki kerede getirilecek ve dolayısıyla zaman kaybı olacak veya kapasite uyuşmazlığı baş gösterecektir. Veri yolları bilginin çift yönlü taşınmasında (yükle ve sakla işlemleri) kullanılmaktadır.
Kontrol Yolu; Sisteme bağlı birimlerin denetlenmesini sağlayan özel sinyallerin oluşturduğu bir yapıya sahiptir. R/W (Read/Write), CS (Chip Select), CE (Chip Enable), Halt (işlemci durdurma) gibi sinyaller birer kontrol sinyalidir. Kontrol yolunu meydana getiren sinyaller üç gruba ayrılır:
• Kesme Sinyalleri : Dış dünyadan (çevre elemanlarından) veya işlemci dışarısından gelebilecek kesme sinyallerinin kullandığı hatlardır. Bunlar; IRQ, NMI veya RESet gibi sinyallerdir.
• Yön Belirleme Sinyalleri : Verinin hangi yöne gideceğini ve hangi yonganın seçileceğini belirleyen sinyallerdir (Bellekten okuma veya yazma gibi).
• Zamanlama Sinyalleri : Bu hatları kullanan sinyaller hangi zamanda ne yapılacağını tayin ederler. Bunlar saat darbeleri ve işlemci içerisinde veya dışarısında bir elemanı tetiklemek üzere gönderilen sinyallerdir. Meselâ, A kaydedicisine bir veri yükleneceği zaman "in" ucuna kontrol birimi tarafından bir sinyal gönderilmelidir. Ya da bellekten okunan bir verinin veri yolu üzerinden sisteme girdiğinde hangi birime gideceği bu yoldan gönderilen sinyalle belirlenir. Aksi durumda bu veri tüm birimlere yüklenecektir.

Not : Alıntıdır

Hiç yorum yok:

Yorum Gönder