Bilgisayar Mimarisi. a) MİB'in sadece bir kesme isteği girişi var. Kesme kabul (interrupt acknowledgement) çıkışı yok. Örnek: 6802

Benzer belgeler
5. Kesme (Interrupt)

4. Giriş/Çıkış Organizasyonu (I/O Organization) ve Yol Erişimleri

BM-311 Bilgisayar Mimarisi

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

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

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

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

BM-311 Bilgisayar Mimarisi

BÖLÜM 7 Kesmeler.

Bilgisayar İşletim Sistemleri BLG 312

Komutların Yürütülmesi

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ı

Proses. Prosesler 2. İşletim Sistemleri

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

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

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ı

İşletim Sistemlerine Giriş

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

PROSESLER. Proses. Proses

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

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

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

Yığın MİKROİŞLEMCİ SİSTEMLERİ. Yığın. Örnek MİB için Yığın. Yığma İşlemi. Çekme İşlemi

Bölüm 13: Giriş-Çıkış (I/O) Sistemleri

Görüntü Bellek. Ana Bellek. Fiziksel Adres. Belek Uzayı. Bellek hiyerarşisi. Hız Maliyet (+) Ana Bellek. Boyut (+) DISK. Görüntü Adres.

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI

BM-311 Bilgisayar Mimarisi

İşletim Sistemlerine Giriş

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

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI KESMELİ GİRİŞ/ÇIKIŞ

Mikrobilgisayar Donanımı

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

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Bilgisayar İşletim Sistemleri BLG 312

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

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.

Mikrobilgisayar Mimarisi ve Programlama

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

İşletim Sistemlerine Giriş

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

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

Giriş/Çıkış Arabirimi MİKROİŞLEMCİ SİSTEMLERİ. Arabirim Özellikleri. Giriş/Çıkış Adresleri. G/Ç Arabirimlerinin Bağlanması

Deney 2. Kesme Uygulamaları

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

GİRİŞ-ÇIKIŞ (INPUT / OUTPUT) ORGANİZASYONU

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Mikrobilgisayarlar. Mikroişlemciler ve. Mikrobilgisayarlar

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

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

DENEY III RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

D Duplex : Alıcı + Verici Çalışma Debouching : DMA : Direct Memory Access Data-Bus : Data Veri Yolu Data Flow : Veri Akışı Data Processing : Veri

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

DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI İÇERİK KESME

8086 nın Bacak Bağlantısı ve İşlevleri. 8086, 16-bit veri yoluna (data bus) 8088 ise 8- bit veri yoluna sahip16-bit mikroişlemcilerdir.

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

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

İşletim Sistemlerine Giriş

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

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Bilgisayar İşletim Sistemleri BLG 312

(I) şimdiki. durum (S) belleği. saat. girşi

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

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

Mikroişlemcili Sistemler ve Laboratuvarı

Giriş/Çıkış Arabirimi MİKROİŞLEMCİ SİSTEMLERİ. Giriş/Çıkış Adresleri. MİB ve G/Ç Arabirimi. Asenkron Veri Aktarımı. MİB ve Çevre Birimleri Bağlantısı

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

K uark projesi. Temel Özellikler :

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

BM-311 Bilgisayar Mimarisi

Bölüm 12: UDP ve TCP UDP (User Datagram Protocol)

Konular MİKROİŞLEMCİ SİSTEMLERİ. Giriş. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Öncesi Kuşak

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

B.Ç. / E.B. MİKROİŞLEMCİLER

BÖLÜM 7 XTAL2 XTAL1. Vss. Şekil Mikrodenetleyicisi osilatör bağlantı şekli. Bir Makine Çevrimi = 12 Osilatör Periyodu

İşletim Sistemlerine Giriş

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

İ.T.Ü. Eğitim Mikrobilgisayarının Tanıtımı

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

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

DERS 11 PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI İÇERİK. Alt Program Çevrim Tabloları Program Sayıcı ( Program Counter PC )

İşlem Buyrukları MİKROİŞLEMCİ SİSTEMLERİ. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları

Bu deney çalışmasında kombinasyonel lojik devrelerden decoder incelenecektir.

LCD (Liquid Crystal Display)

BM-311 Bilgisayar Mimarisi

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI MİKROİŞLEMCİLİ A/D DÖNÜŞTÜRÜCÜ

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

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

XC8 ile PİC uygulamaları

PLC DE PROGRAMIN YÜRÜTÜLMESİ

BÖLÜM 6 Seri Port Đşlemleri

Kesmeler (Interrupts)

Bölüm Bazı Temel Konseptler

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Transkript:

