Activation Record

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 66 Experts worldwide ranked by ideXlab platform

Weijia Shang - One of the best experts on this subject based on the ideXlab platform.

  • Optimizing the stack size of recursive functions
    Computer Languages Systems & Structures, 2009
    Co-Authors: Stefan Schaeckeler, Weijia Shang
    Abstract:

    For memory constrained environments, optimization for program size is often as important as, if not more important than, optimization for execution speed. Commonly, compilers try to reduce the code segment but neglect the stack segment, although the stack can significantly grow during the execution of recursive functions because a separate Activation Record is required for each recursive call. If a formal parameter or local variable is dead at all recursive calls, then it can be declared global so that only one instance exists independent of the recursion depth. We found that in 70% of our benchmark functions, it is possible to reduce the stack size by declaring formal parameters and local variables global. Often, live ranges of formal parameters and local variables can be split at recursive calls through program transformations. These splitting transformations allowed us to further optimize the stack size of all our benchmark functions. If all formal parameters and local variables can be declared global, then such functions may be transformable into iterations. This was possible for all such benchmark functions.

  • Live Range Splitting at Recursive Function Calls
    2007 Innovations in Information Technologies (IIT), 2007
    Co-Authors: Stefan Schaeckeler, Weijia Shang
    Abstract:

    For memory constrained environments like embedded systems, optimization for program size is often as important, if not more important, as optimization for execution speed. Commonly, compilers try to reduce the code segment size and neglect the stack segment, although the stack can significantly grow during the execution of recursive functions as a separate Activation Record is required for each recursive call. An Activation Record holds administrative data like the return address and the frame pointer but also the function's parameter list and local variables. If a formal parameter or local variable is dead at all recursive calls, then it can be declared globally so that only one instance exists independent of the call depth. This allowed us to optimize the stack size in 70% of our benchmarks. Often, live ranges of parameters and local variables can be split at recursive calls through program transformations. Such program transformations allowed us to further optimize the stack size of all our benchmarks.

  • CASES - Stack size reduction of recursive programs
    Proceedings of the 2007 international conference on Compilers architecture and synthesis for embedded systems - CASES '07, 2007
    Co-Authors: Stefan Schaeckeler, Weijia Shang
    Abstract:

    For memory constrained environments like embedded systems, optimization for program size is often as important, if not more important, as optimization for execution speed. Commonly, compilers try to reduce the code segment and neglect the stack segment, although the stack can significantly grow during the execution of recursive functions as a separate Activation Record is required for each recursive call. An Activation Record holds administrative data like the return address and the frame pointer but also the function's formal parameter list and local variables. If a formal parameter or local variable is dead at all recursive calls, then it can be declared globally so that only one instance exists independent of the call depth. We found that in 70% of popular recursive algorithms and in all our real world benchmarks, it is possible to reduce the stack size by declaring formal parameters and local variables globally. Architectures might impose a penalty in code size for accessing global data. On IA32, this stack size reduction starts to materialize for our benchmarks no later than in the fifth recursion.

