SPRUIG8J January 2018 – March 2024
The Streaming Engine (SE) and
Streaming Address Generator (SA) intrinsic interface is defined in
c7x_strm.h
, which is included as part of the C7000 runtime
support and is included automatically by c7x.h
.
As described below, basic utilization of the SE and SA relies on parameter templates that must be pre-configured before the SE or SA can be opened and used. The templates of the SE and the SA both have iteration count (ICNT), offset (DIM), and vector length (VECLEN) values. These values are used to determine offsets as a stream is read and advanced.
For the SE, the element size is also configured directly into the setup flags and is then used in the SE address calculation. However, the SA does not work this way. For the SA, the offset is scaled based on the element size of the load or store instruction that uses the SA. This allows the same SA to be effectively used by different load or store instructions that have different element sizes.