Mikroişlemci ve Mikrodenetleyici Nedir? Gömülü Sistem Nedir?

Elektronik sistemlere entegre edilen ve elektronik donanımı ve sistemi çalıştırması için yazılan yazılımı bir arada çalıştıran sisteme gömülü sistem denir. Gömülü sistem üzerine yazılan yazılımların amacı tek bir işlevi gerçekleştirmektir. Yazılımsal olarak tanımlanan fonksiyonları donanımsal olarak belirli bir işleve dönüştürür. Arabaların kapısı açıldığında tavanda yanan lamba, televizyona elektrik geldiğinde ekranda yanan kırmızı lamba gibi sistemler gömülü sistemlere örnektir. Cep telefonu, yazıcı, hesap makinesi gibi sistemler de gömülü sistemlere birer örnek olarak verilebilir.

Mesela hesap makinesini ele alırsak işlevi kullanıcı tarafından girilen sayı ve işlemlerin hesaplanarak bir çıktı vermesidir. Dolayısıyla tek bir işlevi yerine getiren gömülü sistemlere en güzel örnektir.

Bir elektronik sistemde birden fazla gömülü sistem bulunabilir yani örnek verirsek birden fazla mikrodenetleyici bulunabilir. Her gömülü sistemin kendisine göre bazı görevleri vardır ve bu görevler elektronik sistemin beyni tarafından aktif edilirler. Büyük bir buzdolabında bütün işlevi sadece tek bir gömülü sistem yapamayabilir ve bu durumda gömülü sistemlerden oluşan bir beyin devreye girer.

Mikroişlemci Nedir?

Kısaca tanımlamak gerekirse CPU dediğimiz ana işlem biriminde tanımlı olan fonksiyonları yarı iletken bir devre üzerinden aktarıp birleştiren programlanabilme özelliğine sahip sayısal sistemlerden oluşan elektronik bir yapıdır. Gömülü sistemin beyni olarak görev yaparlar.

Bizim burada bahsettiğimiz sistem CPU’yu barındıran bir devre çipidir. Mikroişlemcinin fonksiyonları yapabilmesi için gerekli verileri sağlayan giriş, bu verilerin saklandığı hafıza ve verilerin derlenip elektronik donanıma işlevi gerçekleştirmesi için gönderilen çıkış mikroişlemciye ek olarak bulunuyorsa bu devrenin adı mikrobilgisayardır.

Merkezi İşlem Birimi – CPU (Central Processing Unit) Nedir?

İsminden de anlaşılacağı üzere CPU verilerin işleme alındığı birimdir. Veri akışını sağlayarak gelen verileri işler. CPU üzerinde veri akışını kontrol kısmı gerçekleştirir. Mikrodenetleyicinin hafızasında bulunan verileri kontrol ünitesi sayesinde alır ve büyük çoğunlukla aritmetik mantık ünitesi dediğimiz ALU üzerinde işler, işlem sonucu oluşan komutları anlar ve gerçekleştirir.

CPU’lar almış olduğu verileri kendilerine göre bir yerde geçici depolarlar. Bu depolanan yere register denir. Registerlarda veriler 8, 16, 32 ve 64 bit olarak depo edilirler.

Hafızadaki veriler olmazsa CPU yapmak istediği işlemleri gerçekleştiremeyebilir. CPU bu durumda 2 olay için direk olarak yükümlüdür. Bu olaylar fetch ve execute olarak adlandırılırlar. Fetch verilerin hafızada bulunup CPU’ya çağrılması, execute ise komutların yürütülmesi için kullanılır.

Her CPU bir program sayacına sahiptir. Bu sayaçlar CPU tarafından bir görev yerine getirildiğinde kendini 1 kademe artırarak bir sonraki yapılacak olan komutun adresini gösterir. Bu program sayacı instruction pointer olarak bilinir. Bu sayaç sayesinde istenen komut okunup bulunuyor ve devamında çağırılıyor.

CPU’ların içerisindeki bir diğer yapı ise komut çözücülerdir. CPU’dan gelen komutların anlamlarını çıktı olarak veriri yani yorumlar ve böylece yorumlanan anlama göre kontrol sinyalleri üretilir. Komut çözücüye instruction decoder denir.

Hafıza Birimi (Memory)

Bir programın işleme alınmadan önce talimatlarının yani komutlarının yüklendiği birimdir.

CPU hafıza birimlerine doğrudan erişebilir ve CPU’nun doğrudan eriştiği hafıza birimlerine bellek denir. Cpu’nun birincil olarak eriştiği hafıza elemanları RAM  ve ROM’dur.

RAM Nedir?

RAM kelimesinin açılımı random access memory’dir. Yani rastgele erişimli bellek anlamına gelir. Programın çalışma esnasında veriler geçici olarak RAM üzerinde depo edilir. Sistem yani bilgisayar kapatıldığında RAM üzerinde depolanan veriler silinir.

