JAVA MICROARCHITECTURES

Size: px
Start display at page:

Download "JAVA MICROARCHITECTURES"

Transcription

1 JAVA MICROARCHITECTURES

2 THE KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE

3 JAVA MICROARCHITECTURES Edited by Vijaykrishnan Narayanan Pennsylvania State University Mario I. Wolczko Sun Microsystems, Inc. SPRINGER SCIENCE+BUSINESS MEDIA, LLC

4 ISBN ISBN (ebook) DOI / Library of Congress Cataloging-in-Publication Data A CLP. Catalogue record for this book is available from the Library of Congress. Copyright 2002 Springer Science+Business Media New York Originally published by Kluwer Academic Publishers in 2002 Softcover reprint of the hardcover 1st edition 2002 All rights reserved. No part of this work may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, microfilming, recording, or otherwise, without written permission from the Publisher, with the exception of any material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Printed on acid-free paper.

5 Contents List of Figures List of Tables Preface 1 Benchmarking the Java Virtual Architecture David Gregg, James Power and John Waldron VB Xl Xlll 1 2 A Study of Memory Behavior of Java Workloads 19 Yefim Shuf, Mauricio J. Serrano, Manish Gupta and Jaswinder Pal Singh 3 An Efficient Hardware Implementation of Java Bytecodes, Threads, and 41 Processes for Embedded and Real-Time ApplIcations David S. Hardin, Allen P. Mass, Michael H. Masters and Nick M. Mykris 4 Stack Dependency Resolution for Java Processors ba,>ed on Hardware 55 Folding and Translation: A Bytecode Processing Analysis M. Watheq El-Kharashi, Fayez Gebali and Kin F. Li 5 Improving Java Performance in Embedded and General-Purpose Processors 79 Ramesh Radhakrishnan, Lizy K. John, Ravi Bhargava and Deepu Talla 6 The Delft-Java Engine 105 John Glossner and Stamatis Vassiliadis 7 Quicksilver: A Quasi-static Java Compiler for Embedded Systems 123 Samuel P. Midkiff, Pramod G. Joisha, Mauricio Serrano, Manish Gupta, Anthony Bolmarcich and Peng Wu

6 vi JAVA MICROARCHITECTURES 8 Concurrent Garbage Collection Using Hardware-Assisted Profiling 143 Timothy Heil and James E. Smith 9 Space-Time Dimensional Computing for Java Programs on the MAJC 161 Architecture Shailender Chaudhry and Marc Tremblay 10 Java Machine and Integrated Circuit Architecture (JAMAICA) Ahmed El-Mahdy, Ian Watson and Greg Wright 11 Dynamic Java Threads on the JAMAICA Single-Chip Multiprocessor Greg Wright, Ahmed El-Mahdy and Ian Watson References Index

7 List of Figures 1.1 Average dynamic bytecode percentages for the top 10 methods in terms of bytecodes executed A summary of dynamic percentages of category usage by the applications in the SPEC JVM98 suite Characterization of heap accesses and accesses to object fields Characterization of hot spots Simulation results Classification of data related misses Assessment of opportunities for prefetching JEMCore Java Processor Core Architecture Java Grande Forum Synchronization Benchmark Results Multiple Java Virtual Machine Data Structures The JEMBuilder Application Builder Timer interrupt handler code in Java Timer interrupt notification thread aj-100 Block Diagram aj -100 Package (larger than actual size) Proposed Java processor architecture Dual-architecture Java processor pipeline compared with a pure mc processor pipeline and a RISC pipeline Percentages of eliminated instructions relative to all instructions and relative to stack instructions (producers and non-anchor consumers) only Speedup of folding Percentages of occurrence of different folding cases recognized by the folding information generation (FIG) unit Percentages of occurrence of different folding operations performed by the bytecode queue manager (BQM) Percentages of occurrence of different folding patterns at the output of the folding translator unit (FT) 72

8 Vlll JAVA MICRO ARCHITECTURES 4.8 Percentages of occurrence of different operations performed by the local variable file (LVF) Percentages of occurrence of different folding patterns processed by the load/store unit (LS) Percentages of usage of different execution units (EXs) Block diagram of the picojava-ii microprocessor core Basic pipeline of the picojava-ii core Increasing decode bandwidth using a fill unit and DB-Cache Trends in decode rate and hit rate for different DB-Cache sizes Performance improvement when adding a fill unit, DB- Cache (64-16K entries) and instruction execute width of two to a picojava-ii processor Relative performance of picojava-ii using the fill unit, DB-Cache (64-16K entries), execution width of two and stack disambiguation Available ILP in Java workloads The Hardware Interpreter (Hard-Int) architecture Translating bytecodes in the Hard-Int architecture Execution cycles for different execution modes on a 4- way machine Execution cycles for different execution modes on a 16- way machine Cycles executed per bytecode on a 4-way machine DELFT-JAVA concurrent multi-threaded processor organization showing multiple thread units, local and global processor units, thread register files, cache memory, control unit, and Link Translation Buffer (LTB) Indirect register access mechanism showing indirect memory locations (idx), update adders, underflow/overflow signal, and resolved register address multiplexor Indirect register mapping showing how a resolved register address is mapped to main memory Performance results of a vector-multiply routine for various processor models showing speedup normalized to an implementable pipe lined stack model The indirection scheme for quasi-static compilation Pseudo-code showing explicit checks for reference resolution Timing measurements for an input size of Timing measurements for an input size of Comparing indirection table update strategies 140

