Giriş Giriş Giriş
Modern karmaşık çipler - yüksek performanslı mikroişlemcilerden özel dijital sinyal işlemcileri (DSPs) ve sistem-kops (SoCs) - güvenli bir şekilde tasarlanmış binlerce kayıt, elektrik hiyerarşisi ile kaplı değildir; Bu kayıtlar, sadece verimli veri hareketini, kontrol ve yapılandırmayı sağlayan yapısal kayıt bankaları oluşturur.
Kayıt bankalarının hierarşik organizasyonu, çipin kendi başına tabakalı mimarisini yansıtıyor. Üst düzeyde, küresel kayıtlar büyük sistem işlevlerini koordine ediyor; orta düzeyde, alt sistem kayıtları özel modüller yönetiyor; ve en düşük seviyede, yerel kayıtlar bireysel işlevsel birimler için bluz sağlar.Bu makale her seviyede derinlikte her seviyede keşfedin, hiyerarşinin neden gerekli olduğunu açıklıyor, tasarım ticaret-offlarını inceler ve gerçek dünya mimarisinden pratik örnekler sunar.
What Are Register Banks?
Kayıt bankaları geçici olarak veri, adresler, kontrol bitleri veya statü bilgilerini tutan bir çip içinde depolama elementleri ( kayıt kayıtları) koleksiyonlarıdır. Ana bellekten farklı olarak (DRAM veya SRAM önbellekleri), kayıtlar fiziksel olarak çok düşük erişim gecikmeli bir şekilde gerçekleşir - bir veya iki saat döngüsü.Bir kayıt bankası birkaç düzine kayıt bankası çok sayıda mikro kontrol cihazını çok sayıda mikro kontrol cihazına kadar binlerce kişiye kadar bir mikro kontrol cihazı içerebilir.
Kayıtlar genellikle iki geniş kategoriye girer:
- [FONT:0]Architectural kayıtları[[Dönetici:0) Öğretim set mimarisi (ISA) tarafından tanımlanmış ve yazılım için görünür (örneğin, genel amaçlı kayıtlar, statü bayrakları).
- [FONT:0]Implementation-specific registers[Döneticileri) sürekli olarak boru hattı kontrolü, hafıza yönetimi, I/O yapılandırma ve debug için kullanılanlar programcıya maruz kalmazlar, ancak donanım operasyonu için çok önemlidir.
Modern çipler hem hiyerarşik kayıt bankalarında hem türlerini birleştirir. Organizasyon doğrudan performans, güç, alan (üç tane çip tasarımı), ve doğrulama kolaylığı etkiler.
Register Organizasyonunda Hierarchy'a ihtiyaç
Düz, tek seviyeli bir kayıt dosyasında, tüm kayıtlar ortak bir otobüs ve adresleme mekanizması paylaşırdı. Kayıt sayısı büyüdükçe, bu düz yaklaşım birkaç problemden muzdariptir:
- [0]Uzun erişim süreleri [Dönder: 1) artan tel gecikmeleri ve daha büyük çokluklar nedeniyle.
- [FONT=0)Power ([Dönetici) uzun global bağlantılardan her seferinde bir kayıt okunur veya yazılır.
- [FONT:0]Address uzay çatışmaları farklı alt sistemler kayıt isimleri veya sayılar gerektirdiğinde.
- [FONT=0) Tasarım karmaşıklığı[Dönetici: 2) Merkez bir kesinti noktasından her kayıt için kontrol sinyallerinin tutulmasında.
Bu sorunları aşmak için, çip mimarları bir hiyerarşide düzenlenen birden çok bankada kayıt dağıtıyor. Bu yerelleştirmeler trafiği, tel uzunluğu azaltır ve banka başına bağımsız saat ve güç yönetimi sağlar. Sonuç, yüzlerce kayıttan tasarruf etmeden ölçeklenebilir bir yapıdır.
Modern Chips'te Hierarchy Seviyeleri
Tipik hiyerarşi üç birincil seviyeden oluşur, ancak bazı çipler bile incelik için orta tabakalar ekler.
Global Register Banks
Global kayıt bankaları çip veya alt sistemden çip içinde erişilebilir. Tüm sistem boyunca paylaşılmalıdır verileri depolar:
- Global konfigürasyon kayıtları (örneğin, çip ID, güç modu ayarları, saat bölmeleri).
- Interrupt kontrolör kayıt (priority maskeleri, bekleme durumu).
- Orta zamanlayıcılar ve bekçiler.
- DMA kontrolör hafıza-to-peripheral transferlerini tanımlayan kayıtlar.
Bu kayıtların birçok noktadan erişilmesi nedeniyle, genellikle sistem otobüsüne veya bağlantı kumaşına yakın yerleştirilirler. Adres decoding merkezileşmiştir ve erişim izinleri (okunma/yazma, ayrıcalıklı erişim) küresel olarak uygulanır. Küresel kayıt sayısı bir şişe almak için nispeten küçük tutulur.
Altsystem Register Banks
Alt sistem bankaları hafıza kontrolörleri, USB kontrolörleri, grafikler çekirdekleri veya şifreleme motorları gibi belirli işlevsel bloklara hizmet eder. Bu kayıtlar yalnızca kendi alt sistemleri içinde görünür ve genellikle küresel kumaşa yerel bir otobüs veya köprü paylaşırlar.
Subsystem kayıtlarının örnekleri şunlardır:
- Krishna memory kontrolör kayıt (gömürücü parametreleri, yenileme kontrolü, güç indirme modları).
- Ethernet MAC kayıtları (giriş kontrolü, istatistikler karşıları, PHY yapılandırması).
- GPU komut kuyruk kaydı.
Subsystem bankaları her IP bloğunun bağımsız olarak tasarlanıp doğrulanmasına izin verir: bir alt sistem boş olduğunda, tüm kayıt bankası çipin geri kalanını etkilemeden kapatılabilir.
Yerel Kayıt Bankaları
Yerel kayıtlar en küçük, en hızlı ve en sıkı çift bireysel işlevsel birimlere - örneğin, bir CPU yürütme ünitesinde boru hatları kayıt, bir DSP'deki filtre katları veya çoklu hazırlayıcı kayıt defteri.Bu kayıtlar genellikle paralel işlemleri desteklemek için özel bir kayıt dosyası parçasıdır.
Yerel kayıt bankalarının temel özellikleri:
- Aşırı kısa erişim gecikme (tipik olarak 1-2 döngü).
- Çok sınırlı sayıda giriş (örneğin, 16-64 banka başına kayıt) dosyayı küçük ve hızlı tutmak için.
- Port count, ünitenin ihtiyaçlarına göre uyarlanmış (örneğin, süperscalar CPU'larda kayıt dosyaları birçok okuma / yazma portu vardır).
- Genellikle fiziksel olarak tel gecikmesini en aza indirmek için ilgili işlevsel üniteye bitişiktir.
CPU Register File Hierarchy – A Concrete Örnek
Modern bir dış sipariş x86 veya ARM işlemcisinde, kayıt hiyerarşisi özellikle telaffuz edilir. Mimari kayıt dosyası (örneğin, 16 veya 32 genel amaçlı kayıt) sadece buzdağının ipucudur:
- [FONT:0)Physical kayıt dosyası): Kayıt yeniden kayıt yaptırmaya yönelik mimari setten daha fazla kayıt yapın. Bu, CPU'nun kalbinde oturan büyük, çok fazla sayıda SRAM.
- [FONT:0)Retirement kayıt dosyası): Mağazalar, kesin istisnalar için mimari durumu işledi.
- [FONT:0)Reorder buffer girişleri[[Dönetici: Alternatif sonuçlar için geçici depolama olarak yapılır.
- [FONT:0] Özel amaçlı kayıtlar [[Dönetici: 0,4][3][/TRNT=TRNT=0) gibi, segment kayıtları, modele özel kayıt (MSRs) ve debug kayıtları.
Bu dosyaların veya bankaların her biri hiyerarşide farklı bir seviyede, farklı erişim kalıpları, güç bütçeleri ve tasarım kısıtlamaları ile çalışır. fiziksel kayıt dosyası, örneğin, birden fazla uygulama portuna erişen yüzlerce girişe sahip olabilir - tasarım optimizasyonu genel CPU performansı için kritiktir.
Hierarchical Register Banks için Tasarım
Etkili bir kayıt bankası hiyerarşisi oluşturmak birkaç alanda dikkatli bir düşünce gerektirir.
Adres ve Memory Mapping
Çoğu SoCs'te, kayıtlar hafızaya alınır - sistemin adresi alanında belirli adresler olarak görünürler. hiyerarşik adres dekoding: Her alt sistem bir kontigziguous adresi aralığı alır ve bu aralıkta yerel bankalar yerel olarak kodlanır.Bu, küresel adres dekoder'in boyutunu ve karmaşıklığı azaltır.
Örneğin, yaygın olarak kullanılan Advanced Micro controller Bus Architecture (AMBA) AXI veya AHB interconnects, her köle arayüzü bir kayıt bankasına karşılık gelir. adres haritası çip entegrasyonu zamanında tanımlanır ve hiyerarşi sadece ilgili bankanın bir işleme cevap vermesini sağlar.
Güç ve Alan Ticaret-offs
Farklı hiyerarşi seviyeleri çok farklı güç ve alan özellikleri vardır:
- [FONT:0]Local bankalar[[Dönetici: Küçük, hızlı, ancak her örnek, çipin etrafındaki birçok örnek. Çünkü küçük, per-bank alanı düşük, ancak toplu alan aşırı derecede kullanılabilir.
- [FONT:0] Global bankalar: Büyük, daha yavaş, ancak sadece birkaç örnek. Güçlü saat ve güç dağıtım ile düşük seviyeli yerlere yerleştirilmelidir. Dinamik güç çeşitli taleplere bağlanan uzun tellerle yönetilir.
- [FONT:0)Subsystem bankalar[[Dönetici: Her iki boyutta ve sayıda Intermediate. seçici güç gating etkinleştirir - alt sistemin güç alanı, kullanım sırasında tamamen kapatılabilir.
Tasarımcılar genellikle hangi seviyede ait olduğuna karar vermek için aktivite kalıpları simüle eder. Kayıtlar sık sık (örneğin, durumu kayıtları) hızlı bir yerel bankaya yerleştirilebilir, ancak bu erişilebilir nadiren (örneğin, hata sayacı) güç tasarrufu için daha yavaş bir küresel bankada olabilir.
Saat Domain Crossing ve senkronizasyon
Farklı saat domainleri kayıtlandığında, sinerarşik yapı senkronizasyon mekanizmaları dahil edilmelidir. Ortak bir yaklaşım, tüm kayıtları aynı otobüs köprüsü altında bir araya getirmektir. Köprü aynı kanalda (CDC) iki-port FIFO veya senkroniz zincirlerini kullanarak.Bir alanda bir kayıt koymak metastabilite sorunları ve işlevsel böceklere neden olabilir. Donanım tasarım araçları (örneğin, SpyGlass, Synopsys)
Ticari Chips'te Pratik Uygulama
Soysal hiyerarşiyi anlamak gerçek çip ailelerinden beton örneklerle daha kolaydır.
ARM Cortex-A Serisi (Uygulama Süreçleri)
ARM işlemciler hafızaya kapalı sistem kayıtlarına yoğun olarak kullanırlar.TheETHFLT:0)Sistem Kontrol Bloku) Kayıt bankasını kesintiye uğratmak ve önceliklendirmek için küresel bir konfigürasyon kaydı içerir.SCB Mimari Referans Kılavuzu, ve sistem zamanlaması her bir temel, yerel kayıtlarla kendi kesinti ve performans izleme ünitesine sahiptir.
Referans:0)ARM Mimarlık Referans Kılavuzu (Armv8-A)).
RISC-V Platformlar
RISC-V'nin modüler tasarımı, hiyerarşik kayıt bankalarını teşvik ediyor. temel ISA 32 genel amaçlı kayıt (x0-x31) her harc. Machine, Associate ve Kullanıcı ayrıcalıkları her biri kendi kontrol ve statü kayıtlarını (CSR'ler) ile ilgili olarak tanımlanır ve ÖSS adresi alanı işlevle bölünmüştür.
Referans:0)RISC-V Öğretimi Özellikleri).
x86 (Intel Core / AMD Zen)
x86 işlemciler belki de en derin hiyerarşiye sahiptir. Makineye özel kayıt bankaları (MSRs) RDMSR/WRMSR talimatları aracılığıyla erişilen büyük, düz bir alan oluşturur - konfigürasyon ve izleme için küresel kayıt olarak kabul edilebilir.Her bir temelin yerel Advanced Interrupt Controller (APIC) kayıt bankası vardır. hafıza kontrolörü ve I/O host (e.g., PCIe kök kompleksi) alt sistem bankaları.
Referans:0)Intel® 64 ve IA-32 Mimarlıks Yazılım Geliştiricisinin Manual)
Hierarchical Register Banks'in Avantajları ve Sınırları
hiyerarşik yaklaşım net faydalar sunar, ancak aynı zamanda dezavantajları da vardır.
Avantajları Avantajları Avantajları Avantajları
- [FONT:0)Speed): Yerel kayıtlar en düşük olası gecikme sağlar, genellikle fonksiyonel birimin boru hattı saatini eşleştirir.
- [FONT:0]Scalability[DÜT:1]: Yeni alt sistemler eklemek küresel kayıt alanı yeniden tasarlamayı gerektirmez - yeni blok kendi adres penceresini ve yerel bankasını alır.
- [FONT:0)Power verimliliği[DÜT:1]: Alt sistem ve yerel bankalar, dinamik ve statik gücü bağımsız olarak kapatılabilir.
- [FONT=0] Tasarım modülerliği[[Dönetici: IP blokları kendi kayıt bankaları ile geliştirilebilir ve sonra adres haritasına saygı duyulduğu sürece, minimum küresel koordinasyonla bütünleştirilebilir.
- [FONT:0)Error, [Dönetici: Yerel bir kayıt bankasında bir hata (örneğin, tek bir icat üzgün) genellikle sadece bu alt sistemi etkiler, hata-tolerant tasarımları (örneğin, eCC) uygulamak daha kolay.
Sınırlamalar
- [FONT:0]İncreased complex[[Dönetici: 1)[Dönetici: 2))[Üye Olmayanlar ve Bus tahkim mantığı, banka sayısı ile büyümelidir. Doğrulama, hiçbir adres çakışmamasını ve hiyerarşi işlevinin doğru bir şekilde tüm yollarını sağlamalıdır.
- [[Kategori Geçim varyasyonu[[Dönem: 1) Yazılım, küresel bir kayıta erişimin yerel bir kayıtla kıyasla birçok döngü alabileceğinden emin olmalıdır - gerçek zamanlı sistemler için kritik.
- [FONT:0)Debugging zorluk[[Dönetici: hiyerarşik düzeylerdeki gözlemlenebilirlik bir hatayı izole etmeye çalışırken zorlanabilir. Donanım debug araçları (örneğin, JTAG tabanlı tarama zincirleri) her bankayı hiyerarşi aracılığıyla okumak için tasarlanmıştır.
- [FONT:0]Memory-mapped kayıt alanı : Yüzlerce blokla çok büyük SoC'lerde, tüm kayıt bankaları için gerekli olan adres alanı, özellikle de otobüs genişliği sınırlıysa (örneğin 32-bit adresi alanı).
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Kayıt bankalarının hiyerarşik yapısı, modern karmaşık çiplerde temel bir mimari modeldir. Küresel yapılandırma kayıtlarından tüm sisteme kayıt dosyalarına uygulama boru hatlarında erişilebilir hale gelirken, bu hiyerarşik hesaplamayı sağlar - bu organizasyonun hız veya esneklik olmadan içsel durumu yönetmek için gerekli olan temel bir araç olarak kalacaktır.