Spelling suggestions: "subject:"flerkärnig"" "subject:"flerkärniga""
1 |
Time-Triggered Execution of 3-Phase Tasks on the RP2040 — A Framework Avoiding Memory Contention by Design / Tidsstyrd exekvering av 3-fasuppgifter på RP2040 - ett ramverk som undviker minneskontention genom designAnnemarija Samusa, Everita January 2023 (has links)
Multi-core processors have emerged as an effective solution for handling complex tasks that cannot be efficiently processed by unicore processors. Their usage is driven by the potential to achieve high processing power while minimizing power consumption. However, the conventional multi-core hardware design poses a major challenge in the real-time community due to its inability to provide strict timing guarantees. Customized hardware platforms can be utilized to achieve timing predictability, but they are expensive and difficult to obtain. A cost-effective alternative to customized platforms is commercial-off-the-shelf (COTS) products, which are universal and easily accessible, but they still suffer from timing unpredictability. To address this, memory-centric scheduling can be employed by partitioning the total task execution into distinct memory and computation phases and restricting shared memory access to be exclusive. This study presents a 3-phase task execution framework on the RP2040 multi-core platform to eliminate memory contention and ensure predictable application development. The framework uses custom memory management for each core, specified by the linker script, and a template is provided to create tasks compliant with the phased execution. Four kernel benchmarks, created from the TACLeBench benchmark suite, are used to evaluate the framework. The tasks are statically scheduled and run for ten hyperperiods. The results indicate that the custom memory configuration achieves a setup where no contested accesses occur, resulting in no unexpected variations in total task execution timing, thereby achieving timing predictability on an RP2040. / Flerkärniga processorer har visat sig vara en effektiv lösning för att hantera komplexa uppgifter som inte kan behandlas effektivt av enkärniga processorer. Användningen av dem drivs av möjligheten att uppnå hög bearbetningskapacitet samtidigt som strömförbrukningen minimeras. Den konventionella hårdvarudesignen för flerkärniga processorer utgör dock en stor utmaning för realtidssamhället på grund av dess oförmåga att ge strikta tidsgarantier. Anpassade hårdvaruplattformar kan användas för att uppnå förutsägbarhet i fråga om tidtabell, men de är dyra och svåra att få tag på. Ett kostnadseffektivt alternativ till skräddarsydda plattformar är COTSprodukter (Commercial-off-the-shelf), som är universella och lättillgängliga, men som fortfarande lider av oförutsägbarhet i fråga om timing. För att lösa detta kan man använda minnescentrerad schemaläggning genom att dela upp den totala utförandet av uppgiften i olika minnes- och beräkningsfaser och begränsa åtkomsten till delat minne till att vara exklusiv. I den här avhandlingen presenteras ett ramverk för trefasigt uppgiftsutförande på RP2040-plattformen med flera kärnor för att eliminera minneskonflikter och säkerställa förutsägbar programutveckling. Ramverket använder anpassad minneshantering för varje kärna, som specificeras av länkningsskriptet, och en mall tillhandahålls för att skapa uppgifter som är förenliga med den fasvisa utförandet. Fyra kärnreferensmärken (benchmarks), som skapats från TACLeBench benchmark suite, används för att utvärdera ramverket. Uppgifterna är statiskt schemalagda och körs under tio hyperperioder. Resultaten visar att den anpassade minneskonfigurationen ger en inställning där inga ifrågasatta åtkomster förekommer, vilket resulterar i inga oväntade variationer i den totala tidsåtgången för utförandet av uppgifterna, vilket gör att tidsåtgången är förutsägbar på en RP2040.
|
2 |
Embedded Software Simulation Method for Multi-Core Environments Using Parallelism / Simulationsmetod för inbyggd mjukvara i flerkärniga miljöer med paralella processerLarsson, Joachim January 2023 (has links)
As technology advances, embedded systems become increasingly complex, with embedded software implemented on platforms with many processors running in parallel. Testing such software on hardware might not always be possible and, when possible, can be time-consuming and costly. An alternative to using real hardware is to use simulation methods instead. This thesis project explores one approach using multiple parallel Linux processes and barrier synchronization for simulating embedded software. An implementation consisting of a simulation engine and multiple simulated cores was designed. This implementation is evaluated for accuracy and speed by comparing it to another barrier synchronization tool that does not use parallelism. The results indicate that the sequential tool has an accuracy error that is doubled for every added simulated core. However, the parallel simulator can handle these situations without any accuracy error increase. Regarding speed, the parallel implementation is approximately 30% slower for longer simulations. However, simulation speed could be increased by utilizing some unused potential in the parallelism. / I takt med den tekniska utvecklingen blir de inbyggda systemen alltmer komplexa, med inbyggd programvara implmenterad på plattformar med många processorer som körs parallellt. Att testa sådan programvara på hårdvara är inte alltid möjligt och, när det är möjligt, kan det vara tidsödande och kostsamt. Ett alternativ till att använda riktig hårdvara är att istället använda simuleringsmetoder. I detta examensarbete undersöks en metod som använder flera parallella Linux-processer och barriärsynkronisering för simulering av inbyggd mjukvara. En implementering bestående av en simuleringsmotor och flera simulerade kärnor framställs. Denna implementering utvärderas för noggrannhet och hastighet genom att jämföra den med ett annat verktyg med barriärsynkronisering som inte använder parallellism. Resultaten indikerar att det sekventiella verktyget har ett noggrannhetsfel som fördubblas för varje tillagd simulerad kärna. Den parallella simulatorn kan dock hantera dessa situationer utan att noggrannhetsfelet ökar. När det gäller hastighet är den parallella implementeringen ungefär 30% långsammare för längre simulationer. Simuleringshastigheten kan möjligtvis ökas genom att utnyttja en del oanvänd potential i parallellismen.
|
Page generated in 0.0383 seconds