Döngü hırsızlığı - Cycle stealing

Olarak işlem , geleneksel olarak dönüş çalma erişmek için bir yöntemdir bilgisayar belleği (RAM) ya da otobüs CPU ile müdahale vuku bulmaz. I / O denetleyicilerinin CPU müdahalesi olmadan RAM okumasına veya yazmasına izin vermek için doğrudan bellek erişimine (DMA) benzer . Belirli CPU veya veri yolu zamanlamalarının akıllıca kullanılması, harici aygıtların CPU'nun mevcut etkinliğine aktif olarak katılmayan belleğe erişmesi ve olası herhangi bir CPU çakışmasından önce işlemleri tamamlaması durumunda CPU'nun herhangi bir gecikme olmaksızın tam hızda çalışmasına izin verebilir. Bu tür sistemler, yüksek hızlı RAM maliyeti olmaksızın neredeyse çift ​​bağlantı noktalı RAM'dir. Çoğu sistem, çalma sırasında CPU'yu durdurur ve esasen onu başka bir adla DMA'nın bir biçimi haline getirir.

Örneğin, ayrı talimat ve veri bellek bankalarına sahip bir sistem, her iki erişim aynı anda başlatılırsa, CPU talimat bankasından bir talimat alırken harici cihazların veri bankasına bir hafıza erişimine izin verebilir. Bir bellek yönetim birimi , örneğin, gerekli değildir Zilog Z80 sitesindeki M1 hattı böylece CPU yönerge-RAM veya ROM bir komutun okuma işlemi sırasında, veri erişim talimatı ayırt etmek için kullanılabilir, veri RAM diğer kullanılabilir CPU işlemeye müdahale etmeyen cihazlar.

Modern mimari

Modern sistemlerde döngü hırsızlığı elde etmek , ön getirme ve eşzamanlı öğelerin sürekli olarak belleğe eriştiği ve belleğe erişmek için birkaç öngörülebilir boşta kalma süresi bıraktığı ardışık düzen gibi birçok faktör nedeniyle zordur . DMA, harici cihazların RAM'e erişmesi için tek resmi ve öngörülebilir yöntemdir.

Bu terim, çeşitli harici veri yollarının ve denetleyicilerin genellikle farklı hızlarda çalıştığı ve CPU dahili işlemlerinin artık G / Ç veri yolu işlemleriyle yakından bağlantılı olmadığı modern bilgisayar mimarisinde (66-100 MHz'nin üzerinde) daha az yaygındır.

Gerçek bilgisayar sistemlerindeki örnekler

İniş sırasında buluşma radarı tarafından beklenmedik döngü hırsızlığı, neredeyse Apollo 11 inişinin iptal edilmesine neden oldu , ancak Kılavuz Bilgisayarı'nın tasarımı, düşük öncelikli görevleri bırakarak inişin devam etmesine izin verdi.

1130 IBM işlemci saat bellek erişimi sırasında durdurulur çünkü 'ın 'döngüsü çalmak' gerçekten DMA olduğunu. Birkaç G / Ç denetleyicisi RAM'e bu şekilde erişir. Sabit bir öncelik şeması aracılığıyla kendi kendilerine hakemlik yaparlar. Çoğu denetleyici, sistemin talimatları çalıştırma yeteneği üzerindeki etkiyi en aza indirmek için kasıtlı olarak RAM erişimini hızlandırır, ancak grafik video bağdaştırıcıları gibi diğerleri daha yüksek hızda çalışır ve sistemi yavaşlatabilir.

1130'un döngü çalma konsepti, CPU programının bir G / Ç cihazında bir işlem başlatmasına ve ardından G / Ç cihazı çalışmasını gerçekleştirirken ana hat programına devam etmesine izin verir. Bu şekilde çalışan her bir I / O cihazı, ihtiyaç duyulduğunda CPU'dan bir döngü alır (çalar).

Bir veri karakteri aktarılırken CPU yalnızca bir döngüde "bağlanır". Cihazların döngüleri çalma sıklığı, cihazın türüne bağlıdır.

CPU, sistemdeki herhangi bir G / Ç cihazından çok daha hızlı olduğu için, CPU, aritmetik gibi başka bir işlevi yerine getirirken aynı zamanda bir G / Ç işlemi gerçekleştiriyor olabilir. Aslında, birkaç G / Ç işlemi birbiriyle ve diğer CPU işlevleriyle çakışabilir.

Döngü hırsızlığı, ekonomi nedenlerinden ötürü video RAM'in ikili erişim olmadığı Sinclair QL gibi makinelerde büyük performans düşüşünün nedeni olmuştur . Sonuç olarak, ZX8301 "ana denetleyici" belleğe erişirken M68008 CPU'nun bellek veriyoluna erişimi reddedildi ve makine, benzer işlemcileri benzer hızlarda kullanan makinelerle karşılaştırıldığında kötü performans gösterdi.

Referanslar