ACCELERATING 2D GRAPHIC APPLICATIONS WITH LOW ENERGY OVERHEAD

Size: px
Start display at page:

Download "ACCELERATING 2D GRAPHIC APPLICATIONS WITH LOW ENERGY OVERHEAD"

Transcription

1 ACCELERATING 2D GRAPHIC APPLICATIONS WITH LOW ENERGY OVERHEAD Oliveira, L.; Neves, B; Carro, L Instituto de Informática Universidade Federal do Rio Grande do Sul {loliveira,bsneves,carro}@inf.ufrgs.br ABSTRACT Following the growth of embedded systems market, especially PDAs and mobile phones, the digital entertainment market, based on those platforms, grows as well. This scenario makes it important to address energy consumption on graphical applications, since many devices use some kind of display. This work presents a class library for low energy graphical applications running on embedded systems based on Femtojava microprocessor. 1. INTRODUCTION Along with technology evolution, the use of electronic systems increases with the intent of aiding in our everyday tasks. Electronic devices designed to several uses are more and more common. These devices are used for entertainment, communication, control of mechanical devices, etc. These devices are called electronic embedded systems. Following the ever-increasing demand for electronic embedded systems comes the need to reduce the time-tomarket of such systems. The designers need to finish a quality product, on time, on budget, and in accordance with consumer needs. Several commercial issues impose such constraints on the design of new products. The ever-increasing complexity of embedded systems only complicates matters. The consumer will buy a new product only if it brings new features that are important to him/her. Additional features complicate design, making it even more difficult to meet the requirements on time and on budget. To handle these issues, new methodologies are proposed in academia, aiming at reducing design time. These methodologies, more often than not, propose to specify the system in a higher abstraction level. With each methodology comes a set of tools to support its philosophy of design. Unfortunately, the use of such methods is very restricted, and very few make its way to wide use. Another way of reducing design time is the use of libraries of pre-designed and pre-validated components, both in hardware and software. Ease of use is very important in such libraries, in order to make its use worth. Integration is a very complicated problem, since components often come from different vendors and each of them can use different communication strategies. It is true that there are several efforts in standardizing communication methods in electronic systems, but the reality is far from ideal. On the software side the problem of integration also manifests, but it is clear that well designed software libraries help to reduce design time, since the developer can focus on the functionality of the systems rather than on low level functions. Restrictions imposed by embedded hardware contribute to increase system complexity. The Java language presents some characteristics that proved to be important in the design of complex systems, such as simplicity, portability, scalability (through object orientation), small code size, and so on. This work presents a class library designed to ease the development of embedded two-dimensional graphical applications. By doing that, it goes a step further in the path to provide a embedded platform based on Femtojava microcontroller. The library, called FemtoGraphics, was developed aiming low energy consumption by using simple techniques based on pre-processing of data to reduce memory accesses during execution time. Section 2 describes related work. Section 3 describes Femtojava, our hardware platform embedded systems. Section 4 and 5 describe the library and the optimizations performed on it to reduce energy consumption. Finally, section 6 shows some results and future work. 2. RELATED WORK The design of embeded software presents some problems. Portability in embedded systems, even with the use of Java is no trivial problem. Embedded systems have varied 1

2 features, making portability less straightforward than on desktops. Java 2 Micro Edition (J2ME) is a platform for resource-constrained environments. J2ME features virtual machines, configuration and profiles for various environments and several needs. With a proper configuration and profile, J2ME applications can execute in several devices, like cell phones, PDAs, set-top boxes, etc. A Java virtual machine with main libraries, classes and API constitutes a J2ME configuration. Connected Device Configuration (CDC) contains the CVM virtual machine. This configuration is directed to devices with 2MB of memory or more for the Java platform e often connected to some kind of network [12]. Connected Limited Device Configuration (CLDC) includes the K virtual machine or the CLDC HotSpot virtual machine. The K virtual machine is meant to RISC or CISC processors, 16 or 32 bit, and only 160KB to 512KB of memory for the Java platform. CLDC HotSpot is the next generation virtual machine for mobile devices. It features higher performance and includes connectivity do some kind of network, generally wireless, with limited bandwidth. CLDC takes into consideration energy consumption issues [13][14]. Profiles further define the J2ME environment, specifying the adequate platform for each device. Personal Basis [17] and Personal [18] are profiles for CDC configuration. The Personal profile is a superset of Personal Basis profile. Both are based on the Foundation profile and both allow the development of Java applications for consumer electronic devices. The MIDP profile is the basis for CLDC configuration. The PDA profile is meant to PDA devices and includes MIDP, introducing the Personal Information Management API [19]. There are also other solutions for embedded systems that are not Java-based, like Binary Runtime Environment for Wireless, from Qualcomm [4] and.net Compact Framework, from Microsoft [5]. The existence of such systems is further evidence of the need to promote the reuse of components, through libraries, in order to reduce development time of embedded systems. These systems ease the access to system peripherals in a device independent way, making code more portable. 3. FEMTOJAVA Due to the adoption of Java on cell phones and PDA devices [7], comes the need to improve the efficiency of software on the Java platform. The Femtojava microcontroller [1] executes Java bytecode directly, without a virtual machine. Femtojava has a reduced instruction-set, Harvard architecture, low area cost and the possibility to synthesize a custom processor, removing some instructions.. Such process is done through a tool called Sashimi, which analyses Java bytecodes and generates a control path that supports only the instructions that are actually used. In [2] a low energy version of Femtojava was described. There are other hardware implementations of Java machines, such as Picojava-I [8], Picojava-II [9], Komodo [10] and TRAJA [11]. The Femtojava microprocessor executes a limited set of Java bytecodes. It has some constraints that should be respected when developing applications on it. These constraints are a result of executing bytecodes directly in hardware. Some features are simpler to implement in software, like dynamic memory management. Our memory management system is a software library that is linked to the applications. This library was designed to contain only methods that respect the restrictions of Femtojava. More over, the library is restricted to creation and manipulations only of objects which class file contains code supported by the Femtojava hardware. Actually, this poses an import problem, since it restricts the set of applications we can use to validate Femtojava extensions like the one proposed in this paper. Many efforts are currently in development to circumvent this problem and enhance Femtojava support for different applications. The dynamic memory management library was the first extension of the instruction set completely implemented in software. It uses a code adaptation tool that automatically replaces dynamic memory management instructions for static method calls to the library. 4. FEMTOGRAPHICS LIBRARY The FemtoGraphics library was conceived to be a simple way to create graphical application for embedded devices based on the Femtojava microprocessor. It was designed to have a small memory footprint, by implementing only primitives on top of which a more complex application can be designed. This section presents the non-optimized version of the library. An important component of the FemtoGraphics Library is the Femtojava Resource Compiles (FemtoRC) which generates Java code from image files. Other types of resources are planned, but currently only images are supported by the tool. This tool not only transforms images into Java source files, but also is the offline pair to the techniques described in the next section, that are used to reduce energy consumption. The tool takes as input a set of file names and output a file called Resources.java that contains the data of all image files converted to the color format of the runtime library, according to some parameters that control how the images are stored and manipulated. After generating the resource file from the images, that file should be compiled with the application. The application is designed using a restricted set of Java 2