Lisans: http://creativecommons.org/licenses/by-nc-nd/3./ Donanım si: 5. (Interrupt) Bir dış birimde (örneğin G/Ç arabirimi) belli bir koşul oluştuğunda bu birim MİB e kesme isteği gönderir. Tasarım problemleri: Kaynak: Bir MİB ne birden fazla kesme kaynağı bağlı olabilir. MİB kesme isteğinin hangi kaynaktan geldiğini nasıl belirler? Öncelik: Aynı anda birden fazla kaynak kesme isteğinde bulunabilir. MİB hangi isteği yerine getireceğine (öncelik) nasıl karar verir? Başlangıç adresi: isteği kabul edilen kaynağa ilişkin kesme hizmet programının (KHP) (interrupt service routine ISR) başlangıç adresi nasıl belirlenir? Vektörlü / otovektörlü a) MİB'in sadece bir kesme isteği girişi var. kabul (interrupt acknowledgement) çıkışı yok. Örnek: 682 5. MİB lerin düzenleri: 682 +5V Tek bir kesme hizmet programı (KHP) (interrupt service routine - ISR) var. kaynağı, kesme hizmet programının içinde yoklama (polling) ile belirlenir. Öncelik sırası da yoklama sırası ile belirlenir. R Açık kolektörlü çıkışlar isteğinden vazgeçirme (kesme kabul) yazılım ile yapılır. Kaynak cihazın iskelesini okuma/yazma, denetim saklayıcısına yazma gibi A ACIA PTM Kaynakları: Parallel Interface Adapter Asynchronous Communication Interface Adapter Programmable Timer Module 25-25 Dr. Feza BUZLUCA 5. 25-25 Dr. Feza BUZLUCA 5.2 b) Bir kesme isteği girişi () var, bir kesme kabul çıkışı (Interrupt Acknowledge) (A) var, vektörlü çalışıyor. kaynakları MİB e kesme öncelik devreleri üzerinden bağlanırlar. Aynı anda birden fazla istek gelirse kesme kabul (A) işaretinin hangi kaynağa gönderileceğine kesme öncelik devresi karar verir. İsteği kabul edilen kaynak, vektör numarasını (VN) veri yolu üzerinden MİB e bildirir. MİB hizmet programının başlangıç adresini (başlangıç adresinin vektör tablosunda nereden alınacağını) vektör numarasını kullanarak belirler. MİB A Örnek: 86 işlemcileri Öncelik Devresi (Priority Interrupt Controller) A K VN A K2 VN A VN K3 kaynakları 5.2 Vektör adresi: MİB ler bir kesme isteği kabul edildiğinde hangi hizmet programının çalıştırılacağına ilişkin bilgileri bir kesme vektör tablosunda tutarlar. Bu bilgiler iki farklı şekilde tutulabilir:. Vektör tablosunda kesme hizmet programlarının başlangıç adresi bulunur. isteği kabul edilen kaynak, MİB e vektör numarasını yani hizmet programının başlangıç adresinin tablodaki satır numarasını gönderir. MİB ilgili satırdan hizmet programının başlangıç adresini alır ve PC'ye yazar. Örnek MC 68 2. Tabloda kesme hizmet programlarının kendisi (ilk satırı) bulunur. Pratikte tüm programları tek tabloya sığdırmak mümkün olmayacağından bu satırlara asıl hizmet programına gitmeyi sağlayan "JMP hizmet_programi" komutları yerleştirilir. 25-25 Dr. Feza BUZLUCA 5.3 25-25 Dr. Feza BUZLUCA 5.4 Vektörlü ve Otovektörlü ler: Vektörlü kesmede kesme isteği kabul edilen kaynak, MİB e vektör numarasını yani hizmet programının başlangıç adresi ile ilgili bilgiyi gönderir. MC 68 Vektör Tablosu: Sabit vektörlü (otovektörlü) çalışmada vektör numarası kaynak birimden alınmaz. Her kesme kaynağı (veya düzeyi ) için önceden belirlenmiş sabit bir vektör numarası (tabloda belli bir satır) vardır. Örnek: 682 de, NMI, SWI kesmeleri için vektör adresleri sabittir. Tasarımcı ilgili kesme hizmet programlarının başlangıç adreslerini tablolardaki ilgili gözlere önceden yazar. MC68 her iki yönteme göre de (vektörlü ve otovektörlü) çalışabilmektedir. 25-25 Dr. Feza BUZLUCA 5.5 25-25 Dr. Feza BUZLUCA 5.6

