You are previewing Software and System Development using Virtual Platforms.
O'Reilly logo
Software and System Development using Virtual Platforms

Book Description

Virtual platforms are finding widespread use in both pre- and post-silicon computer software and system development. They reduce time to market, improve system quality, make development more efficient, and enable truly concurrent hardware/software design and bring-up. Virtual platforms increase productivity with unparalleled inspection, configuration, and injection capabilities. In combination with other types of simulators, they provide full-system simulations where computer systems can be tested together with the environment in which they operate.

Table of Contents

  1. Cover image
  2. Title page
  3. Copyright
  4. Foreword
  5. Acknowledgments
  6. Chapter 1. Introduction
    1. Virtual Platforms
    2. Simulation and the System Development Lifecycle
    3. Model-Driven Development
    4. Book Outline
    5. Trademark Information
  7. Chapter 2. Simics fundamentals
    1. Simics<sup xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops">&#8224;</sup> Architecture and Terminology Architecture and Terminology
    2. Running Real Software Stacks
    3. Interacting with Simics
    4. Configurations and the Simics Object Model
    5. Components
    6. Time in Simics
    7. Abstraction Levels
    8. Event-Based Simulation
    9. Memory Maps
    10. Memory Images
    11. Checkpointing
    12. Determinism and Repeatability
    13. Simics Performance Technology
    14. Models and Extensions
  8. Chapter 3. Develop and debug software on Simics
    1. Development Means Testing
    2. Agent-Based Debugger
    3. Debugging Using Simics
    4. Performance Analysis
    5. Inspecting the Hardware State
    6. Fault-Injection and Boundary Conditions
    7. Using Checkpoints
    8. Loading Software
    9. Continuous Integration
    10. Shortcuts in the Software Stack
  9. Chapter 4. System configuration in Simics
    1. Simics Component System
    2. Setup Scripts
    3. Automating Target Configuration and Boot
  10. Chapter 5. Networking
    1. Network Simulation in Simics
    2. Simulated Network Nodes
    3. Traffic Inspection and Modification
    4. Scaling Up the Network Size
    5. Connecting the Real World
    6. Ethernet Real-Network Variants
    7. Programming New Networks
  11. Chapter 6. Building virtual platforms
    1. The Purpose of the Model
    2. Virtual Platforms in Simics
    3. Device Modeling Language
    4. Reusing Existing Information
    5. DML Features
    6. Creating Device Models
    7. Completing the Device Model
    8. Reserved Registers and Missed Accesses
    9. Creating Models in Other Languages
  12. Chapter 7. DMA: A concrete modeling example
    1. DMA Device Description
    2. Implementing the Basic DMA Device Model
    3. Creating a PCI Express (PCIe) Model
    4. Creating a Component for the DMA Model
    5. Creating a Device Driver
  13. Chapter 8. Simulator extensions
    1. Introduction
    2. Implementing Extensions
    3. Cache and Memory Simulation
    4. Fault Injection
  14. Chapter 9. Simulator integration
    1. Introduction
    2. Problems and Solutions
    3. Run Control
    4. Launching and Embedding
    5. Time Management
    6. Communications
    7. Frontends
    8. Running Simics from Other Programs
    9. Record–Replay Debugging of Target Software
    10. Running on a Simics Target
    11. Multiple Simulator APIs
    12. Simics Processor API
  15. Chapter 10. Intel® architecture bring-up
    1. Pre-Silicon Process
    2. Early OS Enabling
    3. Post-Silicon Process
    4. Post-Silicon Case Study: PXE
  16. Appendix A. Source code
    1. Chapter 6: Counter Device
    2. Chapter 7: DMA Device
  17. References
  18. Index