5 Kasım 2014 Çarşamba

MİKROİŞLEMCİLER/MİKRODENETLEYİCİLER(PİC)

MİKROİŞLEMCİLER/MİKRODENETLEYİCİLER(PİC)
MİKROİŞLEMCİ       

            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.
  1. Giriş/Çıkış Ünitesi (I/O Unit)
  2. 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