gem5 v24.0.0.0
|
Global events and related declarations. More...
Go to the source code of this file.
Classes | |
class | gem5::BaseGlobalEvent |
Common base class for GlobalEvent and GlobalSyncEvent. More... | |
class | gem5::BaseGlobalEvent::BarrierEvent |
The base class for the local events that will synchronize threads to perform the global event. More... | |
class | gem5::BaseGlobalEventTemplate< Derived > |
Funky intermediate class to support CRTP so that we can have a common constructor to create the local events, even though the types of the local events are defined in the derived classes. More... | |
class | gem5::GlobalEvent |
The main global event class. More... | |
class | gem5::GlobalEvent::BarrierEvent |
class | gem5::GlobalSyncEvent |
A special global event that synchronizes all threads and forces them to process asynchronously enqueued events. More... | |
class | gem5::GlobalSyncEvent::BarrierEvent |
Namespaces | |
namespace | gem5 |
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved. | |
Global events and related declarations.
A global event is an event that occurs across all threads, i.e., globally. It consists of a set of "local" (regular) Events, one per thread/event queue, a barrier object, and common state. The local events are scheduled for the same tick. The local event process() method enters the barrier to wait for other threads; once all threads reach that tick (and enter the associated barrier), the global event is triggered and its associated activity is performed.
There are two basic global event patterns, GlobalEvent and GlobalSyncEvent. GlobalEvent is the base class for typical global events, while GlobalSyncEvent is optimized for global synchronization operations.
Definition in file global_event.hh.