2013/12/09 Yun-Chung Yang Partitioning and Allocation of Scratch-Pad Memory for Priority-Based Preemptive Multi-Task Systems Takase, H. ; Tomiyama, H. ; Takada, H. Design, Automation & Test in Europe Conference & Exhibition (DATE), 2010 Page(s):
Abstract Related Work What’s the Problem Proposed Method Experiment Result Conclusion 2
Scratch-pad memory has been employed as a partial or entire replacement for cache memory due to its better energy efficiency. In this paper, we propose scratch-pad memory management techniques for priority-based preemptive multi-task systems. Our techniques are applicable to a real- time environment. The three methods which we propose, i.e., spatial, temporal, and hybrid methods, bring about effective usage of the scratch-pad memory space, and achieve energy reduction in the instruction memory subsystems. 3
We formulate each method as an integer programming problem that simultaneously determines (1) partitioning of scratch-pad memory space for the tasks, and (2) allocation of program code to scratch-pad memory space for each task. It is remarkable that periods and priorities of tasks are considered in the formulas. Additionally, we implement a RTOS-hardware cooperative support mechanism for a runtime code allocation to the scratch-pad memory space. We have made the experiments with the fully functional real-time operating system. The experimental results with four task sets have demonstrated the effectiveness of our techniques. Up to 73 % energy reduction compared to a standard method was achieved. 4
5 Code Allocation Using Algorithm [2], [3], [5] For multi-task Single Task Manage content of SPM [4], [6] [8], [9] This paper [7] [10], [11], [12] [2] various size [3] compiler [5] data-cache conflicts Allocation using integer programming depends on energy Not for hard real-time system Hardware for efficient allocation at runtime
Cache is one of the most energy-components in SoC. SPM attracts attention with better energy efficient than cache. The previous idea of SPM allocation Based on soft real-time system. Solution : Propose a SPM allocation for hard real-time.
Three method for SPM partition and code allocation. Each method is formulated as an integer programming problem. Spatial 。 Each task has exclusive space Temporal 。 Running task has the entire SPM space Hybrid 。 Spatial idea, the higher priority of task can temporally use the space of lower priority task.
8 Profiler using instruction-level simulator (SkyEye). Modify to the Kernel scheduler for SPM support.
9 X i,j denotes a binary variable, 1 => func i,j allocate to SPM. fetch i,j total number of instruction in func i,j per execution. Hyperperiod – The LCM of task period. Compute energy consumption for each task SPM allocation
10 Compute Energy consumption!
11 Spatial Temporal Priority
Energy consumption Total execution time
13
Energy reduction Hybrid & Temporal reduced more energy than Spatial Effective code replacement, no more than 5% overhead. Set A has different program characteristic. Mostly automotive program => processing straightforward. 14 MaximumAverage Spatial Method 33%18% Temporal Method 69%38% Hybrid Method 73%41%
Proposed three method Spatial, temporal, hybrid Remarkable for task period and priorities are utilized. Dynamic code allocation for RTOS and hardware. My comment Knowing the future work on improvement. 。 SPM size could be a parameter in integer programming problem. Doesn’t have execution time comparison to original. 15