Stefan Schaeckeler - One of the best experts on this subject based on the ideXlab platform.

  • Optimizing the stack size of recursive functions
    Computer Languages Systems & Structures, 2009
    Co-Authors: Stefan Schaeckeler, Weijia Shang
    Abstract:

    For memory constrained environments, optimization for program size is often as important as, if not more important than, optimization for execution speed. Commonly, compilers try to reduce the code segment but neglect the stack segment, although the stack can significantly grow during the execution of recursive functions because a separate Activation Record is required for each recursive call. If a formal parameter or local variable is dead at all recursive calls, then it can be declared global so that only one instance exists independent of the recursion depth. We found that in 70% of our benchmark functions, it is possible to reduce the stack size by declaring formal parameters and local variables global. Often, live ranges of formal parameters and local variables can be split at recursive calls through program transformations. These splitting transformations allowed us to further optimize the stack size of all our benchmark functions. If all formal parameters and local variables can be declared global, then such functions may be transformable into iterations. This was possible for all such benchmark functions.

  • Live Range Splitting at Recursive Function Calls
    2007 Innovations in Information Technologies (IIT), 2007
    Co-Authors: Stefan Schaeckeler, Weijia Shang
    Abstract:

    For memory constrained environments like embedded systems, optimization for program size is often as important, if not more important, as optimization for execution speed. Commonly, compilers try to reduce the code segment size and neglect the stack segment, although the stack can significantly grow during the execution of recursive functions as a separate Activation Record is required for each recursive call. An Activation Record holds administrative data like the return address and the frame pointer but also the function's parameter list and local variables. If a formal parameter or local variable is dead at all recursive calls, then it can be declared globally so that only one instance exists independent of the call depth. This allowed us to optimize the stack size in 70% of our benchmarks. Often, live ranges of parameters and local variables can be split at recursive calls through program transformations. Such program transformations allowed us to further optimize the stack size of all our benchmarks.

  • CASES - Stack size reduction of recursive programs
    Proceedings of the 2007 international conference on Compilers architecture and synthesis for embedded systems - CASES '07, 2007
    Co-Authors: Stefan Schaeckeler, Weijia Shang
    Abstract:

    For memory constrained environments like embedded systems, optimization for program size is often as important, if not more important, as optimization for execution speed. Commonly, compilers try to reduce the code segment and neglect the stack segment, although the stack can significantly grow during the execution of recursive functions as a separate Activation Record is required for each recursive call. An Activation Record holds administrative data like the return address and the frame pointer but also the function's formal parameter list and local variables. If a formal parameter or local variable is dead at all recursive calls, then it can be declared globally so that only one instance exists independent of the call depth. We found that in 70% of popular recursive algorithms and in all our real world benchmarks, it is possible to reduce the stack size by declaring formal parameters and local variables globally. Architectures might impose a penalty in code size for accessing global data. On IA32, this stack size reduction starts to materialize for our benchmarks no later than in the fifth recursion.

Morteza Hamzehnejad - One of the best experts on this subject based on the ideXlab platform.

  • A novel online affine model identification of multivariable processes using adaptive neuro-fuzzy networks
    Chemical Engineering Research and Design, 2010
    Co-Authors: Karim Salahshoor, Morteza Hamzehnejad
    Abstract:

    This paper presents a novel systematic identification methodology for online affine modeling of multivariable processes using adaptive neuro-fuzzy networks. The proposed approach introduces an integrated procedure to simultaneously estimate a number of adaptive neuro-fuzzy networks with simple and compact dynamic structures to realize a multivariable affine model identification in real-time. A new fuzzy rule significance concept, based on a generic time-weighted rule Activation Record (WRAR), together with a measure of time-weighted root mean square (WRMS) error are incorporated to maintain efficient structural and parametric mechanisms for proper adaptation of the resulting neuro-fuzzy networks. An extended Kalman filter (EKF) algorithm is developed to adaptively adjust the neuro-fuzzy free parameters corresponding to the nearest created fuzzy rules. Extensive simulation test studies will be conducted to explore the capabilities of the proposed identification approach to adaptively develop online multivariable affine dynamic models for a highly nonlinear and time-varying continues stirred tank reactor (CSTR) and a highly nonlinear binary distillation column as two challenging benchmark problems.

  • A new adaptive neuro-fuzzy approach for on-line nonlinear system identification
    2008 IEEE Conference on Cybernetics and Intelligent Systems, 2008
    Co-Authors: Morteza Hamzehnejad, K. Salahshoor
    Abstract:

    A new on-line identification algorithm is presented in this paper based on a neuro-fuzzy model structure. The algorithm is developed based on the functional equivalence between a radial basis function (RBF) neural network and a fuzzy inference system (FIS). The developed algorithm utilizes a Weighted Rule Activation Record (WRAR) as a functional measure to monitor the modeling efficiency of the created rules. This measure evaluates the influence of each created rule with a time-based memory weight which puts more emphasis on the most recent input data. The proposed technique employs an extended Kalman filter (EKF) as a learning algorithm to adapt the antecedent and consequent parameters of the nearest rule. This algorithm benefits simple and understandable criteria to make it more attractive in practical applications. This leads to more efficient rule base with low created rules. Its low computational time makes it as an appropriate on-line identification approach. The performance of the proposed algorithm with some other new algorithms have been evaluated on a nonlinear dynamic system. Simulation results demonstrate the efficiencies of the proposed algorithm, resulting to the most simple rule structure with the lowest computational time.

