UNISIM (UNIted SIMulation Environment) walkthrough

Slides:



Advertisements
Similar presentations
Comparison of Altera NIOS II Processor with Analog Device’s TigerSHARC
Advertisements

Enabling Efficient On-the-fly Microarchitecture Simulation Thierry Lafage September 2000.
Term Project Overview Yong Wang. Introduction Goal –familiarize with the design and implementation of a simple pipelined RISC processor What to do –Build.
Aug. 24, 2007ELEC 5200/6200 Project1 Computer Design Project ELEC 5200/6200-Computer Architecture and Design Fall 2007 Vishwani D. Agrawal James J.Danaher.
IXP1200 Microengines Apparao Kodavanti Srinivasa Guntupalli.
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
1 Instant replay  The semester was split into roughly four parts. —The 1st quarter covered instruction set architectures—the connection between software.
CS-334: Computer Architecture
SystemC: A Complete Digital System Modeling Language: A Case Study Reni Rambus Inc.
Kevin Eady Ben Plunkett Prateeksha Satyamoorthy.
SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING | SCHOOL OF COMPUTER SCIENCE | GEORGIA INSTITUTE OF TECHNOLOGY MANIFOLD Manifold Execution Model and System.
Simics: A Full System Simulation Platform Synopsis by Jen Miller 19 March 2004.
Dr Mohamed Menacer College of Computer Science and Engineering, Taibah University CE-321: Computer.
(1) SIMICS Overview. (2) SIMICS – A Full System Simulator Models disks, runs unaltered OSs etc. Accuracy is high (e.g., pollution effects factored in)
Chapter 11 System Performance Enhancement. Basic Operation of a Computer l Program is loaded into memory l Instruction is fetched from memory l Operands.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
1 The user’s view  A user is a person employing the computer to do useful work  Examples of useful work include spreadsheets word processing developing.
Physical Memory and Physical Addressing ( Chapter 10 ) by Polina Zapreyeva.
STUDY OF PIC MICROCONTROLLERS.. Design Flow C CODE Hex File Assembly Code Compiler Assembler Chip Programming.
Chapter 19 Upgrading and Expanding Your PC
Introduction to Operating Systems Concepts
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
Nios II Processor: Memory Organization and Access
Andreas Hoffmann Andreas Ropers Tim Kogel Stefan Pees Prof
Chapter 10: Computer systems (1)
Current Generation Hypervisor Type 1 Type 2.
Design-Space Exploration
Improving Memory Access 1/3 The Cache and Virtual Memory
Edexcel GCSE Computer Science Topic 15 - The Processor (CPU)
Andes Technology Innovate SOC ProcessorsTM
Assembly Language for Intel-Based Computers, 5th Edition
Instant replay The semester was split into roughly four parts.
Constructing a system with multiple computers or processors
Introduction to SimpleScalar
CS 286 Computer Organization and Architecture
Chapter 3 Top Level View of Computer Function and Interconnection
Microcomputer Architecture
IB Computer Science Topic 2.1.1
Derek Chiou The University of Texas at Austin
Chapter 2: Operating-System Structures
A Review of Processor Design Flow
Super Quick Architecture Review
Introduction to cosynthesis Rabi Mahapatra CSCE617
Precision Timed Machine (PRET)
Agenda Why simulation Simulation and model Instruction Set model
Lecture 14 Virtual Memory and the Alpha Memory Hierarchy
Chapter 3: Operating-System Structures
ECEG-3202 Computer Architecture and Organization
Chapter 8: Memory management
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
Constructing a system with multiple computers or processors
Constructing a system with multiple computers or processors
A High Performance SoC: PkunityTM
Apparao Kodavanti Srinivasa Guntupalli
Constructing a system with multiple computers or processors
Guest Lecturer TA: Shreyas Chand
Chapter 2: Operating-System Structures
Computer Architecture
A Discussion on Assemblers
Outline Chapter 2 (cont) OS Design OS structure
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Computer Architecture
System calls….. C-program->POSIX call
Chapter 2: Operating-System Structures
William Stallings Computer Organization and Architecture 7th Edition
Types of Parallel Computers
Chapter 13: I/O Systems.
Charles Weems and Tim Richards University of Massachusetts Amherst
Presentation transcript:

UNISIM (UNIted SIMulation Environment) walkthrough Edited and Presented by Gage Eads, UC Berkeley

