The SA Shell consists of several components:
- Systolic Array Accelerator (SAA): The processing element of the SA Shell. It provides specific functionality to the SA Shell. – Control/Status Register(s) (CSR): Store(s) additional information and configuration of the Systolic Array Accelerator. The number of CSR is specific to the accelerator implemented in the SA Shell.
- MicroEngine(s): The shell is positioned between ACME Scalar Core and local scratchpad memory. Hence, MicroEngines are one-way DMA-like devices that load and store data from and to the Scratchpad. The number of MicroEngines is defined by a specific Systolic Array Accelerator that is implemented in SA Shell and should coincide with the number of input operands and results.
- OVI interface: The OVI interface decoder is used for decoding SA instructions that are issued through the OVI interface.

