Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/0/blg-1/ Merkezi İşlem Birimi (MİB): Bilgisayarın temel birimi Hız Sözcük uzunluğu kümesi Adresleme yeteneği Adresleme kapasitesi MİB in İç Yapısı Intel 4004 1971 yılında bir tümdevrede ilk ticari mikroişlemci 1 bit adres yolu 4 bit veri yolu MİB Yapısı Bellek Adres Kütüğü (BAK) Bellek Veri Kütüğü (BVK) Aritmetik Lojik Birim (ALB) Akümülatör (ACC) Durum Kütüğü (DK) Yardımcı Kütükler (YK) Program Sayacı (PS) Kütüğü (BK) Çözücü (BÇ) Yığın Göstergesi (YG) Sıralama Kütüğü (SK) Denetçi (DEN) http://ninova.itu.edu.tr/tr/dersler/elektrik-elektronik-fakultesi/0/blg-1/ MİB in İç Yapısı MİB Altbirimleri Bellek Adres Kütüğü (BAK): MİB den giden veya MİB e gelen verilerin gideceği veya geldiği yerin adresini belirtir. Adres yolunu bağlıdır. Bellek Veri Kütüğü (BVK): MİB den giden veya MİB e gelen verilerin alınıp verildiği bir iskele. Veri yoluna bağlıdır. Akümülatör (ACC): BVK üzerinden gelen veriler akümülatöre alınır. Aritmetik ve lojik işlemler sırasında verinin üzerinde bulunduğu yer. Aritmetik Lojik Birim (ALB): ACC deki veri üzerinde yapılacak işlemler ALB tarafından yürütülür. Aritmetik işlemler Mantıksal işlemler Karşılaştırma ve karar verme işlemleri 1
Aritmetik Lojik Birim (ALB) ALB' nin üzerinde işlem yapacağı işlenenler ALB in girişleridir. ALB in yapacağı işlemleri, İşlem ve Öteleme girişleri belirler. İşlem sonucu ALB in temel çıkışıdır. İşlem sonucu ortaya çıkan durum en temel olarak, Taşma ve Sıfır çıkışları ile gösterilir. Durum Kütüğü DK nın içeriği karar verme işlemlerinde kullanılır. ALB tarafından gerçeklenen işlemlerin sonunda ortaya çıkan durumlar Elde Borç Yarım Elde ve Yarım Borç Taşma ACC nin yüklenmesi sonucunda ortaya çıkan durumlar Sıfır Negatif T S N Y E Durum Kütüğü Örnek: A= 01001000 B= 01111001 A+B: A 01001000 B +01111001 11000001 T=1 S=0 N=1 Y=1 E=0 Yardımcı Kütükler MİB içindeki işlemlere hız kazandırır. Üzerinde sık işlem yapılacak veriler için kullanılırlar. Veriler BVK üzerinden belleğe ya da G/Ç arabirimine gönderilebilirler veya bu birimlerden veri alabilirler. Aritmetik lojik işlemlerde birinci işlenen olamazlar. MİB Altbirimleri Program Sayacı: Bir sonraki buyruğun adresini içerir. Boyu BAK nün boyuna eşittir. Kütüğü: O anda işlenen buyruğu içerir. Çözücü: BK da bulunan buyruğun taşıdığı anlamın çözüldüğü yer. Yığın Verileri üst üste yığmaya ve gerektiğinde verileri yığından teker teker almaya yığın işlemi denir. Örnek: MİB içinde yığın için 4 göz bulunuyor. YG 11 10 01 00 V 6 V 6 V 6 V 6 YG=11 YG=00 YG=11 YG=00 YG=01 YG=00
Yığın Göstergesi Yığın Göstergesi Bellek içinde istenen bir bölge yığın için ayrılıyor. Yığının nerde kurulduğunu belirtmek için yığın göstergesi kullanılıyor. Yığın göstergesi yığının başlangıç adresi ile yüklenir. Yığına her yeni veri eklendiğinde yığın göstergesinin değeri bir azalır. Adres $9FFF $9FFA V 0 YG $ 9FFF $9FFA Bellek içinde istenen bir bölge yığın için ayrılıyor. Yığının nerde kurulduğunu belirtmek için yığın göstergesi kullanılıyor. Yığın göstergesi yığının başlangıç adresi ile yüklenir. Yığına her yeni veri eklendiğinde yığın göstergesinin değeri bir azalır. Adres $9FFF $9FFA V 0 YG $ 9FFF Sıralama Kütüğü Denetçi Sıralı verilerin belleğe yazılması veya bellekte sıralı olarak bulunan verilerin okunması için kullanılır. Boyu BAK boyuna eşittir. Hem MİB içindeki hem de bilgisayar içindeki çalışmayı düzenler. Girişler Çıkışlar SAAT Oku/Yaz Albaştan Yalıtıldı Bekle Saat çıkışı Kesme Bellek ya da G/Ç Kesme İsteği Yalıtım Denetim Birimi Girişleri Saat: Bilgisayar içindeki her işlem saat işaretine bağlı olarak gerçeklenir. Albaştan: Bilgisayarı ilk açıldığı duruma getirmek için kullanılır. Bekle: MİB bir süre durmasını sağlar. Kesme: MİB o anda yürütmekte olduğu programı keser ve daha önce belirtilmiş olan kesme hizmet programını yürütür. Kesme İsteği: Bu girişe gelen kesme isteğine, kesme isteği karar bayrağına verilecek değer ile izin verilir ya da verilmez. Yalıtım: MİB adres ve veri yolu çıkışları üçüncü konuma getirilir. Denetim Birimi Çıkışları Oku/Yaz: Verilerin akış yönünü belirler. Yalıtıldı: Veri ve adres yolunun yalıtıldığını belirtir. Saat Çıkışı: Bilgisayar içindeki diğer birimlere gerekli olan saat işaretini sağlar. Bellek ya da G/Ç: Adres yolu üzerinde bulunan adres bilgisinin bellek adresi mi yoksa G/Ç arabirimi adresi mi olduğunu belirtir.
MİB Dış Görünümü lar Albaştan Kesme Kesme İsteği Yalıtım Yalıtıldı Oku/Yaz Bellek G/Ç Bekle Saat girişi Merkezi İşlem Birimi Saat çıkışı Veri Yolu Adres Yolu MİB nin her adımda yapması gereken işlemleri belirten açıklama Tek Alanlı Yazma Kalıbı Çok Alanlı Yazma Kalıbı Tek Alanlı Yazma Kalıbı Bir Adresli Yazım Kalıbı Tek Alanlı Yazma Kalıbı İki Adresli Yazımı V 7 V 6 V 0 Komut Kalkış veya Varış Adresi komut 8 adres V 7 V 6 V 0 Komut Varış Adresi Kalkış Adresi 4 Komut 8 Varış Adresi 8 Kalkış Adresi 5......V 0 048 komut adres 5... 1...V 6...V 0 16 Komut Varış Adresi Kalkış Adresi Komut Kalkış veya Varış Adresi Komut Varış Adresi Kalkış Adresi Çok Alanlı Yazma Kalıbı Kümesi Çok Sözcük İçine Yazılmış lar 1 Adresli Yazımı Komut Adresin Üst Kısmı Adresin Alt Kısmı 1. Sekizlik. Sekizlik. Sekizlik 56 Komut 6556 Adres MİB nin buyruk kümesinin özellikleri kümesi (hangi işlemler yapılabilir?) yapısı (lar nasıl belirtiliyor?) Veri saklama (Veri nerde saklanıyor?) Adresleme yöntemleri (Veriye nasıl erişiliyor?) Hata durumu (Hata oluştuğunda ne oluyor?) Bilgisayar mimarisini anlamak işletim sistemi tasarımcıları, derleyici tasarımcıları ve programcılar için önemli. 4
MİB Kümesi Bilgisayar donanım olarak gerçeklendiğinde sadece buyruk kümesini biliyor. CISC (Complex Instruction Set Computer - karmaşık komut kümesi bilgisayarı): Çok sayıda komut destekler RISC (Reduced Instruction Set Computer - azaltılmış komut kümesi bilgisayarı): Bu tasarımda gerekli komut sayısı azaltılarak donanım yükü yazılıma kaydırılmıştır. MİB sadece ikili verilerden oluşan buyruklarla işlem yapabiliyor. Bütün buyruklar 0 ve 1 dizilerinden oluşuyor. Bütün veriler yine 0 ve 1 dizilerinden oluşuyor. Makine Dili MİB nin yapabildiği işlemlere karşılık düşen ikili sayılardan oluşan buyruk kümesi 0 ve 1 bitlerinin belirli kod düzenine göre sıralanmasından oluşur. Her MİB nin kendine özgü buyruk kümesi vardır. Simgesel Dil Makine dilinde ikili kodlanmış buyrukların herbiri bu buyrukları çağrıştıracak kısaltmalar kullanılarak isimlendirilmiştir. Kısaltmalar kullanılarak yazılan programlara simgesel dilde yazılmış olur. Farklı Kümeleri Yüksek düzeyli bir dilde A = B + C işlemi CISC işlemcilerde bir buyruk olarak işlenebilir: add mem(b), mem(c), mem(a) Intel işlemcilerde buyruk olarak işlenebilir: mov eax, B add eax, C mov A, eax RISC işlemcilerde 4 buyruk olarak işlenebilir: load R1, B load R, C add R, R, R1 store A, R http://ninova.itu.edu.tr/tr/dersler/elektrik-elektronik-fakultesi/0/blg-1/ Örnek Örnek MİB için simgesel dil ve makine dili Etiket Komut İşlenen Açıklama Adres İçerik 0010 00 0 00 80 BAŞLA YÜK A, <$0080> 0014 0 0 00 81 TOP A, <$0081> 0018 01 0 00 8 YAZ A, <$008> Buyruğun Yürütülmesi I:=0 REPEAT Bellekte I adresinden bir buyruk al Buyruğu yürüt I:=I+1 FOREVER 5
Buyruğun Yürütülmesi Yürütülmesi I:=0 REPEAT Bellekte I adresinden bir buyruk al Buyruğu yürüt I:=I+1 FOREVER Getirme Çevrimi Okuma Çözme İşlenen Okuma Bellekten buyruğun okunması uzunluğunu ve gerekli komutları belirleme İşlenenin adresini belirleme ve okuma Yürütme Çevrimi Yürütme Sonucu Saklama Sonraki İşlemi yürütme Daha sonraki kullanım için sonucu saklama Bir sonraki buyruğu yürütme Getirme Çevrimi Aşamaları Bellekte $000 adresinde blunan bir buyruk yürütülmek isteniyor. PS değeri $000 olarak ayarlanıyor. Buyruğun getirilmesi için gerekli adımlar: Adres yoluna PS bulunan adres bilgisini konulur ve denetçi OKU sinyali etkin duruma getirir Adres kod çözücü girişine gelen adres bilgisi çözülerek hangi bellek gözüne erişileceği belirlenir. Bellek gözündeki veri veri yoluna aktarılır Veri yolundaki veri BVK üzerinden MİB içindeki BÇ aktarılır çözüldükten sonra buyruğun yürütülmesi için denetçi uygun sinyalleri oluşturur Buyruğun Yürütülmesi I:=0 REPEAT Bellekte I adresinden bir buyruk al Getirme çevrimi aşamaları Buyruğu yürüt: Eğer veri bellekteyse veriyi al ta belirtilen işlemi yap Eğer sonucu belleğe yazmak gerekiyorsa yaz I:=I+1 FOREVER Örnek Örnek : C:= A+B MİB oku oku oku yaz Bellek A B C PS BAK YUK 10 BK 1 1 80 11 BÇ 10 1 10 TOP 1 81 11 11 1 YAZ 14 80 8 15 5 80 81 8 4 ACC PS BAK BVK ACC 10 10 YUK X 11 11 80 X 11 80 1 1 TOP 1 1 81 1 81 5 14 14 YAZ 5 15 15 8 5 15 8 5 5 8 okuma işlemi 1 yazma işlemi 6