gem5 v24.0.0.0
Loading...
Searching...
No Matches
global_event.hh File Reference

Global events and related declarations. More...

#include <mutex>
#include <vector>
#include "base/barrier.hh"
#include "sim/eventq.hh"

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.
 

Detailed Description

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.


Generated on Tue Jun 18 2024 16:24:08 for gem5 by doxygen 1.11.0