Memory access optimisation for FPGA-based reconfigurable systems with a hie
rarchy of on-chip and off-chip (external) memory to speed up applications l
imited by memory access speed are discussed. Most of the techniques are als
o valid for dedicated embedded systems and system-on-a-chip (SoC) designs.
The approach involves two kinds of optimisation: first, methods to reduce t
he number of accesses by caching repeatedly used values are considered. The
notion of vector access equivalence is introduced to form the basis of tec
hniques employing FPGA storage as shift registers for caching. Larger data
sets can be stored, if possible, in FPGA on-chip RAMs; RAM inference, a tec
hnique to automatically extract small on-chip RAMs to reduce external memor
y accesses is presented. Secondly, the authors aim to minimise the time spe
nt on accesses to bandwidth-limited external memory, by scheduling as many
accesses in parallel as possible. They present a technique which optimally
allocates program arrays to memory banks, thereby minimising the overall ac
cess time. It also determines the most effective addressing mode for memory
which can be accessed using different bitwidths.