9 List of Figures ix 8.1 Example concurrent reference mutation Concurrent GC RPA query The relational profiling architecture contains the profile control table (PCT) and the query engine Generational write-barrier pseudo-code Time line for the second GC in the Strata benchmark System-on-a-chip design An illustration of the Java Stack for a Java Thread Java Object Structure Block diagram for a MAJC implementation Efficiency of the Speculative Thread for various Overheads and Savings Dynamic bytecode execution frequencies for various bytecode classes Normalized dynamic instruction execution counts for various execution models Cumulative distribution of local variable access for selected SPEC JVM98 programs Method call depth distribution for selected SPEC JVM98 programs Register-windows miss ratios versus the number of registerwindows, for selected SPEC JVM98 programs Per-procedure visible registers and argument-passing operation Normalized static instruction counts, broken down into various bytecode-mapping overheads, for selected SPEC JVM98 kernels Active temporary variables distribution for selected SPEC JVM98 kernels Distribution of active temporary variables that need saving across method calls, for selected SPEC JVM98 kernels The effect of the proposed optimizations on static instruction counts, for selected SPEC JVM98 kernels Token/thread life-cycle Serial & parallel executions Speedup of nfib in the current configuration Speedup of nfib in the future configuration Speedup of nfib, current configuration, token passing vs. oracle Speedup of jnfib, using light RTS Speedup of jnfib, using medium RTS 220

10 x JAVA MICROARCHlTECTURES 11.8 Speedup ofjnjib, current configuration, light RTS, P=32, T= The Empty program Speedup vs. outer loop iterations for the Empty program Load balance of Empty program, LN = 219, current configuration mpeg2encode results jmpeg2decode results 227

11 List of Tables 1.1 Measurements of total number of method calls by SPEC JVM98 applications Measurements of Java method calls made and bytecodes executed by SPEC JVM98 applications Calls to non-native methods in the class library Bytecode instructions executed in the class library Dynamic method execution frequencies for the SPEC JVM98 programs, excluding native methods By tee ode based dynamic percentages of local variable array sizes, as well as temporary and parameter sizes for SPEC JVM98 programs Dynamic percentages of category usage by the applications in the Java SPEC JVM98 suite Total SPEC dynamic bytecode usage increases SPEC bytecode usage for compress using the different compilers SPEC bytecode usage for db using the different compilers SPEC bytecode usage for jess using the different compilers SPEC bytecode usage for mtrt using the different compilers JVM instruction categories Folding templates recognized by the FIG unit Summary of BQM folding operations Mapping different anchor instructions to the folding operations performed by the bytecode queue manager (BQM) Mapping folding templates to FT output Mapping anchors to LVF operations SPEC JVM98 Java benchmark suite summary A trace for a Java code execution Associating instruction categories with JVM basic requirements and our processor modules 75

12 xu JAVA MICROARCHITECTURES 4.10 Comparison between the three approaches in supporting Java in hardware: direct stack execution, hardware interpretation, and hardware translation Description of the SPEC JVM98 benchmarks used in this study Percentage of instructions executed in parallel when using a DB-Cache of 128 entries Percentage of instructions executed in parallel when using stack disambiguation with a 128 entry DB-Cache Execution statistics for the SPEC JVM98 benchmarks Configurations of simulated processor Cache performance for the SPEC JVM98 benchmarks Translated code buffer performance for the SPEC JVM98 benchmarks Java Virtual Machine instructions with special support in the DELFT-JAvA processor Processor organization characteristics for various processor models Processor performance and speedup for various processor models normalized to an implementable pipelined stack model Method code and indirection table sizes for SPEC JVM98 with input size=lo Method code and indirection table sizes for SPEC JVM98 with input size= Benchmark characteristics GC Performance Characteristics Write-barrier work eliminated by the RPA Speedup obtained due to STC Efficiency for Speculative Thread Brief descriptions of the selected benchmark programs from the SPEC JVM98 suite Relative method call depths for selected SPEC JVM98 programs Comparing static normalized Ideal components for the kernels, with the corresponding Ideal components obtained dynamically for the full programs 200

13 Preface Java is an exciting new object-oriented technology. Hardware for supporting objects and other features of Java such as multithreading, dynamic linking and loading is the focus of this book. The impact of Java's features on microarchitectural resources and issues in the design of Java-specific architectures are interesting topics that require the immediate attention of the research community. While Java has become an important part of desktop applications, it is now being used widely in high-end server markets, and making forays into low end embedded computing. A study of the behavior of Java applications is essential in guiding the design of new architectural support features. The first chapter provides a characterization of a set of Java applications at a platform-independent level. Specifically, various characteristics of bytecode execution are considered. The second chapter specifically delves into the memory characteristics of Java programs. The growing performance disparity between the processor core and the memory system makes memory behavior an important factor influencing performance. Further, a detailed understanding of various Java-specific features such as heap allocation, object manipulation and garbage collection, which are memoryintensive would help in identifying appropriate architectural support. Java is becoming increasingly popular in embedded/portable environments. It is estimated that Java-enabled devices such as cell-phones, PDAs and pagers will grow from 176 million in 2001 to 721 million in 2005 [TakOl]. One of the reasons for this is that Java enables service providers to create new features very easily as it is based on the abstract Java Virtual Machine (JVM). Thus, it is currently portable to 80-95% of platforms and lets developers design and implement portable applications without the special tools and libraries that coding in C or C++ normally requires [PauOl]. In addition, Java allows application writers to embed animation, sound, and other features within their applications easily, an important plus in web-based portable computing. Chapters 3 to 6 focus on providing architectural support for Java execution in embedded environments. These chapters discuss various commercial and academic approaches to designing hardware for direct bytecode execution. Various hardware features to support stack folding, code translation, dynamic linking and

