MİKROİŞLEMCİLER/MİKRODENETLEYİCİLER(PİC)
Merkezi işlem birimi olarak adlandırılır.( Central Processing Unit - CPU ) Bir mikroişlemci yalnız başına kullanılamaz. Çalışabilmesi için aşağıdaki bileşenlere ihtiyaç duyar.
- Giriş/Çıkış
Ünitesi (I/O Unit)
- Bellek
(RAM)
Şekil 1.1 Mikro İşlemci iç yapısı
Mikroişlemcileri
Birbirinden Ayıran Özellikler
Kelime Uzunluğu
Mikroişlemcinin her saat darbesinde işlem yapabileceği bit sayısına kelime
uzunluğu
denir. İşlemciler bu süre zarfında
komutları yorumlar veya bellekteki veriler üzerinde işlem
yapar. İşlenen veriler işlemcinin özelliğine göre 4-bit, 8-bit, 16-bit,
32-bit ve 64-bit uzunluğunda olabilir. Kelime uzunluğu veri yolu uzunluğuna
eşittir. İşlemci, her saat darbesinde işleyebildiği kelime uzunlu ile
tanımlanır. Intel 8086 işlemcisinin kelime uzunluğu 16-bit olduğu için
16-bitlik mikroişlemci denir. İşlemciler dört, sekiz, on altı, otuz iki ve
altmış dört bit olarak sınıflandırılır.
Şekil 1.2 Çeşitli kelime uzunlukları
Eğer komutlar veya veriler küçük gruplar hâlinde işlenirse hızda azalma
meydana gelir. İşlenen veri sayısının
artması aynı sürede yapılan işin miktarını artırmakta ve yapılan işin süresini
azaltmaktadır.
16-bitlik bir işlemci ile 16-bitlik iki sayının toplanması, çarpılması veya
karşılaştırılması bir adımda yapılırken 8-bitlik işlemcide bu işlem daha fazla
adımda gerçekleştirilmektedir. Tablo 1.1’de mikroişlemciler ve kelime
uzunlukları görülmektedir.
Komut
İşleme Hızı
Mikroişlemcilerin çalışması için saat
sinyallerine ihtiyaç vardır. İşlemci (CPU) her saat sinyalinde bir sonraki işlem
basamağına geçer. İşlemcinin hızını incelerken saat frekansına ve komut çevrim sürelerine bakmak
gerekir. Saat frekansı mikroişlemciye dışardan uygulanan ya da işlemcinin
içinde bulunan osilatörün frekansıdır. Komut çevrim süresi ise herhangi bir
komutun görevini tamamlayabilmesi için geçen süredir. Şekil 1.2’de komut çevrim
süresi gösterilmiştir
Şekil 1.3 Komut çevrim
süresi
Her işlemcinin komut çevrim süresi farklı
sayıda saat çevrimleri ile tanımlanmaktadır. Tablo 1.2’de işlemcinin komut
çevrim süreleri birbirine denk olan komutlara bakarak karşılaştırılma yapılmıştır.
Tablo 1.2 Karşılaştırmalı hız tablosu
Tabloda görüldüğü gibi, sadece saat
frekansına bakarak değerlendirme yapmak yanıltıcı olabilmektedir. Saat frekansı
her zaman gerçek çalışma frekansını yansıtmasa da, bir mikroişlemcinin hızını
doğrudan etkilemektedir. Bir mikroişlemcinin hızını artıran temel unsurlar şöyle
sıralanabilir:
- CPU tasarım teknolojisi
- Kelime uzunluğu
- İşlemci komut kümesi çeşidi
- Zamanlama ve kontrol düzeni
- Kesme altyordamlarının
çeşitleri
- Bilgisayar belleğine ve
giriş/çıkış aygıtlarına erişim hızı
Adresleme
Kapasitesi
Bir işlemcinin adresleme kapasitesi,
adresleyebileceği veya doğrudan erişebileceği bellek alanının büyüklüğüdür. Bu
büyüklük işlemcinin adres hattı sayısına bağlıdır. Bu hattın sayısı
tasarlanacak sistemde kullanılabilecek bellek miktarını da belirlemektedir.
Motorola 6800, Zilog Z-80, Intel 8085 ve Mostek 6502 mikroişlemcileri 16 adres
hattına sahiptir. 16-bitlik adres hattına sahip bir mikroişlemcinin adres
büyüklüğü 2^16 ile 65536 olacaktır. Bu miktar yaklaşık 64KB ile ifade edilir.
Şekil 1.4 64 KB’lık 6502
işlemcisi
Eğer çok büyük bellek gerektiren bir sistem tasarlanacaksa işlemcinin adres
hattı büyük seçilmelidir. Bundan sonraki bilgiler daha çok 6502 mikroişlemci
ağırlıklı olacaktır.
Kaydedici
Sayısı
Bir programcının assembly diliyle program
yazımı sırasında en çok ihtiyaç duyduğu geçici bellek hücreleri
kaydedicilerdir. Mikroişlemcilerde kaydediciler, genel amaçlı kaydediciler ve
özel amaçlı kaydediciler olmak üzere iki grupta toplanır. Tüm mikroişlemcilerde
bu gruplara dahil edebileceğimiz değişik görevlere atanmış, farklı özellikte,
sayıda kaydediciler bulunur. Bu kaydediciler 8, 16, 32 ve 64-bitlik olabilir.
Kaydedicilerin sayısının programcının işinin kolaylaştırmasının yanında
programın daha sade ve anlaşılır olmasını da sağlar. Her mikroişlemcinin
kendine has yapısı ve kaydedici isimleri vardır. Herhangi bir mikroişlemciyi
programlamaya başlamadan önce mutlaka bu kaydedicilerin isimlerinin ve ne tür
işlevlere sahip olduklarının iyi bilinmesi gerekir. Şekil 1.4’te 6502
mikroişlemcisi görülmektedir.
Farklı Adresleme Modları
Bir komutun işlenmesi için gerekli
verilerin bir bellek bölgesinden alınması veya bir bellek bölgesine konulması
ya da bellek–kaydedici veya kaydedici–kaydedici arasında değiştirilmesi için
farklı erişim yöntemleri kullanılır. Mikroişlemcinin işleyeceği bilgiye farklı
erişim şekilleri, ‘adresleme yöntemleri’ olarak ifade edilir. Kısaca adresi
tarif yollarıdır.
Herhangi bir bellek bölgesindeki veriye çok farklı şekillerde erişilebilmek
için farklı yolların olması programcıya esneklik sağlar. Mesela, 6800 ve 8085
işlemcilerde 7’şer, Z-80 işlemcisinde 10 ve 6502 mikroişlemcisinde 13 adet
adresleme modu vardır. 6502işlemcisinde temelde 51 komuta vardır. Bu komutlar
13 adresleme yoluyla birlikte 150civarına ulaşmaktadır. Bu da programcının
elinde kullanabileceği çok komut demektir. Tümbu işlemcilerde esasta aynı olan
adresleme modları bazılarında uygulamada değişmektedir.
Adresleme modlarını meydana getiren bazı adresleme türleri aşağıda
sıralanmıştır.
- Doğrudan adresleme
- Dolaylı adresleme
- Veri tanımlı adresleme
- Kaydedici adresleme
- Mutlak adresleme
- Göreceli adresleme
- İndisli adresleme
- Akümülatör ve imalı adresleme
İlave Edilecek
Devrelerle Uyumluluk
Mikroişlemcili sisteme eklenecek
devrelerin en azından işlemci hızında çalışması gerekir. Sisteme ilave edilecek
bellek entegrelerinin hızları işlemci ile aynı hızda olması tercih edilmelidir. Aynı şekilde sisteme takılan
giriş çıkış birimlerinin (Şekil 1.4) hızları ve performansları mikroişlemci ile
aynı veya çok yakın olmalıdır. Sisteme takılan birimlerin
hızları mikroişlemciye göre düşükse mikroişlemcinin hızı diğer
elemanlardaki yavaşlıktan
dolayı düşer.
Şekil 1.5 CPU’nun giriş
çıkış birimleri
Mikroişlemciyi Oluşturan
Birimler ve Görevleri
Şekil 1.6 6502 Mikroişlemcisinin
genel ve özel amaçlı kaydedicileri
Kaydediciler
Kaydediciler, daha önce de bahsedildiği
gibi, genel ve özel amaçlı olmak üzere iki gruba ayrılır. Bunlardan başka
programcıya gözükmeyen (ilgilendirmeyen) kaydediciler de vardır. (IR, DAR, MAR
ve MBR gibi). Genel amaçlılara 6502 işlemcisinde; akümülatör, X indis ve Y
indis kaydedicisi girmektedir. Özel amaçlılar ise, PC, SP, Bayraklar, DR gibi
kaydediciler girmektedir. (Şekil 1.6) Aşağıda bunlardan bazıları
anlatılacaktır.
Akümülatör
Akümülatörler (ACC ya da A olarak da
tanımlanabilir), bilgisayarın aritmetik ve mantık işlemleri sırasında depo
görevi yapan önemli bir kaydedicidir. Eğer kaydediciler bir sistemde sekreterya
olarak düşünülürse, akümülatör bu sistemde baş sekreter olarak yerini alır.
Ara değerlerin üzerinde tutulması, sisteme gelen verinin ilk alındığı yer,
belleğe veya dış dünyaya gönderilecek verilerin tutulduğu yer olarak görev
yapar. Bu yüzden, işlemcinin A kaydedicisini hedefleyen komutları çoktur. Bazı
işlemcilerde B kaydedicisi de yardımcı akümülatör olarak kullanılır.
İndis Kaydedicileri
X ve Y olarak tanımlanan indis
kaydedicilerinin temelde üç görevi vardır. Hesaplamalarda ara değerlerin geçici
tutulmasında, program döngülerinde ve zamanlama uygulamalarında bir sayıcı
olarak ve bellekte depolanmış bir dizi verinin üzerinde bir indisçi olarak
kullanılmaktadır. Bazı işlemcilerde sadece tek indisçi olabilir.
Program Sayıcı (PC)
Mikroişlemcinin yürütmekte olduğu program
komutlarının adres bilgisini tuttuğu özel amaçlı bir kaydedicidir. Bilindiği
gibi bir programı oluşturan komutlar ve veriler normal bellekte saklıdır.
Bilgisayarın çalışması sırasında hangi komutun hangi sırada kullanılacağının
bilinmesi gerekir. Bu görevi program sayıcı (PC) yerine getirir. Program
sayıcının bit genişliği adres yolu genişliği kadardır. Eğer işlemcinin 16-bit
adres hattı var ise PC=16 bit, işlemcinin 32-bit adres hattı var ise PC=32 bit
büyüklüğünde olur.
Şekil 1.7 PC’in işleme adımları
Bellekten alınan her komut kodundan sonra
alınacak yeni komut kodunun adresi program sayıcıya otomatik olarak işlemci
tarafından yüklenir. Komut çevrimi, PC’nin yeni adresi adresyoluna koyması ile
başlar. Bunun ardından da ilgili kontrol sinyali gönderilir. Bellekten gelen
her bilgiden sonra PC, kontrol devresinden aldığı işarete uyarak adres satırını
1 arttırır. (Şekil 1.7) Böylece bilgilerin bellekten işlemciye düzenli bir
şekilde gelmesi sağlanır.
Durum Kaydedicisi(Status Register) (Bayraklar)
Durum kaydedicisi 8-bitlik bir kaydedicidir. Bu kaydedicinin her bir biti
ayrı ayrı anlam ifade eder. Mikroişlemci içinde veya dışardan yapılan herhangi
aritmetiksel, mantıksal veya kesmelerle ilgili işlemlerin sonucuna göre bu
bitler değer değiştirir. Bir işlem sonucunda bu bitlerin aldığı değere göre
program yön bulur. Programcı bu bitlerde oluşacakdeğerlere göre programa yön
verebilir. Şekil 1.7’te 6502 mikroişlemcisine ait 1-baytlık durum
kaydedicisinin bit şekli göstermektedir.
Şekil 1.8 6502 bayrak kaydedicisi
Kabul edilen terminolojiye uyarak, eğer bir bayrağa karşılık olan bit 1 ise
söz konusu bayrak kuruldu, eğer bit 0 ise söz konusu bayrak silindi denir.
Carry (elde bayrağı-C): Elde / borç bayrağıdır.
8-bitlik bir işlem sonucunda dokuzuncu bit ortaya çıkıyorsa elde var demektir.
Bu durumda C bayrağı mantıksal 1 olur. Bu bayrak biti programcı tarafından
kurulur ya da silinebilir (CLC, SEC). Ayrıca bazı komutlar tarafından test edilebilir
(BCC, BCS).
Zero (sıfır bayrağı-Z): Sıfır bayrağı,
aritmetik ve mantık işlemi sonucunda kaydedici içeriği sıfır ise Z = 1’e
kurulur. Aksi durumda sıfırlanır (Z = 0).
Interrupt disable (kesme
yetkisizleştirme bayrağı-I): Mikroişlemci normal durumda komutları işlerken bir
kesme (IRQ) geldiğinde bu kesme bu bayrak biti ile engellenebilir. Eğer bu bit
komutlar (SEI) mantıksal 1 yapılırsa gelen kesmeler göz önüne alınmaz. Ancak bu
bayrak mantıksal 0 olduğunda kesme dikkate alınır ve kesme hizmet yordamına
dalınır. Yani bu bayrak biti, normal işleyiş sırasında bir kesme geldiğinde
kabul edilip edilmeyeceğini belirler. Programcı bunu komutla yapar. NMI kesmesi
bu bayrak için kullanılmaz.
Decimal (ondalık
bayrağı-D): Bu bayrak 1 olduğunda aritmetik işlemler BCD modunda yapılırken 0
olduğunda ikilik modta yapılır. Bu işlem eğitim ve uygulama açısında
programcıya büyük kolaylıklar sağlar.
Overflow (taşma
bayrağı-V): Bu bayrak aritmetik işlemlerde, eğer işlem +127 ile -128 aralığını
geçiyorsa bir taşma meydana gelir ve V bayrağı 1 olur. Diğer yandan, yine
benzer işlemlerde, eğer pozitif bir sayı ile negatif bir sayı üzerinde işlem
yapılıyorsa ve sonuç pozitif çıkması gerekiyorken negatif çıktıysa, bu bayrak 1
olur. Taşma bayrağı işaretli sayılarla işlem yapılırken devreye girer.
Negative (negatif
bayrağı-N): 8-bitlik bir işlemcide 7.bit MSB biti olarak bilinir. Eğer MSB biti bir
işlem sonucunda 1 ise N bayrağı 1’e kurulur. Eğer MSB biti 0 ise
kaydedicisideki değer pozitif demektir ki, N bayrağı 0 olur.
Bayraklardaki 4. bit B (Break) olarak tanımlanmış olup, program durduğunda
otomatikman 1 olur. 5. bit ileride kullanılmak üzere boş (+5V) bırakılmıştır.
Farklı mikroişlemcilerde birbirine benzer bayraklar olmasına rağmen faklı
bayraklarda olabilir.
Yığın İşaretçisi (Stack Pointer)(SP)
RAM belleğin herhangi bir bölümü yığın
olarak kullanılabilir. Yığın mikroişlemcinin kullandığı geçici bellek bölgesi
olarak tanımlanır. Yığın işaretçisi, yığının adresini tutan özel amaçlı bir
kaydedicidir. SP adres bilgisi göstereceği için 16-bit uzunluğundadır.
Şekil 1.9 SP’nin işleme adımları
Bu kaydediciye programın başında yığının
başlangıç adresi otomatik olarak atanır.İşlemci tarafından yığının başlangıç
adresi SP’ye yüklendikten sonra artık belleğin bu bölgesi depo benzeri bir
görev yürütür. Yığına veri girişi yapıldıkça yığın göstericisinin değeri de
yapısına gore değişir. (Şekil 1.9).
Yığına her veri girişinde yığın
göstericisinin değeri bir azalmakta, yığından her veri çekildiğin de ise yığın
göstericisinin değeri otomatik olarak bir artmaktadır. Yığına gönderilen veri
yığın göstericisinin işaret ettiği adresteki bellek hücresine yazılır. Yığından
veri çekilirse yığın göstericisi bir önceki verinin adresine işaret edecek
şekilde bir azalacaktır. Mikroişlemci işlediği ana programdan alt programa
dallandığında veya bir kesme sinyali ile kesme hizmet programına dallandığında
mevcut kaydedicilerin içeriklerini ve dönüş adresini saklayabilmek için
otomatik olarak verileri ve adresleri yığına atar. Alt programdan veya kesme
hizmet programından ana programa geri dönülmesi durumunda, ana programda
kaldığı yerin adresini ve kaydedicilerdeki verileri kaybetmemiş olur.
Hiç yorum yok:
Yorum Gönder