We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
When two clusters(Big/Little) exist in SoC, the timer can be used to support Synchronization between two clusters.
But How to understand "Synchronization", anybody can tell me some typical application context? I am really confused......
And, if only one cluster exists in SoC, the timer is unnecessary? if not, Why use it......
But, now I have another question, this kind of generic timer is not present in ARMv7. Such as the Cortex-A9, the processor does not have the system timer interface signals, meaning the OS that runs on CA9 processors does not use system timer to schedule the cores? or the OS selects other ways to complete scheduling, and what other ways?
Such as the Cortex-A9, the processor does not have the system timer interface signals, meaning the OS that runs on CA9 processors does not use system timer to schedule the cores? or the OS selects other ways to complete scheduling, and what other ways?
The Generic Timer is an optional extension in ARMv7-A. It's present on the Cortex-A15 and Cortex-A7, but not on the Cortex--A9 and Cortex-A5.
The Cortex-A9/Cortex-A5 have something similar, which is the Global Timer. Where all the cores in a given processor share a global count:
Cortex-A9 MPCore Technical Reference Manual: 4.3. About the Global Timer
The Cortex-A9/A5 also do not support multi-processor coherency (i.e. they don't support a cache coherent bus protocol). So the limitation that the count is only "global" to the cores of one processor is unlikely to be a problem.
Thank you very much for your nice answer. Martin.
Now I know that the "generic timer" in Cortex-A53 is just similar with the "global timer" of Cortex-A9. This is very useful for me to understand the design purpose of these timers
And, because the CA9 processor do not support the cache coherency among clusters, the extension of generic timer may not be necessary. The global timer is enough for the Synchronization among cores of one cluster.
Thanks again