Kontrol Sistemleri ve Otomasyon
Kayıt Shadowing ve onun Faydaların Gömülü Sistemlerde
Table of Contents
Kayıt Shadowing ve onun Faydaların Gömülü Sistemlerde
Kayıt gölgeleme, sistem sürekli olarak fiziksel kayıt yaptırmadan temel bir tekniktir. Bu yaklaşım, bir yazılım kopyalamasını ve #8212; “gölen”— Sistem daha karmaşık hale geldiği için, sistem, kontrol ve kritik donanım durumunu izlemek, fiziksel kayıt altına alma riskini azaltır ve performanstan ödün vermeden daha yüksek düzeyde koruma sağlar.
Gölge nedir?
Anada, bir donanım kaydının içeriğini bir bellek konumuna kayıt edin ve hızlı bir şekilde yazabilmeleri için kayıt edin. Donanım kayıtlarını kontrol periferileri, sistem zamanlayıcıları, kontrol kontrolleri ve temel işlemci işlevleri. Doğrudan okuma veya yazma bu kayıtları, zaman zaman zaman zamanlaması sorunlarını, yarış koşullarını veya yanlışlıkla yan etkileri.
- Mevcut tasarlanmış durumu bir otobüs işlemine gerek kalmadan okuyun.
- Onları donanıma taahhüt etmeden önce önerilen değişiklikleri geçerli.
- Sistem hatası veya geçici bir hatadan sonra bilinen iyi bir devlet geri yükleme.
- Birden fazla yazılım bileşenleri arasında donanım durumu tutarlı bir bakış sağlar.
Gölge kayıtları genellikle işlemciye erişilebilir RAM'da depolanır. Teknik özellikle de müdahale etmeden sistem durumu hakkında bilgi sahibi olduğunda değerlidir (örneğin, yazılım akışına ilişkin bir kesme bayrağını açıklayın) veya donanım güncelleştirmeleri yazılım akışına karşı bir senkronizasyondur.
Aynadan Nasıl Differs ve Buffering
Gölgeleme aynı değildir, birden fazla fiziksel kayıt aynı değeri elde etmenin aynı değeri olduğu anlamına gelir (örneğin, hataya dayalı tasarımlarda). Ne zaman kayıt değerleri için kullanılan basit bir yazılımdır. Gerçek kayıt gölgeleme, yazılım kopyalarının donanım kaydının ne kadar olduğunu anlaması gerekir:0) Bu hatanın gerçekleşmesine izin verir.
Kayıtların Faydaları
Aşağıda her faydayı daha ayrıntılı olarak inceleyeceğiz, gölgelenmenin doğrudan sistem doğruluğu ve sağlamlığa nasıl katkıda bulunduğunu tasvir ediyoruz.
Geliştirilmiş Güvenlik
Güvenlik kritik sistemlerde, istenmeyen bir kayıt yaz-ı, PWM görev döngüsünin izin verilen veya insan zararlarına yol açması için bir cihaza neden olabilir. Kayıt gölgesini azaltmak için bu riski öncelikle donanıma girmeden önce yeni bir değer talep edebilir. Örneğin, bir motor kontrol cihazı PWM görev döngüsü kaydı gölgelendirmek için gölgelendirme işlemine yol açabilir. Software, izin verilen güncellemelere izin verilen yeni görev döngüsünden dolayı (örneğin,% 0) alabilir.
Ayrıca, ISO 26262 (automotive) ve IEC 61508 (endüstri) gibi, gölge kopyaları, pahalı kırmızı donanım gerektiren bu gereksinimleri geri yüklemek için kullanılabilir.
Artan Güvenilirlik
gömülü sistemlerde yeniden kullanılabilirlik, geçici bir hatayı gösteren diskalizleri tespit edip, kayıt başına bir başarısızlıkla karşılaştırarak, gerçek donanım kaydı değerine karşı gölge kaydı değeri karşılaştırır (veya bilgisayar destekli okuma veya donanım destekli okumalar ile ilgili olarak), sistem geçici bir hata gösteren diskrepanzileri tespit edebilir veya yanlış yazılabilir.
Örneğin, bir ağ arayüzü kontrol cihazı (NIC), bir paket kaybetmeden önce gönderilen tanımlayıcı işaretine karşı uyarılabilir. Bu tür algılama mekanizmaları, elektromanyetik müdahale veya radyasyona maruz kalan sistemler arasında dramatik bir şekilde zaman anlamına gelebilir.
Hızlı Yanıt
Gölge kayıtları, yazılımların sistem durumundaki değişiklikler için hızla tepki vermesine izin verir. Donanım okuma döngüsü beklemeden. Birden fazla periferik olayların her mikrosaniyeli meselelerinin donanım kaydından (bu yavaş bir otobüs protokolü içerebilir), kesme servisi rutini, daha önce yapılan bir rutin tarafından güncellenen gölge kopyasını özellikle de yüksek seviyeli bir kontrol döngüsünde önemli.
Dahası, gölgeleme tahmin edici bakım sağlar. Bir kayıt kaç kez güncellenmiştir (bir gölge karşı ile), bir bileşen giyebileceği zaman, veya hata durumunu gösteren anormal bir yüksek güncelleme oranını tespit edebilir.Bu ön-boş yanıt sadece bir yerel, tutarlı bir kayıt geçmişi görüşüne sahip olduğu için mümkündür.
Siified Debugging
Debugging gömülü sistemler genellikle bir periferikın neden beklenmedik bir şekilde davrandığını anlamak için kayıt içeriklerini incelemeyi içerir. Geleneksel debugging teknikleri, sistem durumunu değiştiren veya normal işlem sırasında gölge kayıt anlık kayıtlarını değiştirebilecek şekilde kırılmayı gerektirir.
Birçok gerçek zamanlı işletim sistemleri (RTOS) ve debug araçları, gölge kayıtlarına ait bellek adreslerine dair saat işaretlerini destekleyebilir. Bu, bir geliştiricinin ilk yazı bir gölgeye tespit etmesi için, böylece kritik bir ayar değiştirmeden doğru kod yolunu tespit etmesine izin verir. Geliştirici kayıt adresi üzerinde donanım saati kullanmaları gerekir, ki bu genellikle numarada sınırlı ve performans cezaları alabilir.
Uygulamayı Değerlendirme
Etkili kayıt gölgeleme, yeni başarısızlık modlarını tanıtmak için dikkatli bir tasarım gerektirir. Aşağıdaki yönler ele alınmalıdır:
Sıfırlama ve Hatalar Sonrası senkronizasyon
Bir sistem sıfırlandığında, donanım kayıtları sıfır değerlerine ilk olarak yapılır, ancak RAM'daki gölge kopyaları artık tanımlanmış değildir (veya sabit değerleri tutmalıdır).Başlangıçta silinen tüm gölge kayıtlarının sıfır değerleri kopyalanmalıdır ve herhangi bir periferik zamanlaması veya istisnadan sonra, gölge kayıtları artık donanım durumunu yansıtamaz, böylece tekrar senkronizasyon adımını gerektirir.
Atom ve Konsolide
Birden çok otobüs genişliğine (örneğin, 16-bit otobüsle erişilen 32-bit kayıt), gölgeye yazılması zorunlu olarak, donanıma göre bir kesinti meydana gelebilir. Aksi takdirde, sistem tutarsız bir durumda bırakmak için bir kesme işlemi veya donanım işlemleri ile sağlanmalıdır.
Access Control Access Control Access Control Access Access Control Access Control Access Access Access Control Access Control Access Control Access Access Access
Her bir yazılım bileşeninin her gölge kaydının değiştirilmesine izin verilmemelidir. Sistemde ayrıcalıklı bir RTOS ve unprivile edilmiş görevlerle çalışan, kayıt gölgeleme yalnızca kayıtlı sürücüye erişim sağlamak için bir hafıza koruma ünitesi ile birleştirilmelidir.Bu, gölge yoluyla kritik bir ayar yürütme görevinin bozulmasına engel olur.
Performans Overhead
Her bir donanım kaydı gölgeleme yoluyla kayıt için her yazı en az iki işlem: gölgeye bir yazı ve bir (muhtemelen koşullu) donanıma yaz. Yüksek seviyeli yollar (örneğin, DMA bubell puanlayıcılar her paketi günceller), bu üst düzey kayıtlar, gölge kaydına kayıt yaptırmaya veya özel donanım kayıtlarına kayıt yaptırmalıdır.
En İyi Uygulamaları
Aşağıdaki uygulamaları kabul etmek, ilgili riskleri miniken kayıt gölgeleme değerini en üstlenecek.
- [FONT:0] Herhangi bir donanım kaydı değişikliğinden hemen sonra gölgeyi hemen güncelletir.[Dönetici:0) Bu, gölgenin amaçlanan devletin doğru bir yansımasıdır. Herhangi bir gecikme, bir hatayla sömürülebilecek bir pencereyi tanıtmaktadır.
- [[Döneticileri için atomik işlemleri kullanın.(##0) Bir kayıt iki hafızayı tüketmezse, tek bir işlem kullanın (örneğin, 64-bit yükleme/kapı 32-bit CPU) veya yazı sıralarında kesintiler yapın.In işlemciler için, bir tamponda yazı yazın ve ayrıcalıklı bir bağlamda uygulayın.
- [FONT:0)Periodically gölge bütünlüğü doğruluyor.[[Dönetici:0) Düşük öncelikli arka planda, donanım kayıtlarını okuyun ve gölge kopyalarıyla karşılaştırmanız gerekir. Herhangi bir yanlış eşleştirme girişli ve gerekirse, doğrulayıcı bir eylem (örneğin, donanıma değer yazmak için) Doğrulama süresine geri dönmek, güvenlik bütünlüğü seviyesine göre gerekli gecikme süresinden daha kısa olmalıdır.
- [FONT:0]Implement access kısıtlamaları[Dönetici:0][Döneticileri değiştirebilecek kod modüllerinin her gölge kaydı değiştirebileceğini sınırlamak için MPU veya bir yazılım erişim kontrol listesini kullanın. Sürücüler gölge güncelleme mantığını ortaya çıkarmak, doğrudan manipülasyonu önlemek için bir API'yi açığa çıkarmalıdır.
- [FONT:0] Donanımı kullanarak algılamayı tercih edin.[FONTT:1) Bazı mikrokontroller kritik periferiler için donanımda “g., saat yapılandırması için donanımda “g., saat yapılandırması) “korkunma kaydının sıfır yazılımı ile aynı avantajları sağlar, çünkü sıfırdan sonra donanımda donanıma sahip olurlar.
Meydanlar ve Ticaret-Offs
Gölgeleme kaydetmenin yararlı olmasına rağmen, gümüş bir mermi değildir. Çeşitli zorluklar avantajlara karşı tartılmalıdır:
- [FONT:0)Memory ayak izi:[Dönetici: 1 ) Karmaşık bir periferide her kayıt önemli RAM tüketebilir. RAM'ın sadece kilobayları ile derinden gömülü sistemlerde, bu üst yasaklanabilir.
- [FONT:0) Kod karmaşıklığında yoğunlaşır: Her kayıt yazı çok adımlı bir işlem haline gelir. Bu, sürücüleri düzgün bir şekilde soyutlamazsa daha fazla durumda tutmak ve daha yatkın hale getirmek için zorlaştırabilir.
- [FONT:0]Hidden zamanlama yan etkiler: Donanım kaydı yalnızca donanım kaydına yazılırsa (örneğin, bir kenarda kesintiye uğrama), gölge güncelleme rutini donanıma neden olabilir, bir olayın sessiz bir kaybına neden olur.
- [Dönüşünme:0]Kategoritma bağlamındaki fark:[Dönetici:0) Bir kesintiye uğramadan sonra bir donanımın otomatik olarak bir durumu açıkladığında gölgeyi ayrıştırır.
Bu zorluklara rağmen, güvenlik, güvenilirlik ve deregreability genellikle mevcut olmayan sistemler için maliyetleri sınır dışı ediyoruz.
Gerçek Dünya Uygulamaları
Otomotiv Motor Kontrol Birimleri (ECUs)
Modern ECUs, sabit bir gerilim dalgası nedeniyle yollanan bir yazıyı tespit edebilir ve ECU'nun tam bir kapanmayı tetikleyebilmesine izin verir. ISO 26262 standart ASILD seviyelerinin tespit edilmesi için bu tür bir algılamayı teşvik eder.
Tıbbi Implantable Cihazlar
Pacemakers ve insülin pompaları, hata yapma kodu (ECC) tarafından korunan ayrı bir RAM bankasında asla yanlış yazılmamıştır.
Havacılık Uçuş Kontrol Sistemleri
Üç milyon dolarlık kırmızıyı kullanan Flybywire sistemleri hala her şeritte gölge kayıtlarından yararlanabilir ve bir şeritteki geçici bir hatanın kaydının bir anlaşmazlıka neden olabilir. gölge, yerel şeritin, oylamayı imzalamasına ve değiştirmeme izin verir.
Alternatif ve Tamamlayıcı Teknikler
Kayıt gölgeleme genellikle diğer güvenilirlik yöntemleri ile birleştirilir:
- [FONT:0)Errororor-Correcting Code (ECC) kayıt otobüsünde:) ECC, donanım kaydında tek bir işaret hataları düzeltebilir, ancak yanlış değer yazan yazılım böceklere karşı koruyamaz.
- [[Dönetici:0)Yazdıktan sonra geri dön:[Dönetici] Bir gölge yerine, yazılım her yazıdan sonra donanım kaydı okuyabilirsiniz ve değeri doğrulayın.Bu daha fazla otobüs genişliği tüketiyor ve kayıt durumunu değiştirir.
- [FONT:0)Süreklerin kayıt bütünlüğünü kaydeddiğini gözlemleyin:[Dönetici:0) Bazı SoC'ler, gölge kayıtlarını düzenli olarak karşılaştırır (soğuklara karşı) bu yükleri bilgisayardan doğrulamaya karşı çıkarırlar.
Hem yüksek performans hem de güvenlik gerekli olan sistemler için, karma bir yaklaşım önerilir: yüksek frekanslı veri-path kayıtlarının gölgesinden çıkarken gölge güvenliği-kırık kayıtları gölgesiz ama sonuna kadar CRC veya parity tarafından korunur.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Kayıt gölgeleme, sürekli donanım erişimin güvenliğini, güvenilirliğini ve debuggability'i geliştiren pratik ve güçlü bir tekniktir.Sistemin tümünde bir yazılım kopyasını korumak, geliştiriciler, yazma yeteneği kazanır, hataları tespit eder ve geri yükleme durumu sürekli donanım erişimi olmadan geri yüklemelidir.
Donanım kayıt yönetimi ve hata-tolerant gömülü tasarım hakkında daha fazla okuma için, tanı kapsamı üzerine rehberlik için [[0)ARM Mimarlık Referans Kılavuzu) CPU seviyesi kayıt işlemleri için veya [[Dönetici:2)ISO 26262 yol fonksiyonel güvenlik standardı) tarafından tanıya konulandırılabilir.