Komutların Yürütülmesi

Benzer belgeler
BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

Mikrobilgisayar Sistemleri ve Assembler

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bilgisayar Mimarisi ve Organizasyonu Giriş

BM-311 Bilgisayar Mimarisi

Çalışma Açısından Bilgisayarlar

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

BM-311 Bilgisayar Mimarisi

Mikrobilgisayar Mimarisi ve Programlama

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Embedded(Gömülü)Sistem Nedir?

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

İşletim Sistemleri (Operating Systems)

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

İşletim Sistemlerine Giriş

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

Bölüm Bazı Temel Konseptler

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

Yrd.Doç.Dr. Celal Murat KANDEMİR

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

Bilgisayar Donanım 2010 BİLGİSAYAR

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk bit 07FF kullanıcının program alanı

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

MİKROİŞLEMCİLER 1 Ders 1

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

8. MİKROİŞLEMCİ MİMARİSİ

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

Şekil. 64 Kelimelik Yığıtın Blok Şeması

BİLGİSAYAR MİMARİSİ. Mimariye Giriş. Özer Çelik Matematik-Bilgisayar Bölümü

PIC16F877A nın Genel Özellikleri

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Bilgisayar İşletim Sistemleri BLG 312

Komut Seti Mimarisi (ISA)

Bilgisayar Mimarisi Nedir?

Yrd.Doç.Dr. Celal Murat KANDEMİR

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

Mikroişlemcili Sistemler ve Laboratuvarı

BÖLÜM in Bellek Organizasyonu

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

MİKROİŞLEMCİ MİMARİLERİ

MTM 305 MĠKROĠġLEMCĠLER

Mikroçita. Mikroçita Rapor 2:

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

İşletim Sistemlerine Giriş

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

8086 Mikroişlemcisi Komut Seti

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Mikroişlemcili Sistemler ve Laboratuvarı

Bilgisayarların Gelişimi

BM-311 Bilgisayar Mimarisi

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

Mikroişlemciler ve Mikrodenetleyiciler

Bileenler arasndaki iletiim ise iletiim yollar ad verilen kanallar yardm ile gerçekleir: 1 Veri Yollar 2 Adres Yollar 3 Kontrol Yollar

Mikrobilgisayarlar. Mikroişlemciler ve. Mikrobilgisayarlar

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

İŞLEMCİ DURUM KAYDEDİCİSİ (PROCESSOR STATUS REGISTER)

MİKROİŞLEMCİLER. 2. Hafta. Mikroişlemci Temel Kavramlar

SPARC v8 İŞLEMCİ SİMÜLASYONU

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

Sequential (SEQ, Ardışıl) Y86 İşlemci Uygulaması (Devamı)

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. Kütükler. Kütükler. Merkezi İşlem Biriminin İç Yapısı

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar

SAYI SİSTEMLERİ. 1. Sayı Sistemleri. Sayı Sistemlerinde Rakamlar

ASENKRON (Eş Zamanlı Olmayan) HABERLEŞME ARA YÜZEYİ

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

BİLGİSAYAR MİMARİSİNDE YENİ YAKLAŞIMLAR DÖNEM PROJESİ

Bilgisayar Temel kavramlar - Donanım -Yazılım Ufuk ÇAKIOĞLU

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

PROSESLER. Proses. Proses

Transkript:

Komutların Yürütülmesi Bilgisayar Bileşenleri: Genel Görünüm Program Sayacı Komut kaydedicisi Bellek Adres Kaydedicisi Ara Bellek kaydedicisi G/Ç Adres Kaydedicisi G/Ç ara bellek kaydedicisi 1

Sistem Yolu Kavramı Adres yolu: Veri yolundaki verinin ait olduğu birimin adresini taşır. Tek yönlüdür Veri yolu: Verinin taşındığı sistem yolu bileşenidir. Çift yönlüdür. Kontrol yolu: Kodu çözülen komutlara bağlı olarak üretilen kontrol sinyallerinin taşındığı sistem yolu bileşenidir. Kaydedici Organizasyonu Kaydediciler bellek hiyerarşisinde en üst seviye düzeydedirler. Az sayıda fakat yüksek hızda saklama alanlarıdır. Veri ve kontrol bilgileri (komutlar) için geçici saklama alanlarıdır. İki kategoride toplanırlar: Genel amaçlı (Kullanıcı görünür) Assembly programlama seviyesinde, komutlar sayesinde kullanıcıya kullanma imkanı verilen kaydediciler. Özel amaçlı (Kontrol ve durum) MİB in işleyişini kontrol etmek için kullanılırlar. Çoğu kullanıcıya görünür değildir. Kullanıcı tarafından programlamada doğrudan kullanılmaz. 4 2