3 functionality, given the constraints of our environment. The library is designed with these constraints in mind. The main class of the library is FemtoSystem. It is responsible for holding access to the frame buffer and is planned to be the access point to other features in the future. The most important class in the library is the one that holds image data, called FemtoImage. FemtoImage has all methods used to control access to images. Among them, the most important are the block transfer methods, which are responsible for copying the image data to the frame buffer. The class Screen is composed by a FemtoImage object which represents the frame buffer itself. There should be only one Screen object in the system, and that object can be accessed by calling the FemtoSystem.screen() method. 5. REDUCING ENERGY CONSUMPTION In order to reduce energy consumption two techniques are evaluated, run-length encoding and images as immediate operands. These techniques are used to reduce memory accesses. Since memory accesses are an important factor in energy consumption, by reducing them we also reduce energy consumption. The first technique is to use run-lengh encoding (RLE) compression on images. This leads to less data memory use, which maps to less reads from memory (iaload bytecode). In our implementation we used RLE on each line of the image separately. This was made to simplify clipping, which is necessary if images transit beyond screen boundaries. Clipping is not currently implemented, but is such a common function in games that it must be possible to implement it efficiently. The image compression is done by the same tool that compiles images to source code. In the case of RLE compression, the arrays are generated with different row sizes, depending on the compression. A flag in the resources source file is set to signal that the encoded images are compressed. RLE compression works as follows: if a color repeats itself in a sequence, a value is placed on the compressed image to indicate the number of times that color is repeated. The usual implementation is to use a threshold. If the value is above that threshold, it is not a color, but a repeat count for the color that comes next. In such implementation, the range of colors that is above the threshold value is always represented by a repeat count and the color, even when the repeat count is one. Our implementation uses negative values to mean repeat counts, which limits our color depth to 15 bits, or colors. However, the technique can be used without this limitation and even with higher color depth. The choice of using negatives values is due to the fact that the implementation uses the short data type, and integers in Java are signaled. The output file of FemtoRC is the resource file with all images compressed through RLE. That file should be compiled with the application. Then, the runtime library will uncompress the image at the moment when it will be transferred to the screen. The runtime cost of this operation is very low, since RLE is a very simple compression technique. Also, the number of memory accesses is reduced, making this method even faster than transferring an uncompressed image. Another benefit of RLE happens when using color keys. The test that determines if a color repeated several times should be written is only made once since the result of the test will be the same. That represents less comparisons and more important, less braches in code, making it more efficient and helping to keep the Femtojava pipeline as full as possible. However, RLE will not work all the time. Images where color do not repeat very often are likely to have a low compression rate, sometimes making the compressed image almost as large as the original, or sometimes larger, depending on implementation. For example, if the values above the threshold are valid color and the image does not have color repeating in a line, the resulting encoding will be larger than the uncompressed image. The second technique reduces memory accesses by placing image bytes directly as immediate operands in bipush and sipush operations. Previously, the image pixels were loaded from memory through iaload operations. That meant three bytes, one for the bytecode, one for the array address and one for the offset, plus the access for the pixels itself (two bytes on the current implementaion). By placing the pixel data as immediate operands we reduce memory accesses. The original process of transferring an image to the screen is calculate an index to the source image data, accessing the array to read the pixel, test if it is transparent, if it is not transparent calculate an index to the destination image (screen frame buffer), and writing the pixel to this image. Many of these operations can be simplified by using our second technique. The first simplification is that there is no calcutation of indexes to the source image, since the data will be placed directly in the code. For example, the following is the original code that copies one pixel from the source image to the destination image: Dest[y+i][x+j]=source[i][j]; Where x, y, i and j are all variables. This will become: Dest[y+K][x+L]=value; Where x and y are variables and K, L and value are constants. It is important to see how the bytecodes for these operations will be. The first would result in sload (short load) operations for the variables, two sadd (short add) operations for the additions, one getstatic for each 3

