Modernit sulautetut järjestelmät ovat kasvaneet monimutkaisiksi tietokonejärjestelmiksi, jotka vaativat paljon laskentatehoa. Nykyaikaiset mikroprosessoriarkkitehtuurit käyttävät menetelmiä, kuten rinnakkaislaskentaa ja monitasoisia muistihierarkioita, joilla saavutetaan korkea suorituskyky yleisessä tapauksessa. Toisaalta monimutkaisten prosessoriarkkitehtuurien seurauksena prosessorikäskyjen suoritusaikavaihtelut ovat kasvaneet, mikä vaikeuttaa suoritusaikojen arviointia.
Tässä diplomityössä erään teollisuuskäyttöön tarkoitetun sulautetun tietokonejärjestelmän suorituskykyä on arvioitu mikroprosessorin sisäisiä diagnostiikkalaskureita käyttäen. Monet nykyaikaiset mikroprosessorit sisältävät erillisen lohkon, jolla voidaan laskea prosessorin eri tiloja kuormittamatta prosessorin laskentakykyä. Suorituskykyanalyysin lisäksi työssä kartoitetaan erilaisia ohjelmointimenetelmiä, joilla voidaan vaikuttaa kyseisen PowerPC-prosessorin suorituskykyyn.
Tässä työssä tehty suorituskyvyn analysointi pyrkii arvioimaan, miten tehokkaasti sulautetun sovelluksen ohjelmisto kykenee käyttämään suorittimen laskentayksiköitä hyödykseen. Valituilla menetelmillä pystyttiin löytämään laitteistosta pullonkauloja, jotka vaikuttavat oleellisesti suorituskykyyn. Löydösten perusteella nähtiin myös sulautetun ohjelmiston keskeinen vaikutus prosessorin kykyyn suorittaa käskyjä nimellistahdilla. Suorituskykyanalyysin lisäksi eräiden ohjelmistokonfiguraation muutosten, kuten välimuistin lukitsemisen ja kääntäjäoptimointien, vaikutusta suorituskykyyn on mitattu.
Modern embedded devices have become very complex systems with heavy requirements on computing power. On the other hand, modern high-performance general-purpose microprocessors often utilize methods such as multi-levelled memory hierarchies and parallel computing that increase the average-case performance at the expense of easily-characterizable execution timing.
In this thesis, the performance of one industrial embedded application has been evaluated with a performance counter -based approach. Performance counters are diagnostic facilities found in many modern microprocessors and are capable of counting several states of the processor in hardware. In addition to the performance evaluation, several programming methods that affect the processor in question have been covered.
In essence, the performance analysis in this thesis aims to characterize how effectively the software in the embedded device is capable of utilizing the hardware resources of the system. The chosen methods are capable of identifying some performance bottlenecks that arise from the limited hardware resources.
The findings show that the properties of the workload, especially the program flow, severely influence the ability of the PowerPC-processor in question to execute instructions at its nominal rate. Additionally, the performance effects of several software-based configuration changes such as cache locking and different compiler optimizations have been tested.