Genel ve Özel Amaçlı Kaydediciler Genel Amaçlı Kaydediciler Farklı işlevleri yerine getirmek amacıyla kullanılabilirler. Gerçekleştirecekleri işlemler talimat içinde tanımlanmıştır. Adresleme fonksiyonu için de kullanılabilirler. Özel Amaçlı Kaydediciler Veri Kaydedicileri Veriyi saklar ve operand adresinin hesaplanmasında kullanılmaz. Örneğin Akümlatör Adres Kaydedicileri Adres bilgisini tutarlar. Örnekler: genel amaçlı adres kaydedicileri, segment göstericiler, stack göstericiler, index kaydedicileri. 5 Özel Amaçlı Kaydediciler Durum kodları veya Bayraklar (Flags) Gerçekleştirilen işlem sonucuna bağlı olarak işlemci tarafından ayarlanan bit kümesidir. Program tarafından erişilebilir fakat doğrudan değiştirilemez. Örnekler: İşaret bayrağı (sign flag) Sıfır bayrağı (zero flag) Taşma bayrağı (overflow flag) Bit değerleri, bir koşula bağlı olarak programı yönlendiren komutlar içinde kullanılırlar. 6 3

Kaç tane Kaydedici yeterlidir? Kaydedici sayısının fazla olması MİB içinde daha fazla işlemin gerçekleştirilmesine imkan sağlar. Böylelikle bellek bant genişliği ihtiyacını düşürür. Kaydedici sayısı artışı komut kelimesi (makine kodu) içinde kaydedici bilgisinin saklanacağı alan büyüklüğünü arttırır. Çoğu makine 8-64 bitlik kaydedici yapısı kullanırlar. 7 Kaydedici Kelime Büyüklüğü? Adres kaydedicisi en büyük adresi tutacak kadar geniş olmalıdır! Veri kaydedicileri, çok farklı tipteki verileri saklayabilecek büyüklükte olmalıdır. Eğer çoğu gerçekleştirilecek işlem 16 veya 32 bit ise 64-bitlik kaydediciler kullanılmak istenilmez. Bellek veri yolu genişliğine de bağlıdır. Daha büyük biçimdeki veri tipleri için kaydediciler birleştirilebilir olmalıdır. 8 4

Kontrol ve Durum (Status) Kaydedicileri Bu kaydediciler, komutların getirme (fetching), kod çözme (decoding) ve yürütme (execute) çevrimlerinde kullanılırlar. Çoğu programcıya görünür değildir. Bazıları görünür olmakla birlikte içerikleri kolaylıkla değiştirilemezler. 9 MİB (CPU) Bileşenleri Aritmetik Mantık birimi (ALU) Tümleyici Toplayıcı Kaydırıcı Kontrol Birimi Donanımsal/Programsal Geçici saklama (kısa süreli) Genel amaçlı kaydediciler Özel amaçlı kaydediciler Program Sayacı Komut kaydedicisi Bellek Adres Ara Bellek kaydedicisi G/Ç Adres G/Ç ara bellek kaydedicisi 10 5

Tipik Kaydediciler Kaydedici Program Sayacı - PC (Program counter) / Komut Gösterici - IP (Instruction pointer) Komut Kaydedicisi - IR (Instruction register) Bellek Adres Kaydedicisi Memory address register (MAR) Ara bellek kaydedicisi Memory data/buffer register (MBR) Program Durum Kelimesi Program status word(s) (PSW/EFLAGS/FLAGS - flags) İşlevi Çalıştırılacak bir sonraki talimatın adresini tutar. Çalıştırılacak talimatın makine kodunu tutar. Bir sonraki erişilecek bellek adresini tutar. Bellekten getirilen (fetching) aktif veriyi tutar. Talimatların gerçekleştirdiği işlemlerden sonra veri durumlarını kontrol etmek kullanılan bit değerlerini (durumlarını) tutar. 11 ALU İşlevsel Birimleri İçerir Aritmetik işlemler: +, -, *, / Mantıksal işlemler (Boolean): OR, AND, NOT, ExOR Karşılaştırma işlemleri: <, >, = Matematiksel ve kayan noktalı işlemler yardımcı işlemciler gerekebilir. RISC (Reduced Instruction Set Computers) Birden fazla işlevsel birim vardır. İşlevsel birimler pipeline mimari kullanılarak gerçekleştirilir. 12 6