Karim Salahshoor - One of the best experts on this subject based on the ideXlab platform.

  • A novel online affine model identification of multivariable processes using adaptive neuro-fuzzy networks
    Chemical Engineering Research and Design, 2010
    Co-Authors: Karim Salahshoor, Morteza Hamzehnejad
    Abstract:

    This paper presents a novel systematic identification methodology for online affine modeling of multivariable processes using adaptive neuro-fuzzy networks. The proposed approach introduces an integrated procedure to simultaneously estimate a number of adaptive neuro-fuzzy networks with simple and compact dynamic structures to realize a multivariable affine model identification in real-time. A new fuzzy rule significance concept, based on a generic time-weighted rule Activation Record (WRAR), together with a measure of time-weighted root mean square (WRMS) error are incorporated to maintain efficient structural and parametric mechanisms for proper adaptation of the resulting neuro-fuzzy networks. An extended Kalman filter (EKF) algorithm is developed to adaptively adjust the neuro-fuzzy free parameters corresponding to the nearest created fuzzy rules. Extensive simulation test studies will be conducted to explore the capabilities of the proposed identification approach to adaptively develop online multivariable affine dynamic models for a highly nonlinear and time-varying continues stirred tank reactor (CSTR) and a highly nonlinear binary distillation column as two challenging benchmark problems.

  • Particle filtering mode estimation of hybrid systems based on a novel weighted mode Activation Record approach
    2009 IEEE International Conference on Control and Automation, 2009
    Co-Authors: Karim Salahshoor, M. F. Samadi, Ehsan Safari
    Abstract:

    This paper presents a novel weighted mode Activation Record approach for mode estimation in hybrid systems. Discrete mode estimation is crucial to achievement of state estimation in hybrid systems. While, mode transition probability plays a decisive role in system mode estimation. Empirical setting of this probability and relying the mode decision on the current system information are major drawbacks of the currently used estimation strategies. The proposed weighted mode Activation Record is incorporated in a particle filtering algorithm to introduce the past dynamic knowledge of the system at the edge of vision in the estimation procedure. This provides a more comprehensive view, leading to a more wise and dynamic decision about the system operational mode. A series of simulation experiments is conducted to comparatively demonstrate the capability of the proposed approach to enhance the mode estimation accuracy of a particle filtering algorithm.

Yongjoon Park - One of the best experts on this subject based on the ideXlab platform.

  • repairing return address stack for buffer overflow protection
    Computing Frontiers, 2004
    Co-Authors: Yongjoon Park
    Abstract:

    Although many defense mechanisms against buffer overflow attacks have been proposed, buffer overflow vulnerability in software is still one of the most prevalent vulnerabilities exploited. This paper proposes a micro-architecture based defense mechanism against buffer overflow attacks. As buffer overflow attack leads to a compromised return address, our approach is to provide a software transparent micro-architectural support for return address integrity checking. By keeping an uncompromised copy of the return address separate from the Activation Record in run-time stack, the return address compromised by a buffer overflow attack can be detected at run time. Since extra copies of return addresses are already found in the return address stack (RAS) for return address prediction in most high-performance microprocessors, this paper considers augmenting the RAS in speculative superscalar processors for return address integrity checking. The new mechanism provides 100% accurate return address prediction as well as integrity checking for return addresses. Hence, it enhances system performance in addition to preventing a buffer overflow attack.

  • Conf. Computing Frontiers - Repairing return address stack for buffer overflow protection
    Proceedings of the first conference on computing frontiers on Computing frontiers - CF'04, 2004
    Co-Authors: Yongjoon Park, Gyungho Lee
    Abstract:

    Although many defense mechanisms against buffer overflow attacks have been proposed, buffer overflow vulnerability in software is still one of the most prevalent vulnerabilities exploited. This paper proposes a micro-architecture based defense mechanism against buffer overflow attacks. As buffer overflow attack leads to a compromised return address, our approach is to provide a software transparent micro-architectural support for return address integrity checking. By keeping an uncompromised copy of the return address separate from the Activation Record in run-time stack, the return address compromised by a buffer overflow attack can be detected at run time. Since extra copies of return addresses are already found in the return address stack (RAS) for return address prediction in most high-performance microprocessors, this paper considers augmenting the RAS in speculative superscalar processors for return address integrity checking. The new mechanism provides 100% accurate return address prediction as well as integrity checking for return addresses. Hence, it enhances system performance in addition to preventing a buffer overflow attack.