5.3 Design considerations
Estimate of required memory
nother quantity that was considered in the design of the board was the memory required
to run the firmware algorithms.
In a Modified Harvard
rchitecture microprocessor such
as the Blackfin, system memory is split into program memory and data memory. Program memory contains the instructions that are executed by the processor while data memory
contains the non-executable data such as program variables.
Data memory estimate
The image processing algorithms in the firmware operate on portions of the image from the image sensor using a double buffering scheme. To do this the image data must be buffered in R M. To buffer an entire image can require a lot of R M for an embedded system. For example, an 8 bit gray scale 752 x 480 pixel image requires 360960 bytes. While this is tiny compared with the R M available on personal computers, it is sizable for an embedded system and would require external SDR M and potentially a larger PCB. For a system using only the internal SR M of the Blackfin an entire image frame cannot be stored at one time and each image must be processed in parts. For example, a frame could be broken into 24 parts giving a buffer size of 752 × 480/24 = 18 K bytes, or it could be broken into 32 parts giving a buffer size of 11 K bytes.
There is a greater overhead in terms of computing power required when using small buffers as they must be switched more frequently (double buffering), however, smaller buffers lead to a lower processing latency. This is because the system must wait for an en- tire buffer to be filled before it can process it even though a marker image may only cover a small portion of the buffer. The problem becomes a trade-off between the memory required for the buffers versus the overhead of switching buffers. The assumption during design of the software is that in a system using only SR M all available memory (64 K bytes using the Blackfin BF533) would be used and the size of the buffers would be adjusted so that the
application fits into R M.
buffer size of 752 × 24 = 18 K bytes has proven to be practical.
s the system uses double buffering, two buffers of 18 K bytes are created.
occurs in place and therefore there is not any need to copy the ROI data to separate buffers.
This brings the total image buffer size to 36 K bytes.
Estimating program memory is more difficult than estimating data memory. It is believed that the 80 K bytes of internal SR M available in the Blackfin BF533 is enough for the ap- plication, however, using external SDR M could make the firmware design easier as the constraint to keep the program code small would be removed. With external SDR M the program size could increase significantly towards the maximum size supported by the