Branch Caching - FIGnition FUZE Hardware Reference Manual

Table of Contents

Advertisement

FIGnition's hardware can be made to read in a byte from SPI while the AVR is executing
code. This means that if the firmware starts the read for the next command code in the
program and then starts executing the current one, FIGnition can do two jobs at the same
time. This kind of parallel execution is called pipelining.

6.3.3 Branch Caching

Most of the time a program consists of command codes and each command code follows
on from a previous command code in memory. When this doesn't happen, the most com-
mon commands are jumps to somewhere else in the program, either to a later part of the
program or an earlier part [Fig 6.6]
It turns out we can reduce the penalty for jumps, particularly jumps backwards.
The first improvement is that it turns out we don't need to provide a whole 16-bit address
for jumps. The principle of locality means that jumps are usually not very far in either direc-
tion. By storing only the displacement for a jump we can save one byte, which improves
performance by 20% [Fig 6.7].
Fig 6.5
Fig 6.6
Fig 6.7

Advertisement

Table of Contents
loading

Table of Contents