Kayıtlara uygulandığında bankacılık ne anlama geliyor?


13

StackOverflow ile ilgili, ARM'nin bankalı kayıtları bağlamında bankacılığın ne anlama geldiğine dair bir soruya verilen bu cevap , kayıtlara uygulandığında bankacılığın anlamı konusunda bazı karışıklıklar olduğunu göstermektedir.

Bankacılık, kayıtlara göre ne anlama geliyor?

Yanıtlar:


16

Bankacılık kelimesi, kayıtlara uygulandığında iki farklı anlamda kullanılmaktadır.

Kesinti İşlemleri için Bankacılık Kayıtları

StackOverflow soru ilgili olduğu duyu (bellek) kullanımına benzer bir banka anahtarlama (bazı 8-bit ve 16 bit işlemci tarafından kullanılan) fonksiyonu . Bir kayıt koleksiyonunun adları, farklı bir fiziksel kayıt koleksiyonuyla eşleştirilir. ARMv7, 16 GPR'sinden 7'si için ek bir banka ve yığın işaretçisi kaydı ve bağlantı kaydı için beş banka daha sağlar (ARM, kesintiden dönmek için kullanılacak bilgisayarı kaydetmek için bağlantı kaydını kullanır). Itanium, 31 statik GPR'sinden 16'sına ekstra bir banka sağlar. (MIPS, 31 GPR'lerin tamamını sağlar ve bunlara "gölge kayıt kümeleri" adını verir.)

Bellek bankası anahtarlamasından farklı olarak, bu tür bir kayıt bankacılığının temel amacı (tipik olarak) adreslenebilir depolamayı genişletmek değil, kayıt değerlerini kaydetme, kesme işleyici tarafından kullanılan değerleri yükleme ve orijinali geri yükleme gereksinimini ortadan kaldırarak daha hızlı kesme işlemi sağlamaktır. değerleri kaydetmek ve kesme işlemeyi kolaylaştırmak için.

(Kayıt durumunu kaydetmek için uygulamanın yığınını kullanmak, bu yığın için ayrılan belleğin taşması olasılığını açar ve durum kaydetmeyi bir şekilde işlemesi gereken bir istisna oluşturur. Daha da kötüsü, yığın yığının sınırını hemen aşan bellek sayfası tarafından yazılabilirse kesme işleyicisinin artan ayrıcalığı uygulama tarafından değil, daha sonra uygulama yazma izni olmayan bir sayfaya etkili bir şekilde yazıyor.Bazı ABI'ler bir veya daha fazla kaydı kesinti boyunca geçici olarak tanımlayarak bu sorundan kaçındı. uygulama durumunu hızlandırmaksızın durum tasarrufu için bir işaretçi yüklemek için işleyici, ancak bankalı kayıtlardan farklı olarak, bu tür yazılım tanımlı kesme geçici kayıtlarının uygulama yazılımı tarafından değiştirilmesine güvenilemez.)

(Bu tür kayıt bankalarının sabit pencere olarak kullanılması, mevcut kayıt sayısını arttırmak için önerilmiştir, örneğin, "Pencereli Kayıt Dosyasını Kullanarak Düşük Güçlü İşlemcideki Etkili Kayıt Sayısının Artırılması", Rajiv A. Ravindran ve ark., 2003. Ayrıca, Itanium ve SPARC'da ["kayıt pencereleri" terimini kullanan] işlev çağrıları için kayıt kaydetmeyi ve ek yükü geri yüklemeyi önlemek için kullanılan yığını kaydetmeye benzerlik de görülebilir, ancak bu mekanizmalar genellikle kayıt adlarını takas etmek yerine kaydırır. dışarı.)

Donanım açısından, banka kodlu kayıtlar komut kodunda kayıtların yeniden adlandırılmasıyla uygulanabilir. ARM'nin nispeten karmaşık bankacılık sistemi için bu muhtemelen tercih edilen mekanizma olacaktır. Itanium tarafından kullanılan ve iki sayılık kayıt gücüne sahip tek bir ekstra banka ile daha basit bir bankacılık sistemi için, yeniden adlandırmayı kayıt dosyasının dizinine dahil etmek pratik olabilir. (Elbette, bu, sıra dışı yürütmeyi desteklemek için kullanılan belirli yeniden adlandırma biçimleriyle uyumlu olmaz.)

Farklı bankalara aynı anda erişilmediğini fark ederek, bu mekanizmayı kullanan akıllı bir optimizasyon, "3D kayıtlar" kullanarak yüksek oranda taşınan bir kayıt dosyasının (kablolu sınırlı) alan ek yükünü azaltabilir. (Bu teknik, SPARC'ın kayıt pencereleri bağlamında önerildi - "Superscalar İşlemciler için Üç Boyutlu Kayıt Dosyası", Tremblay ve ark., 1995 - ve Intel tarafından SoEMT için bir varyant kullanıldı - "Çok Dişli, Eşlik Korumalı 128-Çift Çekirdekli Itanium-Ailesi İşlemcideki Kelime Kayıt Dosyaları ", Fetzer vd., 2005.)

Olası Erişim Sayısını Artırmak için Bankacılık

Bankacılık teriminin kayıtlar için kullanıldığı ikinci anlam, bir dizi kayıt grubunun her birine paralel olarak erişilebilen gruplara (bankalara) bölündüğünü ifade eder. Dört bankanın kullanılması, her bir bankanın belirli bir etkin erişim sayısı için daha az erişim portunu (alan ve enerji kullanımını azaltma) desteklemesine izin veren dört faktör tarafından desteklenen maksimum erişim sayısını artırır. Ancak, belirli bir döngüdeki erişimin bankalar arasında eşit dağılmadığı ölçüde, maksimum erişim sayısına ulaşılamaz. İstenilen erişim sayısına göre çok sayıda bankayla bile, banka çakışmaları en kötü durumda, gerçek erişim sayısını tek bir banka tarafından sağlanan port sayısı ile sınırlandırabilir.

Banknot kayıt dosyalarında çok sayıda akademik makale bulunmaktadır ( Google Akademik arama) ve banka çatışmalarının etkisini azaltmak için çeşitli genel teknikler önerilmiştir. En bariz teknik, banka çatışmalarının bazı istatistiksel ortalamasını sağlayan talimatları (sıra dışı yürütme için yapıldığı gibi) tamponlamaktır. Talimat yürütülmeye hazır olmadan önce bir kayıt işlenenini okumak da mümkündür (örneğin, başka bir işlenen henüz hazır değilse veya yapısal bir tehlike yürütmeyi geciktirirse). Kayıtların bankalara tahsisi, çatışma olasılığını azaltmak için beklenen kullanım hakkında bilgi kullanabilir. (Yazılım tercih edilen şekilde kayıtları beklenen şekilde kullanarak yardımcı olabilir.) Sanal fiziksel kayıt adlarını kullanarak, değer kayıtta depolanana kadar fiziksel kayıt adlarının (ve dolayısıyla bankaların) tahsisini geciktirmek mümkündür;

Bu tür bankacılık bazen daha çok sayıda erişim portu yanılsaması sağladığı için bazen yalancı çoğaltma olarak adlandırılır. Bu teknik önbellekler için yaygın olarak kullanılır, çünkü fiziksel yapı genellikle başka nedenlerle ayrı bellek dizilerine ayrılır.

(Bu tür bankacılığa bir alternatif de kayıt dosyasını çoğaltmaktır. Kayıt dosyasının iki kopyasını kullanmak, her kopyanın aynı sayıda yazma bağlantı noktası gerektirmesine rağmen yarıya kadar okuma portu gerektirmesine izin verir. Bu teknik POWER2 ve Alpha 21264'te kullanıldı ve yüksek performanslı işlemcilerde yaygın olarak kullanılır.)

özet

Bu iki bankacılık türünü, banka seçiminin zamana yayıldığı geçici bankacılık (ARM'nin hızlı kesintiler için banka kayıtları gibi) ve banka erişiminin zaman içinde eşzamanlı olabileceği ancak mekansal olarak dağıtıldığı geçici bankacılık olarak ayırt etmek faydalı olabilir.

Geçici bankacılık tipik olarak yazılıma maruz kalır ve kesintilerin genel giderlerini (ve karmaşıklığını) azaltmak için kullanılır. (Kavramsal olarak, Olay-Aç-Çoklu-İş Parçacıklı bir işlemcide iş parçacığı değiştirme, kesme işlemine çok benzer ve ek yükü azaltmak için benzer mekanizmalar kullanabilir.)

Uzamsal bankacılık ISA'nın daha az bir parçasıdır (Itanium çift ve tek kayıt numaralarını kullanmak için kayan nokta kayıt çiftlerini yüklemeli ve depolamalıdır - bu da kayıt rotasyonu kullanımı garanti edilmez - iki banka tasarımının ekstra kayıt dosyası erişim gereksinimleri) ve döngü başına daha fazla sayıda kayıt erişimi sağlama maliyetini azaltmak için kullanılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.