2 a) Seri Öncelik Devresi (Papatya Zinciri Daisy Chain ) öncelik devresi 5.3 Öncelik Devreleri (Priority Interrupt Hardware) Öncelik devresi (zincir) değişik önceliklere sahip halka lardan oluşur. Her kesme kaynağı bu halkalardan birine (Interrupt Request - ) bağlıdır. Zincirin başındaki halka (öncelik ) en yüksek önceliğe sahiptir. Tüm birimler işlemcinin tek bir kesme isteği hattını kullanır. kaynağı vektör adresini üretebiliyor ve Kaynağı K Kaynağı K2 Kaynağı K3 tutabiliyor. ACK ACK ACK ACK Öncelik P ACK Öncelik 2 P İsteği Kabul ACK Öncelik 3 P Sonraki kaynak Yolu MİB ACK 25-25 Dr. Feza BUZLUCA 5.7 Öncelik zincirinin çalışması: MİB den çıkan kesme kabul işareti tüm halkalara seri olarak bağlıdır. MİB den kesme kabul işareti önce baştaki halkaya (Priority in: ) gelir. a. Eğer bu halkaya bağlı olan cihaz istekte bulunduysa. Halka kendisine bağlı olan kesme kaynağına ACK işaretini gönderir. 2. Böylece halkaya bağlı olan kaynak vektör adresini () veri yoluna çıkartır. 3. Halka (Priority out: PO) çıkışını etkisiz yaparak bir sonraki halkaya (kaynağa) "kesme kabul" işaretinin gitmesini engeller. b. Eğer kesme kabul işaretini alan halkaya bağlı olan cihaz istekte bulunmadıysa. Halka (Priority out: PO) çıkışını etkin yaparak "kesme kabul" işaretinin bir sonraki halkaya geçmesini sağlar. Böylece sıradaki kaynağın kesme isteğinin olup olmadığına bakılır. Bu yönteme donanım yoklaması (hardware poll) da denir. isteği karşılanan cihaz isteğinden vazgeçer () etkisiz olur. kaynağı karşılanmayan cihaz çıkışını etkin tutarak isteğini sürdürür. 25-25 Dr. Feza BUZLUCA 5.8 Papatya Zincirinin bir halkasının iç yapısı: MİB'den (ACK) Priority In kaynağından PO ACK Açık kolektörlü tümleme MİB e İstekte bulunan kaynağa ACK PO Priority Out Bir sonraki halkaya Seri Öncelik Devresi (Papatya Zinciri Daisy Chain ) 2 Önceki devrede kesme kaynakları kendi vektör numaralarına sahiptirler ve ACK işareti geldiğinde bu adresi veri yoluna çıkartabilmektedirler. Aşağıdaki devrede ise kesme kaynakları vektör numarasına sahip değildirler. Bu adresi tutma işi öncelik devresine verilmiştir. Ayrıca kesme kaynakları kesme isteğini kabul işareti gelinceye kadar sürdürmemektedirler. İsteği tutma (sürdürme) görevi de öncelik devresindedir. Kaynağı Öncelik P Kaynağı 2 Öncelik 2 P Kaynağı 3 kaynaklarında vektör adresi tutulmuyor. Adresler öncelik devresinde tutuluyor. Öncelik 3 P Sonraki kaynak Yolu İsteği Kabul MİB ACK 25-25 Dr. Feza BUZLUCA 5.9 25-25 Dr. Feza BUZLUCA 5. Papatya Zinciri 2'nin bir halkasının iç yapısı: Priority In kaynağından gelen kesme isteği Q S SR Tutucu R Q PO İzin Açık kolektörlü tümleme Vektör adresi saklayıcısı Gecikme MİB e Kaynaktan gelen kesme isteği SR tutucuyu yapar. izin Vektör adresi MİB den kesme kabul işaretini alan halka (Priority in: ) eğer kendisine bağlı cihaz istekte bulunduysa vektör adresi saklayıcısını etkin yaparak kendi vektör adresini () veri yoluna koyar. PO Priority Out 25-25 Dr. Feza BUZLUCA 5. Kaynak (Disk) Kaynak 2 (Printer) Kaynak 3 Kaynak 4 Set: İstek Reset: İstek kabul edilince İstek Saklayıcısı Maske: : İstek kabul edilebilir : İstek engellenir (bloke) Maske Saklayıcısı Lisans: http://creativecommons.org/licenses/by-nc-nd/3./ b) Paralel Öncelik Devresi Aşağıda örnek bir devre gösterilmiştir. Öncelik devreleri başka şekillerde de tasarlanabilir. I Vektör Adresi Y I Öncelik X Kodlayıcısı I 2 Priority Yolu Encoder I 3 IEN Interrupt Enable Ana maske IST İzin Interrupt Status oluştu mu? (MİB e) ACK (MİB den) 25-25 Dr. Feza BUZLUCA 5.2