Outline PRET simulator needs What UNISIM offers UNISIM CLM Methodology Methodology Repository structure PTARM_ISS outline Miscellaneous thoughts UNISIM code walkthrough CLM = Cycle-level model, TLM = Transaction-level model

PRET Simulator Needs Small learning curve Easily modifiable Well documented Distributable Within PRET, we’d like to be able to add/modify modules (like a DRAM controller) easily. Outside of PRET, we’d like a student or researcher to easily learn and extend the simulator.

What UNISIM offers Open Source code (BSD) C++ Language CLM and TLM models CLM built on FastSysC engine TLM built on SystemC 2.0 engine Includes working ARMv5te simulator* and emulator Useful tools and services Easily distributable *Mostly working There is a bug in instructions that load R15 (the PC), in which the PC will skip its first instruction after branching. The simulator is a timing-accurate model, whereas the emulator models only the functionality. Currently, the emulator is used to verify the functionality of the simulator by comparing states at various points in the pipeline.

UNISIM: CLM Methodology Consists of modules, ports, and signals Modules communicate via ports Ports transmit signals, such as ‘instr’ Img src: Cycle-level Signal & Module documentation, Sylvain Girbal, UNISIM

UNISIM: CLM Methodology Signal containers have their own class There are three types of signals Data Accept (or reject - for module stalls) Enable (use of data – when sending to multiple modules) class instruction { uint32_t opcode; enum operation_t operation; uint32_t Ra_index, Rb_index, Rd_index; uint32_t mem_address, branch_address; }

UNISIM: CLM Methodology Modules are parameterized Three types of parameters: Core: Relate to the module itself, usually define data structure sizes Connection: Define port widths, etc. Behavior: Anything from cache replacement policy to debug verbosity This allows for design-space exploration and reuse DRAM module has a full set of parameterized latencies DRAM latency parameters: http://unisim.org/site/modules/cycle/network/dram/parameters

UNISIM: CLM Methodology Modules communicate through ports Three types of ports: Clock (input) Data (inp/out) Optional data: Optionally enabled, such as a ‘shared’ bit for busses that snoop Clearly defined interfaces allow you to easily swap modules

UNISIM: Methodology CLM vs. TLM - communication level CLM TLM Img src: https://unisim.org/site/speed/start The difference between CLM and TLM can be shown at the communication level. Consider a transfer using bus width of 64 bits, and a cache line size of 256 bits. CLM: Pass-by-value, 64 bits per bus cycle plus accept and enable signals -> slower, but timing accurate TLM: Pass-by-reference, all 256 bits of data at once -> much quicker, but not timing accurate

UNISIM: Methodology User-level System-level Focus on the user-space part of the target ISA Rely on “Syscall” service to translate target OS system calls to host OS system calls System-level Simulate the full target OS

UNISIM: Methodology Services/Capabilities Services use client/server interface Notable services: GDB debugger, ELF loader, data logger

UNISIM: Methodology FastSysC: A Fast SystemC Engine Optimized for speed Rewritten SystemC engine specifically for CLM communication model Improved scheduling algorithm SystemC uses dynamic scheduling FastSysC uses hybrid static/dynamic algorithm to avoid unnecessary signal wake-ups see: http://unisim.org/site/speed/fastsysc

UNISIM: Repository Structure Public Engine Core FastSysC engine Components Simulator components Capabilities Services Cycle-Level Cycle-level components Packages Modules (memory, cpu, debug) Simulators Cycle-level simulators Arm-score 5-stage user-level ARM sim Benchmarks ARM benchmarks Full System System-like components (prev. TLM) Memories Interface and emulator Processors CPU and ISA definitions Plugins OS, loader Tools Cross compilers Compiler for each target ISA GenISSLib ISA and decoder generator

PTARM_ISS outline Given: Extend: Create: Memory Dispatcher DMA DRAM (separate memory from controller) ARM CPU Register file (resides in CPU module) Create: Scratchpad memory Thread Controller Memory Wheel Deadline-related hardware

Miscellaneous Thoughts Adding functionality is made easier by the separation of function and communication Distribute entire package or simulator only Fairly easy to extract necessary simulator code No built-in regression test capabilities Documentation is spotty Some ‘README’ files and ‘doc’ folders are empty or incomplete File descriptions are sometimes missing UNISIM developer Sylvain (Thales) has been a great asset

UNISIM code walkthrough