AI Engine-ML Intrinsics User Guide (v2024.1)
Loading...
Searching...
No Matches

Intrinsics to acquire and release locks. More...

Overview

Intrinsics to acquire and release locks.

Functions

void acquire_equal (const void *a, unsigned id, unsigned val)
 This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of lock ID (id).
 
void acquire_equal (const void *a, unsigned id, unsigned val, int cond)
 This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of the lock ID (id).
 
void acquire_equal (const void chess_storage(TM) *a, unsigned id, unsigned val)
 
void acquire_equal (const void chess_storage(TM) *a, unsigned id, unsigned val, int cond)
 
void acquire_equal (unsigned id, unsigned val)
 This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of lock ID (id).
 
void acquire_equal (unsigned id, unsigned val, int cond)
 This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of the lock ID (id).
 
void acquire_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
 
void acquire_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
 
void acquire_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
 
void acquire_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
 
void acquire_greater_equal (const void *a, unsigned id, unsigned val)
 This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
 
void acquire_greater_equal (const void *a, unsigned id, unsigned val, int cond)
 This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
 
void acquire_greater_equal (const void chess_storage(TM) *a, unsigned id, unsigned val)
 
void acquire_greater_equal (const void chess_storage(TM) *a, unsigned id, unsigned val, int cond)
 
void acquire_greater_equal (unsigned id, unsigned val)
 This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
 
void acquire_greater_equal (unsigned id, unsigned val, int cond)
 This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
 
void acquire_greater_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
 
void acquire_greater_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
 
void acquire_greater_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
 
void acquire_greater_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
 
void release (const void *a, unsigned id, signed val)
 This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.
 
void release (const void *a, unsigned id, signed val, int cond)
 This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.
 
void release (const void chess_storage(TM) *a, unsigned id, signed val)
 
void release (const void chess_storage(TM) *a, unsigned id, signed val, int cond)
 
void release (unsigned id, signed val)
 This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.
 
void release (unsigned id, signed val, int cond)
 This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.
 
void release_inner (const void *a, char chess_storage(TM) *mem, unsigned id, signed val)
 
void release_inner (const void *a, char chess_storage(TM) *mem, unsigned id, signed val, int cond)
 
void release_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, signed val)
 
void release_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, signed val, int cond)
 

Function Documentation

◆ acquire_equal() [1/6]

void acquire_equal ( const void *  a,
unsigned  id,
unsigned  val 
)

This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of lock ID (id).

Parameters
[in]aPointer to data
[in]idLock ID (0..63)
[in]valInput value (0..63)

◆ acquire_equal() [2/6]

void acquire_equal ( const void *  a,
unsigned  id,
unsigned  val,
int  cond 
)

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of the lock ID (id).

Parameters
[in]aPointer to data
[in]idLock ID (0..63)
[in]valInput value (0..63)
[in]condcondition to issue intrinsic

◆ acquire_equal() [3/6]

void acquire_equal ( const void chess_storage(TM) *  a,
unsigned  id,
unsigned  val 
)

◆ acquire_equal() [4/6]

void acquire_equal ( const void chess_storage(TM) *  a,
unsigned  id,
unsigned  val,
int  cond 
)

◆ acquire_equal() [5/6]

void acquire_equal ( unsigned  id,
unsigned  val 
)

This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of lock ID (id).

Parameters
[in]idLock ID (0..63)
[in]valInput value (0..63)

◆ acquire_equal() [6/6]

void acquire_equal ( unsigned  id,
unsigned  val,
int  cond 
)

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of the lock ID (id).

Parameters
[in]idLock ID (0..63)
[in]valInput value (0..63)
[in]condcondition to issue intrinsic

◆ acquire_equal_inner() [1/4]

void acquire_equal_inner ( const void *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val 
)

◆ acquire_equal_inner() [2/4]

void acquire_equal_inner ( const void *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val,
int  cond 
)

◆ acquire_equal_inner() [3/4]

