BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ DERS VI MİKROİŞLEMCİLER VE ASSEMBLY PROGRAMLAMA
Mikroişlemcilere Genel Bakış Bilgisayar operasyonlarını kontrol ederek veri işleme işlevlerini yerine getirir. Kısaca işlemci veya CPU, kullanıcı ya da programcı tarafından yazılan programları meydana getiren komutları veya bilgileri yorumlamak ve yerine getirmek için gerekli olan tüm mantıksal devreleri kapsar. İlk mikroişlemci 1971 yılında hesap makinası amacıyla üretilen Intel firmasının 4004 adlı ürünüdür. Bir defada işleyebileceği verinin 4‐bit olmasından dolayı 4‐bitlik işlemci denilmekteydi.
Temel Mikroişlemci Mimari Kavramları Mikroişlemci mimarileri en yaygın olarak bellek yönetimi ve komut işleme teknikleri olarak iki şekilde sınıflandırılır. Bellek Yönetimi Açısından: Von Neumann Harvard Günümüz tipik bilgisayarlar Von-Neumann Mimarisine sahip Mikroişlemciler kullanırken (Intel x86, Pentium, AMD Athlon..) , Özellikle Görüntü, ses işleme, yüksek hız gerektiren uygulamalarda Harward mimarisine sahip mikroişlemlerciler (DSP’ler, ARM Cortex..) kullanılır.
Temel Mikroişlemci Mimari Kavramları Komut İşleme Teknikleri Açısından: CISC- Complex Instruction Set Computer (Karmaşık Komut Kümeli Bilgisayar): Bu mimaride mikroişlemci çok sayıda komut içerir ve her eylem için bir komut tanımlanmıştır. Böylece yüzlerce komut arasından seçilen komutlarla yazılan program daha kısa olmaktadır. RISC- Reduced Instruction Set Computer (Azaltılmış Komut Kümeli Bilgisayar): Bu mimaride ise daha basit komutlar kullanarak tümdevre karmaşıklığı azaltılmaktadır. Ancak komutların daha kısa olması belli bir görevin tamamlanabilmesi için daha fazla komuta ihtiyaç duyulur. RISC mimarileri PC sektöründe olmasa da SUNUCU sektörünü tamamen işgal etmiştir: SUN ve IBM tarafından üretilen sunucuların işlemcileri RISC mimarisinde tasarlanmıştır. PC piyasasında ise CISC mimariler popüler olarak kullanılmaktadır (Intel, AMD). RISC CISC +Daha anlaşılır ve basit kod kullanımı -Karmaşık assembly komutları -Aynı işlev için daha uzun program kodu +Daha az saat çeviriminde daha çok iş +Daha hızlı kod işletimi -Uzun süren kod çevirim aşamaları +Daha az donanım -Daha çok donanım
Mikroişlemcilere Donanımsal Bakış Tüm mikroişlemcili sistemler aşağıdaki diyagramdaki gibi ifade edilebilirler. Bir mikro işlemci tek başına kullanılmaz; yararlı olarak kullanılabileceği sistem, mikrobilgisayarlı sistem olarak adlandırılır. Aşağıda mikroişlemci ve çevresel birimlerin oluşturduğu bir mikrobilgisayar sistemi görülmektedir. Girişler Çıkışlar Mikroişlemcili sistem (Mikrobilgisayar) MİB Adres Yolu Veri Yolu ROM Program Belleği RAM Veri Belleği Giriş Çıkış Birimi Denetim Yolu Çıkışlar Girişler
Yüksek seviyeli dil ile yazılan bir program Assembly Programlama Yüksek seviyeli dil ile yazılan bir program Assembly dili düşük seviyeli bir dil olup C, C++, Pascal, Basic gibi yüksek seviyeli programlama dillerine göre anlaşılması biraz daha zordur. Yazılan kodlar çoğunlukla donanıma bağlı yazılır ki bu da programın taşınabilirliğini azaltan bir faktördür. Assembly dili ile program yazarken programcı doğrudan bilgisayarın işlemcisi ve hafızası ile uğraşır. Yani hafızadaki (RAM’deki) ve işlemci gözlerindeki değerleri doğrudan değiştirme olanağı vardır. Compiler Assembly Kodu Assembler Binary Kodu
Assembly Programlama Assembly programlarının en önemli özellikleri boyutlarının yüksek seviyeli bir dil ile yazılan programlara nazaran çok küçük olması ve buna bağlı olarak çok daha hızlı çalışmalarıdır. Programların hızlı çalışmaların kodlarının sadeliğinden kaynaklanmaktadır. Fakat günümüzde kullanılan yüksek hızlı işlemciler ve büyük kapasitelere sahip sabit diskler assembly programlarının bu özelliklerini önemsiz kılmaktadır. Aşağıda ekrana ‘A’ harfini yazdıran Assembly kodu ve C kodu verilmiştir. Görüldüğü gibi C kodunun boyutu, assembly kodunun boyutundan yaklaşık 1000 kat daha fazladır.