Snitch Runtime
|
This file contains functions to conveniently program Snitch's SSRs. More...
Go to the source code of this file.
Enumerations | |
enum | snrt_ssr_dm_t { SNRT_SSR_DM0 = 0 , SNRT_SSR_DM1 = 1 , SNRT_SSR_DM2 = 2 , SNRT_SSR_DM_ALL = 31 } |
The different SSRs. More... | |
enum | snrt_ssr_dim_t { SNRT_SSR_1D = 0 , SNRT_SSR_2D = 1 , SNRT_SSR_3D = 2 , SNRT_SSR_4D = 3 } |
The different dimensions. More... | |
enum | snrt_ssr_reg_t { SNRT_SSR_REG_STATUS = 0 , SNRT_SSR_REG_REPEAT = 1 , SNRT_SSR_REG_BOUNDS = 2 , SNRT_SSR_REG_STRIDES = 6 , SNRT_SSR_REG_IDX_CFG = 10 , SNRT_SSR_REG_IDX_BASE = 11 , SNRT_SSR_REG_RPTR_INDIR = 16 , SNRT_SSR_REG_RPTR = 24 , SNRT_SSR_REG_WPTR = 28 } |
The SSR configuration registers. More... | |
enum | snrt_ssr_idxsize_t { SNRT_SSR_IDXSIZE_U8 = 0 , SNRT_SSR_IDXSIZE_U16 = 1 , SNRT_SSR_IDXSIZE_U32 = 2 , SNRT_SSR_IDXSIZE_U64 = 3 } |
The size of the SSSR indirection indices. More... | |
Functions | |
void | snrt_fpu_fence () |
Synchronize the integer and float pipelines. | |
void | snrt_ssr_enable () |
Enable all SSRs. | |
void | snrt_ssr_disable () |
Disable all SSRs. | |
void | snrt_sc_enable (uint32_t mask) |
Enable scalar chaining. | |
void | snrt_sc_disable (uint32_t mask) |
Disable scalar chaining. | |
This file contains functions to conveniently program Snitch's SSRs.
An SSR stream can be configured to replace a store (or load) sequence as could be generated by an N-dimensional affine loop nest, e.g. the following store sequence can be mapped to a 2D write SSR:
An ISSR (Indirect SSR) stream can be configured to replace a store (or load) sequence as could be generated by:
The convenience functions provided in this file can be used to set up such access patterns. The function argument names reflect the variable names presented in these sample code snippets.
Note: The exact number of elements configured in an (I)SSR stream must be consumed. Failure to comply with this requirement will result in undefined behaviour.
enum snrt_ssr_dim_t |
enum snrt_ssr_dm_t |
enum snrt_ssr_idxsize_t |
enum snrt_ssr_reg_t |
The SSR configuration registers.
|
inline |
Enable scalar chaining.
mask | A bitmask indicating which registers should be enabled for chaining. |