Current state of the art application profilers for function/loop (process) based execution paths perform static profiling during design space exploration. Dynamic optimization is a must for heterogenous platforms to achieve… Click to show full abstract
Current state of the art application profilers for function/loop (process) based execution paths perform static profiling during design space exploration. Dynamic optimization is a must for heterogenous platforms to achieve low silicon area and better performance in real-time. Hence, it becomes necessary to have a mechanism in the target platform hardware to identify run-time characteristics of various processes of the application code in execution. This should be at both, an individual process level and in the relationship with other co-processes. This paper proposes DynPath - a hardware-based execution path profiler capable of detecting and identifying the processes along with the execution paths, both in a static and dynamic context. It has a rich set of features in comparison to other process-based profilers reported in the literature. Being non-intrusive it does not cause any run-time overheads. To handle the dynamic nature of input data size versus fixed memory row width, the paper proposes a unique approach based on Content Addressable Memory (CAM) for path identification and optimal hardware utilization. Considering that a process can be part of multiple executions paths, the profiler tracks both, the path invocation count, as well as, path-specific process invocation count (PSPIC) for each process. PSPIC logic being computationally intensive, it also proposes an alternative implementation of the PSPIC logic based on resource sharing which helps reduce the total area overhead of the execution path profiler by 87%.
               
Click one of the above tabs to view related content.