Spelling suggestions: "subject:"virtuell plattform"" "subject:"virtuelle plattform""
1 |
Evaluating Temporal Decoupling in a Virtual PlatformJoy, Jinju January 2021 (has links)
To capture the market in the field of SoC, the companies have to launch their product ahead of their competitors. Virtual platforms allow the building and testing of software before the hardware is available, so the hardware and software development can take place in parallel and reduce the time to market. A virtual platform is used to perform faster simulation. It simulates the functionality of the hardware rather than modeling timing details. In SystemC based simulators, the loosely timed model allows the SystemC threads to run multiple cycles before they synchronize with other threads in the system by a method called temporal decoupling. The amount of time for which the threads can run ahead is called the global quantum. Increasing the quantum can cause a thread to run for a longer time, thus reducing the context switching overhead. This increases the simulation speed, but at the cost of accuracy. In this work, the effects of temporal decoupling in SystemC based virtual platforms is evaluated by simulating three different variants of virtual platforms, each for two target ASIC platforms. The goal is to check whether varying the temporal decoupling affects the performance. The global quantum value is varied in steps and data is collected for the effective quantum. The quantum utilization is then calculated to see the share of global quantum actually used during a simulation. To see how changing the global quantum affects the performance, the simulation times for various quantum values are also measured and the reduction in context switches is also calculated. Two variants showed reduction in context switches upto 96% when compared to the values at lowest measured quantum and the quantum utilization is found to be higher for these variants compared to the first variant. The simulation time decreased when the global quantum was increased, up to a certain value of the global quantum. Some test cases also failed at higher quantum values. It is observed that the global quantum can be used as an accuracy parameter in a simulator, provided the coupling in the simulator between the SystemC threads is low enough, so that the effective quantum follows an increase in the global quantum. / För att fånga marknaden inom området SoC måste företag lansera sinq produkter före sina konkurrenter. De virtuella plattformarna gör det möjligt att bygga och testa mjukvara innan hårdvaran finns tillgänglig, så hårdvaru- och mjukvaruutvecklingen kan ske parallellt och minska ledtiden. En virtuell plattform används för att utföra snabbare simulering. Den simulerar hårdvarans funktionalitet snarare än att modellera tidsinformation. I SystemC-baserade simulatorer tillåter den löst tidskopplade modellen SystemC-trådarna att köra en förutbestämd tid innan de synkroniseras med andra trådar i systemet. På detta sätt blir trådarna tidsmässigt frikopplade från varandra. Den tid som trådarna kan köra framåt kallas det globala kvantat. Att öka kvantat kan leda till att trådarna exekverar längre och därmed minskar antalet trådbyten. Detta ökar simuleringshastigheten men på bekostnad av noggrannhet. I detta arbete utvärderas effekterna av tidsmässig frikoppling i SystemC-baserade virtuella plattformer genom att simulera tre olika varianter av virtuella plattformar, vardera för två olika ASIC plattformar. Målet är att kontrollera om variationen i den tidsmässiga frikopplingen påverkar prestandan. Det globala kvantumvärdet varieras i steg och data samlas in för det effektiva kvantat. Kvantum-utnyttjandet beräknas sedan för att se hur stor del av det globala kvantat som faktiskt används under en simulering. För att se hur en förändring av det globala kvantat påverkar prestandan mäts också simuleringstiderna för olika kvantum-värden och reduktionen i antalet trådbyten beräknas. Två varianter uppvisade en minskning av antalet trådbyten upp till 96% jämfört med lägsta uppmätta kvantumvärdet och kvantum-utnyttjandet visade sig vara högre för dessa varianter jämfört med den första varianten. Simuleringstiden visade en minskning när det globala kvantat ökades, upp till ett visst värde. Vissa testfall misslyckades vid högre kvantumvärden. Detta visar att globala kvantat kan användas som en noggrannhetsparameter i en simulator, förutsatt att simulatorn har tillräckligt löst kopplade trådar, så att det effektiva kvantat ökar när det globala kvantat ökar.
|
2 |
Memory Management Error Detection in Parallel Software using a Simulated Hardware PlatformSinha, Udayan Prabir January 2017 (has links)
Memory management errors in concurrent software running on multi-core architectures can be difficult and costly to detect and repair. Examples of errors are usage of uninitialized memory, memory leaks, and data corruptions due to unintended overwrites of data that are not owned by the writing entity. If memory management errors could be detected at an early stage, for example when using a simulator before the software has been delivered and integrated in a product, significant savings could be achieved. This thesis investigates and develops methods for detection of usage of uninitialized memory in software that runs on a virtual hardware platform. The virtual hardware platform has models of Ericsson Radio Base Station hardware for baseband processing and digital radio processing. It is a bit-accurate representation of the underlying hardware, with models of processors and peripheral units, and it is used at Ericsson for software development and integration. There are tools available, such as Memcheck (Valgrind), and MemorySanitizer and AddressSanitizer (Clang), for memory management error detection. The features of such tools have been investigated, and memory management error detection algorithms were developed for a given processor’s instruction set. The error detection algorithms were implemented in a virtual platform, and issues and design considerations reflecting the application-specific instruction set architecture of the processor, were taken into account. A prototype implementation of memory error presentation with error locations mapped to the source code of the running program, and presentation of stack traces, was done, using functionality from a debugger. An experiment, using a purpose-built test program, was used to evaluate the error detection capability of the algorithms in the virtual platform, and for comparison with the error detection capability of Memcheck. The virtual platform implementation detects all known errors, except one, in the program and reports them to the user in an appropriate manner. There are false positives reported, mainly due to the limited awareness about the operating system used on the simulated processor / Minneshanteringsfel i parallell mjukvara som exekverar på flerkärniga arkitekturer kan vara svåra att detektera, samt kostsamma att åtgärda. Exempel på fel kan vara användning av ej initialiserat minne, minnesläckage, samt att data blir överskrivna av en process som inte är ägare till de data som skrivs över. Om minneshanteringsfel kan detekteras i ett tidigt skede, t ex genom att använda en simulator, som körs innan mjukvaran har levererats och integrerats i en produkt, skulle man kunna erhålla signifikanta kostnadsbesparingar. Detta examensarbete undersöker och utvecklar metoder för detektion av ej initialiserat minne i mjukvara som körs på en virtuell plattform. Den virtuella plattformen innehåller modeller av delar av den digitala hårdvara, för basband och radio, som finns i en Ericsson radiobasstation. Modellerna är bit-exakta representationer av motsvarande hårdvarublock, och innefattar processorer och periferienheter. Den virtuella plattformen används av Ericsson för utveckling och integration av mjukvara. Det finns verktyg, exempelvis Memcheck (Valgrind), samt MemorySanitizer och AddressSanitizer (Clang), som kan användas för att detektera minneshanteringsfel. Egenskaper hos sådana verktyg har undersökts, och algoritmer för detektion av minneshanteringsfel har utvecklats, för en specifik processor och dess instruktioner. Algoritmerna har implementerats i en virtuell plattform, och kravställningar och design-överväganden som speglar den tillämpnings-specifika instruktionsrepertoaren för den valda processorn, har behandlats. En prototyp-implementation av presentation av minneshanteringsfel, där källkodsraderna samt anropsstacken för de platser där fel har hittats pekas ut, har utvecklats, med användning av en debugger. Ett experiment, som använder sig av ett för ändamålet utvecklat program, har använts för att utvärdera feldetektions-förmågan för de algoritmer som implementerats i den virtuella plattformen, samt för att jämföra med feldetektions-förmågan hos Memcheck. De algoritmer som implementerats i den virtuella plattformen kan, för det program som används, detektera alla kända fel, förutom ett. Algoritmerna rapporterar också falska felindikeringar. Dessa rapporter är huvudsakligen ett resultat av att den aktuella implementationen har begränsad kunskap om det operativsystem som används på den simulerade processorn.
|
Page generated in 0.0802 seconds