1 AWB: Architect’s WorkBench Joel Emer. 2 A CPU model, A single model or project of anything A communications or interface protocol Or a modeling library.

Slides:



Advertisements
Similar presentations
Drivers and the kernel1-1 Drivers and the kernel UNIX system has three layers: m The hardware m The operating system kernel m The user-level programs Kernel.
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
LEAP: Simplifying the construction of FPGA-based processor models Michael Adler Elliott Fleming Michael Pellauer Joel Emer.
6.S078 - Computer Architecture: A Constructive Approach AWB - Architect’s Workbench Joel Emer Computer Science & Artificial Intelligence Lab. Massachusetts.
Hasim Joel Emer †‡ Michael Adler †, Artur Klauser †, Angshuman Parashar †, Michael Pellauer ‡, Murali Vijayaraghavan ‡ † VSSAD Intel ‡ CSAIL MIT.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Asim/AWB Training Mohit Gambhir Intel Massachusetts Content: Joel Emer, Michael Pellauer, Chris Weaver.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Selenium – Testing Tool. What is Selenium? Selenium is a robust set of tools that supports rapid development of test automation for web-based applications.
CRSX plug-in development. Prerequisites Software and Libraries Eclipse RCP (3.5 or higher) –Go –Select.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Software Installation The full set of lecture notes of this Geant4 Course is available at
Julie McEnery1 Installing the ScienceTools The release manager automatically compiles each release of the Science Tools, it creates a set of wrapper scripts.
Emanuele Pasqualucci Extending AppManager Monitoring with the SNMP Toolkit.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
SKA/KAT SPIN Presentation Software Engineering (!?) Robert Crida.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
Overview of LHCb applications and software environment LHCb software tutorial - March
1 What is a Kernel The kernel of any operating system is the core of all the system’s software. The only thing more fundamental than the kernel is the.
Firmware Storage : Technical Overview Copyright © Intel Corporation Intel Corporation Software and Services Group.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
July 2011CMSC 341 CVS/Ant 1 CMSC 341 Java Packages Ant CVS Project Submission.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
SWGData and Software Access - 1 UCB, Nov 15/16, 2006 THEMIS SCIENCE WORKING TEAM MEETING Data and Software Access Ken Bromund GST Inc., at NASA/GSFC.
WinCvs. WinCVS WinCvs is a window based version control system. Use WinCvs when  You want to save every version of your file you have ever created. CVS.
Copyright © Curt Hill Tortoise SVN A Subversion Client.
1 MSTE Visual SourceSafe For more information, see:
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Linux Operations and Administration
Slide 1 Running NEMO at ECMWF Slide 1 NEMO under Perforce at ECMWF Kristian S. Mogensen Last revised:
Institute for the Protection and Security of the Citizen HAZAS – Hazard Assessment ECCAIRS Technical Course Provided by the Joint Research Centre - Ispra.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
E Copyright © 2006, Oracle. All rights reserved. Using SQL Developer.
Architecture Review 10/11/2004
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
Integrating ArcSight with Enterprise Ticketing Systems
CARA 3.10 Major New Features
Self Healing and Dynamic Construction Framework:
Distribution and components
WORKSHOP 3 GSE IMPORT.
Chapter 2: The Linux System Part 2
Embracing Java 9 and beyond with Eclipse JDT
Software Installation
Genome Workbench Chuong Huynh NIH/NLM/NCBI New Delhi, India
SUSE Linux Enterprise Desktop Administration
HP Quality Center 10.0 The Test Plan Module
Software Installation, release 4.0
Java Looking at our first console application in Eclipse
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

1 AWB: Architect’s WorkBench Joel Emer

2 A CPU model, A single model or project of anything A communications or interface protocol Or a modeling library (which Asim is) Or an FPGA environment (which LEAP is) AWB IS an infrastructure for supporting rapidly constructing efficient projects AWB is NOT… a platform model,an FPGA environment Core Principle: Modularity

3 AWB Projects AWBAsim Alpha EV8EV9 X86 Secret… LEAP HASIM AlphaSecret… Airblue Softrate… H.264…

4 Why Modularity? Speed of development Shared components between projects Cleaner design through well thought out interfaces Improved robustness through reuse Facilitates design trade-offs, e.g., speed/complexity Design space experimentation without code bloat Factorial development and evaluation

5 What is AWB (Architect’s Workbench)? An set of abstractions that enables the plug and play of modules to facilitate design A suite of tools to support rapid modular construction and analysis of designs GUI and command line interfaces Released under GPL (specific projects/models may not be)

