This document was uploaded by user and they confirmed that they have the permission to share
it. If you are author or own the copyright of this book, please report to us by using this DMCA
report form. Report DMCA
I. Mikroişlemci Temelli Sistemler 1.1. Mikroişlemci Temelli Sistemlere Giriş • Temelde belirli bir amaca yönelik işlemleri sırasıyla gerçekleştiren elektronik sistemlerdir. • Elle yapıldığında günlerce sürecek bir işlemi çok kısa sürede hatasız yaparlar. • Mikroişlemci temelli sistemlerde bulunan birimler birbirleri arasında sayısal olarak haberleşirler. 0, 1 ikili sayı sistemi kullanılır… • Gerekli görüldüğünde verilen giriş argümanlarına göre çıkış üretirler… • Mikroişlemci temelli sistemlerde bulunan birimler: – – – –
Merkezi İşlem Birimi (Central Processing Unit, CPU) Bellek (Memory) Giriş/Çıkış Birimi (Input/Output I/O Unit) Yollar (Busses)
EEM 448 Mikroişlemciler II No.1-3
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Uygulamaları Bellek Program Deposu
Veri Deposu Çıkış Birimi
Giriş Birimi
Anahtar
Tuş Takımı
Sıcaklık Algılayıcı
Merkezi İşlem Birimi (CPU)
LED Gösterge
Ses Aritmetik/Lojik Birimi Kontrol Birimi
Röle
EEM 448 Mikroişlemciler II No.1-4
Mikroişlemciler/Mikrodenetleyiciler
İşlemci Kayıtçılar – işlemcide depolama yerlerini gösterir Aritmatik Lojik Birim Kontrol Birimi Program Sayıcı (program counter) işlenecek bir sonraki komutun adresini tutar Durum Kayıtçısı (status register) komutların işlenmesi sonucunda bayrakların değişimini tutar.
Mikroişlemci
Çok büyük ölçekte elemanların bir araya gelmesi (very large scale integration, VLSI) İle oluşan işlemci entegresi (chip) Bir ürün ortaya koyabilmek için çevre entegrelere ihtiyaç duyulur
Mikrodenetleyici İşlemci ve Çevre fonksiyonların tek bir VLSI entegrede bulunması
EEM 448 Mikroişlemciler II No.1-5
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem (Bilgisayar) nedir? Yazılım (Software), Programlama. Algoritma nedir? Donanım (Hardware) Bilgisayar Donanım Organizasyonu:
Kontrol Birimi
Ortak İletişim Hattı
Arithmatik Lojik Birimi Bellek Kayıtçılar
Program Deposu
Veri Deposu
Çıkış Birimi
Giriş Birimi
EEM 448 Mikroişlemciler II No.1-6
Mikroişlemciler/Mikrodenetleyiciler
Yazılım Bilgisayar Yazılımı (Computer Software) - Bilgisayar programları yazılım (software) olarak bilinir. - Bir program komutların (instruction) diziliminden oluşur. Makine komutları (Machine instruction) - İşlemci tarfından uygulanabilen binary (0 ve 1) dijitlerin dizisidir. - Analaşılması zordur. Assembly Dili - Assembly komutları ile tanımlıdır. - Bir assembly komutu, makine komutunun belleği destekleyici (mnemonic) gösterimidir. - Assembly programları uygulanmadan önce makine diline çevrilmelidir -- bir derleyici (assembler) tarafından çevrilir.
EEM 448 Mikroişlemciler II No.1-7
Mikroişlemciler/Mikrodenetleyiciler
Yazılım(2) Yüksek seviye bilgisayar dilleri -
Yüksek seviye bilgisayar dilinin sözdilimi (syntax) İngilizce’ye benzer. Yüksek seviye dilde yazılan programı çeviren bir çeviriciye (translator) ihtiyaç duyulur -- derleyici (compiler) tarafından yapılır
Kaynak Kodu (Source code) -
Assembly veya yüksek seviye bilgisayar dilinde yazılan program.
Görüntü ve yazı panoları (Displays) Yazıcılar (Printers) Tuş takımları (Keyboards) Modems Araç telefon şarjları Buzdolabı, Çamaşır/Bulaşık makinaları Mikrodalga fırınlar Otomobile motor yakıt injeksiyonu Faks makinaları Motor hız kontrolü v.b.
EEM 448 Mikroişlemciler II No.1-9
Mikroişlemciler/Mikrodenetleyiciler
1.2 Mikrodenetleyiciler •
•
•
•
Mikroişlemci temelli sistemlerde bulunması gerekli üniteler, Merkezi İşlem Birimi, Bellek ve Giriş/Çıkış Birimleri birbirlerine dış yollar ile bağlıdırlar. Daha basit işlemleri gerçekleştirmek amacı ile mikroişlemcilere göre daha yavaş ve basit programlanabilen MİKRODENETLEYİCİLER geliştirilmiştir. Mikrodenetleyicilerde bellek, merkezi işlem birimi ile birlikte tek yonga içine gömülmüştür ve miktodenetleyici dışarı ile bilgi alış-verişini doğrudan I/O bağlantıları ile yapabilir. Bazı mikrodenetleyici örnekleri – – – –
Intel 8051 yada MCS-51 Motorola 68HC11 Microchip PIC 16F877 Ve diğer firmalar; NEC, Hitachi, Philips, Mitsubishi…
EEM 448 Mikroişlemciler II No.1-10
Mikroişlemciler/Mikrodenetleyiciler
Bugün 1. Mikroişlemci Temelli Sistemlere Giriş – Mikroişlemci temelli Sistemler – Mikrodenetleyiciler
2. Mikroişlemci Mimarisi – – – –
Mikroişlemci Temelli Sistem Yapısı Mikroişlemci Temelli Sistem Mimarisi Temel Mikroişlemci Özellikleri Temelde Mikroişlemci Çalışması
II. Mikroişlemci Mimarisi 2.1. Mikroişlemci Temelli Sistem Yapısı • Mikroişlemci temelli sistemlerde bulunan birimler: – – – –
Merkezi İşlem Birimi (Central Processing Unit, CPU) Bellek (Memory) Giriş/Çıkış Birimi (Input/Output I/O Unit) Yollar (Busses)
EEM 448 Mikroişlemciler II No.1-12
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Yapısı Bellek (Hafıza)
Aritmetik/Lojik Birimi
Dış Dünya’dan
Giriş Birimi
Kontrol Birimi
Çıkış Birimi
Dış Dünya’ya
Merkezi İşlem Birimi (CPU)
EEM 448 Mikroişlemciler II No.1-13
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Yapısı •
Merkezi İşlem Birimi (Central Processing Unit, CPU) – Mikroişlemci temelli sistemlerde tüm işlemleri gerçekleştiren birimdir. – Program boyunca sırasıyla komutları yürütmek ve bellek-giriş/çıkış denetimi yapmaktır. Örnek: Bir dairenin alanını hesaplayalım, A = pi*r^2 • • • • • •
Algoritma ile mikroişlemci sistemi kullanılır… Giriş verisi r değerine göre çıkış A yı üretir. Programda bazı değişkenler kullanılır. Bellek ile işlemci arasında sürekli bir iletişim vardır. Bellek de yazılan programı işlemci komut komut okur. Buna göre bellek de değişkenler oluşturur (burada A ve r) ve işlemci tarafında okunur/yazılır… • Giriş değeri dış dünyadan alınır ve işlemci tarafında okunur. • Çıkış değeri işlem sonunda bellekte ayrılan yere yazılır ve dış Dünya ya aktarılır.
– CPU iki birimden oluşmaktadır; • Aritmetik/Lojik Birimi (ALU, Arithmatic/Logic Unit) • Kontrol Birimi (CU, Control Unit)
EEM 448 Mikroişlemciler II No.1-14
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Yapısı (devam) •
Merkezi İşlem Birimi (Central Processing Unit, CPU) – Aritmetik/Lojik Birimi (ALU, Arithmatic/Logic Unit) • Kontrol biriminin denetiminde giriş ve/veya bellek biriminden gelen veriler üzerinde aritmetik (toplama, çıkarma, çarpma, bölme) ve/veya lojik (VE, VEYA, DEĞİL, kaydırma v.b.) işlemleri yapar. • Sonuçları bellek ve/veya çıkış birimine yollar.
– Kontrol Birimi (CU, Control Unit) • Mikroişlemci temelli sistemde birimlerin birbiri ile uyumlu çalışması için gerekli zamanlama ve kontrol sinyallerini üretir. • Programda buluna bir komutun çalışması için gereken işareti üreten lojik ve zamanlama devrelerinden oluşur. • Bellek birimine uygun adres bilgisini yollayarak komutların ALU de işlenmesini sağlar. • Mantıksal işlemler ile bellekteki komut sırasıyla; Yakala, Çöz ve Çalıştır işlemlerinden geçirilir.
Not: - İkili Veri: 1 Bit, 1Byte (8 Bit), 1 Kelime (16 Bit), 2 Kelime (32 Bit), 4 Kelime (64 Bit), Kodlanmış veri, Komut Kodları… - Adres; Kelimenin yada komutların bellek içindeki yerini tanımlayan sayı… 8 bit bir mikroişlemci için işlem kodu ve işlenen adresler 8 bit kelimedir… EEM 448 Mikroişlemciler II No.1-15
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Yapısı (devam) •
Bellek Birimi – Mikroişlemcinin çalıştırdığı programın komutlarını ve programda kullanılan verilerin/sabitlerin saklandığı birimdir – ALU tarafından getirilen giriş/çıkış bilgilerinin de saklandığı yerdir. – Kontrol biriminin denetiminde bilgiler doğrudan girişden alınabilir veya çıkışa aktarılabilir. – Bellek Birimi; Program, Sabitler, Değişkeler ve Giriş/Çıkış olarak ayrılabilir. • Programlar; işleme koyulacak yada yürütülecek işlem sırasını ifade eden komutlar zinciridir. • Sabitler; program tarafından kullanılan ve yürütülme sırasında değişmeyen sayılarlardır. • Değişkenler; program tarafından yaratılan yada değiştirilen sayılar/karakterlerdir. • Giriş/Çıkış; programın dış dünyadan aldığı veya verdiği verilerdir.
EEM 448 Mikroişlemciler II No.1-16
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Yapısı (devam) •
Giriş/Çıkış (I/O, Input/Output) Birimi – Giriş birimi dışardan mikroişlemci sisteminin dışındaki fiziksel Dünya dan gelen bilgilerin kontrol birimi denetiminde ALU ve/veya bellek birimine girilmesini sağlar. – Çıkış birimi de benzer şekilde dışarıdaki fiziksel Dünya ya kontrol birimi denetiminde ALU ve/veya bellek birimindeki verilerin gönderilmesini sağlar.. – Bu birimler çevre birimleri olarak da adlandırılır.
EEM 448 Mikroişlemciler II No.1-17
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Yapısı (devam) •
İletişim Hatları, Yollar (Busses); Mikroişlemci, bellek ve giriş/çıkış çevre birimleri arasında iletişimi sağlayan bağlantılardır. •
(i) Adres Yolu(Address Bus); • • • •
•
(ii) Veri Yolu(Data Bus); • •
•
mikroişlemcinin yazacağı ve/veya okuyacağı her bellek hücresine çevre birimlerindeki kaydedicilere (ki bunlar veri hücreleridir) erişebilmek için ikilik bir adresleme mantığı kullanılır. Adrese yolu tek yönlüdür ve kontrol birimi tarafından denetlenir. İşlemci okunacak yada yazılacak yerin adresini adrese yoluna bırakır ve istenilen bellek hücresine veya kaydedicisine erişim sağlanır. Adreslenecek maksimum hafıza aralığı = 2^(adres hattı sayısı) Z80, 6802,8085,8051 için 16 adres hattı, 8086 için 20 ve 68000 için 23 adres hattı vardır Bellek ve diğer çevresel birimler arasında bilgi transferi yapılan çift yönlü akışı sağlar. 8, 16, 34, veya 64 paralel hattan oluşur. Çift yollu olduğu için R/W (Oku/Yaz) işaretleri ile denetimi sağlanır.
(iii) Kontol Yolu(Control Bus); • •
Tüm birimlerin eş zamanlı (senkron) ve kontrollü olarak çalışması için gerekli sinyalleri iletir. Bu işaretler; Saat, Okuma/Yazma, Kesme, Reset (Yeniden Başla) sinyalleri ile iletişim hatlarının kullanımı düzenlenir.
Not; farklı mikroişlemci mimari yapılarında bu yollar ortak da kullanılabilir. EEM 448 Mikroişlemciler II No.1-18
Mikroişlemciler/Mikrodenetleyiciler
2.2. Mikroişlemci Temelli Sistem Mimarisi • Mikroişlemci temelli sistemlerde mimari yapı; komut kümesi, donanım elemanları ve sistem organizasyonu ile yani kontrol sinyalleri, çevre elemanları ve kullanılan bellek gibi donanım elemanları ile ilgilenen bir tasarım konusudur… İki farklı yaklaşım vardır; – Komut Kümesi Mimarisi (ISA, Instruction Set Architecture) Hesaplama özelliklerini karakteristiklerini belirleyen komut kümesi tasarımı – Donanım Kümesi Mimarisi (HSA, Hardware Set Architecture) CPU, depolama ve I/O sistemlerinin dahil olduğu alt sistem ve bunların bağlantı şekillerinin tasarımıdır.
• •
Mikroişlemci temelli sistemlerde gördüğümüz CPU, Bellek, I/O, Yollar tasarımı HSA nın konusudur. İki farklı yaklaşım vardır; – Von Neuman (Princeton) Mimarisi – Harvard Mimarisi
EEM 448 Mikroişlemciler II No.1-19
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Mimarisi(devam) • Von Neuman (Princeton) Mimarisinde komut işleme; – Program Sayıcı (PC, Program Counter) adı verilen bir kayıtçının gösterdiği adresten (Program belleği) komut alınır. – Getirilen komut kodu kontrol birimi kullanılarak çözülür. Kontrol birimi sistemdeki diğer birimlere sinyal göndererek gerekli operasyonları gerçekleştirir. – Program Sayıcının değeri bir artırılır yada komutların işleyişine göre gerekirse bir sonra gelecek komutun adresi PC ye aktarılır… – İlk adıma geri dönülür.
•
•
Her iki Mimarinin aralarındaki en önemli fark bellek organizasyonundadır. Von Neuman mimarisinde bellek tektir ve program/veri aynı yerde organize edilir. Bu durum hızı düşürebilir. Harvard da ise iki ayrı bellek ile verinin tek bellekten alınıp tekrar geri yazılması sorunu ayrı veri ve program belleği ile çözülmüştür… HSA da donanımsal tasarım yapılmakla birlikte ISA ile programcının donanım elemanlarına nasıl yön vereceği tasarlanmaktadır. YAZILIM (Komut Kümesi Mimarisi) DONANIM
EEM 448 Mikroişlemciler II No.1-20
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Mimarisi(devam) • Farklı üreticiler kendi ISA larını oluşturmakla birlikte 1968 de IBM bir standartizasyon önermiştir. ISA ve Mikrokod Motoru • Aynı ISA sistemi olan donanımlar için yazılan programlar çalışacaktır. • Yazılım ile donanım arasındaki bağlantıyı devreye sokan öz bilgilere yani komut kümesinin yer aldığı bölgeye mikrokod motoru adı verilir • Mikrokod Motoru; özel komutları bir dizi kontrol sinyaline çevirerek sistem elemanlarının denetlenmesini ve gerekli görevleri yerine getirmelerin sağlar bir görevi vardır.
CPU Mikrokod Bellek
Kontrol Birimi Kaydediciler
EEM 448 Mikroişlemciler II No.1-21
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Mimarisi(devam) • Programcı yazdığı program ile sistem tarafından algılandığında doğru zamanda doğru donanım elemanların devreye sokar. Î Komut Kümesinin hazırlanması • Komut kümesi donanımsal tüm özellikleri içerir ve yazılan program derleme işleminin ardından donanımın anlayacağı hale getirilerek donanıma aktarılır. • Komut işlenirken; mikrokod ROM komutu okur, komuta karşılık gelen uygun mikrokodları yükler ve çalıştırır ki komut kümesinin tüm komutlarının mikrokod karşılıkları vardır. • Mikrokod yapının avantajları; – – – –
•
İçerisinde mikrokod bulunan ROM bellek, CPU içerisinde yer almakta olup ana bellekten çok daha hızlıdır. Aynı komut kümesinin adamış mantık üzerinde yürütmek yerine, yeni yongalarda yürütmek daha kolay olur. Program tasarımı yeni komut kümelerini işlemek için tamamen değiştirilebilir. Yeni komutlar mikrokod halinde eskilerinin üzerine eklenebilir. Geriye dönük uyumluluk sağlanabilir.
Farklı amaçlarla yazılan programlarda aynı komut kümesi paylaşılabileceğinden, programlar temel donanımı değiştirmeden makineler arasında taşınabilir.
EEM 448 Mikroişlemciler II No.1-22
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Mimarisi(devam) • ISA bellek Kullanımına göre çeşitlilik gösterir. Î CISC (Complex Instruction Set for Computer) Î RISC (Reduced Instruction Set for Computer) Î EPIC (……………………………… Computer) • Genel olarak yapı
Yüksek Seviyeli Programlama Dili
YAZILIM
Derleme Makine Dili Çözme DONANIM
Mikrokod İşleme ALU, CU, Keydediciler vs
EEM 448 Mikroişlemciler II No.1-23
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Mimarisi(devam) • CISC Mimarisi; Programlanması kolay ve etkin bellek kullanımını sağlayan bir yapıya sahiptir. Yazılımı basitleştirir ancak performansı düşüktür. Değişken uzunlukta komut yapısına sahiptir. Çok kademeli işleme modeline dayanır. • CISC Mimarisi avantajları; – Programlama, Assembly dilinin yürütülmesi kadar kolaydır. – Yeni komutlar ve mikrokod ROM a ekleme özelliği tasarımcıya eski sistemler üzerinde düzenleme yapılmasını sağlar. – Gelişme sürecinde her bir komut daha yetenekli olacağından verilen görevi yerine getirmek daha as komut ile sağlanır. Bu göreceli olarak yavaşlamaya neden olur ancak bellek etkin kullanılacaktır – Komut kümeleri yüksek seviyeli dillerin yapılarına benzer olduğundan derleyiciler karmaşık değildir.
•
CISC Mimarisi dezavantajları; – İşlemci ailesindeki tüm kuşaklar yeni işlemcide de kabul gördüğünden yapı gün geçtikçe daha karmaşık olacaktır. – Farklı komutlar farklı uzunlukta olduğunda işlem süreleri değişir. – Çoğu özel komutlar yeteri kadar sık kullanılmamaktadır – Durum Kayıtçısı yardımı ile çalışan komutlar nedeni ile bekleme süreleri artabilir. EEM 448 Mikroişlemciler II No.1-24
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Mimarisi(devam) • RISC Mimarisi; CISC’e alternatif olarak komut sayısını azaltmak ve komut işleme sürelerini sabit tutmak amacı ile ortaya atılmıştır. • RISC Mimarisi Özellikleri/Felsefesi; – Bütün komutlar tek bir komut çevriminde çalışmaktadır. – Belleğe sadece load (yükle) ve store (sakla) komutlarıyla erişilebilir. – Bütün icra birimleri mikrokod kullanmadan donanımdan çalışmaktadır.
•
•
RISC Mimarisi üstünlükleri; – Hız – Basit Donanım – Kısa Tasarım Zamanı. EPIC Mimarisi; Komutların paralel çalışması amacıyla geliştirilmiştir. Derleyici paralel çalışarak komutları tanımlar, hangi komutların bağımsız olacağını belirler ve bu bilgi ışığında aynı komu çevriminde aynı anda işlenecek komutları oluşturarak performansı artırır. Üstünlükleri; – Komutların paralel işlenmesi, tahmin/spekülasyon kullanımı – Derleme sırasında paralel çalışacak komutları belirleyen derleyiciler – 128 kayan nokta, 128 tamsayı, 64 tahminli kaydedici kümesi – Dallanma tahmini, bellek gecikmesi çözümü – Eskiye karşı uyumluluk, gelişmeye açıklık EEM 448 Mikroişlemciler II No.1-25
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Mimarisi(devam) • CISC ve RISC Mimarisi Farklılığı; CISC
RISC
Ana Bellek
Ana Bellek
Ön Bellek
Komut&Veri Yolu
Kontrol Birimi
Komut Önbelleği
Veri Önbelleği
Veri Yolu
Dananım Kontrol Birimi
Mikrokod EEM 448 Mikroişlemciler II No.1-26
Mikroişlemciler/Mikrodenetleyiciler
2.3. Temel Mikroişlemci Özellikleri 1.) Mikroişlemcinin bir defada işleyebileceği kelime uzunluğu; – Mikroişlemcide kelime uzunluğu paralel olarak işlenen veri bitleri sayısı olup kelime işlemcideki genel amaçlı kaydedicilerin ve bellek alanı kapasitesidir. – Büyük kelime ==> birçok işlemi birlikte yap. – İşlemci her bir komut çevriminde (komutların işlenme zamanı) senkronize olarak komut özelliğine göre bellekten veriler işler. – Mikroişlemci özelliğine göre veri bitleri; 8-Bit = 1-Byte (Hesap makinesi 4-Bit) 16-Bit = 1-Kelime 32-Bit = 1-Çift Kelime 64-Bit = 1-Uzun Kelime – Kelime uzunluğu aritmetik işlemlerde doğruluk oranı ile doğrudan ilintilidir.
EEM 448 Mikroişlemciler II No.1-27
Mikroişlemciler/Mikrodenetleyiciler
Temel Mikroişlemci Özellikleri (devam) 2.) Mikroişlemcinin tek bir komut işleme hızı; – Mikroişlemcinin hızı saat frekansı ile ilgilidir ancak performansı tam olarak saat hızı belirlemez! – Çalışma çevriminin uzunluğu; • Al Getir • Kodunu Çöz • İşlet • Yerine Yaz ile belirlense de mikroişlemcinin hızı saniyede işleyeceği milyon komut sayısı ile ölçülmelidir. – Mikroişlemciler arasındaki hız farkları; • CPU ların devre teknolojisi ve planları • İşlemcilerin kullandığı kelime uzunluğu • İşlemci Komut kümesi • Kontrol sinyal organizasyonu ile denetim düzeni • Belleğe ve I/O birimlerine erişim süreleri • Kesme altyordamları çeşitleri
ile belirlenir… EEM 448 Mikroişlemciler II No.1-28
Mikroişlemciler/Mikrodenetleyiciler
Temel Mikroişlemci Özellikleri (devam) 3.) Mikroişlemcinin doğrudan adresleyebileceği bellek büyüklüğü; – Mikroişlemci temelli sistemlerde bellek adres yolu ile adreslenir ve adres yolundaki paralel hat sayısı adresleme kapasitesini belirler. – Adres yolu mikroişlemcinin yapısı ile ilgili olup fiziksel olarak değişmez! – İşlem sırasında adres işaret kayıtçılarının özellikleri kullanılarak (örneğin 16 bit uzunluğundaki adres bilgisi 4-bit sola kaydırılarak 20-bit adres alanı belirlenebilir) adres yolu programsal olarak artırılabilir… • 2^10 Æ Kilobyte • 2^20 Æ Megabyte • 2^30 Æ Gigabyte • 2^40 Æ Terabyte
EEM 448 Mikroişlemciler II No.1-29
Mikroişlemciler/Mikrodenetleyiciler
Temel Mikroişlemci Özellikleri (devam) 4.) Programcının kullanabileceği komut kütüphanesi; – Mikroişlemcinin hızını etkileyen komutlar; • Veri manevra komutları • Giriş/Çıkış komutları • Aritmetik İşlem komutları • Mantık komutları • Test komutları – Hızı artıran komut işleme süresidir!
EEM 448 Mikroişlemciler II No.1-30
Mikroişlemciler/Mikrodenetleyiciler
Temel Mikroişlemci Özellikleri (devam) 5.) Programcının bellek adreslemede kullandığı adresleme modları; – Adresleme modları üzerinde çalışılan verini belleğe nasıl ve ne şekilde yerleştirileceği veya üzerinde çalışılacak verinin bellekten nasıl ve hangi yaklaşım ile çağrılacağını belirler. – Bu işlem bir paketin adresine doğrudan mı yoksa bir başkasının eliyle mi gideceğine benzer! – Adresleme modları; • Doğrudan adresleme • Dolaylı adresleme • İndisli adresleme olacak şekilde gruplandırılabilir ve kullanıcının işini kolaylaştırır.
EEM 448 Mikroişlemciler II No.1-31
Mikroişlemciler/Mikrodenetleyiciler
Temel Mikroişlemci Özellikleri (devam) 6.) Programcının üzerinde çalışabileceği kayıtçı çeşitleri; – Programcının verileri hareket ettirmek, kısa süreliğine tutmak amacı ile kaydediciler kullanır. – Kaydediciler sayısını fazla olması manevra kolaylığı ve programcıya esneklik sağlar. Farklı mikroişlemciler farklı sayıda ve amaçlara kaydedici tanımlamışlardır. – Genel olarak kaydediciler; • Genel amaçlı kaydediciler • Özel amaçlı kaydediciler • Gizli kaydediciler olacak gruplandırılır. Not: Kaydedicilere sonra geri dönülecektir!
EEM 448 Mikroişlemciler II No.1-32
Mikroişlemciler/Mikrodenetleyiciler
Temel Mikroişlemci Özellikleri (devam) • Mikroişlemcilerin gelişimi ile artan diğer özellikler; – – – –
Ön Bellek (Cache Memory) sistemi Süper-ölçekli işlem Dallanma tahmini Çoklu program işleme
olarak gruplandırılır.
EEM 448 Mikroişlemciler II No.1-33
Mikroişlemciler/Mikrodenetleyiciler
2.4. Temelde Mikroişlemci Çalışması • Basit (örneğin 8-bit) bir Mikroişlemcide bulunan birimler: – Verilerin manevrasında kullanılan ve bellek ile aynı yapıya sahip, kendine özgün adres yerine adı ile çağrılan kaydediciler (registers) – Aritmetik ve Mantık işlemlerinin gerçekleştiği icra birimi – CPU içerisindeki tüm işlemlerden ve zamanlamalardan sorumlu Kontrol birimi
•
Bu birimleri inceleyelim…
EEM 448 Mikroişlemciler II No.1-34
Mikroişlemciler/Mikrodenetleyiciler
Mikroişlemci Temelli Sistem Yapısı MAR
Dahili Adres Yolu PC
DAR
Bellek
Dahili Veri Yolu MBR
IR DR
ALU
A
Komut Kod Çözücü
Diğer CPU Elemanlarına
Zamanlama/ Kontrol Birimi
Kontrol Yolu
EEM 448 Mikroişlemciler II No.1-35
Mikroişlemciler/Mikrodenetleyiciler
Temelde Mikroişlemci Çalışması (devam) •
Kaydediciler; – Her biri belli bir amaca göre yapılandırılmıştır. Yaptıkları işe göre adlandırılırlar ve bellek alanı ile aynı özelliklere sahiptirler. İşlemci içerisinde olduklarından hızlıdırlar. – Esasları kaydıran kaydedicilere (flip-flop) dayanırlar ve – Genel Amaçlı Kaydediciler; • Programın üzerinde işlem yapacağı verilerin manevrasında kullanılırlar • A,B,X gibi isimlendirilirler. A kaydedicisi Akümülatör olarak bilinir. Bazen W Working kaydedicisi de denir. • DR, (Data Register) Veri Kaydedicisidir ve işlenen verileri tutar.
– Özel Amaçlı Kaydediciler; • Program adreslerini ALU da yapılan işlem sonucuna göre yada yığın olarak kullanılan bellek bölgesinin adresini indis sayıcı bilgilerini tutarlar. • Program Sayıcı (PC, Program Counter), Yığın Göstericisi (SP, Stack Pointer), Durum Kaydedicisi (SR, Status Register) yada Koşul kod kaydedici • Bunların dışında sadece alt düzey programcıların ulaşabildiği programcıya görünmeyen kaydediciler; Indeks Kaydedici (IX, Index Register), Komut Kaydedici (IR, Instruction Register). Veri Adres Kaydedici (DAR, Data Adress Register), Bellek Adres Kaydedici (MAR, Memory Adress Register) Bellek Tanpon Kaydedici (MBR, Memory Buffer Register)
EEM 448 Mikroişlemciler II No.1-36
Mikroişlemciler/Mikrodenetleyiciler
Temelde Mikroişlemci Çalışması (devam) •
Aritmetik/Lojik Birimi; – ALU mikroişlemcide aritmetik ve lojik(mantık) işlemlerin yapıldığı birimdir. – Burada işlemler akümülatör ile bellekten alınan veri arasında veya akümülatör ile kaydediciler arasında iki elemana dayalı veya tek elemana dayalı olarak akümülatörde, kaydedicide veya bellekten bir kelime üzerinde gerçekleştirilir – Buradaki işlemler; • Toplama, çıkarma çarpma, bölme • Çarpma işlemi verinin bir sola kaydırılması ile iki ile çarpılması mantığı ile • Veya bölme bir sağa kaydırılması ile gerçekleştirilir.
– Bu işlemler toplayıcı, çıkarıcı ve kaydıran devreler ile gerçekleştirilir. – Bu devreler dahili veri yolu vasıtası ile birbirlerine, harici veri yolu ile kaydedicilere ve zamanlama-kontrol birimine ulaşır. – ALU nun çalışmasını bir toplama işlemi ile açıklarsak; • Birinci veri yükle komutu ile klavyeden girilen bilgi akümülatöre yüklenir • Sonra topla komutuyla birlikte toplanacak bellek adresi ile belirtilen veri geçici olarak DR ye alınır ve bir sonraki komut çevriminle birlikte Akümülatöredeki veri ile toplanarak sonuç akümülatöre yazılır. • Bu işlem sonucunda diğer kaydediciler, örn. Durum kaydedici, etkilenebilir. • İkinci işlenen veri başka bir kayıtçıda da bulunabilir. EEM 448 Mikroişlemciler II No.1-37
Mikroişlemciler/Mikrodenetleyiciler
Temelde Mikroişlemci Çalışması (devam) •
Aritmetik/Lojik Birimi (devam); – ALU’da gerçekleştirilen tek işlenenli işlemlere akümülatörlü silme, tamlama veya tersleme, sağa/sola kaydırma ve yönlendirme, indis kaydedicileri artırma/azaltma işlemleri örnek verilebilir. İki işlenenli işlemler toplama, çıkarma, karşılaştırma, mantıksal AND, OR, XOR ve BCD aritmetik işlemler örnek verilebilir. – Karmaşık işlemleri, örn karakök gibi, doğrudan gerçekleştirilmesi için ayrı bir altyordam gruplarına veya ek elektronik donanıma gerek duyuylur. – 8-bit lik işlemcilerde yuvarlanmış kesirli sayılar ile işlem yapmak kolay değildir ve yuvarlanmış kesirli sayılar yerine tam sayılar kullanılır. – Günümüz teknolojisinde bu işlemleri yapmak amacı ile bir ortak işlemci daha yerleştirilir.
EEM 448 Mikroişlemciler II No.1-38
Mikroişlemciler/Mikrodenetleyiciler
Temelde Mikroişlemci Çalışması (devam) •
Zamanlama ve Denetim Birimi; – Sitemin tüm işleyişinden ve işlemin zamanında yapılmasından sorumludur. – Bu birim, bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun çözülmesi, ALU tarafından işlenmesi ve sonucun alınıp geri belleğe konulması için gerekli denetim sinyallerini üretir. – Bu birimde işlevlerine göre; • Zamanlama denetimi; sistemin isterlerine göre zamanlama sinyalleri üretilir ve komut kod çözücüye gönderilir. • Komut kod çözücü; komut kaydedicinde tutulan komutları yorumlar ve ALU ya kaydedicilerle çalışması için uygun zamanlama ve kesme sinyalleri gönderir. • Kesme mantık birimi; bu birimde diğer kontrol elemanlarına benzer ve gerekli durumlarda kesme sinyallerini alarak işlemciyi uyarır.
– Bu birim merkezi işlem biriminin en karmaşık bölümü olup saat darbe dizileri ile işlem görür. – Bu işlemler; “Getirme periyodu” (komut bellekten okunur ve kodu çözülür) ve “Yürütme periyodu” (gerekli kontrol sinyallerine göre işlevi gerçekleştirilir) olarak ifade edilirler.
EEM 448 Mikroişlemciler II No.1-39
Mikroişlemciler/Mikrodenetleyiciler
Kaydediciler •
Program Sayıcı; – Yürütülmekte olan programda sırası gelen komutun adresini tutan kaydedicidir. – Mikroişlemci hafızadan aldığı her komutun sonunda sonra gelecek komutun adresini program sayıcıyı değerini otomatik olarak artırarak (yada azaltarak) belirler. Bu amaçla kullanılan algoritma; 1. 2. 3. 4.
Program Sayıcıyı başlangıç adresine kur. Program Sayıcının gösterdiği adresten komut al. Komutu işlet Dallanma var mı? YOK ise Program Sayıcıyı bir artır, VAR ise Program Sayıcıya dallanma adresine yükle 5. İkinci adıma dön
EEM 448 Mikroişlemciler II No.1-40
Mikroişlemciler/Mikrodenetleyiciler
Kaydediciler(devam) •
Yığın Göstericisi (SP, Stack Pointer); – RAM bellğin bir bölümü programcı tarafından veya herhabgibir komutun işlenmesi sırasında geçici olarak kullanılır. Belleğin bu bölümüne yığın denir. – Yığın göstericisi yığın adresini tutan kaydedicidir ve bununla yığının istenilen noktasına erişilebilir. – Yığına atılan verilerde son giren ilk çıkar (LIFO, Last In First Out) mantığı yani son olarak yığına giren veriyi önce çıkartarak kullanılır. Veriler
Yığın Göstericisi 3FFB
3FFB 3FFC 3FFD 3FFE
03 50 B7
YIĞIN
Yığın Başlangıç Adresi
EEM 448 Mikroişlemciler II No.1-41
Mikroişlemciler/Mikrodenetleyiciler
Kaydediciler(devam) •
Komut Kaydedici (IR, Instruction Register); – CPU, bellekten komut kodunu alıp getirdiğinde ilk önce bu kaydedici kullanılır. – Komut kodu burada deşifre devresi tarafında kodu çözülerek hangi işlemin yapılacağı belirlenir.
•
Indeks Kaydedici (IX, Index Register); – – – –
Bellekteki toplu verilere veya veri tablolarına erişimde kullanılırlar. Kaydedicilere has artırma/azaltma komutları ile sayaç vazifesi de görebilir. Hesaplanan ara değerlerin geçici olarak tutulduğu yerdir. Program döngülerinde ve zamanlama uygulamalarında bir sayıcı olarak kullanılabilir. Zaman gecikmesi istendiğinde bu kaydedici kullanılabilinir. – Bellekte depolanmış dizi halindeki veri tablosu veya veri bloğu üzerinde bir indisçi gibi kullanılır.
EEM 448 Mikroişlemciler II No.1-42
Mikroişlemciler/Mikrodenetleyiciler
Kaydediciler(devam) •
Veri Adres Kaydedici (DAR, Data Adress Register); – Bellek üzerinde çalışılan adresin oluşturulmasında kullanılır. – Programın işleyişi sırasında komut kodu çözüldükten sonra mutlak adres bilgisi okuma ile bellekten getirilir. – Böylece üzerinde çalışılacak adres DAR de üretilmiş olur
•
Veri Kaydedici (DR, Data Register); – Akümülatör yada çalışma kaydedicisi ile birlikte ALU da yapılacak olan aritmetik ve mantıksal işlemlerde işlenen bilgisinin tutulmasında kullanılırlar. – Bellekten alınan verilerin üzerinde geçiş yaptırmakla görevlidir.
•
Bellek Adres Kaydedici (MAR, Memory Adress Register); – Bellekten bir veri/komut alınıp getirileceği zaman bu kaydediciye ilgili adres bilgisi koyulur. – Program çalıştırıldığında komut kodlarının adresleri önce PC’ye ve oradan da MAR’a konularak hedef gösterilir. – MAR bir tampon kaydedici olarak da düşünülebilir.
•
Bellek Veri Kaydedici (MDR, Memory Data Register); – Bellekten herhangi bir veri/komut işlemciye getirilmesi istendiğinde tampon olarak bu kaydedici otomatik olarak kullanılır.
EEM 448 Mikroişlemciler II No.1-43
Mikroişlemciler/Mikrodenetleyiciler
Kaydediciler(devam) •
İşlemci Durum Kaydedici (SR, Status Register); – Aritmetik ve Lojik işlemler sonucunda bu kaydedicinin bayrakları (herhangi bir biti) etkilenir ve değer değiştirirler. – Bu kaydedicinin bayraklarına göre program içerisinde kullanılan komutlar işlenebilir. – Bu bayraklar; • • • • •
Elde Bayrağı (Carry Flag); toplama veya çıkarma gibi aritmetik işlem sonrasında bir elde var ise bu bayrak değeri “1” olur. Negatif Bayrağı (Negativ Flag); toplama veya çıkarma gibi aritmetik işlem sonrasında sonuç negatif ise bu bayrak değeri “1” olur. İşaret biti olarak da bilinir. Taşma Bayrağı (Overflow Flag); İkili tümleme sonucunda taşma olup olmadığını gösterir. Varsa “1” olur. Sıfır Bayrağı (Zero Flag); toplama veya çıkarma gibi aritmetik işlem sonrasında sonuç sıfır ise bu bayrak değeri “1” olur. Bu durumda iki sayı birbirine eşittir. Kesme Bayrağı (Interrupt Flag); dışarıdan bir kesme işlemi olup olmadığını gösterir ve varsa “1” olur.
EEM 448 Mikroişlemciler II No.1-44
Mikroişlemciler/Mikrodenetleyiciler
Örnek: PIC Kaydediciler •
W (Working, Çalışma) Kaydedici; – Programda veri alanının görülmeyen 8-bitlik kaydedicisi olup geçici olarak veri depolama alanı olarak kullanılır. – Bir bellek adresi yoktur ve W’daki veri adres belirtmeden ulaşılır. Movlw Movwf
0x0F PORTB
; W’ya 0x0F değerini yükle ;W’yı PORTB ye yükle
W; 0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
PORTB;
EEM 448 Mikroişlemciler II No.1-45
Mikroişlemciler/Mikrodenetleyiciler
Örnek: PIC Kaydediciler (devam) •
STATUS (Durum) Kaydedici; – Program akışını kontrol eden 8-Bit uzunluğunda en önemli kaydedicilerden biri olup üç bölümde incelenebilir: • • •
Durum gösterge bitleri; Elde (C) ,basamak elde (DC), sıfır (Z) bayrakları. İşlemci durum bitleri; Time-out (TO) ve Power-down(PD) bayrakları ile işlemcinin uykuda mı yoksa yeni çalışmaya başladığını gösterirler. Bellek bank değiştirme bitleri; RP0-2 ile PIC bellek bankları arasında geçiş sağlanır.
– Bu bayraklar yazılır/okunur (R/W). – Detaylı bilgi için ders kitabı 102 sayfa
Bank Değiştirme Bitleri
R/W-0 R/W-0 R/W-0 IRP RP0 RP1 bit-7
6
5
İşlemci Durum
R-1
R-1
TO
PD
4
3
Durum Gösterme Bitleri
R/W-x Z 2
R/W-x
R/W-x
DC
C
1
bit-0
EEM 448 Mikroişlemciler II No.1-46
Mikroişlemciler/Mikrodenetleyiciler
Örnek: PIC Kaydediciler (devam) •
Program Sayıcı; – 13-Bit uzunluğunda olan Program Sayıcı RAM veri belleği (File Register) içinde adreslenir ve RAM’de 8-Bit veri depolanabildiği için iki parçada işlem görür; • •
PCL (Program Counter Low, Program Sayıcı Alt) program sayıcının düşük 8-bit lik bölümünü belirler. PCH (Program Counter High, Program Sayıcı Üst) program sayıcının üst 5-bit lik bölümünü belirler.
PCL ye doğrudan ulaşmak mümkün olduğu halde PCH e PCLATH kaydedicisi kullanılarak dolaylı ulaşılır.
PCH bit-12
bit-7
bit-5 bit-4
PCL
bit-8 bit-7
bit-0
bit-0 PCLATH EEM 448 Mikroişlemciler II No.1-47
Mikroişlemciler/Mikrodenetleyiciler
Bugün 1. Mikroişlemci Temelli Sistemlere Giriş – Mikroişlemci temelli Sistemler – Mikrodenetleyiciler
2. Mikroişlemci Mimarisi – – – –
Mikroişlemci Temelli Sistem Yapısı Mikroişlemci Temelli Sistem Mimarisi Temel Mikroişlemci Özellikleri Temelde Mikroişlemci Çalışması
3.1 Mikroişlemci Programlama Teknikleri • Mikroişlemci temelli sistemlerde donanım tek başına çalışamaz!!! • Yazılım ve donanım doğru kullanıldığında bir görevi icra ederler!!! • Mikroişlemcilerde bir program: – Program bölümü – Veri bölümü
olarak ayırabiliriz. • Programı oluşturan komutlar ise bir amaca yönelik fonksiyonlar ve fonksiyonların işlendiği işlenenlerin yerleri olacak şekilde ayrıştırmak mümkündür… • Komutların genel yapısına bakıldığında <Etiket> OpKod<.Alan> <İşlenenler> <;Açıklama>