14 xiv JAVA MICROARCHITECTURES object management are addressed. In addition to the bytecode engines covered in this volume, various Java accelerators have also been announced over the past year. A good overview of these architectures can be found in the four part series by Levy [LevOla, LevOlb, LevOlc, LevOld] and we do not attempt to duplicate this commendable effort. Chapters 7 and 8 focus on compilation and architectural support targeted at the memory system. Chapter 7 presents the use of a novel compilation technique that helps Java applications meet the small memory footprint constraints of embedded devices. As embedded JVMs are designed to run for long periods of time on limited-memory embedded systems, creating and managing Java objects is of critical importance. The garbage collector (GC) is an important part of the Java virtual machine responsible for the automatic reclamation of unused memory. Chapter 8 focuses on providing support for garbage collection. The final three papers of this volume focus on high-performance single-chip multiprocessor architectures to support Java execution. Such high-performance processors would be ideal for Java servers and workstations. A common characteristic of these architectures is their support for executing multiple threads. Chapter 8 discusses the concept of space-time computing and describes the MAJC architecture which supports this. Chapters 9 and 10 explain the JA MAICA architecture, which supports the execution of dynamic Java threads. Many of the papers presented in this book are revised versions of papers presented at the Workshop on Hardware Support for Objects and Microarchitectures for Java, held in conjunction with ICCD in 1999 and We would like to thank all the authors for their contribution. We also wish to express our sincere gratitude to all those who reviewed manuscripts for the book. Narayanan would like to acknowledge grants from National Science Foundation (CAREER and ) that supported him during this endeavor The URLS cited in the bibliography were correct at the time of writing. VIJAYKRISHNAN NARAYANAN, PENNSYLVANIA STATE UNIVERSITY MARIO WOLCZKO, SUN MICROSYSTEMS, INC. JANUARY 2002

Delft-Java Link Translation Buffer

Delft-Java Link Translation Buffer Delft-Java Link Translation Buffer John Glossner 1,2 and Stamatis Vassiliadis 2 1 Lucent / Bell Labs Advanced DSP Architecture and Compiler Research Allentown, Pa glossner@lucent.com 2 Delft University

More information

PERFORMANCE ANALYSIS OF REAL-TIME EMBEDDED SOFTWARE

PERFORMANCE ANALYSIS OF REAL-TIME EMBEDDED SOFTWARE PERFORMANCE ANALYSIS OF REAL-TIME EMBEDDED SOFTWARE PERFORMANCE ANALYSIS OF REAL-TIME EMBEDDED SOFTWARE Yau-Tsun Steven Li Monterey Design Systems, Inc. Sharad Malik Princeton University ~. " SPRINGER

More information

Global Scheduler. Global Issue. Global Retire

Global Scheduler. Global Issue. Global Retire The Delft-Java Engine: An Introduction C. John Glossner 1;2 and Stamatis Vassiliadis 2 1 Lucent / Bell Labs, Allentown, Pa. 2 Delft University oftechnology, Department of Electrical Engineering Delft,

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

Delft-Java Dynamic Translation

Delft-Java Dynamic Translation Delft-Java Dynamic Translation John Glossner 1,2 and Stamatis Vassiliadis 2 1 IBM Research DSP and Embedded Computing Yorktown Heights, NY glossner@us.ibm.com (formerly with Lucent Technologies) 2 Delft

More information

Dynamic Profiling & Comparison of Sun Microsystems JDK1.3.1 versus the Kaffe VM APIs

Dynamic Profiling & Comparison of Sun Microsystems JDK1.3.1 versus the Kaffe VM APIs Dynamic Profiling & Comparison of Sun Microsystems JDK1.3.1 versus the VM APIs Author: Anthony Sartini Computer Engineering, Trinity College, Dublin 2, Ireland Supervisor: John Waldron Department of Computer

More information

New Challenges in Microarchitecture and Compiler Design

New Challenges in Microarchitecture and Compiler Design New Challenges in Microarchitecture and Compiler Design Contributors: Jesse Fang Tin-Fook Ngai Fred Pollack Intel Fellow Director of Microprocessor Research Labs Intel Corporation fred.pollack@intel.com

More information

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

Second Annual Workshop on Hardware Support for Objects and Microarchitectures for Java

Second Annual Workshop on Hardware Support for Objects and Microarchitectures for Java Second Annual Workshop on Hardware Support for Objects and Microarchitectures for Java In conjunction with ICCD '00 Austin, Texas September 17, 2000 MESSAGE FROM WORKSHOP CO-CHAIRS Most modern programming

