1. GİRİŞ
Günümüzde teknolojinin ilerlemesini inceleyecek olursak; bu ilerlemede hem araç hem de amaç olan özel bir elemanı keşfetmemiz uzun sürmez. “Nedir bu eleman?” denildiğinde; cevap tabi ki bilgisayarlardır. Öyle ki; yaptığımız her işte adeta elimiz ayağımız haline gelmiş olan bilgisayarlar, günlük hayatımızın ayrılmaz bir parçası haline gelmiştir. Burada bilgisayarlar denildiğinde, hepimizin aklına klavyesi ve ekranıyla PC dediğimiz bilgisayarlar gelmektedir. Halbuki çevremizde o kadar farklı “bilgisayarlar!” vardır ki, bunları dikkatli bakmadığımızda göremeyebiliriz. Örnek vermek gerekirse kolumuzdaki saatten, televizyonumuzun uzaktan kumandasına, aracımızın frenlerinden fırınımızın pişirme sistemine kadar her yerde bilgisayarlar karşımıza çıkar. Burada bilgisayar denildiğinde gerçek anlamda “istenilen işlemler dizisini, istenilen zamanda yada istenilen süreçte yapabilen sistemler” içerisinde mikroişlemci bulunduran (ve hatta bazen bulunmayan) elemanlardan söz etmekteyiz. İşte bu şekilde hayatımızın içine girerek araç haline gelen bilgisayar sistemleri, aynı zamanda teknolojinin geliştirilmesi durumunda bir amaçtır.
Bu şartlarda, bu sistemleri, üretim aşamasında yada tüketim aşamasında bilmek veya kullanabilmek günümüzde büyük önem kazanmıştır. Tüketici olarak basit mikroişlemcili aletleri hemen hemen herkes, hatta okuma yazması olmayanlar bile (tv uzaktan kumandaları) kullanır hale gelmiştir. Günümüzde PC bilgisayarlar da işletim sistemlerinin geliştirilmesiyle herkes tarafından kullanılır hale getirilmeye çalışılmaktadır.
Mikroişlemcili sistemler denildiğinde genel olarak bilgisayarları anlamak mümkündür. Bu tip elemanlara kullanıcı tarafından bakıldığında aşağıdaki gibi bir yapıya rastlamak mümkündür.
Bu sistemde kullanıcı olayın sadece giriş-çıkış ünitesi ile ilgilidir ve sadece burada olan olaylarla ilgilidir. Bu üniteler; kullanıcının sisteme ulaşmasını yada sistemin kullanıcıya ulaşmasını sağlayan ünitelerdir. Bir diğer deyişle kullanıcının sistemi kullanmasını sağlayan, sisteminde kullanıcıya işlem sonuçlarını iletmesini sağlayan ünitelerdir. Günümüzdeki sistemlerde sıkça kullanılan giriş ve çıkış ünitelerini aşağıdaki gibi sıralamak mümkündür.
2. MİKROİŞLEMCİLER
Mikroişlemciler, ikilik sayılar üzerinde aritmetiksel ve mantıksal işlemler yapabilen, bu işlemlerin sonuçlarına göre çalışmasını yönlendirebilen veya bu sonuçları belirli hafıza bölgelerine yazıp okuyabilen bir devre elemanıdır.
Mikroişlemcilerin asıl popüler olmasındaki gerçek, bu elemanların programlanabilmesidir. Mikroişlemci, çalışmasını kendisi için hazırlanmış olan programın komutlarını tek tek işleyerek yürütür. Mikroişlemci kullanılarak geliştirilen bir sistemin işleyişi üzerinde bir değişiklik gerektiğinde yapılması gereken tek şey o sistemdeki mikroişlemci için hazırlanan programın değişen şartlara uygun olarak programlanmasıdır. Sistemin mevcut durumdaki değişiklikler ve gelişen şartlara uygunluk gösterebilmesi için sistemde çok önemli fiziksel değişiklikler yapmadan, yalnızca aynı işlemciyi yeniden tekrar programlayarak zamandan ve maliyetten önemli ölçüde tasarruf sağlanır.
Mikroişlemci kullanılarak gerçekleştirilen elektronik bir devreye
mikrobilgisayar denir. Mikrobilgisayar olarak tanımlanan bir sistemde mutlaka mikroişlemcinin bulunması gerekir. Bunun yanında değişik hafıza elemanları (RAM, EPROM, vb….), giriş çıkış elemanları da (PIA, ACIA, vb…) bulunur.
Bellek: Bilgisayarı çalıştıran programların ve bilgilerin depolandığı kısımdır.
Giriş/Çıkış: Giriş, çalışma esnasında kullanıcının veri girebildiği kısımdır. Basit anahtarlar, klavye veya başka bir devre olabilir. Çıkış, yapılan işlemlerin neticesinde elde edilen sonuçların dışarıya çıkarıldığı kısımdır. Gösterge, yazıcı veya bir devre olabilir. Giriş/Çıkış birimlerine çevre birimi (Peripheral) denir.
CPU (Central Processing Unit, Merkezi İşlem Birimi): Sistemin beynidir. Bilgi depolama için kullanılan çeşitli yazmaçlar, Aritmetik Mantık Birimi, komut çözücü, sayıcı ve denetim hatlarından oluşur. Bellekten komutları okur ve gerekli işlemleri yapar. Diğer birimler ile iletişimi sağlar.
ALU (Aritmetik Logic Unit, Aritmetik Mantık Birimi): Toplama çıkarma gibi aritmetik işlemler ile VE, VEYA ve Seçkin VEYA gibi mantıksal işlemleri yapan birimdir.
Yazmaç birimi: Çalışma esnasında, geçici veya kalıcı olarak bilgi depolanan yazmaçları içeren kısımdır.
Denetim birimi: Bir komutun işlenmesi esnasında gerekli olan tüm zamanlama ve denetleme çıkışlarını sağlayan kısımdır.
Sistem barası (System bus): Mikroişlemci ile çevre birimlerinin iletişimini sağlayan bir bağlantı yoludur. Adres, veri ve denetim bitlerinden oluşur.
2.1. Mikroişlemcileri Birbirinden Ayıran Özellikler :
a) 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.
b) 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 yada 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. 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ı
c) 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.
d) 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.
e) Farklı Adresleme Modları : Bir komutun işlenmesi için gerekli verilerin bir bellek bölgesinden alınması veya bir bellek bölgesine konulması yada 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.
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
f) Programcının Elde Edebileceği Değişik Tipteki Komutlar : Mikroişlemcinin kütüphanesinde bulunan komutların çokluğu programcıya kolaylık sağlar. Fakat asıl olan komutun az saykılla işlemi tamamlamasıdır.
g) Uygulamalar için sistemin yazılım uyumluluğu
h) Sistemi tasarlayanın kullanabileceği değişik tipteki destek devreleri : PIA, ACIA, CACHE MEMORY, DMA gibi.
ı) İ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.
2.2. Mikroişlemciyi Oluşturan Birimler
2.2.1. 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).
2.2.2. Aritmetik ve Mantık Birimi (ALU) : Mikroişlemcinin en önemli kısmını aritmetik ve lojik birimi (ALU) oluşturur.Bu ünite kaydediciler üzerinde toplama, çıkarma, karşılaştırma, kaydırma ve döndürme işlemleri yapar. Gelişmiş mikroişlemcilerin içindeki ALU’lar çarpma ve bölme işlemlerini yapabilmektedir. ALU’nun işlem yapabileceği en büyük veri, mikroişlemcideki kaydedicilerin veri büyüklüğü ile sınırlıdır. 8 bitlik mimariye sahip bir mikroişlemcideki ALU en fazla 8 bitlik sayılar üzerinde işlem yapar.
· Aritmetiksel işlemler :
ALU’da yapılan aritmetiksel işlemler mikroişlemcinin yapısına göre çeşitlilik gösterebilir. 8-bitlik mimariye sahip bir mikroişlemcide toplama, çıkarma, çarpma, bölme işlemleri ve ondalıklı sayılarla matematiksel işlemler yapılabilmektedir. Gelişmiş işlemcilerde büyük ondalıklı sayılarla işlem yapmak için ayrıca matematik işlemci mevcuttur.
· Mantıksal işlemler
- Mantıksal çarpma VE işlemi
- Mantıksal toplama VEYA işlemi
- Özel VEYA, XOR işlemi
- Değil, NOT işlemi
- Karşılaştırma (=, =<, =>, <> gibi) ve kaydırma gibi işlemler bu ünitede yapılır.
- Sağa veya sola kaydırma ve döndürme işlemleri
- İçerik artırma veya azaltma işlemleri
Bütün bu işlemler teknolojik yapısı değişik kapı ve flip-flop’lardan oluşan bir sistem tarafından yürütülmektedir.
2.2.3. Kontrol Birimi : Kontrol birimi, sistemin tüm işleyişinden ve işlemin zamanında yapılmasından sorumludur. Kontrol birimi, bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun çözülmesi, ALU tarafından işlenmesi ve sonucun geri belleğe konulması için gerekli olan kontrol sinyalleri üretir.
2.2.4. Merkezi İşlemci Biriminde İletişim Yolları : Mikroişlemcide işlenmesi gereken komutları taşıyan hatlar yanında, işlenecek verileri taşıyan hatlar ve kesme işlemlerini kontrol eden sinyalleri taşıyan hatlar bulunur. İşlenecek verileri işlemciye yollamak veya işlenen verileri uygun olan birimlere aktarmak için aynı hatlardan faydalanılır. Tüm bu yollara iletişim yolları adı verilir.
2.2.4.1. Veri Yolu : Merkezi işlem biriminden bellek ve giriş / çıkış birimlerine veri göndermede yada bu birimlerden işlemciye veri aktarmada kullanılan hatlar, veri yolu olarak isimlendirilir. Veri yolu genişliği, mikroişlemcinin yapısı, mikroişlemci kaydedici genişliği ve kullanılan kelime uzunluğu ile doğrudan ilişkilidir. 8-bitlik mikroişlemcilerde veri yolu 8 hattı içerirken, 16-bitlik işlemcilerde 16 hattı içerir. Mikroişlemciye işlenmek üzere iletilen veriler veri yolu üzerinden iletildiği ya da mikroişlemcide işlenen veriler veri yolu üzerinden ilgili birimlere yollandığı için, veri yolunda iki yönlü iletişim mümkün olmaktadır.
2.2.4.2. Adres Yolu : Verinin alınacağı (okunacağı) veya verinin gönderileceği (yazılacağı) adres bölgesini temsil eden bilgilerin taşınmasında kullanılan hatlar, adres yolu olarak isimlendirilir. Adres yolu, tek yönlüdür ve paralel iletişim sağlayacak yapıdadır.
2.2.4.3. Kontrol Yolu : Mikroişlemcili sistemde bulunan birimler arasındaki ilişkiyi düzenleyen sinyallerin iletilmesi amacıyla kullanılan hatlar kontrol yolu olarak adlandırılır. Her bir mikroişlemciye ait komut kümesi ve belirli amaçlar için kullanılan sinyallerin farklı olması sebebiyle, her mikroişlemcide farklı sayıda hattı içeren kontrol yolu bulunabilir. Kontrol yolunda bulunan sinyaller üç farklı işlemi gerçekleştirmek için kullanılır:
Sinyal seçimi: Sistemde kullanılacak sinyallerin ve sinyallerin uygulanacağı yerin belirlenmesi işlemini gerçekleştiren sinyaller.
Yön tayini: Sistemdeki verinin ne yöne gideceğini belirleyen sinyaller (okuma veya yazma).
Zamanlama: Yapılacak işlemlerin sırasını ve zamanlamasını belirleyen sinyaller.
2.2.5. Bellek
2.2.5.1. RAM Bellekler : Mikroişlemcinin çalışması esnasında her türlü değişkenin üzerinde yer aldığı ve geçici işlemlerin yapıldığı birimi RAM belleklerdir. Özel bir sıra takip etmeden herhangi bir adrese erişildiği için rastgele erişimli bellek (Random Access Memory) – RAM olarak isimlendirilir.
2.2.5.2. ROM Bellekler : Yalnız okunabilen birimlere ROM (Read Only Memory) bellekler denir. Bu bellek elemanlarının en büyük özelliği enerjisi kesildiğinde içindeki bilgilerin silinmemesidir. ROM belleklere bilgiler üretim aşamasında yüklenir. Kullanıcıların bellek içindeki bilgileri değiştirmesi mümkün değildir.
2.2.5.3. Programlanabilir ROM Bellek (PROM) : PROM’lar bir kez programlanabilir. Bu bellek elemanı entegre şeklindedir. Kaydedilen bilgiler enerji kesildiğinde silinmez. Üzerine program kodlarını veya verileri yazmak için PROM programlayıcı cihazlara ihtiyaç vardır.
2.2.5.4. Silinebilir Programlanabilir ROM Bellek (EPROM) : EPROM’lar bellek hücrelerine elektrik sinyali uygulanarak programlama işlemi yapılır. Kaydedilen bilgiler enerji kesildiğinde silinmez. EPROM içindeki programın silinmemesi için cam pencereli kısım ışık geçirmeyen bantla örtülmelidir. Eprom belleğe yeniden yazma işlemi yapmak için EPROM üzerindeki bant kaldırılıp ultraviyole altında belirli bir süre tutmak gerekir. Bu şekilde içindeki bilgiler silinebilir.
Böylece tekrar programlanabilir hâle gelen ürün tekrar tekrar farklı programların denenmesi ve cihazın çalıştırılması için kullanılabilir. Silme işlemi esnasında belirli şartlara dikkat edilmemesi (gereğinden fazla süre UV ışığa maruz kalmak, yüksek ışık şiddetine sahip UV ampul kullanmak gibi) hâlinde silinebilme ömrü kısalan entegreler bir süre sonra kullanılamaz
(silinemez) hâle gelmektedir.
2.2.5.5. Elektriksel Yolla Değiştirilebilir ROM Bellek (EEPROM) : Üzerindeki bilgiler, elektriksel olarak yazılabilen ve silinebilen bellek elemanlarıdır. EEPROM’ u besleyen enerji kesildiğinde üzerindeki bilgiler kaybolmaz. EEPROM’daki bilgilerin silinmesi ve yazılması için özel silme ve yazma cihazlarına gerek yoktur. Programlayıcılar üzerinden gönderilen elektriksel sinyalle programlanır. EEPROM’la aynı özellikleri taşıyan fakat yapısal olarak farklı ve daha hızlı olan, elektriksel olarak değiştirilebilir ROM’lara flash bellek denir.