Practical strategies to monitor and control contention in shared resources of critical real-time embedded systems
Authors:   , Cardona Nadal Jordi 
Published: December 2023

(English) In the last decade performance needs in Critical Real-Time Embedded Systems (CRTES) domains like automotive, avionics, railway or space have been steadily on the rise due to the unprecedented computational power required for the new complex and performance-eager emerging applications. To meet these computational needs, CRTES industry has been increasingly resorting to high-performance multicore and manycore processors that can cater for the required performance in a cost-efficient manner. To that end, relatively simple bus-based multicore processor designs have been successfully deployed in general-purpose computing to provide good performance at low energy and area cost. However, these solutions quickly become ineffective with larger core counts as the bus becomes a major performance bottleneck. For this reason, bus-based designs have started migrating to Networks on Chips (NoCs) designs like trees, rings, meshes or torus topologies, which are being increasingly adopted in CRTES to offer multiple point-to-point connections.
Software timing is a paramount concern in the design and deployment of CRTES as correctness of the provided functions is typically not only determined by the delivered results, but also by the time at which those results are delivered. Domain-specific safety standards advocate for the adoption of software timing analysis techniques in the software development life-cycles as a necessary step to ascertain and guarantee all functions in the system execute timely and to prevent timing misbehavior to arise at run time. Timing concerns become particularly relevant to support three main phases in the CRTES development process: Verification Phase (budgeting), Validation Phase (testing) and Enforcement.
Performing an efficient, industrial-quality timing analysis in the presence of complex multicore and manycore processors with complex hardware features like NoCs is complicated by the non-negligible timing interference arising when multiple cores contend in parallel to the same shared hardware resources through the interconnects. Multicore interference causes the execution time of a task to depend on the other tasks in the system, making it extremely difficult to characterize software timing in a trustworthy yet tight manner.
The main challenges arise (i) in the budgeting phase, when deriving tight upper-bounds to the worst theoretical contention impact that requests can experience in traversing the NoC from their source to their destination, and (ii) in the validation phase, when tracking the actual multicore contention tasks generate on each other.
This Thesis addresses the problem of enabling efficient and effective contention analysis and characterization in NoC-based CRTES. While most of the works have focused on the verification phase, this Thesis addresses all three main steps in the overall software timing analysis in manycore processors. On the verification side, we propose EOmesh and NoCo solutions that optimize wormhole NoCs’ (wNoCs) configuration to lower WCET and obtain tight WCET estimates while improving CRTES performance. On the validation phase, we propose a technique to breakdown the contention that cores generate each other in wNoCs. To that end, we introduce a Golden Reference Value (GRV) on top of a PairWise Contention (PWC) metric that accurately identifies contention sources in wNoCs and provides a detailed multi-dimension contention breakdown, and a comparative analysis on the evolution of source contention identification in wNoCs. Finally, we cover a fundamental requirement in the enforcement phase by proposing MCCU, a software/hardware solution that performs fine-grain tracking of cores accesses in shared resources and enables, via configuration registers, preventing cores to cause more interference on its contenders than budgeted by the system designer.
(Català) En la darrera dècada, el poder computacional demandat als Sistemes Encastats Crítics de Temps Real (SECTR) utilitzats en àmbits com l'automoció, l’aviació, els ferrocarrils o la indústria aeroespacial, ha anat en augment pel sorgiment d’aplicacions cada vegada més complexes que requereixen més i més computació en aquests camps. Per satisfer aquesta necessitat, la indústria dels SECTR ha passat d’utilitzar sistemes simples amb un sol nucli a usar sistemes multinucli que proporcionen un bon rendiment a un cost raonable.
Els primers sistemes multinucli que van sorgir estaven basats en la interconnexió de bus i aconseguien bon poder computacional amb baixos costos energètics i d’àrea en xip. Tanmateix, a mesura que s’han anat incorporant més i més nuclis, s’ha observat que aquests sistemes no escalaven en rendiment perquè justament el bus n’esdevenia el coll d’ampolla. Per aquesta raó, els sistemes multinucli van passar d’utilitzar bus a començar a usar les Interconnexions en Xip (IeX). Les IeX com per exemple les interconnexions en arbre, anell, xarxa o torus, són interconnexions que cada vegada s’empren més en SECTR atès que disposen de múltiples connexions punt a punt i possibiliten l’enviament de paquets en paral·lel.
Els SECTR pel fet de ser sistemes crítics de temps real, necessiten acreditar no només que funcionen correctament i obtenen els resultats esperats, sinó que alhora també ho fan en el temps esperat. Els estàndards de seguretat específics de cada àmbit, advoquen per l’ús de tècniques d’anàlisi temporal en totes les etapes de desenvolupament del programari que s’executa en els SECTR amb l’objectiu de determinar i garantir que totes les funcionalitats del programari s’executen a temps i sense errors. Les etapes més importants són tres: Verificació (quantització), Validació (testatge) i Aplicació de mesures.
A mesura que els SECTR són més complexes i utilitzen processadors multinucli i IeX, l’anàlisi temporal d’aquests sistemes també és complica degut a les interferències que apareixen quan els nuclis intenten accedir als recursos compartits del sistema a través de la IeX. Aquestes interferències fan que el temps d’execució d’una tasca depengui de la resta de tasques que s’estan executant al sistema complicant així la caracterització del temps d’execució del programari de manera fiable i ajustada.
Els principals reptes sorgeixen (i) en l’etapa de validació, a l'hora de calcular el Pitjor Temps d’Execució (PTE) teòric que una tasca pot tenir considerant que pateix la màxima contenció teòrica quan les seves peticions travessen la IeX, i (ii) en l’etapa de validació, quan durant el testatge es fa el seguiment de la contenció real que es produeix entre tasques en el processador multinucli.
Aquesta tesi tracta la problemàtica de com dur a terme les caracteritzacions i anàlisis temporals en SECTR complexos basats en processadors multinucli interconnectats amb IeX de manera eficient. Concretament, aborda els principals reptes que suposa fer l’anàlisi temporal en les tres etapes principals del procés de desenvolupament del programari per a SECTR complexos. Pel que fa a l’etapa de verificació, proposa les solucions EOmesh i NoCo que optimitzen la configuració de les IeX per obtenir estimacions del PTE ajustades alhora que milloren el rendiment del SECTR. A l'etapa de validació, introduïm un nou criteri de classificació de la contenció denominat GRV i una mètrica anomenada PWC que identifica amb precisió les fonts de contenció en els IeX i proporciona un desglossament detallat de la contenció segons la tasca que la genera, la tasca que la pateix i el punt de la IeX on ocorre. Finalment, en la fase d'aplicació de mesures es proposa MCCU, una solució de programari/maquinari que realitza un seguiment detallat dels accessos a recursos compartits dels nuclis i que permet, mitjançant registres de configuració, evitar que els nuclis causin més interferències en els seus contendents que la permesa pel dissenyador del sistema.