More information

ARCHITECTURE AND CAD FOR DEEP-SUBMICRON FPGAs

ARCHITECTURE AND CAD FOR DEEP-SUBMICRON FPGAs ARCHITECTURE AND CAD FOR DEEP-SUBMICRON FPGAs THE KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE ARCHITECTURE AND CAD FOR DEEP-SUBMICRON FPGAs Vaughn Betz Jonathan Rose Alexander Marquardt

More information

2 TEST: A Tracer for Extracting Speculative Threads

2 TEST: A Tracer for Extracting Speculative Threads EE392C: Advanced Topics in Computer Architecture Lecture #11 Polymorphic Processors Stanford University Handout Date??? On-line Profiling Techniques Lecture #11: Tuesday, 6 May 2003 Lecturer: Shivnath

More information

A Preliminary Workload Analysis of SPECjvm2008

A Preliminary Workload Analysis of SPECjvm2008 A Preliminary Workload Analysis of SPECjvm2008 Hitoshi Oi The University of Aizu, Aizu Wakamatsu, JAPAN oi@oslab.biz Abstract SPECjvm2008 is a new benchmark program suite for measuring client-side Java

More information

Chapter 03. Authors: John Hennessy & David Patterson. Copyright 2011, Elsevier Inc. All rights Reserved. 1

Chapter 03. Authors: John Hennessy & David Patterson. Copyright 2011, Elsevier Inc. All rights Reserved. 1 Chapter 03 Authors: John Hennessy & David Patterson Copyright 2011, Elsevier Inc. All rights Reserved. 1 Figure 3.3 Comparison of 2-bit predictors. A noncorrelating predictor for 4096 bits is first, followed

More information

Application Programming

Application Programming Multicore Application Programming For Windows, Linux, and Oracle Solaris Darryl Gove AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris

More information

WIRELESS ATM AND AD-HOC NETWORKS. Protocols and Architectures

WIRELESS ATM AND AD-HOC NETWORKS. Protocols and Architectures WIRELESS ATM AND AD-HOC NETWORKS Protocols and Architectures WIRELESS ATM AND AD-HOC NETWORKS Protocols and Architectures C-K Toh, Ph.D. University of Cambridge Cambridge, United Kingdom SPRINGER-SCIENCE+BUSINESS

More information

Processors. Young W. Lim. May 12, 2016

Processors. Young W. Lim. May 12, 2016 Processors Young W. Lim May 12, 2016 Copyright (c) 2016 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version

More information

EXAM 1 SOLUTIONS. Midterm Exam. ECE 741 Advanced Computer Architecture, Spring Instructor: Onur Mutlu

EXAM 1 SOLUTIONS. Midterm Exam. ECE 741 Advanced Computer Architecture, Spring Instructor: Onur Mutlu Midterm Exam ECE 741 Advanced Computer Architecture, Spring 2009 Instructor: Onur Mutlu TAs: Michael Papamichael, Theodoros Strigkos, Evangelos Vlachos February 25, 2009 EXAM 1 SOLUTIONS Problem Points

More information

THE VERILOG? HARDWARE DESCRIPTION LANGUAGE

THE VERILOG? HARDWARE DESCRIPTION LANGUAGE THE VERILOG? HARDWARE DESCRIPTION LANGUAGE THE VERILOGf HARDWARE DESCRIPTION LANGUAGE by Donald E. Thomas Carnegie Mellon University and Philip R. Moorby Cadence Design Systems, Inc. SPRINGER SCIENCE+BUSINESS

More information

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1

Agenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1 Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies

More information

Delft-Java Dynamic Translation

Delft-Java Dynamic Translation Delft-Java Dynamic Translation John Glossner 1 2 1 IBM Research Yorktown Heights, NY glossner@cardit.et.tudelft.nl Stamatis Vassiliadis 2 2 Delft University of Technology Electrical Engineering Department

More information

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1

CSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1 CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines

More information

Using Complete System Simulation to Characterize SPECjvm98 Benchmarks

Using Complete System Simulation to Characterize SPECjvm98 Benchmarks Using Complete System Simulation to Characterize SPECjvm98 Benchmarks Tao Li, Lizy Kurian John, Vijaykrishnan Narayanan, Anand Sivasubramaniam, Jyotsna Sabarinathan, and Anupama Murthy Laboratory for Computer

More information

Main Points of the Computer Organization and System Software Module

Main Points of the Computer Organization and System Software Module Main Points of the Computer Organization and System Software Module You can find below the topics we have covered during the COSS module. Reading the relevant parts of the textbooks is essential for a

More information

Towards Parallel, Scalable VM Services

Towards Parallel, Scalable VM Services Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors

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

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance

More information

The Role of Return Value Prediction in Exploiting Speculative Method-Level Parallelism. Abstract

The Role of Return Value Prediction in Exploiting Speculative Method-Level Parallelism. Abstract The Role of Return Value Prediction in Exploiting Speculative Method-Level Parallelism Shiwen Hu, Ravi Bhargava and Lizy Kurian John Laboratory for Computer Architecture Department of Electrical and Computer

More information

MULTIMEDIA DATABASE MANAGEMENT SYSTEMS

