Yerinde yürütme - Execute in place

Gelen bilgisayar bilimleri , yerinde yürütmek ( XIP ) uzun süreli depolamadan doğrudan programları çalıştırarak yerine içine kopyalama yöntemidir RAM . Gereken toplam bellek miktarını azaltmak için paylaşılan bellek kullanmanın bir uzantısıdır .

Genel etkisi, program metninin yazılabilir bellek kullanmaması, onu dinamik veriler için saklaması ve programın tüm örneklerinin tek bir kopyadan çalıştırılmasıdır.

Bunun işe yaraması için birkaç kriterin karşılanması gerekir:

  • Depolama, CPU'ya normal bellekle benzer bir arabirim sağlamalıdır (veya uyarlanabilir bir katman bulunmalıdır).
  • Bu arayüz, bir rastgele erişim modeli ile yeterince hızlı okuma işlemleri sağlamalıdır .
  • Dosya sistemi eğer kullanılmışsa, uygun haritalama fonksiyonları ortaya çıkarmak gerekiyor.
  • Program , deponun sistemde göründüğü adresten haberdar olması için bağlantılı olmalı veya konumdan bağımsız olmalıdır .
  • Program, yüklenen görüntü içindeki verileri değiştirmemelidir.

Depolama gereksinimleri, çoğu kurulumda normal sistem RAM'inden biraz daha yavaş olmasına rağmen, okuma işlemleri için ayrı sözcükler olarak ele alınabilen NOR flash bellek veya EEPROM kullanılarak karşılanır .

Önyükleme yükü sırasında XIP

Tipik olarak, Birinci Aşama Önyükleme Yükleyicisi, flaş yongalarının açılışta eşleştirildiği adreste çalışmak üzere bağlanan ve sistem RAM'ini ayarlamak için minimum bir program içeren (bileşenlere bağlıdır) bir XIP programıdır. ayrı kartlarda kullanılır ve yeterince genelleştirilemez, böylece uygun sıra işlemci donanımına yerleştirilebilir) ve ardından ikinci aşama önyükleyiciyi veya işletim sistemi çekirdeğini RAM'e yükler .

Bu başlatma sırasında, yazılabilir bellek kullanılamayabilir, bu nedenle tüm hesaplamaların işlemci kayıtları içinde gerçekleştirilmesi gerekir. Bu nedenle, ilk aşama önyükleme yükleyicileri assembler dilinde yazılma eğilimindedir ve yalnızca bir sonraki program için normal bir yürütme ortamı sağlamak için minimum olanı yapar. Bazı işlemciler, bu ilk aşama önyükleyicinin yüksek seviyeli dil kullanarak yazmasını kolaylaştırmak için ya küçük bir miktar SRAM'i çipin içine yerleştirir ya da yerleşik önbelleğin RAM olarak kullanılmasına izin verir.

Bir çekirdek veya önyükleyici için, adres alanı genellikle dahili olarak atanır, bu nedenle bunlar için XIP'yi kullanmak için, bağlayıcıya değiştirilemez ve değiştirilebilir verileri farklı adres aralıklarına yerleştirmesi ve kopyalanacak değiştirilebilir veriler için bir mekanizma sağlaması yeterlidir. verilere normal olarak erişilebileceğini varsayan herhangi bir kod çalıştırılmadan önce yazılabilir belleğe. Bu, önceki aşamanın bir parçası olarak veya programın başlangıcındaki küçük bir kod bölümü içinde yapılabilir.

Adres alanı, sanal bellek sağlamayan bir sistemde çalıştırılan bir uygulama programında olduğu gibi harici olarak atanırsa , derleyicinin veri alanının özel bir kopyasına bir işaretçiye bir ofset ekleyerek değiştirilebilir tüm verilere erişmesi gerekir. Bu durumda, harici yükleyici, örneğe özgü bellek alanlarının ayarlanmasından sorumludur.

BIOS ve UEFI , ana belleği başlatmak için XIP kullanır .

Dosya sistemi olarak XIP

XIP, gereksinimleri genellikle karşılaması zor olan dosya sistemlerine yerleştirir. Sayfa tablosu olmayan sistemlerde , tüm dosyanın ardışık baytlar içinde depolanması ve parçalanmaması gerekirken, flash tabanlı dosya sistemleri genellikle verileri en az silme döngüsüne sahip olan ve hatta yıpranmayı ortadan kaldıran flash yonga sektörlerine dağıtmayı hedefler . çip, ömrünü uzatır.

Tüm bu komplikasyonlar ve hız değiş tokuşu, XIP'in genellikle yalnızca ilk aşama önyükleyiciler için veya RAM aşırı derecede yetersiz olduğunda kullanıldığı anlamına gelir. Özellikle, ikinci ila dördüncü nesil video oyun konsolları, ROM kartuşunun adresini ve veri yolunu konsolunkine bağlar , bu da (örneğin) Atari 2600'ün kumanda kolu arabirimi IC'sinde yalnızca 128 bayt RAM ile çalışmasını sağlar .

AXFS ( Gelişmiş XIP Dosya Sistemi ) adı verilen Linux için nispeten yeni bir dosya sistemi , özellikle kullanıcı alanı uygulamalarının yerinde yürütülmesi açısından XIP ile ilişkili bazı eksikliklerin üstesinden gelmeyi amaçlamaktadır . Örneğin, çalıştırılabilir bir ikili dosyayı "XIP bölgelerine" bölmeyi mümkün kılar, böylece yukarıda bahsedilen parçalanma kısıtlamasından kaçınır.

Bir NetBSD uygulaması da geliştirme aşamasındadır.

Ayrıca bakınız

Referanslar

  1. ^ Samsung S3C2416X, sistem veri yolunda 64kB yerleşik SRAM'a sahiptir
  2. ^ Broadcom BCM2835, SDRAM başlatılmadan önce Seviye 2 Önbelleğini önyükleyici RAM olarak kullanır
  3. ^ ABD patenti 4485457A , Richard K. Balaska, Robert L. Hunter ve Scott S. Robinson, CBS Inc.'e devredilen, 1984-11-27'de yayınlanan "RAM ve sayfa değiştirilebilir ROM dahil bellek sistemi"  
  4. ^ Uebayashi, Masao (2010-04-05). "NetBSD için Yerinde eXecute (XIP) Desteği" (PDF) . BSDCan .

Dış bağlantılar