4 array, and two iaload operations (arrays are bidimentionals) for each array. The second will use only one getstatic, three sipush operations, one for each constant, two sadd operations and finally one sastore (short array store). The real difference in energy consumption will come from less memory accesses, since the pixel data is a direct operand of the sipush operation. There are less ROM accesses (only one sipush against getstatic, two sload operations, and saload), and less RAM accesses (only to store the pixel through sastore). A further advantage is that code for pixels that are transparent (equal to the color key) is simply not generated. That will result in even less memory usage and more efficient code. 6. RESULTS AND FUTURE WORK The following table shows the number of cycles to display 13 frames of the application that we used to evaluate the proposed techniques. Our application is a simplified implementation of the Sokoban puzzle game. Original RLE Immediate Cycles (x1000) 2,766,422 2,603,266 1,012,032 Instructions 2,272,001 2,137, ,081 (x1000) Energy (nj) 1.488e e e9 The implementation using RLE compression did not produce good results. One explanation is that it relies on an additional loop to decompress images, resulting in poor usage of the Femtojava pipeline. The immediate operands method produced great results due to the fact that it removed some operations that require memory management. Our memory management system is implemented in software, making it very expensive. So, any reduction in that area brings huge savings in terms of energy and execution time. For that, we had an execution time that is 36% of the original implementation and an energy cost that is 38% of the original implementation. Following this work, we will expand the presented methods and investigate other mechanisms to reduce energy consumption in embedded graphical applications. A pipeline aware version of the RLE method will be considered. If the pipeline aware RLE produces good results, we will consider combining both methods. Also, we will evaluate the methods without memory management overhead. 7. REFERENCES [1] Ito, S.A., Carro, L., Jacobi, R.P. Making Java Work for Microcontroller Applications, IEEE Design and Test of Computers, vol. 18, n. 5, p [2] Beck F., A.C.S.; Carro, L. Low Power Java Processor for Embedded Applications, VLSI-SOC 2003 IFIP 12th International Conference on Very Large Scale Integration, Germany, December, [3] Mobile Information Device Profile (MIDP). Available at [4] Binary Runtime Environment for Wireless (BREW). Available at [5].Net Compact Framework. Available at [6] Sangiovanni-Vincentelli, A.; Martin, G. Platform-Based Design and Software Design Metodology for Embedded Systems. IEEE Design and Test, vol. 18, no. 6, pp , Nov- Dec, [7] Lawton, G. Moving Java into Mobile Phones, Computer, vol. 35, n. 6, pp [8] O Connor, J.M.; Tremblat, M. Picojava-I the Java Virtual Machine in Hardware, IEEE Micro, vol. 17, n. 2, Mar-Apr. pp [9] Sun Microsystems. Picojava-II Microarchitecture Guide. March, [10] Kreuzinger, J.; Marston, R.; Ungerer, Th.; Brinkschulte, U.; Krakowski, C. The Komodo Project: Thread-based Event Handling Supported by a Multithreaded Java Microcontroller, 25th Euromicro Conference (EUROMICRO), pp September, [11] Shimizu, N.; Naito, M. A Dual Issue Queued Pipelined Java Processor TRAJA Toward na Open Source Processor Project, Proceedings of Ásia Pacific Conference on ASIC (AP- ASIC), pp [12] Sun Microsystems. Connected Device Configuration (CDC) and the Foudation Profile Available at [13] Sun Microsystems. The CLDC HotSpot Implementation Virtual Machine, Available at HI WhitePaper.pdf. [14] J2ME Connected, Limited Device Configuration, Available at [15] Choi, I.; Shim, H.; Chang, N. Low-power color TFT LCD display for hand-held embedded systems, Proceedings of International Symposium on Low Power Electronics and Design,. pp August,

5 [16] Choi, I.; Kim H.S.; Shim, H.; Chang, N. LPBP: Low-Power Basis Profile of the Java 2 Micro Edition, Proceedings of the 2003 international symposium on Low power electronics and design, Seoul, Korea, pp [17] Programmer s Guide - J2ME Personal Basis Profile, Available at: [18] Programmer s Guide - J2ME Personal Profile, Available at: [19] PDA Profile for the J2ME Platform (JSR-75), Available at: 5

instruction fetch memory interface signal unit priority manager instruction decode stack register sets address PC2 PC3 PC4 instructions extern signals

instruction fetch memory interface signal unit priority manager instruction decode stack register sets address PC2 PC3 PC4 instructions extern signals Performance Evaluations of a Multithreaded Java Microcontroller J. Kreuzinger, M. Pfeer A. Schulz, Th. Ungerer Institute for Computer Design and Fault Tolerance University of Karlsruhe, Germany U. Brinkschulte,

More information

DAY 3 J2ME March 2007 Aalborg University, Mobile Device Group Mobile Phone Programming

DAY 3 J2ME March 2007 Aalborg University, Mobile Device Group Mobile Phone Programming DAY 3 J2ME Mobile Phone Programming Module 2 Micro (J2ME) Overview Introduction J2ME architecture Introduction 1 J2ME Key Factors Portability: Write once run anywhere Security: Code runs within the confines

More information

DAY 3 J2ME Aalborg University, Mobile Device Group. Mobile. Mobile Phone Programming

DAY 3 J2ME Aalborg University, Mobile Device Group. Mobile. Mobile Phone Programming DAY 3 J2ME Mobile Phone Programming Java 2 Micro Edition (J2ME) Overview Introduction J2ME architecture MIDlets Application development Introduction J2ME Key Factors Portability: Write once run anywhere

More information

Overview of Java 2 Platform, Micro Edition (J2ME )

Overview of Java 2 Platform, Micro Edition (J2ME ) CHAPTER2 Overview of Java 2 Platform, Micro Edition (J2ME ) 2.1 Java 2 Platform Recognizing that one size does not fit all, Sun Microsystems has grouped Java technologies into three editions, each aimed

More information

Java 2 Platform, Micro Edition