MULTIMEDIA DATABASE MANAGEMENT SYSTEMS MULTIMEDIA DATABASE MANAGEMENT SYSTEMS THE KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE MULTIMEDIA SYSTEMS AND APPLICATIONS Recently Published Titles: Consulting Editor Borko Furht Florida

More information

Multi-Core Programming

Multi-Core Programming Multi-Core Programming Increasing Performance through Software Multi-threading Shameem Akhter Jason Roberts Intel PRESS Copyright 2006 Intel Corporation. All rights reserved. ISBN 0-9764832-4-6 No part

More information

A RISC Hardware Platform for Low Power Java

A RISC Hardware Platform for Low Power Java A RISC Hardware Platform for Low Power Java Paul Capewell and Ian Watson School of Computer Science, The University of Manchester Oxford Road, Manchester, M13 9PL, UK {paul.capewell, iwatson}@cs.man.ac.uk

More information

Portland State University ECE 588/688. Cray-1 and Cray T3E

Portland State University ECE 588/688. Cray-1 and Cray T3E Portland State University ECE 588/688 Cray-1 and Cray T3E Copyright by Alaa Alameldeen 2014 Cray-1 A successful Vector processor from the 1970s Vector instructions are examples of SIMD Contains vector

More information

Chapter 3 Instruction-Level Parallelism and its Exploitation (Part 5)

Chapter 3 Instruction-Level Parallelism and its Exploitation (Part 5) Chapter 3 Instruction-Level Parallelism and its Exploitation (Part 5) ILP vs. Parallel Computers Dynamic Scheduling (Section 3.4, 3.5) Dynamic Branch Prediction (Section 3.3, 3.9, and Appendix C) Hardware

More information

Exploiting the Behavior of Generational Garbage Collector

Exploiting the Behavior of Generational Garbage Collector Exploiting the Behavior of Generational Garbage Collector I. Introduction Zhe Xu, Jia Zhao Garbage collection is a form of automatic memory management. The garbage collector, attempts to reclaim garbage,

More information

BLP: Applying ILP Techniques to Bytecode Execution

BLP: Applying ILP Techniques to Bytecode Execution BLP: Applying ILP Techniques to Bytecode Execution Kevin Scott and Kevin Skadron Dept. of Computer Science University of Virginia Charlottesville, VA 22904 fjks6b,skadrong@cs.virginia.edu Abstract The

More information

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley Managed runtimes & garbage collection CSE 6341 Some slides by Kathryn McKinley 1 Managed runtimes Advantages? Disadvantages? 2 Managed runtimes Advantages? Reliability Security Portability Performance?

More information

Contents. Preface xvii Acknowledgments. CHAPTER 1 Introduction to Parallel Computing 1. CHAPTER 2 Parallel Programming Platforms 11

Contents. Preface xvii Acknowledgments. CHAPTER 1 Introduction to Parallel Computing 1. CHAPTER 2 Parallel Programming Platforms 11 Preface xvii Acknowledgments xix CHAPTER 1 Introduction to Parallel Computing 1 1.1 Motivating Parallelism 2 1.1.1 The Computational Power Argument from Transistors to FLOPS 2 1.1.2 The Memory/Disk Speed

More information

Simultaneous Multithreading on Pentium 4

Simultaneous Multithreading on Pentium 4 Hyper-Threading: Simultaneous Multithreading on Pentium 4 Presented by: Thomas Repantis trep@cs.ucr.edu CS203B-Advanced Computer Architecture, Spring 2004 p.1/32 Overview Multiple threads executing on

More information

Managed runtimes & garbage collection

Managed runtimes & garbage collection Managed runtimes Advantages? Managed runtimes & garbage collection CSE 631 Some slides by Kathryn McKinley Disadvantages? 1 2 Managed runtimes Portability (& performance) Advantages? Reliability Security

More information

Energy Efficient Microprocessor Design

Energy Efficient Microprocessor Design Energy Efficient Microprocessor Design Energy Efficient Microprocessor Design by Thomas D. Burd Robert W. Brodersen with Contributions Irom Trevor Pering Anthony Stratakos Berkeley Wireless Research Center

More information

Using Industry Standards to Exploit the Advantages and Resolve the Challenges of Multicore Technology

Using Industry Standards to Exploit the Advantages and Resolve the Challenges of Multicore Technology Using Industry Standards to Exploit the Advantages and Resolve the Challenges of Multicore Technology September 19, 2007 Markus Levy, EEMBC and Multicore Association Enabling the Multicore Ecosystem Multicore

More information

MULTIPROCESSORS AND THREAD-LEVEL. B649 Parallel Architectures and Programming

MULTIPROCESSORS AND THREAD-LEVEL. B649 Parallel Architectures and Programming MULTIPROCESSORS AND THREAD-LEVEL PARALLELISM B649 Parallel Architectures and Programming Motivation behind Multiprocessors Limitations of ILP (as already discussed) Growing interest in servers and server-performance

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

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

Topological Structure and Analysis of Interconnection Networks

Topological Structure and Analysis of Interconnection Networks Topological Structure and Analysis of Interconnection Networks Network Theory and Applications Volume 7 Managing Editors: Ding-Zhu Du, University of Minnesota, U.S.A. and Cauligi Raghavendra, University

More information

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1

SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1 SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable

More information

The Role of Return Value Prediction in Exploiting Speculative Method-Level Parallelism

