Program cache stores instructions and data cache stores data.
Stream cache pre-access data from memory and adjust original data locality into stream order.
In stream cache, cache controller is a partially configurable block which maps data into appropriate banks and control data transfer between banks.