3 Bu örnek sistemde kaynakların vektör adresleri: Kaynak : Kaynak 2: Kaynak 3: Kaynak 4: Öncelik Kodlayıcısının doğruluk tablosu: I Girişler I I 2 I 3 Φ Çıkışlar y Φ IST Lojik ifadeler: = I I y = I I + I I 2 (IST) = I + I + I 2 + I 3 25-25 Dr. Feza BUZLUCA 5.3 Önceki örnek sistemde (5.2) kaynakların vektör numaraları önceden belirlenmiştir ve sabittir (Örneğin, Kaynak (disk): ). Sistemi daha esnek yapmak için her kaynak için ayrı bir vektör adres saklayıcısı yerleştirilebilir. Böylece her kaynağın vektör numarası esnek olarak değiştirilebilir. 5.2'deki devre Öncelik Y Kodlayıcısı Priority X Encoder I I ACK (MİB ten) 2X4 Kod Çözücü E Z Z Z 2 Z 3 OE 2 3 4 Vektör saklayıcıları isteği kabul edilen kaynağa ilişkin vektör adresi saklayıcısına çıkış izni (Output enable OE) verilir. Bu saklayıcılar MİB tarafından yazma yapılabilecek şekilde sistemdeki uygun bir bellek bölgesine yerleştirilirler. Saklayıcılara sistem programlarında yazılır. 25-25 Dr. Feza BUZLUCA 5.4 5.4 Hizmet Programına gidilip dönülürken yapılan işler: Hizmet Programından (KHP) Önce: Hatırlatma; MİB Komut yürütme çevriminden sonra kesme isteklerini değerlendirir. Eğer bir kesme isteği kabul edilirse MİB kesme çevrimine girer (yansı.8). MİB kesme çevriminde aşağıdaki işleri gerçekleştirir: ( Bu işler MİB in denetim birimi tarafından iç işlem olarak yapılır; programı ile yapılmazlar. ) SP SP- (Yığın işaretçisi gerektiği kadar adres kaç sekizli ise- azaltılır) M[SP] PC (Geri dönüş adresi yığına) ACK ( kabul) KHP başlangıç adresi PC (Vektör adresi) ya da PC Tablo[VNo] (Vektör tablosundan) SP SP- M[SP] SR (Durum saklayıcısı yığına) IEN (Diğer kesmeler maskelendi, bu bayrak SR nin içindedir) Bundan sonraki komut alma çevriminde MİB KHP'nin ilk komutunu alır, çünkü PC bu komuta işaret etmektedir (PC ). Bazı MİB ler iç saklayıcılarını da yığında saklarlar. Bazıları bu işlemi programcıya bırakır. Hizmet Programından (KHP) Dönülürken: Hatırlatma hizmet programları özel bir komut ile sonlandırılır; "return from interrupt" (RTI). Bu komut KHP'den kesilen programa dönüşte yapılması gereken işeri gerçekleştirir. SR M[SP] SP SP+ PC M[SP] SP SP+ (Durum saklayıcısı geri alındı) (Geri dönüş adresi alındı) (Gerektiği kadar adres kaç sekizli ise- arttırılır) çevrimine sadece KHP'den önce girilir: Dönüşteki işlemler KHP'nin son komutu olan RTI içinde yapılır. Yorumlar: hazırlık ve geri dönüş işlemleri zaman alıcıdır (çok sayıda bellek erişimi). Bu nedenle çok sık gelen kesmeler sistemin performansını düşürür. Örneğin, çok sık veri aktarımı yapılan uygulamalarda (dosya aktarımı) kesmeli G/Ç yönteminin kullanılması uygun değildir. 25-25 Dr. Feza BUZLUCA 5.5 25-25 Dr. Feza BUZLUCA 5.6 Problem: Örnek: li G/Ç Bir MİB in komut çevrimi aşağıda süreleri verilen 4 adımdan oluşmaktadır:. Komut alma: 6 ns, 2. Komut çözme: 2 ns, 3. Operand alma: 6 ns, 3. Yürütme: 3 ns, 4. : 2 ns. MİB'in kesme çevrimindeki hazırlık işlemleri (geri dönüş adresini saklama, vektör adresini alma vb) 2 ns sürmektedir. G/Ç arabiriminde belleğe adet sözcüğün aktarılması için kesmeli yöntem kullanılmaktadır. Toplam 5ns süren kesme hizmet programı her çalıştığında sadece bir sözcük aktarmaktadır (ye gidilirken yapılan hazırlık işlemleri hariç). MİB programı koşmaya başladığı anda zamanı başlattığımızı varsayalım (Zaman=). MİB ilk komutun alma çevrimindeyken (Zaman=5ns) G/Ç arabiriminden ilk kesme isteğinin geldiğini varsayınız. a. G/Ç arabiriminden belleğe ilk sözcük ne zaman aktarılır (Zaman=?)? Neden? b. G/Ç arabiriminin her zaman aktarıma hazır olduğu varsayılırsa sözcüğün tamamının aktarımını ne zaman tamamlanır (Zaman=?)? Örnek: li G/Ç (devamı) Çözüm: Hatırlatma; MİB Komut yürütme çevriminden sonra kesme isteklerini değerlendirir. Eğer bir kesme isteği kabul edilirse MİB kesme çevrimine girer. aktarımı KHP'de yapılır. Geri dönüş işlemleri KHP'nin bir parçası olan RTI komutunda yapılır. a. İlk sözcük: Zaman = 6 + 2 + 6 + 3 + 2 + 5 = 87ns Komut alma + Çözme + Operand + Yürütme + Hazırlık + KHP b. sözcük: Her KHP'de tek sözcük aktarılıyor, Zaman = 87 = 87ns (Uzun sürüyor. Hazırlık işlemlerinin bedeli yüksek.) 25-25 Dr. Feza BUZLUCA 5.7 25-25 Dr. Feza BUZLUCA 5.8

