Download presentation
Presentation is loading. Please wait.
Published byJoshua Ramsey Modified over 9 years ago
1
Software solutions for challenges in embedded systems Sri Hari Krishna Narayanan, The Pennsylvania State University, USA, snarayan@cse.psu.edu Theme While hardware solutions to challenges in embedded systems are very important, software can also play an important role. Software techniques to solve three important problems are presented here. Phase1 – Profiling #define N 5000 #define ITER 1int du1[N], du2[N], du3[N];int au1[N][N][2], au2[N][N][2], au3[N][N][2];int a11=1, a12=-1, a13=-1; int a21=2, a22=3, a23=-3; int a31=5, a32=-5, a33=-2; int l;/* Initialization loop */ int sig = 1;int main(){ int kx; int ky; int kz;printf("Thread:%d\n",mp_numthreads()); for(kx = 0; kx < N; kx = kx + 1) { for(ky = 0; ky < N; ky = ky + 1) { for(kz = 0; kz <= 1; kz = kz + 1) { au1[kx][ky][kz] = 1; au2[kx][ky][kz] = 1; au3[kx][ky][kz] = 1; } }} }} /* main */ Cycle Times Chunk Sizes Energy Consumption Architecture Details Temperature Sensitive Schedule + Scheduler HotSpot Phase 2 -Temperature Sensitive Scheduling Phase 3 – Locality Based Scheduling Temperature & Locality Sensitive Schedule Scheduler #define N 5000 #define ITER 1int du1[N], du2[N], du3[N];int au1[N][N][2], au2[N][N][2], au3[N][N][2];int a11=1, a12=-1, a13=-1; int a21=2, a22=3, a23=-3; int a31=5, a32=-5, a33=-2; int l;/* Initialization loop */ int sig = 1;int main(){ int kx; int ky; int kz;printf("Thread:%d\n",mp_numthreads()); for(kx = 0; kx < N; kx = kx + 1) { for(ky = 0; ky < N; ky = ky + 1) { for(kz = 0; kz <= 1; kz = kz + 1) { au1[kx][ky][kz] = 1; au2[kx][ky][kz] = 1; au3[kx][ky][kz] = 1; } }} }} /* main */ Optimized, temperature sensitive code + Code Generator Phase 4 - Code Generation Omega Library Client Server Original Code Transformed Code Data Transformed Results Original Results Client Server Original Code Original Results Original Results Original Code Data Original Results Traditional computing “Mobile” computing for(…) { } Loop Body Invariant Detector Invariant Invariant Filter Invariant Code Modifier for(…) { } Loop Body Checker Code Phase 1 Phase 2 Default Code Mapping Module #define N 5000 #define ITER 1int du1[N], du2[N], du3[N];int au1[N][N][2], au2[N][N][2], au3[N][N][2];int a11=1, a12=-1, a13=-1; int a21=2, a22=3, a23=-3; int a31=5, a32=-5, a33=- 2; int l;/* Initialization loop */ int sig = 1;int main(){ int kx; int ky; int kz;printf("Thread:%d\n",mp_numthreads()); for(kx = 0; kx < N; kx = kx + 1) { for(ky = 0; ky < N; ky = ky + 1) { for(kz = 0; kz <= 1; kz = kz + 1) { au1[kx][ky][kz] = 1; au2[kx][ky][kz] = 1; au3[kx][ky][kz] = 1; } }} }} /* main */ Code ILP Module Default (performance oriented) Mapping Overall power density reduced mapping Thermal aware mapping 0% 20% 40% 60% 80% 100% iter-merge adi heap-sort bubble-sort mxm Error Detection Rate Our approachFull duplication Securing code semantics Soft Error Detection Temperature crisis alleviation in CMPs and NoCs Challenge : To prevent chips from overheating Solution : 1. On chip temperature rises when the chip is run continuously at high power density. 2. Develop a schedule that allows processors to cool down in between executing portions of the task. 3. Such a schedule is possible because applications do not make use of all the processor cores available. Challenge : To prevent NoC based chips from overheating Solution : 1. On chip temperature rises through high power density. 2. Applications typically do not use all the available processor cores 3. Design a task to processor mapping that reduces the power density. Challenge : To prevent an untrusted host from gleaning the semantics of the clients code. i.e. to prevent reverse engineering. Solution : Translation of the original code produces a new code that: a) is semantically different, b) accesses data in a different pattern, and c) whose stores take place to different locations. “Mobile” computing with code level transformations Challenge : To detect single event upsets in the data caches. Solution : 1.Invariants are data properties that must hold throughout the execution. 2.Checking to see if they hold true during execution, gives and indication of whether the execution was successful of if a soft error occurred. The graphs show how the peak on chip temperature is always maintained below a preset threshold that is indicated by the solid line. Percentage of Execution during which a thermal emergency is experienced. Normalized execution time. The soft error detection rate The increase in code size due to checker code References 1.Sri Hari Krishna N., M. Kandemir, R. R. Brooks, I. Kolcu. Secure Execution of Computations in Untrusted Hosts, in the proceedings of ADA-EUROPE 2006. 2. Sri Hari Krishna Narayanan, Mahmut Kandemir. Compiler-Directed Power Density Reduction in NoC- Based Multi-Core Designs, in the proceedings of ISQED 2006. 3.Sri Hari Krishna Narayanan, Guilin Chen, Mahmut Kandemir, Yuan Xie. Temperature-Sensitive Loop Parallelization for Chip Multiprocessors, in the proceedings of ICCD 2005. 4. Sri Hari Krishna N., Seung Woo Son, M. Kandemir, Feihui Li. Using Loop Invariants to Fight Soft Errors in Data Caches, in the proceedings of ASP-DAC 2005.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.