Java 2 Platform, Micro Edition Java 2 Platform, Micro Edition ArchitectureOverview Jon Courtney Senior Staff Engineer Sun Microsystems JavaOne203 Sesion316 Overall Presentation Goal Learnaboutthearchitectural features ofthejava 2Platform,MicroEdition(J2ME

More information

GrinderBench for the Java Platform Micro Edition Java ME

GrinderBench for the Java Platform Micro Edition Java ME GrinderBench for the Java Platform Micro Edition Java ME WHITE PAPER May 2003 Updated April 2006 Protagoras, the leading Greek Sophist, was quoted as saying, "Man is the measure of all things," by which

More information

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course?

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course? Who am I? Wireless Online Game Development for Mobile Device Lo Chi Wing, Peter Lesson 1 Email: Peter@Peter-Lo.com I123-1-A@Peter Lo 2007 1 I123-1-A@Peter Lo 2007 2 Are you take the right course? This

More information

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Reconfigurable Architecture Requirements for Co-Designed Virtual Machines Kenneth B. Kent University of New Brunswick Faculty of Computer Science Fredericton, New Brunswick, Canada ken@unb.ca Micaela Serra

More information

Introduction to Java Programming CPIT 202. WEWwwbvxnvbxmnhsgfkdjfcn

Introduction to Java Programming CPIT 202. WEWwwbvxnvbxmnhsgfkdjfcn Introduction to Java Programming CPIT 202 WEWwwbvxnvbxmnhsgfkdjfcn b 1 WEEK 1 LECTURE 1 What is Java? 2 Background on Java First appear in 1995 Developed by Sun Microsystems Corp. Cross platform = platform

More information

JOP: A Java Optimized Processor for Embedded Real-Time Systems. Martin Schoeberl

JOP: A Java Optimized Processor for Embedded Real-Time Systems. Martin Schoeberl JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schoeberl JOP Research Targets Java processor Time-predictable architecture Small design Working solution (FPGA) JOP Overview 2 Overview

More information

Developing Mobile Applications

Developing Mobile Applications Developing Mobile Applications J2ME Java 2 Micro Edition 1 Virtual machines portable apps virtual machine native apps operating system hardware 2 Java - important issues Symbolic language not a random

More information

APPLYING JAVA ON SINGLE-CHIP MULTIPROCESSORS. Antonio C. S. Beck F., Júlio C. B. Mattos, Luigi Carro. {caco, julius, carro

APPLYING JAVA ON SINGLE-CHIP MULTIPROCESSORS. Antonio C. S. Beck F., Júlio C. B. Mattos, Luigi Carro. {caco, julius, carro APPLYING JAVA ON SINGLE-CHIP MULTIPROCESSORS Antonio C. S. Beck F., Júlio C. B. Mattos, Luigi Carro Instituto de Informática Universidade Federal do Rio Grande do Sul, Porto Alegre, Brazil {caco, julius,

More information

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Departamento de Engenharia Informática for Embedded Computing MEIC-A, MEIC-T, MERC Lecture Slides Version 3.0 - English Lecture 22 Title: and Extended

More information

JXTA for J2ME Extending the Reach of Wireless With JXTA Technology

JXTA for J2ME Extending the Reach of Wireless With JXTA Technology JXTA for J2ME Extending the Reach of Wireless With JXTA Technology Akhil Arora Carl Haywood Kuldip Singh Pabla Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 USA 650 960-1300 The Wireless

More information

New Approach for Affine Combination of A New Architecture of RISC cum CISC Processor

New Approach for Affine Combination of A New Architecture of RISC cum CISC Processor Volume 2 Issue 1 March 2014 ISSN: 2320-9984 (Online) International Journal of Modern Engineering & Management Research Website: www.ijmemr.org New Approach for Affine Combination of A New Architecture

More information

Microprocessors, Lecture 1: Introduction to Microprocessors

Microprocessors, Lecture 1: Introduction to Microprocessors Microprocessors, Lecture 1: Introduction to Microprocessors Computing Systems General-purpose standalone systems (سيستم ھای نھفته ( systems Embedded 2 General-purpose standalone systems Stand-alone computer

More information

CM0256 Pervasive Computing

CM0256 Pervasive Computing CM0256 Pervasive Computing Lecture 17 Software Development Approaches Tom Goodale t.r.goodale@cs.cardiff.ac.uk Lecture Outline In this lecture we: J2ME applications Palm. Device Limitations Limited Power

More information

2D/3D Graphics Accelerator for Mobile Multimedia Applications. Ramchan Woo, Sohn, Seong-Jun Song, Young-Don

2D/3D Graphics Accelerator for Mobile Multimedia Applications. Ramchan Woo, Sohn, Seong-Jun Song, Young-Don RAMP-IV: A Low-Power and High-Performance 2D/3D Graphics Accelerator for Mobile Multimedia Applications Woo, Sungdae Choi, Ju-Ho Sohn, Seong-Jun Song, Young-Don Bae,, and Hoi-Jun Yoo oratory Dept. of EECS,

More information

Applying Memory Test to Embedded Systems

Applying Memory Test to Embedded Systems Applying Memory Test to Embedded Systems César Augusto M. Marcon 1, Alexandre de Moraes Amory 1, Marcelo Lubaszewski 1, Altamiro Amadeu Susin 1, Ney Laert V. Calazans 2, Fernando Gehm Moraes 2, Fabiano

More information

Improved Mechanism for Efficient object Pooling in J2ME Based Mobile Phone

Improved Mechanism for Efficient object Pooling in J2ME Based Mobile Phone Abstract Nowadays mobile phones are expected to handle huge volume of multimedia data which is very challenging due to the small memory size of the mobile phone sets. J2ME services play an important role

More information

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol)

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol) Developing web applications for PDAs and Cellphones Mobile Station Execution Environment (MExE( MExE) MExE is a standard for defining various levels of wireless communication These levels are called classmarks

More information

Demo Proposal. 1 General Information

Demo Proposal. 1 General Information Demo Proposal 1 General Information Demostration title: FLiP Product Line Derivation Tool Type of demonstration : Forum Contact person: Paulo Borba, phmb@cin.ufpe.br, Informatics Center UFPE, Universidade

More information

A Real-Time Java System on a Multithreaded Java Microcontroller

A Real-Time Java System on a Multithreaded Java Microcontroller A Real-Time Java System on a Multithreaded Java Microcontroller M. Pfeffer, S. Uhrig, Th. Ungerer Institute for Computer Science University of Augsburg D-86159 Augsburg fpfeffer, uhrig, ungererg @informatik.uni-augsburg.de

More information

Hardware support in a middleware for distributed and real-time embedded applications

Hardware support in a middleware for distributed and real-time embedded applications Hardware support in a middleware for distributed and real-time embedded applications Elias T. Silva Jr 1,2, Flávio R. Wagner 1, Edison P. Freitas 1, Leonardo Kunz 1, Carlos E. Pereira 1 1 PPGC Instituto

More information

PennBench: A Benchmark Suite for Embedded Java

PennBench: A Benchmark Suite for Embedded Java WWC5 Austin, TX. Nov. 2002 PennBench: A Benchmark Suite for Embedded Java G. Chen, M. Kandemir, N. Vijaykrishnan, And M. J. Irwin Penn State University http://www.cse.psu.edu/~mdl Outline Introduction

More information

Controller Synthesis for Hardware Accelerator Design

Controller Synthesis for Hardware Accelerator Design ler Synthesis for Hardware Accelerator Design Jiang, Hongtu; Öwall, Viktor 2002 Link to publication Citation for published version (APA): Jiang, H., & Öwall, V. (2002). ler Synthesis for Hardware Accelerator

More information

Hardware-Supported Pointer Detection for common Garbage Collections

Hardware-Supported Pointer Detection for common Garbage Collections 2013 First International Symposium on Computing and Networking Hardware-Supported Pointer Detection for common Garbage Collections Kei IDEUE, Yuki SATOMI, Tomoaki TSUMURA and Hiroshi MATSUO Nagoya Institute

More information

Mobile Application Design and Development With the use of J2ME Technology & UML m.khlaif Computer Science Dept Garyounis University

Mobile Application Design and Development With the use of J2ME Technology & UML m.khlaif Computer Science Dept Garyounis University Garyounis University Press Journal of Science and Its Applications Vol. 3, No. 1, pp 83-93, April 2009 83 Mobile Application Design and Development With the use m.khlaif Computer Science Dept Garyounis

More information

A Microkernel Architecture for a Highly Scalable Real-Time Middleware

A Microkernel Architecture for a Highly Scalable Real-Time Middleware A Microkernel Architecture for a Highly Scalable Real-Time Middleware U. Brinkschulte, C. Krakowski,. Riemschneider. Kreuzinger, M. Pfeffer, T. Ungerer Institute of Process Control, Institute of Computer

More information

New Advances in Micro-Processors and computer architectures

New Advances in Micro-Processors and computer architectures New Advances in Micro-Processors and computer architectures Prof. (Dr.) K.R. Chowdhary, Director SETG Email: kr.chowdhary@jietjodhpur.com Jodhpur Institute of Engineering and Technology, SETG August 27,

More information

ELC4438: Embedded System Design Embedded Processor

ELC4438: Embedded System Design Embedded Processor ELC4438: Embedded System Design Embedded Processor Liang Dong Electrical and Computer Engineering Baylor University 1. Processor Architecture General PC Von Neumann Architecture a.k.a. Princeton Architecture

More information

JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level

JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level JSR 248: Taking Java Platform, Micro Edition (Java ME) to the Next Level Kay Glahn Consultant Mobile Service Architecture, Vodafone http://www.vodafone.com Erkki Rysä Technologist Nokia Corporation http://www.nokia.com

More information

Distributed Virtual Reality Computation

Distributed Virtual Reality Computation Jeff Russell 4/15/05 Distributed Virtual Reality Computation Introduction Virtual Reality is generally understood today to mean the combination of digitally generated graphics, sound, and input. The goal

More information

Developing Core Software Technologies for TI s OMAP Platform

Developing Core Software Technologies for TI s OMAP Platform SWPY006 - August 2002 White Paper By Justin Helmig Texas Instruments Senior Technical Staff, Wireless Software Applications Texas Instruments OMAP platform for wireless handsets offers a powerful hardware

More information

A Direct Memory Access Controller (DMAC) IP-Core using the AMBA AXI protocol

A Direct Memory Access Controller (DMAC) IP-Core using the AMBA AXI protocol SIM 2011 26 th South Symposium on Microelectronics 167 A Direct Memory Access Controller (DMAC) IP-Core using the AMBA AXI protocol 1 Ilan Correa, 2 José Luís Güntzel, 1 Aldebaro Klautau and 1 João Crisóstomo

More information

A Multithreaded Java Microcontroller for Thread-Oriented Real-Time Event-Handling

A Multithreaded Java Microcontroller for Thread-Oriented Real-Time Event-Handling A Multithreaded Java Microcontroller for Thread-Oriented Real-Time Event-Handling U. Brinkschulte, C. Krakowski J. Kreuzinger, Th. Ungerer Institute of Process Control, Institute of Computer Design Automation

More information

Requirements and Issues of V**s for Mobile Terminals

Requirements and Issues of V**s for Mobile Terminals Requirements and Issues of V**s for Mobile Terminals Workshop on the Future of Virtual Execution Environments Armonk, NY, USA 15-17.09.2004 Kari Systä Nokia Research Center 1 NOKIA Presentation_Name.PPT

More information

J2ME ARCHITECTURE AND RELATED EMBEDDED TECHNOLOGIES

J2ME ARCHITECTURE AND RELATED EMBEDDED TECHNOLOGIES J2ME ARCHITECTURE AND RELATED EMBEDDED TECHNOLOGIES Pradip Lamsal Abstract: Java 2 Platform Micro Edition (J2ME ), a flavour of Java architecture, is aimed at low memory consumer devices, typically less

More information

Parallelism of Java Bytecode Programs and a Java ILP Processor Architecture

Parallelism of Java Bytecode Programs and a Java ILP Processor Architecture Australian Computer Science Communications, Vol.21, No.4, 1999, Springer-Verlag Singapore Parallelism of Java Bytecode Programs and a Java ILP Processor Architecture Kenji Watanabe and Yamin Li Graduate

More information

ProvideX On Handhelds

ProvideX On Handhelds ProvideX On Handhelds Presented by: Jarett Smith Presentation Overview Landscape of Mobile Computing Wireless Connections to Internet Challenges of Mobile Computing Why We Chose Java 2 Micro Edition Java

More information

Mobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA

Mobile Application Development. Introduction. Dr. Christelle Scharff Pace University, USA Mobile Application Development Introduction Dr. Christelle Scharff cscharff@pace.edu Pace University, USA Objectives Getting an overview of the mobile phone market, its possibilities and weaknesses Providing

More information

PVRTC & Texture Compression. User Guide

PVRTC & Texture Compression. User Guide Public Imagination Technologies PVRTC & Texture Compression Public. This publication contains proprietary information which is subject to change without notice and is supplied 'as is' without warranty

More information

Early Embedded Software Design Space Exploration Using UML-based Estimation

Early Embedded Software Design Space Exploration Using UML-based Estimation Early Embedded Software Design Space Exploration Using UML-based Estimation Marcio F. da S. Oliveira 1 Lisane B. de Brisolara 1 Luigi Carro 1,2 Flávio R. Wagner 1 1 Computer Science Institute Federal University

More information

Developing Games for J2ME Technology- Enabled Mobile Devices

Developing Games for J2ME Technology- Enabled Mobile Devices Developing Games for J2ME Technology- Enabled Mobile Devices Nicolas Lorain Sr. Product Manager Wireless Java Technologies Sun Microsystems, Inc. Session Speakers Nicolas Lorain Sr. Product Manager, Wireless

More information

Evolution of ISAs. Instruction set architectures have changed over computer generations with changes in the

Evolution of ISAs. Instruction set architectures have changed over computer generations with changes in the Evolution of ISAs Instruction set architectures have changed over computer generations with changes in the cost of the hardware density of the hardware design philosophy potential performance gains One

More information

Chapter 2. Instruction Set. RISC vs. CISC Instruction set. The University of Adelaide, School of Computer Science 18 September 2017

Chapter 2. Instruction Set. RISC vs. CISC Instruction set. The University of Adelaide, School of Computer Science 18 September 2017 COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface RISC-V Edition Chapter 2 Instructions: Language of the Computer These slides are based on the slides by the authors. The slides doesn t

More information

The Impact of Instruction Compression on I-cache Performance

The Impact of Instruction Compression on I-cache Performance Technical Report CSE-TR--97, University of Michigan The Impact of Instruction Compression on I-cache Performance I-Cheng K. Chen Peter L. Bird Trevor Mudge EECS Department University of Michigan {icheng,pbird,tnm}@eecs.umich.edu

More information

Is Intel s Hyper-Threading Technology Worth the Extra Money to the Average User?

Is Intel s Hyper-Threading Technology Worth the Extra Money to the Average User? Is Intel s Hyper-Threading Technology Worth the Extra Money to the Average User? Andrew Murray Villanova University 800 Lancaster Avenue, Villanova, PA, 19085 United States of America ABSTRACT In the mid-1990

More information

Chapter 1: Introduction to Computers and Java

Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

Chapter 1 Introduction to Java

Chapter 1 Introduction to Java Chapter 1 Introduction to Java 1 Why Java? The answer is that Java enables users to develop and deploy applications on the Internet for servers, desktop computers, and small hand-held devices. The future

More information

Optimizing the Generation of Object-Oriented Real-Time Embedded Applications Based on the Real-Time Specification for Java

Optimizing the Generation of Object-Oriented Real-Time Embedded Applications Based on the Real-Time Specification for Java Optimizing the Generation of Object-Oriented Real-Time Embedded Applications Based on the Real-Time Specification for Java Marco Aurélio Wehrmeister 1, Carlos Eduardo Pereira 1,2, Leandro Buss Becker 3

More information

Heap Compression for Memory-Constrained Java

Heap Compression for Memory-Constrained Java Heap Compression for Memory-Constrained Java CSE Department, PSU G. Chen M. Kandemir N. Vijaykrishnan M. J. Irwin Sun Microsystems B. Mathiske M. Wolczko OOPSLA 03 October 26-30 2003 Overview PROBLEM:

More information

Microcontrollers. Microcontroller

Microcontrollers. Microcontroller Microcontrollers Microcontroller A microprocessor on a single integrated circuit intended to operate as an embedded system. As well as a CPU, a microcontroller typically includes small amounts of RAM and

More information

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD 17 April 2018

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD   17 April 2018 ARSITEKTUR SISTEM KOMPUTER Wayan Suparta, PhD https://wayansuparta.wordpress.com/ 17 April 2018 Reduced Instruction Set Computers (RISC) CISC Complex Instruction Set Computer RISC Reduced Instruction Set

More information

phoneme: High-performance, product-quality GPLv2 CDC + CLDC stacks Terrence Barr

phoneme: High-performance, product-quality GPLv2 CDC + CLDC stacks Terrence Barr phoneme: High-performance, product-quality GPLv2 CDC + CLDC stacks Terrence Barr Senior Technologist and Community Ambassador Java Mobile & Embedded Community Sun Microsystems 1 Platform Scalability and

More information

Design guidelines for embedded real time face detection application

Design guidelines for embedded real time face detection application Design guidelines for embedded real time face detection application White paper for Embedded Vision Alliance By Eldad Melamed Much like the human visual system, embedded computer vision systems perform

More information

Lecture 1: Introduction to Java

Lecture 1: Introduction to Java Lecture 1: Introduction to Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Without programs, a computer is an empty

More information

Improving Energy Efficiency of Block-Matching Motion Estimation Using Dynamic Partial Reconfiguration

Improving Energy Efficiency of Block-Matching Motion Estimation Using Dynamic Partial Reconfiguration , pp.517-521 http://dx.doi.org/10.14257/astl.2015.1 Improving Energy Efficiency of Block-Matching Motion Estimation Using Dynamic Partial Reconfiguration Jooheung Lee 1 and Jungwon Cho 2, * 1 Dept. of

More information

Jump-Start Software-Driven Hardware Verification with a Verification Framework

Jump-Start Software-Driven Hardware Verification with a Verification Framework Jump-Start Software-Driven Hardware Verification with a Verification Framework Matthew Ballance Mentor Graphics 8005 SW Boeckman Rd Wilsonville, OR 97070 Abstract- Software-driven hardware verification

More information

Multimedia Platform. Mainstream wireless multimedia expands globally with the industry s first single-chipset solution

Multimedia Platform. Mainstream wireless multimedia expands globally with the industry s first single-chipset solution CONVERGENCE ENHANCED MULTIMEDIA MULTIMEDIA VALUE Multimedia Platform Mainstream wireless multimedia expands globally with the industry s first single-chipset solution F I N D A R E S T A U R A N T S E

More information

Code Compression for DSP

Code Compression for DSP Code for DSP Charles Lefurgy and Trevor Mudge {lefurgy,tnm}@eecs.umich.edu EECS Department, University of Michigan 1301 Beal Ave., Ann Arbor, MI 48109-2122 http://www.eecs.umich.edu/~tnm/compress Abstract

More information

Computer Architecture Dr. Charles Kim Howard University

Computer Architecture Dr. Charles Kim Howard University EECE416 Microcomputer Fundamentals Computer Architecture Dr. Charles Kim Howard University 1 Computer Architecture Computer Architecture Art of selecting and interconnecting hardware components to create

More information

Imperative model of computation

Imperative model of computation 12 Imperative model of computation Peter Marwedel TU Dortmund, Informatik 12 Graphics: Alexandra Nolte, Gesine Marwedel, 2003 2010/10/28 These slides use Microsoft clip arts. Microsoft copyright restrictions

More information

CARUSO Project Goals and Principal Approach

CARUSO Project Goals and Principal Approach CARUSO Project Goals and Principal Approach Uwe Brinkschulte *, Jürgen Becker #, Klaus Dorfmüller-Ulhaas +, Ralf König #, Sascha Uhrig +, and Theo Ungerer + * Department of Computer Science, University

More information

CSEE 3827: Fundamentals of Computer Systems

CSEE 3827: Fundamentals of Computer Systems CSEE 3827: Fundamentals of Computer Systems Lecture 15 April 1, 2009 martha@cs.columbia.edu and the rest of the semester Source code (e.g., *.java, *.c) (software) Compiler MIPS instruction set architecture

More information

Real-time Scheduling on Multithreaded Processors

Real-time Scheduling on Multithreaded Processors Real-time Scheduling on Multithreaded Processors J. Kreuzinger, A. Schulz, M. Pfeffer, Th. Ungerer Institute for Computer Design, and Fault Tolerance University of Karlsruhe D-76128 Karlsruhe, Germany

More information

VERY LOW POWER MICROPROCESSOR CELL

VERY LOW POWER MICROPROCESSOR CELL VERY LOW POWER MICROPROCESSOR CELL Puneet Gulati 1, Praveen Rohilla 2 1, 2 Computer Science, Dronacharya College Of Engineering, Gurgaon, MDU, (India) ABSTRACT We describe the development and test of a

More information

Designing Next Generation Test Systems An In-Depth Developers Guide

Designing Next Generation Test Systems An In-Depth Developers Guide An In-Depth Developers Guide Designing Next Generation Test Systems An In-depth Developers Guide Contents Section 1 Executive Summary Chapter 1 Increasing Design Complexity...1-1 Shorter Product Development

More information

BISTed cores and Test Time Minimization in NOC-based Systems

BISTed cores and Test Time Minimization in NOC-based Systems BISTed cores and Test Time Minimization in NOC-based Systems Érika Cota 1 Luigi Carro 1,2 Flávio Wagner 1 Marcelo Lubaszewski 1,2 1 PPGC - Instituto de Informática 2 PPGEE - Depto. Engenharia Elétrica

More information

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Pavel Petroshenko, Sun Microsystems, Inc. Ashmi Bhanushali, NVIDIA Corporation Jerry Evans, Sun Microsystems, Inc. Nandini

More information

[Kumar, 3(3): March, 2014] ISSN: Impact Factor: 1.852

[Kumar, 3(3): March, 2014] ISSN: Impact Factor: 1.852 IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY RLE Compander for Wireless Sensor Data Processing Arun Kumar.R Assistant Professor, CSE, Vidya Jyothi Institute of Technology,

More information

Chapter 04: Instruction Sets and the Processor organizations. Lesson 20: RISC and converged Architecture

Chapter 04: Instruction Sets and the Processor organizations. Lesson 20: RISC and converged Architecture Chapter 04: Instruction Sets and the Processor organizations Lesson 20: RISC and converged Architecture 1 Objective Learn the RISC architecture Learn the Converged Architecture 2 Reduced Instruction Set

More information

Embedded Computation

Embedded Computation Embedded Computation What is an Embedded Processor? Any device that includes a programmable computer, but is not itself a general-purpose computer [W. Wolf, 2000]. Commonly found in cell phones, automobiles,

More information

History Introduction to Java Characteristics of Java Data types

History Introduction to Java Characteristics of Java Data types Course Name: Advanced Java Lecture 1 Topics to be covered History Introduction to Java Characteristics of Java Data types What is Java? An Object-Oriented Programming Language developed at Sun Microsystems

More information

EPOS: an Object-Oriented Operating System

EPOS: an Object-Oriented Operating System EPOS: an Object-Oriented Operating System Antônio Augusto Fröhlich 1 Wolfgang Schröder-Preikschat 2 1 GMD FIRST guto@first.gmd.de 2 University of Magdeburg wosch@ivs.cs.uni-magdeburg.de Abstract This position

More information

ECE 448 Lecture 15. Overview of Embedded SoC Systems

ECE 448 Lecture 15. Overview of Embedded SoC Systems ECE 448 Lecture 15 Overview of Embedded SoC Systems ECE 448 FPGA and ASIC Design with VHDL George Mason University Required Reading P. Chu, FPGA Prototyping by VHDL Examples Chapter 8, Overview of Embedded

More information

Memory Systems IRAM. Principle of IRAM

Memory Systems IRAM. Principle of IRAM Memory Systems 165 other devices of the module will be in the Standby state (which is the primary state of all RDRAM devices) or another state with low-power consumption. The RDRAM devices provide several

More information

Switching to AQA from Edexcel

Switching to AQA from Edexcel Switching to AQA from Edexcel This resource compares our new GCSE Computer Science specification (8520) with the new Edexcel Computer Science specification (1CP1). If you are thinking of switching from

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK DESIGN & IMPLEMENTATION OF LOCATION AWARENESS & SHARING SYSTEM USING GPS & GPRS

More information

Universität Dortmund. ARM Architecture

Universität Dortmund. ARM Architecture ARM Architecture The RISC Philosophy Original RISC design (e.g. MIPS) aims for high performance through o reduced number of instruction classes o large general-purpose register set o load-store architecture

More information

Mohammad Jafar Navabi Medtronic Microelectronics Center, Tempe, Arizona, USA

Mohammad Jafar Navabi Medtronic Microelectronics Center, Tempe, Arizona, USA MICROCONTROLLERS Mohammad Jafar Navabi Medtronic Microelectronics Center, Tempe, Arizona, USA Keywords: Microprocessor, peripheral devices, CPU, I/O, analog to digital converter, digital to analog converter,

More information

ECE 486/586. Computer Architecture. Lecture # 7

ECE 486/586. Computer Architecture. Lecture # 7 ECE 486/586 Computer Architecture Lecture # 7 Spring 2015 Portland State University Lecture Topics Instruction Set Principles Instruction Encoding Role of Compilers The MIPS Architecture Reference: Appendix

More information

Instruction Set Architecture

Instruction Set Architecture Instruction Set Architecture Instructor: Preetam Ghosh Preetam.ghosh@usm.edu CSC 626/726 Preetam Ghosh Language HLL : High Level Language Program written by Programming language like C, C++, Java. Sentence

More information

ARM Processors for Embedded Applications

ARM Processors for Embedded Applications ARM Processors for Embedded Applications Roadmap for ARM Processors ARM Architecture Basics ARM Families AMBA Architecture 1 Current ARM Core Families ARM7: Hard cores and Soft cores Cache with MPU or

More information

Video Compression An Introduction

Video Compression An Introduction Video Compression An Introduction The increasing demand to incorporate video data into telecommunications services, the corporate environment, the entertainment industry, and even at home has made digital

More information

Von Neumann architecture. The first computers used a single fixed program (like a numeric calculator).

Von Neumann architecture. The first computers used a single fixed program (like a numeric calculator). Microprocessors Von Neumann architecture The first computers used a single fixed program (like a numeric calculator). To change the program, one has to re-wire, re-structure, or re-design the computer.

More information

Simple and Powerful Animation Compression. Nicholas Fréchette Programming Consultant for Eidos Montreal

Simple and Powerful Animation Compression. Nicholas Fréchette Programming Consultant for Eidos Montreal Simple and Powerful Animation Compression Nicholas Fréchette Programming Consultant for Eidos Montreal Contributors Frédéric Zimmer, co-designer Luke Mamacos, consultant Thank you Eidos Montreal! Presentation

More information

Research on Embedded Java Virtual Machine and its Porting

Research on Embedded Java Virtual Machine and its Porting IJCSNS International Journal of Computer Science and Network Security, VOL.7 No.9, September 2007 157 Research on Embedded Java Virtual Machine and its Porting Jun QIN, Qiaomin LIN, Xiujin WANG College

More information

Year 10 OCR GCSE Computer Science (9-1)

Year 10 OCR GCSE Computer Science (9-1) 01 4 th September 02 11 th September 03 18 th September Half Term 1 04 25 th September 05 2 nd October 06 9 th October 07 16 th October NA Students on in school Thursday PM and Friday Only Unit 1, Lesson

More information

ASSEMBLY LANGUAGE MACHINE ORGANIZATION

ASSEMBLY LANGUAGE MACHINE ORGANIZATION ASSEMBLY LANGUAGE MACHINE ORGANIZATION CHAPTER 3 1 Sub-topics The topic will cover: Microprocessor architecture CPU processing methods Pipelining Superscalar RISC Multiprocessing Instruction Cycle Instruction

More information

Parallel Computer Architecture

Parallel Computer Architecture Parallel Computer Architecture What is Parallel Architecture? A parallel computer is a collection of processing elements that cooperate to solve large problems fast Some broad issues: Resource Allocation:»

More information

Java Embedded on ARM

Java Embedded on ARM Java Embedded on ARM The Embedded Market Evolving Rapidly Internet of Things 2.3B Internet Users Cloud for Embedded Devices Med-Large Embedded Multi-function Devices Enterprise Data and Applications Up

More information

One-Level Cache Memory Design for Scalable SMT Architectures

One-Level Cache Memory Design for Scalable SMT Architectures One-Level Cache Design for Scalable SMT Architectures Muhamed F. Mudawar and John R. Wani Computer Science Department The American University in Cairo mudawwar@aucegypt.edu rubena@aucegypt.edu Abstract

More information

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components

More information

More advanced CPUs. August 4, Howard Huang 1

More advanced CPUs. August 4, Howard Huang 1 More advanced CPUs In the last two weeks we presented the design of a basic processor. The datapath performs operations on register and memory data. A control unit translates program instructions into

More information

RISC Principles. Introduction

RISC Principles. Introduction 3 RISC Principles In the last chapter, we presented many details on the processor design space as well as the CISC and RISC architectures. It is time we consolidated our discussion to give details of RISC

More information

Chapter 13 Reduced Instruction Set Computers

Chapter 13 Reduced Instruction Set Computers Chapter 13 Reduced Instruction Set Computers Contents Instruction execution characteristics Use of a large register file Compiler-based register optimization Reduced instruction set architecture RISC pipelining

More information

Basic Compression Library

Basic Compression Library Basic Compression Library Manual API version 1.2 July 22, 2006 c 2003-2006 Marcus Geelnard Summary This document describes the algorithms used in the Basic Compression Library, and how to use the library

More information

Project Overview. CSE 403, Spring 2003 Software Engineering.

Project Overview. CSE 403, Spring 2003 Software Engineering. Project Overview CSE 403, Spring 2003 Software Engineering http://www.cs.washington.edu/education/courses/403/03sp/ 2-Apr-2003 Cse403-02-ProjectOverview 2003 University of Washington 1 References Readings

More information