Real-time Java Processor for Monitoring and Test
|
|
|
- Maria Walters
- 10 years ago
- Views:
Transcription
1 Real-time Java Processor for Monitoring and Test Martin Zabel, Thomas B. Preußer, Rainer G. Spallek Technische Universität Dresden Abstract This paper introduces a new processing platform, called SHAP, which implements the agent concept in hardware and is ready to use in high-security applications. The SHAP concept is described and its implementation by the SHAP microarchitecture is explained. Also a short overview about the SHAP API is given. 1 Introduction The concept of agents and multi-agent systems is widely known in computer science. It serves well for many different application fields, and thus has a high potential for upcoming developments. This paper introduces a new processing platform, called SHAP, which is based on the agent concept and thus is ready for application in many different fields of information technology. One of these fields, Monitoring and Test is considered here. The main part of the SHAP concept introduced here is a Java processor, which, on one the hand, implements the properties of an agent. On the other hand the concept provides a complete Java Virtual Machine (JVM) with the focus on autonomy, real-time and security. This paper is divided as follows. At first, the SHAP concept is introduced in Section 2. Its implementation is covered by Section 3, and a short overview about the API is given in Section 4. Last but not least, Section 5 lists the work to be done in the future. 2 The SHAP Concept The abbreviation SHAP reads Secure Hardware Agent Platform and claims the main targets. The platform is secure by design. Hence, it is ready to use in high-security tasks. It is an agent platform providing the associated properties [1], i.e., autonomy, responsiveness, pro-activeness, and social interaction, to the user. And finally, it is implemented in hardware without any interference through an operating system to achieve the best possible performance. The agent concept also fits well for the application field of monitoring and test. Autonomy is a necessary criterion to implement transparent monitoring of other devices. Autonomy is also required at thread level to enable independent monitoring of many devices by just one (complex) monitor in parallel. Reactiveness is the second criterion required for successful monitoring. It demands that the agent perceives its environment and responds in a timely fashion [1]. Applying to monitoring, the agent should never miss a state change of the monitored device and should react to any event in the shortest time pos-
2 sible. This behaviour is only possible if the agent platform needs real-time constraints. The SHAP concept covers all required parts to execute Java bytecode directly on hardware with the focus on real-time and autonomous constraints as required above. The main part is the SHAP microarchitecture constituting the SHAP Java Virtual Machine (JVM), which executes the Java bytecode. The term virtual seems to be unfitting here, but that is not true. SHAP also executes Java bytecode which cannot address special features of the underlying architecture directly. The distinction is that SHAP does not require any operating system in the middle. The second main part of the concept is the SHAP Linker which is described further down. The decision in favor of Java bytecode has been made because, in contrast to other well known instruction sets, Java bytecode and the associated Virtual Machine Specification [2] already includes important security features. The lack of pointer arithmetic prohibits memory accesses beyond the object or array in process. Hence, a buffer overflow, which is the cause of undesired stack and heap modifications used by computer viruses, cannot occur by design. Also the implicit type checking prohibits incompatible assignments. Before code in a Java class can be executed, the class has to be loaded, linked and initialized in this order. According to the VMSpec [2, 2.17] the meanings of these activities are: Loading: means locating the binary form of a class, typically stored in.class file. Linking: is itself divided into three subprocesses: At first, the class is verified wether if it is structural correct, e.g., valid opcodes, valid branch targets, every instruction obeys type discipline. After that, the class is prepared by creating and initializing static fields. An implementation may also create helper structures, like method tables, in this step. The last subprocess is resolution, where all symbolic references (in terms of strings) are resolved. Resolution may either Class Files Class Database SHAP Linker Loading Verification Preparation Resolution SHAP File Figure 1: The Linking of Class Files to a SHAP File be static and thus done at once now. Or it may be lazy/late and consequently done at usage time, e.g., invoking of method, access to fields. Initialization: just runs the static initializer of a class in an order also defined by the VM- Spec. To enable real-time execution, at least a static resolution has to be chosen. Otherwise the time of invoking a method would not be predictable. Also initialization has to be done directly after linking. From these facts and to avoid a complex bootstrap class loader, which must analyze the class file on the target, the steps of loading and linking are shifted to a host system which provides the class files. On this host system, a set of class files is linking into a SHAP file by the SHAP Linker as depicted in Fig. 1. The classes are verified, prepared and completely linked so that they can be directly executed by the SHAP JVM after downloading. To enable dynamic loading of additional class files, like additional applications, a class database has been added. This database stores important information about already known classes. New classes are linked against these classes and after that also stored in the class database. Note, linking is not bound to the host system.
3 After downloading the SHAP Linker s classes as well as the class database to the target SHAP system, loading and linking can be done by the SHAP system on its own as well. The SHAP file must be digitally signed to keep its integrity during further distribution. The SHAP JVM relies on that the SHAP file is correct. 3 The SHAP Microarchitecture I/O Bus SHAP CPU Bytecode Cache UART PS/2 LCD Memory Management Unit Address Data The SHAP microarchitecture has to fulfill a couple of requirements defined by the agent concept as well as the Java Virtual Machine (JVM): realtime execution of Java bytecode and autonomous control flows. As a target for any processor, a high troughput at a low latency of instructions is requested. Because Java bytecode is based on a stack machine and consequently mostly each bytecode instruction depends on its predecessor, a high throughput is achieved if low latency is given. The microarchitecture is divided into four parts as can be seen in Fig. 2. It consists of: The CPU: which directly executes Java bytecode, controls all other parts and has direct access to every other component through dedicated busses. The memory managment unit (MMU): which manages the main memory which is equivalent to the Java heap. The heap stores the Java objects as well as information about classes (class objects). The bytecode instruction cache: which caches the current Java bytecode to execute. Because the Java methods are stored inside the heap (inside the class objects), this component needs access to the MMU bus. The connection to the I/O bus is for transfering commands. The caching is implemented to lighten the MMU. The I/O subsystem: comprises several I/O devices, e.g., UART, LCD, PS/2 port, and Figure 2: The SHAP Microarchitecture so on, which are all connected to the I/O bus. A more detailed description is given in the following paragraphs. At first, we take a look at the CPU. The Java bytecodes to be executed have different complexities and thus execute in different number of cycles. For example, the iadd instruction just takes one cycle because it only has to add the two topmost stack elements. In contrast to that the invokevirtual instruction has first to access the constant pool of the class, resolve the method pointer, load the method header, cache and start the method. It is possible to implement a huge state machine which handles all instructions directly but this is difficult to maintain. Hence, inspired by JOP [3], we decided to execute the Java bytecodes through microcode which is stored inside on-chip memory. This preserves the advantage of short method code and adds the ability of easy programming through microcode instructions as well as firmware updates. The count of logic is nearly the same in both variants because the state machine may also be implemented by meory. The microcode uses 9-bit instructions because some of the real 52 instructions take a 6-bit immediate. This way, each instruction can be fetched in only one cycle which also results in a simple instruction decoder. 9-bit appears a little
4 iload 0 iload 5 imul i2s istore 1 BCF { BCF BCF BCF IF EX BCF ID BCF Figure 3: Execution of Java Bytecode (l.) through Microcode (r.) ldlv fbcidx ldlv imul ld 16 shl ld 16 shr stlv bit uncommon but is not a problem with the onchip memory of current FPGAs. The microcode instructions are executed in three stages: instruction fetch (IF), instruction decode (ID) and execute (EX). Together with an additional stage for bytecode fetch (BCF) we get a 4-stage pipeline, which is illustrated in Fig. 3. Note that the BCF stage is only executed when a new Java bytecode instruction or a bytecode immediate has to be fetched. All memory accesses to the internal stack are requested in the ID stage and fixed in the EX stage. Thus no additional pipeline stage, like MEM, is needed. Memory accesses to the heap are described below. Most of the microcode instructions are executed in one EX cycle but some need more than one resulting in pipeline stalls. Yet, the number of EX cycles and, thus, the execution time is known for all instructions and does not depend on the input data. Hence, for a given piece of microcode, like the program for a bytecode instruction, the execution time (in cycles) can be calculated in advance. Continuing, one can calculate the execution time for a piece of bytecode, a Java method and a Java thread. Thus calculation of response times in advance fulfills the real-time constraint. Care has to be taken only, if loops are encountered in bytecode as well as microcode, which may depend on input data. The CPU includes an integrated stack and thread management to fulfill the requirement of autonomous control flows. The stack also uses on-chip memory of the FPGA so that all memory accesses can be done within one cycle. Furthermore, the two topmost stack elements are stored inside registers so that they can be accessed directly by the processing units, see also [3]. The first property of our stack managment is stack frame con- and destruction. If a method is invoked a stack frame is created because of local Java variables which are addresses relative to the current stack frame. Also on return, stack frames are needed because the state of the stack in unknown when Java throws an exception. To allow n t multiple threads, a simple technique is to divide the whole stack memory into n t equal parts. The problem here is that the threads of a typical application have different requirements. Even if the main (huge) thread of an application fits in such a stack part, the (small) helper threads for communication would only utilize a small amount of their stack wasting a lot of memory. Our solution is to divide the whole stack memory into n b equal blocks where n b is significantly greater than the typical number of threads. Each thread is assigned a list of stack blocks which can dynamically grow and shrink and represents a continuous logical stack. The physical blocks themselves need not to be consecutive. This is pictured in Fig. 4. The free stack blocks, which are not assigned to any thread, are handled in a free-list. The system starts with one thread having a list with one block. New threads are constructed by creating a new list and adding one block from the free-list. Each time a thread s
5 Free List Thread y Thread x Block n b 1 Block 1 Block 0 Figure 4: Linking of Stack Blocks to form a dynamic continouos logic stack. stack has to grow, one block is taken from the free-list and is added to the thread s list. If the last block in a list is not needed anymore because of a shrunken stack, it is removed from the list and put back into the free-list. List manipulation is always done in parallel so it does not influence the execution time of the microcode instructions. Last but not least, the maxmimum number of threads constructable equals to the number of blocks but it is not typical that this corner case is really in use. Switching between threads is equal to make the target list the active one. But note that the set of threads is not maintained by the CPU themself. The threads, or rather their associated stack block lists, are identified by a handle which must be stored inside a Java object or similar. As a result, hardwired logic is minized because the (complex) scheduling is done by the SHAP JVM and only switching the stack lists is left to the CPU. There is also a timer integrated into the CPU which triggers an interrupt handler. The handler is implemented in microcode and only called between two Java bytecode instrucions. Thus a bytecode instructions is always executed completely and timing is not affected. The handler is mainly used for preemptive switching of threads by the SHAP JVM. The MMU is the second most important part. The objects created by JVM are managed through references. This means that the microcode (thus the Java code too) only acts on references which are mapped to real memory addresses inside the MMU. This enables concurrent garbage collection because that way the objects can be moved inside the main memory. The garbage collector is in progress but one condition can already be given: garbage collection runs in parallel inside the MMU and does not influence the execution of microcode nor does it change the execution times of the MMU commands. This is essential not to compromise the real-time confirmation. The MMU commands take a couple of cycles to execute. Thus they run in parallel to the CPU (microcode). For example, at first you activate the reference, then you set the offset inside the object and, finally, you announce the value. Between these three steps other work can be done, as calculating the offset/value directly before setting. The method cache was added because the BCF stage must always execute in one cycle and, therefore, must not produce a pipeline stall. This is conditional on the fact that the execution time of the microcode instructions must be known to fulfill the real-time requirement. The current solution is a single-method cache, which stores the complete code of the actual Java method. The method cache is filled explicitly during invoke or return Java bytecodes. Filling is done in parallel to the CPU but with the help of the MMU. So you can do any further processing as long as you have no request to the heap. In the current implementation of the SHAP JVM, any method which is less than 28 bytes long, does not stretch the indicated bytecodes. For all other cases the execution time can be calculated if the invoked method is known. (Which may not be true if you invoke a virtual method.) Because of
6 this limitation, we put the design of a new cache subsystem onto the agenda. The last part of the SHAP microprocessor is the I/O subsytsem. The I/O bus is divided into address and data lines where the latter is subdivided into read and write lines because tri-stating is not applicable on chip. The I/O device which is activate allowed to read/write from/to the I/O bus is selected through the I/O bus by the I/O address. The state of the I/O device is signaled by two flags: available, which indicates wether data can be read from the device, and ready, which indicates that data can be written to the device. The state of an device has to be checked prior to accessing it. This leads to a one-cycle execution of the I/O microcode instructions and enables scheduling (by the SHAP JVM) based on I/O device state. 4 The SHAP JVM This section just gives a brief overview of the Java features implemented in our SHAP JVM. The implementation of these features will be described in more detail in a future paper or technical report. The features which are implemented completely include: all access variants to variables and constants, like load/store variable, load number/string constant, integer arithmetic (currently, without division), dynamic object and array creation, invocation of static and virtual methods as well as interface methods of simple interface hierachies, exception handling, multi-threading with guaranteed time slots and preemptive round-robin based scheduling to enable autonomous control flows for several agents, synchronization through monitors, thread-aware I/O functions. With this features we can implement the classes specified by the Connected Limited Device Configuration (CLDC) [4] from SUN. This API includes the most important classes, so you can run a lot of Java applications which do not need a graphical user interface (GUI). But note, the SHAP JVM is not limited to this API. It can be extended by utility classes such as hash maps or a GUI. The feature currently in work is the support of arbitrary interface hierarchies. Not implemented features are long and floating-point arithmetic. Currently, no decision was made if we implement this in hardware or emulate this in software by Java code. 5 Future Work The main focus is currently on implementing the real-time garbage collector as well as completing the SHAP JVM. Parallel to this we will perform benchmarks to compare our project with other ones. The next step will cover dynamic class loading and a sophisticated method cache. The linking of many SHAP processors to form a multi-agent system will be another big step. References [1] N. R. Jennings, K. Sycara, and M. Wooldridge, A roadmap of agent research and development, Autonomous Agents and Multi-Agent Systems, vol. 1, no. 1, pp. 7 38, [2] T. Lindholm and F. Yellin, The Java(TM) Virtual Machine Specification, 2nd ed. Addison-Wesley Professional, Apr [3] M. Schoeberl, Jop: A java optimized processor for embedded real-time systems, Ph.D. dissertation, Vienna University of Technology, [4] Connected Limited Device Configuration Specification, Version 1.1, Sun Microsystems, Mar
Hardware/Software Co-Design of a Java Virtual Machine
Hardware/Software Co-Design of a Java Virtual Machine Kenneth B. Kent University of Victoria Dept. of Computer Science Victoria, British Columbia, Canada [email protected] Micaela Serra University of Victoria
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah
(DSF) Soft Core Prozessor NIOS II Stand Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de [email protected] NIOS II 1 1 What is Nios II? Altera s Second Generation
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
Java Programming. Binnur Kurt [email protected]. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0.
Java Programming Binnur Kurt [email protected] Istanbul Technical University Computer Engineering Department Java Programming 1 Version 0.0.4 About the Lecturer BSc İTÜ, Computer Engineering Department,
1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
The Hotspot Java Virtual Machine: Memory and Architecture
International Journal of Allied Practice, Research and Review Website: www.ijaprr.com (ISSN 2350-1294) The Hotspot Java Virtual Machine: Memory and Architecture Prof. Tejinder Singh Assistant Professor,
Chapter 1 Computer System Overview
Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides
Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine
Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine This is a limited version of a hardware implementation to execute the JAVA programming language. 1 of 23 Structured Computer
Java Virtual Machine Locks
Java Virtual Machine Locks SS 2008 Synchronized Gerald SCHARITZER (e0127228) 2008-05-27 Synchronized 1 / 13 Table of Contents 1 Scope...3 1.1 Constraints...3 1.2 In Scope...3 1.3 Out of Scope...3 2 Logical
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM 1 The ARM architecture processors popular in Mobile phone systems 2 ARM Features ARM has 32-bit architecture but supports 16 bit
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire il funzionamento della Java Virtual Machine (JVM): -
Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors
2005 ACM Symposium on Applied Computing Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors Mourad Debbabi Computer Security Research Group CIISE, Concordia
Chapter 2: OS Overview
Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:
Instruction Folding in a Hardware-Translation Based Java Virtual Machine
Instruction Folding in a Hardware-Translation Based Java Virtual Machine Hitoshi Oi Department of Computer Science The University of Aizu Aizu-Wakamatsu, JAPAN hitoshi at u-aizu.ac.jp ABSTRACT Bytecode
Chapter 7D The Java Virtual Machine
This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly
Hardware Assisted Virtualization
Hardware Assisted Virtualization G. Lettieri 21 Oct. 2015 1 Introduction In the hardware-assisted virtualization technique we try to execute the instructions of the target machine directly on the host
CHAPTER 4 MARIE: An Introduction to a Simple Computer
CHAPTER 4 MARIE: An Introduction to a Simple Computer 4.1 Introduction 195 4.2 CPU Basics and Organization 195 4.2.1 The Registers 196 4.2.2 The ALU 197 4.2.3 The Control Unit 197 4.3 The Bus 197 4.4 Clocks
Garbage Collection in the Java HotSpot Virtual Machine
http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot
POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)
RTOSes Part I Christopher Kenna September 24, 2010 POSIX Portable Operating System for UnIX Application portability at source-code level POSIX Family formally known as IEEE 1003 Originally 17 separate
The Java Virtual Machine (JVM) Pat Morin COMP 3002
The Java Virtual Machine (JVM) Pat Morin COMP 3002 Outline Topic 1 Topic 2 Subtopic 2.1 Subtopic 2.2 Topic 3 2 What is the JVM? The JVM is a specification of a computing machine Instruction set Primitive
Instruction Set Design
Instruction Set Design Instruction Set Architecture: to what purpose? ISA provides the level of abstraction between the software and the hardware One of the most important abstraction in CS It s narrow,
Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX
Overview CISC Developments Over Twenty Years Classic CISC design: Digital VAX VAXÕs RISC successor: PRISM/Alpha IntelÕs ubiquitous 80x86 architecture Ð 8086 through the Pentium Pro (P6) RJS 2/3/97 Philosophy
AMD Opteron Quad-Core
AMD Opteron Quad-Core a brief overview Daniele Magliozzi Politecnico di Milano Opteron Memory Architecture native quad-core design (four cores on a single die for more efficient data sharing) enhanced
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
Memory Systems. Static Random Access Memory (SRAM) Cell
Memory Systems This chapter begins the discussion of memory systems from the implementation of a single bit. The architecture of memory chips is then constructed using arrays of bit implementations coupled
Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
Technical Properties. Mobile Operating Systems. Overview Concepts of Mobile. Functions Processes. Lecture 11. Memory Management.
Overview Concepts of Mobile Operating Systems Lecture 11 Concepts of Mobile Operating Systems Mobile Business I (WS 2007/08) Prof Dr Kai Rannenberg Chair of Mobile Business and Multilateral Security Johann
UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180B Lab 7: MISP Processor Design Spring 1995
UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering EEC180B Lab 7: MISP Processor Design Spring 1995 Objective: In this lab, you will complete the design of the MISP processor,
COMPUTER HARDWARE. Input- Output and Communication Memory Systems
COMPUTER HARDWARE Input- Output and Communication Memory Systems Computer I/O I/O devices commonly found in Computer systems Keyboards Displays Printers Magnetic Drives Compact disk read only memory (CD-ROM)
IBM CELL CELL INTRODUCTION. Project made by: Origgi Alessandro matr. 682197 Teruzzi Roberto matr. 682552 IBM CELL. Politecnico di Milano Como Campus
Project made by: Origgi Alessandro matr. 682197 Teruzzi Roberto matr. 682552 CELL INTRODUCTION 2 1 CELL SYNERGY Cell is not a collection of different processors, but a synergistic whole Operation paradigms,
Java and Real Time Storage Applications
Java and Real Time Storage Applications Gary Mueller Janet Borzuchowski 1 Flavors of Java for Embedded Systems Software Java Virtual Machine(JVM) Compiled Java Hardware Java Virtual Machine Java Virtual
İSTANBUL AYDIN UNIVERSITY
İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
Port of the Java Virtual Machine Kaffe to DROPS by using L4Env
Port of the Java Virtual Machine Kaffe to DROPS by using L4Env Alexander Böttcher [email protected] Technische Universität Dresden Faculty of Computer Science Operating System Group July 2004
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
Architectures and Platforms
Hardware/Software Codesign Arch&Platf. - 1 Architectures and Platforms 1. Architecture Selection: The Basic Trade-Offs 2. General Purpose vs. Application-Specific Processors 3. Processor Specialisation
OC By Arsene Fansi T. POLIMI 2008 1
IBM POWER 6 MICROPROCESSOR OC By Arsene Fansi T. POLIMI 2008 1 WHAT S IBM POWER 6 MICROPOCESSOR The IBM POWER6 microprocessor powers the new IBM i-series* and p-series* systems. It s based on IBM POWER5
Operating Systems Overview
Operating Systems Overview No single definition, but many perspectives: Role in an overall system: Intermediary between computer hardware and everything else User view: Provides an environment, preferably
150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
Page 1 of 5. IS 335: Information Technology in Business Lecture Outline Operating Systems
Lecture Outline Operating Systems Objectives Describe the functions and layers of an operating system List the resources allocated by the operating system and describe the allocation process Explain how
EE361: Digital Computer Organization Course Syllabus
EE361: Digital Computer Organization Course Syllabus Dr. Mohammad H. Awedh Spring 2014 Course Objectives Simply, a computer is a set of components (Processor, Memory and Storage, Input/Output Devices)
Java Card. Smartcards. Demos. . p.1/30
. p.1/30 Java Card Smartcards Java Card Demos Smart Cards. p.2/30 . p.3/30 Smartcards Credit-card size piece of plastic with embedded chip, for storing & processing data Standard applications bank cards
Operating System Overview. Otto J. Anshus
Operating System Overview Otto J. Anshus A Typical Computer CPU... CPU Memory Chipset I/O bus ROM Keyboard Network A Typical Computer System CPU. CPU Memory Application(s) Operating System ROM OS Apps
theguard! ApplicationManager System Windows Data Collector
theguard! ApplicationManager System Windows Data Collector Status: 10/9/2008 Introduction... 3 The Performance Features of the ApplicationManager Data Collector for Microsoft Windows Server... 3 Overview
Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization
Lesson Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization AE3B33OSD Lesson 1 / Page 2 What is an Operating System? A
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
Learning Outcomes. Simple CPU Operation and Buses. Composition of a CPU. A simple CPU design
Learning Outcomes Simple CPU Operation and Buses Dr Eddie Edwards [email protected] At the end of this lecture you will Understand how a CPU might be put together Be able to name the basic components
Performance Comparison of RTOS
Performance Comparison of RTOS Shahmil Merchant, Kalpen Dedhia Dept Of Computer Science. Columbia University Abstract: Embedded systems are becoming an integral part of commercial products today. Mobile
Restraining Execution Environments
Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native
An Overview of Stack Architecture and the PSC 1000 Microprocessor
An Overview of Stack Architecture and the PSC 1000 Microprocessor Introduction A stack is an important data handling structure used in computing. Specifically, a stack is a dynamic set of elements in which
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
SOC architecture and design
SOC architecture and design system-on-chip (SOC) processors: become components in a system SOC covers many topics processor: pipelined, superscalar, VLIW, array, vector storage: cache, embedded and external
Java Garbage Collection Basics
Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how
MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1
MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable
ARM Microprocessor and ARM-Based Microcontrollers
ARM Microprocessor and ARM-Based Microcontrollers Nguatem William 24th May 2006 A Microcontroller-Based Embedded System Roadmap 1 Introduction ARM ARM Basics 2 ARM Extensions Thumb Jazelle NEON & DSP Enhancement
CHAPTER 7: The CPU and Memory
CHAPTER 7: The CPU and Memory The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint slides
Smart Cards a(s) Safety Critical Systems
Smart Cards a(s) Safety Critical Systems Gemplus Labs Pierre.Paradinas [email protected] Agenda Smart Card Technologies Java Card TM Smart Card a specific domain Card Life cycle Our Technical and Business
Byte code Interpreter for 8051 Microcontroller
Byte code Interpreter for 8051 Microcontroller N. Jeenjun S. Khuntaweetep and S. Somkuarnpanit Abstract This paper proposes a design of byte code interpreter for 8051 microcontroller. We developed a program
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers
A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...
BEAGLEBONE BLACK ARCHITECTURE MADELEINE DAIGNEAU MICHELLE ADVENA
BEAGLEBONE BLACK ARCHITECTURE MADELEINE DAIGNEAU MICHELLE ADVENA AGENDA INTRO TO BEAGLEBONE BLACK HARDWARE & SPECS CORTEX-A8 ARMV7 PROCESSOR PROS & CONS VS RASPBERRY PI WHEN TO USE BEAGLEBONE BLACK Single
Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor
Von der Hardware zur Software in FPGAs mit Embedded Prozessoren Alexander Hahn Senior Field Application Engineer Lattice Semiconductor AGENDA Overview Mico32 Embedded Processor Development Tool Chain HW/SW
An evaluation of the Java Card environment
An evaluation of the Java Card environment Christophe Rippert, Daniel Hagimont Contact: Christophe Rippert, Sirac Laboratory INRIA Rhône-Alpes, 655 avenue de l Europe Montbonnot 38334 St Ismier Cedex,
Binary search tree with SIMD bandwidth optimization using SSE
Binary search tree with SIMD bandwidth optimization using SSE Bowen Zhang, Xinwei Li 1.ABSTRACT In-memory tree structured index search is a fundamental database operation. Modern processors provide tremendous
An Implementation Of Multiprocessor Linux
An Implementation Of Multiprocessor Linux This document describes the implementation of a simple SMP Linux kernel extension and how to use this to develop SMP Linux kernels for architectures other than
Real Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
LSN 2 Computer Processors
LSN 2 Computer Processors Department of Engineering Technology LSN 2 Computer Processors Microprocessors Design Instruction set Processor organization Processor performance Bandwidth Clock speed LSN 2
Multicore Programming with LabVIEW Technical Resource Guide
Multicore Programming with LabVIEW Technical Resource Guide 2 INTRODUCTORY TOPICS UNDERSTANDING PARALLEL HARDWARE: MULTIPROCESSORS, HYPERTHREADING, DUAL- CORE, MULTICORE AND FPGAS... 5 DIFFERENCES BETWEEN
Validating Java for Safety-Critical Applications
Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore
FPGA-based Multithreading for In-Memory Hash Joins
FPGA-based Multithreading for In-Memory Hash Joins Robert J. Halstead, Ildar Absalyamov, Walid A. Najjar, Vassilis J. Tsotras University of California, Riverside Outline Background What are FPGAs Multithreaded
Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.
Agenda Enterprise Performance Factors Overall Enterprise Performance Factors Best Practice for generic Enterprise Best Practice for 3-tiers Enterprise Hardware Load Balancer Basic Unix Tuning Performance
Chapter 5, The Instruction Set Architecture Level
Chapter 5, The Instruction Set Architecture Level 5.1 Overview Of The ISA Level 5.2 Data Types 5.3 Instruction Formats 5.4 Addressing 5.5 Instruction Types 5.6 Flow Of Control 5.7 A Detailed Example: The
Record Storage and Primary File Organization
Record Storage and Primary File Organization 1 C H A P T E R 4 Contents Introduction Secondary Storage Devices Buffering of Blocks Placing File Records on Disk Operations on Files Files of Unordered Records
IA-64 Application Developer s Architecture Guide
IA-64 Application Developer s Architecture Guide The IA-64 architecture was designed to overcome the performance limitations of today s architectures and provide maximum headroom for the future. To achieve
Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings
Operatin g Systems: Internals and Design Principle s Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Bear in mind,
2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
Computer Systems Structure Input/Output
Computer Systems Structure Input/Output Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Examples of I/O Devices
Introduction to RISC Processor. ni logic Pvt. Ltd., Pune
Introduction to RISC Processor ni logic Pvt. Ltd., Pune AGENDA What is RISC & its History What is meant by RISC Architecture of MIPS-R4000 Processor Difference Between RISC and CISC Pros and Cons of RISC
Chapter 2 Logic Gates and Introduction to Computer Architecture
Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are
Architecture of the Kernel-based Virtual Machine (KVM)
Corporate Technology Architecture of the Kernel-based Virtual Machine (KVM) Jan Kiszka, Siemens AG, CT T DE IT 1 Corporate Competence Center Embedded Linux [email protected] Copyright Siemens AG 2010.
Thread level parallelism
Thread level parallelism ILP is used in straight line code or loops Cache miss (off-chip cache and main memory) is unlikely to be hidden using ILP. Thread level parallelism is used instead. Thread: process
