L’impegno di Green Hills Software per la mitigazione delle interferenze multicore

Green Hills Software ha esteso ai processori Arm Cortex-A72 il suo sistema di mitigazione delle interferenze multicore conforme alle specifiche DO-178C Livello A. Nell'ambito del sistema operativo in tempo reale INTEGRITY-178 Time-Variant Unified Multi-Processing (TUMP), la funzionalità BAM (Bandwidth Allocation and Monitoring), dedicata all’allocazione e al monitoraggio della banda, consente agli architetti software di allocare e imporre limiti di banda per le risorse condivise a ciascun core del processore. Garantendo l'accesso alle risorse condivise in base ai requisiti dell'applicazione o al livello di garanzia, la funzione BAM mitiga efficacemente le interferenze e riduce al minimo il tempo di esecuzione del caso peggiore (WCET) nelle elaborazioni multicore.

L'interferenza multicore si verifica quando più core di un processore tentano di accedere ad una stessa risorsa condivisa, come la memoria, la cache condivisa, i dispositivi di ingresso/uscita o le interconnessioni su chip. L'interferenza è un problema talmente significativo da meritare un intero documento di posizionamento del Team Software per le Autorità di Certificazione (CAST-32A), dedicato all'identificazione delle aree problematiche relative alla sicurezza, alle prestazioni e all'integrità del software operante in un sistema avionico multicore. Green Hills Software ha dimostrato che il WCET effettivo aumenta da un minimo di 8 volte con un solo core che interferisce, fino a un massimo di 13 volte con 3 core interferenti.

La funzionalità di mitigazione delle interferenze BAM monitora e applica rigorosamente l'utilizzo delle risorse condivise in base alle specifiche dell'integratore di sistemi. Abbinata alle librerie di utilità WCET multicore di Green Hills Software, destinate a specifici SoC, la funzione BAM garantisce che le partizioni critiche rispettino le scadenze richieste, consentendo l'esecuzione simultanea di altre partizioni di criticità inferiore su altri core senza alcun impatto sulle applicazioni critiche. Ciò rimane vero anche se le altre partizioni vengono modificate o quando nuove partizioni vengono introdotte nel sistema. Si tratta di una capacità essenziale per il supporto e lo sviluppo di sistemi critici basati su architetture multicore.

Anche se il documento CAST-32 è stato pubblicato per la prima volta nel 2014 e aggiornato nel 2016, alcuni fornitori di sistemi operativi in tempo reale riconoscono solo ora che l'interferenza multicore è un problema serio e stanno iniziando a cercare una soluzione. Ad esempio, Lynx Software è “impegnato insieme a diversi altri ricercatori”, incluso il progetto MASTECS finanziato dall'UE. Questo progetto dovrebbe essere completato nel novembre 2021 e il prodotto atteso consiste di strumenti software di analisi dei tempi, non di sistemi di mitigazione. Altri fornitori di sistemi operativi rimandano il problema dell'interferenza multicore all'integratore di sistema. Oggi la funzionalità BAM offre la soluzione, ed è già in commercio da diversi anni, a partire dai core Power Architecture e500mc.

Sebbene sia possibile un certo livello di mitigazione a livello applicativo, di solito occorre ricollaudare e riverificare tutte le applicazioni in esecuzione nel sistema multicore nel momento in cui cambia anche una sola applicazione, con costi e ritardi significativi che tendono a favorire il vendor lock-in. Così come il supporto alla MMU e la schedulazione delle partizioni devono essere implementate nel sistema operativo, la mitigazione imposta delle interferenze multicore deve anche avvenire nel sistema operativo per ottenere un sistema di partizionamento multicore robusto. Il sistema operativo INTEGRITY-178 tuMP fornisce una soluzione generale alla mitigazione delle interferenze multicore, riducendo così al minimo la ripetizione dei test e le verifiche al termine di qualsiasi modifica o aggiunta a un'applicazione.

Green Hills Software ha riconosciuto fin dall'inizio il problema delle interferenze multicore e ha iniziato a investire in una soluzione già nel 2010. Basata su oltre 60 anni di attività di ricerca e sviluppo nell'analisi delle interferenze multicore e nelle strategie di mitigazione, la funzionalità BAM conforme a DAL-A monitora e impone l'allocazione della banda per l'interconnessione a livello di chip su ciascuno dei core. Poiché l'interconnessione a livello di chip è al centro delle interazioni tra i core e altre risorse condivise, essa è il luogo ideale per osservare e imporre limiti all'uso delle risorse condivise. La funzione BAM emula un approccio di tipo hardware ad alta velocità per garantire ai core un'allocazione continua delle risorse multicore condivise. Ciò contrasta con l'approccio a "rete sicura" con soglie a grana grossa e il rilevamento di guasti per terminare o sospendere i processi malevoli. La funzione BAM regola la banda in modo uniforme su tutta la finestra temporale di esecuzione dell'applicazione, consentendo in tal modo ad altre applicazioni che operano nella stessa finestra temporale di acquisire le rispettive porzioni allocate delle risorse condivise. Queste funzionalità riducono notevolmente i rischi di integrazione e certificazione, consentendo al contempo agli integratori di ottenere i massimi vantaggi prestazionali nei processori multicore.

Il sistema operativo in tempo reale INTEGRITY-178 tuMP per applicazioni safety e security critical è stato progettato per soddisfare simultaneamente lo standard DO-178C al livello A di garanzia di progetto (DAL, Design Assurance Level) e il profilo di protezione del kernel di separazione (SKPP v1.03) come definito dall'NSA. INTEGRITY-178 tuMP è un RTOS multicore che supporta qualsiasi combinazione di architettura di multielaborazione asimmetrica (AMP, Asymmetric Multi-Processing), multielaborazione simmetrica (SMP, Symmetric Multi-Processing) e multielaborazione vincolata (BMP, Bound Multi-Processing). In particolare, include il supporto per l'esecuzione di una partizione DAL A DO-178C multi-thread su più core del processore in una configurazione BMP come richiesto dalle specifiche ARINC 653 parte 1, supplementi 4 e 5, e anche configurazioni SMP come richiesto in ARINC 653 Parte 2 Multicore Service Extensions, supplementi 3 e 4. INTEGRITY-178 tuMP è stato il primo RTOS ad essere certificato conforme allo standard tecnico FACE, edizione 3.0, e rimane l'unico conforme per tutte e tre le architetture dei processori avionici: Arm, Intel e Power Architecture.

Per ulteriori informazioni sulle interferenze multicore e su come mitigarle, scaricare il white paper "Risolvere le interferenze multicore nelle applicazioni Safety-Critical" all'indirizzo www.ghs.com.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome