Power Profiling using Sim-Panalyzer Andria Dyess and Trey Brakefield CPE631 Spring 2005.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Chapter 7 Introduction to Procedures. So far, all programs written in such way that all subtasks are integrated in one single large program. There is.
Chapter 8: Central Processing Unit
Chapter 2 Machine Language.
Slide 1CPU Emulator Tutorial This program is part of the software suite that accompanies the book The Digital Core, by Noam Nisan and Shimon Schocken 2003,
Sim-alpha: A Validated, Execution-Driven Alpha Simulator Rajagopalan Desikan, Doug Burger, Stephen Keckler, Todd Austin.
The Little man computer
Lab Assignment 2: MIPS single-cycle implementation
Processes CSCI 444/544 Operating Systems Fall 2008.
Lec 17 Nov 2 Chapter 4 – CPU design data path design control logic design single-cycle CPU performance limitations of single cycle CPU multi-cycle CPU.
Chapter 15 IA 64 Architecture Review Predication Predication Registers Speculation Control Data Software Pipelining Prolog, Kernel, & Epilog phases Automatic.
MCITP Guide to Microsoft Windows Server 2008 Server Administration (Exam #70-646) Chapter 14 Server and Network Monitoring.
Cisc Complex Instruction Set Computing By Christopher Wong 1.
Hands-On Microsoft Windows Server 2008 Chapter 11 Server and Network Monitoring.
Windows Server 2008 Chapter 11 Last Update
Spring 2014 SILICON VALLEY UNIVERSITY CONFIDENTIAL 1 Introduction to Embedded Systems Dr. Jerry Shiao, Silicon Valley University.
Chocolate Bar! luqili. Milestone 3 Speed 11% of final mark 7%: path quality and speed –Some cleverness required for full marks –Implement some A* techniques.
System Calls 1.
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
Memory & Storage Architecture Seoul National University GDB commands Hyeon-gyu School of Computer Science and Engineering.
PLC introduction1 Discrete Event Control Concept Representation DEC controller design DEC controller implementation.
PLC: Programmable Logical Controller
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
CS 1308 Computer Literacy and the Internet. Introduction  Von Neumann computer  “Naked machine”  Hardware without any helpful user-oriented features.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Computer Architecture and the Fetch-Execute Cycle
Computer Architecture and the Fetch-Execute Cycle
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
Cooperative FVS ! Functional Requirements for a Shared Library Version of FVS, or Calling FVS from R! Nicholas L. Crookston Rocky Mountain Research Station.
Ceng 450 Project. Pinout of Processor Interrupt is optional Processor in_port[7:0] out_port[7:0] clock rst interrupt.
Senior Project Presentation: Designers: Shreya Prasad & Heather Smith Advisor: Dr. Vinod Prasad May 6th, 2003 Internal Hardware Design of a Microcontroller.
ASAP RDF SGP RDF 1.2 and 1.3 Transfer of Information
UBI >> Contents Chapter 2 Software Development tools Code Composer Essentials v3: Code Debugging Texas Instruments Incorporated University of Beira Interior.
Lecture 8: Processors, Introduction EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering Spring 2014,
COP4020 Programming Languages Subroutines and Parameter Passing Prof. Xin Yuan.
A Tutorial on Introduction to gdb By Sasanka Madiraju Graduate Assistant Center for Computation and Technology.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training module provides an overview of debugging features.
Interrupt driven I/O. MIPS RISC Exception Mechanism The processor operates in The processor operates in user mode user mode kernel mode kernel mode Access.
Computer Structure & Architecture 7b - CPU & Buses.
Interrupts  An interrupt is any service request that causes the CPU to stop its current execution stream and to execute an instruction stream that services.
ECE 353 Lab 2 Pipeline Simulator Additional Material.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
Time Management.  Time management is concerned with OS facilities and services which measure real time.  These services include:  Keeping track of.
MICROPROCESSOR DETAILS 1 Updated April 2011 ©Paul R. Godin prgodin gmail.com.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Creating Java Applications (Software Development Life Cycle) 1. specify the problem requirements - clarify 2. analyze the problem - Input? Processes? Output.
Internals of SimpleScalar Simulators CPEG323 Tutorial Long Chen November, 2005.
Mutual Exclusion -- Addendum. Mutual Exclusion in Critical Sections.
© SCRIBE SOFTWARE CORPORATION 2008 Tips and Tricks for Working with Scribe Insight Trace Files.
CPIT Program Execution. Today, general-purpose computers use a set of instructions called a program to process data. A computer executes the.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the use of the High-performance.
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 0: Historical Overview.
The Little man computer
Introduction to Operating Systems
ECE 353 Lab 3 Pipeline Simulator
Hands-On Microsoft Windows Server 2008
Microcontroller Applications
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Debugging with gdb gdb is the GNU debugger on our CS machines.
Morgan Kaufmann Publishers
Computer Science I CSC 135.
Introduction to Operating Systems
Topic 5: Processor Architecture Implementation Methodology
Process Description and Control
Topic 5: Processor Architecture
MARIE: An Introduction to a Simple Computer
Ladder programming Counter Instruction S7 300
Presentation transcript:

Power Profiling using Sim-Panalyzer Andria Dyess and Trey Brakefield CPE631 Spring 2005

Presentation Overview Introduction to Sim-Panalyzer Project Goals Current Status Future Work

What is Sim-Panalyzer? Developed by researchers at the University of Michigan and the University of Colorado Based on the SimpleScalar processor simulator Builds on Sim-Outorder Adds statistics for power estimation Compiled with gcc Runs in Linux environment

Estimating Power Consumption with Sim-Panalyzer User supplies a.cfg file which defines the CPU architecture A separate.cmd file specifies voltages, capacitance, and other values needed to calculate power consumption for each architectural element

Project Goals Become familiar with the Sim-Panalyzer software Add support for turning on and off the collection of power statistics Add support for power profiling Run simple simulations to test the new features

Sim-Panalyzer Software Environment Options database for registering command line options Stats database for managing performance statistics Register Update Unit (RUU) Load/Store Queue (LSQ) Pipeline stages: Fetch/Decode, Issue, Execution (out of order), and Commit

Project Goal #1: Start and Stop Flags for Simulation Stats Allows the user to profile specific sections of the test program (e.g. a single subroutine) The test program writes to a designated memory address to control collection of stats Simulator traps writes to this memory address and performs the appropriate action

Implementation Specifics Added a new command line option, “profiling: addr” Added code to watch for the specified memory address just before each store instruction is committed Overhead associated with this additional instruction (effective address calculation)

Implementation Specifics Added code around all statistics updating to check if statistics counting is on. Added code to Stats database to reset all of the statistics registered. Implemented the function calls needed to start, stop, dump, and reset stats in sim-profiling.h/c.

Sample Code (capturing a start_stop memory access) if (LSQ[LSQ_head].addr == start_stop_addr){ switch (/*value being written*/) { case 1 : profile_off();/* Stop counters */ break; case 2 : profile_on();/* Start counters */ break; case 3 : profile_reset(power_sdb);/* Reset counters */ break; case 4 : profile_dump(power_sdb, fd);/* Dump counters */ break;/* to output file */ }

Sample Code (resetting statistics) stat_reset_stat(struct stat_sdb_t *sdb, /* stat database */ struct stat_stat_t *stat,/* stat variable */ FILE *fd) /* output stream */ { struct eval_value_t val; switch (stat->sc) { case sc_int: *(stat->variant.for_int.var)=stat->variant.for_int.init_val; break;. default: panic("bogus stat class"); }

Sample Code (not counting statistics) #ifdef PROFILING if ( counting_on) #endif /* PROFILING */ { }

Project Goal #2: Power Profiling Allows user to get power statistics supplied by sim-panalyzer in slices Builds on work already done for project Goal #1. The simulator will watch the instruction count. When instruction count meets user-defined number, stats are stopped, dumped, reset, and restarted.

Implementation Specifics Added a new command line option, “profiling: inst” Add code to watch instruction count

Sample Code (profiling output) /* profiling? */ if ( sim_num_insn >= profile_inst_count ) { profile_iter++; fprintf(fd, "/n***** Profiling (%d) ******/n/n", profile_iter); profile_dump(power_sdb, fd); profile_reset(power_sdb); }

Project Status Command line arguments have been added and tested The stats database provides the ability to easily dump and reset stats  Most difficult task is finding the code that increments counters and adding a check for the flag (with out effecting the simulation).

Future Work Long-term goal is to develop “power monitoring counters” that can be implemented in future CPUs (similar to the performance monitoring counters that are common today) Expand profiling beyond the power profiling statistics alone.