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)
- Presented By: Nate
- File Hierarchy
- Run Scripts (?)
- SE Mode v. FS Mode - Basic Building / Runinng
- Atomic v. Timing
- Running Examples!
- Stats
- Debugging Infrastucture (15 minutes)
- Presented By: Ali
- Debug flags
- user/kernel tracing
- tracediff
- gdb helper
- Ref counting pointers?
- 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
- Multiple ISA support (15 minutes: ? slides)
- Presentation by: 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
- 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