6 AWB Concepts for Modularity Packages (codebases) -.pack files: are stored in repositories or locally on a system are versioned are checked out into (or used by) local workspaces can be grouped into sets called bundles which can be checked out together contain modules, models (projects) and benchmarks Models (projects) -.apm files: are a description of a hierarchy of modules are turned into a build directory tree via a configuration step Benchmarks -.cfg files: are a description of a run of a design are turned into a run directory tree via a setup step

7 AWB Concepts for Modularity Workspaces are a place to work on awb-based project can contain multiple checked out packages can contain multiple build directories, which can contain multiple benchmark runs

8 What is the ROI for so much mechanism? The layer of abstraction brings distributed modules and tools under one umbrella Distinct packages may be independently developed, maintained and access controlled Bundles simplify creation of projects that are composed of code from different packages and allow base lining those projects with a specific code revision A unified model (project) representation facilitates creation of alternative designs (and build procedures) A standardized module representation facilitates code swapability, reuse and creation of reusable build procedures. Workspaces organize the simultaneous use of multiple packages and multiple projects over multiple benchmarks.

9 AWB Operation Example Repositories Workspace

10 AWB module details Modules represent the unit of “swapability” in source code Each module is defined in an.awb file Textual %name and %description of the module List of the %source files that comprise the module’s code E.g., C, C++, BSV, Makefiles or Scons files. Modules also %provide an AWB type (different from C++ type) E.g., branch_predictor, fetch, decode, execute, cache Each module can also %require a module of a specific AWB types E.g., cache may require a pre_fetcher and different prefetch schemes would provide the same AWB type “pre_fetcher” Modules can describe %parameters the user can vary Parameters can be static (compile time) or dynamic (run time)

11 Module Configuration – Example.awb File %name APE Unit Tester %desc APE – The AWB Plugin Exerciser %attributes ape test %provides system %requires feeder ape_driver isa %source –-public ape.h %source –-private ape.cpp ape-util.cpp %param MAX_INST_BUF_SZ 1024 “Number of instr buffer entries” %param --global MAX_IDLE_CYCLES 256 “Maximum number of idle cycles”

12 Module Configuration If two modules provide the same awb type then this is an assertion that they can be swapped for one another and that the result will be a coherent model that will successfully build

13 From Modules to Models A model (project) is an interesting configuration selected by the user: All parameter values are set (unset ones use their default) All “requires” choices are made between alternative modules Stored in a.apm file Created using apm-edit GUI

14 Example Module Hierarchy S MCNDRXCWFB

15 Simple Example: Module Selection B B B B S MCN DRXCWF B B

16 DRXCWF DRXCWF S MCN CMN Complete Example: Module Selection S B B B B B B

17 Default Choices via Attributes B B B B S MCN DRXCWF B X

18 Modularity & Factorial Coding/Experiments SC S MCN SM RC S MCN SM SC S MCN RM RC S MCN RM

19 AWB Tools Awb-shell Scriptable command line tool for creating/manipulating a workspace, creating/obtaining packages and configuration, building and running models Awb GUI for accessing most of the functionality of awb-shell Apm-edit GUI for creating/editing models More tools Apm-find-replace, plotshell, regression.launcher, awb-run …

20 Workspace A personal directory tree to work on models and experiments Created with awb-shell command: % awb-shell new workspace % cd then: % awb-shell or: % awb &

21 Determination of Current Workspace Most tools operate in the context of a workspace. The current workspace is determined by a trampoline script (asimstarter) that runs as a prelude to any of the tools themselves. That script determines the current workspace by: 1.Looking for environment variable $AWBLOCAL 2.Looking to see if current working directory is in a workspace (preferred method) 3.Looking for a default workspace directory as specified in ~/.asim/asimrc 4.Using /share/asim/ws * * Used to bootstrap a user on first use of an awb-based tool

22 Workspace Structure Details / awb.config- configuration file for this workspace src/- area for checked out packages / /... build/- area where models are built and run /... pm/- source build tree obj/- object tree of built objects src/- source tree (links to module sources) - built executable of model Makefile- synthesized Makefile bm/- area where benchmarks are run /... run/- area where experiments/regressions run