void acquire_equal_inner ( const void chess_storage(TM) *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val 
)

◆ acquire_equal_inner() [4/4]

void acquire_equal_inner ( const void chess_storage(TM) *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val,
int  cond 
)

◆ acquire_greater_equal() [1/6]

void acquire_greater_equal ( const void *  a,
unsigned  id,
unsigned  val 
)

This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters
[in]aPointer to data
[in]idLock ID (0..63)
[in]valInput value (0..63)

◆ acquire_greater_equal() [2/6]

void acquire_greater_equal ( const void *  a,
unsigned  id,
unsigned  val,
int  cond 
)

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters
[in]aPointer to data
[in]idLock ID (0..63)
[in]valInput value (0..63)
[in]condcondition to issue intrinsic

◆ acquire_greater_equal() [3/6]

void acquire_greater_equal ( const void chess_storage(TM) *  a,
unsigned  id,
unsigned  val 
)

◆ acquire_greater_equal() [4/6]

void acquire_greater_equal ( const void chess_storage(TM) *  a,
unsigned  id,
unsigned  val,
int  cond 
)

◆ acquire_greater_equal() [5/6]

void acquire_greater_equal ( unsigned  id,
unsigned  val 
)

This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters
[in]idLock ID (0..63)
[in]valInput value (0..63)

◆ acquire_greater_equal() [6/6]

void acquire_greater_equal ( unsigned  id,
unsigned  val,
int  cond 
)

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters
[in]idLock ID (0..63)
[in]valInput value (0..63)
[in]condcondition to issue intrinsic

◆ acquire_greater_equal_inner() [1/4]

void acquire_greater_equal_inner ( const void *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val 
)

◆ acquire_greater_equal_inner() [2/4]

void acquire_greater_equal_inner ( const void *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val,
int  cond 
)

◆ acquire_greater_equal_inner() [3/4]

void acquire_greater_equal_inner ( const void chess_storage(TM) *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val 
)

◆ acquire_greater_equal_inner() [4/4]

void acquire_greater_equal_inner ( const void chess_storage(TM) *  a,
char chess_storage(TM) *  mem,
unsigned  id,
unsigned  val,
int  cond 
)

◆ release() [1/6]

void release ( const void *  a,
unsigned  id,
signed  val 
)

This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.

Parameters
[in]aPointer to data
[in]idLock ID (0..63)
[in]valInput value (-63..63)

◆ release() [2/6]

void release ( const void *  a,
unsigned  id,
signed  val,
int  cond 
)

This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.

Parameters
[in]aPointer to data
[in]idLock ID (0..63)
[in]valInput value (-63..63)
[in]condcondition to issue intrinsic

◆ release() [3/6]

void release ( const void chess_storage(TM) *  a,
unsigned  id,
signed  val 
)

◆ release() [4/6]

void release ( const void chess_storage(TM) *  a,
unsigned  id,
signed  val,
int  cond 
)

◆ release() [5/6]

void release ( unsigned  id,
signed  val 
)

This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.

Parameters
[in]idlock ID (0..63)
[in]valInput value (-63..63)

◆ release() [6/6]

void release ( unsigned  id,
signed  val,
int  cond 
)

This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.

Parameters
[in]idLock ID (0..63)
[in]valInput value (-63..63)
[in]condcondition to issue intrinsic

◆ release_inner() [1/4]

void release_inner ( const void *  a,
char chess_storage(TM) *  mem,
unsigned  id,
signed  val 
)

◆ release_inner() [2/4]

void release_inner ( const void *  a,
char chess_storage(TM) *  mem,
unsigned  id,
signed  val,
int  cond 
)

◆ release_inner() [3/4]

void release_inner ( const void chess_storage(TM) *  a,
char chess_storage(TM) *  mem,
unsigned  id,
signed  val 
)

◆ release_inner() [4/4]

void release_inner ( const void chess_storage(TM) *  a,
char chess_storage(TM) *  mem,
unsigned  id,
signed  val,
int  cond 
)