TutorialScratchPad
From gem5
					
										
					
					-  Introduction to gem5 (15-20 minutes: 10 slides)
- Presentation by: Brad
 - Tutorial Goals and Timeline
 -  High-level view of the gem5: 
- What’s new?
 - The "best" parts of Ruby
 - The "best" parts of M5
 
 -  Discuss goals, design principles, etc.
- Basically review the high-level points of the CAN article
 
 
 -  gem5 Basics (20 minutes)
- File Hierarchy
 - Run Scripts (?)
 - SE Mode v. FS Mode - Basic Building / Runinng
 - Atomic v. Timing
 - Stats
 - Debugging Tools (debug-flags)
 
 -  Multiple ISA support (15 minutes: ? slides)
- Presentation by: ?? Ali ?? Gabe ??
 -  ISA description language
- Review high-level concepts and what is new versus the past tutorial
 - We probably don’t have enough time to discuss a lot of implementation
 
 - ARM Implementation Key Points
 - x86 Key Points
 - Example: From Memory to Decode to an Instruction (BaseDynInst)???
 
 -  CPU Models (15 minutes: ? slides)
- Korey
 -  Key Interfaces:
- ISA
 - Ports/Memory
 
 - SimpleCPU Overview
 - Detailed CPU Commonalities: TimeBuffer Communication & ThreadContext
 - O3CPU – Pipeline Stages and Resources Description
 - InOrder CPU - "Medium" Level
- Example: Moving Through the InOrder Model???
 
 
 - Break - 30 mins
 -  Ruby (50 minutes: ~25 slides)
- Presentation by: Brad
 -  Discuss design concepts
- Separation of policies
 - Rich configurability
 - Rapid prototyping
 
 -  Components – highlighting differences from GEMS
- Coherence protocols
 - Highlight local variables & input parameters to SLICC files
 
 - Protocol independent structures
 -  Topology & networks
- Topology Spec. Basics?
 - Simple Network?
 - Garnet?
 
 - Example: Life of a Ruby Request
 
 -  Checkpoint and fast-forwarding (25 minutes: ? slides)
- Presented by: Joel
 -  Brief description then demo
- Where are checkpoints generated?
 - What are the key functions used to create/read a checkpoint?
 - What are the command line options to use?
 - DEMO
 
 
 -  Debugging Infrastucture (15 minutes)
-  Debug flags
- user/kernel tracing
 - tracediff
 - gdb helper
 - Ref counting pointers?
 
 
 -  Debug flags
 -  Conclusions & questions (20 minutes: 10 slides)
- Status Matrix
 -  Developer tools
- Regression tester
 - Code reviews
 - Mailing list (shouldn’t we mention this in the Introduction? Having an active mailing list is like a feature :) … )
 
 -  Future Work/In Development (? mins, : ? slides)
- Highlight the different development efforts
 - Prelude to the development discussion in the afternoon
 - What are near-term/long-term plans for each major bullet point above?
 
 - Invite attendees to speak up and start to form "birds of feather" groupings for 2nd half of tutorial