Skip to main content

NeighborhoodEvent

Enum NeighborhoodEvent 

Source
#[repr(u64)]
pub enum NeighborhoodEvent {
Show 22 variants NoEvent = 0, EtLinkSend = 1, EtLinkRecv = 2, CoopLoadSend = 3, CoopLoadInterNeighSend = 4, CoopLoadRecv = 5, CoopStoreSend = 6, CoopStoreRecv = 7, IcacheReqSend = 8, IcacheRespRecv = 9, PtwReqSend = 10, PtwRespRecv = 11, FlnMsg = 12, IcacheEtLinkSend = 13, IcacheEtLinkRecv = 14, IcacheL1Req = 15, IcacheL1Resp = 16, PtwEtLinkSend = 17, PtwEtLinkRecv = 18, EtLinkFifoIn = 21, EtLinkBankFifoIn = 22, EtLinkScUcIn = 23,
}
Expand description

Neighbourhood-level PMU event codes (PRM section 1.3.2, Table 1-4).

Written to mhpmevent7 or mhpmevent8 to select what hpmcounter7 or hpmcounter8 accumulates. The counter is shared across the 8-Minion neighbourhood; when harts program different events the lower mhartid hart’s choice takes precedence.

Variants§

§

NoEvent = 0

No event; counter does not increment.

§

EtLinkSend = 1

Any Minion sent an ET Link request.

§

EtLinkRecv = 2

Any Minion received an ET Link response.

§

CoopLoadSend = 3

A cooperative load request was sent.

§

CoopLoadInterNeighSend = 4

An inter-neighbourhood cooperative load request was sent.

§

CoopLoadRecv = 5

A cooperative load response was received.

§

CoopStoreSend = 6

A cooperative store request was sent.

§

CoopStoreRecv = 7

A cooperative store response was received.

§

IcacheReqSend = 8

Any Minion sent a request to the I-cache.

§

IcacheRespRecv = 9

Any Minion received a response from the I-cache.

§

PtwReqSend = 10

Any Minion sent a request to the page table walker.

§

PtwRespRecv = 11

Any Minion received a response from the page table walker.

§

FlnMsg = 12

A message was sent between Minions through the FLN.

§

IcacheEtLinkSend = 13

The I-cache sent an ET Link request.

§

IcacheEtLinkRecv = 14

The I-cache received an ET Link response.

§

IcacheL1Req = 15

The I-cache sent a request to the L1 data SRAM.

§

IcacheL1Resp = 16

The I-cache received a response from the L1 data SRAM.

§

PtwEtLinkSend = 17

Any PTW sent an ET Link request.

§

PtwEtLinkRecv = 18

Any PTW received an ET Link response.

§

EtLinkFifoIn = 21

An ET Link request was pushed into the intermediate FIFO.

§

EtLinkBankFifoIn = 22

An ET Link request was pushed into any BANK/UC FIFO.

§

EtLinkScUcIn = 23

An ET Link response was received from the SC/UC input.

Trait Implementations§

Source§

impl Clone for NeighborhoodEvent

Source§

fn clone(&self) -> NeighborhoodEvent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for NeighborhoodEvent

Source§

impl Debug for NeighborhoodEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for NeighborhoodEvent

Source§

impl PartialEq for NeighborhoodEvent

Source§

fn eq(&self, other: &NeighborhoodEvent) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for NeighborhoodEvent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.