AI Engine-ML v2 Intrinsics User Guide  v2025.1
Loading...
Searching...
No Matches

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).
 
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 (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_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).
 
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 (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 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.
 
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 (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.
 

Detailed Description

Lock instructions are implemented as semaphores, and we can distinguish between acquire and release instructions.

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