Modelling of Cache/Interconnect Performance in an Embedded System
Abstract
Cache og bus topologi i et innvevd system har en stor innflytelse på systemets ytelse og energi effektivitet. Å produsere en ny chip for testing er dyrt, og dette har gjort simulering av arkitektur forandrnger til en vanlig praksis i industrien. Moderne RTL simuleringer kan gi veldig nøyaktige estimater av ytelsen til integrerte kretser. Å modellere en arkitektur for en slik simulering er en lang og arbeidskrevende prosess, og å modifisere modellen er ofte tidkrevende. Det er et behov for en rask og enkel måte å eksperimentere med forskjellige bus topologier, som fortsatt klarer å gi et godt estimat på hvordan forandringer vil påvirke ytelse.
Denne avhandlingen presenterer en modell som er lett å bruke, og som gjør det mulig å fullstendig forandre en arkitektur ved å bare modifisere et par verdier i en tekst fil. Modellen bruker en node-tre representasjon av bus hierarkiet, og abstraherer vekk deler av arkitekturen som er vanskelig å modellere, slik som timing jitter når man krysser klokkedomener og bus contention. Hver node representerer en komponent i interconnect topologien og sier eksplisitt hvor mye latency den legger til en minneaksess. Dette gjøre det mulig å skrive en veldig forenklet arkitektur beskrivelse, som bare fokuserer på de aspektene av bus topologien som bidrar mye til minneaksess ytelsen. Bus topologien som er simulert for testing i denne avhandlingen er den sentrale Cortex-M33 prosessoren på Nordic Semiconductor sin nRF5340 SoC.
Simuleringsresultatene ble sammenlignet med tester som kjørte på et nRF5340 development kit. Når Coremark ble simulert med cache aktivert, rapporterte modellen en kjøretid som var 18.70\% lengre enn kjøretiden på hardware. Når Coremark ble simulert med cache deaktivert, rapporterte modellen en kjøretid som var 4.36\% lengre enn kjøretiden på hardware. Når sekvensielle aksesser til matriser ble simulert, rapporterte modellen 68\% flere instruction cache hits og 18\% færre latency sykluser enn hardware for de minste matrisene, og 50\% flere instruction cache hits og 5\% færre latency sykluser enn hardware for de største matrisene. Modellen viste høy fidelity, men de simulerte resultatene var forskyvet sammenlignet med resultatene fra hardware. Den er nyttig for å spå om en forandring vil øke eller senke instruction cache ytelsen og den totale mengden latency sykluser. Det var problemer utenfor omfanget av denne avhandlingen som var betydelige feilkilder i resultatene. I tidlig testing av hvordan modellen ville yte hvis problemene ble løst, så rapporterte den cache hit og cache miss resultater som var innen 0.2\% av resultatene som ble sett på hardware, og cache latency resultater som var 7.3\% høyere enn resultatene som ble sett på hardware. Dette viser at modellen har potensialet til å gi veldig nøyaktige resultater og være et nyttig verktøy for tidlig utforskning av hvordan modifikasjoner av cache og bus topologi vil påvirke ytelse. The cache and bus topology in an embedded system has a big influence on the system performance and energy efficiency. Producing a new silicon chip for testing is expensive, and this has made simulating architectural changes a common practice in the industry. Modern RTL simulations are able to provide highly accurate estimates of integrated circuit performance. However, modelling an architecture for such a simulation is a long and laborious process, and making modifications to the model is often time consuming. There is a need for a quick and easy way of experimenting with different bus topologies, which is still able to provide a good estimate of how various changes will affect performance.
This thesis presents an easy to use model, which allows for completely changing an architecture just by modifying a few values in a text file. The model uses a node tree representation of the bus hierarchy, abstracting away hard to model architecture features, such as timing jitter when crossing between clock domains, and bus contention. Each node represent a component in the interconnect topology and explicitly states the latency it contributes to a memory access. This allows a highly simplified architecture description to be written, only focusing on the aspects of the bus topology which significantly contribute to memory access performance. The bus topology simulated for testing purposes in this thesis is the main Cortex-M33 processor on Nordic Semiconductor's nRF5340 SoC.
The simulation results were compared to tests running on a nRF5340 development kit. When simulating Coremark with cache enabled, the model reported a 18.70\% longer run time than hardware. When simulating Coremark with cache disabled, the model reported a 4.36\% longer run time than hardware. When simulating sequential accesses to matrices, the model reported 68\% more instruction cache hits and 18\% fewer latency cycles than hardware for the smallest matrices, and 50\% more instruction cache hits and 5\% fewer latency cycles than hardware for the largest matrices. The model displayed high fidelity, but the simulated results were offset from the hardware results. It is useful for predicting whether a change would lead to an increase or decrease in instruction cache performance and total latency cycles. There were issues outside the scope of this thesis which were significant error sources in the results. In preliminary testing of how the model would perform if these issues were resolved, it reported cache hit and cache miss results which were within 0.2\% of the results seen on hardware, and cache latency results which were 7.3\% higher than the results seen on hardware. This shows that the model has the potential to achieve very accurate results, and be a useful tool for initial exploration of the performance impact of modifications to cache and bus topology.