Files
gem5/components_library
Bobby R. Bruce 2ef2f11955 python,configs: Add Resource class to gem5 components
The `Resource` class can be used to obtain a gem5 resource. The
`Resource` class, via the `downloader` package, parses the gem5
resources `resources.json` file:
https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/develop/resources.json
From this it can determine the available resources and where to download
them. This allows for automatic retrieval of resources.

The `CustomResource` can be used to specify a local resource not part of
gem5 resources.

The board's `set_workload` function has been updated to use the
resources.

The components library example scripts have been updated to demonstrate
the `Resource`/`CustomResource` class usage.

Issue-on: https://gem5.atlassian.net/browse/GEM5-1022
Change-Id: I59cfe81d5ec9c64576c0dab55af52aede96976fb
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/49304
Reviewed-by: Austin Harris <austin.dane.harris@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
2021-09-08 04:16:59 +00:00
..

The gem5 Components Library

IMPORTANT NOTE: This is a Work-In-Process Documentation. This will be expanded and completed in later revisions of the components library.

This is a high-level overview of what this library is.

Philosophy

Like the Zen of Python, the gem5 Components Library has a set of guiding principles. Note, these are note rules, and they are meant to be bent if needed (but maybe not broken).

Components are extensible, not configurable

We prefer extensibility instead of configurability. Instead of each component taking many different parameters, we have decided to make many different components. For instance, instead of having one core component which takes a parameter of the type (e.g., in-order or out-of-order), we specify multiple different components, an InOrderCPU and an OutOfOrder CPU.

Components use easy to remember names

We prefer longer and easier to remember names than shorter or jargon names.

Structure of the components library

Boards

Processors

Memories

Cache hierarchies

Contributing to the components library

Code style