Komut Yapısı ve Komut Seti (Hatırlatma) Komut Seti: Belirli bir merkezi işlem birimine ait farklı tipte talimatların bir araya gelmesinden oluşmuş talimat Komut Yapısı: MİB in işlemi gerçekleştirebilmesi için her talimatın içermesi gereken bilgiler vardır. Bu bilgiler iki ana bileşen içinde toplanır: İşlem kodu - Opcode (Operation code) : gerçekleştirilecek işlemin ne olduğunu tanımlar. İşlenen - Operand : İşlem kodu ile bildirilen işlemin işleyeceği verinin nerede olduğunu gösteren talimat bölümüdür. Kaynak işlenenkaydedici, bellek, G/Ç Sonuç işlenenkaydedici, bellek, G/Ç Bir sonraki komut kontrol sonucu program akışının değişmesi gerektiği durumlarda yürütülecek bir sonraki talimatın adresidir. Komut Döngüsü/Çevrimi (Instruction Cycle) Bilgisayarın yerine getirmesi gerek en temel fonksiyon, bellekte yüklü komutlardan oluşan bir kümenin işletimidir. Komutların işlenmesi iki adımda olur: İşlemci komutları birer birer okur (fetch) herbir komutun kodu çözülerek (decode) sırasıyla yürütülür (execute). Bazen komut kodu çözülmesi ve komut yürülmesi adımları ayrı ayrı da ele alınabilir. Bu iki adıma komut döngüsü (instruction cycle) Programın işletimi, tekrarlı bir şekilde komutun alınması ve işlenmesi şeklinde olur. Komutların işletimi komutun doğasına bağlı olarak birkaç işlemden oluşabilir. 7

Getirme Döngüsü (Fetch Cycle) Program Sayacı (PC) yürütülecek bir sonraki komutun adresini saklar. Bu adres, bellek adres kaydedicisine (MAR) konur. İşlemci, PC tarafından MAR a konan adresteki talimatı ara bellek kaydedicisine (MBR) getirir. PC içeriği bir arttırılır Aksi söylenmediği müddetçe Getirilen Talimat, talimat kaydedicisine (IR) kodunun çözülmesi için yüklenir. İşlemci talimatı yorumlar ve işlemi gerçekleştirmek için gerekli adımları yerine getirir. Bu aşama bazen kod çözme döngüsü(decode cycle) olarak da isimlendirilir. Yürütme Döngüsü (Execute Cycle) İşlemci-Bellek Veri transferi MİB ve ana bellek arasında olabilir. İşlemci G/Ç Veri transferi MİB ve G/Ç birimleri arasında olabilir. Veri İşleme Veri üzerinde bazı aritmetik ve mantık işlemleri gerçekleştirilebilir. Kontrol İşlenen talimatların sırasında değişiklik yapılabilir. Jump, call v.b gibi Yukarıdaki işlemlerin birleşimi 8

Komut Çevrimi- Durum Diagramı Kesmeler İşlemin normal yürütülme sırasının diğer modüller (örneğin G/Ç) tarafından kesintiye uğratarak değiştirilmesi işlemidir. Program kesmeleri e.g. taşma, sıfıra bölme Zamanlayıcı kesmeleri MİB içinde bulunan zamanlayıcılar tarafından üretilir. Çok görevlilikte görev paylaşımı için kullanılır. G/Ç kesmeleri G/Ç denetleyicileri tarafından üretilir. Donanım kesmeleri e.g. Bellek parite hatası, pil uyarısı, disk okuma hatası 9

