gem5  v22.0.0.2
Classes | Namespaces
global_event.hh File Reference
#include <mutex>
#include <vector>
#include "base/barrier.hh"
#include "sim/eventq.hh"

Go to the source code of this file.


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


 Reference material can be found at the JEDEC website: UFS standard UFS HCI specification

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 Thu Jul 28 2022 13:32:49 for gem5 by doxygen 1.8.17