Mikro işlemciler işlev olarak kabaca günlük kullandığımız bilgisayarların merkezi işlem birimleriyle (CPU) eşdeğer fakat genellikle daha düşük kapasiteli entegre devrelerdir. Mikroskobik transistörlerin oluşturduğu mantık kapılarından meydana gelmişlerdir. Bir mikro işlemcinin üzerinde mantık kapılarının bileşiminden oluşan ve çeşitli işlevleri yürütmeye yarayan birimler bulunur. Bu birimler arasında aritmetik-mantık birimi, kontrol birimi, girdi-çıktı ve küçük bir miktar bellek vardır. Bu temel birimlerin dışında mikro işlemcinin kullanım alanına bağlı olarak farklı görevlerde özelleşmiş birimler de bulunabilir. Ancak bir mikro işlemcinin ana işlevlerini yerine getirebilmesi için temel birimler yeterlidir.
Bir mikro işlemci çoğunlukla kendisine bağlanacak bazı entegre devrelerle birlikte çalışmak için tasarlanır. Örneğin mikro işlemcinin çalıştıracağı programın ve kullanacağı verinin yüklü olduğu, yazılabilir ve okunabilir, hızlı bir bellek birimi (genellikle RAM), ve sisteme güç verilmezken programı saklayabilecek bir bellek birimi (genellikle bir çeşit ROM) mikro işlemcilerin olmazsa olmaz çevre birimleridir. Bunun dışında, mikro işlemciler genellikle elektronik devrelerde kontrol mekanizması görevinde bulundukları için kontrol edecekleri cihazlarla da bağlantı kurmaları gerekecektir.
Mikro işlemciler genellikle elektronik sistemlerin ‘beynini’ oluştururlar ve sistemdeki girdi cihazlarından aldıkları bilgi ve komutlara göre diğer cihazları kontrol ederler. Örneğin bir otomatik meşrubat makinasında bir mikro işlemci atılan paranın yeterli olup olmadığını kontrol eder. Yeterli miktara ulaşıldığında “para atınız” uyarı ışığını söndürür ve kullanıcı bir seçim yaptığında doğru marka meşrubatla birlikte paranın üstünü kullanıcıya geri verir. Bu arada farklı meşrubat türlerinin makinada bulunup bulunmamasına göre göstergedeki ışıkları ayarlamak ve kullanıcı makinada bulunmayan bir seçim yaptığında işlemi reddetmek zorundadır. Bu senaryoda bozuk para haznesinden gelen bilgiler, kullanıcının meşrubat türü seçimi ve makinadaki farklı meşrubat kompartımanlarının boş olup olmadığı bilgileri mikro işlemcinin girdileridir. Mikro işlemci bu girdilere göre davranarak çıktılarını oluşturur; örneğin eğer kullanıcının attığı para yeterli miktardaysa seçilen meşrubatın kullanıcıya verilmesini sağlar.
Bir mikro işlemci her hangi bir girdi olmadan kendi başına da bazı işlevleri yerine getirebilir. Örneğin az önce bahsettiğimiz meşrubat makinesinin yeni modelinin çıktığını düşünelim. Yeni model makinalar her gün sabaha karşı üçte telefon hattından belli bir bilgisayara bağlanıp o gün hangi türden kaç tane meşrubat satıldığını bildirebiliyor olsun. Bu durumda sistemdeki mikro işlemci önceki görevlerine ek olarak gün boyunca satılan ürün miktarını bir bellekte saklayıp sistemdeki saati devamlı kontrol ederek doğru an geldiğinde bir modem üzerinden merkeze bağlanıp haberleşmeyi yürütme yükümlülüğünde olacaktır.
Mikro işlemcilerin bu kadar çeşitli işlevleri yerine getirebilmelerini sağlayan şey programlanabilir olmalarıdır. Bir mikro işlemcinin aldığı girdileri nasıl değerlendirip onlara nasıl karşılık vereceğini onu programlayarak ayarlarız.
Belleğin içinde bilgi birler ve sıfırlar halinde saklanır. Her tür bilgi birler ve sıfırlar halinde saklanmasına rağmen bu birler ve sıfırlar farklı şekillerde yorumlanabilirler. Örneğin bazı bir-sıfır dizileri harfleri, bazıları sayıları ifade eder. Bazı diziler daha farklı anlamlara sahip olurlar; diğer diziler üzerinde yapılacak işlemleri tanımlarlar. Bu farklı diziler komutlardır.
Bir program komutlardan ve veriden oluşur. Komutlar çok çeşitli olabilir. Örneğin toplama, çıkarma ve çarpma için, mantıksal değil, ve, veya işlemleri için, verinin bellekte bir yerden başka bir yere taşınması için, çeşitli girdi çıktı işlevlerini yönetmek için ve başka bir çok işlem için komutlar vardır.
Mikro işlemcinin görevi bellekte tutulan komutları okuyup, ne anlama geldiklerini çözümleyip, komutlarda yazılı işlemleri yapmaktır. Mikro işlemci, her komutu oluşturan bir-sıfır dizisinin ne anlama geldiğini ‘bilir’; her mikro işlemci komutlarına göre imal edilir. Ayrıca, mikro işlemcinin yapısı komutlarda kodlanmış bütün işlemleri yapmasına olanak sağlayacak biçimde tasarlanmıştır.
Mikro işlemcinin kontrol birimi sıradaki komutu okumakla, komutu çözümlemekle ve komutta kodlanmış işlemi yapacak birimleri aktive etmekle yükümlüdür. Ayrıca programın akışından da sorumludur. Sıradaki komutun bellekte nerede olduğunu bilir, ve programın akışını değiştirmeye yönelik bir komutla karşılaştığında gerekli değişikliği yapar. Aritmetik-mantık birimi çeşitli sayılar üzerinde matematiksel (toplama, çarpma) ve mantıksal (değil, ve, veya) işlemler yapar. Girdi çıktı birimi mikro işlemcinin giriş ve çıkış bağlantılarından sorumludur, girdi ve çıktıları yazar ve okur. Mikro işlemcideki küçük bellek bütün bu aritmetik, mantıksal ve girdi-çıktı işlemleri sırasında geçici bir hafıza olarak kullanılır. Bütün birimler kontrol biriminin kumandasında işlemcinin dışındaki bellekte yazılı programı uygularlar.
Örneğin kontrol birimi sıradaki komutu bellekten okuyup çözümlediğinde komutun “bellekteki iki sayıyı topla, sonucu ikincinin üzerine yaz” olduğu ortaya çıkarsa bellekteki iki sayıyı toplaması için aritmetik-mantık birimini aktive eder, ve sonucu ikinci sayının üzerine yazar. Sonraki komutu okuyup çözümler, ve o komutun da “birinci çıktı kapısının değerini 1 yap” olduğunu görürse girdi-çıktı biriminin ilgili kapıyı 1 değerine getirmesini sağlar. Daha karışık komutlar da mümkündür; örneğin sıradaki komut “birinci girdi kapısının değeri 0 ise sıradaki komutu A adresinden oku” olabilir. Böyle bir durumda kontrol birimi girdi-çıktı komutu aracılığıyla birinci girdi kapısının değerini kontrol eder ve 0 olduğunu görürse sıradaki komutu A adresinden okur. Böyle bir komut programın akışını değiştirecektir.
Program akışına etki eden komutlar karar verme mekanizması olarak kullanılır. Yukarıdaki otomatik meşrubat makinası örneğine geri dönersek, hayali bir komut “eğer para yeterliyse uyarı ışığını söndür ve kullanıcının seçim yapmasını bekle” şeklinde olabilirdi. Daha gerçekçi bir komut ise şöyle olacaktır: “Eğer kullanıcının attığı para miktarını sakladığın bellekteki sayı 500.000’den büyükse ikinci çıktı kapısının değerini 0 yap.” Ve hemen sonraki komut da “Eğer kullanıcının attığı para miktarını sakladığın bellekteki sayı 500.000’den büyükse bir sonraki komutu BEKLEME KOMUTU adresinden oku.” Bu örnekte mikro işlemcinin kullanıcının şimdiye kadar attığı para miktarını bellekte sakladığı ve her yeni atılan paranın miktarını bu miktara eklediği, ayrıca bellekte BEKLEME KOMUTU adresinde kullanıcının seçimini beklemeyle ilgili işlemleri yapan komutların bulunduğu düşünülmüştür, ki gerçek hayattaki bir meşrubat makinesinde de durum bundan pek farklı olmayacaktır.
Yukarıda verilen örneklerdeki komutlar bir araya getirilerek çok karmaşık programlar yazılabilir. Örnek isterseniz bilgisayarınıza bakabilirsiniz. Şu anda bilgisayar ekranında gördüğünüz her şey, eğer mp3 dinliyorsanız duyduğunuz müzik, internet bağlantınızdan geçen veri, bilgisayar oyunları, hepsi temelde bu tür komutlar kullanılarak yazılan programlardır. Sadece bilgisayarınızdaki işlemciler daha hızlıdır, girdi-çıktı kapıları daha fazladır, ve etraflarında ses kartı, ekran kartı gibi çok sayıda güçlü, özelleşmiş çevre birimi vardır, ve ondalık sayı işlemleri gibi biraz daha karmaşık işlemler yapabilirler.
Mikro işlemcilerin özelliklerini anlatırken ‘çoğunlukla’, ‘genellikle’ gibi yuvarlak ifadeler kullandık, çünkü günümüzde çok çeşitli mikro işlemciler üretilmektedir. Bu çeşitlilik yüzünden tüm mikro işlemcileri genellemelerle tarif etmek yanlış olacaktır. Bazı mikro işlemciler ihtiyaç duydukları tüm belleği üzerlerinde taşırlar, bazıları matematik dört işlem yapmaktan başka karmaşık sinyal işleme görevlerini de yerine getirebilirler. Bazıları analog ve sayısal çevre birimlerinden bir kısmını üzerlerinde taşırlar; hatta bu çevre birimlerini yeniden programlayıp işlevlerini değiştirebilenler bile vardır. Artık mikro işlemciler her yerdedir, programlanabilir olmaları nedeniyle hayatımızın bir parçası olmuşlardır.