4 Lisans: http://creativecommons.org/licenses/by-nc-nd/3./ 5.5 Sıra Dışı Durumlar (Eceptions) Sıra dışı durum oluştuğunda yapılanlar: Sıra dışı durumlar bir komuttan veya dış birimlerde oluşan anormal durumlardan kaynaklanabilirler. Bu durumlarda MİB o anda yürüttüğü programdan bir sıra dışı durum programına dallanır ve o durumla ilgili işlemi yürüttükten sonra kaldığı yere geri döner. Örnek: MC68 Dış Kaynaklı: Reset Yol Hatası (Bus Error - BERR) İstekleri (Interrupts) Vektörlü, otovektörlü İç Kaynaklı: İzleme (trace) Adım adım komut yürütme (hata ayıklama için) Adres hatası : Tek adreslere word/long erişimi Yazılım kesmesi (TRAP -5), TRAPV (Trap on overflow), CHK Geçersiz komut: Makine dili karşılığı olmayan işlem kodu (op code) Komut benzetimi (emulation) ($A= ve $F= ile başlayan komutlar) Yetkili komut çalıştırma Sıfıra bölme SR Temp (SR nin kopyası çıkartılır.) S, T (İşlemci yönetici (supervisor) konumuna geçiyor, izleme kapatılıyor.) PC (geri dönüş adresi) yığına yazılır. SR nin Temp teki kopyası yığına (S ve T nin değişmemiş önceki değerleri) yazılır. Sıra dışı programın adresi vektör tablosundan alınır. Saklayıcılar yığında işlemci tarafından saklanmaz. Programcı kullandığı saklayıcıları yığında kendisi korumalıdır. Geri dönüşte: Sıra dışı programlar RTE (Return from Eception) komutu ile sonlandırılır. Durum saklayıcısı SR yığından alınır. Geri dönüş adresi yığından alınır. RESET durumunda bu işlemlerin hepsi yapılmaz. Bazı sıra dışı durumlarda ise (BERR, kesme gibi) ek işler de yapılır. 25-25 Dr. Feza BUZLUCA 5.9 25-25 Dr. Feza BUZLUCA 5.2 5.5. Ayrıcalık Konumları (Privilege Modes) 68K iki ayrıcalık konumundan birinde bulunur: yönetici (supervisor) konumu veya kullanıcı (user) konumu. Ayrıcalık durumu o anda hangi komutların çalıştırılabileceğini belirler (kısıtlar). Konum bilgisi işlemcinin FCO (Function Codes Output) çıkışlarında da belirtilir ve gerek duyulduğunda bellek yönetim devresi tarafından belli bellek bölgelerine erişimi denetlemek için kullanılabilir (Yansılar 4.23-24). İşlemci konumuna göre iki farklı yığın işaretçisi kullanır: "supervisor stack pointer" (SSP) ve "user stack pointer" (USP). Yönetici konumu (Supervisor mode): Yönetici konumu daha yüksek önceliklere sahiptir. İşlemcinin konumu durum saklayıcısındaki S biti ile belirlenir; S= : yönetici Yönetici konumundayken işlemci tüm komutları yürütebilir. Kullanıcı Konumu (User mode): Eğer durum saklayıcısındaki S biti sıfırlanırsa işlemci kullanıcı konumuna geçer. Sistemin çalışmasını etkileyen bazı ayrıcalıklı komutlar sadece yönetici konumunda çalışırlar. Örneğin: STOP, RESET. Kullanıcı programlarının denetim dışı işlemciyi yönetici konumuna geçirememesi için durum saklayıcısına yazma komutları da kullanıcı konumunda çalışmazlar. Ayrıcalık durumları arası geçişler İşlemci kullanıcı konumundayken sadece sıra dışı durum (eception) gerçekleşirse işlemci yönetici konumuna geçer. Sıra dışı durum oluştuğunda o andaki S değeri durum saklayıcının (SR) içinde yığına yazılır ve S yapılarak işlemci yönetici (supervisor) konumuna geçirilir. Bu nedenle hizmet programları yönetici (supervisor) konumunda yürütülür. Eğer sıra dışı durum işlemci kullanıcı (user) konumundayken oluştuysa hizmet programından geri dönüldüğünde tekrar kullanıcı konumuna geçilir, çünkü RTE komutu SR nin orijinal değerini (S bitini içerir) yığından çeker. Yönetici konumundan kullanıcı konumuna geçmek SR ye yazan komutlar ile de mümkündür. MOVE to SR, ANDI to SR, EORI to SR. Sadece sıra dışı durum (eception) gerçekleşirse (S ) Kullanıcı Konumu (S ) Yönetici Konumu RTE ya da durum saklayıcısına yazan komutlar ile MOVE, ANDI, EORI 25-25 Dr. Feza BUZLUCA 5.2 25-25 Dr. Feza BUZLUCA 5.22 5.5.2 Yol Hatası (BERR) ve Adres Hatası: 68 nin BERR girişi etkin (lojik ) yapıldığında yol hatası sıra dışı durumu oluşur. Bkz. yansı 4.9: Sonsuz Beklemeyi Önleme Bir program tek numaralı bir adrese word (6 bit) veya long (32 bit) erişimi yapmak isterse adres hatası sıra dışı durumu oluşur. Adres hatası işlemcinin içinden kaynaklanan yol hatası gibidir. lerden farklı olarak o andaki komutun tamamlanması beklenmez. Yol çevrimi (örneğin bellek erişimi) kesilerek sıra dışı durum işlemlerine geçilir. Diğer sıra dışı durumlardan farklı olarak yığında daha fazla bilgi saklanır. BERR, yol hatası veya RESET ile ilgili sıra dışı durum (eception) işlemleri yapılırken tekrar BERR oluşursa işlemci durur (HALT konumuna geçer) ve kendini sistemden yalıtır (yüksek empedans). HALT konumu bellekteki verilerin bozulmasını önler. Bu konumdan RESET ile çıkılır. Yol Hatası (BERR) veya Adres Hatası oluştuğunda sistem (yönetici) yığınına (supervisor stack) yazılanlar Bu hatalardan biri oluştuğunda işlemci komut ya da operand alma/yazma işlemlerinden birini yapmaktadır. Sistemin çalışmasını etkileyen bu hatalar ile daha fazla bilgi alabilmek için diğer sıra dışı durumlardan farklı olarak yığında daha fazla bilgi saklanır. SSP Artan Adresler 5 8 4 3 2 Erişilen Adres Program Sayacı (PC) H L H L Komut Saklayıcısı (op word) Durum Saklayıcısı (SR) R/W I/N FC2 FCFC 25-25 Dr. Feza BUZLUCA 5.23 25-25 Dr. Feza BUZLUCA 5.24

