18
1 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

Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

1

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

Page 2: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

2

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

Page 3: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

3

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

Page 4: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

4

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

Page 5: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

5

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

10

• 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

Page 6: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

6

Tipik Kaydediciler

Kaydedici İşlevi

Program Sayacı - PC (Program counter) /

Komut Gösterici - IP

(Instruction pointer)

Çalıştırılacak bir sonraki talimatın adresini tutar.

Komut Kaydedicisi - IR

(Instruction register)

Çalıştırılacak talimatın makine kodunu tutar.

Bellek Adres Kaydedicisi

Memory address register (MAR)

Bir sonraki erişilecek bellek adresini tutar.

Ara bellek kaydedicisi

Memory data/buffer register (MBR)

Bellekten getirilen (fetching) aktif veriyi tutar.

Program Durum Kelimesi

Program status word(s)

(PSW/EFLAGS/FLAGS -flags)

Talimatların gerçekleştirdiği işlemlerden sonra veri durumlarını kontrol etmek kullanılan bit değerlerini (durumlarını) tutar.

11

12

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.

Page 7: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

7

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.

Page 8: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

8

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

Page 9: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

9

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ı

Page 10: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

10

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

Page 11: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

11

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.

Page 12: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

12

Ç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ı

Page 13: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

13

Ç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

Page 14: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

14

Ö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

Page 15: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

15

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, transferiyapılacak VERİNİN, çıkacağı (source) ve gideceği (destination) devrelerinADLARI bulunmaktadır.

Page 16: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

16

Canlandırmalar

• http://www.eastaughs.fsnet.co.uk/cpu/execution-fetch.htm

Hemen Adresleme (Veri Komutla Birlikte Verilir)

Page 17: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

17

Doğrudan Adresleme (Komutla Birlikte Veri Adresi Verilir)

Dolaylı Adresleme (Verinin Bulunduğu Adres Diğer Bir Kaydedici İçerisindedir)

Page 18: Komutların Yürütülmesi - WordPress.com · 2014. 11. 9. · adresini saklar. • Bu adres, bellek adres kaydedicisine (MAR) konur. • İşlemci, PC tarafından MAR’a konan adresteki

18

Getirme Çevrimi