AI Engine-ML Intrinsics User Guide  (v2023.2)

Intrinsics to acquire and release locks. More...

Overview

Intrinsics to acquire and release locks.

Functions

void acquire_equal (chess_protect_access const void chess_storage(TM) *a, unsigned id, unsigned val)
 
void acquire_equal (chess_protect_access const void chess_storage(TM) *a, unsigned id, unsigned val, int cond)
 
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). More...
 
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). More...
 
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). More...
 
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). More...
 
void acquire_greater_equal (chess_protect_access const void chess_storage(TM) *a, unsigned id, unsigned val)
 
void acquire_greater_equal (chess_protect_access const void chess_storage(TM) *a, 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). More...
 
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). More...
 
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). More...
 
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). More...
 
void release (chess_protect_access const void chess_storage(TM) *a, unsigned id, signed val)
 
void release (chess_protect_access const void chess_storage(TM) *a, unsigned id, signed 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. More...
 
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. More...
 
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. More...
 
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. More...
 

Function Documentation

◆ acquire_equal() [1/6]

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

◆ acquire_equal() [2/6]

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

◆ acquire_equal() [3/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() [4/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() [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_greater_equal() [1/6]

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

◆ acquire_greater_equal() [2/6]

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

◆ acquire_greater_equal() [3/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() [4/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() [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

◆ release() [1/6]

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

◆ release() [2/6]

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

◆ release() [3/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() [4/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() [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