The Role of Return Value Prediction in Exploiting Speculative Method-Level Parallelism The Role of Return Value Prediction in Exploiting Speculative Method-Level Parallelism Shiwen Hu, Ravi Bhargava and Lizy Kurian John Laboratory for Computer Architecture Department of Electrical and Computer

More information

MULTIPROCESSORS AND THREAD-LEVEL PARALLELISM. B649 Parallel Architectures and Programming

MULTIPROCESSORS AND THREAD-LEVEL PARALLELISM. B649 Parallel Architectures and Programming MULTIPROCESSORS AND THREAD-LEVEL PARALLELISM B649 Parallel Architectures and Programming Motivation behind Multiprocessors Limitations of ILP (as already discussed) Growing interest in servers and server-performance

More information

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues Chapter 4: Threads Silberschatz, Galvin and Gagne 2013 Chapter 4: Threads Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues 4.2 Silberschatz, Galvin

More information

Evaluating MMX Technology Using DSP and Multimedia Applications

Evaluating MMX Technology Using DSP and Multimedia Applications Evaluating MMX Technology Using DSP and Multimedia Applications Ravi Bhargava * Lizy K. John * Brian L. Evans Ramesh Radhakrishnan * November 22, 1999 The University of Texas at Austin Department of Electrical

More information

Microarchitecture Overview. Performance

Microarchitecture Overview. Performance Microarchitecture Overview Prof. Scott Rixner Duncan Hall 3028 rixner@rice.edu January 15, 2007 Performance 4 Make operations faster Process improvements Circuit improvements Use more transistors to make

More information

A Comparative Study of JVM Implementations with SPECjvm2008

A Comparative Study of JVM Implementations with SPECjvm2008 A Comparative Study of JVM Implementations with SPECjvm008 Hitoshi Oi Department of Computer Science, The University of Aizu Aizu-Wakamatsu, JAPAN Email: oi@oslab.biz Abstract SPECjvm008 is a new benchmark

More information

JamaicaVM Java for Embedded Realtime Systems

JamaicaVM Java for Embedded Realtime Systems JamaicaVM Java for Embedded Realtime Systems... bringing modern software development methods to safety critical applications Fridtjof Siebert, 25. Oktober 2001 1 Deeply embedded applications Examples:

More information

MultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines. MultiJav: Introduction

MultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines. MultiJav: Introduction : A Distributed Shared Memory System Based on Multiple Java Virtual Machines X. Chen and V.H. Allan Computer Science Department, Utah State University 1998 : Introduction Built on concurrency supported

More information

Exploiting Dataflow to Extract Java Instruction Level Parallelism on a Tag-based Multi-Issue Semi In-Order (TMSI) Processor

Exploiting Dataflow to Extract Java Instruction Level Parallelism on a Tag-based Multi-Issue Semi In-Order (TMSI) Processor Exploiting Dataflow to Extract Java Instruction Level Parallelism on a Tag-based Multi-Issue Semi In-Order (TMSI) Processor Hai-Chen Wang, Chung-Kwong Yuen Dept. of Computer Science School of Computing

More information

picojava I Java Processor Core DATA SHEET DESCRIPTION

picojava I Java Processor Core DATA SHEET DESCRIPTION picojava I DATA SHEET DESCRIPTION picojava I is a uniquely designed processor core which natively executes Java bytecodes as defined by the Java Virtual Machine (JVM). Most processors require the JVM to

More information

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center April

More information

Single-Path Programming on a Chip-Multiprocessor System

Single-Path Programming on a Chip-Multiprocessor System Single-Path Programming on a Chip-Multiprocessor System Martin Schoeberl, Peter Puschner, and Raimund Kirner Vienna University of Technology, Austria mschoebe@mail.tuwien.ac.at, {peter,raimund}@vmars.tuwien.ac.at

More information

Portland State University ECE 588/688. IBM Power4 System Microarchitecture

Portland State University ECE 588/688. IBM Power4 System Microarchitecture Portland State University ECE 588/688 IBM Power4 System Microarchitecture Copyright by Alaa Alameldeen 2018 IBM Power4 Design Principles SMP optimization Designed for high-throughput multi-tasking environments

More information

Java Performance: The Definitive Guide

Java Performance: The Definitive Guide Java Performance: The Definitive Guide Scott Oaks Beijing Cambridge Farnham Kbln Sebastopol Tokyo O'REILLY Table of Contents Preface ix 1. Introduction 1 A Brief Outline 2 Platforms and Conventions 2 JVM

More information

A Study of Cache Performance in Java Virtual Machines

A Study of Cache Performance in Java Virtual Machines A Study of Cache Performance in Java Virtual Machines by Anand Sunder Rajan, B.E., M.Sc Report Presented to the Faculty of the Graduate School of The University of Texas at Austin in Partial Fulfillment

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

High-Level Language VMs

High-Level Language VMs High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs

More information

Honorary Professor Supercomputer Education and Research Centre Indian Institute of Science, Bangalore

Honorary Professor Supercomputer Education and Research Centre Indian Institute of Science, Bangalore COMPUTER ORGANIZATION AND ARCHITECTURE V. Rajaraman Honorary Professor Supercomputer Education and Research Centre Indian Institute of Science, Bangalore T. Radhakrishnan Professor of Computer Science

