Kesmeli Giriş/Çıkış
Programlı G/Ç (yoklama) yönteminde iki sınırlama vardır. Birincisi, yoklama yöntemi mikroişlemci zamanının harcanması demektir, çünkü CPU sürekli olarak tüm dış cihazların (peripheral) durumunu denetlemelidir. İkinci olarak, .yoklama tekniği yavaştır, çünkü herhangi bir dış cihaza tekrar geri gelmeden önce tüm G/Ç cihazların durumu test edilmelidir. Gerçek-zamanda (real-time) çalışan sistemlerde bu duruma izin verilmez çünkü böyle sistemlerde dış cihazlara belirli bir süre içinde servis vermek zorunluluğu vardır. Özellikle hızlı çalışan dış cihazlar sisteme bağlandığı zaman, yoklama yöntemi minimum servis gereklerini karşılamak için yeterli hızda olmayabilir. Disk veya CRT gibi hızlı çalışan cihazlar, veri transferini kayıpsız olarak gerçeklemek için hemen hemen ani cevap gerektirir.
Yoklama bir senkron mekanizmadır, ve bu mekanizma ile cihazlara sırayla servis edilir. Kesme ise asenkron. mekanizmadır. Kesmeli çalışmanın ilkesi Şekil 5.8’de gösterilmiştir. Dış cihaz mikrobilgisayarın dikkatini çeksin diye CPU’larda bir denetim işareti vardır. Buna kesme işareti (INT) denir, çünkü dış cihaz mikrobilgisayar sisteminin o anda ne iş yaptığına bakmaksızın mikrobilgisayara kesme vererek dış lojiğin ihtiyaçlarına cevap vermesini ister. Her dış cihaz, kesme işaretini CPU’ya kapılayan, bir kesme hattına bağlanır.
CPU’lar her emir icrasının sonunda kesmeleri denetler. Eğer bir kesmeye rastlarsa, CPU o kesme yapan dış cihaza servis eder. Kesme yoksa, CPU bir sonraki emirin icrasıyla ana programı koşmaya devam eder. Bu durum Şekil 5.9’da gösterilmiştir.
Kesmeli çalışma basit bir örnek üzerinde incelenecektir. Fırın sıcaklığını, ayarlanabilen belirli bir sıcaklıkta tutmaya yarayan bir mikrobilgisayar sistemi düşünülsün. Fırın sıcaklığı sayısal bir termometre ile ölçülüp mikrobilgisayara gönderilmektedir. Mikrobilgisayar bu sıcaklık değerini, daha önce başka bir yolla bilgisayara verilmiş referans bir sıcaklık değeri ile karşılaştırır. Arzulanan ile gerçek sıcaklık değerleri arasındaki farka bağlı olarak, mikrobilgisayar ısıtıcıyı denetleyen işareti üretecek veriyi çıkış kapısına gönderir. Böylece fırın sıcaklığı sabit tutulmaya çalışılır.
Isıtıcıyı denetleyerek fırın sıcaklığını istenilen değere hemen ayarlamak mümkün olmadığından, sıcaklık ayan için mikrobilgisayarın koşması gereken yetenekli bir programın olması gerekir. Bu programa AYAR adı verilecek ve program bellekte aşağıdaki gibi gösterilecektir.
KAYIT adlı başka bir program termometreden sıcaklık değerini alıp mikrobilgisayara getirecektir. KAYIT ile AYAR programlan arasındaki bağ şöyledir; KAYIT program sıcaklık değerini termometreden okuyup bellekteki veri tampona koyar, AYAR program ise bu tampondan aldığı bilgiyi işleyerek ısıtıcıyı denetleyen işareti üretecek değeri belirler ve onu ısıtıcıya gönderir, Şekil 5.10.
AYAR program veriler üzerinde bir takım hesaplar yaptığından icrası KAYIT’a göre daha uzun süre alır, ve bu yüzden CPU tarafından sürekli koşulan program olarak yorumlanır. Termometrenin sıcaklık ölçüm işlemini ne zaman tamamladığını mikrobilgisayarın bilmesi mümkün değildir. Bu yüzden AYAR koşulıırken termometreyi arasıra okumak bazı ölçüm değerlerinin kaybına yol açabilir. Emniyetli çalışma için termometrenin, hazır olduğunda, mikrobilgisayarı uyarması en uygun yoldur. İşte böyle bir çalışma kesmeli G/Ç yöntemiyle mümkündür.
Kesmeli G/Ç yönteminde mikrobilgisayarın dikkati çekilerek termometredeki sıcaklık değerinin okunması aşağıdaki dört adımlık işlemle gerçekleştirilebilir.
1. Termometre sıcaklık ölçümünü tamamladığı zaman, paralel G/Ç arayüz cihazı (PIA) üzerinden CPU’ya IREQ kesme isteğini INT işareti olarak gönderir.
2. Mikrobilgisayar bu kesme isteğini kabul veya red etme seçeneğine sahiptir. Kesme isteği CPU tarafından onaylanınca, IACK onaylama işareti CPU tarafından PIA cihazına gönderilir.
3. PIA cihazı kimlik bilgisini veri yolu üzerinden göndermek için IACK işaretini kullanabilir.
4. PIA dış cihaza, yani termometreye, mesaj göndererek, verisini PIA G/Ç kapısına koyabileceğini söyler. Daha sonra bu kapıdaki bilgi veri yolu üzerinden akümülatöre getirilir.