5 5.5.3 MC68 de ler (Interrupts): MC68 nin lerde kullanılan hatları: 68 nin kesme istekleri için üç bitlik bir girişi vardır (IPL2, IPL, IPL). Bu girişlerden gelen üç bitlik değer (-7) kesme isteğinin düzeyini belirtir. Hepsi etkisizse kesme isteği yok demektir. Eğer kesme isteğinin düzeyi SR deki maskelerin düzeyinden büyükse kesme isteği kabul edilir ve sıra dışı durum hizmeti işlemleri başlar. 5 8 7 4 T S I 2 I I X N Z V C Maskeleri (I I I 2 ) IPL2, IPL, IPL > I2, I, I ise kesme isteği kabul edilir. Status Register (SR) MC68 IPL IPL IPL2 FC FC FC2 Adres Yolu A3-A D7-D isteği girişleri (Interrupt priority level) kabul: Hangi düzeyin kabul edildiği Vektör no okunur IPL2, IPL, IPL I2, I, I ise kesme isteği kabul edilmez. Bunun istisnası 7. düzeyden gelen kesmedir. 7. düzeyden gelen kesmeler maskelenemez. AS LDS DTACK R/W Vektör no Asenkron Yol Erişimi ile okunur VPA Otovektörlü çalışma 25-25 Dr. Feza BUZLUCA 5.25 25-25 Dr. Feza BUZLUCA 5.26 68 de kesme kabul edildiğinde yapılan işlemler: SR Temp (SR nin kopyası çıkartılır) S, T PC yığına yazılır SR nin Temp teki kopyası yığına (S ve T nin değişmemiş önceki değerleri) yazılır. I2, I, I IPL2, IPL, IPL Kabul edilen düzey maskeye yazılır. Böylece eşit ve (Maske Düzeyi) daha düşük öncelikli kesmeler maskelenmiş olur. FC2, FC, FC ( Kabul) A3, A2, A Kabul edilen kesme isteğinin düzeyi a) Vektörlü çalışma: si kabul edilen cihaz vektör numarasını veri yoluna koyar ve DTACK' hattını etkin yaparak işlemciyi uyarır. 68 asenkron yol erişimi ile 8 bitlik vektör numarasını (D7-D)'den okur. Vektör numarası, hizmet programının başlangıç adresinin vektör tablosunun hangi satırında olduğunu gösterir. Vektör tablosunun her satırı 4 sekizli (byte) olduğundan vektör tablosunun ilgili satırını bulmak için vektör numarası 4 ile çarpılır (Satır adr. = vno 4). 68 Vektör tablosu için bakınız yansı 5.6. Lisans: http://creativecommons.org/licenses/by-nc-nd/3./ 25-25 Dr. Feza BUZLUCA 5.27 68 de kesme kabul edildiğinde yapılan işlemler: b) Otovektörlü çalışma: üreten birim kesme kabulü sırasında DTACK yerine 68 in VPA girişini etkin (sıfır) yaparsa dış birim vektör numarası göndermeyecek demektir. Bu durumda 68 hizmet programının başlangıç adresini kabul edilen düzeye göre vektör tablosunda belirli ve sabit bir yerden kesme alınır. 68'in vektör tablosunda 25-3 numaralı satırlar (7 adet) otovektörlü kesmeler için ayrılmıştır (her düzey için bir satır). (Bkz. 5.6) Programcının sorumlulukları: hizmet programında kullanılan saklayıcılar yığında saklanmalı. Geri dönmeden önce aynı saklayıcılar yığından çekilmeli. Bu yığın işlemleri için (MOVEM "move multiple") komutu kullanılabilir. Hizmet programını yazan programcı gerek duyarsa keseme maskelerinin değerini değiştirebilir. Hatırlatma; hizmet programları yönetici konumunda koşar. Böylece programcı o andaki hizmet programından daha düşük öncelikli kesmelere izin verebilir veya (7 hariç) daha yüksek düzeydekileri engelleyebilir. hizmet programının sonuna RTE (return from eception) komutu yazılmalıdır. 25-25 Dr. Feza BUZLUCA 5.28 İç içe gelen kesmeler (Nested Interrupts): Çalışan Düzey: : (Ana prog.) isteği düzeyi (IPL2 IPL IPL) : Maske: (I2 I I) 4: 2: : Kabul edilmedi. Maske = 4 IPL2 IPL IPL < I2 I I 4. Düzey hizmet programından. düzey programına dönülür. Maske olur. Bir komut yürütülür. 2. düzeyden kesme isteği beklediği için bir komut yürütüldükten sonra 2. düzey hizmet programına gidilir. 4 2 RTE RTE RTE 25-25 Dr. Feza BUZLUCA 5.29 Kabul işaretinin üretilmesi: 68 IPL IPL IPL2 A3 A2 A FC FC FC2 AS 7448 2 Öncelik 3 2Kodlayıcısı 4 A B 7438 C Kod Çözücü E 5 6 7 Y Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 Vcc R c En yüksek öncelik Eğer kesme kaynaklarının istek çıkışları açık kolektörlü ise kolektör dirençleri bağlanmalıdır. 2 3 4 5 6 7 IACK IACK2 IACK3 IACK4 IACK5 IACK6 IACK7 25-25 Dr. Feza BUZLUCA 5.3