More information

Hardware Emulation and Virtual Machines

Hardware Emulation and Virtual Machines Hardware Emulation and Virtual Machines Overview Review of How Programs Run: Registers Execution Cycle Processor Emulation Types: Pure Translation Static Recompilation Dynamic Recompilation Direct Bytecode

More information

A Test Suite for High-Performance Parallel Java

A Test Suite for High-Performance Parallel Java page 1 A Test Suite for High-Performance Parallel Java Jochem Häuser, Thorsten Ludewig, Roy D. Williams, Ralf Winkelmann, Torsten Gollnick, Sharon Brunett, Jean Muylaert presented at 5th National Symposium

More information

Reducing the Overhead of Dynamic Compilation

Reducing the Overhead of Dynamic Compilation Reducing the Overhead of Dynamic Compilation Chandra Krintz y David Grove z Derek Lieber z Vivek Sarkar z Brad Calder y y Department of Computer Science and Engineering, University of California, San Diego

More information

New Java performance developments: compilation and garbage collection

New Java performance developments: compilation and garbage collection New Java performance developments: compilation and garbage collection Jeroen Borgers @jborgers #jfall17 Part 1: New in Java compilation Part 2: New in Java garbage collection 2 Part 1 New in Java compilation

More information

Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector

Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector David F. Bacon IBM T.J. Watson Research Center Joint work with C.R. Attanasio, Han Lee, V.T. Rajan, and Steve Smith ACM Conference

More information

CSE 820 Graduate Computer Architecture. week 6 Instruction Level Parallelism. Review from Last Time #1

CSE 820 Graduate Computer Architecture. week 6 Instruction Level Parallelism. Review from Last Time #1 CSE 820 Graduate Computer Architecture week 6 Instruction Level Parallelism Based on slides by David Patterson Review from Last Time #1 Leverage Implicit Parallelism for Performance: Instruction Level

More information

Microarchitecture Overview. Performance

Microarchitecture Overview. Performance Microarchitecture Overview Prof. Scott Rixner Duncan Hall 3028 rixner@rice.edu January 18, 2005 Performance 4 Make operations faster Process improvements Circuit improvements Use more transistors to make

More information

Graphics Programming in c++

Graphics Programming in c++ Graphics Programming in c++ Springer London Berlin Heidelberg New York Barcelona Budapest Hong Kong Milan Paris Santa Clara Singapore Tokyo Mark Walmsley Graphics Programming in c++ Writing Graphics Applications

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

Lecture 1. CMSC 412 S17 (lect 1)

Lecture 1. CMSC 412 S17 (lect 1) Lecture 1 1 Review Syllabus Operating Systems read the warning about the size of the project make sure you get the 6 th edition (or later) of the book Class Grades Server Grades.cs.umd.edu Program #0 Handout

More information

NAME: Problem Points Score. 7 (bonus) 15. Total

NAME: Problem Points Score. 7 (bonus) 15. Total Midterm Exam ECE 741 Advanced Computer Architecture, Spring 2009 Instructor: Onur Mutlu TAs: Michael Papamichael, Theodoros Strigkos, Evangelos Vlachos February 25, 2009 NAME: Problem Points Score 1 40

More information

On the Design of the Local Variable Cache in a Hardware Translation-Based Java Virtual Machine

On the Design of the Local Variable Cache in a Hardware Translation-Based Java Virtual Machine On the Design of the Local Variable Cache in a Hardware Translation-Based Java Virtual Machine Hitoshi Oi Department of Computer Science The University of Aizu Aizu-Wakamatsu, JAPAN hitoshi@u-aizu.ac.jp

More information

RETARGETABLE CODE GENERATION FOR DIGITAL SIGNAL PROCESSORS

RETARGETABLE CODE GENERATION FOR DIGITAL SIGNAL PROCESSORS RETARGETABLE CODE GENERATION FOR DIGITAL SIGNAL PROCESSORS RETARGETABLE CODE GENERATION FOR DIGITAL SIGNAL PROCESSORS Rainer LEUPERS University of Dortmund Department of Computer Science Dortmund, Germany

More information

CS420: Operating Systems

CS420: Operating Systems Threads James Moscola Department of Physical Sciences York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Threads A thread is a basic unit of processing

More information

COMMUNICATION SYSTEMS The State of the Art

COMMUNICATION SYSTEMS The State of the Art COMMUNICATION SYSTEMS The State of the Art IFIP The International Federation for Information Processing lfip was founded in 1960 under the auspices of UNESCO, following the First World Computer Congress

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

Reducing the Overhead of Dynamic Compilation

Reducing the Overhead of Dynamic Compilation Reducing the Overhead of Dynamic Compilation Chandra Krintz David Grove Derek Lieber Vivek Sarkar Brad Calder Department of Computer Science and Engineering, University of California, San Diego IBM T.

More information

Towards a Java-enabled 2Mbps wireless handheld device

Towards a Java-enabled 2Mbps wireless handheld device Towards a Java-enabled 2Mbps wireless handheld device John Glossner 1, Michael Schulte 2, and Stamatis Vassiliadis 3 1 Sandbridge Technologies, White Plains, NY 2 Lehigh University, Bethlehem, PA 3 Delft

More information

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled.

