The Experts below are selected from a list of 3504 Experts worldwide ranked by ideXlab platform
Aviral Shrivastava - One of the best experts on this subject based on the ideXlab platform.
-
WCET-Aware Stack Frame Management of Embedded Systems Using Scratchpad Memories
2019 32nd International Conference on VLSI Design and 2019 18th International Conference on Embedded Systems (VLSID), 2019Co-Authors: Yooseong Kim, Mohammad Khayatian, Aviral ShrivastavaAbstract:Scratchpad memories (SPMs) provide a time-predictable alternative to caches but requires explicit management in the code. When the call Stack is stored in the SPM, Stack Frames need to be evicted to and restored from the main memory to avoid Stack overflow. We propose a technique to find optimal locations in the code to perform Stack management operations such that the worst-case execution time (WCET) is minimized.
-
VLSI Design - WCET-Aware Stack Frame Management of Embedded Systems Using Scratchpad Memories
2019 32nd International Conference on VLSI Design and 2019 18th International Conference on Embedded Systems (VLSID), 2019Co-Authors: Yooseong Kim, Mohammad Khayatian, Aviral ShrivastavaAbstract:Scratchpad memories (SPMs) provide a time-predictable alternative to caches but requires explicit management in the code. When the call Stack is stored in the SPM, Stack Frames need to be evicted to and restored from the main memory to avoid Stack overflow. We propose a technique to find optimal locations in the code to perform Stack management operations such that the worst-case execution time (WCET) is minimized.
Romain Péchoux - One of the best experts on this subject based on the ideXlab platform.
-
Sup-interpretations, a semantic method for static analysis of program resources
ACM Transactions on Computational Logic, 2009Co-Authors: Jean-yves Marion, Romain PéchouxAbstract:The sup-interpretation method is proposed as a new tool to control memory resources of first order functional programs with pattern matching by static analysis. It has been introduced in order to increase the intensionality, that is the number of captured algorithms, of a previous method, the quasi-interpretations. Basically, a sup-interpretation provides an upper bound on the size of function outputs. A criterion, which can be applied to terminating as well as nonterminating programs, is developed in order to bound the Stack Frame size polynomially. Since this work is related to quasi-interpretation, dependency pairs, and size-change principle methods, we compare these notions obtaining several results. The first result is that, given any program, we have heuristics for finding a sup-interpretation when we consider polynomials of bounded degree. Another result consists in the characterizations of the sets of functions computable in polynomial time and in polynomial space. A last result consists in applications of sup-interpretations to the dependency pair and the size-change principle methods.
-
Sup-interpretations, a semantic method for static analysis of program resources
ACM Transactions on Computational Logic, 2009Co-Authors: Jean-yves Marion, Romain PéchouxAbstract:The sup-interpretation method is proposed as a new tool to control memory resources of first order functional programs with pattern matching by static analysis. It has beeen introduced in order to increase the intensionality, that is the number of captured algorithms, of a previous method, the quasi-interpretations. Basically, a sup-interpretation provides an upper bound on the size of function outputs. A criterion, which can be applied to terminating as well as non-terminating programs, is developed in order to bound the Stack Frame size polynomially. Since this work is related to quasi-interpretation, dependency pairs and size-change principle methods, we compare these notions obtaining several results. The first result is that, given any program, we have heuristics for nding a sup-interpretation when we consider polynomials of bounded degree. Another result consists in the characterizations of the sets of functions computable in polynomial time and in polynomial space. A last result consists in applications of sup-interpretations to the dependency pair and the size-change principle methods.
-
Quasi-friendly sup-interpretations
arXiv: Computational Complexity, 2006Co-Authors: Jean-yves Marion, Romain PéchouxAbstract:In a previous paper, the sup-interpretation method was proposed as a new tool to control memory resources of first order functional programs with pattern matching by static analysis. Basically, a sup-interpretation provides an upper bound on the size of function outputs. In this former work, a criterion, which can be applied to terminating as well as non-terminating programs, was developed in order to bound polynomially the Stack Frame size. In this paper, we suggest a new criterion which captures more algorithms computing values polynomially bounded in the size of the inputs. Since this work is related to quasi-interpretations, we compare the two notions obtaining two main features. The first one is that, given a program, we have heuristics for finding a sup-interpretation when we consider polynomials of bounded degree. The other one consists in the characterizations of the set of function computable in polynomial time and in polynomial space.
-
FLOPS - Resource analysis by sup-interpretation
Functional and Logic Programming, 2006Co-Authors: Jean-yves Marion, Romain PéchouxAbstract:We propose a new method to control memory resources by static analysis. For this, we introduce the notion of sup-interpretation which bounds from above the size of function outputs. We establish a criteria for which the Stack Frame size is polynomially bounded. The criteria analyses terminating as well as non-terminating programs. This method applies to first order functional programming with pattern matching. This work is related to quasi-interpretations but we are now able to determine resources of different algorithms and it is easier to perform an analysis with this new tools.
Norman F. Ramsey - One of the best experts on this subject based on the ideXlab platform.
-
CC - Declarative Composition of Stack Frames
Lecture Notes in Computer Science, 2004Co-Authors: Christian Lindig, Norman F. RamseyAbstract:When a compiler translates a procedure, it must lay out the procedure’s Stack Frame in a way that respects the calling convention. Many compilers respect the convention either by restricting the order in which slots can be allocated or by using different abstractions ad hoc for allocating in different regions of a Frame. Such techniques cause the implementation of the layout to be spread over much of the compiler, making it difficult to maintain and verify. We have concentrated the implementation of layout into a single, unifying abstraction: the block. The block abstraction decouples layout from slot allocation. Stack-Frame layout is specified in one central place, and even complex layouts are achieved by composing blocks using only two simple operators. Our implementation is used in the Quick C– compiler to support multiple calling conventions on multiple architectures.
Tohru Ishihara - One of the best experts on this subject based on the ideXlab platform.
-
Optimal Stack Frame placement and transfer for energy reduction targeting embedded processors with scratch-pad memories
2009 IEEE ACM IFIP 7th Workshop on Embedded Systems for Real-Time Multimedia, 2009Co-Authors: Lovic Gauthier, Tohru IshiharaAbstract:Memory accesses are a major cause of energy consumption for embedded systems and the Stack is a frequent target for data accesses. This paper presents a fully software technique which aims at reducing the energy consumption related to the Stack by allocating and transferring Frames or part of Frames between a scratch-pad memory and the main memory. The technique utilizes an integer linear formulation of the problem in order to find at compile time the optimal management for the Frames. The technique is also extended to integrate existing methods which deal with static memory objects and others which deal with recursive functions. Experimental results show that our technique effectively exploits an available scratch-pad memory space which is only one half of what the Stack requires to reduce the Stack-related energy consumption by more than 90% for several applications and on an average of 84% compared to the case where all the Frames of the Stack are placed into the main memory.
-
ESTImedia - Optimal Stack Frame placement and transfer for energy reduction targeting embedded processors with scratch-pad memories
2009 IEEE ACM IFIP 7th Workshop on Embedded Systems for Real-Time Multimedia, 2009Co-Authors: Lovic Gauthier, Tohru IshiharaAbstract:Memory accesses are a major cause of energy consumption for embedded systems and the Stack is a frequent target for data accesses. This paper presents a fully software technique which aims at reducing the energy consumption related to the Stack by allocating and transferring Frames or part of Frames between a scratch-pad memory and the main memory. The technique utilizes an integer linear formulation of the problem in order to find at compile time the optimal management for the Frames. The technique is also extended to integrate existing methods which deal with static memory objects and others which deal with recursive functions. Experimental results show that our technique effectively exploits an available scratch-pad memory space which is only one half of what the Stack requires to reduce the Stack-related energy consumption by more than 90% for several applications and on an average of 84% compared to the case where all the Frames of the Stack are placed into the main memory.
Byung Ki Kim - One of the best experts on this subject based on the ideXlab platform.
-
Kimchi : A Binary Rewriting Defense Against Format String Attacks
Lecture Notes in Computer Science, 2006Co-Authors: Jin Ho You, Seong Chae Seo, Young Dae Kim, Jun Yong Choi, Sang Jun Lee, Byung Ki KimAbstract:We propose a binary rewriting system called Kimchi that modifies binary programs to protect them from format string attacks in runtime. Kimchi replaces the machine code calling conventional printf with code calling a safer version of printf, safe printf, that prevents its format string from accessing arguments exceeding the Stack Frame of the parent function. With the proposed static analysis and binary rewriting method, it can protect binary programs even if they do not use the Frame pointer register or link the printf code statically. In addition, it reduces the performance overhead of the patched program by not modifying the calls to printf with the format string argument located in the read-only memory segment, which are not vulnerable to the format. string attack.
-
WISA - Kimchi: a binary rewriting defense against format string attacks
Information Security Applications, 2006Co-Authors: Jin Ho You, Seong Chae Seo, Young Dae Kim, Jun Yong Choi, Sang Jun Lee, Byung Ki KimAbstract:We propose a binary rewriting system called Kimchi that modifies binary programs to protect them from format string attacks in runtime. Kimchi replaces the machine code calling conventional printf with code calling a safer version of printf, safe_printf, that prevents its format string from accessing arguments exceeding the Stack Frame of the parent function. With the proposed static analysis and binary rewriting method, it can protect binary programs even if they do not use the Frame pointer register or link the printf code statically. In addition, it reduces the performance overhead of the patched program by not modifying the calls to printf with the format string argument located in the read-only memory segment, which are not vulnerable to the format string attack.
-
CIS (2) - Protection against format string attacks by binary rewriting
Computational Intelligence and Security, 2005Co-Authors: Jin Ho You, Seong Chae Seo, Young Dae Kim, Jun Yong Choi, Sang Jun Lee, Byung Ki KimAbstract:We propose a binary rewriting system called Kimchi that modifies binary programs to protect them from format string attacks in runtime. Kimchi replaces the machine code calling conventional printf with code calling a safer version of printf, safe_printf, that prevents its format string from accessing arguments exceeding the Stack Frame of the parent function. With the proposed static analysis and binary rewriting method, it can protect binary programs even if they do not use the Frame pointer register or link the printf code statically. In addition, it replaces the printf calls without extra format arguments like printf(buffer) with the safe code printf(”%s”, buffer), which are not vulnerable, and reduces the performance overhead of the patched program by not modifying the calls to printf with the format string argument located in the read-only memory segment, which are not vulnerable to the format string attack.