The programming interfaces include memory-mapped register modules that the software can read/write and the interfaces managed by the NPI and CFU controllers.
This enables the software to configure, control, and monitor the hardware. These programming interfaces can also include access to caches and other small memories. The interface can also provide data ports for stream data using a single register location.