Tez No İndirme Tez Künye Durumu
808096
ComCoS: An enhanced cache partitioning technique for integrated modular avionics / ComCoS: Entegre modüler aviyonikler için gelişmiş bir önbellek bölümleme tekniği
Yazar:YAKUP HÜNER
Danışman: DR. ÖĞR. ÜYESİ RAMAZAN YENİÇERİ
Yer Bilgisi: İstanbul Teknik Üniversitesi / Lisansüstü Eğitim Enstitüsü / Savunma Teknolojileri Ana Bilim Dalı / Savunma Teknolojileri Bilim Dalı
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Savunma ve Savunma Teknolojileri = Defense and Defense Technologies
Dizin:
Onaylandı
Yüksek Lisans
İngilizce
2023
86 s.
Havacılık endüstrisi geleneksel olarak sıkı güvenlik ve güvenilirlik standartlarına uyan karmaşık aviyonik sistemlere dayanmaktadır. Geçmişte, aviyonik sistemler her bir bileşenin ayrı bir değiştirilebilir hat birimi olarak çalıştığı Federatif Mimari yaklaşımını takip etmiştir. Değiştirilebilir hat birimleri kendi işlemcileri, giriş/çıkış (G/Ç) cihazları ve haberleşme arayüzlerine sahiptirler ve haberleşme kanallarını kullanarak iletişim kurmaktadırlar. Ancak, havacılık teknolojisinin ilerlemesi ve artan karmaşıklık düzeyi nedeniyle Federatif Mimari yaklaşımını kullanarak uçak tasarımlarını yönetmek, giderek zorlaşmıştır. Entegre Modüler Aviyonik (IMA: Integrated Modular Avionics) mimarisi, bu zorlukların üstesinden gelmek için alternatif olarak önerilmiştir. IMA mimarisi, daha az merkezi işlem birimi kullanarak birden fazla donanım modülünü yönetir ve bunu donanım bağımsız uygulama programlama arayüzleri (API: Application Program Interface) aracılığıyla başarır. Bu yaklaşım, alt sistemlerin işlem gücü, veri depolama ve haberleşme gibi aviyonik kaynakların paylaşılmasını sağlar. Böylece kaynak kullanımında, sistem boyutunda ve ağırlığında azalma sağlanır. Boeing, 787 Dreamliner uçağının tasarımının IMA olarak gerçekleştirilmesi ile uçak aviyoniğinde 2000 libre azalma yaşandığını söylemektedir. IMA mimarisi tekrar kullanılabilirlik, taşınabilirlik, modülerlik ve maliyet etkin sertifikasyon özellikleri sayesinde aviyonik dünyada popüler hale gelmiştir. Bu mimari yaklaşım, sistem tasarımı ve bakımında esneklik sağlarken, yeni uygulamaların daha kolay entegrasyonunu ve aviyonik kaynaklarının daha verimli kullanımını mümkün kılar. Bu sayede daha etkin bir şekilde kaynak kullanımı sağlanır ve sertifikasyon maliyetleri düşer. IMA mimarili sistemler genellikle INTEGRITY ve TÜBİTAK GIS gibi gerçek zamanlı işletim sistemlerini kullanırlar. Aviyonik dünyada kullanılan gerçek zamanlı işletim sistemler, ARINC 653 (Aeronautical Radio Incorporated) gibi donanım bağımsız arayüzler kullanarak uygulamalar ile iletişim kurmaktadırlar. ARINC 653 katı zaman ve hafıza paylaşımı yaklaşımı sayesinde farklı kritiklik seviyelerindeki uygulamaların bir arada, birbirini etkilemeden çalışabilmesini sağlar. ARINC 653'ün standartlaştırılmış ve iyi tanımlı yazılım mimarisi, yazılım uygulamaların belirlenen bölmeler içinde katı bir şekilde ayrılmasını sağlayarak güvenlik açısından kritik sistemlerin geliştirilmesini kolaylaştırır. Bu ayrım, müdahale veya arıza riskini en aza indirir ve sistemlerin genel güvenilirliğini artırır. Ayrıca, ARINC 653 sertifikasyon maliyetlerini azaltmaya yardımcı olur. Sertifikasyon sürecini daha hızlı ve hatalara daha az duyarlı hale getirir. Havacılık sistemleri, tüm koşullar altında güvenilirliğini sağlamak için sıkı güvenlik standartlarına tabi tutulurlar. Avrupa Birliği Havacılık Emniyeti Ajansı (EASA: European Union Aviation Safety Agency) ve Federal Havacılık İdaresi (FAA: Federal Aviation Administration), havacılık endüstrisinde en önemli düzenleyici kurumlardan ikisidir. Temel görevleri, uçak sertifikasyonu ve işletmesi için düzenlemeler ve standartlar oluşturarak ve bunları uygulayarak hava seyahatinin güvenliğini sağlamaktır. Bu süreçler, DO-178C rehber dokümanı gibi çeşitli düzenlemelere ve standartlara uyum gerektirir. DO-178C emniyet kritik sistem yazılımlarının planlama, tasarım, kodlama, test ve doğrulama gibi tüm yaşam döngüsünü kapsamaktadır. Uygulamaları ölümcül, tehlikeli, önemli, az önemli ve etkisiz olarak Tasarım Güvence Seviyelerine (DAL: Design Assurance Level) ayırmaktadır ve her biri için sağlaması gereken hedef listesi tanımlamaktadır. DO-178C yazılım doğrulama süreci, sistemin en kötü işlem süresinin (WCET: Worst-Case Execution Time), sınırlarının ve kaynak kullanımının analiz edilmesini tavsiye etmektedir. Sistemdeki kaynak paylaşımı en kötü işlem süresine göre yapılmaktadır. IMA mimarili sistemlerde uygulamalar genellikle katı zaman ve hafıza bölmelerine ayrılsalar da özellikle çok çekirdekli işlemcilerde ortak kullanılan önbellek, veriyolu ve hafıza birimleri ile birbirlerinin WCET'ini etkilemektedirler. Bu paylaşılan kaynaklar arasındaki çekişme, sistem determinizmini ve performansını etkileyebilir. Çok çekirdekli aviyonik yazılımların sertifikasyonu için CAST-32A ve AMC 20-193 rehber dokümanları yayınlanmıştır. Ortak kaynak paylaşım problemi önbellek bölümleme ile giderilebilir. Bu yöntemde uygulamalar farklı önbellek bölgelerine yerleştirilerek, birbirlerinin önbellekdeki verilerini tahliye etmezler. Önbellek bölümleme için donanım tabanlı ve yazılım tabanlı olmak üzere iki ana yaklaşım bulunmaktadır. Donanım tabanlı bölümlendirme, donanıma bağımlılığı ve düşük bölümleme çözünürlüğü nedeniyle IMA tabanlı sistemler için uygun değildir. Uygulamalar sahip oldukları önbellek miktarlarına göre farklı davranış göstermektedirler. Bu yüzden her uygulamanın talep edeceği önbellek miktarı farklı olacaktır. Ancak uygulamaların derleme anında ihtiyacı olan önbellek miktarını belirlenmesi zordur. Uygulamalara verilen önbellek miktarının dinamik olarak belirleneceği pek çok çalışma yapılmıştır. Ancak, emniyet kritik sistemler için, uygulamaya tahsis edilen önbellek bölgelerinin sistem yürütülmesi sırasında dinamik olarak yer değiştirmesi istenmeyen bir dinamik davranıştır. Bu nedenle, uygulamaya tahsis edilecek önbellek bölgelerinin yapılandırılması statik olarak belirlenmelidir. Bu çalışmada, önbellek bölümlemenin uygulamalar arasındaki girişimleri azaltmada sağladığı gelişmeleri göstermek için birçok deney gerçekleştirilmiştir. Gerçekleştirilen ilk deneyde, bir matris çarpma uygulamasının başka bir uygulamanın neden olduğu önbellek boşaltma etkisi nedeniyle yürütme süresinin %101,44'e kadar arttığı gözlemlenmiştir. Önbellek bölümlemenin bu etkiyi %0,6'ya kadar azaltabileceği görülmüştür. Başka bir deneyde, bir matris çarpma işlemi, veriyolunda oluşan girişim nedeniyle yürütme süresinde %2483'lük önemli bir artış yaşamış, ancak önbellek bölümleme bu artışı %30 oranına kadar azaltmaktadır. Önbellek bölümleme, veriyolu girişim problemini doğrudan çözmese de girişimin etkisini büyük ölçüde azalttığı gözlemlenmiştir. Veriyolu girişim problemi uygulamaların belirlenen zaman dilimi içerisinde, tahsis edilen işlem kapasitesini aşması durumunda sonlandırılması ile önlenebilir. Paylaşılan önbellek kullanımı, sadece çok çekirdekli sistemlerde değil, tek çekirdekli sistemlerde de determinizm ve performans bozulmalarına neden olabilir. Tek çekirdekli sistemlerde uygulama geçişleri sırasında önbellek boşaltılması determinizm sorunlarını ortadan kaldırsa da bu durum performans kaybına yol açar. Önbellek boşaltılması %47,4'lük bir performans kaybına sebep olurken, önbellek bölümleme sayesinde bu kayıp %0,314'e kadar azaltılmıştır. Talep üzerine sayfa alma, sayfaların yalnızca ihtiyaç duyulduğunda ana belleğe yükleyen bir bellek yönetimi düzenidir. Bu yöntemde, uygulama sadece ihtiyaç duyduğunda ikincil depolama alanından (örneğin bir sabit disk) ana belleğe yüklenir. Bu teknik, yalnızca gerekli olan sayfaların belleğe yüklenmesine izin vererek bellek kaynaklarının daha verimli kullanılmasını sağlar. Kullanılmayan sayfalar gerektiği zamana kadar ikincil depolama aygıtında kalabilir. Talep üzerine sayfalandırma, Linux gibi geleneksel işletim sistemlerinde kullanılarak, programların fiziksel olarak mevcut olan bellekten daha fazla bellek kullanmasına olanak tanır. Ancak bu yöntem gerçek zamanlı işletim sistemleri için uygun değildir, çünkü gerekli sayfalar ikincil hafızadan geç getirilebilir veya ana hafızada hiç yer kalmamışsa getirilemeyebilir. Bu durum determinizm problemi yarattığı için, emniyet kritik aviyonik sistemlerde uygulamalar yürütülmeye başlamadan önce tamamıyla ana hafızaya yüklenmektedirler. Emniyet kritik sistemlerde hafıza yönetimi statik ve dinamik olmak üzere iki grupta incelenebilir. CAST-32A, dinamik bellek tahsisini teşvik etmez ve uygulamaların belleği sistem başlatıldığında tahsis etmelerini önerir. Statik bellek tahsisinde, tüm önbellek bölgeleri sistemin başlatılması sırasında listelere önceden doldurulur. Uygulamalar ana belleğe yüklenirken, önceden doldurulmuş bu listelerden önbellek bölgeleri tahsis edilir. Bu yaklaşımda tüm sistem kaynakları sistem ilklenmesi sırasında tahsis edileceği için, sistem başlatma süresini önemli ölçüde artırabilir. CAST-32A yönergeleri dinamik bellek tahsisini önermezken, AMC 20-193 direktifleri belirli deterministik koşullar ve sınırlar altında dinamik bellek tahsisine izin verir. Büyük ölçekli IMA mimarili sistemlerde, yük dengelemesi yapmak veya arızalanan bir karttaki uygulamanın başka kartlara taşınması gibi ihtiyaçlardan dolayı uygulamaların dinamik olarak yüklenmeleri gerekebilir. Ancak bu dinamik yükleme sırasında sistem içerisinde halihazırda çalışmakta olan uygulamaların çalışmasını kesinlikle etkilememelidir. Her uygulamanın benzersiz önbellek özellikleri vardır ve farklı bir önbellek boyutuna ihtiyaç duyar. Bu yüzden uygulamalar birden çok önbellek bölgesine atanabilirler. Literatürde tanımlanan mevcut önbellek tahsis yöntemlerinde, uygulamalar bitişik önbellek bölgelerinde yer alsalar bile önbellek istekleri sayfa sayfa sağlanmaktadır. Uygulamaların önbellek karakteristiğini korumak adına talep edilen farklı önbellek bölgeleri sırası ile dağıtılmaktadır. Bu tezde, tek bir istekte birden çok önbellek havuzunun tahsis edilebilmesini sağlayan, ComCoS (Combined Color Stacks, Birleşik Renk Yığınları) isimli yeni bir önbellek tahsis tekniği geliştirilmiştir. Fiziksel olarak bitişik yer alan önbellek bölgeleri ayrı ayrı yığınlarda tutulmaz; bunun yerine, birlikte paylaşılan bir yığına yerleştirilirler. Bu sayede, tek bir servis isteğinde birden fazla önbellek bölgesinin tahsisine olanak sağlanır. ComCoS, statik tahsisi tercih eden sistemler için sistem başlatma süresini azaltırken ve dinamik uygulama tahsisini tercih eden sistemler için daha hızlı ve deterministik bir önbellek tahsisi sunar. ARINC 653 uyumlu bir gerçek zamanlı işletim sistemi üzerinde yapılan deneysel sonuçlar, ComCoS tekniğinin ortalama performansı %52 artırdığını ve bellek dağılımındaki standart sapmayı 2,91 kat azalttığını göstermektedir. Ayrıca, ComCoS bellek tahsis hizmeti için en kötü işlem süresinde 3,48 kat iyileşme ve standart sapmada 6,23 kat azalma sağlamaktadır.
Integrated Modular Avionics (IMA) has been widely used in safety-critical aviation applications due to its reusability, portability, modularity, and cost-effective re-certification. IMA-based systems effectively manage numerous applications with varying levels of criticality by utilizing shared hardware and middleware supported by hardware-independent application programming interfaces (APIs), such as the ARINC 653 (Aeronautical Radio Incorporated) interfaces. It enables integrating multiple applications with varying criticality levels through robust time and memory partitioning. The standardized and well-defined software architecture of ARINC 653 facilitates the development of safety-critical systems by ensuring a clear separation of software functions within their designated partitions. This separation minimizes the risk of interference or failure, enhancing the overall reliability of the systems. To ensure the reliability of aviation systems in all operational conditions, they are subject to strict safety standards and regulations, such as the DO-178C software guidance. Compliance with DO-178C requires detailed documentation of the software development process, including planning, design, coding, testing, and verification, to ensure that the software meets the required level of safety and reliability. Analyzing the system's worst-case execution Time (WCET), limitations, and utilization is recommended in the DO-178C software verification process. WCET measures a software task's maximum completion time under worst-case conditions. In IMA-based systems, applications are typically segmented into distinct memory and time partitions to ensure they have the necessary resources to execute consistently and reliably. However, shared resources such as cache, busses, and memory can still impact the WCET of the applications on multi-core platforms, even partitioned. These shared resources can lead to contention and may cause delays in the execution of applications, affecting the system's determinism and overall performance. To address this issue, CAST-32A (Certification Authorities Software Team) and AMC 20-193 (Acceptable Means of Compliance) guidance has been published for certifying multi-core avionics software. These shared resource contentions can be mitigated through Cache Partitioning, which involves allocating different applications to separate cache regions. There are two main approaches to cache partitioning: hardware-based and software-based. Software-based cache partitioning is more suitable for IMA-based systems due to its hardware independence, ability to provide finer granularity, and the capability to configure it based on specific application requirements. This study conducted numerous experiments to demonstrate the improvements achieved by cache partitioning in mitigating interferences between applications. The first example demonstrates that the execution time of the matrix multiplication application increased by up to 101,44% due to the trashing effect caused by another application. Implementing cache partitioning can reduce this effect by up to 0,6%. In another experiment, a matrix multiplication operation experienced a significant 2483% increase in execution time due to bus interference, while cache partitioning reduced this increase by 30%. The use of a shared cache can cause both determinism and performance degradation not only in multi-core systems but also in single-core systems. Although cache flushing during application switching eliminates determinism problems in single-core systems, this situation leads to performance degradation. The performance degradation caused by cache flushing, resulting in a loss of 47,4%, was reduced to as low as 0,314% through the implementation of cache partitioning. In safety-critical avionics systems, physical memory for application program areas is fully allocated during application loading. Memory management algorithms for real-time systems are divided into static memory allocation and dynamic application allocation. The CAST-32A discourages dynamic memory allocation and recommends that applications allocate memory at system startup. In static memory allocation, all cache regions are preloaded during system startup to lists, and applications acquire memory from these preloaded lists during system initialization. However, this approach can significantly increase the system's boot time. While the CAST-32A guidelines do not recommend dynamic memory allocation, the AMC 20-193 directives allow for dynamic allocation under specific deterministic conditions and limits. In large-scale IMA systems, there may be a need for dynamic loading of applications due to requirements such as load balancing or transferring an application from a faulty card to other cards. However, it is crucial to ensure that the system's other applications are unaffected from dynamic loading. Hundreds of applications work in a complex structure in IMA-based aviation systems. Each application has unique cache characteristics and requires a different cache size. Applications can be assigned to multiple cache regions. However, in existing cache allocation methods described in the literature, cache requests are provided page by page, even when applications reside in contiguous cache regions. To overcome this limitation, a new ComCoS (Combined Color Stacks) technique has been developed to allocate multiple cache pools in a single request. Instead of keeping physically adjacent cache regions in separate stacks, they are placed together in a shared stack. That enables the allocation of multiple cache regions in a single service request. The ComCoS reduces system startup time for systems that prefer static allocation and offers faster and more deterministic cache allocation for systems favoring dynamic application allocation. Experimental results on an ARINC 653 compatible RTOS demonstrate that the ComCoS technique provides an average performance improvement of 52% and reduces the standard deviation in memory distribution by 2,91 times. Additionally, the technique achieves a 3,48 times improvement in WCET and a 6,23 times reduction in standard deviation for the memory allocation service.