6 IPL IPL IPL2 68 FC FC FC2 AS A3-A LDS DTACK VPA Öncelik 2 Kodlayıcısı E Kod Çözücü D7-D (Kaynak ) 3 4 2 3... Gecikme VNo Kaynağı 2 ACK vektörlü otovektörlü Kaynağı 3 ACK Kaynak 4 ACK girişi yok. İstekten yazlım ile vazgeçer. 5.5.4 Yazılım leri (Software Interrupts) MC68 de 6 farklı yazılım kesmesi oluşturmak mümkündür: TRAP # TRAP #5 Bu komutlar iç kesmeler yaratırlar ve sıra dışı durum (eception) işlemlerinin yapılmasını sağlarlar. Her TRAP komutu için vektör tablosunda bir satır vardır. Sistemi tasarlayanlar, kullanıcının gerek duyacağı işlemleri (örneğin A gibi sistem kaynaklarını kullanmak gibi), yazılım kesmesi hizmet programları şeklinde önceden hazırlarlar. Kullanıcı programlarını yazanlar ilgili TRAP komutunu çalıştırarak gerek duyduğu sistem kaynaklarına erişebilir. Hizmet programları yönetici (supervisor) konumunda çalıştığından, kullanıcı doğrudan erişemeyeceği sistem kaynaklarını gerek duyduğunda yazılım kesmeleri ile kontrollü olarak kullanmış olur. Örneğin sistemin tasarımında işlemci kullanıcı konumundayken A'ya erişim engellenmiş olur. Bu nedenle kullanıcı programları A'nın saklayıcılarına doğrudan erişemez. 25-25 Dr. Feza BUZLUCA 5.3 25-25 Dr. Feza BUZLUCA 5.32 5.5.5 Komut Benzetimi (Öykünüm) (Instruction Emulation (Unimplemented instructions)) MC68 in makine dilinde $A () ve $F () ile başlayan komut yoktur. (Line A) ve (Line F) ile başlayan komut kodları (opcode) "henüz gerçeklenmemiş komutlar" (unimplemented) olarak değerlendirilirler ve sıra dışı durum oluşmasına neden olurlar. Her iki kodun vektör tablosunda ayrı satırları vardır. Tasarımcılar kendi makine dili komutlarını bu kodlarla başlayacak şekilde oluşturabilirler ve bunları programlarda diğer komutlar ile kullanabilirler. Sistemin belleğine bu değerler ile başlayan bir komut yerleştirilirse 68 bu komutu alıp çözmeye çalıştığında sıra dışı bir durum (eception) oluşur ve bir hizmet programı çalıştırılır. İlgili kod için yazılan hizmet programının içinde o komutun yapması gerekenler program ile gerçekleştirilir. Sıra dışı durum oluştuğunda hizmet programına gidilirken yığına yazılan PC değeri sıra dışı duruma neden olan komutun başına işaret eder. 25-25 Dr. Feza BUZLUCA 5.33 Örnek: MC68 tabanlı bir bilgisayar sisteminde komut benzetimi olanağından yararlanılarak aşağıda açıklanan komutlar gerçekleştirilecektir. ADD.B adres,adres2,adres3 (adres3)(adres)+(adres2) Bu komut adres deki ve adres2 deki 8 bitlik sayıları toplayarak sonucu adres3 e yazmaktadır. Adresler 32 bit uzunluğundadır. ADD.W adres,adres2,adres3 (adres3)(adres)+(adres2) Bu komut ise aynı işlemleri 6 bitlik sayılar üzerinde yapmaktadır. Burada da adresler 32 bit uzunluğundadır. Çözüm: Önce komutun makine dilindeki yapısını oluşturmak gerekir. Örnek bir yapı: ADD.B adres,adres2,adres3 $F adres,adres2,adres3 ADD.W adres,adres2,adres3 $F adres,adres2,adres3 Komut sözcüğünün (Op word) son biti boyut (size) için kullanılmıştır. :B, :W ADD.B : = $F ADD.W: = $F ADD.B : F adres adres2 adres3 25-25 Dr. Feza BUZLUCA 5.34 Komutlarda istenen işleri yapacak hizmet programını yazmak gerekir. Hizmet programından önce onu test etmek için kullanılacak bir ana program aşağıdaki gibi oluşturulur: main lea stack,a7 // Yığın işaretçisi başlangıç değeri adda.l #4,a7 // Yığın azalan adreslere doğru ilerler move.l #service,($2c) // Hizmet programının adresi tabloya dc.w $f,,$,,$,,$2 //ADD.B $,$,$2 dc.w $f,,$2,,$2,,$22 //ADD.W $2,$2,$22... org $5 stack ds.b 4 // Yığın için bellekte yer ayrılıyor Line F sıra dışı durumunun vektöror tablosundaki yeri. satırdır. Bu satırın adresi ($2C)'dir. Hizmet programının başlangıç adresinin bu satıra (adrese) yazılması gerekir. Hizmet programının başında, gerekli saklayıcıları yığına yazmak gerekir. Bunların hangi saklayıcılar olduğu program yazıldıktan sonra belli olur. service movem.l d/a-a3,-(a7) D, A, A, A2, A3 yığına yazılıyor 25-25 Dr. Feza BUZLUCA 5.35 Hizmet programına gidilirken SR ve PC mikroişlemci tarafından yığına yazılmıştı. Hizmet programının başında ise beş adet saklayıcı programla yığına yazıldı. Buna göre yığındaki bilgiler yandaki gibidir: SP A3_H service movem.l d/a-a3,-(a7) +2 A3_L movea.l 22(a7),a Komuta işaret eden PC a +4 A2_H move.w (a)+,d Komutun ilk 6 biti OpCode ->d +6 A2_L movea.l (a)+,a Adres a +8 A_H movea.l (a)+,a2 Adres2 a2 Komut Alma + A_L movea.l (a)+,a3 Adres3 a3 +2 A_H tst.b d B/W? Komut çözme (Decoding) +4 A_L bne word +6 D_H move.b (a),d Byte işlemleri +8 D_L add.b (a2),d Operand Alma +2 SR move.b d,(a3) ve +22 PC_H bra ret Komut Yürütme PC_L word move.w (a),d Word işlemleri add.w (a2),d move.w d,(a3) ret move.l a,22(a7) Yığındaki PC güncelleniyor (update) movem.l (a7)+,d/a-a3 rte Yığındaki PC bir sonraki komuta işaret ettirilmeli. 25-25 Dr. Feza BUZLUCA 5.36