23 Awb.config file format [ Global] VERSION=1.4 Class=Asim::Workspace [Vars] shared=/usr/share/asim/packages [Paths] # Directory containing actual benchmarks BENCHMARKDIR=/usr/share/asim/benchmarks # Path where we search for ASIM files SEARCHPATH=src/leap:…:${shared}/awb/HEAD [Build] # Make flags for all model builds MAKEFLAGS= Options for many tools that can be inserted in awb.config can be obtained via –options switch, e.g., % awb-run –options [awb-run] BUILD=1 BUILD_ALL=0 BUILD_DISTCC=0 … Search for options proceeds from: 1. /awb.config 2.~/.asim/asimrc 3. /etc/asim/asimrc

24 Shared / Private Packages Globally installed packages shared by all users on a machine: /share/asim/ / Obtained via: % awb-shell use package [/ ] Private packages: /src/ Obtained via checkout…

25 Repositories The CVS, SVN, or GIT repositories described in: 1) ~/.asim/repositories.d/.pack 2) /etc/asim/repositories.d/.pack 3) /etc/asim/asim.pack Check out with command: % awb-shell checkout package [/ ] Get updates with command: % awb-shell update package |all Commit changes with command: % awb-shell commit package |all

26 Package Structure Details / admin/- awb-managed administrative files config/ pm/- model configurations …/…/.apm …/…/.apm bm/- benchmark configurations …/…/.cfg …/…/.cfg modules/- modules …/…/ /.awb - module description.h- module source.cpp /- package specific directories

27 Package Search Path To unify the view of all the files in all the packages coming from different repositories the directories of all the packages are treated by most awb-related tools as if they were overlaid in a single view, like a ‘uniondir’ file system. File references resolved through search of all package directories in the search path Specified in SEARCHPATH= line in /awb.config

28 Manipulating the Search Path Automatic: Checking out/using a package adds it to the path by default Semi-automatic Run command: % awb-shell add package Manual Edit awb.config

29 Model Build Since a model is created from a pool of modules, the build paradigm adds a new step to “configure” a model source tree from that pool of modules. Therefore a workspace has: A “source” area with a pool of module sources where users add modules and make changes to existing modules… A “build” area for “configured” models that is managed almost entirely by the awb infrastructure…filled with build trees populated with links to the actual source files and synthesized source files. Note: the actual tool used to do the configure is determined by the ‘type’ of the model.

30 Model Configurations Found in: config/pm/.../.apm Contains: module hierarchy module parameters To perform the configure a project, cd into your workspace and type: % awb

31 AWB- GUI The ‘configure’ button invokes the proper configure tool as determined by the model type. (See apm- edit for details)

32 AWB- GUI Runlog shows the command line tool invoked. Should have been leap-configure, which creates a build directory.

33 AWB- GUI The ‘build’ button invokes ‘make’ (or ‘scons’) in the build tree created by the configure script.

34 AWB- GUI The ‘setup’ button invokes the proper benchmark setup tool as determined by the model type. (See apm-edit for details)

35 AWB- GUI The ‘run’ button invokes the./run script in the benchmark directory created by the benchmark setup script.

36 AWB- GUI

37 Awb-shell % awb-shell awb> set model pm/Arana/arana_aint_dev.apm awb> clean model awb> configure model awb> build model awb> run model bm/Micro/maxipc.cfg awb> quit % awb-shell awb> set model pm/Arana/arana_aint_dev.apm awb> clean model awb> configure model awb> build model awb> run model bm/Micro/maxipc.cfg awb> quit % awb-shell --package=arana commit package % awb-shell help % awb-shell help code

38 Apm-edit - GUI

39 Apm-edit - GUI Alternative module operation – replace module in tree with module or submodel Module properties operations - edit module, open shell in module’s source directory.

40 Model Configuration – Example.apm File [APE] File=pm/system/ape.awb [APE/Requires] feeder=TraceFeeder ape_driver=APE Null Driver isa=IPF ISA [TraceFeeder] File=feeders/inst/trace/tracefeeder.awb [TraceFeeder/Requires] traceinstruction=IA64TraceInst tracereader=IA64GTraceReader traceconverter=IA64Converter

41 Submodels A predefined hierarchy of modules specified in an.apm file (called a submodel) can be used to fill in for a module if the root of the submodel matches the requires for that point in the tree. Creating a submodel from a module in the middle of an existing tree. Right click and select ‘insert->as root’. Then click the menu ‘file->saveas’ to create a new.apm file. Discuss other properties that can be set…

42 Acknowledgements Intel Mohit Gambhir Michael Pellauer Michael Adler Carl Beckmann MIT Elliott Fleming DEC David Goodwin

43 Resources