Kesme Çevrimi Komut çevrimine eklenir İşlemci kesme var mı kontrolü yapar Kesme sinyali yoluyla belirtilir. Eğer kesme isteği yoksa bir sonraki komut yürütülür. Eğer bekleyen kesme varsa: Aktif program yürütülmesi askıya alınır Kaydedici içerikleri saklanır (programa ait yürütülecek sıradaki talimat adresi belleğe (STACK-YIĞIN) alınır) PC kaydedicisine yeni adres değeri (kesme servis programının bulunduğu bellek adresi) yüklenir. Kesme için gerekli işlemler yürütülür. Kaydedici içerikleri geri alınır ve askıya alınan program kaldığı yerden yürütülmeye devam edilir. Kesmeler Yoluyla Kontrol Transferi 10

Kesme Döngüsü- Durum Diagramı Çoklu Kesmeler Yeni gelen kesmeler pasifleştirilir. İşlemci bir kesmeye ait işlemi gerçekleştirirken diğer kesmeleri pasifleştirir. Kesmeler bekleme durumuna alınır ve ilk kesme işlemi tamamladıktan sonra askıda olan kesme var mı kontrolü yapılır. Askıdaki kesmeler geliş sırasına göre ele alınarak işlenir. 11

Çoklu Kesmeler Öncelik sırası tanımlanır. (Önceliklendirme) Düşük öncelikli kesmeler daha yüksek öncelikli kesmeler tarafından kesilebilir. Bir kesme çalışırken, yeni gelen kesmenin önceliği daha düşükse yeni gelen beklemeye alınır. Bir kesme çalışırken yeni gelen daha öncelikli ise çalışan kesme olduğu yerde askıya alınır ve yeni gelen kesme işlenir. Yüksek öncelikli kesmenin işletilmesi tamamlandıktan sonra bir önceki kesmenin işletilmesine geri dönülür. Çoklu Kesmeler - Sıralı 12

Çoklu Kesmeler Öncelikli Örnek Program İşletimi Komutlar ve data 16 bit uzunlugunda. 4 bit işlem kodu için toplam 16 işlem kodu olabilir. 2^12 = 4K lık bellek doğrudan adreslenebilir MİB Kaydedicileri: PC,I/O ve geçici depolama birimi AC(akümülatör) İşlem kodlarının bir kısmı: 0001 = bellekten akümülatöre yükle 0010= akümülatörden belleğe yükle 0101= bellek ile akümlatörü topla ve sonucu akümülatöre yükle 13

Örnek Program İşletimi Belleğimizde 2 byte lık veriyi tuttuğumuzu düşünelim.(her bellek gözünde) Programımızın da, belleğin 940 ve 941 nolu gözündeki verileri toplanması istensin.ve sonucunun da yine 941 nolu bellek gözünde konulması istensin. PC ninde başlangıçtaki değerinin 300 ayarlandığı düşünülsün. 3 komut nedeniyle 3 getirme ve 3 yürütme çevrimi olacaktır. Aslında MAR ve MBR gerekli fakat bunları basitleştirmek adına önemsemiyoruz. Örnek Program İşletilmesi 14

Adresleme Modu Adresleme Modu; verinin komutla birlikte ne şekilde verileceğini gösteren bir yöntem şeklidir. Bir komutun gerektirdiği işlemin yürütülmesi sırasında VERİLERİN bir bellek gözünden yani bir ADRESTEN alınması veya bir ADRESE yüklenmesi ya da akümülatör ve kaydediciler arasında değiştirilmesi için değişik yöntemler uygulanmaktadır. Doğal Adresleme Mikroişlemcilerde, özellikle KAYDEDİCİLER arasında VERİ TRANSFERİ için uygulanan HIZLI bir adresleme türüdür. Kaydediciler ile akümülatör ve bellek arasında da aynı uygulama yapılır. Örneğin, iki kaydedici arasındaki VERİ transferi için: Komutun, OP CODE dan sonra gelen adres bölümünde, transferi yapılacak VERİNİN, çıkacağı (source) ve gideceği (destination) devrelerin ADLARI bulunmaktadır. 15

Canlandırmalar http://www.eastaughs.fsnet.co.uk/cpu/executio n-fetch.htm Hemen Adresleme (Veri Komutla Birlikte Verilir) 16

Doğrudan Adresleme (Komutla Birlikte Veri Adresi Verilir) Dolaylı Adresleme (Verinin Bulunduğu Adres Diğer Bir Kaydedici İçerisindedir) 17

Getirme Çevrimi 18