For use by students enrolled in #71251 CSE430 Fall 2012 at Arizona State University. Do not use if not enrolled. Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components

More information

Just-In-Time Compilers & Runtime Optimizers

Just-In-Time Compilers & Runtime Optimizers COMP 412 FALL 2017 Just-In-Time Compilers & Runtime Optimizers Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2017, Keith D. Cooper & Linda Torczon, all rights reserved.

More information

Interrupt Service Threads - A New Approach to Handle Multiple Hard Real-Time Events on a Multithreaded Microcontroller

Interrupt Service Threads - A New Approach to Handle Multiple Hard Real-Time Events on a Multithreaded Microcontroller Interrupt Service Threads - A New Approach to Handle Multiple Hard Real-Time Events on a Multithreaded Microcontroller U. Brinkschulte, C. Krakowski J. Kreuzinger, Th. Ungerer Institute of Process Control,

More information

Operating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings

Operating Systems: Internals and Design Principles. Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Chapter 4 Threads Seventh Edition By William Stallings Operating Systems: Internals and Design Principles The basic idea is that the several components

More information

Method-Level Phase Behavior in Java Workloads

Method-Level Phase Behavior in Java Workloads Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS

More information

Performance of Non-Moving Garbage Collectors. Hans-J. Boehm HP Labs

Performance of Non-Moving Garbage Collectors. Hans-J. Boehm HP Labs Performance of Non-Moving Garbage Collectors Hans-J. Boehm HP Labs Why Use (Tracing) Garbage Collection to Reclaim Program Memory? Increasingly common Java, C#, Scheme, Python, ML,... gcc, w3m, emacs,

More information

Algorithms and Parallel Computing

Algorithms and Parallel Computing Algorithms and Parallel Computing Algorithms and Parallel Computing Fayez Gebali University of Victoria, Victoria, BC A John Wiley & Sons, Inc., Publication Copyright 2011 by John Wiley & Sons, Inc. All

More information

Using Transparent Compression to Improve SSD-based I/O Caches

Using Transparent Compression to Improve SSD-based I/O Caches Using Transparent Compression to Improve SSD-based I/O Caches Thanos Makatos, Yannis Klonatos, Manolis Marazakis, Michail D. Flouris, and Angelos Bilas {mcatos,klonatos,maraz,flouris,bilas}@ics.forth.gr

More information

Serial. Parallel. CIT 668: System Architecture 2/14/2011. Topics. Serial and Parallel Computation. Parallel Computing

Serial. Parallel. CIT 668: System Architecture 2/14/2011. Topics. Serial and Parallel Computation. Parallel Computing CIT 668: System Architecture Parallel Computing Topics 1. What is Parallel Computing? 2. Why use Parallel Computing? 3. Types of Parallelism 4. Amdahl s Law 5. Flynn s Taxonomy of Parallel Computers 6.

More information

Adaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer

Adaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer Adaptive Optimization using Hardware Performance Monitors Master Thesis by Mathias Payer Supervising Professor: Thomas Gross Supervising Assistant: Florian Schneider Adaptive Optimization using HPM 1/21

More information

Java And Object Oriented Programming Paradigm Debasis Jana

Java And Object Oriented Programming Paradigm Debasis Jana Java And Object Oriented Programming Paradigm Debasis Jana We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer,

More information

Dynamic Selection of Application-Specific Garbage Collectors

Dynamic Selection of Application-Specific Garbage Collectors Dynamic Selection of Application-Specific Garbage Collectors Sunil V. Soman Chandra Krintz University of California, Santa Barbara David F. Bacon IBM T.J. Watson Research Center Background VMs/managed

More information

HIGH-SPEED COMMUNICATION NETWORKS

HIGH-SPEED COMMUNICATION NETWORKS HIGH-SPEED COMMUNICATION NETWORKS HIGH-SPEED COMMUNICATION NETWORKS Edited by Harry Perros North Carolina State University Raleigh, North Carolina Springer Science+Busines s Media, LL C Library of Congress

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

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture) Dept. of Computer Science & Engineering Chentao Wu wuct@cs.sjtu.edu.cn Download lectures ftp://public.sjtu.edu.cn User:

More information

Near Memory Key/Value Lookup Acceleration MemSys 2017

Near Memory Key/Value Lookup Acceleration MemSys 2017 Near Key/Value Lookup Acceleration MemSys 2017 October 3, 2017 Scott Lloyd, Maya Gokhale Center for Applied Scientific Computing This work was performed under the auspices of the U.S. Department of Energy

More information

Microprocessor Theory

Microprocessor Theory Microprocessor Theory and Applications with 68000/68020 and Pentium M. RAFIQUZZAMAN, Ph.D. Professor California State Polytechnic University Pomona, California and President Rafi Systems, Inc. WILEY A

More information

TIBCO BusinessEvents Extreme. System Sizing Guide. Software Release Published May 27, 2012

TIBCO BusinessEvents Extreme. System Sizing Guide. Software Release Published May 27, 2012 TIBCO BusinessEvents Extreme System Sizing Guide Software Release 1.0.0 Published May 27, 2012 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR

More information

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function

William Stallings Computer Organization and Architecture. Chapter 11 CPU Structure and Function William Stallings Computer Organization and Architecture Chapter 11 CPU Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data Registers

More information