ROM Nedir?

ROM kelimesinin açılımı read only memory’dir. Yani yalnızca okunabilir bellek anlamına gelir. ROM üzerine kaydedilen veriler RAM üzerine kaydedilen veriler gibi değildir ve sistemin yani  bilgisayarın kapanmasında kaybolmazlar. Kişisel bilgisayarlarımızdaki BIOS en güzel ROM örneklerindendir.

REGİSTER Birimi Nedir?

Register dediğimiz CPU üzerinde bulunan birimler birer hafıza birimidirler ve kaydedici olarak bilinirler. Sayılarının fazla olması CPU ve yapacağı işlemler açısından avantajdır.

Bellek üzerindeki bir verinin okunup işleme alınması biraz zaman alacağından registerlarin avantajı  burada devreye girer. Registerlerin işlemci çekirdeği üzerinde oluşu bu işlemi oldukça hızlandırır. Lakin bunu fırsat bilip CPU üzerindeki register sayısını artıramayız. Registerlar sınırlı sayıda 16 (AH, BH, CH…) veya 32 bit (EAX, EBX, ECX…) olarak bulunurlar ve belirli bir amaç için kullanılırlar.

BUS (Bağlantı Yolları)

CPU’nun giriş, çıkış ve hafıza (bellek) birimlerine bağlantını ve sistem üzerinde herhangi bir veri akışını yani veri transferini sağlayan birimlere bağlantı yolları denir. BUS’lar genel olarak 3 ana başlık altında incelenirler. Bunlar Address BUS yani adres yolu, Data BUS yani veri yolu ve Kontrol BUS yani kontrol yolu başlıklarıdır.

ADDRESS BUS (Adres Yolu)

Address BUS adından da anlaşılacağı üzere verilerin adreslerini taşırlar. Bu adresler kaynak ve hedef adresidirler. Address BUS’lardaki genişlik sistemin sahip olabileceği maksimum hafıza kapasitesi açısından oldukça önemlidir. Örnek vermek gerekirse İntel firmasının üretmiş olduğu 8086 işlemci modelinde genişlik 20 bit iken PENTİUM II de bu 36 bittir. 16 bitlik bir address BUS genişiliği mikroişlemci üzerinde 64 kilobayta denk gelir.

Address BUS’ın genişliğinin artması sistem maksimum hafızasını artırdığı gibi işlemcinin kullanmış olduğu RAM miktarını da artırır. Bildiğimiz üzere ne kadar fazla RAM o kadar fazla performans.

NOT: Address BUS’lar tek yönlüdürler.

DATA BUS (Veri Yolu)

DATA BUS veri yolları mikroişlemci kontrollü hafıza birimine ve çıkış birimine veri veya komut gönderme ve alma işlemlerinde kullanılır. Address BUS’larda olduğu gibi veri yolunun genişliği Data BUS’larda da sistemin performansını olumlu yönde etkiler. Eğer data BUS’ların genel elektrik şemasına bakarsak haberleşme kanaları görürüz ve bu haberleşme kanalları birbirine paralel bağlanmışlardır.

Kontrol BUS (Kontrol Yolu)

Alınan verilerin hafıza birimine mi yoksa giriş / çıkış (input / output) birimlerine mi gönderileceğine karar veren yapıdır. CPU’nun veri gönderme veya veri alma işlemlerinden hangisini yapacağını kontorl eder.

Kontrol BUS’lar kendi içinde 4 ana sinyale ayrılırlar ve bu 4 ana başlık hafıza birimi, giriş ve çıkış, yazma, okuma olarak kabul edilir. İşlemcinin göstermiş olduğu adrese göre bu 4 sinyalden biri aktif olur. Kontrol BUS mikroişlemcinin yaptığı işlemlerin birbiri içerisinde karışmamasını sağlayarak bir düzen oluşturur.

NOT: Kontrol BUS tek yönlüdür.

Mikrodenetleyici Nedir?

Yukarıda detaylı bir şekilde mikroişlemcinin ne olduğunu anlattım. Peki mikrodenetleyici nedir?

Mikrodeneteleyici mikroişlemci gibi üzerinde sadece hafıza ve işlem birimlerini barındırmaz. Bu iki birimin dışında bir sürü çevre birimi de bünyesinde barındıran yapılardır.

Not: Son verilere göre üretilen mikroişlemcilerin %98’i gömülü sistemlerde, kalan %2’si ise bilgisayarlarda kullanılmaktadır.

Aşağıdaki resimde mikroişlemci ile mikrodenetleyicinin farkını daha iyi anlayabilirsiniz. Microprocessor olarak verilen resimde üstteki yapı bir mikroişlemcidir ve resmin tamamı ise bir mikrodenetleyicidir.