Commodore sayı 5, sayfa 24

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 24

Peter J. Denning'ten Çeviren Nilüfer Güngören

14. yüzyıl Jean Buridan, iki eşit miktarda yiyecek arasında açlıktan ölen eşeğin paradoksunu anlatır (Rescher, 1967). Her biri aynı ölçüde çekici iki seçenekle karşılaşan herkes ne yapacağını bilememe duygusunu yaşamıştır. Ama bunun bilgisayar devrelerinin ve yazılımının aynı kaynakları kullanmak zorunda kaldıklarında karşılaştıkları sorunları güvenilir bir biçimde çözümleme yetkisini sınırlayacak kadar temel bir mesele olduğu kimin aklına gelirdi?

Bilgisayar, seri olarak yeniden kullanılabilir kaynak taleplerinden birini seçen, bir seferde yalnız bir işlemci tarafından kullanılabilen seçici adlı devreler içerirler. Bellek bankaları, aritmetik fonksiyon birimleri ve iletişim kanalları gibi genel donanım araçları bu türden kaynaklardır. Özel dahili değişkenli alt-programlar ve data dosyaları gibi yazılımlar da bu türe girer. Bir seçici neredeyse eş zamanlı olan iki sinyal arasında bir seçme yapmak zorunda kalırsa ne olur? Talihsiz eşek gibi, seçici de başka devrelerce varsayılan süre içinde seçimini yapamazsa, sonuçlar her şeyi altüst edebilir. Seçme başarısızlıklarından biri, hiçbir işlemcinin devreye girmemesiyle bilgisayarın durmasıdır. Bir başkasında ise, birçok işlemci aynı anda devreye girerek ortak kaynakta tutarsızlığa, böylelikle de bütün sistemin iflasına (“crash”) yol açar.

Sorunu kısaca

özetleyelim:

N-girişli bir seçicinin N girdisi vardır (her işlemci için 1) ve tutarlı olarak tam çıktı durumuna sahip olması gerekir. Herhangi bir N girdisi için i durumu, i işlemcisinin seçildiğini ve ortak kaynağı kullandığını, 0 durumu ise hiçbir işlemcinin seçilmediğini ve kaynağın serbest olduğunu gösterir. Seçici 0 durumdayken i işlemcisi sinyal verirse, sinyal muhafaza edilir ve işlemci bekler. İşlemciler girdileri birbirinden ayrı zamanlarda verdiğinde seçicinin işlemini izlemek kolay olur. Sorun, iki işlemci taleplerini yaklaşık aynı anda bildirdiğinde başlar. Bu durumda seçicinin aynı anda, i ve j için ayrı ayrı, 0-i ve 0-j menzillerini izlemesi istenir. O zaman seçici, i ve j hedefleri arasında eşit ve tam bir dengede kalabilir. Kalıcı olmayan bu dengeye METASTABL DURUM adı verilir. Seçici metastabl durumda olduğu sürece, çıktı satırlarının bir anlamı yoktur. Çıktı devinimleri ya tam olarak iki tabanlı “0” ya da “1” olarak yorumlanamayacak ara değerler alırlar, ya iki ya da daha fazla seçmeyi işaret ederler, ya da arada salınırlar.

Metastabl durumlar, sabit durumlar arasındaki normal geçişlerde gidilip gelinen geçici durumlar gibi değildir. Metastabl durum süresiz devam eden bir denge noktasıdır. Buna karşılık geçici durum bir denge noktası değildir, süresi kısa ve sınırlıdır.

Süresi, seçicinin girdileriyle metastabl durumun ne kadar yakınına getirildiğine ve geçiş hızına bağlıdır. Bu durum bir kayanın tepesinde hareketsiz duran topunkine benzer. Topun kayadan düşüp yerde durma noktasına gelmesi kayanın tepesinde ne kadar iyi dengelendiğine ve kayanın eğimine bağlıdır. Nasıl topun kayanın üstünde ne kadar kalacağı tam olarak bilinemezse, seçicinin metastabl durumunun ne kadar süreceği de tam olarak bilinmez. Seçme başarısızlığını önlemenin yolu yok mudur? Kolayca akla gelen: Evet, her şey ortak bir saate bağlanıp, sinyallerin çıkarıldığı ve kullanıldığı anlar ayrı saatlere bölüştürülür. O zaman, seçici devreler yalnızca sinyal yollayan devrelerin gönderdiği değişmez sinyalleri görür. Bu hipotezin yürümeyen yanı bazı sinyaller geldiğinde kontrolün olanaksızlaşmasıdır. Örneğin bir dosya aktarımının sonunu bildiren kesme sinyali tam olarak kontrol edilemez, çünkü diskin dönme süresi bütünüyle kontrol edilemez. Birlikte gelen iki sinyalden hiç değilse biri tam olarak kontrol edilemiyorsa, çakışma anında seçme başarısızlığı ortaya çıkabilir. O zaman sürekli çalışan bir saatle seçme sorunu çözümleniyor demektir. Peki saat durdurulabilirse ne olur? Cambridge Üniversitesi Bilgisayar Laboratuvarı'ndan David Wheeler, Cambridge CAP Bilgisayarı için bir seçici tasarladı. Wheeler'ın seçicisi, sabit bir durum sokulduğunda bunu saptayıp özel bir çıktı hazırlayan ek bir eşlik devresi içerir. Tasarıya göre, eşlik eden devreler bir seçme olayının başlatılmasından hemen sonra saati durdurur; özel bir çıktının seçmenin gerçekleştirildiğini bildirmesiyle seçme devresi saati yeniden çalıştırır. Bu durumda seçme başarısızlığı mümkün değildir. Ancak bunun da riski vardır: Özel çıktının hazırlanmasının ne kadar zaman alacağı önceden kestirilemez. Bu çıktının hazırlanıp saatin tekrar çalıştırılmaya başlaması normalde çok az bir zaman alır. Ancak, birkaç kararın alınması bazı sistemlerin kaldırma gücünü aşacak kadar uzun gelebilir. Seitz, ayrıca saati bulunmayan, kendinden zamanlamalı devreler adı verilen bir devre türünü de betimler. Kendinden zamanlamalı devrelerin elemanları taleplerin ve kabul edilmiş sinyallerin alınıp verilmesiyle birbirini harekete geçirir: Her eleman ancak önceki talebin alınmasından sonra yeni bir talep öne sürer. Bunlar iç bağlantı adını alan ve Wheeler'ın devresine benzeyen eleman seçme işinde kullanılır. İç bağlantı bir karar verinceye dek beklemek zorundadır. Elemanlar arası sinyal alışverişinde saatli devrelerden daha fazla enerji harcandığından kendinden zamanlamalı devreler yüksek performanslı bilgisayar için pek elverişli değildir. Ancak daha emniyetli oluşları, paralel bilgisayarlarda kullanımlarını gitgide daha çekici kılmaktadır. Seçiciler ve iç bağlantılar aynı zamanda “karşılıklı dışlama” devreleri adını da alırlar. Saatle ölçülmeyen girdilerle iç saatin eşleştirilmesinde kullanılan devrelere örnektirler. Girdilerin saatle aynı anda değişmesini idare edebilmek için eşleştiricilerde seçicilerin bulunması gerekir. Bu nedenle, seçme başarısızlığı aynı zamanda eşleştirme başarısızlığı adını da alır.

Klavyeyle gezinmek için ← ve → tuşları.