Robotikte Gerçek Zaman Performansı Geliştirmek için Nasıl Kayıtlar Kullanılır
Table of Contents
Neden Gerçek Zamanlı Performans Modern Robotikte Önemlidir
Robotik sistemler zamanlamanın her şey olduğu ortamlarda çalışır. sensör verileri işlemek veya bir motor komutunu işlemek için çok uzun süre süren bir robot, bir engelle çarpıtabilir veya kesin bir hareketle başarısız olur. Gerçek zamanlı performans, güvenlik, güvenilirlik ve etkililik için çok fazla bir zorunluluk değildir.
Gerçek zamanlı sistemler, cevapların sınırlanmış bir zaman çerçevesi içinde gerçekleşeceğini garanti etmelidir. Bu özellikle robotikte zorlanır, kontrol döngüsü sensörleri, süreç verileri, hesap komutları ve mikrosaniyeler içinde tüm motorlar.Bu döngüde herhangi bir gecikme bu sert zaman koşullarıyla karşı çıkabilir ve mühendisler her seviyeden faydalanmalıdır.
Ne Kayıtlar ve Neden Önemli?
Kayıtlar bir bilgisayar işlemcisinde en hızlı depolama yeridir. Doğrudan CPU çekirdeğine inşa edilir ve aynı saatte işlemcinin kendisi olarak çalışır.Ana bellekten farklı olarak (RAM), bu, erişim için onlarca veya yüzlerce saat döngüsü alabilir, kayıtlar tek bir döngüde veri sağlar.Bu hız avantajı onları gerçek zamanlı robot kontrolü için vazgeçilmez hale getirir.
Tipik bir robot sisteminde, kayıtlar arithmetic operasyonlarının orta sonuçlarını tutar, döngü karşıtları, hemen hareket etmeli olan duyu verileri ve her kontrol döngüsünü değiştiren değişkenleri kontrol eder. Çünkü kayıtlar çok hızlı, işlemcinin tam ve hafızada beklemesine izin verir, bu genellikle gerçek zamanlı sistemlerde birincil şişenck.
Her modern işlemcinin sınırlı sayıda kaydı vardır, genellikle 16 ve 32 genel amaçlı kayıt arasında tipik bir mikro kontrol cihazına kayıt yaptırır, ancak ARM gibi bazı mimariler daha fazla sahiptir.Bu kıtlık, hangi değişkenlerin herhangi bir zamanda kaydettiğine karar verme süreci kritik bir optimizasyon sorunudur.
Kayıtların Gizliliğine Rolü Hierarchy
Kayıtların gerçek zamanlı performans üzerindeki etkisini tam olarak takdir etmek için, hafıza hiyerarşisine uygun olduklarını anlamalarına yardımcı olur. hiyerarşi, en hızlı yavaşlığa en hızlı, şu:
- [FONT:0)Yöneticiler: [Dönderler: [Dönderler: [Dönderler: [Dönderler: [Dönderler: [Dönderler: [Dönderler:[Dönderler:)
- [D:0)Cache (L1, L2, L3): [Dönder: [Düzücüler veya çok yakın, birkaç erişim döngüsü gecikmeli, daha büyük kapasite (kilobaylar megabaylara)
- [FONT=0]Main Memory (RAM): [Dönder: [Dönder: 10 ila yüzlerce çevrim gecikmeli, büyük kapasite (gigabaylar).
- [FONT:0]İkinci Depolama (Flash, SSD, HDD): [DFLT:1) Off-chip, milyonlarca döngü gecikmeli, büyük kapasite (terabaylar).
Kayıtlar, işlemcinin yürütme hızını tutabilecek tek depolama seviyesidir. Veriler üzerinde çalışan her talimat genellikle kayıtlarından operalarını okur ve kayıtlara geri yazar. Veriler bir kayıtta olmadığı zaman, işlemci gerçek zamanlı davranışı bozabilecek bir değişken gecikmeyi uygulamalıdır.
Kayıtların Performans Etkisini Sayılamak
Kayıt erişim ve hafıza erişimi arasındaki performans farkı şaşırtıcıdır. 100 MHz'de çalışan tipik bir mikrokontrolör için:
- Kayıt erişim: bir saat döngüsü (10 nanosaniye).
- L1 önbellek erişim: iki ila dört saat döngüsü (20-40 nanosaniye).
- RAM erişim: 20-50 saat döngüsü (200-500 nanosaniye).
1 kHz'de çalışan gerçek zamanlı kontrol döngüsünde, döngü bütçesi 1 milisaniyedir.Her bir mikrosaniyeye kadar 100 hafıza erişimi gerektirir ve her hafıza erişim, kayıt erişimine 10 kat daha fazla maliyetle, hafıza geç saatlerde toplam yükün 500 mikrosaniye tüketebilir, tüm bütçeyi sık sık sık tutarsa, bu da 10 mikrosaniyeye kadar azalır, ek hesaplama veya sensör işleme için 490 mikrosaniyeye kadar.
Robotikte Kullanılan Kayıt Türleri
General-Purpose Registers
Bunlar arithmetic, mantık ve veri hareket işlemleri için kullanılan işhorlarıdır. değişkenler, ara sonuçlar ve adresler. Gerçek zamanlı robotik kodda, kritik döngü karşılarında, sensör füzyon geçici değerleri ve PID kontrolörleri kontrol döngüsü boyunca genel amaçlı kayıtları ideal olarak işgal etmelidir.
Özel-Purpose Registers
Çoğu işlemciler, gerçek zamanlı robotik kontrol ile doğrudan alakalı özel işlevleri içeren kayıtlar içerir:
- [FONT:0]Program Counter (PC):[Dönetici:[Dönetici:0) Bir sonraki öğretimin adresini tut. Gerçek zamanlı sistemlerde, eller zaman kritik olaylara cevap vermek için PC'yi değiştirir.
- [FONT=0)Stack Pointer (SP): Çağrı paketinin üst kısmındaki noktaları dikkatle takip etmek gerekir. Gerçek zamanlı sistemler, nested kesintiler sırasında aşırı akıştan kaçınmak için yığını dikkatle yönetmek gerekir.
- [FONT:0]Status Register (SR):), Contains koşulu bayrakları (zero, taşıma, aşırı akış, kesinti etkinleştirin). Gerçek zamanlı kontrol kodu sık sık bu bayrakları bölmek için kontrol eder.
- [FONT=0)Link Register (LR):[Döneticileri üzerinde) fonksiyon aramalarına geri dönüş adresi tutar. Hızlı kesme işlemi LR'nin verimli kullanımına bağlıdır.
Memory-Mapped Registers for Peripherals
gömülü robotiklerde, birçok periferik (timerler, ADCs, PWM jeneratörleri, encoders) hafızaya kayıt yaptıranlardan kontrol edilir. Bunlar doğrudan okuduğunuzda, mikrosaniyelere erişim, bellek erişim için hızlı bir şekilde iletişim kurar.
Gerçek Zamanlı Robotik Kontrolde Etkili Kayıt Utilizasyon için Stratejiler
Zaman-Critical Data Tanımlama ve Önceleme
Bir robot sisteminde tüm veriler kayıt seviyesinde erişime ihtiyaç duymaz. Anahtar, her kontrol döngüsüne erişen değişkenlerin alt kümesini tanımlamak ve geç kalmışlık doğrudan sistem performansını etkiler. Tipik adaylar şunları içerir:
- Sensör encoders, IMUs, güç sensörleri ve kameraları okunur.
- Kontrol için kümesler ve referans trajektörleri.
- PID döngülerinde hata koşulları ve integral taşıyıcılar.
- Kalman filtreleri veya diğer tahmin algoritmalarında devlet değişkenleri.
- EtherCAT gibi gerçek zamanlı protokollerin iletişim yolları veya FD'yi de yapabilir.
Bu değişkenler kontrol döngüsü boyunca kayıt altında kalmalıdır. Eğer işlemci kayıt basıncı nedeniyle tüm bunları aynı anda tutamazsa, bir sonraki en iyi seçenek kod ayarlamalıdır, böylece en sık erişilebilir değişkenler her zaman gerekli olduğunda kayıtlardadır.
Inline Functions and Reduce Function Call Overhead
Fonksiyonlar kayıt tahsisini bozar, çünkü çağrı kongresi genellikle tasarruf gerektirir ve kayıt geri yükleme gerektirir. Gerçek zamanlı kontrol döngüsü için, kritik fonksiyonlar bu yükü ortadan kaldırır. Örneğin, bir robotun Jacobian veya bir yarı-katlama güncelleştirmesi için bir matris, tüm ara sonuçları depoya dökmekten ziyade kayıt altına almak için sıra dışı olabilir.
Compiler Optimizasyonları Akıllı Olarak Kullanın
Modern derleyiciler, sabit kodlar gibi sofistike kayıt tahsisi geçerler, doğru zaman kodu kullanarak dikkate alırlar; 2) agresif optimizasyon sağlar, ancak aynı zamanda derlemede veya sıra dışı bir şekilde yapılanma talimatları da tanıtabilir.
Interrupt Tutarlar için Özel Kayıt Setleri
Birçok işlemci, özellikle ARM Cortex-M serisi, kesme eller için bankalanmış bir kayıt setine sahiptir. Bu, kesintili yangınlar içinde işletmek için kesintiye uğratılabilmesi için gerekli olan verileri transfer etmek için gerekli olan minimum kayıtlardan kaçınılması anlamına gelir.Bu donanım özelliği, kesintiye son derece azalır ve yüksek frekanslı sensör kesintileri için gereklidir.
Manual Register Allocation with Inline Assembly
Kombinasyon işlemi gerçek zamanlı garantiler için yetersiz olduğunda, manuel montaj, herhangi bir bellek yükü veya mağaza olmadan mühendislere tam bir kontrol verir. Bu teknik yüksek uçlu motor kontrol ve drone uçuş kontrolörleri ile ortaktır.
Pratik Vaka Çalışması: Quadruped Robotda Kayıt Optimizasyonu
Bir dörtlü robotun 3 m /s'te dinamik bir parça yaptığını düşünün. Her bacağın üç ortak noktası vardır ve kontrol sistemi, diğer tüm kombizleri ve 500 Hz'deki zemin reaksiyon güçleri ile hesaplamalıdır.
İnmemiş versiyonda, tüm değişkenler RAM'da depolanır. Kontrol döngüsü 520 mikrosaniye alır, sensör okuması ve 1 kHz döngüsündeki iletişim için sadece 480 mikrosaniye bırakır. Bu, hata için hiçbir marj bırakmaz ve herhangi bir önbellekleme veya kesintiye neden olur.
Kayıt optimizasyonundan sonra:
- Her bir ortak için tüm PID katları ve devlet değişkenleri, her döngüde güncellenen özel bir kayıt setine haritalanmıştır.
- Eleştirel matematik operasyonları (bağışlar için/cosine) tamamen kayıtlarda çalışan hızlı bir yaklaşım kullanır.
- Inline assembly, matrix operasyonlarının iç döngüsü için kullanılır.
- Ana kontrol fonksiyonu doğrusaldır, işlev çağrısını ortadan kaldırır.
En optimize edilmiş döngü 180 mikrosaniyede çalışır, sensör işleme ve iletişim için 820 mikrosaniyeler serbest bırakır. Robot şimdi kontrol oranını azaltmadan ek sensör girişlerini (LiDAR, derinlik kamera) idare edebilir.
Gerçek Zaman Sistemleri için Kayıt Kullanımı Ortak Pitfalls
Compiler Optimizasyonu Üzerine Fazladan Fazladan
Kompler genel amaçlı optimizasyonda iyidir, ancak bir robot sisteminin gerçek zamanlı kısıtlamaları tam olarak anlayamazlar. Bir derleyici, hafızaya sadece bir kayıt dökmek için bir kayıt atabilir, çünkü bu dökmenin ortak durumda bir zamanlama ihlaline neden olacağının farkında değildir.Her zaman profil ve denetimli bir montaj için gerçek zamanlı olarak oluşturulur.
Kompleks rings'te kayıt Starvation
Sınırlı kayıtlarla, derleme kalıplarının giriş verileri ile ilgili tahmin edilebilir kontrol algoritmaları, birçok devlet değişkeni gerektirir. Sınırlı kayıtlarla, derlemenin hafızaya bazı dökmesi gerekir.Bu, tahmin edilebilir zamanlamaya neden olabilir. Çözüm algoritmayı basitleştirmek, kayıtlarda sığabilecek daha küçük aşamalara ayırmak veya daha fazla kayıtlarla bir işlemci kullanmak.
Ayrılma Etkileri
Bir kesinti yangınları kesintiye uğradığında, işlemci kaydetmek ve geri yükleme kayıtları kaydetmek zorundadır. Ana kontrol döngüsü mevcut tüm kayıtları kullanırsa, kesme kapsamı tasarruf daha uzun sürer, gecikme süresine kadar. Ortak bir strateji sadece kesme eller için birkaç kayıt rezerve etmektir, kesme hizmeti rutininin tam kayıt dosyasından tasarruf etmeden hemen başlayabilir.
Önbellekli Prefetch Interference
Önbellekli sistemlerde, kötü bir zamanlayıcı bellek erişimi önbellekli bir öznelliğe neden olabilir, bu da gerçek zamanlı davranışlarla müdahale eden bir hafıza getiricisine neden olabilir. Kayıtlar, hiyerarşinin üst kısmında olmak, kayıtlarda mümkün olduğunca fazla veri tutmakla kalmaz, mühendisler önbellek davranışı tamamen önlemek.
Analyating Register Use için Araçlar ve Teknikler
Compiler Çıktı Analizi
Çoğu derleyici, kayıt tahsisi ile montaj listelerini yazdırabilir. GCC için, hangi değişkenlerin hangi kayıtlara atandığını görmek için [[GCC için.This is the most direct way to verify that critical variables stay in registers across the control loop.
Çevrim-Accurate Simulators
QEMU veya satıcıya özel simülatörler gibi araçlar (örneğin, ARM Fast Models) döngüleri sayabilir ve kayıt dökme olayları ortaya çıkarabilir. Kayıt profiline sahip bir simülatörün kontrol döngüsünde tam olarak tespit edilebilir ve kayıtların hafızaya döküldüğü zaman ve neden kayıtlar belirlenebilir.
Donanım Performans Counters
Modern mikrokontroller önbellek kaçıran performans sayacı inşa etti, şube yanlış tahminler ve boru hatları tezgahları.Bu olayları kayıt tahsis kararları ile ilişkilendirerek, mühendisler kodlarını belirsiz gerçek zamanlı operasyon için iyi bir şekilde tamamlayabilirler.
Future Trends: Register Files and Real-Time Robotics
Büyük Kayıt Dosyalar
Örneğin, daha fazla kayıt eklemeye çalışan özel uzantılar daha yaygın hale gelir.In FPGA tabanlı yumuşak işlemciler robotik olarak daha yaygın hale gelirken, mühendisler belirli gerçek zamanlı iş yüklerine göre özel kayıt dosyaları tasarlayabilirler, böylece her bir robot kolun ekseni için özel bir kayıt setine göre.
Hızlı Context Switching için Windows kayıt
SPARC ve RISC-V gibi bazı mimarlıklar, "Zcmp" uzantılı, kayıt pencereleri.Bu, açık kurtarma / oyun alanı olmadan taze kayıt kullanma çağrılarına izin verir, yüksek oranda ihmal edilmiş gerçek zamanlı koda göre. Bu, özellikle de birçok küçük fonksiyonu sırayla çağıran sensör boru hatları için yararlıdır.
AI-Assisted Register Allocation
Makine öğrenme teknikleri, özellikle tahmin edilemez yolları olan karmaşık kod için yapılır. Gelecekte, derleyiciler bir robot sisteminin gerçek zamanlı modellerini öğrenebilir ve her zaman en kötü durumdaki yürütme süresini en aza indirmek için kayıt kayıtları atabilir, doğrudan zor gerçek zamanlı performansa fayda sağlar.
Kayıt Optimizasyonu Geliştirme Çalışma Akışına Bütünleme
Kayıt optimizasyonu, robotik sistem tasarımından sonra olmamalıdır. Başlangıçta gelişim akışına entegre edilmelidir:
- [FONT:0)Profile erken:[Dönetici:[Döneticileri yazmadan önce, temel kontrol döngüsü zamanlamasını ölçmek ve hafıza erişim şişelerini tanımlamak.
- [FONT:0] Sıcak yolları ortadan kaldırma:) Hangi kodun her kontrol döngüsüni yürütüp hangi verilerin her iterasyona eriştiğini belirleme.
- [FONT:0]Allocate kayıtları manuel olarak: En sıcak yollar için, hızlı erişim garanti etmek için belirli kayıt bağlayıcısı kullanın.
- [FONT:0)Verify determinism:[Dönetici:[Dönetici:0) Tüm koşullar altında kayıt işlemini doğrulayan kodu doğrulayan analizler ve en kötü durumda infaz süresi (WCET) analizi.
- [FONT:0)Belge kayıt kullanımı:[Dönetici:0) Kayıtların hangi amaçlar için rezerve edildiği açık belgeyi korur, özellikle de kod birden fazla mühendis tarafından muhafaza edilirse.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Kayıtlar sadece soyut bir bilgisayar mimarisi konsepti değildir.Onlar, simülasyoncuların düşmesi ve sistemin güvenilirliğini artırmak için pratik, yüksek hacimli bir araçtır.How records work, define the data that most needs their speed, and apply manual revision teknikleri where compilers faller fall short, mühendisler can criticalncy and improve system.
Kayıtlarda kendini kontrol eden bir robot arasındaki fark ve her döngüde hafızaya dökülen bir sistem, sadece zamanlaması bütçesini karşılayan ve inovasyon için baş oda olan bir sistem arasındaki farkdır. Robotlar daha bağımsız hale gelir ve güvenlik-kritik zamanlamayı sürdürürken daha fazla sensör verileri işlemeli, kayıt seviyesindeki optimizasyon robot mühendisleri için giderek daha önemli bir beceri haline gelecektir.
Bu konu hakkında daha fazla okuma için, Cortex-M işlemcilerinde kayıt kullanımı hakkında kaynakları gözden geçirmeyi düşünün)Embedded Gerçek zamanlı sistemlerde kayıt yaptırmaya ilişkin kılavuzluk), gerçek zamanlı sistemlerde kayıt işlemleri için mimari dokümantasyonlar (Dördüncü) ve ).