Selective Code Compression Scheme for Embedded System

Slides:



Advertisements
Similar presentations
POLITECNICO DI MILANO Parallelism in wonderland: are you ready to see how deep the rabbit hole goes? ILP: VLIW Architectures Marco D. Santambrogio:
Advertisements

Zhiguo Ge, Weng-Fai Wong, and Hock-Beng Lim Proceedings of the Design, Automation, and Test in Europe Conference, 2007 (DATE’07) April /4/17.
Panoptes: A Scalable Architecture for Video Sensor Networking Applications Wu-chi Feng, Brian Code, Ed Kaiser, Mike Shea, Wu-chang Feng (OGI: The Oregon.
CS 311 – Lecture 21 Outline Memory management in UNIX
CS 104 Introduction to Computer Science and Graphics Problems
Memory Management 2010.
Memory Management Chapter 5.
Computer Organization Cs 147 Prof. Lee Azita Keshmiri.
HW/SW Co-Synthesis of Dynamically Reconfigurable Embedded Systems HW/SW Partitioning and Scheduling Algorithms.
03/05/2008CSCI 315 Operating Systems Design1 Memory Management Notice: The slides for this lecture have been largely based on those accompanying the textbook.
Architectural and Compiler Techniques for Energy Reduction in High-Performance Microprocessors Nikolaos Bellas, Ibrahim N. Hajj, Fellow, IEEE, Constantine.
Dynamic Hardware Software Partitioning A First Approach Komal Kasat Nalini Kumar Gaurav Chitroda.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Chapter 3 Memory Management: Virtual Memory
Operating System Chapter 7. Memory Management Lynn Choi School of Electrical Engineering.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-7 Memory Management (1) Department of Computer Science and Software.
Memory Management. Process must be loaded into memory before being executed. Memory needs to be allocated to ensure a reasonable supply of ready processes.
Mahesh Sukumar Subramanian Srinivasan. Introduction Embedded system products keep arriving in the market. There is a continuous growing demand for more.
Exploiting Instruction Streams To Prevent Intrusion Milena Milenkovic.
High Performance Embedded Computing © 2007 Elsevier Lecture 7: Memory Systems & Code Compression Embedded Computing Systems Mikko Lipasti, adapted from.
1 of 14 Lab 2: Formal verification with UPPAAL. 2 of 14 2 The gossiping persons There are n persons. All have one secret to tell, which is not known to.
1 of 14 Lab 2: Design-Space Exploration with MPARM.
Virtual Memory By CS147 Maheshpriya Venkata. Agenda Review Cache Memory Virtual Memory Paging Segmentation Configuration Of Virtual Memory Cache Memory.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Block Cache for Embedded Systems Dominic Hillenbrand and Jörg Henkel Chair for Embedded Systems CES University of Karlsruhe Karlsruhe, Germany.
Qin Zhao1, Joon Edward Sim2, WengFai Wong1,2 1SingaporeMIT Alliance 2Department of Computer Science National University of Singapore
Main Memory CSSE 332 Operating Systems Rose-Hulman Institute of Technology.
Dynamic and On-Line Design Space Exploration for Reconfigurable Architecture Fakhreddine Ghaffari, Michael Auguin, Mohamed Abid Nice Sophia Antipolis University.
Topic 2: Hardware and Software
Chapter 9: Memory Management
SLC/VER1.0/OS CONCEPTS/OCT'99
Memory Management By: Piyush Agarwal ( ) Akashdeep ( )
Chapter 2 Memory and process management
Chapter 8: Main Memory.
A DFA with Extended Character-Set for Fast Deep Packet Inspection
CSC 322 Operating Systems Concepts Lecture - 12: by
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Chapter 8 Main Memory.
Real-time Software Design
Introduction to Computers
Chapter 8: Main Memory.
OS Virtualization.
Memory Management Lectures notes from the text supplement by Siberschatz and Galvin Modified by B.Ramamurthy 11/12/2018.
Operating System Concepts
Dynamically Reconfigurable Architectures: An Overview
Performance Optimization for Embedded Software
Multistep Processing of a User Program
Ann Gordon-Ross and Frank Vahid*
Main Memory Background Swapping Contiguous Allocation Paging
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Process Description and Control
Lecture 3: Main Memory.
Hyesoon Kim Onur Mutlu Jared Stark* Yale N. Patt
Channels.
Operating System Chapter 7. Memory Management
Chapter 8: Memory Management strategies
Introduction to Computer Systems
Channels.
Channels.
Virtual Memory: Working Sets
COMP755 Advanced Operating Systems
CSE 542: Operating Systems
MEET-IP Memory and Energy Efficient TCAM-based IP Lookup
ARM920T Processor This training module provides an introduction to the ARM920T processor embedded in the AT91RM9200 microcontroller.We’ll identify the.
Efficient Placement of Compressed Code for Parallel Decompression
Restrictive Compression Techniques to Increase Level 1 Cache Capacity
Page Main Memory.
Presentation transcript:

Selective Code Compression Scheme for Embedded System Authors: Shlomit S. Pinter (IBM, Haifa Research Lab) Israel Waldman (CS Department, Haifa University) Source: HiPEAC Presenter: Wen-Long Yang Date: 2008/05/12

Outline Introduction Design of the selective code compression Experiment results Conclusion

Introduction Code compression Pros Cons Reduce the storage request of programs Reduce the access time to off-chip memory Less traffic between CPU & memory , thus the power consumption will be reduced Cons Extra decompression overhead at execution time May hurt performance

Introduction Code compression is an efficient way to satisfy the resource requirements of the embedded system. This paper proposes a software-based scheme, which uses profiling information to selectively compress code segments with little run-time overhead.

Design 3 main components: Analysis of input based on profiling information Select the code segments from the entire program Preparation of compressed code Compress the selected code. Dynamic decompression at execution time Use decompression engine to decompress the code into a run-time buffer and execute it.

Design - analysis Compressible region Definition: a assembly code fragment that has a single entry and single exit point. E.g., basic block, procedure calls Find the maximal compressible regions use the profiling information(e.g., executed frequency) and the compression algorithm to determine which code segments would be compressed. Overhead is bound by pre-configured parameters to the compiler Potential of code size reduction Estimated slowdown of execution time

Design - preparation Compress the selective code into separated files. Generate the linkage information between compressed codes and other part to the decompression engine Output a reduced size executable file & a collection of compressed binary units

Design – dynamic decompression Decompress certain compressed binary units into run-time buffer. Decompression engine retrieve the start address and execute the binary units, and keep the calling sequence of the program.

Experiment environments Processor: 200MHz PowerPC 604 Compiler: IBM xlc v5.0 compiler Profiling tool: IBM FDPR Benchmarks: MediaBench SPEC CPU2000 181.mcf 177.messa Because they are likely to be merged into embedded devices. Parameters: Reduced code size ≥ 400 bytes Slowdown of execution time ≤ 2%

Experiment results

Experiment results Better cache utilization & less page faults

Conclusion This approach can use profiling for directing code compression without any support of special hardware. The compression scheme reduces the code size and incurs a reasonable run-time overhead.