A convolutional neural network accelerator apparatus comprising: an interface configured to couple the apparatus to an interconnect, wherein the apparatus is configured to retrieve input data via the interface, the input data representing at least a part of an input layer of a neural network; a plurality of processing modules, each configured to process data; a control module configured to control processing of each of the plurality of processing modules; and a cache module configured to store at least a portion of data processed by at least one of the plurality of processing modules, wherein each processing module further includes: a processing core configured to process data by performing an operation on the data using a plurality of processing elements, wherein at least one processing element of the processing core is configured to perform a multiply-accumulate operation and comprises a result store configured to buffer results of the multiply-accumulate operation; an input control unit configured to retrieve data via the interface and data stored in the cache module and to provide the retrieved data to the processing core; and an output control unit configured to provide data processed by the processing core to the interface and the cache module, characterized in that the control module is further configured to control at least one output control unit of at least one processing module and one or more input control units of one or more processing modules to feed back data processed by the at least one processing module to the one or more processing modules via the cache module, and wherein each processing module processes at least a part of a layer of the neural network, and data stored in the cache module represent at least a part of a next layer of the neural network. an interface configured to couple the apparatus to an interconnect, wherein the apparatus is configured to retrieve input data via the interface, the input data representing at least a part of an input layer of a neural network; a plurality of processing modules, each configured to process data; a control module configured to control processing of each of the plurality of processing modules; and a cache module configured to store at least a portion of data processed by at least one of the plurality of processing modules, wherein each processing module further includes: a processing core configured to process data by performing an operation on the data using a plurality of processing elements, wherein at least one processing element of the processing core is configured to perform a multiply-accumulate operation and comprises a result store configured to buffer results of the multiply-accumulate operation; an input control unit configured to retrieve data via the interface and data stored in the cache module and to provide the retrieved data to the processing core; and an output control unit configured to provide data processed by the processing core to the interface and the cache module, a processing core configured to process data by performing an operation on the data using a plurality of processing elements, wherein at least one processing element of the processing core is configured to perform a multiply-accumulate operation and comprises a result store configured to buffer results of the multiply-accumulate operation; an input control unit configured to retrieve data via the interface and data stored in the cache module and to provide the retrieved data to the processing core; and an output control unit configured to provide data processed by the processing core to the interface and the cache module, characterized in that the control module is further configured to control at least one output control unit of at least one processing module and one or more input control units of one or more processing modules to feed back data processed by the at least one processing module to the one or more processing modules via the cache module, and wherein each processing module processes at least a part of a layer of the neural network, and data stored in the cache module represent at least a part of a next layer of the neural network.