1. A convolutional neural network (CNN) for an image processing system comprising: an image cache comprising an input port and an output port, said image cache being responsive to a request to read a block of N×M pixels extending from a specified location within an input map to provide said block of N×M pixels at said output port; a convolution engine being arranged to read at least one block of N×M pixels from said image cache output port, to combine said at least one block of N×M pixels with a corresponding set of weights to provide a product, and to subject said product to so an activation function to provide an output pixel value; said image cache being configured to write output pixel values to a specified write address via said image cache input port; said image cache comprising a plurality of interleaved memories, each memory storing a block of pixel values at a given memory address, the image cache being arranged to determine for a block of N×M pixels to be read from said image cache: a respective one address within each of said interleaved memories in which said pixels of said block of N×M pixels are stored; a respective memory of said plurality of interleaved memories within which each pixel of said block of N×M pixels is stored; and a respective offset for each pixel of said block of N×M pixels within each memory address, so that said image cache can simultaneously provide said N×M pixels at said output port in a single clock cycle; and a controller arranged to provide a set of weights to said convolution engine before processing at least one input map, to cause said convolution engine to process said at least one input map by specifying locations for successive blocks of N×M pixels and to generate an output map within said image cache by writing said output pixel values to successive locations within said image cache.